Artikel ini akan membahas aplikasi pencarian data buku sederhana. Aplikasi ini menggunakan Flex sebagai user interface, database MySQL dan PHP untuk meng-generate XML data hasil pencarian.
Aplikasi ini memiliki satu buah text input, dua buah tombol (Cari dan Kosongkan) serta satu buah datagrid. Pengguna memasukkan kata kunci yang dicari, kemudian menekan tombol Cari untuk memproses permintaan dan menampilkan hasil pencarian pada datagrid.
Aplikasi akan mencari data buku berdasarkan kata kunci yang diberikan. Jika terdapat lebih dari satu kata kunci, pencarian akan dilakukan dengan menggunakan tiap-tiap kata. Data buku yang pada kolom judul, pengarang, atau penerbit mengandung minimal satu kata kunci, akan ditampilkan ke dalam hasil pencarian.
Berikut adalah struktur dan data buku yang digunakan.
– Database: `pustaka`
CREATE TABLE IF NOT EXISTS `tbldatabuku` (
`IDbuku` varchar(30) default NULL,
`Judul` varchar(50) NOT NULL default ”,
`Pengarang` varchar(40) NOT NULL default ”,
`Penerbit` varchar(30) NOT NULL default ”,
UNIQUE KEY `IDbuku` (`IDbuku`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `tbldatabuku` (`IDbuku`, `Judul`, `Pengarang`, `Penerbit`) VALUES
(’9797560001′, ‘Biografi Aa” Jimmy’, ‘Aa” Jimmy’, ‘Erlangga’),
(’9797560002′, ‘Pemrograman Pascal Untuk Pemula’, ‘Indra Azimi’, ‘Elex Media’),
(’9797580002′, ‘PBO dengan Java’, ‘AH Sutopo & Fajar Masya’, ‘Graha Ilmu’),
(’9797570001′, ‘Pemrograman Web untuk Pemula’, ‘Indra Azimi’, ‘Erlangga’),
(’9797570002′, ‘Tutorial Flex 3′, ‘Aa” Jimmy’, ‘Erlangga’),
(’9797560003′, ‘Pemrograman Java Untuk Pemula’, ‘Indra Azimi’, ‘Elex Media’),
(’9797580001′, ‘Hacking Tingkat Menengah’, ‘Indra Azimi’, ‘Elex Media’);
PHP bertugas meng-generate XML data hasil pencarian. Pada kode PHP (pencarian.php) berikut ini, dapat dilihat bahwa pertama, dibuat syarat kueri yang akan dilakukan. Kata kunci dipecah dan dipisah berdasarkan spasi. Kemudian dilakukan perulangan pada tiap-tiap kata kunci yang telah dipecah untuk ditambahkan ke syarat kueri.
Kemudian dilakukan koneksi ke MySQL, dilakukan kueri, dan data hasil kueri ditulis ke dalam bentuk XML.
<?php
$dicari = $_POST[’cari’];
$kata = explode(” “, $dicari);
$ygcari = $kata[0];
$syarat = “`IDbuku` LIKE ‘%$ygcari%’ OR `Judul` LIKE ‘%$ygcari%’ OR `Pengarang` LIKE ‘%$ygcari%’ OR `Penerbit` LIKE ‘%$ygcari%’”;
$jmlh = count($kata);
for ($i = 1; $i < $jmlh; $i++) {
$ygcari = $kata[$i];
$syarat .= ” OR `IDbuku` LIKE ‘%$ygcari%’ OR `Judul` LIKE ‘%$ygcari%’ OR `Pengarang` LIKE ‘%$ygcari%’ OR `Penerbit` LIKE ‘%$ygcari%’”;
}
$host=”localhost”;
$username=”root”;
$password=”root”;
$databasename=”pustaka”;
$link=mysql_connect($host,$username,$password) or die(”database tidak dapat ditampilkan”);
mysql_select_db($databasename,$link);
$sqlstr = “SELECT `IDbuku`, `Judul`, `Pengarang`, `Penerbit`
FROM `tbldatabuku`
WHERE $syarat”;
$result = mysql_query($sqlstr) or die(”kesalahan pada perintah sql”);
$i = 1;
$return = “”;
while($hasil = mysql_fetch_array($result)) {
$return .= “<buku><no>$i</no><idbuku>$hasil[0]</idbuku><judul>$hasil[1]</judul>”;
$return .= “<pengarang>$hasil[2]</pengarang><penerbit>$hasil[3]</penerbit></buku>” . “\n”;
$i++; }
echo “<databuku>\n$return</databuku>”;
mysql_free_result($result);
mysql_close($link);
?>
Berikut adalah kode di Flex.
<?xml version=”1.0″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” verticalAlign=”middle” backgroundColor=”#CCFFCC“>
<mx:Script><![CDATA[
import mx.controls.Alert;
private function AmbilTeks():void {
reqCari.send();
}
private function CariData():void {
if (txtCari.text!=“”) {
reqCari.send();
}
else {
Alert.show(“Isilah kata kunci yang dicari.”,“POST”,Alert.OK);
}
}
private function KosongkanTeks():void {
txtCari.text = “”;
txtCari.setFocus();
}
]]></mx:Script>
<mx:HTTPService id=”reqCari” showBusyCursor=”true” url=”http://localhost/pustaka/pencarian.php” useProxy=”false” method=”POST“>
<mx:request xmlns=”">
<cari>{txtCari.text}</cari>
</mx:request>
</mx:HTTPService>
<mx:Canvas width=”780” height=”580” backgroundColor=”#95ABB6“>
<mx:Panel width=”250” height=”141” layout=”absolute” x=”10” y=”10” title=”Pencarian“>
<mx:Label x=”10” y=”10” text=”Masukkan kata kunci yang Anda cari“/>
<mx:TextInput x=”10” y=”36” width=”210” id=”txtCari“/>
<mx:Button x=”10” y=”66” label=”Cari” id=”cmdCari” width=”100” click=”CariData()”/>
<mx:Button x=”118” y=”66” label=”Kosongkan” id=”cmdKosong” width=”100” click=”KosongkanTeks()”/>
</mx:Panel>
<mx:DataGrid x=”10” y=”159” width=”760” height=”411” fontWeight=”normal” dataProvider=”{reqCari.lastResult.databuku.buku}“>
<mx:columns>
<mx:DataGridColumn headerText=”No.” dataField=”no“/>
<mx:DataGridColumn headerText=”ID Buku” dataField=”idbuku“/>
<mx:DataGridColumn headerText=”Judul” dataField=”judul“/>
<mx:DataGridColumn headerText=”Pengarang” dataField=”pengarang“/>
<mx:DataGridColumn headerText=”Penerbit” dataField=”penerbit“/>
</mx:columns>
</mx:DataGrid>
</mx:Canvas>
</mx:Application>
Aplikasi Pencarian Data Buku sederhana ini dapat dikembangkan lebih lanjut, antara lain dengan menambahkan fungsi mengurutkan data hasil pencarian berdasarkan tingkat relevansi. Selain itu, kata kunci yang mengandung banyak kata akan menyebabkan syarat kueri menjadi panjang. Hal ini tentu perlu di-efisien-kan dengan algoritma yang lebih baik.
Diharapkan ada artikel lain yang membahas pengembangan aplikasi pencarian data buku ini. Semoga..











By
vanudin on Sep 15, 2008 | Reply
Bravo untuk flex-id.org
oh ya, skedar saran. untuk sample aplikasi yang sudah dibuat, alangkah baiknya juga ada link ke demo atau download scriptnya.
thx,
vanudin
http://www.patromax.com
By
nn on Sep 23, 2008 | Reply
monggo mampir mas http://www.smkn26jakarta.sch.id/student
By
greenscience on Sep 23, 2008 | Reply
saya sedang coba bikin aplikasi e-learning http://www.smkn26jakarta.sch.id/student
masih banyak bug, mohon masukannya dari rekan2
trims
By
galung on Dec 16, 2008 | Reply
waduh tolong donk mas2 yang hebat.. saya lagi ngebet banget ama flex ini.. sample programnya donk tq.. n tutorial dasar2nya donk.. banyak yg ga ngerti saya tentang tuto yang laennya.. bodohnya saya T_T
By
viorin on Dec 31, 2008 | Reply
ada contoh scripnya ga?
url http://www.smkn26jakarta.sch.id/student
mau dong kirim ke emailku