Anda di halaman 1dari 13

MODUL 5

IMPLEMENTASI DATABASE MYSQL PADA DELPHI DENGAN ZTABLE

1. Tujuan
Mampu mengimplementasikan database MySQL dengan delphi menggunakan ZTable

2. Teori Dasar
Untuk menghubungkan database yang telah dibuat dengan suatu program,
dibutuhkan suatu alat penghubung (connector). Pada delphi terdapat berbagai macam
connector yang dapat digunakan, tergantung dari DBMS apa yang kita gunakan. Jika kita
menggunakan database MySQL, maka kita harus menambahkan komponen (menginstal)
connector Zeos DBO dalam aplikasi delphi kita. Zeos DBO tidak hanya dapat digunakan oleh
MySQL, namun dapat digunakan oleh DBMS lainnya, seperti PostgreSQL, Interbase,
Firebird, MS SQL, Sybase, Oracle dan SQLite untuk Delphi, FreePascal/Lazarus, Kylix dan
C++ Builder.

Zeos menyediakan Komponen-komponen yang hampir sama dengan ADO antara lain :
 ZConnection
Merupakan komponen yang menghubungkan antara datashet dengan database secara
fisik. Properti penting yang digunakan dalam ZConnection diantaranya Database,
Connected, HostName, Protocol, Port, User dan Login prompt.
 ZTable
Digunakan sebagai datashet sama seperti komponen tabel BDE. Properti penting
yang digunakan pada ZTable diantaranya Connection, TableName dan Active.
 ZQuery
Digunakan sebagai datashet sama seperti komponen query BDE. Properti penting
yang digunakan pada ZQuery diantaranya Connection, SQL dan Active.
 ZStorProc (Store Procedure)
Digunakan sebagai datashet untuk mengakses store procedure. Properti penting yang
digunakan pada ZStorProc diantaranya Connection, Parameters, ProcedureName dan
Active.

3. Percobaan
Buatlah program input data anggota perpustakaan menggunakan ZTable dengan
database sebagai berikut :
Nama Database : Perpustakaan
Nama Tabel : Anggota
Field Type Length/Values Index
Nama Varchar 25 PRIMARY
No_Stambuk Varchar 12 -
JK Varchar 10 -
Alamat Varchar 30 -
Fakultas Varchar 50 -
Prodi Varchar 30 -

4. Langkah Kerja
a. Tambahkan komponen Label (8 buah), Edit(5 buah), RadioButton(2 buah),
OpenPictureDialog(1 buah), Image(1 buah), BitBtn(6 buah), DbGrid(1 buah),
ZConnection(1 buah), ZTable(1 buah) dan DataSource(1 buah) dan letakan
komponen-komponennya hingga terlihat seperti gambar berikut :
b. Aturlah properti dari masing-masing komponen sesuai dengan tabel berikut :
Komponen Properti Nilai
Form 1 Name frmAnggota
Caption ::. Input Data Anggota
Perpustakaan
Label 1 Caption INPUT DATA ANGGOTA
PERPUSTAKAAN
Font->Name Tahoma
Font->Size 14
Font->Style [fsBold]
Label 2 Caption Nama
Label 3 Caption No. stambuk
Label 4 Caption Jenis Kelamin
Label 5 Caption Alamat
Label 6 Caption Fakultas
Label 7 Caption Program Studi
Label 8 Caption Foto
Edit1 Text
Edit2 Text
Edit3 Text
Edit4 Text
Edit5 Text
RadioButton1 Caption Pria
Checked False
RadioButton2 Caption Wanita
Checked False
BitBtn1 Caption &Tambah
Glyph Gambar
BitBtn2 Caption &Ubah
Glyph Gambar
BitBtn3 Caption &Simpan
Glyph Gambar
BitBtn4 Caption &Hapus
Glyph Gambar
BitBtn5 Caption &Keluar
Glyph Gambar
BitBtn6 Caption &Cari
Glyph Gambar
ZConnection1 Connected True
Database perpustakaan
Hostname localhost
Protocol mysql-5
User root
ZTable1 Active True
Connection ZConnection1
TableName anggota
DataSource1 Datashet ZTable1
DBGrid1 DataSource DataSource1

