44
30 BAB III PEMBAHASAN 3.1. Tinjauan Perusahaan Toko Pupuk Berkah Tani merupakan suatu usaha yang bergerak dalam bidang perdagangan obat dan pupuk pertanian. Selama ini perusahaan tersebut sering mengalami permasalahan dalam hal sistem pencatatan akuntansinya. Oleh karenanya penulis ingin memberi satu solusi yaitu penerapan sistem computer yang terkait dengan pencatatan penjualannya. 3.1.1. Sejarah Perusahaan Toko Berkah Tani adalah sebuah toko yang menyediakan barang atau perlengkapan pertanian khususnya obat pertanian, Toko berkah tani berdiri sejak tahun 2012 Nomor : /500/IV/ 2017 yang didirikan oleh Bapak Toto Tosikin. Pada awalnya sebelum membuka sebuah toko pertanian bapak Toto Tosikin menerima pemesanan obat- obat pertanian. Setelah melalui proses yang panjang dan pemesan mulai banyak, pada akhirnya bapa Toto Tosikin membuka sebuah toko pertanian secara konvensional. Toko Berkah Tani pertama kali didirikan hanya menyediakan beberapa barang berupa obat pembasmi hama, hal ini dikarenakan modal yang masih kurang dan ketidak cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan, dengan demikian Toko Berkah Tani menambah barang persediaan mulai dari pembasmi hama, vitamin tumbuhan dan lainnya. Dengan bertambahnya barang pertanian maka pembeli juga semakin bertambah dan toko ini akhirnya menjual beraneka bahan dan obat pertanian yang lengkap.

BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

30

BAB III

PEMBAHASAN

3.1. Tinjauan Perusahaan

Toko Pupuk Berkah Tani merupakan suatu usaha yang bergerak dalam bidang

perdagangan obat dan pupuk pertanian. Selama ini perusahaan tersebut sering mengalami

permasalahan dalam hal sistem pencatatan akuntansinya. Oleh karenanya penulis ingin

memberi satu solusi yaitu penerapan sistem computer yang terkait dengan pencatatan

penjualannya.

3.1.1. Sejarah Perusahaan

Toko Berkah Tani adalah sebuah toko yang menyediakan barang atau

perlengkapan pertanian khususnya obat pertanian, Toko berkah tani berdiri sejak tahun

2012 Nomor : /500/IV/ 2017 yang didirikan oleh Bapak Toto Tosikin. Pada awalnya

sebelum membuka sebuah toko pertanian bapak Toto Tosikin menerima pemesanan obat-

obat pertanian. Setelah melalui proses yang panjang dan pemesan mulai banyak, pada

akhirnya bapa Toto Tosikin membuka sebuah toko pertanian secara konvensional.

Toko Berkah Tani pertama kali didirikan hanya menyediakan beberapa barang

berupa obat pembasmi hama, hal ini dikarenakan modal yang masih kurang dan ketidak

cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada

tahun 2014 Toko ini mengalami peningkatan penjualan, dengan demikian Toko Berkah

Tani menambah barang persediaan mulai dari pembasmi hama, vitamin tumbuhan dan

lainnya. Dengan bertambahnya barang pertanian maka pembeli juga semakin bertambah

dan toko ini akhirnya menjual beraneka bahan dan obat pertanian yang lengkap.

Page 2: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

31

3.1.2. Struktur Organisasi dan Fungsi

Berikut ini merupakan struktur organisasi pada Toko Berkah Tani Purwakarta:

Pemilik Toko

Kasir

KaryawanKaryawan

Sumber : Toko Berkah Tani (2014)

Gambar III.I

Struktur Organisasi Toko Berkah Tani

Berikut merupakan Tugas dan Fungsi beberapa bagian yang terdapat pada Toko

Berkah Tani Purwakarta:

1. Pemilik Toko

a. Bertanggung jawab terhadap maju mundurnya serta keuntungan maupun kerugian

toko.

b. Mengawasi jalannya aktivitas penjualan secara keseluruhan.

2. Kasir

a. Bertanggung jawab terhadap setiap transaksi.

b. Membuat laporan pendapatan.

3. Karyawan

a. Meyalani setiap pembeli yang masuk.

Page 3: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

32

b. Bertangung jawab terhadap perkerjaannya, Pengiriman barang.

3.2. Tinjauan Kasus

Penulis menjelaskan dan membahas mengenai proses penjualan yang terjadi pada

Toko Berkah Tani Purwakarta.

3.2.1. Proses Bisnis Sistem Berjalan

Adapun suatu proses atau prosedur penjualan tunai yang terjadi saat ini pada Toko

Berkah Tani Purwakarta yaitu:

1. Pembeli datang ke toko untuk mencari barang yang akan dibeli .

2. Kasir toko mengecek barang dan harga barang pada buku harga lalu memberitahu

pembeli apabila barang yang akan dibeli ada atau tidaknya barang yang akan dibeli

kepada pembeli.

3. Jika barang ada pembeli menyiapkan uang dan melakukan pembayaran barang kepada

kasir dan jika barang yang dicari tidak ada maka proses sistem berjalan selesai atau

tidak jadi beli.

4. Apabila kasir telah menerima uang pembayaran, kasir membuatkan suatu nota

rangkap pembelian atau bukti penjualan barang yang rangkap satu akan diberikan

kepada pembeli sebagai bukti pembelian barang dan rangkap kedua disimpan sebagai

bukti penjualan barang yang telah terjadi.

5. Selanjutnya kasir mengumpulkan data-data dari hasil transaksi yang telah terjadi

tersebut yaitu berupa nota rangkap dua yang sebelumnya telah disimpan dan akan

dibuatkan suatu laporan sebagai bukti hasil penjualan kemudian diberikan kepada

pemilik toko.

Page 4: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

33

3.2.2. Activity Diagram

Gambar III.2.

Gambar: Activity Diagram Sistem berjalan

3.2.3. Dokumen Masukan

Dokumen masukkan merupakan proses awal dari kegiatan pada proses

pembayaran penjualan Toko berkah tani. Adapun bentuk dokumen masukkan tersebut

adalah sebagai berikut:

1. Nama Dokumen : Data Harga Barang

Fungsi : Untuk mengetahui nama, harga, dan stok barang yang dijual

Sumber : Pemilik

