sistem informasi penyewaan mobil
TRANSCRIPT
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