• Tidak ada hasil yang ditemukan

Membuat Form Peminjaman

Dalam dokumen MODUL KULIAH PEMROGRAMAN VISUAL 1 (Halaman 142-155)

Form Peminjaman digunakan untuk melakukan transaksi

peminjaman. Form ini menggunakan konsep master detail

gabungan dari table Pinjam dan DPinjam. Pada form ini

metode input transaksi dibuat semudah mungkin. Selain itu

pada form ini disediakan fasilitas pencarian dan informasi

jumlah stok koleksi yang tersedia.

Langkah-langkah :

1. Pastikan project Rental.dpr telah dibuka. 2. Buat form baru, klik menu File – New – Form.

3. Ubah property form yang baru dibuat seperti pada table di bawah ini : Komponen Property Value

Form1 Caption Peminjaman BorderStyle bsSingle

Name FPinjam

Position poDesktopCenter WindowState wsMaximized

4. Klik menu File – Save All untuk menyimpan project. Simpan Unit1 menjadi UFPinjam.pas dalam folder Rental.

5. Klik menu File – Use Unit, pilih UFUtama, klik OK untuk melanjutkan. 6. Copy dan Paste ToolBar1 dari form FMember ke dalam FPinjam, atur

kembali property seperti table di bawah ini :

Komponen Tab Parent Property Value SpeedButton3 Additional ToolBar1 Caption Nota SpeedButton4 Additional ToolBar1 Caption Tutup

7. Tambahkan 3 buah Groupbox dari tab Standard ke dalam FPinjam, atur property seperti table di bawah ini :

Komponen Tab Parent Property Value GroupBox1 Standard FPinjam Align alTop

Caption

GroupBox2 Standard FPinjam Align alLeft

Caption Koleksi Yang Dipinjam GroupBox3 Standard FPinjam Align alBottom

Caption

8. Tambahkan 1 buah Splitter dari tab Additional ke dalam FPinjam.

9. Tambahkan 1 buah GroupBox dari tab Standar ke dalam FPinjam, atur property seperti table di bawah ini :

Komponen Tab Parent Property Value GroupBox4 Standard FPinjam Align alClient

10. Tambahkan 2 buah ADOTable dan 4 buah ADOQuery, atur property seperti table di bawah ini :

Komponen Tab Parent Property Value ADOTable1, ADOTable2, ADOQuery1, ADOQuery2, ADOQuery3, ADOQuery4 Connection FUtama.ADOConnection1

ADOTable1 ADO FPinjam Name Pinjam TableName Pinjam ADOTable2 ADO FPinjam Name DPinjam

TableName DPinjam ADOQuery1 ADO FPinjam Name qMember

SQL Select Member.MemberID, Member.Nama, Member.Alamat, Member.Kota, Member.Handphone From Member Order by Member.Nama

ADOQuery2 ADO FPinjam Name qKaryawan

SQL Select Karyawan.KaryawanID,

Karyawan.Nama From Karyawan

Order by Karyawan.Nama

ADOQuery3 ADO FPinjam Name qKoleksi

SQL Select Koleksi.KoleksiID, Koleksi.Judul, Koleksi.HargaSewa, Koleksi.LamaSewa From Koleksi Order by Koleksi.Judul

ADOQuery4 ADO FPinjam Name qStock

SQL Select Koleksi.KoleksiID, Koleksi.Judul, Koleksi.PemeranUtama, Koleksi.Kategori, Koleksi.JenisKoleksi, (Koleksi.Jumlah - (Select Count(DPinjam.DPinjamID) From Pinjam, DPinjam Where (Pinjam.PinjamID = DPinjam.PinjamID) and (DPinjam.KoleksiID = Koleksi.KoleksiID) and (DPinjam.KembaliID = 0))) as stock From Koleksi Where

(Koleksi.Judul like :Judul) Or (Koleksi.PemeranUtama like :PemeranUtama) Or

