## Perancangan Aplikasi Penyewaan Kendaraan Berbasis Android Dengan Multilayering Service Oriented Architecture Menggunakan NodeJS dan Codeigniter
Awan Setiawan Fakultas Teknik
Program Studi Informatika Universitas Langlangbuana Jl. Karapitan 116, Bandung awans2425@gmail.com Arief Ginanjar Fakultas Teknik Program Studi Informatika Universitas Langlangbuana Jl. Karapitan 116, Bandung arief.ginanjar@unla.ac.id Elsameinar Fakultas Teknik Program Studi Informatika Universitas Langlangbuana Jl. Karapitan 116, Bandung elsnmr@gmail.com
Abstrak - Saat ini kegiatan kepariwisataan semakin marak di Indonesia. Banyak orang dengan mudahnya membagikan tujuan unik dan menarik untuk dikunjungi. Transportasi menjadi hal yang perlu diperhatikan untuk memudahkan wisatawan mencapai tujuannya. Dengan smartphone dan aplikasi yang mendukung, pengguna dapat dimudahkan. Untuk itu aplikasi berbasis android menjadi hal yang dimanfaatkan untuk melakukan penyewaan kendaraan. Rancangan sistem menggunakan metode berbeda dengan memanfaatkan framework NodeJS dan Codeigniter untuk implementasi multilayering service oriented architecture . Aplikasi penyewaan kendaraan berbasis android ini meliputi transaksi penyewaan, melihat event yang sedang berlangsung dan lihat riwayat transaksi. Pengaturan aplikasi dilakukan oleh admin baik proses pengamanan data, otorisasi data dan kerahasiaan data melalui web server . Semua hal tersebut digunakan untuk menampung data-data yang diperlukan dan memperlancar aplikasi tersebut dalam bentuk web service .
Kata kunci - Aplikasi Mobile, Penyewaan Kendaraan, Multilayering Service Oriented Architecture, NodeJS, CodeIgniter, Web Service .

## 1. PENDAHULUAN

