Anda di halaman 1dari 24

Modul 2 Pemrograman Visual Delphi

Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 1

PERTEMUAN – 1
MERANCANG SISTEM INFORMASI PERPUSTAKAAN (SIP)

SUB MATERI :
1. Buat Akun
2. Login
3. Merancang Menu
4. Ubah Password

LANGKAH-LANGKAH
1. Buka Delphi dari RUN ADMINISTRATOR
a. Save All
b. Simpan Unit1 dengan nama ULogin
c. Simpan Project1 dengan nama SIP

2. Buat database SIP dengan menggunakan MySql


3. dari Database SIP, Buat tabel LOGIN, dengan field :
Field Type Size Keterangan
UserName Char 10 Primary Key
Password Char 10
Nama Char 20
Alamat Char 30
Photo Blob

4. Tambahkan Data Module (File  New  Data Module), ubah


Property Value
Name dm

Simpan (Save All) dengan nama UDM

5. Tambahkan komponen komponen berikut di DM


a. MyConnection (dari Tab MyDAC) untuk koneksi database
Property Value
Server LocalHost
User Name root
Database SIP
Connected true
Login Prompt false
Name SIP
b. MyTable (dari Tab MyDAC) untuk koneksi tabel
Property Value
Connection SIP
Table Name Login
Active True
Name TLogin
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 2

c. MyDataSource1 (dari Tab MyDAC) untuk menghubungkan tabel dengan


komponen lain dari Tab Data Controls
Property Value
Name DSLogin
DataSet TLogin

6. Panggil Form1, ubah :


Property Value
Name Flogin
Caption Login

Disain dengan menggunakan komponen berikut :


a. Edit1 untuk User Name
b. Edit2 untuk Password
c. DBImage1 (Tab Data Controls), ubah :
Property Value
Data Source DsLogin
Data Field Photo
Stretch True
Visible False

d. Button1 untuk tombol [LOGIN] untuk masuk ke Menu SIP


e. Button2 untuk tombol [BUAT AKUN] untuk memanggil Form Buat Akun

Coding:
Perhatian : Salin huruf yang tidak tebal.

// Tombol[LOGIN]
procedure TFLogin.Button1Click(Sender: TObject);
var
un,pass : string;
begin
un:= edit1.Text;
pass:=edit2.Text;
if (dm.tlogin.findkey([un])) then
begin
if pass = (dm.tlogin.fieldbyname('password').asstring) then
begin
fmenu.show;
FLogin.Hide;
end else
showmessage('Password Salah....');
end else
showmessage('User Name salah...');

end;
end.
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 3

// Tombol[BUAT AKUN]
procedure TFLogin.Button2Click(Sender: TObject);
begin
FAkun.show;
end;
end.

7. Tambahkan Form baru (form2), ubah


Property Value
Name Fakun
Caption Buat Akun

Simpan unit (Save All) dengan nama UAkun

Buat desain Form Buat Akun, Komponen yang digunakan :


a. Image1 (tab Additional), ubah Property Stretch = True
b. Button1 untuk tombol [CARI PHOTO]
c. Edit1 untuk Nama
d. Edit2 untuk Alamat
e. dbImage1 (dari Tab Data Controls), ubah :
Property Value
Data Source DsLogin
Data Field Photo
Stretch True
Visible False

f. OpenPictureDialog1 (dari Tab Dialogs)


g. Edit3 untuk User Name
h. Edit4 untuk Password
i. Button2 untuk tombol [VALIDASI]
Jika user name yang dimasukan sudah ada, maka tampil pesan “User Name sudah
ada.....”
Jika belum ada, tombol [VALIDASI] berubah menjadi tombol [SIMPAN]. Tombol
[SIMPAN] untuk menampilkan pesan “Apakah Akun akan di simpan YES/NO? “,
jika Tombol [YES] di klik maka menyimpan akun di tabel LOGIN, jika NO maka
kembali ke formulir isian akun. Setelah di simpan, tombol [SIMPAN] berubah
kembali menjadi tombol [VALIDASI]

Hasil Rancangan
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 4

Coding:
Perhatian : Salin huruf yang tidak tebal.

