Anda di halaman 1dari 51

PENGEMBANGAN REST API SISTEM INFORMASI

MARKETPLACE PARIWISATA INDOEXPLORE.ID

HARALDI IKHSAN ARDIANSYAH

DEPARTEMEN ILMU KOMPUTER


FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2017
PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA

Dengan ini saya menyatakan bahwa skripsi berjudul Pengembangan REST-


API Sistem Informasi Marketplace Pariwisata IndoExplore.id adalah benar karya
saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa
pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip
dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah
disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir
skripsi ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut
Pertanian Bogor.
Bogor, Agustus 2017

Haraldi Ikhsan A
NIM G64130102
ABSTRAK
HARALDI IKHSAN Ardiansyah. Pengembangan REST API Sistem Informasi
Marketplace Pariwisata IndoExplore.id. Dibimbing oleh MEUTHIA
RACHMANIAH.

Marketplace adalah proses jual dan beli barang atau jasa secara online,
marketplace membantu penjual, seperti usaha kecil mikro menengah untuk
memasarkan barang atau jasa melalui media yang tepat. Di Indonesia, jarang
ditemukan sistem informasi pariwisata yang melakukan transaksi jual-beli jasa atau
pemesanan jasa pariwisata secara online. Penelitian ini berfokus pada
pengembangan REST API sistem informasi marketplace pariwisata IndoExpore.id
berbasis web dan Android menggunakan metode Scrum. REST API dikembangkan
menggunakan bahasa pemrograman Node.js dengan framework Express.js dan
basis data MySQL. Hasil dari penelitian ini yaitu REST API sistem informasi
IndoExplore.id yang dapat memudahkan web dan Android dalam pemrosesan dan
penyimpanan data sistem. Web dan Android mengakses REST API melalui request
method yaitu GET, POST, PUT, dan DELETE. Sistem ini berhasil dikembangkan
dengan iterasi sprint sebanyak 4 kali. Pengembangan sistem ini dapat
mempermudah penyedia jasa pariwisata memasarkan jasanya dan membantu
pengguna memesan jasanya secara mudah dan efektif.

Kata Kunci: marketplace, pariwisata, REST API, sistem informasi

ABSTRACT

HARALDI IKHSAN Ardiansyah. Development REST API of Marketplace


Information System IndoExplore.id. Supervised by MEUTHIA RACHMANIAH.

Marketplace is the process of buying and selling goods or services over the
Internet, where marketplace help sellers, such as small scale micro businesses to
market their goods and services using the proper media. In Indonesia, it is rare to
find tourism information systems that perform transactions or booking of online
tourism services. This research focused on development REST API for web and
Android information system using the scrum method. REST API was developed
using Node.js as programming language, Express.js framework, and MySQL
database. The result of this research was REST API that can facilitate web and
Android IndoExplore.id information system in processing including storing system
data. Web and Android access REST API through request methods which are GET,
POST, PUT, and DELETE. This system successfully developed within 4 times
sprint iteration. This developed system help facilitate tourism provider to market
their services and help travelers to obtain their services more easily and effectively.

Keywords: Information System, marketplace, REST API, tourism


PENGEMBANGAN REST API SISTEM INFORMASI
MARKETPLACE PARIWISATA INDOEXPLORE.ID

HARALDI IKHSAN ARDIANSYAH

Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer
pada
Departemen Ilmu Komputer

DEPARTEMEN ILMU KOMPUTER


FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2017
Penguji:
1 Auzi Asfarian, SKomp MKom
2 Husnul Khotimah, SKomp MKom
PRAKATA

Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas
segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang
dipilih dalam penelitian yang dilaksanakan sejak bulan Januari 2017 ini ialah sistem
informasi, dengan judul Pengembangan REST API Sistem Informasi Marketplace
Pariwisata IndoExplore.id.
Penulisan skripsi ini merupakan salah satu syarat memperoleh gelar Sarjana
Komputer pada Program Studi Ilmu Komputer Institut Pertanian Bogor. Selama
penulisan skripsi ini penulis banyak menemukan hambatan dan kendala, sehingga
tugas akhir ini tidak mungkin dapat diselesaikan tanpa adanya bantuan dari berbagai
pihak. Oleh karena itu, penulis mengucapkan terima kasih dan penghargaan kepada:
1 Ayah Dr Ir Muhammad Ardiansyah dan Ibu Ir Artati serta keluarga yang selalu
mendoakan dan memberi nasihat, motivasi, dukungan, serta kasih sayang
sehingga penelitian ini bisa diselesaikan.
2 Gita Giantina yang telah membantu penyelesaian tugas akhir dan memberi
semangat setiap saat.
3 Ibu Ir Meuthia Rachmaniah, MSc selaku pembimbing, yang senantiasa sabar
dan ikhlas meluangkan tenaga, waktu, dan pikiran dalam memberikan
bimbingan dan arahannya sehingga penulis bisa menyelesaikan penelitian ini.
4 Bapak Auzi Asfarian, SKomp MKom dan Ibu Husnul Khotimah, SKomp
MKom selaku penguji atas saran dan masukan yang diberikan.
5 Bapak Dr Ir Agus Buono, MSi MKom selaku Ketua Program Studi Ilmu
Komputer IPB.
6 Seluruh dosen dan staf pegawai tata usaha Departemen Ilmu Komputer IPB
yang telah banyak membantu selama masa perkuliahan hingga penelitian.
7 Teman satu kelompok bimbingan yaitu Irfan KD, Imam R, Kresno S, A Faisal,
Ilman Pangeran, dan Gopur S yang senantiasa membantu dan menyemangati
dalam penyelesaian penelitian ini.
8 Teman terdekat penulis yaitu Irfan KD, Imam R, Ryan B, Irfan H, Ajeng D, dan
BR Fams, BEM G Departemen Olahraga dan Seni 2016, Pimpinan BEM G
2016, Basket IPB (1), Basket FMIPA, Basket Ilmu Komputer, dan Kontrakan
Dalmation.
9 Seluruh teman-teman Program S1 Ilmu Komputer IPB angkatan 50 dan
Himpunan Mahasiswa Padang IPB.
Semoga segala bantuan, bimbingan, motivasi, dan dukungan yang telah
diberikan kepada penulis senantiasa dibalas oleh Allah subhanahu wa ta’ala.
Semoga karya ilmiah ini bermanfaat dan menambah wawasan bagi pembaca.

Bogor, Agustus 2017

Haraldi Ikhsan A
DAFTAR ISI

DAFTAR TABEL viii


DAFTAR GAMBAR viii
DAFTAR LAMPIRAN viii
PENDAHULUAN 1
Latar Belakang 1
Perumusan Masalah 2
Tujuan Penelitian 2
Manfaat Penelitian 3
Ruang Lingkup Penelitian 3
METODE 3
Product Backlog 4
Sprint Planning 4
Daily Scrum 4
Sprint Review 5
Sprint Retrospective 5
Lingkungan Pengembangan 5
HASIL DAN PEMBAHASAN 5
Product Backlog 6
Sprint 1 7
Sprint 2 10
Sprint 3 12
Sprint 4 14
Pengujian 21
SIMPULAN DAN SARAN 22
Simpulan 22
Saran 22
DAFTAR PUSTAKA 22
LAMPIRAN 24
RIWAYAT HIDUP 41
DAFTAR TABEL
1 Perkembangan jumlah kedatangan wisatawan mancanegara (orang) 1
2 Product backlog IndoExplore.id bagian back-end 6
3 Sprint backlog back-end untuk sprint 1 7
4 Sprint backlog back-end untuk sprint 2 11
5 Hasil pengujian sprint backlog back-end pada sprint 2 12
6 Sprint backlog back-end untuk sprint 3 13
7 Hasil pengujian sprint backlog back-end pada sprint 3 14
8 Sprint backlog back-end untuk sprint 4 15
9 REST API sistem informasi IndoExplore.id 17
10 Hasil pengujian sprint backlog back-end pada sprint 4 20
11 Hasil pengujian execution time REST API 21

DAFTAR GAMBAR
1 Tahapan Scrum (Pressman 2010) 4
2 Arsitektur awal penelitian 6
3 (a) Use case client dan (b) activity diagram memesan paket pariwisata 8
4 Sequence diagram memesan paket pariwisata 9
5 ERD sistem informasi IndoExplore.id 10
6 Tampilan back-end fungsi register menggunakan Laravel 5.4 11
7 Tampilan back-end fungsi profil provider menggunakan Laravel 5.4 13
8 Tampilan back-end fungsi homepage menggunakan Laravel 5.4 15
9 Arsitektur sistem informasi IndoExplore.id 16
10 Class Diagram untuk pengembangan REST API sistem informasi
IndoExplore.id 17
11 Potongan kode program untuk validasi JWT 18
12 Keluaran REST API dalam bentuk JSON 19
13 Sequence diagram REST API fungsi Login 19

