Web Informer Button

Rabu, 01 Februari 2012

Cara mudah mengolah database MySQL dengan Delphi menggunakan Zeos

Berikut kita belajar cara sangat sederhana mengelola database MySQL menggunakan Delphi dan Zeos. Latihan ini akan sangat tidak berguna jika anda sudah mahir, tapi jangan protes dulu, artikel ini saya muat di sini karena banyak teman yang minta ke saya, karena merasa terlalu awam dengan zeos.
Mula-mula, saya berasumsi zeos sudah terinstal dengan baik pada delphi anda, kalo belum silahkan download di http://www.sourceforge.net/projects/zeoslib, lalu ikuti petunjuk instalasinya.
Saya juga berasumsi bahwa MySQL sudah berjalan pada komputer anda atau setidaknya bisa diakses sepenuhnya dari komputer anda, kalo belum silahkan download di http://dev.mysql.com/downloads/, lalu ikuti petunjuk instalasinya.
dan
Saya juga berasumsi anda sudah dapat menggunakan MySQL dengan baik, entah menggunakan MySQL Front, SQLYog, PHPMyAdmin atau apa aja, yang penting bisa ..:) selanjutnya buat database "latihan" dan buat satu tabel "Anggota" dengan field "Id" varchar(15), "Nama" varchar(15), "Alamat" varchar(255), atau jalankan script berikut pada SQLEditor aplikasi anda:
create database if not exists `latihan`;
USE `latihan`;
DROP TABLE IF EXISTS `anggota`;
CREATE TABLE `anggota` (
`Id` varchar(15) NOT NULL default '',
`Nama` varchar(30) default NULL,
`Alamat` varchar(255) default NULL,
PRIMARY KEY  (`Id`)
) TYPE=MyISAM;
insert  into `anggota`(`Id`,`Nama`,`Alamat`)
values ('123','Agus Made','Yogyakarta'),
('456','Krisna Parta','Yogyakarta juga');
atau dump file "db_latihan.sql" dari source code latihan ini.
Buat proyek baru pada delphi yang kurang lebih tampilannya seperti gambar berikut :
Deklarasikan variabel gloabal "editmode" untuk pengelolaan mode tampilan dan akses terhadap setiap komponen:

//...
var
 Form1: TForm1;
 editmode:0..2=0;//0=browse 1=insert 2=edit
implementation
//...

Buat beberapa "procedure" bantu berikut, dan deklarasikan sebelum sintaks "private". kurang lebih seperti ini :
//...
  procedure setmode;
  procedure kosong;
  procedure isi;
  //...
 private
  //...
implementation
//...
procedure TForm1.setmode;
begin
 tbTambah.Enabled:=editmode=0;
 tbEdit.Enabled:=editmode=0;
 tbSimpan.Enabled:=editmode>0;
 tbBatal.Enabled:=editmode>0;
 tbHapus.Enabled:=editmode=0;

 edId.ReadOnly:=editmode=0;
 edNama.ReadOnly:=editmode=0;
 mmAlamat.ReadOnly:=editmode=0;
end;

procedure TForm1.kosong;
begin
 edId.Text:='';
 edNama.Text:='';
 mmAlamat.Text:='';
end;

procedure TForm1.isi;
begin
 edId.Text:=zqAnggota.fieldbyname('Id').asstring;
 edNama.Text:=zqAnggota.fieldbyname('Nama').asstring;
 mmAlamat.Text:=zqAnggota.fieldbyname('Alamat').asstring;
end;

lalu berikan event OnAfterScroll pada TZReadOnlyQuery "zqAnggota" dengan sintaks berikut:
procedure TForm1.zqAnggotaAfterScroll(DataSet: TDataSet);
begin
 isi;
end;

berikan juga event OnFormShow pada TForm1 "Form1" dengan sintaks berikut:
procedure TForm1.FormShow(Sender: TObject);
begin
 setmode;
end;


lalu berikan event OnClick pada TButton "tbTambah" dengan sintaks berikut:
procedure TForm1.tbTambahClick(Sender: TObject);
begin
 case TButton(sender).tag of
  0: begin editmode:=1; kosong; setmode; end; //tambah
  1: begin editmode:=2; isi; setmode; end; //edit
  2: begin editmode:=0; isi; setmode; end; //batal
  3: begin //simpan
      if editmode = 1 then //jika data adalah tambahan
       zqProses.Script.Text:='insert into anggota(Id,Nama,Alamat)'+
       'values("'+edId.text+'","'+edNama.text+'","'+mmAlamat.Text+'")'
      else //jika data adalah editan
       zqProses.Script.Text:='update anggota set'+
       'Id="'+edId.text+'",Nama="'+edNama.text+'",Alamat= "'+
       mmAlamat.Text+'" where Id="'+
       zqAnggota.fieldbyname('Id').AsString+'"';
      zqProses.Execute;

      zqAnggota.Close; //biar refresh
      zqAnggota.Open;
      editmode:=0; setmode;
     end;
  4: begin //hapus
      zqProses.Script.Text:='delete from anggota where '+
      'Id="'+zqAnggota.fieldbyname('Id').AsString+'"';
      zqProses.Execute;
      zqAnggota.Close; //biar refresh
      zqAnggota.Open;
     end;
 end;
end;
Event OnClick yang kita buat di atas sebenarnya berlaku untuk semua tombol (tbEdit, tbBatal, tbSimpan dan tbHapus) yang kita buat, menggunakan metode pembagian kerja berdasarkan property "Tag" pada "TButton" tersebut. Jadi hubungkan event OnClick semua tombol tersebut dengan "tbTambahClick"
jika semua sudah 'dilakoni' dengan baik, 'kayaknya' program 'gak bakalan' bermasalah. Jalankan program dan lihat hasilnya, kurang lebih akan seperti ini :
Semua tombol sudah berfungsi dengan baik. Sekali lagi contoh ini sangat sedarhana tidak menggunakan penangan error dan konfirmasi apapun. Pada implementasi sesungguhnya banyak hal yang perlu di'urusi'. Namun demikian setidaknya bagi yang belum pernah 'nyoba' handle MySQL dengan Delphi, bisa menyadari betapa mudah Zeos digunakan untuk hal ini.
silahkan download source code untuk Aplikasi ini disini.

0 komentar:

Posting Komentar

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 

Selamat Datang Di cuap-cuapz.blogspot.com

Di dalam blog ini saya akan berbagi tentang ilmu komputer dan teknologi yang ada pada saat ini, dan apapun yang dapat bermanfaat bagi kita semua.Selengkapnya tentang blog ini

Sekilas tentang Arman Septian

Seorang laki-laki yang lahir pada tahun 1993, saya adalah orang yang tergila-gila dengan teknologi, oleh karena itu saya ingin membuat blog dari dulu, namun blog ini baru dapat saya buat pada tanggal 16 Desember 2011, satu saran buat kalian semua jika orang lain berkata kita tidak becus melakukan sesuatu maka jawablah " aku memang tidak becus, tapi aku bisa mencari cara agar aku dapat melakukan itu"

Social Stuff

Info