RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost...

17
RANCANG BANGUN REST WEB SERVICE UNTUK PERBANDINGAN HARGA PENGIRIMAN DENGAN METODE WEB SCRAPPING DAN PEMANFAATAN API NASKAH PUBLIKASI diajukan oleh Damar Riyadi 10.11.3910 kepada SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA YOGYAKARTA 2013

Transcript of RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost...

Page 1: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses

RANCANG BANGUN REST WEB SERVICE UNTUK PERBANDINGAN HARGA PENGIRIMAN DENGAN METODE WEB SCRAPPING

DAN PEMANFAATAN API

NASKAH PUBLIKASI

diajukan oleh

Damar Riyadi

10.11.3910

kepada

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA

YOGYAKARTA 2013

Page 2: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses
Page 3: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses

DESIGNING AND DEVELOPING REST WEB SERVICE FOR SHIPPING COST COMPARISON USING

WEB SCRAPPING METHOD AND API

RANCANG BANGUN REST WEB SERVICE UNTUK PERBANDINGAN HARGA PENGIRIMAN DENGAN METODE WEB SCRAPPING

DAN PEMANFAATAN API

Damar Riyadi Andi Sunyoto

Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA

ABSTRACT

Research entitled “Designing and Developing REST Web Service for Shipping Cost Comparison Using Web Scrapping Method and API” aims to design and develop a web service with REST architecture which provides data-interchange service for shipping cost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses web scrapping method at TIKI Online and POS Indonesia website and also making use of API provided by “ongkir.info” for JNE courier in order to gather all needed data. The data will be processed with PHP programming language by implementing REST (Representational State Transfer) web service technology with based on JSON representation of data exchange and communicate through standard protocol HTTP network. Data which is received by service requester or client is in JSON format so it can be processed again with many programming languages on many devices. The research results a web service application for checking shipping cost and services of POS Indonesia, TIKI, and JNE. User who wants to use the web service provided by the system must register to obtain an API Key in order to access the web service functions. Although there is a demo application to check shipping cost which can be accessed from web browser, it is expected many developers who are interested in using the web service to make applications on many devices. Keywords: REST web service, REST API, shipping cost comparison

Page 4: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses

1

1. Pendahuluan

Penggunaan Internet terus mengalami peningkatan dari tahun ke tahun. Jumlah

pengguna Internet yang tadinya kecil, meningkat pesat di tahun-tahun belakangan ini.

Tingkat penggunaan Internet meningkat 20 kali lipat dalam sepuluh tahun terakhir1.

Perangkat utama yang digunakan untuk mengakses Internet di Indonesia terdiri dari 43%

perangkat seluler, 42% komputer desktop, dan 13% laptop2.

Pertumbuhan Internet di Indonesia mendorong pertumbuhan UKM yang

memanfaatkan Internet untuk pemasaran produk mereka. Rata-rata perusahaan

melaporkan bahwa mereka mendapatkan 29% dari penjualan tahunan secara online,

suatu jumlah yang cukup baik dibandingkan dengan perekonomian yang sudah

berkembang seperti Australia3. Perkembangan e-commerce atau toko online ini juga

berdampak pada transaksi jasa pengiriman barang atau kurir. Ketua Asosiasi

Perusahaan Jasa Pengiriman Ekspress Indonesia (Asperindo) Daerah Istimewa

Yogyakarta, Marsudi menyatakan bahwa tingkat perekonomian yang terus mengalami

pertumbuhan menjadi salah satu faktor penyebab semakin suburnya jasa pengiriman

barang dan dokumen. Pemasaran kian luas dengan banyaknya pelaku usaha yang

membuka usaha bisnis online dengan konsumen dari seluruh penjuru nusantara bahkan

internasional. Hal inilah yang menjadikan layanan jasa pengiriman terus mengalami

kenaikan. Hampir 80 persen pengguna layanan jasa ekspress adalah pelaku bisnis

online. Tren ini sudah terjadi sejak tiga tahun lalu. Selain layanan dokumen, para pelaku

bisnis online juga biasa menggunakan layanan ekspress dan kurir4.

Halaman situs pengecekan harga yang disediakan oleh kebanyakan kurir hanya

