Modul 9. Membuat Form Transaksi Pengembalian Buku pada Delphi 7.0 + MS. Access 2007

Program Aplikasi Perpustakaan dengan Delphi + Ms. Access 2007
Ahmad Rizal Abidin, M.Kom

4checks.com-Free Shipping and Handling on All Personal Checks with code DWF008
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

procedure TFrmKembali.FormCreate(Sender: TObject);
begin
edit1.Text :='';
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

procedure TFrmKembali.Edit1KeyPress(Sender: TObject; var Key: Char);
var tgl :tdatetime;
begin
if key=#13 then
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.add('Select * from pinjam where id_pinjam="'+ edit1.Text +'"');
adoquery1.open;
if not adoquery1.Eof then
begin

  //menghitung tanggal tempo
  decodedate(datetimepicker1.DateTime,thn,bln,hari);
  hari := hari + 5;
  tanggal := encodedate(thn,bln,hari);
  edit2.Text := formatdatetime('dd/mm/yyyy',tanggal);

  edit3.Text := adoquery1.Fields[1].AsString;
  tgl := adoquery1.Fields[3].AsDateTime;
  if datetostr(tgl)  <> ''  then
  begin
    button1.Enabled := false;
    datetimepicker2.enabled := false;
    showmessage('Buku Sudah dikembalikan');
  end;

  datetimepicker1.Date := adoquery1.Fields[2].AsDateTime;
  datetimepicker2.date := adoquery1.fields[3].asdatetime;


  //menselect data pada id anggota
  adoquery2.close;
  adoquery2.SQL.clear;
  adoquery2.SQL.add('select * from Anggota where id_Anggota = "'+ edit3.Text +'"');
  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

procedure TFrmKembali.DateTimePicker2Change(Sender: TObject);
begin
edit8.text:='0';
edit7.Text :='0';
tgl1 := datetimepicker1.Date;
tgl2 := datetimepicker2.date;
if (tgl2 > tanggal) then
begin
lama :=trunc(tgl2 - tgl1);
edit7.Text := inttostr(lama);
edit8.text := inttostr(strtoint(edit6.text) * lama);
end
else
edit7.Text := '0';
end;

f. Membuat koding pada tombol prosess button1
procedure TFrmKembali.Button1Click(Sender: TObject);
begin

adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.add('update pinjam set tgl_kembali = "'+ 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 MEncOba…

Materi yang berhubungan :
Modul 1. Dasar Pemograman Delphi 7
Modul 2. Alur Program Delphi 7.0
Modul 3. Membuat Database dengan Menggunakan Microsoft Acces 2007
Modul 4. Membuat Menu Pada Delphi 7.0
Modul 5. Membuat Form Penerbit pada Delphi 7.0
Modul 6. Membuat Form Anggota pada Delphi 7.0
Modul 7. Membuat Form Buku pada Delphi 7.0
Modul 8. Membuat Form Transaksi Peminjaman Buku pada Delphi 7.0
Modul 9. Membuat Form Transaksi Pengembalian Buku pada Delphi 7.0 + MS. Access 2007
Modul 10. Membuat Nomor peminjaman secara otomatis pada Form Transaksi Peminjaman Buku pada Delphi 7.0 + MS. Access 2007
Modul 11. Membuat Report dengan Rave
Modul 12. Membuat Report dengan Rave + Delphi 7

14 Responses

  1. gimana mengatasi masalah ini pak ???

    perintah 1 : if datetostr(tanggal) ” then
    error : messing operator or semicolon

    perintah 2 : if (tgl2 &gt ; tanggal) then
    error : illegal character in input file: ‘&’ [$26]

  2. perintah 1
    if datetostr(tanggal) ā€ then
    hilangan tanda kutip dua menjadi

    if datetostr(tanggal) <> '' then 
    
    perintah dua
    if (tgl2 > tanggal) then
    

    atau
    cek aja lagi di modulnya udah diperbaiki…

  3. Salam kenal Pak Ahmad..
    Mau tanya, gmana codingnya untuk perhitungan simulasi Pinjaman, misal gini, Plafond 1.000.000, Bunga 5%, Jangka waktu 24 bln, Jika Button1.Click maka tampil angsuran perbulannya ( pokok dan bunga ) sampai nilai angsurannya = 0. Makasi pncerahannya ya..

    • Kodingnnya Sederhana adalah :

      Pokok = Plafond / jangkawaktu
      Bunga = (Plafond * (5/100))
      Anggsuran = Pokok + Bunga
      Sisa =Plafond – Pokok
      nah masalahnya untuk angsuran berikutnya berarti :
      sisa = Plafon – Pokok (berarti sisa harus dalam status update)

  4. pak ahmad..
    maw tanya nih pak….saya lagi membuat sistem pembayaran parkir…tapi saya bingung caranya membuat source codenya, antara jam keluar dukrangi jam masuk…biar nanti bisa didapatkan saldonya….misal tiap 1 jam dikalikan 1000…mohon pencerahannya pak…trima kasih….

    • coba aja perintah dibawah ini : …..
      SELECT hour( sec_to_time( time_to_sec( jam2 ) – time_to_sec( jam1 ) ) ) AS jam
      FROM parkir

      atau

      select hour(timediff(jam2,jam1)) as jam from parkir

  5. pakk,,salam kenal.
    senang bisa belajar seperti ini,
    saya mau minta tolong.
    bagaimana membuat sintak menghitung jumlah hari bila tidak memakai datetimepicker,,

    saya memakai maskedit,,
    saya ingin tgl pinjam di input,,tgl kembali di input lalu di enter keluar hasil berapa hari peminjaman di edit1.text..

    maaf,,,saya masih awam

    • procedure TForm1.KeyPress(Sender: TObject; var Key: Char);
      begin
      if key = #13 then
      edit1.text:=floattostr(strtodate(maskedit2.Text)-strtodate(maskedit1.Text));
      end;

  6. assalamu alaikum wr. wb.

    pak ahmad.. aku mnt tlong.. q lgi buat skripsi ne..
    tlong mnta cara ataau kode y untuk membuat form sistem parkir menggunakan delphi 07 yang nantinya akan di koneksikan dengan database microsoft acces 07

    • oh yach… mungkin sebaiknya anda buat dulu databasenya setelah itu buat form-form master, baru transaksinya…
      nah… kalau ada kesulitan baru kita diskusikan ….
      good luck…

  7. permisi.. mau numpang nanya,,

    bisa nggak yach text yang ada di datetimepicker ditampilkan dalam sebuah stringgrid??

  8. numpang nanya pak, koding untuk bagian A di atas itu apa yah?

  9. tanya om ahmad, itu yg pas bagian ini >
    decodedate(datetimepicker1.DateTime,thn,bln,hari);
    hari := hari + 5;
    tanggal := encodedate(thn,bln,hari);
    edit4.Text := formatdatetime(‘dd/mm/yyyy’,tanggal);
    error pada th,bln,hari. apa itu harus di declare dulu atau gmn? trimakasih

  10. Assalam.. pak ahmad, saya mau tanya

    saya sedang ada tugas tentang algoritma knn,
    apa ada source kode algoritma knn untuk delphi? kalo ada dimana ya saya bisa akses?

Leave a comment