Implementasi Web Service Sederhana dengan NuSoap

Share :

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… :D . 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 :

  1. Service provider, merupakan pemilik Web Service yang berfungsi menyediakan kumpulan operasi dari Web Service.
  2. Service requestor, merupakan aplikasi yang bertindak sebagai klien dari Web Service yang mencari dan memulai interaksi terhadap layanan yang disediakan.
  3. 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 :

  1. Library Web Service : NuSOAP
  2. Rancangan Database Mahasiswa (mhs_webserv.sql)
  3. Rancangan Script untuk Server (server.php)
  4. 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 :)

This entry was posted on Monday, May 2nd, 2011 at 9:20 pm and is filed under Open Source, Programming, Research. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

17 Responses to “Implementasi Web Service Sederhana dengan NuSoap”

  1. apri Says:

    mau tanya dong…:D, gimana yak cara mengetahui response time pada NuSoap.

  2. admin Says:

    @apri : coba di debug manual aja mas di NuSOAP-nya :
    echo ” . htmlspecialchars($client->request, ENT_QUOTES) . ”;
    echo ” . htmlspecialchars($client->response, ENT_QUOTES) . ”;

  3. mhs Says:

    saya mengikuti step diatas, kenapa datanya tidak muncul ya mas. apa ada settingan tambahan. yang saya gunakan. makasih

  4. admin Says:

    @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.

  5. mhs Says:

    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

  6. admin Says:

    @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 :)

  7. annie Says:

    mas, masnya ngejalin scriptnya di php versi brp ya klo bole tau?
    saya jalanin di php 5.3.3 kug deprecated ya..

  8. danukidd Says:

    @admin: Terima kasih tutorialnya Bang Admin. Tambah lagi ya tutorialnya..:)
    @annie: Coba pake nusoap-0.9.5..

  9. admin Says:

    @anni : saya pake php versi 5.3.1, saran mas danukidd bisa dicoba :)
    @danikudd: insyaAlloh mas :)

  10. dian Says:

    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

  11. dakoel Says:

    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.

  12. dakoel Says:

    kalau file servernya yang dijalankan muncul error seperti ini

    This service does not provide a Web description

  13. Lindsay Cornelia Says:

    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.

  14. hengky Says:

    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

  15. iyan Says:

    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

  16. iyan Says:

    saya pakai versi php 5.3.6 kok error seperti diatas Mas Kabul ?

  17. sigit Says:

    makasih mas buat tutorialnya..
    saya coba dulu, semoga bermanfaat buat TA saya.. heee

Leave a Reply

CommentLuv Enabled