ramah terhadap perangkat komputer desktop dan laptop. Hal ini membuat proses

perbandingan harga menjadi lebih lama dan kurang praktis karena harus menyalakan

komputer desktop atau laptop, membuka situs web satu persatu dan memasukkan data

secara berulang-ulang pada tiap-tiap website. Oleh sebab itu, Penulis mencoba

merancang dan membuat aplikasi yang dapat membandingkan harga pengiriman dari

TIKI, JNE, dan POS Indonesia secara terpadu, sehingga pengguna tidak perlu membuka

situs web satu persatu dan memasukkan data berulang-ulang. Jika dilihat dari

beragamnya perangkat-perangkat pengakses Internet di Indonesia, maka Penulis akan

menyajikan aplikasi ini dalam bentuk web service dengan arsitektur REST sehingga

1 Deloitte, Nusantara Terhubung Peran Internet dalam pembangunan ekonomi Indonesia

(2011:18) 2 Nielsen, The Digital Media Habits and Attitudes of Southeast Asian Consumers October 2011

(2011:9) 3 Deloitte, Nusantara Terhubung Peran Internet dalam pembangunan ekonomi Indonesia

(2011:27) 4 http://jogja.tribunnews.com/2012/09/08/pelaku-bisnis-online-jadi-pelanggan-terbesar. Diakses 28

April 2013

Page 5: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses

2

dapat dikembangkan untuk mengadaptasi perkembangan teknologi perangkat pengakses

Internet di Indonesia. Dengan adanya web service ini diharapkan mempermudah para

programmer untuk membuat aplikasi berbasis Android, iOS, BlackBerry, dan lain-lain.

2. Landasan Teori

2.1 Web Service

Web service adalah sebuah software yang dirancang untuk mendukung

interoperabilitas interaksi mesin-ke-mesin melalui sebuah jaringan. Web service secara

teknis memiliki mekanisme interaksi antar sistem sebagai penunjang interoperabilitas,

baik berupa agregasi (pengumpulan) maupun sindikasi (penyatuan). Web service

memiliki layanan terbuka untuk kepentingan integrasi data dan kolaborasi informasi yang

bisa diakses melalui internet oleh berbagai pihak menggunakan teknologi yang dimiliki

oleh masing-masing pengguna5.

Alasan menggunakan web service adalah kemudahan dalam penggunaan

kembali (reuse) dan berbagi (share) logika yang sama dengan klien yang beragam

seperti mobile, desktop, dan aplikasi web. Jangkauan web service yang luas karena web

service bergantung pada standar yang terbuka, dapat beroperasi pada plaftorm yang

berbeda, serta tidak bergantung pada teknologi eksekusi yang mendasarinya. Semua

web service setidaknya menggunakan HTTP dan format pertukaran data standar berupa

XML, JSON, atau media lain. Selain itu, web service menggunakan HTTP dalam dua

cara yang berbeda yaitu sebagai protokol standar untuk menentukan perilaku standar

pelayanan serta sebagai media transportasi untuk menyampaikan data6.

2.2 REST Web Service

REST web service terdiri dari dua istilah yaitu “REST” dan “web service”. Menurut

Roy Thomas Fielding, REST (REpresentational State Transfer) adalah model arsitektur

yang pada dasarnya memanfaatkan teknologi dan protokol yang sudah ada seperti HTTP

(Hypertext Transfer Protocol) dan XML. REST web service merupakan web service yang

dibangun dengan memanfaatkan teknologi dan protokol yang sudah ada7. Desain REST

web service lebih mirip seperti pekerjaan seni daripada sains, hal ini dikarenakan desain

REST harus bisa menjawab permasalahan yang dihadapi8.

5 Edhy Sutanta, Kebutuhan Web Service untuk Sinkronisasi Data Antar Sistem Informasi dalam E-

Gov di Pemkab Bantul Yogyakarta (Bandung, Jurtik STMIK Bandung) 6 Robert Daigneau, Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and

RESTful Web Services (Boston, Pearson Education, Inc.), hal. 6. 7 Samisa Abeysinghe, RESTful PHP Web Services (Birminghan, Packt Publishing Ltd), hal 7.

