Aplikasi Rental VCD

13
  Praktikum-8 Pemrograman Delphi 7 Imam Gunawan, M. Kom 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 Rental NoBPAnda”, yang mempunyai path atau alamat di lokasi folder Rental tadi 4. Setelah selesai membuat alias, ubahlah Working Directory D atabase Desktop ke lokasi Alias tadi Membu at 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. Filed Jenis kelamin diisi dengan “L” untuk mewakili “Laki-laki”, dan “P” untuk mewakili perempuan.

Transcript of Aplikasi Rental VCD

Praktikum-8

Pemrograman Delphi 7

Imam Gunawan, M. Kom

MEMBUAT APLIKASI RENTAL VCDSebelum 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 KodeVCD Judul_Film Jenis JML_Persediaan

Type A A A N

Size 5 25 1

Key *

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 KodePLG A Nama A Alamat A Jenis_Kelamin A NoTelp A

Size 5 25 40 1 15

Key *

Buatlah Secondary Index, dengan nama IdxNama berdasarkan field Nama. Filed Jenis kelamin diisi dengan L untuk mewakili Laki-laki, dan P untuk mewakili perempuan.

Praktikum-8

Pemrograman Delphi 7

Imam Gunawan, M. Kom

Tabel : Persewaan.db Nama Field Type NoSewa A KodeVCD A TglSewa D LamaSewa N KodePLG A Tarif_Sewa N

Size 10 15

Key * *

5

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 IdxSewa IdxTglSewa IdxKodePLG IdxKodeVCD Field Kunci NoSewa, KodeVCD TglSewa KodePLG KodeVCD

Tabel : Pengembalian.db Nama Field Type NoKembali A NoTransaksi A KodeVCD A KodePLG A TglKembali D TglDikembalikan D JmlTerlambat N DendaPerHari N Buatlah Index : Nama Index IdxNoKemballi IdxKembali IdxKodePLG IdxKodeVCD Tebel : Bantu.db Nama Field KodeMaster Nilai

Size 10 10 5 5

Key * * * *

Field Kunci NoKembali NoKembali, NoTransaksi, KodeVCD KodePLG KodeVCD

Type A N

Size 1

Key *

Tabel bantu pada program ini berfungsi untuk mengontrol tarif sewa, denda, serta lama sewa.

Praktikum-8

Pemrograman Delphi 7

Imam Gunawan, M. Kom

Membuat Form VCD 1. Buatlah Form dengan design dibawah ini, atur propertiesnya seperti tabel dibawah : (Tab Sheet : Tambah dan Edit)

Component Pallete Tab Nama Object Win32 Page Control Edit1 Edit2 Button1 Standard Button2 Button3 Button4 Button5

Object Inspector Properties Keterangan TabSheet1,Caption &Tambah dan Edit TabSheet2,Caption Lihat Data (Hapus, cari) Style tsFlatButton Name EdKode MaxLength 5 Name EdJudul CharCase ecUpperCase MaxLength 25 Name Btcek Caption &Cek Kode Name BtTambah Caption &Tambah Name BtEdit Caption &Edit Name BtSimpan Caption &Simpan Name BtBatal Caption &Batal

Praktikum-8

Pemrograman Delphi 7

Imam Gunawan, M. Kom

Button6

Name Caption Name Caption Column

RadioGroup Items

Additional

MaskEdit StaticText

BDE

Table

DataAccess

DataSource

Name EditMask Name Name DatabaseName TabelName AutoRefresh Active Dataset

BtKeluar &Keluar RgJenis (Kosongkan) 2 A : Action H : Horor K : Komedi D : Drama N : Anak-anak V : Video Klip M : Film Mandarin R : Film Dokumenter MeJML (Pilih Extenion) StStatus tVCD RentalVCD(alias) VCD.db True True tVCD

(Tab Sheet : Lihat Data (Hapus, Cari))

Praktikum-8

Pemrograman Delphi 7

Imam Gunawan, M. Kom

Component Pallete Tab Nama Object Button7 Button8

Standard

RadioGroup

Edit3 DBGrid DataControls DBNavigator

Object Inspector Properties Keterangan Name BtHapus Caption &Hapus Name BtKeluar2 Caption K&eluar Name RgCari Caption Pencarian Data Items Cari Kode VCD Cari Judul Film ItemIndex 0 Name EdCari Caption (Kosongi) CharCase ecUpperCase DataSource DataSource1 DataSource DataSource1 [nbFirst, VisibleButtons 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 Procedure BuatNomor; // untuk membuat kode VCD

Praktikum-8

Pemrograman Delphi 7

Imam Gunawan, M. Kom

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; end;

Praktikum-8

Pemrograman Delphi 7

Imam Gunawan, M. Kom

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;

Praktikum-8

Pemrograman Delphi 7

Imam Gunawan, M. Kom

//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

Praktikum-8

Pemrograman Delphi 7

Imam Gunawan, M. Kom

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

Praktikum-8

Pemrograman Delphi 7

Imam Gunawan, M. Kom

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

Praktikum-8

Pemrograman Delphi 7

Imam Gunawan, M. Kom

//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

Praktikum-8

Pemrograman Delphi 7

Imam Gunawan, M. Kom

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 duluif 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

Praktikum-8

Pemrograman Delphi 7

Imam Gunawan, M. Kom

// sebelum menghapus, // cek data di dalam tabel dulu if tVCD.RecordCount=0 then begin //jika data kosong tidak perlu hapus application.MessageBox('Tabel Ditolak',MB_IconStop); exit; end else

kosong...','Hapus

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;