Sistem Informasi Penyewaan Mobil

Embed Size (px)

Citation preview

SISTEM INFORMASI PENYEWAAN MOBIL

Disusun oleh: Asep Saefudin M.Ridwan Nugraha Taufik Permana Riyan Hermawan Pandu Ardyandu K. Septian Cahyadi 09302123 09302126 09302131 09302115 09302144 09302142

POLIKTEKNIK PIKSI GANESHA BANDUNG

HASIL PENGEMBANGAN PERANGKAT LUNAK DENGAN METODE BERORIENTASI OBJEK1. Analisis Kebutuhan Perangkat Lunak 1.1 Deskripsi Kebutuhan Fungsional No. 1. 2. 3. 4. 5. Kode Kebutuhan RAT 10 RAT-11 RAT-12 RAT-20 RAT-21 Deskripsi Kebutuhan Mengolah data pokok Menambah data mobil Menambahkan data penyewa Mengolah data transaksi Mencatat data peminjaman Keterangan Entry dan rekam data Entry dan rekam data supplier Entry dan rekam data peminjaman cetak bukti peminjaman Entry dan rekam data pengembalian cetak bukti pengembalian Buat laporan penerimaan kas harian dan bulanan Buat laporan rekapitulasi peminjaman harian dan Bulanan Buat laporan rekapitulasi pengembalian harian dan Bulanan

6.

RAT-22

Mencatat data pengembalian

7. 8. 9.

RAT-30 RAT-31 RAT-32

Membuat laporan Membuat laporan kas Membuat laporan peminjaman

10.

RAT-33

Membuat laporan pengembalian

1.2 Pemodelan Kebutuhan Fungsional 1.2.1 Statement of Purpose Perangkat lunak Sistem Informasi Penyewaan Mobil berfungsi untuk mengolah data penyewaan mobil. Cakupan meliputi pengolahan data pokok mobil dan penyewa, pengolahan data transaksi peminjaman dan pengembalian, serta pembuatan laporan penerimaan kas, laporan peminjaman dan pengembalian. Pemakai perangkat lunak adalah FO, kasir dan supervisor. 1.2.2 Diagram Konteks (context diagram)Kode_mobil

FO

ID_penyewa Tampil_data_penyewa Tampil_data_mobil

Laporan_kas Bukti_pengembalian Bukti_peminjaman

Kasir

Data_penyewa _ Data_mobil

0 Sistem penyewaan mobil +Periode_lap

Data_transaksi_peminjaman Data_transaksi_pengembalian

SupervisorLap_ peminjaman Lap_pengembalian

1.2.3 Diagram Aliran Data (Data Flow Diagram) Diagram Aliran Data tingkat-1Id _penyewa Id _mobil

FOTa m pil da ta m ob il Tam pil data peny ewa

Lap_Kas Bu kti pe mi nj a m an Bu kti pe m ba ya ra n

Kasir

data_penyewa data_mobil

1. Olah data pokok

2. Olah data transaksi

Data_transaksi_ peminjaman

Data_transaksi_pengembalian

Penyewa

Mobil Rec__mobil

Peminjaman Rec__peminjaman

Pengembalian

Rec__penyewa Rec__pengembalian

Periode_lap

3. buat laporan

SupervisorLap_ peminjaman Lap_ pengembalian

Diagram Aliran Data Tingkat-21. Proses 1.0 Olah Data PokokData_mobil

FO

Tambah data mobil

Rec_mobil Data_penyewa Rec_penyewa

Mobil

Tambah data penyewa

Rec_penyewa

Penyewa

2. Proses 2.0 oleh data transaksiBukti_Peminjaman

KasirRec_peminjaman Rec_pengembalian Rec_mobil Bukti_pengembalian Rec_mobil

2.1 masukan data peminjamanRec_peminjaman

2.2 masukan data pengembalianRec_penyewa Rec_pengembalian

MobilRec_penyewa

Peminjaman

Penyewa

Pengembalian

3. Proses 3.0 Buat Laporan

PeminjamanRec_penyewa Rec_penyewa

Kasir

Koreksi_lap Lap_kas Lap _peminjaman

3.1 Buat laporan PeminjamanRec_penyewa

3.3 Buat laporan kas

Rec_mobil Rec_mobil

MobilRec_mobil

PenyewaRec_penyewa Rec_pengembalian

SupervisorLap _pengembalian

3.2 Buat laporan pengembalian

PengembalianRec_pengembalian

