Anda di halaman 1dari 20

Tutorial Web Service Sederhana dengan PHP NuSoap Oleh : Muhammad Hari Suharto (ak. muharihar) Email : muharihar[at]infoterkini.

com Blog : mhs.infoterkini.com YM : indoc !er"##" $ace!ook : %%%.face!ook.com&muharihar Minomartani' "( Okto!er "#)#' )#:(* +M Masalah Bagaimana cara mem!angun a,likasi %e! ser-ice sederhana dengan menggunakan +H+ .uSoa, se!agai ,ustaka %e! ser-ice/n a0 Solusi 1ntuk men2a%a! ,ro!lematika di atas' marilah kita mem!uat asumsi mengenai a,likasi %e! ser-ice ang akan kita !angun. Berikut adalah studi kasus ang akan di!ahas dan diselesaikan dengan menggunakan +H+ .uSoa, se!agai ,ustaka +H+ untuk %e! ser-ice. Studi Kasus 3kan di !angun se!uah la anan %e! ser-ice ang men ediakan data 2umlah ,enduduk disetia, ,ro,insi di 4ndonesia. 3,likasi la anan %e! ser-ice terse!ut nantin a akan dimanfaatkan untuk mela ani re5uest informasi 6umlah +enduduk 4ndonesia !erdasar ,ro,insi dan 2enis kelamin ang di-isualisasikan dengan 7oogleMa,. Solusi Studi Kasus Solusi studi kasus akan di !agi men2adi 8 9aha,an' aitu : ). Merancang 3rsitektur Sistem ". Merancang dan Mem!uat Struktur :ata!ase&9a!el ;. Mem!uat Scri,t <e! Ser-ice Ser-er (<S:=) (. Mem!uat Scri,t <e! Ser-ice >lient 8. ?isualisasi dengan 7oogleMa,

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

) & "#

Tahapan Solusi ). Merancang Arsitektur Sistem Bagan Arsitektur Sistem

Rancangan Hierarki Script

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

" & "#

". Merancang dan Membuat Stuktur Database/Tabel :ata!ase Engine : M S@= :ata!ase .a-igator : +h,M 3dmin Struktur Database/Table :ata!ase .ame : d!A%sdlma, 9a!le .ame : infoA,endudukA,ro,insi Struktur 9a!el
Nama ield ,ro,Aid ,ro,Akode ,ro,Anama ,ro,Ai!ukota ,ro,A2mlA,endudukA,ria ,ro,A2mlA,endudukA%anita ,ro,A%e!site ,ro,Ama,Alatitude ,ro,Ama,Alongitude T!pe Data int (auto increment) -archar -archar -archar !igint !igint -archar float float )## )#'C )#'C " )## )## "ength Nullable .o .o .o Yes .o .o Yes .o .o # # # # De#ault $onstraint/%nde& +rimar Be 1ni5ue

Scri,t : >reate data!ase db_wsdlmap


create database db_wsdlmap;

>reate ta!le info_penduduk_propinsi