Page 5: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

34

Tujuan : Kasir

Media : Buku

Jumlah : Satu Lembar

Frekuensi : Setiap kedatangan barang baru

Bentuk : Lampiran A-1

2. Nama Dokumen : Nota Rangkap 1

Fungsi : Untuk mengetahui nama, harga, dan stok barang yang dijual

Sumber : Kasir

Tujuan : Pembeli

Media : Kertas

Jumlah : Satu Lembar

Bentuk : Lampiran B-1

3.2.4. Dokumen Keluaran

Dokumen keluaran adalah dokumen yang dihasilkan dari proses data masukan.

Adapun bentuk dokumen keluaran sebagai berikut:

1. Nama Dokumen : Nota Rangkap 2

Fungsi : Untuk mengetahui nama, harga, dan stok barang yang dijual

Sumber : Kasir

Tujuan : Pemilik Toko

Media : Kertas

Frekuensi : Setiap Hari

Jumlah : Satu Lembar

Bentuk : Lampiran A-2

Page 6: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

35

2. Nama Dokumen : Laporan Penjualan

Fungsi : Untuk mengetahui stok barang yang ada

Sumber : Kasir

Tujuan : Pemilik Toko

Media : Buku

Frekuensi : Setiap Hari

Jumlah : Satu Lembar

Bentuk : Lampiran B-2

3.2.5. Permasalahan Pokok

Dari hasil analisa dan pengamatan pada Toko Berkah Tani maka penulis dapat

mengemukakan beberapa permasalahan pokok yang khususnya terjadi pada sistem

transaksi penjualan, antara lain:

1. Data harga barang masih menggunakan buku tulis, sehingga membutuhkan waktu lama

untuk melihat data harga barang.

2. Perhitungan masih menggunakan kalkulator, sehingga dalam proses sering terjadi

kesalahan perhitungan jumlah harga barang dan membutuhkan waktu lama.

3. Nota hasil penjualan bisa hilang,sehingga bisa menjadikan laporan tidak sesuai dengan

hasil transaksi yang seharusnya.

4. Belum ada laporan khusus penjualan, masih menggunakan buku tulis biasa, sehingga

bisa menyebabkan tidak efisien, bisa saja laporan tersebut dipalsukan.

3.2.6. Pemecahan Masalah

Oleh karena itu, untuk memudahkan proses pelayanan dan penjualan dalam Toko

Berkah Tani, penulis mencoba membuat program aplikasi penjualan. Dengan

Page 7: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

36

mengunakan proram aplikasi penjualan yang dibuat oleh penulis diharapkan dapat

meminimalisir kesalahan-kesalahan input data serta mempercepat proses pencatatan data.

Kemudian dengan penggunaan program aplikasi tersebut diharapkan dapat menghasilkan

suatu laporan yang akurat, relavan dan tepat waktu, sehingga dapat meningkatkan mutu

pelayanan di Toko Berkah Tani Purwakarta.

3.3. Analisa Kebutuhan Software

Berdasarkan proses bisnis Toko Berkah Tani penulis mengambarkan program

yang akan buat diantaranya Analisa Kebutuhan,Use Case Diagram dan Activity Diagram.

3.3.1. Analisa Kebutuhan

Dalam proses pengembangan sebuah software yang perlu dilakukan yaitu

menganalisa berbagai kebutuhan yang akan dijadikan sebagai masukan atau acuan untuk

pembuatan aplikasi sistem penjualan di Toko Berkah Tani. Kebutuhan-kebutuhan tersebut

antara lain seperti input yang diperlukan, output yang diharapkan dan pembuatan design

user interface yang mudah digunakan dan mudah dipahami oleh user. Adapun beberapa

prosedur yang diusulkan diantaranya:

A. Pemilik Toko:

A.1. Pemilik toko dapat login.

A.2. Pemilik toko dapat mengelola data kasir.

A.3. Pemilik toko dapat melihat laporan transaksi.

A.4. Pemilik dapat logout.

B. Kasir:

B.1. Kasir dapat login dengan akun yang telah dibuat.

B.2. Kasir dapat menggola transaksi dan jurnal penjualan.

Page 8: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

37

B.3. Kasir dapat mengelola data barang.

B.4. Kasir dapat mengelola data perkiraan

B.5. Kasir dapat membuat laporan jurnal.

B.6. Kasir dapat logout.

3.3.2. Use Case Diagram

Sumber: Hasil Rancangan (2019)

Gambar III.3.

Gambar: Use Case Diagram Toko Berkah Tani

1. Menu Login

Admin melakukan login dengan memasukkan username dan password jika username

dan password benar admin dapat melakukan aktivitas didalam sistem jika username

dan password salah maka akan admin harus login kembali. Dalam menu login ini kedua

actor sama halaman login nya.

Page 9: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

38

Tabel III.1.

Deskripsi Use case Login

Use Case Narative Login

Tujuan Melakukan login dan masuk ke dalam sistem

pendataan

Deskripsi Sistem ini memungkinkan aktor untuk mengakses

sistem pendataan

Skenario utama

Aktor Pemilik dan Kasir

Kondisi awal Aktor membuka aplikasi pendataan

Aksi Aktor Reaksi sistem

Aktor memilih login Sistem akan menampilkan textbox untuk mengisi

username dan password

Kondisi akhir Jika perintah sesuai maka sistem akan masuk kedalam

aplikasi pendataan dan aktor dapat melakukan aktivitas

didalam sistem

Sumber: Hasil rancangan (2019)

2. Menu Utama

Bagian pemilik dan kasir melakukan login terus memilih menu utama didalam menu

utama terdapat menu data admin, data barang , data transaksi dan laporan.

Page 10: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

39

Tabel III.2.

Deskripsi Use case Menu utama

Use Case Narative Menu utama

Tujuan Bagian Admin dapat melakukan pengolahan data yang

ada di menu data admin, data barang, data

transaksi,data perkiraan dan laporan

Deskripsi Sistem ini memungkinkan aktor untuk mengolah

sistem pendataan dari input data sampai dengan

pembuatan laporan

Skenario Utama

Aktor Pemilik dan kasir

Kondisi Awal Aktor membuka aplikasi pendataan

Aksi Aktor Reaksi Sistem

1. Aktor melakukan login

2. Aktor memilih menu

