22 - repository.bsi.ac.id · surat negoisasi telah disepakati , kemudian konsumen membuat surat...
TRANSCRIPT
21
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Pelaksanaan kegiatan rutin di CV. Anugrah Bersama Sahabat terdapat
aturan yang ditentukan, dalam hal ini struktur organisasi yang menggambarkan garis
perintah dan penerimaan perintah serta fungsi-fungsi pelaksanaan tersebut sehingga
semua menjadi lancar. Penulis akan menerangkan sejarah dan struktur organisasi di
tempat penulis mengadakan Praktik Kerja Lapangan untuk pembuatan Tugas Akhir
ini, yaitu sebagai berikut :
3.1.1. Sejarah Perusahaan
CV. Anugrah Bersama Sahabat adalah salah satu perusahaan yang bergerak
dalam bidang perdagangan umum dan jasa angkutan Barang. Perusahaan ini didirikan
oleh bapak Ijo Sutijo. CV. Anugrah Bersama Sahabat berdiri pada tanggal 01
September tahun 2018. CV. Anugrah Bersama Sahabat beralamat di Jl. Interchange
Kalihurip No.11, Dusun Purbasari, Dawuan Tengah Cikampek 41373. Perusahaan
tersebut didirikan guna untuk memberikan kemudahan kebutuhan konsumen
pengiriman barang dengan jumlah yang sangat besar. Perusahaan ini juga melayani
pengiriman angkutan barang ke berbagai kota di luar jawa. Perusahaan ini memiliki
berbagai macam kendaaraan untuk melakukan pengiriman diantaranya kendaraan
Tronton, Minibox, dan Engkel.
22
Adapun Visi dan Misi CV. Anugrah Bersama Sahabat adalah sebagai berikut:
1. Visi CV Anugerah Bersama Sahabat
Menjadi perusahan yang berkemampuan memberikan solusi terbaik dan
terpercaya bagi perusahaan pengguna jasa ditingkat regional, nasional, maupun
internasional.
2. Misi CV Anugrah Bersama Sahabat
a. Membangun dan menjaga hubungan yang kuat dengan konsumen.
b. Menempatkan kepuasan konsumen sebagai prioritas utama.
c. Mengembangkan usaha yang kompetitif dan inovatif.
d. Bekerja secara professional untuk memberikan pelayanan yang prima.
3.1.2. Struktur Organisasi dan Fungsi
Sumber: CV. Anugrah Bersama Sahabat
Gambar III.1.
Stuktur Organisasi CV. Anugrah Bersama Sahabat
23
Adapun tugas dari tiap-tiap bagian adalah sebagai berikut:
1. Direktur
Direktur adalah Pimpinan Perusahaan yang bertanggung jawab penuh terhadap
perusahaan yang dipimpinnya dan mengkordinir serta mengawasi seluruh
aktivitas yang dilaksanakan di perusahaan.
2. Wakil Direktur
Wakil Direktur adalah untuk membackup tugas direktur.
3. Koordinator Supir
Koordinator Supir memiliki tugas mengatur supir untuk melakukan pemuatan
barang di customer.
4. Koordinator Operasional
Koordinator Operasional memiliki tugas yaitu mengkoordinasikan lapangan dan
mengintruksikan pengiriman kepada supir.
5. Admin
Administrasi memiliki tugas yaitu merekap data operasional dan membuat
laporan harian dan bulanan.
6. Pengemudi
Pengemudi memiliki tugas yaitu menjalankan proses pengiriman dan
menjalankan intruksi Koordinator Operasional.
3.2. Tinjauan Kasus
3.2.1. Proses Bisnis Sistem Berjalan
1. Proses Kerjasama
Direktur membuat surat kerja sama dan surat penawaran harga kepada
konsumen, konsumen menerima surat perjanjian kerjasama, dan konsumen
24
membuat surat negoisasi, setelah surat negoisasi diberikan kepada direktur dan
surat negoisasi telah disepakati , kemudian konsumen membuat surat perjanjian
kerjasama, setelah diterima direktur, surat perjanjian kerjasama ini diberikan
kepada admin untuk disimpan kedalam surat perjanjian kontrak tersebut.
2. Proses Pemesanan
Setelah proses perjanjian selesai, konsumen mengirimkan surat pemesanan
kepada admin. Admin menerima surat pemesanan tersebut dan admin
memberikan surat itu kepada koordinator operasional untuk disetujui, setelah
disetujui oleh koordinator operasional surat pemesanan diberikan kepada admin
untuk disimpan surat pemesanan ke dalam arsip.
3. Proses Pengiriman
Setelah pemesanan diterima, lalu koordinator operasional memberikan tugas
kepada supir sesuai unit permintaan konsumen, supir mengantarkan kiriman
sesuai dengan alamat yang dituju. Setelah pengiriman selesai surat jalan di
berikan kepada koordinator operasional lalu diserahkan kepada admin. Setelah
surat jalan diterima oleh admin, admin menyimpan dokumen tersebut ke dalam
arsip.
4. Proses Penagihan
Setelah jatuh tempo 45 hari, admin membuat tanda terima, invoice, kwitansi dan
rekapitulasi berdasarkan arsip pengiriman selama satu bulan. Lalu tanda terima,
invoice, kwitansi dan Rekapitulasi diserahkan kepada direktur untuk disetujui.
Setelah disetujui tanda terima, invoice, kwitansi dan rekapitulasi di serahkan
kembali kepada admin untuk di fotokopi dan di simpan kedalam arsip
penagihan. Lalu tanda terima, invoice, kwitansi, rekapitulasi dan surat jalan
25
rangkap ke-1 yang sudah disetujui diserahkan kepada konsumen untuk
penagihan.
26
5. Proses Pembayaran
Setelah konsumen menerima Tanda Terima, Invoice, Kwitansi, Rekapitulasi dan
SJ rangkap ke-1 yang sudah disetujui langsung diperiksa oleh konsumen. Setelah
diperiksa, konsumen melakukan proses pembayaran selama 12 hari kerja setelah
Tanda Terima, Invoice, Kwitansi, Rekapitulasi dan rangkap ke-1 diterima oleh
konsumen. Pembayaran dilakukan melaluitransfer lalu bukti transfer diserahkan
kepada admin untuk di simpan kedalam arsip pembayaran.
6. Proses Pembuatan Laporan
Sesuai data yang telah diterima, langkah selajutnya membuat laporan terkait
penyewaan angkutan barang kepada pemilik setiap satu bulan, agar pemilik bisa
memantau perkembangan perusahaan setiap bulannya.
3.2.2. Activity Diagram
1. Activity Diagram Proses Kerjasama
Gambar III.2.
Activity Diagram Proses Kerjasama
act Proses Kerjasama
Admin KonsumenDirektur
Mulai
Membuat Surat Kerjasama Membuat Surat Penawaran
Harga
Menerima Surat Kerjasama
dan Penawaran
Membuat surat NegosiasiMenerima Surat Negosiasi
Setuju?
Membuat Surat Kerjasama
Menerima Surat KerjasamaMengarsipkan Surat
Kerjasama
Selesai
[Ya]
[Tidak]
27
2. Activity Diagram Proses Pemesanan
.
Gambar III.3.
Activity Diagram Proses Pemesanan
act Proses Pemesanan
Koordinator OperasionalAdminKonsumen
Mulai
Mengirikan Surat Permesanan Menerima Surat Pemesanan
Memberikan Surat
Pemesanan Kepada
Koordinator
Menerima Surat Pemesanan
Menyetujui Surat PemesananMengarsipkan Surat
Pemesanan
Selesai
28
3. Activity Diagram Proses Pengiriman
Gambar III.4.
Activity Diagram Proses Pengiriman
act Proses Pengiriman
Koordinator Operaional Supir Admin
Mulai
Memberikan Tugas
Pengiriman Kepada supir
Mengirimkan Barang Pada
Tujuan
Memberikan Surat Jalan Pada
Koordinator OperasionalMenerima Surat Jalan
Mengarsipkan Surat Jalan
Selesai
29
4. Activity Diagram Proses Penagihan
Gambar III.5.
Activity Diagram Proses Penagihan
act Proses Penagihan
KonsumenDirekturAdmin
Mulaii
Mengumpulkan Berkas
Terkait dan Membuat
Penagihan
Memberikan Kepada Direktur
Untuk disetujui
Memeriksa Berkas dan
Penagihan
Menyetujui Penagihan
Mengembalikan Berkas Ke
Admin
Menerima Berkas Yang Telah
Disetujui
Fotokopi Berkas Terkait
Mengarsipkan Berkas Yang
Difotokopi
Mengirimkan Berkas Asli Ke
Konsumen Sebagai Bukti
Penagihan
Menerima Berkas Penagihan
Untuk Dilakukan Pembayaran
Selesai
30
5. Activity Diagram Proses Pembayaran
Gambar III.6.
Activity Diagram Proses Pembayaran
act Proses Pembayaran
AdminKonsumen
Mulai
Melakukan Pembayaran
Melalui Transfer
Mengirimkan Bukti Transfer
Ke AdminMenerima Bukti Transfer
Mengarsipkan Bukti Transfer
Selesai
31
6. Activity Diagram Proses Pembuatan Laporan
Gambar III.7.
Activity Diagram Proses Pembuatan Laporan
3.2.3. Dokumen Masukan
1. Nama Dokumen : Data Penyewa
Fungsi : Sebagai data penyewa yang bekerja sama
Sumber : Penyewa
Tujuan : Admin
Media : Data Komputer
Jumlah : -
Frekuensi : Setiap kali dibuthkan
Format : Lampiran A.1
act Pembuatan Laporan
DirekturAdmin
Mulai
Mengumpulkan Bukti
Transaksi
Membuat Rekap Laporan
Menyerahkan Rekap Laporan
Ke DirekturMenerima Laporan
Selesai
32
2. Nama Dokumen : Data Kendaraan/tarif
Fungsi : Sebagai data kendaraan yang dapat disewa
Sumber : Internal
Tujuan : Internal
Media : Data Komputer
Jumlah : -
Frekuensi : Setiap kali ada pemesanan
Format : Lampiran A.2
3. Nama Dokumen : Surat Negosiasi
Fungsi : Sebagai bentuk negosiasi harga penyewaan
Sumber : Penyewa
Tujuan : Direktur
Media : Kertas
Jumlah : 1
Frekuensi : Setiap kali ada negosiasi pemesanan
Format : Lampiran A.3
4. Nama Dokumen : Surat Pemesanan
Fungsi : Sebagai permintaan pemesanan sewa kendaraan
Sumber : Penyewa
Tujuan : Admin
Media : Kertas
Jumlah : 1
Frekuensi : Setiap kali ada pemesanan sewa kendaraan
Format : Lampiran A.4
33
5. Nama Dokumen : Surat Jalan
Fungsi : Sebagai bukti bahwa barang telah diantarkan
Sumber : Tempat pengantaran
Tujuan : Koordinator Operasional
Media : Kertas
Jumlah : 1
Frekuensi : Setiap kali ada pengantaran barang
Format : Lampiran A.5
3.2.4. Dokumen Keluaran
1. Nama Dokumen : Kwitansi
Fungsi : Sebagai bukti pembayaran
Sumber : Direktur
Tujuan : Penyewa
Media : Kertas
Jumlah : 1
Frekuensi : Setiap kali ada pembayaran
Format : Lampiran B.1.
2. Nama Dokumen : Invoice
Fungsi : Sebagai bukti penagihan sewa kendaraan
Sumber : Admin
Tujuan : Penyewa
Media : Kertas
Jumlah : 1
Frekuensi : Setiap kali ada penagihan
34
Format : Lampiran B.
3.2.5. Permasalahan Pokok
Setiap sistem yang dibuat oleh manusia sesederhana apapun, tentu tidak akan
luput dari permasalahan, untuk itulah dilakukan reaserch and development guna
memperbaiki kekurangan sistem atau menambah fungsi dari sistem itu. Sistem pada
CV. Anugrah Bersama Sahabat juga tidak luput dari permasalahan. Adapun
permasalahan tersebut antara lain:
1. Dalam pencarian data memakan waktu yang cukup lama, sehingga sulit
mendapat data yang dibutuhkan.
2. Dalam penyusunan dokumen-dokumen yang tidak tersusun dan tidak tersimpan
degan rapi, sehingga dokumen hilang atau tertumpuk dengan dokumen lain.
3. Proses rekapitulasi untuk pembuatan laporan akhir membutuhkan waktu karena
dokumen yang terpisah dan harus diurutkan satu per satu.
4. Dalam proses pencatatan masih dilakukan secara manual, sehingga
membutuhkan waktu yang lama dalam proses pencatatan.
3.2.6. Pemecahan Masalah
Setiap permasalahan selalu disertai dengan solusi atau pemecahan masalah itu
sendiri, begitu pula permasalahan yang dihadapi CV. Anugrah Bersama Sahabat.
Berikut pemecahan masalah yang dapat dilakukan untuk meminimalisasi atau
menghilangkan permasalahan yang ada, antara lain:
1. Membuat fasilitas pencarian yang dapat memudahkan pengguna untuk mencari
data yang dibutuhkan.
35
2. Perlu dibuatkan program yang dapat membantu proses pengingkatan kinerja
karyawan, agar bisa menjadi lebih efektif dan efisien.
3. Membuat format laporan yang dapat secara langsung mengambil data dari
transaksi terkait dan menyajikannya ke dalam format yang mudah dipahami.
4. Perlu membuat rancangan sistem untuk memudahkan karyawan dalam
melakukan pencatatan.
3.3. Analisis Kebutuhan Software
3.3.1. Analisa Kebutuhan
Agar dalam perancangan sistem informasi menjadi tepat guna, maka
dibutuhkan analisa kebutuhan baik dari segi lingkungan sistem sampai kepada
kebutuhan pengguna itu sendiri. Berikut analisa kebutuhan pengguna pada CV.
Anugrah Bersama Sahabat:
A. Admin
A.1. Melakukan Login
A.2. Menampilkan Menu utama
A.3. Mengelola Mengelola File
A.4. Mengelola Menu Master
A.5. Mengelola Data Transaksi
A.6. Mengelola Jurnal
A.7. Melihat Laporan
B. Direktur
B.1. Melakukan Login
B.2. Menampilkan Menu Utama
B.3. Mengelola File
36
B.4. Mengelola Menu Master
B.5. Mengelola Data Transaksi
B.6. Melihat Laporan
3.3.2. Use Case Diagram
A.1 Use Case Diagram Login Admin
Gambar III.8.
Use Case Diagram Login Admin
Tabel III.1.
Deskripsi Use Case Diagram Login Admin
Use Case Narative Login
Tujuan Admin dapat login Aplikasi
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke menu utama
admin harus mengisi kode user dan password
Skenario Utama
Aktor Admin
37
Kondisi Awal Aktor membuka aplikasi login
Aksi Aktor Reaksi Sistem
1. Aktor mengisi
kode user
Sistem akan menampilkan masukkan kode user
2. Aktor mengisi
password
Sistem ini akan menampilkan masukkan password
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan yang
diinginkan
A.2 Use Case Diagram Menampilkan Menu Utama Admin
Gambar III.9.
Use Case Diagram Menu Utama Admin
Tabel III.2.
Deskripsi Use Case Diagram Menu Utama Admin
Use Case Narative Login
Tujuan Admin dapat melihat data yang ada di sistem menu
utama
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke
menu utama admin yang didalamnya ada menu file,
38
menu master, menu transaksi, menu jurnal, dan menu
laporan
Skenario Utama
Aktor Admin
Kondisi Awal Aktor membuka aplikasi halaman menu utama
Aksi Aktor Reaksi Sistem
1. Aktormemilih
tombol menu file
Sistem akan menampilkan keluar dari aplikasi
2. Aktor memilih
tombol menu
master
Sistem ini akan menampilkan data form penyewa
3. Aktor memilih
tombol menu
transaksi
Sistem ini akan menampilkan data form penyewaan
dan form penagihan
4. Aktor memilih
tombol menu jurnal
Sistem ini akan menampilkan data form perkiraan
dan data form jurnal umum
5. Aktor memilih
tombol menu
laporan
Sistem ini akan menampilkan data form laporan
sewa, laporan sewa per penyewa, laporan penagihan,
laporan pembayaran, dan laporan jurnal
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan
yang diinginkan
A.3 Use Case Diagram Menampilkan Menu File Admin
Gambar III.10.
Use Case Diagram Menu File Admin
39
Tabel III.3.
Deskripsi Use Case Diagram Menu File Admin
Use Case Narative Login
Tujuan Admin dapat melihat data yang ada di sistem menu file
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke menu file
Skenario Utama
Aktor Admin
Kondisi Awal Aktor membuka aplikasi halaman menu utama
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol menu file
Sistem akan menampilkan keluar dari aplikasi
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan yang
diinginkan
A.4 Use Case Diagram Menampilkan Menu Master Admin
Gambar III.11.
Use Case Diagram Menu Master Admin
Tabel III.4.
Deskripsi Use Case Diagram Menu Master Admin
Use Case Narative Login
Tujuan Admin dapat melihat data yang ada di sistem menu
master
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke menu
master admin yang didalamnya ada menu penyewa
40
Skenario Utama
Aktor Admin
Kondisi Awal Aktor membuka aplikasi halaman menu master
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol menu
penyewa
Sistem akan menampilkan data form penyewa
2. Aktor memilih
tombol tambah
Sistem ini akan menambahkan data penyewa
3. Aktor memilih
tombol ubah
Sistem ini akan mengubah data penyewa
4. Aktor memilih
tombol hapus
Sistem ini akan menghaspus data penyewa
5. Aktor memilih
tombol cari
Sistem ini akan mencari data penyewa
6. Aktor memilih
tombol tutup
Sistem ini akan menutup aplikasi data penyewa
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan
yang diinginkan
41
A.5 Use Case Diagram Menampilkan Menu Transaksi Admin
Gambar III.12.
Use Case Diagram Menu Transaksi Admin
Tabel III.5.
Deskripsi Use Case Diagram Menu Transaksi Admin
Use Case Narative Login
Tujuan Admin dapat melihat data yang ada di sistem menu
transaksi
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke menu
transaksi admin yang didalamnya ada menu penyewaan
dan menu penagihan
Skenario Utama
Aktor Admin
Kondisi Awal Aktor membuka aplikasi halaman menu transaksi
42
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol penyewaan
Sistem akan menampilkan data form penyewaan
2. Aktor memilih
tombol tambah
Sistem ini akan menambahkan data penyewaan
3. Aktor memilih
tombol cari
Sistem ini akan mencari data penyewaan
4. Aktor memilih
tombol tutup
Sistem ini akan menutup aplikasi data penyewaan
5. Aktor memilih
tombol menu
penagihan
Sistem ini akan menampilkan data form pennagihan
6. Aktor memilih
tombol tambah
Sistem ini akan menambahkan data pengihan
7. Aktor memilih
tombol cetak
Sistem ini akan mencetak data penagihan
8. Aktor memilih
tombol cari
Sistem ini akan mencari data penagihan
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan yang
diinginkan
A.6 Use Case Diagram Menampilkan Menu Jurnal Admin
Gambar III.13.
Use Case Diagram Menu Jurnal Admin
43
Tabel III.6.
Deskripsi Use Case Diagram Menu Jurnal Admin
Use Case Narative Login
Tujuan Admin dapat melihat data yang ada di sistem menu jurnal
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke menu
jurnal admin yang didalamnya ada menu perkiraan dan
menu jurnal umum
Skenario Utama
Aktor Admin
Kondisi Awal Aktor membuka aplikasi halaman menu jurnal
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol menu
perkiraan
Sistem akan menampilkan data form perkiraan
2. Aktor memilih
tombol tambah
Sistem ini akan menambahkan data perkiraan
3. Aktor memilih
tombol edit
Sistem ini akan mengedit data perkiraan
4. Aktor memilih
tombol cari
Sistem ini akan mencari data perkiraan
5. Aktor memilih
tombol tutup
Sistem ini akan menutup aplikasi data perkiraan
6. Aktor memilih
tombol menu
jurnal umum
Sistem ini akan menampilkan data form jurnal umum
7. Aktor memilih
tombol tambah
Sistem ini akan menambahkan data jurnal umum
8. Aktor memilih
tombol cari
Sistem ini akan mencari data jurnal umum
9. Aktor memilih
tombol tutup
Sistem ini akan menutup data jurnal umum
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan yang
diinginkan
44
A.7 Use Case Diagram Menampilkan Menu Laporan Admin
Gambar III.14.
Use Case Diagram Menu Laporan Admin
Tabel III.7.
Deskripsi Use Case Diagram Menu laporan
Use Case Narative Login
Tujuan Admin dapat melihat data yang ada di sistem menu laporan
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke menu
laporan admin yang didalamnya ada menu laporan sewa,
laporan sewa per penyewa , laporan penagihan, laporan
pembayaran, laporan jurnal
Skenario Utama
Aktor Admin
Kondisi Awal Aktor membuka aplikasi halaman menu laporan
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol menu
laporan
Sistem akan menampilkan data form laporan sewa, lapora
sewa per penyewa, laporan penagihan, laporan
pembayaran, dan laporan jurnal
2. Aktor memilih
tombol menu
laporan sewa
Sistem ini akan menampilkan data form laporan sewa
45
3. Aktor memilih
tombol lihat
Sistem ini akan melihat data laporan sewa
4. Aktor memilih
tombol tutup
Sistem ini akan menutup aplikasi data laporan sewa
5. Aktor memilih
tombol sewa
per penyewa
Sistem ini akan menampilkan data form laporan sewa per
penyewa
6. Aktor memilih
tombol lihat
Sistem ini akan melihat data laporan sewa per penyewa
7. Aktor memilih
tombol tutup
Sistem ini akan menutup aplikasi data laporan sewa per
penyewa
8. Aktor memilih
tombol
penagihan
Sistem ini akan menampilkan data form laporan penagihan
9. Aktor memilih
tombol lihat
Sistem ini akan melihat data laporan penagihan
10. Aktor memilih
tombol tutup
Sistem ini akan menutup aplikasi data laporan penagihan
11. Aktor memilih
tombol
pembayaran
Sistem ini akan menampilkan data form laporan
pembayaran
12. Aktor memilih
tombol lihat
Sistem ini akan melihat data laporan pembayaran
13. Aktor memilih
tombol tutup
Sistem ini akan menutup aplikasi data laporan pembayaran
14. Aktor memilih
tombol jurnal
Sistem ini akan menampilkan data form laporan jurnal
15. Aktor memilih
tombol lihat
Sistem ini akan melihat data laporan jurnal
16. Aktor memilih
tombol tutup
Sistem ini akan menutup aplikasi data laporan jurnal
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan yang
46
diinginkan
B.1 Use Case Diagram Login Direktur
Gambar III.15.
Use Case Diagram Login Direktur
Tabel III.8.
Deskripsi Use Case Diagram Login Direktur
Use Case Narative Login
Tujuan Direktur dapat login Aplikasi
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke menu utama
admin harus mengisi kode user dan password
Skenario Utama
Aktor Direktur
Kondisi Awal Aktor membuka aplikasi login
Aksi Aktor Reaksi Sistem
1. Aktor mengisi
kode user
Sistem akan menampilkan masukkan kode user
2. Actor mengisi
password
Sistem ini akan menampilkan masukkan password
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan yang
diinginkan
47
B.2. Use Case Diagram Menampilkan Menu Utama Direktur
Gambar III.16.
Use Case Diagram Menu Utama Direktur
Tabel III.9.
Deskripsi Use Case Diagram Menu Utama Direktur
Use Case Narative Login
Tujuan Direktur dapat melihat data yang ada di sistem menu utama
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke menu
utama admin yang didalamnya ada menu file, menu master,
menu transaksi dan menu laporan
Skenario Utama
Aktor Direktur
Kondisi Awal Aktor membuka aplikasi halaman menu utama
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol menu
file
Sistem akan menampilkan keluar dari aplikasi
2. Aktor memilih
tombol menu
master
Sistem ini akan menampilkan data form tarif dan data form
user
48
3. Aktor memilih
tombol menu
transaksi
Sistem ini akan menampilkan data form pembayaran
4. Aktor memilih
tombol menu
laporan
Sistem ini akan menampilkan data form laporan sewa,
laporan sewa per penyewa, laporan penagihan, laporan
pembayaran, dan laporan jurnal
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan yang
diinginkan
B.3. Use Case Diagram Menampilkan Menu File Direktur
Gambar III.17.
Use Case Diagram Menu File Direktur
Tabel III.10.
Deskripsi Use Case Diagram Menu File Direktur
Use Case Narative Login
Tujuan Direktur dapat melihat data yang ada di sistem menu file
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke menu file
Skenario Utama
Aktor Direktur
Kondisi Awal Aktor membuka aplikasi halaman menu file
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol menu
file
Sistem akan menampilkan keluar dari aplikasi
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan yang
49
diinginkan
B.4. Use Case Diagram Menampilkan Menu Master Direktur
Gambar III.18.
Use Case Diagram Menu Master Direktur
Tabel III.11.
Deskripsi Use Case Diagram Menu Master
Use Case Narative Login
Tujuan Direktur dapat melihat data yang ada di sistem menu
master
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke menu
master admin yang didalamnya ada menu tarif dan menu
user
Skenario Utama
Aktor Direktur
Kondisi Awal Aktor membuka aplikasi halaman menu master
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol menu
tarif
Sistem akan menampilkan data form menu tarif
50
2. Aktor memilih
tombol tambah
Sistem ini akan menambahkan data tarif
3. Aktor memilih
tombol cari
Sistem ini akan mengubah data tarif
4. Aktor memilih
tombol tutup
Sistem ini akan menghaspus data tarif
5. Aktor memilih
tombol user
Sistem ini akan menampilkan data menu user
6. Aktor memilih
tombol tambah
Sistem ini akan menambahkan data user
7. Aktor memilih
tombol ubah
Sistem ini akan mengubah data user
8. Aktor memilih
tombol cari
Sistem ini akan mencari data user
9. Aktor memilih
tombol tutup
Sistem ini akan menutup aplikasi data user
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan yang
diinginkan
B.5. Use Case Diagram Menampilkan Menu Transaksi Direktur
Gambar III.19.
Use Case Diagram Menu TransaksiDirektur
Tabel III.12.
Deskripsi Use Case Diagram Menu Transaksi Direktur
Use Case Narative Login
51
Tujuan Direktur dapat melihat data yang ada di sistem menu transaksi
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke menu
transaksi admin yang didalamnya ada menu pembayaran
Skenario Utama
Aktor Direktur
Kondisi Awal Aktor membuka aplikasi halaman menu transaksi
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol
pembayaran
Sistem akan menampilkan data form pembayaran
2. Aktor memilih
tombol tambah
Sistem ini akan menambahkan data pembayaran
3. Aktor memilih
tombol cari
Sistem ini akan mencari data pembayaran
4. Aktor memilih
tombol hapus
Sistem ini akan menutup aplikasi data pembayaran
5. Aktor memilih
tombol cetak
Sistem ini akan menampilkan data form pembayaran
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan yang
diinginkan
52
B.6. Use Case Diagram Menampilkan Menu Laporan Direktur
Gambar III.20.
Use Case Diagram Menu Laporan Direktur
Tabel III.13.
Deskripsi Use Case Diagram Menu laporan Direktur
Use Case Narative Login
Tujuan Direktur dapat melihat data yang ada di sistem menu
laporan
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke menu
laporan admin yang didalamnya ada menu laporan sewa,
laporan sewa per penyewa , laporan penagihan, laporan
pembayaran, laporan jurnal
Skenario Utama
Aktor Direktur
Kondisi Awal Aktor membuka aplikasi halaman menu laporan
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol menu
laporan
Sistem akan menampilkan data form laporan sewa, lapora
sewa per penyewa, laporan penagihan, laporan
pembayaran, dan laporan jurnal
2. Aktor memilih
tombol menu
Sistem ini akan menampilkan data form laporan sewa
53
laporan sewa
3. Aktor memilih
tombol lihat
Sistem ini akan melihat data laporan sewa
4. Aktor memilih
tombol tutup
Sistem ini akan menutup aplikasi data laporan sewa
5. Aktor memilih
tombol sewa per
penyewa
Sistem ini akan menampilkan data form laporan sewa per
penyewa
6. Aktor memilih
tombol lihat
Sistem ini akan melihat data laporan sewa per penyewa
7. Aktor memilih
tombol tutup
Sistem ini akan menutup aplikasi data laporan sewa per
penyewa
8. Aktor memilih
tombol penagihan
Sistem ini akan menampilkan data form laporan
penagihan
9. Aktor memilih
tombol lihat
Sistem ini akan melihat data laporan penagihan
10. Aktor memilih
tombol tutup
Sistem ini akan menutup aplikasi data laporan penagihan
11. Aktor memilih
tombol
pembayaran
Sistem ini akan menampilkan data form laporan
pembayaran
12. Aktor memilih
tombol lihat
Sistem ini akan melihat data laporan pembayaran
13. Aktor memilih
tombol tutup
Sistem ini akan menutup aplikasi data laporan
pembayaran
14. Aktor memilih
tombol jurnal
Sistem ini akan menampilkan data form laporan jurnal
15. Aktor memilih
tombol lihat
Sistem ini akan melihat data laporan jurnal
16. Aktor memilih
tombol tutup
Sistem ini akan menutup aplikasi data laporan jurnal
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan yang
54
diinginkan
3.3.3. Activity Diagram
1. Activity Diagram Login
Gambar III.21.
Activity Diagram Login
act Activity Login
SistemAdmin/Direktur
Mulai
ID Pengguna dan Password
Klik Login Validasi Login
Valid?Tampilkan Pesan Error
Tampilkan Menu Utama
Selesai
Form Login
[Ya]
[Tidak]
55
2. Activity Diagram Mengelola User
Gambar III.22.
Activity Diagram User
act Mengelola User
SistemDirektur
Mulai
Pilih
Tambah
Input Data User
Simpan
Cari
Validasi
Valid?
Simpan Data
Tampilkan Data
Pilh Data User
Ubah
Ubah DataSimpan?
Batal
Selesai
Hapus Hapus Data
Ada
data?
Tampilkan Pesan Error[Tidak]
[Ya]
[Tidak]
[Tidak]
[Ya]
Ya
56
3. Activity Diagram Mengelola Tarif
Gambar III.23.
Activity Diagram Tarif
act Mengelola Tarif
SistemDirektur
Mulai
Pilih
Tambah
Input Data Tarif
Simpan
Cari
Validasi
Valid?
Simpan Data
Tampilkan Data
Pilh Data Tarif
Ubah
Ubah DataSimpan?
Batal
Selesai
Hapus Hapus Data
Ada
data?
Tampilkan Pessan Error
[Ya]
[Tidak]
Ya
[Tidak]
[Ya][Tidak]
57
4. Activity Diagram Mengelola Penyewa
Gambar III.24.
Activity Diagram Penyewa
act Mengelola Penyewa
SistemAdmin
Mulai
Pilih
Tambah
Input Data Penyewa
Simpan
Cari
Validasi
Valid?
Simpan Data
Tampilkan Data
Pilh Data Penyewa
Ubah
Ubah DataSimpan?
Batal
Selesai
Hapus Hapus Data
Ada
data?
Tampilkan Pessan Error
[Tidak]
[Tidak]
[Tidak]
[Ya]
[Ya]
Ya
58
5. Activity Diagram Mengelola Penyewaan
Gambar III.25.
Activity Diagram Penyewaan
act Mengelola Penyewaan
SistemAdmin
Mulai
Pilih
Tambah
Input Data Penyewa
Simpan
Cari
Validasi
Valid?
Simpan Data
Tampilkan Data
Tampilkan Data
Simpan?
Batal
Selesai
Ada?
Input Data Kendaraan
Input Lagi?
[Ya]
[Tidak]
[Ya]
[Ya]
[Tidak]
[Tidak]
[Tidak]
[Ya]
59
6. Activity Diagram Mengelola Penagihan
Gambar III.26.
Activity Diagram Penagihan
act Mengelola Penagihan
SistemAdmin
Mulai
Pilih
Tambah
Input Data Penagihan
Simpan
Cari
Validasi
Valid?
Simpan Data
Tampilkan Data
Pilh Data Penagihan
Ubah
Ubah DataSimpan?
Batal
Selesai
Hapus Hapus Data
Ada
data?
Tampilkan Pesan Error
Cetak
Cetak Invoice
[Tidak]
[Tidak]
Ya
[Ya]
[Ya]
[Tidak]
60
7. Activity Diagram Mengelola Pembayaran
Gambar III.27.
Activity Diagram Pembayaran
act Mengelola Pembayaran
SistemDirektur
Mulai
Pilih
Tambah
Input Data Pembayaran
Simpan
Cari
Validasi
Valid?
Simpan Data
Tampilkan Data
Pilh Data Pembayaran
Ubah
Ubah DataSimpan?
Batal
Selesai
Hapus Hapus Data
Ada
data?
Tampilkan Pesan Error
Cetak
Cetak Kwitansi
[Ya]
Ya
[Ya][Tidak]
[Tidak]
[Tidak]
61
8. Activity Diagram Mengelola Perkiraan
Gambar III.28.
Activity Diagram Perkiraan
act Mengelola Perkiraan
SistemAdmin
Mulai
Pilih
Tambah
Input Data Perkiraan
Simpan
Cari
Validasi
Valid?
Simpan Data
Tampilkan Data
Pilh Data Perkiraan
Ubah
Ubah DataSimpan?
Batal
Selesai
Hapus Hapus Data
Ada
data?
Tampilkan Pessan Error
Ya
[Tidak]
[Ya]
[Ya]
[Tidak]
[Tidak]
62
9. Activity Diagram Mengelola Jurnal
Gambar III.29.
Activity Diagram Jurnal
act Mengelola Jurnal
SistemAdmin
Mulai
Pilih
Tambah
Input Data Jurnal
Simpan
Cari
Validasi
Valid?
Simpan Data
Tampilkan Data
Tampilkan Data
Simpan?
Batal
Selesai
Ada?
[Ya]
[Ya]
[Tidak]
[Tidak][Tidak]
[Ya]
63
3.4. Desain
3.4.1. Entity Relationship Diagram (ERD)
Gambar III.30.
Entity Relationship Diagram
64
3.4.2. Logical Record Structure (LRS)
Gambar III.31.
Logical Record Structure
65
3.4.3. Spesifikasi File
1. Spesifikasi File Tabel User
Nama Database : cv_abs
Nama File : user
Tipe File : File Master
Akses File : Random
Record Size : 95 Karakter
Field Key : kode_user
Tabel III.14.
Spesifikasi File Tabel User
No Elemen Data Akronim Tipe Panjang Keterangan
1 Kode User kode_user VARCHAR 15 Primary Key
2 Nama User nama_user VARCHAR 35
3 Password Password VARCHAR 35
4 Hak Akses hak_akses VARCHAR 10
2. Spesifikasi File Tabel Penyewa
Nama Database : cv_abs
Nama File : penyewa
Tipe File : File Master
Akses File : Random
Record Size : 410 Karakter
Field Key : kode_penyewa
66
Tabel III.15.
Spesifikasi File Tabel Penyewa
No Elemen Data Akronim Tipe Panjang Keterangan
1 Kode Penyewa Kode_penyewa CHAR 5 Primary Key
2 Nama Penyewa Nama_penyewa VARCHAR 35
3 Alamat
Penyewa
Alamat_penyewa VARCHAR 100
4 No HP No_hp VARCHAR 15
5 Email Email VARCHAR 255
3. Spesifikasi File Tabel Tarif
Nama Database : cv_abs
Nama File : tarif
Tipe File : File Master
Akses File : Random
Record Size : 73 Karakter
Field Key : kode_tarif
Tabel III.16.
Spesifikasi File Tabel tarif
No Elemen Data Akronim Tipe Panjang Keterangan
1 Kode Tarif kode_tarif CHAR 3 Primary Key
2 Jenis Kendaraan jenis_kendaraan VARCHAR 20
3 Trayek Trayek VARCHAR 50
4 Biaya Sewa biaya_sewa DOUBLE
4. Spesifikasi File Tabel Penyewaan
Nama Database : cv_abs
Nama File : penyewaan
Tipe File : File Transaksi
67
Akses File : Random
Record Size : 30 Karakter
Field Key : no_sewa
Tabel III.17.
Spesifikasi File Tabel Penyewaan
No Elemen Data Akronim Tipe Panjang Keterangan
1 No Sewa no_sewa CHAR 15 Primary Key
2 Tanggal Sewa tgl_sewa DATE
3 Kode Penyewa kode_penyewa CHAR 5 Foreign Key
4 Total Biaya total_biaya DOUBLE
5 Kode User kode_user VARCHAR 15 Foreign Key
5. Spesifikasi File Tabel Detail Penyewaan
Nama Database : cv_abs
Nama File : detail_penyewaan
Tipe File : File Master
Akses File : Random
Record Size : 15 Karakter
Field Key : -
Tabel III.18.
Spesifikasi File Tabel Detail Penyewaan
No Elemen
Data Akronim Tipe Panjang Keterangan
1 No Sewa no_sewa CHAR 10 Foreign Key
2 Kode Tarif kode_tarif CHAR 3 Foreign Key
3 Jumlah
Sewa
jumlah_sewa_kendaraan INT 2
68
4 Biaya Sewa biaya_sewa DOUBLE
6. Spesifikasi File Tabel Penagihan
Nama Database : cv_abs
Nama File : penagihan
Tipe File : File Transaksi
Akses File : Random
Record Size : 305 Karakter
Field Key : no_penagihan
Tabel III.19.
Spesifikasi File Tabel Penagihan
No Elemen Data Akronim Tipe Panjang Keterangan
1 No Penagihan no_penagihan CHAR 25 Primary Key
2 Tanggal
Penagihan
tgl_penagihan DATE
3 Kode Penyewa kode_penyewa CHAR
5 Foreign
Key
4 Dari Tanggal dari_tgl DATE
5 Sampai Tanggal sampai_tgl DATE
6 Tanggal Jatuh
Tempo
tgl_jatuh_tempo DATE
7 Jumlah Trayek jumlah_trayek INT 4
8 Rincian Rincian VARCHAR 255
9 Total Tagihan total_tagihan DOUBLE
10 Kode User kode_user CHAR 15 Foreign Key
11 Status Bayar status_bayar TINYINT 1
7. Spesifikasi File Tabel Pembayaran
Nama Database : cv_abs
69
Nama File : pembayaran
Tipe File : File Transaksi
Akses File : Random
Record Size : 56 Karakter
Field Key : no_pembayaran
Tabel III.20.
Spesifikasi File Tabel Pembayaran
No Elemen Data Akronim Tipe Panjang Keterangan
1 No Bayar no_bayar CHAR 16 Primary Key
2 Tanggal Bayar tgl_bayar DATE
3 No Penagihan no_penagihan CHAR 25
4 Kode User kode_user VARCHAR 15 Foreign Key
5 Total Bayar total_bayar DOUBLE
8. Spesifikasi File Tabel Perkiraan
Nama Database : cv_abs
Nama File : perkiraan
Tipe File : File Master
Akses File : Random
Record Size : 65 Karakter
Field Key : kode_akun
Tabel III.21.
Spesifikasi File Tabel Perkiraan
No Elemen Data Akronim Tipe Panjang Keterangan
1 Kode Akun kode_akun CHAR 5 Primary Key
2 Nama Akun nama_akun VARCHAR 35
3 Klasifikasi Klasifikasi VARCHAR 25
70
9. Spesifikasi File Tabel Jurnal
Nama Database : cv_abs
Nama File : jurnal
Tipe File : File Transaksi
Akses File : Random
Record Size : 138 Karakter
Field Key : no_jurnal
Tabel III.22.
Spesifikasi File Tabel Jurnal
No Elemen Data Akronim Tipe Panjang Keterangan
1 No Jurnal no_jurnal CHAR 7 Primary Key
2 Tanggal Jurnal tgl_jurnal DATE
3 Keterangan Keterangan VARCHAR 100
4 No Bayar no_bayar CHAR 16 Foreign Key
5 Kode User kode_user VARCHAR 15 Foreign Key
10. Spesifikasi File Tabel Detail Jurnal
Nama Database : cv_abs
Nama File : detail_jurnal
Tipe File : File Transaksi
Akses File : Random
Record Size : 15 Karakter
Field Key : -
71
Tabel III.23.
Spesifikasi File Tabel Detail Jurnal
No Elemen Data Akronim Tipe Panjang Keterangan
1 No Jurnal no_jurnal CHAR 10 Primary Key
2 Kode Akun kode_akun CHAR 5 Foreign Key
3 Debet Debet DOUBLE
4 Kredit Kredit DOUBLE
3.4.4. Sequence Diagram
1. Sequence Diagram Mengelola User
Gambar III.32.
Sequence Diagram Mengelola User
sd Sequence Diagram User
DirekturForm User Control User
User
btnsimpanActionPerformed()
aktifNonaktif()
bersihInputan()
«create»
[Tampil Error]:
[Set Data]:
[Input Data User]:
[status="Tambah"]:
btntambahActionPerformed()
tambahUser()
[Validasi]:
FormUser()
«create»
72
2. Sequence Diagram Mengelola Penyewa
Gambar III.33.
Sequence Diagram Mengelola Penyewa
sd Sequence Diagram Penyewa
AdminForm Penyewa Control Penyewa
Penyewa
[Input Data Penyewa]:
FormPenyewa()
«create»
[Kode Penyewa Baru]:
buatKodePenyewa()
tambahPenyewa()
aktifNonaktif()
[Validasi]:
bersihInputan()
btnsimpanActionPerformed()
«create»
[Tampilkan Kode Penyewa]:
[Buat Kode Penyewa Baru]:
buatKodePenyewa()
[Tampil Error]:
[Status= "Tambah"]:
[Set Data]:
btntambahActionPerformed()
73
3. Sequence Diagram Mengelola Tarif
Gambar III.34.
Sequence Diagram Mengelola Tarif
sd Sequence Diagram Tarif
DirekturForm Tarif Control Tarif
Tarif
[Validasi]:
btnsimpanActionPerformed()
[Status= "Tambah"]:
[Tampilkan Kode Tarif]:
btntambahActionPerformed()
[Buat Kode Tarif Baru]:
FormTarif()
«create»
buatKodeTarif()
[Tampil Error]:
[Set Data]:
aktifNonaktif()
[Input Data Tarif]:
bersihInputan()
[Kode Tarif Baru]:
«create»
buatKodeTarif()
tambahTarif()
74
4. Sequence Diagram Mengelola Penyewaan
Gambar III.35.
Sequence Diagram Mengelola Penyewaan
sd Sequnce Diagram Penyewaan
AdminForm Sewa Control Penyewaan
Penyewaan
Tarif
Penyewan Detail
loop Input Data Kendaraan
[Masih Ada Kendaraan Yang disewa]
btntambahActionPerformed()
buatNoSewa()
FormSewa()
«create»
[Set Data]:
[No Sewa Baru]:
«create»
btntambah_itemActionPerformed()
[status= "Tambah"]:
«create»
[Tampil Data Tarif]:
cariKodeTarif()
tambahPenjualan()
cariKodeTarif()
[Validasi]:
btnsimpanActionPerformed()
«create»
[Pilih Trayek]:
[Tampil Data Tarif]:
aktifNonaktif()
[Data Tarif]:
[Pilih Jenis Kendaraan]:
[Buat No Sewa Baru]:
bersihInputan()
tambahDetailSewa()
[Tampilkan No Sewa]:
buatNoSewa()
[Tampil Pesan Error]:
75
5. Sequence Diagram Mengelola Pembayaran
Gambar III.36.
Sequence Diagram Mengelola Pembayaran
sd Sequence Diagram Pembayaran
DirekturForm Pembayaran Control Pembayaran
Pembayaran
Penagihan
[Tampil Pesan Error]:
[Buat No Bayar Baru]:
cariNoPenagihan()
[Set Data]:
buatNoBayar()
tno_penagihanKeyPressed()
bersihInputan()
[Tampil No Bayar]:
btntambahActionPerformed()
btnsimpanActionPerformed()
[Tampil Data Penagihan]:
tambahBayar()
[No Bayar Baru]:
[Data Penagihan]:
[Validasi]:
buatNoBayar()
cariNoPenagihan()
aktifNonaktif()
[Input No Penagihan]:
[Status="Tambah"]:
[Tampil Data Penagihan]:
setBayar()
FormPembayaran()
«create»
76
3.4.5. Deployment Diagram
Gambar III.37.
Deployment Diagram
deployment Deployment
Aplikasi
Aplikasi Penyewaan
Kwendaraan
Jasper Report
Database Server
MySQL Server
Java
Java Runrtime Environment
cv_abs
«use»
MySQL JDBC Driver
«use»
77
3.4.6. User Interface
1. Form Login
Gambar III.38.
Form Login
2. Form Menu
Gambar III.39.
Form Menu
78
3. Form User
Gambar III.40.
Form User
3. Form Penyewa
Gambar III.41.
Form Penyewa
79
4. Form Tarif
Gambar III.42.
Form Tarif
5. Form Sewa
Gambar III.43.
Form Sewa
80
6. Form Penagihan
Gambar III.44.
Form Penagihan
7. Form Pembayaran
Gambar III.45.
Form Pembayaran
81
8. Form Laporan
Gambar III.46.
Form Laporan
3.5. Implementasi
3.5.1. Code Generation
1. Model Penyewaan
package model;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class Penyewaan {
private Connection koneksi;
private String no_sewa;
private Date tgl_sewa;
private String kode_penyewa;
private double total_biaya;
private String kode_user;
private String pesan_error;
public Penyewaan() {
82
try {
Class.forName("com.mysql.jdbc.Driver");
koneksi = DriverManager.getConnection("jdbc:mysql://localhost/cv_abs?",
"root", "");
} catch (ClassNotFoundException | SQLException ex) {
this.pesan_error = ex.getMessage();
}
}
public Connection getKoneksi() {
return koneksi;
}
public String getNo_sewa() {
return no_sewa;
}
public void setNo_sewa(String no_sewa) {
this.no_sewa = no_sewa;
}
public Date getTgl_sewa() {
return tgl_sewa;
}
public void setTgl_sewa(Date tgl_sewa) {
this.tgl_sewa = tgl_sewa;
}
public String getKode_penyewa() {
return kode_penyewa;
}
public void setKode_penyewa(String kode_penyewa) {
this.kode_penyewa = kode_penyewa;
}
public double getTotal_biaya() {
return total_biaya;
}
public void setTotal_biaya(double total_biaya) {
this.total_biaya = total_biaya;
}
public String getKode_user() {
return kode_user;
}
83
public void setKode_user(String kode_user) {
this.kode_user = kode_user;
}
public String getPesan_error() {
return pesan_error;
}
public String buatNoSewa() {
try {
String Sql = "SELECT * FROM penyewaan ORDER BY
SUBSTR(no_sewa,3,10) * 1 DESC LIMIT 1";
Statement st = this.koneksi.createStatement();
ResultSet rs = st.executeQuery(Sql);
if (rs.next()) {
String No = rs.getString("no_sewa");
No = No.substring(2, 10);
System.out.println(No);
No = "SW" + String.form at("%08d", Integer.parseInt(No) + 1);
return No;
} else {
return "SW00000001";
}
} catch (SQLException ex) {
this.pesan_error = ex.getMessage();
return "";
}
}
public List<Penyewaan> daftarSewa() {
try {
String Sql = "SELECT * FROM penyewaan ORDER BY no_sewa";
List<Penyewaan> ls = new ArrayList();
Statement st = this.koneksi.createStatement();
ResultSet rs = st.executeQuery(Sql);
while (rs.next()) {
Penyewaan penyewaan = new Penyewaan();
penyewaan.setNo_sewa(rs.getString("no_sewa"));
penyewaan.setTgl_sewa(rs.getDate("tgl_sewa"));
penyewaan.setKode_penyewa(rs.getString("kode_penyewa"));
penyewaan.setTotal_biaya(rs.getDouble("total_biaya_sewa"));
penyewaan.setKode_user(rs.getString("kode_user"));
ls.add(penyewaan);
}
return ls;
} catch (SQLException ex) {
84
this.pesan_error = ex.getMessage();
return null;
}
}
public List<Penyewaan> cariSewa(Date tgl1, Date tgl2) {
try {
String Sql = "SELECT * FROM penyewaan WHERE tgl_sewa BETWEEN ?
AND ? ORDER BY no_sewa";
List<Penyewaan> ls = new ArrayList();
PreparedStatement ps = this.koneksi.prepareStatement(Sql);
ps.setDate(1, tgl1);
ps.setDate(2, tgl2);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Penyewaan penyewaan = new Penyewaan();
penyewaan.setNo_sewa(rs.getString("no_sewa"));
penyewaan.setTgl_sewa(rs.getDate("tgl_sewa"));
penyewaan.setKode_penyewa(rs.getString("kode_penyewa"));
penyewaan.setTotal_biaya(rs.getDouble("total_biaya_sewa"));
penyewaan.setKode_user(rs.getString("kode_user"));
ls.add(penyewaan);
}
return ls;
} catch (SQLException ex) {
this.pesan_error = ex.getMessage();
return null;
}
}
public List<Penyewaan> cariSewaPerPenyewa(String KodePenyewa, Date tgl1,
Date tgl2) {
try {
String Sql = "SELECT * FROM penyewaan WHERE kode_penyewa=? AND
(tgl_sewa BETWEEN ? AND ?) ORDER BY no_sewa";
List<Penyewaan> ls = new ArrayList();
PreparedStatement ps = this.koneksi.prepareStatement(Sql);
ps.setString(1, KodePenyewa);
ps.setDate(2, tgl1);
ps.setDate(3, tgl2);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Penyewaan penyewaan = new Penyewaan();
penyewaan.setNo_sewa(rs.getString("no_sewa"));
penyewaan.setTgl_sewa(rs.getDate("tgl_sewa"));
penyewaan.setKode_penyewa(rs.getString("kode_penyewa"));
penyewaan.setTotal_biaya(rs.getDouble("total_biaya_sewa"));
penyewaan.setKode_user(rs.getString("kode_user"));
85
ls.add(penyewaan);
}
return ls;
} catch (SQLException ex) {
this.pesan_error = ex.getMessage();
return null;
}
}
public Penyewaan cariNoSewa(String No) {
try {
String Sql = "SELECT * FROM penyewaan WHERE
UPPER(kode_penyewa)=? ORDER BY kode_penyewa";
PreparedStatement ps = this.koneksi.prepareStatement(Sql);
ps.setString(1, No.toUpperCase());
ResultSet rs = ps.executeQuery();
if (rs.next()) {
this.setNo_sewa(rs.getString("no_sewa"));
this.setTgl_sewa(rs.getDate("tgl_sewa"));
this.setKode_penyewa(rs.getString("kode_penyewa"));
this.setTotal_biaya(rs.getDouble("total_biaya_sewa"));
this.setKode_user(rs.getString("kode_user"));
} else {
this.setNo_sewa(null);
this.setTgl_sewa(null);
this.setKode_penyewa(null);
this.setTotal_biaya(0);
this.setKode_user(null);
}
return this;
} catch (SQLException ex) {
this.setNo_sewa(null);
this.setTgl_sewa(null);
this.setKode_penyewa(null);
this.setTotal_biaya(0);
this.setKode_user(null);
this.pesan_error = ex.getMessage();
return this;
}
}
public int tambahSewa() {
try {
String Sql = "INSERT INTO penyewaan (no_sewa, tgl_sewa,
kode_penyewa, total_biaya_sewa, kode_user) VALUES (?,?,?,?,?)";
86
PreparedStatement ps = this.koneksi.prepareStatement(Sql);
ps.setString(1, this.no_sewa);
ps.setDate(2, this.tgl_sewa);
ps.setString(3, this.kode_penyewa);
ps.setDouble(4, this.total_biaya);
ps.setString(5, this.kode_user);
return ps.executeUpdate();
} catch (SQLException ex) {
this.pesan_error = ex.getMessage();
return -1;
}
}
public int hapusSewa(String NoSewa) {
try {
String Sql = "DELETE FROM penyewaan WHERE no_sewa=?";
PreparedStatement ps = this.koneksi.prepareStatement(Sql);
ps.setString(1, NoSewa);
return ps.executeUpdate();
} catch (SQLException ex) {
this.pesan_error = ex.getMessage();
return -1;
}
}
}
2. Form Penyewaan
package form s;
import cvabs.CvABS;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.text.NumberForm at;
import java.text.SimpleDateForm at;
import java.util.Date;
import java.util.List;
import java.util.ListIterator;
import java.util.Locale;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import model.DetailPenyewaan;
import model.Penyewa;
import model.Penyewaan;
import model.Tarif;
87
public class Form Sewa extends javax.swing.JFrame {
String kondisi = "";
String kode_tarif = "";
Penyewaan sewa = new Penyewaan();
Penyewa penyewa = new Penyewa();
DetailPenyewaan detail_penyewaan = new DetailPenyewaan();
Tarif tarif = new Tarif();
NumberForm at nf = NumberForm at.getInstance(new Locale("id", "ID"));
DefaultComboBoxModel tm1 = null;
DefaultComboBoxModel tm2 = null;
DefaultComboBoxModel tm3 = null;
DefaultTableModel dtm = null;
DefaultTableModel dtm2 = null;
public Form Sewa() {
initComponents();
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension d = tk.getScreenSize();
int x, y;
x = (int) ((d.getWidth() - getSize().width) / 2);
y = (int) ((d.getHeight() - getSize().height) / 2);
tm1 = (DefaultComboBoxModel) tpenyewa.getModel();
tm2 = (DefaultComboBoxModel) tjenis_kendaraan.getModel();
tm3 = (DefaultComboBoxModel) ttrayek.getModel();
dtm = (DefaultTableModel) tblsewa.getModel();
dtm2 = (DefaultTableModel) tbldetail.getModel();
tblsewa.getTableHeader().setFont(new Font("Segoe UI Light", 1, 16));
tblsewa.setRowHeight(27);
DefaultTableCellRenderer rataKanan = new DefaultTableCellRenderer();
rataKanan.setHorizontalAlignment(JLabel.RIGHT);
tblsewa.getColumnModel().getColumn(8).setCellRenderer(rataKanan);
tblsewa.getColumnModel().getColumn(9).setCellRenderer(rataKanan);
tbldetail.getTableHeader().setFont(new Font("Segoe UI Light", 1, 16));
tbldetail.setRowHeight(27);
setLocation(x, y);
daftarPenyewa();
88
daftarJenisKendaraan();
daftarPenyewaan();
bersihInputan();
aktifNonaktif();
MyTab.setSelectedIndex(1);
}
private void aktifNonaktif() {
btntambah.setEnabled("".equals(this.kondisi));
btnsimpan.setEnabled(!"".equals(this.kondisi));
btnbatal.setEnabled(!"".equals(this.kondisi));
btncari.setEnabled("".equals(this.kondisi));
tpenyewa.setEnabled(!"".equals(this.kondisi));
tjenis_kendaraan.setEnabled(!"".equals(this.kondisi));
ttrayek.setEnabled(!"".equals(this.kondisi));
tbiaya_sewa.setEnabled(!"".equals(this.kondisi));
btntambah_item.setEnabled(!"".equals(this.kondisi) &&
!"".equals(tbiaya_sewa.getText()));
MyTab.setEnabledAt(0, !"".equals(this.kondisi));
MyTab.setEnabledAt(1, "".equals(this.kondisi));
}
private void bersihInputan() {
tno_sewa.setText("");
SimpleDateForm at sdf = new SimpleDateForm at("dd/MM/yyyy");
ttgl_sewa.setText(sdf.form at(new java.util.Date()));
tpenyewa.setSelectedItem("");
talamat.setText("");
tjenis_kendaraan.setSelectedItem("");
ttrayek.setSelectedItem("");
tbiaya_sewa.setText("");
tjumlah_sewa.setText("");
ttotal_sewa.setText("");
dtm2.getDataVector().removeAllElements();
}
private void daftarPenyewaan() {
List<Penyewaan> listPenyewaan = sewa.daftarSewa();
System.out.println(sewa.getPesan_error());
ListIterator li = listPenyewaan.listIterator();
89
dtm.setRowCount(0);
tblsewa.repaint();
String No = "";
double total = 0;
while (li.hasNext()) {
Penyewaan sw = (Penyewaan) li.next();
List<DetailPenyewaan> listDetail =
detail_penyewaan.daftarDetailSewa(sw.getNo_sewa());
ListIterator lIterator = listDetail.listIterator();
Object[] data = null;
while (lIterator.hasNext()) {
DetailPenyewaan dtl = (DetailPenyewaan) lIterator.next();
Tarif trf = new Tarif().cariKodeTarif(dtl.getKode_tarif());
Penyewa pny = new
Penyewa().cariKodePenyewa(sw.getKode_penyewa());
if (No.equalsIgnoreCase(sw.getNo_sewa())) {
Object[] jdata = {
"",
"",
"",
"",
dtl.getKode_tarif(),
trf.getJenis_kendaraan(),
trf.getTrayek(),
dtl.getJumlah_sewa_kendaraan(),
nf.form at(dtl.getBiaya_sewa()),
nf.form at(dtl.getBiaya_sewa() * dtl.getJumlah_sewa_kendaraan())
};
data = jdata;
} else {
Object[] jdata = {
sw.getNo_sewa(),
sw.getTgl_sewa(),
sw.getKode_penyewa(),
pny.getNama_penyewa(),
dtl.getKode_tarif(),
trf.getJenis_kendaraan(),
trf.getTrayek(),
dtl.getJumlah_sewa_kendaraan(),
nf.form at(dtl.getBiaya_sewa()),
nf.form at(dtl.getBiaya_sewa() * dtl.getJumlah_sewa_kendaraan())
};
data = jdata;
}
total += dtl.getBiaya_sewa() * dtl.getJumlah_sewa_kendaraan();
dtm.addRow(data);
No = sw.getNo_sewa();
90
}
}
Object[] jdata = {
"",
"",
"",
"",
"",
"",
"",
"",
"<html><b>T O T A L</b></html>",
"<html><b>" + nf.form at(total) + "</b></html>"
};
dtm.addRow(jdata);
}
private void daftarPenyewaan(Date tgl1, Date tgl2) {
List<Penyewaan> listPenyewaan = sewa.cariSewa(new
java.sql.Date(tgl1.getTime()), new java.sql.Date(tgl2.getTime()));
ListIterator li = listPenyewaan.listIterator();
dtm.setRowCount(0);
tblsewa.repaint();
String No = "";
double total = 0;
while (li.hasNext()) {
Penyewaan sw = (Penyewaan) li.next();
List<DetailPenyewaan> listDetail =
detail_penyewaan.daftarDetailSewa(sw.getNo_sewa());
ListIterator lIterator = listDetail.listIterator();
Object[] data = null;
while (lIterator.hasNext()) {
DetailPenyewaan dtl = (DetailPenyewaan) lIterator.next();
Tarif trf = new Tarif().cariKodeTarif(dtl.getKode_tarif());
Penyewa pny = new
Penyewa().cariKodePenyewa(sw.getKode_penyewa());
if (No.equalsIgnoreCase(sw.getNo_sewa())) {
Object[] jdata = {
"",
"",
"",
"",
dtl.getKode_tarif(),
trf.getJenis_kendaraan(),
trf.getTrayek(),
nf.form at(dtl.getBiaya_sewa()),
91
dtl.getJumlah_sewa_kendaraan(),
nf.form at(dtl.getBiaya_sewa() * dtl.getJumlah_sewa_kendaraan())
};
data = jdata;
} else {
Object[] jdata = {
sw.getNo_sewa(),
sw.getTgl_sewa(),
sw.getKode_penyewa(),
pny.getNama_penyewa(),
dtl.getKode_tarif(),
trf.getJenis_kendaraan(),
trf.getTrayek(),
nf.form at(dtl.getBiaya_sewa()),
dtl.getJumlah_sewa_kendaraan(),
nf.form at(dtl.getBiaya_sewa() * dtl.getJumlah_sewa_kendaraan())
};
data = jdata;
}
total += dtl.getBiaya_sewa() * dtl.getJumlah_sewa_kendaraan();
dtm.addRow(data);
No = sw.getNo_sewa();
}
}
Object[] jdata = {
"",
"",
"",
"",
"",
"",
"",
"",
"<html><b>T O T A L</b></html>",
"<html><b>" + nf.form at(total) + "</b></html>"
};
dtm.addRow(jdata);
}
private void bersihInputan2() {
tjenis_kendaraan.setSelectedItem("");
ttrayek.setSelectedItem("");
tbiaya_sewa.setText("");
tjumlah_sewa.setText("");
}
92
private void daftarPenyewa() {
List<Penyewa> listPenyewa = penyewa.daftarPenyewa();
ListIterator li = listPenyewa.listIterator();
tm1.removeAllElements();
tpenyewa.addItem("");
while (li.hasNext()) {
Penyewa pny = (Penyewa) li.next();
tpenyewa.addItem(pny.getKode_penyewa() + "-" +
pny.getNama_penyewa());
}
}
private void daftarJenisKendaraan() {
List<Tarif> listTarif = tarif.daftarJenisKendaraan();
System.out.println(tarif.getPesan_error());
ListIterator li = listTarif.listIterator();
tm2.removeAllElements();
tjenis_kendaraan.addItem("");
while (li.hasNext()) {
Tarif trf = (Tarif) li.next();
tjenis_kendaraan.addItem(trf.getJenis_kendaraan());
}
}
private void daftarTrayek(String JenisKendaraan) {
List<Tarif> listTarif = tarif.cariTarif(JenisKendaraan);
ListIterator li = listTarif.listIterator();
tm3.removeAllElements();
ttrayek.addItem("");
while (li.hasNext()) {
Tarif trf = (Tarif) li.next();
ttrayek.addItem(trf.getTrayek());
}
}
private void tambahItem() {
// TODO add your handling code here:
int i;
tarif = tarif.cariKodeTarif(tjenis_kendaraan.getSelectedItem().toString(),
ttrayek.getSelectedItem().toString());
System.out.println(tarif.getBiaya_sewa());
for (i = 0; i < dtm2.getRowCount(); i++) {
String kode = dtm2.getValueAt(i, 0).toString();
if (kode.equalsIgnoreCase(tarif.getKode_tarif())) {
dtm.getDataVector().removeElementAt(i);
break;
}
}
Object[] data = {
93
tarif.getKode_tarif(),
tjenis_kendaraan.getSelectedItem().toString(),
ttrayek.getSelectedItem().toString(),
tbiaya_sewa.getText(),
tjumlah_sewa.getText(),
nf.form at(tarif.getBiaya_sewa() *
Double.parseDouble(tjumlah_sewa.getText()))
};
dtm2.addRow(data);
bersihInputan2();
kode_tarif = "";
aktifNonaktif();
tjenis_kendaraan.requestFocus();
}
private void hitungTotal() {
double total = 0;
for (int i = 0; i < dtm2.getRowCount(); i++) {
total += Double.parseDouble(dtm2.getValueAt(i, 5).toString().replace(".",
""));
}
ttotal_sewa.setText(nf.form at(total));
}
private void btncariActionPerform ed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (tgl1.getDate() == null || tgl2.getDate() == null) {
daftarPenyewaan();
} else {
daftarPenyewaan(tgl1.getDate(), tgl2.getDate());
}
}
private void tbldetailMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
}
private void tbldetailKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if (evt.getKeyCode() == KeyEvent.VK_DELETE) {
int row = tbldetail.getSelectedRow();
dtm2.removeRow(row);
tbldetail.repaint();
hitungTotal();
94
}
}
private void btntambahActionPerform ed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.kondisi = "Tambah";
this.kode_tarif = "";
bersihInputan();
aktifNonaktif();
tno_sewa.setText(sewa.buatNoSewa());
tjenis_kendaraan.requestFocus();
MyTab.setSelectedIndex(0);
}
private void btnsimpanActionPerform ed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if ("".equals(talamat.getText().trim())) {
JOptionPane.showMessageDialog(rootPane, "Mohon isi data penyewa
dahulu", "Galat", JOptionPane.ERROR_MESSAGE);
return;
}
if (dtm.getRowCount() == 0) {
JOptionPane.showMessageDialog(rootPane, "Belum ada kendaraan yang
dipilih", "Galat", JOptionPane.ERROR_MESSAGE);
return;
}
sewa.setNo_sewa(tno_sewa.getText());
java.sql.Date sdate = new java.sql.Date(new java.util.Date().getTime());
sewa.setTgl_sewa(sdate);
String[] KodeSewa = tpenyewa.getSelectedItem().toString().split("-");
sewa.setKode_penyewa(KodeSewa[0]);
sewa.setTotal_biaya(Double.parseDouble(ttotal_sewa.getText().replace(".",
"")));
sewa.setKode_user(CvABS.kode_user);
sewa.tambahSewa();
for (int i = 0; i < dtm2.getRowCount(); i++) {
String kode = (String) dtm2.getValueAt(i, 0);
double biaya = Double.parseDouble(dtm2.getValueAt(i, 3).toString());
int jml = Integer.parseInt(dtm2.getValueAt(i, 4).toString());
detail_penyewaan.setNo_sewa(tno_sewa.getText());
detail_penyewaan.setKode_tarif(kode);
detail_penyewaan.setBiaya_sewa(biaya);
detail_penyewaan.setJumlah_sewa_kendaraan(jml);
detail_penyewaan.tambahSewa();
95
System.out.println(detail_penyewaan.getPesan_error());
}
bersihInputan();
dtm2.getDataVector().removeAllElements();
tbldetail.repaint();
kondisi = "";
kode_tarif = "";
JOptionPane.showMessageDialog(rootPane, "Penyewaan berhasil dibuat",
"Info", JOptionPane.INFORMATION_MESSAGE);
daftarPenyewaan();
aktifNonaktif();
}
private void btnbatalActionPerform ed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.kondisi = "";
this.kode_tarif = "";
bersihInputan();
aktifNonaktif();
MyTab.setSelectedIndex(1);
}
private void btntutupActionPerform ed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}
private void btntambah_itemActionPerform ed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if ("".equals(tbiaya_sewa.getText()) && "".equals(tjumlah_sewa.getText())) {
JOptionPane.showMessageDialog(rootPane, "Mohon pilih dulu kendaraan
yang di sewa dan jumlah sewa", "Info", JOptionPane.WARNING_MESSAGE);
return;
}
if (!CvABS.periksaInput(tjumlah_sewa.getText(), "[0-9]{1,3}$")) {
tjumlah_sewa.requestFocus();
JOptionPane.showMessageDialog(rootPane, "Masukan sesuai form at yang
diminta!\n(Jumlah sewa hanya boleh berupa angka)", "Galat",
JOptionPane.ERROR_MESSAGE);
return;
}
tambahItem();
hitungTotal();
96
}
private void tpenyewaItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
if (!tpenyewa.getSelectedItem().toString().equals("")) {
String[] str = tpenyewa.getSelectedItem().toString().split("-");
penyewa = penyewa.cariKodePenyewa(str[0]);
talamat.setText(penyewa.getAlamat_penyewa());
} else {
talamat.setText("");
}
aktifNonaktif();
}
private void tjenis_kendaraanItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
tm3.removeAllElements();
tbiaya_sewa.setText("");
if (!"".equals(tjenis_kendaraan.getSelectedItem().toString())) {
daftarTrayek(tjenis_kendaraan.getSelectedItem().toString());
} else {
}
aktifNonaktif();
}
private void ttrayekItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
try {
if (!"".equals(ttrayek.getSelectedItem().toString())) {
tarif = tarif.cariKodeTarif(tjenis_kendaraan.getSelectedItem().toString(),
ttrayek.getSelectedItem().toString());
if (tarif.getJenis_kendaraan() != null) {
tbiaya_sewa.setText(String.valueOf(tarif.getBiaya_sewa()));
} else {
tbiaya_sewa.setText("");
}
}
aktifNonaktif();
} catch (Exception ex) {
}
}
public static void main(String args[]) {
try {
97
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Metal".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Form
Sewa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Form
Sewa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Form
Sewa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Form
Sewa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Form Sewa().setVisible(true);
}
});
}
}
3.5.2. Blackbox Testing
1. Form Login
Tabel III.24.
Hasil Pengujian Black Box Testing Form Login
No Skenario
Pengujian Test Case
Hasil yang
diharapkan
Hasil
Pengujian Kesimpulan
1
Kode User
dan
password
tidak diisi
kemudian
Kode User: Sistem akan
menolak
akses dan
menampilkan
pesan " Kode
Sesuai
Harapan Valid
(Kosong)
Password:
(Kosong)
98
klik tombol
login
User dan
Password
tidak boleh
kosong!"
2
Kode User
sedangkan
Password
tidak diisi
kemudian
klik tombol
login
Kode User: Sistem akan
menolak
akses dan
menampilkan
pesan "
Password
tidak boleh
kosong "
Sesuai
Harapan Valid
Yni
Password:
(Kosong)
3
Kode User
tidak di isi
atau
(kosong)
dan -
Password
diisi
kemudian
klik tombol
login
Kode User: Sistem akan
menolak
akses dan
menampilkan
pesan " Kode
User tidak
boleh kosong
"
Sesuai
Harapan Valid
(Kosong)
Password:
123
4
Mengetikka
n salah satu
kondisi
salah pada
Kode User
atau
password
kemudian
klik tombol
Login
Kode User:
yni (benar)
Sistem akan
menolak
akses dan
menampilkan
pesan "
Password
keliru!"
Sesuai
Harapan
Valid
Password:
123456 (salah)
99
5
Mengetikka
n Kode User
dan
password
dengan data
yang benar
kemudian
klik tombol
Login
Kode User: Sistem akan
menerima
akses Login
dan
menampilkan
Form Menu
Utama
Sesuai
Harapan Valid
yni (benar)
Password:
12345678
(benar)
2. Form Tarif
Tabel III.25.
Hasil Pengujian Black Box Testing Form Tarif
No Skenario
Pengujian Test Case
Hasil yang
diharapkan
Hasil
Pengujian Kesimpulan
1
Tidak ada
satupun field
yang diisi
atau salah
satu field ada
yang kosong
kemudian
klik Simpan
Kode Tarif:
(Otomatis)
Jenis
Kendaraan:
(Kosong)
Trayek:
(Kosong)
Biaya Sewa:
(Kosong)
Sistem akan
menolak dan
menampilkan
pesan
"Mohon isi
dulu semua
data"
Sesuai
Harapan Valid
2
Semu field
diisi akan
tetapi Biaya
Sewa tidak
diisi dengan
form at yang
benar
kemudian
Kode Tarif:
(Otomatis)
Jenis
Kendaraan:
CDE Engkel
12 CBM
Trayek:
Cikampek-
Sistem akan
menolak dan
menampilkan
pesan "
Masukan
sesuai form at
yang diminta!
(Biaya sewa
Sesuai
Harapan Valid
100
klik Simpan Purwakarta
Biaya Sewa:
Fdfdgf
hanya boleh
berupa
angka)"
3
Semua field
diisi dengan
form at yang
benar
kemudian
klik Simpan
Kode Tarif:
(Otomatis)
Jenis
Kendaraan:
CDE Engkel
12 CBM
Trayek:
Cikampek-
Purwakarta
Biaya Sewa:
650000
Sistem akan
menerima dan
menyimpan
data tarif
kemudian
menampilkan
pesan “Data
tarif berhasil
disimpan!”
Sesuai
Harapan Valid
3. Form Penyewa
Tabel III.26.
Hasil Pengujian Black Box Testing Form Penyewa
No Skenario
Pengujian Test Case
Hasil yang
diharapkan
Hasil
Pengujian Kesimpulan
1
Tidak ada
satupun field
yang diisi
atau salah
satu field ada
yang kosong
kemudian
klik Simpan
Kode
Penyewa:
(Otomatis)
Nama
Penyewa:
(Kosong)
Alamat
Penyewa:
(Kosong)
Sistem akan
menolak dan
menampilkan
pesan
"Mohon isi
dulu semua
data"
Sesuai
Harapan Valid
101
No HP:
(Kosong)
(Kosong)
2
Semu field
diisi akan
tetapi Nama
penyewa
tidak diisi
dengan form
at yang benar
kemudian
klik Simpan
Kode
Penyewa:
(Otomatis)
Nama
Penyewa:
PT Kido@#@
Alamat
Penyewa:
Jl. Arteri
Karawang,
Pancawati
No HP:
0267565432
Marketing@ki
dojaya.com
Sistem akan
menolak dan
menampilkan
pesan "
Masukan
sesuai form at
yang diminta!
(Nama hanya
boleh alfabet,
angka dan
spasi"
Sesuai
Harapan Valid
3
Semu field
diisi akan
tetapi No HP
tidak diisi
dengan form
at yang benar
kemudian
klik Simpan
Kode
Penyewa:
(Otomatis)
Nama
Penyewa:
PT Kido Jaya
Alamat
Penyewa:
Jl. Arteri
Karawang,
Sistem akan
menolak dan
menampilkan
pesan
"Masukan
sesuai form at
yang diminta!
(No HP
hanya boleh
berupa
Sesuai
Harapan Valid
102
Pancawati
No HP:
ABCA
Marketing@ki
dojaya.com
angka)
"
4
Semu field
diisi akan
tetapi Email
tidak diisi
dengan form
at yang benar
kemudian
klik Simpan
Kode
Penyewa:
(Otomatis)
Nama
Penyewa:
PT Kido Jaya
Alamat
Penyewa:
Jl. Arteri
Karawang,
Pancawati
No HP:
0267565432
Marketing
Sistem akan
menolak dan
menampilkan
pesan
"Masukan
sesuai form at
yang
diminta!\n(F
orm at Email
harus sesuai
misal
.id)"
Sesuai
Harapan Valid
5
Semu field
diisi dengan
form at yang
benar
kemudian
klik Simpan
Kode
Penyewa:
(Otomatis)
Nama
Penyewa:
PT Kido Jaya
Alamat
Penyewa:
Jl. Arteri
Karawang,
Pancawati
Sistem akan
menerima
dan
menyimpan
data tarif
kemudian
menampilkan
pesan “Data
penyewa
berhasil
disimpan!”
Sesuai
Harapan Valid
103
No HP:
0267565432
Marketing@ki
dojaya.com
4. Form Penyewaan
Tabel III.27.
Hasil Pengujian Black Box Testing Form Penyewaan
No Skenario
Pengujian Test Case
Hasil yang
diharapkan
Hasil
Pengujian Kesimpulan
1
Tidak ada
satupun field
yang diisi
atau salah
satu field ada
yang kosong
kemudian
klik Simpan
No Sewa:
(Otomatis)
Tanggal Sewa:
(Otomatis)
Penyewa:
(Kosong)
Alamat
Penyewa:
(Kosong)
Daftar
kendaraan
(tarif):
(Belum
Dipilih)
Sistem akan
menolak dan
menampilkan
pesan
"Mohon isi
dulu semua
data!" Sesuai
Harapan Valid
104
2
No Sewa,
tanggal sewa,
Penyewa, dan
Alamat
Penyewa
diisi, tetapi
belum ada
kendaraan
yang dipilih
kemudian
klik Simpan
No Sewa:
(Otomatis)
Tanggal Sewa:
(Otomatis)
Penyewa:
PN002-PT
Kido Jaya
Alamat
Penyewa:
Jl. Arteri
Karawang,
Pancawati
Daftar
kendaraan
(tarif):
(Belum
Dipilih)
Sistem akan
menolak dan
menampilkan
pesan "Belum
ada
kendaraan
yang dipilih!"
Sesuai
Harapan Valid
3
No Sewa,
tanggal sewa,
Penyewa, dan
Alamat
Penyewa
diisi, serta
kendaraan
yang telah
dipilih
kemudian
klik Simpan
No Sewa:
(Otomatis)
Tanggal Sewa:
(Otomatis)
Penyewa:
PN002-PT
Kido Jaya
Alamat
Penyewa:
Jl. Arteri
Karawang,
Pancawati
Daftar
kendaraan
(tarif):
001
Sistem akan
menerima
dan
menyimpan
data
penjualan
serta
menampilkan
pesan
"Penyewaan
berhasil
dibuat!"
Sesuai
Harapan Valid
105
002
3.5.3. Spesifikasi Hardware dan Software
Agar perangkat lunak berjalan dengan optimal, maka dibutuhkan konfigurasi
perangkat keras (hardware) dan juga perangkat lunak (software) yang tepat. Berikut
spesifikasi hardware dan software yang dibutuhkan antara lain :
Tabel III.28.
Spesifikasi Hardware dan Software
Kebutuhan Keterangan
Sistem Windows 7 32-bit atau 64-bit atau di atasnya
Processor Intel Core 2 Duo @1.9GHz
RAM 2 GB
Harddisk 4 GB (minimal instalasi)
Monitor 14" LED
Keyboard 102 key
Printer Inkjet
Mouse Standard
Software
Kebutuhan menjalankan aplikasi secara local:
Bahasa Pemgrograman : Java
IDE : Netbeans IDE 8.1
DBMS : MySQL