8 Mark Masse, REST API Design Rulebook (California, O’Reilly Media, Inc.), hal. 6.

Page 6: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses

3

Penggunaan metode-metode HTTP dalam REST adalah sebagai berikut9:

Tabel 2.1 Metode HTTP dan Penggunaannya dalam REST

Metode Deskripsi

GET Mendapatkan (read) sebuah sumber daya (resource) yang

diidentifikasi dengan URI (Uniform Resource Identifier)

POST Mengirimkan sumber daya (resource) ke server. Digunakan

untuk membuat (create) sumber daya baru.

PUT Mengirimkan sumber daya (resource) ke server. Digunakan

untuk memasukkan (insert) atau memperbarui (update) sumber

daya yang tersimpan.

DELETE Menghapus (delete) sumber daya (resource) yang diidentifikasi

dengan URI.

HEAD Mendapatkan metadata (response header) dari sumber daya

(resource) yang diidentifikasi dengan URI.

Sampai sekarang, REST best practice dipilih oleh para pengembang dalam

melakukan desain REST web service sehingga desain antara yang satu dengan yang

lain bisa berbeda-beda tergantung masalah yang dihadapi. Beberapa aturan best

practice tersebut adalah REST menggunakan URI sebagai identifier, interaksi

menggunakan HTTP, serta format balasan harus valid dan konsisten10

.

2.3 Web Scraping

Web scraping merupakan sekumpulan teknik untuk mendapatkan informasi dari

sebuah website secara otomatis tanpa harus menyalinnya secara manual. Tujuan dari

web scraper adalah untuk mencari informasi tertentu, mengekstraksi informasi tersebut,

kemudian menghimpunnya dalam halaman web yang baru. Beberapa web scraper

memfokuskan dirinya untuk mengubah data yang tidak terstruktur dan menyimpannya ke

dalam data yang terstruktur11

.

Secara teknis web scraping tidak termasuk dalam bidang data mining karena

data mining mengandung upaya untuk memahami pola semantik atau tren dalam

kumpulan data yang besar yang telah diperoleh. Aplikasi web scraping (umunya disebut

juga dengan agen yang cerdas dan otomatis) berfokus hanya pada mendapatkan data

dengan cara pengambilan dan ekstraksi serta dapat melibatkan kumpulan data dengan

perbedaan ukuran yang signifikan12

.

9 Mark Masse, REST API Design Rulebook (California, O’Reilly Media, Inc.), hal. 23.

10 Mark Masse, REST API Design Rulebook (California, O’Reilly Media, Inc.), hal. 6.

11 Eloisa Vargiu, Exploiting Web Scraping in a Collaborative Filtering-based Approach to Web

Advertising (Artificial Intelligence Research, 2013, Vol. 2, No. 1 DOI 10.5430/air.v2n1p44). 12

Matthew Turland, php|architect’s Guide to Web Scraping (Toronto, Marco Tabini & Associates,

Inc), hal. 2.

Page 7: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses

4

Berikut gambaran ringkas proses web scraping mulai memperoleh dokumen

hingga mendapatkan data yang diinginkan:

Gambar 2.1 Alur Proses Web Scraping Secara Umum

2.4 PHP/CURL

PHP/CURL merupakan salah satu pustaka di PHP yang dapat digunakan untuk

melakukan web scraping. Proyek cURL merupakan proyek open source yang

dikembangkan oleh programmer dari Swedia Daniel Stenberg dan timnya. Pustaka cURL

tersedia hampir untuk semua bahasa pemrograman. Ketika cURL digunakan dengan

PHP, maka dikenal dengan PHP/CURL. Nama cURL dapat diartikan gabungan dua kata

client dan URL atau sebuah singkatan dari client URL Request Library13

.

13

Luke Welling, PHP and MySQL Web Development Fourth Edition (Boston, Addison-Wesley).

Page 8: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses

5

2.5 phpQuery

phpQuery merupakan tool yang bisa digunakan untuk parsing atau mengekstrak

data dari halaman web yang telah didapatkan oleh PHP/CURL. phpQuery menggunakan

syntax yang mirip dengan jQuery, sehingga pengguna yang sudah terbiasa bekerja