data barang

3. Aktor memilih menu data

transaksi

4. Aktor memilih menu

laporan

Sistem akan menampilkan textbox untuk mengisi

username dan password

Sistem akan melakukan proses pengisian data barang

Sistem akan menampilkan submenu transaksi-transaksi

Sistem akan menginput laporan hasil panen dan

laporan hasil penjualan

Kondisi akhir Jika perintah sesuai maka sistem akan menampilkan

seperti yang diinginkan oleh aktor

Sumber: Hasil Rancangan (2019)

3. Pendataan

Aktor memilih menu utama untuk melakukan aktivitas pendataan, untuk menambah,

mengedit, menyimpan atau menghapus data admin, data barang dan data transaksi aktor

bisa memilih menu file master, sedangkan untuk menampilkan data laporan aktor bisa

memilih menu data laporan, divisi juga bisa memilih logout untuk keluar dari sistem.

Page 11: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

40

Tabel III.3.

Deskripsi Gambar Pendataan

Use Case Narative Pendataan

Tujuan Pemilik dan kasir dapat melakukan pengolahan data

yang ada di menu utama, menu file master, dan menu

data

Deskripsi Sistem ini memungkinkan aktor untuk mengolah sistem

hasil pendataan

Skenario Utama

Aktor Pemilik dan kasir

Kondisi Awal Aktor membuka aplikasi pendataan

Aksi Aktor Reaksi Sistem

1. Aktor memilih login

2. Aktor memilih menu utama

3. Aktor memilih menu file

master

4. Aktor memilih menu laporan

5. Aktor memilih logout

Sistem akan menampilkan textbox untuk mengisi

username dan password

Sistem akan menampilkan pilihan menu utama

Sistem akan menampilkan menu data barang dan menu

transaksi

Sistem akan menampilkan laporan penjualan

Sistem akan membatalkan dan keluar dari aktivitas

Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan

seperti yang diinginkan oleh aktor

Sumber: Hasil Rancangan (2019)

4. Laporan

Untuk menginput laporan kasir harus melakukan login dan memilih menu utama

kemudian kasir memlilih menu laporan, kasir dapat melakukan proses cetak dan batal

apabila kasir ingin keluar bisa memilih logout kemudian akan keluar dari system

laporan.

Page 12: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

41

Tabel III.4.

Deskripsi Gambar Laporan

Use Case Narative Menu Laporan

Tujuan Bagian kasir dapat melakukan pengolahan data yang ada

di menu utama dan menu laporan

Deskripsi Sistem ini memungkinkan aktor untuk menginput hasil

laporan

Skenario Utama

Aktor Kasir

Kondisi Awal Aktor membuka aplikasi laporan

Aksi Aktor Reaksi Sistem

1. Aktor memilih login

2. Aktor memilih menu utama

3. Aktor memilih menu laporan

4. Aktor memilih logout

Sistem akan menampilkan textbox untuk mengisi

username dan password

Sistem akan menampilkan pilihan menu

Sistem akan menampilkan menu laporan

Sistem akan membatalkan dan keluar dari aktivitas

Kondisi akhir Jika perintah sesuai maka sistem akan menampilkan

seperti yang diinginkan oleh aktor

Sumber: Hasil Rancangan (2019)

3.3.3. Activitiy Diagram

Dalam menyusun rancangan sistem usulan pada Toko Berkah Tani ini, penulis

akan menjelaskan mengenai activity diagram sistem pengolahan penjualan yang akan

terjadi pada Toko Berkah Tani secara garis besar dan lebih jelas dari bab sebelumnya.

Page 13: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

42

1. Gambar dibawah ini menjelaskan activity diagram kelola data admin

Sumber: Hasil Rancangan (2019)

Gambar III.4.

Gambar Activity Diagram Data Admin

Page 14: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

43

2. Gambar dibawah ini menjelaskan activity diagram Kelola data barang

Sumber: Hasil Rancangan (2019)

Gambar III.5.

Gambar Activity Diagram Kasir

Page 15: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

44

3. Gambar dibawah ini menjelaskan activity diagram Transaksi

Sumber: Hasil Rancangan (2019)

Gambar III.7.

Gambar Activity Diagram Transaksi

Page 16: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

45

4. Gambar dibawah ini menjelaskan activity diagram Lihat laporan

Sumber: Hasil Rancangan (2019)

Gambar III.8.

Gambar Activity Diagram Lihat Laporan

5. Gambar dibawah ini menjelaskan activity diagram Kelola Laporan

Sumber: Hasil Rancangan (2019)

Gambar III.9.

Gambar Activity Diagram Kelola Laporan

Page 17: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

46

6. Gambar dibawah ini menjelaskan activity diagram Kelola Laporan Jurnal

Gambar III.10.

Gambar Activity Diagram Kelola Laporan Jurnal

7. Gambar dibawah ini menjelaskan activity diagram Logout

Sumber: Hasil Rancangan (2019)

Gambar III.11.

Gambar Activity Diagram Logout

Page 18: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

47

3.4. Desain

Desain merupakan perencanaan dalam pembuatan sebuah objek, sistem,

komponen atau struktur. Desain merupakan sebuah konsep tentang sesuatu atau aktivitas

yang bertujuan untuk membangun kualitas multi elemen dalam sebuah objek.

3.4.1. Entity Relaitionship Diagram (ERD)

Penggambaran proses relasi yang telah dibuat pada diagram alir data sehingga

berhubungan antar Entity Relational Diagram. Dapat terlihat dan melibatkan rancangan

fiel-fiel didalam database. Berikut adalah ERD yang dibuat untuk sistem penjualan pada

Toko Berkah Tani Purwakarta.

Sumber: Hasil Rancangan (2019)

Gambar III.12.

Gambar Entity Relationship Diagram (ERD)

Page 19: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

48

3.4.2. Logical Record Strukture

Proses dari struktur pada tabel-tabel yang terbentuk dari hasil relasi antar

himpunana entitas. Dibentuk dengan nomor dan tipe record. Berikut adalah ERD yang

dibuat untuk sistem penjualan pada Toko Berkah Tani Purwakarta.

Sumber: Hasil Rancangan (2019)

Gambar III.13.

Gambar Logical Record Structure (LRS)

3.4.3. Spesifikasi File

