Anda di halaman 1dari 8

Implementasi dan Koneksi ke Database DBASE

Pada prinsipnya Visual Foxpro, Visual Dbase dan Dbase II adalah sama, yaitu program
yang sama-sama menggunakan database jenis DBASE. DBASE adalah salah satu jenis
database yang cukup banyak digunakan di Indonesia. Ekstensi file-file DBASE adalah
*.dbf. Sebelum Anda melakukan trik-trik pada bagian ini, pastikan Anda telah melakukan
konfigurasi DBASE dengan benar.
Setting untuk Mengakses Database DBASE
Berikut ini adalah setting di file konfigurasi php.ini agar dapat mengakses database
DBASE, ikuti langkah-langkah dibawah ini:
1. Buka file php.ini (c:\apache\php\php.ini) melalui Notepad.
2. Cari baris kode: ;extension=php_dbase.dll, lalu hilangkan tanda semicolon (;) di
depan kode tersebut. Lihat gambar berikut.

Gambar. Menghilangkan tanda ; di extension=php_dbase.dll


3. Cari lagi baris kode: extension_dir = ./extensions dan beri tanda semicolon (;) di
depannya.
4. Kemudian simpanlah hasil setting yang kita lakukan di file php.ini (File > Save).
5. Cari file: php_dbase.dll yang berada di direktori: c:\apache\php\extensions,
kemudian copykan ke direktori: C:\WINDOWS\SYSTEM\

Mengakses Tabel DBASE


Ada beberapa fungsi yang akan digunakan untuk mengakses tabel DBASE, yaitu:

Membuka suatu tabel jenis DBASE, gunakan fungsi:


$pengenal_tabel=dbase_open("nama_tabel",mode);

Mendeteksi jumlah field suatu tabel jenis DBASE, gunakan fungsi:


dbase_numfields($pengenal_tabel);

Mendeteksi jumlah record, gunakan fungsi:


dbase_numrecords($pengenal_tabel);

Membaca data pada suatu record, gunakan fungsi:


dbase_get_record($pengenal_tabel,nomer_record);

Setelah Anda selesai menggunakan sebuah tabel DBASE, anda harus menutup akses
ke tabel atau memutuskan koneksinya, gunakan fungsi:
dbase_close(pengenal_tabel);

Agar Anda tahu cara menggunakan fungsi-fungsi diatas, cobalah skrip berikut: (Namun,
sebelumnya Anda harus membuat tabel terlebih dahulu di Visual Foxpro dengan nama:
table1.dbf)
Skrip Foxpro.php
<?php
echo("<TITLE>Tabel Rekapitulasi Dana UGM</TITLE>");
$foxpro=dbase_open("C:\\VFPRO5\\rekapitulasi\\table1.dbf",0);
if ($foxpro)
{
echo("<TABLE BORDER=1>");
echo("<CAPTION><B>Rekapitulasi Dana Masyarakat UGM</B></CAPTION>");
echo("<TR>");
echo("<TH>Unit Kerja</TH>");
echo("<TH>Pendidikan</TH>");
echo("<TH>Kesejahteraan Mahasiswa</TH>");
echo("<TH>Penelitian</TH>");
echo("<TH>Kerumahtanggaan</TH>");
echo("<TH>Jumlah</TH></TR>");
$jmlrecord=dbase_numrecords($foxpro);
$jmlfield=dbase_numfields($foxpro);
for ($indeks=1;$indeks<=$jmlrecord;$indeks++)
{
$data=dbase_get_record($foxpro,$indeks);
echo("<TR>");

for ($indeks1=0;$indeks1<$jmlfield;$indeks1++)
{
echo("<TD>$data[$indeks1]</TD>");
}
echo ("</TR>");
}
echo ("</TABLE>");
dbase_close($foxpro);}
?>

Gambar. Hasil skrip Foxpro.php