dengan jQuery akan mudah menggunakan phpQuery. phpQuery memiliki fitur yang

hampir sama dengan jQuery, seperti kemampuan untuk membuat element Document

Object Model (DOM), memilih dan memanipulasi elemen, melakukan iterasi terhadap

Document Object Model (DOM), serta menampilkan output ke peramban web, bedanya

jQuery dijalankan di sisi klien, sedangkan phpQuery dijalankan di sisi server14

.

3. Analisis Dan Perancangan Sistem

3.1 Tinjauan Umum

Pengecekan tarif pengiriman atau ongkos kirim merupakan kegiatan yang sering

dilakukan oleh orang yang sering berinteraksi dengan jual beli online baik itu penjual

maupun pembeli. Di Indonesia, terdapat tiga perusahaan penyedia jasa pengiriman

barang dan dokumen (kurir) dengan pangsa pasar terbesar yaitu TIKI, JNE, dan POS

Indonesia. Masing-masing kurir tersebut memiliki website dengan fasilitas pengecekan

ongkos kirim. Pengecekan ongkos kirim ini sangat penting bagi penjual maupun pembeli

karena hal ini berpengaruh pada kesepakatan transaksi jual beli online terkait dengan

total biaya yang harus dikeluarkan pembeli untuk membeli barang atau jasa yang

ditawarkan.

TIKI, JNE, dan POS Indonesia menyediakan fasilitas pengecekan tarif

pengiriman (ongkos kirim) pada situs mereka masing-masing. Pengguna yang ingin

membandingkan tarif pengiriman biasanya membuka ketiga situs tersebut dan

membandingkannya satu per satu. Desain situs yang disediakan oleh TIKI, JNE, dan

POS Indonesia kurang ramah dengan perangkat mobile seperti tablet dan smartphone

sehingga pengguna harus menggunakan komputer desktop atau laptop agar nyaman

menggunakan fasilitas pengecekan tarif pengiriman di situs TIKI, JNE, atau POS

Indonesia.

3.2 Analisis Kebutuhan Sistem

Untuk mempermudah analis sistem dalam menentukan keseluruhan kebutuhan

secara lengkap, maka kebutuhan sistem dibagi ke dalam dua jenis, yaitu kebutuhan

fungsional (functional requirement) dan kebutuhan non-fungsional (nonfunctional

requirement).

14

http://code.google.com/p/phpquery. Diakses 19 Mei 2013.

Page 9: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses

6

3.2.1 Analisis Kebutuhan Fungsional

Analisis kebutuhan sistem yang akan dibangun adalah sebagai berikut:

a. Sistem harus berupa web service yang mampu memberikan data balasan

berupa JSON agar bisa diolah lagi oleh bahasa pemrograman lain dengan

mudah. Nantinya JSON ini bisa diolah untuk membuat aplikasi berbasis web,

desktop ataupun mobile seperti Android, BlackBerry, iOS, dan lain-lain.

b. Sistem harus mampu melakukan autentifikasi request ke web service dengan

menggunakan API Key untuk mengenali pengguna yang melakukan request.

c. Sistem harus mampu memberikan kode status response yang jelas yaitu

kode status ketika sukses, terjadi kesalahan di server, atau terjadi kesalahan

dari sisi klien.

d. Sistem harus mampu melakukan pengecekan tarif pengiriman (ongkos kirim)

dari TIKI, JNE, dan POS Indonesia.

e. Sistem harus mampu mengecek layanan apa yang tersedia untuk kota tujuan

tertentu pada kurir TIKI, JNE, dan POS Indonesia.

f. Sistem harus mampu menyamakan input yang dimasukkan pengguna dalam

pengecekan tarif kiriman dan layanan kurir untuk semua kurir. Input tersebut

termasuk kota asal, kota tujuan, dan berat pengiriman.

g. Sistem harus mendukung pengecekan tarif pengiriman dan layanan kurir

berdasarkan kodepos.

h. Sistem harus mampu melakukan caching terhadap hasil scraping yang telah

dilakukan untuk periode tertentu. Tujuan dari caching ini adalah untuk

mempercepat proses pemberian response kepada pengguna.

