Anda di halaman 1dari 4

Modul 9.

Membuat Form Transaksi Pengembalian Buku


pada Delphi 7.0 + MS. Access 2007
Posted on January 14, 2010 by ahmadrizal
Program Aplikasi Perpustakaan dengan Delphi + Ms. Access 2007
Ahmad Rizal Abidin, M.Kom
Karena project Prjpustaka sebelumnya sudah dibuat, pada modul 4.
Membuat menu, maka pada kesempatan ini adalah melengkapi frmkembali yaitu dengan cara:
1. Mengaktifkan Delphi 7.0 dengan cara, klik Start, Klik All Program, Klik Borland Delphi 7,
Klik Delphi 7.
2. Klik menu File, klik Open Project, tentukan folder tempat anda menyimpan project
PRjpustaka, lalu klik prjpustaka dan klik open
3. Klik Menu file, Klik New, klik form, ganti caption pada properties dengan Input Data
Transaksi Pengembalian, dan pada name ketikkan frmkembali.
4. Klik menu View, lalu klik forms dan double klik frmenu, klik Transaksi pada frmmenu, klik
Pengembalian dan ketikkan :
frmkembali.show;
5. Klik menu View, lalu klik forms dan double klik frmkembali, lengkapi form tersebut seperti
gambar berikut :
Gambar 1. Membuat form Transaksi Pengembalian Buku

Adapun koding selengkapnya adalah :


a. Buatlah variable seperti di bawah ini :
b. Membuat Koding pada Form Activate
procedure TFrmKembali.FormActivate(Sender: TObject);
begin
edit1.SetFocus;
end;
c. Membuat Koding pada Form Create
01
02
03

procedure TFrmKembali.FormCreate(Sender: TObject);


begin
edit1.Text :='';

04
05
06
07
08
09
10
11
12
13

edit6.Text := '1000';
edit2.Enabled := false;
edit3.Enabled := false;
edit4.Enabled := false;
edit5.Enabled := false;
edit6.Enabled := false;
edit7.Enabled := false;
edit8.Enabled := false;
datetimepicker1.Enabled := false;
end;

d. Buat koding pada edit1 dengan menggunakan event on keypress


01 procedure TFrmKembali.Edit1KeyPress(Sender: TObject; var Key: Char);
02 var tgl :tdatetime;
03
begin
04
if key=#13 then
05
begin
06
adoquery1.Close;
07 adoquery1.SQL.Clear;
adoquery1.SQL.add('Select * from pinjam where id_pinjam="'+ edit1.Text
08
+'"');
09
adoquery1.open;
10
if not adoquery1.Eof then
11
begin
12
13
//menghitung tanggal tempo
14
decodedate(datetimepicker1.DateTime,thn,bln,hari);
15
hari := hari + 5;
16
tanggal := encodedate(thn,bln,hari);
17
edit2.Text := formatdatetime('dd/mm/yyyy',tanggal);
18
19
edit3.Text := adoquery1.Fields[1].AsString;
20
tgl := adoquery1.Fields[3].AsDateTime;
21
if datetostr(tgl) <> '' then
22
begin
23
button1.Enabled := false;
24
datetimepicker2.enabled := false;
25
showmessage('Buku Sudah dikembalikan');
26
end;
27
28
datetimepicker1.Date := adoquery1.Fields[2].AsDateTime;
29
datetimepicker2.date := adoquery1.fields[3].asdatetime;
30
31
//menselect data pada id anggota
32
adoquery2.close;
33
adoquery2.SQL.clear;
adoquery2.SQL.add('select * from Anggota where id_Anggota = "'+
34
edit3.Text +'"');

35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

adoquery2.Open;
if not adoquery2.Eof then
begin
edit4.text := adoquery2.Fields[1].AsString;
edit5.Text := adoquery2.Fields[2].AsString;
end;
//menampilkan data buku pada datagrid
adoquery3.Close;
adoquery3.SQL.Clear;
adoquery3.SQL.add('select
dpinjam.id_pinjam,dpinjam.id_buku,buku.judulbuku,jumlah from dpinjam,buku
where dpinjam.id_buku = buku.kode and id_pinjam ="' + edit1.Text +'"');
adoquery3.open;
if not adoquery3.eof then
datasource1.dataset := adoquery3;
DBGrid1.DataSource := datasource1;
end
else
showmessage('data tidak ditemukan');
end;
end;

e. Membuat koding pada datetimepicker2 dengan menggunakan event change


01 procedure TFrmKembali.DateTimePicker2Change(Sender: TObject);
02 begin
03
edit8.text:='0';
04
edit7.Text :='0';
05
tgl1 := datetimepicker1.Date;
06
tgl2 := datetimepicker2.date;
07
if (tgl2 > tanggal) then
08
begin
09
lama :=trunc(tgl2 - tgl1);
10
edit7.Text := inttostr(lama);
11 edit8.text := inttostr(strtoint(edit6.text) * lama);
12 end
13
else
14
edit7.Text := '0';
15
end;

f. Membuat koding pada tombol prosess button1


procedure TFrmKembali.Button1Click(Sender: TObject);
begin
01
adoquery1.Close;
02
adoquery1.SQL.clear;
03 adoquery1.SQL.add('update pinjam set tgl_kembali = "'+

04
05
06
07
08
09
10
11
12
13
14

datetostr(datetimepicker2.date)+'", tgl_tempo = "'+ edit2.text +'" where


id_pinjam ="'+ edit1.text +'"');
adoquery1.ExecSQL;
showmessage('Data Sudah terupdate');
edit1.Text := '';
edit2.text := '';
edit3.text := '';
edit4.text := '';
edit5.text := '';
edit6.text := '';
edit7.text := '';
edit8.text := '';
end;

@Ahmad
Selamat