Tutorial Web Service Sederhana dengan PHP NuSoap Oleh : Muhammad Hari Suharto (ak. muharihar) Email : muharihar[at]infoterkini.com Blog : mhs.infoterkini.com YM : indocyber2002 Facebook : www.facebook.com/muharihar Minomartani, 24 Oktober 2010, 10:48 PM Masalah Bagaimana cara membangun aplikasi web service sederhana dengan menggunakan PHP NuSoap sebagai pustaka web service-nya? Solusi Untuk menjawab problematika di atas, marilah kita membuat asumsi mengenai aplikasi web service yang akan kita bangun. Berikut adalah studi kasus yang akan dibahas dan diselesaikan dengan menggunakan PHP NuSoap sebagai pustaka PHP untuk web service. Studi Kasus Akan di bangun sebuah layanan web service yang menyediakan data jumlah penduduk disetiap propinsi di Indonesia. Aplikasi layanan web service tersebut nantinya akan dimanfaatkan untuk melayani request informasi Jumlah Penduduk Indonesia berdasar propinsi dan jenis kelamin yang divisualisasikan dengan GoogleMap. Solusi Studi Kasus Solusi studi kasus akan di bagi menjadi 5 Tahapan, yaitu : 1. Merancang Arsitektur Sistem 2. Merancang dan Membuat Struktur Database/Tabel 3. Membuat Script Web Service Server (WSDL) 4. Membuat Script Web Service Client 5. Visualisasi dengan GoogleMap Tutorial Web Service Sederhana dengan PHP NuSoap Muhammad Hari Suharto (ak. muharihar) 1 / 20
20
Embed
[Muharihar] - Tutorial Web Service PHP NuSoap GoogleMap
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
YM : indocyber2002Facebook : www.facebook.com/muharihar
Minomartani, 24 Oktober 2010, 10:48 PM
Masalah
Bagaimana cara membangun aplikasi web service sederhana dengan menggunakan PHP NuSoap sebagai
pustaka web service-nya?
Solusi
Untuk menjawab problematika di atas, marilah kita membuat asumsi mengenai aplikasi web service yang
akan kita bangun. Berikut adalah studi kasus yang akan dibahas dan diselesaikan dengan menggunakan
PHP NuSoap sebagai pustaka PHP untuk web service.
Studi Kasus
Akan di bangun sebuah layanan web service yang menyediakan data jumlah penduduk disetiap propinsi di
Indonesia. Aplikasi layanan web service tersebut nantinya akan dimanfaatkan untuk melayani request
informasi Jumlah Penduduk Indonesia berdasar propinsi dan jenis kelamin yang divisualisasikan dengan
GoogleMap.
Solusi Studi Kasus
Solusi studi kasus akan di bagi menjadi 5 Tahapan, yaitu :
1. Merancang Arsitektur Sistem
2. Merancang dan Membuat Struktur Database/Tabel
3. Membuat Script Web Service Server (WSDL)
4. Membuat Script Web Service Client
5. Visualisasi dengan GoogleMap
Tutorial Web Service Sederhana dengan PHP NuSoap
Muhammad Hari Suharto (ak. muharihar) 1 / 20
Tahapan Solusi
1. Merancang Arsitektur Sistem
Bagan Arsitektur Sistem
Rancangan Hierarki Script
Tutorial Web Service Sederhana dengan PHP NuSoap
Muhammad Hari Suharto (ak. muharihar) 2 / 20
2. Merancang dan Membuat Stuktur Database/TabelDatabase Engine : MySQLDatabase Navigator : PhpMyAdmin
Struktur Database/TableDatabase Name : db_wsdlmapTable Name : info_penduduk_propinsiStruktur TabelNama Field Type Data Length Nullable Default Constraint/Index
prop_id int (auto increment)
No Primary Key
prop_kode varchar 2 No Unique
prop_nama varchar 100 No
prop_ibukota varchar 100 Yes
prop_jml_penduduk_pria bigint No 0
prop_jml_penduduk_wanita bigint No 0
prop_website varchar 100 Yes
prop_map_latitude float 10,6 No 0
prop_map_longitude float 10,6 No 0
Script :
Create database db_wsdlmap
create database db_wsdlmap;
Create table info_penduduk_propinsi
CREATE TABLE `info_penduduk_propinsi` ( `prop_id` int(11) NOT NULL AUTO_INCREMENT, `prop_kode` varchar(2) NOT NULL, `prop_nama` varchar(100) NOT NULL, `prop_ibukota` varchar(100) DEFAULT NULL, `prop_jml_penduduk_pria` bigint(20) NOT NULL DEFAULT '0', `prop_jml_penduduk_wanita` bigint(20) NOT NULL DEFAULT '0', `prop_website` varchar(100) DEFAULT NULL, `prop_map_latitude` float(10,6) NOT NULL DEFAULT '0.000000', `prop_map_longitude` float(10,6) NOT NULL DEFAULT '0.000000', PRIMARY KEY (`prop_id`), UNIQUE KEY `prop_kode` (`prop_kode`));
View Hasil SOAP Envelope Web Service Client ( Response dari Web Service Server )
Tutorial Web Service Sederhana dengan PHP NuSoap
Muhammad Hari Suharto (ak. muharihar) 14 / 20
ScreenShot Web Service Client
Tutorial Web Service Sederhana dengan PHP NuSoap
Muhammad Hari Suharto (ak. muharihar) 15 / 20
5. Visualisasi dengan GoogleMapKebutuhan:1. AP (Apache PHP)2. GoogleMap API3. Koneksi Internet (maps.google.com)
Bagan Komunikasi Script
Script Keterangan Dependensi
index.php Halaman Index Google Map wsc_prop.php
wsc_prop.php Script Generate XML Data untuk Google Map dari data web service (client)
ws_client.php
ws_client.php Web Service Client ( Point 4 )
Script Index GoogleMap ( index.php )
<?php/** * File Google Map Index * * @filesource index.php * @author muharihar | Muhammad Hari Suharto * @package Web_Service_Tutorial * @subpackage Google Map * @license MIT * @version 0.0.1 */
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><!-- Copyright 2008 Google Inc. Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0 --><html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>Google Maps AJAX + WebService Example - Data Jumlah Penduduk Per Propinsi di Indonesia</title> <!-- Googgle Map API --> <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjU0EJWnWPMv7oQ-jjS7dYxSPW5CJgpdgO_s4yyMovOaVh_KvvhSfpvagV18eOyDWu7VytS6Bi1CWxw" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ var map;
Tutorial Web Service Sederhana dengan PHP NuSoap
Muhammad Hari Suharto (ak. muharihar) 16 / 20
index.php
nusoap.phpwsc_prop.php ws_client.php
var geocoder;
function load() { if (GBrowserIsCompatible()) { geocoder = new GClientGeocoder(); map = new GMap2(document.getElementById('map')); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); map.setCenter(new GLatLng(-5.137623, 119.412460), 4); } }
function searchLocations() { var address = document.getElementById('addressInput').value; if (!address) { searchLocationsNear('',0,10); } else { searchLocationsNear(address); } }
function searchLocationsNear(prop_name, page, page_size) { var searchUrl = 'wsc_prop.php?prop_nama=' + prop_name; if ((page) & (page_size)) { searchUrl = 'wsc_prop.php?prop_nama=' + prop_name + '&page=' + page + '&page_size' +page_size; } GDownloadUrl(searchUrl, function(data) { var xml = GXml.parse(data); var markers = xml.documentElement.getElementsByTagName('marker'); map.clearOverlays();
var bounds = new GLatLngBounds(); for (var i = 0; i < markers.length; i++) { var prop_nama = markers[i].getAttribute('prop_nama'); var prop_ibukota = markers[i].getAttribute('prop_ibukota'); var jml_penduduk = parseFloat(markers[i].getAttribute('prop_penduduk')); var jml_penduduk_pria = parseFloat(markers[i].getAttribute('prop_penduduk_pria')); var jml_penduduk_wanita = parseFloat(markers[i].getAttribute('prop_penduduk_wanita')); var prop_website = markers[i].getAttribute('prop_website'); var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')), parseFloat(markers[i].getAttribute('lng'))); var marker = createMarker(point, prop_nama, prop_ibukota, jml_penduduk, jml_penduduk_pria, jml_penduduk_wanita, prop_website); map.addOverlay(marker); var sidebarEntry = createSidebarEntry(marker, prop_nama, prop_ibukota, jml_penduduk, jml_penduduk_pria, jml_penduduk_wanita, prop_website); sidebar.appendChild(sidebarEntry); bounds.extend(point); } map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)); }); }
function createMarker(point, prop_nama, prop_ibukota, jml_penduduk, jml_penduduk_pria, jml_penduduk_wanita, prop_website) { // Create our "tiny" marker icon var iconBlue = new GIcon(); iconBlue.image = "http://labs.google.com/ridefinder/images/mm_20_blue.png"; iconBlue.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png"; iconBlue.iconSize = new GSize(24, 40);
Tutorial Web Service Sederhana dengan PHP NuSoap
Muhammad Hari Suharto (ak. muharihar) 17 / 20
iconBlue.shadowSize = new GSize(34, 40); iconBlue.iconAnchor = new GPoint(6, 40); iconBlue.infoWindowAnchor = new GPoint(5, 1); var iconRed = new GIcon(); iconRed.image = "http://labs.google.com/ridefinder/images/mm_20_red.png"; iconRed.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png"; iconRed.iconSize = new GSize(12, 20); iconRed.shadowSize = new GSize(22, 20); iconRed.iconAnchor = new GPoint(6, 20); iconRed.infoWindowAnchor = new GPoint(5, 1);
<body onload="load()" onunload="GUnload()"> <h2>Google Maps AJAX + WebService Example - Data Jumlah Penduduk Per Propinsi di Indonesia</h2> Propinsi: <input type="text" id="addressInput"/>