Dalam program ini menggunakan satu buah file database dengan nama penjualan,

didalam database tersebut terdapat beberapa form, form tersebut adalah sebagai berikut:

1. Spesifikasi File Tabel Data Barang

Nama Database : penjualan

Nama File : barang

Akronim : barang

transaksi

nomor*

kd barang

tgl_jual

jumlah_beli

harga satuan

total

kode_akun

nama_akun

keterangan

debet

kredit

detail transaksi

kd barang**

nomor**

jumlah_beli

total

perkiraan

Kode_akun*

nama_akun

barang

kd_barang*

nm_barang

harga satuan_

stock

admin

id_admin*

nama_

sandi

hak_akses

Page 20: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

49

Tipe File : File Master

Akses File : Random

Panjang Record : 73 byte

Kunci Field : kd_barang

Tabel III.5.

Spesifikasi File Data Barang

No Elemen Data Nama Field Type Size Keterangan

1. Kode Barang kd_barang Varchar 8 Primary Key

2 Nama Barang nm_barang Varchar 50

3 Stok Stock Int 5

4 Harga Jual Harga Int 10

2. Spesifikasi File Tabel Admin

Nama Database : penjualan

Nama File : admin

Akronim : Admin

Tipe File : File Master

Akses File : Random

Panjang Record : 120 byte

Kunci Filed : id_admin

Page 21: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

50

Tabel III.6.

Spesifikasi File Data Admin

No Elemen Data Nama Field Type Size Keterangan

1. Id Admin id_admin Int 25 Primary Key

2. Nama Admin nama Varchar 50

3. Sandi User Int 20

4. Hak Akses hak_akses Varchar 25

3. Spesifikasi File Tabel Transaksi Penjualan

Nama Datebase : transaksi

Nama File : Data Transaksi

Akronim : Transaksi

Tipe File : File Transaksi

Akses File : Random

Panjang Record : 161 byte

Kunci Filed : nomor

Tabel III.7.

Spesifikasi File Transaksi penjualan

No Elemen Data Nama Field Type Size Keterangan

1. No Transaksi nomor Int 8 Primary Key

2. Kode Jual kode_jual Int 8

3. Tanggal tgl_jual Date

4. Kode Barang kd_barang Varchar 8

5. Jumlah Beli Jumlah_beli Int 5

6. Harga Satuan Hrga_satuan Int 12

Page 22: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

51

7. Total Bayar total Int 8

8. Kode Akun kode_akun Int 11

9. Nama Akun nama_akun Varchar 20

10. Keterangan keterangan Varchar 50

11. Debet debet Int 20

12. Kredit kredit Int 11

3.4.3. Software Architecture

Software Architectur merupakan sebuah proses yang mendefinisikan solusi yang

terstruktur yang memenuhi kebutuhan teknis dan operasional, software architecture

berfungsi mengoptimalkan kualitas dari sebuah aplikasi.

1. Sequence Diagram

Gambar dibawah ini menjelaskan tentang sequnce diagram Transaksi:

Sumber: Hasil Rancangan (2019)

Gambar III.14.

Sequence Diagram Menu Transaksi

Page 23: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

52

Admin masuk ke menu utama dan memilih menu data transaksi kemudian

menginput form data transaksi.

2. Deployment Diagram

Deployment Diagram merupakan gambaran proses-proses berbeda pada suatu sistem

yang berjalan dan bagaimana relasi didalamnya.

Sumber: Hasil Rancangan (2019)

Gambar III.15.

Deployment Diagram

Page 24: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

53

4.2.5. User Interface

User Interface adalah suatu alat yang disediakan sistem operasi sebagai sarana

untuk berinteraksi antara pengguna user, memberikan kepada sistem operasi untuk

kemudian diterima, diproses dan ditampilkan oleh sistem operasi.

a. Form Menu Login

Gambar diabawah tampilan desain pada form menu login

Sumber: Hasil Rancangan (2019)

Gambar III.16.

Menu Login

Page 25: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

54

b. Form Menu Utama

Gambar dibawah ini tampilan desain pada form menu utama:

Sumber: Hasil Rancangan (2019)

Gambar III.17.

Menu Utama

c. Form Data Admin

Gambar dibawah ini tampilan desain form data admin:

Hasil Rancangan (2019)

Gambar III.18.

Form Data Admin

Page 26: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

55

d. Form Data Barang

Gambar dibawah ini tampilan desain form data barang:

Hasil Rancangan (2019)

Gambar III.19.

Form Data Barang

e. Form Transaksi

Gambar dibawah ini tampilan desain form data transaksi:

Hasil Rancangan (2019)

Gambar III.20.

Form Transaksi

Page 27: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

56

d. Form Laporan Hasil Penjualan

Gambar dibawah ini tampilan desain pada form laporan hasil penjualan:

Hasil Rancangan.(2019)

Gambar III.21.

Form Laporan

3.5. Implementasi

3.5.1. Code Generation

A. Form Data Transaksi import Database.KoneksiDatabase;

import Database.ResultSetTable;

import java.awt.event.KeyEvent;

import java.io.File;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.Calendar;

import java.util.GregorianCalendar;

import java.util.HashMap;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JOptionPane;

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.engine.JasperReport;

import net.sf.jasperreports.engine.util.JRLoader;

import net.sf.jasperreports.view.JasperViewer;

* @author Fuji Lisyanto201

*/

Page 28: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

57