(Koleksi.Kategori like :Kategori) Or (Koleksi.JenisKoleksi like

Komponen Tab Parent Property Value

Order by Koleksi.Judul, Koleksi.PemeranUtama

11. Pilih qStock pada Object TreeView, klik tombol ellipsis pada property Parameters untuk membuka jendela Edit Parameters, ubah property seperti table di bawah ini :

Komponen Property Value TParameters[0] DataType ftWideString TParameters[1] DataType ftWideString TParameters[2] DataType ftWideString TParameters[3] DataType ftWideString

12. Buat persistent field table Pinjam, klik dua kali Pinjam pada Object TreeView untuk membuka field editor, klik kanan dan pilih Add All Fields.

13. Dengan cara yang sama dengan point 12, buat persistent field table DPinjam, qMember, qKaryawan, qKoleksi dan qStock.

14. Klik dua kali Pinjam pada Object TreeView untuk membuka field editor, pilih field TotalSewa, ubah property seperti table di bawah ini :

Komponen Property Value PinjamTotalSewa Currency True

15. Klik dua kali DPinjam pada Object TreeView untuk membuka field editor, pilih field HargaSewa, ubah property seperti table di bawah ini :

Komponen Property Value DPinjamHargaSewa Currency True

16. Tambahkan 3 buah DataSource dari tab Data Access, ubah property seperti table di bawah ini ;

Komponen Tab Parent Property Value Datasource1 Data Access FPinjam Dataset Pinjam DataSource2 Data Access FPinjam Dataset DPinjam DataSource3 Data Access FPinjam Dataset qStock

17. Buat hubungan master detail antara table Pinjam dan DPinjam, Pilih table DPinjam pada Object TreeView, ubah property seperti table di bawah ini :

Komponen Property Value DPinjam MasterSource Datasource1

18. Pilih table DPinjam pada Object TreeView, klik tombol ellipsis pada property MasterField untuk membuka Field Link Designer. Pilih PinjamID pada Detail Fields dan PinjamID pada Master Fields. Klik Add untuk menambahkan ke dalam Joined Fields. Klik OK untuk melanjutkan.

19. Tambahkan field baru NamaMember pada table Pinjam, klik dua kali Pinjam pada Object TreeView untuk membuka field editor, klik kanan dan pilih New Fields, lengkapi informasi pada jendela New Field seperti table di bawah ini :

Field Section Property Value NamaMember Field Properties Name NamaMember

Type String

Size 30

Field type Field type Lookup Lookup Definition Key Fields MemberID

Dataset qMember Lookup Keys MemberID Result Field Nama

20. Tambahkan field baru Alamat pada table Pinjam, sama seperti point 19, lengkapi informasi pada jendela New Field seperti table di bawah ini :

Field Section Property Value Alamat Field Properties Name Alamat

Type String

Size 50

Field type Field type Lookup Lookup Definition Key Fields MemberID

Dataset qMember Lookup Keys MemberID Result Field Alamat

21. Tambahkan field baru Kota pada table Pinjam, lengkapi informasi pada jendela New Field seperti table di bawah ini :

Field Section Property Value

Kota Field Properties Name Kota

Type String

Size 30

Dataset qMember Lookup Keys MemberID Result Field Kota

22. Tambahkan field baru Handphone pada table Pinjam, lengkapi informasi pada jendela New Field seperti table di bawah ini :

Field Section Property Value Handphone Field Properties Name Handphone

Type String

Size 30

Field type Field type Lookup Lookup Definition Key Fields MemberID

Dataset qMember Lookup Keys MemberID Result Field Handphone

23. Tambahkan field baru NamaKaryawan pada table Pinjam, lengkapi informasi pada jendela New Field seperti table di bawah ini :

Field Section Property Value

NamaKaryawan Field Properties Name NamaKaryawan Type String

Size 30

Field type Field type Lookup Lookup Definition Key Fields KaryawanID

Dataset qKaryawan Lookup Keys KaryawanID Result Field Nama

24. Klik dua kali DPinjam pada Object TreeView untuk membuka Field Editor, tambahkan field baru JudulKoleksi pada table DPinjam, lengkapi informasi pada jendela New Field seperti table di bawah ini :

Field Section Property Value JudulKoleksi Field Properties Name JudulKoleksi

Type String

Size 100

Field type Field type Lookup Lookup Definition Key Fields KoleksiID

Dataset qKoleksi Lookup Keys KoleksiID Result Field Judul

25. Tambahkan field baru HargaSewaKoleksi pada table DPinjam, lengkapi informasi pada jendela New Field seperti table di bawah ini :

Field Section Property Value

HargaSewaKoleksi Field Properties Name HargaSewaKoleksi Type Currency

Field type Field type Lookup Lookup Definition Key Fields KoleksiID

Lookup Keys KoleksiID Result Field HargaSewa

26. Tambahkan field baru LamaSewaKoleksi pada table DPinjam, lengkapi informasi pada jendela New Field seperti table di bawah ini :

Field Section Property Value

LamaSewaKoleksi Field Properties Name LamaSewaKoleksi

Type Integer

Field type Field type Lookup Lookup Definition Key Fields KoleksiID

Dataset qKoleksi Lookup Keys KoleksiID Result Field LamaSewa

27. Klik dua kali Pinjam pada Object TreeView untuk membuka field Editor. Pilih field PinjamID, TglPinjam, MemberID, NamaMember, Alamat, Kota dan Handphone, lakukan drag and drop ke dalam GroupBox1.

28. Tambahkan DBGrid1 dari tab Data Control ke dalam GroupBox2, atur property seperti table di bawah ini :

Komponen Tab Parent Property Value

DBGrid1 Data Control GroupBox2 Align alClient

Datasource DataSource2

Options.dgRowSelect True Options.dgAlwaysShowSelection True 29. Klik dua kali DBGrid1 pada Object TreeView untuk membuka Column

Editor, tambahkan 4 buah column dengan mengklik kanan Column Editor, pilih Add, ubah property masing-masing kolom seperti table di bawah ini :

Komponen Property Value

DBGrid1.Columns[0] FieldName KoleksiID Title.Caption ID

DBGrid1.Columns[1] FieldName JudulKoleksi Title.Caption Judul Koleksi DBGrid1.Columns[2] FieldName TglHarusKembali

Title.Caption Tgl Harus Kembali DBGrid1.Columns[3] FieldName HargaSewa

Title.Caption Harga Sewa DBGrid1.Columns[0], DBGrid1.Columns[1], DBGrid1.Columns[2], DBGrid1.Columns[3] Title.Alignment taCenter Title.Font.Style.fsBold True

30. Klik dua kali Pinjam pada Object TreeView untuk membuka field editor, lakukan drag dan drop field NamaKaryawan dan TotalSewa ke dalam GroupBox3.

31. Tambahkan DBNavigator1 dari tab Data Control ke dalam GroupBox3, atur property seperti table di bawah ini :

Komponen Tab Parent Property Value DBNavigator1 Data Control GroupBox3 Align alBottom

Datasource Datasource1 Flat True VisibleButtons.nbInsert False VisibleButtons.nbDelete False VisibleButtons.nbEdit False VisibleButtons.nbPost False VisibleButtons.nbCancel False VisibleButtons.nbRefresh False

32. Tambahkan ToolBar2 dari tab Win32 ke dalam GroupBox4, atur property seperti table di bawah ini :

Komponen Tab Parent Property Value ToolBar2 Win32 GroupBox4 Align alBottom

33. Tambahkan Edit1 dari tab Standard ke dalam ToolBar2, atur property seperti table di bawah ini :

Komponen Tab Parent Property Value Edit1 Standard ToolBar2 Text

34. Tambahkan DBGrid2 dari tab Data Control ke dalam GroupBox4, atur property seperti table di bawah ini :

Komponen Tab Parent Property Value

DBGrid2 Data Control GroupBox4 Align alClient

Datasource DataSource3

Options.dgRowSelect False

Options.dgAlwaysShowSelection False

Options.dgEditing True

35. Klik dua kali DBGrid2 untuk membuka column editor, klik kanan pada column editor, kemudian pilih Add All Fields, atur susunan column seperti gambar di bawah ini :

Ubah property masing-masing kolom seperti table di bawah ini :

Komponen Property Value

DBGrid2.Columns[0] Title.Caption ID

DBGrid2.Columns[1] Title.Caption Judul Koleksi DBGrid2.Columns[2] Title.Caption Stock

Komponen Property Value

DBGrid2.Columns[3] Title.Caption Pemeran Utama DBGrid2.Columns[4] Title.Caption Kategori DBGrid2.Columns[5] Title.Caption Jenis Koleksi DBGrid2.Columns[0], DBGrid2.Columns[1], DBGrid2.Columns[2], DBGrid2.Columns[3], DBGrid2.Columns[4], DBGrid2.Columns[5] Title.Alignment taCenter Title.Font.Style.fsBold True

36. Atur property untuk komponen Data Control seperti table di bawah ini : Komponen Property Value

DBEdit1, DBLookUpCombobox2, DBLookupCombobox3, DBLookupCombobox4, DBLookUpCombobox5, DBEdit4 Enabled False

37. Atur layout form FPinjam seperti gambar di bawah ini :

38. Tambahkan unit DateUtils pada blok Uses di unit UFPinjam, lihat gambar berikut :

39. Tambahkan variable PinjamID dengan type Integer pada blok Public di unit UFPinjam.

40. Buat procedure UpdateqStock dan procedure UpdateTotalSewa pada blok Private di unit UFPinjam, tekan Ctrl+Shift+C untuk membuat blok procedure (lihat gambar di atas), ketikkan perintah seperti table di bawah ini :

Komponen Event Code

FPinjam UpdateqStock procedure TFPinjam.UpdateqStock; begin qStock.Close; qStock.Parameters[0].Value := '%' + Edit1.Text + '%'; qStock.Parameters[1].Value := '%' + Edit1.Text + '%'; qStock.Parameters[2].Value := '%' + Edit1.Text + '%'; qStock.Parameters[3].Value := '%' + Edit1.Text + '%'; qStock.Open; end;

UpdateTotalSewa procedure TFPinjam.UpdateTotalSewa; var TempTotal: Real; PrevRecord: TBookmark; begin PrevRecord := DPinjam.GetBookmark; try DPinjam.DisableControls; DPinjam.First; TempTotal := 0;

Komponen Event Code begin

TempTotal := TempTotal + DPinjamHargaSewa.Value; DPinjam.Next;

end;

If not (Pinjam.State in dsEditModes) then Pinjam.Edit; PinjamTotalSewa.Value := TempTotal;

finally

DPinjam.EnableControls; if PrevRecord <> nil then begin DPinjam.GoToBookmark(PrevRecord); DPinjam.FreeBookmark(PrevRecord); end; end; end;

41. Pilih FPinjam pada Object TreeView, buat event onCreate, onShow dan onClose, ketikkan perintah seperti table di bawah ini :

Komponen Event Code

FKoleksi onCreate procedure TFPinjam.FormCreate(Sender: TObject); begin

PinjamID := 0; end;

onShow procedure TFPinjam.FormShow(Sender: TObject); begin Pinjam.Open; DPinjam.Open; qMember.Open; qKaryawan.Open; qKoleksi.Open; UpdateqStock;

If PinjamID > 0 then Pinjam.Locate('PinjamID', PinjamID, []) else Pinjam.Insert;

end;

onClose procedure TFPinjam.FormClose(Sender: TObject; var Action: TCloseAction); begin Pinjam.Close; DPinjam.Close; qMember.Close; qKaryawan.Close; qKoleksi.Close; qStock.Close; end;

42. Pilih SpeedButton1, SpeedButton2, SpeedButton3 dan SpeedButton4 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini :

Komponen Event Code SpeedButton1,

SpeedButton2, SpeedButton3, SpeedButton4

onClick procedure TFPinjam.SpeedButton1Click(Sender: TObject); begin

Case (Sender as TSpeedButton).Tag of 1 : Pinjam.Post;

2 : Pinjam.Delete; 3 : ;

4 : Pinjam.Cancel; End;

If (Sender as TSpeedButton).Tag in [2,4] then Close; end;

43. Pilih Pinjam pada Object TreeView, buat event BeforeDelete dan onNewRecord, ketikkan perintah seperti table di bawah ini :

Komponen Event Code

Pinjam BeforeDelete procedure TFPinjam.PinjamBeforeDelete(DataSet: TDataSet); begin

If MessageDlg('Hapus data?',mtConfirmation, [mbYes, mbNo], 0) = mrNo

then Abort; end;

onNewRecord procedure TFPinjam.PinjamNewRecord(DataSet: TDataSet); begin

If DBEdit3.Enabled then ActiveControl := DBEdit3; PinjamTglPinjam.Value := Today;

PinjamTotalSewa.Value := 0;

PinjamKaryawanID.Value := FUtama.KaryawanID; end;

44. Pilih DPinjam pada Object TreeView, buat event AfterDelete, AfterPost, BeforeDelete dan onNewRecord, ketikkan perintah seperti table di bawah ini :

Komponen Event Code

DPinjam AfterDelete procedure TFPinjam.DPinjamAfterDelete(DataSet: TDataSet); begin

UpdateTotalSewa; end;

AfterPost procedure TFPinjam.DPinjamAfterPost(DataSet: TDataSet); begin

UpdateTotalSewa; end;

BeforeDelete procedure TFPinjam.DPinjamBeforeDelete(DataSet: TDataSet); begin

If MessageDlg('Hapus data?',mtConfirmation, [mbYes, mbNo], 0) = mrNo then Abort else UpdateqStock; end;

onNewRecord procedure TFPinjam.DPinjamNewRecord(DataSet: TDataSet); begin

DPinjamPinjamID.Value := PinjamPinjamID.Value; end;

45. Pilih Datasource1 pada Object TreeView, buat event onStateChange, ketikkan perintah seperti table di bawah ini :

Komponen Event Code

DataSource1 onStateChange procedure TFPinjam.DataSource1StateChange(Sender: TObject); begin

SpeedButton1.Enabled := (Pinjam.State in dsEditModes) and (FUtama.HakAkses in [1,2]);

SpeedButton2.Enabled := (Pinjam.State in [dsBrowse]) and (FUtama.HakAkses in [1,2]);

SpeedButton3.Enabled := (Pinjam.State in [dsBrowse]) and (FUtama.HakAkses in [1,2]); DBEdit3.Enabled := FUtama.HakAkses in [1,2]; DBLookUpCombobox1.Enabled := FUtama.HakAkses in [1,2]; DBGrid1.Enabled := FUtama.HakAkses in [1,2]; DBGrid2.Enabled := FUtama.HakAkses in [1,2]; Edit1.Enabled := FUtama.HakAkses in [1,2]; DBNavigator1.Enabled := FUtama.HakAkses in [2]; end;

46. Pilih DBGrid1 pada Object TreeView, buat event onDblClick, ketikkan perintah seperti table di bawah ini :

Komponen Event Code

DBGrid1 onDblClick procedure TFPinjam.DBGrid1DblClick(Sender: TObject); begin

DPinjam.Delete; end;

47. Pilih DBGrid2 pada Object TreeView, buat event onDblClick, ketikkan perintah seperti table di bawah ini :

Komponen Event Code

DBGrid2 onDblClick procedure TFPinjam.DBGrid2DblClick(Sender: TObject); begin

If PinjamMemberID.Value = 0 then Begin

MessageDlg('Silakan Pilih Member!', mtInformation, [mbOK], 0); Abort;

End;

If qStockStock.Value > 0 then Begin

If Pinjam.State in dsEditModes then Pinjam.Post; DPinjam.Insert; DPinjamKoleksiID.Value := qStockKoleksiID.Value; DPinjamHargaSewa.Value := DPinjamHargaSewaKoleksi.Value; DPinjamTglHarusKembali.Value := PinjamTglPinjam.Value + DPinjamLamaSewaKoleksi.Value; DPinjamKembaliID.Value := 0; DPinjam.Post; UpdateqStock;

Komponen Event Code

Else MessageDlg('Stock koleksi kosong!', mtInformation, [mbOK], 0); end;

48. Pilih Edit1 pada Object TreeView, buat event onKeyPress, ketikkan perintah seperti table di bawah ini :

Komponen Event Code

Edit1 onKeyPress procedure TFPinjam.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

If Key = #13 then UpdateqStock; end;

49. Kembali ke form FUtama, klik View – Forms, pilih FUtama, klik OK untuk melanjutkan.

50. Klik menu File – Use Unit, pilih FPinjam, klik OK untuk melanjutkan. 51. Pilih Peminjaman1 pada Object TreeView, buat event onClick, ketikkan

perintah seperti table di bawah ini : Komponen Event Code

Peminjaman1 onClick procedure TFUtama.Peminjaman1Click(Sender: TObject); begin

FPinjam.ShowModal; end;

52. Pilih SpeedButton3 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini :

Komponen Event Code

SpeedButton3 onClick procedure TFUtama.SpeedButton3Click(Sender: TObject); begin

FPinjam.ShowModal; end;

Dalam dokumen MODUL KULIAH PEMROGRAMAN VISUAL 1 (Halaman 142-155)