tutorial delphi 7
DESCRIPTION
Pada tutorial ini saya mencoba membuat sebuah aplikasi untuk penghitungan pembayaran listrik dari seorang pelanggan. Koneksi yang digunakan pada aplikasi ini menggunakan Query, hal ini dimaksudkan untuk memudahkan dalam hal pencarian dan pengelompokan data yang tersebar di beberapa tabel. Semoga bermanfaat, kritik dan saran sangat diharapkan Unit II, 26 Januari 2013 Abi_IrhamTRANSCRIPT
Mendesain Database:
Klik Menu Tools >> Database Desktop
Tunggu beberapa saat, sampai muncul jendela database desktopnya
Setelah muncul klik File >> New >> Table >> Paradox 7 >> OK
Kemudian Inputkan data Pelanggan Berikut ini:
Setelah selesai klik Save As >> Tentukan Folder penyimpanan seperti tampilan di bawah:
Berinama filenya Pelanggan >> Save
Lakukan hal yang sama terhadap tabel Pembayaran
Save As >> Pembayaran
Kembali ke Delphi lalu desain form sebagai berikut:
Atur properti sebagai berikut:
Nama Objek Properti yang diatur Nilai
Table 1 Database Name Masukkan alamat folder. Ex: D:\Kompetensi_Irham
Table Name Pelanggan.db
Name Pelanggan
DataSource 1 Dataset Pelanggan
DBGrid1 Datasource DataSource1
Button1 Caption Tambah
Name Tambah
Button2 Caption Simpan
Name Simpan
Button3 Caption Hapus
Name Hapus
Button4 Caption Ganti
Name Ganti
Button5 Caption Selesai
Name Selesai
Button6 Caption Cari
Name Cari
Combobox1 Items 450
900
1200
Masukkan coding berikut untuk masing2 objek:
1. Form Activate
Pastikan tidak ada objek yang aktif kemudian pilih Evens >> OnActivate>>klik 2x pada area putih sebelah
kanan
Ketikkan coding berikut:
procedure TForm1.FormActivate(Sender: TObject);
begin
Pelanggan.DatabaseName := Application.GetNamePath;
Pelanggan.Open;
simpan.Enabled := false;
tambah.Enabled := True;
hapus.Enabled := true;
Ganti.Enabled := true;
Selesai.Enabled := true;
Tambah.SetFocus;
if pelanggan.RecordCount <> 0 then
begin
edit1.Text := Pelanggan['no_rek'];
edit2.Text := Pelanggan['nama'];
edit3.Text := Pelanggan['alamat'];
combobox1.Text := Pelanggan['daya'];
edit4.Text := Pelanggan['By_beban'];
end
else
begin
edit1.Text :='';
edit2.Text :='';
edit3.Text :='';
edit4.Text :='';
combobox1.Text :='';
end;
end;
setelah selesai tekan tombol F12 untuk kembali ke Form
2. Tambah Click:
Klik 2x pada tombol tambah, lalu ketikkan coding berikut:
procedure TForm1.TambahClick(Sender: TObject);
begin
edit1.SetFocus;
edit1.Text :='';
edit2.Text :='';
edit3.Text :='';
edit4.Text :='';
combobox1.Text :='';
tambah.Enabled := false;
simpan.Enabled := True;
hapus.Enabled := false;
ganti.Enabled := false;
selesai.Enabled := true;
simpan.Caption := 'Simpan';
end;
3. Simpan Click:
procedure TForm1.SimpanClick(Sender: TObject);
begin
if simpan.Caption = 'Simpan' then
begin
Pelanggan.Insert;
Pelanggan['No_Rek']:= edit1.Text;
Pelanggan['nama'] := edit2.Text;
Pelanggan['alamat']:= edit3.Text;
Pelanggan['Daya'] := combobox1.Text;
Pelanggan['by_beban']:= edit4.Text;
Pelanggan.Post;
end
else
begin
Pelanggan.edit;
Pelanggan['No_Rek']:= edit1.Text;
Pelanggan['nama'] := edit2.Text;
Pelanggan['alamat']:= edit3.Text;
Pelanggan['Daya'] := combobox1.Text;
Pelanggan['by_beban']:= edit4.Text;
Pelanggan.Post;
end;
tambah.Enabled := true;
simpan.Enabled := false;
hapus.Enabled := true;
ganti.Enabled := true;
selesai.Enabled := true;
end;
4. Hapus Click:
procedure TForm1.HapusClick(Sender: TObject);
var tanya:integer;
begin
tanya := Application.Messagebox('Apakah yakin akan dihapus?','Tanya',MB_YesNo);
if tanya=6 then
begin
if pelanggan.RecordCount <> 0 then
begin
Pelanggan.Delete;
Pelanggan.Next;
edit1.Text := Pelanggan['no_rek'];
edit2.Text := Pelanggan['nama'];
edit3.Text := Pelanggan['alamat'];
combobox1.Text := Pelanggan['daya'];
edit4.Text := Pelanggan['By_beban'];
end
else
begin
edit1.Text :='';
edit2.Text :='';
edit3.Text :='';
edit4.Text :='';
combobox1.Text :='';
end;
end;
end;
5. Ganti Click:
procedure TForm1.GantiClick(Sender: TObject);
begin
simpan.Enabled := true;
simpan.Caption :='Update';
tambah.Enabled := false;
hapus.Enabled := false;
ganti.Enabled := false;
selesai.Enabled := true;
edit1.SetFocus;
end;
6. Selesai Click
procedure TForm1.SelesaiClick(Sender: TObject);
begin
form3.show;
form1.Hide;
end;
7. Cari Click
procedure TForm1.CariClick(Sender: TObject);
begin
if Pelanggan.FindKey([edit5.text]) then
begin
edit1.Text := Pelanggan['no_rek'];
edit2.Text := Pelanggan['nama'];
edit3.Text := Pelanggan['alamat'];
combobox1.Text := Pelanggan['daya'];
edit4.Text := Pelanggan['By_beban'];
end
else
Application.MessageBox('Data tidak ditemukan, coba cek kembali','Konfirmasi',Mb_Ok);
end;
8. Tambahkan coding pada edit1,2 dan 3 seperti berikut:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = chr(13) then
begin
if pelanggan.FindKey([edit1.text]) then
application.MessageBox('Nomor Sudah Ada, Cek Lagi','Konfirmasi',MB_OK)
else
edit2.SetFocus;
end;
end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key = chr(13) then
edit3.SetFocus;
end;
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(13) then
combobox1.SetFocus;
end;
9. Combobox1 click:
procedure TForm1.ComboBox1Click(Sender: TObject);
begin
if StrToInt(Combobox1.Text)=450 then
edit4.Text := IntToStr(12000)
else if StrToInt(ComboBox1.Text)=900 then
edit4.Text := IntToStr(23000)
else
edit4.Text := IntToStr(36000);
end;
Setelah selesai Simpan Form dan Project dengan mengklik icon Save All masing-masing:
a. Unit : Unit_Pelanggan
b. Project : Proyek_PLN
Selanjutnya tambahkan form dengan tampilan sebagai berikut:
Tambahkan Quickrep1 pada bagian bawah form:
Klik Kanan pada Area QuickRep1 lalu pilih Report Setting
Aktifkan Title, Detail Band, Summary seperti pada gambar lalu klik OK
Atur Properti Sebagai berikut:
Nama Objek Properti yang diatur Nilai
Table 1 Database Name Masukkan alamat folder. Ex: D:\Kompetensi_Irham
Table Name Pelanggan.db
Name Pelanggan
Table 2 Database Name Masukkan alamat folder. Ex: D:\Kompetensi_Irham
Table Name Pembayaran.db
Name Pembayaran
Query1 Database Name Masukkan alamat folder. Ex: D:\Kompetensi_Irham
Button1 Caption Tambah
Name Tambah
Button2 Caption Simpan
Name Simpan
Button3 Caption Hapus
Name Hapus
Button4 Caption Cetak Kartu
Name Cetak
Button5 Caption Selesai
Name Selesai
Combobox1 Items Januari
Februari
Maret
April
Mei
Juni
Juli
Agustus
September
Oktober
November
Desember
Quickrep1 DataSet Query1
QRDBText1 S.D QRDBText8
DataSet Query1
Tambahkan Coding Berikut:
1. Form Activate:
procedure TForm2.FormActivate(Sender: TObject);
begin
Pembayaran.DatabaseName := application.GetNamePath;
pelanggan.DatabaseName := application.GetNamePath;
query1.DatabaseName := application.GetNamePath;
pembayaran.Open;
pelanggan.Open;
edit1.Text :='';
edit2.Text :='';
edit3.Text :='';
edit4.Text :='';
edit5.Text :='';
edit6.Text :='';
edit7.Text :='';
edit8.Text :='';
edit9.Text :='';
combobox1.Text :='';
simpan.Enabled := false;
tambah.Enabled := true;
cetak.Enabled := false;
selesai.Enabled := true;
end;
2. Tambah Click
procedure TForm2.TambahClick(Sender: TObject);
begin
edit1.Text :='';
edit2.Text :='';
edit3.Text :='';
edit4.Text :='';
edit5.Text :='';
edit6.Text :='';
edit7.Text :='';
edit8.Text :='';
edit9.Text :='';
combobox1.Text :='';
edit6.SetFocus;
simpan.Enabled := true;
tambah.Enabled := false;
cetak.Enabled := false;
selesai.Enabled := true;
end;
3. Simpan Click
procedure TForm2.SimpanClick(Sender: TObject);
begin
Pembayaran.Insert;
pembayaran['no_bayar']:= edit6.Text;
pembayaran['bulan']:= combobox1.Text;
pembayaran['tgl']:= DateTimePicker1.Date;
pembayaran['stand_awal']:= edit7.Text;
pembayaran['stand_akhir']:= edit8.Text;
pembayaran['total']:=edit9.Text;
pembayaran['no_rek']:= edit1.Text;
pembayaran.Post;
simpan.Enabled := false;
tambah.Enabled := true;
cetak.Enabled := true;
selesai.Enabled := true;
end;
4. Cetak Click
procedure TForm2.CetakClick(Sender: TObject);
begin
query1.SQL.Clear;
query1.SQL.Add('Select
No_Rek,nama,alamat,daya,by_beban,no_bayar,bulan,tgl,stand_awal,stand_akhir,total');
query1.SQL.Add('from pelanggan,pembayaran');
query1.SQL.Add('where pembayaran.no_rek=pelanggan.no_rek');
query1.SQL.Add('and pembayaran.no_bayar='''+edit6.Text+'''');
query1.Prepare;
query1.Open;
qrdbtext1.DataField :='no_rek';
qrdbtext2.DataField :='nama';
qrdbtext3.DataField :='alamat';
qrdbtext4.DataField :='daya';
qrdbtext5.DataField :='by_beban';
qrdbtext6.DataField :='stand_awal';
qrdbtext7.DataField :='stand_akhir';
qrdbtext8.DataField :='total';
quickrep1.Preview;
end;
5. Selesai Click
procedure TForm2.SelesaiClick(Sender: TObject);
begin
form3.show;
form2.Hide;
end;
6. Edit1 KeyPress:
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(13) then
begin
if pelanggan.FindKey([edit1.text]) then
begin
edit2.Text := pelanggan['nama'];
edit3.Text := pelanggan['alamat'];
edit4.Text := pelanggan['daya'];
edit5.Text := pelanggan['by_beban'];
end;
end;
end;
7. Edit8 KeyPress:
procedure TForm2.Edit8KeyPress(Sender: TObject; var Key: Char);
var
Awal,akhir:integer;
total,beban,tb:real;
begin
if key = chr(13) then
begin
awal:=StrToInt(edit7.Text);
akhir:=StrToInt(edit8.Text);
beban:=StrToFloat(Edit5.Text);
total:= (akhir-awal)*1300;
tb := total + beban;
Edit9.Text := FloatToStr(tb);
end;
end;
Simpan Unit2 dengan Nama Unit_Pembayaran
Buat form menu utama sebagai berikut:
Ketik coding berikut ini:
1. Master >> Pelanggan Click
procedure TForm3.Pelanggan1Click(Sender: TObject);
begin
form1.show;
form3.Hide;
end;
2. Transaksi >> Pembayaran Listrik
procedure TForm3.PembayaranListrik1Click(Sender: TObject);
begin
form2.show;
form3.Hide;
end;
3. Cetak >> Laporan Pembayaran
procedure TForm3.LaporanPembayaran1Click(Sender: TObject);
begin
form4.show;
form3.Hide;
end;
4. Selesai >> Keluar
procedure TForm3.Keluar1Click(Sender: TObject);
begin
Application.Terminate;
end;
Tambahkan Form baru dan Desain seperti tampilan dibawah ini:
Kemudian pada bagian bawah form tambahkan QuickRep1
Atur Setting QuickRep1 sbb:
Atur properti SBB:
Nama Objek Properti yang diatur Nilai
Query1 Database Name Masukkan alamat folder. Ex: D:\Kompetensi_Irham
DataSource1 DataSet Query1
DBGrid1 DataSource DataSource1
Button1 Caption Preview
Name Preview
Button2 Caption Selesai
Name Selesai
Combobox1 Items Januari
Februari
Maret
April
Mei
Juni
Juli
Agustus
September
Oktober
November
Desember
Quickrep1 DataSet Query1
QRDBText1 S.D QRDBText8
DataSet Query1
Tambahkan Coding berikut:
1. Form Activate:
procedure TForm4.FormActivate(Sender: TObject);
begin
query1.SQL.Clear;
query1.SQL.Add('Select
No_Rek,nama,alamat,daya,by_beban,no_bayar,bulan,tgl,stand_awal,stand_akhir,total');
query1.SQL.Add('from pelanggan,pembayaran');
query1.SQL.Add('where pembayaran.no_rek=pelanggan.no_rek');
query1.Prepare;
query1.Open;
end;
2. Preview Click
procedure TForm4.PreviewClick(Sender: TObject);
begin
query1.SQL.Clear; query1.SQL.Add('Select No_Rek,nama,alamat,daya,by_beban,no_bayar,bulan,tgl,stand_awal,stand_akhir,total');
query1.SQL.Add('from pelanggan,pembayaran');
query1.SQL.Add('where pembayaran.no_rek=pelanggan.no_rek');
query1.SQL.Add('and pembayaran.bulan='''+combobox1.Text+'''');
query1.Prepare;
query1.Open;
qrdbtext1.DataField :='no_rek';
qrdbtext2.DataField :='nama';
qrdbtext3.DataField :='alamat';
qrdbtext4.DataField :='daya';
qrdbtext5.DataField :='by_beban';
qrdbtext6.DataField :='stand_awal';
qrdbtext7.DataField :='stand_akhir';
qrdbtext8.DataField :='total';
quickrep1.Preview;
end;
3. Selesai Click
procedure TForm4.SelesaiClick(Sender: TObject);
begin
form3.show;
form4.hide;
end;
4.