DAFTAR LAMPIRAN
1 Product backlog sistem informasi IndoExplore.id 24
2 Potongan kode program untuk validasi JWT 27
3 Sequence diagram REST API sistem informasi IndoExplore.id 28
PENDAHULUAN

Latar Belakang

Indonesia merupakan negara yang memiliki berbagai macam suku, budaya,


dan kaya akan keindahan alam seperti gunung, hutan, danau, pantai, laut, dan
tempat peninggalan sejarah. Keindahan alam Indonesia memiliki keunikan sendiri
antara satu tempat dengan yang lainnya. Keunikan inilah yang membuat daya tarik
para wisatawan untuk mengunjungi berbagai objek wisata demi mencari sesuatu
yang berbeda.
Wisatawan domestik maupun mancanegara mengunjungi objek wisata di
Indonesia memiliki tujuan yang sama diantaranya mengenal kebudayaan, melepas
penat, menghilangkan rasa penasaran, atau menambah wawasan maupun
pengalaman. Hal ini membuat wisatawan tidak pernah bosan untuk terus menikmati
pesona Indonesia karena objek wisata di Indonesia memiliki kekhasan sendiri.
Tabel 1 menunjukkan bahwa setiap tahunnya jumlah kedatangan wisatawan
mancanegara di Indonesia mengalami peningkatan sebesar 3.69%. Peningkatan
tertinggi terjadi pada tahun 2016 sebesar 1 081 932 kedatangan (BPS 2017). Tahun
2017 diprediksi jumlah wisatawan yang datang ke Indonesia akan lebih meningkat.
Namun meningkatnya jumlah kedatangan wisatawan di Indonesia kurang disertai
dengan informasi pariwisata mengenai akses, akomodasi, objek wisata populer, dan
kegiatan yang dapat dilakukan di tempat yang dituju. Penyedia jasa pariwisata tidak
memiliki media yang tepat untuk memasarkan jasanya.
Tabel 1 Perkembangan jumlah kedatangan wisatawan mancanegara (orang)
Tahun
Bulan
2013 2014 2015 2016 2017
Januari 614 328 753 079 724 698 740 570 959 760
Februari 678 415 702 666 794 302 813 920 887 281
Maret 725 316 765 607 792 804 852 226 960 326
April 646 117 726 332 750 999 855 316 1 018 853
Mei 700 708 752 363 794 294 872 534 978 467
Juni 789 594 851 475 815 307 815 061 *
Juli 717 784 777 210 815 351 970 484 *
Agustus 771 009 826 821 853 244 982 333 *
September 770 878 791 296 870 351 961 072 *
Oktober 719 903 808 767 826 196 980 772 *
November 807 422 764 461 777 976 931 381 *
Desember 860 655 915 334 913 828 1 035 612 *
Total 8 804 142 9 437 425 9 731 365 10 813 297 4 804 687
* : Data belum tersedia, Sumber : Badan Pusat Statistik (2017).
Salah satu penyebab pariwisata di Indonesia kurang dikenal adalah kurangnya
informasi pariwisata yang dapat diakses secara online. Hal ini didorong dengan
meningkatnya kebutuhan informasi seiring berkembangnya teknologi saat ini.
2

Solusi untuk membantu pemasaran pariwisata adalah membuat berbagai sarana


informasi mengenai jasa pariwisata guna meningkatkan permintaan jasa tersebut
(Pitana dan Diarta 2009). Salah satu sarana informasi yang dibutuhkan adalah
sistem informasi pariwisata yang dapat diakses online.
Pengembangan sistem informasi pariwisata di Indonesia kurang diminati
dibandingkan sistem informasi jual-beli yang berkembang pesat di Indonesia.
Proses jual-beli secara online atau biasa disebut e-commerce sudah banyak
dimanfaatkan perusahaan atau startup karena memberikan kenyamanan dan
keleluasaan dalam transaksi. Namun, e-commerce tidak membuka kesempatan bagi
para penjual lain untuk memasarkan barang atau jasa karena e-commerce bersifat
perorangan yang menjual barang atau jasanya sendiri. Hal ini sangat berbeda
dengan marketplace yang membantu penjual lain untuk memasarkan barang atau
jasa secara online. Faktanya, sistem informasi marketplace pariwisata yang dapat
melakukan transaksi jual-beli atau pemesanan jasa pariwisata secara online masih
jarang ditemukan. Jasa tersebut biasanya dilakukan melalui narahubung.
Berdasarkan penelitian sebelumnya, sistem informasi pariwisata telah
diimplementasikan oleh beberapa pengembang web. Taufix et al. (2009)
mengembangkan sistem informasi pariwisata dengan menampung dan
menampilkan semua informasi pendukung yang ada di suatu kota atau di sekitar
tempat wisata. Sistem ini dikembangkan menggunakan basis data MYSQL dan
Content Management System (CMS) Joomla!. Dengan menggunakan sistem
tersebut pencarian hotel dan tempat penyedia makanan di sekitar objek wisata dapat
dilakukan oleh pengunjung dengan mudah. Namun, sistem ini belum dapat
melakukan pemesanan hotel dan memberi info objek wisata populer.
Sistem informasi marketplace pariwisata IndoExplore.id yang dikembangkan
berbasis web dan Android. Pengembangan sistem berbasis web mencakup front-
end dan pengembangan Representational state transfer (REST) application
programming interface (API). Pengembangan sistem berbasis Android terdiri atas
modul client dan provider. Pengembangan REST API sistem informasi
IndoExplore.id akan menjadi fokus pada penelitian ini.

Perumusan Masalah

Permasalahan yang diangkat dalam penelitian ini adalah


1 Bagaimana REST API dapat dikembangkan pada sistem IndoExplore.id?
2 Bagaimana REST API memiliki keamanan dan performa yang baik dalam
pengolahan dan pemrosesan data?
3 Bagaimana REST API dapat digunakan pada sistem informasi IndoExplore.id
berbasis web dan Android?

Tujuan Penelitian

Tujuan dari penelitian ini adalah


1 Mengembangkan REST API yang scalable pada sistem IndoExplore.id.
2 Mengembangkan REST API yang memiliki keamanan dan performa yang baik
dalam pengolahan dan pemrosesan data.
3 Mengembangkan REST API agar dapat memroses dan menyimpan data sistem
pada server.
3

Manfaat Penelitian

Manfaat dari penelitian ini bagi sistem IndoExplore.id memiliki REST API
yang scalable. REST API memiliki keamanan dan performa yang baik dalam
pengolahan dan pemrosesan data. REST API dapat mempermudah web dan
Android sistem informasi IndoExplore.id untuk menjalankan fungsi-fungsi yang
tersedia, mempermudah pengambilan dan penyimpanan data sistem, dan
melengkapi pengembangan sistem informasi marketplace IndoExplore.id.

Ruang Lingkup Penelitian

Sistem informasi marketplace pariwisata IndoExplore.id dikerjakan oleh 4


orang tim pengembang yang dibagi ke dalam 2 tim, yaitu tim web dan tim Android.
Tim web berfokus pada pengembangan front-end dan REST API, sedangkan tim
Android pada modul provider dan client.
Ruang lingkup penelitian ini adalah pengembangan REST API sistem
informasi marketplace pariwisata IndoExplore.id. Penelitian ini dibatasi pada:
1 Pengembangan sistem ini difokuskan pada modul penyediaan jasa pariwisata,
pemesanan jasa, pembayaran jasa via transfer, dan informasi penyedia jasa
pariwisata.
2 Pengguna sistem terdiri atas penyedia jasa pariwisata (provider) dan masyarakat
umum (client).
3 Pengembangan sistem ini menggunakan bahasa pemograman Node.Js. Metode
yang digunakan untuk pengembangan sistem ini yaitu scrum.

METODE

Pengembangan sistem informasi marketplace pariwisata IndoExplore.id ini


dikembangkan menggunakan metode Scrum. Schwaber dan Sutherland (2013)
mengatakan bahwa scrum merupakan metode kerangka kerja untuk menyelesaikan
permasalahan kompleks dan adaptif yang menghasilkan produk bernilai tinggi
dengan kreativitas dan produktivitas.
Ada 3 tokoh utama dalam scrum yaitu product owner, tim pengembang, dan
scrum master (Schwaber dan Sutherland 2013). Product owner bertanggung jawab
untuk memaksimalkan nilai produk dan hasil kerja tim pengembang. Tim
pengembang terdiri atas para profesional yang bekerja untuk menghasilkan produk
yang akan dirilis pada akhir sprint. Tim pengembang dibagi ke dalam dua tim, yaitu
tim web dan tim Android. Scrum master bertanggung jawab untuk memastikan
scrum telah dipahami dan dilaksanakan. Scrum master melakukannya dengan
memastikan tim scrum mengikuti teori, praktik, dan aturan main scrum.
Metode Scrum diilustrasikan pada Gambar 1. Metode ini memiliki empat
tahapan yaitu sprint planning, daily scrum, sprint review, dan sprint retrospective.
Kebutuhan yang harus dipenuhi sebelum melaksanakan metode Scrum yaitu
product backlog dari sistem yang akan dibuat.
4