c. Klik frmAnggota-> pilih tab Events->double klik pada OnCreate, lalu ketikan kode
berikut :
procedure TfrmAnggota.FormCreate(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
radiobutton1.Checked:=false;
radiobutton2.Checked:=false;
edit1.Enabled:=false;
edit2.Enabled:=false;
edit3.Enabled:=false;
edit4.Enabled:=false;
edit5.Enabled:=false;
image1.Picture:=nil;
radiobutton1.Enabled:=false;
radiobutton2.Enabled:=false;
bitbtn1.Enabled:=true;
bitbtn2.Enabled:=false;
bitbtn3.Enabled:=false;
bitbtn4.Enabled:=false;
bitbtn6.Enabled:=false;
bitbtn5.Caption:='&Keluar';
if DirectoryExists('D:\Foto') then
begin
end
else
ForceDirectories('D:\Foto');
end;

d. Double Click BitBtn1 (Button Tambah), lalu ketikan kode berikut :


procedure TfrmAnggota.BitBtn1Click(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
edit1.Enabled:=true;
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
edit5.Enabled:=true;
image1.Picture:=nil;
radiobutton1.Enabled:=true;
radiobutton2.Enabled:=true;
bitbtn1.Enabled:=true;
bitbtn2.Enabled:=false;
bitbtn3.Enabled:=true;
bitbtn4.Enabled:=false;
bitbtn6.Enabled:=true;
bitbtn5.Caption:='&Batal';
edit1.SetFocus;
end;
e. Double Click BitBtn2 (Button Ubah), lalu ketikan kode berikut :
procedure TfrmAnggota.BitBtn2Click(Sender: TObject);
begin
if edit1.Text='' then
begin
messagedlg('Nama masih kosong',mtinformation,[mbok],0);
edit1.SetFocus;
end
else if edit2.Text='' then
begin
messagedlg('Nomor stambuk masih kosong',mtinformation,
[mbok],0);
edit2.SetFocus;
end
else if edit3.Text='' then
begin
messagedlg('Alamat masih kosong',mtinformation,[mbok],0);
edit3.SetFocus;
end
else if edit4.Text='' then
begin
messagedlg('Fakultas masih kosong',mtinformation,
[mbok],0);
edit4.SetFocus;
end
else if edit5.Text='' then
begin
messagedlg('Program studi masih kosong',mtinformation,
[mbok],0);
edit5.SetFocus;
end
else if (radiobutton1.Checked=false) and
(radiobutton2.Checked=false) then
begin
messagedlg('Jenis kelamin belum dipilih',mtinformation,
[mbok],0);
radiobutton1.SetFocus;
end
else
begin
ztable1.Edit;
ztable1.FieldByName('Nama').AsString:=edit1.Text;
ztable1.FieldByName('No_Stambuk').AsString:=edit2.Text;
ztable1.FieldByName('Alamat').AsString:=edit3.Text;
ztable1.FieldByName('Fakultas').AsString:=edit4.Text;
ztable1.FieldByName('Prodi').AsString:=edit5.Text;
if radiobutton1.Checked=true then
begin
ztable1.FieldByName('JK').AsString:='Pria';
end
else
begin
ztable1.FieldByName('JK').AsString:='Wanita';
end;
ztable1.Post;
messagedlg('Data berhasil diubah',mtinformation,[mbok]
,0);

image1.Picture.SaveToFile('D:\Foto'+edit2.Text+'.jpeg');
formcreate(sender);
end;
end;
f. Double Click BitBtn3 (Button Simpan), lalu ketikan kode berikut :
procedure TfrmAnggota.BitBtn3Click(Sender: TObject);
begin
if edit1.Text='' then
begin
messagedlg('Nama masih kosong',mtinformation,[mbok],0);
edit1.SetFocus;
end
else if edit2.Text='' then
begin
messagedlg('Nomor stambuk masih kosong',mtinformation,
[mbok],0);
edit2.SetFocus;
end
else if edit3.Text='' then
begin
messagedlg('Alamat masih kosong',mtinformation,[mbok],0);
edit3.SetFocus;
end
else if edit4.Text='' then
begin
messagedlg('Fakultas masih kosong',mtinformation,
[mbok],0);
edit4.SetFocus;
end
else if edit5.Text='' then
begin
messagedlg('Program studi masih kosong',mtinformation,
[mbok],0);
edit5.SetFocus;
end
else if (radiobutton1.Checked=false) and
(radiobutton2.Checked=false) then
begin
messagedlg('Jenis Kelamin belum terpilih',mtinformation,
[mbok],0);
radiobutton1.SetFocus;
end
else
begin
ztable1.Append;
ztable1.FieldByName('Nama').AsString:=edit1.Text;
ztable1.FieldByName('No_Stambuk').AsString:=edit2.Text;
ztable1.FieldByName('Alamat').AsString:=edit3.Text;
ztable1.FieldByName('Fakultas').AsString:=edit4.Text;
ztable1.FieldByName('Prodi').AsString:=edit5.Text;
if radiobutton1.Checked=true then
begin
ztable1.FieldByName('JK').AsString:='Pria';
end
else
begin
ztable1.FieldByName('JK').AsString:='Wanita';
end;
ztable1.Post;
messagedlg('Data berhasil tersimpan',mtinformation,
[mbok],0);

image1.Picture.SaveToFile('D:\Foto'+edit2.Text+'.jpeg');
formcreate(sender);
end;
end;
g. Double Click BitBtn4 (Button Hapus), lalu ketikan kode berikut :
procedure TfrmAnggota.BitBtn4Click(Sender: TObject);
begin
if(ztable1.RecordCount=0)then
begin
messagedlg('Data masih kosong',mtinformation,[mbOK],0);
end
else
if messagedlg('Apakah Anda yakin ingin menghapus data
ini?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
ztable1.Delete;
formcreate(sender);
end;
end;

h. Double Click BitBtn5 (Button Keluar), lalu ketikan kode berikut :


procedure TfrmAnggota.BitBtn5Click(Sender: TObject);
begin
if bitbtn5.Caption='&Keluar' then
begin
application.Terminate;
end
else
formcreate(sender);
end;

i. Double Click BitBtn6 (Button Cari), lalu ketikan kode berikut :


procedure TfrmAnggota.BitBtn6Click(Sender: TObject);
begin
if openpicturedialog1.Execute then
begin
image1.Picture.LoadFromFile(openpicturedialog1.FileName);
end;
end;

j. Klik DbGrid1-> pilih tab Events->double klik pada onDblClick, lalu ketikan kode
berikut :
procedure TfrmAnggota.DBGrid1DblClick(Sender: TObject);
begin
if dbgrid1.Fields[2].Text='Pria' then
begin
radiobutton1.Checked:=true;
end
else
begin
radiobutton2.Checked:=true;
end;
edit1.Text:=dbgrid1.Fields[0].AsString;
edit2.Text:=dbgrid1.Fields[1].AsString;
edit3.Text:=dbgrid1.Fields[3].AsString;
edit4.Text:=dbgrid1.Fields[4].AsString;
edit5.Text:=dbgrid1.Fields[5].AsString;
bitbtn1.Enabled:=false;
bitbtn2.Enabled:=true;
bitbtn3.Enabled:=false;
bitbtn4.Enabled:=true;
edit1.Enabled:=true;
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
edit5.Enabled:=true;
radiobutton1.Enabled:=true;
radiobutton2.Enabled:=true;
edit1.SetFocus;
bitbtn5.Caption:='&Batal';
end;

k. Simpanlah program tersebut, lalu jalankan dengan cara klik run atau dengan menekan
F9. Jika terjadi kesalahan, periksalah kembali kebenaran program.

5. Latihan
Tambahkan koding pada tombol hapus pada program dalam modul ini, sehingga
ketika Anda menghapus data suatu anggota perpustakaan, maka foto anggota perpustakaan
tersebut yang terdapat dalam suatu direktori juga ikut terhapus.

Anda mungkin juga menyukai