Catatan:
Pernyataan perulangan dengan FOR yang pertama di atas berfungsi untuk mengisikan
data secara otomatis dari record pertama hingga record akhir, dengan terlebih dahulu
dideteksi jumlah recordnya, sedangkan perulangan FOR yang kedua adalah untuk
mengisi data ke masing-masing field yang tentunya dengan terlebih dahulu dideteksi
jumlah fieldnya juga.
Pada skrip Foxpro.php, kami mencoba untuk mengakses suatu tabel yang dibuat di
Visual Foxpro menggunakan PHP. Tentunya Anda tidak boleh terbatas hanya pada
tabel Visual Foxpro saja, tetapi cobalah mengakses tabel pada Visual DBASE atau
DBASE II.

Membuat Tabel dan Menambah Record DBASE


Kalau Anda tidak mempunyai atau belum membuat tabel dari database DBASE pada
program yang bersangkutan (Foxpro atau DBASE), Anda bisa langsung membuat suatu
tabel DBASE melalui skrip PHP, gunakan fungsi:
$pengenal_tabel=dbase_create(nama_tabel,array_fields);

Catatan:
nama_tabel harus berekstensi *.dbf
array_fields adalah array yang kita buat sendiri, yang berisi tentang nama_field, tipe
data field, ukuran field, dan jumlah digit dibelakang koma.
Tipe data sebuah field bisa merupakan salah satu dari tabel berikut:
Tipe
data
C
L
D

Penggunaan
Character. Untuk data string.
Logical. Untuk data Boolean, yang punya dua nilai, true
atau false.
Date. Untuk menyatakan data tanggal.Format YYYYMMDD, 4
digit awal untuk tahun, 2 digit berikutnya untuk bulan,
dan 2 digit terakhir untuk tanggal.
Number. Untuk data yang berupa angka. Formatnya a,b.
dimana a adalah jumlah seluruh digit( termasuk tanda koma
dan
digit dibelakang koma), sedangkan b adalah jumlah
digit dibelakang koma.