## 1.1 Latar Belakang
Tempat wisata di Bandung yang unik dan beragam, membuat wisatawan tidak mungkin kehabisan ide untuk menentukan tempat yang akan dikunjungi. Oleh karena itu, dari banyak daerah di
Jawa Barat, Kota Bandung menjadi tujuan wisata utama saat masa liburan. Lokasi yang bisa dibilang cukup dekat dengan Jakarta, Bandung menjadi tempat wisata favorit warga ibukota. Badan Pusat statistik Jawa Barat menyatakan bahwa jumlah kunjungan Wisatawan ke obyek wisata di Kabupaten Bandung tahun 2016 mencapai 6.450.468 pengunjung, sedangkan kunjungan Wisatawan di Kota Bandung mencapai 1.863.561 pengunjung. Kemudian pada salah satu artikel berita republika.co.id, Kepala Disparbud Kabupaten Bandung menuturkan, jumlah kunjungan wisatawan berasal dari data tujuan objek wisata yang aktif dan skala besar. Saat ini, jumlah tempat wisata yang besar di Kabupaten Bandung kurang lebih mencapai 70 tujuan wisata.
Beliau mengatakan para wisatawan yang datang ke Kabupaten Bandung rata-rata masih didominasi wisatawan lokal di Bandung Raya maupun seputar Jabodetabek. Sementara dari mancanegara dominan masih dari Malaysia dan Singapura.
Disebutkan pada website resmi pemerintah provinsi Jawa Barat berdasarkan pengukuran yang dilakukan oleh Frontier Consulting Group dan Tempo Media Group, indeks pariwisata Kota Bandung menjadi salah satu yang tertinggi di Indonesia, yakni mencapai 95.30 atau lebih tinggi dari Kota Denpasar dengan Index Pariwisata 87.65 dan Kota Yogyakarta dengan Index Pariwisata 85.68. Menurut Kepala Disbudpar Kota Bandung, pada tahun 2017 lalu Kota Bandung dikunjungi oleh sekitar 6,9 juta wisatawan, baik wisatawan dari luar negeri maupun wisatawan dari dalam negeri.
Menurutnya, untuk meningkatkan angka kunjungan wisatawan ke Bandung, pihaknya telah merancang berbagai strategi, mulai dari membuat kalender event , hingga melakukan promosi media. Seiring perkembangan jaman, kemajuan teknologi semakin tinggi. Usaha ojek online dan taksi online menjadi mata pencarian baru. Dengan aplikasi ini masyarakat dapat dimudahkan untuk menyewa kendaraan dan menyewakan kendaraan mereka. Dengan membangun aplikasi berbasis android pengguna dapat mengakses berbagai layanan dengan serangkaian proses keamanan baik informasi dan data diri pengguna maupun kendaraan itu sendiri baik disisi penyewa maupun disisi pemilik kendaraan. Usaha rental atau travel di Kota Bandung saat ini sangat banyak tentunya. Tidak hanya itu, usaha yang membutuhkan kendaraan seperti jasa angkut barang dan lainnya dapat dimudahkan dengan aplikasi ini.
Dalam sebuah penelitian, dilakukan perbandingan kinerja NodeJS , PHP dan Phyton dalam Aplikasi REST. Dari ketiga obyek penelitian, NodeJS adalah bahasa pemrograman yang paling cocok untuk melaksanakan tugas yang tidak melibatkan perhitungan kriptografi yang intensif [1][4][5][12]. Khususnya menyediakan respon langsung terhadap request . Dengan begitu NodeJS cocok menjadi server dari suatu sistem. NodeJS adalah platform perangkat lunak yang memungkinkan untuk membuat web server dan membangun aplikasi web .
Sedangkan Codeigniter dapat menjadikan desain tampilan antarmuka menjadi lebih interaktif. Selain itu NodeJS berperan sebagai produsen data dan CodeIgniter sebagai pemgumpul data. Dengan cara ini dapat diimplementasikan konsep multilayering service oriented architecture .
1.2 Tujuan Penelitian
Dengan dirancangnya aplikasi berbasis Android untuk konsumen diharapkan dapat membuat prototipe aplikasi yang membantu memudahkan konsumen dalam melakukan transaksi penyewaan. Terwujud sebuah rancangan aplikasi yang mendukung implementasi Multilayering Service Oriented Architecture .
1.3 Batasan Masalah
Aplikasi dirancang untuk transaksi penyewaan kendaraan dengan maksimal satu kendaraan untuk seorang penyewa. Prototipe Aplikasi ini dibentuk untuk transaksi penyewaan kendaraan. Pengguna dapat menyewakan kendaraan miliknya dengan syarat memiliki surat-surat yang lengkap. Sedangkan batasan teknis dalam proses pembuatan prototipe aplikasi ini meliputi:
Menggunakan sistem basis data MariaDB versi 10.1.19 yang diletakkan terpisah Sistem Operasi Microsoft Windows 7 Genuine 64 bit didalam Oracle VM Virtual Box versi 5.2.6. Menggunakan koneksi jaringan local host - guest virtualbox connection . Menggunakan Sistem Operasi Microsoft Windows 7 Genuine 64 bit untuk host environment . Menggunakan Netbean 8.2 sebagai Integrated Development Editor . Menggunakan Codeigniter Framework versi 3.1.10 sebagai PHP base programming . Menggunakan NodeJS Framework versi 12.13.1 sebagai Logic Backend base programming . Menggunakan Android Studio versi 3.5.1 sebagai android development tools . Menggunakan Android versi 8.0 (Oreo) sebagai aplikasi android. Menggunakan application container Apache versi 2.4.39 dalam XAMP versi 7.3.6 sebagai server deployment application web server .

## 2. METODE PENELITIAN

