## Implementasi PHP Web Service Sebagai Penyedia Data Aplikasi Mobile

## Martinus Raditia Sigit Surendra
Program Studi Sistem Informasi, Universitas Multimedia Nusantara, Tangerang, Indonesia
Diterima 30 Oktober 2014 Disetujui 12 Desember 2014
Abstract —This  paper  demonstrates  how  PHP  web service technology can be used in mobile application. Web service testing can be done manually by creating php  client  file  that  call  the  SOAP  web  service. Testing can also be done using SoapUI, an open source software that can be used to do functional testing on web service. This  paper  is  proof  of  concept  that  PHP  Web  Service can be used as data provider for application that need dynamic  data. This  paper  proposed  PHP  Client  Layer as an additional layer to simplify the web service calling from mobile application.
Index Terms— web service, php, json, SOAP, SoapUI

## I. PENDAHULUAN
Saat ini aplikasi mobile telah banyak digunakan seiring semakin mudahnya mendapatkan perangkat smart phone . Seiring dengan hal tersebut maka banyak dikembangkan aplikasi yang dapat diunduh oleh pengguna smartphone . Salah satu jenis aplikasi smart phone adalah aplikasi yang bisa memberikan informasi ke pengguna terkait dengan lokasi bisnis di suatu wilayah tertentu dan juga informasi promo yang bisa dimanfaatkan oleh pengguna. Aplikasi jenis ini dalam android termasuk dalam kategori Perjalanan dan Local ( Travel and Local ).
Aplikasi smart phone dengan  fitur  informasi promosi dan informasi tempat membutuhkan data yang dinamis seiring dengan berubahnya data terkait tempat-tempat bisnis dan promosi yang ada di suatu wilayah. Solusi yang diajukan adalah menyimpan data di satu database server . Selanjutnya setiap aplikasi melakukan request untuk mendapatkan data dari server . Begitu juga untuk pengiriman data, setiap aplikasi akan mengirimkan data ke server .
Untuk mendukung scalability maka digunakan teknologi web service sebagai solusi pertukaran data. Dengan memanfaatkan web service maka setiap platform baik aplikasi smart phone , web, maupun aplikasi desktop bisa memanggil method /fungsi yang diinginkan.
II. PERUMUSAN MASALAH
Ada 3 hal yang ingin dijawab dalam penelitian ini yaitu:
• Bagaimana membuat SOAP Web service menggunakan bahasa pemrograman PHP ?
• Bagaimana melakukan pengujian atas web service yang sudah di- deploy ?
• Bagaimana menyediakan akses data yang lebih mudah dari SOAP server yang sudah dibuat untuk mobile application ?
III. WEB SERVICE, PHP, DAN NUSOAP
Web service adalah  layanan  yang  diidentifikasi dengan URI ( Uniform  Resource  Identifier ) yang mengekspos  fiturnya  melalui  internet  menggunakan protokol dan bahasa standar internet serta dapat diimplementasikan menggunakan standar internet seperti XML ( Extensible Markup Language ) [1].
Sampai dengan saat ini teknologi web service terus berkembang. Salah satu teknologi yang populer saat ini adalah REST ( Representational State Transfer ) atau terkadang disebut dengan RESTful. Beberapa contoh RESTful web service adalah Amazon’s Simple Storage Service (S3), Atom Publishing Protocol, dan Google Maps [2]. Pada prinsipnya request ke suatu RESTful web service sebenarnya adalah suatu HTTP Request .
Ada beberapa standar yang digunakan dalam web service. Beberapa di antaranya adalah  SOAP ( Simple Object Access Protocol ), BPEL ( Business Process Execution Language ), UDDI ( Universal Description, Discovery, and Integration Infrastructure ) , WSDL ( Web Service Description Language ) PHP ( PHP: Hypertext Preprocessor ) adalah bahasa pemrograman web. PHP bisa digunakan untuk melakukan HTTP ( Hypertext Transfer Protocol ) Request.