// Tombol[VALIDASI]
procedure TFAkun.Button2Click(Sender: TObject);
begin
if button2.Caption = 'VALIDASI' then
begin
if dm.tlogin.FindKey([edit3.Text]) then
showmessage('User Name sudah ada yang menggunakan...')
else
button2.Caption:= 'SIMPAN';
end else
begin
if Application.MessageBox('Anda Yakin Ingin menyimpan Akun??',
'Pertanyaan',MB_ICONQUESTION+MB_YESNO)=IDYES then
begin
dm.tlogin.insert;
dm.tlogin.fieldbyname('Nama').asstring:= edit1.Text;
dm.tlogin.fieldbyname('Alamat').asstring:= edit2.Text;
dm.tlogin.fieldbyname('UserName').AsString:= edit3.Text;
dm.tlogin.fieldbyname('Password').asstring:= edit4.Text;
dbimage1.Picture:= image1.Picture;
dm.tlogin.post;
showmessage('Data sudah tersimpan...');
button2.Caption := 'VALIDASI' ;
end;
end;

end;
end.

// Tombol[CARI PHOTO]
procedure TFAkun.Button1Click(Sender: TObject);
begin
if openpictureDialog1.Execute then
image1.Picture.LoadFromFile(openpictureDialog1.FileName);
end;
end.

8. Tambahkan Form baru (form3), ubah


Property Value
Name Fpass
Caption Ubah Password

Simpan (Save All) dengan nama UPass

Buat desain Form Ubah Password, Komponen yang digunakan :


a. Edit1 untuk Masukan password baru
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 5

b. Button1 untuk tombol [SIMPAN]

Keterangan:
Tombol [SIMPAN] digunakan untuk menyimpan password baru

9. Tambahkan Form baru (Form4), ubah


Property Value
Name FMenu
Caption SISTEM INFORMASI PERPUSTAKAAN
Simpan (Save All) dengan nama UMenu

Buat desain menu, sbb :


Input Tool
Data Anggota Ubah Password
Data Buku
Data Pinjam
Data Kembali
__________
Keluar
Cara :
1. Ambil komponen MainMenu (Dari Tab Standar)
2. Klik 2x MainMenu
3. Isi property Caption dengan Input  Enter
4. Klik pada kotak sebelah kanan Input, isi property Caption dengan Tool  Enter

5. Klik Input  Klik kotak bagian bawahnya  isi :


Property Value
Caption Data &Anggota  Enter
Caption Data &Buku  Enter
Caption Data &Pinjam  Enter
Caption Data &Kembali  Enter
Caption - (Tanda minus)  Enter
Caption K&eluar

6. Klik Tool  Klik kotak bagian bawahnya  isi :


Property Value
Caption &Ubah Password  Enter
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 6

Keterangan :
Input Data Anggota untuk memanggil Form Input Data Anggota
Input Data Buku untuk memanggil Form Input Data Buku
Input Data Pinjam untuk memanggil Form Input Data Pinjam Buku
Input Data Kembali untuk memanggil Form Input Data Pengembalian Buku
Ubah Password untuk memanggil Form Ubah Password

10. Tambahkan Form baru, ubah :


Property Value
Name FAnggota
Caption Form Anggota

Simpan (Save All) dengan nama UAnggota

11. Tambahkan Form baru, ubah :


Property Value
Name FBuku
Caption Form Buku

Simpan (Save All) dengan nama UBuku

12. Tambahkan Form baru, ubah :


Property Value
Name FPinjam
Caption Form Pinjam

Simpan (Save All) dengan nama UPinjam

13. Tambahkan Form baru, ubah :


Property Value
Name FKembali
Caption Form Kembali

Simpan (Save All) dengan nama UKembali


Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 7

14. Coding:
Perhatian : Salin perintah yang berwarna hitam saja.

// Klik Menu Input Data Anggota


procedure TFMenu.DataAnggota1Click(Sender: TObject);
begin
FAnggota.show;
end;
end.

// Klik Menu Input Data Buku


procedure TFMenu.DataBuku1Click(Sender: TObject);
begin
FBuku.show;
end;
end.

// Klik Menu Input Data Pinjam


procedure TFMenu.DataPinjam1Click(Sender: TObject);
begin
FPinjam.show;
end;
end.

// Klik Menu Input Data Kembali