i. Sistem harus mampu menyimpan statistik penggunaan yaitu kota asal, kota

tujuan, berat kiriman, kurir, alamat IP pengguna, tanggal pengecekan, dan

hasil pengecekan. Statistik ini nantinya bisa dijadikan data untuk analisis

lebih lanjut.

j. Sistem harus memiliki fitur user management termasuk pendaftaran

pengguna baru, mengubah data pengguna, serta menghapus pengguna jika

dibutuhkan. API key bisa didapatkan dengan mendaftarkan sebagai

pengguna baru.

k. Sistem harus memiliki dokumentasi penggunaan API yang jelas dan mudah

dimengerti oleh developer.

l. Sistem harus memiliki aplikasi klien sebagai demo agar developer tertarik

untuk menggunakan layanan yang diberikan web service.

Page 10: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses

7

m. Sistem harus mampu menyimpan history pengguna aplikasi demo bagi

pengguna yang sudah login sehingga dapat menyediakan fitur pencarian

cepat.

3.2.2 Analisis Kebutuhan Non Fungsional

Analisis kebutuhan non fungsional dilakukan untuk mengetahui spesifikasi

kebutuhan sistem. Analisis ini terdiri dari analisis kebutuhan perangkat keras dan analisis

kebutuhan perangkat lunak. Analisis kebutuhan perangkat keras adalah sebagai berikut:

a. Processor : Intel Core i5-3470

b. RAM : Visipro 8GB DD3 PC 12800

c. Harddisk : Seagate 1 TB

d. VGA : AMD Radeon HD 5500 Series

e. Monitor : LG 22”

Sedangkan analisis kebutuhan perangkat lunak adalah sebagai berikut:

a. Sistem Operasi : Microsoft Windows 8 Professional 64bit

b. Program Aplikasi : Netbeans IDE, XAMPP, Heidi SQL,

Visual Paradigm CE, Sublime Text

c. Bahasa Pemrograman : PHP

d. Framework : CodeIgniter

e. UI Framework : Twitter Bootstrap

f. Pustaka yang digunakan : CodeIgniter REST Server, phpQuery, Tank

Auth, CodeIgniter Template

3.3 Analisis Kelayakan Sistem

3.3.1 Kelayakan Teknis

Menurut Nielsen (Nielsen, 2011:9) perangkat utama yang digunakan untuk

mengakses Internet di Indonesia terdiri dari 43% perangkat seluler, 42% komputer

desktop, dan 13% laptop. Sedangkan perangkat pengakses Internet yang paling ingin

dimiliki di Indonesia pada tahun 2012 mencapai 29% untuk perangkat smartphone, 27%

untuk laptop, 19% untuk komputer desktop, dan 19% untuk tablet. Hal ini menunjukkan

beragamnya perangkat pengakses Internet di Indonesia. Oleh sebab itu, perlu

dikembangkan sebuah web service untuk pengecekan tarif pengiriman (ongkos kirim)

sehingga memudahkan para developer atau programmer untuk membuat aplikasi pada

berbagai platform dengan memanfaatkan layanan dari web service yang dibangun.

3.3.2 Kelayakan Hukum

Dari sisi software, perancangan dan pengembangan sistem ini menggunakan

sistem operasi Microsoft Windows 8 Professional yang berlisensi dan aplikasi yang

digunakan untuk perancangan dan pengembangan memiliki lisensi freeware dan open

source. Selain itu, framework dan library yang digunakan seperti CodeIgniter, Twitter

Page 11: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses

8

Bootstrap, phpQuery juga bersifat free dan open source. Sedangkan dari sisi data dan

informasi, data anggota yang mendaftar di sistem ini termasuk email dan password tidak

akan disebarkan kepada pihak lain. Sistem ini melakukan enkripsi pada password

sehingga meskipun database mengalami serangan hacker, password anggota tidak akan

terbongkar.

3.3.3 Kelayakan Operasional

Sistem ini dibuat dengan framework CodeIgniter yang terkenal ringan dan dapat

berjalan pada server standar shared hosting. Sistem dapat dijalankan di web hosting

yang banyak tersedia di pasaran. Selain itu, sistem ini memilih tiga perusahaan jasa