## ISSN 2085-4552
Gambar 1. HTTP Request oleh PHP
Kode di atas adalah contoh sederhana bagaimana PHP melakukan HTTP Request ke halaman http:// sigitsurendra.com , secara default adalah GET Request .
Data yang didapatkan dari web service dikirimkan dalam format standar misalnya XML atau JSON ( Javascript Object Notation ). Dalam penelitian ini dipilih JSON. Kelebihan utama JSON dibandingkan dengan  XML  adalah  dari  sisi  ukuran  file,  JSON memiliki ukuran yang lebih kecil dibandingkan dengan XML [3]. Ukuran file yang kecil penting untuk web service yang akan dibuat karena nantinya data akan diakses oleh aplikasi mobile yang membutuhkan respon cepat.
PHP mendukung untuk pengiriman maupun pengolahan data dalam format JSON. Untuk mengirimkan data dalam format JSON, PHP memiliki fungsi json_encode.
Gambar 2. Json encoding
Gambar 3. Json decoding Untuk menangani data JSON , PHP memiliki fungsi json_decode.
SOAP merupakan layanan web service yang berbasis pada RPC ( Remote Procedure Call ). Kita bisa menggunakan SOAP untuk memanggil method atau fungsi yang berada di komputer lain melalui internet. Agar client bisa mengetahui method tersedia, port, format data input output, atau keterangan lain maka dideklarasikan oleh standar WSDL [4].
Kita bisa menggunakan PHP baik untuk membuat web service server maupun untuk membuat web service client . Namun untuk memudahkan pembuatan web service server beserta WSDL-nya maka kita bisa memanfaatkan library yang telah ada. Salah satu library yang bisa digunakan adalah NuSOAP. NuSOAP merupakan projek Open Source yang bisa
diakses di http://sourceforge.net/projects/nusoap . Berikut ini contoh menciptakan web service dalam NuSOAP.
Gambar 4. Menciptakan web service dengan NuSOAP

## IV. ANALISIS KEBUTUHAN SISTEM
Sistem yang ingin dibuat adalah aplikasi mobile yang bisa digunakan untuk membantu pengguna mendapatkan informasi promosi, informasi tempat di suatu  wilayah  spesifik.  Pengguna  bisa  mendapatkan informasi tempat dengan melakukan pencarian di perangkat mobile mereka.
Fokus penelitian ini adalah dari sisi web service server , bukan pada aplikasi mobile yang dibuat. Web service server akan menyediakan layanan data secara dinamis seiring bertambahnya informasi tempat maupun informasi promo.
Fitur-fitur  yang  harus  ada  dari  sisi  server  antara lain:
• Menyediakan data promosi
• Menyediakan data informasi tempat yang terdiri dari: o Nama tempat
o Lokasi
o Kategori bisnis
o Produk yang dijual
o Review atas tempat
o Review atas produk yang dijual
• Layanan registrasi dan otentikasi.

## Gambar 5. Arsitektur Sistem