## 2.1 Evolutionary Prototyping Model
Metode pengembangan aplikasi pada kasus ini adalah metode evolutionary prototyping sedangkan pemodelan aplikasi digambarkan menggunakan Unified Modeling Language . Proses evolutionary prototyping yang terdiri dari proses sebagai berikut input, prototyping process , dan output , tetapi selama pelaksanaan proses juga harus dibatasi dengan syarat; setiap fungsi yang dibangun harus memenuhi syarat yang sesuai dengan system requirement , dengan kompetensi orang dan uang yang ada dalam prototyping memenuhi syarat requirement [10]. Dibawah ini merupakan gambar proses evolutionary prototyping model yang dapat dilihat pada Gambar 1. Pada artikel ini penulis juga akan menyingkat beberapa istilah dalam Metodologi Evolutionary Prototyping sebagai berikut; System Requirement Analysis menjadi SRA, Sketching menjadi SK, Prototype Development menjadi PD, Exploring Usability menjadi EU dan Refinement menjadi RF, hal ini dibutuhkan untuk keperluan mendeskripsikan proses pada Tabel 2.
Dengan berbagai perkembangan yang terjadi dalam dunia software development penulis berpikir untuk dapat beradaptasi terhadap perkembangan, hingga penulis coba menerapkan evolutionary prototyping model daripada mencoba metodologi pengembangan software yang cukup umum dipelajari dalam disiplin ilmu informatika.
Gambar 1. Metodologi Evolutionary Prototype Model [10]. 2.2 Tahapan Penelitian
Berikut merupakan tahapan yang dilakukan sesuai dengan metode yang digunakan:
1) Input dalam proses ini berupa System Requirement , berupa kebutuhan sistem yang diperlukan, tujuan perangkat lunak dan gambaran komponen untuk mengembangkan perangkat lunak[11].
2) Prototyping Process , merancang perangkat lunak yang terbagi dalam lima bagian[11] sebagai berikut:
a) System Requirement Analysis , menganalisis terhadap kebutuhan sistem yang telah dibuat dalam tahapan sebelumnya.
b) Sketching , menggambarkan sistem sesuai kebutuhan sistem yang telah ditentukan.
c) Prototype Development , melakukan perancangan perangkat lunak.
d) Exploring Usability , menguji perangkat lunak yang telah dibangun.
3) Refinement , mengevaluasi dan memperbaiki kinerja dari setiap skenario pengujian yang dilakukan.
Restrictive Conditions , menentukan batasan perangkat lunak berupa syarat yang diberlakukan terhadap semua fungsi yang terdapat didalam sistem[11].
4) Output , dalam tahapan ini dilakukan verifikasi prototype terhadap kebutuhan sistem yang telah ditentukan[11].
2.3 Multilayering Service Oriented Architecture
Menurut Luthria, jika service mencerminkan fungsi bisnis di dalam model komputasi berbasis service , maka SOA menyediakan kerangka kerja untuk infrastruktur yang memudahkan interaksi dan komunikasi antar- service . SOA dapat dipandang sebagai arsitektur maupun model pemrograman, dan lebih merupakan cara berpikir mengenai pengembangan perangkat lunak daripada teknik
pengembangan perangkat lunak. Hampir serupa dengan Luthria, Mueller juga menyatakan bahwa SOA merupakan paradigma arsitektur terdistribusi, multilayer , yang membungkus bagian dari sistem informasi sebagai service . [3]. Erl mengajukan metode integrasi dinamakan Service Oriented Analysis and Design SOAD). Dalam metode ini perbedaan antara logika bisnis dan aplikasi digantikan oleh Interface Service Layer yang berisi tiga lapisan, yaitu Application Service Layer , Business Service Layer dan Orchestration Service Layer [1][2][9]. Dalam implementasi SOA, konsep berorientasi service melakukan implementasi dalam sebuah lapisan di antara lapisan proses bisnis dan lapisan aplikasi yang keduanya merupakan bagian dari logika bisnis proses secara keseluruhan. Lapisan tersebut dinamakan Interface Service Layer , dapat dilihat pada Gambar 2. Fungsi dari lapisan ini adalah membungkus logika yang ada pada lapisan aplikasi, sekaligus proses bisnis yang ada pada logika bisnis.
Gambar 2. Interface Service Layer yang terdapat pada Service Oriented Architecture [3].

## 3. HASIL DAN DISKUSI

## 3.1 Arsitektur Multilayering Service Oriented Architecture
Dengan merujuk kepada teori Service Oriented Architecture dimana seluruh sistem dikelola secara berlapis dan berkelompok [6][7][8] maka berikut merupakan rancangan arsitektur yang coba penulis rencanakan dengan mengacu kepada konsep multilayering service oriented architecture yang penulis coba untuk diimplementasikan dalam sistem seperti yang terlihat pada Gambar 3.
Gambar 3. Lapisan Interface Service Layer pada Arsitektur Multilayer Service Oriented Architecture

