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.
ABSTRACT
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.
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer
pada
Departemen Ilmu Komputer
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.
Haraldi Ikhsan A
DAFTAR ISI
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
Perumusan Masalah
Tujuan Penelitian
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.
METODE
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
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
Lingkungan Pengembangan
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
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
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
Sprint 1
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
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.
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.
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 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
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.
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
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
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.
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.
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.
tidak ada perubahan terhadap sprint backlog yang telah dibuat dan telah disetujui
oleh product owner.
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
Simpulan
Saran
DAFTAR PUSTAKA
LAMPIRAN
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
RIWAYAT HIDUP