Gambar 1 Tahapan Scrum (Pressman 2010)


Product Backlog

Product backlog adalah daftar terurut dari setiap hal yang berkemungkinan
dibutuhkan di dalam produk, dan juga merupakan sumber utama, dari daftar
kebutuhan mengenai semua hal yang perlu dilakukan terhadap produk. Product
backlog akan mendefinisikan format sistem, mengidentifikasikan seluruh fungsi
kebutuhan, dan garis besar sistem yang akan dikembangkan (Schwaber dan
Sutherland 2013). Product backlog pada penelitian ini disusun oleh product owner.

Sprint Planning

Tahapan ini merupakan tahapan awal dalam pengembangan sistem


menggunakan metode Scrum, setelah seluruh kebutuhan (product backlog) telah
terpenuhi. Pada tahap ini, product owner menyampaikan product backlog yang
telah dirancang secara terperinci. Seluruh tim pengembang menentukan product
backlog yang akan dikerjakan pada sprint, jumlah yang ditentukan diserahkan
kepada tim pengembang termasuk peneliti juga memilih product backlog yang
diperlukan untuk penelitian ini. Product backlog yang telah ditentukan disebut
sprint backlog. Scrum master memastikan bahwa sprint planning telah berlangsung
(Schwaber dan Sutherland 2013).

Daily Scrum

Tahapan ini merupakan pertemuan antara tim pengembang dan scrum master
selama 15 menit. Tim pengembang menyinkronkan pekerjaannya dan membuat
perencanaan untuk 24 jam ke depan. Pada Daily scrum tim pengembang meninjau
pekerjaan daily scrum sebelumnya dan memperkirakan pekerjaan yang akan
dilakukan pada daily scrum selanjutnya. Peneliti mulai mengerjakan sprint backlog
yang sudah direncanakan pada tahap sprint planning. Scrum master memastikan
pertemuan ini berlangsung, namun yang bertanggung jawab untuk
melangsungkannya adalah tim pengembang (Schwaber dan Sutherland 2013).
5

Sprint Review

Tahapan ini merupakan pembahasan apa yang telah dikerjakan dalam sprint
yang sudah dilaksanakan. Product owner menjelaskan product backlog apa yang
sudah selesai dan apa yang belum selesai. Lalu, tim pengembang
mendemonstrasikan pekerjaan yang sudah diselesaikan, menjelaskan apa masalah
yang dihadapi saat sprint berlangsung, dan menyampaikan solusi untuk
menyelesaikan masalah tersebut. Tahapan ini dilakukan maksimum selama 4 jam
(Schwaber dan Sutherland 2013).

Sprint Retrospective

Tahapan ini merupakan kesempatan bagi tim pengembang untuk meninjau


pekerjaan yang telah selesai dilaksanakan. Scrum master memberi masukan kepada
tim pengembang untuk meningkatkan kinerja agar proses dan praktik scrum
berjalan lebih efektif. Scrum master memastikan bahwa tahapan ini dilaksanakan
dan tim pengembang memahami tujuannya. Tahapan ini dilakukan dengan batasan
waktu 3 jam (Schwaber dan Sutherland 2013).
Sprint dikatakan selesai apabila semua product backlog telah selesai
dikerjakan oleh tim pengembang dan tidak ada penambahan product backlog dari
product owner. Namun, sprint akan berlanjut jika ada product backlog yang masih
belum selesai dikerjakan dan penambahan dari product owner.

Lingkungan Pengembangan

Penelitian ini dikerjakan menggunakan perangkat keras dan lunak.


Perangkat keras yang digunakan adalah laptop Lenovo E440 dengan spesifikasi
RAM 8192 MB dan Processor Intel(R) Core(TM) i7. Perangkat lunak yang
digunakan adalah sistem operasi Windows 10 Pro 64 bit, Atom sebagai text editor,
Node.Js 7.1.0 dengan framework Express.Js, framework PHP Laravel 5.4, DBMS
MYSQL, XAMPP, serta Postman sebagai software penguji REST API.

HASIL DAN PEMBAHASAN

Arsitektur penelitian yang digunakan terdiri atas 3 bagian, yaitu data, server,
dan client. Basis data yang digunakan adalah basis data relasional menggunakan
MySQL pada bagian data. Penggunaan basis data relasional bertujuan untuk
memudahkan management database, mendukung proses transaksi, dan memiliki
keamanan yang baik (Solichin 2016). Pada bagian server, back-end berfungsi
sebagai penghubung antara basis data dan front-end. Bahasa pemograman yang
digunakan untuk membangun back-end adalah PHP dengan framework Laravel 5.4.
Bagian client terdiri atas sistem berbasis web dan Android. Web pada sistem
informasi IndoExplore.id dikembangkan oleh Imam Rachmansyah, sedangkan
Android dikembangkan oleh Irfan Kurnia D dan Kresno Satrio menggunakan
software Android Studio. Arsitektur awal penelitian dapat dilihat pada Gambar 2.
Peneliti, Haraldi Ikhsan A, berfokus pada pengembangan back-end sistem
informasi IndoExplore.id.
6

Gambar 2 Arsitektur awal penelitian

Dalam pengembangan sistem ini terdapat tiga tokoh utama scrum, yaitu
scrum master, product owner, dan tim pengembang. Scrum master diperankan oleh
peneliti. Product owner diperankan oleh Kresno Satrio KZ. Tim pengembang yang
dibagi dalam tim android dan tim web. Tim android mengerjakan modul provider
yang dikerjakan oleh Irfan Kurnia D dan modul client yang dikerjakan oleh Kresno
Satrio KZ. Tim web mengerjakan bagian front-end yang dikerjakan Imam
Rachmansyah dan bagian back-end yang dikerjakan pada penelitian ini.

Product Backlog

Sistem informasi marketplace IndoExplore.id dibuat berdasarkan product


backlog bagian back-end yang telah dibuat oleh product owner (Lampiran 1).
Product backlog yang relevan untuk back-end ditunjukkan pada Tabel 2. Product
backlog dibuat berdasarkan requirements yang didapat dari analisis proses bisnis
dari sistem informasi pariwisata yang telah ada di Indonesia seperti Chipago,
Tripvisto, Triponyu, dan Yellow Door.

Tabel 2 Product backlog IndoExplore.id bagian back-end


Estimasi Tingkat
No Deskripsi Prioritas
(jam) kesulitan
1 Diagram use case client dan provider Tinggi 3 Rendah
2 Diagram activity client dan provider Tinggi 5 Rendah
3 Diagram sequence client dan provider Tinggi 10 Rendah
4 Class diagram sistem IndoExplore.id Tinggi 6 Sedang
5 Perancangan Entity Relationship Tinggi 6 Sedang
Diagram sistem IndoExplore.id
6 Implementasi database sistem Tinggi 8 Tinggi
IndoExplore.id
7 Pengembangan fungsi register client Tinggi 5 Sedang
8 Pengembangan fungsi CRUD destinasi Tinggi 10 Tinggi
untuk provider
9 Pengembangan fungsi booking destinasi Tinggi 4 Tinggi
10 Pengembangan fungsi booking payment Tinggi 4 Tinggi
7

Tabel 2 Product backlog IndoExplore.id bagian back-end (lanjutan)

Estimasi Tingkat
No Deskripsi Prioritas
(jam) kesulitan
11 Pengembangan fungsi homepage Tinggi 12 Tinggi
12 Pengembangan fungsi update client Sedang 5 Sedang
menjadi provider
13 Pengembangan fungsi login dan logout Sedang 6 Tinggi
14 Pengembangan fungsi view pendaftar Sedang 3 Sedang
untuk provider
15 Pengembangan fungsi view destinasi Sedang 3 Sedang
16 Pengembangan fungsi profil provider Rendah 2 Rendah
17 Pengembangan fungsi profil client Rendah 2 Rendah

Product backlog akan terus bertambah apabila terdapat feedback dari


pengguna pada saat demo produk. Requirements tersebut dijadikan product backlog
item dan ditentukan tingkat kesulitan dan estimasi waktu yang diperlukan untuk
menyelesaikannya. Product backlog dibagi menjadi beberapa sprint backlog, pada
penelitian ini product backlog dibagi menjadi 4 sprint. Setiap sprint dilaksanakan
selama ± 4 minggu.

Sprint 1

Sprint Planning Meeting