## V. PERANCANGAN DATABASE
Selanjutnya dari analisis atas kebutuhan sistem maka disusun database yang bisa memenuhi kebutuhan sistem. Rancangan dari database dapat dilihat pada gambar 7. Berikut tabel-tabel yang akan digunakan dalam sistem.
a.  Lokasi
Dalam aplikasi mobile yang dibuat nantinya, ketepatan lokasi suatu tempat menjadi hal yang penting sehinggadibuat beberapa tabel untuk menyimpan data lokasi sehingga bisa dilakukan filter lebih mudah nantinya.
• Tabel Country
• Tabel Province
• Tabel City
• Tabel Kecamatan
• Tabel Kelurahan
• Tabel Address , untuk menyimpan nama jalan, no
b.  Bisnis
• Tabel Company
Tabel ini digunakan untuk menyimpan data perusahaan pemilik Business Entity. Contohnya PT Alfaria memiliki banyak Business Entity yaitu Alfamart di banyak
kota.
• Tabel BusinessEntity
Tabel BusinessEntity digunakan untuk menyimpan data suatu bisnis yang berada di suatu lokasi.
• Tabel Item
Tabel Item digunakan untuk menyimpan data barang ataupun jasa yang dijual oleh Business Entity.
• Tabel BusinessEntityUserReview
Tabel ini digunakan untuk menyimpan data review atas Business Entity yang di- submit oleh pengguna.
• Tabel ItemSoldUserReview
Tabel ini digunakan untuk menyimpan data review atas barang yang di- submit oleh pengguna.
• Tabel Region
Tabel ini digunakan untuk menyimpan data regional (wilayah).
Promosi maupun Businesss Entity dikelompokkan dalam regional tertentu agar nantinya memudahkan pengguna menemukan lokasi bisnis dan menerima informasi promosi berdasarkan regional.
• Tabel Promo
Tabel ini digunakan untuk menyimpan data promosi yang akan tampil di aplikasi pengguna.
• Tabel PromoImage Setiap promosi memiliki beberapa gambar yang dapat memberikan informasi lebih ke pengguna.
• Tabel Bank Tabel ini digunakan untuk menyimpan nama bank.
• Tabel BankAccount Tabel ini digunakan untuk menyimpan nomor rekening bank.
• Tabel ActivationStatus Hanya Business Entity dan promosi yang aktif saja yang akan ditampilkan di layar pengguna.

## ISSN 2085-4552

## c.  User
• Tabel User
• Tabel Role
• Tabel UserRole
• Tabel Person

## VI. IMPLEMENTASI WEB SERVICE
Setelah penyusunan database , maka dibuat PHP Class yang akan memudahkan dalam melakukan encode data untuk menghasilkan JSON. Dalam gambar di bawah ini ditampilkan BusinessEntity class , yang mewakili tabel BusinessEntity serta property di dalamnya.
Gambar 6. Business Entity Class
Beberapa kelas lain yang diciptakan untuk memudahkan penciptaan Json antara lain:
• CompleteSearchResult
• SearchResult
• ImageURL
• Item
• Promo
• UserComment Gambar 6. Menciptakan Web Service berdasarkan database yang dibuat
Dalam kode di atas dibuat web service dengan 2 method yaitu SimpleSearchSpot dan CompleteSearchSpot.
Gambar 7 Physical Database Diagram

## ISSN 2085-4552
Gambar 7 simpleSearchSpot dan completeSearchSpot Bisa dilihat bahwa input dan output untuk kedua method ini bertipe String. Kedua method ini akan menerima masukan berupa keyword yang ingin dicari oleh pengguna dan akan mengembalikan hasil pencarian dengan format JSon.
Setelah dilakukan deployment ke server selanjutnya dilakukan pengecekan atas WSDL.
Gambar 8 Hasil deployment
Bisa dilakukan pengecekan atas tiap method/fungsi yang ada dalam  server.
Gambar  8 Hasil Deployment (detil)
Berdasarkan analisis kebutuhan pengguna maka dibuat beberapa web service method yang lain.
Tabel 1. Tabel Fitur dan implementasi web service

