Post on 31-Oct-2020
28
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Usaha bisnis rental mobil adalah usaha yang bergerak dalam bidang jasa yang
memberikan layanan penyewaan utamanya berupa mobil sebagai alat transportasi
bagi masyarakat. Masyarakat bisa menyewa mobil pada sebuah rental kendaraan
untuk keperluan mereka khususnya yang ingin berpergian keluar kota. Dengan harga
sewa mobil yang murah menjadikan bisnis rental mobil.
3.1.1. Sejarah Perusahaan
CV Mahkota Trans Abadi merupakan badan usaha yang bergerak dalam
bidang jasa. Perusahaan tersebut menyewakan mobil untuk keperluan masyarakat
khususnya daerah cikampek dan sekitarnya. CV Mahkota Trans Abadi didirikan pada
tahun 2014 dan belum memiliki surat izin legalitas. Perusahaan ini didirikan oleh
bapak Arif Hidayat Rivai. SH yang menanggapi banyaknya kebutuhan masyarakat
khususnya kendaraan sebagai kelancaran dari segala urusannya. CV Mahkota Trans
Abadi beralamatkan di Perum Bumi Indah Pesona Blok DA 23 No. 8/9/10 RT 02/17
Cikampek Barat, Kabupaten Karawang.
Mobil yang digunakan oleh CV Mahkota Trans Abadi adalah mobil-mobil
dengan ukuran sedang antara lain avanza, xenia, ferios, dan lain-lain. Penyewaan jasa
rental mobil CV Mahkota Trans Abadi melayani persewaan untuk perjalanan keluar
kota seperti Bandung, Jakarta, Cirebon dan kota-kota sekitar. CV Mahkota Trans
Abadi telah beroperasi secara penuh dan mendapatkan legalitas dari notaris yaitu
pada tanggal 30 April 2015.
29
3.1.2. Struktur Organisasi dan Fungsi
Struktur organisasi adalah suatu susunan atau hubungan antara komponen
bagian-bagian dan posisi dalam sebuah organisasi, komponen-komponen yang ada
dalam organisasi mempunyai ketergantungan. Pada sebuah struktur organisasi yang
baik haruslah bisa menjelaskan mengenai hubungan antara wewenang siapa
melaporkan dan yang bertanggung jawab terhadap siapa, jadi adanya suatu
pertanggung jawaban apa yang akan dilakukan.
Struktur organisasi pada CV Mahkota Ttrans Abadi Cikampek
Sumber: CV Mahkota Trans Abadi Cikampek
Gambar III.1.
Struktur Organisasi
Adapun fungsi pada struktur organisasi CV Mahkota Trans Abadi Cikampek:
1. Pemilik
a. Memutuskan dan menentukan peraturan dan kebijakan tertinggi perusahaan
b. Bertanggung jawab dalam memimpin dan menjalankan perusahaan
c. Merencanakan serta mengembangkan sumber-sumber pendapatan penyewaan
mobil
2. Administrasi
a. Bertugas untuk mengatur keuangan
30
b. Bertanggung jawab untuk penyewaan mobil
c. Mencatat pembukuan dan laporan penyewaan
3. Marketing
a. Sebagai bagian yang memperkenalkan penyewaan mobil kepada masyarakat
b. Bertugas dalam menjalin hubungan baik dengan pelanggan dan masyarakat
c. Bertugas menyerap informasi dan menyampaikan kepada perusahaan tentang
segala sesuatu yang bermanfaat untuk meningkatkan kualitas dan penyewaan.
4. Service
a. Mengurus perawatan mobil secara berkala
b. Mengganti suku cadang mobil yang rusak
c. Mengecek ulang kendaraan yang akan disewakan dan dikembalikan
3.2. Tinjauan Kasus
Dalam tinjauan kasus ini, penulis menguraikan gambaran prosedur
penyewaan mobil pada CV Mahkota Trans Abadi Cikampek yang di awali proses
penyewaan, pembayaran, pengembalian, dan laporan. Dalam kasus ini penulis
memperoleh informasi langsung dari CV Mahkota Trans Abadi.
3.2.1. Prosedur Berjalan
Prosedur sistem berjalan pada penyewaan mobil di CV Mahkota Trans Abadi
Cikampek yaitu:
1. Prosedur penyewaan
Penyewa mendatangi toko lalu bagian admin melayani dan memberitahukan harga
mobil. Kemudian penyewa memilih mobil dan bagian admin menyiapkan mobil
beserta memberikan berita acara serah terima kendaraan kepada penyewa untuk
diisi, setelah diisi diberikan kepada admin beserta syarat penyewaan seperti
31
fotocopy Kartu Keluarga (KK) dan fotocopy Kartu Tanda Penduduk (KTP)
kemudian oleh bagian admin di arsipkan.
2. Prosedur Pembayaran
Penyewa membayar secara tunai kemudian bagian admin memberikan kunci dan
STNK mobil kepada penyewa beserta memberikan kwitansi sebagai tanda bukti
pembayaran. Kwitansi yang berwana putih akan diberikan ke penyewa dan yang
berwarna pink disimpan oleh bagian admin untuk diarsipkan di buku pembayaran.
3. Prosedur Pengembalian
Penyewa memberikan kwitansi atau bukti pembayaran kepada bagian service dan
bagian service mengecek kondisi kendaraan apakah ada kerusakan atau tidak
waktu pengembalian mobil. Jika kendaraan tersebut mengalami kerusakan atau
keterlambatan maka penyewa akan dikenakan denda. Pembayaran denda akan
dituliskan di buku pembayaran oleh admin.
4. Prosedur Pembuatan Laporan
Laporan pendapatan akan dibuat oleh bagian administrasi pada akhir bulan yang
dibuat berdasarkan kwitansi pembayaran setelah pembuatan laporan akan di
berikan kepada pemilik dan pemilik mendatangani kemudian diberikan lagi
kepada bagian administrasi untuk diarsipkan.
32
3.2.2. Activity Diagram
1. Activity Diagram Prosedur Penyewaan
Gambar III.2.
Activity Diagram Prosedur Penyewaan
33
2. Activity Diagram Prosedur Pembayaran
Gambar III.3.
Activity Diagram Prosedur Pembayaran
34
3. Activity Diagram Prosedur Pengembalian
Gambar III.4.
Activity Diagram Prosedur Pengembalian
35
4. Activity Diagram Prosedur Pembuatan Laporan
Gambar III.5.
Activity Diagram Prosedur Pembuatan Laporan
36
3.2.3. Dokumen Masukan
Dokumen masukan berfungsi untuk menjelaskan mengenai semua dokumen
input, berikut uraian bentuk masukan yang dirancang oleh penulis sebagai berikut:
1. Nama Dokumen : Fotocopy Kartu Tanda Penduduk (KTP)
Fungsi : Untuk mengetahui data diri penyewa
Sumber : Penyewa
Tujuan : Admin
Media : Kertas
Jumlah : Satu lembar
Frekuensi : Setiap peminjaman mobil
Format : Lampiran A.1
2. Nama Dokumen : Fotocopy Kartu Keluarga (KK)
Fungsi : Untuk mengetahui data diri penyewa
Sumber : Penyewa
Tujuan : Admin
Media : Kertas
Jumlah : Satu lembar
Frekuensi : Setiap peminjaman mobil
Format : Lampiran A.2
3. Nama Dokumen : Berita Acara Serah Terima Kendaraan
Fungsi : Untuk tanda bukti sewa
Sumber : Admin
Tujuan : Penyewa
Media : Kertas
Jumlah : Satu lembar
37
Frekuensi : Setiap peminjaman mobil
Format : Lampiran A.3
4. Nama Dokumen : Buku Pembayaran
Fungsi : Untuk pembuatan laporan
Sumber : Admin
Tujuan : Pemilik
Media : Kertas
Jumlah : Satu rangkap
Frekuensi : Setiap peminjaman mobil
Format : Lampiran A.4
3.2.4. Dokumen Keluaran
Dokumen keluaran berfungsi untuk menjelaskan mengenai semua dokumen
output, berikut uraian bentuk keluaran yang dirancang oleh penulis adalah sebagai
berikut:
1. Nama Dokumen : Kwitansi Pembayaran
Fungsi : Untuk bukti pembayaran
Sumber : Admin
Tujuan : Penyewa
Media : Kertas
Jumlah : Satu lembar
Frekuensi : Setiap peminjaman mobil
Format : Lampiran B.1
2. Nama Dokumen : Laporan Transaksi
Fungsi : Untuk mengetahui data-data transaksi
Sumber : Admin
38
Tujuan : Pemilik
Media : Kertas
Jumlah : Satu rangkap
Frekuensi : Setiap akhir bulan
Format : B.2
3.2.5. Permasalahan Pokok
Permasalahan pada CV Mahkota Trans Abadi Cikampek adalah:
1. Tidak adanya penggunaan program dalam mengelola data transaksi penyewaan,
pengembalian, dan pencatatan laporan.
2. Adanya keterlambatan dalam pembuatan laporan sehingga untuk penyajian data
memerlukan waktu yang lama.
3. Penyewa masih menggunakan kertas untuk mengisi formulir dan kwitansi,
terkadang hilang sehingga sulit untuk mencari arsip yang dibutuhkan.
3.2.6. Pemecahan Masalah
Untuk mengatasi permasalahan tersebut, maka penulis memberikan alternatif
pemecahan masalah yaitu dengan membuat program usulan menggunakan aplikasi
Java NetBeans IDE 8.1 berbasis desktop agar dapat memudahkan bagian admin
dalam proses penyewaan mobil. Dibuatnya suatu sistem komputerisasi sehingga
dalam proses data transaksi, pengembalian dan pencatatan laporan akan lebih cepat
dan akurat.
3.3. Analisa Kebutuhan Software
Kebutuhan perangkat lunak adalah kondisi, kriteria syarat atau kemampuan
yang harus dimiliki oleh perangkat lunak untuk memenuhi apa yang disyaratkan atau
yang diinginkan pemakai.
39
3.3.1. Analisa Kebutuhan
Analisa kebutuhan yang berkaitan dengan kebutuhan atau proses
transformasi yang harus mampu dikerjakan oleh perangkat lunak. Analisa kebutuhan
untuk program penyewaan mobil pada CV Mahkota Trans Abadi Cikampek sebagai
berikut:
A. Administrasi
A.1. Administrasi dapat login
A.2. Administrasi dapat mengelola data penyewa
A.3. Administarsi dapat mengelola data mobil
A.4. Administrasi dapat mengelola peminjaman
A.5. Administrasi dapat mengelola pengembalian
A.6. Administrasi dapat mengakses laporan
A.7. Administrasi dapat mengakses jurnal
A.8. Administrasi dapat keluar
B. Pemilik
B.1 Pemilik dapat login
B.2. Pemilik dapat mengelola data user
B.3. Pemilik dapat mengakses laporan
B.4. Pemilik dapat mengakses jurnal
B.5. Pemilik dapat keluar
40
3.3.2. Use Case Diagram
Use case merupakan sebuah teknik yang digunakan dalam pengembangan
sebuah software atau sistem informasi untuk menangkap kebutuhan fungsional dari
sistem yang bersangkutan. Use case menjelaskan interaksi yang terjadi antara ‘aktor’
inisiator dari interaksi sistem itu sendiri dengan sistem yang ada, sebuah Use Case
direpresentasikan dengan urutan langkah yang sederhana.
1. Use Case
Gambar III.6.
Use Case Diagram
41
Deskripsi Use Case Data Penyewa
Tabel III.1.
Deskripsi Use Case Halaman Data Penyewa
Use Case Name Data Penyewa
Requirements A1
Goal Administrasi dapat mengolah data penyewa, baik
menambah, menyimpan, menghapus, mengedit,
mencari dan batal serta melihat list data penyewa.
Pre-Condition Administrasi telah melakukan login sebagai
administrasi dan mengolah form data penyewa.
Post Condition Data berhasil tersimpan, ter-update, dan dapat
melihat list data penyewa.
Failed and Condition Gagal menyimpan, mengubah dan menghapus data
penyewa
Primary Actor Administrasi
Deskripsi Use Case Data Mobil
Tabel III.2.
Deskripsi Use Case Halaman Data Mobil
Use Case Name Data Mobil
Requirements A2
Goal Administrasi dapat mengelola data mobil, baik
menambah, menyimpan, menghapus, mengedit,
mencari dan batal serta melihat list data mobil.
Pre-Condition Administrasi telah melakukan login sebagai
administrasi dan mengolah form data mobil.
Post Condition Data berhasil tersimpan, terupdate, dan dapat
melihat list data mobil.
Failed end Condition Gagal menyimpan, mengubah dan menghapus data
mobil
Primary Actor Administrasi
Deskripsi Use Case Peminjaman
Tabel III.3.
Deskripsi Use Case Halaman Peminjaman
Use Case Name Peminjaman
Requirements A3
Goal Administrasi dapat mengolah data peminjaman,
baik menyimpan, mencari dan batal serta melihat
list data peminjaman.
Pre-Condition Administrasi telah melakukan login sebagai
administrasi dan mengolah form data peminjaman.
42
Post Condition Data berhasil tersimpan, terupdate, dan dapat
melihat list data peminjaman.
Failed end Condition Gagal menyimpan, mengubah dan menghapus data
peminjaman
Primary Actor Administrasi
Deskrpsi Use Case Pengembalian
Tabel III.4.
Deskripsi Use Case Halaman Pengembalian
Use Case Name Pengembalian
Requirements A4
Goal Administrasi dapat mengolah data pengembalian,
baik menyimpan, mencari dan batal serta melihat
list data pengembalian.
Pre-Condition Administrasi telah melakukan login sebagai
administrasi dan mengolah form data
pengembalian.
Post Condition Data berhasil tersimpan, terupdate, dan dapat
melihat list data pengembalian.
Failed end Condition Gagal menyimpan, mengubah dan menghapus data
pengembalian
Primary Actor Administrasi
Deskripsi Use Case Laporan
Tabel III.5.
Deskripsi Use Case Halaman Laporan
Use Case Name Laporan
Requirements A5
Goal Administrasi dapat melihat dan cetak laporan
Pre-Condition Administrasi telah melakukan login sebagai
administrasi dan melihat beserta mencetak
laporan
Post Condition Data berhasil dicetak
Failed end Condition -
Primary Actor Administrasi
Deskripsi Use Case Jurnal
Tabel III.6.
Deskripsi Use Case Halaman Jurnal
Use Case Name Mengelola Data Jurnal
Requirements A6
Goal Administrasi dapat mengelola data jurnal.
43
Pre-Condition Administrasi telah melakukan login sebagai
administrasi dan mengelola form data jurnal.
Post Condition Data berhasil dicetak dan dapat dilihat data jurnal
Failed end Condition -
Primary Actor Administrasi
Deskripsi Use Case Data User
Tabel III.7.
Deskripsi Use Case Halaman Data User
Use Case Name Data User
Requirements B1
Goal Pemilik dapat mengolah data user, baik menambah,
menyimpan, menghapus, mengedit, mencari dan
batal serta melihat list data user.
Pre-Condition Pemilik telah melakukan login sebagai pemilik dan
mengolah form data user.
Post Condition Data berhasil tersimpan, terupdate, dan dapat
melihat list data user.
Failed end Condition Gagal menyimpan, mengubah dan menghapus data
user
Primary Actor Pemilik
Deskrpsi Use Case Laporan
Tabel III.8.
Deskripsi Use Case Halaman Laporan
Use Case Name Laporan
Requirements B2
Goal Pemilik dapat melihat dan cetak laporan
Pre-Condition Pemilik telah melakukan login sebagai admin
dan melihat beserta mencetak laporan
Post Condition Data berhasil dicetak
Failed end Condition -
Primary Actor Pemilik
Deskripsi Use Case Jurnal
Tabel III.9.
Deskripsi Use Case Halaman Jurnal
Use Case Name Mengelola Data Jurnal
Requirements B3
Goal Pemilik dapat mengelola data jurnal.
Pre-Condition Pemilik telah melakukan login sebagai administrasi
dan mengelola form data jurnal.
44
Post Condition Data berhasil dicetak dan dapat dilihat data jurnal
Failed end Condition -
Primary Actor Pemilik
3.3.3. Activity Diagram
Menggambarkan proses bisnis dan urutan aktivitas dalam sebuah sistem
activity diagram dibuat berdasarkan pada use case diagram.
1. Activity diagram administrasi melakukan login
Gambar III.7.
Activity Diagram Login Administrasi
45
2. Activity diagram administrasi mengelola data penyewa
Gambar III.8.
Activity Diagram Data Penyewaan
46
3. Activity diagram administrasi mengelola data mobil
Gambar III.9.
Activity Diagram Data Mobil
47
4. Activity diagram administrasi mengelola peminjaman
Gambar III.10.
Activity Diagram Peminjaman
48
5. Activity diagram administrasi mengelola pengembalian
Gambar III.11.
Activity Diagram Pengembalian
49
6. Activity diagram administrasi mengakses laporan
Gambar III.12.
Activity Diagram Laporan Administrasi
50
7. Activity diagram administrasi mengakses jurnal
Gambar III.13.
Activity Diagram Jurnal Administrasi
51
8. Activity diagram pemilik melakukan login
Gambar III.14.
Activity Diagram Login Pemilik
52
9. Activity diagram pemilik mengelola data user
Gambar III.15.
Activity Diagram Data User
53
10. Activity Diagram pemilik mengakses laporan
Gambar III.16.
Activity Diagram Laporan Pemilik
54
11. Activity diagram pemilik mengakses jurnal
Gambar III.17.
Activity Diagram Data Pengembalian Pemilik
3.4. Desain
Desain merupakan tahap proses yang diperlukan oleh sistem dengan tujuan
memenuhi kebutuhan user dengan menggunakan use case diagram dan activity
diagram.
55
3.4.1. Entity Relationship Diagram (ERD)
User
Mobil
Jurnal
Berisi
Melakukan
Peminjaman
Penyewa
plat_mobil
id_mobilmerk_mobil
nama_mobil
nama_penyewa
no_telphon
id_penyewa
1
Berisi
id
no_jurnal
no_peminjaman
tanggal
nm_akun
debit
kredit
kd_akun
nama_user jenis_kelamin
username
password
hak_akses
no_peminjaman
id_penyewa
id_mobil
tgl_peminjaman
plat_mobil
tgl_pengembalian
denda
harga_sewa
no_ktpalamat
harga_mobil
total
status
id_user
1
1
1
Gambar III.18.
Entity Ralationship Diagram (ERD)
56
3.4.2. Logical Record Structure (LRS)
penyewa
id_penyewa
nama_penyewa
no_telephon
no_ktp
alamat
peminjaman
no_peminjaman
id_penyewa
id_mobil
plat_mobil
harga_sewa
tgl_peminjaman
tgl_pengembalian
denda
total
status
user
id_user
nama_user
jenis_kelamin
username
password
hak-akses
jurnal
id
no_jurnal
no_peminjaman
kd_akun
tanggal
nm_akun
debet
kredit
mobil
id_mobil
nama_mobil
merk_mobil
plat_mobil
harga_mobil
1 1
1
1
Gambar III.19.
Logical Record Structure (LRS)
3.4.3. Spesifikasi File
1. Spesifikasi File Data User
Nama Database : Penyewaan
Nama File : user
Tipe File : Master Data
Akses File : Random
Panjang Record : 64
Field Key : id_user
57
Tabel III.10.
Spesifikasi File Data User
No Elemen Data Akronim Tipe Panjang Keterangan
1 Identitas user id_user Int 6 Primary key
2 Nama user nama_user Varchar 15
3 Jenis kelamin jenis_kelamin Varchar 10
4 Username Username Varchar 10
5 Password Password Varchar 10
6 Hak akses hak_akses Varchar 13
2. Spesifikasi File Data Penyewa
Nama Database : Penyewaan
Nama File : penyewa
Tipe File : Master Data
Akses File : Random
Panjang Record : 48
Field Key : id_penyewa
Tabel III.11.
Spesifikasi File Data Penyewa
No Elemen Data Akronim Tipe Panjang Keterangan
1 Identitas penyewa id_penyewa Int 6 Primary key
2 Nama penyewa nama_penyewa Varchar 15
3 No telphon no_telphon Varchar 12
4 No KTP no_ktp Varchar 15
5 Alamat Alamat Text -
3. Spesifikasi File Data Mobil
Nama Database : Penyewaan
Nama File : mobil
Tipe File : Master Data
Akses File : Random
Panjang Record : 46
58
Field Key : id_mobil
Tabel III.12.
Spesifikasi File Data Mobil
No Elemen Data Akronim Tipe Panjang Keterangan
1 Identitas mobil id_mobil Int 6 Primary key
2 Nama mobil nama_mobil Varchar 15
3 Merk mobil merk_mobil Varchar 15
4 Plat mobil plat_mobil Varchar 10
5 Harga mobil harga_mobil Double -
4. Spesifikasi File Data Peminjaman
Nama Database : Penyewaan
Nama File : peminjaman
Tipe File : Transaksi
Akses File : Random
Panjang Record : 57
Field Key : no_peminjaman
Tabel III.13.
Spesifikasi File Peminjaman
No Elemen Data Akronim Tipe Panjang Keterangan
1 Nomor peminjaman
no_peminjaman Varchar 15 Primary key
2 Identitas penyewa id_penyewa Varchar 6 Foreign key
3 Identitas mobil id_mobil Varchar 6 Foreign key
4 Plat mobil plat_mobil Varchar 10 Foreign key
5 Harga sewa harga_sewa Double - Foreign key
6 Tanggal
peminjaman
tgl_peminjaman Date -
7 Tanggal pengembalian
tgl_pengembalian
Date -
8 Denda Denda Double -
9 Total Total Double -
10 Status Status Varchar 20
5. Spesifikasi File Data Jurnal
Nama Database : Penyewaan
59
Nama File : jurnal
Tipe File : Transaksi
Akses File : Random
Panjang Record : 62
Field Key : id
Tabel III.14.
Spesifikasi File Jurnal
No Elemen Data Akronim Tipe Panjang Keterangan
1 Identitas Id Int 6 Primary key
2 Nomor jurnal no_jurnal Varchar 15
3 Nomor
peminjaman
no_peminjaman Varchar 15 Foreign key
4 Kode akun kd_akun Int 6
5 Tanggal tanggal date -
6 Nama akun nm_akun Varchar 20
7 Debit Debit Double -
8 Kredit Kredit Double -
3.4.4. Sequence Diagram
Sequence diagram ini adalah diagram yang menggambarkan kolaborasi
dinamis antara sejumlah object. Kegunaannya untuk menunjukkan rangkaian pesan
yang dikirim antara object juga interaksi antara object. Sesuatu yang terjadi pada titik
tertentu dalam eksekusi sistem.
60
1. Sequence Diagram
Gambar III.20.
Sequence Diagram
61
3.4.5. Deployment Diagram
Gambar III.21.
Deployment Diagram
3.4.6. User Interface
1. User Interface Login
Gambar III.22.
User Interface Form Login
62
2. User Interface Menu Utama
Gambar III.23.
User Interface Menu Utama
3. User Interface Form User
Gambar III.24.
User Interface Form User
63
4. User Interface Form Penyewa
Gambar III.25.
User Interface Form Penyewa
5. User Interface Form Peminjaman
Gambar III.26.
User Interface Form Peminjaman
64
6. User Interface Form Pengembalian
Gambar III.27.
User Interface Pengembalian
3.5. Implementasi
Implementasi adalah suatu penerapan atau tindakan yang dilakukan berdasarkan
rencana yang telah disusun atau dibuat dengan cermat dan terperinci sebelumnya.
3.5.1. Code Generation
1. Coding Peminjaman
package Penyewaan;
import Database.KoneksiDatabase; import Database.ResultSetTable;
import java.io.File;
import java.sql.Connection; import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData; import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.HashMap; import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
65
import javax.swing.table.DefaultTableModel;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign; import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
public class from_peminjaman extends javax.swing.JFrame {
private DefaultTableModel model;
/** * Creates new form from_peminjaman
*/
public from_peminjaman() { initComponents();
nopem();
denda.setVisible(false); status.setVisible(false);
jLabel8.setVisible(false);
jLabel9.setVisible(false);
clear(); model = new DefaultTableModel ( );
tbl_pem.setModel(model);
model.addColumn("No Peminjaman"); model.addColumn("Penyewa");
model.addColumn("Mobil");
model.addColumn("Plat Mobil"); model.addColumn("Harga Sewa");
model.addColumn("Tgl Peminjaman");
model.addColumn("Tgl Pengembalian");
//model.addColumn("Denda"); model.addColumn("Total");
model.addColumn("Status");
tabelpeminjaman();
}
public String idPenyewa;
public String idmobil; public String hrgmobil;
public String platmobil;
public String getPenyewa(){
return idPenyewa;
} public String getMobil(){
return idmobil;
}
public String gethrgMobil(){ return hrgmobil;
}
public String getplatMobil(){
66
return platmobil;
}
private void clear(){ txtidPenyewa.setText("");
txtidmobil.setText("");
hrg_sewa.setText("");
txtttl.setText(""); txtplat.setText("");
}
public String nopem(){
String urutan=null;
java.util.Date skrg = new java.util.Date();
java.text.SimpleDateFormat kal=new java.text.SimpleDateFormat("ddMMyy"); String tgl=(kal.format(skrg));
try{
Connection con = koneksi.getKoneksi(); Statement st=con.createStatement();
java.sql.ResultSet sql = st.executeQuery("SELECT (right (no_peminjaman,3)+1) as
nomor FROM peminjaman where no_peminjaman like '%"+tgl+"%' order by no_peminjaman desc");
if(sql.next())
{
urutan=sql.getString(1); while (urutan.length()<3)
urutan="0"+urutan;
urutan="P"+tgl+urutan; }else
{
urutan="P"+tgl+"001";
}
no_pem.setText(urutan);
}
catch(Exception e){
// JOptionPane.showMessageDialog(null,e); }
return urutan;
}
public void tabelpeminjaman() { model.getDataVector( ).removeAllElements( );
model.fireTableDataChanged( );
try{ Statement stat = (Statement) koneksi.getKoneksi( ).createStatement( );
String sql = "Select * from peminjaman where status='Belum dikembalikan'";
ResultSet res = stat.executeQuery(sql); while(res.next ()){
Object[ ] obj = new Object[10];
obj[0] = res.getString("no_peminjaman");
obj[1] = res.getString("id_penyewa"); obj[2] = res.getString("id_mobil");
obj[3] = res.getString("plat_mobil");
obj[4] = res.getString("harga_sewa");
67
obj[5] = res.getString("tgl_peminjaman");
obj[6] = res.getString("tgl_pengembalian");
//obj[6] = res.getString("denda"); obj[7] = res.getString("total");
obj[8] = res.getString("status");
model.addRow(obj); }
}catch(SQLException err){
JOptionPane.showMessageDialog(null, err.getMessage() ); }
}
/**
* This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/ @SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
no_pem = new javax.swing.JTextField(); txtidPenyewa = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton(); txtidmobil = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel(); hrg_sewa = new javax.swing.JTextField();
jDateChooser1 = new com.toedter.calendar.JDateChooser();
jLabel6 = new javax.swing.JLabel();
simpan = new javax.swing.JButton(); batal = new javax.swing.JButton();
jDateChooser2 = new com.toedter.calendar.JDateChooser();
jLabel7 = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane();
tbl_pem = new javax.swing.JTable();
jLabel1 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel();
status = new javax.swing.JTextField();
denda = new javax.swing.JTextField(); txtttl = new javax.swing.JTextField();
txtplat = new javax.swing.JTextField();
jLabel10 = new javax.swing.JLabel();
private void simpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String pem = no_pem.getText(); String penyewa = txtidPenyewa.getText();
String mobil = txtidmobil.getText();
String harga = hrg_sewa.getText();
68
String dnd = denda.getText();
String ttl = txtttl.getText();
String sts = status.getText(); String plat = txtplat.getText();
if(!"".equals(pem) && !"".equals(penyewa) && !"".equals(mobil) &&
!"".equals(harga)){ try {
Connection con = koneksi.getKoneksi();
Statement stm=con.createStatement(); stm.executeUpdate("INSERT INTO peminjaman(no_peminjaman, id_penyewa,
id_mobil, plat_mobil, harga_sewa, tgl_peminjaman, tgl_pengembalian, denda, total, status)
VALUES ('" + pem + "', '" + penyewa + "', '" + mobil + "', '" + plat + "', '" + harga + "', '" +
new SimpleDateFormat("yyyy-MM-dd").format(jDateChooser1.getDate()) + "', '" + new SimpleDateFormat("yyyy-MM-dd").format(jDateChooser2.getDate()) + "', '" + dnd + "', '" +
ttl + "', '" + sts + "')");
JOptionPane.showMessageDialog(null, "Berhasil disimpan "); con.close();
tabelpeminjaman();
try { HashMap hash = new HashMap();
hash.put("nopem", no_pem.getText());
File file1 = new File("src/laporan/kwitansi.jrxml"); JasperDesign jasperDesign = JRXmlLoader.load(file1);
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, hash, koneksi.getKoneksi());
JasperViewer.viewReport(jasperPrint, false);
}catch (JRException e) { JOptionPane.showMessageDialog(null, "Error " + e);
}
nopem();
tbl_pem.clearSelection(); clear();
}catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e); }
}else{
JOptionPane.showMessageDialog(null, "Terdapat inputan yang kosong !
","Kesalahan", JOptionPane.WARNING_MESSAGE); }
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
boolean closable = true;
CariPenyewa a = new CariPenyewa(this, rootPaneCheckingEnabled); a.transaksi=this;
a.setVisible(true);
if(!a.isVisible()){ txtidPenyewa.setText(idPenyewa);
txtidmobil.requestFocus();
}
69
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here: boolean closable = true;
carimobil a = new carimobil(this, rootPaneCheckingEnabled);
a.mobil=this;
a.setVisible(true);
if(!a.isVisible()){
txtidmobil.setText(idmobil); hrg_sewa.setText(hrgmobil);
txtttl.setText(hrgmobil);
txtplat.setText(platmobil);
//hrg_sewa.requestFocus(); }
}
private void batalActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
}
private void txtttlActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
/**
* @param args the command line arguments */
public static void main(String args[]) {
/* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. *For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.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(from_peminjaman.class.getName()).log(java.util.logging
.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(from_peminjaman.class.getName()).log(java.util.logging
.Level.SEVERE, null, ex); } catch (IllegalAccessException ex)
70
{
java.util.logging.Logger.getLogger(from_peminjaman.class.getName()).log(java.util.logging
.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(from_peminjaman.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 from_peminjaman().setVisible(true)
}
}); }
// Variables declaration - do not modify
private javax.swing.JButton batal; private javax.swing.JTextField denda;
private javax.swing.JTextField hrg_sewa;
private javax.swing.JButton jButton1; private javax.swing.JButton jButton2;
private com.toedter.calendar.JDateChooser jDateChooser1;
private com.toedter.calendar.JDateChooser jDateChooser2;
private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextField no_pem;
private javax.swing.JButton simpan;
private javax.swing.JTextField status; private javax.swing.JTable tbl_pem;
private javax.swing.JTextField txtidPenyewa;
private javax.swing.JTextField txtidmobil;
private javax.swing.JTextField txtplat; private javax.swing.JTextField txtttl;
// End of variables declaration
}
3.5.2. Blackbox Testing
Blackbox Testing adalah pengujian fungsional merupakan metode pengujian
Perangkat Lunak yang digunakan untuk menguji perangkat lunak tanpa mengetahui
struktur internal kode atau Program.
71
1. Pengujian Terhadap Form Login
Tabel III.15.
Blackbox Testing Login No Skenario
Pengujian
Text Case Hasil yang
diharapkan
Hasil Pengujian Kesimpulan
1 Username dan
password tidak
diisi kemudian
klik tombol login
Username:
(kosong)
Password:
(kosong)
Sistem akan
menolak akses
pengguna
Sesuai harapan Valid
2 Username terisi dan password
tidak terisi
kemudian klik
tombol login
Username: ase
Password:
(kosong)
Sistem akan menolak akses
pengguna
Sesuai harapan Valid
3 Username tidak
diisi dan
password diisi
kemudian klik
tombol login
Username:
(kosong)
Password:
3333
Sistem akan
menolak akses
pengguna
Sesuai harapan Valid
4 Username dan
password terisi
kemudian klik
tombol login
Username;
Ase
Password:
3333
Sistem akan
menampilkan
pesan “Login
Berhasil selamat datang
“nama
pengguna”
Sesuai harapan Valid
2 .Pengujian Terhadap Form Mobil
Tabel III.16.
Blackbox Testing Form Mobil No Skenario
Pengujian
Text Case Hasil yang
diharapkan
Hasil Pengujian Kesimpulan
1 Klik tambah
kemudian data
mobil kosong lalu
klik simpan
Nama
Mobil, Merk
Mobil, No
Plat Mobil, Harga Mobil
(Kosong)
Sistem akan
menampilkan
pesan “ Data
isian ada yang kosong”
Sesuai harapan Valid
2 Klik tambah
kemudian mengisi
data mobil lalu
klik simpan
Id Mobil:
30001
Nama
Mobil:
avanza
Merk Mobil: toyota No
Plat Mobil:
B 3456 KU
Harga
Mobil:
200.000
Sistem akan
menampilkan
pesan “ Data
Berhaasil
Disimpan”
Sesuai harapan Valid
72
3. Pengujian Terhadap Form Peminjaman
Tabel III.17.
Blackbox Testing Form Peminjaman No Skenario
Pengujian
Text Case Hasil yang
diharapkan
Hasil Pengujian Kesimpulan
1 Klik simpan
kemudian data
peminjaman kosong
Penyewa, Mobil,
Plat Mobil,
Harga Sewa, Tanggal
Peminjaman,
Tanggal
Pengembalian
(Kosong)
Sistem akan
menampilka
n pesan “Terdapat
Inputan
Yang
Kosong”
Sesuai harapan Valid
2 Klik simpan
kemudian
mengisi data
peminjaman
No Peminjaan:
P140719002
Penyewa: Sri
Mobil: Avanza
Plat Mobil: B
3456 KU Harga
Sewa: 200.000 Tanggal
Peminjaman:201
9-07-05
Tanggal
Pengembalian:
2019-07-06
Sistem akan
menampilka
n pesan
“Berhasil
Disimpan”
Sesuai harapan Valid
3.5.3. Spesifikasi Hardware dan Software
Spesifikasi hardware komputer yang cepat diiringi juga dengan
perkembangan software dan sistem operasi yang menuntut spesifikasi hardware yang
tinggi. Beberapa sistem operasi mensyaratkan spesifikasi hardware minimal agar
komputer dapat bekerja secara optimal. Jika spesifikasi hardware kurang memenuhi
syarat maka akan berdampak pada tidak optimalnya kerja sistem operasi.
Spesifikasi software (perangkat lunak) adalah suatu rangkaian atau susunan
intruksi dengan urutan-urutan yang benar. Penggunaan suatu perangkat keras pun
akan selalu disertai dengan penggunaan perangkat lunak.
73
Tabel III.18.
Spesifikasi Hardware dan Software
Kebutuhan Keterangan
Sistem Microsoft windows XP Profesional SP2
Processor 500 MHz Intel Pentium III workstation
RAM 512 MB
Hardisk 580 MB
Monitor 1024x768 pixrls
Keyboard Keyboard Qwerty
Printer Inkjet
Mouse Mouse Optical atau Mouse USB
Software
Kebutuhan menjalankan aplikasi secara local:
Bahasa script programing: Java NetBeans 8.1
Web Server : XAMPP Control Panel
v3.2.1
DBMS : MySQL