1.2.4. Kamus Data (Data Dictionary)Tempat Pemyimpanan Data (Data store) 1. Mobil = @Kode_Mobil + Nama_Merk + Jenis_Mobil + No_Polisi + No_Rangka + No_Mesin+ Harga_Sewa 2. Penyewa = @ID_Penyewa + Nama_Penyewa + Alamat + No_Telepon + No_KTP 3. Peminjaman = @No_Transaksi +@ ID_Penyewa + Nama_Penyewa +@Kode_Mobil + Jenis_Mobil + Jumlah_Sewa + Harga_Sewa + Tanggal_Sewa + Tanggal_Harus_Kembali + Total_Harga 4. Pengembalian = @No_Transaksi + @ID_Penyewa + Nama_Penyewa +@Kode_Mobil + Jenis_Mobil + Jumlah_Sewa + Harga_Sewa + Tanggal_Harus_Kembali + Tanggal_Kembali + Total_Denda Arus Data (Data Flow) 1. kode_mobil = kode_mobil 2. Id_penyewa = Id_penyewa 3. Tampil_Data_Mobil= Kode_Mobil + Nama_Merk + Jenis_Mobil + No_Rangka + No_Polisi + No_Mesin+ Harga_Sewa 4. Tampil_Data_Penyewa = ID_Penyewa + Nama_Penyewa + Alamat + No_Telepon + No_KTP 5. Data_Mobil = Kode_Mobil + Nama_Merk + Jenis_Mobil + No_Rangka + No_Polisi + No_Mesin+ Harga_Sewa 6. Data_Penyewa = ID_Penyewa + Nama_Penyewa + Alamat + No_Telepon + No_KTP 7. Data_ Tansaksi_Peminjaman = No_Transaksi + ID_Penyewa + Nama_Penyewa +Kode_Mobil + Jenis_Mobil + Jumlah_Sewa + Harga_Sewa + Tanggal_Sewa + Tanggal_Harus_Kembali + Total_Harga 8. Data_Tansaksi_Pengembalian = No_Transaksi + ID_Penyewa + Nama_Penyewa + Kode_Mobil + Jenis_Mobil + Jumlah_Sewa + Harga_Sewa + Tanggal_Harus_Kembali + Tanggal_Kembali + Total_Denda 9. Bukti_Peminjaman = No_Transaksi + ID_Penyewa + Nama_Penyewa + Kode_Mobil + Jenis_Mobil + Jumlah_Sewa + Harga_Sewa + Tanggal_Sewa + Tanggal_Harus_Kembali + Total_Harga 10. Bukti_Pengembalian = No_Transaksi + ID_Penyewa + Nama_Penyewa +Kode_Mobil + Jenis_Mobil + Jumlah_Sewa + Harga_Sewa + Tanggal_Harus_Kembali + Tanggal_Kembali + Total_Denda 11. Lap_kas = Periode + {No_Urut + No_Tansaksi + Harga_Sewa + Total_Harga + Total_denda} + Jumlah Pembayaran + Penerimaan_kas 12. Periode_lap = Tanggal_Awal + Tanggal_Akhir 13. Lap_Data_peminjaman = Periode + {No_Urut + No_Transaksi + ID_Penyewa + Kode_Mobil + Jumlah_Sewa +Tanggal_Sewa + Tanggal_Harus_Kembali} + jumlah_peminjaman 14. Lap_Data_pengembalian = Periode + {No_Urut + No_Transaksi + ID_Penyewa + Kode_Mobil + Jumlah_Sewa + Tanggal_Harus_Kembali + Tanggal_Kembali} + jumlah_pengembalian 15. Rec_Mobil = Kode_Mobil + Nama_Merk + Jenis_Mobil + No_Rangka + No_Polisi + No_Mesin+ Harga_Sewa 16. Rec_Penyewa = ID_Penyewa + Nama_Penyewa + Alamat + No_Telepon + No_KTP

17. Rec _Peminjaman = No_Transaksi + ID_Penyewa + Nama_Penyewa +Kode_Mobil + Jenis_Mobil + Jumlah_Sewa + Harga_Sewa + Tanggal_Sewa + Tanggal_Harus_Kembali + Total_Harga 18. Rec _ Pengembalian = No_Transaksi + ID_Penyewa + Nama_Penyewa + Kode_Mobil + Jenis_Mobil + Jumlah_Sewa + Harga_Sewa + Tanggal_Harus_Kembali + Tanggal_Kembali + Total_Denda 19. Koreksi_lap = No_Transaksi+ Harga_Sewa + Total_Harga + Total_denda

1.2.5 Spesifikasi Proses (Process Specification)1. Proses 1.1 Tambah Data Mobil Selama data mobil masih ada Input data mobil Rekam ke tabel mobil 2. Proses 1.2 Tambah Data Penyewa Selama data penyewa masih ada Input data penyewa Rekam ke tabel penyewa 3. Proses 2.1 Catat Data Peminjaman Selama Data Peminjaman msih ada Baca identitas mobil yang akan disewa Search data di tabel mobil Baca identitas penyewa yang akan menyewa Search ketabel penyewa Hitung total biaya pembayaran Rekam ke tabel peminjaman Cetak bukti peminjaman 4. Proses 2.2 Catat Data Pengembalian Tampilkan informasi total (dari proses 2.1) Baca data peminjaman Hitung denda jika telat pengembaliiannya Cetak bukti pengembalian 5. Proses 3.1 Buat laporan Kas Baca periode laporan Select data kas sesuai periode laporan Selama data kas belum EOF Baca record Peminjaman dan Pengembalian Akumulasi total biaya pembayaran Akumulasi total Penerimaan Kas Simpan di query kas Cetak laporan kas dari query kas 6. Proses 3.1 Buat Laporan Peminjaman Baca periode laporan Select data peminjaman sesuai periode laporan Selama data peminjaman belum EOF Baca record peminjaman Akumulasi total biaya pembayaran Simpan di tabel laporan peminjaman Cetak laporan peminjaman dari tabel laporan peminjaman 7. Proses 3.1 Buat Laporan Pengembalian Baca periode laporan Select data pengembalian sesuai periode laporan

