24
BAB III
ANALISIS SISTEM BERJALAN
3.1. Tinjauan Institusi
Dalam tinjauan perusahaan ini berisi sejarah berdirinya toko Saung Bolang,
struktur organisasi serta fungsi dari masing-masing bagian yang ada di dalam toko
Saung Bolang.
3.1.1. Sejarah Institusi
Saung Bolang merupakan tempat dimana para konsumen dapat menyewa
peralatan kemah. Saung Bolang terbentuk dari hobi owner. Owner Saung Bolang
bernama Dadan Kurniawan, Ia sangat suka naik gunung, karena hobinya ini Ia
memberanikan diri untuk membuka usaha sendiri dengan jenis usaha penyewaan
perlengkapan outdoor. Saung Bolang pertama kali didirikan pada tanggal 01 Maret
2015 di samping kanan stasiun Karawang depan tiki, hampir 2 tahun “Saung Bolang”
pindah lokasi pada bulan Februari 2017 di ruko archadia pasar bersih Karawang.
Adapun persyaratan yang harus di serahkan sebagai jaminan saat konsumen
hendak melakukan transaksi penyewaan di saung bolang yaitu seperti menyerahkan
Kartu Identitas ( KTP atau SIM ) dan foto ukuran 3 x 4 (1 lembar).
Tidak ada minimal ataupun maksimal jumlah peralatan yang boleh disewa di
Saung Bolang. Untuk pemesanan langsung datang ke Saung Bolang langsung di
layani oleh pegawai yang ada di sana. Pemesanan dapat dilakukan dengan cara
online via whatsaap namun hanya berlaku untuk orang-orang terdekat saja dan hanya
untuk pelanggan di daerah Karawang saja.
25
apabila terjadi kerusakan maupun kehilangan peralatan yang disewa oleh
pelanggan yaitu jika terjadi kerusakan maka diganti dengan sesuai kerusakan yang
terdapat pada peralatan tersebut. Dan apabila terjadi kehilangan, maka pelanggan
harus mengganti peralatan yang hilang tersebut sesuai dengan harga peralatan
tersebut baik berupa barang yang sama maupun dengan uang tunai.
3.1.2. Struktur Organisasi dan Fungsi
Untuk mengolah perusahaan dengan baik dan optimal, terutama terhadap sumber daya
manusia, perusahaan menerapkan manajemen yang dituangkan dalam bentuk struktur organisasi
merupakan sarana yang sangat penting untuk menjalankan fungsinya. Adapun struktur organisasi ini
sendiri dapat dikatakan sebagai suatu kerangka yang mewujudkan suatu pola tetapi dari hubungan
antara kedudukan dan peranan dalam suatu kerjasama. Adapun struktur organisasi yang terdapat
pada tempat penyewaan Saung Bolang adalah sebagai berikut:
A. Struktur Organisasi
\
Gambar III. 1.
Struktur Organisasi
Sumber : Struktur Organisasi Saung Bolang
Owner
Pramuniaga
Kasir
26
A. Uraian Tugas Tanggung Jawab
1. Owner atau Pemilik toko bertugas memonitor grafik pemasukan dan
pengeluaran kas dan menganalisa laba rugi perusahaan
2. Pramuniaga bertugas untuk menjaga toko dan melayani pelanggan
3. Kasir bertugas untuk menginput data transaksi yang berlangsung dan
membuat laporan keuangan pada periode yang sudah ditentukan
3.2. Tinjauan Kasus
3.2.1. Prosedur Sistem Berjalan
1. Prosedur Penyewaan Barang Sewa
Customer yang akan menyewa peralatan kemah datang ke lokasi “Saung
Bolang” untuk melihat-lihat katalog barang dan memilih barang, kemudian setelah
menentukan barang yang akan disewa, customer meminta list harga sebagai acuan
dalam menetapkan harga sewa barang, setelah harga ditentukan, kemudian pelanggan
menyerahkan informasi barang yang akan disewa serta KTP sebagai jaminan kepada
pramuniaga, lalu dibuatkan form penyewaan barang oleh pramuniaga dan akan
dilakukan tranksaksi pembayaran oleh pelanggan kepada kasir dan kemudian kasir
memberikan nota pembayaran, sistem pembayaran di “Saung Bolang” dapat berupa
pembayaran DP maupun pembayaran secara lunas.
2. Prosedur Pengembalian Barang Sewa
Pelanggan yang akan mengembalikan barang yang telah sewa harus membawa
peralatan yang disewa tersebut sesuai dengan daftar sewaan yang telah ditanda
tangani oleh pramuniaga Saung Bolang, setelah itu pramuniaga akan mengecek
apakah barang yang dikembalikan telah sesuai dengan barang yang disewa atau ada
tidaknya cacat dari barang yang telah disewa tersebut. Apabila saat mengembalikan
27
barang sewa ada kehilangan salah satu barang sewa atau barang yang cacat, maka
pelanggan tersebut harus mengganti dengan merk dan harga yang sama dari barang
yang dihilangkan, dan atau membayar denda atas barang yang ditemukan kecacatan
tersebut. Namun apalagi saat proses pengembalian pelanggan dapat mengembalikan
barang yang disewa tanpa ada cacat atau hilang, maka pramuniaga akan
mengembalikan KTP pelanggan yang sebelumnya telah dijadikan sebagai jaminan.
3. Prosedur Pembuatan Laporan Transaksi Penyewaan
Pada periode satu bulan, pramuniaga akan merinci seluruh transaksi yang telah
diterima selama satu bulan terakhir dan kemudian meghitung total biaya dari
transaksi tersebut dan kemudian dibuatkan laporan manual berupa laporan cetak
yang masih di program menggunakan microsoft excel, kemudian laporan tersebut
diserahkan kepada owner Saung Bolang untuk dicek kembali.
28
3.2.2. Activity Diagram Sistem Berjalan
Pelanggan Pramuniaga Kasir Owner
Memilih barang
Sesuai katalog
Menyerahkan informasi
barang dan harga
Menerima form dan
menandatangani form
menyerakan KTP
sebagai jaminan
DPLunas
Menerima nota
pembayaran
Jika sudah pada waktu
pengembalian, pelanggan
menyerahkan barang sewa
Menerima KTP
End
Menerima list
harga dan barang
Menerima informasi
barang dan membuat
form penyewaan
Memberikan form
penyewaan untuk
di tanda tangani
Menyerahkan list
harga dan barang
Menerima pembayaran
Membuat nota
pembayaran
Menyerahkan nota
pembayaran
Menerima barang sewa
Menyerahkan KTP pelanggan
Membuat laporan
transaksi penyewaan
Menerima laporan
transaksi penyewaan
Menandatangani laporan
End
Gambar III. 2.
Activity Diagram
29
3.2.3. Spesifikasi Bentuk Dokumen Masukan
Bentuk dokumen masukan adalah bentuk dari dokumen-dokumen yang masuk atau
diterima untuk melakukan proses. Di bawah ini adalah uraian bentuk dokumen masukan yang ada
dalam sistem penyewaan peralatan kemah di Saung Bolang .
1. Nama Dokumen : Form penyewaan peralatan kemah
Fungsi : Untuk penyewaan peralatan kemah
Sumber : Pelanggan
Tujuan : Pramuniaga
Media : Kertas
Frekuensi : Setiap kali penyewaan peralatan kemah
Jumlah : 1 lembar
Bentuk : Lampiran A.1
2. Nama Dokumen : KTP
Fungsi : Sebagai jaminan barang yang disewa
Sumber : Pelanggan
Tujuan : Pramuniaga
Media : Kertas
Frekuensi : Setiap kali penyewaan peralatan kemah
Jumlah : 1 lembar
Bentuk : Lampiran A.2
30
3.2.4. Spesifikasi Bentuk Dokumen Keluaran
Bentuk dokumen keluaran adalah bentuk dari dokumen-dokumen yang keluar atau
diberikan untuk melakukan proses. Di bawah ini adalah uraian bentuk dokumen keluaran yang ada
dalam sistem penyewaan peralatan kemah di Saung Bolang.
1. Nama Dokumen : Nota pembayaran penyewaan barang
Fungsi : Untuk persetujuan penyewaan barang
Sumber : Kasir
Tujuan : Pelanggan
Media : Kertas
Frekuensi : Setiap kali persetujuan penyewaan barang
Jumlah : 1 lembar
Bentuk : Lampiran B.1
2. Nama Dokumen : List barang dan harga
Fungsi : Untuk pelanggan menentukan barang sewa
Sumber : Pramuniaga
Tujuan : Pelanggan
Media : Kertas
Frekuensi : Setiap akan menyewa barang
Jumlah : 1 lembar
Bentuk : Lampiran B.2
31
3. Nama Dokumen : Laporan Bulanan
Fungsi : Sebagai bukti transaksi penyewaan selama sebulan terakhir
Sumber : Kasir
Tujuan : Owner
Media : Kertas
Frekuensi : Setiap bulan
Jumlah : 1 lembar
Bentuk : Lampiran B.3
3.2.5. PermasalahanPokok
Sistem penyewaan peralatan kemah yang telah berjalan di Saung Bolang pada umumnya
telah berjalan dengan baik. Dalam proses pengolahan data penyewaan pada Saung Bolang masih
menggunakan manual. Adapun kelemahannya adalah sebagai berikut :
1. Belum adanya sistem yang terkomputerisasi.
2. Belum adanya system laporan penyewaan yang dibutuhkan oleh owner, sehingga banyaknya
data yang redudan
3.2.6. PemecahanMasalah
Untuk mengatasi masalah tersebut, saran dari penulis agar dibuatnya sistem yang dibutuhkan
yang telah komputerisasi yaitu:
1. Perlu adanya sistem yang telah terkomputerisasi
2. Adanya sistem yang telah terkomputerisasi dapat berguna bagi pegawai dan owner, karena data
laporan yang di dapat dapat lebih akurat, cepat dan tidak redudan.
32
3.3 Analisis kebutuhan Software
3.3.1. Tahapan Analisis
Kebutuhan system yang dibutuhkan Saung Bolang terdiri dari input, proses,
output sistem penyewaan. Analisis kebutuhan sistem dilakukan untuk mengetahui
data apa saja yang dibutuhkan oleh sistem, sehingga dapat diproses dan
menghasilkan informasi yang dibutuhkan Toko Saung Bolang.
Pada dasarnya sistem yang dibangun tidaklah jauh berbeda dengan sistem yang
telah ada. Sistem yang dibangun hanyalah peralihan dari sistem manual ke sistem
komputerisasi. Sistem komputerisasi diharapkan dapat membantu dan memudahkan
pekerjaan karyawan Saung Bolang. Berikut ini adalah spesifikasi kebutuhan dari
sistem penyewaan pada Saung Bolang.
1. Halaman Admin
A.1 Admin Login
A.2 Admin Mengelola Data Pelanggan
A.3 Admin Mengelola Data Barang
A.4 Admin Mengelola Transaksi Penyewaan
A.5 Admin Mengelola Transaksi Pengembalian
A.6 Admin Mengelola Data Laporan
2. Halaman Kasir
C.1 Mengelola Data Transaksi
C.2 Mengelola Data Laporan
33
3.3.2. Use Case Diagram
A. Use Case Menu Login
Gambar III. 3.
Use Case Login
34
Tabel III. 1.
Deskripsi Use Case Login
Use Case Narative Login
Tujuan Melakukan login dan masuk ke dalam sistem
penyewaan
Deskripsi Sistem ini memungkinkan aktor untuk mengakses
sistem penyewaan
Skenario Utama
Aktor Admin
Kondisi Awal Aktor membuka aplikasi penyewaan
Aksi Aktor Reaksi Sistem
1.Aktor memilih menu
login
2.Aktor memilih menu
Batal
Sistem akan menampilkan textbox untuk mengisi
nama pengguna dan password
Sistem akan membatalkan proses dan keluar dari
aplikasi
Kondisi akhir Jika perintah sesuai maka sistem akan masuk
kedalam aplikasi penyewaan dan aktor dapat
melakukan aktvitas didalam sistem
35
B. Use Case Menu Utama
Gambar III. 4.
Use Case Menu Utama
36
Tabel III. 2.
Deskripsi Use Case Menu Utama
Use Case Narative Menu Utama
Tujuan Kasir dapat melihat data yang ada di dalam halaman menu
utama
Deskripsi
Sistem ini memungkinkan aktor untuk masuk ke halaman
menu utama yang didalamnya ada menu master, menu
transaksi, dan menu laporan
Skenario Utama
Aktor Admin
Kondisi Awal Aktor membuka aplikasi halaman menu utama
Aksi Aktor Reaksi Sistem
Aktor memilih
menu master
Sistem ini akan menampilkan informasi data pengguna,
data barang, data kategori barang, dan data akun
Aktor memilih
menu transaksi
Sistem ini akan menampilkan informasi data penyewaan,
data pengembalian, dan data jurnal
Aktor memilih
menu laporan
Sistem ini akan menampilkan informasi menu cetak
laporan penyewaan dan laporan pengembalian
Kondisi akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang aktor inginkan
37
C. Use Case Menu Master
Gambar III. 5.
Use Case Menu Master
38
Tabel III. 3.
Deskripsi Use Case Menu Master
Use Case Narative Menu Master
Tujuan Admin dapat melihat data yang ada di dalam halaman
menu master
Deskripsi
Sistem ini memungkinkan aktor untuk masuk ke halaman
menu master yang didalamnya ada data pengguna, data
barang, data kategori barang, data pelanggan, dan data
akun
Skenario Utama
Aktor Admin
Kondisi Awal Aktor membuka aplikasi halaman menu master
Aksi Aktor Reaksi Sistem
Aktor memilih
menu pengguna Sistem ini akan menampilkan informasi data pengguna
Aktor memilih
menu barang Sistem ini akan menampilkan informasi data barang
Aktor memilih
menu kategori
barang
Sistem ini akan menampilkan informasi data kategori
barang
Aktor memilih
menu pelanggan Sistem ini akan menampilkan informasi data pelanggan
Aktor memilih
menu akun Sistem ini akan menampilkan informasi data akun
Kondisi akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang aktor inginkan
39
D. Use Case Menu Transaksi
Gambar III. 6.
Use Case Menu Transaksi
40
Tabel III. 4.
Deskripsi Use Case Menu Transaksi
Use Case Narative Menu Transaksi
Tujuan Admin dapat melihat data yang ada di dalam halaman
menu transaksi
Deskripsi
Sistem ini memungkinkan aktor untuk masuk ke halaman
menu transaksi yang didalamnya ada data penyewaan, data
pengembalian, dan data jurnal
Skenario Utama
Aktor Admin
Kondisi Awal Aktor membuka aplikasi halaman menu transaksi
Aksi Aktor Reaksi Sistem
Aktor memilih
menu transaksi
penyewaan
Sistem ini akan menampilkan informasi data penyewaan
Aktor memilih
menu transaksi
pengembalian
Sistem ini akan menampilkan informasi data pengembalian
Aktor memilih
menu jurnal Sistem ini akan menampilkan informasi data jurnal
Kondisi akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang aktor inginkan
41
E. Use Case Menu Laporan
Gambar III. 7.
Use Case Menu Laporan
42
Tabel III. 5.
Deskripsi Use Case Menu Laporan
Use Case Narative Menu Laporan
Tujuan Admin dapat melihat data yang ada di dalam halaman
menu laporan
Deskripsi
Sistem ini memungkinkan aktor untuk masuk ke halaman
menu laporan yang didalamnya ada cetak data penyewaan
dan cetak data pengembalian
Skenario Utama
Aktor Admin
Kondisi Awal Aktor membuka aplikasi halaman menu laporan
Aksi Aktor Reaksi Sistem
Aktor memilih
menu cetak data
penyewaan
Sistem ini akan menampilkan informasi data pengguna
Aktor memilih
menu cetak data
pengembalian
Sistem ini akan menampilkan informasi data barang
Kondisi akhir Jika perintah sesuai maka sistem akan menampilkan apa
yang aktor inginkan
43
3.3.3. Rancangan Activity Diagram
A. Activity Diagram Menu Login
Admin Sistem
Melakukan login
Memasukan username
& password
Mengelola Menu
Master
Mengelola Menu
Laporan
Start
Mengelola Menu
Transaksi
Logout
End
Memvalidasi
Username &
password
Masuk ke
menu utama
Gagal login
Valid
Tidak
valid
END
Gambar III. 8.
Activity Diagram Login
44
B. Activity Diagram Menu Utama
Admin Sistem
Membuka Menu Utama
Mengelola Menu
Master
Mengelol Menu
Transaksi
Start
Krmbali Ke
Menu Utama
Mengelola Menu
Laporan
Menampilkan Halaman
Menu Utama
END
Menampilkan Halaman
Menu Utama
Gambar III. 9.
Activity Diagram Menu Utama
45
C. Activity Digram Menu Master
Admin Sistem
Membuka Menu Master
Mengelola
Menu User
Mengelol Menu
Pelanggan
Start
Mengelola
Menu Barang
Krmbali Ke
Menu Utama
Mengelola
Menu Akun
Menampilkan Halaman
Menu Utama
END
Menampilkan Halaman
Menu Master
Gambar III. 10.
Activity Diagram Menu Master
46
C. Activity Diagram Menu Transaksi
Admin Sistem
Membuka Menu Transaksi
MengelolaTransaksi
Penyewaan
Mengelol Transaksi
Pengembalian
Start
Krmbali Ke
Menu Utama
Mengelola
TransaksiJurnal
Menampilkan Halaman
Menu Utama
END
Menampilkan Halaman
Menu Transaksi
Gambar III. 11.
Activity Diagram Menu Transaksi
47
D. Activity Diagram Menu Laporan
Admin Sistem
Membuka Menu Laporan
Mencetak Laporan
Penyewaan
Start
Krmbali Ke
Menu Utama
Mencetak Laporan
Pengembalian
Menampilkan Halaman
Menu Utama
END
Menampilkan Halaman
Menu Laporan
Gambar III. 12.
Activity Diagram Menu Laporan
48
E. Rancangan Dokumen Sistem Usulan
A. Dokumen masukan
1. Nama Dokumen : Form Penyewaan
Fungsi : Sebagai bukti penyewaan barang
Sumber : Kasir
Tujuan : Pelanggan
Media : Kertas
Jumlah : 1 lembar
Frekuensi : Setiap pelanggan yang akan menyewa barang
Bentuk : Lampiran A.1
2. Nama Dokumen : KTP
Fungsi : Sebagai jaminan barang yang disewa
Sumber : Pelanggan
Tujuan : Pramuniaga
Media : Kertas
Frekuensi : Setiap kali penyewaan peralatan kemah
Jumlah : 1 lembar
Bentuk : Lampiran A.2
B. Dokumen keluaran
1. Nama Dokumen : Nota Pembayaran
Fungsi : Sebagai bukti pembayaran
Sumber : Kasir
Tujuan : Pelanggan
Media : Kertas
49
Jumlah : 1 lembar
Frekuensi : Setiap kali membayar
Bentuk : Lampiran B1
2. Nama Dokumen : Laporan Bulanan
Fungsi : Sebagai bukti transaksi penyewaan selama sebulan terakhir
Sumber : Kasir
Tujuan : Owner
Media : Kertas
Frekuensi : Setiap bulan
Jumlah : 1 lembar
Bentuk : Lampiran B.3
50
3.4. Desain
3.4.1. Entity Relationship Diagram ( ERD )
Detail_sewa
akun
sewa
Detail_kembali
kembali
jurnal
Detail_jurnal
Pelanggan
user
Kat_barang
barang
Mmemiliki
1
memiliki1
M
melakukan1
M
memiliki
1
M
melakukan
1
1
memiliki
M
memiliki1 M
memiliki
M
1
mengelola
M
1
mengelola
1
M
memiliki
M
1
melakukan11
1
melakukan melakukan
1
11
1
Ket
ukem
ubay
Kd_user
kd_kembali
tgl_kembali
kd_sewa
total
kd_plg
kd_kembali jml kd_brgkd_brg
nm_brgharga
jumlah
kd_kat
kd_katjenis
kd_plg
nik nm_plg no_tlp
kd_sewa
jml_sewa
subtotalkd_brg
kd_plg
tgl_kembalikd_user
tanggal
kd_sewa
ubay
ukem
ket
total
tunggakan
nm_jurnaltglno_jurnalid_transaksi
no_jurnal
kredit
debet
id_akun
id_akun
jns_akun nm_akun
password
aksesnm_user
kd_user
Gambar III. 13.
Entity Relationship Diagram
51
3.4.2. Logical Structure Record ( LRS )
akun
id_akun (PK)
nm_akunjns_akun
detail_jurnal
no_jurnal (FK)
debetkredit
jurnal
no_jurnal (PK)
nm_jurnaltgl
barang
kd_brgl (PK)
nm_brghargajumlah
kd_kat (FK)
kat_barang
kd_kat (PK
jenis
sewa
kd_sewa (PK)
tanggaltgl_kembaliubayukemtunggakankettotal
kd_plg (FK)
kembali
kd_kembali (PK)
tgl_kembaliubayukemkettotal
kd_plg (FK)
detail_kembali
kd_kembali (FK)
jml
detail_sewa
kd_sewa (FK)kd_brg (FK)
jml_sewasubtotal
user
kd_user (PK)
nm_userpasswordakses
pelanggan
kd_plg (PK)
niknm_plgno_telp
id_transaksiid_akun (FK)
kd_user (FK)kd_sewa (FK)
kd_brg (FK)
.
kd_user (FK)
1M
1
M
1
1 1
M
1
1
1
M
1
1
1
M
1
1
1
1
1 M
1
M
1
M
M
1
Gambar III. 14.
Logical Record Structure
52
3.3.3. Spesifikasi File
1. Spesifikasi File Akun
Nama Database : penyewaan_ta
Nama File : akun
Tipe File : Menu Master
Akses File : Random
Panjang Record : 60 Karakter
Field key : id_akun
Tabel III. 6.
Spesifikasi File Pelanggan
No Elemen data Akronim Tipe Panjang Ket
1 Identitas akun id_akun Varchar 20 Primary key
2 Nama akun nm_akun Varchar 20 FK
3 Jenis akun jns_akun Varchar 20 FK
2. Spesifikasi File Barang
Nama Database : penyewaan_ta
Nama File : barang
Tipe File : File master
Akses File : Random
Panjang Record : 82 Karakter
Field Key : kd_barang
53
Tabel III. 7.
Spesifikasi File Barang
No Elemen data Akronim Tipe Panjang Ket
1 Kode barang kd_barang Varchar 20 Primary Key
2 Nama barang nm_barang Varchar 20 FK
3 Harga jumlah Harga Int 11 FK
4 Jumlah jumlah Int 11 FK
5 Kode kategori kd_kat Varchar 20 FK
3. Spesifikasi File Jurnal
Nama Database : penyewaan_ta
Nama File : Jurnal
Tipe File : File Transaksi
Akses File : Random
Panjang Record : 54 Karakter
Kunci Field : no_jurnal
Tabel III. 8.
Spesifikasi File Jurnal
No Elemen data Nama Field Tipe Size Ket
1 Nomor jurnal No_jurnal Varchar 9 Primary Key
2 Nama jurnal Nm_jurnal Varchar 25 FK
3 Tanggal Tgl Date FK
4
Identitas
pengguna
Id_pengguna Varchar 20 FK
54
4. Spesifikasi File Kategori Barang
Nama Database : penyewaan_ta
Nama File : Kat_barang
Tipe File : File Master
Akses File : Random
Panjang Record : 45 Karakter
Kunci Field : kd_barang
Tabel III. 9.
Spesifikasi File Kategori Barang
No Elemen data Akronim Tipe Panjang Ket
1 Kode kategori Kd_kat Varchar 20 Primary Key
2 Jenis Jenis Varchar 25 FK
5. Spesifikasi File Kembali
Nama Database : penyewaan_ta
Nama File : kembali
Tipe File : FileTransaksi
Akses File : Random
Panjang Record : 153 Karakter
Kunci Field : kd_kembali
55
Tabel III. 10.
Spesifikasi File Kembali
No Elemen data Akronim Tipe Panjang Ket
1 Kode kembali Kd_kembali Varchar 20 Primary Key
2 Kode Sewa Kd_sewa Varchar 20 FK
3 Tanggal Tgl Varchar 20 FK
4 Kode pelanggan Kd_plg Varchar 20 FK
5 Kode user Kd_user Varchar 20 FK
6 Uang bayar Ubay Int 11 FK
7 Uang kembali Ukem Int 11 FK
8 Keterangan Ket Varchar 20 FK
9 Total Total Int 11 FK
6. Spesifikasi File Pelanggan
Nama Database : penyewaan_ta
Nama File : Pelanggan
Tipe File : File Master
Akses File : Random
Panjang Record : 85 Karakter
Kunci Field : kd_plg
56
Tabel III. 11.
Spesifikasi File Pelanggan
No Elemen data Akronim Tipe Panjang Ket
1 Kode pelanggan Kd_plg Varchar 20 Primary Key
2 NIK Nik Int 20 FK
3 Nama Pelanggan Nm_plg Varchar 25 FK
4 Nomor Telepon No_telp Int 20 FK
7. Spesifikasi File Sewa
Nama Database : penyewaan_ta
Nama File : sewa
Tipe File : Menu Transaksi
Akses File : Random
Panjang Record : 169 Karakter
Kunci Field : kd_sewa
Tabel III. 12.
Spesifikasi File Sewa
No Elemen data Akronim Tipe Panjang Ket
1 Kode sewa Kd_sewa Varchar 20 Primary Key
2 Tanggal Tgl Varchar 20 FK
3
Tanggal
kembali
Tgl_kembali Varchar 20 FK
4
Kode
pelanggan
Kd_plg Varchar 30 FK
57
5 Kode user Kd_user Varchar 20 FK
6 Uang bayar Ubay Int 11 FK
7 Uang kembali Ukem Int 11 FK
8 Tunggakan Tunggakan Int 11 FK
9 Keterangan Ket Varchar 15 FK
10 Total Total Int 11 FK
8. Spesifikasi File User
Nama Database : penyewaan_ta
Nama File : user
Tipe File : File Master
Akses File : Random
Panjang Record : 70 Karakter
Kunci Field : kd_user
Tabel III. 13.
Spesifikasi File User
No Elemen data Akronim Tipe Panjang Ket
1 Kode user Kd_user Varchar 20 Primary Key
2 Nama user Nm_user Varchar 20 FK
3 Password Password Varchar 20 FK
4 Akses Akses Varchar 10 FK
58
3.3.4. Sequence Diagram
Admin
1. input id dan password
Control Login
2. User dan Password
Halaman Admin
3. Menampilkan Halaman Admin
Data Pelanggan Data Barang Data Penyewaan
4. Input Data Pelanggan
5. Input Data Barang
6. Input Data Penyewaan
7. Input Laporan Bulanan
Laporan BulananForm Login
Gambar III. 15.
Sequence Diagram
59
3.3.5. Deployment Diagram
Gambar III. 16.
Deployment Diagram
3.3.6. User Interface
Berikut adalah interface dari sistem dari program yang telah penulis rancang.
a. Interface Login
Gambar III. 17.
Interface Login
60
b. Interface Menu Utama
Gambar III. 18.
Interface Menu Utama
c. Interface Entry Master
Gambar III. 19.
Interface Menu Master
61
d. Interface Entry User
Gambar III. 20.
Interface Entry User
e. Interface Entry Barang
Gambar III. 21.
Interface Entry Barang
62
f. Interface Pelanggan
Gambar III. 22.
Interface Entry Pelanggan
e. Interface Akun
Gambar III. 23.
Interface Entry Akun
63
f. Interface Penyewaan
Gambar III. 24.
Interface Entry Penyewaan
g. Interface Pengembalian
Gambar III. 25.
Interface Entry Pengembalian
64
h. Interface Jurnal
Gambar III. 26.
Interface Jurnal
g. Interface Laporan
Gambar III. 27.
Interface Entry Laporan
65
3.5. Implementasi
3.5.1. Code Generation
A. Form Transaksi Penyewaan
public class form_entry_penyewaan extends javax.swing.JDialog {
public form_entry_penyewaan(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
Tanggal_sekarang();
tampil_tb_penyewaan();
}
public void Tanggal_sekarang(){
java.util.Date sekarang = new java.util.Date();
java.text.SimpleDateFormat kal = new java.text.SimpleDateFormat ("yyyy-
MM-dd");
lbl_tanggal.setText(kal.format(sekarang));
}
@SuppressWarnings("unchecked")
//
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jPanel1 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
txt_pelanggan = new javax.swing.JTextField();
txt_nama = new javax.swing.JTextField();
66
jLabel4 = new javax.swing.JLabel();
txt_alamat = new javax.swing.JTextField();
jPanel3 = new javax.swing.JPanel();
txt_jumlah_barang = new javax.swing.JTextField();
txt_kode_barang = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
btn_simpan = new javax.swing.JButton();
btn_reset = new javax.swing.JButton();
btn_delete = new javax.swing.JButton();
txt_kembali = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
jPanel4 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
tb_penyewaan = new javax.swing.JTable();
lbl_tanggal = new javax.swing.JLabel();
lbl_tanggal1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
jLabel1.setFont(new java.awt.Font("Kristen ITC", 1, 18)); // NOI18N
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setText("FORM ENTRY PENYEWAAN");
jPanel1.setBackground(new java.awt.Color(204, 204, 204));
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null,
"Data Pelanggan",
67
javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_POSITION, new
java.awt.Font("Kristen ITC", 1, 10))); // NOI18N
jPanel1.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N
jLabel2.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N
jLabel2.setText("No.pelanggan");
jLabel3.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N
jLabel3.setText("Nama");
txt_pelanggan.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N
txt_pelanggan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txt_pelangganActionPerformed(evt);
}
});
txt_nama.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N
jLabel4.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N
jLabel4.setText("Alamat");
txt_alamat.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N
javax.swing.GroupLayout jPanel1Layout = new
javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel1Layout.createSequentialGroup()
68
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING, false)
.addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(jLabel4))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addComponent(txt_nama, javax.swing.GroupLayout.DEFAULT_SIZE,
238, Short.MAX_VALUE)
.addComponent(txt_alamat)
.addComponent(txt_pelanggan))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel1Layout.createSequentialGroup()
69
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel2)
.addComponent(txt_pelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel3)
.addComponent(txt_nama, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jLabel4)
.addComponent(txt_alamat, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
70
jPanel3.setBackground(new java.awt.Color(204, 204, 204));
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(null,
"Data Barang", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_POSITION, new
java.awt.Font("Kristen ITC", 1, 10))); // NOI18N
txt_jumlah_barang.setFont(new java.awt.Font("Kristen ITC", 1, 11)); //
NOI18N
txt_kode_barang.setFont(new java.awt.Font("Kristen ITC", 1, 11)); //
NOI18N
txt_kode_barang.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txt_kode_barangActionPerformed(evt);
}
});
jLabel5.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N
jLabel5.setText("Kode Barang");
jLabel6.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N
jLabel6.setText("Jumlah Barang");
jLabel7.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N
jLabel7.setText("Tanggal Kembali");
btn_simpan.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N
btn_simpan.setText("Simpan");
btn_simpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_simpanActionPerformed(evt);
71
}
});
btn_reset.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N
btn_reset.setText("Reset");
btn_reset.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_resetActionPerformed(evt);
}
});
btn_delete.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N
btn_delete.setText("Delete");
btn_delete.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_deleteActionPerformed(evt);
}
});
txt_kembali.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N
jLabel8.setText("YYYY-MM-DD");
javax.swing.GroupLayout jPanel3Layout = new
javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel3Layout.createSequentialGroup()
72
.addGap(13, 13, 13)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.TRAILING)
.addComponent(jLabel7)
.addComponent(jLabel6)
.addComponent(jLabel5))
.addGap(18, 18, 18)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addComponent(txt_kode_barang)
.addComponent(txt_jumlah_barang)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addComponent(btn_delete,
javax.swing.GroupLayout.PREFERRED_SIZE, 86,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(btn_simpan,
javax.swing.GroupLayout.PREFERRED_SIZE, 86,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btn_reset, javax.swing.GroupLayout.PREFERRED_SIZE,
86, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(0, 0, Short.MAX_VALUE))
73
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(txt_kembali)
.addGap(18, 18, 18)
.addComponent(jLabel8)))
.addContainerGap())
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel5)
.addComponent(txt_kode_barang,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED
)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel6)
74
.addComponent(txt_jumlah_barang,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(jLabel7)
.addComponent(txt_kembali,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel8))
.addGap(18, 18, 18)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(btn_simpan)
.addComponent(btn_reset))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED
)
.addComponent(btn_delete)
.addContainerGap(29, Short.MAX_VALUE))
);
jPanel4.setBackground(new java.awt.Color(204, 204, 204));
75
jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(null,
"Tabel Data Peminjaman",
javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_POSITION, new
java.awt.Font("Kristen ITC", 1, 10))); // NOI18N
tb_penyewaan.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N
tb_penyewaan.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(tb_penyewaan);
lbl_tanggal.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
lbl_tanggal.setForeground(new java.awt.Color(255, 255, 255));
lbl_tanggal.setText("Tanggal");
lbl_tanggal1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
lbl_tanggal1.setForeground(new java.awt.Color(255, 255, 255));
lbl_tanggal1.setText("Tanggal");
76
javax.swing.GroupLayout jPanel4Layout = new
javax.swing.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE,
412, Short.MAX_VALUE)
.addGroup(jPanel4Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(lbl_tanggal1)
.addGap(18, 18, 18)
.addComponent(lbl_tanggal,
javax.swing.GroupLayout.PREFERRED_SIZE, 87,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
77
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel4Layout.createSequentialGroup()
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(lbl_tanggal)
.addComponent(lbl_tanggal1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addContainerGap())
);
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
78
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TR
AILING, false)
.addComponent(jPanel3,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
79
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
);
jPanel1.getAccessibleContext().setAccessibleName("Data Pelanggan");
pack();
setLocationRelativeTo(null);
}
//
private void btn_simpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String no_pelanggan="", nama="", alamat="", kode_barang="",
jumlah_barang="", tanggal_pinjam, tanggal_kembali="";
no_pelanggan = txt_pelanggan.getText();
nama = txt_nama.getText();
alamat = txt_alamat.getText();
kode_barang = txt_kode_barang.getText();
jumlah_barang = txt_jumlah_barang.getText();
tanggal_pinjam = lbl_tanggal.getText();
tanggal_kembali = txt_kembali.getText();
Connection con = new koneksi_2().getConnection();
try {
80
String sql = "insert into tb_penyewaan values (?,?,?,?,?,?,?)";
PreparedStatement stat = (PreparedStatement) con.prepareStatement(sql);
stat.setString(1, no_pelanggan);
stat.setString(2, nama);
stat.setString(3, alamat);
stat.setString(4, kode_barang);
stat.setString(5, jumlah_barang);
stat.setString(6, tanggal_pinjam);
stat.setString(7, tanggal_kembali);
stat.executeUpdate();
JOptionPane.showMessageDialog(null, "Menyimpan data
BERHASIL","Informasi", JOptionPane.INFORMATION_MESSAGE);
reset();
tampil_tb_penyewaan();
}
catch (Exception e) {
JOptionPane.showMessageDialog(null, "Menyimpan data
GAGAL","Informasi", JOptionPane.INFORMATION_MESSAGE);
}
}
public void cari_pelanggan() {
String no_pelanggan="";
no_pelanggan =txt_pelanggan.getText();
Connection con = new koneksi_2().getConnection();
81
String sql = "select * from tb_pelanggan where
no_pelanggan='"+no_pelanggan+"'";
try {
Statement stat = con.createStatement();
ResultSet set = stat.executeQuery(sql);
while (set.next()) {
txt_nama.setText(set.getString("nama"));
txt_alamat.setText(set.getString("alamat"));
}
txt_kode_barang.requestFocus();
set.close();
}
catch (Exception e) {
System.out.printf(e.getMessage());
JOptionPane.showMessageDialog(null, "Pencarian data
GAGAL","Informasi", JOptionPane.INFORMATION_MESSAGE);
}
}
private void txt_pelangganActionPerformed(java.awt.event.ActionEvent evt) {
cari_pelanggan();
}
public void cari_barang() {
String kode_barang="",jumlah_barang="", jenis="";
kode_barang =txt_kode_barang.getText();
jumlah_barang = txt_jumlah_barang.getText();
82
jenis = txt_kembali.getText();
Connection con = new koneksi_2().getConnection();
String sql = "select * from tb_barang where
kode_barang='"+kode_barang+"'";
try {
Statement stat = con.createStatement();
ResultSet set = stat.executeQuery(sql);
while (set.next()) {
txt_jumlah_barang.setText(set.getString("jumlah_barang"));
txt_kembali.setText(set.getString("jenis"));
}
txt_kode_barang.requestFocus();
set.close();
}
catch (Exception e) {
System.out.printf(e.getMessage());
}
}
private void txt_kode_barangActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
cari_barang();
}
private void btn_deleteActionPerformed(java.awt.event.ActionEvent evt) {
83
// TODO add your handling code here:
int baris = tb_penyewaan.getSelectedRow();
String no_pelanggan = tabmode.getValueAt(baris, 0).toString();
int ok=JOptionPane.showConfirmDialog(null,"Apakah Anda yakin ingin
menghapus data Pelanggan \n no_pelanggan
:"+no_pelanggan+"?","Konfirmasi",JOptionPane.YES_NO_OPTION);
if(ok==0){
try{
//panggil method koneksi
Connection con = new koneksi_2().getConnection();
String sql="delete from tb_penyewaan where no_pelanggan
='"+no_pelanggan+"'";
Statement st = con.createStatement();
st.executeUpdate(sql);
JOptionPane.showMessageDialog(null,"Data Berhasil di hapus");
tampil_tb_penyewaan();
reset();
}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Data Gagal di hapus
}
}
}
public void reset(){
txt_jumlah_barang.setText(null);
84
txt_alamat.setText(null);
txt_kode_barang.setText(null);
txt_nama.setText(null);
txt_pelanggan.setText(null);
txt_kembali.setText(null);
}
private void btn_resetActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
reset();
}
private DefaultTableModel tabmode;
//tampil data peminjaman
public void tampil_tb_penyewaan(){
Object []baris = {"no_pelanggan","Nama","alamat","Kode Barang","Jumlah
barang","Tanggal pinjam","Tanggal kembali"};
tabmode = new DefaultTableModel(null, baris);
tb_penyewaan.setModel(tabmode);
Connection con = new koneksi_2().getConnection();
try {
String sql = "select * from tb_penyewaan order by no_pelanggan asc";
java.sql.Statement stat = con.createStatement();
java.sql.ResultSet hasil = stat.executeQuery(sql);
while (hasil.next()){
String no_pelanggan = hasil.getString("no_pelanggan");
String nama = hasil.getString("nama");
85
String alamat = hasil.getString("alamat");
String kode_barang = hasil.getString("kode_barang");
String jumlah_barang = hasil.getString("jumlah_barang");
String tanggal_pinjam = hasil.getString("tanggal_pinjam");
String tanggal_kembali = hasil.getString("tanggal_kembali");
String[] data = {no_pelanggan, nama, alamat, kode_barang,
jumlah_barang, tanggal_pinjam, tanggal_kembali};
tabmode.addRow(data);
}
}
catch (Exception e) {
JOptionPane.showMessageDialog(null, "Menampilkan data
GAGAL","Informasi", JOptionPane.INFORMATION_MESSAGE);
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default
look and feel.
86
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
}
catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(form_entry_penyewaan.class.getName()).log
(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(form_entry_penyewaan.class.getName()).log
(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(form_entry_penyewaan.class.getName()).log
(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(form_entry_penyewaan.class.getName()).log
(java.util.logging.Level.SEVERE, null, ex);
}
87
//
//
//
//
//
//
//
//
/* Create and display the dialog */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
form_entry_penyewaan dialog = new form_entry_penyewaan(new
javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btn_delete;
88
private javax.swing.JButton btn_reset;
private javax.swing.JButton btn_simpan;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JLabel lbl_tanggal;
private javax.swing.JLabel lbl_tanggal1;
private javax.swing.JTable tb_penyewaan;
private javax.swing.JTextField txt_alamat;
private javax.swing.JTextField txt_jumlah_barang;
private javax.swing.JTextField txt_kembali;
private javax.swing.JTextField txt_kode_barang;
private javax.swing.JTextField txt_nama;
private javax.swing.JTextField txt_pelanggan;
// End of variables declaration
}
89
3.5.2. Blackbox Testing
A. Form Login Admin
Tabel III. 14.
Form Login Admin
No
Skenario
Pengujian
Test Case
Hasil yang
Diharapkan
Hasil
Pengujian
Kesimpulan
1 Nama User dan
Password tidak
diisi kemudian
klik tombol
login
Nama user :
(kosong)
Password :
(kosong)
Sistem akan
menolak akses
dan
menampilkan
pesan “user
name atau
password salah”
Sesuai
harapan
Valid
2 Mengetikkan
nama user dan
password tidak
diisi atau
ksosong
kemudian klik
tombol login
Nama user :
kasir (benar)
Password :
(kosong)
Sistem akan
menolak akses
dan
menampilkan
pesan “user
name atau
password salah”
Sesuai
harapan
Valid
3 Nama user
tidak diisi atau
kosong dan
password diisi
Nama user :
(kosong)
Password :
(123)
Sistem akan
menolak akses
dan
menampilkan
Sesuai
harapan
Valid
90
kemudian klik
tombol login
pesan “user
name atau
password salah”
4 Mengetikkan
salah satu
kondisi salah
pada nama user
atau password
kemudian klik
tombol login
Nama user :
kasir (benar)
Password :
12345 (salah)
Sistem akan
menolak akses
dan
menampilkan
pesan “user
name atau
password salah”
Sesuai
harapan
Valid
5 Mengetikkan
nama user dan
password
dengan data
yang benar
kemudian klik
tombol login
Nama user :
Kasir (benar)
Password :
123 (benar)
Sistem akan
menerima akses
login dan akan
menampilkan
halaman menu
utama
Sesuai
harapan
Valid
91
3.5.3. Spesifikasi Hardware dan Software
Tabel III. 15.
Spesifikasi Hardware dan Software
Kebutuhan Keterangan
Sistem Windows 7 Ultimate
Processor Intel (R), Celeron (R), CPU 1007U @1,50 GHz
RAM 2 GB
Harddisk 500 GB
Monitor 14” LED
Keyboard 108 Key
Printer Epson L360 Series
Mouse Standar
Software Kebutuhan menjalankan aplikasi secara lokal :
Bahasa script programing : Java 7.1
Web server : Apache 3.2
DBSM : MySQL