Koneksi Database dengan Delphi & MySQL
Tulisan ini telah dipindahkan ke website baru kami, Tutorial Koneksi Database Menggunakan Delphi & MySQL. Komentar dan pertanyaan di blog ini tidak akan kami jawab lagi. Silahkan sampaikan komentar atau pertanyaan Anda pada link tulisan di atas.Sedangkan untuk Delphi, MySQL dan Zeos, silahkan lihat Tutorial Koneksi Database Dengan Delphi, Zeos & MySQL. Terimakasih
Tingkat Kemahiran : Pemula
Software : Delphi 7, MySQL 4
Software : Delphi 7, MySQL 4
INSTALASI MYSQL
MySQL Server dapat didownload di http://dev.mysql.com/.
Petunjuk instalasi dapat Anda lihat pada dokumentasi yang disertakan
dengan file arsip (*.zip) MySQL yang Anda download. Namun jika Anda
tidak mau repot, berikut saya coba menunjukkan langkah-langkah instalasi
MySQL Server sebagai service di Windows XP (SP2), dengan catatan, tidak
ada modifikasi konfigurasi kecuali path-path MySQL.
·Untuk menginstall MySQl Server, ekstraklah file zip hasil download ke drive C:\ sehingga folder utama menjadi C:\MySQL-x.xx.
·Kemudian
masuklah ke C:\MySQL-x.xx\, cari file-file dengan ekstensi *.cnf dan
hapus. Hapus juga file My.cnf di drive C:\ jika ada. Hapus juga file
my.ini di folder C:\Windows jika ada. Langkah ini untuk membuang
kemungkinan konflik nantinya.
·Sekarang jalankan command prompt dari menu Start>Run, ketik CMD dan enter.
Ketik C:\ dan enter.
Ketik cd C:\MySQL-x.xx\Bin dan enter.
Ketik mysqld-nt –install dan enter, untuk menginstall MySQL sebagai service.
Ketik SC start mysql untuk menjalankan MySQL Service.
Ketik C:\ dan enter.
Ketik cd C:\MySQL-x.xx\Bin dan enter.
Ketik mysqld-nt –install dan enter, untuk menginstall MySQL sebagai service.
Ketik SC start mysql untuk menjalankan MySQL Service.
·Jika semuanya berjalan lancar, kini MySQL Server telah terinstall di komputer Anda.
Untuk menguji MySQL Server, kita akan mencoba membuat sebuah database dan sebuah tabel.
·Masih di command prompt,
ketik mysql -u root dan enter untuk menjalankan MySQL Client. Secara default user pada MySQL Server adalah root dan passwordnya kosong.
ketik mysql -u root dan enter untuk menjalankan MySQL Client. Secara default user pada MySQL Server adalah root dan passwordnya kosong.
·Dari konsole MySQL Client, ketik perintah-perintah berikut ini:
mysql> Create database mydata;
Query OK, 1 row affected (0.00 sec)
mysql> use mydata;
Database changed
mysql> create table teman(
-> nama varchar(30) not null,
-> alamat varchar(100),
-> telepon varchar(15)
-> );
Query OK, 0 rows affected (0.05 sec)
Sampai di sini, Anda telah membuat sebuah database “mydata” dan sebuah tabel “teman” di dalamnya.
mysql> Create database mydata;
Query OK, 1 row affected (0.00 sec)
mysql> use mydata;
Database changed
mysql> create table teman(
-> nama varchar(30) not null,
-> alamat varchar(100),
-> telepon varchar(15)
-> );
Query OK, 0 rows affected (0.05 sec)
Sampai di sini, Anda telah membuat sebuah database “mydata” dan sebuah tabel “teman” di dalamnya.
·OK, sekarang Anda bisa keluar dari konsole ini dengan mengetik
mysql> exit
Bye
mysql> exit
Bye
KONEKSI DELPHI & MYSQL
Di
Delphi, telah disediakan berbagai cara untuk berkomunikasi dengan MySQL
Server, ada ADO/dbGo – dengan perantaraan MyODBC driver, ada juga BDE
dengan memanfaatkan ODBC, ada pula dbExpress yang melakukan koneksi
langsung ke Server dengan perantaraan library MySQL. Sampai nanti, yang
akan kita bahas adalah dbExpress ini, sebab dbExpress adalah teknologi
koneksi database asli dari Borland, dan sudah mendukung MySQL sejak
Delphi 6. Meskipun demikian tidak tertutup kemungkinan bagi Anda untuk
menggunakan komponen koneksi pihak ketiga dalam aplikasi Delphi Anda,
seperti MyDac dan sebagainya. Jika Anda nantinya tertarik, http://www.torry.net menyediakan beragam library antarmuka Delphi – MySQL untuk Anda download.
OK,
kini kita buat sebuah aplikasi baru di Delphi. Harap diingat, meski
Delphi 6 sudah mendukung MySQL, namun yang saya gunakan dalam menulis
posting ini adalah Delphi 2006. Kita lanjutkan dengan langkah-langkah
berikut:
·Tambahkan sebuah TSQLConnection dari palette dbExpress ke form
Atur property LoginPrompt menjadi False, lewat Object Inspector
Atur property LoginPrompt menjadi False, lewat Object Inspector
·Klik kanan pada SQLConnection1 pada form dan pilih Edit Connection Properties
Sebuah dialog Connection Editor akan ditampilkan
Sebuah dialog Connection Editor akan ditampilkan
·Kita buat koneksi dengan mengklik tombol Add Conection
Koneksi ini bertipe MySQL dan kita beri nama DBMyData
Klik OK.
Kini kita atur property koneksi DBMyData ini seperti terlihat pada gambar berikut
Koneksi ini bertipe MySQL dan kita beri nama DBMyData
Klik OK.
Kini kita atur property koneksi DBMyData ini seperti terlihat pada gambar berikut
·Anda
bias mencoba koneksi ini dengan mengklik tanda centang di bagian atas
dialog. Jika pesan yang muncul menunjukkan koneksi sukses, selamat, Anda
siap berksperimen dengan Delphi & MySQL!
·Klik OK untuk menutup dialog Connection Editor
·Kembali ke form, ubah properti SQLConnection1 menjadi True, sehingga koneksi ke MySQL menjadi aktif.
·Tambahkan
sebuah TSQLTable dari palette dbExpress, sebuah TDataSource,
TDataSetProvider dan TClientDataSet dari palette Data Access ke form
Atur properti SQLConnection milik SQLTable1 menjadi SQLConnection1 dan properti TableName menjadi “teman”, seperti yang telah kita buat pada langkah di atas.
Atur properti SQLConnection milik SQLTable1 menjadi SQLConnection1 dan properti TableName menjadi “teman”, seperti yang telah kita buat pada langkah di atas.
·Sekarang ubah properti Dataset dari DataSetProvider1 menjadi SQLTable1.
Ubah juga properti ProviderName dari ClientDataSet1 menjadi DataSetProvider1.
Terakhir, ubah properti DataSet dari DataSource1 menjadi ClientDataset1.
Dari langkah-langkah ini, kita bias melihat alur data dari server
MySQL hingga ke GUI aplikasi kita dan juga sebaliknya, pada diagram
berikut:Ubah juga properti ProviderName dari ClientDataSet1 menjadi DataSetProvider1.
Terakhir, ubah properti DataSet dari DataSource1 menjadi ClientDataset1.
Sebenarnya, akses data dalam table MySQL dapat langsung dilakukan antara DataSource1 dan SQLTable1, tapi karena SQLTable adalah dataset unidirectional (satu arah), penggunaan data control yang multidirectional menjadi tidak berfungsi dengan baik. Contoh, DBGrid, DBNavigator.
Pergerakan kursor penunjuk record pun hanya dapat bergerak dengan arah Next() dan First. Last() dan Next() tidak didukung.
Dataset unidirectional sangat menguntungkan saat koneksi ke SQL Server (pada umunya) mengembalikan sejumlah besar data, karena menghemat memori dan trafik network.
Delphi menyediakan cara mengatasi hal ini dengan menambahkan DataSetProvider dan ClientDataset di antara kedua komponen database di atas. Dataset provider berfungsi mengontrol data dari SQLTable, dan menyimpannya sementara secara lokal, dan kemudian direpresentasikan kembali dalam bentuk dataset oleh ClientDataset.
·OK. Kini kita tambahkan sebuah DBGrid [palette Data Controls] dan beberapa buah Button hingga tampilan form menjadi seperti ini:
·Sekarang kodenya. Klik ganda Button1, yang memiliki caption “Pertama”. Ketikkan kode untuk navigasi ke data pertama
procedure TForm1 . Button1Click(Sender: TObject); begin ClientDataset1 . First; end ; |
procedure TForm1 . Button2Click(Sender: TObject); begin if not ClientDataset1 . Bof then ClientDataset1 . Prior end ; |
procedure TForm1 . Button3Click(Sender: TObject); begin if not ClientDataset1 . Eof do then ClientDataset1 . Next; end ; |
1
2
3
4
| procedure TForm1 . Button4Click(Sender: TObject); begin ClientDataSet1 . Last; end ; |
procedure TForm1 . Button4Click(Sender: TObject); begin ClientDataSet1 . Last; end ; |
·OK.
Sekarang menampilkan data dari ClientDataset ke DBGrid. Seperti biasa,
Anda cukup mengatur properti DataSource dari DBGrid1 menjadi
DataSource1. Kini atur properti Active pada ClientDataset1 dan SQLTable1
menjadi True. Ubah juga properti Connection dari SQLConnection1 menjadi
True.
KODE SELENGKAPNYA
Berikut kode lengkap aplikasi yang baru kita buat di atas.
unit
umain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBXpress, FMTBcd, StdCtrls, Grids, DBGrids, DB, Provider,
DBClient, SqlExpr;
type
TForm1 =
class
(TForm)
SQLConnection1: TSQLConnection;
SQLTable1: TSQLTable;
ClientDataSet1: TClientDataSet;
DataSetProvider1: TDataSetProvider;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
procedure
Button1Click(Sender: TObject);
procedure
Button2Click(Sender: TObject);
procedure
Button3Click(Sender: TObject);
procedure
Button4Click(Sender: TObject);
procedure
Button5Click(Sender: TObject);
procedure
Button6Click(Sender: TObject);
procedure
Button7Click(Sender: TObject);
procedure
Button8Click(Sender: TObject);
procedure
Button9Click(Sender: TObject);
procedure
Button10Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end
;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure
TForm1
.
Button1Click(Sender: TObject);
begin
ClientDataset1
.
First;
end
;
procedure
TForm1
.
Button2Click(Sender: TObject);
begin
if
not
ClientDataset1
.
Bof
then
ClientDataset1
.
Prior
end
;
procedure
TForm1
.
Button3Click(Sender: TObject);
begin
if
not
ClientDataset1
.
Eof
then
ClientDataset1
.
Next;
end
;
procedure
TForm1
.
Button4Click(Sender: TObject);
begin
ClientDataSet1
.
Last;
end
;
procedure
TForm1
.
Button5Click(Sender: TObject);
begin
if
ClientDataset1
.
ChangeCount>
0
then
ClientDataset1
.
ApplyUpdates(-
1
);
ClientDataset1
.
Refresh;
end
;
procedure
TForm1
.
Button6Click(Sender: TObject);
begin
ClientDataset1
.
Delete;
end
;
procedure
TForm1
.
Button7Click(Sender: TObject);
begin
ClientDataset1
.
Append;
end
;
procedure
TForm1
.
Button8Click(Sender: TObject);
begin
ClientDataset1
.
Edit;
end
;
procedure
TForm1
.
Button9Click(Sender: TObject);
begin
ClientDataset1
.
Cancel;
end
;
procedure
TForm1
.
Button10Click(Sender: TObject);
begin
if
ClientDataset1
.
ChangeCount>
0
then
ClientDataset1
.
ApplyUpdates(-
1
);
end
;
end
.
DOWNLOAD
Dan Berikut, Anda bias mendownload MySQL Server, library LIBMYSQL.DLL yang saya gunakan dalam tulisan ini, dan demo program yang kita buat di atas.
Dan Berikut, Anda bias mendownload MySQL Server, library LIBMYSQL.DLL yang saya gunakan dalam tulisan ini, dan demo program yang kita buat di atas.
MySQL Server – 3.79MB – sudah dimodifikasi biar ramping
Library LibMySQL.dll letakkan ke directory System32
Contoh Aplikasi
Library LibMySQL.dll letakkan ke directory System32
Contoh Aplikasi
Catatan, file-file download harus diubah ekstensinya ke .zip , sebaiknya scan dengan antivirus dulu sebelum diekstrak.