## 3.2 Analisis Proses Bisnis
Proses penyewaan kendaraan belum dilakukan pada perusahaan tempat penelitian ini dilakukan. Pemilik perusahaan masih menjual belikan motor bekas dengan mengandalkan pembeli yang mendatangi toko. Setelah usahanya berjalan sekitar lima tahun pemilik mendapatkan ide/peluang untuk mengembangkan usahanya dengan menyewakan motor, baik motor yang dibeli sebelum jual kembali maupun pemilik kendaraan itu sendiri ingin menyewakan kendaraannya. Sehingga terdapat operasi bisnis baru selain jual beli motor dalam perusahaan ini. Dan diantaranya proses bisnis menyewakan kendaraan ke dalam aplikasi dan proses bisnis penyewaan kendaraan di dalam aplikasi.
Gambar 4. Lapisan Application Layer pada Arsitektur Multilayering Service Oriented Architecture.

## 3.3 Analisis Perangkat Lunak
Identifikasi pengguna berdasarkan tingkat pengguna yang dapat melakukan login ke dalam perangkat lunak yaitu sebagai berikut:

## Tabel 1. Identifikasi Pengguna Perangkat Lunak
No Level Auth Tingkatan Pengguna Hak Akses 1 Admin Bagian Admini 1) Menyetujui user sebagai penyewa atau pemilik kendaraan.
2) Mengisi konten aplikasi berupa event
3) Membuat laporan seluruh data- data perangkat lunak. 2 User Penyewa 1) Melakukan transaksi penyewaan dan menggunakan fitur aplikasi 2) Melihat riwayat transaksi yang telah dilakukan
3) Melihat informasi event yang sedang berlangsung 3 User Pemilik Kendaraan 1) Menyewakan kendaraan di dalam aplikasi 2) Melihat riwayat transaksi kendaraan yang disewakan 3.4 Hasil Penelitian Berikut merupakan proses tahapan pengembangan sistem dengan menggunakan
Evolutionary Prototyping.
Tabel 2. Tahapan Pengembangan Sistem dengan menggunakan Evolutionary Prototyping.
No Aktivitas Fase Input Output Syarat 1 Identifikasi pengguna yang dapat mengakses aplikasi SRA Kebutuhan sistem Tingkatan pengguna yang dapat mengakses aplikasi - 2 Merancang spesifikasi kebutuhan fungsional sistem atas level pengguna SRA Level pengguna Kebutuhan fungsional sistem berdasarkan level pengguna - 3 Menggambar alur sistem SK Kebutuhan fungsional sistem atas level pengguna Gambaran alur sistem dengan UML - 4 Membangun fitur yang diperlukan aplikasi berbasis android dan aplikasi berbasis web PD Desain UML Ref 3 Tabel 3 Ref 1 Tabel 3 5 Menguji fitur aplikasi berbasis android dan aplikasi berbasis web EU Ref 3 Tabel 3 Ref 2 Tabel 3 - 6 Perbaiki kekurangan sistem RF Kebutuhan proses belum tersedia Tambahan kebutuhan sistem - 7 Tambah kebutuhan sistem SRA Tambahan kebutuhan sistem Kebutuhan fungsional sistem -
No Aktivitas Fase Input Output Syarat 8 Gambarkan kebutuhan fungsional sistem ditambah SK Kebutuhan fungsional sistem Gambaran alur sistem dengan UML - 9 Tambah fitur pada aplikasi berbasis android dan aplikasi berbasis web PD Desain UML Ref 3 Tabel 3 Ref 1 Tabel 3 10 Menguji fitur aplikasi berbasis android dan aplikasi berbasis web EU Ref 3 Tabel 3 1.Data username tidak boleh null 2.Jika sudah di- approve tidak bisa di- disapprove dan sebaliknya - 11 Memperbaiki kekurangan sistem RF Kebutuhan proses yang perlu diperbaiki Tambahan pada spesifikasi kebutuhan sistem - 12 Tambah spesifikasi pada kebutuhan sistem SRA Spesifikasi tambahan kebutuhan sistem Kebutuhan fungsional sistem - 13 Gambarkan kebutuhan fungsional sistem yang ditambahkan SK Kebutuhan fungsional sistem Gambaran alur sistem dengan UML - 14 Menambahkan fitur pada aplikasi berbasis Android dan aplikasi berbasis web PD Desain UML Ref 3 Tabel 3 Ref 1 Tabel 3 15 Menguji fitur Aplikasi berbasis android dan aplikasi berbasis web EU Ref 3 Tabel 3 Deskripsi dan Hasil pengujian aplikasi berbasis android dan aplikasi berbasis web -
Tabel 3. Referensi Tambahan proses Evolutionary Prototype . No Objek Keterangan 1 Ref 1 Koneksi database menggunakan fungsi nodejs dengan return berupa JSON dan koneksi database melalui port tertentu 2 Ref 2 1) Proses persetujuan admin jika user ingin mendaftarkan akun menjadi pemilik kendaraan atau penyewa belum ada. 2) Proses persetujuan admin jika pemilik kendaraan ingin mendaftarkan kendaraan belum ada. 3) Proses persetujuan pemilik kendaraan jika kendaraan miliknya disewa penyewa tertentu belum ada.
4) Proses konfirmas itransaksi penyewaan jika kendaraan telah disetujui.
5) Pemilik kendaraan untuk disewa penyewa belum ada. 3 Ref 3 Aplikasi berbasis android dan aplikasi berbasis web 4. KESIMPULAN Setelah melakukan serangkaian pengujian terhadap aplikasi, penulis mencoba menarik kesimpulan sebagai berikut; Web service yang dibangun menggunakan NodeJS dengan fungsi mengambil data dan mengirimkan data terhadap website dengan framework CodeIgniter , yang juga berperan sebagai server . Serta data yang dikelola dalam aplikasi berbasis android sebagai client juga berasal dari web service . Hal ini telah mengimplementasikan Multilayering Service Oriented Architecture .