Selama data pengembalian belum EOF Baca record pengembalian Akumulasi total biaya denda Simpan di tabel laporan pengembalian Cetak laporan peminjaman dari tabel laporan pengembalian

1.3 Pembuatan Model Data KonseptualDiagram E-R versi Peter ChenKode_Mobil Nama_Merk

MobilJenis_Mobil

n

Disewa

No_Polisi No_Rangka No_Mesin Harga_Sewa

ID_Penyewa

Nama_Penyewa1

Alamat

1

PenyewaNo_Telepon No_KTP ID_Penyewa1

Melakukan

No_Transaksin

Tanggal_Harus _Kembali Total_Harga

PeminjamanNama_Penyewa Tanggal_Sewa Kode_Mobil Harga_Sewa Jumlah_Sewa

melaksanakan

Jenis_Mobil No_Transaksi Total_Denda ID_Penyewa Nama_Penyewa Kode_Mobil Jenis_Mobil Jumlah_Sewan

Tanggal_Kembali

PengembalianTanggal_Harus _Kembali

Harga_Sewa

2. Perancangan Perangkat Lunak2.1 Perancangan Basis Data 2.1.1 Keterhubungan Antar Tabel

MOBIL Kode_Mobil Nama_Merk Jenis_Mobil No_Polisi No_Rangka No_Mesin Harga_Sewa A8 A15 A15 A7 A8 A8 C Kode_Mobil = Kode_Mobil

PENGEMBALIAN No_Transaksi ID_Penyewa Nama_Penyewa Kode_Mobil Jenis_Mobil Jumlah_Sewa Harga_Sewa Tanggal_Sewa Tanggal_Harus_Kembali Total_Harga A8 A15 A15 A7 A8 I C D D C

Kode_Mobi l= Kode_Mobil

No_Transaksi = No_Transaksi

ID_Penyewa = ID_Penyewa

PEMINJAMAN No_Transaksi ID_Penyewa Nama_Penyewa Kode_Mobil Jenis_Mobil Jumlah_Sewa Harga_Sewa Tanggal_Sewa Tanggal_Harus_Kembali Total_Denda A8 A15 A15 A7 A8 I C D D C

PENYEWA ID_Penyewa Nama_Penyewa Alamat No_Telepon No_KTP A8 A30 A60 A12 A32

ID_Penyewa = ID_Penyewa

2.1.2 Deskripsi Tabel1. Tabel Mobil Fungsi Jenis Primary Key Foreign Key Stuktur Tabel Nama Field Kode_Mobil Nama_Merk Jenis_Mobil No_Polisi No_Rangka No_Mesin Harga_Sewa Tabel Penyewa Fungsi Jenis Primary Key Foreign Key Stuktur Tabel : Menyimpan data pokok Mobil : Tabel Pokok : Kode_Mobil :: Jenis String String String String String String Currency

No 1 2 3 4 5 6 7 2.

Lebar 8 15 15 7 8 8 15

Keterangan Kode Mobil Nama Merk Jenis Mobil Nomor Polisi Nomor Rangka Nomor Mesin Harga Sewa

: Menyimpan data pokok Penyewa : Tabel Pokok : ID_Penyewa :: Jenis String String String String String Lebar 8 30 60 12 34 Keterangan ID Penyewa Nama Penyewa Alamat Nomor Telepon Nomor KTP

No 1 2 3 4 5

Nama Field ID_Penyewa Nama_Penyewa Alamat No_Telepon No_KTP

3.

Tabel Peminjaman Fungsi : Menyimpan data transaksi Peminjaman Jenis : Tabel Transaksi Primary Key : No_Transaksi Foreign Key : Kode_Mobil + ID_Penyewa Stuktur Tabel : Nama Field No_Transaksi ID_Penyewa Nama_Penyewa Kode_Mobil Jenis_Mobil Jumlah_Sewa Harga_Sewa Tanggal_Sewa Tanggal_Harus_Kembali Total_Harga Jenis String String String String String Integer Currency Date Date Currency Lebar Keterangan 8 8 30 8 15 5 15 10 10 15 Nomor Transaksi ID Penyewa Nama Penyewa Kode Mobil Jenis Mobil Jumlah Sewa Harga Sewa Tanggal Sewa Tanggal_Harus_Kembali Total Harga

No 1 2 3 4 5 6 7 8 9 10

4.

Tabel Pengembalian Fungsi : Menyimpan data transaksi Pengembalian Jenis : Tabel Transaksi Primary Key :Foreign Key : No_Transaksi +Kode_Mobil + ID_Penyewa Stuktur Tabel : Nama Field No_Transaksi ID_Penyewa Nama_Penyewa Kode_Mobil Jenis_Mobil Jumlah_Sewa Harga_Sewa Tanggal_Harus_Kembali Tanggal _Kembali Total_Denda Jenis String String String String String Integer Currency Date Date Currency Lebar 8 8 30 8 15 5 15 10 10 15 Keterangan Nomor Transaksi ID Penyewa Nama Penyewa Kode Mobil Jenis Mobil Jumlah Sewa Harga Sewa Tanggal Harus Kembali Tanggal Kembali Total Harga