Scrum master (peneliti) memastikan bahwa tahapan ini berlangsung. Product
owner mendiskusikan dan mengevaluasi product backlog yang telah dibuat secara
detail dan menyampaikan tujuan dari setiap deskripsi. Diskusi dan evaluasi
dilakukan bersama dengan tim pengembang. Sprint backlog yang dikerjakan
ditentukan oleh peneliti pada sprint 1. Sprint backlog yang telah ditentukan dapat
dilihat pada Tabel 3. Pada sprint 1 dipilih 5 dari 17 item product backlog.

Tabel 3 Sprint backlog back-end untuk sprint 1

No Deskripsi Prioritas Keterangan


1 Diagram use case client Tinggi Diagram use case mendefinisikan
dan provider fungsi - fungsi yang akan dibuat pada
sistem IndoExplore.id. Aktor pada
sistem ini meliputi client dan
provider.
2 Diagram activity client Tinggi Diagram activity mendefinisikan
dan provider proses yang akan dilakukan oleh
aktor dengan sistem berdasarkan
fungsi yang telah dibuat pada
diagram use case.
3 Diagram sequence Tinggi Diagram sequence mendefinisikan
client dan provider kolaborasi dinamis antara sejumlah
objek untuk menunjukkan interaksi
antara objek.
8

Tabel 3 Sprint backlog back-end untuk sprint 1 (lanjutan)

No Deskripsi Prioritas Keterangan


4 Perancangan Entity Tinggi ERD menggambarkan hubungan
Relationship Diagram antar data dalam basis data yang
(ERD) memiliki relasi pada setiap entitas.
5 Implementasi database Tinggi Perancangan ini untuk memenuhi
sistem IndoExplore.id kebutuhan informasi dari pengguna
dan sistem.

Daily Scrum

(a) (b)
Gambar 3 (a) Use case client dan (b) activity diagram memesan paket pariwisata
Perancangan use case, activity, dan sequence diagram yang terdapat pada
Tabel 3 dikelompokkan menjadi dua pengguna, yaitu client dan provider.
Perancangan diagram untuk client dikerjakan oleh tim web, sedangkan provider
dikerjakan oleh tim Android. Perancangan use case dan activity diagram
menggunakan aplikasi Draw.io dan sequence diagram menggunakan aplikasi Dia.
Perancangan diagram dibuat dengan mengobservasi dan menganalisis sistem
yang sudah tersedia seperti Chipago, Tripvisto, Triponyu, dan Yellow Door. Use
case diagram pada Gambar 3 (a) menunjukkan bahwa client memiliki tujuh use
case. Client dapat melakukan diskusi, register akun, melihat history trip experience,
memesan paket wisata, melihat paket wisata, memberi ulasan trip, dan melakukan
konfirmasi. Untuk use case memberi ulasan trip terdapat garis putus-putus pada
Gambar 3 (a) dengan tanda <<include>> yang artinya use case dapat dilakukan jika
client telah melakukan login. Untuk use case melihat paket wisata terdapat garis
putus-putus pada Gambar 3 (a) dengan tanda <<extend>> yang artinya jika use case
tersebut dilakukan, maka client dapat melihat paket wisata berdasarkan kategori.
Use case diagram dibuat untuk mempermudah proses pengembangan sistem dan
mengadaptasi jika terdapat use case baru dengan use case yang sudah dibuat
sebelumnya.
9

Activity diagram pada Gambar 3 (b) menunjukkan proses client memesan


paket pariwisata baik pada basis web maupun Android. Diagram tersebut
menunjukkan proses yang dilakukan sistem dengan client ketika memesan paket
pariwisata. Client dapat melakukan pemesanan paket tanpa harus login atau login
melalui akun yang sudah dimiliki. Sequence diagram pada Gambar 4 menunjukkan
interaksi yang dilakukan saat client memesan jasa pariwisata. Diagram tersebut
menunjukkan interaksi antar objek yang dilakukan oleh sistem ketika client
melakukan pemesanan paket pariwisata.

Gambar 4 Sequence diagram memesan paket pariwisata


Perancangan ERD (Gambar 5) sistem IndoExplore.id dikerjakan oleh seluruh
tim pengembang. ERD dirancang dengan mengidentifikasi, menetapkan seluruh
himpunan entitas yang akan terlibat, dan menentukan atribut-atribut key dari
masing-masing entitas. Entitas users dengan bookings memiliki relasi one to many
yang artinya client dapat memesan banyak jasa pariwisata. Setelah itu, ERD
digunakan untuk merancang database sistem.

Sprint Review Meeting


Scrum master memastikan bahwa tahapan ini berlangsung. Tim web
menjelaskan dan mempresentasikan kepada product owner sprint backlog yang
sudah dikerjakan pada sprint 1. Product owner melakukan review untuk memberi
masukan berupa feedback atas diagram use case, activity, dan sequence yang telah
dibuat tim web. Product owner menyetujui 4 item sprint backlog yang telah
dikerjakan tim web sehingga tidak terdapat perubahan dari sprint backlog yang
telah dikerjakan.

Sprint Restrospetive
Product owner menyampaikan hasil yang sudah dikerjakan pada sprint 1
sesuai dengan sprint backlog yang telah direncanakan dan terdapat 12 item product
10

backlog yang tersisa kepada tim pengembang. Product backlog yang tersisa akan
dikerjakan pada sprint 2. Lalu, semua tim pengembang melakukan diskusi dengan
product owner mengenai masalah yang dihadapi dan menyampaikan solusinya
masing-masing pada saat sprint 1. Tidak terdapat masalah yang dihadapi pada
sprint 1.

Gambar 5 ERD sistem informasi IndoExplore.id


Sprint 2

Sprint Planning Meeting


Product backlog yang tersisa pada sprint 2 sebanyak 12 item. Sprint planning
pada sprint 2 difokuskan untuk membuat class diagram yang dapat memberikan
gambaran sistem secara statis dan melakukan pengodean sistem yang akan dibuat
sesuai dengan sprint backlog yang telah dibuat pada Tabel 4. Dipilih 5 dari 12 item
product backlog yang tersisa pada sprint 2. Class diagram dibuat mengacu pada
ERD yang telah dirancang pada Gambar 5 dari sprint 1. Pengodean tersebut
dilakukan dengan menggunakan framework Laravel yang menerapkan konsep
model Model View Controller (MVC). Pembuatan class diagram dan pengodean
sistem ini dilakukan pada daily scrum.
11

Tabel 4 Sprint backlog back-end untuk sprint 2


No Deskripsi Prioritas Keterangan
1 Class diagram sistem Tinggi Diagram ini untuk
IndoExplore.id menggambarkan struktur dan
deskripsi class serta relasi antar
class.
2 Pengembangan fungsi Tinggi Fungsi ini merupakan
register client pendaftaran akun sistem.
3 Pengembangan fungsi Sedang Fungsi ini untuk mengakses atau
login dan logout keluar akun client dengan
melakukan validasi email dan
password.
4 Pengembangan fungsi Sedang
Fungsi ini untuk mengubah akun
update client menjadi
client biasa menjadi provider.
provider
5 Pengembangan fungsi Rendah Fungsi ini untuk mengisi atau
profil client mengubah detail profil client.

Daily Scrum
Tim web melakukan diskusi untuk merancang class diagram yang
dibutuhkan oleh sistem. Perancangan class diagram menggunakan aplikasi draw.io.
Class diagram dibuat untuk memudahkan tim pengembang untuk melakukan
pengodean sistem.
Pengodean sistem yang pertama kali dikembangkan yaitu fungsi register
client. Client melakukan pendaftaran akun dengan memasukan nama, email, dan
password. Setelah itu, client berhasil mendaftar akunnya. Email yang di-input pada
saat mendaftar divalidasi pada back-end sistem dengan aturan unique, yang artinya
jika email sudah pernah digunakan tidak dapat digunakan kembali. Gambar 6
merupakan hasil pengimplementasian fungsi register.

Gambar 6 Tampilan back-end fungsi register menggunakan Laravel 5.4


Kedua, fungsi yang dikembangkan yaitu fungsi login dan logout.
Pengembangan fungsi register, login, dan logout menggunakan fungsi bawaan yang
terdapat pada framework Laravel 5.4 yaitu fungsi Auth. Pengembangan fungsi
tersebut memanfaatkan fungsi yang disediakan oleh framework Laravel.
12

Selanjutnya, fungsi yang dikembangkan yaitu fungsi profil client. Fungsi ini
digunakan untuk menyimpan detail kontak client agar memudahkan pemesanan
client.
Fungsi terakhir yang dikembangkan pada sprint ini adalah update client
menjadi provider (agen travel). Update dilakukan jika client memiliki jasa
pariwisata dan ingin memasarkan jasanya di sistem ini. Update dilakukan dengan
mengubah role pengguna, sehingga memiliki tampilan yang berbeda antara client
dengan provider.

Sprint Review Meeting


