Implementasi Web Service Sederhana dengan NuSoap
Berhubung kemarin sempet dapat tugas Mata kuliah SIT (Sistem Informasi Terdistribusi) dan dapet jatah membahas Web service.. So, pada kesempatan ini saya mau share sedikit tentang apa itu Web Service dan bagaimana implementasi Web Service itu sendiri…
. Oke, sebelum masuk ke Tutorial, let’s see.. apa itu “Web Service”.
Ok, jadi Web Service merupakan suatu sistem yang dirancang untuk mendukung interoperabilitas dan interaksi komunikasi antar sistem (aplikasi) dalam suatu jaringan. Web Service memungkinkan kita dapat mengakses informasi atau mendapatkan potongan informasi dari suatu aplikasi melalui aplikasi yang lain. Contoh mudahnya misal pada layanan yang terdapat di Facebook atau Twitter. Kita (user) dapat mengakses dan berinteraksi dengan Facebook atau Twitter baik melalui website (facebook.com / twitter.com) atau melalui aplikasi-aplikasi daripihak ketiga seperti Aplikasi Facebook yang ada di Ponsel, Aplikasi seperti TwitDeck, Yoono dsb. Aplikasi-aplikasi tersebut memanfaatkan “Web Service” yang disediakan oleh Facebook maupun Twitter sehingga dapat memperoleh konten informasi dari aplikasi tersebut.
Web service sendiri dibentuk dari :
- Service provider, merupakan pemilik Web Service yang berfungsi menyediakan kumpulan operasi dari Web Service.
- Service requestor, merupakan aplikasi yang bertindak sebagai klien dari Web Service yang mencari dan memulai interaksi terhadap layanan yang disediakan.
- Service registry, merupakan tempat dimana Service provider mempublikasikan layanannya. Pada arsitektur Web Service, Service registry bersifat optional. Teknologi web service memungkinkan kita dapat menghubungkan berbagai jenis software yang memiliki platform dan sistem operasi yang berbeda.

