MEMBUAT APLIKASI RENTAL VCD
Sebelum membuat program aplikasi, terlebih dahulu buatlah alias untuk aplikasi yang akan kita buat :
1. Buat folder dengan nama “D:\RentalNobp” di drive tempat anda menyimpan data 2. Buka Database Desktop
3. Buat alias dengan nama “RentalNoBPAnda”, yang mempunyai path atau alamat di lokasi folder Rental tadi
4. Setelah selesai membuat alias, ubahlah Working Directory Database Desktop ke lokasi Alias tadi
Membuat Tabel Tabel : VCD.db
Nama Field Type Size Key
KodeVCD A 5 *
Judul_Film A 25
Jenis A 1
JML_Persediaan N
Buatlah Secondary Index, dengan nama “IdxJudul” berdasarkan field Judul_Film. Index ini nantinya akan digunakan untuk mencari data dalam tabel berdasarkan field Judul_Film.
Tabel ini akan digunakan untuk mencatat data VCD yang ada dalam Rental. Field Jenis diisi dengan : A : Action, H : Horor, K : Komedi, D : Drama, N : Anak-anak, V : Video Klip / Musik, M : Film Mandarin, R : Film Dokumenter
Tabel : Pelanggan.db
Nama Field Type Size Key
KodePLG A 5 *
Nama A 25
Alamat A 40
Jenis_Kelamin A 1
NoTelp A 15
Buatlah Secondary Index, dengan nama “IdxNama” berdasarkan field Nama.
Tabel : Persewaan.db
Nama Field Type Size Key
NoSewa A 10 * KodeVCD A 15 * TglSewa D LamaSewa N KodePLG A 5 Tarif_Sewa N
Pada tabel Persewaan, Nosewa dan KodeVCD digunakan sebagai kunci utama. Dalam Paradox untuk membuat kunci utama yang lebih dari satu filed harus dibuat secara berurutan.
Buatlah Index :
Nama Index Field Kunci IdxSewa NoSewa, KodeVCD
IdxTglSewa TglSewa
IdxKodePLG KodePLG
IdxKodeVCD KodeVCD
Tabel : Pengembalian.db
Nama Field Type Size Key
NoKembali A 10 * NoTransaksi A 10 * KodeVCD A 5 * KodePLG A 5 * TglKembali D TglDikembalikan D JmlTerlambat N DendaPerHari N Buatlah Index :
Nama Index Field Kunci
IdxNoKemballi NoKembali
IdxKembali NoKembali, NoTransaksi, KodeVCD
IdxKodePLG KodePLG
IdxKodeVCD KodeVCD
Tebel : Bantu.db
Nama Field Type Size Key
KodeMaster A 1 *
Nilai N
Membuat Form VCD
1. Buatlah Form dengan design dibawah ini, atur propertiesnya seperti tabel dibawah : (Tab Sheet : Tambah dan Edit)
Component Pallete Object Inspector
Tab Nama Object Properties Keterangan Win32 Page Control
TabSheet1,Caption &Tambah dan Edit TabSheet2,Caption Lihat Data (Hapus, cari)
Style tsFlatButton
Standard
Edit1 Name EdKode
MaxLength 5
Edit2
Name EdJudul
CharCase ecUpperCase
MaxLength 25
Button1 Name Btcek
Caption &Cek Kode
Button2 Name BtTambah
Caption &Tambah
Button3 Name BtEdit
Caption &Edit
Button4 Name BtSimpan
Caption &Simpan
Button5 Name BtBatal
Button6 Name BtKeluar Caption &Keluar RadioGroup Name RgJenis Caption (Kosongkan) Column 2 Items A : Action H : Horor K : Komedi D : Drama N : Anak-anak V : Video Klip M : Film Mandarin R : Film Dokumenter Additional MaskEdit Name MeJML
EditMask (Pilih Extenion)
StaticText Name StStatus
BDE Table Name tVCD DatabaseName RentalVCD(alias) TabelName VCD.db AutoRefresh True Active True
DataAccess DataSource Dataset tVCD
Component Pallete Object Inspector
Tab Nama Object Properties Keterangan
Standard
Button7 Name BtHapus
Caption &Hapus
Button8 Name BtKeluar2
Caption K&eluar
RadioGroup
Name RgCari
Caption Pencarian Data Items Cari Kode VCD
Cari Judul Film
ItemIndex 0 Edit3 Name EdCari Caption (Kosongi) CharCase ecUpperCase DataControls
DBGrid DataSource DataSource1
DBNavigator
DataSource DataSource1 VisibleButtons [nbFirst,
nbPrior,nbNext,nbLAst] 2. Rubah Properties Name dari Form VCD menjadi FrmVCD
3. Berikutnya ubah tulisan kolom yang ada dalam DBGrid, dengan cara mengklik dua kali objek tersebut sampai kotak dialog Editing DbGridColumns muncul. Kemudian cari ikon Add All Fields pada toolbar, sampai semua filed yang ada pada tabel VCD ditampilkan. Selanjutnya edit Captionnya, dengan memilih field pada kotak dialog Editing DbGridColumns, lalu pada Object Inspector cari Caption pada sub properties Title.
Agar pada saat program dijalankan user tidak bisa mengubah data melalui DBGrid, ubahlah properties ReadOnly menjadi bernilai True masing-masing Columns dalam kotak dialog Editing DbGridColumns
5. Setelah semua selesai, simpan project dengan nama PrjRental.dpr dan Unit dengan nama UVCD.pas dalam satu folder “Rental”
6. Deklarasikan variabel-variabel Global seperti di bawah ini : var
FrmVCD :TFrmVCD; Edit :Boolean; Ketemu :Boolean;
Konfirmasi :Integer; //untuk kotak dilaog
Kode :String[5]; //untuk menampung kode VCD
7. Deklarasikan Procedure baru dalam class form sebagai berikut : ………
Procedure AktifkanKode; //untuk mengaktifkan kode VCD Procedure Aktifkan; //untuk mengatur tampilan
8. Buat kode program untuk ketiga procedure yang telah dideklarasikan di atas, dalam bagian implementasi dalam unit :
Procedure TFrmVCD.AktifkanKode; begin
//aktifkan objek edit EdKode.Enabled:=True; EdKode.Color:=clWhite;
//letekan kurdor ke objek edit EdKode.SetFocus;
//aktifkan tombol cek dan Batal BtCek.Enabled:=True;
BtBatal.Enabled:=True; //nonaktifkan yang lain BtTambah.Enabled:=False; BtEdit.Enabled:=False;
//akrifkan enter pada tombol cek BtCek.Default:=true;
end;
Procedure TFrmVCD.Aktifkan; begin
//nonaktifkan objek kode EdKode.Enabled:=False; //aktifkan objek
EdJudul.Enabled:=True; MeJML.Enabled:=True; RgJenis.Enabled:=True;
//Ubah warna objek menjadi putih EdKode.Color:=clWhite;
EdJudul.Color:=clWhite; MeJML.Color:=clWhite; //Non aktifkan tombol BtSimpan.Enabled:=True; //nonaktifkan tombol BtTambah.Enabled:=False; BtEdit.Enabled:=False; BtCek.Enabled:=False; BtCek.Default:=False;
//letakan kursor pada objek edit judul film EdJudul.SetFocus;
Procedure TFrmVCD.BuatNomor; var N:Integer;
JKarakter:Integer; Kbaru:String[5]; begin
// buat urutan data pada variable N if tVCD.RecordCount=0 then N:=1 else begin tVCD.IndexName:=''; tVCD.Last; N:=StrToInt(tVCD['KodeVCD'])+1; end;
// hitung jumlah karakter
JKarakter:=Length(trim(IntToStr(N))); //sesuaikan kode dengna jumlah karakter Case JKarakter of 1: Kbaru:='0000'+trim(IntToStr(N)); 2: Kbaru:='000'+trim(IntToStr(N)); 3: Kbaru:='00'+trim(IntToStr(N)); 4: Kbaru:='0'+trim(IntToStr(N)); 5: Kbaru:=trim(IntToStr(N)); end; //Tampilkan kode Edkode.Text:=KBaru;
//letakan kursor diakhir kode Edkode.SelStart:=Length(KBaru); Edkode.SetFocus;
end;
9. Klik dua kali tombol batal, ketikan kode program berikut : procedure TFrmVCD.BtBatalClick(Sender: TObject); begin //membersihkan tulisan Kode:=''; EdKode.Text:=''; EdJudul.Text:=''; MeJML.Text:=''; StStatus.Caption:='';
//menhilangkan chek pada radiogroup RgJenis.ItemIndex:=-1; //menonaktifkan objek EdKode.Enabled:=False; EdJudul.Enabled:=False; MeJML.Enabled:=False; RgJenis.Enabled:=False;
//menyamakan warna objek dengan form EdKode.Color:=clBtnFace; EdJudul.Color:=clBtnFace; MeJML.Color:=clBtnFace; //aktifkan tombol BtTambah.Enabled:=True; BtEdit.Enabled:=True; //nonaktifkan tombol BtSimpan.Enabled:=False; BtBatal.Enabled:=False; BtCek.Enabled:=False; BtCek.Default:=False; end;
10. Panggil procedure tombol Batal diklik, dari form VCD pada event on Create. 11. Buat kode program untuk tombol Tambah :
procedure TFrmVCD.BtTambahClick(Sender: TObject); begin
Edit:=False; //untuk logika cari kode dan simpan tambah AktifkanKode;
BuatNomor; //memangil procedure untuk membuat kode secara otomatis StStatus.Caption:='Tambah Data';
end;
12. Buat kode program untuk tombol Edit :
procedure TFrmVCD.BtEditClick(Sender: TObject); begin
Edit:=True; // Untuk logika cari kode den simpan edit AktifkanKode;
StStatus.Caption:='Edit Data'; end;
13. Buat kode program berikut pada tombol Cek Kode pada event OnClick : procedure TFrmVCD.BtCekClick(Sender: TObject);
begin
if Length(Trim(EdKode.Text))=0 then begin
application.MessageBox('Kode masih kosong...','Cek Input',MB_IconStop);
EdKode.SetFocus; end
else
begin
//set index tabel pada kunci utama tVCD.IndexName:='';
//cari data berdasarkan kunci utama
Ketemu:=tVCD.FindKey([Trim(EdKode.Text)]); if Ketemu=True then
//jika data ketemu
//cek dulu edit atau tambah begin
if Edit=True then
//jika edit, tampilkan datanya begin
Aktifkan;
Kode:=tVCD['KodeVCD']; EdKode.Text:=Kode;
EdJudul.Text:=tVCD['Judul_Film']; if tVCD['Jenis']= 'A' then
RgJenis.ItemIndex:=0
else if tVCD['Jenis']= 'H' then RgJenis.ItemIndex:=1
else if tVCD['Jenis']= 'K' then RgJenis.ItemIndex:=2
else if tVCD['Jenis']= 'D' then RgJenis.ItemIndex:=3
else if tVCD['Jenis']= 'N' then RgJenis.ItemIndex:=4
else if tVCD['Jenis']= 'V' then RgJenis.ItemIndex:=5
else if tVCD['Jenis']= 'M' then RgJenis.ItemIndex:=6 else RgJenis.ItemIndex:=7; MeJML.Text:=tVCD['JML_Persediaan']; end else begin
//jika tambah aktifkan beri pesan kode sudah ada application.MessageBox('Kode sudah ada...','Cek Data',MB_IconInformation); EdKode.Text:=''; EdKode.SetFocus; end; end else
//jika data tidak ketemu //cek dulu edit atau tambah begin
if Edit=True then begin
//beri pesan kode tidak ada
application.MessageBox('Kode tidak ada...','Cek Data',MB_IconInformation);
EdKode.Text:=''; EdKode.SetFocus; end
else
//aktifkan objek input Aktifkan;
end end; end;
14. Buat kode program untuk tombol Simpan :
procedure TFrmVCD.BtSimpanClick(Sender: TObject);
procedure PesanKosong; //membuat procedure didalam proedure begin
application.MessageBox('Ada yang belum diisi...','Cek Input',MB_IconStop);
end; begin
//sebelum disimpan cek input data dulu if length(trim(edKode.Text))=0 then begin
PesanKosong; EdKode.SetFocus; end
else if length(trim(EdJudul.Text))=0 then begin
PesanKosong;
EdJudul.SetFocus; end
else if RgJenis.ItemIndex=-1 then begin
PesanKosong;
RgJenis.SetFocus; end
else if length(trim(MeJML.Text))=0 then begin PesanKosong; MeJML.SetFocus; end else begin
//setelah data diisi semua
//cek apakah simpan edit atau simpan tambah if Edit=true Then
begin
tVCD.IndexName:='';
tVCD.FindKey([Trim(Kode)]); tVCD.Edit; //edit data
end else
tVCD.Append; //tambah data
//simpan didalam field
tVCD['KodeVCD']:=EdKode.Text; tVCD['Judul_Film']:=EdJudul.Text; case RgJenis.ItemIndex of 0: tVCD['Jenis']:='A'; 1: tVCD['Jenis']:='H'; 2: tVCD['Jenis']:='K'; 3: tVCD['Jenis']:='D'; 4: tVCD['Jenis']:='N'; 5: tVCD['Jenis']:='V'; 6: tVCD['Jenis']:='M'; 7: tVCD['Jenis']:='R'; end; tVCD['JML_Persediaan']:=MeJml.Text; tVCD.Post; tVCD.Refresh; BtBatalClick(Sender); end; end;
15. Buat program untuk tombol Keluar : //Keluar pada Tab Pertama
procedure TFrmVCD.BtKeluarClick(Sender: TObject); begin
Konfirmasi:=Application.MessageBox('Yakin mau menutup form ini', 'Konfirmasi Tutup',MB_Iconquestion Or MB_YesNo);
if Konfirmasi=IdYes Then Close
else exit; end;
//Keluar pada Tab Kedua
procedure TFrmVCD.BtKeluar2Click(Sender: TObject); begin
BtKeluarClick(Sender); end;
16. Buat Kode Program untuk RadioGroup :
procedure TFrmVCD.RgCariClick(Sender: TObject); begin
//ubah index tabel berdasarkan pilihan user //untuk mempermudah user, dalam melihat tabel Case RgCari.ItemIndex Of
0: tVCD.IndexName:='';
1: tVCD.IndexName:='IdxJudul'; end;
//kosongkan objek cari EdCari.Text:='';
EdCari.SetFocus; end;
17. Buat Kode Program untuk mencari data, pada objek edit dengan nama edcari : procedure TFrmVCD.EdCariChange(Sender: TObject);
begin
// sebelum cari,
// cek data di dalam tabel dulu if tVCD.RecordCount=0 then
begin
//jika data kosong tidak perlu cari
application.MessageBox('Tabel kosong...','Cari Ditolak',MB_IconStop); EdCari.Text:='';
EdCari.SetFocus; end
else begin
//cek pilihan cari user Case RgCari.ItemIndex Of 0: tVCD.IndexName:='';
1: tVCD.IndexName:='IdxJudul'; end;
//cari data berdasarkan index yang aktif //dengan data yang mendekati kebenaran tVCD.FindNearest([trim(EdCari.Text)]); end;
end;
18. Buat Kode Program untuk tombol Hapus pada event on klick : procedure TFrmVCD.BtHapusClick(Sender: TObject); begin
// sebelum menghapus,
// cek data di dalam tabel dulu if tVCD.RecordCount=0 then
begin
//jika data kosong tidak perlu hapus
application.MessageBox('Tabel kosong...','Hapus Ditolak',MB_IconStop); exit; end else begin
Kode:=InputBox('Input Hapus','Masukan Kode VCD :',''); //cek input hapus
if Length(trim(Kode))=0 then //jika kosong keluar
Exit else begin
//jika diisi cari datanya tVCD.IndexName:='';
Ketemu:=tVCD.FindKey([trim(Kode)]); if Ketemu=true then
begin
//jika pencarian ketemu //beri konfirmasi hapus
Konfirmasi:=application.MessageBox('Anda yakin...','Konfirmasi',MB_Iconquestion Or MB_YesNO); if Konfirmasi=IdYes then tVCD.Delete; end else begin
//jika pencarian tidak ketemu, beri pesan
application.MessageBox('Data tidak ada...','Hapus Ditolak',MB_IconExclamation); exit; end; end; end; end;