Tahapan ini menjelaskan pekerjaan yang telah dilakukan pada sprint kedua
dan mempresentasikannya kepada product owner. Product owner melakukan
review untuk memberi masukan berupa feedback atas class diagram,
pengembangan fungsi register, fungsi login dan logout, fungsi profil client, dan
fungsi update client menjadi provider. Tabel 5 merupakan hasil pengujian sistem
informasi IndoExplore.id. Product owner menyetujui hasil pengujian yang
dilakukan dan tidak terdapat perubahan dari sprint backlog yang telah dikerjakan.
Scrum master memastikan bahwa tahapan ini berlangsung.
Tabel 5 Hasil pengujian sprint backlog back-end pada sprint 2
Fungsi Skenario Hasil pengujian
Register client Pengguna melakukan pendaftaran Berhasil
melalui halaman register
login dan logout Pengguna melakukan login dengan Berhasil
memasukan email dan password,
lalu melakukan logout
Profil client Pengguna menambahkan dan Berhasil
mengedit detail profil
Update client Pengguna mengubah role menjadi Berhasil
menjadi provider provider

Sprint Restrospetive
Product owner menyampaikan hasil yang dikerjakan pada sprint 2 sesuai
dengan sprint backlog yang telah direncanakan dan terdapat 7 item product backlog
yang tersisa. Product backlog yang tersisa akan dikerjakan pada sprint 3. Lalu, tim
pengembang melakukan diskusi dengan product owner mengenai masalah yang
dihadapi dan menyampaikan solusinya masing - masing pada saat sprint 2. Masalah
yang dihadapi pada sprint 2 yaitu terdapat kesulitan dalam mengimplementasikan
framework Laravel 5.4. Solusi yang dilakukan yaitu lebih rajin membaca
dokumentasi tentang framework yang digunakan.

Sprint 3

Sprint Planning Meeting


Product backlog yang tersisa pada sprint 3 terdapat 7 item, dipilih 4 item yang
dikerjakan pada sprint 3. Sprint planning pada sprint 3 difokuskan pada pengodean
sistem sesuai dengan sprint backlog yang telah dibuat pada Tabel 6. Sprint backlog
yang akan dirancang pada sprint ini terdapat 4 sprit backlog. Salah satu fungsi yang
akan dikembangkan yaitu fungsi Create Read Update Delete (CRUD) destinasi,
13

fungsi tersebut merupakan fungsi utama provider untuk memasarkan jasanya.


Pengodean sistem ini dilakukan pada daily scrum.
Tabel 6 Sprint backlog back-end untuk sprint 3
No Deskripsi Prioritas Keterangan
1 Pengembangan fungsi CRUD Tinggi Fungsi ini untuk membuat,
destinasi untuk provider melihat, mengubah, dan
menghapus destinasi (jasa
pariwisata) yang dibuat oleh
provider.
2 Pengembangan fungsi Sedang Fungsi ini untuk melihat
melihat pendaftar untuk pendaftar yang telah memesan
provider destinasi (jasa pariwisata).
3 Pengembangan fungsi Sedang Fungsi ini untuk client melihat
melihat destinasi jasa pariwisata yang
disediakan provider.
4 Pengembangan fungsi profil Rendah Fungsi ini untuk mengubah
provider detail profil provider.

Daily Scrum
Tahapan ini mengerjakan sprint backlog yang telah direncanakan pada sprint
planning pada sprint 3. Fungsi pertama yang dikembangkan yaitu profil provider.
Provider dapat mengubah detail yang telah dimasukkan pada fungsi update role
pengguna. Fungsi ini provider dapat mengubah nama travel, nomor kontak, logo
travel, foto Kartu Tanda Penduduk (KTP), slogan travel, dan deskripsinya.
Penyimpanan gambar pada fungsi ini telah divalidasi pada bagian back-end, dengan
input merupakan gambar dengan ukuran minimal 2 megabytes (MB). Gambar 7
merupakan hasil pengimplementasian fungsi profil provider.

Gambar 7 Tampilan back-end fungsi profil provider menggunakan Laravel 5.4


Fungsi yang dikembangkan selanjutnya yaitu CRUD destinasi untuk provider.
Provider mendaftarkan jasanya melalui fungsi ini. Task yang dapat dilakukan pada
fungsi ini yaitu membuat, melihat, mengubah, dan menghapus jasa pariwisata.
14

Selanjutnya fungsi yang dikembangkan yaitu melihat destinasi. Fungsi ini


membantu client untuk melihat jasa pariwisata yang telah dipasarkan oleh provider.

Sprint Review Meeting


Tahapan ini menjelaskan pekerjaan yang telah dilakukan pada sprint 3 dan
mempresentasikannya kepada product owner. Product owner melakukan review
untuk memberi masukan berupa feedback atas pengembangan fungsi profil
provider, fungsi CRUD destinasi untuk provider, dan fungsi update client menjadi
provider. Namun fungsi melihat pendaftar untuk provider belum dapat dijalankan
karena masih terdapat error. Tabel 7 merupakan hasil pengujian sistem informasi
IndoExplore.id. Hasil dari tahapan ini tidak ada perubahan terhadap sprint backlog
yang telah dibuat dan hasil pengujian yang berhasil telah disetujui oleh product
owner. Terdapat 1 item sprint backlog yang belum berhasil dan dikerjakan pada
sprint 4.
Tabel 7 Hasil pengujian sprint backlog back-end pada sprint 3
Fungsi Skenario Hasil pengujian
Profil provider Provider mengedit profil Berhasil
CRUD destinasi Provider melakukan CRUD Berhasil
untuk provider destinasi
Melihat pendaftar Provider melihat pendaftar pada Belum berhasil
untuk provider destinasi
Melihat destinasi Pengguna melihat detail destinasi Berhasil

Sprint Restrospetive
Product owner menyampaikan hasil yang dikerjakan pada sprint 3 belum
sesuai dengan sprint backlog yang telah direncanakan dan terdapat 4 product
backlog yang tersisa. Product backlog yang tersisa akan dikerjakan pada sprint 4.
Lalu, tim pengembang melakukan diskusi dengan product owner mengenai
masalah yang dihadapi dan menyampaikan solusinya masing-masing pada saat
sprint 3. Masalah yang dihadapi pada sprint 3, yaitu terdapat kesulitan dalam
mengimplementasikan framework Laravel 5.4. Solusi yang dilakukan, yaitu lebih
rajin membaca dokumentasi tentang framework yang digunakan.

Sprint 4

Sprint Planning Meeting

Product backlog yang tersisa pada sprint 4 terdapat 4 item, dipilih 4 item yang
dikerjakan. Sprint planning pada sprint 4 masih berfokus melakukan pengodean
sistem sesuai dengan sprint backlog yang telah dibuat pada Tabel 8. Sprint backlog
yang akan dikembangkan pada sprint ini terdapat 3 fungsi. Salah satu fungsi yang
akan dikembangkan, yaitu booking payment, fungsi tersebut merupakan pemilihan
metode pembayaran. Namun, metode pembayaran tidak dapat dilakukan karena
memerlukan requirement. Fungsi ini akan menyetujui pembayaran telah diterima
(asumsi sudah berhasil melakukan pembayaran). Pengodean sistem ini dilakukan
pada daily scrum.
15

Tabel 8 Sprint backlog back-end untuk sprint 4


No Deskripsi Prioritas Keterangan
1 Pengembangan fungsi booking Fungsi ini untuk memesan
destinasi Tinggi jasa pariwisata yang
dilakukan oleh client
2 Pengembangan fungsi booking Fungsi ini untuk melakukan
payment Tinggi pembayaran jasa pariwisata
yang telah dipesan.
3 Pengembangan fungsi Fungsi ini untuk melihat
Tinggi
homepage halaman utama dari sistem.
4 Pengembangan fungsi melihat Sedang Fungsi ini untuk melihat
pendaftar untuk provider pendaftar yang telah
memesan destinasi (jasa
pariwisata).

Daily Scrum
Tahapan ini mengerjakan sprint backlog yang telah direncanakan pada sprint
planning pada sprint 4. Fungsi pertama yang dikembangkan yaitu booking destinasi.
Fungsi ini memproses pemesanan yang dilakukan oleh client. Setelah itu, client
langsung diarahkan pada fungsi booking payment. Client memilih metode
pembayaran yang digunakan, namun pemilihan pembayaran tidak dapat dilakukan.
Hal ini akan diasumsikan bahwa pengguna telah melakukan pembayaran. Fungsi
yang dikembangkan selanjutnya yaitu menampilkan homepage. Fungsi ini
merupakan tampilan utama dari sistem ini, dapat dilihat pada Gambar 8. Tampilan
utama dari halaman ini merupakan jasa pariwisata yang disediakan oleh agen travel.

Gambar 8 Tampilan back-end fungsi homepage menggunakan Laravel 5.4