Web Service menggunakan SOAP (Simple Object Access Protocol) yang berbasis pada XML. XML (Extensible Markup Language) merupakan standar bahasa yang digunakan dalam pertukaran data dalam Web Service. Web Service yang akan kita buat ini akan menggunakan library Open Source bernama “NuSOAP” . NuSOAP adalah sebuah kumpulan class-class PHP yang memungkinkan user untuk mengirim dan menerima pesan SOAP melalui protokol HTTP. NuSoap sendiri dapat diunduh secara gratis di sini. Ok. mari kita mulai tutorialnya..
Pada contoh kasus ini kita akan membuat aplikasi Web Service untuk mengakses Data mahasiswa. yang perlu kita siapkan untuk membuat aplikasi Web service “Data Mahasiswa” antara lain :
- Library Web Service : NuSOAP
- Rancangan Database Mahasiswa (mhs_webserv.sql)
- Rancangan Script untuk Server (server.php)
- Rancangan Script untuk Client. (client.php)
1. Library Web Service NuSOAP
NuSOAP yang sudah kita download kita extrak dan kita letakkan satu folder dengan aplikasi web service yang akan kita buat. Jangan lupa untuk menon-aktifkan fitur SOAP bawaan PHP yang bisa disetting di file php.ini. (extension=php_soap.dll) dan mengaktifkan fitur CURL (extension=php_curl.dll).
2. Rancangan Database Mahasiswa :
Database Engine yang kita pakai adalah MySQL. Struktur Database/Table : Database Name = mhs_webserv, Table Name = mahasiswa;
a. Buat Database “mhs_webserv”
create database mhs_webserv;
b. Buat Tabel “mahasiswa” :
CREATE TABLE IF NOT EXISTS `mahasiswa` (
`nim` varchar(10) NOT NULL,
`nama` varchar(50) NOT NULL,
`alamat` text NOT NULL,
PRIMARY KEY (`nim`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
c. Isi data mahasiswa.
INSERT INTO `mahasiswa` (`nim`, `nama`, `alamat`) VALUES
('001', 'Kabul', 'Pekalongan'),
('002', 'Ridwan', 'Semarang');
3. Rancangan Script untuk Server (server.php)
<?php
//panggil file soap
require_once '../../nusoap/nusoap.php';
$ws_srv = new soap_server();
$ws_srv->register(ambilData);
function tes($param){
$nama= $param['nama'];
$alamat = $param['alamat'];
$return_value[] =array('nama'=>$nama,'alamat'=>$alamat);
return ($return_value);}
function ambilData(){
mysql_connect('127.0.0.1','root','');
mysql_select_db('coba_wservice');
$sql = mysql_query('SELECT * FROM mahasiswa WHERE 1');
$return_data_count=mysql_num_rows($sql);
//$return_data[]=array();
while ($row=mysql_fetch_array($sql)){
$return_data[]=array('nim'=>$row['nim'],'nama'=>$row['nama'],
'alamat'=>$row['alamat']);
}
$return['count']=$return_data_count;
$return['data']=$return_data;
return $return;
}
$HTTP_RAW_POST_DATA = isset ($HTTP_RAW_POST_DATA) ?
$HTTP_RAW_POST_DATA:"";
$ws_srv->service($HTTP_RAW_POST_DATA);
?>
4. Rancangan Script untuk Client. (client.php)
<?php
require_once('../../nusoap/nusoap.php');
$client = new soapclient('http://127.0.0.1/mhs_webserv/server/');
//$param = array('nama'=>'Kabul Kurniawan','alamat'=>'Pekalongan');
$result = $client->call('ambilData');
$n=$result['count'];
$data=$result['data'];
echo '<table border=1>';
echo "<tr><th>Nim</th><th>Nama</th><th>Alamat</th></tr>";
for($i=0;$i<$n;$i++){
echo "<tr><td>".$data[$i]['nim']."</td><td>".$data[$i]['nama'].
"</td><td>".$data[$i]['alamat']."</td></tr>";
}
echo "</table>";
print_r ($result['count']);
echo'<br>';
print_r ($result['data']);
?>
Setelah rancangan-rancangan tersebut dibuat, kita dapat langsung mengakses data mahasiswa melalui client.php, berikut hasilnya.. :)
NB : Contoh Source Code, database beserta Library NuSOAP dapat anda download di sini., semoga bermanfaat












May 17th, 2011 at 10:25 pm
mau tanya dong…:D, gimana yak cara mengetahui response time pada NuSoap.
May 19th, 2011 at 5:53 pm
@apri : coba di debug manual aja mas di NuSOAP-nya :
echo ” . htmlspecialchars($client->request, ENT_QUOTES) . ”;
echo ” . htmlspecialchars($client->response, ENT_QUOTES) . ”;
June 4th, 2011 at 12:22 am
saya mengikuti step diatas, kenapa datanya tidak muncul ya mas. apa ada settingan tambahan. yang saya gunakan. makasih
June 7th, 2011 at 9:42 pm
@mhs : ada pesan error apa mas? hmm, mungkin settingan webservernya mas, dicek soap bawaan php-nya apakah dah off? atau path Nusoap-nya.. mungkin belum ngelink.
June 14th, 2011 at 5:12 pm
bang,kok error. knp ya ? muncul pesan spt di bwah ini :
Warning: require_once(../../nusoap/nusoap.php) [function.require-once]: failed to open stream: No such file or directory in C:\xampp\..\..\client\client.php on line 2
Fatal error: require_once() [function.require]: Failed opening required ‘../../nusoap/nusoap.php’ (include_path=’.;C:\xampp\php\pear\’) in C:\xampp\..\..\client\client.php on line 2
June 14th, 2011 at 8:50 pm
@mhs : oh itu path nusoap-nya keliru mas. jika ditaruh dalam satu folder dengan folder mhs_webserv maka path yang bener : ‘../nusoap/nusoap.php’. monggo dicoba
June 18th, 2011 at 8:57 pm
mas, masnya ngejalin scriptnya di php versi brp ya klo bole tau?
saya jalanin di php 5.3.3 kug deprecated ya..
June 24th, 2011 at 1:35 pm
@admin: Terima kasih tutorialnya Bang Admin. Tambah lagi ya tutorialnya..:)
@annie: Coba pake nusoap-0.9.5..
June 25th, 2011 at 11:23 am
@anni : saya pake php versi 5.3.1, saran mas danukidd bisa dicoba
@danikudd: insyaAlloh mas
July 29th, 2011 at 9:33 am
mas saya pake severnya apache2triad, udah pake nusoap 0.9.5 keluar message gini “This service does not provide a Web description”.
kalo pake contoh yang ini
“NB : Contoh Source Code, database beserta Library NuSOAP dapat anda download di sini.”, di servernya muncul xml tapi datanya ga ada.
Solusinya apa ya? Tq
August 12th, 2011 at 11:17 am
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn’t load from ‘http://localhost/nusoap/samples/service.php‘
mas saya nyoba kok ga bisa2 muncul pesan diatas terus ya, untuk settingan sudah semunya di enable dan patch nusoapnya juga udah bener.
August 12th, 2011 at 11:27 am
kalau file servernya yang dijalankan muncul error seperti ini
This service does not provide a Web description
October 6th, 2011 at 1:44 am
thx untuk tutorial simple namun sangat informatif.
saya terbantu sekali dengan contoh sederhana dan fundamental seperti ini dibanding dengan berbagai contoh yg rumit dari google search.
terima kasih mas
sekarang saya bisa mengerti SOAP menggunakan php.
November 3rd, 2011 at 8:00 pm
bro, mau nanya nih, kalau errornya seperti ini, kira2 apa yang salah ya? mohon dibantu, thx a lot
Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\mhs\nusoap\nusoap.php on line 5046
Fatal error: Cannot redeclare class soapclient in C:\xampp\htdocs\mhs\nusoap\nusoap.php on line 5583
December 8th, 2011 at 3:45 pm
Deprecated: Assigning the return value of new by reference is deprecated in E:\www\mhs_webserv\nusoap\nusoap.php on line 5046
Deprecated: Function ereg() is deprecated in E:\www\mhs_webserv\nusoap\nusoap.php on line 5265
Deprecated: Function ereg() is deprecated in E:\www\mhs_webserv\nusoap\nusoap.php on line 1602
Deprecated: Function ereg() is deprecated in E:\www\mhs_webserv\nusoap\nusoap.php on line 5287
Deprecated: Function ereg() is deprecated in E:\www\mhs_webserv\nusoap\nusoap.php on line 2052
Deprecated: Function eregi() is deprecated in E:\www\mhs_webserv\nusoap\nusoap.php on line 5351
December 8th, 2011 at 3:46 pm
saya pakai versi php 5.3.6 kok error seperti diatas Mas Kabul ?
February 13th, 2012 at 10:18 am
makasih mas buat tutorialnya..
saya coba dulu, semoga bermanfaat buat TA saya.. heee