procedure TFMenu.DataKembali1Click(Sender: TObject);
begin
FKembali.show;
end;
end.

// Klik Menu Input Keluar


procedure TFMenu.DataKeluar1Click(Sender: TObject);
begin
Application.terminate;
end;
end.

// Klik Menu Tool Ubah Password


procedure TFMenu.UbahPassword1Click(Sender: TObject);
begin
FPass.show;
end;
end.

15. Panggil Fmenu


 Tambahkan Komponen StatusBar (Tab Win32), ubah :
Property Value
Panels klik [...]
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 8

Klik 3x

Klik 1 – TStatusPanel, ubah :


Property Value
Width 150 (enter)

 Tambahkan Komponen Timer (Tab System)

Coding:
Perhatian : Salin perintah yang berwarna hitam saja.

// Klik FMenu, pilih Event OnCreate (dari Tab Event – Object Inspector)
procedure TFMenu.FormCreate(Sender: TObject);
begin
statusbar1.Panels[1].Text:= formatdatetime('dd mmmm yyyy',date);
end;
end.

// Klik FMenu, pilih Event OnActivate (dari Tab Event – Object Inspector)
procedure TFMenu.FormActivate(Sender: TObject);
begin
statusbar1.Panels[2].Text:= Flogin.Edit1.Text ;
end;
end.

// Klik 2x Timer
procedure TFMenu.Timer1Timer(Sender: TObject);
begin
statusbar1.Panels[0].Text:= timetostr(time);
end;
end.

16. Panggil FPass


Coding:
Perhatian : Salin perintah yang berwarna hitam saja.

// Klik 2x Tombol[SIMPAN]
procedure TFPass.Button1Click(Sender: TObject);
begin
if Application.MessageBox('Anda Yakin Ingin merubah Password??',
'Pertanyaan',MB_ICONQUESTION+MB_YESNO)=IDYES then
begin
dm.tlogin.findKey([FLogin.Edit1.Text]);
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 9

dm.tlogin.Edit;
dm.tlogin.fieldbyname('Password').asstring:= edit1.Text;
dm.tlogin.post;
showmessage('Data sudah diubah...');
end;
end;
end.

17. Selesai
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 10

PERTEMUAN – 2
MERANCANG INPUT ANGGOTA

Langkah-Langkah :
1. Membuat Tabel Anggota (pada DB SIP)
Field Type Size Keterangan
noang Char 10 Primary Key
Nama Char 20
Photo Blob

2. Panggil Fanggota,
a. Buat disain Form Anggota, sertakan komponen komponen berikut :
 MyTable (dari Tab MyDac) untuk Data Module (dm), ubah :
Property Value
Connection SIP
Table Name Anggota
Active True
Name Tanggota

 MyDataSource (dari Tab MyDac) untuk Data Module (dm), ubah :


Property Value
Name DSAnggota
DataSet TAnggota

 OpenPictureDialog1 (tab dialog) untuk Data Module (dm)


 Nomor Anggota terakhir untuk Edit1
 Tombol[Buat Nomor Baru]
 Tombol[Batal]
 Nomor Anggota Baru untuk Edit2
 Nama Anggota untuk Edit3
 Photo untuk DBImage1, ubah :
Property Value
Data Source dm.DsAnggota
Data Field Photo
Stretch True
Visible False

 Tombol[Cari Photo]
 Tombol[Simpan]
 DBGrid1 (dari Tab Data Controls), ubah :
Property Value
Data Source dm.DsAnggota

 PopUpMenu (dari Tab Standar), Klik 2x, ubah :


Property Value
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 11

Caption Ubah Data Anggota (enter)


Caption Hapus Data Anggota (enter)
Caption Cari Data Anggota

 Aktifkan Form Anggota (klik form anggota), ubah :


Property Value
PopUpMenu PopUpMenu1

 Hasil disain di atas, menghasilkan gambar :

b. Coding :
Catatan : Salin perintah yang berwarna hitam saja

//Klik 2x Tombol[Buat Nomor Baru]