Kemudian setelah membuat tabel melalui skrip PHP, Anda juga bisa menambahkan
recordnya, gunakan fungsi:
dbase_add_record(pengenal_tabel,array_record);
array_record beranggotakan data-data tiap field. Untuk lebih memahaminya, cobalah
skrip berikut:
Skrip BuatDbase.php
<?php
$array_field=array(array("Nim","C",5),array("Nama","C",30),array("Tgl_l
ahir","D"),array("Jml_SKS","N",3, 0),array("IP","N",4,2));
$mahasiswa=dbase_create("mahasiswa.dbf",$array_field);
if(!$mahasiswa)
{
echo("Tabel gagal dibuat!!");
exit;
}
$mahasiswa=dbase_open("mahasiswa.dbf",2);
$data_record=array("02190","Yudi Irawan","19790305",60 , 3.25);
dbase_add_record($mahasiswa,$data_record);
$data_record=array("02191","Tri Aji Hartarto","19781210",62 , 3.01);
dbase_add_record($mahasiswa,$data_record);
$data_record=array("02240","Muslikh Anshari","19791109",62 , 3.33);
dbase_add_record($mahasiswa,$data_record);
echo("<TABLE BORDER=1>");
echo("<CAPTION><B>Tabel Data Mahasiswa</B></CAPTION>");
echo("<TR>");
echo("<TH>No.Induk Mahasiswa</TH>");
echo("<TH>Nama Mahasiswa</TH>");
echo("<TH>Tanggal Lahir</TH>");
echo("<TH>Jumlah SKS</TH>");
echo("<TH>Indeks Prestasi</TH>");

$jmlrecord=dbase_numrecords($mahasiswa);
for($indeks=1;$indeks<=$jmlrecord;$indeks++)
{
$data=dbase_get_record($mahasiswa,$indeks);
echo("<TR>");
echo("<TD>$data[0]</TD>");
echo("<TD>$data[1]</TD>");
echo("<TD>$data[2]</TD>");
echo("<TD>$data[3]</TD>");
echo("<TD>$data[4]</TD>");
echo("</TR>");
}
echo ("</TABLE>");
dbase_close($mahasiswa);
?>

Gambar. Hasil skrip BuatDbase.php

Mengganti Format Tanggal


Secara default, tampilan tanggal akan tampak seperti pada gambar 107, lihat di bagian
Tanggal Lahir, masih terlihat tidak beraturan dan mengikuti format tanggal luar. Untuk
mengubah dan merapikannya, gunakan fungsi: substr.
Untuk mencobanya, buka skrip BuatDbase.php, lalu cari baris kode:
$data_record=array("02190","Yudi Irawan","19790305",60 , 3.25);

Ganti dengan enam baris kode berikut:


$tanggal=substr("19790305",6,2);
$bulan=substr("19790305",4,2);
$tahun=substr("19790305",2,2);
$tgl_lahir=$tanggal."-".$bulan."-".$tahun;

$data_record=array("02190","Yudi Irawan",$tgl_lahir,60 , 3.25);


dbase_add_record($mahasiswa,$data_record);

Catatan:
Enam baris kode di atas hanya untuk mengganti format tanggal sebuah record, yaitu
record pertama. Untuk record berikutnya, dengan cara yang sama, silahkan Anda
mencobanya sendiri.

Gambar. Format Tanggal Lahir telah diubah

Menghapus dan Mengganti suatu Record


Dalam suatu operasi database juga dikenal operasi penghapusan record, Anda juga bisa
melakukannya di PHP, gunakan fungsi:
dbase_delete_record(pengenal_tabel,nomor_record);
Kemudian untuk menghapus record yang telah terhapus, bingung ya?! Sebenarnya, ketika
sebuah record diberi fungsi: dbase_delete_record, record tersebut tidaklah benar-benar
dihapus, melainkan hanya disembunyikan saja (kayak Recycle Bin itu lo). Untuk benarbenar menghapus record-record tersebut, gunakan fungsi:
dbase_pack(pengenal_tabel);
Selain penghapusan record, Anda juga bisa melakukan pengeditan (penggantian) pada
record, gunakan fungsi:
dbase_replace_record(pengenal_tabel,array_record,nomor_record);

Untuk memperjelasnya, cobalah skrip berikut:


Skrip Ganti.php
<?php
$mahasiswa=dbase_open("mahasiswa.dbf",2);
$array_baru=array("02190","Yudi Irawan","19790305",84 , 3.21);
dbase_replace_record($mahasiswa,$array_baru,1);
dbase_delete_record($mahasiswa,3);
dbase_pack($mahasiswa);
echo("<TABLE BORDER=1>");
echo("<CAPTION><B>Tabel Data Mahasiswa</B></CAPTION>");
echo("<TR>");
echo("<TH>No.Induk Mahasiswa</TH>");
echo("<TH>Nama Mahasiswa</TH>");
echo("<TH>Tanggal Lahir</TH>");
echo("<TH>Jumlah SKS</TH>");
echo("<TH>Indeks Prestasi</TH>");
$jmlrecord=dbase_numrecords($mahasiswa);
for ($indeks=1;$indeks<=$jmlrecord;$indeks++)
{
$data=dbase_get_record($mahasiswa,$indeks);
echo("<TR>");
echo ("<TD>$data[0]</TD>");
echo ("<TD>$data[1]</TD>");
echo ("<TD>$data[2]</TD>");
echo ("<TD>$data[3]</TD>");
echo ("<TD>$data[4]</TD>");
echo ("</TR>");
}
echo ("</TABLE>");
dbase_close($mahasiswa);
?>

Gambar. Hasil skrip Ganti.php

Catatan:
Pada skrip Ganti.php, kita telah melakukan penghapusan data mahasiswa di record 3,
yaitu: Muslikh Anshari dengan NIM: 02240. Selain itu, kita juga melakukan pengubahan
data pada record 1, di kolom Tanggal Lahir, Jumlah SKS dan Indeks Prestasi (lihat lagi
gambarnya).

Anda mungkin juga menyukai