Minggu, 14 November 2010

visual foxpro

1. Pengenalan, instalasi dan konfigurasi mySQL Database Server
2. Management Database dengan mySQL-Front
3. Instalasi dan konfigurasi ODBC Driver
4. Pembuatan Aplikasi dengan VFP Pengenalan, Instalasi dan Pensetingan mySQL Pengenalan
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.0yang sama) :

Reading 2.000.000 rows by index

Seconds

mysql

367

mysql_odbc

464

db2_odbc

1206

informix_odbc

121126

ms-sql_odbc

1634

oracle_odbc

20800

solid_odbc

877

sybase_odbc

17614

Inserting (350768) rows

Seconds

mysql

381

mysql_odbc

619

db2_odbc

3460

informix_odbc

2692

ms-sql_odbc

4012

oracle_odbc

11291

solid_odbc

1801

sybase_odbc

4802

Dalam tes diatas, MySQL dijalankan dengan index cache sebesar 8M
Kabayang nggak cepetnya? 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
Setelah anda mendapatkan mySQL Server (saya sarankan versi 3.23 karena paling stabil dan free, anda dapat mendownloadnya di http//:www.mysql.com/download). Jalankan Setup.exe -nya.
Setelah proses instalasi selesai, jalankan sortcutnya atau jalankan secara manual di (biasanya mySQL akan diinstallkan di root folder anda, misalnya di “C:\MYSQL” “folder_instalasi_mysql\bin\winmysqladmin.exe”. Winmysqladmin adalah interface mySQL Server yang mempermudah proses monitoring server.
Seperti pada gambar berikut

Apabila anda belum pernah menginstallkan mySQL Server ke dalam mesin anda, anda harus memasukkan nama user dan password terlebih dahulu. Masukkan sesuai dengan keinginan anda, tetapi saya sarankan :
Username : root
Password: terserah anda
Setelah itu, jendela tersebut akan ke tray secara otomatis. Dan… mySQL Server ready for your service…!

Konfigurasi
Pada dasarnya, tidak dibutuhkan konfigurasi ulang dengan mySQL Server anda. Akan tetapi, “Tak kenal maka tak sayang” bukan? Jadi klik (satu kali saja) di tray anda , lalu pilih “Show Me”. Maka jendela seperti Gambar 1 akan muncul kembali.
Kali ini pilih pada tab “my .INI setup” seperti gambar berikut


Jika anda menjalankan di mesin berbasis NT, maka saya sarankan 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 terakir:
user=root
password

Nilai tersebut bervariasi sesuai dengan nilai yang anda masukkan saat anda diminta untuk memasukkan username dan password saat pertama kali mySQL dijalankan. Anda dapat mengubahnya sesuai yang anda inginkan pada baris tersebut.
Catatan: “root” adalah user default mySQL. Jika anda menggunakan username tersebut untuk aplikasi dengan data yang TIDAK PUBLIC, sebaiknya ganti username tsb dengan nama lainnya, misalnya “wong_wagu” dan berikan password!
Coba bereeksperimen dengan nilai-nilai tersebut. Tetapi…copy dan paste nilai-nilai tersebut ke file lain sebelum anda bereksperimen dengannya. Saat mysql tidak mau jalan (ikon pada tray akan berwarna merah), buka lagi tab tersebut, dan masukkan nilai default yang sudaha anda simpan sebelumnya, lalu pilih “Save Modification”

Membangun Aplikasi Visual FoxPro dengan Database mySQL Server (Bagian II)

by taz on February 23, 2007, 04:14:00 PMTutorialPada pembahasan sebelumnya, kita membicarakan tentang instalasi dan konfigurasi dasar mySQL Server. Pembahasan pada kali ini tentang instalasi mySQL ODBC Driver versi 3.51dan pembuatan dengan VFP (yang saya gunakan sebagai referensi adalah VFP 8.0)Sekilas tentang ODBC
Open Database Connectivity (ODBC) adalah antarmuka (interface) pemrograman yang memungkinkan sebuah aplikasi untuk mengakses suatu database dengan sistem manajemen yang menggunakan Structured Query Language (SQL) untuk mengakses database tersebut.
Anda dapat menampilkan daftar ODBC apa saja yang terinstal di mesin anda 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 anda downloads di
http://www.mysql.com/downloads
Proses instalasi ODBC Driver tersebut sangatlah mudah! Seperti salah satu anggota Fox-id katakan di Forum baru-baru ini (hi bro :-p): “Pokoknya klik Yes, Next, OK…!”. Tidak ada pilihan sama sekali. Gampang khan?Pembuatan Database dan Tabel mySQL
Ada beberapa persiapan sebelum anda membuat aplikasinya. Berikut persiapan tersebut:
1. Duduk yang nyaman dan tenang…
2. Siapin minum secukupnya kalau perlu makanan kecil….
3. Jangan stress! Kalau stress, dijamin nggak bakalan bisa buat deh….
SUDAH…? Kalau sudah, kita terusin minggu depan (huuuuuuuuuuuuuuuuuuuu….) nggak nggak….! Kita mulai saja yah… ;-)
Pada dasarnya, untuk membuat aplikasi dengan menggunakan mySQL Server, hampir sama dengan membuat aplikasi lainnya. Hanya saja, kita harus membuat koneksi ke database dan menggunakan SPT ; SQL Pass-Trough Technology (nah loooh, penting banget khan SPT itu!) utuk melakukan semua proses datanya.
Sebagai awal, kita buat databasenya terlebih dahulu yah…
Untuk membuat database mySQL, sangat mudah. Ada dua pilihan cara:
1. Dengan console (MS-DOS Promnt)
2. Dengan Front-End GUI (oops, apa itu? Front-End berbasis Graphical User Interface yang berfungsi untuk menejemen database.)
Untuk pembahasan ini, saya gunakan mySQL-Front versi 2.5. Front-End ini freeware dan sangat mudah penggunaannya dibandingkan dengan Front-End yang lain.
Baik saya asumsikan anda sudah mendapatkan software tersebut (ada di downloads area kami) dan sudah menjalankannya.
Saat anda menjalankan mySQL-Front untuk pertama kali, anda diminta untuk memasukkan beberapa nilai seperti gambar berikut…

Masukkan nilai-nilai berikut dalam seting koneksi mySQL-Front anda:
Hostname / IP : localhost (jika server terinstall di mesin anda, isikan nilai tersebut, jika tidak; misalnya ada di mesin lain, masukkan IP-nya misalnya 192.168.0.1)
User : root (username mySQL Server anda; saat menginstall mySQL utk pertama kali, anda diminta untuk memasukkan nilai ini bukan?)
Password : (password mySQL Server anda)
Setelah itu pilih “Connect”. Jika anda memasukkan nilai-nilai tersebut dengan benar, pasti jendela interface seperti ini akan terbuka.

Sekarang buat databasenya dengan cara: klik kanan pada jendela sebelah kiri (daftar database), lalu klik kanan pada sembarang tempat, maka akan muncul menu seperti pada gambar

Pilih “Create Database” dan namai sesuka anda. misalnya “proyekmysql” (ingat..! sebaiknya penggunaan nama dalam mySQL, harus diperhatikan CASE yang anda pakai. 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). Selamat…! Database (pertama mungkin?) mySQL anda sudah terbuat!
Okay okay… tahan dulu deh senengnya. Sekarang pastikan database anda sudah terpilih (USE), pilih tab “Query” lalu copy script berikut dan paste ke jendela “Query” mySQL-Front anda:

# mulai copy disini
CREATE TABLE anggota (
kdangg int(11) NOT NULL auto_increment,
nama varchar(50) default NULL,
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”. Wala…! Tabel “anggota” dan tabel “fitur” sudah terbuat!

Membuat Aplikasi VFP dengan mySQL Server (Bagian III)

Sebelumnya kita sudah membahas tentang bagaimana membuat database mySQL dengan menggunakan mySQL-Front dan tentang ODBC Diver. Kali ini akan saya bahas tentang pembuatan aplikasinya dengan Visual FoxPro (untuk referensinya saya menggunakan VFP 8.0 Pro, tetapi anda juga dapat mengaplikasikannya untuk versi 6 dan 7 !).Visual FoxPro adalah salah satu software paling (kalau boleh saya bilang terbaik!) baik untuk pemrosesan data. Untuk keterangan selengkapnya, anda dapat membaca artikel dari Handi berjudul “10 Alasan menggunakan Visual FoxPro“.Komunikasi antara Visual FoxPro dengan mySQL Server
Komunikasi antara Visual FoxPro dengan mySQL dapat dibentuk dengan beberapa cara, seperti menggunakan ODBC (SQLSTRINGCONNECT( ), SQLCONNECT( )), menggunakan ActiveX objek, atau dengan menggunakan Library bawaan mySQL sendiri yaitu “Libmysql.dll”. Kali ini akan saya bahas koneksi dengan menggunakan ODBC Driver saja.

- SQLCONNECT( )
• Syntax : SQLCONNECT( ‘nama_koneksi’ , ‘namadatakoneksiODBC’ , ‘usenameODBC’ , ‘passwordODBC’ )
• Keterangan :
���- ‘nama_koneksi’ = Nama koneksi yang akan anda gunakan setiap anda akan memproses data. Sebaiknya variabel ini disimpan sebagai variabel PUBLIC
���- ‘namadatakoneksiODBC’ = Nama koneksi ODBC, BUKAN nama database anda…!
���- ‘usenameODBC’ = Nama user database
���- ‘passwordODBC’ = Password database user tersebut
• Kelebihan :
���- Lebih cepat dalam pemrosesan data dari pada menggunakan SQLSTRINGCONNECT( )
���- Lebih stabil karena koneksi sudah dibentuk sesaat setelah login ke sistem Windows anda
���- Tidak adanya ketergantungan terhadap versi ODBC
• Kekurangan :
���- Anda harus membuat koneksinya disetiap mesin yang akan memproses data.
���- Tidak Secure karena detail tentang koneksi ini (termasuk username dan passwordnya…!) dapat dilihat lewat Registry di “HKEY_LOCAL_MACHINE\SOFTWARE\ODBC”

- SQLSTRINGCONNECT( )
• Syntax : SQLCONNECT( m.stringkoneksi )
• String koneksi : “DRIVER={MySQL ODBC 3.51 Driver};DESC=;DATABASE=”;
+_lcDBname+”;SERVER=”+_lcserver+”;UID=”+_lcUsername+;
“;PASSWORD=”+_lcpswDB+”;PORT=;OPTION=;STMT=;”
• Keterangan :
���- ’stringkoneksi = Alias (string) koneksi yang akan dieksekusi oleh SQLCONNECT( )
���- _lcDBname = variable nama database mySQL, contoh : “databaseku”
���- _lcserver = variable nama server atau IP server, contoh : “localhost” atau “90.0.0.1
���- _lcUsername = variable username database, contoh : “root”
���- _lcpswDB = variable password database, contoh : “inikunci”
Atau anda dapat menuliskannya secara langsung :
“DRIVER={MySQL ODBC 3.51 Driver};DESC=;DATABASE=databaseku;SERVER=localhost;UID=root;PASSWORD=inikunci;PORT=;OPTION=;STMT=;”
Ingat…! mySQL pada dasarnya dikembangkan untuk lingkungan UNIX yang case sensitive dalam pembacaan karakter! Walaupun hal ini tidak berlaku untuk versi windowsnya, akan tetapi sebaiknya anda perhatikan besar kecilnya huruf tersebut!
• Kelebihan :
���- Tidak perlu membuat koneksi ODBC via Control Panel di tiap-tiap mesin yang akan memproses data
���- Sangat Secure karena detail koneksi seperti nama database, username database dan passwordnya berada didalam source code aplikasi anda
���- Menggunakan Resource yang lebih sedikit dibandingkan dengan SQLCONNECT( )
• Kekurangan :
���- Adanya ketergantungan versi ODBC Driver, yang berarti jika anda mengganti versi ODBC driver di mesin yang akan digunakan memproses data, maka anda harus mengubah source code-nya (walaupun dengan sedikit trik anda tidak perlu mengubah source code tersebut…;-p )

Anda dapat menggunakan salah satu dari fungsi koneksi diatas sesuai dengan kebutuhan anda. Sebagai catatan, perbedaan kecepatan proses data untuk jaringan LAN tidak signifikan. Bahkan anda tidak akan merasakan delaynya. Hal ini disebabkan bukan VFP yang memproses datanya, melainkan SQL Server yang memproses datanya. VFP hanya menampilkan data hasil proses server ke CURSOR

Membangun Aplikasi Visual FoxPro dengan Database mySQL Server (Bagian IV-TERAKHIR)

by taz on February 23, 2007, 04:23:00 PMTutorialSudah mencoba tutorial sebelumnya? Berikut adalah tutorial dalam pengkodean VFP. Tutorial ini bagian terahkir dari 4 bagian. Selamat mencoba…!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“) ( lihat artikel SQL Pass-Trough (SPT) mempermudah hidup anda…!) tidak diproses oleh VFP. Jadi untuk query-query yang lebih lengkap dapat anda dapatkan di Help masing-masing SQL server. Untuk mySQL Server dapat anda dapatkan 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.


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)“)Kamu 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
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 kamu ingin menghapus SEMUA data dari tabel tertentu, kamu tidak perlu menambahkan klausa …WHERE… kedalam kode kamu, contoh:SQLEXEC(kon,”DELETE FROM customer”) && hapus semua data

Tidak ada komentar: