Anda di halaman 1dari 9

INFOKES, VOL. 1 NO.

2 Juli 2010

ISSN : 2086 - 2628

MEMBANGUN APLIKASI VISUAL FOXPRO


DENGAN DATABASE mySQL SERVER
Tominanto
APIKES Citra Medika Surakarta
ABSTRAK
mySQL Server adalah sebuah software untuk memanajemen basis data dengan Struktur Query
Language. Kemampuan melakukan proses data yang cepat, multi-threaded dan multi user merupakan
keunggulan mySQL dibanding dengan SQL Server yang lainnya. Selain itu, mySQL juga merupakan
produk Open Source Freeware yang dapat bekerja di multi platform. Untuk membangun aplikasi
Visual Foxpro dengan database mySQL bukanlah hal yang sulit. Dengan menggunakan ODBC
sebagai mesin koneksinya dan mySQL-Front sebagai interface basis datanya maka pembuatan
database dan pengkoneksiannya akan sangat mudah dilakukan. Tahap pengkodean program juga
bukan hal yang sulit karena hanya mengkombinasikan bahasa Visual Foxpro dan Struktur Query
Language.
Kata Kunci : mySQL, Visual Foxpro, ODBC

PENDAHULUAN
mySQL adalah database server yang sangat ideal untuk data segala ukuran. Dengan
kemampuannya yang dapat bekerja di lingkungan Unix maupun Win32 dan sifatnya yang bersifat
Open Source Freeware (dibawah lisensi GNU, General Public License; lihat di
http://www.gnu.org/licenses/), mySQL menjadi pilihan yang tepat bagi pengembangan aplikasi kelas
menengah kebawah dan kelas korporat.
Kemampuan paling menonjol mySQL Server adalah dalam hal kecepatannya yang sangat
tinggi dalam melakukan proses data, multi-threaded, multi-user, dan sangat mudah dalam melakukan
query dibandingkan SQL server yang lain. Hal ini sudah dibuktikan dari hasil Benchmark yang dapat
anda lihat di http://www.mysql.com/ information/benchmarks.html. Berikut adalah sebagian hasil
Benchmark mySQL dengan SQL Server yang lain (dijalankan di mesin NT 4.0 yang sama) :

Tabel 1.
Hasil Benchmark
Reading 2.000.000 rows by index
Mysql
mysql_odbc
db2_odbc
Informix_odbc
ms-sql_odbc
oracle_odbc
solid_odbc
sybase_odbc

Seconds
367
464
1206
121126
1634
20800
877
17614

Tabel 2
Hasil Benchmark
Inserting (350768) rows
Mysql
mysql_odbc
db2_odbc
Informix_odbc
ms-sql_odbc
Jurnal Ilmiah Rekam Medis dan Informatika Kesehatan

Seconds
381
619
3460
2692
4012
1

INFOKES, VOL. 1 NO. 2 Juli 2010

oracle_odbc
solid_odbc
sybase_odbc

ISSN : 2086 - 2628

11291
1801
4802

Dalam tes diatas, MySQL dijalankan dengan index cache sebesar 8 M. Test diatas
dijalankan dengan mySQL versi 3.23. Tentu hasil tersebut mungkin saja sudah berubah
dengan
perkembangan
SQL
Server
saat
ini.
Dalam pembahasan kali ini, platform yang akan kita gunakan adalah Win32, yaitu Win9x,
W2K, dan WinXP.
INSTALASI mySQL

Setelah mendapatkan mySQL Server (disarankan versi 3.23 karena paling stabil dan
free, dapat di download di http//:www.mysql.com/download), jalankan Setup.exe-nya.
Setelah proses instalasi selesai, jalankan shortcutnya atau jalankan secara manual di (biasanya
mySQL
akan
diinstallkan
di
root
folder,
misalnya
di
"C:\MYSQL\folder_instalasi_mysql\bin\winmysqladmin.exe".
Winmysqladmin
adalah
interface mySQL Server yang mempermudah proses monitoring server. Seperti pada gambar
1 di bawah ini:

Gambar 1.
Jendela Winmysqladmin ver 1.4
Apabila belum pernah menginstallkan mySQL Server ke dalam mesin komputer,
diharuskan memasukkan nama user dan password terlebih dahulu. Masukkan sesuai dengan
keinginan, tetapi disarankan :
Username
: root
Password
: terserah anda
Setelah itu, jendela tersebut akan ke tray secara otomatis. dan. mySQL Server ready
for your service.
KONFIGURASI mySQL
Pada dasarnya, tidak dibutuhkan konfigurasi ulang dengan mySQL Server. Akan
tetapi, jika akan mengkonfiurasi secara manual klik (satu kali saja) di tray (pada ikon
winmysqladmin), lalu pilih "Show Me". Maka jendela seperti Gambar 1 akan muncul
kembali. Kali ini pilih pada tab "my .INI setup" seperti gambar 2.

Jurnal Ilmiah Rekam Medis dan Informatika Kesehatan

INFOKES, VOL. 1 NO. 2 Juli 2010

ISSN : 2086 - 2628

Gambar 2.
Jendela.INI.Setup
Jika menjalankan mySQL di mesin berbasis NT, maka disarankan pilih (walaupun
biasanya sudah terpilih secara otomatis) "mysqd-nt" pada pilihan server sebelah kiri. Jika
anda menggunakan kelas 9x (95,98, Me) pilih yang "mysqld". Berikut adalah beberapa
keterangan yang ada dalam "my.INI" :
#This File was made using the WinMySQLAdmin 1.4 Tool
#7/12/2003 5:09:49 AM
#Uncomment or Add only the keys that you know how works.
#Read the MySQL Manual for instructions
[mysqld]
basedir=C:/MYSQL
#bind-address=127.0.0.1
datadir=C:/MYSQL/data
#language=C:/MYSQL/share/your language directory
#slow query log#=
#tmpdir#=
#port=3306
#set-variable=key_buffer=16M
[WinMySQLadmin]
Server=C:/MYSQL/bin/mysqld-nt.exe
user=root
password
Semua baris yang diawali dengan tanda pagar (#) adalah komentar dan tidak akan
diproses. Perhatikan pada baris terakhir :
user=root
password
Nilai tersebut bervariasi sesuai dengan nilai yang dimasukkan saat diminta untuk
memasukkan username dan password saat pertama kali mySQL dijalankan. Penganturan ini
akan
mengubah
sesuai
yang
diinginkan
pada
baris
tersebut.
Catatan: "root" adalah user default mySQL. Jika menggunakan username tersebut untuk
aplikasi dengan data yang TIDAK PUBLIC, sebaiknya ganti username tersebut dengan nama
lainnya, misalnya "wong_solo" dan berikan passwordnya, lalu pilih Save Modification
untuk menyimpan pengaturan.
SEKILAS TENTANG ODBC
OpenDatabase Connecti- vity (ODBC) adalah antar muka (interface) pemrograman
yang memungkinkan sebuah aplikasi untuk mengakses suatu database dengan sistem
manajemen yang menggunakan Structured Query Language (SQL) untuk mengakses database
tersebut.
Untuk menampilkan daftar ODBC apa saja yang terinstal di mesin komputer adalah
dengan memilih pada "Start Menu" >> Setting, Control Panel, ODBC Drivers untuk Windows
9x dan Setting, Control Panel, Administrative Tools, ODBC Drivers pada mesin NT Family
(W2K, XP, W2003).
INSTALASI ODBC DRIVERS
ODBC
Driver
untuk
mySQL
Server
dapat
didownloads
di
http://www.mysql.com/downloads. Proses instalasi ODBC Driver tersebut sangatlah mudah,
hanya klik Yes dan Next megikuti langkah wizard hingga finish.
Jurnal Ilmiah Rekam Medis dan Informatika Kesehatan

INFOKES, VOL. 1 NO. 2 Juli 2010

ISSN : 2086 - 2628

PEMBUATAN DATABASE DAN TABEL mySQL


Pada dasarnya, untuk membuat aplikasi dengan menggunakan mySQL Server, hampir
sama dengan membuat aplikasi lainnya. Hanya saja harus membuat koneksi ke database dan
menggunakan SPT (SQL Pass-Trough Technology) untuk melakukan semua proses datanya.
Untuk membuat database mySQL, sangat mudah. Ada dua pilihan cara:
1. Dengan console (MS-DOS Prompt)
2. Dengan Front-End GUI (Front-End berbasis Graphical User Interface yang berfungsi
untuk menejemen database).
Untuk pembahasan ini, digunakan mySQL-Front versi 2.5. Front-End ini freeware dan
sangat mudah penggunaannya dibandingkan dengan Front-End yang lain.
Jika sudah mendapatkan software tersebut (bisa di download) dan sudah menjalankan
mySQL-Front untuk pertama kali, akan diminta untuk memasukkan beberapa nilai seperti
gambar 3.

Gambar 3.
Jendela Connection to MySQL
Masukkan
nilai-nilai
berikut
dalam
seting
koneksi
mySQL-Front.
Hostname / IP : localhost (jika server terinstall di mesin, isikan nilai tersebut, jika tidak;
misalnya
ada
di
mesin
lain,
masukkan
IP-nya
misalnya
192.168.0.1).
User : root (username mySQL Server; saat menginstall mySQL untuk pertama kali)
Password : (password mySQL Server). Setelah itu pilih "Connect". Jika pemasukkan nilainilai tersebut dengan benar, pasti jendela interface akan terbuka.
Untuk membuat databasenya dengan cara: klik kanan pada jendela sebelah kiri (daftar
database), lalu klik kanan pada sembarang tempat, maka akan muncul menu popup. Pilih
"Create Database" dan namai sesuka anda. misalnya "proyekmysql" (perhatikan
penggunaan nama dalam mySQL, harus diperhatikan CASE yang dipakai. Memang dalam
Windows "ProyekmySQL" dan "proyekmysql" diartikan sama, akan tetapi dalam lingkungan
unix/linux "ProyekmySQL" dan "proyekmysql" akan diartikan dua hal yang berbeda. Jadi
sebaiknya biasakan menggunakan lowercase saja).
Sekarang pastikan database yang sudah terpilih (USE), pilih tab "Query" lalu copy
script berikut dan paste ke jendela "Query" mySQL-Front.
# mulai copy disini
CREATE TABLE anggota (
kdangg int(11) NOT NULL auto_increment,
nama varchar(50) default NULL,
Jurnal Ilmiah Rekam Medis dan Informatika Kesehatan

INFOKES, VOL. 1 NO. 2 Juli 2010

ISSN : 2086 - 2628

alamat mediumtext,
notelp varchar(50) default NULL,
PRIMARY KEY (kdangg)
) TYPE=MyISAM;
# Isi data tabel 'anggota'
INSERT INTO anggota (kdangg, nama, alamat, notelp) VALUES("1", "nobody", "diantara
runput ilalang", "54654654654");
INSERT INTO anggota (kdangg, nama, alamat, notelp) VALUES("2", "somebody",
"somewhere", "84555245");
CREATE TABLE fitur (
kdfitur int(11) NOT NULL auto_increment,
nama varchar(50) default NULL,
ket mediumtext,
kdangg int(11) default NULL,
PRIMARY KEY (kdfitur)
) TYPE=MyISAM;
#selesai script
Pilih tab "Database" lalu klik kanan dan pilih "Refresh". Sekarang Tabel "anggota" dan tabel
"fitur" sudah terbuat.
DASAR PROSES DATA
Pada dasarnya, query pada SQL Server (seperti mySQL, MSSQL, ORACLE dll) tidak
selalu sama. Query yang diproses oleh fungsi SQLEXEC(namakoneksi,"query yang
dilakukan","namacursor") tidak diproses oleh VFP. Jadi untuk query-query yang lebih
lengkap dapat anda dapatkan di Help masing-masing SQL server. Untuk mySQL Server bisa
didapatkan di http://www.mysql.com/documentation.
Berikut sebagian kecil query yang dapat digunakan secara umum (berlaku untuk
masing-masing SQL Server diatas):
1. SELECT namafield FROM namatabel
Syntax ini berfungsi untuk mengambil data dari server dan disimpan kedalam CURSOR
FoxPro. Contoh dalam VFP:
SQLEXEC namakoneksi,"SELECT field1, field2, field3 FROM tabel1", namacursor")
Kalo kamu bermaksud menampilkan data dari tabel (pada kasus diatas bernama "tabel1")
kedalam grid atau listbox misalnya, maka sumber data dari grid atau listbox tersebut adalah
"namacursor". Lihat listing contoh dibawah:
* menampilkan data dari tabel tabel1 kedalam grid
* Procedure cmdTampil.CLICK()
xnama=ALLTRIM(THISFORM.txtnama.VALUE)
THISFORM.grid1.RECORDSOURCE=""
SQLEXEC(kon,"SELECT field1, field2, field3 FROM tabel1 WHERE
field1=?xnama","cursor1")
THISFORM.grid1.RECORDSOURCE="cursor1"
Dalam contoh diatas, data dari tabel1 diambil dan disimpan kedalam tabel sementara atau
CURSOR bernama cursor1. Pengambilan data tersebut di "FILTER" oleh field1 dimana isi
field1 tersebut sesuai dengan textbox yang bernama txtnama.
... FROM tabel1 WHERE field1=?xnama","cursor1")
Jika ingin menampilkan semua datanya, syntax WHERE dihilangkan saja.

Jurnal Ilmiah Rekam Medis dan Informatika Kesehatan

INFOKES, VOL. 1 NO. 2 Juli 2010

ISSN : 2086 - 2628

2. INSERT INTO namatabel (field1, field2, field3...) VALUES (xnama1, xnama2,


xnama3...)
Syntax ini berfungsi untuk menyimpan (menyisipkan) data ke server. Contoh dalam VFP:
SQLEXEC (namakoneksi, "INSERT INTO namatabel (field1, field2)VALUES
(?xnama1,?xnama2)")
Kita dapat menghilangkan syntax ...(field1,field2)... HANYA jika ...(?xnama1, ?xnama2)...
sesuai dengan urutan struktur dalam tabel tersebut. Sebagai contoh:
SQLEXEC(namakoneksi,"INSERT INTO namatabel VALUES(?xnama1,?xnama2)")
Contoh dalam pemakaian di VFP dapat kamu lihat di listing kode berikut:
*menyimpan data ke tabel server
* Procedure cmdSimpan.CLICK()
xnamabaru=ALLTRIM(THISFORM.txtnama.VALUE)
xalamat=ALLTRIM(THISFORM.txtalamat.VALUE)
IF MESSAGEBOX('SIMPAN DATA INI?',36,'COBA SIMPAN DATA')=6
&&konfirmasi penyimpanan data
SQLEXEC(kon,"INSERT INTO tabel1(field1,field3)
VALUES(?xnamabaru,?xalamat)")
ENDIF
Perhatikan bahwa data yang disimpan kedalam tabel1 HANYA dari field1 dan field3 saja.
Untuk itu setelah perintah INSERT INTO tabel1, nama field1 dan field3 ikut dituliskan.
3. UPDATE namatabel SET field1 = xnama1, field2 = xnama2, field3 = xnama3
Seperti namanya, syntax ini berfungsi untuk melakukan perubahan terhadap data yang sudah
ada didalam tabel (update data). Contoh penggunakan dalam VFP:
*mengubah data dalam tabel
* Procedure cmdsave.CLICK()
xkdcust=ALLTRIM(THISFORM.txtkdcust.VALUE)
xnama=ALLTRIM(THISFORM.txtnama.VALUE)
IF MESSAGEBOX("Simpan perubahan data pada KODE CUSTOMER "+xkdcust+"
ini?",36,"COBA UPDATE DATA")=6
SQLEXEC(kon,"UPDATE customer SET nama=?xnama WHERE kdcust=?xkdcust")
ENDIF
Perhatikan pada statement ...WHERE kdcust =... tersebut, Syntax diatas berarti : "UBAH
NILAI DARI TABEL customer DIMANA FIELD nama MENJADI VARIABEL xnama
DIMANA kdcust ADALAH VARIABEL xkdcust". Jika tidak menambahkan klausa
...WHERE..., maka SEMUA data dari tabel customer akan berubah nilai field nama menjadi
nilai yang tersimpan dalam variabel xnama.
4. DELETE FROM namatabel
Syntax ini berfungsi untuk menghapus data dari tabel dala m sebuah database. Penggunaan
dalam VFP:
*menghapus data dari tabel
*Procedure cmdHapus.CLICK()
xkdcust=ALLTRIM(THISFORM.txtkdcust.VALUE)
IF MESSAGEBOX("Hapus data dengan KODE CUSTOMER "+xkdcust+"
ini?",36,"COBA HAPUS DATA")=6
SQLEXEC(kon,"DELETE FROM customer WHERE kdcust=?xkdcust") && hapus
data tertentu saja
ENDIF

Jurnal Ilmiah Rekam Medis dan Informatika Kesehatan

INFOKES, VOL. 1 NO. 2 Juli 2010

ISSN : 2086 - 2628

Perhatikan bahwa klausa ...WHERE kdcust=?xkdcust... ditambahkan setelah ...DELETE


FROM customer... Hal ini berarti data yang akan dihapus dari tabel customer HANYA yang
mempunyai data dari field kdcust yang bernilai dari variabel xkdcust saja. Jika ingin
menghapus SEMUA data dari tabel tertentu, kita tidak perlu menambahkan klausa
...WHERE... kedalam kode, contoh:
SQLEXEC(kon,"DELETE FROM customer") && hapus semua data.
CONTOH APLIKASI DENGAN VISUAL FOXPRO
Berikut ini adalah contoh aplikasi yang dibuat dengan bahasa pemrograman Visual
Foxpro 8.0, dengan mesin koneksi myODBC dan mesin database mySQL versi 3.23. sebagai
langkah awal adalah mendesain terlebih dahulu form sebagai berikut ini :

Gambar 4
Desain Form
Kode program yang ditambahkan dalam form tersebut adalah :
*Procedure formLoad()
PUBLIC kon1
kon1=SQLCONNECT("kon")
*Procedure formActivate()
thisform.grid1.RecordSource =""
SQLEXEC(kon1,"SELECT nim,nama from tbmhs","cursor1")
thisform.grid1.RecordSource ="cursor1"
thisform.tampil
*Procedure cmdSaveClick()
xnim=ALLTRIM(THISFORM.text1.VALUE)
xnama=ALLTRIM(THISFORM.text2.VALUE)
SQLEXEC(kon1,"INSERT INTO tbmhs(nim,nama) VALUES(?xnim,?xnama)")
thisform.grid1.RecordSource =""
SQLEXEC(kon1,"SELECT nim,nama from tbmhs","cursor1")
thisform.grid1.RecordSource ="cursor1"
*Procedure cmdUpadateClick()
SQLEXEC(kon1,"UPDATE tbmhs SET nama= ?ALLTRIM(thisform.text2.value)
WHERE nim=?ALLTRIM(thisform.text1.value)")
thisform.grid1.RecordSource =""
SQLEXEC(kon1,"SELECT nim,nama from tbmhs","cursor1")
thisform.grid1.RecordSource ="cursor1"
Jurnal Ilmiah Rekam Medis dan Informatika Kesehatan

INFOKES, VOL. 1 NO. 2 Juli 2010

ISSN : 2086 - 2628

*Procedure cmdDeleteClick()
SQLEXEC(kon1,"DELETE FROM tbmhs WHERE
nim=?ALLTRIM(thisform.text1.value)")
thisform.grid1.RecordSource =""
SQLEXEC(kon1,"SELECT nim,nama from tbmhs","cursor1")
thisform.grid1.RecordSource ="cursor1"
*Procedure cmdDeleteClick()
SQLEXEC(kon1,"DELETE FROM tbmhs WHERE
nim=?ALLTRIM(thisform.text1.value)")
thisform.grid1.RecordSource =""
SQLEXEC(kon1,"SELECT nim,nama from tbmhs","cursor1")
thisform.grid1.RecordSource ="cursor1"
*Procedure cmdCloseClick()
thisform.Release
*Procedure FormTampil()
SELECT cursor1
thisform.text1.Value=nim
thisform.text2.Value=nama
*Procedure GridAfterRowColChange()
LPARAMETERS nColIndex
thisform.tampil
Hasil program setelah di run adalah seperti gambar berikut ini :

Gambar 5.
Form Dijalankan
Dari contoh sederhana diatas dapat dilihat bahwa sebagian besar kode program masih
menggunakan kode program asli visual foxpro dan beberapa kode program bahasa SQL.
KESIMPULAN
Dari uraian diatas dapat disimpulkan bahwa database mySQL sangatlah mudah untuk
dikoneksikan dengan beberapa platform bahasa pemrograman, salah satunya adalah Microsoft
Visual Foxpro. Hanya dengan memahami bahasa berbasis Struktur Query Language
programmer dapat membuat aplikasi client-server (multi user) yang efektif dan efisien.
Efektif dikarenakan dengan mySQL, akses data lebih cepat tanpa perlu pengaturan sharing
data dalam program seperti jika memakai database Foxpro. Dan efisien dikarenakan Sofware
mySQL, driver dan interface pendukung lainnya bisa didapatkan freeware dari download di
internet.

Jurnal Ilmiah Rekam Medis dan Informatika Kesehatan

INFOKES, VOL. 1 NO. 2 Juli 2010

ISSN : 2086 - 2628

Semoga tulisan ini dapat memotivasi para programmer dalam mengembangkan


aplikasi basis data secara multi user dengan bahasa pemrograman Visual Foxpro dan database
mySQL Server.
DAFTAR PUSTAKA
Suja Imam. 2005. Pemrograman SQL dan Database Server MySQL. Andi. Yogyakarta
http://www.fox-id.com
http://www.ilmukomputer.com

Jurnal Ilmiah Rekam Medis dan Informatika Kesehatan

Anda mungkin juga menyukai