View
330
Download
3
Category
Preview:
Citation preview
18
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
3.1.1. Sejarah PT. Mega Esa Farma
PT Mega Esa Farma memproduksi lebih dari 60 sediaan farmasi padat, cair dan
semi-padat. Produksi sediaan cair meliputi sirup, sirup kering dan cairan luar. Bentuk
sediaan padat meliputi tablet, kapsul keras dan bubuk. Bentuk sediaan semi padat
meliputi salep luar. Fasilitas pembuatan sediaan farmasi mencakup fasilitas untuk
pengolahan, pengempaan, pengepakan serta pengujian produk.
Perusahaan melaksanakan pemesanan, penerimaan dan pemeriksaan bahan
awal untuk diproduksi, lalu disimpan digudang bahan awal kemudian didistribusikan
keseluruh bagian produksi. Penyimpanan bahan awal dan bahan kemas dilakukan
dalam gudang yang terpisah, penenpatan bahan sesuai dengan kondisi penyimpanan
yang direkomendasikan dan dijelaskan dalam prosedur tetap.
Pembuatan zat yang menyebabkan alergi seperti golongan betalaktam
dilakukan di gedung tersendiri dan terpisah dari gedung lainnya.
Pabrik berada di pinggiran utara Jakarta, ibu kota Indonesia, di lokasi tersebut selain
farmasi, ada juga perusahaan non farmasi dan pergudangan. Lingkungan langsung
adalah pergudangan dan industri non farmasi.
Total luas lahan sekitar 12000 m2 dan luas bangunan sekitar 9000 m2.. Lebih
dari 50% dari daerah bangunan yang digunakan sebagai area produksi, sisanya adalah
19
gedung pekantoran, gudang , kantin, laboratorium, area bengkel, pos satpam, area
pengolahan limbah cair, ruang genset, penyimpanan sampah padat dan kering,
insenerator, mushola dan ruang boiler.
Bangunan produksi non betalaktam dan betalaktam dibuat bertingkat untuk
mengefisiensikan lahan yang ada dan disesuaikan dengan persyaratan CPOB.
a. Bangunan non betalaktam memiliki 4 tingkat yaitu :
Lantai 1 : area produksi sediaan padat (tablet)
Lantai 2 : area produksi sediaan cair dan semi padat serta padat (kapsul dan
serbuk).
Lantai 3 : area produksi sediaan cair steril (rencana perluasan), laboratorium
(laboratorium kimia, mikrobiologi dan RND), ruang pemastian mutu, dan ruang
registrasi.
Lantai 4 : ruang pengolahan air dan ruang HVAC.
b. Bangunan betalaktam memiliki 2 tingkat yaitu :
Lantai 1 : area pengemasan primer dan sekunder
Lantai 2 : area produksi sediaan padat dan sirup
Gudang bahan baku dan bahan kemas berada dalam satu gedung dengan gedung
perkantoran yang memiliki 2 tingkat dan terpisah antara perkantoran dengan gudnag
yaitu :
a. Bagian depan diperuntukkan untuk perkantoran
b. Bagian belakang diperuntukkan untuk gudang, yaitu :
Lantai 1 : area gudang bahan baku
20
Lantai 2 : area gudang bahan kemas dan wadah
Gudang obat jadi berdiri sendiri berdampingan dengan gudang PBF ( pedagang besar
farmasi khusus obat jadi). Bangunan – bangunan tersebut berdiri pada tahun 1970an,
dan mengalami renovasi pada tahun 1993 dan terus ditingkatkan untuk memenuhi
CPOB. Pembaharuan untuk renovasi gedung dilakukan lagi pada tahun 2011.
3.1.2. Struktur Organisasi dan Fungsi
Bagan struktur organisasi di PT. MEGA ESA FARMA
Sumber : PT.Mega Esa Farma
Gambar III.1 Struktur Organisasi PT. Mega Esa Farma
21
Fungsi – fungsi dari tiap bagian adalah sebagai berikut :
1. Direktur
Mengkoordinasikan dan mengendalikan kegiatan perusahaan.
2. Komisaris
Bertugas mengawasi kegiatan suatu perusahaan.
3. Manager PPIC (Production Planning Inventory Control)
Bertanggung jawab pada monitoring persediaan bahan baku, bahan kemas,
bahan wadah dan persediaan obat jadi.
4. Manager Produksi
Mengawasi seluruh kegiatan produksi obat.
5. Sales dan Manager Marketing
Memasarkan produk yang sudah jadi.
6. Manager Pengawasan Mutu
Mengawasi dan menjaga mutu serta kualitas obat yang diproduksi.
7. Manager Purchasing
Bertanggung jawab dalam seluruh pembelian material maupun barang yang
diperlukan dalam perusahaan.
8. Manager Accounting
Bertanggung jawab atas laporan aktivitas keuangan perusahaan.
9. Ka. Gudang Bahan Baku
Mengontrol keluar dan masuk bahan baku yang diperlukan untuk proses
pembuatan obat.
10. Ka. Gudang Bahan Kemas dan Wadah
22
Mengontrol keluar dan masuk bahan kemas dan wadah yang diperlukan untuk
proses pengemasan obat.
11. Ka. Gudang Obat Jadi
Mengontrol keluar dan masuk barang jadi yang siap untuk dipasarkan.
12. Spv.Sediaan Padat
Mengawasi dan mengontrol penimbangan obat dalam bentuk padat.
13. Spv. Sediaan Cair & Semisolid
Mengawasi dan mengontrol penimbangan obat dalam bentuk cairan serta
mengawasi proses pembuatan obat.
14. Spv.Pengemasan
Mengawasi dan mengontrol pengemasan obat jadi.
15. Analis Pengawasan Mutu
Memeriksa serta memastikan bahan baku, bahan kemas, bahan wadah serta obat
jadi layak diproduksi dan aman untuk dikonsumsi dan dipasarkan.
16. Staff IPC (In Process Control)
Bertugas mengambil sample untuk diperiksa ke bagian Laboratorium.
23
3.2. Tinjauan Kasus
Sistem Aplikasi Pembelian secara tunai yang dibuat penulis dapat dijelaskan per
bagian atau pegawai yang rencananya akan menggunakan aplikasi tersebut dan disertai
dengan dokumen-dokumen yang dibutuhkan pada sistem tersebut adalah sebagai
berikut :
1. Manager Purchasing
Manager Purchasing dapat login terlebih dahulu sebelum memasuki menu
utama. Setelah berhasil login, di menu utama Manager Purchasing dapat
mengelola data supplier dan data barang seperi menambah data, mengedit data,
serta menghapus data. Selain itu Manager Purchasing juga dapat menginput
dan mencetak PO (Purchase Order) yang nantinya PO (Purchase Order)
tersebut di serahkan kepada Komisaris untuk di tanda tangan sebelum di kirim
atau di email ke Supplier.
2. Komisaris
Komisaris menerima PO (Purchase Order) dari Manager Purchasing dan
apabila di setujui PO (Purchase Order) di tanda tangan atau bila tidak disetujui
PO dikembalikan kepada Manager Purchasing untuk di perbaiki.
3. Ka. Gudang Bahan Baku / Kemas / Wadah
Ka. Gudang Bahan Baku / Kemas / Wadah menerima barang yang dikirim oleh
Supplier dan menginputnya ke dalam program. Sebelum masuk ke menu utama
sama seperti Manager Purchasing harus masuk terlebih dahulu ke menu login.
Setelah berhasil login, Ka. Gudang Bahan Baku / Kemas / Wadah dapat
menginput dan mencetak BPB (Bukti Penerimaan Barang). BPB (Bukti
24
Penerimaan Barang) dicetak ke dalam 4 lembar kertas yang akan di edarkan ke
Supplier, Manager Purchasing, Manager Accounting, dan 1 lembarnya lagi
sebagai arsip dokumen Ka. Gudang Bahan Baku / Kemas / Wadah. Dan apabila
bahan baku, kemas, atau wadah obat ada yang rusak maka akan dilakukan retur
barang dengan mengkonfirmasikan kepada Supplier untuk pengambilan
barang. Saat pengembalian barang Ka. Gudang Bahan Baku / Kemas / Wadah
harus menginput dan mencetak Retur Barang yang caranya hampir sama seperti
BPB (Bukti Penerimaan Barang), Retur Barang juga di cetak ke dalam 4 lembar
yang akan di edarkan ke Supplier, Manager Purchasing, Manager Accounting,
dan 1 lembarnya lagi sebagai arsip dokumen Ka. Gudang Bahan Baku / Kemas
/ Wadah.
4. Manager Accounting
Manager Accounting menerima BPB (Bukti Penerimaan Barang) dan Retur
Barang dari Ka. Gudang Bahan Baku / Kemas / Wadah. Dalam Program
Manager Accounting juga dapat login untuk masuk ke menu utama dan
mencetak laporan stok barang untuk diberikan kepada Manager PPIC dan
laporan jurnal umum yang akan dicocokan dengan BPB (Bukti Penerimaan
Barang) dan Retur Barang sebelum di berikan kepada Komisaris.
25
3.2.1. Dokumen Masukan
1. Surat Penawaran Harga
Fungsi : untuk melihat harga dari bahan yang diperlukan
Sumber : Supplier
Tujuan : Manager Purchasing
Media : kertas
Jumlah : 1 lembar
Frekuensi : setiap ada kebutuhan bahan baku/kemas/wadah
Bentuk : lihat lampiran (Lampiran A.1)
2. Surat Jalan
Fungsi : untuk tanda terima bahan yang telah di pesan
Sumber : Supplier
Tujuan : Ka.Gudang Bahan Baku/Kemas/Wadah
Media : kertas
Jumlah : 2 lembar
Frekuensi : setiap penerimaan bahan baku/kemas/wadah
Bentuk : lihat lampiran (Lampiran A.2)
3.2.2. Dokumen Keluaran
1. Purchase Order
Fungsi : sebagai salah satu persyaratan pemesanan bahan
Sumber : Manager Purchasing
Tujuan : Supplier
Media : kertas
26
Jumlah : 1 lembar
Frekuensi : setiap ada pemesanan bahan
Bentuk : lihat lampiran (Lampiran B.1)
2. BPB (Bukti Penerimaan Barang)
Fungsi : sebagai salah satu bukti penerimaan bahan
baku/kemas/wadah
Sumber : Ka.Gudang Bahan Baku / Bahan Kemas / Wadah
Tujuan : Manager Purchasing, Manager Accounting, Supplier
Media : kertas
Jumlah : 4 lembar
Frekuensi : setiap penerimaan bahan baku/kemas/wadah
Bentuk : lihat lampiran (Lampiran B.2)
3. Retur Barang
Fungsi : sebagai bukti pengembalian bahan baku/kemas/wadah
Sumber : Ka.Gudang Bahan Baku / Bahan Kemas / Wadah
Tujuan : Manager Purchasing, Manager Accounting, Supplier
Media : kertas
Jumlah : 4 lembar
Frekuensi : setiap ada bahan baku/kemas/wadah yang di retur
Bentuk : lihat lampiran (Lampiran B.3)
4. Laporan Data Supplier
Fungsi : sebagai informasi data Supplier
Sumber : Manager Accounting
27
Tujuan : Komisaris
Media : kertas
Jumlah : 1 lembar
Frekuensi : di cetak setiap diperlukan
Bentuk : lihat lampiran (Lampiran B.4)
5. Laporan Stok Barang
Fungsi : sebagai data laporan stok bahan baku/kemas/wadah
Sumber : Manager Accounting
Tujuan : Manager PPIC
Media : kertas
Jumlah : 1 lembar
Frekuensi : di cetak setiap satu minggu
Bentuk : lihat lampiran (Lampiran B.5)
6. Laporan Jurnal Umum
Fungsi : sebagai data pembayaran pembelian bahan
baku/kemas/wadah
Sumber : Manager Accounting
Tujuan : Komisaris
Media : kertas
Jumlah : 1 lembar
Frekuensi : di cetak setiap satu bulan
Bentuk : lihat lampiran (Lampiran B.6)
28
3.3. Analisa Kebutuhan Software
3.3.1. Analisa Kebutuhan
Analisa kebutuhan merupakan langkah awal untuk menentukan gambaran
perangkat lunak yang dihasilkan. Perangkat lunak yang baik dan sesuai dengan
kebutuhan pengguna sangat tergantung kepada keberhasilan dalam melakukan analisa
kebutuhan. Jika terjadi kesalahan dalam analisa kebutuhan, maka perangkat lunak yang
dibuat menjadi tidak berguna.
Analisa kebutuhan yang baik belum tentu menghasilkan perangkat lunak yang
baik. Tetapi analisa kebutuhan yang tidak tepat sudah pasti menghasilkan perangkat
lunak yang tidak berguna. Kesalahan analisa kebutuhan dapat menyebabkan tidak
adanya peningkatan efektifitas dan efisiensi saat perangkat lunak dijalankan.
Untuk mengatasi kesalahan analisa kebutuhan perangkat lunak (software),
tentunya diperlukan adanya perencanaan dan perancangan perangkat lunak yang sesuai
dengan kebutuhan seperti halnya di PT.Mega Esa Farma perlu adanya analisa
kebutuhan perangkat lunak yang tepat untuk mengatasi masalah sistem pembelian yang
belum terkomputerisasi. Karena penulis memilih tema pemrograman berbasis objek
maka analisa yang digunakan adalah analisa berbasis objek atau Object Oriented
Analysis (OOA). OOA biasanya menggunakan UML (Unified Modeling Language)
untuk memodelkan sistem berorientasi objek.
Maka dari itu penulis merancang analisa kebutuhan software untuk PT.Mega
Esa Farma menggunakan UML (Unified Modeling Language) seperti use case diagram
dan activity diagram, seperti gambar berikut ini :
29
3.3.2. Use Case Diagram
Berikut penggambaran use case diagram analisa kebutuhan software di PT.Mega Esa
Farma secara umum, seperti dibawah ini ;
Gambar III.2 Use Case Diagram Analisa Kebutuhan Software Secara Umum
uc Analisa Kebutuhan Software
Manager Purchasing
Login
Mengelola Data
Supplier
Mengelola Data
Barang
Mengelola Purchase
Order
Mengelola BPB (Bukti
Penerimaan Barang)
Mengelola Retur
BarangKa.Gudang Bahan
Baku/Kemas/Wadah
Mengelola Data
Rekening Perkiraan
Komisaris
Manager Accounting
Exit
Mengelola Data
Pegawai
Mengelola Jurnal
Umum
Mengelola Laporan
Data Supplier
Mengelola Laporan
Stok Barang
Mengelola Laporan
Jurnal Umum
30
Berikut adalah gambar dan skenario use case diagram analisa kebutuhan software
per aktor di PT.Mega Esa Farma.
1. Komisaris
Gambar III.3 Use Case Diagram Analisa Kebutuhan Software Pada Komisaris
uc Komisaris
Komisaris
Login
Input User Name
Input Password
Memeriksa Status Login
Mengelola Data Pegawai
Menambah Data
Pegawai
Simpan Data
Pegawai
Update Data
PegawaiMenghapus Data
Pegawai
Membatalkan Data
Pegawai
Mengelola Purchase Order
Memilih pilihan
Setuju/Batalkan
«include»
«include»
«include»
«include»
«include»
«include»
31
Berikut penjelasan atau skenario use case diagram analisa kebutuhan software pada
Komisaris di PT.Mega Esa Farma.
Tabel III.1 Skenario Use Case Diagram Analisa Kebutuhan Software Pada
Komisaris
Nama Use Case Use Case Analisa Kebutuhan Software
Tujuan
Aktor melakukan login dan masuk ke dalam menu
utama untuk mengelola data pegawai.
Deskripsi
Sistem ini memungkinkan aktor login dan masuk ke
menu utama untuk mengelola data pegawai.
Skenario Utama
Aktor Komisaris
Kondisi Awal
Komisaris dapat masuk ke menu utama dengan
melakukan login.
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Aktor memasukkan
username dan
password
2. Memeriksa valid tidaknya data masukan.
3. Masuk ke aplikasi pembelian.
4. Aktor memilih menu
data pegawai
5. Sistem akan menampilkan form untuk melakukan
penambahan, penyimpanan, pengeditan,
penghapusan, pembatalan data pegawai.
32
6. Aktor memilih menu
daftar purchase order
7. Sistem akan menampilkan form untuk melakukan
penginputan pilihan untuk setuju atau dibatalkan po
yang sudah dibuat oleh Manager Purchasing.
Skenario Alternatif
1. Aktor memasukkan
username dan
password
2. Memeriksa valid tidaknya data masukan.
3. Menampilkan pesan username atau password salah.
4. Aktor memilih menu
data pegawai
5. Menampilkan pesan “Koneksi gagal, Ada
kesalahan...”.
6. Aktor memilih menu
daftar purchase order
7. Menampilkan pesan “Koneksi gagal, Ada
kesalahan...”.
Kondisi Akhir
Jika melakukan dengan benar maka sistem akan
menampilkan seperti yang diinginkan aktor.
33
2. Manager Purchasing
Gambar III.4 Use Case Diagram Analisa Kebutuhan Software Pada Manager
Purchasing
uc Manager Purchasing
Manager Purchasing
Login
Input User
Name
Input
Password
Mengelola Data Supplier
Mengelola Data Barang
Mengelola Data PO
Melihat Data
Supplier
Mencari Data
Supplier
Menghapus Data
SupplierMemasukkan
Data Supplier
Mengubah Data
Supplier
Melihat Data
Barang
Mencari Data
Barang
Menghapus Data
BarangMemasukkan
Data Barang
Mengubah Data
Barang
Menyimpan POMencetak PO
Membatalkan
POMencari PO
Memeriksa status
login
Form Input PO
Form Daftar PO
«include»
«include»
«include»
«include»
«include»
«include»
«include»«include»
«include»
34
Berikut penjelasan atau skenario use case diagram analisa kebutuhan software pada
Manager Purchasing di PT.Mega Esa Farma.
Tabel III.2 Skenario Use Case Diagram Analisa Kebutuhan Software Pada
Manager Purchasing
Nama Use Case Use Case Analisa Kebutuhan Software
Tujuan
Aktor melakukan login dan masuk ke dalam menu
utama untuk mengelola data supplier, data barang, dan
po (purchase order).
Deskripsi
Sistem ini memungkinkan aktor login dan masuk ke
menu utama untuk mengelola data supplier, data
barang, dan po (purchase order).
Skenario Utama
Aktor Manager Purchasing
Kondisi Awal
Manager Purchasing dapat masuk ke menu utama
dengan melakukan login.
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Aktor memasukkan
username dan
password
2. Memeriksa valid tidaknya data masukan.
3. Masuk ke aplikasi pembelian.
35
4. Aktor memilih menu
data supplier
5. Sistem akan menampilkan form daftar supplier
untuk mencari, memasukkan, mengedit dan
menghapus data supplier.
6. Aktor memilih menu
data barang
7. Sistem akan menampilkan form daftar barang
untuk mencari, memasukkan, mengedit dan
menghapus data barang.
8. Aktor memilih menu
purchase order
9. Sistem akan menampilkan form input purchase
order untuk menyimpan, mencetak, dan
membatalkan po (purchase order).
10. Sistem akan menampilkan form daftar purchase
order untuk mencari data po.
Skenario Alternatif
1. Aktor memasukkan
username dan
password
2. Memeriksa valid tidaknya data masukan.
3. Menampilkan pesan username atau password
salah.
4. Aktor memilih menu
data supplier
5. Menampilkan pesan “Koneksi gagal, Ada
kesalahan...”.
6. Aktor memilih menu
data barang
7. Menampilkan pesan “Koneksi gagal, Ada
kesalahan...”.
8. Aktor memilih menu
purchase order
9. Saat di klik menu input purchase order maka akan
tampil pesan “Koneksi gagal, Error”.
36
10. Saat di klik menu daftar purchase order maka
akan tampil pesan “Koneksi gagal, Ada
Kesalahan”.
Kondisi Akhir
Jika melakukan dengan benar maka sistem akan
menampilkan seperti yang diinginkan aktor.
3. Ka.Gudang Bahan Baku/Kemas/Wadah
Gambar III.5 Use Case Diagram Analisa Kebutuhan Software Pada Ka.Gudang
Bahan Baku/Kemas/Wadah
uc Ka.Gudang Bahan Baku/Kemas/Wadah
Ka.Gudang Bahan
Baku/Kemas/Wadah
Login
Mengelola Data BPB (Bukti
Penerimaan Barang)
Input User
Name
Input
Password
Memeriksa status login
Mengelola Data Retur
Barang
Menyimpan BPB
Mencetak BPB
Menyimpan
Retur Barang
Mencetak Retur
Barang
Membatalkan
Retur Barang
Membatalkan
BPBMencari BPB
Mencari Data
Retur Barang
Form Daftar BPBForm Input BPB
Form Daftar Retur
BarangForm Input Retur
Barang
«include»
«include»
«include»
«include»
«include»
«include»
«include»
«include» «include»
«include»
37
Berikut penjelasan atau skenario use case diagram analisa kebutuhan software pada
Ka.Gudang Bahan Baku/Kemas/Wadah di PT.Mega Esa Farma.
Tabel III.3 Skenario Use Case Diagram Analisa Kebutuhan Software Pada
Ka.Gudang Bahan Baku/Kemas/Wadah
Nama Use Case Use Case Analisa Kebutuhan Software
Tujuan Aktor melakukan login dan masuk ke dalam menu
utama untuk mengelola BPB (bukti penerimaan
barang) dan retur barang.
Deskripsi Sistem ini memungkinkan aktor login dan masuk ke
menu utama untuk mengelola BPB (bukti penerimaan
barang) dan retur barang.
Skenario Utama
Aktor Ka.Gudang Bahan Baku/Kemas/Wadah
Kondisi Awal Ka.Gudang Bahan Baku/Kemas/Wadah dapat masuk
ke menu utama dengan melakukan login.
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Aktor memasukkan
username dan
password
2. Memeriksa valid tidaknya data masukan.
3. Masuk ke aplikasi pembelian.
38
4. Aktor memilih menu
penerimaan barang
5. Sistem akan menampilkan form input bukti
penerimaan barang untuk menyimpan, mencetak,
dan membatalkan bukti penerimaan barang.
6. Sistem akan menampilkan form daftar penerimaan
barang untuk mencari data penerimaan barang.
7. Aktor memilih menu
retur barang
8. Sistem akan menampilkan form input retur barang
untuk menyimpan, mencetak, dan membatalkan
retur barang.
9. Sistem akan menampilkan form daftar retur barang
untuk mencari dan melihat data retur barang.
Skenario Alternatif
1. Aktor memasukkan
username dan
password
2. Memeriksa valid tidaknya data masukan.
3. Menampilkan pesan username atau password
salah.
4. Aktor memilih menu
penerimaan barang
5. Saat di klik menu input bukti penerimaan barang
maka akan tampil pesan “Koneksi gagal, Error”.
6. Saat di klik menu daftar penerimaan barang maka
akan tampil pesan “Koneksi gagal, Ada
Kesalahan”.
7. Aktor memilih menu
retur barang
8. Saat di klik menu input retur barang maka akan
tampil pesan “Koneksi gagal, Error”.
39
9. Saat di klik menu daftar retur barang maka akan
tampil pesan “Koneksi gagal, Ada kesalahan”.
Kondisi Akhir Jika melakukan dengan benar maka sistem akan
menampilkan seperti yang diinginkan aktor.
4. Manager Accounting
Gambar III.6 Use Case Diagram Analisa Kebutuhan Software Pada Manager
Accounting
uc Manager Accounting
Manager Accounting
Login
Input User
Name
Input
Password
Memeriksa Status Login
Mengelola Laporan Stok
Barang
Mencetak
Laporan Stok
Barang
Membatalkan
Cetak Laporan
Mengelola Laporan Jurnal
Umum
Mencetak
Laporan Jurnal
Umum
Membatalkan
Cetak Laporan
Mengelola Laporan
Data Supplier
Mencetak
Laporan Data
Supplier
Membatalkan
Cetak Laporan
Mengelola Jurnal
Umum
Form Transaksi
Jurnal Umum
Form Daftar
Jurnal Umum
Mengelola Data
Rekening Perkiraan
Melihat Data
Perkiraan
Mencari Data
Perkiraan
Menambah Data
Perkiraan
Mengubah Data
Perkiraan
Menghapus Data
Perkiraan
Simpan
Batal
Cari
«include»
«include»
«include»
«include»
«include»
«include»
«include»
«include»
«include»
«include»
«include»
40
Berikut penjelasan atau skenario use case diagram analisa kebutuhan software pada
Manager Accounting.
Tabel III.4 Skenario Use Case Diagram Analisa Kebutuhan Software Pada
Manager Accounting
Nama Use Case Use Case Analisa Kebutuhan Software
Tujuan Aktor melakukan login dan masuk ke dalam menu
utama untuk mengelola data rekening perkiraan,
transaksi jurnal umum, laporan data supplier, laporan
stok barang, dan laporan jurnal umum.
Deskripsi Sistem ini memungkinkan aktor login dan masuk ke
menu utama untuk mengelola data rekening perkiraan,
transaksi jurnal umum, laporan data supplier, laporan
stok barang, dan laporan jurnal umum.
Skenario Utama
Aktor Manager Accounting
Kondisi Awal Manager Accounting dapat masuk ke menu utama
dengan melakukan login.
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Aktor memasukkan
username dan
password
2. Memeriksa valid tidaknya data masukan.
3. Masuk ke aplikasi pembelian.
41
4. Aktor memilih menu
data rekening
perkiraan
5. Sistem akan menampilkan daftar perkiraan untuk
mencari, melihat, menambah, mengedit dan
menghapus data perkiraan.
6. Aktor memilih menu
jurnal umum
7. Sistem akan menampilkan form transaksi jurnal
umum untuk menyimpan dan membatalkan
penginputan jurnal umum.
8. Sistem akan menampilkan form daftar jurnal
umum untuk mencari data jurnal umum.
9. Aktor memilih menu
laporan data
supplier
10. Sistem akan menampilkan form laporan data
supplier untuk mencetak dan membatalkan
pencetakan laporan data supplier.
11. Aktor memilih menu
laporan stok barang
12. Sistem akan menampilkan form laporan stok
barang untuk mencetak semua kategori barang
atau hanya per kategori barang dan membatalkan
pencetakan laporan stok barang.
13. Aktor memilih menu
laporan jurnal umum
14. Sistem akan menampilkan form laporan jurnal
umum untuk mencetak per tanggal transaksi dan
membatalkan pencetakan laporan jurnal umum.
Skenario Alternatif
1. Aktor memasukkan
username dan
password
2. Memeriksa valid tidaknya data masukan.
3. Menampilkan pesan username atau password
salah.
42
4. Aktor memilih menu
data rekening
perkiraan
5. Saat di klik menu data rekening perkiraan maka
akan tampil pesan “Koneksi gagal, Ada
Kesalahan”.
6. Aktor memilih menu
jurnal umum
7. Saat di klik menu transaksi jurnal umum maka
akan tampil pesan “Koneksi gagal, Error”.
8. Saat di klik menu daftar jurnal umum maka akan
tampil pesan “Koneksi gagal, Ada Kesalahan”.
9. Aktor memilih menu
laporan data
supplier
10. Saat di klik tombol print maka akan tampil pesan
“The document has no pages”.
11. Aktor memilih menu
laporan stok barang
12. Saat di klik tombol print maka akan tampil pesan
“The document has no pages”.
13. Aktor memilih menu
laporan jurnal umum
14. Saat di klik tombol print maka akan tampil pesan
“The document has no pages”.
Kondisi Akhir Jika melakukan dengan benar maka sistem akan
menampilkan seperti yang diinginkan aktor.
43
3.3.3. Activity Diagram
Berikut penggambaran activity diagram analisa kebutuhan software di PT.Mega Esa
Farma secara umum, seperti dibawah ini ;
Gambar III.7 Activity Diagram Analisa Kebutuhan Software Secara Umum
act Analisa Kebutuhan Software
Manager AccountingKa.Gudang Bahan Baku/Kemas/WadahManager Purchasing
Start
Melakukan Login
Menginput User
Name
Menginput
Password
Gagal Login
Menampilkan Menu Utama
Berhasil Login
mengelola data
Pegawai
Komisaris
Melakukan Login Melakuakan Login
Menginput
UsernameMenginput
Password
Menampilkan Menu Utama
Gagal
Login
Berhasil Login
Mengelola Data
Supplier
Menginput
Username
Menginput
Password
menampilkan Menu Utama
Berhasil Login
Gagal Login
Mengelola Bukti
Penerimaan BarangMengelola Retur
Barang
Melakukan Login
Mengelola Data
Barang
Mengelola
Purchase
Order
Menginput
Username
Menginput
Password
Menampilkan Menu Utama
Mengelola
Data
Rekening
Perkiraan
Mengelola
Transaksi
Jurnal Umum
Mengelola Laporan Data
Supplier,Stok Barang,dan
Jurnal Umum
Berhasil
Login
Gagal Login
Kembali Ke Menu Utama
Kembali Ke Menu UtamaKembali Ke Menu Utama
Kembali Ke Menu Utama
Mengelola
Purchase
Order
Logout
Final
44
Setelah penggambaran secara umum activity diagram kebutuhan software,
selanjutnya akan digambarkan activity diagram dari masing-masing bagian sama
seperti yang ada pada use case diagram, seperti dibawah ini ;
1. Komisaris
Gambar III.8 Activity Diagram Analisa Kebutuhan Software Pada Komisaris
act Komisaris
Sistem KomisarisKomisaris
Start
Melakukan Login
Menginput Username Menginput Password
Cek Username dan
Password
Valid?
Tampil Pesan Username
dan Password Salah
Menampilkan Menu Utama
[Valid]
[Tidak
Valid]
Menampilkan Form Data
Pegawai
Klik Tombol Tambah
Menginput Nama Pegawai,
Klik Enter
Tampil Pesan Nama
Pegawai yang sudah ada
Pilihan Aktivitas
Batal Edit
Menampilkan Data
Pegawai Pilih Jabatan, Kode
Pegawai akan otomatis
tampil dan input Password
Batal Simpan
Pilihan Aktivitas
Tutup Form Data Pegawai
Logout
Final
Pilihan
Klik Menu Bar Pembelian
Setuju Batalkan
Klik Simpan Pilihan
Tutup Form Daftar PO
Mengedit Tabel Pada
Kolom Pilihan
Edit Password Pegawai
Hapus
Mencari Data PO
Klik Menu Bar Data-Data
Klik Menu Data Pegawai
Menampilkan Form Daftar
Purchase Order
Klik Menu Purchase Order
Klik Sub Menu Daftar
Purchase Order
Sudah Ada Belum Ada
45
2. Manager Purchasing
Gambar III.9 Activity Diagram Analisa Kebutuhan Software Pada Manager
Purchasing
act Manager Purchasing
Sistem PurchasingManager Purchasing
Start
Melakukan Login
Menginput Username Menginput Password
Menampilkan Menu Utama[Valid]
Cek Username dan
Password
Valid ?Tampil Pesan Username
atau Password Salah
[Tidak Valid]
Pilihan Menu Bar
Klik Menu Bar Data-Data
Klik Menu Bar Pembelian
Menampilkan Form Data
Supplier
Pilihan
Aktivitas
Menambah
Data
Supplier
Mencari Data
Supplier
Menampilkan Form Data Barang
Pilihan
Aktivitas
Menambah
Data Barang
Mencari Data
Barang
Menampilkan Form Input
Purchase Order
Pilihan
Aktivitas
Simpan Cetak Batal
Tutup Form Data Supplier Tutup Form Data Barang
Tutup Form Input Purchase
Order
Logout
Final
Klik Sub Menu Daftar
Purchase Order
Menampilkan
Form Input
Data Supplier
Pilihan
Aktivitas
Simpan Batal
Menampilkan
Data Yang
Dicari
Klik Dua Kali
Data Yang
Dicari
Menampilkan Form
Edit Data Supplier
Pilihan Aktivitas
Edit Hapus
Menampilkan
Form Input Data
Barang
Pilihan
Aktiivitas
SimpanBatal
Menampilkan
Data Yang
Dicari
Klik Dua Kali
Data Yang Dicari
Menampilkan Form Edit
Data Barang
Pilihan
Aktivitas
Edit Hapus
Tutup Form Daftar
Purchase Order
Mencari PO
Memperbaharui
Data Barang
Memperbaharui
Data Supplier
Klik Menu Data Supplier
Pilihan Menu
Klik Menu Data Barang
Klik Sub Menu Input
Purchase Order
Input Data Supplier
Edit Data Supplier
Input Data
BarangEdit Data Barang
Input PO
Klik Menu Purchase Order
Pilihan Sub
Menu
Menampilkan PO yang
dicari
Tutup Form Input Data
Supplier
Tutup Form Edit Data
SupplierTutup Form Input Data
Barang
Tutup Form Edit Data
Barang
46
3. Ka.Gudang Bahan Baku/Kemas/Wadah
Gambar III.10 Activity Diagram Analisa Kebutuhan Software
Pada Ka.Gudang Bahan Baku/Kemas/Wadah
act Ka.Gudang Bahan Baku/Kemas/Wadah
Sistem Ka.Gudang Bahan Baku/Kemas/WadahKa.Gudang Bahan Baku/Kemas/Wadah
Start
Melakukan Login
Menginput Username Menginput Password
Cek Username dan Password
Valid ?
Menampilkan Menu Utama
[Valid]
Tampil Pesan Username
dan Password Salah
[Tidak
Valid]
Pilihan
Menu
Klik Menu Penerimaan
Barang
Klik Menu Retur Barang
Pilihan
Menu
Menginput BPB
Menampilkan Form
Daftar Penerimaan
Barang
Pilihan
Aktivitas
Simpan
Cetak
Batal
Pilihan
Menu
Menginput Retur
Barang
Mencari Data
Retur Barang
Pilihan
Aktivitas
Simpan
Cetak
Batal
Tutup Form Input Bukti
Penerimaan Barang
Tutup Form Retur Barang
Logout
Final
Mencari Data
BPB
Menampilkan
Data Retur
Barang yang
dicari
Tutup Form Daftar
Penerimaan Barang
Tutup Form Tabel Data
Retur Barang
Klik Menu Bar Pembelian
Klik Sub Menu
Input Bukti
Penerimaan
Barang
Menampilkan Form
Input Bukti
Penerimaan Barang
Klik Sub Menu Daftar
Penerimaan Barang
Menampilkan Data
Penerimaan Barang yang
dicari
Klik Sub Menu
Input Retur
Barang
Menampilkan
Form Input
Retur Barang
Klik Sub Menu
Daftar Retur
Barang
Menampilkan
Form Daftar Retur
Barang
47
4. Manager Accounting
Gambar III.11 Activity Diagram Analisa Kebutuhan Software Pada Manager
Accounting
act Manager Accounting
Sistem AkuntingManager Accounting
Start
Melakukan Login
Menginput Username Menginput Password
Cek Username dan
Password
Valid?
Menampilkan Menu Utama
[Valid]
Tampil Pesan Username
atau Password Salah
[Tidak
Valid]
Pilihan Menu Bar
Klik Menu Bar Akun
Klik Menu Jurnal Umum
Klik Menu Bar Laporan
Klik Menu Data Rekening
Perkiraan
Pilihan
Aktivitas
Menambah Data
PerkiraanMencari Data
Perkiraan
Tutup Form
Laporan Data
Supplier
Menampilkan
Data Supplier
Yang Akan
Dicetak
Edit Hapus
Mencari Data Jurnal
Umum
Klik Menu
Laporan Data
Supplier
Klik Menu Laporan
Stok Barang
Klik Menu
Laporan Jurnal
Umum
Cetak
CetakCetak
Tutup Form Data Perkiraan
Tutup Form Edit Akun
Logout
Final
Menampilkan
Form Tambah
Akun Baru
Simpan Batal
Menampilkan Form Data
Rekening Perkiraan
Input Akun
Baru
Pilihan Menu
Pilihan
Aktivitas
Memperbaharui
Data Perkiraan
Tutup Form Tambah Akun
Baru
Menampilkan Data
Yang Dicari
Klik Dua Kali
Data Yang Dicari
Menampilkan
Form Edit Akun
Edit Nama
Akun
Pilihan
Aktivitas
Pilihan
Sub Menu
Klik Sub Menu
Transaksi Jurnal
Umum
Klik Sub Menu
Daftar Jurnal
Umum
Menampilkan
Form Transaksi
Jurnal Umum
Menampilkan
Form Daftar
Jurnal Umum
Input Jurnal
Umum
Pilihan
Aktivitas
Simpan Batal
Tutup Form Transaksi
Jurnal Umum
Menampilkan Data
Jurnal Umum Yang
Dicari
Tutup Form Daftar
Jurnal Umum
Pilihan Menu
Pilih Kategori
Menampilkan
Stok Barang
Yang Akan
Dicetak
Tutup Form Laporan
Stok Barang
Input Tanggal
Awal dan
Tanggal Akhir
Menampilkan
Jurnal Umum
Yang Akan
Dicetak
Tutup Form
Laporan Jurnal
Umum
48
3.4. Desain
3.4.1. Software Architecture
Berikut adalah gambaran lengkap software architecture yang di gambarkan dengan
class diagram dan sequence diagram ;
1. Class Diagram
Gambar III.12 Class Diagram Software Architecture
class Software Architecture
Data_Pegawai
- kod_pegawai: char
- nama_pegawai: char
- jabatan: char
- password: char
+ getKod_Pegawai()
+ setKod_Pegawai()
+ getNama_Pegawai()
+ setNama_Pegawai()
+ getJabatan()
+ setJabatan()
+ getPassword()
+ setPassword()
+ tambah()
+ simpan()
+ Edit()
+ hapus()
+ batal()
+ CekLogin()
Data_Supplier
- id: char
- nama_supplier: char
- alamat: char
- tlp1: char
- tlp2: char
- fax: char
- email: char
- kontak_person: char
+ getID()
+ setID()
+ getNama_Supplier()
+ setNama_Supplier()
+ getAlamat()
+ setAlamat()
+ getTlp1()
+ setTlp1()
+ getTlp2()
+ setTlp2()
+ getFax()
+ setFax()
+ getEmail()
+ setEmail()
+ getKontak_Person()
+ setKontak_Person()
+ tambah()
+ simpan()
+ batal()
+ cari()
+ edit()
+ hapus()
Data_Barang
- kod_bar: char
- kategori: char
- na_bar: char
- jml_stok: int
- satuan: char
- stok_minimal: int
- harga_beli: int
- disk: int
- pajak: char
+ getKod_Bar()
+ setKod_Bar()
+ getKategori()
+ setKategori()
+ getNa_Bar()
+ setNa_Bar()
+ getJml_Stok()
+ setJml_Stok()
+ getSatuan()
+ setSatuan()
+ getStok_Minimal()
+ setStok_Minimal()
+ getHarga_Beli()
+ setHarga_Beli()
+ getDisk()
+ setDisk()
+ getPajak()
+ setPajak()
+ tambah()
+ simpan()
+ batal()
+ cari()
+ edit()
+ hapus()
PO
- no_po: char
- nama_supplier: char
- alamat: char
- kontak: char
- tgl_po: date
- ket: char
- kod_bar: char
- na_bar: char
- jml_bar: int
- satuan: char
- harga: int
- disk: double
- jml_hrg: double
- ppn: char
- total: double
- tgl_krm: date
+ getNo_PO()
+ setNo_PO()
+ getNama_Supplier()
+ setNama_Supplier()
+ getAlamat()
+ setAlamat()
+ getKontak()
+ setKontak()
+ getTglPO()
+ setTglPO()
+ getKet()
+ setKet()
+ getKod_Bar()
+ setKod_Bar()
+ getNa_Bar()
+ setNa_Bar()
+ getJml_Bar()
+ setJml_Bar()
+ getSat()
+ setSat()
+ getHarga()
+ setHarga()
+ getDisk()
+ setDisk()
+ getJml_Hrg()
+ setJml_Hrg()
+ getPPN()
+ setPPN()
+ getTotal()
+ setTotal()
+ getTgl_Krm()
+ setTgl_Krm()
+ getACC()
+ setACC()
+ simpan()
+ cetak()
+ batal()
+ cari()
Retur_Barang
- no_retur: char
- nama: char
- no_bpb: char
- tgl_retur: char
- ket: char
- kod_bar: char
- nama_brg: char
- diretur: int
- sat: char
- harga: int
- diskon: double
- jml_hrg: double
- pajak: double
- total_hrg: double
- tgl_terima: char
+ getNo_Retur()
+ setNo_Retur()
+ getNama()
+ setNama()
+ getNo_BPB()
+ setNo_BPB()
+ getTgl_retur()
+ setTgl_retur()
+ getKet()
+ setKet()
+ getKod_Bar()
+ setKod_Bar()
+ getNa_Bar()
+ setNa_Bar()
+ getDiretur()
+ setDiretur()
+ getSat()
+ setSat()
+ getHarga()
+ setHarga()
+ getDisk()
+ setDisk()
+ getJml_Hrg()
+ setJml_Hrg()
+ getPajak()
+ setPajak()
+ getTotal_Hrg()
+ setTotal_Hrg()
+ getTgl_Terima()
+ setTgl_Terima()
+ simpan()
+ cetak()
+ batal()
+ cari()
Data_Rek_Perkiraan
- kod_akun: char
- nama_akun: char
- tipe_akun: char
+ getKod_Akun()
+ setKod_AKun()
+ getNama_Akun()
+ setNama_Akun()
+ getTipe_Akun()
+ setTipe_Akun()
+ tambah()
+ simpan()
+ batal()
+ cari()
+ edit()
+ hapus()
BPB
- no_bpb: char
- nama: char
- no_po: char
- no_surat_jalan: char
- tgl_faktur: date
- ket: text
- kod_bar: char
- na_bar: char
- jml_terima: int
- sat: char
- harga: int
- disk: double
- jml_hrg: double
- pajak: int
- total_hrg: double
- tgl_antar: date
+ getNo_BPB()
+ setNo_BPB()
+ getNama()
+ setNama()
+ getNo_PO()
+ setNo_PO()
+ getNo_Surat_Jalan()
+ setNo_Surat_Jalan()
+ getTgl_Faktur()
+ setTgl_Faktur()
+ getKet()
+ setKet()
+ getKod_Bar()
+ setKod_Bar()
+ getNa_Bar()
+ setNa_Bar()
+ getJml_Terima()
+ setJml_Terima()
+ getSat()
+ setSat()
+ getHarga()
+ setHarga()
+ getDisk()
+ setDisk()
+ getJml_Hrg()
+ setJml_Hrg()
+ getPajak()
+ setPajak()
+ getTotal_Hrg()
+ setTotal_Hrg()
+ getTgl_Antar()
+ setTgl_Antar()
+ simpan()
+ cetak()
+ batal()
+ cari() A
Jurnal_Umum
- reff: char
- tgl: date
- ket: char
- kod_akun: char
- nama_akun: char
- tipe_akun: char
- no_bukti: char
- total_debit: int
- total_kredit: int
+ getReff()
+ setReff()
+ getTgl()
+ setTgl()
+ getKet()
+ setKet()
+ getKod_Akun()
+ setKod_Akun()
+ getNama_Akun()
+ setNama_Akun()
+ getTipe_Akun()
+ setTipe_Akun()
+ getNo_Bukti()
+ setNo_Bukti()
+ getTotal_Debit()
+ setTotal_Debit()
+ getTotal_Kredit()
+ setTotal_Kredit()
+ simpan()
+ batal()
+ cari()
Validasi
+ login()
+ exit()
+ cekStatusLogin()
1
KoneksiBasisData
+ host
+ database
+ username
+ password
+ open()
+ execute()
+ getResult()
+ Close()
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
11
1
1
1
1
49
2. Sequence Diagram
Berikut adalah Sequence Diagram dari sistem aplikasi pembelian bahan obat :
a. Login
Gambar III.13 Sequence Diagram Login
sd Login
Komisaris,Manager
Purchasing,Ka.Gudang,Manager
Accounting
Login Control Login Login
alt
[<User Name Valid>]
[<else>]Pesan : User Name Tidak Ditemukan()
alt
[<Password Valid>]
[<else>]
Pesan : Password Tidak Ditemukan
login()
getuserName()
getuserName()
setuserName()
setuserName()
getPassword()
getPassword()
setPassword()
setPassword()
exit()
50
b. Data Pegawai
Gambar III.14 Sequence Diagram Form Data Pegawai
sd Form Data Pegawai
Komisaris Form Data
Pegawai
Control Data
Pegawai
Login
alt
[<nm_pegawai=0>]
[<else>]
Pesan : Nama Pegawai Sudah Ada
tambah()
getNama_Pegawai()
getNama_Pegawai()
[tekan enter]:
setKod_Pegawai()
getNama_Pegawai()
getNama_Pegawai()
setNama_Pegawai()setNama_Pegawai()
getJabatan()
getJabatan()
setJabatan()
setJabatan()
getKod_Pegawai()
getKod_Pegawai()
setKod_Pegawai()setKod_Pegawai()
getPassword()
getPassword()
setPassword()
setPassword()
simpan() [menyimpan data
pegawai]:
simpan data_pegawai()
batal() [membatalkan input data
pegawai]:
batal data_pegawai()
edit() [mengedit data
pegawai]:
edit data_pegawai()
hapus() menghapus
data_pegawai()
hapus data_pegawai()
51
c. Data Supplier
Gambar III.15 Sequence Diagram Data Supplier
sd Form Data Suppler
Manager Purchasing Form Data
Supplier
Control Data
Supplier
data_supplierForm Edit Data
Supplier
Form Input Data
Supplier
tambah()
[menampilkan form input data supplier]:
getID()
getID()
setID()
setID()
getNama_Supplier()
getNama_Supplier()
setNama_Supplier()
setNama_Supplier()
getAlamat()
getAlamat()
setAlamat()
setAlamat()
getTlp1()
getTlp1()
setTlp1()
setTlp1()
getTlp2()getTlp2()
setTlp2()
setTlp2()
getFax()getFax()
setFax()
setFax()
getEmail()
getEmail()
setEmail()
setEmail()
getKontak_Person()
getKontak_Person()
setKontak_Person()
setKontak_Person()
simpan()[menyimpan data
supplier]:
simpan data_supplier()
batal() [membatalkan
input]:
batal input data_supplier()
cari()[menampilkan data supplier yang dicari]:
[klik dua kali data yang
dicari]:
menampilkan form edit data supplier()
[menampilkan data supplier]:
edit()
[mengedit data supplier]:
edit data_supplier()
hapus()
[menghapus data supplier]:hapus data_supplier()
52
d. Data Barang
Gambar III.16 Sequence Diagram Data Barang
sd Form Data Barang
Manager Purchasing Form Data Barang Control Data
Barang
data_barangForm Edit Data
Barang
Form Input Data
Barang
tambah()
[menampilkan form input data barang]:
getKod_Bar()
getKod_Bar()
setKod_Bar()
setKod_Bar()
getKategori()
getKategori()
setKategori()
setKategori()
getNa_Bar()
getNa_Bar()
setNa_bar()
setNa_Bar()
getJml_Stok()
getJml_Stok()
setJml_Stok()
setJml_Stok()
getSatuan()getSatuan()
setSatuan()
setSatuan()
getStok_Minimal()
getStok_Minimal()
setStok_Minimal()
setStok_Minimal()
getHarga_Beli()
getHarga_Beli()
setHarga_Beli()
setHarga_Beli()
getDisk()
getDisk()
setDisk()
setDisk()
getPajak()
getPajak()
setPajak()
setPajak()
simpan()
[menyimpan data barang]:
simpan data_barang()
batal()[membatalkan input
data barang]:
batal data_barang()
cari()[menampilkan data barang yang dicari]:
[klik dua kali data yang
dicari]:
menampilkan form edit data barang()
[menampilkan data barang]:
edit()
[mengedit data barang]:
edit data_barang()
hapus()
[menghapus data barang]:
hapus data_barang()
53
e. PO (Purchase Order)
Gambar III.17 Sequence Diagram PO (Purchase Order)
sd po
Ka.Gudang Bahan
Baku/Kemas/Wadah
Form Input
Purchase Order
Form Daftar
Purchase Order
Control PO po
[mencari data supplier]:cari()
[menampilkan data supplier]:
getNo_PO()
getNo_PO()
setNo_PO()
setNo_PO()
[mencari data barang]:cari()
[menampilkan data barang]:
getJml_Bar()
getJml_Bar()
setJml_Bar()
setJml_Bar()
getTgl_Krm()
getTgl_Krm()
setTgl_Krm()setTgl_Krm()
simpan()
[menyimpan po]:
simpan po()
cetak()
[mencetak po]:
cetak po()
batal()[membatalkan input po]:
batal po()
cari() [menampilkan data po yang dicari]:
[menampilkan data po yang dicari]:
getPilihan()
getPilihan()
menyimpan pilihan setuju
atau batalkan()
simpan_pilihan()
54
f. Bukti Penerimaan Barang
Gambar III.18 Sequence Diagram Bukti Penerimaan Barang
sd bpb
Ka.Gudang Bahan
Baku/Kemas/Wadah
Form Input Bukti
Penerimaan
Barang
Form Daftar
Penerimaan
Barang
Control BPB bpb
[mencari data po]:cari()
[menampilkan data po]:
getNo_BPB()
getNo_BPB()
setNo_BPB()
setNo_BPB()
getNo_Surat_Jalan()
getNo_Surat_Jalan()
setNo_Surat_Jalan()
setNo_Surat_Jalan()
getKet()
getKet()
setKet()
setKet()
getJml_Terima()
getJml_Terima()
setJml_Terima()
setJml_Terima()
getTgl_Antar()
getTgl_Antar()
setTgl_Antar()
setTgl_Antar()
getTgl_Faktur()
getTgl_Faktur()
setTgl_Faktur()
setTgl_Faktur()
simpan()
[menyimpan bpb]:
simpan bpb()
cetak()
[mencetak bpb]:
cetak bpb()
batal()
[membatalkan input bpb]:
batal bpb()
cari() [menampilkan data bpb yang dicari]:
55
g. Retur Barang
Gambar III.19 Sequence Diagram Retur Barang
sd retur barang
Ka.Gudang Bahan
Baku/Kemas/Wadah
Form Input Retur
Barang
Form Daftar Retur
Barang
Control Retur retur
[mencari data bpb]:cari()
[menampilkan data bpb]:
getNo_Retur()
getNo_Retur()
setNo_Retur()
setNo_Retur()
getKet()
getKet()
setKet()
setKet()
getDiretur()
getDiretur()
setDiretur()
setDiretur()
getTgl_Retur()
getTgl_Retur()
setTgl_Retur()
setTgl_Retur()
simpan()
[menyimpan retur barang]:
simpan retur_barang()
cetak()
[mencetak retur barang]:
cetak retur_barang()
batal()
[membatalkan input retur barang]:
batal retur_barang()
cari() [menampilkan data retur yang dicari]:
56
h. Data Rekening Perkiraan
Gambar III.20 Sequence Diagram Data Rekening Perkiraan
sd Data Rekening Perkiraan
Manager Purchasing Form Data
Rekening Perkiraan
Control Akun akunForm Edit Akun Form Tambah
Akun Baru
tambah()
[menampilkan form tambah akun baru]:
getTipe_Akun()getTipe_Akun()
setTipe_Akun()
setTipe_Akun()
getKod_Akun()
getKod_Akun()
setKod_Akun()
setKod_Akun()
getNama_Akun()
getNama_Akun()
setNama_Akun()
setNama_Akun()
simpan()menyimpan data
akun()
simpan akun()
batal() membatalkan input
akun()
batal akun()
cari()[menampilkan data akun yang dicari]:
[klik dua kali data yang
dicari]:
menampilkan form edit akun()
[menampilkan data akun]:
edit()
[mengedit data akun]:
edit akun()
hapus()
[menghapus data akun]:
hapus akun()
57
i. Jurnal Umum
Gambar III.21 Sequence Diagram Jurnal Umum
sd jurnal_umum
Ka.Gudang Bahan
Baku/Kemas/Wadah
Form Transaksi
Jurnal Umum
Form Daftar Jurnal
Umum
Control Jurnal jurnal
[mencari data akun]:
cari()[menampilkan data akun]:
getNama_Akun()
getNama_Akun()
setNama_Akun()
setNama_Akun()
getTipe_Akun()
getTipe_Akun()
setTipe_Akun()
setTipe_Akun ()
[mencari no.bukti transaksi]:
cari()
getNo_Bukti()
getNo_Bukti()
setNo_Bukti()
setNo_Bukti ()
getTotal_Debit()
getTotal_Debit()
setTotal_Debit()
getTotal_Kredit()
getTotal_Kredit()
setTotal_Kredit()
setTotal_Kredit()
getReff()
getReff()
setReff()
setReff()
getTgl()
getTgl()
setTgl()
setTgl()
getKet()
getKet()
setKet()
setKet()
simpan()
[menyimpan jurnal umum]:
simpan jurnal()
batal()
[membatalkan input jurnal]:
batal jurnal()
cari() [menampilkan data jurnal umum yang dicari]:
58
3.4.2. User Interface
1. Menu Login
Pada tampilan login digunakan oleh Komisaris, Manager Purchasing,
Ka.Gudang Bahan Baku / Kemas / Wadah, dan Manager Accounting masuk
pada menu utama untuk mengelola data pembelian bahan obat.
Gambar III.22 Tampilan Menu Login
2. Menu Utama
Pada tampilan menu utama untuk mengelola atau menampilan data supplier,
data barang, menginput dan mencetak PO (Purchase Orer), BPB (Bukti
Penerimaan Barang, Retur Barang, serta mencetak laporan stok dan laporan
jurnal umum.
Gambar III.23 Tampilan Menu Utama
59
3. Form Data Pegawai
Pada form data pegawai Komisaris dapat menginput kode pegawai, nama
pegawai, jabatan, dan password yang nanti akan di pakai user seperti Manager
Purchasing, Ka.Gudang Bahan Baku / Kemas / Wadah, dan Manager
Accounting untuk masuk ke menu utama dan mengelola data pembelian sesuai
dengan tugas masing-masing user.
Gambar III.24 Form Data Pegawai
4. Form Data Supplier
Pada form data supplier, Manager Purchasing dapat mengelola data Supplier
seperti mencari, menambah, dan meg-update data supplier. Saat di klik tombol
tambah maka akan tampil form input data supplier, Manager Purchasing dapat
meyimpan atau membatalkan input data supplier. Dan bila di klik dua kali data
yang ingin di edit maka akan tampil form edit data supplier. Pada form edit data
supplier, Manager Purchasing dapat mengedit atau menghapus data supplier.
60
Gambar III.25 Form Data Supplier
Gambar III.26 Form Input Data Supplier
Gambar III.27 Form Edit Data Supplier
61
5. Form Data Barang
Pada Form data barang bagian Manager Purchasing dapat mengelola data
barang seperti mencari, menambah, dan meng-update data barang dan
mengontrol jumlah persediaan barang. Saat di klik tombol tambah maka akan
tampil form input data barang, Manager Purchasing dapat meyimpan atau
membatalkan input data barang. Dan bila di klik dua kali data yang ingin di edit
maka akan tampil form edit data barang. Pada form edit data barang, Manager
Purchasing dapat mengedit atau menghapus data barang.
Gambar III.28 Form Data Barang
62
Gambar III.29 Form Input Data Barang
Gambar III.30 Form Edit Data Barang
6. Form Input Purchase Order dan Form Daftar Purchase Order
Pada form Input purchase order bagian Manager Purchasing dapat
menyimpan, mencetak, dan membatalkan po (purchase order). Pada form
daftar purchase order bagian Manager Purchasing dapat mencari data po
(Purchase Order). Form daftar purchase order juga dapat digunakan Komisaris
63
untuk menyimpan pilihan, pilihannya terdiri dari setuju atau batalkan purchase
order yang telah dibuat Manager Purchasing.
Gambar III.31 Form Input Purchase Order
Gambar III.32 Form Daftar Purchase Order
64
Gambar III.33 Form Daftar Purchase Order Untuk Komisaris
7. Form Input Bukti Penerimaan Barang dan Form Daftar Penerimaan
Barang
Pada form input bukti penerimaan barang bagian Ka.Gudang Bahan Baku /
Kemas / Wadah dapat mengelola transaksi barang masuk dari Supplier seperti
menyimpan, mencetak, dan membatalkan data penerimaan barang. Pada form
daftar bukti penerimaan barang bagian Ka.Gudang Bahan Baku / Kemas /
Wadah juga dapat mencari data penerimaan barang.
Gambar III.34 Form Input Bukti Penerimaan Barang
65
Gambar III.35 Form Daftar Penerimaan Barang
8. Tampilan Form Input Retur Barang dan Form Daftar Retur Barang
Pada form input retur barang bagian Ka.Gudang Bahan Baku / Kemas / Wadah
dapat mengelola pengembalian barang ke Supplier seperti menyimpan,
mencetak, dan membatalkan data retur barang. Pada form daftar retur barang
bagian Ka.Gudang Bahan Baku / Kemas / Wadah juga dapat mencari data retur
barang.
Gambar III.36 Form Input Retur Barang
66
Gambar III.37 Form Daftar Retur Barang
9. Form Data Rekening Perkiraan
Pada form data rekening perkiraan bagian Manager Accounting dapat
mengelola data rekening perkiraan seperti mencari, menambah, dan mengedit
data akun. Saat di klik tombol tambah maka akan tampil form tambah akun
baru, Manager Purchasing dapat meyimpan atau membatalkan input data akun.
Dan bila di klik dua kali data yang ingin di edit maka akan tampil form edit
akun. Pada form edit akun, Manager Purchasing dapat mengedit atau
menghapus akun.
Gambar III.38 Form Data Rekening Perkiraan
67
Gambar III.39 Form Tambah Akun Baru
Gambar III.40 Form Edit Akun
10. Form Input Jurnal Umum dan Form Daftar Jurnal Umum
Pada form transaksi jurnal umum bagian Manager Accounting dapat mengelola
transaksi jurnal umum seperti menyimpan ,membatalkan transaksi jurnal
umum. Pada form daftar jurnal umum bagian Manager Accounting juga dapat
mengelola transaksi jurnal umum seperti mencari data transaksi jurnal umum.
68
Gambar III.41 Form Input Jurnal Umum
Gambar III.42 Form Daftar Jurnal Umum
11. Form Laporan Data Supplier, Stok Barang, dan Jurnal Umum
Pada form laporan data supplier, stok barang, dan jurnal umum bagian Manager
Accounting dapat mencetak laporan tersebut dengan ketentuan laporan data
69
supplier bisa dicetak semua secara otomatis sedangkan laporan stok barang
dicetak berdasarkan kategori yang dipilih dan laporan jurnal umum berdasarkan
tanggal awal dan akhir yang di input.
Gambar III.43 Form Laporan Data Supplier
Gambar III.44 Form Laporan Stok Barang
Gambar III.45 Form Laporan Jurnal Umum
70
3.5. Implementasi
3.5.1. Code Generation
Generator kode (Code Generator) adalah sebuah program aplikasi yang
menulis kode program lainnya, atau dengan kata lain aplikasi yang menghasilkan
aplikasi lain. Karena aplikasi yang dirancang oleh penulis adalah pemrograman
berbasis objek maka berikut salah satu source code yang menggunakan bahasa
pemrograman berbasis objek :
1. Script daftar_Akun :
package program.pembelian;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.io.File;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.table.*;
import java.util.regex.Pattern;
71
public class daftar_akun extends javax.swing.JInternalFrame {
public Connection conn;
public Statement cn;
private TableRowSorter filtering;
public void koneksi(){
try{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/pembelian","root","");
cn=conn.createStatement();
} catch(ClassNotFoundException | SQLException e){
JOptionPane.showMessageDialog(null,"Koneksi gagal...");
System.out.println(e.getMessage());
} }
public daftar_akun() {
initComponents();
setTitle("DATA AKUN");
bersih();
tampildata(); }
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void btntambahActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
72
input_data_akun ida = new input_data_akun();
this.getParent().add(ida);
ida.setVisible(true); }
private void btnrefreshActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
tampildata();
bersih(); }
private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
akun.requestFocus(); }
private void jRadioButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
akun.requestFocus(); }
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
if (evt.getClickCount() == 2) {
JTable jTable1 = (JTable)evt.getSource();
int table = jTable1.getSelectedRow();
String a = jTable1.getValueAt(table, 0).toString();
String b = jTable1.getValueAt(table, 1).toString();
String c = jTable1.getValueAt(table, 2).toString();
input_data_akun1 ida1 = new input_data_akun1(a, b, c);
this.getParent().add(ida1);
73
ida1.setVisible(true); } }
// Variables declaration - do not modify
private javax.swing.JTextField akun;
private javax.swing.JButton btnrefresh;
private javax.swing.JButton btntambah;
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JPanel jPanel1;
private javax.swing.JRadioButton jRadioButton1;
private javax.swing.JRadioButton jRadioButton2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration
private void bersih() {
akun.setText("");
jRadioButton1.setSelected(true);
akun.requestFocus(); }
private TableRowSorter getRowSorter(){
DefaultTableModel tbl=new DefaultTableModel();
if(filtering == null){
filtering = new TableRowSorter(tbl); }
74
return filtering; }
private void tampildata() {
DefaultTableModel tbl=new DefaultTableModel();
tbl.addColumn("KODE");
tbl.addColumn("NAMA AKUN");
tbl.addColumn("TIPE AKUN");
try{
koneksi();
String sql= "Select * from akun order by kod_akun asc";
ResultSet rs=cn.executeQuery(sql);
while(rs.next())
{
tbl.addRow(new Object[]{
rs.getString(1),
rs.getString(2),
rs.getString(3)
});
jTable1.setModel(tbl);
filtering = new TableRowSorter<>(tbl);
jTable1.setRowSorter(getRowSorter());
}
} catch(Exception e){
75
JOptionPane.showMessageDialog(null,"Ada Kesalahan....");
}
bersih(); }}
2. Script input_data_akun1 :
package program.pembelian;
import java.awt.HeadlessException;
import java.io.File;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import java.awt.event.KeyEvent;
public class input_data_akun1 extends javax.swing.JInternalFrame {
public Connection conn;
public Statement cn;
public void koneksi(){
try{
76
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/pembelian","root","
");
cn=conn.createStatement();
} catch(ClassNotFoundException | SQLException e){
JOptionPane.showMessageDialog(null,"Koneksi gagal...");
System.out.println(e.getMessage());
} }
public input_data_akun1(String a, String b, String c) {
initComponents();
setTitle("Edit Akun");
tipe_akun.setSelectedItem(c);
tkode_akun.setText(a);
nama_akun.setText(b); }
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void btneditActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(nama_akun.getText().length()==0){
JOptionPane.showMessageDialog(rootPane, "Nama Akun Belum
Diisi" );
nama_akun.requestFocus();
77
}else{
try{
koneksi();
String sql="Update akun set
nama_akun='"+nama_akun.getText()+"',"+"tipe_akun='"+tipe_akun.getSelectedI
tem()+"'"+"where kod_akun='"+tkode_akun.getText()+"'";
cn.executeUpdate(sql);
conn.close();
bersih();
JOptionPane.showMessageDialog(null,"Data berhasil di
rubah");
dispose();
} catch(Exception e){
JOptionPane.showMessageDialog(null,"Proses update
gagal/koneksi gagal...");
System.out.println(e.getMessage());
bersih();
} } }
private void btnhapusActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int ok=JOptionPane.showConfirmDialog(null,"Apakah Anda yakin Ingin
Hapus ?","Konfirmasi",JOptionPane.YES_NO_OPTION);
78
if(ok==0){
try{
koneksi();
String sql="delete from akun where
kod_akun='"+tkode_akun.getText()+"'";
cn.executeUpdate(sql);
conn.close();
JOptionPane.showMessageDialog(null,"Data berhasil di hapus");
} catch(Exception e){
JOptionPane.showMessageDialog(null,"Proses hapus gagal/koneksi
gagal...");
System.out.println(e.getMessage());
}
dispose();
} }
// Variables declaration - do not modify
private javax.swing.JButton btnedit;
private javax.swing.JButton btnhapus;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JTextField nama_akun;
79
private javax.swing.JComboBox<String> tipe_akun;
private javax.swing.JTextField tkode_akun;
// End of variables declaration
private void bersih() {
tkode_akun.requestFocus();
tkode_akun.setText("");
tipe_akun.setSelectedItem("--Pilih--");
nama_akun.setText(""); }}
3. Script input_jurnal_umum :
package program.pembelian;
import java.awt.HeadlessException;
import java.awt.event.KeyEvent;
import java.io.File;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
80
import javax.swing.table.DefaultTableModel;
import java.util.Date;
import java.util.List;
import javax.swing.table.TableModel;
public class input_jurnal_umum extends javax.swing.JInternalFrame {
public void waktu(){
Date tgl = new Date();
jdate.setDate(tgl); }
public Connection conn;
public Statement cn;
public void koneksi(){
try{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/pembelian","root","
");
cn=conn.createStatement();
} catch(ClassNotFoundException | SQLException e){
JOptionPane.showMessageDialog(null,"Koneksi gagal...");
System.out.println(e.getMessage());
}}
81
public String kode, nama_akun, tipe_akun;
public String getKode() {
return kode; }
public String getNama_akun() {
return nama_akun; }
public String getTipe_akun() {
return tipe_akun; }
public input_jurnal_umum() {
initComponents();
setTitle("Jurnal Umum");
waktu();
cleanTable();
autonumber();
nonaktif(); }
public void itemTerpilih(){
data_akun da = new data_akun();
da.iju=this;
kod_akun.setText(kode);
nama_akun1.setText(nama_akun);
tipe_akun1.setText(tipe_akun);
bkt_trans.requestFocus(); }
82
public void aktif(){
ket.setEnabled(true);
jumlah.setEnabled(true);
bkt_trans.setEnabled(true);
debit.setEnabled(true);
kredit1.setEnabled(true);
btndebit.setEnabled(true);
btnkredit.setEnabled(true);
btnsimpan.setEnabled(true);
btnbatal.setEnabled(true); }
public void nonaktif(){
ket.setEnabled(false);
jumlah.setEnabled(false);
bkt_trans.setEnabled(false);
debit.setEnabled(false);
kredit1.setEnabled(false);
btndebit.setEnabled(false);
btnkredit.setEnabled(false);
btnsimpan.setEnabled(false);
btnbatal.setEnabled(false); }
public void bersih(){
83
ket.setText("");
kod_akun.setText("");
nama_akun1.setText("");
tipe_akun1.setText("");
bkt_trans.setText("");
jumlah.setText("");
debit.setText("");
kredit1.setText("");
balans.setText(""); }
public void cleanTable(){
DefaultTableModel dm = (DefaultTableModel) jTable1.getModel();
if(jTable1.getRowCount()>0){
for(int i = jTable1.getRowCount()-1;i>-1;i--){
dm.removeRow(i); }}}
public void autonumber(){
try{ koneksi(); //--> memanggil koneksi
String sql= "SELECT MAX(right(reff,3)) AS no FROM jurnal";
cn=conn.createStatement();
ResultSet rs=cn.executeQuery(sql);
while(rs.next())
{
84
if(rs.first() == false)
{
reff.setText("JU0000001");
}
else
{
rs.last();
int auto_id = rs.getInt(1) + 1;
String no = String.valueOf(auto_id);
int noLong = no.length();
for(int a=0;a<4-noLong;a++)
{
no = "0"+no;
}
reff.setText("JU000"+no);
} }
rs.close();
}
catch (Exception e){
JOptionPane.showMessageDialog(this, "ERROR: \n" + e.toString(),
"Kesalahan", JOptionPane.WARNING_MESSAGE);
} }
@SuppressWarnings("unchecked")
85
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void btnsimpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(ket.getText().length()==0){
JOptionPane.showMessageDialog(rootPane, "Keterangan Belum Diisi" );
ket.requestFocus();
}else{
String tampilan ="yyyy-MM-dd";
SimpleDateFormat fm = new SimpleDateFormat(tampilan);
String tanggal=String.valueOf(fm.format(jdate.getDate()));
try {
koneksi();
int baris = jTable1.getRowCount();
for(int a=0;a<baris;a++)
{
String sql="Insert into jurnal
values('"+reff.getText()+"','"+tanggal+"','"+ket.getText()+"','"+jTable1.getValue
At(a,0)+"','"+jTable1.getValueAt(a,1)+"','"+tipe_akun1.getText()+"','"+bkt_trans.
getText()+"','"+jTable1.getValueAt(a, 2)+"','"+jTable1.getValueAt(a, 3)+"')";
cn.executeUpdate(sql);
}
conn.close();
JOptionPane.showMessageDialog(null,"Data berhasil di simpan");
86
} catch(Exception e){
JOptionPane.showMessageDialog(null,"Proses penyimpanan gagal/koneksi
gagal..");
System.out.println(e.getMessage());
}
bersih();
autonumber();
cleanTable();
nonaktif();
} }
private void btnbatalActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
bersih();
nonaktif();
cleanTable();
autonumber(); }
private void bkt_transActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
koneksi();
String sql="select*from bpb where no_bpb like'"+bkt_trans.getText()+"'";
87
ResultSet rs=cn.executeQuery(sql);
if(rs.next()){
bkt_trans.setText(rs.getString(1));
jumlah.setText(rs.getString(14));
}
} catch(Exception e){
}
try{
koneksi();
String sql="select*from retur where no_retur
like'"+bkt_trans.getText()+"'";
ResultSet rs=cn.executeQuery(sql);
if(rs.next()){
bkt_trans.setText(rs.getString(1));
jumlah.setText(rs.getString(14));
}
} catch(Exception e){
} }
private void btncariActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
data_akun da = new data_akun();
da.iju=this;
88
da.setVisible(true); }
private void btndebitActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
DefaultTableModel dm = (DefaultTableModel) jTable1.getModel();
List list = new ArrayList<>();
jTable1.setAutoCreateColumnsFromModel(true);
list.add(kod_akun.getText());
list.add(nama_akun1.getText());
int debet=Integer.parseInt(jumlah.getText());
list.add(debet);
int kredit = 0;
list.add(kredit);
dm.addRow(list.toArray());
kod_akun.setText("");
nama_akun1.setText("");
tipe_akun1.setText("");
bkt_trans.setText("");
jumlah.setText("");
int jumlahBaris = jTable1.getRowCount();
double totalDebit = 0;
for(int i=0; i<jumlahBaris; i++){
89
double total_sel = Double.parseDouble(jTable1.getValueAt(i, 2).toString());
totalDebit = totalDebit+total_sel;
}
debit.setText(Long.toString((long) totalDebit));
try{
koneksi();
int baris = jTable1.getRowCount();
for(int a=0;a<baris;a++)
{
String sql="Insert into jurnal values(nama_akun='"+jTable1.getValueAt(a,
1)+"',"+"total_debit='"+jTable1.getValueAt(a,
2)+"',"+"total_kredit='"+jTable1.getValueAt(a, 3)+"'"+"where
kod_akun='"+jTable1.getValueAt(a, 0)+"')";
cn.executeUpdate(sql);
}
conn.close();
} catch(Exception e){
} }
private void btnkreditActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
DefaultTableModel dm = (DefaultTableModel) jTable1.getModel();
List list = new ArrayList<>();
90
jTable1.setAutoCreateColumnsFromModel(true);
list.add(kod_akun.getText());
list.add(nama_akun1.getText());
int debet = 0;
list.add(debet);
int kredit=Integer.parseInt(jumlah.getText());
list.add(kredit);
dm.addRow(list.toArray());
kod_akun.setText("");
nama_akun1.setText("");
tipe_akun1.setText("");
bkt_trans.setText("");
jumlah.setText("");
int jumlahBaris = jTable1.getRowCount();
double totalKredit = 0;
for(int i=0; i<jumlahBaris; i++){
double total_sel = Double.parseDouble(jTable1.getValueAt(i, 3).toString());
totalKredit = totalKredit+total_sel;
}
kredit1.setText(Long.toString((long) totalKredit));
try{
91
koneksi();
int baris = jTable1.getRowCount();
for(int a=0;a<baris;a++)
{
String sql="Insert into jurnal values(nama_akun='"+jTable1.getValueAt(a,
1)+"',"+"total_debit='"+jTable1.getValueAt(a,
2)+"',"+"total_kredit='"+jTable1.getValueAt(a, 3)+"'"+"where
kod_akun='"+jTable1.getValueAt(a, 0)+"')";
cn.executeUpdate(sql);
}
conn.close();
} catch(Exception e){
}
int debit1=Integer.parseInt(debit.getText());
int balance = (int) (debit1-totalKredit);
balans.setText(Integer.toString(balance)); }
// Variables declaration - do not modify
private javax.swing.JTextField balans;
private javax.swing.JTextField bkt_trans;
private javax.swing.JButton btnbatal;
private javax.swing.JButton btncari;
private javax.swing.JButton btndebit;
92
private javax.swing.JButton btnkredit;
private javax.swing.JButton btnsimpan;
private javax.swing.JTextField debit;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private com.toedter.calendar.JDateChooser jdate;
private javax.swing.JTextField jumlah;
private javax.swing.JTextField ket;
private javax.swing.JTextField kod_akun;
private javax.swing.JTextField kredit1;
private javax.swing.JTextField nama_akun1;
93
private javax.swing.JTextField reff;
private javax.swing.JTextField tipe_akun1;
// End of variables declaration }
3.5.2. Spesifikasi Hardware dan Software
1. Spesifikasi Hardware
Perangkat keras atau yang disebut hardware adalah suatu alat bantu yang
berbentuk fisik atau seluruh komponen peralatan yang membentuk suatu sistem
komputer dan peralatan lainnya yang memungkinkan komputer dapat
melaksanakan tugasnya. Dalam pembuatan program ini dibutuhkan perangkat
keras sebagai berikut :
a. Processor : Intel Core 2 Duo @ 2.00 GHz
b. Memori (RAM) : 2 GB
c. Harddisk : 500 GB
d. Floppy disk : 1,44 MB (3,5’’)
e. Monitor : Minimal 14”
f. Keyboard : Standart Keyboard
g. Mouse : Standart Mouse
h. Printer : Laserjet Printer
2. Spesifikasi Software
Perangkat lunak atau yang disebut software adalah seperangkat alat yang dapat
mendukung proses kerja dari perangkat keras yang digunakan atau seluruh fase
94
daripada sistem pengolahan data yang diatur peralatan komputernya sendiri. Dalam
pembuatan program ini dibutuhkan perangkat lunak sebagai berikut :
a. Sistem Operasi : Microsoft Windows XP / Windows 8.1 / Windows 10
b. Sistem Databese : XAMPP
c. Sistem Aplikasi : Netbeans 8.1
3.6. Testing
Testing atau yang disebut dengan pengujian merupakan bagian yang tidak kalah
pentingnya dalam siklus pembangunan perangkat lunak. Pengujian dilakukan untuk
menjamin kualitas dan juga mengetahui kelemahan dari perangkat lunak. Tujuan dari
pengujian ini adalah untuk menjamin bahwa perangkat lunak yang dibangun memiliki
kualitas yang handal, yaitu mampu mepresentasikan kajian pokok dari spesifikasi,
analisis, perancangan dan pengkodean dari perangkat lunak itu sendiri.
Pengujian perangkat lunak ini menggunakan metode pengujian black box.
Dimana pengujian black box berfokus pada persyaratan fungsional perangkat lunak
yang dibuat. Berikut adalah tahapan dalam pengujian ;
1. Rencana Pengujian
Pengujian sistem aplikasi pembelian bahan obat menggunakan data uji berupa
sebuah data dan masukan dari pengguna.
Tabel III.5 Rencana Pengujian sistem aplikasi pembelian bahan obat
Kelas Uji Butir Uji Tingkat
Pengujian
Jenis
Pegujian
95
Pengujian Login
Pengguna
Pengecekan pengguna yang telah
terdaftar
Sistem Black Box
Pengujian Pengisian
Data
Pengisian Data Pegawai Modul Black Box
Pengisian Approved Purchase
Order
Modul Black Box
Pengisian Data Supplier Modul Black Box
Pengisian Data Barang Modul Black Box
Pengisian Data Purchase Order Modul Black Box
Pengisian Data Bukti Penerimaan
Barang
Modul Black Box
Pengisian Data Retur Barang Modul Black Box
Pengisian Data Rekening
Perkiraan
Modul Black Box
Pengisian Transaksi Jurnal
Umum
Modul Black Box
Pengujian
Pencetakan
Dokumen
Pencetakan Laporan Data
Supplier
Modul Black Box
Pencetakan Laporan Stok Barang Modul Black Box
Pencetakan Laporan Jurnal
Umum
Modul Black Box
2. Kasus dan Hasil Pengujian
96
a. Pengujian Login
Tabel III.6 Pengujian Login 1
Kasus dan Hasil Uji (Data Normal)
Data Masukan Yang Diharapkan Pengamatan Kesimpulan
Usename dan Password
terdaftar
Username : KOM001
Password : megaesa
Tercantum pada
text field
username dan text
field password
Dapat mengisi
login pengguna
sesuai yang
diharapkan
Diterima
Klik Login/Tekan Enter Dapat masuk ke
menu utama untuk
pengguna yang
terdaftar
Tombol Login
dapat berfungsi
sesuai yang
diharapkan
Diterima
Tabel III.7 Pengujian Login 2
Kasus dan Hasil Uji (Data Salah)
Data Masukan Yang Diharapkan Pengamatan Kesimpulan
Username tidak
terdaftar
Username : xxxx
Password : xxx
Tidak dapat login
dan menampilkan
pesan peringatan
Pengguna tidak
dapat login dan
menampilkan
pesan “Username
Salah, Silahkan
Ulangi
Diterima
97
Klik “LOGIN”
Pengguna dengan
password salah
Usename : xxx
Password : xxx
Tidak dapat login
dan menampilkan
pesan peringatan
Pengguna tidak
dapat login dan
menampikan pesan
“Password Salah,
Silahkan Ulangi
Diterima
b. Pengujian pengisian data terbagi menjadi 8 bagian, yaitu :
1) Pengujian Pengisian Data Pegawai
Berikut adalah tabel pengujian pengisian data pegawai :
Tabel III.8 Pengujian Pengisian Data Pegawai
Kasus dan Hasil Uji (Data Normal)
Data Masukan Yang Diharapkan Pengamatan Kesimpulan
Klik “ Tambah” Tombol yang aktif
hanya tombol
simpan dan batal
Dapat megisi tiap text
field dan combo box
sesuai yang
diharapkan
Diterima
Mengisi text field
dan combo box
Klik “Simpan”
Data tersinpan di
database
Tombol “Simpan”
dapat berfungsi sesuai
dengan yang
diharapkan
Diterima
98
Klik “Batal” Pengisian data
dibatalkan
Tombol “Batal” dapat
berfungsi sesuai
dengan yang
diharapkan
Diterima
Klik “Edit” Data diperbaharui Tombol “Edit” dapat
berfungsi sesuai
dengan yang
diharapkan
Diterima
Klik “Hapus” Muncul kotak dialog
berupa pertanyaan
Tombol “Hapus”
dapat berfungsi sesuai
dengan yang
diharapkan
Diterima
Klik “Yes” atau
“No”
Data terhapus atau
tidak
Tombol “Yes” atau
“No” berfungsi
Diterima
Kasus dan Hasil Uji (Data Salah)
Mengisi text field
nama pegawai yang
sudah diinput
Menampilkan data
yang sudah pernah di
input ke text field
dan muncul pesan
Text field berfungsi
sesuai yang
diharapkan.
Tombol “Hapus,Edit,
dan Batal” aktif
Diterima
2) Pengujian Pengisian Approved Purchase Order
99
Berikut adalah tabel pengujian pengisian approved purchase order :
Tabel III.9 Pengujian Pengisian Approved Purchase Order
Kasus dan Hasil Uji (Data Normal)
Data Masukan Yang Diharapkan Pengamatan Kesimpulan
Mengisi text field
no.po
Klik “ ” / tekan
“Enter”
Menampilkan data
po yang dicari
Tombol “ ” dan
tekan “Enter” dapat
berfungsi sesuai
dengan yang
diharapkan
Diterima
Mengisi kolom
pilihan dengan
combo box yang
berisi “Setuju” atau
“Batalkan”
Klik “Tampilkan
Pada Tabel Purchase
Order”
Data tersinpan di
database dan
menampilkan
pesan bahwa
“No.PO : PO-XXX
Pilihan : Setuju”
atau “No.PO : PO-
XXX
Pilihan : Batalkan”
Tombol “Tampilkan
Pada Tabel Purchase
Order” dapat
berfungsi sesuai
dengan yang
diharapkan
Diterima
Klik “ ” Me-refresh data
pada tabel po
Tombol “ ” dapat
berfungsi sesuai
dengan yang
diharapkan
Diterima
100
Kasus dan Hasil Uji (Data Salah)
Pengisian text field
no.po yang tidak ada
Klik “ ” atau tekan
“Enter”
Muncul pesan
bahwa “Data tidak
ditemukan”
Text field berfungsi
sesuai yang
diharapkan
Diterima
3) Pengujian Pengisian Data Supplier
Berikut adalah tabel pengujian pengisian data supplier :
Tabel III.10 Pengujian Pengisian Data Supplier
Kasus dan Hasil Uji (Data Normal)
Data Masukan Yang Diharapkan Pengamatan Kesimpulan
Klik “ ” Menampilkan form
input data supplier
Dapat mengisi tiap
text field sesuai yang
diharapkan
Diterima
Mengisi text field
Klik “Simpan”
Data tersinpan di
database
Tombol “Simpan
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
Klik “Batal” Pengisian data
dibatalkan
Tombol “Batal”
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
101
Klik “ ” Me-refresh data pada
tabel data supplier
Tombol “ ” dapat
berfungsi sesuai
dengan yang
diharapkan
Diterima
Klik dua kali pada
tabel yang datanya
ingin diedit
Menampilkan form
Edit data supplier
Dapat mengedit tiap
text field sesuai yang
diharapkan
Diterima
Klik “Edit” Data diperbaharui Tombol “Edit” dapat
berfungsi sesuai
dengan yang
diharapkan
Diterima
Klik “Hapus” Muncul kotak dialog
berupa pertanyaan
Tombol “Hapus”
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
Klik “Yes” atau
“No”
Data terhapus atau
tidak
Tombol “Yes” atau
“No” berfungsi
Diterima
Kasus dan Hasil Uji (Data Salah)
Mengisi text field
ID atau nama
supplier yang tidak
ada
Tidak menampilkan
data pada tabel
Text field berfungsi
sesuai yang
diharapkan
Diterima
102
4) Pengujian Pengisian Data Barang
Berikut adalah tabel pengujian pengisian data barang :
Tabel III.11 Pengujian Pengisian Data Barang
Kasus dan Hasil Uji (Data Normal)
Data Masukan Yang Diharapkan Pengamatan Kesimpulan
Klik “ ” Menampilkan form
input data barang
Dapat mengisi tiap
text field sesuai yang
diharapkan
Diterima
Mengisi text field dan
combo box
Klik “Simpan”
Data tersinpan di
database
Tombol “Simpan
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
Klik “Batal” Pengisian data
dibatalkan
Tombol “Batal”
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
Klik “ ” Me-refresh data
pada tabel data
barang
Tombol “ ” dapat
berfungsi sesuai
dengan yang
diharapkan
Diterima
103
Klik dua kali pada
tabel yang datanya
ingin diedit
Menampilkan form
Edit data barang
Dapat mengedit tiap
text field sesuai yang
diharapkan
Diterima
Klik “Edit” Data diperbaharui Tombol “Edit” dapat
berfungsi sesuai
dengan yang
diharapkan
Diterima
Klik “Hapus” Muncul kotak
dialog berupa
pertanyaan
Tombol “Hapus”
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
Klik “Yes” atau “No” Data terhapus atau
tidak
Tombol “Yes” atau
“No” berfungsi
Diterima
Kasus dan Hasil Uji (Data Salah)
Mengisi text field
kode barang atau
nama barang yang
tidak ada
Tidak
menampilkan data
pada tabel
Text field berfungsi
sesuai yang
diharapkan
Diterima
5) Pengujian Pengisian Data Purchase Order
Berikut adalah tabel pengujian pengisian data purchase order :
Tabel III.12 Pengujian Pengisian Data Purchase Order
104
Kasus dan Hasil Uji (Data Normal)
Data Masukan Yang Diharapkan Pengamatan Kesimpulan
Klik “ ” Menampilkan form data
supplier
Dapat memilih data
supplier yang
diinginkan untuk di
tampilkan di form
Input purchase order
Diterima
Klik “C” Menampilkan form data
barang
Dapat memilih data
barang yang
diinginkan untuk di
tampilkan di form
Input purchase order
Diterima
Klik “ ” Menampilkan data yang
diinput pada tabel tapi
tidak tersimpan dalam
database
Dapat mengisi data
pada tabel sesuai
yang diharapkan
Diterima
Klik “Simpan” Data tersinpan di
database dan muncul
pesan bahwa “Data
berhasil di simpan” dan
“Apakah Anda Ingin
Cetak PO ?
Tombol “Simpan
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
105
Klik “Yes” atau
“No”
Data tercetak atau tidak Tombol “Yes” atau
“No” berfungsi
Diterima
Klik “Batal” Pengisian data dibatalkan Tombol “Batal”
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
Klik “Cetak” Muncul pesan bahwa
“Data berhasil di
simpan” dan data dicetak
dalam bentuk pdf
Tombol “Cetak”
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
Kasus dan Hasil Uji (Data Salah)
Pencarian data
supplier yang
tidak ada
Tidak menampilkan data
pada tabel data supplier
Pengguna tidak dapat
membuat po pada
form Input purchase
order
Diterima
6) Pengujian Pengisian Data Bukti Penerimaan Barang
Berikut adalah tabel pengujian pengisian data bukti penerimaan barang :
Tabel III.13 Pengujian Pengisian Data Bukti Penerimaan Barang
Kasus dan Hasil Uji (Data Normal)
Data Masukan Yang Diharapkan Pengamatan Kesimpulan
106
Klik “ ” Menampilkan form
data purchase order
Dapat memilih data
purchase order yang
diinginkan untuk di
tampilkan di form
bukti penerimaan
barang
Diterima
Klik “Simpan” Data tersinpan di
database dan muncul
pesan bahwa “Data
berhasil di simpan”
dan “Apakah Anda
Ingin Cetak BPB ?
Tombol “Simpan
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
Klik “Yes” atau
“No”
Data tercetak atau
tidak
Tombol “Yes” atau
“No” berfungsi
Diterima
Klik “Batal” Pengisian data
dibatalkan
Tombol “Batal”
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
Klik “Cetak” Muncul pesan bahwa
“Data berhasil di
simpan” dan data
Tombol “Cetak”
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
107
dicetak dalam bentuk
Kasus dan Hasil Uji (Data Salah)
Pencarian data
purchase order
yang tidak ada
Tidak menampilkan
data pada tabel data
purchase order barang
Pengguna tidak dapat
masuk form bukti
penerimaan barang
Diterima
7) Pengujian Pengisian Data Retur Barang
Berikut adalah tabel pengujian pengisian data retur barang :
Tabel III.14 Pengujian Pengisian Data Retur Barang
Kasus dan Hasil Uji (Data Normal)
Data Masukan Yang Diharapkan Pengamatan Kesimpulan
Klik “ ” Menampilkan form
data bukti penerimaan
barang
Dapat memilih data
penerimaan barang
yang diinginkan
untuk di tampilkan di
form retur barang
Diterima
Klik “Simpan” Data tersimpan di
database dan muncul
pesan bahwa “Data
berhasil di simpan”
dan “Apakah Anda
Tombol “Simpan
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
108
Ingin Cetak Bukti
Retur ?
Klik “Yes” atau
“No”
Data tercetak atau
tidak
Tombol “Yes” atau
“No” berfungsi
Diterima
Klik “Batal” Pengisian data
dibatalkan
Tombol “Batal”
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
Klik “Cetak” Muncul pesan bahwa
“Data berhasil di
simpan” dan data
dicetak dalam bentuk
Tombol “Cetak”
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
Kasus dan Hasil Uji (Data Salah)
Pencarian data
bukti penerimaan
barang yang tidak
ada
Tidak menampilkan
data pada tabel data
bukti penerimaan
barang
Pengguna tidak dapat
masuk form retur
barang
Diterima
8) Pengujian Pengisian Data Rekening Perkiraan
Berikut adalah tabel pengujian pengisian data rekening perkiraan :
Tabel III.15 Pengujian Pengisian Data Rekening Perkiraan
109
Kasus dan Hasil Uji (Data Normal)
Data Masukan Yang Diharapkan Pengamatan Kesimpulan
Klik “ ” Menampilkan form
tambah akun baru
Dapat mengisi tiap text
field sesuai yang
diharapkan
Diterima
Mengisi text field
dan combo box
Klik “Simpan”
Data tersimpan di
database
Tombol “Simpan dapat
berfungsi sesuai dengan
yang diharapkan
Diterima
Klik “Batal” Pengisian data
dibatalkan
Tombol “Batal” dapat
berfungsi sesuai dengan
yang diharapkan
Diterima
Klik “ ” Me-refresh data
pada tabel daftar
akun
Tombol “ ” dapat
berfungsi sesuai dengan
yang diharapkan
Diterima
Klik dua kali pada
tabel yang datanya
ingin diedit
Menampilkan form
Edit Akun
Dapat mengedit text
field nama akun sesuai
yang diharapkan
Diterima
Klik “Edit” Data diperbaharui Tombol “Edit” dapat
berfungsi sesuai dengan
yang diharapkan
Diterima
110
Klik “Hapus” Muncul kotak
dialog berupa
pertanyaan
Tombol “Hapus” dapat
berfungsi sesuai dengan
yang diharapkan
Diterima
Klik “Yes” atau
“No”
Data terhapus atau
tidak
Tombol “Yes” atau
“No” berfungsi
Diterima
Kasus dan Hasil Uji (Data Salah)
Mengisi text field
kode akun atau
nama akun yang
tidak ada
Tidak
menampilkan data
pada tabel
Text field berfungsi
sesuai yang diharapkan
Diterima
9) Pengujian Pengisian Transaksi Jurnal Umum
Berikut adalah tabel pengujian pengisian transaksi jurnal umum :
Tabel III.16 Pengujian Pengisian Transaksi Jurnal Umum
Kasus dan Hasil Uji (Data Normal)
Data Masukan Yang Diharapkan Pengamatan Kesimpulan
Klik “ ” Menampilkan form
daftar akun
Dapat memilih data
akun yang diinginkan
untuk di tampilkan di
form jurnal umum
Diterima
Klik “Simpan” Data tersimpan di
database dan muncul
Tombol “Simpan
dapat berfungsi
Diterima
111
pesan bahwa “Data
berhasil di simpan”
sesuai dengan yang
diharapkan
Klik “Batal” Pengisian data
dibatalkan
Tombol “Batal”
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
Kasus dan Hasil Uji (Data Salah)
Pencarian akun
yang tidak ada
Tidak menampilkan
data pada tabel daftar
akun
Pengguna tidak dapat
masuk form jurnal
umum
Diterima
c. Pengujian pencetakan laporan data terbagi menjadi 3 bagian, yaitu :
1) Pengujian Pencetakan Laporan Data Supplier
Berikut adalah tabel pengujian pencetakan laporan data supplier :
Tabel III.17 Pengujian Pencetakan Laporan Data Supplier
Kasus dan Hasil Uji (Data Normal)
Data Masukan Yang
Diharapkan
Pengamatan Kesimpulan
Klik “Cetak” Data dicetak Tombol “Cetak” dapat
berfungsi sesuai dengan
yang diharapkan
Diterima
112
Klik “Batal” Keluar dari form
laporan data
supplier
Tombol “Batal” dapat
berfungsi sesuai dengan
yang diharapkan
Diterima
Kasus dan Hasil Uji (Data Salah)
Data supplier tidak
ada
Klik “ Cetak”
Data kosong
saat dicetak
Cetak data kosong Diterima
2) Pengujian Pencetakan Laporan Stok Barang
Berikut adalah tabel pengujian pencetakan laporan stok barang :
Tabel III.18 Pengujian Pencetakan Laporan Stok Barang
Kasus dan Hasil Uji (Data Normal)
Data Masukan Yang Diharapkan Pengamatan Kesimpulan
Mengisi combo box
kategori
Klik “Cetak”
Data dicetak Tombol “Cetak”
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
Klik “Batal” Pencetakan data
dibatalkan dan
muncul pesan bahwa
“Apakah Anda Ingin
Tombol “Batal”
dapat berfungsi
sesuai dengan yang
diharapkan
Diterima
113
Tutup Form Laporan
Stok Barang ?
Klik “Yes” atau “No” Keluar dari form
atau tidak
Tombol “Yes” atau
“No” berfungsi
Diterima
Kasus dan Hasil Uji (Data Salah)
Stok barang tidak ada
Klik “ Cetak”
Data kosong saat
dicetak
Cetak data kosong Diterima
3) Pengujian Pencetakan Laporan Jurnal Umum
Berikut adalah tabel pengujian pencetakan laporan jurnal umum :
Tabel III.19 Pengujian Pencetakan Laporan Jurnal Umum
Kasus dan Hasil Uji (Data Normal)
Data Masukan Yang Diharapkan Pengamatan Kesimpulan
Mengisi date chooser
tanggal awal dan akhir
Klik “Cetak”
Data dicetak Tombol “Cetak” dapat
berfungsi sesuai
dengan yang
diharapkan
Diterima
Klik “Batal” Pencetakan data
dibatalkan dan
muncul pesan
bahwa “Apakah
Anda Ingin Tutup
Tombol “Batal” dapat
berfungsi sesuai
dengan yang
diharapkan
Diterima
114
Form Laporan
Jurnal Umum ?
Klik “Yes” atau “No” Keluar dari form
atau tidak
Tombol “Yes” atau
“No” berfungsi
Diterima
Kasus dan Hasil Uji (Data Salah)
Jurnal umum tidak ada
Klik “ Cetak”
Data kosong saat
dicetak
Cetak data kosong Diterima
c. Kesimpulan Hasil Pengujian
Berdasarkan hasil pengujian dengan kasus dan hasil uji, maka dapat diambil
kesimpulan bahwa proses pengisian data pada setiap form dapat dilakukan dengan
sukses serta secara fungsional sistem dapat menghasilkan output yang diharapkan.
Recommended