pengiriman barang dan dokumen yang menguasai pangsa pasar pengiriman domestik di

Indonesia yaitu TIKI, JNE, dan POS Indonesia sehingga informasi yang disediakan

diharapkan sesuai dengan kebutuhan masyarakat terutama yang sering berinteraksi

dengan jual beli online.

4. Implementasi Dan Pembahasan

4.1 Pembuatan Database

Untuk membuat web dinamis, maka diperlukan sebuah media penyimpanan data,

sehingga data bisa dimanipulasi dengan lebih mudah. Media penyimpanan ini disebut

database. Database terdiri dari tabel-tabel yang berfungsi untuk menyimpan record-

record informasi. Untuk mempermudah pembuatan database, maka penulis

menggunakan paket aplikasi XAMPP.

4.2 Instalasi Library yang Dibutuhkan

Beberapa library dibutuhkan untuk mempermudah proses pengembangan sistem

ini. Berikut library yang dipakai.

a. CodeIgniter REST Server

b. phpQuery

c. Tank_auth

d. Template

4.3 Konfigurasi File-File CodeIgniter

Sebelum melakukan pembuatan program, ada beberapa file bawaan CodeIgniter

dan library yang harus dikonfigurasi sesuai dengan kebutuhan sistem yang akan

dibangun. Berikut beberapa konfigurasi yang harus dilakukan.

a. Konfigurasi Database.php

b. Konfigurasi Autoload.php

c. Konfigurasi Config.php

d. Konfigurasi Routes.php

e. Konfigurasi Email.php

Page 12: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses

9

f. Konfigurasi Rest.php

g. Konfigurasi Tank_auth.php

h. Konfigurasi Rajaongkir.php

4.4 Fungsi-Fungsi Web Service yang Tersedia

4.4.1 Fungsi “province”

Fungsi “province” merupakan fungsi yang bisa dipanggil oleh pengguna untuk

mendapatkan data mengenai propinsi di Indonesia. Fungsi ini mempunyai satu

parameter wajib yaitu “key” yang merupakan API key pengguna dan satu parameter tidak

wajib yaitu ID propinsi. Jika ID propinsi tidak disertakan dalam request maka sistem akan

membalas dengan data semua propinsi yang ada di Indonesia. Sedangkan jika ID

propinsi disertakan, maka sistem akan membalas dengan data dari propinsi terkait.

4.4.2 Fungsi “city”

Fungsi “city” merupakan fungsi yang bisa dipanggil oleh pengguna untuk

mendapatkan data mengenai kota atau kabupaten yang ada di Indonesia. Fungsi ini

mempunyai satu parameter wajib yaitu “key” yang merupakan API key pengguna dan dua

parameter tidak wajib yaitu ID propinsi dan ID kota atau kabupaten. Jika ID propinsi dan

ID kota tidak disertakan dalam request, maka sistem akan membalas dengan data semua

kota/kabupaten yang ada di Indonesia. Jika disertakan, maka sistem akan membalas

dengan data kota/kabupaten sesuai ID propinsi atau ID kota terkait.

4.4.3 Fungsi “service”

Fungsi “service” merupakan fungsi yang dapat dipanggil oleh pengguna untuk

mendapatkan data mengenai layanan kurir yang tersedia untuk kota tujuan dan berat

tertentu. Fungsi ini mempunyai tiga parameter wajib dan satu parameter tidak wajib.

Parameter wajib meliputi “key” yang merupakan API key pengguna, “destination” yaitu

kota tujuan pengiriman, dan “weight” yaitu berat kiriman dalam gram. Sedangkan

parameter tidak wajib yaitu “courier” yaitu kurir yang dipakai (pos, tiki, dan jne), jika

parameter ini tidak disertakan, maka sistem akan menampilkan data dari semua kurir.

4.4.4 Fungsi “cost”

Fungsi “cost” merupakan fungsi yang dapat dipanggil oleh pengguna untuk

mendapatkan data tarif pengiriman (ongkos kirim) dari kurir yang tersedia. Fungsi ini

mmpunya empat parameter wajib dan satu parameter tidak wajib. Parameter wajib

