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.
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.
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.
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
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
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
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.
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.
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.
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.
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.
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.
42
1. Gambar dibawah ini menjelaskan activity diagram kelola data admin
Sumber: Hasil Rancangan (2019)
Gambar III.4.
Gambar Activity Diagram Data Admin
43
2. Gambar dibawah ini menjelaskan activity diagram Kelola data barang
Sumber: Hasil Rancangan (2019)
Gambar III.5.
Gambar Activity Diagram Kasir
44
3. Gambar dibawah ini menjelaskan activity diagram Transaksi
Sumber: Hasil Rancangan (2019)
Gambar III.7.
Gambar Activity Diagram Transaksi
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
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
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)
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
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
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
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
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
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
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
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
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
*/
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();
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 :");
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) {
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));
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));
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);
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);
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) ">
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;
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);
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("");
}
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();
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
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
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
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
73