CREATE TABLE `info_penduduk_propinsi` ( `prop_id` int(11 !"T !#LL A#T"_$!CRE%E!T& `prop_kode` 'arc(ar() !"T !#LL& `prop_nama` 'arc(ar(1** !"T !#LL& `prop_ibukota` 'arc(ar(1** +E,A#LT !#LL& `prop_-ml_penduduk_pria` bi.int()* !"T !#LL +E,A#LT /*/& `prop_-ml_penduduk_wanita` bi.int()* !"T !#LL +E,A#LT /*/& `prop_website` 'arc(ar(1** +E,A#LT !#LL& `prop_map_latitude` float(1*&0 !"T !#LL +E,A#LT /*1******/& `prop_map_lon.itude` float(1*&0 !"T !#LL +E,A#LT /*1******/& 2R$%AR3 4E3 (`prop_id` & #!$5#E 4E3 `prop_kode` (`prop_kode` ;

4nsert data ta!el info_penduduk_propinsi


$!6ERT $!T" `info_penduduk_propinsi` (`prop_id`& `prop_kode`& `prop_nama`& `prop_ibukota`& `prop_-ml_penduduk_pria`& `prop_-ml_penduduk_wanita`& `prop_website`& `prop_map_latitude`& `prop_map_lon.itude` 7AL#E6 (1& /11/& /!an..roe Ace( +arussalam/& /Banda Ace(/& )**890:& )*)8;)0& /(ttp<==www1ace(pro'1.o1id/& 81:81)9:& >8180):9* & ()& /1)/& /6umatera #tara/& /%edan/& 8;::?08& 8;888))& /(ttp<==www1pempropsu1.o1id/& )1118:88& >>18?8*>9 & (:& /1:/& /6umatera Barat/& /2adan./& ))?;>9*& ):*0;?*& /(ttp<==www1sumbarpro'1.o1id/& @*19:>>?*& 1**1;****: & (?& /1?/& /Riau/& /2ekanbaru/& ):)>*>?& )):?:1)& /(ttp<==www1riau1.o1id/& *1;;0;)0& 1*119*0;)8 & (8& /18/& /Aambi/& /Aambi/& 1:81:9*& 1)98;?0& /(ttp<==www1-ambipro'1.o1id/& @11?;81;:& 1*)1?:;*89 &

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

; & "#

(0& /10/& /6umatera 6elatan/& /2alemban./& :?)????& ::?:)*1& /(ttp<==www1sumselpro'1.o1id/& @:1:1>?:9& 1*:1>1?:>; & (9& /19/& /Ben.kulu/& /Ben.kulu/& 9;;0:*& 989080& /(ttp<==www1ben.kulupro'1.o1id/& @:1;**0?>& 1*)1)80)*: & (;& /1;/& /Lampun./& /Bandar Lampun./& :0;)98:& :?)1;1>& /(ttp<==www1lampun.1.o1id/& @81?8****& 1*81)0009* & (>& /1>/& /4ep1 Ban.ka Belitun./& /2an.kal 2inan./& 8?:;9;& ?>;>8*& /(ttp<==www1babelpro'1.o1id/& @)19?1*81& 1*01??*8>* & (1*& /)*/& /4epulauan Riau/& /Tan-un. 2inan./& 0:0*9;& 0:0>::& /(ttp<==www1kepripro1.o1id/& *1>*****& 1*?1??>>>9 & (11& /:*/& /Banten/& /6eran./& ?8;9;>9& ??)*)8?& /(ttp<==www1bantenpro'11.o1id/& @01?*8;19& 1*01*0?*1; & (1)& /:1/& /+4$ Aakarta/& /Aakarta/& ?:>*9?0& ???;8*1& /(ttp<==www1-akarta1.o1id/& @01)118??& 1*01;?810> & (1:& /:)/& /Aawa Barat/& /Bandun./& 1>9*:1*0& 1>1;:;0>& /(ttp<==www1-abarpro'1.o1id/& @91*>*>11& 1*9100;;;? & (1?& /::/& /Aawa Ten.a(/& /6emaran./& 18>)>??>& 18>00008& /(ttp<==www1-aten.pro'1.o1id/& @9118*>98& 11*11?*)8> & (18& /:?/& /+$ 3o.Bakarta/& /3o.Bakarta/& 100>>:>& 1009180& /(ttp<==www1-o.-apro'1.o1id/& @919>9))?& 11*1:0;9>9 & (10& /:8/& /Aawa Timur/& /6urabaBa/& 19>*0?0;& 1;1810:>& /(ttp<==www1-atimpro'1.o1id/& @91);>100& 11)19:?:>; & (19& /81/& /Bali/& /+enpasar/& 19181:*& 100)>0)& /(ttp<==www1balipro'1.o1id/& @;109*?8;& 1181)1)0:1 & (1;& /8)/& /!usa Ten..ara Barat/& /%ataram/& )*1?9??& )18?>81& /(ttp<==www1ntbpro'1.o1id/& @;18;1;)?& 11011*0;:? & (1>& /8:/& /!usa Ten..ara Timur/& /4upan./& )1)8>8>& )119)):& /(ttp<==www1nttpro'1.o1id/& @1*11;?:*1& 1):18>?;?> & ()*& /01/& /4alimantan Barat/& /2ontianak/& )*9*889& 1>9))0*& /(ttp<==www1kalbar1.o1id/& *11?)>)9& 1*>1)89:9; & ()1& /0)/& /4alimantan Ten.a(/& /2alan.karaBa/& >;0?:*& >)08>0& /(ttp<==www1kalten.1.o1id/& @110;1?;;& 11:1:;):88 & ())& /0:/& /4alimantan 6elatan/& /Ban-armasin/& 108*8:9& 10)*;90& /(ttp<==www1kalselpro'1.o1id/& @:1*>)0?)& 1181);:90* & ():& /0?/& /4alimantan Timur/& /6amarinda/& 1?;019>& 1:8?0>8& /(ttp<==www1kaltimpro'1.o1id/& 110?*0:*& 1101?1>:;; & ()?& /9*/& /Corontalo/& /Corontalo/& ?0:*9:& ?80>?)& /(ttp<==www1.orontalopro'1.o1id/& *18??)01& 1):1*?)01* & ()8& /91/& /6ulawesi #tara/& /%anado/& 1*;*8);& 1*?*?;>& /(ttp<==www1sulut1.o1id/& 11?9*;;>& 1)?1;?8?8> & ()0& /9)/& /6ulawesi Ten.a(/& /2alu/& 119?080& 1110:1:& /(ttp<==www1sulten.11.o1id/& @11?:**)8& 1)11??801; & ()9& /9:/& /6ulawesi 6elatan/& /%akasar/& ?118)>?& ?:?1;)>& /(ttp<==www1sulselpro'1.o1id/& @811:90):& 11>1?1)?0* & ();& /9?/& /6ulawesi Ten..ara/& /4endari/& >;;1)1& >9)890& /(ttp<==www1sulten.1.o1id/& @?11??>1*& 1))119?0*0 & ()>& /98/& /6ulawesi Barat/& /%amu-u/& *& *& /(ttp<==www1sulbar1.o1id/& @)1;??1:9& 11>1):)*9> & (:*& /;1/& /%aluku/& /%aluku/& 0:?1*9& 0181*8& /(ttp<==www1malukupro'1.o1id/& @:1):;?0)& 1:*11?8)9> & (:1& /;)/& /%aluku #tara/& /Ternate/& ?8)1)9& ?)>9?*& /(ttp<==www1malutpro'1.o1id/& 1189*>>>& 1)91;*;90> & (:)& /;8/& /2apua/& /AaBapura/& 1)>*9>>& 11?>*:>& /(ttp<==www1papua1.o1id/& @)18):0>8& 1?*10>91); & (::& /;9/& /2apua Barat/& /%anokwari/& *& *& /(ttp<==www1papuabarat1.o1id/& @*1;00009& 1:11)8**** ;

;. Membuat Script Web Service Server 'WSD"( Kebutuhan : ). 3M+ (3,ache M S@= +H+ ) ". +ustaka&=i!rar +H+ .uSoa, Bagan Komunikasi Script

index.php

nusoap.php
Script indeD.,h, nusoa,.,h, d!Aconfig.,h, %sAser-er.,h,

db_config.php
Keterangan

ws_server.php
Dependensi nusoa,.,h,' d!Aconfig.,h,' %sAser-er.,h,

