BAB III PEMBAHASAN - repository.bsi.ac.id · BAB III PEMBAHASAN 3.1. Tinjauan Persahaan 3.1.1....
Transcript of BAB III PEMBAHASAN - repository.bsi.ac.id · BAB III PEMBAHASAN 3.1. Tinjauan Persahaan 3.1.1....
17
BAB III
PEMBAHASAN
3.1. Tinjauan Persahaan
3.1.1. Sejarah Perusahaan
Triset motor atau yang lebih dikenal dengan TS Motor merupakan usaha
dagang dan jasa yang bergerak dalam bidang otomotif, yaitu berupa servis dan
penjualan sparepart sepeda motor.
TS Motor mulai membuka usaha kecilnya pada tahun 2009 dan pada tahun
2013 TS Motor memiliki surat ijin usaha perdagangan yang bernomorkan
503/4067/1234/PK/IV/BPMPT/2013/B, berawal dari bengkel motor sederhana di
pinggir jalan kota Karawang. Dengan ketekunan pemiliknya, TS Motor berkembang
pesat dan mulai meningkatkan usahannya dengan membangun bengkel baru untuk
lebih mendobrak daya saing dalam pelayanannya. Terbukti dalam selang lima tahun,
TS Motor sudah bisa mendirikan tiga bangunan sekaligus sebagai usaha bengkel
sepeda motornya.
Menghadapi tantangan usaha yang semakin besar dan untuk menguatkan
usahanya dalam urusan birokrasi, TS Motor mengambil langkah cepat meresmikan
usahanya. Tepat pada tahun 2016, TS Motor resmi berubah bentuk menjadi sebuah
CV, dengan ini usaha jasa servis yang dikelola sudah bisa diperhitungkan sebagai
bengkel motor yang berkompeten.
18
Hingga tahun 2019 ini, TS Motor telah berubah menjadi perusahaan bengkel
besar yang sudah mempunyai nama di sekitaran kota Karawang, lebih tepatnya di
Jl.RA. Tohir Mangkudidjodjo, Karangpawitan.
3.1.2. Struktur Organisasi dan Fungsi
TS Motor merupakan usaha kecil yang sudah berkembang pesat di kota
Karawang, ini menunjukan adanya struktur organisasi yang matang dalam
menjalankan bisnisnya. Berikut adalah struktur organisasi yang ada di TS Motor:
Gambar III.1.
Struktur Organisasi TS Motor Karawang
Adapun fungsi dari masing-masing jabatan adalah sebagai berikut:
1. Pimpinan TS Motor (mananjer)
PIMPINAN TS MOTOR
ARIF LUKMAN
WAKIL
SAEFUDIN
SPARE PART(ADMIN)
DESI
TS MOTOR 1
NANTO
TS MOTOR I
ISHAK
SURYANISAEFUL
ILHAM
JODI
YADI
ANDRI
PURWANTO
ROZAK
RIKI
19
Pengendali dan penanggung jawab semua tentang kinerja perusahaaan.
2. Wakil Pimpinan (wakil manajer)
Membantu tugas-tugas Pimpinan dan sebagai koordinator semua karyawan.
3. SparePart (admin)
Melakukan pembelian dan penjualan sparepart TS Motor sekaligus sebagai
penanggung jawab keuangan perusahaan.
4. TS Motor I (mekanik)
Pelaksana jasa servis sepeda motor dengan spesifikasi khusus motor matic.
5. TS Motor II (mekanik)
Pelaksana jasa servis sepeda motor dengan spesifikasi khusus motor non matic
atau manual.
3.2. Tinjauan Kasus
3.2.1. Proses Bisnis Sistem Berjalan
Sistem yang dimaksud adalah sistem activity diagram pembelian barang secara
kredit pada TS. Motor, berikut prosesnya:
1. Proses Penawaran Barang
Pertama supplier datang ke bengkel untuk melakukan penawaran kepada admin
atas barang yang akan dijual kepada TS Motor dengan membawa beberapa
sempel barang untuk ditawarkan .Setelah supplier datang ke bengkel kemudian
admin akan melakukan proses tawar menawar harga terhadap barang yang telah
ditawarkan oleh supplier .
2. Proses Pemesanan Barang
Jika kesepakatan harga dan barang yang ditawar sudah oke , maka admin akan
segera membuat purchase order atau pemesanan pembelian terhadap barang
20
yang akan dibeli. Kemudian supplier mengolah purchase order atau data
pemesanan barang yang telah diterima dari admin dan membuat faktur pembelian
untuk dikirim ke TS Motor.
3. Proses pengiriman dan Penerimaan Barang
Setelah seminggu dari proses penawaran supplier akan mengirim barang beserta
faktur yang telah dibuat kepada pihak TS Motor. Kemudian admin akan
mendapatkan data faktur pembelian dan menerima barang yang telah dibeli dari
supplier, untuk proses pembayaran sesuai dengan tanggal jatuh tempo.
4. Proses Pembayaran
Setelah proses penerimaan barang dan faktur pembelian, admin melakukan
pembayaran sebagian atau DP atas pembelian barang kepada supplier. Kemudian
memberi bukti pengeluaran kas yang telah dibayarakan ke supplier sebagai bukti
pelunasan hutang, lalu bukti pembayaran ke dalam arsip pembayaran, sedangkan
faktur pembelian diarsipkan ke dalam arsip pembelian.
5. Proses Pembuatan Laporan
Setelah proses pembayaran DP selesai maka admin merekap semua data
pembelian barang, menghitung sisa hutang dan mencatat ke dalam laporan
jurnal pembelian kemudian setelah laporan dibuat admin memberikan kepada
manajer.
21
3.2.2. Activity Diagram
Gambar III.2.
Activity Diagram Pembelian kredit TS Motor Karawang
Supplier
Activity Diagram
Admin Manajer
Start
Menawarkan barangMenerima
Penawaran
Melakukan
Penawaran harga
Membuat daftar PO
Menerima
Penawaran Harga
Acc harga
Melakukan
Pemesanan barang
Menerma
pemesanan barang
Membuat faktur
pembelian
Mengirim barang Menerima barang
Melakukan
pembayaran DP
Membuat
laporan
Menerima
pembayaran DP
Menyerahkan
laporanMenerima laporan
Selesai
22
3.2.3. Dokumen Masukan
Bentuk dokumen masukan (input) yang dibutuhkan dalam spesifikasi sistem
akuntansi berjalan yaitu :
1. Nama Dokumen : Faktur Pembelian
Fungsi Dokumen : Sebagai bukti penagihan
Sumber : Supplier
Tujuan : Admin
Frekuensi : Setiap akan menagih pembayaran
Media : Kertas
Jumlah : Satu Lembar
Format : Lampira A.1
2. Nama Dokumen : Faktur Pembelian
Fungsi Dokumen : Sebagai bukti pelunasan hutang
Sumber : Supplier
Tujuan : Admin
Frekuensi : Setiap pelunasan hutang
Media : Kertas
Jumlah : Satu Lembar
Format : Lampira A.2
23
3.2.4. Dokumen Keluaran
Bentuk dokumen keluaran (output) yang dibutuhkan dalam spesifikasi sistem
akuntansi berjalan adalah :
1. Nama Dokumen : Purchase Order
Fungsi Dokumen : Sebagai fungsi pemesanan barang
Sumber : Admin
Tujuan : Supplier
Frekuensi : Setiap akan memesan barang
Media : Kertas
Jumlah : Satu lembar
Format : Lampiran A.3
2. Nama Dokumen : Laporan Pembelian
Fungsi Dokumen : Sebagai catatan pembelian
Sumber : Admin
Tujuan : Manajer
Frekuensi : Setiap terjadinya transaksi
Media : Kertas
Jumlah : Satu lembar
Format : Lampiran A.4
24
3.2.5. Permasalahan Pokok
Berdasarkan permasalahan yang terjadi di TS Motor Karawang penulis
menemukan permasalahan-permasalahan yang terjadi, diantaranya sebagai berikut:
1. Proses pemesanan barang dalam pembelian masih menggunakan via sms,
whatsApp atau melalui penawaran langsung dari pihak supplier yang datang
langsung ke tempat TS Motor Karawang.
2. Dalam penyimpanan data arsip masih belum tersusun rapih dan masih
berantakan.
3. Belum adanya aplikasi program komputer yang digunakan dalam proses
pembelian serta dapat mengakibatkan sering terjadi kesalahan informasi
pembayaran dan keterlambatan dalam pembuatan laporan pembelian.
3.2.6. Pemecahan Masalah
Setelah mengetahui permasalahan pokok yang telah diterima oleh penulis dari
TS Motor Karawang, penulis bertujuan ingin memberikan solusi dari permasalahan
yang terjadi, diantaranya adalah:
1. Mengubah proses pemesanan barang dalam pembelian yan masih manual
menjadi terkomputerisasi menggunakan Neatbeen IDE 8.1, sehingga dapat
meminimalisir kesalahan-kesalahan yang terjadi.
2. SDM harus lebih disiplin dalam masalah penyimpanan data agar tetap rapi dan
tidak berantakan.
3. Membuat laporan pembelian atau pengeluaran dengan menggunakan program
java Neatbeen IDE 8.1 sehingga dapat memudahkan TS Motor dalam proses
pembelian atau pemesanan barang dan bagian admin dalam menyajikan laporan
kepada pemimpin (manajer).
25
3.3. Analisis Kebutuhan Software
Berdasarkan proses bisnis yang berjalan pada TS Motor Karawang maka
tahapan berikutnya adalah analisis kebutuhan sebagai berikut:
3.3.1. Analisis Kebutuhan
A. Admin
A.1. Admin dapat melakukan login dengan akun yang telah dibuat
A.2. Admin dapat menegelola menu utama
A.3. Admin dapat mengelola data barang
A.4. Admin dapat mengelola data supplier
A.5. Admin dapat mengelola data admin
A.6. Admin dapat mengelola data pembelian
A.7. Admin dapat menengelola data pelunasan
A.8. Admin dapat mengelola data jurnal dan laporan
B. Manajer
B.1. Manajer dapat melakukan login
B.2. Manajer dapat mengelola laporan
26
3.3.2. Use Case Diagram
Berikut kini adalah use case diagram untuk Sistem Informasi Pembelian
Barang pada TS Motor Karawang sebagai berikut:
A. Admin
A.1. Admin dapat melakukan login dengan akun yang telah dibuat
Gambar III.3.
Use Case Diagram Halaman Login
Tabel III.1.
Deskripsi Use Case Diagram Admin melakukan login
Use Case Narative Halaman Admin
Tujuan
Admin dapat melakukan login yang
telah dibuat
Deskripsi
Sistem ini memungkinkan aktor
untuk mengakses data pembelian
barang
Skenario Utama
Aktor Admin
Kondisi Awal Aktor masuk ke menu utama login
Use Case Diagram Halaman Admin
Admin
login
Id
pengguna
Password
Batal
<<include>>
<<include>>
<<extend>>
27
Aksi Aktor Reaksi Sistem
1. Aktor memilih tombol login
2. Aktor memilih tombol batal
Sistem ini menampilkan textbox
dengan mengisi id pengguna dan
password
Sistem ini membatalkan tombol login
Kondisi Akhir Jika perintah sesuai maka sistem akan
menampilkan apa yang diinginkan
A.2. Admin Dapat Mengelola Menu Utama
Gambar III.4.
Use Case Diagram Menu Utama
Tabel III.2.
Deskripsi Use Case Diagram Menu Utama
Use Case Narative Halaman Admin
Tujuan Admin dapat melakukan pengolahan
data yang ada pada menu master,
menu transaksi, menu jural dan menu
laporan
Deskripsi Sistem ini dapat memungkinkan
aktor untuk mengelola sistem
Use Case Diagram Halaman Admin
Admin
login
Menu
Master
Menu
Jurnal
Menu
laporan
<<include>>
<<include>>
<<include>><<include>>
Master
Transaksi
28
pembelian barang dari input data
sampai dengan hasil laporan
Skenario Utama
Aktor Admin
Kondisi Awal Aktor masuk kedalam menu utama
Aksi Aktor Reaksi Sistem
1. Aktor memilih menu master
2. Aktor memilih menu transaksi
3. Aktor memilih menu jurnal
4. Aktor memilih menu laporan
Sistem ini menampilkan sub menu
master antara lain data barang, data
supplier, dan data supplier
Sistem ini menampilkan sub menu
transaksi antara pembeli dan
pelunasan
Sistem ini menampilkan sub menu
jurnal antara lain data jurnal
Sistem ini memampilkan sub menu
laporan antara lain laporan
pembelian, laporan pelunasan, dan
laporan jurnal
Kondisi Akhir Jika perintah selesai, maka akan
menampilkan apa yang diinginkan
29
A.3. Admin Dapat Mengelola Data Barang
Gambar III.5.
Use Case Diagram Data Barang
Tabel III.3.
Deskripsi Use Case Diagram Data Barang
Use Case Narative Halaman Admin
Tujuan Admin dapat mengelola data barang
pada halaman admin
Deskripsi Sistem ini memungkinkan aktor
untuk mengelola halaman menu
data barang dengan dengn
menginput kode barang, nama
barang, harga beli, jenis barang,
stock, dan spesifikasi
Skenario Utama
Aktor Admin
Kondisi Awal Aktor masuk kedalam menu data
barang
Aksi Aktor Reaksi Sistem
Use Case Diagram Halaman Admin
Admin
LoginMenu
MasterMenu data
barang
Tambah
Cari
<<include>>
Simpan<<include>>
<<include>>
Kode
Barang
Batal
<<extend>>
Ubah<<extend>>
Hapus
<<extend>>
<<extend>>
30
1. Aktor memilih menu data
barang
2. Aktor memilih input kode
barang, nama barang, harga
beli, jenis barang, stock, dan
spesifikasi
3. Aktor bisa memilih tambah,
simpan, batal, ubah, cari,
hapus, keluar
Sistem akan menampilkan kode
barang, nama barang, harga beli,
jenis barang, stock, dan spesifikasi
Sistem ini akan menampilkan kode
barang, nama barang, harga beli,
jenis barang, stock, dan spesifikasi
Sistem ini akan menampilkan
sesuai apa yang diinginkan aktor
Kondisi akhir Jika perintah sesuai, maka akan
menampilkan apa yang diinginkan
oleh aktor
A.4. Admin Dapat Mengelola Data Supplier
Gambar III.6.
Use Case Diagram Data Supplier
Use Case Diagram Halaman Admin
Admin
LoginMenu
MasterMenu data
Supplier
Tambah
Cari
<<include>>
Simpan<<include>>
<<include>>
Kode
Supplier
Batal
<<extend>>
Ubah<<extend>>
Hapus
<<extend>>
<<extend>>
31
Tabel III.4.
Deskripsi Use Case Diagram Data Supplier
Use Case Narative Halaman Admin
Tujuan Admin dapat mengelola data
supplier yang ada di halaman
admin
Deskripsi Sistem ini memungkinkan aktor
untuk mengelola halaman menu
data supplier dengan menginput
kode supplier, nama supplier,
alamat supplier, no_telepon
supplier, email
Skenario Utama
Aktor Admin
Kondisi awal Aktor masuk ke dalam menu data
supplier
Aksi Aktor Reaksi Sistem
1. Aktor memilih data supplier
2. Aktor memilih input kode
supplier, nama supplier,
alamat supplier, no_hp,
3. Aktor bisa memilih menu
tambah, simpan, batal, ubah,
cari, hapus, keluar
Sistem ini akan masuk ke halaman
data supplier
Sistem ini akan menampilkan kode
supplier, nama supplier, alamat
supplier, no-hp, email
Sistem ini akan menampilkan
sesuai apa yang diinginkan
Kondisi Terakhir Jika perintah sesuai, maka akan
menampilkan apa yang diinginkan
oleh aktor
32
A.5. Admin Dapat Mengelola Data Admin
Gambar III.7.
Use Case Diagram Data Admin
Tabel III.5.
Deskripsi Use Case Diagram Data Admin
Use Case Naratve Halaman Admin
Tujuan Admin dapat merubah data admin
pada halaman admin
Deskripsi Sistem ini memungkinkan aktor
untuk mengelola atau mereubah
halaman admin dengan input
kode admin , nama admin, akamat
admin, sandi , jenis kelamin,
no_hp, email, hak_akses
Skenario Utama
Aktor Admin
Kondisi Awal Aktor masuk ke halaman menu
admin
Aksi Aktor Reaksi Sistem
Use Case Diagram Halaman Admin
Admin
LoginMenu
MasterMenu data
Admin
Tambah
Cari
<<include>>
Simpan<<include>>
<<include>>
Kode
Admin
Batal
<<extend>>
Ubah<<extend>>
Hapus
<<extend>>
<<extend>>
33
1. Aktor memilih data admin
2. Aktor memilih input kode
admin, nama admin, alamat
admin, sandi, jenis kelamin,
no.hp, email, dan hak akses
3. Aktor bisa memilih menu
tambah, simpan, batal, ubah,
cari, hapus, keluar
Sistem ini akan masuk ke halaman
admin
Sistem ini akan menampilkan kode
admin, nama admin, alamat admin,
sandi, jenis kelamin, no.hp, email,
dan hak akses
Sistem ini akan menampilkan
sesuai apa yang diinginkan
Kondisi terakhir Jika perintah sesuai, maka akan
menampilkan apa yang diinginkan
oleh aktor
A.6. Admin Dapat Mengelola Data Pembelian
Gambar III.8.
Use Case Diagram Data Pembelian
Use Case Diagram Halaman Admin
Admin
LoginMenu
MasterMenu
Pembelian
Tambah
Cari
<<include>>
Simpan<<include>>
<<include>>
Kode
Barang
Batal
<<extend>>
Ubah<<extend>>
Hapus
<<extend>>
<<extend>>
34
Tabel III.6.
Deskripsi Use Case Diagram Data Pembelian
Use Case Narative Halaman Admin
Tujuan Admin dapat mengelola data
pembelian yang ada pada halaman
admin
Deskripsi Sistem ini memungkinkan aktor
untuk mengelola menu data
pembelian dengan menginput
nama supplier, nama barang, harga
barang, status pembayaran, tempo
pembayaran, banyak barang,
pembayaran
Skenario Utama
Aktor Admin
Kondisi Awal Aktor masuk kedalam halaman
menu data pembelian
Aksi Aktor Reaksi Sistem
1. Aktor memilih menu data
pembelian
2. Aktor memilih input nama
supplier, nama barang,
harga barang, status
pembayaran, tempo
pembayaran, banyak barang,
pembayaran
3. Aktor bisa memilih menu
tambah, simpan, cari, tutup,
ubah, hapus, batal
Sistem ini akan masuk ke menu
data pembelian
Sistem ini akan menampilkan
nama supplier, nama barang, harga
barang, status pembayaran, tempo
pembayaran, banyak barang, total,
pembayaran, hutang
Sistem ini akan menampilkan
sesuai apa yang diinginkan
35
Kondisi Terakhir Jika perintah sesuai, maka akan
memampilkan apa yang diinginkan
oleh aktor
A.7. Admin Dapat Mengelola Data Pelunasan
Gambar III.9.
Use Case Diagram Data Pelunasan
Tabel III.7.
Deskripsi Use Case Diagram Data Pelunasan
Use Case Narative Halaman Admin
Tujuan Admin dapat mengelola data
pelunasan yang ada pada halaman
admin
Deskripsi Sistem ini memungkinkan aktor
untuk mengelola menu data
pelunasan dengan menginput no.
Faktur
Skenario Utama
Aktor Admin
Kondisi Awal Aktor masuk ke menu data
Use Case Diagram Halaman Admin
Admin
LoginMenu
utamaData
pelunasanCari TutupLunasi
<<include>><<extends>> <<extends>>
36
pelunasan
Aksi Aktor Reaksi Sistem
1. Aktor memilih menu data
pelunasan
2. Aktor memilihn input
no.faktur
3. Aktor bisa memilih menu
cari,lunas, tutup
Sistem ini akan masuk ke menu data
pelunasan
Sistem ini akan menampilkan
no.faktur, kode supplier,kode
barang, status pembayaran, jatuh
tempo, hutang
Sistem ini akan menampilkan sesuai
apa yang diinginkan
Kondisi Akhir Jika perintah sesuai, maka akan
menampilkan apa yang diinginkan
oleh aktor
A.8. Admin Dapat Mengelola Data Jurnal dan Laporan
Gambar III.10.
Use Case Diagram Data Jurnal dan Laporan
Use Case Diagram Halaman Admin
Admin
LoginMenu
utamaJurnal
Pilih periode
Tutup
<<include>>
<<extends>>
<<extends>>
37
Tabel III.8.
Deskripsi Use Case Diagram Data Jurnal dan Laporan
Use Case Narative Halaman Admin
Tujuan Admin dapat mengelola data jurnal
di halaman admin
Deskripsi Sistem ini memungkinkan aktor
untuk mengelola halaman menu
data jurnal dan laporan dengan
menginput data laporan dan periode
Skenario Utama
Aktor Admin
Kondisi Awal Aktor masuk kedalam halaman
menu data jurnal
Aksi Aktor Reaksi Sistem
1. Aktor memilih menu data
jurnal
2. Aktor akan menginput
laporan dan periode
3. Aktor bisa memilih memu
cari, print, tutup
Sistem ini akan masuk ke menu data
jurnal
Sistem ini akan menampilkan no
faktur, kode supplier, kode barang,
status pembayaran, jatuh
tempo,hutang
Sistem ini akan menampilkan sesuia
apa yang diinginkan
Kondisi Akhir Jika perintah sesuia, maka akan
menampilkan apa yang diinginkan
38
B. Manajer
B.1. Manajer Dapat Melakukan Login
Gambar III.11.
Use Case Diagram Halaman Login Manajer
Tabel III.9.
Deskripsi Use Case Diagram Manajer Login
Use case Narative Halaman Manajer
Tujuan Admin dapat melakukan login
Deskripsi Sistem ini memungkinkan aktor
untuk mengakses data pembelian
barang
Skenario Utama
Aktor Manajer
Kondisi Awal Aktor masuk ke menu utama login
Aksi Aktor Reaksi Sistem
Use Case Diagram Halaman Manajer
Manajer
login
Id
pengguna
Password
Batal
<<include>>
<<include>>
<<extend>>
39
1. Aktor memilih tombol login
2. Aktor memilih tombol batal
Sistem ini menampilkan textbox
dengan mengisi id pengguna dan
password
Sistem ini membatalkan tombol
login
Kondisi Akhir Jika perintah sesuai dan oke, maka
sistem akan menampilkan apa yang
diinginkan
B.1. Manajer Dapat Mengelola Laporan
Gambar III.12.
Use Case Diagram Data Laporan Manajer
Tabel III.10.
Deskripsi Use Case Diagram Data Jurnal dan Laporan
Use Case Narative Halaman Admin
Tujuan Admin dapat mengelola data jurnal
di halaman admin
Deskripsi Sistem ini memungkinkan aktor
untuk mengelola halaman menu data
jurnal dan laporan dengan menginput
data laporan dan periode
Use Case Diagram Halaman Admin
Admin
LoginMenu
utamaJurnal
Pilih periode
Tutup
<<include>>
<<extends>>
<<extends>>
40
Skenario Utama
Aktor Admin
Kondisi Awal Aktor masuk kedalam halaman menu
data jurnal
Aksi Aktor Reaksi Sistem
1. Aktor memilih menu data
jurnal
2. Aktor akan menginput data
laporan dan periode
3. Aktor bisa memilih memu
cari, print,tutup
Sistem ini akan masuk ke menu data
jurnal
Sistem ini akan menampilkan no
faktur, kode supplier, kode barang,
status pembayaran, jatuh
tempo,hutang
Sistem ini akan menampilkan sesuia
apa yang diinginkan
Kondisi Akhir Jika perintah sesuai, maka akan
menampilkan apa yang diinginkan
41
3.3.3. Activity Diagram
1. Activity Diagram Halaman Login
Gambar III.13.
Activity Diagram Halaman Login
Admin
Activity Diagram Halaman Admin
Sistem
Start
Login
Input ID Pengguna
dan password
Verivikasi Login
Gagal BerhasilTidak Ya
Finish
Tampil form login
42
2. Activity Diagram Admin Dapat Mengelola Data Barang
Gambar III.14.
Activity Diagram Data Barang
Admin
Activity Diagram Halaman Admin
Sistem
Start
Login
Klik menu data
barang
Finish
Menampilkan form
data barang
Tambah Cari
Input kode
barangTampil data
barang
Input form
barang
ubah hapus
simpan
ya
batal
tidak
konfirmasi
ya tidak
Data dihapusData batal
dihapus
43
3. Activity Diagram Admin Dapat Mengelola Data Supplier
Gambar III.15.
Activity Diagram Data Supplier
Admin
Activity Diagram Halaman Admin
Sistem
Start
Login
Klik menu data
barang
Finish
Menampilkan form
data barang
Tambah Cari
Input kode
barangTampil data
barang
Input form
supplier
ubah hapus
simpan
ya
batal
tidak
konfirmasi
ya tidak
Data dihapusData batal
dihapus
44
Activity Diagram Admin Dapat Mengelola Data Admin
Gambar III.16.
Activity Diagram Data Admin
Admin
Activity Diagram Halaman Admin
Sistem
Start
Login
Klik menu data
barang
Finish
Menampilkan form
data barang
Tambah Cari
Input kode
barangTampil data
barang
Input form
admin
ubah hapus
simpan
ya
batal
tidak
konfirmasi
ya tidak
Data dihapusData batal
dihapus
45
4. Activity Diagram Admin Dapat Mengelola Data Pembelian
Gambar III.17.
Activity Diagram Data Pembelian
Admin
Activity Diagram Halaman Admin
Sistem
Start
Login
Klik menu data
barang
Finish
Menampilkan form
data barang
Tambah Cari
Input kode
barangTampil data
barang
Input form
beli
ubah hapus
simpan
ya
batal
tidak
konfirmasi
ya tidak
Data dihapusData batal
dihapus
46
5. Activity Diagram Admin Dapat Mengelola Data Pelunasan
Gambar III.18
Activity Diagram Data Pelunasan
Admin
Activity Diagram Halaman Admin
Sistem
Start
Login
Klik menu data
Pelunasan
Finish
Menampilkan form
data Pelunasann
Input data beli
Buka
File
Memproses data
pelunasan
Cari
Data
Beli
Klik
Lunasi
Proses tersimpan
Menampilkan
pelunasan
47
6. Activity Diagram Admin Dapat Mengelola Data laporan Jurnal
Gambar III.19.
Activity Diagram Data Laporan jurnal
Admin
Activity Diagram Halaman Admin
Sistem
Start
Login
Klik menu data
Jurnal
Finish
Menampilkan form
data pembelian dan
pembayaran
Proses laporan
jurnal
Menampilkan
pelunasan
Input periode
Proses cetak
48
7. Activity Diagram Manajer Dapat Melakukan Login
Gambar III.20.
Activity Diagram Manajer Dapat Melakukan Login
Admin
Activity Diagram Halaman Manajer
Sistem
Start
Login
Input ID Pengguna
dan password
Verivikasi Login
Gagal BerhasilTidak Ya
Finish
Tampil form login
49
8. Activity Diagram Manajer Dapat Mengelola Laporan Jurnal
Gambar III.21.
Activity Diagram Manajer Mengelola Laporan Jurnal
Admin
Activity Diagram Halaman Manajer
Sistem
Start
Login
Klik menu data
Jurnal
Finish
Menampilkan form
data pembelian dan
pembayaran
Proses laporan
jurnal
Menampilkan
pelunasan
Input periode
Proses cetak
50
3.4. Desain
3.4.1. Entity Relationship Diagram (ERD)
Gambar III.22.
Entity Relationship Diagram
Jurnal
detail
jurnal
no_referensi
kode_akundebet
kredit
no_referensi
tgl_trans
no_bukti_trans
keterangan
admin
kode_adm
nama_adm
alamat_ad
m
sandi
jk_adm
nohp_adm
Email_adm
menambah supplier
kode_spl
nama_spl
alamat_spl
notlp_spl
email_spl
barang
menambah
kode_brg
nama_brg
harga_brg
jenis_brg
stock_brg
spesifikasi
melakukan beli
no_faktur
kode_spl
kode_brg jatuh_tempo
total_hutang
beli_detailmemilik
kode_brg
jml_brgtotal_beli
no_faktur
menghasilkan
berisikan
1 M
1
M
M M M 1
1
1
1
1
hak_akses
qty
status_pembayaran
tgl_beli
51
3.4.2. Logical Record Structure (LRS)
Gambar III.23.
Logical Record Structure
3.4.3. Spesifikasi File
1. Spesifikasi File Data Jurnal
Nama Database : jurnal
Nama File : jurnal
Tipe File : File Laporan
Akses File : Random
kode_adm
nama_adm
alamat_adm
sandi
jk_adm
nohp_adm
email_adm
hak_akses
admin
no_faktur
kode_spl (FK)
kode_brg (FK)
qty
status_pembayaran
Jatuh_tempo
Total_hutang
Tgl_beli
beli
no_referensi (PK)
tgl_trans
to_buktri_trans
keterangan
jurnal
barang
kode_brg (PK)
nama_brg
harga_beli
jenis_brg
stock_brg
spesifikasi
no_referensi (PK)
kode_akun
debet
kredit
jurnal_detail
kode_brg (FK)
jml_brg
total_beli
no_faktur
detail_beli
kode_spl (PK)
nama_spl
alamat_spl
notlp_spl
email_spl
supplier
M
M
M
1
1
M 1
1
1
M
M
1
52
Panjang Record : 80 Karakter
Kunci Field : no_referensi
Tabel III.11.
Spesifikasi File Data Jurnal
No. Elemen Data Akronim Jenis Panjang Keterangan
1 No Referensi no_referensi Varchar 15 Primary Key
2 Tanggal Transaksi tgl_trans Date
3
No Bukti
Transaksi no_bukti_trans Varchar 15
4 Keterangan keterangan Varchar 50
2. Spesifikasi File Data Jurnal Detail
Nama Database : Jurnal Detail
Nama File : jurnal_detail
Tipe File : File Laporan
Akses File : Random
Panjang Record : 47 Karakter
Kunci Field : no_referensi
Tabel III.12 .
Spesifikasi File Data Jurnal Detail
No. Elemen Data Akronim Jenis Panjang Keterangan
1 No Referensi no_referensi Varchar 15 Primary Key
2 Kode Akun kode_akun Varchar 10
3 Debet debet Int 11
4 Kredit kredit Int 11
53
3. Spesifikasi File Data Supplier
Nama Database : Supplier
Nama File : Supplier
Tipe File : File Data Supplier
Akses File : Random
Panjang Record : 125 Karakter
Kunci Field : kode_spl.
Tabel III.13.
Spesifikasi File Data Supplier
No. Elemen Data Akronim Jenis Panjang Keterangan
1 Kode Supplier kode_spl Varchar 20 Primary Key
2 Nama Supplier nama_spl Varchar 20
3 Alamat alamat_spl Varchar 50
4 No Telpon Supplier notlp_spl Int 15
5 Email Supplier email_spl Varchar 20
4. Spesifikasi File Data Detail Beli
Nama Database : Kode Barang
Nama File : kode_brg
Tipe File : File Transaksi
Akses File : Random
Panjang Record : 50 Karakter
Kunci Field : -
54
Tabel III.14.
Spesifikasi File Data Detail Beli
No. Elemen Data Akronim Jenis Panjang Keterangan
1 Kode Barang kode_brg Int 15 Foreign Key
2 Jumlah Barang jml_brg Int 20
3 Total Beli total_beli Double
4 No Faktur no_faktur Int 15
5. Spesifikasi File Data Admin
Nama Database : Admin
Nama File : Admin
TipeFile : File Data Admin
Akses File : Random
Panjang Record : 150 Karakter
Kunci Field : kode_admin
Tabel III.15.
Spesifikasi File Data Admin
No. Elemen Data Akronim Jenis Panjang Keterangan
1 Kode Admin kode_adm Varchar 8 Primary Key
2 Nama Admin nama_adm Varchar 20
3 Alamat Admin alamat_adm Text
4 Kata Sandi sandi Varchar 20
5 Jenis Kelamin jk_adm Varchar 12
6 No Hp Admin nohp_adm Varchar 15
7 Email Admin email_adm Varchar 35
8 Hak Akses hak_akses Varchar 40
55
6. Spesifikasi File Data Barang
Nama Database : Barang
Nama File : Barang
TipeFile : File Data Barang
Akses File : Random
Panjang Record : 108 Karakter
Kunci Field : kode_brg
Tabel III.16.
Spesifikasi File Data Barang
No. Elemen Data Akronim Jenis Panjang Keterangan
1 Kode Barang kode_brg Varchar 6 Primary Key
2 Nama Barang nama_brg Varchar 35
3 Harga Beli harga_beli Varchar 35
4 Jenis Barang jenis_brg Varchar 20
5 Stock Barang stock_brg Int 12
6 Spesifikasi spesifikasi Text
7. Spesifikasi File Data Beli
Nama Database : Beli
Nama File : Beli
TipeFile : File Transaksi
Akses File : Random
Panjang Record : 77 Karakter
Kunci Field : no_faktur
56
Tabel III.17.
Spesifikasi File Data Beli
No. Elemen Data Akronim Jenis Panjang Keterangan
1 No Faktur no_faktur Int 15 Primary Key
2 Kode Supplier kode_spl Varchar 20 Foreign Key
3 Kode Barang Kode_brg Varchar 11
4 Banyak Barang qty Int 11
5 Status
Pembayaran status_pembayaran Varchar 20
6 Jatuh Tempo jatuh_tempo Date
7 Total Hutang total_hutang Double
8 Tanggal
Transaksi tgl_beli Timestamp
3.4.4. Sequence Diagram
A. Sequence Diagram Beli
Gambar III.24.
Sequence Diagram Beli
Admin Form BeliControl
BeliData Beli
Data
Barang
1. Tambah 1.1. Set Kode Supplier 1.1.1. Set Kode Supplier
2. Set Kode Barang 2.1. Set Kode Barang
3. Set Harga Barang 3.1. Set Nama Barang
4. Set Status Pembayaran 4.1. Set Status Pembayaran
5. Set Tempo Pembayaran 5.1. Set Tempo Pembayaran
6. Set Banyak Barang 6.1. Set Banyak Barang
7. Simpan
8. Tutup
57
3.4.5. Deployment Diagram
Gambar III.25.
Deployment Diagram
3.4.6. User Interface
Gambar III.26.
User Interface Form Login
58
Gambar III.27.
User Interface Form Menu Utama
Gambar III.28.
User Interface Form Data Barang
59
Gambar III.29.
User Interface Form Data Supplier
Gambar III.30.
User Interface Form Data Admin
60
Gambar III.31.
User Interface Form Beli
Gambar III.32.
User Interface Form Pelunasan
61
Gambar III.33.
User Interface Form Jurnal
Gambar III.34.
User Interface Form Laporan
62
3.5. Implementasi
3.5.1. Code Generation
a. Form Admin
jLabel5.setText("Jenis Kelamin");
getContentPane().add(jLabel5 import
javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/*
* To change this license header, choose License Headers in Project
Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author LENOVO
*/
public class admin extends javax.swing.JFrame {
koneksi1 kon = new koneksi1();
/**
* Creates new form admin
*/
public admin() {
initComponents();
kon.getConnection();
btnsimpan.setEnabled(false);
btnhapus.setEnabled(false);
btnbatal.setEnabled(false);
btnubah.setEnabled(false);
regrid();//untuk update secara otomatis
nonaktif();
}
private void aktif(){//untuk fom yang akan diaktifkan
jkodeadmin.setEnabled(true);
jnamaadm.setEnabled(true);
jalamatadm.setEnabled(true);
jsandi.setEnabled(true);
63
jk.setEnabled(true);
jnohp.setEnabled(true);
jemail.setEnabled(true);
jha.setEnabled(true);
}
private void nonaktif(){//untuk form yang akan dinonaktifkan
jkodeadmin.setEnabled(false);
jnamaadm.setEnabled(false);
jalamatadm.setEnabled(false);
jsandi.setEnabled(false);
jk.setEnabled(false);
jnohp.setEnabled(false);
jemail.setEnabled(false);
jha.setEnabled(false);
}
private void regrid() {//untuk menanbahkan tabel form
DefaultTableModel tadmin = new DefaultTableModel();
tadmin.addColumn("Kode Admin");
tadmin.addColumn("Nama Admin");
tadmin.addColumn("Alamat Admin");
tadmin.addColumn("Sandi");
tadmin.addColumn("Jenis Kelamin");
tadmin.addColumn("No_hp Admin");
tadmin.addColumn("Email");
tadmin.addColumn("Hak akses");
try{
kon.rs = kon.st.executeQuery("select* from admin order by
nama_adm asc");//untuk menampilkan list yang ada di tabel barang
while (kon.rs.next()) {
tadmin.addRow(new Object[]{
kon.rs.getString(1),
kon.rs.getString(2),
kon.rs.getString(3),
kon.rs.getString(4),
kon.rs.getString(5),
kon.rs.getString(6),
kon.rs.getString(7),
kon.rs.getString(8),
});
}
}catch (Exception c) {
64
JOptionPane.showMessageDialog(this, c);//untuk mengetahui
letak kesalahn atau error
}
jTable1.setModel(tadmin);
}
private void bersih() {
jkodeadmin.setText("");
jnamaadm.setText("");
jalamatadm.setText("");
jsandi.setText("");
jk.setSelectedItem("");
jnohp.setText("");
jemail.setText("");
jha.setText("");
}
/**
* This method is called from within the constructor to initialize the
form.
* WARNING: Do NOT modify this code. The content of this
method is always
* regenerated by the Form Editor.
*/
@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();
jLabel8 = new javax.swing.JLabel();
btnhapus = new javax.swing.JButton();
btncari = new javax.swing.JButton();
btnbatal = new javax.swing.JButton();
btnubah = new javax.swing.JButton();
btntambah = new javax.swing.JButton();
btnkeluar = new javax.swing.JButton();
btnsimpan = new javax.swing.JButton();
jkodeadmin = new javax.swing.JTextField();
jnamaadm = new javax.swing.JTextField();
jalamatadm = new javax.swing.JTextField();
jk = new javax.swing.JComboBox<>();
jScrollPane1 = new javax.swing.JScrollPane();
65
jTable1 = new javax.swing.JTable();
jsandi = new javax.swing.JTextField();
jnohp = new javax.swing.JTextField();
jemail = new javax.swing.JTextField();
jha = new javax.swing.JTextField();
jLabel9 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_
CLOSE);
getContentPane().setLayout(new
org.netbeans.lib.awtextra.AbsoluteLayout());
jLabel1.setText("Kode Admin");
getContentPane().add(jLabel1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 57, 73, -1));
jLabel2.setText("Nama Admin");
getContentPane().add(jLabel2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 98, -1, -1));
jLabel3.setText("Alamat Admin");
getContentPane().add(jLabel3, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 139, -1, -1));
jLabel4.setText("Sandi");
getContentPane().add(jLabel4, new
org.netbeans.lib.awtextra.AbsoluteConstraints(30, 210, -1, -1));
, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 240, -1, -1));
jLabel6.setText("No.hp");
getContentPane().add(jLabel6, new
org.netbeans.lib.awtextra.AbsoluteConstraints(420, 220, -1, -1));
jLabel7.setText("Email");
getContentPane().add(jLabel7, new
org.netbeans.lib.awtextra.AbsoluteConstraints(420, 260, 40, -1));
jLabel8.setText("Hak Akses");
getContentPane().add(jLabel8, new
org.netbeans.lib.awtextra.AbsoluteConstraints(410, 300, -1, -1));
btnhapus.setText("Hapus");
btnhapus.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
btnhapusActionPerformed(evt);
66
}
});
getContentPane().add(btnhapus, new
org.netbeans.lib.awtextra.AbsoluteConstraints(460, 70, -1, -1));
btncari.setText("Cari");
btncari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt)
{
btncariActionPerformed(evt);
}
});
getContentPane().add(btncari, new
org.netbeans.lib.awtextra.AbsoluteConstraints(460, 130, -1, -1));
btnbatal.setText("Batal");
btnbatal.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
btnbatalActionPerformed(evt);
}
});
getContentPane().add(btnbatal, new
org.netbeans.lib.awtextra.AbsoluteConstraints(460, 100, -1, -1));
btnubah.setText("Ubah");
btnubah.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
btnubahActionPerformed(evt);
}
});
getContentPane().add(btnubah, new
org.netbeans.lib.awtextra.AbsoluteConstraints(530, 70, -1, -1));
btntambah.setText("Tambah");
btntambah.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt)
{
btntambahActionPerformed(evt);
}
});
getContentPane().add(btntambah, new
org.netbeans.lib.awtextra.AbsoluteConstraints(520, 100, -1, -1));
btnkeluar.setText("Keluar");
67
btnkeluar.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt)
{
btnkeluarActionPerformed(evt);
}
});
getContentPane().add(btnkeluar, new
org.netbeans.lib.awtextra.AbsoluteConstraints(510, 470, -1, -1));
btnsimpan.setText("Simpan");
btnsimpan.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt)
{
btnsimpanActionPerformed(evt);
}
});
getContentPane().add(btnsimpan, new
org.netbeans.lib.awtextra.AbsoluteConstraints(520, 130, -1, 20));
getContentPane().add(jkodeadmin, new
org.netbeans.lib.awtextra.AbsoluteConstraints(90, 60, 70, 20));
getContentPane().add(jnamaadm, new
org.netbeans.lib.awtextra.AbsoluteConstraints(90, 100, 150, -1));
getContentPane().add(jalamatadm, new
org.netbeans.lib.awtextra.AbsoluteConstraints(90, 130, 140, 60));
jk.setModel(new javax.swing.DefaultComboBoxModel<>(new
String[] { "-", "Laki - Laki", "Perempuan", " " }));
getContentPane().add(jk, new
org.netbeans.lib.awtextra.AbsoluteConstraints(100, 240, 120, -1));
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);
getContentPane().add(jScrollPane1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 340, 560, 110));
getContentPane().add(jsandi, new
org.netbeans.lib.awtextra.AbsoluteConstraints(90, 210, 100, 20));
68
jnohp.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
jnohpKeyTyped(evt);
}
});
getContentPane().add(jnohp, new
org.netbeans.lib.awtextra.AbsoluteConstraints(470, 220, 100, 20));
jemail.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt)
{
jemailActionPerformed(evt);
}
});
getContentPane().add(jemail, new
org.netbeans.lib.awtextra.AbsoluteConstraints(470, 260, 100, 20));
jha.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt)
{
jhaActionPerformed(evt);
}
});
getContentPane().add(jha, new
org.netbeans.lib.awtextra.AbsoluteConstraints(470, 300, 100, 20));
jLabel9.setFont(new java.awt.Font("Tahoma", 1, 18)); //
NOI18N
jLabel9.setText("DATA ADMIN");
getContentPane().add(jLabel9, new
org.netbeans.lib.awtextra.AbsoluteConstraints(240, 0, 140, 40));
pack();
}// </editor-fold>
private void jemailActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
}
private void jhaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void btnkeluarActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
//System.exit(0);
69
dispose();
}
private void btnhapusActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
try{
int tanya = JOptionPane.showConfirmDialog(this, "Yakin akan
di hapus ?", "Konfirmasi", JOptionPane.OK_CANCEL_OPTION);
if (tanya == JOptionPane.OK_OPTION) {
kon.st.execute("delete from admin where kode_adm='" +
jkodeadmin.getText() + "'");
bersih();
btnsimpan.setEnabled(false);
btnhapus.setEnabled(false);
btnbatal.setEnabled(false);
btntambah.setEnabled(true);
btncari.setEnabled(true);
btnubah.setEnabled(false);
btnkeluar.setEnabled(true);
}
} catch (Exception v) {
JOptionPane.showMessageDialog(this, v);
}
}
private void btncariActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
try {
String s = JOptionPane.showInputDialog(this, "Input Kode
Admin", "Pencarian", JOptionPane.QUESTION_MESSAGE);
//JOptionPane.showInputDialog(this, s);
kon.rs = kon.st.executeQuery("select * from admin where
kode_adm='" + s + "'");
if (kon.rs.next()) { //jika ditemukan
JOptionPane.showMessageDialog(this, "ketemu" );
jkodeadmin.setText(kon.rs.getString(1));
jnamaadm.setText(kon.rs.getString(2));
jalamatadm.setText(kon.rs.getString(3));
jsandi.setText(kon.rs.getString(4));
jk.setSelectedItem(kon.rs.getString(5));
jnohp.setText(kon.rs.getString(6));
jemail.setText(kon.rs.getString(7));
70
jha.setText(kon.rs.getString(8));
}
} catch (Exception c) {
JOptionPane.showMessageDialog(this, c);
}
btnsimpan.setEnabled(false);
btnhapus.setEnabled(true);
btnbatal.setEnabled(true);
btntambah.setEnabled(false);
btncari.setEnabled(false);
btnubah.setEnabled(true);
btnkeluar.setEnabled(false);
}
private void btnbatalActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
nonaktif();
btnsimpan.setEnabled(false);
btnhapus.setEnabled(false);
btnbatal.setEnabled(false);
btntambah.setEnabled(true);
btncari.setEnabled(true);
btnubah.setEnabled(false);
btnkeluar.setEnabled(true);
bersih();
}
private void btnubahActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
aktif();
jkodeadmin.setEditable(false);
jnamaadm.requestFocus();
btnsimpan.setEnabled(true);
btnhapus.setEnabled(false);
btnbatal.setEnabled(true);
btntambah.setEnabled(false);
btncari.setEnabled(false);
btnubah.setEnabled(false);
btnkeluar.setEnabled(false);
}
71
private void
btntambahActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
aktif();
jkodeadmin.requestFocus();
btnsimpan.setEnabled(true);
btnhapus.setEnabled(false);
btnbatal.setEnabled(true);
btntambah.setEnabled(false);
btncari.setEnabled(false);
btnubah.setEnabled(false);
btnkeluar.setEnabled(false);
}
private void
btnsimpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(jkodeadmin.getText().equals("")
||jnamaadm.getText().equals("")
||jalamatadm.getText().equals("")
||jsandi.getText().equals("")
||jk.getSelectedItem().equals("")
||jnohp.getText().equals("")
||jemail.getText().equals("")
||jha.getText().equals("")){
JOptionPane.showMessageDialog(this, "Data belum
lengkap");
}else{
JOptionPane.showMessageDialog(this, "Data Sudah
Lengkap");
}
try {
String s = "insert into admin values ('"+
jkodeadmin.getText()+"',"
+ "'"+ jnamaadm.getText()+"',"
+ "'"+ jalamatadm.getText()+"',"
+ "'"+ jsandi.getText()+"',"
+ "'"+ jk.getSelectedItem()+"',"
+ "'"+ jnohp.getText()+"',"
+ "'"+ jemail.getText()+"',"
+ "'"+ jha.getText()+"')";
kon.st.execute(s);
btnsimpan.setEnabled(false);
btnhapus.setEnabled(false);
btnbatal.setEnabled(false);
btntambah.setEnabled(false);
72
btncari.setEnabled(true);
btnubah.setEnabled(true);
btnkeluar.setEnabled(true);
} catch (Exception b) {
//JOptionPane.showMessageDialog(null, b);
try {
kon.st.execute("update admin set nama_adm='" +
jnamaadm.getText() +"',"
+ "alamat_adm='" + jalamatadm.getText() +"',"
+ "sandi='" + jsandi.getText() +"',"
+ "jk_adm='" + jk.getSelectedItem()+"',"
+ "nohp_adm='" + jnohp.getText() +"',"
+ "email_adm='" + jemail.getText() +"',"
+ "hak_akses='" + jha.getText() +"'"
+ "where kode_adm='" + jkodeadmin.getText() + "'");
// bersih ();
// btnbatalActionPerformed(evt);
} catch (Exception d) {
JOptionPane.showMessageDialog(this , d);
}//tutup catch
bersih ();
regrid();//untuk updte secara otomatis
nonaktif();
}
}
private void jnohpKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
char s = evt.getKeyChar(); //untuk mengkhususkan event
character dilarang
if (!Character.isDigit(s)) { //jika bukan karakter digit
getToolkit().beep(); //maka akan bunyi suara
evt.consume(); //dan dihentikan
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel
setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with
the default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.ht
ml
73
*/
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(admin.class.getName()).log(java.u
til.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(admin.class.getName()).log(java.u
til.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(admin.class.getName()).log(java.u
til.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(admin.class.getName()).log(java.u
til.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new admin().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btnbatal;
private javax.swing.JButton btncari;
private javax.swing.JButton btnhapus;
private javax.swing.JButton btnkeluar;
private javax.swing.JButton btnsimpan;
private javax.swing.JButton btntambah;
private javax.swing.JButton btnubah;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
74
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.JTable jTable1;
private javax.swing.JTextField jalamatadm;
private javax.swing.JTextField jemail;
private javax.swing.JTextField jha;
private javax.swing.JComboBox<String> jk;
private javax.swing.JTextField jkodeadmin;
private javax.swing.JTextField jnamaadm;
private javax.swing.JTextField jnohp;
private javax.swing.JTextField jsandi;
// End of variables declaration
}
b. Form Beli
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/*
* To change this license header, choose License Headers in Project
Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author IUSER
*/
public class FormBeli extends javax.swing.JFrame {
DefaultComboBoxModel<String> model;
Koneksi kon = new Koneksi();
/**
75
* Creates new form FormBeli
*/
public FormBeli() {
initComponents();
kon.getConnection();
model = new DefaultComboBoxModel<>();
setCbSupplier();
CbSupplier.setModel(model);
model = new DefaultComboBoxModel<>();
setCbBarang();
CbBarang.setModel(model);
setLocationRelativeTo(this);
DataTable();
BtnSimpan.setEnabled(false);
BtnTambah.setEnabled(true);
BtnTutup.setEnabled(true);
nonaktif();
}
private void aktif() {//untuk form yang akan diaktifkan
CbSupplier.setEnabled(true);
CbBarang.setEnabled(true);
JHargaBrg.setEnabled(true);
CbStatusPembayaran.setEnabled(true);
DcTempo.setEnabled(true);
JBanyakBrg.setEnabled(true);
JTotal.setEnabled(true);
JBayar.setEnabled(true);
JHutang.setEnabled(true);
}
private void nonaktif() {//untuk form yang akan diaktifkan
CbSupplier.setEnabled(false);
CbBarang.setEnabled(false);
JHargaBrg.setEnabled(false);
CbStatusPembayaran.setEnabled(false);
DcTempo.setEnabled(false);
JBanyakBrg.setEnabled(false);
JTotal.setEnabled(false);
JBayar.setEnabled(false);
JHutang.setEnabled(false);
76
}
/**
* This method is called from within the constructor to initialize the
form.
* WARNING: Do NOT modify this code. The content of this
method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
Table = new javax.swing.JTable();
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();
CbSupplier = new javax.swing.JComboBox<>();
CbBarang = new javax.swing.JComboBox<>();
CbStatusPembayaran = new javax.swing.JComboBox<>();
DcTempo = new com.toedter.calendar.JDateChooser();
jLabel10 = new javax.swing.JLabel();
JBanyakBrg = new javax.swing.JTextField();
jLabel11 = new javax.swing.JLabel();
JTotal = new javax.swing.JTextField();
jLabel12 = new javax.swing.JLabel();
JBayar = new javax.swing.JTextField();
jLabel13 = new javax.swing.JLabel();
JHutang = new javax.swing.JTextField();
JHargaBrg = new javax.swing.JTextField();
BtnSimpan = new javax.swing.JButton();
BtnTutup = new javax.swing.JButton();
BtnTambah = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_
CLOSE);
jLabel1.setFont(new java.awt.Font("Tahoma", 0, 24)); //
NOI18N
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENT
ER);
jLabel1.setText("FORM BELI");
77
Table.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"
}
));
Table.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
TableMouseClicked(evt);
}
});
jScrollPane1.setViewportView(Table);
jLabel2.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
jLabel2.setText("Supplier");
jLabel3.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
jLabel3.setText("Barang");
jLabel4.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
jLabel4.setText("Harga Barang");
jLabel5.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
jLabel5.setText("Status Pembayaran");
jLabel6.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
jLabel6.setText("Tempo Pembayaran");
CbSupplier.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
CbSupplier.setModel(new
javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1",
"Item 2", "Item 3", "Item 4" }));
CbBarang.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
78
CbBarang.setModel(new
javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1",
"Item 2", "Item 3", "Item 4" }));
CbBarang.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt)
{
CbBarangActionPerformed(evt);
}
});
CbStatusPembayaran.setFont(new java.awt.Font("Tahoma", 0,
14)); // NOI18N
CbStatusPembayaran.setModel(new
javax.swing.DefaultComboBoxModel<>(new String[] { "Tunai",
"Kredit" }));
DcTempo.setDateFormatString("yyyy-MM-dd");
DcTempo.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
jLabel10.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
jLabel10.setText("Banyak Barang");
JBanyakBrg.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
JBanyakBrg.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
JBanyakBrgKeyReleased(evt);
}
public void keyTyped(java.awt.event.KeyEvent evt) {
JBanyakBrgKeyTyped(evt);
}
});
jLabel11.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
jLabel11.setText("Total");
JTotal.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jLabel12.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
jLabel12.setText("Pembayaran");
JBayar.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
JBayar.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
79
JBayarKeyPressed(evt);
}
public void keyReleased(java.awt.event.KeyEvent evt) {
JBayarKeyReleased(evt);
}
});
jLabel13.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
jLabel13.setText("Hutang");
JHutang.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
JHargaBrg.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
BtnSimpan.setText("SIMPAN");
BtnSimpan.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt)
{
BtnSimpanActionPerformed(evt);
}
});
BtnTutup.setText("TUTUP");
BtnTutup.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt)
{
BtnTutupActionPerformed(evt);
}
});
BtnTambah.setText("TAMBAH");
BtnTambah.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt)
{
BtnTambahActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new
javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
80
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay
out.Alignment.TRAILING, false)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addComponent(jLabel10,
javax.swing.GroupLayout.PREFERRED_SIZE, 138,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
.addComponent(JBanyakBrg))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addComponent(jLabel3,
javax.swing.GroupLayout.PREFERRED_SIZE, 138,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
.addComponent(CbBarang,
javax.swing.GroupLayout.PREFERRED_SIZE, 149,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addComponent(jLabel4,
javax.swing.GroupLayout.PREFERRED_SIZE, 138,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
.addComponent(JHargaBrg))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
81
.addComponent(jLabel5,
javax.swing.GroupLayout.PREFERRED_SIZE, 138,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
.addComponent(CbStatusPembayaran,
javax.swing.GroupLayout.PREFERRED_SIZE, 149,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addComponent(jLabel6,
javax.swing.GroupLayout.PREFERRED_SIZE, 138,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
.addComponent(DcTempo,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addComponent(jLabel2,
javax.swing.GroupLayout.PREFERRED_SIZE, 138,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
.addComponent(CbSupplier,
javax.swing.GroupLayout.PREFERRED_SIZE, 149,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RE
LATED, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay
out.Alignment.TRAILING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(BtnTambah,
javax.swing.GroupLayout.PREFERRED_SIZE, 146,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
82
.addComponent(BtnSimpan,
javax.swing.GroupLayout.PREFERRED_SIZE, 146,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel11,
javax.swing.GroupLayout.PREFERRED_SIZE, 138,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RE
LATED)
.addComponent(JTotal,
javax.swing.GroupLayout.PREFERRED_SIZE, 146,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel12,
javax.swing.GroupLayout.PREFERRED_SIZE, 138,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RE
LATED)
.addComponent(JBayar,
javax.swing.GroupLayout.PREFERRED_SIZE, 146,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel13,
javax.swing.GroupLayout.PREFERRED_SIZE, 138,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RE
LATED)
.addComponent(JHutang,
javax.swing.GroupLayout.PREFERRED_SIZE, 146,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(BtnTutup,
javax.swing.GroupLayout.PREFERRED_SIZE, 146,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(jLabel1,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 667,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
83
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay
out.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(CbSupplier,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay
out.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(CbBarang,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay
out.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(JHargaBrg,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay
out.Alignment.BASELINE)
.addComponent(jLabel5)
84
.addComponent(CbStatusPembayaran,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay
out.Alignment.TRAILING)
.addComponent(jLabel6)
.addComponent(DcTempo,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay
out.Alignment.BASELINE)
.addComponent(jLabel10)
.addComponent(JBanyakBrg,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay
out.Alignment.BASELINE)
.addComponent(jLabel11)
.addComponent(JTotal,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RE
LATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay
out.Alignment.BASELINE)
.addComponent(jLabel12)
.addComponent(JBayar,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RE
LATED)
85
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay
out.Alignment.BASELINE)
.addComponent(jLabel13)
.addComponent(JHutang,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RE
LATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay
out.Alignment.BASELINE)
.addComponent(BtnSimpan)
.addComponent(BtnTambah))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RE
LATED)
.addComponent(BtnTutup)))
.addGap(29, 29, 29)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE, 195,
Short.MAX_VALUE)
.addContainerGap())
);
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING)
.addComponent(jPanel1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING)
.addComponent(jPanel1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
);
86
pack();
}// </editor-fold>
private void
CbBarangActionPerformed(java.awt.event.ActionEvent evt) {
String kdBrg = (String) CbBarang.getSelectedItem();
String[] data = kdBrg.split("-", 2);
if (kdBrg.equals("Pilih")) {
JHargaBrg.setText(null);
} else {
try {
bukadbs();
String sql = "select harga_beli from barang where kode_brg
= '" + data[0] + "'";
ruser = stm.executeQuery(sql);
if (ruser.next()) {
JHargaBrg.setText(ruser.getString(1));
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Data 'Harga
Barang' tidak mau menampilkan");
System.out.println(e.getMessage());
}
}
}
private void JBanyakBrgKeyTyped(java.awt.event.KeyEvent evt) {
}
private void JBanyakBrgKeyReleased(java.awt.event.KeyEvent
evt) {
if (evt.getKeyCode() == 10) {
int total = Integer.parseInt(JHargaBrg.getText()) *
Integer.parseInt(JBanyakBrg.getText());
JTotal.setText(String.valueOf(total));
JHutang.setText(String.valueOf(total));
JBayar.requestFocus();
}
}
private void JBayarKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
}
private void JBayarKeyReleased(java.awt.event.KeyEvent evt) {
if (evt.getKeyCode() == 10) {
87
int total = Integer.parseInt(JHargaBrg.getText()) *
Integer.parseInt(JBanyakBrg.getText());
int hutang = total - Integer.parseInt(JBayar.getText());
if (hutang < 0) {
JHutang.setText("0");
} else {
JHutang.setText(String.valueOf(hutang));
}
}
}
private void
BtnSimpanActionPerformed(java.awt.event.ActionEvent evt) {
Insert();
}
private void TableMouseClicked(java.awt.event.MouseEvent evt) {
//KlikTable();
}
private void BtnTutupActionPerformed(java.awt.event.ActionEvent
evt) {
this.dispose();
}
private void
BtnTambahActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
aktif();
CbSupplier.requestFocus();
BtnSimpan.setEnabled(true);
BtnTambah.setEnabled(false);
BtnTutup.setEnabled(true);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel
setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with
the default look and feel.
88
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.ht
ml
*/
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(FormBeli.class.getName()).log(ja
va.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(FormBeli.class.getName()).log(ja
va.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(FormBeli.class.getName()).log(ja
va.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(FormBeli.class.getName()).log(ja
va.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FormBeli().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton BtnSimpan;
private javax.swing.JButton BtnTambah;
private javax.swing.JButton BtnTutup;
private javax.swing.JComboBox<String> CbBarang;
private javax.swing.JComboBox<String> CbStatusPembayaran;
private javax.swing.JComboBox<String> CbSupplier;
private com.toedter.calendar.JDateChooser DcTempo;
private javax.swing.JTextField JBanyakBrg;
89
private javax.swing.JTextField JBayar;
private javax.swing.JTextField JHargaBrg;
private javax.swing.JTextField JHutang;
private javax.swing.JTextField JTotal;
private javax.swing.JTable Table;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
// End of variables declaration
Connection Con;
Statement stm;
ResultSet ruser;
public void bukadbs() {
try {
Class.forName("com.mysql.jdbc.Driver");
Con =
DriverManager.getConnection("jdbc:mysql://localhost/pembelian",
"root", "");
stm = (Statement) Con.createStatement();
System.out.println("Koneksi terhubung");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "KESALAHAN!");
JOptionPane.showMessageDialog(null, "Database tidak
terhubung");
System.out.println(e.getMessage());
}
}
private void setCbSupplier() {
try {
bukadbs();
String sql = "select kode_spl, nama_spl from supplier";
ruser = stm.executeQuery(sql);
model.addElement("Pilih");
while (ruser.next()) {
model.addElement(ruser.getString(1) + " - " +
ruser.getString(2));
}
90
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Data 'ComboBox
Supplier' tidak mau menampilkan");
System.out.println(e.getMessage());
}
}
private void setCbBarang() {
try {
bukadbs();
String sql = "select kode_brg, nama_brg from barang";
ruser = stm.executeQuery(sql);
model.addElement("Pilih");
while (ruser.next()) {
model.addElement(ruser.getString(1) + " - " +
ruser.getString(2));
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Data 'ComboBox
Barang' tidak mau menampilkan");
System.out.println(e.getMessage());
}
}
private void Insert() {
String kdSpl = (String) CbSupplier.getSelectedItem();
String[] dataSpl = kdSpl.split("-", 2);
String kdBrg = (String) CbBarang.getSelectedItem();
String[] dataBrg = kdBrg.split("-", 2);
try {
bukadbs();
String sql = "insert into beli
(kode_spl,kode_brg,qty,status_pembayaran,jatuh_tempo,tgl_beli,total
_hutang) values (?,?,?,?,?,NOW(),?)";
PreparedStatement pst = Con.prepareStatement(sql);
pst.setString(1, dataSpl[0]);
pst.setString(2, dataBrg[0]);
pst.setString(3, JBanyakBrg.getText());
pst.setString(4, (String)
CbStatusPembayaran.getSelectedItem());
SimpleDateFormat simpleDateFormat = new
SimpleDateFormat("yyyy-MM-dd");
pst.setString(5,
simpleDateFormat.format(DcTempo.getDate()));
pst.setString(6, JHutang.getText());
pst.execute();
91
Con.close();
DataTable();
JOptionPane.showMessageDialog(null, "Data Tersimpan");
} catch (SQLException ex) {
Logger.getLogger(FormBeli.class.getName()).log(Level.SEVERE,
null, ex);
JOptionPane.showMessageDialog(null, "Gagal Menyimpan
Data!");
}
}
private void DataTable() {
Object Header[] = {"No Faktur", "Supplier", "Barang", "Status",
"Tempo", "Hutang"};
DefaultTableModel data = new DefaultTableModel(null,
Header);
Table.setModel(data);
try {
bukadbs();
String sql = "SELECT * FROM beli INNER JOIN supplier
ON beli.kode_spl = supplier.kode_spl INNER JOIN barang ON
beli.kode_brg = barang.kode_brg ORDER BY beli.no_faktur DESC";
ruser = stm.executeQuery(sql);
while (ruser.next()) {
String Column1 = ruser.getString(1);
String Column2 = ruser.getString(9);
String Column3 = ruser.getString(14);
String Column4 = ruser.getString(5);
String Column5 = ruser.getString(6);
String Column6 = ruser.getString(7);
String Column[] = {Column1, Column2, Column3,
Column4, Column5, Column6};
data.addRow(Column);
}
Con.close();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "error :" +
e.getMessage());
}
}
private void KlikTable() {
int row = Table.getSelectedRow();
String noFaktur = (Table.getModel().getValueAt(row,
0).toString());
try {
92
bukadbs();
String sql = "SELECT * FROM beli INNER JOIN supplier
ON beli.kode_spl = supplier.kode_spl INNER JOIN barang ON
beli.kode_brg = barang.kode_brg WHERE beli.no_faktur='" +
noFaktur + "'";
//String sql="SELECT supplier.kode_spl, supplier.nama_spl,
barang.kode_brg, barang.nama_brg, barang.harga_beli,
beli.status_pembayaran, beli.jatuh_tempo, beli.qty FROM beli
INNER JOIN supplier ON beli.kode_spl = supplier.kode_spl INNER
JOIN barang ON beli.kode_brg = barang.kode_brg WHERE
beli.no_faktur='"+noFaktur+"'";
ruser = stm.executeQuery(sql);
if (ruser.next()) {
CbSupplier.setSelectedItem(ruser.getString(9) + " - " +
ruser.getString(10));
CbBarang.setSelectedItem(ruser.getString(14) + " - " +
ruser.getString(15));
JHargaBrg.setText(ruser.getString(16));
CbStatusPembayaran.setSelectedItem(ruser.getString(5));
Date dates = new SimpleDateFormat("yyyy-MM-
dd").parse(ruser.getString(6));
DcTempo.setDate(dates);
JBanyakBrg.setText(ruser.getString(4));
int total = Integer.parseInt(ruser.getString(16)) *
Integer.parseInt(ruser.getString(4));
JTotal.setText(String.valueOf(total));
Con.close();
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error : " +
e.getMessage());
System.out.print(e.getMessage());
}
}
}
93
3.5.2. Blackbox Testing
A. Form Login Admin
Tabel III.18.
Blackbox Testing Form Login Admin
No Skenario
Pengujian
Test Case Tujuan Hasil Hasil
Pengujian
kesimpulan
1. Id pengguna
dan Password
tidak diisi
kemuadian
klik tombol
Login.
Nama id
pengguna:
(kosong)
Password:
(kosong)
Sistem akan
menolak akses
dan
menampilkan
pesan “Text
Box id
pengguna dan
kata sandi
tidak boleh
kosong”
Sesuai
harapan
Valid
2. Mengetikan
id pengguna
dan password
tidak diisi
atau kosong
kemudian klik
tombol login.
Id
pengguna:
tina97
Password:
(kosong)
Sistem akan
menolak akses
dan
menampilkan
pesan “Text
Box id
pengguna dan
kata sandi
tidak boleh
kosong”
Sesuia
harapan
Valid
3. Id pengguna
tidak diisi
(kosong) dan
password
diisi
kemudian klik
tombol login.
Id
pengguna:
(kosong)
Password:
11160878
Sistem akan
menolak akses
dan
menampilkan
pesan “Text
Box id
pengguna dan
kata sandi
tidak boleh
kosong”
Sesuai
harapan
Valid
4. Mengetikan
salah satu
kondisi salah
pada id
pengguna
atau password
kemudian klik
tombol login.
Id
pengguna:
tina97
(benar)
Password:
11160
(salah)
Sistem akan
menolak dan
menampilkan
pesan “Text
Box id
pengguna dan
kata sandi
tidak boleh
kosong”
Sesuai
harapan
Valid
5. Mengetikan
id pengguna
Id
pengguna:
Sistem akan
menampilkan
Sesuai
harapan
Valid
94
dan password
dengan data
yang benar
kemudian klik
tombol login.
tina97
(benar)
Password:
11160878
(benar)
akses login
akan
menampilkan
menu utama.
B. Form Data Beli
Tabel III.19.
Blackbox Testing Form Data Beli
No Skenario
Pengujian
Test Case Tujuan Hasil Hasil
Pengujian
kesimpulan
1. Form
tambah data
pebelian jika
field isian
data
pembelian
dikosongkan
kemudian
klik simpan
Kode
Supplier:
(kosong)
Kode
Barang:
(Kosong)
Harga
Barang:
(Kosong)
Status
Pembayaran:
(Kosong)
Banyak
Barang:
(Kosong)
Total:
(Kosong)
Pembayaran:
(Kosong)
Hutang:
(Kosong)
Sistem akan
menolak
akses dan
menampilkan
pesan “data
belum
lengkap”
Sesuai
harapan
Valid
2. Mengisi
semua text
field
Kode
Supplier:
(S03)
Kode
Barang:
(b05)
Harga
Barang:
(50000)
Status
Pembayaran:
(Kredit)
Banyak
Barang: (2)
Total:
Sistem akan
menerima
dan
menampilkan
pesan “ Data
sudah
lengkap”
Sesuai
harapan
Valid
95
(100000)
Pembayaran:
(50000)
Hutang:
(50000)
3.5.3. Spesifikasi Hadware dan Software
Kebutuhan Keterangan
Sistem Windows 7
Processor AMD E1.2100 APV with Radeon (TM)
HD Graphics 100 GHZ
RAM 2 GB
Hardisk 500 GB
Monitor 11,6”
Keyboard Standard PS/2 Keyboard
Printer EPSON L120 Series
Mouse DELUX M136
Software Netbeans IDE 8.1
Bahasa Pempograman : Java Netbeans
Aplikasi Pendukung : Xampp v3.2.1
Database : MySQL
Anti Virus : Smadav 2019