web service for data collecting by joko triyono ‐ 6/22/2010
1
WEB SERVICE FOR DATA COLLECTING BY JOKO TRIYONO Setelah melakukan beberapa percobaan terkait dengan usulan proyek ‘collecting data’, didapat beberapa temuan yang terkait dengan kasus tersebut. Web Service sebagai teknik pemrograman yang multiplatform menjadi sangat dibutuhkan pada era saat ini, saat ini telah terbangun banyak sekali sistem informasi yang pada kenyataannya dari masing‐masing sistem informasi yang ada masih dan bahkan tidak ada koneksi dengan sistem informasi yang lain, bahkan dalam satu atap kantorpun masih terjadi tumpang tindih dalam hal ini. Refferensi sebagai berikut bisa digunakan untuk lebih memahami tentang web service : http://jack.akprind.ac.id/doc/web‐service, silahkan diunduh dan digunakan sebaik‐baiknya. Dalam kasus ini disimulasikan penggunaan web service pada proses pencarian dan penyajian data dari beberapa situs dan database yang berbeda. Dengan satu isian pencarian, maka web akan mencari menggunakan teknologi ajax untuk diteruskan ke web service yang telah terinstall atau terhubung dan hasil pencarian (response) akan diberikan ke halaman ini untuk di tempatkan pada posisi yang telah di tentukan (teknik ajax dengan
). Gambar 1.1 menunjukkan halaman depan dari simulasi ini.
Gambar 1.1 Halaman depan Simulasi
Dengan begitu berapapun atau apapun hasil pencarian terhadap sumber data (web service), akan ditampilkan. Kombinasi penggunaan web service dengan ajax menjadi tidak bisa dipungkiri lagi, karena teknik ajax sangat membantu dalam hal layout (by output) sedangkan web service menjadi motor proses dalam penyediaan data (by data), baik itu berupa data dalam format xml maupun data dalam bentuk text atau script yang siap digunakan. Gambar 1.2 menunjukkan kombinasi pemakaian web service dan ajax
web service for data collecting by joko triyono ‐ 6/22/2010
2
Web HTML atau PHP
SISI CLIENT
File java script (*.js)
Nusoap.php
File java script (*.php) File java script File (*.php) java script (*.php)
Web sevice dan nusoap Web A Web sevice dan nusoap Web B Web sevice dan nusoap Web dll SISI SERVER dg WEB SERVICE
Gambar 1.2 Kombinasi Web Service dengan Ajax Gambar 1.3 menunjukkan hasil dari pencarian terhadap suatu obyek yang dimasukkan pada text box, dari hasil pencarian terlihat bahwa beberapa obyek didapat dari beberapa situs yang telah terdaftar.
Gambar 1.3 Hasil pencarian obyek dari Web Service
web service for data collecting by joko triyono ‐ 6/22/2010
3
Listing dan bagan dari Web Service Simulation, dengan komponen sebagai berikut : Sisi Client (http://localhost/ws/ws/ • index.html • cari.js • client.php • about.html • lib/nusoap.php Sedang pada sisi server masing • sdigilib.php dan lib/nusoap.php • sperpus.php dan lib/nusoap.php • smylibrary.php dan lib/nusoap Listing program Sisi Client index.html
PENCARIAN JUDUL BUKU PERPUSTAKAAN MENGGUNAKAN FASILITAS WEB SERVICE about me <script src="cari.js"> <style type="text/css"> #cari { margin:0px; width:700px; } #name { margin:0px; }
WEB SERVICE SIMULATION
web service for data collecting by joko triyono ‐ 6/22/2010
cari.js var xmlHttp function showResult(str) { if (str.length==0) { document.getElementById("cari"). innerHTML=""; document.getElementById("cari"). style.border="0px"; return } xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Browser tidak support HTTP Request") return } var url="client.php" url=url+"?name="+str url=url+"&sid="+Math.random() xmlHttp.onreadystatechange=stateChanged xmlHttp.open("GET",url,true) xmlHttp.send(null) } function stateChanged() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { document.getElementById("cari").innerHTML=xmlHttp.responseText; document.getElementById("cari").style.border="1px solid #A5ACB2"; } } function GetXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) {
4
web service for data collecting by joko triyono ‐ 6/22/2010
// Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; }
client.php '; $client1 = new nusoap_client('http://localhost/ws/ws/sdigilib.php'); $result1 = $client1‐>call('digilib', array('name' => $_GET['name'])); $client2 = new nusoap_client('http://localhost/ws/ws/sperpus.php'); $result2 = $client2‐>call('PerpusMKOM', array('name' => $_GET['name'])); $client3 = new nusoap_client('http://localhost/ws/ws/smylibrary.php'); $result3 = $client3‐>call('MyLibrary', array('name' => $_GET['name'])); echo $he.$result1.$result2.$result3; ?>
about.html
‐‐berisi html biasa
lib/nusoap.php
‐‐file nusoap.php dengan jumlah baris 7993
Sedang pada sisi server masing sdigilib.php dan lib/nusoap.php configureWSDL('Digital Library ISTA', $ns); $server‐>wsdl‐>schemaTargetNamespace = $ns; $server‐>register('digilib', array('name' => 'xsd:string'), array('name' => 'xsd:string'), $ns); function digilib($name) { if ($conn = mysql_connect("localhost", "laptop", "")) {
5
web service for data collecting by joko triyono ‐ 6/22/2010
if ($db = mysql_select_db("sditakd")) { $result = mysql_query("SELECT idguru,nama FROM guru WHERE lower(nama) like lower('%$name%') order by nama"); if(mysql_num_rows($result)) { $ke='
'; $i=0; while ($row = mysql_fetch_array($result)) { $kd_buku = $row["idguru"]; $judul = $row["nama"]; $i++; $ke .= "
Sumber Digital Library ISTA
($kd_buku) <judul>$judul "; } $ke .= ""; } } } return $ke; } // $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : // ”; $server‐>service($HTTP_RAW_POST_DATA); exit(); ?>
sperpus.php dan lib/nusoap.php configureWSDL('Perpustakaan MKOM', $ns); $server‐>wsdl‐>schemaTargetNamespace = $ns; $server‐>register('PerpusMKOM', array('name' => 'xsd:string'), array('name' => 'xsd:string'), $ns); function PerpusMKOM($name) { if ($conn = mysql_connect("localhost", "laptop", "")) { if ($db = mysql_select_db("324388")) { $result = mysql_query("SELECT nis,nama FROM mhsqu WHERE lower(nama) like lower('%$name%') order by nama"); if(mysql_num_rows($result)) { $ke='
'; $i=0; while ($row = mysql_fetch_array($result)) {
6
web service for data collecting by joko triyono ‐ 6/22/2010
$kd_buku = $row["nis"]; $judul = $row["nama"]; $i++; $ke .= "
Sumber Mahasiswa qu
($kd_buku) <judul>$judul "; } $ke .= ""; // $cari = strtoupper($cari); $hke=htmlentities($ke); } } } return $ke; } // $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : // ”; $server‐>service($HTTP_RAW_POST_DATA); exit(); ?>
smylibrary.php dan lib/nusoap configureWSDL('Perpustakaan Umum', $ns); $server‐>wsdl‐>schemaTargetNamespace = $ns; $server‐>register('MyLibrary', array('name' => 'xsd:string'), array('name' => 'xsd:string'), $ns); function MyLibrary($name) { if ($conn = mysql_connect("localhost", "root", "")) { if ($db = mysql_select_db("mylibrary")) { $result = mysql_query("SELECT * FROM titles WHERE lower(title) like lower('%$name%') order by title"); if(mysql_num_rows($result)) { $ke='
'; $i=0; while ($row = mysql_fetch_array($result)) { $kd_buku = $row["titleID"]; $judul = $row["title"]; $penerbit = $row["authors"]; $pengarang= $row["authors"]; $judul=str_replace('&'," dan ",$judul); //$judul=str_replace('.',"X",$judul); $penerbit=str_replace('&'," dan ",$penerbit);
7
web service for data collecting by joko triyono ‐ 6/22/2010
$i++; $ke .= "
Sumber Perpustakaan Umum
($kd_buku) <judul> $judul
$penerbit $pengarang "; } $ke .= ""; } } } return $ke; } // $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : // ”; $server‐>service($HTTP_RAW_POST_DATA); exit(); ?>
8