Halaman 4ndeD <e! Ser-ice (+en edia <S:=) +ustaka .uSoa, Bonfigurasi Boneksi ke :ata!ase M S@= Scri,t <e! Ser-ice Ser-er

nusoa,.,h,' d!Aconfig.,h,

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

( & "#

Scri,t 4ndeD ( inde&)php )


DEp(p =FF F ,ile $ndeG F F @filesource indeG1p(p F @author mu(ari(ar H %u(ammad Iari 6u(arto F @package Jeb_6er'ice_Tutorial F @subpackage J6_6er'er F @license %$T F @version *1*11 F= ==-ust for simple securitB @ all p(p files must called from indeG1p(p define ( /%#6T_,R"%_$!+EK/& /6A%2LE_J6)*111)/ ; ==load nusoap librarB reLuire /11=*1lib=nusoap=lib=nusoap1p(p/; ==load db confi.uration reLuire /db_confi.1p(p/; ==run ws ser'er reLuire /ws_ser'er1p(p/; EM

Scri,t Bonfigurasi :ata!ase ( db*con#ig)php )


DEp(p =FF F +B Confi.uration F F @filesource db_confi.1p(p F @author mu(ari(ar H %u(ammad Iari 6u(arto F @package Jeb_6er'ice_Tutorial F @subpackage J6_6er'er +B Confi.uration F @license %$T F @version *1*11 F= if (N defined ( /%#6T_,R"%_$!+EK/ Odb_(ost P /1)91*1*11/; Odb_user P /mBsLl_user/; Odb_pwd P /mBsLl_user_password/; Odb_port P /::*0/; Odb_sc(ema P /db_wsdlmap/; Oconn P mBsLl_connect ( Odb_(ost& Odb_user& Odb_pwd connection/ ; if (Oconn Q mBsLl_selectdb ( Odb_sc(ema ; R EM or die ( /,ailed w(ile makin. database eGit ( /Cannot access file directlB/ ;

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

8 & "#

Scri,t <e! Ser-ice Ser-er ( +s*server)php )


DEp(p =FF F ,ile J6 6er'er F F @filesource ws_ser'er1p(p F @author mu(ari(ar H %u(ammad Iari 6u(arto F @package Jeb_6er'ice_Tutorial F @subpackage J6_6er'er 6er'ice F @license %$T F @version *1*11 F= if (N defined ( /%#6T_,R"%_$!+EK/ eGit ( /Cannot access file directlB/ ;

==J6 Confi.uration define ( /J6_!A%A_4EL"%2"4/& /J6_4EL"%2"4_K/ ; define ( /J6_!A%A_J6+L/& /J6+L_/ 1 J6_!A%A_4EL"%2"4 1 /1wsdl/

==Create J6 6er'ice $nstance wit( J6+L Ows_s'r P new nusoap_ser'er ( ; Ows_s'r@Msoap_defencodin. P /#T,@;/; Ows_s'r@Mconfi.ureJ6+L ( J6_!A%A_4EL"%2"4& /urn</ 1 J6_!A%A_J6+L ==,unction C(eckAut( @ #ser Aut(entication function C(eckAut((Op_(eader Q .lobal Ows_s'r; Oarr_( P Op_(eader; Ouser_name P Oarr_( S/Aut(6oapIeader/T S/#ser!ame/T; Opassword P Oarr_( S/Aut(6oapIeader/T S/2assword/T; Ouser_name P base0?_decode(Ouser_name ; Opassword P base0?_decode(Opassword ;

Oreturn P false; if ((Ouser_name PP /wsclient/ U (Opassword PP /secret/ Q Oreturn P true; R else Q Ows_s'r@Mfault ( /J66@ERR@L"C$!@**1/& /$!7AL$+_#6ER_"R_2A66J"R+/& /L"C$!/& /4ombinasi #ser dan 2assword 6ala(/ ; Oreturn P false; R R return Oreturn;

==Jeb 6er'ice ,unction @ List 2ropinsi function list_propinsi(Op_keB_searc(& Op_pa.e& Op_pa.e_siVe .lobal Oconn& Ows_s'r;

if (N C(eckAut( ( Ows_s'r@MreLuestIeader Q Oreturn S/data_count/T P *; Oreturn S/data/T P *; R else Q O'_keB_searc( P (NOp_keB_searc( HH Op_keB_searc(PP// E // < Op_keB_searc(; O'_pa.e P (NOp_pa.e HH Op_pa.ePP// E * < Op_pa.e; O'_pa.e_siVe P (NOp_pa.e_siVe HH Op_pa.e_siVePP// E 1* < Op_pa.e_siVe; O'_pa.e P (int O'_pa.e; O'_pa.e_siVeP(int O'_pa.e_siVe; O'_keB_searc( P /W/1O'_keB_searc(1/W/; O'_keB_searc(P(strin. O'_keB_searc(; OsLl P X6ELECT F ,R"% info_penduduk_propinsi JIERE prop_nama like /Ws/ L$%$T Wd& WdX;

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

C & "#

OsLl P sprintf(OsLl&O'_keB_searc(&O'_pa.e&O'_pa.e_siVe ; Ostmt P mBsLl_LuerB ( OsLl& Oconn ; ;

Oreturn_data_count P mBsLl_affected_rows ( Oconn Oreturn_data P arraB ( ; if (is_resource ( Ostmt Q w(ile ( Orow P mBsLl_fetc(_arraB ( Ostmt Oreturn_data ST P Orow; R R Oreturn S/data_count/T P Oreturn_data_count; Oreturn S/data/T P Oreturn_data; ;

R ==encode data Oreturn P base0?_encode ( serialiVe ( Oreturn return Oreturn; R

==Re.ister ,unction to 6er'ice Ows_s'r@Mre.ister ( /list_propinsi/& arraB (/p_keB_searc(/ PM /Gsd<strin./& /p_pa.e/ PM /Gsd<inte.er/& /p_pa.e_siVe/ PM /Gsd<inte.er/ & arraB (/return/ PM /Gsd<strin./ & /urn</ 1 J6_!A%A_J6+L& /urn</ 1 J6_!A%A_J6+L 1 /Ylist_propinsi/& /rpc/& /encoded/& /+eskripsi fun.si list_propinsi/ ; ==Create T(e 6er'ice Response OITT2_RAJ_2"6T_+ATA P isset ( OITT2_RAJ_2"6T_+ATA Ows_s'r@Mser'ice ( OITT2_RAJ_2"6T_+ATA ; eGit ( ; EM

E OITT2_RAJ_2"6T_+ATA < //;

Hasil WSD" Web Service Server


DEGml 'ersionP"1.0" encodin.P"ISO-8859-1"EM Ddefinitions Gmlns<6"A2@E!7P"http://schemas.xmlsoap.org/soap/envelope/" Gmlns<GsdP"http://www.w3.org/2001/ !"Schema" Gmlns<GsiP"http://www.w3.org/2001/ !"Schema#nstance" Gmlns<6"A2@E!CP"http://schemas.xmlsoap.org/soap/enco$#ng/"% Gmlns<tnsP"&rn:'S(")'S)*+"O!,O*) .ws$l" Gmlns<soapP"http://schemas.xmlsoap.org/ws$l/soap/"% Gmlns<wsdlP"http://schemas.xmlsoap.org/ws$l/" GmlnsP"http://schemas.xmlsoap.org/ws$l/" tar.et!amespaceP"&rn:'S(")'S)*+"O!,O*) .ws$l"M DtBpesM DGsd<sc(ema tar.et!amespaceP"&rn:'S(")'S)*+"O!,O*) .ws$l"M DGsd<import namespaceP"http://schemas.xmlsoap.org/soap/enco$#ng/" =M DGsd<import namespaceP"http://schemas.xmlsoap.org/ws$l/" =M D=Gsd<sc(emaM D=tBpesM Dmessa.e nameP"l#st)prop#ns#-e.&est"M Dpart nameP"p)/e0)search" tBpeP"xs$:str#ng" =M Dpart nameP"p)page" tBpeP"xs$:#nteger" =M Dpart nameP"p)page)s#1e" tBpeP"xs$:#nteger" =M D=messa.eM Dmessa.e nameP"l#st)prop#ns#-esponse"M Dpart nameP"ret&rn" tBpeP"xs$:str#ng" =M D=messa.eM DportTBpe nameP"'S)*+"O!,O*) ,ort20pe"M Doperation nameP"l#st)prop#ns#"M 9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

E & "#

DdocumentationM+eskripsi fun.si list_propinsiD=documentationM Dinput messa.eP"tns:l#st)prop#ns#-e.&est" =M Doutput messa.eP"tns:l#st)prop#ns#-esponse" =M D=operationM D=portTBpeM Dbindin. nameP"'S)*+"O!,O*) 3#n$#ng" tBpeP"tns:'S)*+"O!,O*) ,ort20pe"M Dsoap<bindin. stBleP"rpc" transportP"http://schemas.xmlsoap.org/soap/http" =M Doperation nameP"l#st)prop#ns#"M Dsoap<operation soapActionP"&rn:'S(")'S)*+"O!,O*) .ws$l4l#st)prop#ns#" stBleP"rpc" =M DinputM Dsoap<bodB useP"enco$e$" namespaceP"&rn:'S(")'S)*+"O!,O*) .ws$l" encodin.6tBleP"http://schemas.xmlsoap.org/soap/enco$#ng/" =M D=inputM DoutputM Dsoap<bodB useP"enco$e$" namespaceP"&rn:'S(")'S)*+"O!,O*) .ws$l" encodin.6tBleP"http://schemas.xmlsoap.org/soap/enco$#ng/" =M D=outputM D=operationM D=bindin.M Dser'ice nameP"'S)*+"O!,O*) "M Dport nameP"'S)*+"O!,O*) ,ort" bindin.P"tns:'S)*+"O!,O*) 3#n$#ng"M Dsoap<address locationP"http://localhost/p&5l#c/lect&re/we5serv#ce/ws2011.1/1.wss/#n$ex.php"% =M D=portM D=ser'iceM D=definitionsM

View WSDL dalam bentuk lain

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

* & "#

ScreenShoot Web Service Server 'WSD"(

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

F & "#

(. Membuat Script Web Service $lient Kebutuhan : ). 3+ (3,ache +H+) ". +ustaka&=i!rar +H+ .uSoa, Bagan Komunikasi Script

index.php

ws_client.php

nusoap.php

Script indeD.,h, %sAclient.,h, nusoa,.,h,

Keterangan Halaman 4ndeD Scri,t <e! Ser-ice >lient +ustaka .uSoa,

Dependensi %sAclient.,h, nusoa,.,h,

Scri,t 4ndeD ( inde&)php )


DEp(p =FF F ,ile $ndeG F F @filesource indeG1p(p F @author mu(ari(ar H %u(ammad Iari 6u(arto F @package Jeb_6er'ice_Tutorial F @subpackage J6_Client F @license %$T F @version *1*11 F= reLuire /ws_client1p(p/; == call list propinsi J6C function Ows_data P call_ws_list_propinsi(//&*&1** ; On P Ows_data S/data_count/T; Oprop_data P Ows_data S/data/T; EM Dtable borderP"1"M DcaptionM+aftar Aumla( 2enduduk 2ropinsi di $ndonesiaD=captionM DtrM Dt(M$+D=t(M Dt(M4"+ED=t(M Dt(M!A%AD=t(M Dt(M$B#4"TAD=t(M Dt(MA%L 2R$AD=t(M Dt(MA%L JA!$TAD=t(M

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

)# & "#

Dt(MA%L 2E!+#+#4D=t(M Dt(MJEB6$TED=t(M Dt(MLAT$T#+ED=t(M Dt(ML"!C$T#+ED=t(M D=trM DtbodBM DEp(p for(Oi P *; Oi D On; Oi ZZ Q O-ml P (Oprop_data SOiT S/prop_-ml_penduduk_pria/T Z Oprop_data SOiT S/prop_-ml_penduduk_pria/T ; EM DtrM DtdMDEp(p ec(o Oprop_data SOiT S/prop_id/T; EMD=tdM DtdMDEp(p ec(o Oprop_data SOiT S/prop_kode/T; EMD=tdM DtdMDEp(p ec(o Oprop_data SOiT S/prop_nama/T; EMD=tdM DtdMDEp(p ec(o Oprop_data SOiT S/prop_ibukota/T; EMD=tdM DtdMDEp(p ec(o Oprop_data SOiT S/prop_-ml_penduduk_pria/T; EMD=tdM DtdMDEp(p ec(o Oprop_data SOiT S/prop_-ml_penduduk_wanita/T; EMD=tdM DtdMDEp(p ec(o O-ml; EMD=tdM DtdMDEp(p ec(o Oprop_data SOiT S/prop_website/T; EMD=tdM DtdMDEp(p ec(o Oprop_data SOiT S/prop_map_latitude/T; EMD=tdM DtdMDEp(p ec(o Oprop_data SOiT S/prop_map_lon.itude/T; EMD=tdM D=trM DEp(p R EM D=tbodBM D=tableM

Scri,t <e! Ser-ice >lient ( +s*client)php )


DEp(p =FF F ,ile J6 Client F F @filesource ws_client1p(p F @author mu(ari(ar H %u(ammad Iari 6u(arto F @package Jeb_6er'ice_Tutorial F @subpackage J6_Client 6er'ice F @license %$T F @version *1*11 F= ==include nusoap librarB reLuire /11=*1lib=nusoap=lib=nusoap1p(p/; ==wsdl confi.uration Owsdl P /(ttp<==local(ost=public=lecture=webser'ice=ws)*1111=11wss=indeG1p(pEwsdl/; ==create instance Ows_client P new nusoap_client ( Owsdl& true ==debu. if needed ==Ows_client@Mdebu.Le'el P 1; ==(eader confi.uration Ouser P XwsclientX; Opass P XsecretX; ==encrBpt (eader 'alue Ouser P base0?_encode ( Ouser Opass P base0?_encode ( Opass ; ; ;

O(eader P /DAut(6oapIeaderM D#ser!ameM/ 1 Ouser 1 /D=#ser!ameM D2asswordM/ 1 Opass 1 /D=2asswordM D=Aut(6oapIeaderM/; ==set (eader

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

)) & "#

Ows_client@MsetIeaders ( O(eader == ,unction to print ,ault function detect_fault( Q .lobal Ows_client;

==detect fault and error if (Ows_client@Mfault Q eGit ( Ows_client@Mfaultstrin. ; R else Q Oerr P Ows_client@M.etError ( ; if (Oerr Q eGit ( Oerr ; R R R ==,unction to Ec(o +ebu. Result function ec(o_debu.( Q .lobal Ows_client; ec(o XDpreMX1Ows_client@Mdebu._str1XD=preMX; ec(o XDpreMX1Ows_client@MreLuest1X=DpreMX; print_r(Ows_client@MreLuestIeaders ; R ==define Call ,unction for list_propinsi 6er'ice function call_ws_list_propinsi(Op_keB_searc(& Op_pa.e& Op_pa.e_siVe .lobal Ows_client;

==parameters confi.uration Oparams P arraB (/p_keB_searc(/ PM Op_keB_searc(& /p_pa.e/ PM Op_pa.e& /p_pa.e_siVe/ PM Op_pa.e_siVe ; ==call met(od ser'ice Ows_data P Ows_client@Mcall ( /list_propinsi/& Oparams ; detect_fault ( ; ==decode data Ows_data P unserialiVe ( base0?_decode ( Ows_data ==print_r(Ows_data ; ==ec(o debu. if needed ==ec(o_debu.( ; R EM return Ows_data; ;

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

)" & "#

Hasil S A! "n#elope Web Ser#ice $lient % Re&uest ke Web Ser#ice Ser#er '
DEGml 'ersionP"1.0" encodin.P"ISO-8859-1"EM D6"A2@E!7<En'elope 6"A2@E!7<encodin.6tBleP"http://schemas.xmlsoap.org/soap/enco$#ng/" Gmlns<6"A2@E!7P"http://schemas.xmlsoap.org/soap/envelope/"% Gmlns<GsdP"http://www.w3.org/2001/ !"Schema" Gmlns<GsiP"http://www.w3.org/2001/ !"Schema-#nstance" Gmlns<6"A2@ E!CP"http://schemas.xmlsoap.org/soap/enco$#ng/" Gmlns<tnsP"&rn:'S(")'S)*+"O!,O*) .ws$l"M D6"A2@E!7<IeaderM DAut(6oapIeaderM D#ser!ameMd:!-bCllbn5PD=#ser!ameM D2asswordMc)7-cm7*D=2asswordM D=Aut(6oapIeaderM D=6"A2@E!7<IeaderM D6"A2@E!7<BodBM Dtns<list_propinsi Gmlns<tnsP"&rn:'S(")'S)*+"O!,O*) .ws$l"M Dp_keB_searc( Gsi<tBpeP"xs$:str#ng"M-aD=p_keB_searc(M Dp_pa.e Gsi<tBpeP"xs$:#nteger"M*D=p_pa.eM Dp_pa.e_siVe Gsi<tBpeP"xs$:#nteger"M)D=p_pa.e_siVeM D=tns<list_propinsiM D=6"A2@E!7<BodBM D=6"A2@E!7<En'elopeM

View Hasil S A! "n#elope Web Ser#ice $lient % Re&uest ke Web Ser#ice Ser#er '

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

); & "#

Hasil S A! "n#elope Web Ser#ice $lient % Response dari Web Ser#ice Ser#er '
DEGml 'ersionP"1.0" encodin.P"627-8"EM D6"A2@E!7<En'elope 6"A2@E!7<encodin.6tBleP"http://schemas.xmlsoap.org/soap/enco$#ng/" Gmlns<6"A2@E!7P"http://schemas.xmlsoap.org/soap/envelope/"% Gmlns<GsdP"http://www.w3.org/2001/ !"Schema" Gmlns<GsiP"http://www.w3.org/2001/ !"Schema-#nstance" Gmlns<6"A2@ E!CP"http://schemas.xmlsoap.org/soap/enco$#ng/"M D6"A2@E!7<BodBM Dns1<list_propinsiResponse Gmlns<ns1P"&rn:'S(")'S)*+"O!,O*) .ws$l"M Dreturn Gsi<tBpeP"xs$:str#ng"M3ToB"ntV"-Ew"iAk3KR(K)!'dJ8*$-tp"-E9cVo*"iAk3KR($-t("-E0e)k0%+t("-E?"ntp"-A 9cVoG"i$1$-tV"-c0$nBBb:BfaJ5i":%0%Toi!6$9aToG":%0%-oi%T#i":%0"ToicIA'c,>rb)Rl$-tV"-$0$-E1$-tp"-$9 cVo1"iA43J1ia6$9cVo8"iAwcm>wK)8(bJEi":%0!Toi6m,t3mki")k0%VtV"-#0$kp(bJAp$-tV"-EB"iAwcm>wK)lidJt'd CEi":%0!Toi6m,t3mki")k0!+tV"-c0$-EV!TEV!VAi":%0%-$0$nBBb:Bfam1sK:BlbmR1[I7rK:BBaJEi":%0!Voi%T%1%T %:%C$9aTo1":%0!Voi%T$:!T.*!i$9cVoB!+oicIA'c,>LbJGfcC7u[I7kdJtfd),uaKR($-tV"-c0$-EB!V#?!+3i")k0!-t V"-$)"iAodIRw"i;'d:d:Lmp(bJApcIA'di8nbB8p[C$9cVoG%-oicIA'c,>:[JAVaKRl$-tV"-$)"iAodIRw"i;'d:d:Lmp( bJApcIA'di8nbB8p[C$9aTo:":%0"ToiLTEu!+.1%T.V$-tV"-E:"iAwcm>wK)1(c,>s3KRpdI7k[6$9cVo8"i$t%6?*"+#G" +%i")k0"+tV"-Ew"i$G%+$u!+%?%+#:$-tV"-E?"iAwcm>wK)1(c,>sb)8naKR1[C#i":%0%TA0$-Ew%i?*%V.w!Tci":1>f5 PP D=returnM D=ns1<list_propinsiResponseM D=6"A2@E!7<BodBM D=6"A2@E!7<En'elopeM

View Hasil S A! "n#elope Web Ser#ice $lient % Response dari Web Ser#ice Ser#er '

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

)( & "#

ScreenShot Web Service $lient

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

)8 & "#

8. ,isualisasi dengan -oogleMap Kebutuhan: ). 3+ (3,ache +H+) ". 7oogleMa, 3+4 ;. Boneksi 4nternet (ma,s.google.com) Bagan Komunikasi Script

index.php

wsc_prop.php

ws_client.php

nusoap.php

Script indeD.,h, %scA,ro,.,h, %sAclient.,h,

Keterangan Halaman 4ndeD 7oogle Ma,

Dependensi %scA,ro,.,h,

Scri,t 7enerate GM= :ata untuk 7oogle Ma, %sAclient.,h, dari data %e! ser-ice (client) <e! Ser-ice >lient ( +oint ( )

Scri,t 4ndeD 7oogleMa, ( inde&)php )


DEp(p =FF F ,ile Coo.le %ap $ndeG F F @filesource indeG1p(p F @author mu(ari(ar H %u(ammad Iari 6u(arto F @package Jeb_6er'ice_Tutorial F @subpackage Coo.le %ap F @license %$T F @version *1*11 F= EM DN+"CT32E (tml 2#BL$C X@==J:C==+T+ KIT%L 11* 6trict==E!X X(ttp<==www1w:1or.=TR=G(tml1=+T+=G(tml1@ strict1dtdXM DN@@ CopBri.(t )**; Coo.le $nc1 Licensed under t(e Apac(e License& 7ersion )1*< (ttp<==www1apac(e1or.=licenses=L$CE!6E@)1* @@M D(tml GmlnsP"http://www.w3.org/1999/xhtml"M D(eadM Dmeta (ttp@eLui'P"content-t0pe" contentP"text/html8%charset9&t:-8"=M DtitleMCoo.le %aps AAAK Z Jeb6er'ice EGample @ +ata Aumla( 2enduduk 2er 2ropinsi di $ndonesiaD=titleM DN@@ Coo..le %ap A2$ @@M Dscript srcP"http://maps.google.com/maps;:#le9ap#<v92</e09=3>I====?60+@'n',!vAo>??SA$BxS,'5C@gp$gO)sD00!ovOaEh)*vvhS:pvagE18eO0('&AE0tSF3#1C'xw" tBpeP"text/?avascr#pt"MD=scriptM Dscript tBpeP"text/?avascr#pt"M ==DNSC+ATAS var map; 9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

)C & "#

var .eocoder; function load( Q if (CBrowser$sCompatible( Q .eocoder P new CClientCeocoder( ; map P new C%ap)(document1.etElementBB$d(/map/ ; map1addControl(new C6mall%apControl( ; map1addControl(new C%apTBpeControl( ; map1setCenter(new CLatLn.(@811:90):& 11>1?1)?0* & ? ; R R function searc(Locations( Q var address P document1.etElementBB$d(/address$nput/ 1'alue; if (Naddress Q searc(Locations!ear(//&*&1* ; R else Q searc(Locations!ear(address ; R R function searc(Locations!ear(prop_name& pa.e& pa.e_siVe Q var searc(#rl P /wsc_prop1p(pEprop_namaP/ Z prop_name; if ((pa.e U (pa.e_siVe Q searc(#rl P /wsc_prop1p(pEprop_namaP/ Z prop_name Z /Upa.eP/ Z pa.e Z /Upa.e_siVe/ Zpa.e_siVe; R C+ownload#rl(searc(#rl& function(data Q var Gml P CKml1parse(data ; var markers P Gml1documentElement1.etElementsBBTa.!ame(/marker/ ; map1clear"'erlaBs( ; var sidebar P document1.etElementBB$d(/sidebar/ ; sidebar1innerIT%L P //; if (markers1len.t( PP * Q sidebar1innerIT%L P /!o results found1/; map1setCenter(new CLatLn.(@811:90):& 11>1?1)?0* & ? ; return; R var bounds P new CLatLn.Bounds( ; for (var i P *; i D markers1len.t(; iZZ Q var prop_nama P markersSiT1.etAttribute(/prop_nama/ ; var prop_ibukota P markersSiT1.etAttribute(/prop_ibukota/ ; var -ml_penduduk P parse,loat(markersSiT1.etAttribute(/prop_penduduk/ ; var -ml_penduduk_pria P parse,loat(markersSiT1.etAttribute(/prop_penduduk_pria/ ; var -ml_penduduk_wanita P parse,loat(markersSiT1.etAttribute(/prop_penduduk_wanita/ var prop_website P markersSiT1.etAttribute(/prop_website/ ; var point P new CLatLn.(parse,loat(markersSiT1.etAttribute(/lat/ & parse,loat(markersSiT1.etAttribute(/ln./ ;

var marker P create%arker(point& prop_nama& prop_ibukota& -ml_penduduk& -ml_penduduk_pria& -ml_penduduk_wanita& prop_website ; map1add"'erlaB(marker ; var sidebarEntrB P create6idebarEntrB(marker& prop_nama& prop_ibukota& -ml_penduduk& -ml_penduduk_pria& -ml_penduduk_wanita& prop_website ; sidebar1appendC(ild(sidebarEntrB ; bounds1eGtend(point ; R map1setCenter(bounds1.etCenter( & map1.etBounds[oomLe'el(bounds ; R ; R function create%arker(point& prop_nama& prop_ibukota& -ml_penduduk& -ml_penduduk_pria& -ml_penduduk_wanita& prop_website Q == Create our XtinBX marker icon var iconBlue P new C$con( ; iconBlue1ima.e P X(ttp<==labs1.oo.le1com=ridefinder=ima.es=mm_)*_blue1pn.X; iconBlue1s(adow P X(ttp<==labs1.oo.le1com=ridefinder=ima.es=mm_)*_s(adow1pn.X; iconBlue1icon6iVe P new C6iVe()?& ?* ;

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

)E & "#

iconBlue1s(adow6iVe P new C6iVe(:?& ?* ; iconBlue1iconAnc(or P new C2oint(0& ?* ; iconBlue1infoJindowAnc(or P new C2oint(8& 1 ; var iconRed P new C$con( ; iconRed1ima.e P X(ttp<==labs1.oo.le1com=ridefinder=ima.es=mm_)*_red1pn.X; iconRed1s(adow P X(ttp<==labs1.oo.le1com=ridefinder=ima.es=mm_)*_s(adow1pn.X; iconRed1icon6iVe P new C6iVe(1)& )* ; iconRed1s(adow6iVe P new C6iVe())& )* ; iconRed1iconAnc(or P new C2oint(0& )* ; iconRed1infoJindowAnc(or P new C2oint(8& 1 ; var marker"ptions P QR; marker"ptions1icon P C_+E,A#LT_$C"!; if (-ml_penduduk M 1******* Q marker"ptions1icon P iconBlue; R marker"ptions1title P prop_nama; marker"ptions1dra..able P false; var marker P new C%arker(point& marker"ptions ; var (tml P /2ropinsi < DbM/ Z prop_nama Z /D=bM Dbr=M/ Z /$bukota < /Z prop_ibukota Z /Dbr=MDbr=M/ Z /Dtable borderP1M Dt(eadM Dt(M 4riteria (4elamin D=t(M Dt(M Aumla( D=t(M D=t(eadM/ Z /DtbodBM/ Z /DtrM DtdM 2ria D=tdM Dtd alin.PXri.(tXM/Z-ml_penduduk_priaZ/D=tdM D=trM/ Z /DtrM DtdM Janita D=tdM Dtd alin.PXri.(tXM/Z-ml_penduduk_wanitaZ/D=tdM D=trM/ Z /DtrM DtdM Total D=tdM Dtd alin.PXri.(tXM/Z-ml_pendudukZ/D=tdM D=trM/ Z /D=tbodBMDtable=M/ Z /Dbr=M/ Z /Jeb6ite < Da (refPX/Zprop_websiteZ/X tar.etPX_blankXM/Zprop_websiteZ/D=aM/ Z /Dbr=MDbr=M/ Z /Dim. srcPX(ttp<==www1facebook1com=profile=pic1p(pEoidPA5+tA59*o96G*+@ 9KkRbL9,*22ulc?G@lce(e'pw?'[#[#Lk@dL9nAu3k_iJ8"5p6C.UsiVePnormalXM/ Z /Dbr=M/ Z /Aut(or < Da (refPX(ttp<==www1m(s1infoterkini1comX tar.etPX_blankXMwww1m(s1infoterkini1comD=aM/; CE'ent1addListener(marker& /click/& function( Q marker1open$nfoJindowItml((tml ; R ; return marker; R function create6idebarEntrB(marker& prop_nama& prop_ibukota& -ml_penduduk& -ml_penduduk_pria& -ml_penduduk_wanita& prop_website Q var di' P document1createElement(/di'/ ; var (tml P /DbM/ Z prop_nama Z /D=bM (/ Z -ml_penduduk Z / Dbr=M/ Z prop_ibukota; di'1innerIT%L P (tml; di'1stBle1cursor P /pointer/; di'1stBle1mar.inBottom P /8pG/; CE'ent1add+omListener(di'& /click/& function( Q CE'ent1tri..er(marker& /click/ ; R ; CE'ent1add+omListener(di'& /mouseo'er/& function( Q di'1stBle1back.roundColor P /Yeee/; R ; CE'ent1add+omListener(di'& /mouseout/& function( Q di'1stBle1back.roundColor P /Yfff/; R ; return di'; R ==TTM D=scriptM D=(eadM DbodB onloadP"loa$GH" onunloadP"I6nloa$GH"M D()MCoo.le %aps AAAK Z Jeb6er'ice EGample @ +ata Aumla( 2enduduk 2er 2ropinsi di $ndonesiaD=()M 2ropinsi< Dinput tBpeP"text" idP"a$$ressInp&t"=M

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

)* & "#

Dinput tBpeP"5&tton" onclickPXsearc(Locations( X 'alueP"Search"=M Dbr=M Dbr=M Ddi' stBleP"w#$th:1000px8%:ont-:am#l0:=r#alJ% sans-ser#:8%:ont-s#1e:11px8%5or$er:1px%sol#$%5lac/"M DtableM DtbodBM DtrM Dtd widt(P"200" 'ali.nP"top"M Ddi' idP"s#$e5ar" stBleP"over:low:%a&to8%he#ght:%500px8%:ont-s#1e:%11px8%color:% 4000"MD=di'M D=tdM DtdM Ddi' idP"map" stBleP"over:low:%h#$$en8%w#$th:800px8%he#ght:500px"MD=di'M D=tdM D=trM D=tbodBM D=tableM D=di'M D=bodBM D=(tmlM

Scri,t <e! Ser-ice >lient >all ( +sc*prop)php )


DEp(p =FF F ,ile J6 Client 2rop F F @filesource wsc_prop1p(p F @author mu(ari(ar H %u(ammad Iari 6u(arto F @package Jeb_6er'ice_Tutorial F @subpackage J6_Client 6er'ice Call F @license %$T F @version *1*11 F= reLuire /11=)1wsc=ws_client1p(p/; == Cet parameters from #RL O'_prop_nama P (isset ( O_RE5#E6T SXprop_namaXT O'_prop_nama P /W/ 1 O'_prop_nama 1 /W/; O'_prop_nama P ( strin. O'_prop_nama; O'_pa.e P *; O'_pa.e_siVe P 1**; E O_RE5#E6T SXprop_namaXT < //;

== call list propinsi J6C function Ows_data P call_ws_list_propinsi(O'_prop_nama& O'_pa.e& O'_pa.e_siVe ; On P Ows_data S/data_count/T; Oprop_data P Ows_data S/data/T; == 6tart K%L file& create parent node Odom P new +"%+ocument ( X11*X ; Onode P Odom@McreateElement ( XmarkersX Oparnode P Odom@MappendC(ild ( Onode ; (eader ( XContent@tBpe< teGt=GmlX ;

== $terate t(rou.( t(e rows& addin. K%L nodes for eac( for(Oi P *; Oi D On; Oi ZZ Q O-ml P (Oprop_data SOiT S/prop_-ml_penduduk_pria/T Z Oprop_data SOiT S/prop_-ml_penduduk_wanita/T ; Onode P Odom@McreateElement ( XmarkerX ; Onewnode P Oparnode@MappendC(ild ( Onode ; Onewnode@MsetAttribute ( Xprop_namaX& Oprop_data SOiTS/prop_nama/T ; Onewnode@MsetAttribute ( Xprop_ibukotaX& Oprop_data SOiTS/prop_ibukota/T ; Onewnode@MsetAttribute ( Xprop_pendudukX& O-ml ; Onewnode@MsetAttribute ( Xprop_penduduk_priaX& Oprop_data SOiTS/prop_-ml_penduduk_pria/T 9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

)F & "#

Onewnode@MsetAttribute ( S/prop_-ml_penduduk_wanita/T Onewnode@MsetAttribute ( Onewnode@MsetAttribute ( Onewnode@MsetAttribute ( R ec(o Odom@Msa'eK%L ( ; EM

Xprop_penduduk_wanitaX& Oprop_data SOiT ; Xprop_websiteX& Oprop_data SOiTS/prop_website/T XlatX& Oprop_data SOiTS/prop_map_latitude/T ; Xln.X& Oprop_data SOiTS/prop_map_lon.itude/T ;

ScreenS(ot )oogle*ap Web Ser#ice $lient

9utorial <e! Ser-ice Sederhana dengan +H+ .uSoa, Muhammad Hari Suharto (ak. muharihar)

"# & "#

Anda mungkin juga menyukai