No 1 2 3 4 5 6 7 8 9 10

2.2 Arsitektur Perangkat Lunak1. Modul Utama Program Sistem Penyewaan Mobil

Olat Data Pokok

Olah Data Transaksi

Buat Laporan

2.

Modul Olah Data Pokok

Olah Data Pokok

Tambahan Data mobilKode_Mobil rec_mobil

Tambahan Data PenyewaID_penyewa rec_penyewa

Baca Kode_Mobil

Rekam Mobil

Baca ID_Penyewa

Rekam Penyewa

3. Modul Olah Data Transaksi Olah Data transaksi

Masukan Data Peminjaman

Masukan Data pengembalian

Rec_Peminjaman Rec_Peminjaman Kode_mobil ID_penyewa No_Transaksi

Rec_Pengembalian Rec_Pengembalian

Baca Kode_Mobil

Baca ID_Penyewa

Rekam data Peminjaman

Cetak Struk Peminjaman

Baca No_Transak si

Rekam Data Pengembalian

Cetak bukti Pengembalian

4. Modul Buat Laporan Buat Laporan

Buat Laporan S Kas

Buat Laporan Peminjaman

Buat Laporan Pengembalian

Lap_kas rec_pengemb Periode_lap alian rec_peminjaman Periode_lap rec_penyewa Baca Periode Laporan Select Data Cetak laporan Kas rec_mobil rec_peminjaman lap_pengembalian lap_peminjaman rec_pengembalian Periode_lap Baca Periode Lapora n rec_peminjaman Select Data Cetak lap. Pengemb alian

Baca Periode Laporan

Select Data

Cetak Lap. Peminjam ana

2.3

Antarmuka Pemakai

1. Tata Letak Layar Struktur Menu Program

2. Layar Entry Data Mobil

3. Layar Entry data Penyewa

4. Layar Entry data Peminjaman

5. Layar Entry data Pengembalian

6. Tampilan Laporan Kas

7. Tampilan Laporan Peminjaman

8. Tampilan Laporan Pengembalian

2.4

Pebuatan Algoritma Program

1. Modul Utama ProgramMDIFormPenyewaanMobil

Option Explicit Private Sub msshell_click() On Error Resume Next Call Shell("C:\windows.001\command.com", 1) End Sub Private Sub mnexit_Click() End End Sub Private Sub mnlap_kas_Click() crkas.ReportFileName = "D:\LATIHAN\VISUAL BASIC\Penyewaan Mobil\REPORT\lap_kas.rpt" crkas.WindowTitle = "LAPORAN KAS" crkas.WindowState = crptMaximized crkas.RetrieveDataFiles crkas.Action = 1 End Sub Private Sub mnlappeminjaman_Click() crkas.ReportFileName = "D:\LATIHAN\VISUAL BASIC\Penyewaan Mobil\REPORT\lap_peminjaman.rpt" crkas.WindowTitle = "LAPORAN PEMINJAMAN" crkas.WindowState = crptMaximized crkas.RetrieveDataFiles crkas.Action = 1 End Sub Private Sub mnlappengembalian_Click() crkas.ReportFileName = "D:\LATIHAN\VISUAL BASIC\Penyewaan Mobil\REPORT\lap_pengembalian.rpt" crkas.WindowTitle = "LAPORAN PENGEMBALIAN" crkas.WindowState = crptMaximized crkas.RetrieveDataFiles crkas.Action = 1 End Sub

Private Sub mnmobil_Click() FormMobil.Show End Sub Private Sub mnpeminjaman_Click() FormPeminjaman.Show End Sub Private Sub mnpengembalian_Click() FormPengembalian.Show End Sub Private Sub mnpenyewa_Click() FormPenyewa.Show End Sub

2. Modul Tambah Data Mobil

Form Mobil Sub blank() Text1 = Empty Text2 = Empty Text3 = Empty Text4 = Empty Text5 = Empty Text6 = Empty Text7 = Empty End Sub Sub tombol_aktif() cmdsimpan.Enabled = False Cmdbatal.Enabled = True cmdtambah.Enabled = True cmdkeluar.Enabled = True cmdcari.Enabled = True cmdhapus.Enabled = True End Sub Private Sub CmdBatal_Click() Adodc1.Refresh Call tombol_aktif Call blank End Sub Private Sub cmdcari_Click() Dim cari As String cari = InputBox("Masukan kode Mobil", "Cari data") Adodc1.Refresh With Adodc1.Recordset .Find "Kode_Mobil='" & cari & "'" If Not .EOF Then Text1 = .Fields("Kode_Mobil") Text2 = .Fields("Nama_Merk") Text3 = .Fields("Jenis_Mobil") Text4 = .Fields("No_Polisi") Text5 = .Fields("No_Rangka") Text6 = .Fields("No_Mesin") Text7 = .Fields("Harga_Sewa")