public class formtransaksi extends javax.swing.JFrame {

ResultSet rs;

KoneksiDatabase con;

int waktumulai = 0;

/**

* Creates new form formtransaksi

*/

public formtransaksi() {

con = new KoneksiDatabase(new Database.Parameter().HOST_DB,

new Database.Parameter().USERNAME_DB,

new Database.Parameter().PASSWORD_DB);

initComponents();

setjam();

table1();

table2();

nonaktif();

kdpenjualan.setEnabled(false);

jDateChooser1.setEnabled(false);

tambah.setEnabled(true);

batal.setEnabled(false);

simpan.setEnabled(false);

jmlhbl.setEnabled(false);

cari.setEnabled(false);

caribarang.setEnabled(false);

bersih.setEnabled(false);

total.setText("0");

stock_b.setEnabled(false);

setTitle("form transaksi penjualan");

}

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code">

private void initComponents() {

jPanel1 = new javax.swing.JPanel();

jLabel1 = new javax.swing.JLabel();

jLabel2 = new javax.swing.JLabel();

jLabel3 = new javax.swing.JLabel();

kdpenjualan = new javax.swing.JTextField();

jLabel6 = new javax.swing.JLabel();

jLabel7 = new javax.swing.JLabel();

jLabel8 = new javax.swing.JLabel();

jLabel9 = new javax.swing.JLabel();

jLabel10 = new javax.swing.JLabel();

jLabel11 = new javax.swing.JLabel();

jLabel12 = new javax.swing.JLabel();

jLabel13 = new javax.swing.JLabel();

jLabel14 = new javax.swing.JLabel();

total = new javax.swing.JTextField();

kdbrg = new javax.swing.JTextField();

nmbrg = new javax.swing.JTextField();

Page 29: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

58

hrgsat = new javax.swing.JTextField();

stok = new javax.swing.JTextField();

jmlhbl = new javax.swing.JTextField();

jLabel15 = new javax.swing.JLabel();

jam1 = new javax.swing.JLabel();

jPanel2 = new javax.swing.JPanel();

jLabel18 = new javax.swing.JLabel();

caribarang = new javax.swing.JTextField();

cari = new javax.swing.JButton();

bersih = new javax.swing.JButton();

jScrollPane1 = new javax.swing.JScrollPane();

tabel_brg = new javax.swing.JTable();

tambah = new javax.swing.JButton();

batal = new javax.swing.JButton();

simpan = new javax.swing.JButton();

jLabel19 = new javax.swing.JLabel();

jPanel3 = new javax.swing.JPanel();

jScrollPane2 = new javax.swing.JScrollPane();

tabel_transaksi = new javax.swing.JTable();

jPanel4 = new javax.swing.JPanel();

jDateChooser1 = new com.toedter.calendar.JDateChooser();

total_b = new javax.swing.JLabel();

stock_b = new javax.swing.JTextField();

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 20)); // NOI18N

jLabel1.setText("Form Transaksi Penjualan");

jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(250, 30, 250, -1));

jLabel2.setText("Tanggal Penjualan :");

jPanel1.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 120, -1, -1));

jLabel3.setText("Kode Penjualan :");

jPanel1.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 90, -1, -1));

jPanel1.add(kdpenjualan, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 90, 100, -

1));

jLabel6.setText("==========================================================

===================================");

jPanel1.add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 140, -1, -1));

jLabel7.setText("Input Penjualan");

jPanel1.add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 160, -1, -1));

jLabel8.setText("------------------------");

jPanel1.add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 170, -1, -1));

jLabel9.setText("Total :");

jPanel1.add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 290, -1, -1));

jLabel10.setText("Kode Barang :");

Page 30: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

59

jPanel1.add(jLabel10, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 190, -1, -1));

jLabel11.setText("Nama Barang :");

jPanel1.add(jLabel11, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 210, -1, -1));

jLabel12.setText("Harga Satuan :");

jPanel1.add(jLabel12, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 230, -1, -1));

jLabel13.setText("Stok Tersedia :");

jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 250, -1, -1));

jLabel14.setText("Jumlah Beli :");

jPanel1.add(jLabel14, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 270, -1, -1));

jPanel1.add(total, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 290, 100, -1));

jPanel1.add(kdbrg, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 190, 80, -1));

jPanel1.add(nmbrg, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 210, 120, -1));

hrgsat.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

hrgsatActionPerformed(evt);

}

});

jPanel1.add(hrgsat, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 230, 80, -1));

jPanel1.add(stok, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 250, 70, -1));

jmlhbl.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jmlhblActionPerformed(evt);

}

});

jmlhbl.addKeyListener(new java.awt.event.KeyAdapter() {

public void keyPressed(java.awt.event.KeyEvent evt) {

jmlhblKeyPressed(evt);

}

});

jPanel1.add(jmlhbl, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 270, 50, -1));

jLabel15.setText("(enter)");

jPanel1.add(jLabel15, new org.netbeans.lib.awtextra.AbsoluteConstraints(150, 270, -1, -1));

jam1.setText("jLabel16");

jPanel1.add(jam1, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 120, -1, -1));

jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.create

LineBorder(new java.awt.Color(0, 0, 0)), "Data Barang"));

jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

jLabel18.setText("Cari Nama Barang/Kode : ");

jPanel2.add(jLabel18, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 20, -1, -1));

jPanel2.add(caribarang, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 20, 110, -1));

cari.setText("Cari");

cari.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

Page 31: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

60

cariActionPerformed(evt);

}

});

jPanel2.add(cari, new org.netbeans.lib.awtextra.AbsoluteConstraints(287, 19, -1, -1));

bersih.setText("Load Table");

bersih.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

bersihActionPerformed(evt);

}

});

jPanel2.add(bersih, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 20, 90, -1));

tabel_brg.setModel(new javax.swing.table.DefaultTableModel(

new Object [][] {

{null, null, null, null},

{null, null, null, null},

{null, null, null, null},

{null, null, null, null}

},

new String [] {

"Title 1", "Title 2", "Title 3", "Title 4"

}

));

jScrollPane1.setViewportView(tabel_brg);

jPanel2.add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 48, 410,

103));

jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(260, 150, 450, 160));

tambah.setText("Tambah");

tambah.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

tambahActionPerformed(evt);

}

});

jPanel1.add(tambah, new org.netbeans.lib.awtextra.AbsoluteConstraints(280, 330, -1, -1));

batal.setText("Batal");

batal.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

batalActionPerformed(evt);

}

});

jPanel1.add(batal, new org.netbeans.lib.awtextra.AbsoluteConstraints(580, 330, -1, -1));

simpan.setText("Simpan");

simpan.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

simpanActionPerformed(evt);

}

});

jPanel1.add(simpan, new org.netbeans.lib.awtextra.AbsoluteConstraints(430, 330, -1, -1));

Page 32: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

61

jLabel19.setText("Jumlah Bayar :");

jPanel1.add(jLabel19, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 330, -1, -1));

jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.create

LineBorder(new java.awt.Color(0, 0, 0)), "Tabel Data Penjualan Barang"));

jPanel3.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