procedure TFAnggota.Button3Click(Sender: TObject);
var nobaru: byte;
begin
nobaru:= 0;
if dm.tanggota.isEmpty then
begin
Edit2.Text:= '1';
dm.tanggota.Insert;
end else
begin
dm.tanggota.last;
edit1.Text:= dm.tanggota.fieldbyname('noang').asstring;
nobaru:= strtoint(edit1.Text);
nobaru:= nobaru+1;
edit2.Text:= inttostr(nobaru);
dm.tanggota.Insert;
end;
end;
end.
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 12

//Klik 2x Tombol[Batal]
procedure TFAnggota.Button4Click(Sender: TObject);
begin
dm.tanggota.Cancel;
end;
end.

//Klik 2x Tombol[Cari Photo]


procedure TFAnggota.Button1Click(Sender: TObject);
begin
if dm.openpicturedialog1.Execute then
dbimage1.Picture.LoadFromFile(dm.openpicturedialog1.FileName);
end;
end.

//Klik 2x Tombol[Simpan]
procedure TFAnggota.Button2Click(Sender: TObject);
begin
if Application.MessageBox('Anda Yakin Ingin menyimpan Data Anggota??',
'Pertanyaan',MB_ICONQUESTION+MB_YESNO)=IDYES then
begin
if dm.tanggota.State in [dsinsert] then
begin
dm.tanggota.fieldbyname('Noang').asstring:= edit2.Text;
dm.tanggota.fieldbyname('Nama').asstring:= edit3.Text;
dm.tanggota.post;
showmessage('Data sudah tersimpan...');
end else
begin
dm.tanggota.fieldbyname('Nama').asstring:= edit3.Text;
dm.tanggota.post;
showmessage('Data sudah tersimpan...');
end;
end;
end;
end.

//Klik 2x Menu PopUP Ubah Data Anggota


procedure TFAnggota.UbahDataAnggota1Click(Sender: TObject);
var input: string;
begin
input:= inputbox('Input','Masukan nomor anggota ','');
if input <>'' then
begin
if dm.tanggota.FindKey([input])then
begin
edit2.Text:= dm.tanggota.fieldbyname('noang').AsString;
edit3.Text:= dm.tanggota.fieldbyname('nama').AsString;
edit3.SetFocus;
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 13

dm.tanggota.Edit;
end else
showmessage('Nomor Anggota tidak ada....');
end;
end;
end.

//Klik 2x Menu PopUP Hapus Data Anggota


procedure TFAnggota.HapusDataAnggota1Click(Sender: TObject);
var input: string;
begin
input:= inputbox('Hapus','Masukan nomor anggota ','');
if input <>'' then
begin
if not dm.tanggota.FindKey([input])then
begin
showmessage('Nomor Anggota ini tidak ada....');
end else
begin
if Application.MessageBox('Anda Yakin Ingin menghapus data ini?',
'Pertanyaan',MB_ICONQUESTION+MB_YESNO)=IDYES then
begin
dm.tanggota.Delete;
showmessage('Data telah di hapus....');
end;
end;
end;
end;
end.

//Klik 2x Menu PopUP Hapus Data Anggota


procedure TFAnggota.CariDataAnggota1Click(Sender: TObject);
var input: string;
begin
input:= inputbox('Cari','Masukan nomor anggota ','');
if input <>'' then
begin
if not dm.tanggota.FindKey([input])then
showmessage('Nomor Anggota ini tidak ada....')
else
begin
edit2.Text:= dm.tanggota.fieldbyname('noang').AsString;
edit3.Text:= dm.tanggota.fieldbyname('nama').AsString;
end;
end;
end;
end.
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 14

PERTEMUAN – 3
MERANCANG INPUT BUKU

Langkah-Langkah :
1. Buat Tabel Buku (dari DB SIP)
Field Type Size Keterangan
kdbuku Char 10 Primary Key
Judul Char 25
Kategori Char 15
Stok SmallInt

2. Buat rancangan dan berikut Coding nya agar user dapat menambahkan, mengubah,
menghapus, dan mencari data buku. Referensi bisa dilihat dari praktik yang sudah ada.
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 15

PERTEMUAN – 4
MERANCANG ANGGOTA MEMINJAM BUKU

Aturan Anggota meminjam buku pada aplikasi ini, adalah :


1. Anggota sudah terdaftar
2. Buku sudah terdaftar
3. Satu faktur untuk 1 = N buku yang dipinjam
4. Nomor pinjam berbeda untuk setiap kali peminjaman
5. Anggota boleh pinjam buku lebih dari satu dengan judul yang berbeda
6. Buku dengan judul yang sama tidak boleh dipinjam lebih dari satu

