30
BAB III
PEMBAHASAN
3.1 Tinjauan Perusahaan
3.1.1. Sejarah Perusahaan
CV. Lion Motopart Bekasi merupakan salah satu perusahaan yang bergerak
dibidang distributor produk-produk sparepart dan oli motor seperti Halogen, Aki,
Sekring, Lampu Kecil dan produk-produk lainnya. Perusahaan ini diresmikan pada
tanggal 26 agustus 2015, pendiri perusahaan ini adalah Bapak. Aan Pramudianto
dan sekaligus sebagai pemimpin perusahaan, yang beralamat di Perum Duta
Harapan, Jl. Duta Graha X Blok E7 No.45 Bekasi Utara.
Berdirinya CV. Lion Motopart berdasarkan Surat Izin Usaha Perorangan
(SIUP) No : 510 / VIII / PK / 1836 / 2017, yang ditetapkan di Bekasi Utara.
Cakupan perusahaan CV. Lion Motopart meliputi bengkel- bengkel dan toko-
toko yang menjual sparepart motor. CV. Lion Motopart termasuk pada jenis
perusahaan dagang, yaitu perusahaan yang kegiatannya hanya membeli barang
supplier dan menjual barang kepada konsumen tanpa memproduksi ulang barang
tersebut.
CV. Lion Motopart berpusat di Perum Duta Harapan, Jl. Duta Graha X Blok
E7 No.45 Bekasi Utara ini memiliki beberapa cabang antara lain Bogor, Tegal, dan
Cikampek. CV. Lion Motopart telah memiliki lebih dari 300 konsumen di setiap
cabang nya.
31
3.1.2. Struktur Organisasi Dan Fungsinya
Struktur organisasi adalah susunan sub-sub sistem dengan hubungan
wewenang dan tanggung jawab. Dalam organisasi terdapat struktur yang
menerapkan bagaimana tugas akan dibagi.
Sumber : CV. Lion Motopart Bekasi
Gambar III. 1.
Struktur Organisasi CV. Lion Motopart Bekasi.
Adapun Fungsi dari tiap-tiap bagian pada struktur organisasi CV. Lion Motopart
adalah sebagai berikut:
1. Management
Sebagai pemimpin sekaligus pemilik CV. Lion Motopart Bekasi.
2. Finance Head
Merencanakan, mengembangkan dan mengontrol fungsi keuangan akuntansi
di perusahaan.
32
3. Sales Supervisor
Bertugas Mengkoordinir tim penjualan agar dapat meningkatkan tingkat
penjualan dan apakah penjualan sesuai dengan target.
4. Administration Head
Bertugas dalam mengawasi kinerja staff admin dan mengawasi pengeluaran
maupun pemasukan perusahaan.
5. Finance & Audit Staf
Mengatur serta pelaksana ruang lingkup keuangan perusahaan.
6. Administration Staf
Melaksanakan kegiatan administrasi keuangan perusahaan, dan membantu
administration head dalam merencanakan dan melaksanakan kegiatan sesuai
dengan visi, misi, tujuan dan rencana kerja.
7. Team Leader
Membimbing dan memantau salesman dalam melaksanakan tugasnya.
8. Salesman
Menawarkan barang kepada konsumen.
9. Warehouse
Mengatur penerimaan dan pengiriman barang, serta mengecek stok barang di
gudang.
10. Expedition
Bertugas mengirim barang ke konsumen.
33
3.2 Tinjauan Kasus
3.2.1. Proses Bisnis Sistem Berjalan
Sesuai dengan ruang lingkup dalam penyusunan Tugas Akhir ini, kami akan
menguraikan secara umum prosedur sistem berjalan yang meliputi:
1. Proses Penerimaan PO
Proses penerimaan PO diawali dengan salesman mengisi Form Pay Order
berdasarkan PO dari konsumen. Setelah semua item pada Form Pay Order
terisi maka salesman akan konfirmasi kembali kepada konsumen kesesuaian
Form Pay Order dengan PO yang telah dikirimkan. Setelah itu salesman akan
memberikan Form Pay Order tersebut kebagian admin.
2. Proses Penginputan Data Pesanan
Form pesanan yang telah diterima bagian admin lalu di input menggunakan
Ms. Excel dan dicetak sebagai Faktur Penjualan. Setelah dicetak bagian admin
menyerahkan Faktur Penjualan tersebut kebagian Gudang.
3. Proses Pengecekan Barang
Setelah Faktur Penjualan diterima, lalu bagian gudang mengecek stok barang
dan menyiapkan barang yang dipesan sesuai Faktur Penjualan dan diserahkan
kebagian expedisi untuk dikirim ke konsumen.
4. Proses Pengiriman Barang
Berdasarkan Faktur Penjualan bagian expedisi mengirim barang ke konsumen
dengan melampirkan dokumen berupa Faktur Penjualan 3 rangkap yaitu warna
merah, kuning, dan putih. Warna merah diberikan kepada konsumen, warna
kuning diberikan kebagian gudang, dan warna putih diberikan kepada
salesman untuk penagihan. Jika barang yang dikirim sesuai konsumen
34
menandatangani faktur tersebut, dan jika tidak sesuai konsumen
mengembalikan barang tersebut ke expedisi.
5. Penagihan Piutang
Berdasarkan Faktur Penjualan salesman melakukan penagihan kepada
konsumen. Setelah konsumen melakukan pembayaran maka salesman
mencatat di faktur putih tersebut. Kemudian salesman memberikan faktur putih
tersebut kebagian finance.
6. Pembuatan Laporan Penjualan
Berdasarkan Faktur Penjualan yang sudah ada catatan pembayarannya bagian
finance membuat laporan penjualan dan laporan penerimaan piutang.
35
3.2.2. Activity Diagram
Gambar III. 2.
Activity Diagram Proses Bisnis Sistem Berjalan
act Activ ity Diagram
PimpinanFinanceexpedisiGudangAdminSalesmanKonsumen
Start
Melakukan PemesananMenerima
Pesanan
Memberi
Form Pay
Order
Menerima
Form
Menginput
Data
Menggunakan
Ms.Excel
Cetak Faktur
Memberi
FakturMenerima Faktur
Mengecek
Barang
Menyiapkan
Barang
Memberi Barang
dan FakturMenerima Barang dan faktur
Mengirim Barang dan
FakturMenerima Barang dan Faktur
Mengembalikan
Barang
Menandatangani
FakturMenerima Barang
Mengembalikan Faktur
Kuning dan PutihMenyimpan
Faktur Merah
Menerima Faktur
Kuning dan Putih
End
Faktur
KuningFaktur PutihMenerima Faktur Kuning
Menerima
Faktur Putih
Melakukan
PenagihanMelakukan Pembayaran
Mencatat Di
Faktur Putih
Memberikan
Faktur Putih
Menerima
Faktur Putih
KonfirmasiMenerima Konfirmasi
End
Membuat
Laporan
Penjualan
dan
Penerimaan
Piutang
Memberi
Laporan
Penjualan
dan
Penerimaan
Piutang
Menerima
Laporan
End
End
Sesuai Tidak
Sesuai
36
3.2.3. Dokumen Masukan
Spesifikasi sistem berjalan yaitu serangkaian dari bentuk dokumen untuk
mendukung terbentuknya file-file yang dibutuhkan serta informasi yang disajikan,
maka dibutuhkan masukan-masukan untuk sistem.
1. Nama Dokumen : Form Pay Order
Fungsi : Sebagai bukti konsumen memesan barang
Sumber : Konsumen
Tujuan : Salesman
Media : Kertas
Jumlah : 1 Lembar
Frekuensi : Setiap konsumen memesan barang
Format : Lampiran A.1
3.2.4. Dokumen Keluaran
1. Nama Dokumen : Faktur Penjualan
Fungsi : Sebagai bukti konsumen memesan barang
Sumber : Admin
Tujuan : Konsumen
Media : Kertas
Jumlah : 1 Lembar
Frekuensi : Setiap ingin melakukan transaksi penjualan
Format : Lampiran B.1
2. Nama Dokumen : Laporan Penjualan
Fungsi : Untuk Mengetahui Penjualan selama 1 bulan
Sumber : Admin
37
Tujuan : Pimpinan
Media : Kertas
Jumlah : 1 Lembar
Frekuensi : Setiap akhir bulan
Format : Lampiran B.2
3.2.5. Permasalahan Pokok
Sistem penjualan yang telah berjalan di CV. Lion Motopart umumnya telah
berjalan dengan baik. Dalam proses pemesanan, proses penginputan data pesanan,
proses pengecekan barang, sampai proses pengiriman, tetapi penulis melihat
masih ada kekurangan dalam penanganannya. Adapun permasalahan pokok yang
menjadi fokus penulis adalah :
1. Proses penginputan data masih secara konvensional yaitu menggunakan Ms.
Excel sehingga informasi yang disajikan kurang cepat dan akurat karena
terkadang ada kesalahan formula pada laporan tersebut.
2. Pembuatan laporan lambat, karena dibutuhkan waktu untuk untuk
mengumpulkan arsip penjualan yang diperlukan serta sering terjadi kesalahan
perhitungan karena kurangnya ketelitian.
3.2.6. Pemecahan Masalah
Solusi atau alternatif pemecahan masalah yang penulis rancang mengenai
proses penjualan pada CV. Lion Motopart adalah :
1. Dibuatkan sistem yang lebih sederhana tapi terkomputerisasi sehingga data dan
laporan yang disajikan lebih cepat dan akurat.
2. Dengan sistem penggunaan kertas dalam media kerja bisa dikurangi dan untuk
menyimpan data berupa file di komputer.
38
3.3 Analisa Kebutuhan Software
3.3.1. Tahapan Analisis
Berdasarkan proses penjualan secara kredit sistem berjalan pada CV. Lion
Motopart Bekasi, maka tahapan berikutnya adalah analisis kebutuhan. Berikut ini
spesifikasi kebutuhan (System Requirement) dari sistem penjualan secara kredit
pada CV. Lion Motopart Bekasi.
Halaman Administrator
A.1 Administrator Login
A.2 Administrator Mengakses Menu Utama
A.2.1 Administrator Mengakses Menu Master Data
A.2.2 Administrator Mengakses Menu Transaksi
A.2.3 Administrator Mengakses Menu Laporan
A.2.1 Administrator Mengakses Menu Master Data
A.2.1.1 Administrator Mengolah Data User
A.2.1.2 Administrator Mengolah Data Akun
A.2.1.3 Administrator Mengolah Data Konsumen
A.2.1.4 Administrator Mengolah Data Barang
A.2.2 Administrator Mengakses Menu Transaksi
A.2.2.1 Administrator Mengolah Transaksi Penerimaan PO
A.2.2.2 Administrator Mengolah Transaksi Pengiriman Barang
A.2.2.3 Administrator Mengolah Transaksi Penagihan
A.2.2.4 Administrator Mengolah Transaksi Pembayaran Piutang
A.2.2.5 Administrator Mengolah Jurnal Pembayaran Piutang
A.2.3 Administrator Mengakses Menu Laporan
39
A.2.3.1 Administrator Mengolah Laporan Penjualan
A.2.3.3 Administrator Mengolah Laporan Penerimaan Piutang
Halaman Admin
B.1 Admin Login
B.2 Admin Mengakses Menu Utama
B.2.1 Admin Mengakses Menu Master Data
B.2.2 Admin Mengakses Menu Transaksi
B.2.3 Admin Mengakses Menu Laporan
B.2.1 Admin Mengakses Menu Master Data
B.2.1.1 Admin Mengolah Data Akun
B.2.1.2 Admin Mengolah Data Konsumen
B.2.1.3 Admin Mengolah Data Barang
B.2.2 Admin Mengakses Menu Transaksi
B.2.2.1 Admin Mengolah Transaksi Penerimaan PO
B.2.3 Admin Mengakses Menu Laporan
B.2.3.1 Admin Mengolah Laporan Penjualan
Halaman Bagian Gudang
C.1 Bagian Gudang Login
C.2 Bagian Gudang Mengakses Menu Utama
C.2.1 Bagian Gudang Mengakses Menu Transaksi
C.2.1 Bagian Gudang Mengakses Menu Transaksi
C.2.1.1 Bagian Gudang Mengolah Transaksi Pengiriman Barang
40
Halaman Bagian Finance
D.1 Bagian Finance Login
D.2 Bagian Finance Mengakses Menu Utama
D.2.1 Bagian Finance Mengakses Menu Transaksi
D.2.2 Bagian Finance Mengakses Menu Laporan
D.2.1 Bagian Finance Mengakses Menu Transaksi
D.2.1.1 Bagian Finance Mengolah Transaksi Penagihan
D.2.1.2 Bagian Finance Mengolah Transaksi Pembayaran Piutang
D.2.1.3 Bagian Finance Mengolah Jurnal Pembayaran Piutang
D.2.2 Bagian Finance Mengakses Menu Laporan
D.2.2.1 Bagian Finance Mengolah Laporan Penerimaan Piutang
3.3.2. Use Case Diagram
Use Case Diagram Halaman Administrator
Gambar III. 3.
Use Case Diagram Halaman Administrator Login
uc Use Case Login
Administrator
Mengakses Menu
Utama
Melakukan Login
Input User Name
Input Password
«include»
«include»
«include»
41
Tabel III. 1
Deskripsi Use Case Diagram Halaman Administrator Login
Use Case Narrative Login
Tujuan Administrator dapat melihat data yang ada di dalam
sistem halaman administrator.
Deskripsi Sistem ini memungkinkan aktor untuk mengakses
halaman administrator.
Skenario Utama
Aktor Administrator
Kondisi Awal Aktor Membuka Sistem Halaman Administrator
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
tombol Masuk
2. Aktor Memilih
Tombol Batal
Sistem akan menampilkan textbox untuk mengisi user
name dan password
Sistem akan membatalkan proses dan keluar dari
aktivitas
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan
apa yang diinginkan.
Gambar III. 4.
Use Case Diagram Halaman Administrator Menu Utama
Tabel III. 2
Deskripsi Use Case Diagram Halaman Administrator Menu Utama
Use Case Narrative Menu Utama
Tujuan Administrator dapat mengakses menu utama yaitu
menu master data, menu transaksi, dan menu laporan.
Deskripsi Sistem ini memungkinkan aktor untuk mengakses menu
utama mulai dari input data sampai pembuatan laporan
uc Use Case Menu Utama
Administrator
Mengakses Menu
UtamaMengakses Menu
Master Data
Mengakses Menu
Transaksi
Mengakses Menu
Laporan
«extend»
«extend»
«extend»
42
Skenario Utama
Aktor Administrator
Kondisi Awal Aktor Membuka Sistem Halaman Administrator dan
Masuk Kemenu Utama
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
Menu Master Data
2. Aktor Memilih
Menu Transaksi
3. Aktor Memilih
Menu Laporan
Sistem akan menampilkan submenu master data seperti
data user, data akun, data barang, dan data konsumen
Sistem akan menampilkan submenu transaksi yaitu
transaksi penerimaan PO, transaksi pengiriman barang,
transaksi penagihan, transaksi pembayaran, dan
mengolah jurnal pembayaran
Sistem akan menampilkan submenu laporan yaitu
laporan penjualan, dan laporan penerimaan piutang.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang diinginkan.
Gambar III. 5.
Use Case Diagram Halaman Administrator Menu Master Data
uc Use Case Master Data
Administrator
Mengakses Master
Data
Mengolah Data User
Mengolah Data
Akun
Mengolah Data
Konsumen
Mengolah Data
Barang
Tambah User
Edit User
Hapus User
Tambah Akun
Edit Akun
Hapus Akun
Tambah
Konsumen
Edit KonsumenHapus
KonsumenTambah BarangEdit Barang
Hapus Barang
«include»
«include»«include»
«include»
«extend»
«include»
«include»
«extend»
«include»
«include»
«include»
«extend»
«include»
«extend»
«include»
«include»
43
Tabel III. 3
Deskripsi Use Case Diagram Halaman Administrator Menu Master Data
Use Case Narrative Menu Master Data
Tujuan Administrator dapat melakukan pengolahan data yang
ada di menu master data yaitu data user, data akun, data
konsumen, dan data barang.
Deskripsi Sistem ini memungkinkan aktor untuk mengakses menu
master data
Skenario Utama
Aktor Administrator
Kondisi Awal Aktor Membuka Halaman Administrator, Masuk
Kemenu Utama, dan Memilih Menu Master Data
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
Data User
2. Aktor Memilih
Data Akun
3. Aktor Memilih
Data Konsumen
4. Aktor Memilih
Data Barang
Sistem akan menampilkan informasi data user
Sistem akan menampilkan informasi data akun
Sistem akan menampilkan informasi data konsumen
Sistem akan menampilkan informasi data barang
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang diinginkan.
44
Gambar III. 6.
Use Case Diagram Halaman Administrator Menu Transaksi
Tabel III. 4
Deskripsi Use Case Diagram Halaman Administrator Menu Transaksi
Use Case Narrative Menu Transaksi
Tujuan Administrator dapat melakukan pengolahan data yang
ada di menu transaksi yaitu transaksi penerimaan PO,
transaksi pengiriman barang, transaksi penagihan,
transaksi pembayaran piutang, dan jurnal pembayaran
piutang.
Deskripsi Sistem ini memungkinkan aktor untuk mengakses menu
transaksi
Skenario Utama
Aktor Administrator
uc Use Case Transaksi
Administrator
Mengakses Menu
Transaksi
Mengolah Transaksi
Penerimaan PO
Mengolah Transaksi
Pengiriman Barang
Mengolah Transaksi
Pembayaran Piutang
Tambah
Edit
Tambah
Edit
Tambah
Edit
Mengolah Jurnal
Pembayaran Piutang
TambahEdit
Hapus
Hapus
Hapus
Hapus
Mengolah
Transaksi
Penagihan
Tambah
HapusEdit
«include» «include»
«extend»
«extend»
«extend»
«include»«include»
«include»
«include»
«include»
«include»
«include»
«include»«include»
«include»
«include»
«include»
«extend»
«include»
45
Kondisi Awal Aktor Membuka Halaman Administrator, Masuk
Kemenu Utama, dan Memilih Menu Transaksi
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
Transaksi
Penerimaan PO
2. Aktor Memilih
Transaksi
Pengiriman
Barang
3. Aktor Memilih
Transaksi
Penagihan
4. Aktor Memilih
Transaksi
Pembayaran
Piutang
5. Aktor Memilih
Jurnal Pembayaran
Piutang
Sistem akan menampilkan informasi penerimaan PO
Sistem akan menampilkan informasi pengiriman barang
Sistem akan menampilkan informasi penagihan
Sistem akan menampilkan informasi pembayaran
piutang
Sistem akan menampilkan informasi jurnal pembayaran
piutang
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang diinginkan.
Gambar III. 7.
Use Case Diagram Halaman Administrator Menu Laporan
uc Use Case Menu Laporan
Administrator
Mengakses Menu
Laporan
Mengolah Laporan
Penjualan
Mengolah Laporan
Penerimaan Piutang
Lihat
Cetak
Lihat
Cetak
«include»
«include»
«include»
«include»«extend»
«extend»
46
Tabel III. 5
Deskripsi Use Case Diagram Halaman Administrator Menu Laporan
Use Case Narrative Menu Laporan
Tujuan Administrator dapat melakukan pengolahan data yang
ada di menu laporan yaitu laporan penjualan, dan
laporan penerimaan piutang
Deskripsi Sistem ini memungkinkan aktor untuk mengakses menu
laporan
Skenario Utama
Aktor Administrator
Kondisi Awal Aktor Membuka Halaman Administrator, Masuk
Kemenu Utama, dan Memilih Menu Laporan
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
Laporan Penjualan
2. Aktor Memilih
Laporan
Penerimaan
Piutang
Sistem akan menampilkan informasi laporan penjualan
Sistem akan menampilkan informasi laporan
penerimaan piutang
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang diinginkan.
Use Case Diagram Halaman Admin
Gambar III. 8.
Use Case Diagram Halaman Admin Login
uc Use Case Login
Admin
Mengakses Menu
Utama
Melakukan Login
Input User Name
Input Password
«include»
«include»
«include»
47
Tabel III. 6
Deskripsi Use Case Diagram Halaman Admin Login
Use Case Narrative Login
Tujuan Admin dapat melihat data yang ada di dalam sistem
halaman admin.
Deskripsi Sistem ini memungkinkan aktor untuk mengakses
halaman admin.
Skenario Utama
Aktor Admin
Kondisi Awal Aktor Membuka Sistem Halaman Admin
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
tombol Masuk
2. Aktor Memilih
Tombol Batal
Sistem akan menampilkan textbox untuk mengisi user
name dan password
Sistem akan membatalkan proses dan keluar dari
aktivitas
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan
apa yang diinginkan.
Gambar III. 9.
Use Case Diagram Halaman Admin Menu Utama
Tabel III. 7
Deskripsi Use Case Diagram Halaman Admin Menu Utama
Use Case Narrative Menu Utama
Tujuan Admin dapat mengakses menu utama yaitu menu
master data, menu transaksi, dan menu laporan.
Deskripsi Sistem ini memungkinkan aktor untuk mengakses menu
utama mulai dari input data sampai pembuatan laporan
uc Use Case Menu Utama
Admin
Mengakses Menu
Utama Mengakses Menu
Master Data
Mengakses Menu
Transaksi
Mengakses Menu
Laporan
«extend»
«extend»
«extend»
48
Skenario Utama
Aktor Admin
Kondisi Awal Aktor Membuka Sistem Halaman Admin dan Masuk
Kemenu Utama
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
Menu Master Data
2. Aktor Memilih
Menu Transaksi
3. Aktor Memilih
Menu Laporan
Sistem akan menampilkan submenu master data seperti
data akun, data barang, dan data konsumen
Sistem akan menampilkan submenu transaksi yaitu
transaksi penerimaan PO
Sistem akan menampilkan submenu laporan yaitu
laporan penjualan
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang diinginkan.
Gambar III. 10.
Use Case Diagram Halaman Admin Menu Master Data
uc Use Case Master Data
Admin
Mengakses Menu
Master Data
Mengolah Data Akun
Mengolah Data
Konsumen
Mengolah Data
Barang
Tambah Akun
Edit Akun
Hapus Akun
Tambah
Konsumen
Edit Konsumen
Hapus
Konsumen
Tambah Barang
Edit Barang
Hapus Barang
«include»
«include»
«include»
«extend»
«include»
«include»
«include»
«extend»
«include»«extend»
«include»
«include»
49
Tabel III. 8
Deskripsi Use Case Diagram Halaman Admin Menu Master Data
Use Case Narrative Menu Master Data
Tujuan Admin dapat melakukan pengolahan data yang ada di
menu master data yaitu data akun, data konsumen, dan
data barang.
Deskripsi Sistem ini memungkinkan aktor untuk mengakses menu
master data
Skenario Utama
Aktor Admin
Kondisi Awal Aktor Membuka Halaman Admin, Masuk Kemenu
Utama, dan Memilih Menu Master Data
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
Data Akun
2. Aktor Memilih
Data Konsumen
3. Aktor Memilih
Data Barang
Sistem akan menampilkan informasi data akun
Sistem akan menampilkan informasi data konsumen
Sistem akan menampilkan informasi data barang
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang diinginkan.
Gambar III. 11.
Use Case Diagram Halaman Admin Menu Transaksi
uc Use Case Transaksi
Admin
Mengakses Menu
Transaksi
Mengolah Transaksi
Penerimaan PO
Tambah
Edit
Hapus«extend»
«include»
«include»
«include»
50
Tabel III. 9
Deskripsi Use Case Diagram Halaman Admin Menu Transaksi
Use Case Narrative Menu Transaksi
Tujuan Admin dapat melakukan pengolahan data yang ada di
menu transaksi yaitu transaksi penerimaan PO
Deskripsi Sistem ini memungkinkan aktor untuk mengelakses
menu transaksi
Skenario Utama
Aktor Admin
Kondisi Awal Aktor Membuka Halaman Admin, Masuk Kemenu
Utama, dan Memilih Menu Transaksi
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
Transaksi
Penerimaan PO
Sistem akan menampilkan informasi penerimaan PO
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang diinginkan.
Gambar III. 12.
Use Case Diagram Halaman Admin Menu Laporan
Tabel III. 10
Deskripsi Use case Halaman Admin Menu Laporan
Use Case Narrative Menu Laporan
Tujuan Admin dapat melakukan pengolahan data yang ada di
menu laporan yaitu laporan penjualan
Deskripsi Sistem ini memungkinkan aktor untuk mengakses menu
laporan
uc Use Case Menu Laporan
Admin
Mengakses Menu
Laporan
Mengolah Laporan
Penjualan
Lihat
Cetak«include»
«include»
«extend»
51
Skenario Utama
Aktor Admin
Kondisi Awal Aktor Membuka Halaman Admin, Masuk Kemenu
Utama, dan Memilih Menu Laporan
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
Laporan Penjualan
Sistem akan menampilkan informasi laporan penjualan
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang diinginkan.
Use Case Diagram Halaman Bagian Gudang
Gambar III. 13.
Use Case Diagram Halaman Bagian Gudang Login
Tabel III. 11
Deskripsi Use Case Diagram Halaman Bagian Gudang Login
Use Case Narrative Login
Tujuan Bagian gudang dapat melihat data yang ada di dalam
sistem halaman bagian gudang.
Deskripsi Sistem ini memungkinkan aktor untuk mengakses
halaman bagian gudang.
Skenario Utama
Aktor Bagian Gudang
Kondisi Awal Aktor Membuka Sistem Halaman Bagian Gudang
uc Use Case Login
Bagian Gudang
Mengakses Menu
Utama
Melakukan Login
Input User Name
Input Password
«include»
«include»
«include»
52
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
tombol Masuk
2. Aktor Memilih
Tombol Batal
Sistem akan menampilkan textbox untuk mengisi user
name dan password
Sistem akan membatalkan proses dan keluar dari
aktivitas
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan
apa yang diinginkan.
Gambar III. 14.
Use Case Diagram Halaman Bagian Gudang Menu Utama
Tabel III. 12
Deskripsi Use Case Diagram Halaman Bagian Gudang Menu Utama
Use Case Narrative Menu Utama
Tujuan Bagian gudang dapat mengakses menu utama yaitu
menu transaksi
Deskripsi Sistem ini memungkinkan aktor untuk mengakses menu
utama yaitu menu transaksi
Skenario Utama
Aktor Bagian Gudang
Kondisi Awal Aktor Membuka Sistem Halaman Bagian Gudang dan
Masuk Kemenu Utama
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
Menu Transaksi
Sistem akan menampilkan submenu transaksi yaitu
transaksi pengiriman barang
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang diinginkan.
uc Use Case Menu Utama
Bagian Gudang
Mengakses Menu
Utama
Mengakses Menu
Transaksi
«extend»
53
Gambar III. 15.
Use Case Diagram Halaman Bagian Gudang Menu Transaksi
Tabel III. 13
Deskripsi Use Case Diagram Halaman Bagian Gudang Menu Transaksi
Use Case Narrative Menu Transaksi
Tujuan Bagian gudang dapat melakukan pengolahan data yang
ada di menu transaksi yaitu pengiriman barang
Deskripsi Sistem ini memungkinkan aktor untuk mengakses menu
transaksi
Skenario Utama
Aktor Bagian Gudang
Kondisi Awal Aktor Membuka Halaman Bagian Gudang, Masuk
Kemenu Utama, dan Memilih Menu Transaksi
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
Menu Transaksi
pengiriman barang
Sistem akan menampilkan informasi pengiriman barang
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang diinginkan.
uc Use Case Transaksi
Bagian Gudang
Mengakses Menu
Transaksi
Mengolah Transaksi
Pengiriman Barang
Tambah
Hapus
Edit«include»
«include»
«include»
«extend»
54
Use Case Diagram Halaman Bagian Finance
Gambar III. 16.
Use Case Diagram Halaman Bagian Finance Login
Tabel III. 14
Deskripsi Use Case Diagram Halaman Bagian Finance Login
Use Case Narrative Login
Tujuan Bagian finance dapat melihat data yang ada di dalam
sistem halaman bagian finance.
Deskripsi Sistem ini memungkinkan aktor untuk mengakses
halaman bagian finance.
Skenario Utama
Aktor Bagian Finance
Kondisi Awal Aktor Membuka Sistem Halaman Bagian Finance
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
tombol Masuk
2. Aktor Memilih
Tombol Batal
Sistem akan menampilkan textbox untuk mengisi user
name, dan password
Sistem akan membatalkan proses dan keluar dari
aktivitas
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan
apa yang diinginkan.
uc Use Case Login
Bagian Finance
Mengakses Menu
Utama
Melakukan Login
Input User Name
Input Password
«include»
«include»
«include»
55
Gambar III. 17.
Use Case Diagram Halaman Bagian Finance Menu Utama
Tabel III. 15
Deskripsi Use Case Diagram Halaman Bagian Finance Menu Utama
Use Case Narrative Menu Utama
Tujuan Bagian finance dapat mengakses menu utama yaitu
menu transaksi, dan menu laporan.
Deskripsi Sistem ini memungkinkan aktor untuk mengakses menu
utama mulai dari input data sampai pembuatan laporan
Skenario Utama
Aktor Bagian Finance
Kondisi Awal Aktor Membuka Sistem Halaman Bagian Finance dan
Masuk Kemenu Utama
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
Menu Transaksi
2. Aktor Memilih
Menu Laporan
Sistem akan menampilkan submenu transaksi yaitu
transaksi penagihan, transaksi pembayaran piutang, dan
jurnal pembayaran piutang
Sistem akan menampilkan submenu laporan yaitu
laporan penerimaan piutang
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang diinginkan.
uc Use Case Menu Utama
Bagian Finance
Mengakses Menu
Utama
Mengakses Menu
Transaksi
Mengakses Menu
Laporan
«extend»
«extend»
56
Gambar III. 18.
Use Case Diagram Halaman Bagian Finance Menu Transaksi
Tabel III. 16
Deskripsi Use Case Diagram Halaman Bagian Finance Menu Transaksi
Use Case Narrative Menu Transaksi
Tujuan Bagian finance dapat melakukan pengolahan data yang
ada di menu transaksi yaitu transaksi penagihan,
transaksi pembayaran piutang, dan jurnal pembayaran.
Deskripsi Sistem ini memungkinkan aktor untuk mengakses menu
transaksi
Skenario Utama
Aktor Bagian Finance
Kondisi Awal Aktor Membuka Halaman Bagian Finance, Masuk
Kemenu Utama, dan Memilih Menu Transaksi
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
Transaksi
Penagihan
Sistem akan menampilkan informasi penagihan
uc Use Case Transaksi
Bagian Finance
Mengakses Menu
Transaksi
Mengolah Transaksi
Penagihan
Tambah
Edit
Mengolah Jurnal
Pembayaran Piutang
Tambah
Edit
Hapus
Hapus
Transaksi
Pembayaran PiutangTambah
Hapus
Edit
«include»
«include»
«extend»
«include»
«include»
«extend»
«include»
«include»
«include»
«include»
«include»
«extend»
57
2. Aktor Memilih
Jurnal Pembayaran
Piutang
3. Aktor Memilih
Jurnal pembayaran
Sistem akan menampilkan informasi pembayaran
piutang
Sistem akan menampilkan informasi jurnal pembayaran
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang diinginkan.
Gambar III. 19.
Use Case Diagram Halaman Bagian Finance Menu Laporan
Tabel III. 17
Deskripsi Use Case Diagram Halaman Bagian Finance Menu Laporan
Use Case Narrative Menu Laporan
Tujuan Bagian finance dapat melakukan pengolahan data yang
ada di menu laporan yaitu laporan penerimaan piutang.
Deskripsi Sistem ini memungkinkan aktor untuk mengakses menu
laporan
Skenario Utama
Aktor Bagian Finance
Kondisi Awal Aktor Membuka Halaman Bagian Finance, Masuk
Kemenu Utama, dan Memilih Menu Laporan
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
Laporan
Penerimaan
Piutang
Sistem akan menampilkan informasi laporan
penerimaan piutang
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang diinginkan.
uc Use Case Menu Laporan
Bagian Finance
Mengakses Menu
Laporan
Mengakses Laporan
Penerimaan Piutang
Lihat
Cetak
«extend»
«include»
«include»
58
3.3.3. Activity Diagram
Activity Diagram Halaman Administrator
Gambar III. 20.
Activity Diagram Halaman Administrator Login
Gambar III. 21.
Activity Diagram Halaman Administrator Menu Utama
act Activ ity Login
SistemAdministrator
Start
Melakukan Login
Input
Password
Input User
Name
Cek User Name dan
Password
Masuk
Kedalam
Menu Utama
Stop
Valid
Tidak Valid
Tampil Pesan
"Username atau
Password Salah"
act Activ ity Menu Utama
SistemAdministrator
Start
Mengakses Menu
UtamaMenampilkan Menu
Menu Master
DataMenu
TransaksiMenu
Laporan
Keluar
Sistem
59
Gambar III. 22.
Activity Diagram Halaman Administrator Menu Master Data
act Activ ity Master Data
SistemAdministrator
Start
Klik Menu Master
DataMenampilkan Menu Master Data
Data Akun Data Konsumen Data Barang
Logout
Data User
60
Gambar III.23.
Activity Diagram Halaman Administrator Submenu Data User
act Activ ity Form Data User
Klik Tombol Tambah
Ketik Kode User yang akan diubah
Tampil Pesan "Kode Telah Tersedia"
Mengelola Data User yang akan diubah
Tampil Pesan "Data Berhasil Terupdate"
Tampil Pesan "Data Berhasil Terhapus"
Keluar dari Submenu User
SistemAdministrator
Start
Klik Menu Master Data
Menampilkan Menu Master Data
Submenu Data
UserSubmenu Data
Konsumen
Submenu Data
Barang
Submenu Data
Akun
Klik Submenu User
Menampilkan Form Data User
Kode
User
Nama
LengkapUser Name Password
Klik Tombol Keluar
Tampil Pesan "Data Berhasil Disimpan"
Mengubah Data User
Klik Tombol Edit
Klik Tombol Hapus
Mengelola User
Menampilkan Form Data User
Mengisi Form Data User
Klik Tombol Simpan
Klik Tombol Cari
Hak Akses
Klik Tombol OK
Klik Tombol OK
Menampilkan Form yang akan diubah
Klik Tombol OK
Klik Tombol OK
Menyimpan Data User
Menyimpan Data User yang telah diubah
Menghapus Data User yang dipilih
61
Gambar III.24.
Activity Diagram Halaman Administrator Submenu Data Akun
act Activ ity Form Data Akun
Klik Tombol Tambah
Ketik Kode Akun yang akan diubah
Menampilkan Form Akun yang akan diubah
Mengelola Data Akun yang akan diubah
Menyimpan Data Akun yang telah diubah
Menghapus Data Akun yang dipilih
Keluar dari Submenu Akun
SistemAdministrator
Start
Klik Menu Master Data
Menampilkan Menu Master Data
Submenu Data
Konsumen
Submenu Data
Barang
Submenu Data
Akun
Klik Submenu Data Akun
Menampilkan Form Data Akun
Kode Akun Nama Akun Jenis Akun
Klik Tombol Keluar
Mengisi Form Data Akun
Tampil Pesan "Data Berhasil Disimpan"
Mengubah Data Akun
Klik Tombol Edit
Klik Tombol Hapus
Mengelola Akun
Menampilkan Form Data Akun
Klik Tombol Simpan
Klik Tombol Cari
Klik Tombol OK
Menyimpan Data Akun
Tampil Pesan "Kode Telah Tersedia"
Klik Tombol OK
Tampil Pesan "Data Berhasil Terupdate"
Klik Tombol OK
Tampil Pesan "Data Berhasil Terhapus"
Klik Tombol OK
62
Gambar III.25.
Activity Diagram Halaman Administrator Submenu Konsumen
act Activ ity Form Data Konsumen
Klik Tombol Tambah
Ketik Kode Konsumen yang akan diubah
Menampilkan Form Konsumen yang akan diubah
Mengelola Data Konsumen yang akan diubah
Menyimpan Data Konsumen yang telah diubah
Menghapus Data Konsumen yang dipilih
Keluar dari Submenu Konsumen
SistemAdministrator
Start
Klik Menu Master Data
Menampilkan Menu Master Data
Submenu Data
KonsumenSubmenu Data
Barang
Submenu Data
Akun
Klik Submenu Data
Konsumen
Menampilkan Form Data
Konsumen
Kode
Konsumen
Nama
Konsumen Alamat
Klik Tombol Keluar
Mengisi Form Data Konsumen
Menyimpan Data Konsumen
Mengubah Data Konsumen
Klik Tombol Edit
Klik Tombol Hapus
Mengelola Konsumen
Menampilkan Form Data Konsumen
Klik Tombol Simpan
Klik Tombol Cari
Tampil Pesan "Data Behasil Disimpan"
Klik Tombol OK
Tampil Pesan "Kode Telah Tersedia"
Klik TombolOK
Tampil Pesan "Data Berhasil Terupdate"
Klik Tombol OK
Tampil Pesan "Data Berhasil Terhapus"
Klik Tombol OK
63
Gambar III.26.
Activity Diagram Halaman Administrator Submenu Barang
act Activ ity Form Data Konsumen
Klik Tombol Tambah
Ketik Kode Konsumen yang akan diubah
Menampilkan Form Konsumen yang akan diubah
Mengelola Data Konsumen yang akan diubah
Menyimpan Data Konsumen yang telah diubah
Menghapus Data Konsumen yang dipilih
Keluar dari Submenu Konsumen
SistemAdministrator
Start
Klik Menu Master Data
Menampilkan Menu Master Data
Submenu Data
KonsumenSubmenu Data
Barang
Submenu Data
Akun
Klik Submenu Data
Konsumen
Menampilkan Form Data
Konsumen
Kode
Konsumen
Nama
Konsumen Alamat
Klik Tombol Keluar
Mengisi Form Data Konsumen
Menyimpan Data Konsumen
Mengubah Data Konsumen
Klik Tombol Edit
Klik Tombol Hapus
Mengelola Konsumen
Menampilkan Form Data Konsumen
Klik Tombol Simpan
Klik Tombol Cari
Tampil Pesan "Data Behasil Disimpan"
Klik Tombol OK
Tampil Pesan "Kode Telah Tersedia"
Klik TombolOK
Tampil Pesan "Data Berhasil Terupdate"
Klik Tombol OK
Tampil Pesan "Data Berhasil Terhapus"
Klik Tombol OK
64
Gambar III. 27.
Activity Diagram Halaman Administrator Menu Transaksi
act Activ ity Transaksi
SistemAdministrator
Start
Klik Menu Transaksi Menampilkan Menu Transaksi
Transaksi
Penerimaan
PO
Transaksi
PengirimanJurnal
Pembayaran
Logout
Transaksi
Penagihan
Transaksi
Pembayaran
Piutang
65
Gambar III.28.
Activity Diagram Halaman Administrator Submenu Penerimaan PO
act Activ ity Form Penerimaan PO
SistemAdministrator
Klik Menu Transaksi
Menampilkan Menu Transaksi
Penerimaan
PO
Pengiriman
BarangPembayaran
Piutang
Penagihan
Piutang
Jurnal
Pembayaran
Klik Submenu Penerimaan PO
Menampilkan Form Input Penerimaan PO
No Terima
POTanggal No PO
Kode
Konsumen
Kode
BarangHarga Qty
Total
Harga
Mengelola Penerimaan PO
Mengisi Form Penerimaan PO
Klik Tombol Hitung
Menampilkan List Data Penerimaan PO
Keluar dari Submenu Penerimaan PO
Klik Tombol
Keluar
Nama
Barang
Klik Tombol Pre-Order
Menampilkan Total Harga
Klik Tombol Pesan Barang
Tampil Pesan "Pesanan Berhasil Di input"
Tampil Pesan "Data Berhasil Disimpan"
Klik Tombol OK
Menyimpan Data Penerimaan PO
Ketik No Terima PO yang akan diubah
Ketik Tombol Cari Menampilkan Form Penerimaan PO yang akan diubah
Mengelola Data Penerimaan PO yang akan diubah
Mengubah Data Penerimaan PO
Klik Tombol Hitung
Klik Tombol Ubah Menampilkan Pesan "Data Berhasil Terupdate"
Klik Tombol OK
Menyimpan Data yang telah diubah
Klik Tombol Hapus Tampil Pesan "Data Berhasil Dihapus"
Klik Tombol OK
Menghapus Data yang dipilih
66
Gambar III. 29.
Activity Diagram Halaman Administrator Submenu Pengiriman Barang
act Activ ity Form Pengiriman Barang
SistemAdministrator
Klik Menu Transaksi Menampilkan Menu Transaksi
Penerimaan
PO
Pengiriman
BarangPembayaran
Piutang
Penagihan
Piutang
Jurnal
Pembayaran
Klik Submenu Pengiriman
Barang
Menampilkan Form Input Pengiriman Barang
No Kirim
BarangNo Terima PO Tanggal Kirim
Mengelola Pengiriman Barang
Mengisi Form
Pengiriman
Barang
Klik Tombol Kirim
Menampilkan List Data Pengiriman Barang
Keluar dari Submenu Pengiriman Barang
Klik Tombol
Keluar
Total Harga
Tampil Pesan "Data Berhasil Dikirim"
Klik Tombol OK
67
Gambar III. 30.
Activity Diagram Halaman Administrator Submenu Penagihan
act Activ ity Form Penagihan
SistemAdministrator
Klik Menu Transaksi Menampilkan Menu Transaksi
Penerimaan
PO
Pengiriman
BarangPembayaran
Piutang
Penagihan
Piutang
Jurnal
Pembayaran
Klik Submenu Penagihan
Menampilkan Form Input Penagihan
No Tagih No Kirim
BarangTanggal Tagih
Mengelola Penagihan
Mengisi Form
Penagihan
Klik Tombol
Tagih
Menampilkan List Data Penagihan
Keluar dari Submenu Penagihan
Klik Tombol
Keluar
Jumlah Tagih
Tampil Pesan "Data Berhasil
Disimpan"
Klik Tombol
OK
68
Gambar III. 31.
Activity Diagram Halaman Administrator Submenu Pembayaran Piutang
act Activ ity Form Pembayaran Piutang
SistemAdministrator
Klik Menu Transaksi Menampilkan Menu Transaksi
Penerimaan
PO
Pengiriman
BarangPembayaran
Piutang
Penagihan
Piutang
Jurnal
Pembayaran
Klik Submenu Pembayaran
Piutang
Menampilkan Form Input Pembayaran Piutang
No Bayar No TagihTanggal
Bayar
Jumlah
BayarTotal
Bayar
Sisa
Bayar
Mengelola Pembayaran Piutang
Mengisi Form
Pembayaran
Piutang
Klik Tombol
Hitung
Menampilkan List Data Pembayaran Piutang
Keluar dari Submenu Pembayaran
Piutang
Klik Tombol
Keluar
Menampilkan Sisa Bayar
Klik Tombol Bayar
Tampil Pesan "Data Berhasil
Disimpan"
Klik Tombol OK
69
Gambar III. 32.
Activity Diagram Halaman Administrator Submenu Jurnal Pembayaran
act Activ ity Form Jurnal Pembayaran
SistemAdministrator
Klik Menu Transaksi Menampilkan Menu Transaksi
Penerimaan
PO
Pengiriman
BarangPembayaran
Piutang
Penagihan
Piutang
Jurnal
Pembayaran
Klik Submenu Jurnal
Pembayaran
Menampilkan Form Input Jurnal Pembayaran
No Jurnal No Bayar MemoKode
AkunDebet Kredit
Mengelola Jurnal Pembayaran
Mengisi Form
Jurnal
Pembayaran
Klik Tombol
Simpan
Menampilkan List Data Jurnal Pembayaran
Keluar dari Submenu Jurnal
Pembayaran
Klik Tombol
Keluar
Tampil Pesan "Data Berhasil
Disimpan"
Klik Tombol OK
Klik Tombol
Input
Menampilkan Form
Mengisi Form
Klik Tombol
Simpan
Tampil Pesan "Data Berhasil
Disimpan"
Klik Tombol OK
Menampilkan List Data
70
Gambar III. 33.
Activity Diagram Halaman Administrator Menu Laporan
Gambar III. 34.
Activity Diagram Halaman Administrator Submenu Laporan Penjualan
act Activ ity Laporan
SistemAdministrator
Start
Klik Menu Laporan Menampilkan Menu Laporan
Laporan
Penjualan
Laporan
Penerimaan
Piutang
Logout
act Activ ity Form Laporan Penjualan
SistemAdministrator
Start
Klik Menu Laporan
Menampilkan Menu Laporan
Laporan Penjualan Laporan Penerimaan Piutang
Klik Submenu Laporan Penjualan
Menampilkan Form Laporan Penjualan
Klik Tombol Cetak Laporan Penjualan Menampilkan Laporan Penjualan yang akan dicetak
Klik Gambar Printer
Print Laporan Penjualan
Keluar dari Submenu Laporan Penjualan
71
Gambar III. 35.
Activity Diagram Halaman Administrator Submenu Laporan Penerimaan
Piutang
Activity Diagram Halaman Admin
Gambar III. 36.
Activity Diagram Halaman Admin Login
act Activ ity Form Laporan Penerimaan Piutang
SistemAdministrator
Start
Klik Menu Laporan
Menampilkan Menu Laporan
Laporan Penjualan Laporan Penerimaan Piutang
Klik Submenu Laporan
Penerimaan Piutang
Menampilkan Form Laporan Penerimaan
Piutang
Klik Tombol Cetak Laporan Penerimaan
Piutang
Menampilkan Laporan Penerimaan Piutang yang
akan dicetak
Klik Gambar Printer
Print Laporan
Penerimaan Piutang
Keluar dari Submenu Laporan Penerimaan
Piutang
act Activ ity Login
SistemAdmin
Start
Melakukan Login
Input
Password
Input User
Name
Cek User Name dan
Password
Masuk
Kedalam
Menu Utama
Stop
Valid
Tidak Valid
Tampil Pesan
"Username atau
Password Salah"
72
Gambar III. 37.
Activity Diagram Halaman Admin Menu Utama
Gambar III. 38.
Activity Diagram Halaman Admin Menu Master Data
act Activ ity Menu Utama
SistemAdmin
Start
Mengakses Menu
MasterMenampilkan Menu
Menu MasterMenu
Transaksi
Menu
Laporan
Keluar
Sistem
act Activ ity Master Data
SistemAdmin
Start
Klik Menu Master
DataMenampilkan Menu Master Data
Data AkunData Konsumen Data Barang
Logout
73
Gambar III.39.
Activity Diagram Halaman Admin Submenu Data Akun
act Activ ity Form Data Akun
Klik Tombol Tambah
Ketik Kode Akun yang akan diubah
Menampilkan Form Akun yang akan diubah
Mengelola Data Akun yang akan diubah
Menyimpan Data Akun yang telah diubah
Menghapus Data Akun yang dipilih
Keluar dari Submenu Akun
SistemAdmin
Start
Klik Menu Master Data
Menampilkan Menu Master Data
Submenu Data
Konsumen
Submenu Data
Barang
Submenu Data
Akun
Klik Submenu Data Akun
Menampilkan Form Data Akun
Kode Akun Nama Akun Jenis Akun
Klik Tombol Keluar
Mengisi Form Data Akun
Tampil Pesan "Data Berhasil Disimpan"
Mengubah Data Akun
Klik Tombol Edit
Klik Tombol Hapus
Mengelola Akun
Menampilkan Form Data Akun
Klik Tombol Simpan
Klik Tombol Cari
Klik Tombol OK
Menyimpan Data Akun
Tampil Pesan "Kode Telah Tersedia"
Klik Tombol OK
Tampil Pesan "Data Berhasil Terupdate"
Klik Tombol OK
Tampil Pesan "Data Berhasil Terhapus"
Klik Tombol OK
74
Gambar III.40.
Activity Diagram Halaman Admin Submenu Data Konsumen
act Activ ity Form Data Konsumen
Klik Tombol Tambah
Ketik Kode Konsumen yang akan diubah
Menampilkan Form Konsumen yang akan diubah
Mengelola Data Konsumen yang akan diubah
Menyimpan Data Konsumen yang telah diubah
Menghapus Data Konsumen yang dipilih
Keluar dari Submenu Konsumen
SistemAdmin
Start
Klik Menu Master Data
Menampilkan Menu Master Data
Submenu Data
KonsumenSubmenu Data
Barang
Submenu Data
Akun
Klik Submenu Data
Konsumen
Menampilkan Form Data
Konsumen
Kode
Konsumen
Nama
Konsumen Alamat
Klik Tombol Keluar
Mengisi Form Data Konsumen
Menyimpan Data Konsumen
Mengubah Data Konsumen
Klik Tombol Edit
Klik Tombol Hapus
Mengelola Konsumen
Menampilkan Form Data Konsumen
Klik Tombol Simpan
Klik Tombol Cari
Tampil Pesan "Data Behasil Disimpan"
Klik Tombol OK
Tampil Pesan "Kode Telah Tersedia"
Klik TombolOK
Tampil Pesan "Data Berhasil Terupdate"
Klik Tombol OK
Tampil Pesan "Data Berhasil Terhapus"
Klik Tombol OK
75
Gambar III.41.
Activity Diagram Halaman Admin Submenu Data Barang
act Activ ity Form Data Barang
Klik Tombol Tambah
Ketik Kode Barang yang akan diubah
Menampilkan Form Barang yang akan diubah
Mengelola Data Barang yang akan diubah
Menyimpan Data Barang yang telah diubah
Menghapus Data Barang yang dipilih
Keluar dari Submenu Barang
SistemAdmin
Start
Klik Menu Master Data
Menampilkan Menu Master Data
Submenu Data
KonsumenSubmenu Data
Barang
Submenu Data
Akun
Klik Submenu Data
Barang
Menampilkan Form Data Barang
Kode Barang Nama
BarangUnit Harga
Klik Tombol Keluar
Menyimpan Data Barang
Mengubah Data Barang
Klik Tombol Edit
Klik Tombol Hapus
Mengelola Barang
Menampilkan Form Data Barang
Mengisi Form Data Barang
Klik Tombol Simpan
Klik Tombol Cari
Tampil Pesan "Data Berhasil Disimpan"
Klik Tombol OK
Tampil Pesan "Kode Telah Tersedia"
Klik Tombol OK
Tampil Pesan "Data Berhasil Terupdate"
Klik Tombol OK
Tampil Pesan "Data Berhasil Dihapus"
Klik Tombol OK
76
Gambar III. 42.
Activity Diagram Halaman Admin Menu Transaksi
Gambar III.43.
Activity Diagram Halaman Admin Submenu Penerimaan PO
act Activ ity Transaksi
SistemAdmin
Start
Klik Menu Transaksi
Menampilkan Menu Transaksi
Transaksi Penerimaan PO
Logout
act Activ ity Form Penerimaan PO
SistemAdmin
Klik Menu Transaksi
Menampilkan Menu Transaksi
Transaksi Penerimaan PO
Klik Submenu Penerimaan PO
Menampilkan Form Input Penerimaan PO
No Terima
POTanggal No PO
Kode
Konsumen
Kode
BarangHarga Qty
Total
Harga
Mengelola Penerimaan PO
Mengisi Form Penerimaan PO
Klik Tombol Hitung
Menampilkan List Data Penerimaan PO
Keluar dari Submenu Penerimaan PO
Klik Tombol
Keluar
Nama
Barang
Klik Tombol Pre-Order
Menampilkan Total Harga
Klik Tombol Pesan Barang
Tampil Pesan "Pesanan Berhasil Di input"
Tampil Pesan "Data Berhasil Disimpan"
Klik Tombol OK
Menyimpan Data Penerimaan PO
Ketik No Terima PO yang akan diubah
Ketik Tombol Cari Menampilkan Form Penerimaan PO yang akan diubah
Mengelola Data Penerimaan PO yang akan diubah
Mengubah Data Penerimaan PO
Klik Tombol Hitung
Klik Tombol Ubah Menampilkan Pesan "Data Berhasil Terupdate"
Klik Tombol OK
Menyimpan Data yang telah diubah
Klik Tombol Hapus Tampil Pesan "Data Berhasil Dihapus"
Klik Tombol OK
Menghapus Data yang dipilih
77
Gambar III. 44.
Activity Diagram Halaman Admin Menu Laporan
Gambar III. 45.
Activity Diagram Halaman Admin Submenu Laporan Penjualan
act Activ ity Laporan
SistemAdmin
Start
Klik Menu Laporan Menampilkan Menu Laporan
Laporan Penjualan
Logout
act Activ ity Form Laporan Penjualan
SistemAdmin
Start
Klik Menu Laporan
Menampilkan Menu Laporan
Laporan Penjualan
Klik Submenu Laporan Penjualan
Menampilkan Form Laporan Penjualan
Klik Tombol Cetak Laporan Penjualan Menampilkan Laporan Penjualan yang akan dicetak
Klik Gambar Printer
Print Laporan Penjualan
Keluar dari Submenu Laporan Penjualan
78
Activity Diagram Halaman Bagian Gudang
Gambar III. 46.
Activity Diagram Halaman Bagian Gudang Login
Gambar III. 47.
Activity Diagram Halaman Bagian Gudang Menu Utama
act Activ ity Login
SistemBagian Gudang
Start
Melakukan Login
Input
Password
Input User
Name
Cek User Name dan
Password
Masuk
Kedalam
Menu Utama
Stop
Valid
Tidak Valid
Tampil Pesan
"Username atau
Password Salah"
act Activ ity Menu Utama
SistemBagian Gudang
Start
Mengakses Menu
Utama Menampilkan Menu
Keluar
Sistem
Menu Transaksi
79
Gambar III. 48.
Activity Diagram Halaman Bagian Gudang Menu Transaksi
Gambar III. 49.
Activity Diagram Halaman Bagian Gudang Submenu Pengiriman Barang
act Activ ity Transaksi
SistemBagian Gudang
Start
Klik Menu Transaksi Menampilkan Menu Transaksi
Transaksi Pengiriman Barang
Logout
act Activ ity Form Pengiriman Barang
SistemBagian Gudang
Klik Menu Transaksi
Menampilkan Menu Transaksi
Transaksi Pengiriman Barang
Klik Submenu Pengiriman
Barang
Menampilkan Form Input Pengiriman Barang
No Kirim
BarangNo Terima PO Tanggal Kirim
Mengelola Pengiriman Barang
Mengisi Form
Pengiriman
Barang
Klik Tombol Kirim
Menampilkan List Data Pengiriman Barang
Keluar dari Submenu Pengiriman Barang
Klik Tombol
Keluar
Total Harga
Tampil Pesan "Data Berhasil Dikirim"
Klik Tombol OK
80
Activity Diagram Halaman Bagian Finance
Gambar III. 50.
Activity Diagram Halaman Bagian Finance Login
Gambar III. 51.
Activity Diagram Halaman Bagian Finance Menu Utama
act Activ ity Login
SistemBagian Finance
Start
Melakukan Login
Input
Password
Input User
Name
Cek User Name dan
Password
Masuk
Kedalam
Menu Utama
Stop
Valid
Tidak Valid
Tampil Pesan
"Username atau
Password Salah"
act Activ ity Menu Utama
SistemBagian Finance
Start
Mengakses Menu
UtamaMenampilkan Sistem
Menu Transaksi Menu Laporan
Keluar
Sistem
81
Gambar III. 52.
Activity Diagram Halaman Bagian Finance Menu Transaksi
Gambar III. 53.
Activity Diagram Halaman Bagian Finance Submenu Penagihan
act Activ ity Transaksi
SistemBagian Finance
Start
Klik Menu Transaksi Menampilkan Menu Transaksi
Transaksi
PenagihanJurnal Pembayaran
Piutang
Logout
Transaksi
Pembayaran Piutang
act Activ ity Form Penagihan
SistemBagian Finance
Klik Menu Transaksi
Menampilkan Menu Transaksi
Pembayaran
PiutangPenagihan
Piutang
Jurnal
Pembayaran
Klik Submenu Penagihan
Menampilkan Form Input Penagihan
No TagihNo Kirim
BarangTanggal Tagih
Mengelola Penagihan
Mengisi Form
Penagihan
Klik Tombol
Tagih
Menampilkan List Data Penagihan
Keluar dari Submenu Penagihan
Klik Tombol
Keluar
Jumlah Tagih
Tampil Pesan "Data Berhasil
Disimpan"
Klik Tombol
OK
82
Gambar III. 54.
Activity Diagram Halaman Bagian Finance Submenu Pembayaran Piutang
act Activ ity Form Pembayaran Piutang
SistemBagian Finance
Klik Menu Transaksi Menampilkan Menu Transaksi
Pembayaran
PiutangPenagihan
Piutang
Jurnal
Pembayaran
Klik Submenu Pembayaran
Piutang
Menampilkan Form Input Pembayaran Piutang
No Bayar No TagihTanggal
Bayar
Jumlah
BayarTotal
Bayar
Sisa
Bayar
Mengelola Pembayaran Piutang
Mengisi Form
Pembayaran
Piutang
Klik Tombol
Hitung
Menampilkan List Data Pembayaran Piutang
Keluar dari Submenu Pembayaran
Piutang
Klik Tombol
Keluar
Menampilkan Sisa Bayar
Klik Tombol Bayar
Tampil Pesan "Data Berhasil
Disimpan"
Klik Tombol OK
83
Gambar III. 55.
Activity Diagram Halaman Bagian Finance Submenu Jurnal Pembayaran
act Activ ity Form Jurnal Pembayaran
SistemBagian Finance
Klik Menu Transaksi Menampilkan Menu Transaksi
Pembayaran
Piutang
Penagihan
Piutang
Jurnal
Pembayaran
Klik Submenu Jurnal
Pembayaran
Menampilkan Form Input Jurnal Pembayaran
No Jurnal No Bayar MemoKode
AkunDebet Kredit
Mengelola Jurnal Pembayaran
Mengisi Form
Jurnal
Pembayaran
Klik Tombol
Simpan
Menampilkan List Data Jurnal Pembayaran
Keluar dari Submenu Jurnal
Pembayaran
Klik Tombol
Keluar
Tampil Pesan "Data Berhasil
Disimpan"
Klik Tombol OK
Klik Tombol
Input
Menampilkan Form
Mengisi Form
Klik Tombol
Simpan
Tampil Pesan "Data Berhasil
Disimpan"
Klik Tombol OK
Menampilkan List Data
84
Gambar III. 56.
Activity Diagram Halaman Bagian Finance Menu Laporan
Gambar III. 57.
Activity Diagram Halaman Bagian Finance Submenu Laporan Penerimaan
Piutang
act Activ ity Laporan
SistemBagian Finance
Start
Klik Menu Laporan Menampilkan Menu Laporan
Laporan
Penerimaan
Piutang
Logout
act Activ ity Form Laporan Penerimaan Piutang
SistemBagian Finance
Start
Klik Menu Laporan
Menampilkan Menu Laporan
Laporan Penerimaan Piutang
Klik Submenu Laporan
Penerimaan Piutang
Menampilkan Form Laporan Penerimaan
Piutang
Klik Tombol Cetak Laporan Penerimaan
Piutang
Menampilkan Laporan Penerimaan Piutang yang
akan dicetak
Klik Gambar Printer
Print Laporan
Penerimaan Piutang
Keluar dari Submenu Laporan Penerimaan
Piutang
85
3.4 Desain
3.4.1. Entity Relationship Diagram (ERD)
PENGGUNA PENERIMAAN PO
DETAIL PENERIMAAN PO
Milik
Milik
Milik
BARANG
KONSUMEN
Milik
Milik
Milik
Milik
Milik
1
PENAGIHAN
PEMBAYARAN
PENGIRIMAN BARANG
DETAIL JURNALAKUN
JURNAL
Milik
kd_konsumen
no_terima_po
total
no_po
tgl_terima
no_terima_po
hak_akses
nama_lengkap
password
username
kode_user
alamat
nm_konsumen
no_terima_po
tgl_kirim
no_kirim_barang
harga
unitnm_barang
qtykd_barang
kd_konsumen
no_jurnalno_bayar
to_tagih
sisa_bayar
total_bayar
jumlah_bayar
tgl_bayar
jumlah_tagih
tgl_tagihno_kirim_barang
jenis_akunkredit
debetkd_akun
memo
no_bayar
nm_akun
kd_akun
total_harga
total_harga
no_jurnal
kd_barang
1 1 1
1
1
M
1
1
11
1
1 1 1 1
11
1
Gambar III. 58.
Entity Relationship Diagram (ERD)
86
3.4.2. Logical Record Structure (LRS)
PENGGUNA
kode_user (PK)
username
password
hak_akses
nama_lengkap
AKUN
kd_akun (PK)
nm_akun
jenis_akun
KONSUMEN
kd_konsumen (PK)
nm_konsumen
alamat
kd_barang (PK)
nm_barang
unit
harga
JURNAL
no_jurnal (PK)
no_bayar ((FK)
memo
BARANG
no_bayar (PK)
no_tagih (FK)
tgl_bayar
jumlah_bayar
total_bayar
sisa_bayar
PENAGIHAN
no_tagih (PK)
no_kirim_barang (FK)
tgl_tagih
jumlah_tagih
PENGIRIMAN BARANG
no_kirim_barang (PK)
no_terima_po (FK)
tgl_kirim
total_harga
PENERIMAAN PO
no_terima_po (PK)
kd_konsumen (FK)
tgl_terima
no_po
total
DETAIL PENERIMAAN PO
no_terima_po (FK)
kd_barang (FK)
Qty
total_harga
DETAIL JURNAL
no_jurnal (FK)
kd_akun (FK)
debet
kredit
PEMBAYARAN
kd_user (FK)
kd_user (FK)
kd_user (FK)
kd_user (FK)
kd_user (FK)
Gambar III. 59.
Logical Record Structure (LRS)
87
3.4.3. Spesifikasi File
a. Spesifikasi File Data User
Nama Database : data_barang
Nama File : pengguna
Tipe File : Master Data
Akses File : Random
Panjang Record : 155 Karakter
Field Key : kode_user
Tabel III. 18
Spesifikasi File Pengguna
No Elemen Data Akronim Tipe Panjang Keterangan
1 kode user kode_user Varchar 30 Primary Key
2 nama lengkap nama_lengkap Varchar 50
3 Username username Varchar 25
4 Password password Varchar 30
5 hak akses hak_akses Varchar 20
b. Spesifikasi File Data Akun
Nama Database : data_barang
Nama File : akun
Tipe File : Master Data
Akses File : Random
Panjang Record : 110 Karakter
Field Key : kd_akun
Tabel III. 19
Spesifikasi File Data Akun
No Elemen Data Akronim Tipe Panjang Keterangan
1 kode akun kd_akun varchar 30 Primary Key
2 nama akun nm_akun varchar 50
3 jenis akun jenis_akun varchar 30
88
c. Spesifikasi File Data Konsumen
Nama Database : data_barang
Nama File : konsumen
Tipe File : Master Data
Akses File : Random
Panjang Record : 180 Karakter
Field Key : kd_konsumen
Tabel III. 20
Spesifikasi File Data Konsumen
No Elemen Data Akronim Tipe Panjang Keterangan
1 kode konsumen kd_konsumen varchar 30 Primary Key
2 nama konsumen nm_konsumen varchar 50
3 Alamat alamat varchar 100
d. Spesifikasi File Data Barang
Nama Database : data_barang
Nama File : barang
Tipe File : Master Data
Akses File : Random
Panjang Record : 70 Karakter
Field Key : kd_barang
Tabel III. 21
Spesifikasi File Data Barang
No Elemen Data Akronim Tipe Panjang Keterangan
1 kode barang kd_barang varchar 30 Primary Key
2 nama barang nm_barang varchar 30
3 unit unit int 10
4 harga harga double
89
e. Spesifikasi File Transaksi Penerimaan PO
Nama Database : data_barang
Nama File : penerimaan_po
Tipe File : Transaksi
Akses File : Random
Panjang Record : 60
Field Key : no_terima_po
Tabel III. 22
Spesifikasi File Transaksi Penerimaan PO
No Elemen Data Akronim Tipe Panjang Keterangan
1 no terima po no_terima_po varchar 30 Primary Key
2 Kode konsumen kd_konsumen varchar 30
3 tanggal terima tgl_terima date
4 no po no_po varchar 30
5 Total total double
f. Spesifikasi File Transaksi Detail Penerimaan PO
Nama Database : data_barang
Nama File : detail_penerimaan_po
Tipe File : Transaksi
Akses File : Random
Panjang Record : 100
Field Key : no_terima_po, kd_konsumen, kd_barang
Tabel III. 23
Spesifikasi File Transaksi Detail Penerimaan PO
No Elemen Data Akronim Tipe Panjang Keterangan
1 no terima po no_terima_po Varchar 30 Primary Key
2 kode barang kd_barang Varchar 30 Primary Key
3 qty Qty Int 10
4 total harga total_harga Double
90
g. Spesifikasi File Transaksi Pengiriman Barang
Nama Database : data_barang
Nama File : pengiriman
Tipe File : Transaksi
Akses File : Random
Panjang Record : 60
Field Key : no_kirim_po, no_terima_po
Tabel III. 24
Spesifikasi File Transaksi Pengiriman Barang
No Elemen Data Akronim Tipe Panjang Keterangan
1 no kirim barang no_kirim_barang varchar 30 Primary Key
2 no terima po no_terima_po varchar 30 Primary Key
3 tanggal kirim tgl_kirim date
4 total harga total_harga double
h. Spesifikasi File Transaksi Penagihan
Nama Database : data_barang
Nama File : penagihan
Tipe File : Transaksi
Akses File : Random
Panjang Record : 60
Field Key : no_tagih, no_kirim_po
Tabel III. 25
Spesifikasi File Transaksi Penagihan
No Elemen Data Akronim Tipe Panjang Keterangan
1 no tagih no_tagih varchar 30 Primary Key
2 no kirim barang no_kirim_barang varchar 30 Primary Key
3 tanggal tagih tgl_tagih date
4 jumlah tagih jumlah_tagih Double
91
i. Spesifikasi File Transaksi Pembayaran
Nama Database : data_barang
Nama File : pembayaran
Tipe File : Transaksi
Akses File : Random
Panjang Record : 60
Field Key : no_bayar, no_tagih
Tabel III. 26
Spesifikasi File Transaksi Pembayaran
No Elemen Data Akronim Tipe Panjang Keterangan
1 no bayar no_bayar varchar 30 Primary Key
2 no tagih no_tagih varchar 30 Primary Key
3 tanggal bayar tgl_bayar date
4 jumlah tagih jumlah_bayar double
5 total bayar total_bayar double
6 sisa bayar sisa_bayar double
j. Spesifikasi File Jurnal Pembayaran
Nama Database : data_barang
Nama File : jurnal_pembayaran
Tipe File : Jurnal Pembayarn
Akses File : Random
Panjang Record : 110
Field Key : no_jurnal, no_bayar
Tabel III. 27
Spesifikasi File Jurnal Pembayaran
No Elemen Data Akronim Tipe Panjang Keterangan
1 no jurnal no_jurnal varchar 30 Primary Key
2 no_bayar no_bayar varchar 30 Primary Key
3 Memo memo varchar 50
92
k. Spesifikasi File Detail Jurnal Pembayaran
Nama Database : data_barang
Nama File : detail_jurnal_pembayaran
Tipe File : Jurnal
Akses File : Random
Panjang Record : 35
Field Key : no_jurnal, kd_akun
Tabel III. 28
Spesifikasi File Detail Jurnal
No Elemen Data Akronim Tipe Panjang Keterangan
1 no jurnal no_jurnal varchar 30 Primary Key
2 kode akun kd_akun varchar 30 Primary Key
3 Debet debet varchar 30
4 Kredit kredit varchar 30
3.4.4. Sequence Diagram
Gambar III. 60.
Sequence Diagram Data Penjualan Kredit
sd Sd Penjualan Kredit
User Form Login Control Login Menu Utama Penerimaan PO Pengiriman
Barang
Penagihan Pembayaran
Piutang
Jurnal Laporan Penjualan
1. Masukkan Use Name & Pass()
2. User Name & Pass()
Menampilkan Menu Utama()
Input Penerimaan PO()
Input Pengiriman Barang()
Input Penagihan()
Input Pembayaran Piutang()
Input Jurnal ()
Cetak Laporan Penjualan()
93
3.4.5. Deployment Diagram
Gambar III. 61.
Deployment Diagram Sistem Penjualan Kredit
3.4.6. User Interface
Gambar III. 62.
User Interface Form Login
Gambar III. 63.
User Interface Menu Utama
deployment Deployment Diagram
Main
<<Activ eXContro>>
Jav a
<<dev ice>> database
<<DBMS>> MY SQL
<<database>>
data_barang
<<dev ice>>
<<aplication>>
Program
databarang
94
Gambar III. 64.
User Interface Menu Master Data
Gambar III. 65.
User Interface Form Data User
Gambar III. 66.
User Interface Form Data Akun
95
Gambar III. 67.
User Interface Form Data Konsumen
Gambar III. 68.
User Interface Form Data Barang
96
Gambar III. 69.
User Interface Menu Transaksi
Gambar III. 70.
User Interface Form Transaksi Penerimaan PO
Gambar III. 71
User Interface Form Transaksi Pengiriman Barang
97
Gambar III. 72.
User Interface Form Transaksi Penagihan
Gambar III. 73.
User Interface Form Transaksi Pembayaran Piutang
98
Gambar III. 74.
User Interface Form Jurnal Pembayaran Piutang
Gambar III. 75.
User Interface Form Input Jurnal Pembayaran Piutang
Gambar III. 76.
User Interface Menu Laporan
99
Gambar III.77.
User Interface Laporan Penjualan
Gambar III. 78.
User Interface Laporan Penerimaan Piutang
100
3.5 Implementasi
3.5.1. Code Generation
1. Form Penerimaan PO
package databarang;
import java.util.*;
import java.text.*;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
public class menupo extends javax.swing.JFrame {
koneksi con = new koneksi();
public menupo() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
nopo = new javax.swing.JTextField();
kodekonsumen = new javax.swing.JTextField();
kode = new javax.swing.JComboBox<>();
nama = new javax.swing.JTextField();
harga = new javax.swing.JTextField();
qty = new javax.swing.JTextField();
btncek = new javax.swing.JButton();
btnorder = new javax.swing.JButton();
btncari = new javax.swing.JButton();
btnubah = new javax.swing.JButton();
btnhapus = new javax.swing.JButton();
btnreset = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
Table1 = new javax.swing.JTable();
jLabel8 = new javax.swing.JLabel();
caripo = new javax.swing.JTextField();
jLabel9 = new javax.swing.JLabel();
total = new javax.swing.JTextField();
btnhitung = new javax.swing.JButton();
btnpesan = new javax.swing.JButton();
seluruh = new javax.swing.JTextField();
jLabel10 = new javax.swing.JLabel();
101
jLabel11 = new javax.swing.JLabel();
nomor = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE)
;
setTitle("Form Penerimaan PO");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowOpened(java.awt.event.WindowEvent evt) {
formWindowOpened(evt);
}
});
jLabel1.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setText("~ Form Penerimaan PO ~");
jLabel2.setText("No. Terima PO");
jLabel3.setText("Kode Konsumen");
jLabel4.setText("Kode Barang");
jLabel5.setText("Nama Barang");
jLabel6.setText("Harga Rp.");
jLabel7.setText("Quantity");
kode.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "-
-Pilih Kode Barang--" }));
kode.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
kode.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
kodeActionPerformed(evt);
}
});
nama.setEnabled(false);
harga.setEnabled(false);
qty.addInputMethodListener(new java.awt.event.InputMethodListener() {
public void inputMethodTextChanged(java.awt.event.InputMethodEvent
evt) {
qtyInputMethodTextChanged(evt);
}
public void caretPositionChanged(java.awt.event.InputMethodEvent evt) {
}
});
qty.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
qtyActionPerformed(evt);
}
});
102
btncek.setText("Cek");
btncek.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
btncek.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btncekActionPerformed(evt);
}
});
btnorder.setText("Pre-Order");
btnorder.setCursor(new
java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
btnorder.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnorderActionPerformed(evt);
}
});
btncari.setText("Cari");
btncari.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
btncari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btncariActionPerformed(evt);
}
});
btnubah.setText("Ubah");
btnubah.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
btnubah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnubahActionPerformed(evt);
}
});
btnhapus.setText("Hapus");
btnhapus.setCursor(new
java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
btnhapus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnhapusActionPerformed(evt);
}
});
btnreset.setText("Reset");
btnreset.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
btnreset.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnresetActionPerformed(evt);
}
103
});
Table1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
Table1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
Table1MouseClicked(evt);
}
});
jScrollPane1.setViewportView(Table1);
jLabel8.setText("Cari Berdasarkan No Terima PO");
jLabel9.setText("Total Harga Rp.");
total.setEnabled(false);
btnhitung.setText("Hitung");
btnhitung.setCursor(new
java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
btnhitung.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnhitungActionPerformed(evt);
}
});
btnpesan.setText("Pesan Barang");
btnpesan.setCursor(new
java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
btnpesan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnpesanActionPerformed(evt);
}
});
seluruh.setEnabled(false);
jLabel10.setText("Total Keseluruhan");
jLabel11.setText("No. Po");
nomor.addInputMethodListener(new java.awt.event.InputMethodListener() {
public void inputMethodTextChanged(java.awt.event.InputMethodEvent
evt) {
nomorInputMethodTextChanged(evt);
}
104
public void caretPositionChanged(java.awt.event.InputMethodEvent evt) {
}
});
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(55, 55, 55)
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addGap(39, 39, 39)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING)
.addComponent(jLabel3)
.addComponent(jLabel4)
.addComponent(jLabel5)
.addComponent(jLabel6)
.addComponent(jLabel7)
.addComponent(jLabel9)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAI
LING, false)
.addComponent(jLabel11,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel2,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING, false)
.addComponent(nomor)
.addComponent(nama)
.addComponent(kode, 0,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
105
.addComponent(kodekonsumen,
javax.swing.GroupLayout.DEFAULT_SIZE, 128, Short.MAX_VALUE)
.addComponent(nopo)
.addComponent(total)
.addComponent(harga)
.addComponent(qty))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btncek)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING, false)
.addComponent(btnorder,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnreset,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnhapus,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnubah,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnpesan,
javax.swing.GroupLayout.DEFAULT_SIZE, 107, Short.MAX_VALUE)))
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 504,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAI
LING)
.addGroup(layout.createSequentialGroup()
.addComponent(btnhitung)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel10))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel8)
106
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(caripo)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btncari)
.addGap(18, 18, 18)
.addComponent(seluruh,
javax.swing.GroupLayout.PREFERRED_SIZE, 113,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(4, 4, 4)))
.addContainerGap(20, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE,
46, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(25, 25, 25)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BAS
ELINE)
.addComponent(jLabel2)
.addComponent(nopo, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnpesan))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BAS
ELINE)
.addComponent(nomor,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel11)
.addComponent(btnubah))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BAS
ELINE)
.addComponent(kodekonsumen,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3,
107
javax.swing.GroupLayout.PREFERRED_SIZE, 14,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnhapus)
.addComponent(btncek))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BAS
ELINE)
.addComponent(kode, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4)
.addComponent(btnreset))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BAS
ELINE)
.addComponent(jLabel5)
.addComponent(nama, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnorder))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BAS
ELINE)
.addComponent(jLabel6)
.addComponent(harga,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BAS
ELINE)
.addComponent(jLabel7)
.addComponent(qty, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BAS
ELINE)
108
.addComponent(jLabel9)
.addComponent(total, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING)
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel10)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnhitung)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 21,
Short.MAX_VALUE)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BAS
ELINE)
.addComponent(caripo,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btncari)
.addComponent(seluruh,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(6, 6, 6))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)))
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 172,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(27, 27, 27))
);
109
pack();
}// </editor-fold>
private void formWindowOpened(java.awt.event.WindowEvent evt) {
awal();
combobox();
Table1.setModel(gettabel());
Date dNow = new Date( );
SimpleDateFormat ft =
new SimpleDateFormat ("ddhhmmss");
nopo.setText((ft.format(dNow)));
}
private void btnresetActionPerformed(java.awt.event.ActionEvent evt) {
awal();
Date dNow = new Date( );
SimpleDateFormat ft = new SimpleDateFormat ("ddhhmmss");
nopo.setText((ft.format(dNow)));
nomor.setText("");
nama.setText("");
kode.setSelectedItem("--Pilih Kode Barang--");
harga.setText("");
qty.setText("");
total.setText("");
kodekonsumen.setText("");
kodekonsumen.requestFocus();
}
private void btncekActionPerformed(java.awt.event.ActionEvent evt) {
try
{
con.setkoneksi();
con.rs=con.st.executeQuery("select * from konsumen where
kd_konsumen='"+kodekonsumen.getText()+"'");
if(con.rs.next())
{
JOptionPane.showMessageDialog(null,"Kode Konsumen Tersedia");
kode.setEnabled(true);
qty.setEnabled(true);
btnhitung.setEnabled(true);
btnubah.setEnabled(false);
btnhapus.setEnabled(false);
}
else
110
{
JOptionPane.showMessageDialog(null,"Kode Konsumen Tidak
Tersedia");
awal();
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"Koneksi Error");
}
}
private void kodeActionPerformed(java.awt.event.ActionEvent evt) {
tampilcombobox();
}
private void qtyActionPerformed(java.awt.event.ActionEvent evt) {
}
private void qtyInputMethodTextChanged(java.awt.event.InputMethodEvent evt)
{
}
private void btnhitungActionPerformed(java.awt.event.ActionEvent evt) {
int stok = 0;
try
{
con.setkoneksi();
con.rs=con.st.executeQuery("select * from barang where kd_barang
='"+kode.getSelectedItem()+"'");
while(con.rs.next())
{
stok = Integer.parseInt(con.rs.getString(3));
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"<Error> Koneksikan database Terlebih
Dahulu","Koneksi Gagal",JOptionPane.WARNING_MESSAGE);
}
if (Integer.parseInt(qty.getText()) > stok)
{
JOptionPane.showMessageDialog(null,"Pemesanan melebihi stok yang
tersedia. Stok yang tersedia =
"+stok,"Gagal",JOptionPane.WARNING_MESSAGE);
qty.setText("");
111
}
else
{
int hasil = Integer.parseInt(harga.getText()) *
Integer.parseInt(qty.getText());
total.setText(Double.toString(hasil));
btnpesan.setEnabled(true);
}
}
private int cekstok()
{
int stok = 0;
try
{
con.setkoneksi();
con.rs=con.st.executeQuery("select * from barang where kd_barang
='"+kode.getSelectedItem()+"'");
while(con.rs.next())
{
stok = Integer.parseInt(con.rs.getString(3));
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"<Error> Koneksikan database Terlebih
Dahulu : "+e,"Koneksi Gagal",JOptionPane.WARNING_MESSAGE);
}
return stok;
}
public void updatestok(String ubah)
{
int baru = 0;
try
{
if (ubah.equals("kurangi"))
{
baru = cekstok() - Integer.parseInt(qty.getText());
}
else if(ubah.equals("tambah"))
{
baru = cekstok() - Integer.parseInt(qty.getText());
}
String sql="update barang set stok='"+baru+"' where
nm_barang='"+nama.getText()+"'";
112
con.st.executeUpdate(sql);
}
catch (Exception ex)
{
}
}
private void btnorderActionPerformed(java.awt.event.ActionEvent evt) {
Date dNow1 = new Date();
SimpleDateFormat ft1 =
new SimpleDateFormat ("yyyy-MM-dd");
try
{
con.setkoneksi();
String sql="insert into penerimaan_po
values('"+nopo.getText()+"','"+ft1.format(dNow1)+"','"+nomor.getText()+"','"+s
eluruh.getText()+"')";
con.st.executeUpdate(sql);
con.rs.close();
JOptionPane.showMessageDialog(null,"Data Berhasil
Tersimpan","Sukses",JOptionPane.INFORMATION_MESSAGE);
Date dNow = new Date();
SimpleDateFormat ft =
new SimpleDateFormat ("ddhhmmss");
nopo.setText((ft.format(dNow)));
nomor.setText("");
kodekonsumen.setText("");
kode.setSelectedItem("--Pilih Kode Barang--");
nama.setText("");
qty.setText("");
harga.setText("");
total.setText("");
seluruh.setText("");
kodekonsumen.requestFocus();
awal();
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"<Error> tidak bisa disimpan atau
koneksikan database terlebih dahulu : "+e,"Koneksi
Gagal",JOptionPane.WARNING_MESSAGE);
}
}
private void btncariActionPerformed(java.awt.event.ActionEvent evt) {
kode.setEnabled(true);
try
113
{
con.setkoneksi();
con.rs=con.st.executeQuery("select * from detail_penerimaan_po where
no_terima_po='"+caripo.getText()+"'");
if(con.rs.next())
{
seluruh.setText(con.rs.getString(6));
nopo.setText(con.rs.getString(1));
kodekonsumen.setText(con.rs.getString(2));
kode.setSelectedItem(con.rs.getString(3));
nopo.setEnabled(false);
kode.setEnabled(true);
btnorder.setEnabled(false);
btnubah.setEnabled(true);
qty.setEnabled(true);
btnhapus.setEnabled(true);
btnhitung.setEnabled(true);
Table1.setModel(gettabel2());
}
else
{
awal();
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"Kode tidak Tersedia");
}
}
private void btnubahActionPerformed(java.awt.event.ActionEvent evt) {
try
{
con.setkoneksi();
String sql="update detail_penerimaan_po set
kd_konsumen='"+kodekonsumen.getText()+"',
kd_barang='"+kode.getSelectedItem()+"', harga='"+harga.getText()+"',
qty='"+qty.getText()+"', total_harga='"+total.getText()+"' where
no_terima_po='"+nopo.getText()+"'";
con.st.executeUpdate(sql);
con.rs.close();
JOptionPane.showMessageDialog(null,"Data Berhasil
Terupdate","Koneksi Sukses",JOptionPane.INFORMATION_MESSAGE);
Date dNow = new Date( );
SimpleDateFormat ft =
new SimpleDateFormat ("ddhhmmss");
nopo.setText((ft.format(dNow)));
114
nomor.setText("");
kodekonsumen.setText("");
kode.setSelectedItem("--Pilih Kode Barang--");
nama.setText("");
qty.setText("");
harga.setText("");
total.setText("");
kodekonsumen.requestFocus();
awal();
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"<Error> tidak bisa diupdate atau
database belum terkoneksi : "+e,"Koneksi
Gagal",JOptionPane.WARNING_MESSAGE);
}
}
private void btnhapusActionPerformed(java.awt.event.ActionEvent evt) {
int baru = 0;
int stok = 0;
int pesan = 0;
try
{
con.setkoneksi();
con.rs=con.st.executeQuery("select * from barang where kd_barang
='"+kode.getSelectedItem()+"'");
while(con.rs.next())
{
stok = Integer.parseInt(con.rs.getString(3));
}
con.rs=con.st.executeQuery("select * from detail_penerimaan_po where
kd_barang ='"+kode.getSelectedItem()+"'");
while(con.rs.next())
{
pesan = Integer.parseInt(con.rs.getString(5));
}
baru = stok + pesan;
String sql1="update barang set unit='"+baru+"' where
nm_barang='"+nama.getText()+"'";
con.st.executeUpdate(sql1);
con.conn.close();
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"<Error> Koneksikan database
Terlebih Dahulu","Koneksi Gagal",JOptionPane.WARNING_MESSAGE);
}
115
try
{
con.setkoneksi();
String sql="delete from detail_penerimaan_po where
no_terima_po='"+nopo.getText()+"'";
con.st.executeUpdate(sql);
con.rs.close();
JOptionPane.showMessageDialog(null,"Data Berhasil Terhapus","Koneksi
Sukses",JOptionPane.INFORMATION_MESSAGE);
con.conn.close();
Date dNow = new Date( );
SimpleDateFormat ft =
new SimpleDateFormat ("ddhhmmss");
nopo.setText((ft.format(dNow)));
nomor.setText("");
kodekonsumen.setText("");
kode.setSelectedItem("--Pilih Kode Barang--");
nama.setText("");
qty.setText("");
harga.setText("");
total.setText("");
caripo.setText("");
seluruh.setText("");
kodekonsumen.requestFocus();
awal();
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"<Error> tidak bisa dihapus atau
database belum terkoneksi : "+e,"Koneksi
Gagal",JOptionPane.WARNING_MESSAGE);
}
}
private void btnpesanActionPerformed(java.awt.event.ActionEvent evt) {
btnorder.setEnabled(true);
nomor.setEnabled(true);
int baru = 0;
int stok = 0;
try
{
con.setkoneksi();
con.rs=con.st.executeQuery("select * from barang where kd_barang
='"+kode.getSelectedItem()+"'");
while(con.rs.next())
{
stok = Integer.parseInt(con.rs.getString(3));
116
}
baru = stok-Integer.parseInt(qty.getText());
String sql1="update barang set unit='"+baru+"' where
nm_barang='"+nama.getText()+"'";
con.st.executeUpdate(sql1);
con.conn.close();
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"<Error> Koneksikan database
Terlebih Dahulu","Koneksi Gagal",JOptionPane.WARNING_MESSAGE);
}
try
{
con.setkoneksi();
String sql="insert into detail_penerimaan_po
values('"+nopo.getText()+"','"+kodekonsumen.getText()+"','"+kode.getSelectedIte
m()+"','"+harga.getText()+"','"+qty.getText()+"','"+total.getText()+"')";
con.st.executeUpdate(sql);
con.rs.close();
JOptionPane.showMessageDialog(null,"Pesanan Berhasil Di
Input","Sukses",JOptionPane.INFORMATION_MESSAGE);
Table1.setModel(gettabel());
seluruh();
kodekonsumen.setText("");
kode.setSelectedItem("--Pilih Kode Barang--");
nama.setText("");
qty.setText("");
harga.setText("");
total.setText("");
kodekonsumen.requestFocus();
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"<Error> tidak bisa disimpan atau
koneksikan database terlebih dahulu : "+e,"Koneksi
Gagal",JOptionPane.WARNING_MESSAGE);
}
}
private void Table1MouseClicked(java.awt.event.MouseEvent evt) {
}
private void nomorInputMethodTextChanged(java.awt.event.InputMethodEvent
evt) {
}
117
public void combobox()
{
try
{
con.setkoneksi();
con.rs=con.st.executeQuery("select * from barang");
while(con.rs.next())
{
kode.addItem(con.rs.getString("kd_barang"));
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"List tidak Tersedia");
}
}
public void tampilcombobox()
{
try
{
con.setkoneksi();
con.rs=con.st.executeQuery("select * from barang where kd_barang
='"+kode.getSelectedItem()+"'");
if(con.rs.next())
{
nama.setText(con.rs.getString(2));
harga.setText(con.rs.getString(4));
}
else
{
nama.setText("");
harga.setText("");
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"List tidak Tersedia");
}
}
public void awal()
{
Table1.setModel(gettabel());
nomor.setEnabled(false);
nopo.setEnabled(false);
kode.setEnabled(false);
118
qty.setEnabled(false);
btnorder.setEnabled(false);
btnubah.setEnabled(false);
btnhapus.setEnabled(false);
btnhitung.setEnabled(false);
btnpesan.setEnabled(false);
}
public DefaultTableModel gettabel()
{
String[]judul={"No Terima PO","Kode Konsumen","Kode Barang","Harga",
"Qty","Total Harga"};
DefaultTableModel kolom=new DefaultTableModel(null,judul);
try
{
con.setkoneksi();
con.rs=con.st.executeQuery("select * from detail_penerimaan_po ");
String data[]=new String[6];
while(con.rs.next())
{
data[0]=con.rs.getString(1);
data[1]=con.rs.getString(2);
data[2]=con.rs.getString(3);
data[3]=con.rs.getString(4);
data[4]=con.rs.getString(5);
data[5]=con.rs.getString(6);
kolom.addRow(data);
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"<Error> Koneksikan database Terlebih
Dahulu : "+e,"Koneksi Gagal",JOptionPane.WARNING_MESSAGE);
}
return kolom;
}
public DefaultTableModel gettabel2()
{
String[]judul={"No Terima PO","Kode Konsumen","Kode Barang","Harga",
"Qty","Total Harga"};
DefaultTableModel kolom=new DefaultTableModel(null,judul);
try
{
con.setkoneksi();
con.rs=con.st.executeQuery("select * from detail_penerimaan_po where
no_terima_po ='"+caripo.getText()+"'");
String data[]=new String[6];
119
while(con.rs.next())
{
data[0]=con.rs.getString(1);
data[1]=con.rs.getString(2);
data[2]=con.rs.getString(3);
data[3]=con.rs.getString(4);
data[4]=con.rs.getString(5);
data[5]=con.rs.getString(6);
kolom.addRow(data);
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"<Error> Koneksikan database Terlebih
Dahulu : "+e,"Koneksi Gagal",JOptionPane.WARNING_MESSAGE);
}
return kolom;
}
public void seluruh()
{
try
{
con.setkoneksi();
con.rs=con.st.executeQuery("select SUM(total_harga) as ttl from
detail_penerimaan_po where no_terima_po='"+nopo.getText()+"'");
if(con.rs.next())
{
seluruh.setText(con.rs.getString("ttl"));
}
else
{
awal();
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"Total Keseluruhan Invalid");
}
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code
(optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default
look and feel.
* For details see
120
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(menupo.class.getName()).log(java.util.logging.
Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(menupo.class.getName()).log(java.util.logging.
Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(menupo.class.getName()).log(java.util.logging.
Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(menupo.class.getName()).log(java.util.logging.
Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new menupo().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JTable Table1;
private javax.swing.JButton btncari;
private javax.swing.JButton btncek;
private javax.swing.JButton btnhapus;
private javax.swing.JButton btnhitung;
private javax.swing.JButton btnorder;
private javax.swing.JButton btnpesan;
private javax.swing.JButton btnreset;
private javax.swing.JButton btnubah;
private javax.swing.JTextField caripo;
private javax.swing.JTextField harga;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
121
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.JScrollPane jScrollPane1;
private javax.swing.JComboBox<String> kode;
private javax.swing.JTextField kodekonsumen;
private javax.swing.JTextField nama;
private javax.swing.JTextField nomor;
private javax.swing.JTextField nopo;
private javax.swing.JTextField qty;
private javax.swing.JTextField seluruh;
private javax.swing.JTextField total;
// End of variables declaration
}
3.5.2. Blackbox Testing
A. Form Login Admin
Tabel III. 29
Hasil Pengujian Black Box Testing Form Login
No Skenario
pengujian
Test case Hasil yang
diharapkan
Hasil
pengujian
Kesim
pulan
1. Username dan
Password tidak
diisi kemudian
klik tombol
login
Username:
(kosong)
Password:
(kosong)
Sistem akan
menolak akses dan
menampilkan
pesan “Username
atau Password
Salah”
Sesuai
harapan
Valid
2. Mengetikkan
Username dan
Password tidak
diisi atau kosong
kemudian klik
tombol login
Username:
AP
Password:
(kosong)
Sistem akan
menolak akses dan
menampilkan
pesan “Username
atau Password
Salah”
Sesuai
harapan
Valid
3. Username tidak
di isi (kosong)
dan Password
diisi kemudian
klik tombol
login
Username:
(kosong)
Password:
administra
tor
Sistem akan
menolak akses dan
menampilkan
pesan “Username
atau Password
Salah”
Sesuai
harapan
Valid
122
4. Mengetikkan
salah satu
kondisi salah
pada Username
atau Password
kemudian klik
tombol login
Username:
AP
(benar)
Password:
12345
(salah)
Sistem akan
menolak akses dan
menampilkan
pesan “Username
atau Password
Salah”
Sesuai
harapan
Valid
5. Mengetikkan
Username dan
Password
dengan data
yang benar
kemudian klik
tombol login
Username:
AP
(benar)
Password:
administra
tor
(benar)
Sistem akan
menerima akses
login dan akan
masuk ke menu
utama
Sesuai
Harapan
Valid
3.5.3. Spesifikasi Hardware dan Software
Tabel III. 30
Spesifikasi Hardware dan Software
Kebutuhan Keterangan
Sistem Windows 7 32-bit
Processor Celeron , @2,13 GHz
RAM 2 GB
Harddisk 100 GB
Keyboard 108 key
Printer Dot Matrix
Mouse Standard
Software
Kebutuhan menjalankan aplikasi secara local:
Bahasa script programming : JAVA 7.1
Web Server : Apache 3.2
DBSM : MySQL
123