tabel_transaksi.setModel(new javax.swing.table.DefaultTableModel(

new Object [][] {

{null, null, null, null, null, null, null, null, null},

{null, null, null, null, null, null, null, null, null},

{null, null, null, null, null, null, null, null, null},

{null, null, null, null, null, null, null, null, null}

},

new String [] {

"Title 1", "Title 2", "Title 3", "Title 4", "Title 5", "Title 6", "Title 7", "Title 8", "Title 9"

}

));

jScrollPane2.setViewportView(tabel_transaksi);

jPanel3.add(jScrollPane2, new org.netbeans.lib.awtextra.AbsoluteConstraints(11, 33, 658,

117));

jPanel1.add(jPanel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 360, 680, 170));

jPanel4.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.

RAISED));

javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);

jPanel4.setLayout(jPanel4Layout);

jPanel4Layout.setHorizontalGroup(

jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGap(0, 366, Short.MAX_VALUE)

);

jPanel4Layout.setVerticalGroup(

jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGap(0, 26, Short.MAX_VALUE)

);

jPanel1.add(jPanel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(310, 110, 370, 30));

jPanel1.add(jDateChooser1, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 120, -1, -

1));

total_b.setText("0");

jPanel1.add(total_b, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 330, -1, -1));

stock_b.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

stock_bActionPerformed(evt);

}

});

jPanel1.add(stock_b, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 160, 60, -1));

Page 33: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

62

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 722,

Short.MAX_VALUE)

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 542,

Short.MAX_VALUE)

);

pack();

}// </editor-fold>

private void hrgsatActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

}

private void jmlhblActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

}

private void cariActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

try {

if (!caribarang.getText().isEmpty()) {

rs = con.querySelectAll("barang", "kd_barang LIKE '%" + caribarang.getText()

+ "%' OR nm_barang LIKE '%" + caribarang.getText() + "%'");

tabel_brg.setModel(new Database.ResultSetTable(rs));

ambildata();

jmlhbl.setEnabled(true);

} else {

JOptionPane.showMessageDialog(this, "isi data pencarian");

caribarang.requestFocus();

}

} catch (Exception e) {

}

}

private void bersihActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

table1();

caribarang.setText("");

caribarang.requestFocus();

clear();

jmlhbl.setEnabled(false);

}

private void batalActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

batal.setEnabled(false);

simpan.setEnabled(false);

Page 34: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

63

tambah.setEnabled(true);

jmlhbl.setEnabled(false);

table1();

clear();

kdpenjualan.setText("");

jDateChooser1.setEnabled(false);

cari.setEnabled(false);

caribarang.setEnabled(false);

bersih.setEnabled(false);

total.setText("0");

}

private void simpanActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

try {

if ( !kdbrg.getText().isEmpty()&&!nmbrg.getText().isEmpty()&&

!hrgsat.getText().isEmpty()&&!stok.getText().isEmpty()&&

!jmlhbl.getText().isEmpty()&&!total.getText().isEmpty()&&

!kdpenjualan.getText().isEmpty()){

if (JOptionPane.showConfirmDialog(this,"Transaksi berhasil,ingin menambah

transaksi?",

"Peringatan", JOptionPane.YES_NO_OPTION)== JOptionPane.OK_OPTION) {

hitungtotal();

update_brg();

simpan();

jDateChooser1.setEnabled(false);

clear();

jmlhbl.setText("");

total.setText("");

table1();

table2();

caribarang.setText("");

caribarang.requestFocus();

}else{

JOptionPane.showMessageDialog(this, "Terima kasih, kwitansi sedang dicetak");

nmbrg.requestFocus();

hitungtotal();

update_brg();

simpan();

cetak();

table1();

table2();

nonaktif();

kdpenjualan.setEnabled(false);

jDateChooser1.setEnabled(false);

tambah.setEnabled(true);

batal.setEnabled(false);

simpan.setEnabled(false);

jmlhbl.setEnabled(false);

caribarang.setEnabled(false);

Page 35: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

64

tabel_transaksi.setEnabled(false);

total.setText("0");

kdpenjualan.setText("");

clear();

}

}else{

JOptionPane.showMessageDialog(this, "Data isisan ada yang kosong");

}

} catch (Exception e) {

}

}

private void tambahActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

jDateChooser1.setEnabled(true);

tambah.setEnabled(false);

batal.setEnabled(true);

simpan.setEnabled(true);

cari.setEnabled(true);

caribarang.setEnabled(true);

bersih.setEnabled(true);

stock_b.setEnabled(false);

id();

}

private void jmlhblKeyPressed(java.awt.event.KeyEvent evt) {

// TODO add your handling code here:

if (evt.getKeyCode()== KeyEvent.VK_ENTER){

hitungtotal();

int ttl1 = Integer.parseInt(total.getText());

int ttl2 = Integer.parseInt(total_b.getText());

int ttl3 = ttl1 + ttl2;

String a = Integer.toString(ttl3);

total_b.setText(a);

}

}

private void stock_bActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

}

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

/* Set the Nimbus look and feel */

//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">

Page 36: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

65

/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

*/

try {

for (javax.swing.UIManager.LookAndFeelInfo info :

javax.swing.UIManager.getInstalledLookAndFeels()) {

if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());

break;

}

}

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(formtransaksi.class.getName()).log(java.util.logging.Level.SEV

ERE, null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(formtransaksi.class.getName()).log(java.util.logging.Level.SEV

ERE, null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(formtransaksi.class.getName()).log(java.util.logging.Level.SEV

ERE, null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(formtransaksi.class.getName()).log(java.util.logging.Level.SEV

ERE, null, ex);

}

//</editor-fold>

/* Create and display the form */

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new formtransaksi().setVisible(true);

}

});

}

// Variables declaration - do not modify

private javax.swing.JButton batal;

private javax.swing.JButton bersih;

private javax.swing.JButton cari;

private javax.swing.JTextField caribarang;

private javax.swing.JTextField hrgsat;

private com.toedter.calendar.JDateChooser jDateChooser1;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel10;

private javax.swing.JLabel jLabel11;

private javax.swing.JLabel jLabel12;

private javax.swing.JLabel jLabel13;

private javax.swing.JLabel jLabel14;

private javax.swing.JLabel jLabel15;

private javax.swing.JLabel jLabel18;

private javax.swing.JLabel jLabel19;