Langkah-Langkah :
1. Buat Tabel Pinjam (dari DB SIP)
Field Type Size Keterangan
nopinjam Char 10 Primary Key
Faktur Char 5
noang Char 10
kdbuku Char 10
TglPinjam Date
TglKembali Date
JmlPinjam SmallInt

2. Buat Tabel CPinjam (dari DB SIP)


Field Type Size Keterangan
nopinjam Char 10 Primary Key
Faktur Char 5
noang Char 10
kdbuku Char 10
TglPinjam Date
TglKembali Date
JmlPinjam SmallInt

3. Panggil Fpinjam
a. Sertakan komponen komponen berikut :
 MyTable (dari Tab MyDac) untuk Data Module (dm), ubah :
Property Value
Connection SIP
Table Name Pinjam
Active True
Name TPinjam

 MyTable (dari Tab MyDac) untuk Data Module (dm), ubah :


Property Value
Connection SIP
Table Name CPinjam
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 16

Active True
Name TCPinjam

 MyDataSource (dari Tab MyDac) untuk Data Module (dm), ubah :


Property Value
Name DSCpinjam
DataSet TCPinjam

 Disain form pinjam seperti gambar berikut ini :

UpDown (tab win32), ubah :


Property Value
Associate Edit7
Position 1
Min 1
Max 1

DBGrid, ubah :
Property Value
DataSource DsCPinjam

b. Coding :

//Klik 2x Tombol[Buat Faktur]


procedure TFPinjam.Button1Click(Sender: TObject);
var nobaru: byte;
begin
nobaru:= 0;
nopinjam:= 0;
if dm.tpinjam.isEmpty then
begin
Edit1.Text:= '1';
edit2.SetFocus;
end else
begin
dm.tpinjam.last;
nobaru:= strtoint(dm.tpinjam.fieldbyname('faktur').asstring);
nopinjam:= strtoint(dm.tpinjam.fieldbyname('nopinjam').asstring);
nobaru:= nobaru+1;
edit1.Text:= inttostr(nobaru);
edit2.SetFocus;
end;
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 17

end;
end.

//Klik 2x Tombol[Simpan]
procedure TFPinjam.Button2Click(Sender: TObject);
begin
if Application.MessageBox('Anda Yakin Ingin menyimpan data ini?',
'Pertanyaan',MB_ICONQUESTION+MB_YESNO)=IDYES then
begin
nopinjam:= nopinjam+1;
with dm do
begin
tCpinjam.Insert;
tCpinjam.fieldbyname('nopinjam').AsString:= inttostr(nopinjam);
tCpinjam.fieldbyname('faktur').AsString:= edit1.text;
tCpinjam.fieldbyname('noang').AsString:= edit2.text;
tCpinjam.fieldbyname('kdbuku').AsString:= edit4.text;
tCpinjam.fieldbyname('tglpinjam').AsDateTime:= Date;
tCpinjam.fieldbyname('jmlpinjam').AsInteger:= updown1.position;
tcpinjam.Post;
end;
end;
end;
end.

//Klik 2x Tombol[Pinjam]
procedure TFPinjam.Button3Click(Sender: TObject);
begin
//Transfer Isi tabel Cpinjam ke Tabel Pinjam
dm.tCpinjam.First;
while not dm.tCpinjam.Eof do
begin
dm.tpinjam.Insert;
dm.tpinjam.FieldByName('nopinjam').AsString:=
dm.tCpinjam.FieldByName('nopinjam').AsString ;
dm.tpinjam.FieldByName('faktur').AsString:=
dm.tCpinjam.FieldByName('faktur').AsString ;
dm.tpinjam.FieldByName('noang').AsString:=
dm.tCpinjam.FieldByName('noang').AsString ;
dm.tpinjam.FieldByName('kdbuku').AsString:=
dm.tCpinjam.FieldByName('kdbuku').AsString ;
dm.tpinjam.FieldByName('tglpinjam').AsDateTime:=
dm.tCpinjam.FieldByName('tglpinjam').AsDateTime ;
dm.tpinjam.FieldByName('jmlpinjam').AsInteger:=
dm.tCpinjam.FieldByName('jmlpinjam').AsInteger ;
dm.tpinjam.post;
dm.tCpinjam.Next;
end;
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 18