## DAFTAR PUSTAKA
[1] Rosa A.S., Shalahuddin, M., 2018. Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek. Informatika Bandung. Bandung.
[2] Pressman, R.S. 2010. Software Engineering : a practitioner's approach. McGraw-Hill. New York.
[3] Utomo, Wiranto Herry. 2016. Pemrograman Web Services dan SOA dengan NetBeans . Penerbit Andi. Yogyakarta.
[4] Rompis, AC., Aji, RF., 2018. Perbandingan Performa Kinerja Node.js, PHP, dan Python dalam Aplikasi REST. Cogito Smart Journal. 4(1):186.
[5] S.L. Bangare, S. Gupta, M. Dalal, dan A. Inamdar. 2016. Using NodeJS to Build High Speed and Scalable Backend Database Server . International Journal of Research in Advent Technology. 61-63.
[6] Destiningrum, Mara., Adrian, Qadhli Jafar., 2017. Sistem Informasi Penjadwalan Dokter Berbasis Web Dengan Menggunakan Framework Codeigniter (StudiKasus: Rumah Sakit Yukum Medical Centre) . Jurnal TEKNOINFO.11(2):32-33.
[7] Februariyanti, Herny., Zuliarso, Eri., 2012. Rancang Bangun Sistem Perpustakaan untuk Jurnal Elektronik. Jurnal Teknologi Informasi DINAMIK. 7(2):129.
[8] Hadi, Aulia Fitrul. 2018. Analisa Ketangkapan Daya Ingat Anak Dengan Menggunakan Game Edukasi Non Player Character “Ani!” Berbasis Android . 11(1): 56.
[9] Ginanjar, Arief., Hendayun, Mokhamad., 2019. Spring Framework Reliability Investigation Against Database Bridging Layer Using Java Platform. Procedia Computer Science. 161:
1036. [10] Nacheva, Radka. 2017. Prototyping Approaching User Interface Development . Conference on Innovative Teaching Methods, University of Economics Varna. Bulgaria.
[11] Ilman, Benie., Ginanjar, Arief., 2019. Rancang Bangun Web Service – JSON Menggunakan Kombinasi Spring dan MyBatis Framework dalam Lingkungan Java Platform . Jurnal Teknologika. 9(1): 8.
[12] Ginanjar, A., Sari, W. P., Rahmawati, H., & Dwipriyoko, E. 2019. Metodologi RUP Terhadap Pengolahan Data Nilai Siswa Berbasis Android dan NodeJS. Jurnal TIARSIE, 16(4), 113-120.