private javax.swing.JLabel jLabel2;

Page 37: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

66

private javax.swing.JLabel jLabel3;

private javax.swing.JLabel jLabel6;

private javax.swing.JLabel jLabel7;

private javax.swing.JLabel jLabel8;

private javax.swing.JLabel jLabel9;

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel2;

private javax.swing.JPanel jPanel3;

private javax.swing.JPanel jPanel4;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JScrollPane jScrollPane2;

private javax.swing.JLabel jam1;

private javax.swing.JTextField jmlhbl;

private javax.swing.JTextField kdbrg;

private javax.swing.JTextField kdpenjualan;

private javax.swing.JTextField nmbrg;

private javax.swing.JButton simpan;

private javax.swing.JTextField stock_b;

private javax.swing.JTextField stok;

private javax.swing.JTable tabel_brg;

private javax.swing.JTable tabel_transaksi;

private javax.swing.JButton tambah;

private javax.swing.JTextField total;

private javax.swing.JLabel total_b;

// End of variables declaration

private String id() {

String no = null;

try {

con.koneksiDatabase();

String sql = "select right (kode_jual,4)+1 from transaksi";

ResultSet rs = con.eksekusiQuery(sql);

if (rs.next()) {

rs.last();

no = rs.getString(1);

while (no.length() < 4) {

no = "000" + no;

no = "p" + no;

kdpenjualan.setText(no);

}

} else {

no = "p0001";

kdpenjualan.setText(no);

}

} catch (Exception e) {

}

return no;

}

void setjam() {

new Thread() {

@Override

public void run() {

while (waktumulai == 0) {

Calendar kalendar = new GregorianCalendar();

int jam = kalendar.get(Calendar.HOUR);

Page 38: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

67

int menit = kalendar.get(Calendar.MINUTE);

int detik = kalendar.get(Calendar.SECOND);

int AM_PM = kalendar.get(Calendar.AM_PM);

String siang_malam = "";

if (AM_PM == 1) {

siang_malam = "PM";

} else {

siang_malam = "AM";

}

String time = jam + ":" + menit + ":" + detik + ":" + siang_malam;

jam1.setText(time);

}

}

}.start();

}

private void table1() {

String namaKolom[] = {"kd_barang", "nm_barang", "stock", "harga"};

rs = con.querySelect(namaKolom, "barang");

tabel_brg.setModel(new ResultSetTable(rs));

}

private void table2() {

String namaKolom[] = {"kode_jual", "tgl_jual", "kode_barang", "jumlah_beli",

"harga_satuan", "total"};

rs = con.querySelect(namaKolom, "transaksi");

tabel_transaksi.setModel(new ResultSetTable(rs));

}

private void ambildata() {

String st = (String) caribarang.getText();

ResultSet rst = con.querySelectAll("barang", "kd_barang='" + st + "'OR nm_barang ='" +st+

"'");

try {

while (rst.next()) {

this.kdbrg.setText(rst.getString("kd_barang"));

this.nmbrg.setText(rst.getString("nm_barang"));

this.hrgsat.setText(rst.getString("harga"));

this.stok.setText(rst.getString("stock"));

}

} catch (SQLException ex) {

Logger.getLogger(formtransaksi.class.getName()).log(Level.SEVERE, null, ex);

}

}

private void clear() {

kdbrg.setText("");

nmbrg.setText("");

stok.setText("");

hrgsat.setText("");

jmlhbl.setText("");

}

Page 39: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

68

private void nonaktif() {

kdbrg.setEnabled(false);//enable u/ mmfungsikan/tidak suatu item..

nmbrg.setEnabled(false);//visible u/ menampilkan/tidak (mncul/tidak muncul) item

hrgsat.setEnabled(false);

stok.setEnabled(false);

total.setEnabled(false);

}

private void aktif() {

kdbrg.setEnabled(false);//enable u/ mmfungsikan/tidak suatu item..

nmbrg.setEnabled(false);//visible u/ menampilkan/tidak (mncul/tidak muncul) item

hrgsat.setEnabled(false);

stok.setEnabled(false);

total.setEnabled(false);

}

private void hitungtotal() {

if (!jmlhbl.getText().isEmpty()) {

int ttl1 = Integer.parseInt(hrgsat.getText());

int ttl2 = Integer.parseInt(jmlhbl.getText());

int ttl3 = ttl1 * ttl2;

String a = Integer.toString(ttl3);

total.setText(a);

int stok1 = Integer.parseInt(stok.getText());

int stok2 = Integer.parseInt(jmlhbl.getText());

int stok3 = stok1 - stok2;

String c = Integer.toString(stok3);

stock_b.setText(c);

} else {

JOptionPane.showMessageDialog(this, "isikan jumlah beli");

jmlhbl.requestFocus();

}

}

private void simpan() {

try {

if (!kdbrg.getText().isEmpty() && !nmbrg.getText().isEmpty()

&& !hrgsat.getText().isEmpty() && !stok.getText().isEmpty()

&& !jmlhbl.getText().isEmpty() && !total.getText().isEmpty()

&& !kdpenjualan.getText().isEmpty()) {

String kolom[] = {"kode_jual", "tgl_jual", "kode_barang", "jumlah_beli", "harga_satuan",

"total"};//

java.util.Date tgl = (java.util.Date) this.jDateChooser1.getDate();

String isi[] = {kdpenjualan.getText(), new java.sql.Date(tgl.getTime()).toString(),

kdbrg.getText(),jmlhbl.getText(), hrgsat.getText(), total.getText()};

System.out.println(con.queryInsert("transaksi", kolom, isi));

table1();

table2();

Page 40: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

69

} else {

}

} catch (Exception e) {

System.out.println("salah");

}

}

private void update_brg() {

String kolom[] = {"kd_barang", "stock"};

String isi[] = {kdbrg.getText(), stock_b.getText()};

con.queryUpdate("barang", kolom, isi, "kd_barang='" + String.valueOf(kdbrg.getText()) +

"'");

}