Perancangan arsitektur sistem informasi IndoExplore.id yang dilakukan pada
penelitian ini terdiri atas 3 bagian, yaitu bagian data, client, dan server. Bagian data
menggunakan basis data MySQL. Bagian server menggunakan framework PHP
Laravel 5.4. Bagian client terdapat dua platform, yaitu berbasis web dan mobile.
Terdapat kesalahan pada pengembangan sistem karena pada bagian client berbasis
16

mobile tidak dapat mengakses server sehingga tidak mendapatkan data. Hal itu
terjadi karena perancangan server hanya difokuskan pada bagian client berbasis
web. Oleh karena itu, dilakukan perancangan ulang arsitektur sistem informasi ini.
Perancangan ulang dilakukan pada bagian server.
Perancangan bagian server yang semula menggunakan framework PHP
Laravel 5.4 diubah menggunakan Node.Js dengan framework Express.Js. Oleh
karena itu, perancangan arsitektur sistem informasi IndoExplore.id diubah seperti
Gambar 9.

Gambar 9 Arsitektur sistem informasi IndoExplore.id


REST adalah arsitektur yang diterapkan dalam pengembangan layanan
berbasis web. REST umumnya dijalankan via Hypertext Transfer Protokol (HTTP),
melibatkan proses pembacaan laman web tertentu yang memuat sebuah file
Extensible Markup Language (XML) atau JavaScript Object Notation (JSON). File
inilah yang menguraikan dan memuat konten yang akan ditampilkan (Fielding dan
Taylor 2002). API adalah antarmuka yang digunakan untuk mengakses aplikasi
atau layanan dari sebuah program. API memanggil fungsi REST lewat HTTP untuk
mendapatkan respon berupa XML atau JSON (Hardani dan Sarwosri 2012). REST
API digunakan sebagai penghubung antara bagian data dengan client sehingga
Android pada bagian client dapat mengakses server dan memperoleh data sistem.
Perancangan class diagram dibuat untuk mengetahui relasi dari setiap kelas
yang ada. Pengembangan REST API dibuat berdasarkan kelas yang sudah
didefinisikan pada class diagram. Class diagram dapat dilihat pada Gambar 10,
terdapat 7 class utama, yaitu Class User, Provider, Auth, Booking, Destinasi, dan
Diskusi. Class User berasosiasi dengan Class Auth, Booking, Diskusi, Review, dan
Provider. Class Provider berasosisasi dengan Class Booking, Destinasi, dan
Diskusi. Class Auth terdapat fungsi auth(). Fungsi ini digunakan untuk pengguna
jika melakukan login baik pada web dan Android. Pada saat login dilakukan
pengecekan email dan password sesuai atau tidak dengan data.
REST API sistem ini dapat diakses pada https://yippytech.com:3000 dan telah
disimpan pada versioning tools menggunakan GitHub yang dapat dilihat pada
https://github.com/haraldiikhsan/indoexplore. REST API dapat diakses melalui
URL pada Tabel 9. URL tersebut digunakan untuk melakukan request yang
diberikan baik pada web dan Android. Setiap request yang dilakukan terdapat
17

metode yang digunakan untuk server mengetahui dari request client. Metode yang
digunakan, yaitu GET, POST, PUT, dan DELETE. GET digunakan untuk
mendapatkan data yang dibutuhkan client. POST digunakan untuk membuat data
baru dengan memasukkan suatu data dalam body saat request dilakukan. PUT
digunakan untuk memperbaharui suatu data pada resource. DELETE digunakan
untuk menghapus suata data pada resource.

Gambar 10 Class Diagram untuk pengembangan REST API sistem informasi


IndoExplore.id
Tabel 9 REST API sistem informasi IndoExplore.id
Class Request Method REST API URL
User GET /user/profile
POST /user/profile
GET /user/booking
GET /user/historyTrip
Provider POST /provider/register
GET /provider/profile
POST /provider/update
Auth POST /user/register
POST /user/auth
Booking POST /booking/register
POST /booking
POST /booking/review
Destinasi GET /destinasi
POST /destinasi/add
18

Tabel 9 REST API sistem informasi IndoExplore.id (lanjutan)

Class Request Method REST API URL


GET /destinasi/tripactivity
POST /destinasi/tripactivity
POST /destinasi/edit
GET /destinasi/get/:id
DELETE /destinasi/delete/:id
GET /destinasi/booking/:id_trip
POST /destinasi/accept/:id_booking
POST /destinasi/finish/:id_booking
GET /destinasi/review/:id_trip
Diskusi POST /discuss/post/:id_trip
GET /discuss/:id_trip
PUT /discuss/edit/:id_discuss
DELETE /discuss/delete/:id_discuss
GET /home/search/:query

Sistem autentikasi dan pertukaran informasi menggunakan JWT (JSON


Web Token). JWT merupakan sebuah token berbentuk string panjang yang sangat
random. JWT umumnya digunakan untuk melakukan login dan request kepada
server. Request yang dilakukan oleh pengguna akan divalidasi berdasarkan ada atau
tidaknya pemakaian token. Proses validasi token dapat dilihat pada Gambar 11.
Apabila tidak menggunakan token maka request tidak dapat diproses. Token untuk
pengguna website memiliki masa expired selama 24 jam, sedangkan pengguna
mobile tidak memiliki masa expired. Hal ini dilakukan agar pengguna mobile tidak
perlu login kembali. Potongan kode secara lengkap dapat dilihat pada Lampiran 2.

// --- JWT Validaltion ---