tersebut adalah “key” yang merupakan API key pengguna, “origin” yaitu kota asal

pengiriman, “destination” yaitu kota tujuan pengiriman, dan “weight” yaitu berat kiriman

dalam gram. Sedangkan parameter tidak wajib yaitu “courier” yaitu kurir yang dipakai

(pos, tiki, dan jne), jika parameter ini tidak disertakan, maka sistem akan menampilkan

data dari semua kurir.

Page 13: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses

10

4.5 Instalasi Online

4.5.1 Menyewa Domain dan Hosting

Langkah pertama yang harus dilakukan untuk melakukan instalasi online adalah

menyewa domain dan hosting. Penulis membeli domain dengan nama “rajaongkir.com”

karena nama tersebut mudah diingat dan mereprentasikan jenis sistem yang dibangun.

Untuk hosting, penulis memilih hosting dengan lokasi server di Indonesia (IIX) guna

mempercepat proses komunikasi antara server sistem dengan server kurir yang berada

di Indonesia.

Langkah selanjutnya setelah menyewa domain dan hosting adalah mengatur

nameserver agar domain “rajaongkir.com” terhubung ke hosting yang sudah dipesan.

Pengaturan nameserver untuk sistem ini tampak pada gambar di bawah ini:

Gambar 4.1 Pengaturan Nameserver “Rajaongkir.com”

4.5.2 Mengunggah Aplikasi ke Hosting

Setelah domain dan hosting berhasil dikonfigurasi, langkah selanjutnya adalah

mengunggah aplikasi dan database dari localhost ke hosting yang sudah dipesan.

Berikut langkah-langkah mengunggah aplikasi ke hosting:

1. Mengakses cPanel sesuai petunjuk yang diberikan pihak penyedia layanan

hosting.

Page 14: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses

11

2. Membuat database baru dengan mengakses menu “MySQL Databases”

pada cPanel.

3. Mengekspor database yang berada di localhost ke database yang ada di

hosting.

4. Mengunggah file-file aplikasi (CodeIgniter) ke folder “public_html” atau folder

“www” di hosting.

5. Melakukan konfigurasi file “database.php” di CodeIgniter sesuai dengan

pengaturan database yang telah dibuat.

6. Mengubah variabel “ENVIRONMENT” yang berada di file “index.php”

menjadi “production” agar pesan error tidak muncul di aplikasi online.

4.6 Contoh Aplikasi Klien yang Menggunakan Web Service

Setelah sistem berjalan secara online, Penulis mempromosikan sistem ini ke

berbagai forum khususnya forum programmer. Hasilnya ada satu aplikasi berbasis

Android yang menggunakan web service yang dibangun. Hal ini menunjukkan bahwa

web service yang dibangun bisa digunakan serta dokumentasi yang telah dibuat sudah

cukup jelas.

Aplikasi klien tersebut bernama “Mbah Ongkir” yang dibuat oleh SnoovMedia.

Aplikasi ini dapat diinstal melalui Google Play Store dengan alamat

https://play.google.com/store/apps/details?id=com.hangga.omaongkir. Berikut tampilan

dari aplikasi “Mbah Ongkir” tersebut:

Gambar 4.3 Tampilan Splash Screen Mbah Ongkir

Page 15: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses

12

Gambar 4.4 Tampilan Input Data Mbah Ongkir

Gambar 4.3 Tampilan Hasil Pengecekan di Mbah Ongkir

Page 16: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses

13

5. Kesimpulan Dan Saran

5.1 Kesimpulan

1. Metode web scraping yang digunakan untuk mendapatkan data harga

pengiriman pada situs web TIKI dan POS Indonesia yaitu dengan cara

mengunduh file HTML menggunakan cURL kemudian file HTML tersebut.

Setelah itu, dilakukan proses ekstraksi data yang diinginkan dengan

menggunakan phpQuery.

2. Pemanfaatan API “ongkir.info” untuk mendapatkan data ongkos kirim dan

layanan kurir JNE dilakukan dengan mendaftar akun penggunaan API di

“ongkir.info” sehingga bisa mengakses fungsi pengecekan ongkos kirim dan