private void cetak() {

try {

String Namafile = "src/laporan/cetak_transaksi.jasper";

Class.forName("com.mysql.jdbc.Driver").newInstance();

Connection koneksi = DriverManager.getConnection("jdbc:mysql://localhost/penjualan",

"root", "");

HashMap hash = new HashMap();

//mengambil parameter dari ireport

hash.put("kode", kdpenjualan.getText());

File file = new File(Namafile);

JasperReport jasperReport = (JasperReport) JRLoader.loadObject(file.getPath());

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, hash, koneksi);

JasperViewer.viewReport(jasperPrint);

} catch (Exception ex) {

javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());

}

}

}

3.5.2. Blacbox Testing

A. Form Login Admin

Tabel III.8.

Hasil Pengujian Black Box Testing Form Login Admin

No. Skenario

pengujian

Test case Hasil yang

diharapkan

Hasil

pengujian

Kesimpulan

1. Nama username

dan Password

tidak diisi

kemudian klik

tombol login

Nama username:

(kosong)

Password:

(kosong)

Sistem akan

menolak

akses dan

menampilka

n pesan

“login

gagal, coba

lagi”

Sesuai

harapan

Valid

2. Mengetikkan

Nama user dan

Password tidak

diisi atau kosong

Nama user:

Toto tosikin

Sistem akan

menolak

akses dan

menampilka

Sesuai

harapan

Valid

Page 41: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

70

kemudian klik

tombol login

Password :

(kosong)

n pesan

“login

gagal, coba

lagi”

3. Mengetikkan

salah satu kondisi

numerik diisi

huruf pada

Password

kemudian klik

tombol login

Nama user: Toto

tosikin

(benar)

Password:

toto

(salah)

Sistem akan

menolak

Akses dan

menampilka

n pesan

“login

gagal, coba

lagi”

Sesuai

harapan

Valid

4. Mengetikkan

salah satu kondisi

salah pada Nama

user atau

Password

kemudian klik

tombol login

Nama user: Toto

tosikin

(benar)

Password:

12345

(salah)

Sistem akan

menolak

Akses dan

menampilka

n pesan

“login

gagal, coba

lagi”

Sesuai

harapan

Valid

5. Mengetikkan

Nama user dan

Password dengan

data yang benar

kemudian klik

tombol login

Nama user : Toto

tosikin

(benar)

Password:

123456789

(benar)

Sistem akan

menerima

akses login

dan akan

menampilka

n pesan

“Login

Berhasil!

Selamat

Datang toto

tosikin”.

Sesuai

harapan

Valid

Tabel III.10.

Hasil Pengujian Black Box Testing Form Data Barang

No. Skenario

pengujian

Test case Hasil yang

diharapkan

Hasil

pengujian

Kesimpulan

1. Klik tambah data

tidak diisi

kemudian klik

tombol simpan

Nama Barang:

(kosong)

Stock: (kosong)

Harga satuan:

(kosong)

Sistem akan

menolak

akses dan

menampilka

n pesan

“data isisan

ada yang

kosong”

Sesuai

harapan

Valid

Page 42: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

71

2. Mengetikkan

Nama Barang, dan

stock, harga

satuan tidak diisi

atau kosong

kemudian klik

tombol simpan

Nama Barang:

(danke 100gr)

Stock: (kosong)

Harga satuan:

(kosong)

Sistem akan

menolak

akses dan

menampilka

n pesan

“data isisan

ada yang

kosong”

Sesuai

harapan

Valid

3. Semua data di isi

kemudian klik

tombol simpan

Nama Barang:

(danke 100gr)

Stock:

(20)

Harga satuan:

(20000)

Sistem akan

menerima

akses dan

akan

menampilka

n pesan

“data

berhasil

disimpan”.

Sesuai

harapan

Valid

4. Nama cari tidak

diisi kemudian

klik tombol cari

Kd barang:

(kosong)

Nm barang:

(kosong)

Sistem akan

menolak

Akses dan

menampilka

n pesan

“isi data

pencarian”

Sesuai

harapan

Valid

5. Nama cari diisi

nama atau kd

barang kemudian

klik tombol cari

Kd barang:

(danke 100gr)

Nama:

(kosong)

Sistem akan

menerima

akses dan

akan

menampilka

n data yang

dicari

Sesuai

harapan

Valid

Tabel III.11.

Hasil Pengujian Black Box Testing Form transaksi

No. Skenario

pengujian

Test case Hasil yang

diharapkan

Hasil

pengujian

Kesimpulan

1. Klik tambah data

tidak diisi

kemudian klik

tombol simpan

Tanggal penjualan:

(kosong)

Cari:

(kosong)

Sistem akan

menolak

akses dan

menampilka

n pesan

“data isisan

ada yang

kosong”

Sesuai

harapan

Valid

2. Mengetikkan

Cari, dan jumlah

Tanggal penjualan:

(kosong)

Sistem akan

menolak

Sesuai

harapan

Valid

Page 43: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

72

beli, tanggal tidak

diisi atau kosong

kemudian klik

tombol simpan

Cari:

(10003)

Jumlah beli:

(kosong)

akses dan

menampilka

n pesan

“data isisan

ada yang

kosong”

4. Semua data di isi

kemudian klik

tombol simpan

Tanggal penjualan:

(20-12-2019)

Cari:

(10003)

Jumlah beli:

(2)

Sistem akan

menerima

Akses dan

menampilka

n pesan

“transaksi

berhasil,

ingin

menamabh

transaksi?

Ok/no” pilih

ok kembali

ke transaksi

apabila pilih

no transaksi

selesai dan

sistem

menampilka

n “Terima

kasih,

kwitansi

sedang

dicetak”

Sesuai

harapan

Valid

3.5.3. Spesifikasi Hardware dan Software

Tabel III.12.

Spesifikasi Hardware dan Software

Kebutuhan Keterangan

Sistem Windows 7 64-bit

Prosesor AMD A4-5000 APU with Radeon(TM) HD

Grapics (4 CPUs), ~1.5GHz

Ram 2GB

Harddisk 464GB

Monitor 14”LED

Keyboard 84Key

Printer HP Deskjet Ink Advantage 2135

Mouse Standar

Software Kebutuhan menjalankan aplikasi secara local:

Bahasa script programming : JAVA 8.1

Web Server : Php Myadmin

DBMS : Mysql

Page 44: BAB III PEMBAHASAN - repository.bsi.ac.id · cukupan tempat untuk menempatkan barang-barangnya. Seiring berjalannya waktu, pada tahun 2014 Toko ini mengalami peningkatan penjualan,

73