app.use(function(req,res,next){
if(req.headers.authorization &&
req.headers.authorization.split(' ')[0] == 'Bearer'){
var token = req.headers.authorization.split('
')[1];
jwt.verify(token, config.secret, function(err,
decoded){
if (err){
return res.json({ success: false, message:
'Failed to authenticate token.' });
}

})
)

Gambar 11 Potongan kode program untuk validasi JWT


Hasil keluaran REST API dari URL https://yippytech.com:3000/auth
menggunakan request method POST dengan memasukan input email dan password
dapat dilihat pada Gambar 12. Keluaran berupa JSON yang terdiri atas status,
message, dan data. Message merupakan feedback yang diberikan atas request yang
dilakukan. Data merupakan hasil yang akan diolah oleh front-end dan android
developer untuk ditampilkan pada sebuah view.
19

Proses yang dilakukan untuk memperoleh keluaran seperti Gambar 12 dapat


dilihat melalui sequence diagram yang terdapat pada Gambar 13. Client melakukan
request HTTP POST pada sisi server untuk menjalakan fungsi login dengan
memasukan email dan password pada End User Application. Masukan yang di-
request akan diproses sedemikian sehingga memberikan response yang sesuai pada
End User Application. Sequence diagram secara lengkap dapat dilihat pada
Lampiran 3.
{
"status": 200,
"message": "Login successfully",
"data": {
"name": "Irfan Kurnia Dinata",
"password": "671a0da0ba061c98de801409dbc57d7e",
"email": "irfankd123@mailinator",
"id_role": 2,
"id_travel": 26,
"name_travel": "Jalan Jalan",
"slogan": "Travel indonesia hehe",
"deskripsi": "Jalan jalan kuy"
},
"_token":
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjo0N
SwiZW1haWwiOiJpcmZhbmtkMTIzQG1haWxpbmF0b3IiLCJyb2xlIjoy
LCJsb2dpbl90eXBlIjoiMSIsImlhdCI6MTQ5OTc5MDE5MX0.RhbTKLb
x_gRBU6VP2Jzgt_pxksRFrIfPfTu5_GeLqcg"
}

Gambar 12 Keluaran REST API dalam bentuk JSON

Gambar 13 Sequence diagram REST API fungsi Login


Sprint Review Meeting
Tahapan ini menjelaskan pekerjaan yang telah dilakukan pada sprint 4 dan
mempresentasikannya kepada product owner. Kemudian dilakukan review untuk
menerima masukan berupa feedback atas pengembangan REST API. Tabel 10
merupakan hasil pengujian sistem informasi IndoExplore.id. Hasil dari tahapan ini
20

tidak ada perubahan terhadap sprint backlog yang telah dibuat dan telah disetujui
oleh product owner.

Tabel 10 Hasil pengujian sprint backlog back-end pada sprint 4


Status
Class Request method REST API URL
pengujian
User GET /user/profile Berhasil
POST /user/profile Berhasil
GET /user/booking Berhasil
GET /user/historyTrip Berhasil
Provider POST /provider/register Berhasil
GET /provider/profile Berhasil
POST /provider/update Berhasil
Auth POST /user/register Berhasil
POST /user/auth Berhasil
Booking POST /booking/register Berhasil
POST /booking Berhasil
POST /booking/review Berhasil
Destinasi GET /destinasi Berhasil
POST /destinasi/add Berhasil
GET /destinasi/tripactivity Berhasil
POST /destinasi/tripactivity Berhasil
POST /destinasi/edit Berhasil
GET /destinasi/get/:id Berhasil
DELETE /destinasi/delete/:id Berhasil
GET /destinasi/booking/:id_trip Berhasil
POST /destinasi/accept/:id_booking Berhasil
POST /destinasi/finish/:id_booking Berhasil
GET /destinasi/review/:id_trip Berhasil
Diskusi POST /discuss/post/:id_trip Berhasil
GET /discuss/:id_trip Berhasil
PUT /discuss/edit/:id_discuss Berhasil
DELETE /discuss/delete/:id_discuss Berhasil
GET /home/search/:query Berhasil

Sprint Restrospetive
Product owner menyampaikan hasil yang dikerjakan pada sprint 4 sesuai
dengan sprint backlog yang telah direncanakan. Seluruh product backlog bagian
back-end telah dikerjakan dan tidak ada penambahan product backlog. Product
owner menyatakan pengembangan REST API sistem informasi IndoExplore.id
telah selesai sesuai dengan sprint yang direncanakan. Seluruh tim pengembang
melakukan diskusi dengan product owner mengenai masalah yang dihadapi dan
menyampaikan solusinya pada saat sprint 4. Tidak terdapat masalah yang dihadapi
pada sprint 4.
21

Pengujian

Pengujian REST API sistem IndoExplore.id perlu dilakukan untuk


mengetahui execution time ketika client mengakses setiap REST API. Pengujian ini
dilakukan dengan menjalankan REST API pada server. Server yang digunakan
untuk pengujian ini menggunakan sistem operasi Ubuntu dengan spesifikasi RAM
1024 MB dan kapasitas penyimpanan SSD 40 GB.

Tabel 11 Hasil pengujian execution time REST API


Execution
Request method REST API URL
time (ms)
GET /user/profile 405
POST /user/profile 432
GET /user/booking 1454
GET /user/historyTrip 401
POST /provider/register 20189
GET /provider/profile 1092
POST /provider/update 5476
POST /user/register 410
POST /user/auth 411
POST /booking/register 699
POST /booking 485
POST /booking/review 456
GET /destinasi 783
POST /destinasi/add 1650
GET /destinasi/tripactivity 498
POST /destinasi/tripactivity 415
POST /destinasi/edit 1491
GET /destinasi/get/:id 630
DELETE /destinasi/delete/:id 1341
GET /destinasi/booking/:id_trip 414
POST /destinasi/accept/:id_booking 428
POST /destinasi/finish/:id_booking 417
GET /destinasi/review/:id_trip 425
POST /discuss/post/:id_trip 426
GET /discuss/:id_trip 411
PUT /discuss/edit/:id_discuss 748
DELETE /discuss/delete/:id_discuss 512
GET /home/search/:query 783

Execution time didapatkan dengan mengakses REST API dengan memberi


masukan sesuai dengan parameter yang dibutuhkan. Hasil execution time dari
REST API dapat dilihat pada Tabel 11. Dari tabel tersebut dapat dilihat execution
time paling tinggi terdapat pada URL /provider/register dengan execution time
20189 ms. Hal ini terjadi karena pengujian dilakukan dengan memberi salah satu
masukan berupa string panjang yang diubah menjadi citra/gambar. Pengubahan
tersebut yang membuat execution time tersebut tinggi jika citra/gambar yang diubah
memiliki size yang besar.
22

SIMPULAN DAN SARAN

Simpulan

REST API sistem informasi marketplace IndoExplore.id berhasil


dikembangkan menggunakan Node.JS dengan framework express.js dan database
MySQL. Pengembangan REST API ini menggunakan metode Scrum dangan sprint
sebanyak 4 iterasi. Jumlah product backlog yang dibuat oleh product owner
terdapat 50 item. Dalam pengembangan REST API terdapat 17 item product
backlog. Pengerjaan product backlog dibagi kedalam 4 iterasi. Sprint 1
mengerjakan 5 item, sprint 2 sebanyak 5 item, sprint 3 sebanyak 4 item, dan sprint
4 sebanyak 3 item. Pada saat pengembangan terjadi kesalahan arsitektur bagian
server dari sprint 1 hingga sprint 3. Hal ini membuat basis Android tidak dapat
mengakses data dari database. Sehingga dilakukan perancangan ulang arsitektur
bagian server menggunakan REST API agar basis Android dapat mengakses
database. REST API ini memudahkan basis web dan Android dalam pemrosesan
dan penyimpanan data sistem. Pengembangan sistem ini telah menggunakan token
yang dapat memberi keamanan dalam pengunaannya. REST API dari sistem ini
telah diuji dengan status pengujian berhasil.

Saran

Sistem informasi marketplace IndoExplore.id perlu dilakukan


pengembangan lebih lanjut terkait efisiensi kueri untuk pengolahan serta
pemrosesan data dan diperlukan data dalam jumlah besar untuk mengukur
execution time REST API pada bagian server. Diperlukan pengembangan lebih
lanjut pada bagian client basis web dan Android dalam pengolahan citra/gambar
dengan melakukan kompresi citra/gambar, sehingga dalam penyimpan
citra/gambar pada bagian server memiliki execution time mengalami peningkatan.
Selain itu, perlu dilakukan penambahan server apabila terdapat peningkatan traffic
penggunaan server.

DAFTAR PUSTAKA

[BPS] Badan Pusat Statistik. Kedatangan Wisatawan Mancanegara 2013-2017.


2017. Tersedia pada : https://www.bps.go.id/site/resultTab. [diakses pada 3 Juni
2017].
Fielding RT, Taylor RN. 2002. Principled design of the modern Web architecture.
ACM Transactions on Internet Technology (TOIT). 2(2): 115-150.
Hardani RR, Sarwosri. 2012. Rancang bangun aplikasi perangkat bergerak berbagi
foto berbasis android menggunakan API facebook, flickr dan picasa. Jurnal
Teknik Pomits. 1(1): 1-4.
Pitana IG, Diarta IKS. 2009. Pengantar Ilmu Pariwisata. Ed ke-1. Yogyakarta (ID):
Andi.
Pressman RS. 2010. Software Engineering : A practitioner's approach. Ed ke-7.
New York (US): McGraw-Hill.
23

Schwaber K, Sutherland J. 2016. The Scrum Guide™. [internet]. [diunduh 12


Desember 2016]. Tersedia pada:http://www.scrumguides.org/scrum-guide.html.
Solichin A. 2016. Pemrograman Web dengan PHP dan MySQL. Ed ke-1. Jakarta
(ID): Anonim
Taufix MN, Rakhamawati NA, Wibowo RP. 2009. Penerapan Teknologi Mashup
Pada Aplikasi Pariwisata Berbasis Web Nusantaraview: Modul Akomodasi
[skripsi]. Surabaya (ID): Institut Teknologi Sepuluh Nopember.
24

LAMPIRAN

Lampiran 1 Product backlog sistem informasi IndoExplore.id

Estimasi Tingkat Dikerjakan


No Deskripsi
(jam) kesulitan oleh
1 Diagram use case provider 4 Rendah Tim Pengembang
2 Diagram activity provider 6 Rendah Tim Pengembang
3 Diagram sequence provider 10 Rendah Tim Pengembang
4 Diagram class sistem 6 Sedang Tim Pengembang
IndoExplore.id
5 Entity Relationship Diagram 6 Sedang Tim Pengembang
sistem IndoExplore.id
6 Perancangan database sistem 8 Tinggi Tim Pengembang
IndoExplore.id
7 Pengembangan Android fungsi 5 Sedang Irfan Kurnia D
register user
8 Pengembangan Android fungsi 8 Tinggi Irfan Kurnia D
login dan logout
9 Pengembangan Android fungsi 3 Rendah Irfan Kurnia D
profil provider
10 Pengembangan Android fungsi 6 Sedang Irfan Kurnia D
edit profile
11 Pengembangan Android fungsi 5 Sedang Irfan Kurnia D
update user menjadi provider
12 Pengembangan Android 10 Tinggi Irfan Kurnia D
CRUD destinasi untuk
provider
13 Pengembangan Android fungsi 6 Sedang Irfan Kurnia D
view destinasi
14 Perancangan tampilan Home 10 Tinggi Imam R
15 Perancangan tampilan Login 2 Rendah Imam R
16 Perancangan tampilan Register 3 Sedang Imam R
17 Perancangan tampilan Open 8 Tinggi Imam R
Trip
18 Perancangan tampilan Private 6 Sedang Imam R
Trip
19 Perancangan tampilan User 10 Tinggi Imam R
Profile
20 Perancangan tampilan tambah 3 Sedang Imam R
trip
21 Perancangan tampilan edit trip 3 Sedang Imam R
22 Perancangan tampilan destinasi 5 Sedang Imam R
wisata yang dipilih
23 Perancangan tampilan 6 Tinggi Imam R
pemesanan wisata dan ulasan
25

Lampiran 1 Product backlog sistem informasi IndoExplore.id (lanjutan)

Estimasi Tingkat Dikerjakan


No Deskripsi
(jam) kesulitan oleh
24 Pengembangan fungsi register 5 Sedang Haraldi Ikhsan A
client
25 Pengembangan fungsi login 6 Tinggi Haraldi Ikhsan A
dan logout
26 Pengembangan fungsi profil 2 Rendah Haraldi Ikhsan A
client
27 Pengembangan fungsi update 5 Sedang Haraldi Ikhsan A
client menjadi provider
28 Pengembangan fungsi profil 2 Rendah Haraldi Ikhsan A
provider
29 Pengembangan fungsi CRUD 10 Tinggi Haraldi Ikhsan A
destinasi untuk provider
30 Pengembangan fungsi view 3 Sedang Haraldi Ikhsan A
pendaftar untuk provider
31 Pengembangan fungsi view 3 Sedang Haraldi Ikhsan A
destinasi
32 Pengembangan fungsi booking 4 Tinggi Haraldi Ikhsan A
destinasi
33 Pengembangan fungsi booking 4 Tinggi Haraldi Ikhsan A
payment
34 Pengembangan fungsi 12 Tinggi Haraldi Ikhsan A
homepage
35 Pembuatan mock up aplikasi 6 Sedang Kresno Satrio
modul client
36 Implementasi mock up aplikasi 10 Tinggi Kresno Satrio
modul client
37 Pengembangan Android Splash 5 Tinggi Kresno Satrio
Screen
38 Pengembangan android fungsi 3 Tinggi Kresno Satrio
home
39 Pengembangan android fungsi 4 Tinggi Kresno Satrio
login dan logout
40 Pengembangan android fungsi 2 Tinggi Kresno Satrio
register
41 Pengembangan android fungsi 4 Tinggi Kresno Satrio
view trip
42 Pengembangan android fungsi 8 Tinggi Kresno Satrio
booking open trip
43 Pengembangan android fungsi 8 Tinggi Kresno Satrio
booking private trip
44 Pengembangan android fungsi 6 Tinggi Kresno Satrio
history trip
26

Lampiran 1 Product backlog sistem informasi IndoExplore.id (lanjutan)

Estimasi Tingkat Dikerjakan


No. Deskripsi
(jam) kesulitan oleh
45 Pengembangan android fungsi 8 Tinggi Kresno Satrio
upload payment
46 Pengembangan android 8 Tinggi Kresno Satrio
memberi rating
47 Pengembangan android fungsi 18 Tinggi Irfan Kurnia D
membuat jadwal kegiatan
48 Pengembangan android fungsi 6 Tinggi Irfan Kurnia D
hapus destinasi
49 Pembuatan validasi form 5 Sedang Imam
Rachmansyah
50 Pembuatan mock up modul 6 Sedang Irfan Kurnia D
provider sistem informasi
IndoExplore.id
27

Lampiran 2 Potongan kode program untuk validasi JWT

// --- JWT Validaltion ---


app.use(function(req,res,next){
if(req.headers.authorization &&
req.headers.authorization.split(' ')[0] === 'Bearer'){
var token = req.headers.authorization.split(' ')[1];
jwt.verify(token, config.secret, function(err,
decoded){
if (err){
return res.json({ success: false, message:
'Failed to authenticate token.' });
}
else{
// for website login
if(decoded.login_type==2){
req.user_id=decoded.user_id;
req.role = decoded.role;
req.token=jwt.sign({
user_id:decoded.user_id,

email:decoded.email,

role:decoded.role,

login_type:decoded.login_type
}
,config.secret, {
expiresIn : 60*20// expires in
20 minute
});
next();
}
//for mobile login
else if(decoded.login_type==1){
req.user_id=decoded.user_id;
req.token='-';
req.role = decoded.role;
next();
}
}
})
}
else{
return res.status(400).json({ status:400, message:
'Please send token' });
}
});
28

Lampiran 3 Sequence diagram REST API sistem informasi IndoExplore.id

1 Fungsi mengisi profil client

2 Fungsi melihat profil client


29

Lampiran 3 Sequence diagram REST API sistem informasi IndoExplore.id


(lanjutan)
3 Fungsi melihat booking client

4 Fungsi melihat booking history client


4 Fungsi melihat booking history client
30

Lampiran 3 Sequence diagram REST API sistem informasi IndoExplore.id


(lanjutan)
5 Fungsi memperbaharui client menjadi provider

6 Fungsi melihat profil provider


31

Lampiran 3 Sequence diagram REST API sistem informasi IndoExplore.id


(lanjutan)
7 Fungsi mengisi profil

8 Fungsi register akun sebagi client


32

Lampiran 3 Sequence diagram REST API sistem informasi IndoExplore.id


(lanjutan)

9 Fungsi booking destinasi

10 Fungsi mengonfirmasi pembayaran booking


33

Lampiran 3 Sequence diagram REST API sistem informasi IndoExplore.id


(lanjutan)

11 Fungsi memberi ulasan trip

12 Fungsi melihat destinasi trip yang terdaftar untuk provider


34

Lampiran 3 Sequence diagram REST API sistem informasi IndoExplore.id


(lanjutan)

13 Fungsi menambah destinasi untuk provider

14 Fungsi melihat destinasi yang terakhir ditambahkan untuk provider


35

Lampiran 3 Sequence diagram REST API sistem informasi IndoExplore.id


(lanjutan)

15 Fungsi menambah detail destinasi untuk provider

16 Fungsi mengedit destinasi untuk provider


36

Lampiran 3 Sequence diagram REST API sistem informasi IndoExplore.id


(lanjutan)

17 Fungsi melihat destinasi yang dipilih untuk provider

18 fungsi menghapus destinasi untuk provider


37

Lampiran 3 Sequence diagram REST API sistem informasi IndoExplore.id


(lanjutan)

19 Fungsi melihat booking pada destinasi untuk provider

20 Fungsi menerima pemesanan dari client untuk provider


38

Lampiran 3 Sequence diagram REST API sistem informasi IndoExplore.id


(lanjutan)

21 Fungsi mengonfirmasi destinasi telah selesai untuk provider

22 Fungsi melihat review destinasi untuk provider


39

Lampiran 3 Sequence diagram REST API sistem informasi IndoExplore.id


(lanjutan)

23 Fungsi mengirim diskusi untuk client

24 Fungsi melihat diskusi destinasi


40

Lampiran 3 Sequence diagram REST API sistem informasi IndoExplore.id


(lanjutan)

25 Fungsi mengedit diskusi destinasi

26 Fungsi menghapus diskusi destinasi


41

RIWAYAT HIDUP

Penulis dilahirkan di Hannover Jerman pada tanggal 03 Januari 1995. Penulis


adalah anak kedua dari empat bersaudara, anak dari pasangan Dr Ir Muhammad
Ardiansyah dan Ir Artati. Penulis menempuh pendidikan Sekolah Menengah Atas
di SMA Negeri 5 Bogor pada tahun 2010 hingga 2013. Kemudian penulis
melanjutkan pendidikan perguruan tinggi di Institut Pertanian Bogor, Fakultas
Matematika dan Ilmu Pengetahuan Alam, Departemen Ilmu Komputer dari tahun
2013 hingga 2017.
Selama mengikuti perkuliahan, penulis pernah aktif menjadi pengurus
Himpunan Mahasiswa Ilmu Komputer selama satu tahun menjabat sebagai staff
divisi HRD masa jabatan 2014/2015 dan BEM FMIPA selama satu tahun sebagai
Ketua Departamen Olahraga dan Seni masa jabatan 2015/2016. Penulis
melaksanakan Praktik Kerja Lapangan (PKL) di PT. Bank Rakyat Indonesia (BRI),
Divisi Teknologi dan Sistem Informasi (TSI), Jakarta.
Selain organisasi kemahasiswaan, penulis juga pernah mengikuti beberapa
kompetisi mulai dari tingkat fakultas hingga tingkat kampus. Pada tahun 2014,
2015, dan 2016 penulis memperoleh medali emas cabang bola basket dalam ajang
Sport Competition and Art Festival on MIPA Faculty (SPIRIT). Penulis menjadi
Most Valuable Player (MVP) dalam cabang bola basket SPIRIT tahun 2014.
Penulis memperoleh medali perunggu pada ajang Olimpiade Mahasiswa IPB (OMI)
cabang bola basket pada tahun 2016 dan memperoleh medali emas pada tahun 2017.
Penulis juga mendapatkan kesempatan menjadi finalis dalam ajang Ukhuwah UX
Championship (UChamp) Universitas Indonesia pada tahun 2015.

Anda mungkin juga menyukai