Else MsgBox "Data Mobil yg dicari tidak temukan", 0 + vbCritical, "Cari Data" End If End With cmdsimpan.Enabled = True End Sub Private Sub cmdhapus_Click() Dim cari As String cari = InputBox("Masukan kode Mobil", "Cari data") Adodc1.Refresh With Adodc1.Recordset .Find "Kode_Mobil='" & cari & "'" If Not .EOF Then Text1 = .Fields("Kode_Mobil") Text2 = .Fields("Nama_Merk") Text3 = .Fields("Jenis_Mobil") Text4 = .Fields("No_Polisi") Text5 = .Fields("No_Rangka") Text6 = .Fields("No_Mesin") Text7 = .Fields("Harga_Sewa") If MsgBox("Anda akan menghapus???", vbYesNo + vbQuestion, "Hapus Data ") = vbYes Then .Delete Call blank End If Else MsgBox "Data Mobil yg dicari tidak temukan", 0 + vbCritical, " Cari Data " End If End With End Sub Private Sub cmdkeluar_Click() If MsgBox("Anda Akan keluar ??", vbOKCancel + vbQuestion, "Keluar") = vbOK Then Unload Me End If End Sub Private Sub CmdLihatData_Click()

FormDataMobil.Show End Sub Private Sub cmdsimpan_Click() If Text1 = "" Then MsgBox "Isi Kode Mobil Dulu", 0 + vbCritical, " Peringatan ! " Text1.SetFocus Else With Adodc1.Recordset .Fields("Kode_Mobil") = Text1 .Fields("Nama_Merk") = Text2 .Fields("Jenis_Mobil") = Text3 .Fields("No_Polisi") = Text4 .Fields("No_Rangka") = Text5 .Fields("No_Mesin") = Text6 .Fields("Harga_Sewa") = Text7 .Update End With Call tombol_aktif Call blank MsgBox "Data sudah tersimpan", 0 + vbInformation, "Simpan data" Adodc1.Refresh End If End Sub

Private Sub cmdtambah_Click() Adodc1.Refresh Adodc1.Recordset.AddNew cmdsimpan.Enabled = True Cmdbatal.Enabled = True cmdtambah.Enabled = False cmdkeluar.Enabled = False cmdcari.Enabled = False cmdhapus.Enabled = False Call blank Text1.SetFocus End Sub Private Sub Form_Load() Call tombol_aktif End Sub

3. Modul Tambah Data Penyewa Form Penyewa Sub blank() Textid = Empty Textnama = Empty Textalamat = Empty Textnotel = Empty Textnoktp = Empty End Sub Sub tombol_aktif() cmdsimpan.Enabled = False Cmdbatal.Enabled = True cmdtambah.Enabled = True cmdkeluar.Enabled = True cmdcari.Enabled = True cmdhapus.Enabled = True End Sub Private Sub CmdBatal_Click() Adodc1.Refresh Call tombol_aktif Call blank End Sub Private Sub cmdcari_Click() Dim cari As String cari = InputBox("Masukan ID Penyewa", "Cari data") Adodc1.Refresh With Adodc1.Recordset .Find "ID_Penyewa='" & cari & "'" If Not .EOF Then Textid = .Fields("ID_Penyewa") Textnama = .Fields("Nama_Penyewa") Textalamat = .Fields("Alamat") Textnotel = .Fields("No_Telepon") Textnoktp = .Fields("No_KTP") Else

MsgBox "Data Penyewa yg dicari tidak temukan", 0 + vbCritical, "Cari Data" End If End With cmdsimpan.Enabled = True End Sub Private Sub cmdhapus_Click() Dim cari As String cari = InputBox("Masukan ID Penyewa", "Cari data") Adodc1.Refresh With Adodc1.Recordset .Find "ID_Penyewa='" & cari & "'" If Not .EOF Then Textid = .Fields("ID_Penyewa") Textnama = .Fields("Nama_Penyewa") Textalamat = .Fields("Alamat") Textnotel = .Fields("No_Telepon") Textnoktp = .Fields("No_KTP") If MsgBox("Anda akan menghapus???", vbYesNo + vbQuestion, "Hapus Data ") = vbYes Then .Delete Call blank End If Else MsgBox "Data Mobil yg dicari tidak temukan", 0 + vbCritical, " Cari Data " End If End With End Sub Private Sub cmdkeluar_Click() If MsgBox("Anda Akan keluar ??", vbOKCancel + vbQuestion, "Keluar") = vbOK Then Unload Me End If End Sub Private Sub CmdLihatData_Click() FormDataPenyewa.Show End Sub

Private Sub cmdsimpan_Click() If Textid = "" Then MsgBox "Isi ID Penyewa Dulu", 0 + vbCritical, " Peringatan ! " Textid.SetFocus Else With Adodc1.Recordset .Fields("ID_Penyewa") = Textid .Fields("Nama_Penyewa") = Textnama .Fields("Alamat") = Textalamat .Fields("No_Telepon") = Textnotel .Fields("No_KTP") = Textnoktp .Update End With Call tombol_aktif Call blank MsgBox "Data sudah tersimpan", 0 + vbInformation, "Simpan data" Adodc1.Refresh End If End Sub