//mengurangi jumlah stok buku


dm.tCpinjam.First;
while not dm.tCpinjam.Eof do
begin
dm.tbuku.FindKey([dm.tCpinjam.FieldByName('kdbuku').AsString]);
dm.tbuku.Edit;
dm.tbuku.FieldByName('stok').AsInteger:=
dm.tbuku.FieldByName('stok').AsInteger -
dm.tCpinjam.FieldByName('jmlpinjam').AsInteger ;
dm.tbuku.post;
dm.tCpinjam.Next;
end;

//kosongkan tabel Cpinjam


dm.tCpinjam.Close;
dm.tCpinjam.EmptyTable;
dm.tCpinjam.Active:=true;
dm.tCpinjam.Refresh;
end;
end.

//Pilih Edit2, pilih Event OnKeyPress (dari Tab Event)


procedure TFPinjam.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(13) then
begin
if dm.tanggota.FindKey([edit2.Text])then
begin
edit3.Text:= dm.tanggota.fieldbyname('nama').AsString;
edit4.SetFocus;
end else
showmessage('Nomor anggota tidak ada...');
end;
end;
end.

//Pilih Edit4, pilih Event OnKeyPress (dari Tab Event)


procedure TFPinjam.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(13) then
begin
if dm.tbuku.FindKey([edit4.Text])then
begin
edit5.Text:= dm.tbuku.fieldbyname('judul').AsString;
edit6.Text:= inttostr(dm.tbuku.fieldbyname('stok').AsInteger);
end else
showmessage(‘Kode buku tidak ada...');
end;
end;
end.
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 19

c. Mengubah Tampilan DBGrid dan Membuat Field Look UP


 Merubah Tampilan DBGrid
Pada DBGrid Copy Pinjam field tidak seharusnya ditampilkan seluruhnya,
melainkan harus disesuaikan dengan kebutuhan field untuk pinjam buku, seperti :
Kode Buku, Judul dan Jumlah Pinjam. Maka hal ini harus dirubah dengan cara :

Klik 2x DBGrid  pada Kotak, Klik kanan dan pilih Add All Fields  pilih dan
Delete Field yang tidak di perlukan, yaitu : nopinjam, faktur, noang, tglpinjam,
tglkembali.

Sehingga seperti nampak pada gambar berikut :

 Membuat Field Look UP


Pada Tabel CPinjam tidak memuat field Judul Buku, yang memuat judul buku
adanya di Tabel Buku, sehingga bila untuk menampilkan Judul Buku pada Tabel
CPinjam, maka harus di relasikan antara Tabel CPinjam dengan Tabel Buku
berdasarkan KdBuku.

Untuk mendapatkan hasil tersebut, maka harus membuat field LookUp, yaitu dengan
cara :

Panggil dm  klik 2x TCpinjam, Pada kotak klik kanan, pilih Add All Fields 
Pada kotak klik kanan, pilih New Field

Pada [Field Properties], Isi :


Name = Judul
Type = String
Size = 25

Pada [Field Type], pilih LookUp

Pada [LookUp Definition], isi :


Key Field = kdbuku
Dataset = tbuku
LookUp Key = kdbuku
Result Field = Judul

Klik Tombol[OK]

Sehingga nampak seperti gambar berikut :


Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 20

Menambahkan Field Judul pada DBGrid Cpinjam, dengan cara :

Klik 2x DBGrid Cpinjam  Tambahkan Field baru dari tombol [Add New (ins)],
ubah :
Property Value
Field Name Judul

Atur Field Judul agar di bawah KdBuku dengan cara di drag pindahkan di bawah
KdBuku.

Seperti pada gambar berikut :

Tombol[Add New]

DBGrid CPinjam

d. Aturan Pakai :
1. Buat Faktur
2. Isi No Anggota <enter>
3. Isi Kode Buku <enter>
4. Klik [Simpan]
5. Kembali ke Isi Kode Buku, jika pinjam buku lebih dari 1
6. Klik [Pinjam], jika selesai pinjam dan Yakin akan di simpan
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 21

PERTEMUAN – 5
MERANCANG FORM ANGGOTA MENGEMBALIKAN BUKU

Aturan Anggota meminjam buku pada aplikasi ini, adalah :

Langkah Langkah :
1. Buat Form baru, Ubah :
Property Value
Name FtglKembali
Caption Kembali

Desain seperti nampak pada gambar berikut :

DateTimePicker
(Tab Win32)

Save All, Simpan dengan nama unit : UTglKembali

Coding :

//Klik 2x Tombol[Simpan]
procedure TFTglKembali.Button1Click(Sender: TObject);
begin
//simpan tanggal kembali
dm.tpinjam.Post;

//kembalikan buku yang dipinjam ke stok buku


dm.tbuku.FindKey([dm.tpinjam.FieldByName('kdbuku').AsString]);
dm.tbuku.Edit;
dm.tbuku.FieldByName('stok').AsInteger:=
dm.tbuku.FieldByName('stok').AsInteger +
dm.tpinjam.FieldByName('jmlpinjam').AsInteger;
dm.tbuku.Post;
end;
end.

2. Panggil FKembali
a. Sertakan komponen komponen berikut :
 MyDataSource (dari Tab MyDac) untuk Data Module (dm), ubah :
Property Value
Name DSpinjam
DataSet Tpinjam

b. Disain form seperti pada gambar berikut ini


Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 22

DBGrid, ubah :
Property Value
DataSource DsPinjam

c. Coding :

//Klik 2x Tombol[Panggil]
procedure TFKembali.Button1Click(Sender: TObject);
begin
dm.TPinjam.Filter:= 'faktur='+quotedstr(edit1.Text);
dm.tpinjam.Filtered:= true;
end;
end.

//Aktifkan (klik) DBGrid, pada Tab Event pilih Event OnDrawColumnCell


procedure TFKembali.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (gdFocused in State) then
begin
if (Column.Field.FieldName = 'tglkembali') then
fTglKembali.show;
end;
end;
end.

//Aktifkan (klik) DBGrid, pada Tab Event pilih Event OnColExit


procedure TFKembali.DBGrid1ColExit(Sender: TObject);
begin
if DBGrid1.SelectedField.FieldName = 'tglkembali' then
FTglKembali.Hide;
end;
end.

//Aktifkan (klik) FKembali, pada Tab Event pilih Event OnClose


procedure TFKembali.FormClose(Sender: TObject; var Action: TCloseAction);
begin
dm.tpinjam.Filtered:= false;
end;
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 23

end.

d. Membuat Field Kalkulasi


 Panggil dm  klik 2x Tabel Tpinjam  Pada kotak klik kanan, pilih Add All Fields
 Pada kotak klik kanan, pilih New Field

Pada [Field Properties], Isi :


Name = jmlHari
Type = SmallInt

Pada [Field Type], pilih Calculated

Klik Tombol[OK]

 Dari hasil di atas akan mendapatkan hasil :

 Dengan cara yang sama,buat Field = Denda, Type = Float

e. Coding :
Untuk Field Kalkulasi

//Klik tPinjam, Pada Tab Event pilih Event OnCalcField


procedure Tdm.tpinjamCalcFields(DataSet: TDataSet);
begin
//Mengisi field JmlHari
dm.tpinjamJmlHari.AsInteger:= dm.tpinjamTglKembali.AsVariant -
dm.tpinjamTglPinjam.AsVariant ;

//Mengisi Field Denda


if dm.tpinjamJmlHari.AsInteger > 3 then
dm.tpinjamDenda.AsFloat:=
dm.tpinjamJmlHari.AsInteger * 500
else
dm.tpinjamDenda.AsInteger:= 0;
end;
end.

f. Aturan Pakai :
1. Isi Nomor Faktur
2. Klik Tombol [Panggil], untuk memfilter berdasarkan Faktur
Modul 2 Pemrograman Visual Delphi
Oleh : Suherman Tidak dijual untuk umum hanya berlaku untuk mahasiswa 24

3. Klik pada Cell Tanggal Kembali


4. Isi Tanggal Kembali
5. Klik Tombol [Simpan]
6. Untuk menghilangkan Form Kembali, Klik pada Cell secara sembarang

Anda mungkin juga menyukai