SISTEM INFORMASI PEMBELIAN, PENJUALAN, DAN INVENTORI ...
Transcript of SISTEM INFORMASI PEMBELIAN, PENJUALAN, DAN INVENTORI ...
i
SISTEM INFORMASI
PEMBELIAN, PENJUALAN, DAN INVENTORI BARANG
MENGGUNAKAN PENDEKATAN BERORIENTASI OBYEK
STUDI KASUS : TOKO IJO
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Jurusan Teknik Informatika
Disusun Oleh :
YUNIANTO
NIM : 055314020
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2010
ii
PURCHASE, SALE, AND INVENTORY OF GOODS
INFORMATION SYSTEM USING OBJECT ORIENTED
APPROACH
CASE STUDY: TOKO IJO
A THESIS
Presented as a Partial Fulfillment of the Requirements
To Obtain Sarjana Teknik Degree
In Informatics Engineering
Disusun Oleh :
YUNIANTO
NIM : 055314020
INFORMATICS ENGINEERING STUDY PROGRAM
INFORMATICS ENGINEERING DEPARTMENT
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2010
iii
HALAMAN PERSETUJUAN
iv
HALAMAN PENGESAHAN
v
PERNYATAAN KEASLIAN KARYA
vi
ABSTRAK
Toko Ijo adalah toko kelontong yang menjual berbagai macam jenis rokok,
makanan ringan,dan lain-lain. Permasalahan yang terjadi selama ini adalah
penjualan, pembelian dan inventori masih menggunakan kertas untuk menyimpan
data-data tersebut dan nota penjualan masih berupa buku nota, sehingga masih
kesulitan ketika harus mengecek stok barang, untuk mengetahui harga baru barang
jika harga barang tersebut naik/turun dan nota penjualan masih berupa buku nota
sehingga penjual harus menulis barang apa yang dibeli dan menghitungnya
dengan manual/kalkulator sehingga rentan salah menghitung.
Sistem ini dibuat menggunakan Java yang dikoneksikan dengan basis data
berorientasi obyek dan metode pengembangan perangkat lunak berorientasi
obyek. Dalam software atau perangkat lunak terdapat 2 user ( pemilik dan
karyawan ). Pemilik menggunakan username dan password untuk mengakses,
pemilik dapat memasukan, mengupdate, menghapus dan mencari data barang ( id
barang, nama barang, stok barang dan harga barang ), serta melakukan transaksi
pembelian dan semua yang dilakukan karyawan. Karyawan hanya dapat mencari
dan melihat data barang, serta dapat melakukan transaksi penjualan. Dengan
terciptanya sistem informasi ini pencarian data barang jauh lebih mudah, transaksi
penjualan dan pembelian tidak lagi dilakukan secara manual dan keamanan jauh
lebih terjamin.
Perangkat lunak diuji menggunakan metode white box dan black box
testing.
vii
ABSTRACT
Toko Ijo is a small store that sells various kind of goodies such as
cigarettes, snacks and so on. There are small problems that occur in regard to
keeping track of sold items, items to buy as well as inventory which still use
papers to hold all the data and a note book to keep track of sale records. This
introduces difficulties when it is time to check on stocked items, or to keep track
of item’s new price if the price happens to go up or down. It is also becoming
cumbersome when the store owner has to list all of the stocked items and do a
manual count that is prone to error.
This system uses Java program that is connected to a database and
developed in a object oriented method. The software consists of 2 users (Owner
and employee). The owner user requires username and password to access data
and this user is privileged to insert, update, delete and search item’s data (item’s
id, name, number of stock and item’s price) as well as to perform purchase
transaction and everything that employee user can do. Employee user can only
search, view item’s data and perform purchase transaction. With this system, data
lookups on item can be much easier to do, purchase and sell transactions no longer
need to be done manually and the security is much more guaranteed.
The software is tested using white box and black box testing method.
viii
ix
KATA PENGANTAR
Puji syukur ke hadirat Tuhan Yang Maha Esa atas berkat dan kasihnya
sehingga penulis dapat menyelesaikan skripsi ini.
Skripsi ini ditulis untuk memenuhi salah satu syarat dalam memperoleh
gelar Sarjana Teknik, Program Studi Teknik Informatika di Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.
Dalam penulisan skripsi ini penulis menyadari banyak pihak yang telah
memberikan sumbangan baik pikiran, waktu, tenaga, bimbingan dan dorongan
kepada penulis sehingga akhirnya skripsi ini dapat selesai. Oleh karena itu pada
kesempatan ini penulis menyampaikan ucapan terimakasih kepada :
1. Sri Hartati Wijono, S.Si., M.Kom. selaku dosen pembimbing I yang telah
memberikan bimbingan, arahan dan petunjuk selama penulisan skripsi.
2. Ridowati Gunawan, S.Kom, M.T. selaku dosen pembimbing II yang telah
memberikan bimbingan, arahan dan petunjuk selama penulisan skripsi.
3. Yosef Agung Cahyanta, S.T., M.T. selaku Dekan Fakultas Sains dan Teknologi.
4. Puspaningtyas Sanjoyo Adi, S.T., M.T. selaku Kepala Program Studi
Teknik Informatika.
5. Eko Hari Parmadi, S.Si., M.Kom dan P.H.Prima Rosa, S.Si, M.Sc selaku
dosen penguji yang telah memberikan masukan, saran dan kritik yang
membangun untuk skripsi ini.
6. Papih Rudy Adi Hermanto / Ting Kwie Kiat (alm), Mamih Rosdiana
Widjaya / Oey Cian Nio (alm), Ko Rosdianto, Ko Martiono, Ko Budiono
x
dan Keponakanku (Steven Rain Martin), Kakak iparku Henny Octavia,
Nency Aprilia Alen, Om dan Tante Adi Pranoto, Om Chong, Tante Evi,
Tante Hong Liang yang telah banyak memberikan dukungan secara moril
maupun materi kepada penulis selama penyusunan skripsi ini.
7. Seluruh dosen pengajar Jurusan Teknik Informatika pada khususnya, staff
sekretariat fakultas Teknik, BABPSI, BAA dan AUK pada umumnya.
8. Aquino Ricky Sanjaya,S.T. selaku pemilik Toko Ijo.
9. Teman-temanku angkatan 2005 yang telah memberikan semangat kepada
penulis selama penyusunan skripsi ini.
Penulis menyadari bahwa skripsi ini masih banyak kekurangan dan jauh
dari kesempurnaan, sehingga segala kritik dan saran yang bersifat membangun
sangat penulis harapkan demi perbaikan skripsi ini. Akhirnya dengan segala
kekurangan yang ada, penulis berharap agar skripsi ini masih dapat diambil
manfaatnya.
Yogyakarta, 19 September 2010
Penulis
Yunianto
xi
DAFTAR ISI
HALAMAN PERSETUJUAN ......................................................................................... iii
HALAMAN PENGESAHAN ...........................................................................................iv
PERNYATAAN KEASLIAN KARYA ............................................................................. v
ABSTRACT ................................................................................................................... vii
PERNYATAAN PUBLIKASI ....................................................................................... viii
KATA PENGANTAR …………………………………………………………………… ix DAFTAR ISI ....................................................................................................................xi
DAFTAR GAMBAR ...................................................................................................... xiv
DAFTAR TABEL ....................................................................................................... xviii
DAFTAR LAMPIRAN ................................................................................................... xix
BAB I PENDAHULUAN .................................................................................................. 1
1.1 LATAR BELAKANG MASALAH ............................................................................... 1 1.2 RUMUSAN MASALAH ............................................................................................ 2 1.3 BATASAN MASALAH ............................................................................................. 2 1.4 TUJUAN PENELITIAN DAN MANFAAT PENELITIAN .................................................. 3 1.5 METODE PENELITIAN ............................................................................................ 3 1.6 SISTEMATIKA PENULISAN ..................................................................................... 5
BAB II LANDASAN TEORI ............................................................................................ 7
2.1 SISTEM INFORMASI .................................................................................................... 7 2.2 TEKNIK DASAR OOAD (OBJECT-ORIENTED ANALYSIS AND DESIGN) ............................. 7 2.2.1 FAST METODOLOGY ................................................................................................ 8 2.3 OODB .................................................................................................................... 12 2.4 OODBMS PADA DB4O .......................................................................................... 12 2.4.1 TIGA JENIS OBYEK QUERY DALAM DB4O ............................................................... 13
BAB III ANALISIS DAN PERANCANGAN SISTEM ................................................... 21
3.1 PROFILE TOKO IJO ................................................................................................... 21 3.2.1 GAMBARAN UMUM SISTEM YANG ADA ................................................................. 22 3.2.2 ANALISIS SISTEM YANG ADA ................................................................................ 22 3.2.3 PROBLEM STATEMENT ............................................................................................ 26 3.3 PROBLEM ANALYSIS .................................................................................................. 27 3.3.1 CAUSE EFFECT ANALYSIS AND SYSTEM IMPROVEMENT OBJECTIVE ............................. 27 3.4 REQUIREMENT ANALYSIS ........................................................................................... 30 3.4.1 KONTEKS DIAGRAM.............................................................................................. 30
xii
3.4.2 USE CASE ........................................................................................................... 31 3.4.3 USE CASE NARRATIVE ............................................................................................ 32 3.5 LOGICAL DESIGN ..................................................................................................... 49 3.5.1 DIAGRAM AKTIVITAS............................................................................................ 49 3.5.2 DIAGRAM KELAS .................................................................................................. 61 3.5.3 MATRIKS ASOSIASI ............................................................................................... 66 3.5.4 DIAGRAM KELAS .................................................................................................. 68 3.5.3 DIAGRAM SEQUENCE ............................................................................................. 73 DESAIN INTERFACE......................................................................................................... 82
BAB IV IMPLEMENTASI DAN ANALISA HASIL ...................................................... 89
4.1 PENJELASAN ANTAR MUKA SISTEM ..................................................................... 89 4.1.1 ANTAR MUKA MENU LOGIN ................................................................................. 89 4.1.2 ANTAR MUKA MENU UTAMA ............................................................................... 90 4.1.3 ANTAR MUKA MENU BARANG .............................................................................. 91 4.1.4 ANTAR MUKA MENU TAMBAH BARANG ............................................................... 91 4.1.5 ANTAR MUKA MENU UBAH BARANG ................................................................... 92 4.1.6 ANTAR MUKA MENU PENJUALAN ........................................................................ 93 4.1.7 ANTAR MUKA MENU PEMBELIAN ......................................................................... 94 4.1.8 ANTAR MUKA MENU DISTRIBUTOR ....................................................................... 95 4.1.9 ANTAR MUKA MENU TAMBAH DATA DISTRIBUTOR ............................................... 96 4.1.10 ANTAR MUKA MENU UBAH DATA DISTRIBUTOR ................................................. 97 4.1.11 ANTAR MUKA MENU DATA KARYAWAN ............................................................. 97 4.1.12 ANTAR MUKA MENU TAMBAH DATA KARYAWAN ............................................... 98 4.1.13 ANTAR MUKA MENU RETUR PENJUALAN ............................................................. 99 4.1.14 ANTAR MUKA MENU RETUR PEMBELIAN ......................................................... 100 4.1.15 ANTAR MUKA MENU LAPORAN PENJUALAN ..................................................... 101 4.1.16 ANTAR MUKA MENU LAPORAN PEMBELIAN ..................................................... 102 4.1.17 ANTAR MUKA MENU LAPORAN DETAIL PENJUALAN ......................................... 102 4.1.18 ANTAR MUKA MENU LAPORAN DETAIL PEMBELIAN TUNAI ............................... 103 4.1.19 ANTAR MUKA MENU LAPORAN DETAIL PEMBELIAN KREDIT ............................. 104 4.1.20 ANTAR MUKA MENU PEMBAYARAN.................................................................. 104 4.1.21 ANTAR MUKA MENU BAYAR HUTANG .............................................................. 105 4.1.22 ANTAR MUKA MENU PENCARIAN BARANG ....................................................... 106 4.1.23 ANTAR MUKA MENU PENCARIAN DATA DISTRIBUTOR ...................................... 106 4.1.24 ANTAR MUKA MENU HAK AKSES .................................................................... 107 4.1.25 ANTAR MUKA MENU UBAH PASSWORD ADMIN .................................................. 107 4.1.26 ANTAR MUKA MENU UBAH PASSWORD KARYAWAN .......................................... 108 4.1.27 ANTAR MUKA MENU UBAH DATA KARYAWAN ................................................. 108 4.2 PENJELASAN IMPLEMENTASI OODB MENGGUNAKAN DB4O. .............................. 109
xiii
4.3 PENJELASAN KONSEP MVC MENGGUNAKAN JAVA ........................................... 113 4.3.2 CONTROLLER ................................................................................................ 115 4.3.2.1 CONTROLLER PENJUALAN ................................................................................. 115 4.3.2.2 CONTROLLER LAPORAN PEMBELIAN ................................................................ 119 4.3.2 MODEL ............................................................................................................... 123
BAB V PENGUJIAN SISTEM ...................................................................................... 127
5.1 PENGUJIAN WHITE BOX ..................................................................................... 127 5.1.1 PENGUJIAN PROSES LOGIN ................................................................................ 127 5.1.2 PENGUJIAN PROSES PENGUBAHAN PASSWORD .................................................... 128 5.1.3 PENGUJIAN PROSES MENU UTAMA .................................................................... 128 5.1.4 PENGUJIAN PROSES TAMBAH BARANG .......................................................... 128 5.1.5 PENGUJIAN PROSES UBAH DATA BARANG ......................................................... 129 5.1.6 PENGUJIAN PROSES TAMBAH DATA DISTRIBUTOR ............................................. 129 5.1.7 PENGUJIAN PROSES UBAH DATA DISTRIBUTOR. ................................................ 130 5.1.8 PENGUJIAN PROSES SEARCHING DATA DISTRIBUTOR ............................................ 130 5.1.9 PENGUJIAN PROSES TAMBAH DATA KARYAWAN ........................................... 130 5.1.10 PROSES PENGUJIAN UBAH DATA KARYAWAN ................................................ 130 5.1.11 PROSES PENGUJIAN UBAH DATA PASSWORD KARYAWAN ............................... 130 5.1.12 PROSES PENGUJIAN LAPORAN ....................................................................... 131 5.1.13 PROSES PENGUJIAN PENCARIAN DATA BARANG ................................................ 131 5.1.14 PROSES PENGUJIAN DATA TRANSAKSI ........................................................... 131 5.1.15 PROSES PENGUJIAN RETUR ............................................................................ 131 5.1.16 PROSES PENGUJIAN BAYAR HUTANG ............................................................. 132 5.1.17 PROSES PENGUJIAN PEMBELIAN .................................................................... 132 5.1.18 PROSES PENGUJIAN PENJUALAN .................................................................... 132 5.2 PENGUJIAN BLACK BOX ..................................................................................... 133
BAB VI KESIMPULAN DAN SARAN ........................................................................ 171
DAFTAR PUSTAKA .................................................................................................... 172
LAMPIRAN A ............................................................................................................... L1
LAMPIRAN B ................................................................................................................ L7
xiv
DAFTAR GAMBAR
GAMBAR 2.1 ENTITY CLASS BARANG ....................................................................... 15
GAMBAR 3.1 KONTEKS DIAGRAM ........................................................................... 30
GAMBAR 3.3 USE CASE KARYAWAN ........................................................................ 32
GAMBAR 3.4 DIAGRAM AKTIVITAS MENCATAT DATA PENJUALAN(A). ......... 49
GAMBAR 3.5 DIAGRAM AKTIVITAS MENCATAT DATA PENJUALAN(B)........... 50
GAMBAR 3.6 DIAGRAM AKTIVITAS MENCATAT DATA RETUR PENJUALAN. . 51
GAMBAR 3.7 DIAGRAM AKTIVITAS MENGHAPUS DATA PENJUALAN. ............ 52
GAMBAR 3.8 DIAGRAM AKTIVITAS PENCARIAN DATA BARANG. .................... 52
GAMBAR 3.9 DIAGRAM AKTIVITAS PEMESANAN BARANG. .............................. 53
GAMBAR 3.10 DIAGRAM AKTIVITAS MENCATAT DATA RETUR BARANG. ..... 54
GAMBAR 3.11 DIAGRAM AKTIVITAS PENCARIAN DATA PEMBELIAN. ............ 54
GAMBAR 3.12 DIAGRAM AKTIVITAS PENCATATAN DATA PEMBELIAN. ......... 55
GAMBAR 3.13 DIAGRAM AKTIVITAS PENCATATAN DATA DISTRIBUTOR. ..... 55
GAMBAR 3.14 DIAGRAM AKTIVITAS MENGUBAH DATA DISTRIBUTOR. ......... 56
GAMBAR 3.15 DIAGRAM AKTIVITAS MENCARI DATA DISTRIBUTOR. ............. 56
GAMBAR 3.16 DIAGRAM AKTIVITAS MEMBUAT DATA KARYAWAN BARU. . 57
GAMBAR 3.17 DIAGRAM AKTIVITAS MENGUBAH DATA KARYAWAN. .......... 57
GAMBAR 3.18 DIAGRAM AKTIVITAS MENGECEK INVENTORI. ......................... 58
GAMBAR 3.19 DIAGRAM AKTIVITAS MENCATAT DATA INVENTORI BARU. . 58
GAMBAR 3.20 DIAGRAM AKTIVITAS MENGUBAH DATA INVENTORI. ............ 59
GAMBAR 3.21 DIAGRAM AKTIVITAS PENENTUAN HARGA JUAL. .................... 59
GAMBAR 3.22 DIAGRAM AKTIVITAS MENGUBAH PASSWORD ADMIN. ........... 60
GAMBAR 3.23 DIAGRAM AKTIVITAS MENGHAPUS DATA KARYAWAN. ......... 60
GAMBAR 3.24 MATRIKS ASOSIASI (A) ..................................................................... 66
GAMBAR 3.25 MATRIKS ASOSIASI (B) ..................................................................... 67
GAMBAR 3.26 DIAGRAM KELAS ............................................................................... 68
GAMBAR 3.27 IMPLEMENTASI MENU OPERATOR................................................. 69
GAMBAR 3.28 IMPLEMENTASI MENU BARANG. .................................................... 69
xv
GAMBAR 3.29 IMPLEMENTASI MENU KARYAWAN. ............................................. 70
GAMBAR 3.30 IMPLEMENTASI MENU DISTRIBUTOR. .......................................... 70
GAMBAR 3.31 IMPLEMENTASI MENU PENJUALAN. .............................................. 71
GAMBAR 3.32 IMPLEMENTASI MENU PEMBELIAN. .............................................. 71
GAMBAR 3.33 IMPLEMENTASI MENU RETUR BELI ............................................... 72
GAMBAR 3.34 IMPLEMENTASI MENU RETUR JUAL. ............................................. 72
GAMBAR 3.35 DIAGRAM SEQUENCE PENCARIAN DATA BARANG. ................... 73
GAMBAR 3.37 DIAGRAM SEQUENCE PENGINPUTAN DATA INVENTORI BARANG BARU. ........................................................................................................... 74
GAMBAR 3.38 DIAGRAM SEQUENCE PENGUBAHAN DATA INVENTORI BARANG. ....................................................................................................................... 74
GAMBAR 3.39 DIAGRAM SEQUENCE PENJUALAN BARANG. ............................. 75
GAMBAR 3.40 DIAGRAM SEQUENCE RETUR PENJUALAN BARANG. ................. 75
GAMBAR 3.41 DIAGRAM SEQUENCE PEMESANAN/PEMBELIAN BARANG. ...... 75
GAMBAR 3.42 DIAGRAM SEQUENCE DISTRIBUTOR BARU. ................................. 76
GAMBAR 3.43 DIAGRAM SEQUENCE UBAH DATA DISTRIBUTOR. ..................... 76
GAMBAR 3.44 DIAGRAM SEQUENCE PENCARIAN DATA DISTRIBUTOR. .......... 77
GAMBAR 3.45 DIAGRAM SEQUENCE INPUTAN DATA KARYAWAN BARU. ...... 77
GAMBAR 3.46 DIAGRAM SEQUENCE PENGUBAHAN DATA KARYAWAN. ........ 78
GAMBAR 3.47 DIAGRAM SEQUENCE PENCARIAN DATA KARYAWAN. ............ 78
GAMBAR 3.48 DIAGRAM SEQUENCE PENCATATAN DATA RETUR PEMBELIAN. ........................................................................................................................................ 79
GAMBAR 3.49 DIAGRAM SEQUENCE PENCARIAN DATA PEMBELIAN. ............. 79
GAMBAR 3.50 DIAGRAM SEQUENCE VIEW DATA HUTANG ................................ 80
GAMBAR 3.51 DIAGRAM SEQUENCE PEMBAYARAN HUTANG ........................... 80
GAMBAR 3.52 DIAGRAM SEQUENCE PENCARIAN DATA PENJUALAN. ............. 81
GAMBAR 3.53 DIAGRAM SEQUENCE PENGUBAHAN PASSWORD ADMIN. ......... 81
GAMBAR 3.54 DIAGRAM SEQUENCE PENGHAPUSAN DATA KARYAWAN. ...... 81
GAMBAR 3.55 FORM LOGIN........................................................................................ 82
GAMBAR 3.56 FORM MENU UTAMA. ........................................................................ 82
xvi
GAMBAR 3.57 FORM BARANG. .................................................................................. 83
GAMBAR 3.58 FORM TAMBAH BARANG. ................................................................ 83
GAMBAR 3.59 FORM UBAH BARANG. ...................................................................... 84
GAMBAR 3.60 FORM PENJUALAN. ............................................................................ 84
GAMBAR 3.61 FORM PEMBELIAN. ............................................................................ 85
GAMBAR 3.63 FORM TAMBAH KARYAWAN. .......................................................... 85
GAMBAR 3.64 FORM UBAH KARYAWAN. ............................................................... 86
GAMBAR 3.65 FORM PENGUBAHAN PASSWORD. .................................................. 86
GAMBAR 3.66 FORM LAPORAN KEUANGAN. ......................................................... 86
GAMBAR 3.67 FORM DATA TRANSAKSI. ................................................................. 87
GAMBAR 3.68 FORM RETUR BARANG. .................................................................... 87
GAMBAR 3.69 FORM DISTRIBUTOR. ........................................................................ 87
GAMBAR 3.70 FORM TAMBAH DATA DISTRIBUTOR. ........................................... 88
GAMBAR 3.71 FORM UBAH DATA DISTRIBUTOR. ................................................. 88
GAMBAR 3.72 FORM PENCARIAN DATA BARANG DAN DISTRIBUTOR. ........... 88
GAMBAR 4.1 MENU LOGIN ........................................................................................ 89
GAMBAR 4.2 MENU UTAMA. ..................................................................................... 90
GAMBAR 4.3 MENU BARANG .................................................................................... 91
GAMBAR 4.4 MENU TAMBAH BARANG................................................................... 91
GAMBAR 4.5 MENU MENGUBAH DATA BARANG. ............................................... 92
GAMBAR 4.6 MENU PENJUALAN. ............................................................................. 93
GAMBAR 4.7 MENU PEMBELIAN .............................................................................. 94
GAMBAR 4.8 MENU DISTRIBUTOR ........................................................................... 95
GAMBAR 4.10 MENU UBAH DATA DISTRIBUTOR. ................................................ 97
GAMBAR 4.12 MENU TAMBAH DATA KARYAWAN .............................................. 98
GAMBAR 4.13 MENU RETUR PENJUALAN ............................................................... 99
GAMBAR 4.14 MENU RETUR PEMBELIAN ............................................................. 100
GAMBAR 4.17 MENU LAPORAN PENJUALAN ....................................................... 101
GAMBAR 4.16 MENU LAPORAN PEMBELIAN ....................................................... 102
xvii
GAMBAR 4.17 MENU LAPORAN DETAIL PENJUALAN ........................................ 102
GAMBAR 4.18 MENU LAPORAN DETAIL PEMBELIAN TUNAI ........................... 103
GAMBAR 4.21 MENU BAYAR HUTANG .................................................................. 105
GAMBAR 4.22 MENU PENCARIAN BARANG ......................................................... 106
GAMBAR 4.23 MENU PENCARIAN DISTRIBUTOR ................................................ 106
GAMBAR 4.25 MENU UBAH PASSWORD ADMIN. .................................................. 107
GAMBAR 4.27 MENU UBAH DATA KARYAWAN .................................................. 108
xviii
DAFTAR TABEL
TABEL 5.2.1 HASIL PENGUJIAN BLACK BOX PROSES LOGIN ............................. 133
TABEL 5.2.2 HASIL PENGUJIAN BLACK BOX PROSES PENGUBAHAN PASSWORD ................................................................................................................. 134
TABEL 5.2.3 HASIL PENGUJIAN BLACK BOX MENU UTAMA .............................. 135
TABEL 5.2.4 HASIL PENGUJIAN BLACK BOX MENU HAK AKSES. ...................... 139
TABEL 5.2.5 HASIL PENGUJIAN BLACK BOX MENU BARANG. ........................... 142
TABEL 5.2.6 HASIL PENGUJIAN BLACK BOX MENU TAMBAH BARANG. ......... 143
TABEL 5.2.7 HASIL PENGUJIAN BLACK BOX MENU UBAH BARANG. ............... 145
TABEL 5.2.7 HASIL PENGUJIAN BLACK BOX MENU DISTRIBUTOR. .................. 147
TABEL 5.2.7 HASIL PENGUJIAN BLACK BOX MENU TAMBAH DISTRIBUTOR. 149
TABEL 5.2.8 HASIL PENGUJIAN BLACK BOX MENU UBAH DISTRIBUTOR. ...... 150
TABEL 5.2.9 HASIL PENGUJIAN BLACK BOX MENU SEARCHING DISTRIBUTOR. ...................................................................................................................................... 152
TABEL 5.2.10 HASIL PENGUJIAN BLACK BOX MENU KARYAWAN. .................. 153
TABEL 5.2.11 HASIL PENGUJIAN BLACK BOX MENU TAMBAH KARYAWAN. . 154
TABEL 5.2.12 HASIL PENGUJIAN BLACK BOX MENU UBAH KARYAWAN. ....... 156
TABEL 5.2.13 HASIL PENGUJIAN BLACK BOX MENU UBAH PASSWORD KARYAWAN. .............................................................................................................. 157
TABEL 5.2.14 HASIL PENGUJIAN BLACK BOX MENU LAPORAN. ....................... 159
TABEL 5.2.15 HASIL PENGUJIAN BLACK BOX MENU PENCARIAN BARANG. .. 160
TABEL 5.2.16 HASIL PENGUJIAN BLACK BOX MENU DATA TRANSAKSI. ........ 162
TABEL 5.2.17 HASIL PENGUJIAN BLACK BOX PROSES RETUR. .......................... 163
TABEL 5.2.18 HASIL PENGUJIAN BLACK BOX PROSES BAYAR HUTANG. ........ 165
TABEL 5.2.19 HASIL PENGUJIAN BLACK BOX PROSES PEMBAYARAN. ............ 166
TABEL 5.2.20 HASIL PENGUJIAN BLACK BOX PROSES PEMBELIAN.................. 166
TABEL 5.2.21 HASIL PENGUJIAN BLACK BOX PROSES PENJUALAN. ................ 168
xix
DAFTAR LAMPIRAN
A.1 CONTOH LAPORAN PENJUALAN .................................................................. L1
A.2 CONTOH LAPORAN DETAIL PENJUALAN ................................................... L2
A.3 CONTOH LAPORAN PEMBELIAN................................................................... L3
A.4 CONTOH LAPORAN DETAIL PEMBELIAN TUNAI ....................................... L4
A.5 CONTOH LAPORAN DETAIL PEMBELIAN KREDIT ..................................... L5
A.6 CONTOH CETAK NOTA ................................................................................... L6
B.1 KELAS BARANG ............................................................................................... L7
B.2 KELAS DETAIL RETUR PEMBELIAN ............................................................. L8
B.3 KELAS RETUR PENJUALAN ........................................................................... L9
B.4 KELAS DISTRIBUTOR ...................................................................................... L9
B.5 KELAS HISTORI PEMBELIAN KREDIT ........................................................ L10
B.6 KELAS HISTORI PEMBELIAN TUNAI .......................................................... L10
B.7 KELAS HISTORI PENJUALAN ....................................................................... L11
B.8 KELAS HISTORI RETUR BELI ....................................................................... L11
B.9 KELAS HISTORI RETUR JUAL ...................................................................... L12
B.12 KELAS PEMBAYARAN .................................................................................. L14
B.13 KELAS PEMBELIAN ....................................................................................... L14
B.14 KELAS PEMBELIAN KREDIT ........................................................................ L15
B.15 KELAS PEMBELIAN TUNAI .......................................................................... L16
B.16 KELAS PEMILIK .............................................................................................. L16
B.17 KELAS PENJUALAN ....................................................................................... L16
B.18 KELAS RETUR ................................................................................................. L17
B.19 KELAS TRANSAKSI ........................................................................................ L17
C.1 QUISIONER ...................................................................................................... L18
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Toko Ijo adalah toko kelontong yang menjual berbagai macam
jenis rokok, makanan ringan, dan berbagai keperluan sehari-hari. Semakin
banyak pelanggan Toko Ijo, maka Toko Ijo semakin banyak menyediakan
barang kebutuhan pelanggan. Dampak yang terjadi adalah item barang
bertambah banyak. Awalnya pemilik toko dan karyawan hapal dengan
item barang yang ada di Toko Ijo. Perkembangan Toko Ijo yang semakin
pesat, menyebabkan pemilik dan karyawan kesulitan mengingat item
barang yang ada di Toko Ijo, terutama mengenai harga barang yang sering
mengalami perubahan. Tentunya permasalahan ini akan mengurangi
pelayanan kepada konsumen.
Pemilik dan karyawan tidak mengetahui stok barang, sehingga
sering terjadi kekosongan stok. Ketidaktahuan stok barang ini juga
menganggu ketika pemilik akan memesan barang ke distributor. Masalah
yang lain adalah jika ada konsumen yang minta nota, pemilik harus
mencatat nota transaksi penjualan dengan tangan dan perhitungan masih
menggunakan alat bantu hitung (kalkulator). Hal ini mengakibatkan
lamanya proses penulisan dan perhitungan total yang harus dibayar oleh
pembeli.
2
Untuk menjamin kepuasan pembeli, pemilik toko mempunyai
inisiatif membangun sebuah sistem informasi dengan tujuan mengatasi
masalah-masalah tersebut. Sistem informasi yang akan dibangun
menggunakan metodologi pengembangan perangkat lunak berorientasi
obyek. DBMS yang digunakan adalah open source db4o(www.db4o.com).
Bahasa pemrograman yang digunakan untuk mengembangkan sistem
informasi Toko Ijo adalah Java.
1.2 Rumusan Masalah
Bagaimana membuat sistem informasi pembelian, penjualan, dan
inventori barang dengan pendekatan berorientasi obyek yang dapat:
1. Menangani proses pembelian.
2. Menangani proses penjualan.
3. Mengelola inventori.
1.3 Batasan Masalah
1. Sistem tidak menghitung laba-rugi.
2. Sistem ini tidak menangani sistem informasi akuntansinya.
3. Sistem ini tidak menangani penjualan secara kredit.
4. Program dibuat dengan bahasa pemrograman Java dan database db4o
dan tool Netbeans.
3
1.4 Tujuan Penelitian dan Manfaat Penelitian
1.4.1. Tujuan Penelitian
- Menerapkan metodologi pengembangan perangkat lunak
berorientasi obyek pada sistem informasi Toko Ijo
menggunakan bahasa pemrograman Java dan DBMS
berorientasi obyek dengan db4o.
- Membuat sistem informasi yang dapat menangani proses
pembelian, penjualan dan dapat mengelola inventori.
1.4.2 Manfaat Penelitian
Sistem informasi ini dibuat untuk membantu mengatasi
masalah-masalah yang terjadi pada Toko Ijo. Sistem yang lama
masih menggunakan buku dan nota dalam melakukan proses
transaksi. Proses transaksi ditulis dengan tangan sehingga rentan
sekali dengan kesalahan-kesalahan yang dapat menyebabkan
kerugian, baik dipihak Toko Ijo ataupun dipihak pembeli.
1.5 Metode Penelitian
Metode penelitian yang digunakan adalah studi kasus. Adapun
metode pengembangan sistem yang digunakan adalah metodologi
FAST(Whitten. 2004). Langkah – langkah yang dilakukan adalah sebagai
berikut :
4
I. Scope definition
Fase ini merupakan tahap pertama dalam melakukan
pengembangan suatu sistem. Dalam fase ini dilakukan penentuan batasan-
batasan sistem, serta penyusunan project plan.
II. Problem analysis
Dalam fase ini system analyst melakukan analisis menyeluruh
terhadap permasalahan dari sistem yang akan dikembangkan. Dengan
melakukan analisa, system analyst bisa memiliki pengertian menyeluruh
terhadap permasalahan sistem, penyebab permasalahan tersebut, serta
menentukan apakah permasalahan tersebut dapat diselesaikan.
III. Requirement analysis
Dalam fase ini system analyst melakukan analisa terhadap business
requirement dari sistem, sesuai dengan requirement yang dibutuhkan dan
diinginkan user yang menggunakan sistem tersebut.
IV. Logical design
Dalam fase ini business requirement yang ada diterjemahkan
dalam bentuk diagram yang disebut system model.
V. Decision analysis
Permasalahan yang dihadapi sistem biasanya dapat diselesaikan
dengan berbagai solusi. Dalam fase ini, system analyst bertugas untuk
mencari dan menentukan solusi terbaik yang dapat digunakan untuk
menyelesaikan permasalahan yang dihadapi sistem.
5
VI. Physical design and integration
Physical design berfokus pada view yang berbasis teknologi dari
sistem yang meliputi : physical database design specification, physical
business process dan software design specification, dan physical user and
system interface specification.
VII. Construction and testing
Fase ini mempunyai dua tujuan yaitu membangun dan menguji
sistem apakah sudah sesuai dengan kebutuhan dan spesifikasi dari desain
fisik. Dan kedua mengimplementasikan interface antara sistem yang baru
dengan sistem yang ada.
VIII. Instalation and delivery
Kegiatan yang ada pada fase ini: instalasi sistem, kuisioner, final
testing. Juga menyiapkan prosedur konversi. Outputnya adalah petunjuk
penggunaan.
1.6 Sistematika Penulisan
Sistematika penulisan skripsi ini adalah sebagai berikut :
BAB I PENDAHULUAN
Dalam bab pembuka ini secara umum dijelaskan beberapa hal,
diantaranya latar belakang masalah, rumusan masalah, batasan
6
masalah, tujuan penulisan, metode penelitian, serta sistematika
penulisan.
BAB II LANDASAN TEORI
Bab ini mengemukakan teori – teori yang mendukung
mengenai teknologi yang mendasari pembuatan aplikasi ini,
yaitu OOAD, OODB, dan db4o.
BAB III ANALISIS dan PERANCANGAN SISTEM
Bab ini membahas analisa kebutuhan dan perancangan sistem,
mencakup rancangan basis data dan rancangan antar muka
yang akan digunakan.
BAB IV IMPLEMENTASI dan HASIL SISTEM
Bab ini membahas implementasi dalam bentuk program
berdasarkan analisa dan perancangan yang telah dilakukan.
BAB V PENGUJIAN SISTEM
Bab ini berisi pengujian dengan black box dan white box untuk
menguji sistem informasi penjualan, pembelian, dan inventori
dengan melakukan pendekatan berbasis obyek.
BAB VI PENUTUP
Dalam bab ini berisi kesimpulan dan saran dari pengujian,
perancangan, dan implementasi sistem.
7
BAB II
LANDASAN TEORI
2.1 Sistem Informasi
Sistem informasi adalah suatu sistem di dalam suatu organisasi yang
mempertemukan kebutuhan pengolahan transaksi harian, bersifat manajerial
dan kegiatan strategi dari suatu organisasi dan menyediakan pihak luar
tertentu dengan laporan-laporan yang diperlukan (Leitch. 1983).
Untuk metodologi pengembangan database terdiri dari banyaka model,
diantaranya adalah model relasional database, model hierarkis, model
jaringan, obyek oriented database, obyek relasional database, dan lain
sebagainya.
2.2 Teknik Dasar OOAD (Object-Oriented Analysis and Design)
Macam-macam metodologi OOAD:
Architected Rapid Application Development (Architected RAD).
Dynamic Systems Development Methodology (DSDM).
Joint Application Development (JAD).
Information Engineering (IE).
Rapid Application Development (RAD).
8
Rational Unified Process (RUP).
Structured Analysis and Design.
eXtreme Programming (XP).
Fast Mehtodology.
2.2.1 FAST Metodology
Metode pengembangan sistem yang digunakan adalah metodologi
FAST(Whitten. 2004). Langkah – langkah yang dilakukan adalah sebagai
berikut :
I. Scope definition
Fase ini merupakan tahap pertama dalam melakukan
pengembangan suatu sistem. Dalam fase ini dilakukan penentuan batasan-
batasan sistem, serta penyusunan project plan.
II. Problem analysis
Dalam fase ini system analyst melakukan analisis menyeluruh
terhadap permasalahan dari sistem yang akan dikembangkan. Dengan
melakukan analisa, system analyst bisa memiliki pengertian menyeluruh
terhadap permasalahan sistem, penyebab permasalahan tersebut, serta
menentukan apakah permasalahan tersebut dapat diselesaikan.
9
III. Requirement analysis
Dalam fase ini system analyst melakukan analisa terhadap business
requirement dari sistem, sesuai dengan requirement yang dibutuhkan dan
diinginkan user yang menggunakan sistem tersebut.
IV. Logical design
Dalam fase ini business requirement yang ada diterjemahkan
dalam bentuk gambar-gambar yang disebut system model.
V. Decision analysis
Permasalahan yang dihadapi sistem biasanya dapat diselesaikan
dengan berbagai solusi. Dalam fase ini, system analyst bertugas untuk
mencari dan menentukan solusi terbaik yang dapat digunakan untuk
menyelesaikan permasalahan yang dihadapi sistem.
VI. Physical design and integration
Physical design berfokus pada view yang berbasis teknologi dari
sistem yang meliputi : Physical database design specification, Physical
business process dan Software design specification, dan Physical user and
System interface specification.
VII. Construction and testing
Fase ini mempunyai dua tujuan yaitu membangun dan menguji
sistem apakah sudah sesuai dengan kebutuhan dan spesifikasi dari fisikal
10
design. Dan kedua mengimplementasikan interface antara sistem yang
baru dengan sistem yang ada.
VIII. Instalation and delivery
Kegiatan yang ada pada fase ini: instalasi sistem, kuisioner, final
testing. Juga menyiapkan prosedur konversi. Outputnya adalah petunjuk
penggunaan.
Dalam dunia pemodelan, metodologi implementasi obyek
walaupun terikat kaidah-kaidah standar, namun teknik pemilihan obyek
tidak terlepas pada subyektifitas analyst & designer. Beberapa obyek akan
diabaikan dan beberapa obyek menjadi perhatian untuk diimplementasikan
di dalam sistem. Hal ini sah-sah saja karena kenyataan bahwa suatu
permasalahan sudah tentu memiliki lebih dari satu solusi. Ada 3 (tiga)
teknik/konsep dasar dalam konsep berorientasi obyek, yaitu pemodulan
(encapsulation), penurunan (inheritance) dan polymorphism.
a. Pemodulan (Encapsulation)
Enkapsulasi memisahkan antara bagian publik (yang bisa dilihat oleh
pihak luar (obyek lain) dan bagian privat (internal object itu sendiri)
dengan tegas fitur ini memberi keleluasaan/independensi untuk bekerja
dengan aspek internal tanpa harus bergantung pada aspek publik/eksternal
berguna untuk menangani berbagai persoalan interoperabilitas.
Contohnya pada dunia nyata, seorang ibu rumah tangga menanak nasi
dengan menggunakan rice cooker, ibu tersebut menggunakannya hanya
11
dengan menekan tombol. Tanpa harus tahu bagaimana proses itu
sebenarnya terjadi. Disini terdapat penyembunyian informasi milik rice
cooker, sehingga tidak perlu diketahui seorang ibu. Dengan demikian
menanak nasi oleh ibu menjadi sesuatu yang menjadi dasar bagi konsep
information hiding.
b. Penurunan (Inheritance)
Inheritance adalah obyek-obyek memiliki banyak persamaan, namun ada
sedikit perbedaan. Contoh dengan beberapa buah mobil yang mempunyai
kegunaan yang berbeda-beda. Ada mobil bak terbuka seperti truk, bak
tertutup seperti sedan dan minibus. Walaupun demikian obyek-obyek ini
memiliki kesamaan yaitu teridentifikasi sebagai obyek mobil, obyek ini
dapat dikatakan sebagai obyek induk (parent). Sedangkan minibus
dikatakan sebagai obyek anak (child), hal ini juga berarti semua operasi
yang berlaku pada mobil berlaku juga pada minibus.
c. Polymorphism
Pada obyek mobil, walaupun minibus dan truk merupakan jenis obyek
mobil yang sama, namun memiliki juga perbedaan. Misalnya suara truk
lebih keras dari pada minibus, hal ini juga berlaku pada obyek anak (child)
melakukan metoda yang sama dengan algoritma berbeda dari obyek
induknya. Hal ini yang disebut polymorphism, teknik atau konsep dasar
lainnya adalah ruang lingkup / pembatasan. Artinya setiap obyek
mempunyai ruang lingkup kelas, atribut, dan metoda yang dibatasi.
12
2.3 OODB
Object Oriented Database adalah sebuah sistem database yang
menggabungkan semua konsep penting dari object oriented (Whitten. 2004).
Tujuan OODBMS dikembangkan pada awal 1990 untuk menyediakan
penyimpanan obyek yang persistence. Produk-produk ini belum sukses
secara komersil, karena memerlukan konversi data yang ada menjadi format
OODBMS. Organisasi-organisasi terpaksa melakukan konversi walaupun
mahal. OOP membutuhkan penyimpanan obyek yang persistence. Sehingga
beberapa DBMS tradisional menambah kemampuan produknya agar mampu
menyimpan obyek sebaik penyimpanan data yang relasional. Produk ini
disebut Object-Relational DBMS, misalnya Oracle yang telah
mengembangkan fasilitas-fasilitas untuk pemodelan dan penyimpanan obyek.
Sebuah DBMS harus mendukung untuk penyimpanan obyek yang
persisten, yaitu obyek yang survive setelah adanya user session atau program
aplikasi yang dibuat setelah terjadi terminated. Ini merupakan hal yang
kontras untuk obyek transient yang berakhir saat melakukan invocation dari
program. Persisten objek harus tetap ada sampai tidak ada lagi yang
membutuhkan, pada titik ini maka obyek akan di-delete.
2.4 OODBMS Pada DB4O
db4o adalah OODBMS yang sangat bagus. Hadir dalam dua versi, yaitu
versi komersial dan GPL, serta berjalan di dua platform Java dan .net.
13
2.4.1 Tiga Jenis Obyek Query dalam db4o
Di dalam OODBMS db4o, terdapat tiga jenis query yang
dipakai untuk melakukan proses retrieving obyek dari database.
Ketiga jenis obyek query itu adalah : Query by example ( atau sering
disingkat QBE), SODA obyek query API, dan Native obyek query.
Ketiga obyek query ini masing-masing dibahas sebagai berikut:
1. Query by Example (QBE)
QBE adalah suatu bentuk query yang disediakan oleh db4o
yang ditunjukan untuk para pemula yang baru melakukan
penyesuaian dengan Db4o. Dengan QBE diharapkan para user
yang masih berstatus sebagai pemula dapat memulai start dengan
cepat untuk menyimpan atau mendapatkan kembali obyek dari
database.
Ketika menggunakan QBE, kita akan membuat suatu
prototype obyek, kemudian kita akan meminta db4o untuk
mengembalikan obyek dari database yang kriterianya bersesuaian
dengan field dari prototype obyek yang kita berikan. Berikut
potongan kode program yang mendemonstrasikan QBE:
try
{
Barang item = new Barang(null, 0);
objectSet hasil = Db.get(item);
}
14
finally
{
Db.close();
}
QBE biasanya dipakai oleh para pemula yang baru belajar
db4o agar dapat memulai dengan cepat. Namun secara umum
db4o tidak bermaksud membuat QBE untuk dipakai sebagai query
untuk membuat aplikasi software sungguhan. Hal ini disebabkan
oleh karena QBE tidak dirancang untuk melakukan advance
query. Untuk melakukan advance query dalam db4o kita harus
menggunakan native object query atau SODA object query API.
2. SODA Obyek Query API
SODA query API merupakan low level query API di dalam
db4o yang membolehkan kita melakukan akses secara langsung
ke dalam kumpulan obyek. Menurut db4o Corp, proses query
yang dilakukan dengan menggunakan SODA relatif lebih cepat
karena query dilakukan pada tingkat API. Namun demikian,
penulisan obyek query dengan pendekatan SODA dirasakan jauh
lebih bertele-tele karena memanggil fungsi API. SODA query API
sangat berguna untuk mengonstruksi dynamic query pada saat
runtime.
Itulah sebabnya walau bertele-tele, SODA tetap
dipertahankan. SODA juga punya sedikit kekurangan, dimana
SODA banyak menggunakan String untuk mengidentifikasi field.
15
string tersebut dijadikan sebagai parameter ketika terjadi
pemanggilan fungsi API. Oleh karenanya SODA tidak sempurna
saat dilakukan typesafe. Contohnya :
Gambar 2.1 Entity Class Barang
2.1 Simple Obyek Query dalam SODA API
Semua bentuk query dalam db4o, baik yang simpel maupun
yang kompleks semuanya diciptakan melalui method query()
dari class ObjectContainer. Adapun segala constraint dari
query tersebut dapat kita tambahkan melalui method tersebut.
Dalam db4o, tingkat kompleksitas suatu query ditentukan dari
banyak atau sedikitnya constraint. Semakin banyak
constraint-nya, maka obyek query-nya semakin kompleks.
Sebaliknya semakin sedikit constraint-nya, maka obyek
query-nya semakin simpel. Contoh:
package simplequery1;
import java.io.*;
import com.db4o.*;
import com.db4o.query.*;
import PDM.Barang;
16
public class Main {
/** Creates a new instance of Main */
public Main()
{
ObjectContainer Db =
Db4o.openFile("Barang3.ODB");
Query ObjectQuery = Db.query();
ObjectQuery.constrain(Barang.class);
ObjectSet Result = ObjectQuery.execute();
ListResult(Result);
Db.close();
}
public static void ListResult(ObjectSet Hasil)
{
System.out.println("Result:
"+Hasil.size());
while (Hasil.hasNext())
{
System.out.println(Hasil.next());
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args)
17
{
// TODO code application logic here
Main Q1 = new Main();
}
}
Untuk membuat obyek query dalam SODA API, pertama-
tama import package com.db4o.query.*. Selanjutnya kita
meng-create SODA query yang baru. Kemudian melalui
interface ObjectQuery kita menambahkan constraint yang
diperlukan. Dalam query ini constraint-nya adalah
Barang.class, yang artinya kita meminta API melakukan
proses retrieving obyek-obyek yang berasal dari classifier
Barang. Selanjutnya ObjectQuery dieksekusi dan hasil query-
nya dimasukkan ke dalam ObjectSet collection. Kemudian
obyek-obyek dalam collection di-retrieve dan ditampilkan di
layar.
3. Native Query
Native query adalah obyek query yang utama di dalam
db4o. Saat ini semua platform db4o, baik untuk Java atau dotNet
mendukung native query. Penggunaan native query memberikan
keuntungan sebagai berikut:
18
Query 100% native, karenanya dapat meningkatkan
produktivitas. Programmer dapat membuat query tanpa harus
memikirkan query language dan API.
Query 100% type-safe, sehingga mendukung proses type
checking, syntax checking dan refactoring.
Query 100% object-oriented. Query harus dapat dijalankan
pada bahasa itu sendiri. Pelanggaran terhadap norma-norma
object-oriented pun dapat dieliminasi.
Query dapat di-prototype, di-test, dan dijalankan pada
collection di memori tanpa database back end.
Optimization. Merupakan komponen baru yang menjadi kunci
dari native query. Kita membuat ekspresi native query dan
database harus dapat mengeksekusinya pada tingkat performa
yang sama dengan string base query yang telah kita bahas
sebelumnya.
Contoh :
import java.io.*;
import com.db4o.*;
import com.db4o.query.*;
import PDM.Barang;
public class Main{
/** Creates a new instance of Main */
public Main(){
19
ObjectContainer Db =
Db4o.openFile("Barang3.ODB");//untuk membuat database
barang3.odb
ObjectSet Barangku = Db.query(new Predicate() //query
menampilkan data dalam database dengan sebuah kondisi
{
public boolean match(Barang barang)
{
return barang.GetHarga() > 300000.0 &&
barang.GetPabrikasi() == "Olympic";
}
});
ListResult(Barangku);//untuk menampung
data hasil query
Db.close();//menutup koneksi
}
public static void ListResult(ObjectSet Hasil)
{
System.out.println("Result:
"+Hasil.size());
while (Hasil.hasNext())
{
System.out.println(Hasil.next());
}
}
public static void main(String[] args)
{
// TODO code application logic here
20
Main Noq1 = new Main();
}
}
21
BAB III
ANALISIS DAN PERANCANGAN SISTEM
Metodologi FAST terdiri atas beberapa tahapan, yaitu:
I. Scope Definition.
II. Problem Analysis.
III. Requirements Analysis.
IV. Logical Design.
V. Decision Analysis.
VI. Physical Design and Integration.
VII. Construction and Testing.
VIII. Installation and Delivery.
3.1 Profile Toko Ijo
Toko Ijo adalah toko Kelontong yang menjual berbagai jenis keperluan
sehari-hari, seperti rokok, makanan ringan, dan lain-lain. Toko ini beralamat
di Jl Am Sangaji 31 Yogyakarta 55233 Telp (0274)582669. Moto Toko Ijo
“kepuasaan belanja anda adalah kebanggaan kami”.
22
3.2 Scope Definition/ Mendefinisikan Ruang Lingkup
3.2.1 Gambaran Umum Sistem Yang Ada
Ketika konsumen ingin membeli barang di Toko Ijo, pelayan
atau pemilik toko akan menanyakan barang apa yang ingin
dibeli. Kemudian pelayan atau pemilik akan mengambilkan
barang yang diminta oleh konsumen sekaligus memberitahukan
harganya. Jika harga sesuai konsumen tinggal membayarnya.
Untuk penyediaan barang-barang yang ada di Toko Ijo terdiri
dari beberapa cara, yaitu dengan cara memesan terlebih dahulu
kepada sales / agen kemudian barang dikirim kira-kira 2-3 hari
kemudian, agen/sales langsung datang dengan membawa barang
dan menanyakan barang yang dibutuhkan mau ditambah atau
tidak, dan ada orang yang menitipkan barang kepada Toko Ijo.
3.2.2 Analisis Sistem yang Ada
Problem-solving framework PIECES digunakan untuk
mendefinisikan problems, opportunities dan directives yang ada.
Setiap huruf dalam PIECES merepresentasikan sebuah kategori
dalam perumusan masalah yang ada.
Hasil dari analisa PIECES adalah sebagai berikut.
23
Performance.
Bukti/nota transaksi penjualan dan pembelian masih ditulis
dengan tangan (manual), sehingga jika nota/bukti hilang tidak
terdapat backup.
Daftar harga ditulis dengan tangan (di barangnya langsung dan
dengan daftar harga barang) dan sebagian besar diingat-ingat,
sehingga jika harga naik atau turun sulit untuk mengubahnya.
Ketika harga barang naik atau turun harga harus ditulis ulang,
hal tersebut sungguh membuat pemilik kerepotan, jika jumlah
barang yang berubah harganya banyak.
Ketika pembeli banyak, pelayanan yang dilakukan kurang cepat
karena terbatasnya penjual (misalnya : pembeli ada 10 orang,
sedangkan penjualnya cuma ada 2 orang).
Information.
Dokumen berupa nota/harga barang masih disimpan dengan
kertas, sehingga sulit untuk mencari data barang.
Proses perhitungan harga dilakukan menggunakan alat bantu
hitung (kalkulator), sehingga retan kesalahan perhitungan total
pembelian, jika jumlah yang dibeli banyak.
Tidak terdapat data karyawan, sehingga pemilik kesulitan untuk
mengetahui alamat, nomor telepon, dan lain-lain.
24
Economics.
Kerugian biasa terjadi karena harga barang turun, karena barang
dibeli waktu harga barang masih mahal, karena tidak adanya
penyimpan data.
Control.
Perubahan harga dilakukan hanya ketika harga naik atau turun,
dengan cara merubah harga barang dengan cara ditulis, ketika
jumlah barang yang diubah banyak, pemilik akan kesulitan
karena tidak adanya satu tempat penyimpanan data.
Penambahan dan pengurangan barang dilakukan menurut selera
konsumen (ketika barang laku terjual, maka stock barang
ditambah dan ketika barang tidak lagi laku, maka barang tidak
lagi dijual atau dikurangi stocknya) untuk barang baru
tergantung banyaknya konsumen yang menanyakan merk barang
baru.
Eficiency.
Perubahan pada penulisan harga barang yang menempel di
barang dilakukan dengan cara merubahnya satu-persatu,
sehingga hal tersebut belum efisien.
Belum efisien karena tidak adanya database sebagai tempat
penyimpanan, semuanya masih dijalankan secara manual.
25
Services.
Pembeli yang datang pertama mendapatkan pelayanan pertama,
pembeli berikutnya dilayani setelah pembeli pertama selesai.
Ketika banyak pembeli pemilik toko ikut membantu melayani
pembeli.
Untuk mengatasi kejenuhan di toko, ada TV, koran dan radio.
26
3.2.3 Problem Statement
Pernyataan Masalah
Proyek : Sistem Informasi Penjualan, Pembelian, dan Inventori.
Manager Proyek: -
Dibuat Oleh : Yunianto Update Terakhir Oleh : -
Tanggal Pembuatan: - Tanggal Update Terakhir : -
Pernyataan Singkat Masalah, Kesempatan, atau Perintah
Solusi Diusulkan
1. Sistem lamabelum mampu menangani perubahan harga barang dengan baik.
Dalam sistem baru akan memuat pencarian data harga barang.
2. Pelayanan yang dilakukan masih kurang cepat karena keterbatasan penjual.
Tidak dapat dipercepat dengan sistem.
3. Keinginan adanya informasi untuk mencetak bukti transaksi penjualan yang diberikan ke konsumen.
Dalam sistem baru akan dapat mencetak semua proses transaksi penjualan.
4. Bukti transaksi masih dicatat dengan manual dan belum ada backup-nya.
Dalam sistem yang baru akan mencatat data penjualan yang disimpan dalam database sebagai backup-nya
5. Sistem lama tidak mampu melakukan perhitungan dengan baik.
Sistem yang baru dapat menangani perhitungan data dalam jumlah besar.
6. Sistem lama belum terdapat penyimpanan data karyawan, sehingga menyebabkan pemilik kesulitan mengingat ketika terjadi perubahan data karyawan.
Sistem yang baru akan menyimpan semua data karyawan kedalam database.
7. Sistem lama sulit dalam mengetahui jumlah barang yang laku.
Sistem baru akan memuat laporan penjualan barang untuk mengetahui barang yang laku.
27
3.3 Problem Analysis
3.3.1 Cause Effect Analysis And System Improvement Objective
MASALAH, KESEMPATAN, TUJUAN, DAN HAMBATAN
PROYEK : MANAGER PROYEK: DICIPTAKAN OLEH: DIPERBAHARUHI OLEH: - TANGGAL DICIPTAKAN: TANGGAL DIPERBAHARUHI: -
ANALISA PENYEBAB DAN AKIBAT
TUJUAN MEMPERBAIKI SISTEM
MASALAH PENYEBAB DAN AKIBAT
TUJUAN SISTEM
BATASAN SISTEM
1. Kesulitan mengingat harga barang
1. Harga barang sering berubah. Akibatnya : sering terjadi kesalahan harga.
2. Pemilik kesulitan mengingat harga barang dengan cepat. Akibatnya : terjadinya antrian panjang.
1. Memberikan pelayanan secara optimal kepada konsumen dalam proses penjualan.
2. Membuat
karyawan dan pemilik toko untuk tidak mengingat-ingat harga barang berulang kali.
1. Semua data harga barang harus sudah dimasukkan.
2. Proses penyimpanan data barang belum dilakukan dengan teratur.
1. Penjual tidak teratur membuat suatu pengarsipan data pembelian, penjualan dan inventori barang Akibatnya :
1.Proses pencarian data lebih cepat
2.Efek
kehilangan data kecil.
.
1. Memerlukan pegawai yang khusus menangani penyimpanan data secara periodik.
2. Memerlukan
parangkat keras
28
data barang kemungkinan besar akan hilang.
dan perangkat lunak yang mendukung proses penyimpanan data.
3. Penjual salah memberikan harga barang
1. Konsumen mendapat harga barang yang salah. Akibatnya : Konsumen atau pemilik mengalami kerugian.
2. Sering terjadi kesalahan harga. Akibatnya: Konsumen menjadi kecewa dalam pelayanan yang diberikan Toko Ijo.
1. Memberikan informasi harga barang yang akurat.
1. Memerlukan pegawai yang harus mengurus pencatatan perubahan harga.
4. Pemilik kesulitan mengetahui barang yang laku.
1. Ítem barang yang banyak. Akibatnya : stok barang tidak diketahui dengan baik.
2. Tidak ada data barang yang laku terjual. Akibatnya : pemilik kesulitan dalam memesan barang.
1. Memberikan informasi penjualan barang yang laku.
1. Memerlukan pegawai yang khusus mencatat data barang yang dijual
29
5. Pemilik kesulitan untuk mencatat bukti transaksi yang banyak
1. Ketika konsumen banyak dan konsumen meminta nota. Akibatnya pemilik harus mencatat nota dengan tangan.
1. Memberikan pencetakan nota tanpa harus ditulis dengan tangan.
1. Memerlukan perangkat keras dan perangkat lunak yang mendukung proses pencetakan.
6. Pemilik kesulitan mengingat data karyawan jika terjadi perubahan karena data karyawan tidak dicatat.
1. Data karyawan mengalami perubahan. Akibatnya : pemilik sering lupa data karyawan berubah
1. Memberikan fasilitas untuk menyimpan data karyawan. Agar pemilik tidak perlu mengingat data karyawan.
1. Memerlukan kesadaran pegawai untuk mengubah datanya sendiri (alamat, telpn, dan lain-lain).
30
3.4 Requirement Analysis
3.4.1 Konteks Diagram
Gambar 3.1 Konteks diagram
31
3.4.2 Use Case
Pemilik
Penjualan
Pembelian
Mencatat data retur pembelian
Pencarian data
pembelian
Barang
Mengecek inventori barang
Mencatat data barang
baru
Mengubah data inventori
barang
Karyawan
Membuat data karyawan baru
Menghapus data
karyawan
Pemesanan Barang
Mencatat data transaksi penjualan
Mencatat data retur penjualan
Pencarian data
barang
Mencatat data
pembelian
Menghapus data
penjualan
Mengubah data
karyawan
Distributor
Mencatat data distributor
Mengubah data
distributor
Pencarian data
distributor
Penentuan harga jualextends
Pemilik
Mengubah data password
Gambar 3.2 Use Case pemilik
32
Gambar 3.3 Use Case karyawan
3.4.3 Use Case Narrative
Use Case Name : Mencatat data transaksi penjualan
Use Case Type
Bussiness Requirements : □
System Analysis : □
System Design :
Use Case ID : 1
Prioritys :
Source :
Actors : Pemilik, karyawan
Description : Use case ini menggambarkan tentang pemilik/karyawan melakukan proses pencatatan data penjualan barang kepada konsumen (konsumen membeli barang banyak).
33
Precondition : Barang yang diinginkan konsumen sudah ada di inventori.
Typical Course of Events : (a)
Actor Action System Response
Langkah 1 : konsumen datang membawa catatan barang yang dibutuhkannya untuk kemudian diberikan kepada karyawan / pemilik.
Langkah 2 : setelah barang yang diinginkan ketemu, konsumen datang ke kasir untuk membayar barang tersebut.
Langkah 2 : pemilik melakukan penginputan data barang yang dibeli oleh konsumen.
Langkah 3 : pemilik / karyawan melakukan proses pencatatan data transaksi penjualan ke dalam sistem.
Langkah 4 : confirmasi pencatatan data transaksi penjualan.
Langkah 5 : sistem akan menyediakan fasilitas untuk mencetak data transaksi penjualan yang telah dilakukan.
Alternate Courses : -
Postcondition : Data penjualan sudah tercatat dalam database.
Use Case Name : Mencatat data transaksi penjualan
Use Case Type
Bussiness Requirements : □
System Analysis : □
Use Case ID : 2
Prioritys :
34
Source : System Design :
Actors : Pemilik, karyawan
Description : Use case ini menggambarkan tentang pemilik/karyawan melakukan proses pencatatan data penjualan barang kepada konsumen ( konsumen membeli barang hanya sedikit).
Precondition : Barang yang diinginkan konsumen sudah ada di inventori.
Typical Course of Events : (b)
Actor Action System Response
Langkah 1 : ketika konsumen banyak, dan ada konsumen datang menanyakan barang yang dicarinya (hanya sedikit barang yang dibeli).
Langkah 2 : pemilik memberikan barang yang dicari.
Langkah 3 : konsumen datang ke kasir untuk membayar barang tersebut.
Langkah 4 : pemilik/karyawan mencatat data yang dibeli dalam kertas.
Langkah 5 : ketika toko sedang sepi, pemilik / karyawan melakukan proses pencatatan data transaksi penjualan ke dalam sistem.
Langkah 4 : confirmasi pencatatan data transaksi penjualan.
Langkah 5 : sistem akan menyediakan fasilitas untuk mencetak data transaksi penjualan yang telah dilakukan.
Alternate Courses : -
Postcondition : Data penjualan sudah tercatat dalam database.
35
Use Case Name : Mencatat data retur penjualan Use Case Type
Bussiness Requirements : □
System Analysis : □
System Design :
Use Case ID : 3
Prioritys :
Source :
Actors : Pemilik, karyawan
Description : Use case ini menggambarkan konsumen yang meretur barang yang dibeli akibat kesalahan yang tidak disenggaja.
Precondition : Konsumen salah menerima barang.
Typical Course of Events :
(a)
Actor Action System Response
Langkah 1 : konsumen datang ke toko untuk meretur barang.
Langkah 2 : pemilik/karyawan melakukan proses pencatatan ke dalam sistem retur penjualan.
Langkah 6 : konsumen menerima barang pengganti.
Langkah 3 : konfirmasi pencatatan data retur penjualan.
Langkah 4 : menampilkan informasi data retur (tanggal retur, kode barang, nama barang, dan lain-lain).
Langkah 5 : sistem akan menyediakan fasilitas untuk mencetak data retur penjualan yang telah dilakukan.
Alternate Courses : -
Postcondition : Data retur penjualan tercatat di database.
36
Use Case Name : Menghapus data penjualan Use Case Type
Bussiness Requirements : □
System Analysis : □
System Design :
Use Case ID : 4
Prioritys :
Source :
Actors : Pemilik
Description : Use case ini menggambarkan tentang pemilik melakukan proses penghapusan data penjualan. Karena kesalahan proses transaksi penjualan.
Precondition : Kesalahan data penjualan yang terlajur diproses masih berada dalam database.
Typical Course of Events :
Actor Action System Response
Langkah 1 : pemilik melakukan pencarian data penjualan yang ingin dihapus.
Langkah 3 : pemilik memberi perintah kepada sistem untuk menghapus data penjualan.
Langkah 2 : sistem menampilkan data yang dicari oleh pemilik.
Langkah 4 : sistem menkonfirmasikan perintah yang dilakukan pemilik.
Alternate Courses : -
Postcondition : Data penjualan sudah dihapus dari database.
Use Case Name : Pencarian data Barang Use Case Type
Bussiness Requirements : □
Use Case ID : 5
Prioritys :
37
Source : System Analysis : □
System Design :
Actors : Pemilik, karyawan
Description : Use case ini menggambarkan tentang konsumen yang menanyakan informasi barang yang akan dibelinya dan pemilik/karyawan melakukan pencarian informasi data penjualan tersebut.
Precondition : Daftar barang yang dicari sudah tercatat di inventori.
Typical Course of Events :
Actor Action System Response
Langkah 1 : konsumen menanyakan barang yang dibutuhkannya berikut harganya.
Langkah 2 : pemilik/karyawan memasukkan kata kunci pencarian barang yang akan dicari.
Langkah 4 : sistem mencari data dalam database.
Langkah 3 : sistem menampilkan informasi data barang yang dicari.
Alternate Courses : -
Postcondition : Konsumen memperoleh informasi barang yang dicari.
Use Case Name : Pemesanan barang Use Case Type
Bussiness Requirements : □
System Analysis : □
System Design :
Use Case ID : 6
Prioritys :
Source :
38
Actors : Pemilik
Description : Use case ini menggambarkan tentang pemilik melakukan pemesanan barang ke distributor.
Precondition : Barang sudah ada di inventori
Typical Course of Events :
Actor Action System Response
Langkah 1 : pemilik mengecek stok barang pada sistem.
Langkah 3 : pemilik memasukkan data pemesanan barang.
Langkah 5 : pemilik memberikan data pemesanan yang telah dicetak kepada distributor.
Langkah 2 : sistem menampilkan data stok barang.
Langkah 4 : konfirmasi penyimpanan data pemesanan dan pencetakkan data pesanan.
Alternate Courses : -
Postcondition : -
Use Case Name : Mencatat data retur pembelian Use Case Type
Bussiness Requirements : □
System Analysis : □
System Design :
Use Case ID : 7
Prioritys :
Source :
Actors : Pemilik, karyawan
39
Description : Use case ini menggambarkan tentang pemilik/karyawan yang meretur barang ke suplier. Karena barang rusak/sudah kadarluarsa.
Precondition : Barang diinventori mengalami kerusakan atau kadarluarsa.
Typical Course of Events :
Actor Action System Response
Langkah 1 : pemilik/karyawan memasukkan data barang yang akan diretur ke distributor ke dalam sistem.
Langkah 2 : konfirmasi pencatatan data retur.
Langkah 3 : menampilkan informasi data retur (kode barang, nama barang, dan lain-lain).
Langkah 4 : sistem menyediakan fasilitas untuk mencetak data retur pembelian.
Alternate Courses : -
Postcondition : Data retur pembelian tercatat dalam database.
Use Case Name : Pencarian data pembelian Use Case Type
Bussiness Requirements : □
System Analysis : □
System Design :
Use Case ID : 8
Prioritys :
Source :
Actors : Pemilik
Description : Use case ini menggambarkan tentang pemilik/karyawan yang mencari data pembelian barang.
40
Precondition : Barang sudah bertambah di inventori
Typical Course of Events :
Actor Action System Response
Langkah 1 : pemilik/karyawan memasukkan kata kunci pencarian data pembelian ke dalam sistem.
Langkah 2 : sistem akan menampilkan informasi pencarian data pembelian yang dicari.
Alternate Courses : -
Postcondition : -
Use Case Name : Mencatat data pembelian Use Case Type
Bussiness Requirements : □
System Analysis : □
System Design :
Use Case ID : 9
Prioritys :
Source :
Actors : Pemilik, karyawan
Description : Use case ini menggambarkan tentang pemilik/karyawan yang mencatat data pembelian barang dari distributor.
Precondition : Barang datang dari distributor
Typical Course of Events :
Actor Action System Response
Langkah 1 : pemilik / karyawan mencatat data dan informasi barang yang dibeli dari distributor ke dalam sistem.
Langkah 2 : sistem menampilkan konfirmasi
41
pencatatan data pembelian.
Alternate Courses : -
Postcondition : Data pembelian disimpan didalam database.
Use Case Name : Mencatat data distributor Use Case Type
Bussiness Requirements : □
System Analysis : □
System Design :
Use Case ID : 10
Prioritys :
Source :
Actors : Pemilik
Description : Use case ini menggambarkan tentang pemilik yang mendata semua distributor yang melakukan transaksi pembelian dengan toko.
Precondition : Semua pemasok barang yang ada diinventori.
Typical Course of Events :
Actor Action System Response
Langkah 1 : pemilik memasukkan data distributor kedalam sistem.
Langkah 2 : sistem memberikan konfirmasi penyimpanan data distributor.
Langkah 3 : data distributor baru ditampilkan pada sistem.
Alternate Courses : -
42
Postcondition : Data distributor tersimpan dalam database.
Use Case Name : Mengubah data distributor Use Case Type
Bussiness Requirements : □
System Analysis : □
System Design :
Use Case ID : 11
Prioritys :
Source :
Actors : Pemilik
Description : Use case ini menggambarkan tentang pemilik yang mengubah data suplier karena terdapat informasi distributor yang berubah
Precondition : Distributor datang memberikan informasi perubahan data distributor.
Typical Course of Events :
Actor Action System Response
Langkah 1 : pemilik melakukan pencarian data distributor yang ingin dirubah.
Langkah 3 : pemilik melakukan perubahan data distributor pada sistem.
Langkah 2 : sistem mengecek dalam database dan memberikan informasi data distributor yang dicari.
Langkah 2 : sistem memberikan konfirmasi perubahan data distributor.
Alternate Courses : -
Postcondition : Data distributor telah dirubah.
Use Case Name : Pencarian data distributor Use Case Type
43
Use Case ID : 12 Bussiness Requirements : □
System Analysis : □
System Design :
Prioritys :
Source :
Actors : Pemilik
Description : Use case ini menggambarkan tentang pemilik yang mencari data distributor untuk kepentingan pemesanan barang.
Precondition : pemilik ingin memesan barang, tapi lupa distributornya.
Typical Course of Events :
Actor Action System Response
Langkah 1 : pemilik memasukkan kata kunci pencarian data distributor.
Langkah 2 : sistem menampilkan informasi data distributor yang dicari.
Alternate Courses : -
Postcondition : -
Use Case Name : Membuat data karyawan baru Use Case Type
Bussiness Requirements : □
System Analysis : □
System Design :
Use Case ID : 13
Prioritys :
Source :
Actors : Pemilik
Description : Use case ini menggambarkan tentang pemilik yang membuatkan account kepada karyawan baru agar dapat mengakses sistem.
Precondition : Karyawan baru yang akan mengakses sistem.
44
Typical Course of Events :
Actor Action System Response
Langkah 1 : pemilik menginputkan data-data karyawan baru (nama, alamat, username, passwod, dan lain-lain).
Langkah 2 : konfirmasi pencatatan data karyawan.
Langkah 3 : menampilkan informasi data karyawan.
Alternate Courses : -
Postcondition : Data karyawan baru tersimpan dalam database.
Use Case Name : Mengubah data karyawan Use Case Type
Bussiness Requirements : □
System Analysis : □
System Design :
Use Case ID : 14
Prioritys :
Source :
Actors : Pemilik, karyawan
Description : Use case ini menggambarkan tentang pemilik yang mengubah data karyawan karena pindah rumah, ganti telepon, password dan lain-lain.
Precondition : Data karyawan lama masih tersimpan dalam database.
Typical Course of Events :
Actor Action System Response
Langkah 1 : pemilik/karyawan menginputkan data karyawan yang ingin diubah.
Langkah 2 : konfirmasi perubahan data karyawan
45
karyawan.
Langkah 3 : menampilkan informasi perubahan data.
Alternate Courses : -
Postcondition : Data karyawan telah berubah.
Use Case Name : Menghapus data karyawan Use Case Type
Bussiness Requirements : □
System Analysis : □
System Design :
Use Case ID : 15
Prioritys :
Source :
Actors : Pemilik
Description : Use case ini menggambarkan tentang pemilik yang menghapus hak akses karyawan karena karyawan yang bersangkutan sudah tidak bekerja lagi di Toko Ijo.
Precondition : Data karyawan yang sudah tidak bekerja masih tersimpan dalam database.
Typical Course of Events :
Actor Action System Response
Langkah 1 : pemilik memilih data karyawan yang ingin dihapus.
Langkah 2 : sistem memberikan konfirmasi penghapusan data karyawan.
Alternate Courses : -
Postcondition : Data karyawan telah terhapus.
46
Use Case Name : Mengecek data inventori barang
Use Case Type
Bussiness Requirements : □
System Analysis : □
System Design :
Use Case ID : 16
Prioritys :
Source :
Actors : Pemilik, karyawan
Description : Use case ini menggambarkan tentang pemilik yang mengecek inventori barang.
Precondition : Pemilik ingin mengetahui informasi inventori barang.
Typical Course of Events :
Actor Action System Response
Langkah 1 : pemilik / karyawan memasukkan kata kunci barang yang akan dicek data inventorinya.
Langkah 2 : sistem menampilkan data inventori yang dicari.
Alternate Courses : -
Postcondition : -
Use Case Name : Mencatat data inventori baru Use Case Type
Bussiness Requirements : □
System Analysis : □
System Design :
Use Case ID : 17
Prioritys :
Source :
Actors : Pemilik
Description : Use case ini menggambarkan tentang pemilik yang mencatat data barang baru ke dalam inventori.
47
Precondition : Pemilik ingin mencatat data inventori baru.
Typical Course of Events :
Actor Action System Response
Langkah 1 : pemilik mencatat data dan informasi barang baru pada inventori.
Langkah 2 : konfirmasi pencatatan data inventori.
Langkah 3 : sistem menampilkan informasi data inventori baru.
Alternate Courses : -
Postcondition : Inventori barang bertambah.
Use Case Name : Mengubah data inventori barang
Use Case Type
Bussiness Requirements : □
System Analysis : □
System Design :
Use Case ID : 19
Prioritys :
Source :
Actors : Pemilik
Description : Use case ini menggambarkan tentang pemilik yang mengubah data inventori barang .
Precondition : Pemilik ingin mengubah data inventori.
Typical Course of Events :
Actor Action System Response
Langkah 1 : pemilik memasukan kata kunci pencarian data inventori yang ingin diubah.
Langkah 2 : sistem menampilkan data yang dicari.
48
Langkah 3 : pemilik mengubah data dan informasi inventori barang.
Langkah 4 : konfirmasi pengubahan data inventori.
Alternate Courses : -
Postcondition : Inventori barang berubah.
Use Case Name : Mengubah password admin Use Case Type
Bussiness Requirements : □
System Analysis : □
System Design :
Use Case ID : 20
Prioritys :
Source :
Actors : Pemilik
Description : Use case ini menggambarkan tentang pemilik yang mengubah password-nya .
Precondition : Pemilik ingin mengubah password admin.
Typical Course of Events :
Actor Action System Response
Langkah 1 : pemilik memasukan password lama.
Langkah 3 : pemilik memasukkan data password baru.
Langkah 2 : sistem menampilkan validasi password lama.
Langkah 4 : konfirmasi pengubahan data password admin.
Alternate Courses : -
49
Postcondition : Data password admin berubah.
3.5 Logical design
3.5.1 Diagram Aktivitas Mencatat data penjualan(a).
Gambar 3.4 Diagram aktivitas mencatat data penjualan(a).
50
Mencatat data transaksi penjualan(b).
Gambar 3.5 Diagram aktivitas mencatat data penjualan(b).
51
Mencatat data retur penjualan
Pemilik/karyawan Sistem
Pemilik / karyawan menerima barang yang diretur
Pencatatan data barang yang diretur
Simpan di database
ya
tidak
Menampilkan informasidata retur
Pencetakan data retur
Gambar 3.6 Diagram aktivitas mencatat data retur penjualan.
52
Menghapus data penjualan
Gambar 3.7 Diagram aktivitas menghapus data penjualan.
Pencarian data barang
Gambar 3.8 Diagram aktivitas pencarian data barang.
53
Pemesanan barang
Gambar 3.9 Diagram aktivitas pemesanan barang.
54
Mencatat data retur pembelian
Gambar 3.10 Diagram aktivitas mencatat data retur barang.
Pencarian data pembelian
Gambar 3.11 Diagram aktivitas pencarian data pembelian.
55
Mencatat data pembelian
Gambar 3.12 Diagram aktivitas pencatatan data pembelian.
Pencatatan data distributor
Gambar 3.13 Diagram aktivitas pencatatan data distributor.
56
Mengubah data distributor
Gambar 3.14 Diagram aktivitas mengubah data distributor.
Mencari data distributor
Gambar 3.15 Diagram aktivitas mencari data distributor.
57
Membuat data karyawan baru
Gambar 3.16 Diagram aktivitas membuat data karyawan baru.
Mengubah data karyawan
Gambar 3.17 Diagram aktivitas mengubah data karyawan.
58
Mengecek inventori barang
Gambar 3.18 Diagram aktivitas mengecek inventori.
Mencatat data inventori baru
Gambar 3.19 Diagram aktivitas mencatat data inventori baru.
59
Mengubah inventori
Gambar 3.20 Diagram aktivitas mengubah data inventori.
Penentuan harga jual
Pemilik Sistem
Inputan harga jual
ya
Tidak
Informasi harga jual
Simpan dalam database
Gambar 3.21 Diagram aktivitas penentuan harga jual.
60
Mengubah password admin
Gambar 3.22 Diagram aktivitas Mengubah Password Admin.
Menghapus data karyawan
Gambar 3.23 Diagram aktivitas Menghapus Data Karyawan.
61
3.5.2 Diagram Kelas
Daftar kandidat obyek
Penjualan
Pembelian
Inventori
Pemilik
Distributor
Karyawan
Konsumen
penjualan
barang
Toko Ijo
Transaksi
Kasir
Data
Sistem
Data retur
62
Toko
Retur barang
Informasi
Data barang
Sales
Stok
Data distributor
Retur pembelian
Informasi barang
Kantor
Account
username
password
data karyawan
kata kunci barang
laporan penjualan
harga jual
63
Daftar seleksi obyek
Penjualan √ Obyek bisnis
Pembelian √ Obyek bisnis
Inventori x Bukan obyek bisnis
Pemilik √ Obyek bisnis
Supplier √ Obyek bisnis
Karyawan √ Obyek bisnis
Konsumen x Bukan obyek bisnis
Barang √ Obyek bisnis
Toko Ijo x Bukan obyek bisnis
Transaksi x Bukan obyek bisnis
Kasir x Bukan obyek bisnis
Data x Bukan obyek bisnis
sistem x Bukan obyek bisnis
Data retur x Bukan obyek bisnis
Toko x Bukan obyek bisnis
64
Retur barang √ Obyek bisnis
Informasi x Bukan obyek bisnis
Data barang x Bukan obyek bisnis
Sales x Bukan obyek bisnis
Stok x Bukan obyek bisnis
Data suplier x Bukan Obyek bisnis
Retur pembelian x Bukan obyek bisnis
Informasi barang x Bukan obyek bisnis
Kantor x Bukan obyek bisnis
Account x Bukan obyek bisnis
Username x Atribut obyek pemilik dan karyawan
Password x Atribut obyek pemilik dan karyawan
Data karyawan x Bukan obyek bisnis
Kata kunci barang x Bukan obyek bisnis
Laporan penjualan x Bukan obyek bisnis
Harga jual x Atribut dari detail penjualan dan
65
pembelian
Daftar obyek yang diusulkan
Detail Pembelian
Retur Pembelian
Retur Penjualan
Transaksi
Histori Pembelian
Histori Pembelian Kredit
Histori Penjualan
Pembelian Kredit
Pembayaran
Histori Retur Beli
Histori Retur Jual
Pembelian Kredit
66
3.5.3 Matriks asosiasi
Pemilik Karyawan Distributor Penjualan Pembelian Barang Histori penjualan
Detail retur pembelian
Pemilik XX XX XX XX XX XX XX Karyawan XX XX Many to many XX XX XX XX Distributor XX XX XX XX one to many XX XX Penjualan XX XX XX XX XX One to many XX Pembelian XX XX XX XX XX XX One to many
Barang XX XX Many to one XX XX Many to one XX Histori penjualan XX XX XX Many to one XX Many to one XX Detail retur pembelian XX XX XX XX Many to one XX XX
Detail retur penjualan XX XX XX Many to one XX XX XX XX Histori pembelian Kredit
XX XX XX XX XX Many to one XX XX
Histori Pembelian Tunai XX XX XX XX XX
Many to one XX XX
Pembelian Kredit XX XX XX XX one to one XX XX XX Pembelian Tunai XX XX XX XX one to one XX XX XX Operator one to one one to one XX XX XX XX XX XX Transaksi XX XX XX one to one one to one XX XX XX Retur XX XX XX XX XX XX XX one to one
Histori retur Jual XX XX XX XX XX Many to one XX XX Histori retur Beli XX XX XX XX XX Many to one XX Many to one
Pembayaran XX XX XX XX XX XX XX XX
Gambar 3.24 Matriks asosiasi (a)
67
Detail retur penjualan
Histori pembelian Kredit
Histori Pembelian Tunai
Pembelian Kredit
Pembelian Tunai Operator Transaksi Retur
Histori Retur Jual
Histori Retur Beli Pembayaran
Pemilik XX XX XX XX XX XX XX XX XX XX XX Karyawan XX XX XX XX XX XX XX XX XX XX XX Distributor XX XX XX XX XX XX XX XX XX XX XX
Penjualan one to many XX XX XX XX XX one to
one XX XX XX XX
Pembelian XX XX XX
one to one one to one XX one to
one XX XX XX XX
Barang XX One to many One to many XX XX XX XX XX One to
many One to many
XX
Histori penjualan XX XX XX XX XX XX XX XX XX XX XX Detail retur pembelian
XX XX XX XX XX XX XX one to one
XX One to many
XX
Detail retur penjualan
XX XX XX XX XX XX one to one
One to many
XX XX
Histori pembelian Kredit
XX
XX One to many
XX XX XX XX XX XX XX
Histori Pembelian Tunai
XX XX
XX Many to one XX XX XX XX XX XX
Pembelian Kredit XX One to many XX
XX XX XX XX XX XX One to
many
Pembelian Tunai XX XX One to many XX XX XX XX XX XX XX
Operator XX XX XX XX XX
One to many
XX XX XX XX
Transaksi XX XX XX XX XX Many to one XX XX XX XX
Retur one to one XX XX XX XX XX XX XX XX XX
Histori retur Jual Many to one XX XX XX XX XX XX XX XX XX
Histori retur Beli XX XX XX XX XX XX XX XX XX XX
Pembayaran XX XX XX Many to
one XX XX XX XX XX XX
Gambar 3.25 Matriks asosiasi (b)
68
3.5.4 Diagram Kelas
Gambar 3.26 Diagram kelas
69
Rincian untuk setiap diagram kelas ada di lampiran B. Selanjutnya diagram kelas untuk implementasi.
Menu Operator
Gambar 3.27 Implementasi menu operator. Menu Barang
Gambar 3.28 Implementasi Menu barang.
70
Menu Karyawan
Gambar 3.29 Implementasi Menu karyawan.
Menu Distributor
Gambar 3.30 Implementasi Menu distributor.
71
Menu Penjualan
Gambar 3.31 Implementasi Menu penjualan. Menu Pembelian
Gambar 3.32 Implementasi Menu pembelian.
72
Menu Retur Beli
Gambar 3.33 Implementasi menu retur beli Menu Retur Jual
Gambar 3.34 Implementasi menu retur jual.
73
3.5.3 Diagram Sequence
Gambar 3.35 Diagram sequence pencarian data barang.
Gambar 3.36 Diagram sequence mengecek inventori.
74
Gambar 3.37 Diagram sequence penginputan data inventori barang baru.
Gambar 3.38 Diagram sequence pengubahan data inventori barang.
75
Gambar 3.39 Diagram sequence penjualan barang.
Karyawan / pemilik
<<interface>>Tampilan retur penjualan
<<controller>>ReturJualC :Penjualan
Inputan data retur penjualan
Simpan() SimpanReturJual()
Konfirmasi retur penjualanInformasi retur penjualan
Gambar 3.40 Diagram sequence retur penjualan barang.
Gambar 3.41 Diagram sequence pemesanan/Pembelian barang.
76
Gambar 3.42 Diagram sequence distributor baru.
Gambar 3.43 Diagram sequence ubah data distributor.
77
Gambar 3.44 Diagram sequence pencarian data distributor.
Gambar 3.45 Diagram sequence inputan data karyawan baru.
78
Gambar 3.46 Diagram sequence pengubahan data karyawan.
Gambar 3.47 Diagram sequence pencarian data karyawan.
79
Gambar 3.48 Diagram sequence pencatatan data retur pembelian.
Gambar 3.49 Diagram sequence pencarian data pembelian.
80
Gambar 3.50 Diagram sequence view data hutang
Pemilik / Karyawan
<<interface>>Pembayaran Hutang
<<controller>>PembayaranC Pembayaran
Data Hutang yang akan dibayar
DataHutang Simpancicilanbayar()
Konfirmasi PembayaranInformasi pelunasan
hutang
Gambar 3.51 Diagram sequence pembayaran hutang
81
Gambar 3.52 Diagram sequence pencarian data penjualan.
Gambar 3.53 Diagram sequence pengubahan password admin.
Gambar 3.54 Diagram sequence penghapusan data karyawan.
82
Desain Interface
Gambar 3.55 Form login.
Gambar 3.56 Form menu utama.
83
Gambar 3.57 Form barang.
Gambar 3.58 Form tambah barang.
84
Gambar 3.59 Form ubah barang.
Gambar 3.60 Form penjualan.
85
Gambar 3.61 Form pembelian.
Gambar 3.62 Form Karyawan.
Gambar 3.63 Form tambah karyawan.
86
Nama Karyawan
No.Telepon
Pengubahan Data Karyawan
Ok
Alamat
Batal
Gambar 3.64 Form ubah karyawan.
Gambar 3.65 Form pengubahan password.
Gambar 3.66 Form laporan keuangan.
87
Gambar 3.67 Form data transaksi.
Gambar 3.68 Form retur barang.
Gambar 3.69 form distributor.
88
Gambar 3.70 form tambah data distributor.
Gambar 3.71 form ubah data distributor.
Gambar 3.72 form Pencarian data barang dan distributor.
89
BAB IV
IMPLEMENTASI DAN ANALISA HASIL
Pada bab ini membahas implementasi dalam bentuk program berdasarkan
analisa dan perancangan yang telah dilakukan.
4.1 Penjelasan antar muka Sistem
4.1.1 Antar Muka Menu Login
Gambar 4.1 Menu login
Gambar 4.1 merupakan halaman untuk login admin dan
karyawan. Pada menu ini pengguna memasukkan username dan
password yang pengguna miliki. Username dan password default
adalah “admin” untuk username dan password.
90
4.1.2 Antar Muka Menu Utama
Gambar 4.2 Menu utama.
Gambar 4.2 adalah halaman utama administrator. Pada menu
administrator ini terdapat menu barang, penjualan, retur penjualan,
pembelian, retur pembelian, distributor, karyawan, ubah password
admin, laporan pembelian, laporan penjualan, dan help. Sedangkan
untuk menu utama karyawan sama saja hanya saja ada pembatasan
hak akses.
91
4.1.3 Antar Muka Menu Barang
Gambar 4.3 Menu barang
Antar muka Menu Barang merupakan penerapan dari diagram
sequence pencarian data barang (gambar 3.27), diagram sequence
mengecek inventori (gambar 3.28).
Gambar 4.3 adalah menu data barang. Pada menu data barang ini
pengguna dapat mencari barang tertentu, menambah data barang baru,
mengubah data barang.
4.1.4 Antar Muka Menu Tambah Barang
Gambar 4.4 Menu tambah barang.
92
Antar muka menu tambah barang merupakan penerapan diagram
sequence pengiputan data inventori baru pada (gambar 3.30).
Gambar 4.4 adalah menu untuk menambah data barang baru.
Pada menu ini, pengguna memasukkan kode barang dengan tipe data
string (disarankan memakai barcode). Pada field harga, pengguna
hanya bisa memasukkan angka. Jumlah stok akan terisi default
dengan “0”, dan akan mempunyai stok jika melakukan pembelian.
Barang yang ditambah harus mempunyai nama distributor tertentu,
pengguna dapat memasukkan data distributor dengan meng-click
tombol cari data distributor (pada gambar 4.23).
4.1.5 Antar Muka Menu Ubah Barang
Gambar 4.5 Menu mengubah data barang.
Antar muka menu mengubah data barang merupakan penerapan
dari diagram sequence pengubahan data inventori barang (gambar
3.31).
93
Gambar 4.5 adalah halaman untuk mengubah data barang. Data
barang yang bisa diubah hanya nama barang, satuan jual, satuan beli,
isi satuan beli, harga beli, dan harga jual.
4.1.6 Antar Muka Menu Penjualan
Gambar 4.6 Menu penjualan.
Pada Antar muka menu penjualan merupakan penerapan dari
diagram sequence penjualan barang (gambar 3.32), diagram sequence
mengecek inventori (gambar 3.27).
Pada gambar 4.6 adalah gambar menu penjualan. Pengguna dapat
memasukkan kode barang yang akan dijual ke dalam field kode barang /
scan barcode, kemudian jika banyaknya hanya 1 maka tekan enter agar
data nama barang, satuan, dan harga tampil. Setelah itu pengguna dapat
memasukkan banyaknya barang yang ingin dijual. Atau jika banyaknya
lebih dari satu, pengguna tinggal masukkan banyaknya terlabih dahulu
94
kemudian baru kode barang. Total akan keluar pada pojok kanan atas.
Setelah itu pengguna dapat menyimpan transaksi penjualan dengan
menekan tombol “jual”. Akan tetapi pengguna harus memasukkan uang
yang dibayar terlebih dahulu. Jika pengguna tidak men-check list “cetak
nota manual”, ketika menekan tombol “jual” maka data penjualan akan
tersimpan dan akan diprint otomatis. Tetapi kalau tombol “cetak nota
manual” di-check list, maka nota penjualan akan tercetak bila pengguna
menekan tombol “cetak”.
4.1.7 Antar Muka Menu Pembelian
Gambar 4.7 Menu pembelian
Antar muka menu pembelian merupakan penerapan diagram sequence
pemesanan / Pembelian barang (gambar 3.35), diagram sequence
mengecek mengecek inventori (gambar 3.27).
95
Pada gambar 4.7 adalah gambar menu pembelian. Tahap pertama
pengguna harus memilih data distributor yang ingin pengguna beli,
kemudian jenis pembelian akan dibeli secara tunai atau kredit. Setelah
itu pengguna dapat memasukkan kode barang yang akan dijual ke dalam
field kode barang / scan barcode (data barang yang bisa dicari hanya
berdasarkan nama distributor), kemudian menekan tombol enter agar
data masuk ke dalam tabel (jika banyak barang hanya 1). Tetapi jika
banyak barang lebih dari satu maka pengguna dapat memasukkan
terlebih dahulu banyaknya barang yang akan dibeli, kemudian masukkan
kode barang / scan barcode. Total akan keluar pada pojok kanan bawah
tabel. Tahap selanjutnya adalah pengguna dapat menyimpan transaksi
pembelian dengan menekan tombol “Beli”.
4.1.8 Antar muka Menu Distributor
Gambar 4.8 Menu distributor
96
Antar muka menu distributor merupakan penerapan dari diagram
sequence pencarian data distributor (gambar 3.39).
Gambar 4.8 adalah menu tampilan untuk memanipulasi data
distributor. Pada menu ini ditampilkan semua data distributor yang ada.
Selain itu pengguna dapat menambah data distributor dengan menekan
tombol “Tambah”, dan akan tampil menu untuk tambah data distributor
yang ada pada gambar 4.9. Jika pengguna ingin mengubah data
distributor, pengguna tinggal click data distributor yang ingin diubah dan
tekan tombol ubah (ada pada gambar 4.10). Sedangkan untuk
menghapus data distributor tinggal pilih data distributor yang ingin
dihapus dan click tombol ‘hapus’. Untuk mencari data distributor
pengguna tinggal memasukkan kata kunci dan kategori yang diinginkan,
kemudian tekan tombol “Cari”. Untuk tombol “refresh” adalah untuk
menampilkan semua data (setelah kita mencari data distributor).
4.1.9 Antar Muka Menu Tambah Data distributor
Gambar 4.9 Menu tambah data distributor
97
Antar muka menu tambah distributor merupakan penerapan diagram
sequence distributor baru (gambar 3.36).
4.1.10 Antar Muka Menu Ubah data Distributor
Gambar 4.10 Menu ubah data distributor.
Antar muka menu ubah data distributor merupakan penerapan diagram
sequence ubah data distributor (gambar 3.37).
4.1.11 Antar Muka Menu Data Karyawan
Gambar 4.11 Menu data karyawan
98
Antar muka menu data karyawan merupakan penerapan dari diagram
sequence pencarian data karyawan (gambar 3.43), diagram sequence
menghapus data karyawan (gambar 3.42).
Gambar 4.11 adalah menu data karyawan, pada menu ini pengguna
dapat mencari data karyawan, menambah data karyawan, dan me-reset
password. Pada menu Data karyawan ini pula pengguna dapat membuat
account untuk login sebagai karyawan.
4.1.12 Antar Muka Menu Tambah data karyawan
Gambar 4.12 Menu tambah data karyawan
Antar muka menu tambah data karyawan merupakan penerapan dari
diagram sequence input-an data karyawan baru.
Gambar 4.12 adalah tampilan untuk menambah data karyawan dan
membuat account karyawan. Pada field hanya bisa menerima input-an angka.
99
4.1.13 Antar muka Menu Retur Penjualan
Gambar 4.13 Menu retur penjualan
Antar muka menu retur penjualan merupakan penerapan dari
diagram sequence pencarian data penjualan (gambar 3.48), diagram
sequence pencatatan data retur penjualan (gambar 3.34).
Pada gambar 4.13 adalah gambar menu retur penjualan. Dimana
pengguna memasukkan kode barang yang akan dijual ke dalam kolom
kode barang, kemudian menekan tombol enter agar data nama barang,
satuan, harga, dan stok tampil. Setelah itu pengguna dapat memasukkan
banyak barang yang ingin dijual, isi satuan dan harga atau sebaliknya
pengguna dapat memasukkan banyaknya, isi satuan, dan harga terlebih
dahulu baru kode. Total akan keluar pada pojok kanan atas. Setelah itu
pengguna dapat menyimpan transaksi retur pembelian dengan menekan
tombol “Retur”.
100
4.1.14 Antar Muka Menu Retur Pembelian
Gambar 4.14 Menu retur pembelian
Antar muka menu retur pembelian merupakan penerapan dari
diagram sequence pencarian data pembelian (gambar 3.45), diagram
sequence pencatatan data retur pembelian (gambar 3.44).
Pada gambar 4.14 adalah gambar antar muka retur pembelian.
Dimana pengguna dapat memasukkan kode barang yang akan dibeli ke
dalam field kode barang / scan barcode, kemudian tekan enter agar data
barang tampil pada tabel (jika banyak barang yang diretur hanya 1). Jika
banyak barang lebih dari 1, pengguna tinggal memasukkan banyak
barang yang ingin dibeli lalu masukkan kode barang ke dalam field
kodebarang / scan barcode. Total akan keluar pada pojok kanan atas.
Setelah itu pengguna dapat menyimpan transaksi retur pembelian dengan
menekan tombol “Retur”. Sedangkan tombol “cari” akan menampilkan
101
semua data barang dan pengguna tinggal memilik barang mana yang
akan diretur.
4.1.15 Antar Muka Menu Laporan Penjualan
Gambar 4.17 Menu laporan penjualan
Pada gambar 4.15 adalah tampilan untuk mencetak laporan
penjualan. Pada menu ini pengguna dapat memilih penjualan dari
tanggal berapa sampai tanggal berapa yang ingin dicetak. Contoh
laporan penjualan ada dilampiran (gambar L1).
102
4.1.16 Antar Muka Menu Laporan Pembelian
Gambar 4.16 Menu laporan pembelian
Pada gambar 4.16 adalah tampilan untuk mencetak laporan
pembelian. Pada menu ini pengguna dapat memilih pembelian dari
tanggal berapa sampai tanggal berapa yang ingin dicetak. Contoh
laporan pembelian ada dilampiran (gambar L3).
4.1.17 Antar Muka Menu Laporan Detail Penjualan
Gambar 4.17 Menu laporan detail penjualan
Pada gambar 4.17 adalah tampilan untuk mencetak laporan
Detail Penjualan. Pada menu ini pengguna dapat memilih pembelian dari
103
tanggal berapa sampai tanggal berapa yang ingin dicetak. Contoh
laporan detail penjualan ada dilampiran (gambar L2).
4.1.18 Antar Muka Menu Laporan Detail Pembelian Tunai
Gambar 4.18 Menu laporan detail pembelian tunai
Pada gambar 4.18 adalah tampilan untuk mencetak laporan
Detail Pembelian Tunai. Pada menu ini pengguna dapat memilih
pembelian Tunai dari tanggal berapa sampai tanggal berapa yang ingin
dicetak. Contoh laporan detail pembelian tunai ada dilampiran (gambar
L4).
104
4.1.19 Antar Muka Menu Laporan Detail Pembelian Kredit
Gambar 4.19 Menu laporan detail pembelian kredit
Pada gambar 4.19 adalah tampilan untuk mencetak laporan
Detail Pembelian Kredit. Pada menu ini pengguna dapat memilih
pembelian Kredit dari tanggal berapa sampai tanggal berapa yang ingin
dicetak. Contoh laporan detail pembelian kredit ada dilampiran (gambar
L4).
4.1.20 Antar Muka Menu Pembayaran
Gambar 4.20 Menu pembayaran.
105
Antar muka menu pembayaran merupakan penerapan dari diagram
sequence view data hutang (gambar 3.46).
Pada gambar 4.20 adalah tampilan daftar hutang pembelian secara
kredit. Pada tampilan ini pengguna dapat mengetahui hutang pada
distributor dan rincian hutang Toko Ijo. Jika pengguna ingin membayar
hutang, pengguna tinggal pilih hutang Toko Ijo pada tabel bagian atas
dan rincian data hutang akan tampil pada tabel bawah, rincian. Total
bayar dan sisa hutang akan tampil jika kita sudah membayar hutang.
Setalah itu akan tampil sebuah tampilan baru untuk mengisi total bayar
yang pengguna masukkan, serta tanggal pembayarannya.
4.1.21 Antar Muka Menu Bayar Hutang
Gambar 4.21 Menu bayar hutang
Antar muka menu bayar hutang merupakan penerapan dari diagram
sequence pembayaran hutang (gambar 3.47).
106
4.1.22 Antar Muka Menu Pencarian Barang
Gambar 4.22 Menu pencarian barang
Antar muka menu pencarian barang merupakan penerapan dari diagram
sequence pencarian data barang (gambar 3.27).
4.1.23 Antar Muka Menu Pencarian Data Distributor
Gambar 4.23 Menu pencarian distributor
Antar muka menu pencarian distributor merupakan penerapan dari
diagram sequence pencarian data distributor (gambar 3.39).
107
4.1.24 Antar Muka Menu Hak Akses
Gambar 4.24 Menu hak akses.
Antar muka menu hak akses merupakan penerapan dari diagram
sequence pengubahan data karyawan (gambar 3.41).
4.1.25 Antar Muka Menu Ubah Password Admin
Gambar 4.25 Menu ubah password admin.
Antar muka menu ubah password merupakan penerapan dari
diagram sequence pengubahan password admin (Gambar 3.49).
108
4.1.26 Antar Muka Menu Ubah Password Karyawan
Gambar 4.26 Menu ubah password karyawan
Antar muka menu hak akses merupakan penerapan dari diagram
sequence pengubahan data karyawan (gambar 3.41).
4.1.27 Antar Muka Menu Ubah Data Karyawan
.
Gambar 4.27 Menu ubah data karyawan Antar muka menu hak akses merupakan penerapan dari diagram
sequence pengubahan data karyawan (gambar 3.41).
109
4.2 Penjelasan Implementasi OODB menggunakan db4o. Potongan source code untuk menambah data barang pada Model Database:
public void TambahB(String fullPath, String kode_brg, String nama,
String satuan, int harga, int stok, String satuanBeli, int
HargaBeli, int isisatuan, final String id) {
com.db4o.ObjectContainer db = Db4o.openFile(fullPath);
ObjectSet Distr = db.query(new Predicate<Distributor>() {
public boolean match(Distributor d) {
String a = String.valueOf(d.getId_distributor());
return a.compareTo(id) == 0; // Penjelasan liat pada point 1
}
});
while (Distr.hasNext()) {
getId_distributor().add((Distributor) Distr.next());
}
Barang b = new Barang(kode_brg, nama, satuan, harga, stok,
satuanBeli, HargaBeli, isisatuan, getId_distributor()); //
penjelasan ada pada point 2
db.set(b);
db.close();
110
}
Relasi one-to-many
public void UbahColect(String fullPath, final String kode, final
int id_d) {
ObjectContainer db = Db4o.openFile(fullPath);
try {
ObjectSet dis = db.query(new Predicate<Barang>() {
public boolean match(Barang b) { // penjelasan
liat pada point 3
Distributor d = new Distributor();
for (int i = 0; i < b.ID_Distributor().size();
i++) {
d = b.ID_Distributor().get(i);
}
String dd =
String.valueOf(d.getId_distributor());
String id_dis = String.valueOf(id_d);
return dd.compareTo(id_dis) == 0;
}
});
111
while (dis.hasNext()) {
this._barang.add((Barang) dis.next());
}
ObjectSet Result = db.get(new Distributor(id_d)); //
Penjelasan liat pada point 4
Distributor D = (Distributor) Result.next();
D.setBarang(_barang);
db.set(D);
} finally {
db.close();
}
}
Analisa:
1. Pada point ini kita akan melihat terlebih dahulu semua data distributor
dimana id_distributor yang ada di distributor dibandingkan dengan
id_distributor yang kita peroleh dari Tampilan menu tambah data
karyawan. Kemudian hasilnya akan dimasukkan ke dalam list bertipe
Distributor.
2. Pada point ini kita akan kita akan memasukkan data barang kedalam
model Barang dimana kita memanggil konstruktor Barang terlebih dahulu.
Kemudian memasukkan semua data yang telah diperoleh dan diset
112
kedalam database db4o. ini baru relasi sepihak, yaitu relasi many-to-one
antara barang dan distributor. Disini kita sudah bisa melihat barang yang
kita inputkan mempunya relasi dengan distributor tertentu. Untuk melihat
suatu distributor mempunyai barang apa saja akan dijelaskan pada poin
berikutnya.
3. Pada point 3 ini, untuk membuat relasi 2 arah kita harus melakukan tahap
berikutnya. Tahap selanjutnya yaitu mengubah list barang yang ada di
object distributor. Caranya menampilkan semua data barang dimana
id_distributor yang ada di object distributor dibandingkan dengan list
distributor yang ada di tabel barang. Kemudian data barang yang
ditampilkan itu disimpan dalam list dengan tipe barang.
4. Tahap ini adalah tahapan update list dengan tipe barang yang ada di object
distributor dengan data barang yang telah diperoleh dari point 3. Dimana
pertama-tama kita mencari object distributor dengan dengan id yang di
peroleh dari tampilan tambah data barang. Setelah ketemu kita tinggal
mengubah data/object dari distributor itu dengan cara menset object
tersebut dengan data yang baru. Pada tahap ini relasi one-to-many antara
object distributor dan barang sudah terjalin 2 arah, yaitu kita dapat melihat
dari object barang ataupun distributor.
113
4.3 Penjelasan Konsep MVC Menggunakan Java Contoh penerapan konsep MVC (Model, View dan Controller) adalah
pada Menu Laporan
4.3.1 View
Gambar 4.3.1 contoh View Laporan
Potongan source code pemanggilan Controller
public Laporanall(String fullPath, String username, String
info, String password) {
this.fullPath = fullPath;
this.username = username;
this.info = info;
this.password = password;
initComponents();
if (this.info.compareTo("Penjualan") == 0) {
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(
null, "Laporan Penjualan",
javax.swing.border.TitledBorder.CENTER,
javax.swing.border.TitledBorder.DEFAULT_POSITION, new
java.awt.Font("Times New Roman", 1, 14)));
114
LPC = new LPenjualanC(jTable1);
} else if (this.info.compareTo("Pembelian") == 0) {
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(
null, "Laporan Pembelian",
javax.swing.border.TitledBorder.CENTER,
javax.swing.border.TitledBorder.DEFAULT_POSITION, new
java.awt.Font("Times New Roman", 1, 14)));
LBC = new LPembelianC(jTable1);
} else if (this.info.compareTo("DPenjualan") == 0) {
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(
null, "Laporan Detail Penjualan",
javax.swing.border.TitledBorder.CENTER,
javax.swing.border.TitledBorder.DEFAULT_POSITION, new
java.awt.Font("Times New Roman", 1, 14)));
LDPC = new LDetailPenjualanC(jTable1);
} else if (this.info.compareTo("DPembelianKredit") ==
0) {
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(
null, "Laporan Detail Pembelian Kredit",
javax.swing.border.TitledBorder.CENTER,
javax.swing.border.TitledBorder.DEFAULT_POSITION, new
java.awt.Font("Times New Roman", 1, 14)));
LDBKC = new LDetailPembelianKreditC(jTable1);
} else if (this.info.compareTo("DPembelianTunai") == 0)
{
115
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(
null, "Laporan Detail Pembelian Tunai",
javax.swing.border.TitledBorder.CENTER,
javax.swing.border.TitledBorder.DEFAULT_POSITION, new
java.awt.Font("Times New Roman", 1, 14)));
LDBC = new LDetailPembelianTunaiC(jTable1);
}
this.setExtendedState(6);
jButton1.setEnabled(false);
}
4.3.2 Controller
4.3.2.1 Controller penjualan public class LPenjualanC {
List list = new ArrayList<Penjualan>();
TableModel tableModel = new TabelMPenjualanEdit(list);
public static final String[] columnNames = {
"No Faktur Penjualan", "Tanggal Faktur", "Total"
};
private JTable jTable1;
public LPenjualanC(JTable jTable1) {
this.jTable1 = jTable1;
tableModel = new PenjualanMTableModel(columnNames);
116
this.jTable1.setModel(tableModel);
}
public void cari(String fullPath, final JDateChooser
Awal, final JDateChooser Akhir) {
list.removeAll(list);
ObjectContainer db = Db4o.openFile(fullPath);
try {
ObjectSet laps = db.query(new
Predicate<Penjualan>() {
public boolean match(Penjualan pj) {
return
pj.getTgl_fakturPenjualan().after(Awal.getDate()) &&
pj.getTgl_fakturPenjualan().before(Akhir.getDate());
}
}, new QueryComparator<Penjualan>() {
public int compare(Penjualan d1, Penjualan
d2) {
int result = d2.getNo_fakturPenjualan()
- d1.getNo_fakturPenjualan();
if (result == 0) {
return
d1.getTgl_fakturPenjualan().compareTo(d2.getTgl_fakturPenjua
lan());
} else {
return -result;
117
}
}
});
while (laps.hasNext()) {
Penjualan j = (Penjualan) laps.next();
LapValue lapjual = new
LapValue(j.getNo_fakturPenjualan(),
j.getTgl_fakturPenjualan(), j.getTotal());
this.list.add(lapjual);
}
this.tableModel = new TabelMPenjualanEdit(list);
this.jTable1.setModel(tableModel);
} finally {
db.close();
}
}
public void Cetak() {
Properties systemProp = System.getProperties();
// Ambil current dir
String currentDir =
systemProp.getProperty("user.dir");
File dir = new File(currentDir);
String reportName = "report1.jrxml";
String reportDirName = "Report";
118
File fileRpt;
String Path = "../dist/Report/report1.jrxml";
File.separatorChar +
end if
// Ambil Direktori tempat file RptMaster.jrxml
berada
String[] subRptDir = Path.split(reportName);
String reportDir = subRptDir[0];
System.out.println("Report Directory at : " +
reportDir);
Map<String, Object> parameters = new HashMap<String,
Object>();
parameters.put(null, null);
try {
JasperReport JRpt =
JasperCompileManager.compileReport(Path);
JasperPrint JPrint =
JasperFillManager.fillReport(JRpt, parameters, new
JRTableModelDataSource(tableModel));
JasperViewer.viewReport(JPrint, false);
} catch (Exception rptexcpt) {
JOptionPane.showMessageDialog(null, rptexcpt);
System.out.println("Report Can't view because :
" + rptexcpt);
}
}
119
/**
* @return the jTable
*/
public JTable getJTable() {
return jTable1;
}
/**
* @param jTable the jTable to set
*/
public void setJTable(JTable jTable) {
this.jTable1 = jTable;
}
}
4.3.2.2 Controller Laporan pembelian public class LPembelianC {
List list = new ArrayList<Pembelian>();
TableModel tableModel = new TabelMEditPembelian(list);
public static final String[] columnNames = {
"No Faktur Pembelian", "Tanggal Faktur", "Total"
};
private JTable jTable1;
public LPembelianC(JTable jTable) {
120
this.jTable1 = jTable;
tableModel = new PembelianMTableModel(columnNames);
PembelianGui.InteractiveTableModelListener());
this.jTable1.setModel(tableModel);
}
public void cari(String fullPath, final JDateChooser
Awal, final JDateChooser Akhir) {
list.removeAll(list);
ObjectContainer db = Db4o.openFile(fullPath);
try {
ObjectSet laps = db.query(new
Predicate<Pembelian>() {
public boolean match(Pembelian pb) {
return
pb.getTgl_fakturPembelian().after(Awal.getDate()) &&
pb.getTgl_fakturPembelian().before(Akhir.getDate());
}
}, new QueryComparator<Pembelian>() {
public int compare(Pembelian d1, Pembelian
d2) {
int result = d2.getNo_fakturPembelian()
- d1.getNo_fakturPembelian();
if (result == 0) {
121
return
d1.getTgl_fakturPembelian().compareTo(d2.getTgl_fakturPembel
ian());
} else {
return -result;
}
}
});
while (laps.hasNext()) {
Pembelian b = (Pembelian) laps.next();
LapValue lapsbeli = new
LapValue(b.getNo_fakturPembelian(),
b.getTgl_fakturPembelian(), Integer.valueOf(b.getTotal()));
list.add(lapsbeli);
}
this.tableModel = new TabelMEditPembelian(list);
this.getJTable1().setModel(tableModel);
} finally {
db.close();
}
}
public void Cetak() {
Properties systemProp = System.getProperties();
// Ambil current dir
String currentDir =
systemProp.getProperty("user.dir");
122
File dir = new File(currentDir);
String reportName = "LaporanPembelian.jrxml";
String reportDirName = "Report";
File fileRpt;
String Path =
"../dist/Report/LaporanPembelian.jrxml";
File.separatorChar +
// Ambil Direktori tempat file RptMaster.jrxml
berada
String[] subRptDir = Path.split(reportName);
String reportDir = subRptDir[0];
System.out.println("Report Directory at : " +
reportDir);
Map<String, Object> parameters = new HashMap<String,
Object>();
try {
JasperReport JRpt =
JasperCompileManager.compileReport(Path);
JasperPrint JPrint =
JasperFillManager.fillReport(JRpt, parameters, new
JRTableModelDataSource(tableModel));
JasperViewer.viewReport(JPrint, false);
} catch (Exception rptexcpt) {
JOptionPane.showMessageDialog(null, rptexcpt);
123
System.out.println("Penyebab laporan tidak dapat
dipakai : " + rptexcpt);
}
}
/**
* @return the jTable1
*/
public JTable getJTable1() {
return jTable1;
}
/**
* @param jTable1 the jTable1 to set
*/
public void setJTable1(JTable jTable1) {
this.jTable1 = jTable1;
}
}
4.3.2 Model public class LapValue {
private int No_faktur;
private Date Tgl_faktur;
private Object Total;
Object value;
124
public LapValue(int noFak, Date TglFak, int tot) {
this.No_faktur = noFak;
this.Tgl_faktur = TglFak;
this.value = tot;
Number numberValue = (Number) value;
NumberFormat formatter =
NumberFormat.getNumberInstance();
formatter.setMinimumIntegerDigits(1);
formatter.setMaximumFractionDigits(2);
formatter.setMinimumFractionDigits(2);
value =
formatter.format(numberValue.doubleValue());
this.Total = value;
}
/**
* @return the No_faktur
*/
public int getNo_faktur() {
return No_faktur;
}
/**
* @param No_faktur the No_faktur to set
*/
public void setNo_faktur(int No_faktur) {
this.No_faktur = No_faktur;
125
}
/**
* @return the Tgl_faktur
*/
public Date getTgl_faktur() {
return Tgl_faktur;
}
/**
* @param Tgl_faktur the Tgl_faktur to set
*/
public void setTgl_faktur(Date Tgl_faktur) {
this.Tgl_faktur = Tgl_faktur;
}
/**
* @return the Total
*/
public Object getTotal() {
return Total;
}
/**
* @param Total the Total to set
*/
public void setTotal(Object Total) {
this.Total = Total;
}
}
126
Analisa:
Contoh view diatas merupakan contoh penerapan konsep MVC. Satu view
diatas akan dipakai oleh berbagai macam laporan seperti laporan penjualan,
laporan pembelian, laporan detail penjualan, laporan detail pembelian, dan
lain-lain. Pada penjelasan contoh kali ini akan dibahas hanya untuk laporan
penjualan dan pembelian.
Pada view kita akan memberikan kondisi pemanggilan / penanda bahwa
kita ingin tampilan laporan penjualan atau pembelian, caranya dengan
memberikan informasi tambahan pada saat kita memilih menu yang akan
dipanggil. Setelah itu informasi tambahan tersebut dipakai untuk membedakan
kita memanggil laporan penjualan atau pembelian.
Tugas selanjutnya adalah controller yang mengatur atau memberikan
method yang akan digunakan. Controller akan memberikan laporan yang kita
inginkan (data laporan penjualan atau pembelian). Controller akan mengambil
model yang akan dipakai dan di tampilkan pada view. Model disini berupa
tabel yang kita pakai untuk menampilkan data penjualan dan pembelian dari
database. Dengan demikian kita dapat menggunakan satu view untuk berbagai
macam fungsi atau menu yang berbeda dengan catatan rancangan GUI yang
dipakai mirip/sama, tetapi hanya beda nama datanya saja seperti pada laporan.
127
Bab V
Pengujian Sistem
Aplikasi SISTEM INFORMASI PEMBELIAN, PENJUALAN,
DAN INVENTORI BARANG MENGGUNAKAN PENDEKATAN
BERORIENTASI OBYEK yang telah dibuat, selanjutnya diuji melalui
teknik pengujian perangkat lunak yang meliputi pengujian white box dan
pengujian black box.
5.1 Pengujian White Box
5.1.1 Pengujian Proses Login a. Jika belum ada akan database, akan mengisi data dari object
pemilik dengan username dan password dengan admin.
b. Akan tetapi jika database sudah ada, sistem akan mencari
username dan password dari object pemilik.
c. Selanjutnya akan men-cek pengguna login sebagi admin atau
karyawan.
Jika username dan password tidak kosong serta username yang
dimasukkan = username di object pemilik dan password yang
dimasukkan = password di object pemilik.
tetapi jika tidak ada di object pemilik akan mencari di object
karyawan.
128
d. Jika username atau password kosong sistem akan memberikan
konfirmasi.
5.1.2 Pengujian Proses Pengubahan Password a. Mengambil data password baru.
b. Mengecek data password lama yang diinputkan apakah sama
dengan data password yang ada di database. Jika tidak sama akan
membatalkan pengubahan password dan memberikan konfirmasi
bahwa password lama yang diinputkan tidak sama.
c. Mengecek data password baru dengan konfirmasi password baru
apakah sama, jika sama maka dilakukan pengubahan password.
Tetapi jika tidak sama akan membatalkan pengubahan password
dan memberikan konfirmasi bahwa konfirmasi password tidak
sama dengan password baru.
5.1.3 Pengujian Proses Menu Utama a. Membandingkan data Login dari object pemilik atau karyawan
dengan cara memeriksa username dan password yang ada pada
object karyawan data login berasal dari pemilik atau karyawan.
b. Mengecek menu login, jika login dari object karyawan makan
ada pembatasan hak akses.
5.1.4 Pengujian Proses Tambah Barang a. Mengecek apakah kode barang kosong dan id_distributor=0.
129
Jika kode barang kosong dan id_distributor =0 penyimpanan
data barang dibatalkan. Kemudian mengambil data barang yang
akan disimpan ke dalam database.
b. Mengecek kode barang dan nama barang yang akan disimpan
sebelumnya sudah ada atau belum. Jika sudah ada
penyimpanan data barang dibatalkan dan sistem akan
memberikan konfirmasi bahwa data barang sudah ada.
5.1.5 Pengujian Proses Ubah Data Barang a. Mengambil data barang yang akan diubah.
b. Mengubah data barang yang ingin diubah.
5.1.6 Pengujian Proses Tambah Data Distributor a. Mengambil data distributor yang akan di simpan ke dalam
database.
b. Membandingkan apa nama distributor pernah disimpan
sebelumnya.
c. Lakukan pengecekan apakah Data distributor yang nama sudah
tersimpan itu ada apa tidak.
d. Lakukan pengecekan apakah email yang di inputkan memenuhi
standar.
e. Lakukan pengecekan apakah nama email null.
f. Melakukan penyimpanan object distributor.
130
5.1.7 Pengujian Proses Ubah Data Distributor. a. Mengambil data distributor yang akan diubah.
b. Mengubah data distributor yang akan di ubah.
5.1.8 Pengujian Proses Searching Data Distributor a. Mengambil kata kunci dan kategori data distributor yang akan
dicari.
b. Mencari kata kunci dan kategori di dalam database distributor.
5.1.9 Pengujian Proses Tambah Data Karyawan a. Mengambil data karyawan yang akan dimasukkan ke dalam
database.
b. Check apakah kode barang dan nama barang yang diinputkan
kosong atau tidak, atau kode barang dan nama barang yang
diinputkan pernah diinputkan sebelumnya.
5.1.10 Proses Pengujian Ubah Data Karyawan a. Mengambil data Barang yang akan diubah.
b. Memberikan konfirmasi apakah pengguna yakin ingin
mengubah data karyawan. Jika yakin data karyawan akan
diubah.
5.1.11 Proses Pengujian Ubah Data Password Karyawan a. Cek apakah password lama sama dengan yang ada di database.
Jika ya cek lagi apakah inputan password baru = konfirmasi
password. Jika ya akan mengubah password Karyawan. Tetapi
131
jika tidak sama dengan password lama atau password baru
tidak sama dengan konfirmasi password, maka sistem akan
memberikan konfirmasi.
5.1.12 Proses Pengujian Laporan a. Cek tanggal awal dan akhir yang ingin dicari apakah kosong
atau tidak. Jika kosog maka sistem akan memberikan
konfirmasi. Jika tidak kosong akan ada kondisi jenis laporan
yang ingin ditampilkan.
5.1.13 Proses Pengujian Pencarian Data Barang a. Mengambil kata kunci dan kategori yang ingin dicari.
b. Cek kategori yang ingin dicari dan kata kunci. Jika data ada
akan ditampilkan ke dalam tabel, jika tidak ada sistem akan
memberikan konfirmasi.
5.1.14 Proses Pengujian Data Transaksi a. Cek apakah data transaksi yang ingin dicari adalah transksi
penjualan atau pembelian.
b. Mengambil data tanggal transaksi yang ingin dicari.
c. Menampilkan data transaksi berdasarkan tanggal yang
diinputkan.
5.1.15 Proses Pengujian Retur a. Cek apakah Barang yang ingin di retur adalah kategori retur
jual atau retur beli. Jika retur jua maka menggunakan method
132
retur jual, tetapi jika retur beli maka menggunakan method
retur beli.
b. Cek data barang yang diretur apakah ada atau tidak. Jika tidak
ada maka sistem akan memberikan konfirmasi. Jika ada data
maka akan disimpan di dalam database.
5.1.16 Proses Pengujian Bayar Hutang a. Mengambil data Pembayaran.
b. Data bayar yang diinputkan akan disimpan didalam database.
5.1.17 Proses Pengujian Pembelian a. Cek kategori pembelian secara tunai atau kredit.
b. Cek barang yang di beli ada atau tidak. Jika tidak ada maka
penyimpanan dibatalkan tetapi jika ada data transaksi
pembelian akan disimpan.
5.1.18 Proses Pengujian Penjualan a. Cek nota penjualan akan dicetak secara otomatis atau tidak.
b. Mengambil data penjualan.
c. Cek Apakah barang yang dijual ada atau tidak. Jika tidak ada
transaksi penjualan dibatalkan, tetapi jika ada lanjut ke
pengecekkan selanjutnya. Pengecekkan selanjutnya adalah cek
uang yang di bayar pembeli.
133
5.2 Pengujian Black Box
Tabel 5.2.1 Hasil Pengujian Black Box Proses Login Input Proses Output Hasil
Pengujian
Mengisi
username.
Event focusgained
untuk select all
data yang di enty.
Menampilkan
data yang di
entry dan terblok.
Sesuai.
Mengisi
password.
Event focusgained
untuk select all
data yang di entry.
Menampilkan
data yang di
entry dan terblok.
Sesuai.
Penekanan
tombol
“Login”.
Event
actionperfomed
untuk validasi
login
Menampilkan
hasil validasi
login
Sesuai.
Penekanan
tombol “Batal”.
Event
actionperfomed
untuk keluar dari
progam.
Keluar dari
program
Sesuai.
134
Tabel 5.2.2 Hasil Pengujian Black Box Proses Pengubahan Password Input Proses Output Hasil
Pengujian
Mengisi
password lama.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan
data yang di
entry dan
terblok.
Sesuai.
Mengisi
password baru.
Event focusgained
untuk select all
data yang di enty.
Menampilkan
data yang di
entry dan
terblok.
Sesuai.
Mengisi
konfirmasi
password baru.
Event focusgained
untuk select all
data yang di enty.
Menampilkan
data yang di
entry dan
terblok.
Sesuai.
Penekanan
tombol “OK”.
Event
actionperfomed
untuk pengubahan
data password.
Menampilkan
validasi
pengubahan
password
Sesuai.
Penekanan
tombol “Batal”.
Event
actionperfomed
untuk keluar dari
progam.
Keluar dari
tampilan
pengubahan
password.
Sesuai.
135
Tabel 5.2.3 Hasil Pengujian Black Box Menu Utama Input Proses Output Hasil
Pengujian
Penekanan
tombol “Menu
Barang”.
Event
actionperfomed
untuk masuk ke
Menu Barang.
Menampilkan Menu
Barang.
Sesuai.
Penekanan
tombol “Menu
Penjualan”.
Event
actionperfomed
untuk masuk ke
Menu Penjualan.
Menampilkan Menu
Penjualan
Sesuai.
Penekanan
tombol “Menu
Pembelian”.
Event
actionperfomed
untuk masuk ke
MenuPenjualan.
Menampilkan Menu
Pembelian.
Sesuai.
Penekanan
tombol “Menu
Distributor”.
Event
actionperfomed
untuk masuk ke
Menu Distributor.
Menampilkan Menu
Distributor.
Sesuai.
Penekanan
tombol “Menu
Karyawan”.
Event
actionperfomed
untuk masuk ke
Menu Karyawan.
Menampilkan Menu
Karyawan.
Sesuai.
136
Penekanan
tombol “Menu
Logout”.
Event
actionperfomed
untuk memanggil
Menu Login.
Menampilkan Menu
Login
Sesuai.
Penekanan
tombol “Close”.
Event
actionperfomed
untuk keluar dari
aplikasi.
Keluar dari aplikasi Sesuai.
Penekanan
tombol “Menu
Ubah Password
Admin”.
Event
actionperfomed
untuk masuk ke
Menu Ubah
Password Admin.
Menampilkan Menu
Ubah Password
Admin
Sesuai.
Penekanan
tombol “Menu
Ubah Password
Karyawan”.
Event
actionperfomed
untuk masuk ke
Menu Ubah
Password
Karyawan.
Menampilkan Menu
Ubah Password
Karyawan.
Sesuai.
Penekanan
tombol “Menu
Ubah Data
Karyawan”.
Event
actionperfomed
untuk masuk ke
Menu Ubah Data
Menampilkan Menu
Ubah Data
Karyawan.
Sesuai.
137
Karyawan.
Penekanan
tombol “Menu
Hak Akses”.
Event
actionperfomed
untuk masuk ke
Menu Hak Akses.
Menampilkan Menu
Hak Akses.
Sesuai.
Penekanan
tombol “Menu
Retur
Penjualan”.
Event
actionperfomed
untuk masuk ke
Menu Retur
Barang.
Menampilkan Menu
Retur Barang.
Sesuai.
Penekanan
tombol “Menu
Retur
Pembelian”.
Event
actionperfomed
untuk masuk ke
Menu Retur
Pembelian.
Menampilkan Menu
Retur Pembelian.
Sesuai.
Penekanan
tombol “Menu
Pembayaran”.
Event
actionperfomed
untuk masuk ke
Menu
Pembayaran.
Menampilkan Menu
Pembayaran.
Sesuai.
Penekanan
tombol “Menu
Laporan
Event
actionperfomed
untuk masuk ke
Menampilkan Menu
Laporan Penjualan.
Sesuai.
138
Penjualan”. Menu Laporan
Penjualan”.
Penekanan
tombol “Menu
Laporan
Pembelian”.
Event
actionperfomed
untuk masuk ke
Menu Pembelian.
Menampilkan Menu
Laporan Pembelian.
Sesuai.
Penekanan
tombol “Menu
Laporan Detail
Penjualan”.
Event
actionperfomed
untuk masuk ke
Menu Laporan
Detail Penjualan.
Menampilkan Menu
Laporan Detail
Penjualan.
Sesuai.
Penekanan
tombol “Menu
Laporan Detail
Pembelian
Kredit”.
Event
actionperfomed
untuk masuk ke
Menu Laporan
Detail Pembelian
Kredit.
Menampilkan
Laporan Detail
Pembelian Kredit.
Sesuai.
Penekanan
tombol “Menu
Laporan Detail
Pembelian
Tunai”.
Event
actionperfomed
untuk masuk ke
Menu Laporan
Detail Pembelian
Tunai.
Menampilkan
Laporan Detail
Pembelian Tunai.
Sesuai.
139
Penekanan
tombol “Menu
Help”.
Event
actionperfomed
untuk masuk ke
Menu Help.
Menampilkan Menu
Help.
Sesuai.
Tabel 5.2.4 Hasil Pengujian Black Box Menu Hak Akses. Input Proses Output Hasil
Pengujian
Penekanan
tabel “Hak
Akses
Karyawan”.
Event
mouseclicked
untuk mengambil
data tabel yang di
klik.
Mengambil data dari
tabel yang dipilih.
Sesuai.
Penekanan
check box
“Karyawan”.
Setselected untuk
memberikan nilai
true n false.
Menampilkan data
check box yang
dipilih.
Sesuai.
Penekanan
check box
“Distributor”.
Setselected untuk
memberikan nilai
true n false.
Menampilkan data
check box yang
dipilih.
Sesuai.
Penekanan
check box
“Ubah
Password”.
Setselected untuk
memberikan nilai
true n false.
Menampilkan data
check box yang
dipilih.
Sesuai.
140
Penekanan
check box “Hak
Akses”.
Setselected untuk
memberikan nilai
true n false.
Menampilkan data
check box yang
dipilih.
Sesuai.
Penekanan
check box
“Ubah Data
Karyawan”.
Setselected untuk
memberikan nilai
true n false.
Menampilkan data
check box yang
dipilih.
Sesuai.
Penekanan
check box
“Penjualan”.
Setselected untuk
memberikan nilai
true n false.
Menampilkan data
check box yang
dipilih.
Sesuai.
Penekanan
check box
“Retur Jual”.
Setselected untuk
memberikan nilai
true n false.
Menampilkan data
check box yang
dipilih.
Sesuai.
Penekanan
check box
“Pembelian”.
Setselected untuk
memberikan nilai
true n false.
Menampilkan data
check box yang
dipilih.
Sesuai.
Penekanan
check box
“Retur
Pembelian”.
Setselected untuk
memberikan nilai
true n false.
Menampilkan data
check box yang
dipilih.
Sesuai.
Penekanan
check box
“Pembayaran”.
Setselected untuk
memberikan nilai
true n false.
Menampilkan data
check box yang
dipilih.
Sesuai.
141
Penekanan
check box
“Laporan”.
Setselected untuk
memberikan nilai
true n false.
Menampilkan data
check box yang
dipilih.
Sesuai.
Penekanan
tombol
“Simpan”.
Event
actionperfomed
untuk mengubah
data Hak Akses
Karyawan.
Menampilkan
validasi pengubahan
data Hak Akses
Karyawan.
Sesuai.
Penekanan
tombol
“Default”.
Event
actionperfomed
untuk mengubah
data Hak Akses
Karyawan seperti
semula.
Menampilkan
validasi pengubahan
data Hak Akses
Karyawan.
Sesuai.
Penekanan
tombol “Menu
Utama”.
Event
actionperfomed
untuk Memanggil
Menu Utama.
Menampilkan Menu
Utama.
Sesuai.
142
Tabel 5.2.5 Hasil Pengujian Black Box Menu Barang. Input Proses Output Hasil
Pengujian
Penekanan
tabel data
barang.
Event
mouseclicked
untuk mengambil
data tabel yang di
klik.
Mengambil data dari
tabel yang dipilih.
Sesuai.
Mengisi
masukkan kata
kunci.
Event focusgained
untuk select all
data yang di enty.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Penekanan
tombol “cari”.
Event
actionperfomed
untuk mencari
data barang yang
ada di database.
Menampilkan data
barang yang dicari
berdasarkan kata
kunci dan di
tampilkan dalam
tabel
Sesuai.
Penekanan
tombol
“Tambah”.
Event
actionperfomed
untuk Memanggil
Menu Tambah
Barang.
Menampilkan Menu
Tambah Barang.
Sesuai.
Penekanan Event Menampilkan Menu Sesuai.
143
tombol “Ubah”. actionperfomed
untuk Memanggil
Menu Ubah
Barang.
Ubah Barang.
Penekanan
tombol
“Refresh”.
Event
actionperfomed
untuk
membersihkan
tabel hasil
pencarian data
barang ke
keadaan kosong.
Menampilkan hasil
tabel pencarian data
barang ke keadaan
kosong.
Sesuai.
Penekanan
tombol “Menu
Utama”.
Event
actionperfomed
untuk Memanggil
Menu Utama.
Menampilkan Menu
Utama
Sesuai.
Tabel 5.2.6 Hasil Pengujian Black Box Menu Tambah Barang. Input Proses Output Hasil
Pengujian
Mengisi “kode
barang”.
Event focusgained
untuk select all
data yang di
Menampilkan data
yang di entry dan
terblok.
Sesuai.
144
entry.
Mengisi “Nama
Barang”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi
“Satuan Beli”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi “Isi
Satuan Beli”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi
“Satuan Jual”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi “Harga
Per Satuan
Beli”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi “Harga
Per Satuan
Event focusgained
untuk select all
Menampilkan data
yang di entry dan
Sesuai.
145
Jual”. data yang di
entry.
terblok.
Menekan
tombol “Cari”.
Event
actionperfomed
untuk Memanggil
Menu Cari Data.
Menampilkan Menu
Cari Data.
Sesuai.
Menekan
tombol “OK”.
Event
actionperfomed
untuk menyimpan
data Barang ke
database.
Memberikan
validasi
penyimpanan data.
Sesuai.
Menekan
tombol “Batal”.
Event
actionperfomed
untuk keluar dari
Menu Tambah
Barang.
Keluar dari Menu
Tambah Barang.
Sesuai.
Tabel 5.2.7 Hasil Pengujian Black Box Menu Ubah Barang. Input Proses Output Hasil
Pengujian
Mengisi “Nama
Barang”.
Event focusgained
untuk select all
data yang di
Menampilkan data
yang di entry dan
terblok.
Sesuai.
146
entry.
Mengisi
“Satuan Jual”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi
“Satuan Beli”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi “Isi
Satuan Beli”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi “Harga
Jual”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi “Harga
Beli”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Penekanan
tombol “OK”.
Event
actionperfomed
Memberikan
validasi pengubahan
Sesuai.
147
untuk mengubah
data Barang ke
database.
data.
Penekanan
tombol “Batal”.
Event
actionperfomed
untuk keluar dari
“Ubah Data
Barang”.
Keluar dari Menu
Ubah Keluar.
Sesuai.
Tabel 5.2.7 Hasil Pengujian Black Box Menu Distributor. Input Proses Output Hasil
Pengujian
Mengisi “Kata
Kunci”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Menekan
tombol “Cari”.
Event
actionperfomed
untuk mencari
Data Distributor
dari Database.
Menampilkan data
distributor yang di
cari ke dalam tabel.
Sesuai.
Menekan
tombol
Event
actionperfomed
Menampilkan Menu
Tambah Data
Sesuai.
148
“Tambah”. untuk memanggil
menu “Tambah
Data Distributor”.
Distributor.
Menekan
tombol “Ubah”.
Event
actionperfomed
untuk memanggil
menu “Ubah Data
Distributor”.
Menampilkan Menu
Ubah Data
Distributor
Sesuai.
Menekan
tombol
“Refresh”.
Event
actionperfomed
untuk
menampilkan
semua data
distributor.
Menampilkan semua
data distributor ke
dalam tabel.
Sesuai.
Menekan
tombol “Menu
Utama”.
Event
actionperfomed
untuk memanggil
Menu Utama.
Menampilkan Menu
Utama
Sesuai.
149
Tabel 5.2.7 Hasil Pengujian Black Box Menu Tambah Distributor. Input Proses Output Hasil
Pengujian
Mengisi “Nama
Distributor”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry yang
terblok.
Sesuai.
Mengisi
“Telepone”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi “Fax”. Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi
“Email”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi
“Alamat”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
150
Menekan
tombol
“Simpan”.
Event
actionperfomed
untuk
menyimpan data
distributor.
Memberikan
validasi
penyimpanan data
distributor.
Sesuai.
Menekan
tombol
“Selesai”.
Event
actionperfomed
untuk keluar dari
Menu Tambah
Distributor.
Keluar dari Menu
Tambah Distributor.
Sesuai.
Tabel 5.2.8 Hasil Pengujian Black Box Menu Ubah Distributor. Input Proses Output Hasil
Pengujian
Mengisi “Nama
Distributor”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry yang
terblok.
Sesuai.
Mengisi
“Alamat”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi Event focusgained Menampilkan data Sesuai.
151
“Telepone”. untuk select all
data yang di
entry. Dan hanya
bisa menerima
inputan berupa
angka.
yang di entry dan
terblok.
Mengisi “Fax”. Event focusgained
untuk select all
data yang di
entry. Dan hanya
bisa menerima
inputan berupa
angka.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi
“Email”.
Event focusgained
untuk select all
data yang di
entry. Dan hanya
bisa menerima
inputan berupa
“format email”.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Menekan
tombol “Ubah”.
Event
actionperfomed
untuk mengubah
Memberikan
validasi pengubahan
data distributor.
Sesuai.
152
data distributor
dari database.
Menekan
tombol
“selesai”.
Event
actionperfomed
untuk keluar dari
menu ubah
barang.
Keluar dari menu
ubah Distributor
Sesuai.
Tabel 5.2.9 Hasil Pengujian Black Box Menu Searching Distributor. Input Proses Output Hasil
Pengujian
Mengisi “Kata
Kunci”
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Menekan
tombol “Cari”.
Event
actionperfomed
untuk mencari
data distributor
dari database.
Menampilkan data
distributor yang di
cari ke dalam tabel.
Sesuai.
Menekan
tombol
“Refresh”.
Event
actionperfomed
untuk
Menampilkan semua
data distributor.
Sesuai.
153
menampilkan
semua data
distributor.
Menekan
tombol
“Ambil”.
Event
actionperfomed
untuk mengambil
data distributor.
Mengambil data
distributor.
Sesuai.
Menekan
tombol “Batal”
Event
actionperfomed
untuk keluar dari
pencarian
distributor.
Keluar dari
pencarian data
distributor
Sesuai.
Tabel 5.2.10 Hasil Pengujian Black Box Menu Karyawan. Input Proses Output Hasil
Pengujian
Mengisi “Kata
Kunci”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Menekan
tombol “Cari”.
Event
actionperfomed
untuk mencari
Menampilkan data
yang dicari ke tabel.
Sesuai.
154
data Karyawan
dari database.
Menekan
tombol
“Karyawan”.
Event
actionperfomed
untuk memanggil
menu tambah
karyawan
Menampilkan menu
tambah karyawan
Sesuai.
Menekan
tombol “Reset”.
Event
actionperfomed
untuk mengeset
username dan
password dengan
nama.
Menampilkan
validasi untuk reset
password.
Sesuai.
Menekan
tombol “Menu
Utama”.
Event
actionperfomed
untuk memanggil
menu utama.
Keluar dari Menu
Karyawan.
Sesuai.
Tabel 5.2.11 Hasil Pengujian Black Box Menu Tambah Karyawan. Input Proses Output Hasil
Pengujian
Mengisi “Nama
Karyawan”.
Event focusgained
untuk select all
Menampilkan data
yang di entry dan
Sesuai.
155
data yang di
entry.
terblok.
Mengisi “No
Telepone”.
Event focusgained
untuk select all
data yang di
entry. Dan hanya
bisa menerima
inputan berupa
angka.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi
“UserName”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi
“Password”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi
“konfirmasi
Password”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi
“Alamat”.
Event focusgained
untuk select all
Menampilkan data
yang di entry dan
Sesuai.
156
data yang di
entry.
terblok.
Menekan
tombol “OK”.
Event
actionperfomed
untuk
menyimpan data
karyawan ke
dalam database.
Menampilkan
validasi
penyimpanan data
karyawan
Sesuai.
Menekan
tombol “Batal”.
Event
actionperfomed
untuk keluar dari
menu tambah data
karyawan.
Keluar dari menu
tambah data
karyawan.
Sesuai.
Tabel 5.2.12 Hasil Pengujian Black Box Menu Ubah Karyawan. Input Proses Output Hasil
Pengujian
Mengisi “Nama
Karyawan”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Mengisi “No
Telepon”.
Event focusgained
untuk select all
Menampilkan data
yang di entry dan
Sesuai.
157
data yang di
entry. Dan hanya
bisa menerima
inputan angka
terblok.
Mengisi
“Alamat”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Menekan
tombol “OK”.
Event
actionperfomed
untuk mengubah
data karyawan ke
dalam database.
Menampilkan
validasi pengubahan
data karyawan.
Sesuai.
Menekan
tombol “Batal”.
Event
actionperfomed
untuk keluar dari
menu ubah data
karyawan.
Keluar dari menu
ubah karyawan.
Sesuai.
Tabel 5.2.13 Hasil Pengujian Black Box Menu Ubah Password Karyawan. Input Proses Output Hasil
Pengujian
Mengisi Event focusgained Menampilkan digit Sesuai.
158
“Password
lama”.
untuk select all
data yang di
entry.
data berupa “*” yang
di entry dan terblok.
Mengisi
“Password
baru”.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan digit
data berupa “*” yang
di entry dan terblok.
Sesuai.
Mengisi
“Konfirmasi
password “.
Event focusgained
untuk select all
data yang di
entry.
Menampilkan digit
data berupa “*” yang
di entry dan terblok.
Sesuai.
Menekan
tombol “OK”.
Event
actionperfomed
untuk mengubah
password dalam
database.
Menampilkan
validasi pengubahan
password.
Sesuai.
Menekan
tombol “Batal”.
Event
actionperfomed
untuk
membatalkan
pengubahan
password
karyawan.
Keluar dari menu
ubah password
karyawan.
Sesuai.
159
Tabel 5.2.14 Hasil Pengujian Black Box Menu Laporan. Input Proses Output Hasil
Pengujian
Mengisi “Dari
Tanggal”.
Entry tanggal
untuk proses awal
tanggal yang
dicari.
Menampilkan data
yang di entry.
Sesuai.
Mengisi
“sampai”.
Entry tanggal
untuk proses
akhir tanggal
yang dicari.
Menampilakn data
yang di entry.
Sesuai.
Menekan
tombol “Cari”.
Event
actionperfomed
untuk
menampilkan
laporan
(penjualan,
pembelian, detail
penjualan, detail
pembelian tunai,
detail pembelian
kredit) dengan
Menampilkan data
yang dicari ke dalam
tabel.
Sesuai.
160
periode waktu
tertentu.
Menekan
tombol “OK”.
Event
actionperfomed
untuk mencetak
laporan ke printer.
Keluar dari menu
ubah data karyawan.
Sesuai.
Menekan
tombol “Menu
Utama”.
Event
actionperfomed
untuk kembali ke
menu utama.
Memanggil menu
utama.
Sesuai.
Tabel 5.2.15 Hasil Pengujian Black Box Menu Pencarian Barang. Input Proses Output Hasil
Pengujian
Mengisi
“Masukkan
kata kunci”.
Entry data yang
kan dicari
berdasarkan
kategori.
Menampilkan data
yang di entry dan
terblok.
Sesuai.
Menekan
tombol “Cari”.
Event
actionperfomed
untuk mencari
data barang dari
database.
Menampilkan data
barang yang dicari
kedalam database.
Sesuai.
161
Menekan
tombol
“Refresh”.
Event
actionperfomed
untuk
menampilkan
semua data
barang tanpa
filter.
Menampilkan semua
data barang ke
dalam tabel.
Sesuai.
Menekan
tombol
“Ambil”.
Event
actionperfomed
untuk mengambil
data yang
diinginkan dan
dipindahkan ke
menu lain.
Memindahkan data
yang diinginkan ke
dalam menu lain.
Sesuai.
Menekan
tombol “Batal”.
Event
actionperfomed
untuk keluar dari
menu pencarian
barang.
Keluar dari menu
pencarian data
barang.
Sesuai.
162
Tabel 5.2.16 Hasil Pengujian Black Box Menu Data Transaksi. Input Proses Output Hasil
Pengujian
Mengisi
“Tanggal
Transaksi”.
Entry tanggal
untuk mencari
tanggal penjualan
/ pembelian yang
ingin di retur.
Menampilkan data
yang di entry.
Sesuai.
Menekan
tombol “Cari”.
Event
actionperfomed
untuk mencari
data penjualan /
pembelian
berdasarkan
tanggal yang
diinginkan.
Menampilkan data
penjualan yang ingin
di retur.
Sesuai.
Menekan
tombol “Retur”.
Event
actionperfomed
untuk memanggil
menu retur.
Menampilkan menu
retur.
Sesuai.
Menekan
tombol
“Refresh”.
Event
actionperfomed
untuk
Menampilkan tabel
ke dalam keadaan
kosong.
Sesuai.
163
mengosongkan
tabel.
Menekan
tombol “Menu
Utama”.
Event
actionperfomed
untuk keluar dari
menu data
transaksi.
Menampilkan menu
utama.
Sesuai.
Tabel 5.2.17 Hasil Pengujian Black Box Proses Retur. Input Proses Output Hasil
Pengujian
Mengisi kolom
“kode barang”.
Event
KeyReleased
untuk mencari
kode barang
dalam database.
Menampilkan data
barang ke dalam
tabel.
Sesuai.
Memilih baris
tertentu dalam
tabel.
Event
mousecliked
untuk mengambil
data baris yang
dipilih.
Mengambil nilai dari
baris tabel yang
dipilih.
Sesuai.
Menekan
tombol “Retur”.
Event
actionperfomed
Menampilkan
validasi
Sesuai.
164
untuk menyimpan
data retur ke
dalam database.
penyimpanan data
retur.
Menekan
tombol
“Hapus”.
Event
actionperfomed
untuk menghapus
baris data barang
yang dipilih.
Menghilangkan baris
yang dipilih.
Sesuai.
Menekan
tombol “Cari
Barang”.
Event
actionperfomed
untuk mengambil
data barang yang
ingin diretur
sesuai dengan no
faktur penjualan /
pembelian.
Menampilkan data
yang ingin di retur
ke dalam baris tabel.
Sesuai.
Menekan
tombol “cetak”.
Event
actionperfomed
untuk mencetak
data retur.
Mencetak data retur
yang telah
dilakukan.
Sesuai.
Menekan
tombol
“Selesai”.
Event
actionperfomed
untuk keluar dari
Keluar dari menu
retur dan kembali ke
menu data transaksi.
Sesuai.
165
menu retur.
Tabel 5.2.18 Hasil Pengujian Black Box Proses Bayar Hutang. Input Proses Output Hasil
Pengujian
Mengisi
“Bayar”.
Event
keyReleased
untuk mengisi
nilai sama dengan
total hutang
maksimal.
Menampilkan total
hutang secara
default jika inputan
melebihi total
hutang yang ada.
Sesuai.
Menekan
tombol
“Simpan”.
Event
actionperfomed
untuk menyimpan
data bayar hutang
ke database.
Menampilkan
validasi
penyimpanan data
bayar hutang.
Sesuai.
Menekan
tombol “Batal”.
Event
actionperfomed
membatalkan
pembayaran
hutang.
Keluar dari menu
bayar hutang.
Sesuai.
166
Tabel 5.2.19 Hasil Pengujian Black Box Proses Pembayaran. Input Proses Output Hasil
Pengujian
Memilih baris
tertentu pada
tabel “Daftar
hutang”.
Event
mousecliked
untuk mencari
data detail rincian
hutang.
Menampilkan data
detail hutang dan
menampilkan data
sisa hutang dan telah
bayar berapa.
Sesuai.
Menekan
tombol “Bayar
hutang”.
Event
actionperfomed
untuk memanggil
menu bayar
hutang.
Menampilkan menu
bayar hutang.
Sesuai.
Menekan
tombol “Menu
Utama”.
Event
actionperfomed
untuk memanggil
menu utama.
Keluar dan
menampilkan menu
utama.
Sesuai.
Tabel 5.2.20 Hasil Pengujian Black Box Proses Pembelian. Input Proses Output Hasil
Pengujian
Memilih
“Distributor”.
Event
actionperfomed
Menampilkan data
yang di entry.
Sesuai.
167
untuk
menampilkan
barang
berdasarkan nama
distributor.
Memilih jenis
pembelian.
Event
buttonclicked
untuk
menampilkan
jenis pembelian
tunai / kredit.
Menampilkan data
yang di entry.
Sesuai.
Mengisi kolom
“kode barang”.
Event
KeyReleased
untuk mencari
kode barang
berdasarkan nama
distributor di
dalam database.
Menampilkan data
barang ke dalam
tabel.
Sesuai.
Menekan
tombol “Beli”.
Event
actionperfomed
untuk menyimpan
data transaksi
pembelian ke
Menampilkan
validasi
penyimpanan data
transaksi pembelian.
Sesuai.
168
dalam database.
Menekan
tombol
“Hapus”.
Event
actionperfomed
untuk menghapus
baris data barang
yang dipilih.
Menghilangkan baris
yang dipilih.
Sesuai.
Menekan
tombol “Cari
Barang”.
Event
actionperfomed
untuk mengambil
data barang yang
ingin dibeli
berdasarkan nama
distributor.
Menampilkan data
yang ingin di beli ke
dalam baris tabel.
Sesuai.
Menekan
tombol “Menu
Utama”.
Event
actionperfomed
untuk memanggil
menu utama.
Keluar dan
menampilkan menu
utama.
Sesuai.
Tabel 5.2.21 Hasil Pengujian Black Box Proses Penjualan. Input Proses Output Hasil
Pengujian
Mengisi kolom
“kode barang”.
Event
KeyReleased
Menampilkan data
barang ke dalam
Sesuai.
169
untuk mencari
kode barang
dalam database.
tabel.
Mengisi
“Bayar”.
Event
actionperfomed
untuk membantu
perhitungan uang
kembalian.
Menampilkan uang
yang harus
dikembalikan.
Sesuai.
Mencek list
“cetak nota
manual”.
Event
actionperfomed
untuk mencetak
nota penjualan
secara manual.
Tombol print bisa di
tekan.
Sesuai.
Menekan
tombol “Jual”.
Event
actionperfomed
untuk menyimpan
data penjualan ke
dalam database.
Menampilkan
validasi
penyimpanan data
penjualan.
Sesuai.
Menekan
tombol
“Hapus”.
Event
actionperfomed
untuk menghapus
baris data barang
yang dipilih.
Menghilangkan baris
yang dipilih.
Sesuai.
170
Menekan
tombol “Cari
Barang”.
Event
actionperfomed
untuk mengambil
data barang yang
ingin di jual
berdasarkan nama
distributor.
Menampilkan data
yang ingin di jual ke
dalam baris tabel.
Sesuai.
171
BAB VI KESIMPULAN DAN SARAN
6.1 Kesimpulan
Dari hasil pembuatan sistem informasi Toko Ijo, diperoleh kesimpulan
sebagai berikut:
1. Sistem informasi pada Toko Ijo dapat diterapkan dengan pengembangan
perangkat lunak berorientasi obyek, bahasa pemrograman Java, dan
DBMS berorientasi obyek, yaitu dengan Db4o.
2. Sistem informasi pada Toko Ijo dapat menangani proses penjualan,
pembelian dan mengelola inventori dengan baik.
6.2 Saran
Di bawah ini adalah saran-saran bagi para peneliti yang ingin
menerapkan sistem informasi berorientasi obyek yang berupa:
1. Perlu dicoba untuk membuat sistem akuntansi pada Toko Ijo.
172
DAFTAR PUSTAKA
http://www.java2s.com/Code/JavaAPI/javax.swing/newJFormattedTextFieldnew
MaskFormatter.htm (20 Juni 2010).
Irwanto Djon. (2007). Membangun object oriented software dengan java dan
object database. Jakarta: Elex media komputindo.
Jim Paterson, Henrik Horning, Reidar Horning. (2006). The Definitive Guide to
db4o. New York.
Roger S. Pressman. (1997). Rekayasa Perangkat Lunak Pendekatan Praktisi (Buku
I). Yogyakarta: Andi.
Whitten, Jeffery, Bentley, Lonnie, Dittman, Kevin. (2004). Metode Desain dan
Analisis Sistem edisi 6. McGrawHill. Yogyakarta: Andi.
L1
LAMPIRAN A
A.1 Contoh laporan penjualan
Gambar L1. Contoh laporan penjualan.
L2
A.2 Contoh laporan detail penjualan
Gambar L2. Contoh laporan detail penjualan.
L3
A.3 Contoh laporan pembelian
Gambar L3. Contoh laporan pembelian.
L4
A.4 Contoh laporan detail pembelian tunai
Gambar L4. Contoh laporan detail pembelian tunai.
L5
A.5 Contoh laporan detail pembelian kredit
Gambar L4. Contoh laporan detail pembelian kredit.
L6
A.6 Contoh cetak nota
Gambar L5. Contoh nota penjualan.
L7
LAMPIRAN B
B.1 Kelas barang
Barang
private String Kode_barang;
private String Nama_barang;
private String SatuanJual;
private int hargaJual;
private String SatuanBeli;
private int IsiSatuanBeli;
private int hargaBeli;
private int Stock;
private List<Distributor> Id_distributor = new ArrayList<Distributor>();
private List<HistoriPenjualan> _HPenjualan = new ArrayList<HistoriPenjualan>();
private List<HistoriPembelianKredit> _HPembelianKredit = new ArrayList<HistoriPembelianKredit>();
private List<HistoriPembelianTunai> _HPembelianTunai = new ArrayList<HistoriPembelianTunai>();
private List<HistoriReturBeli> _ReturBeli = new ArrayList<HistoriReturBeli>();
private List<HistoriReturJual> _ReturJual = new ArrayList<HistoriReturJual>();
_______________________________________________________________________
public Barang();
public Barang(String kodeBrg);
public Barang(String kode, String nama, String sat, int harga, int sto, String satBeli, int hargaBeli, int isisatuanBeli);
public Barang(String kode_brg, String nama, String satuan, int harga, int stok, String satBeli, int hargaBeli, int isisatuanBeli, List<Distributor> id_distr);
L8
public void Barang(String kode, String nama, String satuan, int harga, int stok, String satBeli, int hargaBeli, int isisatuanBeli, List<HistoriPenjualan> penjualan);
public void BarangBeli(String kode, String nama, String satuan, int harga, int stok, String satuanBeli, int hargaBeli, int isisatuanBeli, List<HistoriPembelianKredit> pembelianKredit);
public void BarangBeliTunai(String kode, String nama, String satuan, int harga, int stok, String SatBeli, int hargaBeli, int isisatuanbeli, List<HistoriPembelianTunai>BeliTunai);
public void BarangReturJual(String kode, String nama, String satuan, int harga, int stok, String SatuanBeli, int HargaBeli, int isisatuanbeli, List<HistoriReturJual> Rjual);
public void BarangReturBeli(String kode, String nama, String satuan, int harga, int stok, String satBeli, int hargaBeli, int isisatuanbeli, List<HistoriReturBeli> RBeli);
public void TambahB(String fullPath, String kode_brg, String nama, String satuan, int harga, int stok, String satuanBeli, int HargaBeli, int isisatuan, final String id);
public void UbahB(String fullPath, String kode_brg, String nama, String satuan, int harga, String satuanBeli, int hargaBeli, int isisatuanbeli);
public void HapusB(String fullPath, final String kode_brg);
B.2 Kelas detail retur pembelian
DetailReturPembelian
private List<HistoriReturBeli> _historiReturBeli = new ArrayList<HistoriReturBeli>();
private List<Pembelian> _Pembelian = new ArrayList<Pembelian>();
_______________________________________________________________________
public DetailReturPembelian();
public DetailReturPembelian(int id);
public DetailReturPembelian(int id, Date tgl, int total);
public DetailReturPembelian(int id, Date tgl, int total, List<HistoriReturBeli>hbli, List<Pembelian> beli);
L9
B.3 Kelas retur penjualan
DetailReturPenjualan
private List<HistoriReturJual> _historiReturJual = new ArrayList<HistoriReturJual>();
private List<Penjualan> _Penjualan = new ArrayList<Penjualan>();
________________________________________________________________________
public DetailReturPenjualan();
public DetailReturPenjualan(int id);
public DetailReturPenjualan(int id, Date tgl, int total);
B.4 Kelas distributor
Distributor
private int Id_distributor;
private String Nama;
private String Alamat;
private String Tlp;
private String Fax;
private String Email;
private List<Barang> _barang = new ArrayList<Barang>();
________________________________________________________________________
public Distributor();
public Distributor(int id, String nama, String alamat, String telp, String fax, String email);
public void UbahColect(String fullPath, final String kode, final int id_d);
public Distributor(int id, String nama, String alamat, String telp, String fax, String email, List<Barang> b);
public Distributor(int id);
public void TambahDist(String fullPath, int id, String nama, String alamat, String tlp, String fax, String email);
L10
public void UbahDist(String fullPath, int id, String nama, String alamat, String tlp, String fax, String email);
public void HapusDist(String fullPath, final int id);
B.5 Kelas histori pembelian kredit
HistoriPembelianKredit
private List<PembelianKredit> _PembelianKredit = new ArrayList<PembelianKredit>();
private List<Barang> _Barang = new ArrayList<Barang>();
private int Banyaknya;
private int Isi;
private int Harga;
_______________________________________________________________________
public HistoriPembelianKredit();
public HistoriPembelianKredit(int banyak, int harga);
public HistoriPembelianKredit(int banyak, int harga, List<PembelianKredit> beli, List<Barang> barangs);
public void TambahHistoriBeliKredit(String fullPath, final int no, Date tgl, int total, List<PembelianM> b, final String username, Date tglTempo);
public void hapusPembelian(String fullPath, final int noFak);
B.6 Kelas histori pembelian tunai
HistoriPembelianTunai
private List<PembelianTunai> _PembelianTunai = new ArrayList<PembelianTunai>();
private List<Barang> _Barang = new ArrayList<Barang>();
private int Banyaknya;
private int Isi;
private int Harga;
________________________________________________________________________
L11
public HistoriPembelianTunai();
public HistoriPembelianTunai(int banyak, int harga);
public HistoriPembelianTunai(int banyak, int harga, List<PembelianTunai> beli, List<Barang> barangs);
public void TambahHistoriBeli(String fullPath, final int no, Date tgl, int total, List<PembelianM> b, final String username);
public void hapusPembelian(String fullPath, final int noFak);
B.7 Kelas histori penjualan
HistoriPenjualan
private int Banyaknya;
private int harga;
private List<Barang> _Barang = new ArrayList<Barang>();
private List<Penjualan> _Penjualan = new ArrayList<Penjualan>();
_______________________________________________________________________
public HistoriPenjualan();
public HistoriPenjualan(List<Penjualan> jual);
public HistoriPenjualan(int banyak, int harga, List<Penjualan> jual, List<Barang> barang);
public void TambahHistori(String fullPath, final int no, Date tgl, int total, List<PenjualanM> b, final String username);
public void hapusPenjualan(String fullPath, final int noFak);
B.8 Kelas histori retur beli
HistoriReturBeli
private int banyaknya;
private int harga;
private List<DetailReturPembelian> _DetailReturBeli = new ArrayList<DetailReturPembelian>();
L12
private List<Barang> _Barang = new ArrayList<Barang>();
_______________________________________________________________________
public HistoriReturBeli();
public HistoriReturBeli(int banyak, int harga, List<DetailReturPembelian> dr, List<Barang> b);
public void SimpanReturBeli(String fullPath, final int id, Date tgl, int total, List<PenjualanM> pju, final int NoFak);
B.9 Kelas histori retur jual
HistoriReturJual
private int banyaknya;
private int harga;
private List<DetailReturPenjualan> _detailReturJual = new ArrayList<DetailReturPenjualan>();
private List<Barang> _Barang = new ArrayList<Barang>();
_______________________________________________________________________
public HistoriReturJual();
public HistoriReturJual(int banyak, int harga, List<DetailReturPenjualan> dr, List<Barang> b);
public void SimpanReturJual(String fullPath, final int id, Date tgl, int total, List<PenjualanM> pju, final int NoFak);
B.10 Kelas karyawan
Karyawan
private int id_Karyawan;
private String Nama;
private String Alamat;
private String Telepon;
L13
private boolean KaryawanS;
private boolean Distributor;
private boolean UbahPass;
private boolean HakAkses;
private boolean UbahDataKaryawan;
private boolean Penjualan;
private boolean ReturJual;
private boolean Pembelian;
private boolean ReturPembelian;
private boolean Pembayaran;
private boolean Laporan;
_______________________________________________________________________
public Karyawan();
public Karyawan(int id);
public Karyawan(int id_karyawan, String nama, String alamat, String telepon, String user, String pass, boolean kar, boolean dis, boolean passw, boolean hak, boolean ubahdata, boolean jual, boolean rjual, boolean beli, boolean rBeli, boolean bayar, boolean lapor);
public void TambahK(String fullPath, final int id, String nama, String alamat, String telepon, String user, String pass);
public void ubahHakAkses(String fullPath, boolean kar, boolean dist, boolean upass, boolean hak, boolean udkaryawan, boolean jual, boolean rjual, boolean beli, boolean rbeli, boolean bayar, boolean lap, final int id);
public void UbahK(String fullPath, int id, String nama, String alamat, String tlp);
public void HapusK(String fullPath, int id);
B.11 Kelas operator
Operator
L14
String Username;
String Password;
private List<Transaksi> _Transaksi;
_______________________________________________________________________
public Operator(); public Operator(String Username, String Password);
public Operator(String username, String password, List<Transaksi> TR);
public void oper(String Username);
public Operator(String password);
public void ubahPassKar(String fullPath, String password);
B.12 Kelas pembayaran
Pembayaran
private Date Tgl_Pembayaran;
private int JumlahBayar;
private int SisaHutang;
private List<PembelianKredit> _PembelianKredit = new ArrayList<PembelianKredit>();
_______________________________________________________________________
public Pembayaran();
public Pembayaran(Date tgl, int jum, int sis);
public Pembayaran(Date tgl, int jum, int sis, List<PembelianKredit> kredit);
public void SimpanCicilan(String fullPath, Date tanggal, int jum, int sis, final int nofak);
B.13 Kelas pembelian
Pembelian
L15
private int No_fakturPembelian;
private Date Tgl_fakturPembelian;
private int Total;
private List<DetailReturPembelian> _DetailReturPembelian = new ArrayList<DetailReturPembelian>();
_______________________________________________________________________
public Pembelian();
public Pembelian(int no, Date tgl, int total, int id, List<Operator> op);
public Pembelian(int noFak);
public void LaporanBeli(String fullPath, final Date awal, final Date akhir);
B.14 Kelas pembelian kredit
PembelianKredit
private int TotalHutang;
private Date TglJatuhTempo;
private List<Pembayaran> _Pembayaran = new ArrayList<Pembayaran>();
private List<HistoriPembelianKredit> _historiPembelianKredit = new ArrayList<HistoriPembelianKredit>();
_______________________________________________________________________
public PembelianKredit();
public PembelianKredit(int noFak);
public PembelianKredit(int no, Date tgl, int total, int id, List<Operator> op, int totalhutang, Date jatuhtempo);
public PembelianKredit(int no, Date tgl, int total, int id, List<Operator> op, int totalhutang, Date jatuhtempo, List<Pembayaran> pembayaran);
L16
B.15 Kelas pembelian tunai
PembelianTunai
private List<HistoriPembelianTunai> _historiPembelianTunai;
________________________________________________________________________
public PembelianTunai();
public PembelianTunai(int no, Date tgl, int total, int id, List<Operator> op);
public List<HistoriPembelianTunai> getHistoriPembelianTunai();
B.16 Kelas pemilik
Pemilik
private int id;
________________________________________________________________________
public Pemilik();
public Pemilik(String pass);
public Pemilik(int id);
public Pemilik(int id, String user, String pass);
B.17 Kelas penjualan
Penjualan
private int No_fakturPenjualan;
private Date Tgl_fakturPenjualan;
private int Total;
private List<HistoriPenjualan> _HistoriPenjualan = new ArrayList<HistoriPenjualan>();
private List<DetailReturPenjualan> _DetailReturPenjualan = new ArrayList<DetailReturPenjualan>();
L17
_______________________________________________________________________
public Penjualan();
public Penjualan(int No_faktur, Date tgl, int total, int id_t, List<Operator> op);
public Penjualan(int noFak);
B.18 Kelas retur
Retur
private int idRetur;
private Date tanggal;
private int total;
_______________________________________________________________________
public Retur();
public Retur(int id);
public Retur(int id, Date tgl, int total);
B.19 Kelas transaksi
Transaksi
private int id_transaksi;
private List<Operator> _Operator;
_______________________________________________________________________
public Transaksi(int id_transaksi);
public Transaksi(int id_transaksi, List<Operator>OP);
public Transaksi();
L18
C.1 Quisioner
L19
L20
L21
L22
L23
L24