Private Sub cmdtambah_Click() Adodc1.Refresh Adodc1.Recordset.AddNew cmdsimpan.Enabled = True Cmdbatal.Enabled = True cmdtambah.Enabled = False cmdkeluar.Enabled = False cmdcari.Enabled = False cmdhapus.Enabled = False Call blank Textid.SetFocus End Sub Private Sub Command1_Click() End Sub Private Sub Form_Load() Call tombol_aktif End Sub

4. Modul Tambah Data Peminjaman

Option Explicit Dim conn As New ADODB.Connection Dim rec As ADODB.Recordset Sub blank() List1.Clear Textno = Empty Textid = Empty Textnama = Empty Textkode = Empty Textjenis = Empty Textjumlah = Empty Textharga = Empty Texttotal = Empty DTsewa = Now DTkembali = Now End Sub Sub tombol_aktif() cmdsimpan.Enabled = False Cmdbatal.Enabled = True cmdtambah.Enabled = True cmdkeluar.Enabled = True Cmdhitung.Enabled = False Cmdcetak.Enabled = False End Sub Private Sub CmdBatal_Click() Adodc1.Refresh Call tombol_aktif Call blank End Sub Private Sub Cmdcetak_Click() List1.Clear DTsewa.Value = Format(DTsewa.Value, "mm/dd/yyyy") DTkembali.Value = Format(DTkembali.Value, "mm/dd/yyyy") If DTkembali.Value < DTsewa.Value Then MsgBox "TANGGAL HARUS KEMBALI Tidak Boleh Sebelum TANGGAL SEWA !!", 16, "Peringatan" DTkembali.SetFocus Else

With List1 .AddItem "STRUK PEMBAYARAN" .AddItem "" .AddItem "" .AddItem "" .AddItem "" .AddItem "" .AddItem "No Transaksi = " & Textno.Text .AddItem "ID Penyewa = " & Textid.Text .AddItem "Nama Penyewa = " & Textnama.Text .AddItem "Kode Mobil = " & Textkode.Text .AddItem "Jenis Mobil = " & Textjenis.Text .AddItem "Jumlah Sewa = " & Textjumlah.Text .AddItem "Harga Sewa = " & Textharga.Text .AddItem "Tanggal Sewa = " & Me.DTsewa.Value .AddItem "Tanggal Harus Kembali = " & DTkembali.Value .AddItem "" .AddItem "" .AddItem "Total Harga = " & Texttotal.Text End With End If End Sub Private Sub Cmdhitung_Click() Dim hari As Integer Dim subtotal As Currency If Textjumlah = "" Then MsgBox "Isi dulu kolom Jumlah Sewa !!", 16, "Peringatan" Textjumlah.SetFocus Exit Sub ElseIf Textharga = "" Then MsgBox "Isi dulu kolom Harga Sewa !!", 16, "Peringatan" Textharga.SetFocus Exit Sub End If If DTkembali.Value < DTsewa.Value Then MsgBox "TANGGAL HARUS KEMBALI Tidak Boleh Sebelum TANGGAL SEWA !!", 16, "Peringatan" DTkembali.SetFocus ElseIf DTkembali.Value = DTsewa.Value Then hari = 1 Textharga.Text = Format(Textharga.Text, "currency") subtotal = Textjumlah.Text * Textharga.Text Texttotal.Text = hari * subtotal

ElseIf DTkembali.Value > DTsewa.Value Then hari = DTkembali.Value - DTsewa.Value Textharga.Text = Format(Textharga.Text, "currency") subtotal = Textjumlah.Text * Textharga.Text Texttotal.Text = hari * subtotal End If Texttotal.Text = Format(Texttotal.Text, "currency") End Sub Private Sub cmdkeluar_Click() If MsgBox("Anda Akan keluar ??", vbOKCancel + vbQuestion, "Keluar") = vbOK Then Unload Me End If End Sub Private Sub CmdLihatData_Click() FormDataPeminjaman.Show End Sub Private Sub cmdsimpan_Click() Dim sql As String DTsewa.Value = Format(DTsewa.Value, "mm/dd/yyyy") DTkembali.Value = Format(DTkembali.Value, "mm/dd/yyyy") If Textno = "" Then MsgBox "Isi dulu kolom No Transaksi !!", 16, "Peringatan" Textno.SetFocus Exit Sub ElseIf Textid = "" Then MsgBox "Isi dulu kolom ID Penyewa!!", 16, "Peringatan" Textid.SetFocus Exit Sub ElseIf Textnama = "" Then MsgBox "Isi dulu kolom Nama Penyewa !!", 16, "Peringatan" Textnama.SetFocus Exit Sub ElseIf Textkode = "" Then MsgBox "Isi dulu kolom Kode Mobil !!", 16, "Peringatan" Textkode.SetFocus Exit Sub ElseIf Textjenis = "" Then MsgBox "Isi dulu kolom Jenis Mobil !!", 16, "Peringatan"

Textjenis.SetFocus Exit Sub ElseIf Textjumlah = "" Then MsgBox "Isi dulu kolom Jumlah Sewa !!", 16, "Peringatan" Textjumlah.SetFocus Exit Sub ElseIf Textharga = "" Then MsgBox "Isi dulu kolom Harga Sewa !!", 16, "Peringatan" Textharga.SetFocus Exit Sub ElseIf DTkembali.Value < DTsewa.Value Then MsgBox "TANGGAL HARUS KEMBALI Tidak Boleh Sebelum TANGGAL SEWA !!", 16, "Peringatan" DTkembali.SetFocus Exit Sub End If

