RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost...
Transcript of RANCANG BANGUN REST WEB SERVICE UNTUK ...repository.amikom.ac.id/files/Publikasi_10.11.3910.pdfcost...
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
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
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
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.
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.
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).
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.
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.
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
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
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.
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.
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
12
Gambar 4.4 Tampilan Input Data Mbah Ongkir
Gambar 4.3 Tampilan Hasil Pengecekan di Mbah Ongkir
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
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