layanan kurir. Response yang diberikan oleh “ongkir.info” kemudian diolah

agar sesuai dengan sistem yang dibangun.

3. Perancangan sistem REST web service dimulai dengan melakukan analisis

terhadap kebutuhan sistem. Kebutuhan sistem ini terbagi menjadi dua jenis:

a. Kebutuhan Fungsional yaitu jenis kebutuhan yang berisikan proses-

proses apa saja yang diberikan oleh sistem tersebut.

b. Kebutuhan Non Fungsional yaitu fitur-fitur pelengkap yang menunjang

kerja sebuah sistem dan mempunyai pengaruh yang tidak langsung.

Setelah melalui tahap analisis, tahap selanjutnya adalah perancangan

seperti pemodelan sistem, perancangan database, dan perancangan antar

muka. Kemudian dilanjutkan dengan tahap implementasi dengan

pembuatan database, mendesain tampilan, pembuatan kode program, dan

pengujian aplikasi.

5.2 Saran

1. Sistem diharapkan dapat dikembangkan lagi dengan menambahkan jumlah

kurir yang dipakai serta penambahan fitur seperti pengecekan nomor resi

pengiriman.

2. Sistem diharapkan mampu melakukan web scraping langsung ke situs JNE

untuk menghindari ketergantungan terhadap layanan pihak ketiga yaitu

“ongkir.info”.

3. Sistem diharapkan mampu menangani error yang terjadi dalam proses web

scraping dengan lebih cerdas terutama penanganan error jika terjadi

perubahan tampilan dari situs yang di-scraping.

4. Walaupun tampilan halaman demo saat ini mudah digunakan dan

menggunakan konsep responsive design, namun kedepannya diharapkan

desain tampilan halaman demo dapat terus dikembangkan sehingga dapat

Page 17: RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost comparison between TIKI, JNE, and POS Indonesia courier services. The research uses

14

menyesuaikan dengan layanan web service yang ada serta mengikuti trend

perkembangan teknologi web design terkini.

Daftar Pustaka Sutanta, Edhy et.al. 2012. Kebutuhan Web Service untuk Sinkronisasi Data Antar Sistem

Informasi dalam E-Gov di Pemkab Bantul Yogyakarta. JURTIK - STMIK BANDUNG (edisi Mei 2012).

Vargiu, Eloisa et al. 2012. Exploiting Web Scraping in a Collaborative Filtering-based

Approach to Web Advertising. Artificial Intelligence Research, 2013, Vol. 2, No. 1 DOI 10.5430/air.v2n1p44.

Abeysinghe, Samisa. 2008. RESTful PHP Web Services. Birmingham: Packt Publishing

Ltd. Daigneau, Robert. 2012. Service Design Patterns: Fundamental Design Solutions for

SOAP/WSDL and RESTful Web Services. Boston: Pearson Education, Inc. Masse, Mark. 2012. REST API Design Rulebook. California: O’Reilly Media, Inc. Turland, Matthew. 2010. php|architect’s Guide to Web Scraping. Toronto: Marco Tabini &

Associates, Inc. Welling, Luke et al. 2009. PHP and MySQL Web Development Fourth Edition. Boston:

Addison-Wesley. Anonim. 2010. phpQuery - jQuery port to PHP. Diakses 19 Mei 2013. URL:

http://code.google.com/p/phpquery/. Deloitte, 2011. Nusantara Terhubung Peran Internet Dalam Pembangunan ekonomi

Indonesia. Diunduh dari: http://www.deloitte.com/assets/Dcom-Australia/Local%20Assets/Documents/Services/Corporate%20Finance/Access%20Economics/Deloitte_The_Connected_Archiplelago_Indonesian_Dec_2011.pdf

Nielsen, 2011. The Digital Media Habits and Attitudes of Southeast Asian Consumers.

Diunduh dari: http://www.nielsen.com/us/en/reports/2011/south-east-asian-digital-consumer-habits.html

Mahrizal, Victor. 2012. Pelaku Bisnis Online Jadi Pelanggan Terbesar. Diakses tanggal

28 April 2013. URL: http://jogja.tribunnews.com/2012/09/08/pelaku-bisnis-online-jadi-pelanggan-terbesar