sql = "INSERT INTO Peminjaman (No_Transaksi, " & " ID_Penyewa,Nama_Penyewa,Kode_Mobil,Jenis_Mobil,Jumlah_Sewa,Ha rga_Sewa,Tanggal_Sewa,Tanggal_Harus_Kembali,Total_Harga)" & "VALUES('" & Textno.Text & "','" & Textid.Text & "','" & Textnama.Text & "','" & Textkode.Text & "','" & Textjenis.Text & "','" & Textjumlah.Text & "','" & Textharga.Text & "','" & DTsewa.Value & "','" & DTkembali.Value & "','" & Texttotal.Text & "')" conn.Execute (sql) Call tombol_aktif Call blank MsgBox "Data sudah tersimpan", 0 + vbInformation, "Simpan Data" End Sub Private Sub cmdtambah_Click() Adodc1.Refresh Adodc1.Recordset.AddNew cmdsimpan.Enabled = True Cmdbatal.Enabled = True cmdtambah.Enabled = False cmdkeluar.Enabled = True Cmdhitung.Enabled = False Cmdhitung.Enabled = True

Cmdcetak.Enabled = True Call blank MsgBox "Tekan Enter setelah memilih ID Penyewa dan Kode Mobil", 64, "Informasi Penting!" Textno.SetFocus End Sub

Private Sub Form_Load() Dim sql As String Dim X As String

Set conn = New ADODB.Connection conn.Open "PENYEWAAN_MOBIL" sql = "select * from Penyewa" Set rec = conn.Execute(sql) Do Until rec.EOF = True X = rec.Fields(0) rec.MoveNext Textid.AddItem X Loop sql = "select * from Mobil" Set rec = conn.Execute(sql) Do Until rec.EOF = True X = rec.Fields(0) rec.MoveNext Textkode.AddItem X Loop

Call tombol_aktif DTsewa = Now DTkembali = Now End Sub

Private Sub Textid_KeyPress(KeyAscii As Integer) Dim sql As String If KeyAscii = 13 Then sql = "select * from Penyewa where ID_Penyewa = '" & Textid.Text & "'" Set rec = conn.Execute(sql, , adCmdText) Me.Textnama.Text = rec!Nama_Penyewa End If Textnama.Enabled = False End Sub Private Sub Textkode_KeyPress(KeyAscii As Integer) Dim sql As String If KeyAscii = 13 Then sql = "select * from Mobil where Kode_Mobil = '" & Textkode.Text & "'" Set rec = conn.Execute(sql, , adCmdText) Me.Textjenis.Text = rec!Jenis_Mobil Me.Textharga.Text = rec!Harga_sewa End If Textharga.Text = Format(Textharga.Text, "currency") Textjenis.Enabled = False Textharga.Enabled = False End Sub

5. Modul Tambah Data Pengembalian Option Explicit Dim conn As New ADODB.Connection Dim rec As ADODB.Recordset Sub blank() List1.Clear Combono = Empty Comboid = Empty Textnama = Empty Combokode = Empty Textjenis = Empty Textjumlah = Empty Textharga = Empty DThrskembali = Now DTkembali = Now Textdenda = Empty End Sub Sub tombol_aktif() cmdsimpan.Enabled = False Cmdbatal.Enabled = True cmdtambah.Enabled = True cmdkeluar.Enabled = True Cmdhitung.Enabled = False Cmdcetak.Enabled = False Cmdkembali.Enabled = False End Sub Private Sub CmdBatal_Click() Adodc1.Refresh Call tombol_aktif Call blank End Sub Private Sub Cmdcetak_Click() List1.Clear DThrskembali.Value = Format(DThrskembali.Value, "mm/dd/yyyy") DTkembali.Value = Format(DTkembali.Value, "mm/dd/yyyy") With List1

.AddItem "STRUK PEMBAYARAN DENDA" .AddItem "" .AddItem "" .AddItem "" .AddItem "" .AddItem "" .AddItem .AddItem .AddItem .AddItem .AddItem .AddItem .AddItem

"No Transaksi = " & Combono.Text "ID Penyewa = " & Comboid.Text "Nama Penyewa = " & Textnama.Text "Kode Mobil = " & Combokode.Text "Jenis Mobil = " & Textjenis.Text "Jumlah Sewa = " & Textjumlah.Text "Harga Sewa = " & Textharga.Text

.AddItem "Tanggal Harus Kembali = " & Me.DThrskembali.Value .AddItem "Tanggal Kembali = " & DTkembali.Value .AddItem "" .AddItem "" .AddItem "Total Denda = " & Textdenda.Text End With End Sub Private Sub Cmdhitung_Click() Dim hari As Integer Dim subdenda As Long If DTkembali.Value = DThrskembali.Value Then Textdenda.Text = Format(0, "currency") Else hari = DTkembali.Value - DThrskembali.Value subdenda = (hari - 1) * Textharga.Text Textdenda.Text = subdenda * Textjumlah Textdenda.Text = Format(Textdenda.Text, "currency") Textharga = Format(Textharga.Text, "currency") End If