## VII. PENGUJIAN
Pengujian dilakukan dengan dua cara yaitu dengan membuat php yang menggunakan ( consume ) web service tersebut.
a.  PHP Client
Gambar  9 Pengujian dengan PHP Client Hasil dari proses ini adalah:
Gambar  10 Hasil pengujian
Hal ini membuktikan bahwa service yang dibuat telah valid dan bisa digunakan oleh sistem lain.
b.  SoapUI 5
SoapUI 5 merupakan perangkat lunak open source yang dapat digunakan untuk membuat test cases atas web service yang dibuat. SoapUI akan menyusun request ke web service server selanjutnya bisa dibuat kriteria pengetesan misal dalam hal batas waktu, keamanan, validasi [5].
Pada gambar 11 ditampilkan dua method yang bisa dites. Kedua method ini akan muncul otomatis setelah kita set alamat dari web service yang akan dipanggil. Selanjutnya kita bisa melakukan tes dengan melakukan request ke server seperti yang ditunjukkan pada gambar x. Pada gambar x, dilakukan request dengan parameter ‘sum’. Selanjutnya akan dikeluarkan hasil response dari server berupa xml dimana di dalamnya ada hasil Json.  Hal ini menunjukkan bahwa web service yang di- deploy telah valid. Gambar  11 Projek dalam SoapUI
Gambar  12 Format XML untuk pengujian
Gambar  12 Hasil pengujian

## VIII. MODIFIKASI MENJADI REST WEB SERVICE
Pemanggilan method dengan SOAP menggunakan XML lebih rumit jika dibandingkan dengan REST yang menggunakan HTTP Request biasa. Untuk memberikan fitur pemanggilan dengan HTTP Request biasa maka dibuat layer tambahan pada sistem. Layer tambahan  ini  adalah  file  PHP  yang  akan  melayani HTTP Request , dari request yang diterima, selanjutnya dilakukan pemanggilan ke SOAP server.
Gambar  13 PHP Client Layer
PHP Client Layer dibuat untuk tiap Web Service File yang diciptakan. Salah satu contohnya bisa dilihat pada gambar 14 ini:

## ISSN 2085-4552
Gambar  13 PHP Client Layer untuk  rs_ spotmanagementserver.php IX. PEMANGGILAN PHP CLIENT LAYER DARI PERANGKAT
MOBILE
Berikut ini ditampilkan contoh pemanggilan HTTP
Request ke PHP Client Layer yang dilakukan melalui bahasa pemrograman Objective C untuk perangkat iOS.
Gambar  13 Pemanggilan melalui Objective C [6]
Hasilnya adalah sebagai berikut ini:
Gambar  13 Hasil pemanggilan [6]

## X. SIMPULAN
Berdasarkan dari proses yang sudah dilakukan maka dapat disimpulkan bahwa PHP Web Service bisa diimplementasikan dalam aplikasi mobile yang membutuhkan data dinamis. Pengujian atas web service bisa dilakukan dengan membuat file PHP secara manual ataupun menggunakan SOAP web service . Untuk memudahkan pemanggilan data bisa dilakukan modifikasi dengan memberikan layer tambahan berupa PHP File yang memanggil pada SOAP web service .
Untuk penelitian selanjutnya bisa dikembangkan ke arah pengujian dari sisi performa, keamanan, dan juga code design pattern untuk menghasilkan kode yang lebih terstruktur dan memiliki fleksibilitas tinggi.
Ucapan Terima Kasih
Saya ucapkan terima kasih pada tim Rajaspot, terutama Bapak  Johan Setiawan dan Bapak Wira Munggana atas ide aplikasi terkait penelitian ini. Juga kepada Daniel Gunawan yang telah membantu dalam pengujian aplikasi ini.
D afTar p UsTaKa
[1] Bougettaya, A., Sheng, Q.Z., Advanced Web Services, Springer 2014
[2] Richardson, L., Ruby, S.,RESTful Web Services, O’Reilly , California 2007
[3] Mitchell, L.J., PHP Web Services, O’Reilly, California 2013
[4] Ferris, C., Farrell, J., “What are Web Services ?”, IBM Communications of the ACM, June 2003/Vol 46, No.6 Pp.31.
[5] ___, “SoapUI. The Swiss-Army Knife of Testing”. http://www.soapui.org/About-SoapUI/what-is-soapui. html , diakses pada tanggal 24 Oktober 2014.
[6] Gunawan, D., Implementasi Desain Aplikasi Sistem Informasi Geografis Menggunakan Teknologi Berbasis IOS Studi Kasus, 2014,belum terbit.