End Sub Private Sub cmdkeluar_Click()

If MsgBox("Anda Akan keluar ??", vbOKCancel + vbQuestion, "Keluar") = vbOK Then Unload Me End If End Sub Private Sub Cmdkembali_Click() List1.Clear DThrskembali.Value = Format(DThrskembali.Value, "mm/dd/yyyy") DTkembali.Value = Format(DTkembali.Value, "mm/dd/yyyy") With List1 .AddItem "BUKTI PENGEMBALIAN" .AddItem "" .AddItem "" .AddItem "" .AddItem "" .AddItem "" .AddItem "ID Penyewa = " & Comboid.Text .AddItem "Nama Penyewa = " & Textnama.Text .AddItem "Kode Mobil = " & Combokode.Text .AddItem "Jenis Mobil = " & Textjenis.Text .AddItem "Tanggal Harus Kembali = " & Me.DThrskembali.Value .AddItem "Tanggal Kembali = " & Me.DTkembali.Value .AddItem "" .AddItem "" End With End Sub Private Sub CmdLihatData_Click() FormDataPengembalian.Show End Sub Private Sub cmdsimpan_Click() Dim sql As String

If Combono = "" Then MsgBox "Isi dulu kolom No Transaksi !!", 16, "Peringatan" Combono.SetFocus Exit Sub

ElseIf Comboid = "" Then MsgBox "Isi dulu kolom ID Penyewa!!", 16, "Peringatan" Comboid.SetFocus Exit Sub ElseIf Textnama = "" Then MsgBox "Isi dulu kolom Nama Penyewa !!", 16, "Peringatan" Textnama.SetFocus Exit Sub ElseIf Combokode = "" Then MsgBox "Isi dulu kolom Kode Mobil !!", 16, "Peringatan" Combokode.SetFocus Exit Sub ElseIf Textjenis = "" Then MsgBox "Isi dulu kolom Jenis Mobil !!", 16, "Peringatan" Textjenis.SetFocus Exit Sub ElseIf Textjumlah = "" Then MsgBox "Isi dulu kolom Jumlah Sewa !!", 16, "Peringatan" Textjumlah.SetFocus Exit Sub ElseIf Textharga = "" Then MsgBox "Isi dulu kolom Harga Sewa !!", 16, "Peringatan" Textharga.SetFocus Exit Sub End If

DThrskembali.Value = Format(DThrskembali.Value, "mm/dd/yyyy") DTkembali.Value = Format(DTkembali.Value, "mm/dd/yyyy")

sql = "INSERT INTO Pengembalian (No_Transaksi, " & " ID_Penyewa,Nama_Penyewa,Kode_Mobil,Jenis_Mobil,Jumlah_Sewa,Har ga_Sewa,Tanggal_Harus_Kembali,Tanggal_Kembali,Total_Denda)" & "VALUES('" & Combono.Text & "','" & Comboid.Text & "','" & Textnama.Text & "','" & Combokode.Text & "','" & Textjenis.Text & "','" &

Textjumlah.Text & "','" & Textharga.Text & "','" & DThrskembali.Value & "','" & DTkembali.Value & "','" & Textdenda.Text & "')" conn.Execute (sql) Call tombol_aktif Call blank MsgBox "Data sudah tersimpan", 0 + vbInformation, "Simpan Data" End Sub Private Sub cmdtambah_Click() Adodc1.Refresh Adodc1.Recordset.AddNew cmdsimpan.Enabled = True Cmdbatal.Enabled = True cmdtambah.Enabled = False cmdkeluar.Enabled = True Cmdhitung.Enabled = False Cmdhitung.Enabled = True Cmdcetak.Enabled = True Cmdkembali.Enabled = True Call blank MsgBox "Tekan Enter setelah memilih No Transaksi", 64, "Informasi Penting!" Combono.SetFocus End Sub

Private Sub Combono_KeyPress(KeyAscii As Integer) Dim sql As String If KeyAscii = 13 Then sql = "select * from Peminjaman where No_Transaksi = '" & Combono.Text & "'" Set rec = conn.Execute(sql, , adCmdText) Me.Comboid.Text = rec!ID_Penyewa Me.Textnama.Text = rec!Nama_Penyewa Me.Combokode.Text = rec!Kode_Mobil Me.Textjenis.Text = rec!Jenis_Mobil Me.Textjumlah.Text = rec!Jumlah_Sewa

Me.Textharga = rec!Harga_sewa DThrskembali = rec!Tanggal_Harus_Kembali End If Comboid.Enabled = False Textnama.Enabled = False Combokode.Enabled = False Textjenis.Enabled = False Textjumlah.Enabled = False Textharga.Enabled = False DThrskembali.Enabled = False End Sub Private Sub Form_Load() Dim sql As String Dim X As String Set conn = New ADODB.Connection conn.Open "PENYEWAAN_MOBIL" sql = "select * from Peminjaman" Set rec = conn.Execute(sql) Do Until rec.EOF = True X = rec.Fields(0) rec.MoveNext Combono.AddItem X Loop Call tombol_aktif DThrskembali = Now DTkembali = Now End Sub