SISTEM RESERVASI HOTEL BERBASIS WEB MENGGUNAKAN API UNTUK INTERKONEKSI DENGAN SISTEM RESERVASI PIHAK KETIGA
Oleh:
Hari Rachmadi1, Dr.Ir. Amir Hamzah, MT.2, Suwanto Raharjo, S.Si., MT3 1,2,3
Teknik Informatika, FTI, IST AKPRIND,
[email protected], [email protected], [email protected]
ABSTRACT
To reserve a room easily and quickly, required a lightweight reservation system with comfortable interface and easy to use. Third party reservation app is now widely available and each has varying prices. The majority of users would want the cheapest price. If the hotel has its own reservation system, the user can know the original price of the hotel. In addition, the system must be able to collaborate with third-party systems to extend the range.
This reservation system will be created using a light and fast codeigniter framework. Payment confirmation on this system uses unique code verification. Payout time is limited, to anticipate order queue that is not serious. In addition, a bank system is also created to make the payment process. The system will export the data in CSV format. The CSV file will be imported by the main reservation system. If the payment data matches what is stored in the ordering database, the system will automatically verify. By using the API, the system can interact with other systems to optimize the potential of the system. Examples of implementation are done by simulation using a third-party system that will access the endpoints specified on the main system.
After testing all features by accessing the entire menu and registering or logging in, all the menus and validation can run without obstacles. Then after attempted to place an order and payment, the system can also manage the data appropriately. If payment is not made within a specified time, then the system will automatically delete the order from the database. Overall, the system has been successfully manage transactions reservation quickly and precisely. The system has also successfully implemented the API and interconnects with the third party reservation system smoothly.
Keywords: reservation, API, interconnection
INTISARI
Untuk memesan kamar hotel dengan mudah dan cepat, diperlukan sistem reservasi yang ringan dengan antarmuka yang nyaman dan mudah untuk digunakan. Aplikasi reservasi pihak ketiga sekarang ini banyak tersedia dan masing-masing memiliki harga yang bervariasi. Mayoritas pengguna pasti menginginkan harga paling murah. Jika hotel memiliki sistem reservasi sendiri, pengguna dapat mengetahui harga asli dari hotel tersebut. Selain itu, sistem harus mampu berkolaborasi dengan sistem pihak ketiga untuk memperluas jangkauan.
Sistem reservasi ini akan dibuat menggunakan framework codeigniter yang ringan dan cepat. Konfirmasi pembayaran pada sistem ini menggunakan verifikasi kode unik. Waktu pembayaran pun dibatasi, untuk mengantisipasi antrian pesanan yang tidak serius. Selain itu, sebuah sistem bank juga dibuat untuk melakukan proses pembayaran. Sistem tersebut akan meng-export data dalam format CSV. Jika data pembayaran tersebut sesuai dengan yang tersimpan dalam database pemesanan, maka sistem akan melakukan verifikasi secara otomatis. Dengan menggunakan API, sistem dapat berinteraksi dengan sistem lain untuk mengoptimalkan potensi sistem. Contoh penerapan dilakukan dengan simulasi menggunakan sistem pihak ketiga yang akan mengakses endpoint yang telah ditentukan pada sistem utama.
Setelah dilakukan pengujian pada semua fitur dengan mengakses seluruh menu dan melakukan registrasi maupun login, semua menu dan validasi dapat berjalan tanpa kendala. Kemudian setelah dicoba untuk melakukan pemesanan dan pembayaran, sistem juga dapat mengelola data tersebut dengan tepat. Jika pembayaran tidak segera dilakukan dalam waktu yang ditentukan, maka sistem secara otomatis akan menghapus pesanan tersebut dari database. Secara keseluruhan, sistem telah berhasil mengelola transaksi pemesanan kamar dengan cepat dan tepat. Sistem juga telah berhasil menerapkan API dan melakukan interkoneksi dengan sistem reservasi pihak ketiga dengan lancar.
PENDAHULUAN
Seiring dengan kemajuan teknologi informasi, banyak hal baru yang muncul dan berkembang salah satunya di bidang pariwisata. Banyak tempat wisata yang naik daun bahkan tak sedikit tempat wisata baru yang bermunculan, seiring dengan fenomena jalan-jalan atau traveling yang sedang hangat sekarang ini. Dengan meningkatnya potensi pariwisata akan diikuti dengan meningkatnya mobilitas wisatawan yang berasal dari berbagai daerah. Salah satu kebutuhan yang mendukung mereka untuk berpindah dari kota satu ke kota lain adalah tempat singgah maupun beristirahat yaitu hotel dan semacamnya. Demi kelancaran dan kenyamanan mereka akan memesan terlebih dahulu hotel yang akan ditempati tersebut.
Aktivitas pemesanan yang bersifat konvensional pun mulai ditingalkan dan beralih ke cara yang lebih praktis dan cepat seperti menggunakan aplikasi, baik yang berbasis web maupun mobile. Sehingga banyak aplikasi booking pihak ketiga yang bermuculan dan semakin lama semakin populer. Dengan banyaknya aplikasi semacam ini, pengguna akan memilih untuk menggunakan aplikasi mana yang mereka sukai, bahkan bisa jadi mereka menggunakan lebih dari satu aplikasi dengan tujuan membandingkan harga mana yang lebih murah. Namun sejatinya cara tersebut belum tentu efisien karna tarif asli dari hotel yang bersangkutan bisa jadi lebih murah lagi, dan mungkin juga ada promo tertentu dari masing-masing hotel secara khusus.
Oleh karena itu, sejatinya setiap hotel memerlukan sistem reservasinya sendiri agar dapat secara online mengelola dan menampilkan tarif asli dari hotel tersebut dan juga menampilkan promo tertentu. Sehingga dapat dijadikan nilai pembanding yang tepat bagi para calon pengguna hotel. Tak sedikit pula hotel yang masih sama sekali belum memiliki situs maupun sistem reservasi, khususnya hotel-hotel kecil di daerah yang mungkin justru lebih dekat dengan tempat wisata yang dituju. Diperlukan sistem yang menyediakan informasi mengenai pilihan kamar, harga asli dari hotel tersebut dan informasi-informasi lainnya. Selain itu juga diperlukan penerapan API (Application Programming Interface) agar sistem mampu berkolaborasi dengan sistem pihak ketiga untuk memperluas jangkauan dan mengoptimalkan potensi dari sistem tersebut.
TINJAUAN PUSTAKA
Berikut adalah beberapa referensi dari penelitian-penelitian yang terkait dengan sistem yang akan dibuat :
(Wibowo, 2014), dalam penelitian yang tentang sistem reservasi kamar hotel berbasis web ini dia membuat sistem yang menyediakan informasi umum tentang hotel tersebut lengkap dengan data kamar yang tersedia, seperti klasifikasi kamar dan daftar harga kamar. Dengan sistem ini pengguna juga dapat melakukan transaksi pemesanan sekaligus pembayaran. Namun, desain dari sistem informasi tersebut masih sangat kaku dan kurang menarik. Diperlukan tampilan yang lebih cantik dan lebih menarik, selain itu juga diperlukan penerapan API agar sistem dapat berinteraksi dengan sistem lain seperti sistem reservasi pihak ketiga, sehingga dapat mengoptimalkan potensi dari sistem reservasi tersebut.
(Firdaus, 2015), dalam penelitiannya tentang sistem pencarian hotel di wilayah jember, dia membuat sebuah sistem yang bertujuan untuk merancang dan membangun sistem yang diharapkan mampu membantu pengguna untuk mencari hotel terdekat dengan memasukkan alamat yang dituju. Diperlukan sistem yang dapat mengelola data hotel yang lebih lengkap seperti fasilitas kamar sekaligus dapat melakukan proses reservasi beserta pembayaran untuk kamar hotel tersebut.
LANDASAN TEORI
Sistem Informasi
Sistem informasi merupakan suatu perkumpulan data yang terorganisasi beserta tatacara penggunaanya yang mencangkup lebih jauh dari pada sekedar penyajian. Istilah tersebut menyiratkan suatu maksud yang ingin dicapai dengan jalan memilih dan mengatur data serta menyusun tatacara penggunaanya. (Jogiyanto,2005)
PHP
PHP merupakan bahasa program yang bersifat compiler. PHP adalah singkatan dari Hypertext Preprocessor yang di gunakan sebagai bahasa script server-side dalam pengembangan web yang disisipkan pada dokumen HTML. (Kasiman, 2006)
Pemrograman Web
Pemrograman web kamarnjukkan suatu pekerjaan memrogram atau membuat program yang dapat berjalan di web. Web dalam hal ini adalah web browser atau dalam jangkauan lebih luas adalah internet yang sebagian besar layanannya adalah browsing. Browsing adalah mengakses sumber informasi menggunakan web. (Husni, 2007)
MYSQL
Mysql sangat cepat dan mudah untuk digunakan dan sebagai sistem manajemen database relasional yang digunakan untuk database pada beberapa web site. Kecepatan adalah fokus utama pada pengembangan awal MYSQL. Demi kepentingan kecepatan ini, mereka membuat keputusan untuk menawarka fitur lebih sedikit dibanding pesaing utama mereka. MySQL lebih mudah dalam instalasi dan penggunaannya dibanding yang lain. MySQL adalah suatu database populer dengan pengembangan Web. Kecepatan dan ukuran yang kecil membuatnya ideal untuk Web site. (Simamarta, 2006)
API
Application Programming Interface (API) merupakan seperangkat instruksi pemograman untuk mengakses aplikasi berbasis web software atau web tool. Sebuah perusahaan perangkat lunak merilis API kepada publik sehingga pengembang perangkat lunak lain dapat merancang produk yang didukung oleh layanannya. API menentukan bagaimana komponen perangkat lunak saling berinteraksi. API juga dapat didefinisikan sebagai sebuah bahasa yang digunakan oleh sebuah program aplikasi untuk berkomunikasi dengan sistem operasi atau program kontrol lainnya seperti Database Management System atau protokol komunikasi. (www.webopedia.com/TERM/A/API.html)
JSON
JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat oleh komputer. JSON merupakan format teks yang tidak bergantung pada bahasa pemprograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data. .(www.json.org/json-id.html)
CodeIgniter
CodeIgniter adalah sebuah framework PHP yang dapat membantu mempercepat developer dalam pengembangan aplikasi web berbasis PHP dibanding jika menulis semua kode program dari awal. CodeIgniter pertama kali dibuat oleh Rick Ellis, CEO Ellislab.Inc, sebuah perusahaan yang memproduksi CMS(Content Management System) yang cukup handal, yaitu Expression Engine. Saat ini, CodeIgniter dikembangkan oleh Expression Engine Development Team. (Hakim, 2010)
Ilustrasi Sistem
Dalam memahami gambaran sistem yang akan dibuat, dapat dilihat ilustrasinya pada
Gambar 1: Ilustrasi Sistem Desain Sistem
Pada penelitian kali ini, UML digunakan untuk menggambarkan desain sistem yang akan dibuat. Dengan menggunakan UML, akan dibuat perancangan use case diagram dan activity diagram, selengkapnya dapat dilihat pada penjelasan berikut :
Use Case Diagram
Untuk use case yang pertama adalah use case diagram sistem reservasi utama hotel, dimana terdapat 3 aktor yaitu pengunjung, member, dan admin. Untuk tampilannya dapat dilihat pada gambar berikut:
Gambar 2 :Use case diagram sistem reservasi utama hotel.
Untuk pengunjung website langsung bisa melihat informasi tentang hotel maupun kamar, sedangkan untuk memesan kamar harus mendaftar terlebih dahulu. Sebelum menggunakan sistem, untuk member dan admin harus login terlebih dahulu. Admin setelah login dapat mengolah data user, kamar, dll. Sedangkan untuk member, dapat melakukan pemesanan, konfirmasi pembayaran dan komentar .
Gambar 3: Desain Relasi Database
HASIL
Sistem Reservasi Kamar Hotel
Pada tampilan pertama dari sistem reservasi kamar hotel ini terdapat beberapa menu seperti beranda, kamar, kontak dan menu masuk. Pengunjung juga dapat melihat slide galeri foto dan daftar kategori kamar yang tersedia. Dan di bagian footer terdapat menu pendaftaran, lokasi hotel dan juga kolom komentar.
Gambar 4.2 : Tampilan Utama Reservasi Kamar Hotel
Gambar 4.6 : Tampilan Menu Booking Kamar
Pada menu booking kamar akan ditampilkan pilihan kamar beserta tarif untuk satu malam dari setiap kamar. Untuk kamar yang tersedia (vaccant) ditandai dengan button berwarna biru sedangkan untuk yang tidak tersedia (occupied) ditandai dengan button berwarna merah.
Gambar 4.7 : Tampilan Rincian Booking
Setelah memilih salah satu kamar untuk di booking maka akan diminta untuk mengisi rincian yaitu tanggal cek in, durasi, jumlah tamu dewasa, anak serta keterangan untuk permintaan khusus (jika ada).
Gambar 4.8 : Tampilan Invoice dengan verifikasi kode unik
Setelah proses booking selesai sistem akan menampilkan invoice dengan total biaya yang mengandung kode unik yang nantinya akan digunakan sebagai verifikasi saat konfirmasi pembayaran.
Setelah melakukan pembayaran, proses selanjutnya adalah konfirmasi pembayaran dengan mengisikan rincian pembayaran. Jika pembayaran sudah dilakukan dalam jumlah persis dengan kode unik yang diminta, pesanan akan terverifikasi secara otomatis. Namun jika pembayaran sudah dilakukan namun kode uniknya tidak sesuai, maka pesanan hanya dapat diproses setelah dilakukan pengecekan secara manual oleh admin.
Setelah proses booking selesai sistem akan mebuatkan kwitansi sebagai bukti pembayaran sekaligus bisa digunakan oleh user untuk proses cek in. Selanjutnya user dapat mengakses menu reservasi pada tab pesanan yang sudah selesai untuk kemudian mencetak kwitansi pembayaran booking.
Gambar 4. Tampilan Bukti Pemesanan
Kemudian sistem akan secara otomatis meng-generate data booking kedalam format PDF dan dapat diunduh atau dicetak oleh user untuk kemudian digunakan sebagai bukti untuk melakukan proses cek in.
Sistem Reservasi Pihak Ketiga
Tampilan sistem reservasi pihak ketiga ini sangat sederhana, namun sudah cukup mewakili jika digunakan sebagai simulasi untuk penerapan API. Untuk tampilan sistem pihak ketiga dapat dilihat pada gambar berikut :
Gambar 5 Tampilan Pihak Ketiga
Gambar 6 Tampilan Menu Booking Pihak Ketiga
Selanjutnya user akan diminta untuk mengisi rincian pemesanan. Dengan menggunakan metode REST API data tersebut akan dikirimkan ke sistem utama untuk selanjutnya disimpan dalam database.
Gambar 7 Tampilan Pesanan Pihak Ketiga
Setelah berhasil tersimpan pada database, selanjutnya sistem akan menampilkan rincian data pesanan tersebut.
PEMBAHASAN Koneksi Database
Pada konfigurasi awal framework codeigniter, salah satu hal yang harus diatur yaitu koneksi database, yang berada pada foler application/config/database.php. Syntax untuk melakukan koneksi ke database pada CI adalah sebagai berikut :
Controller
function tambah dari controller merupakan tempat dideklarasikannya syntax untuk menyimpan pesanan yang nantinya akan dieksekusi oleh model M_adm. Apabila sudah diklik tombol booking maka data yang masuk akan dicek terlebih dahulu, apakah sudah sesuai atau belum. Untuk potongan kodenya adalah sebagai berikut :
$db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'root'; $db['default']['password'] = '';
Penerapan API
Konfigurasi REST Server
Untuk mengimplementasikan API pada codeigniter, langkah pertama yang harus dilakukan adalah menginstall library REST server pada codeigniter. Dalam paket REST server terdapat beberapa file yang perlu dipasang pada application/libraries yaitu Format.php dan REST_Controller.php. Untuk konfigurasinya tinggal memasang rest.php pada direktori application/config.
Selanjutnya tinggal membuat controller yang diinginkan dengan meng-extends dari REST_Controller kemudian nama controller tersebut akan dicantumkan dalam HTTP request (endpoint). Controller yang akan menangani request data kamar dan pemesanan adalah api_booking.php.
Konfigurasi REST Client
Dalam kasus ini yang bertindak sebagai REST Client adalah sistem booking pihak ketiga. Untuk dapat mengambil data dari sistem reservasi utama, sistem pihak ketiga hanya tinggal mengakses endpoint yang telah disiapkan tadi. Untuk dapat mentransfer data dari server maupun ke server akan digunakan CURL. Data akan ditranfer dalam format JSON, selanjutnya akan di-decode dan ditampilkan pada halaman sistem reservasi pihak ketiga. Potongan kode utamanya adalah sebagai berikut :
function tambah(){
curl_setopt_array($curl, array(
CURLOPT_URL => "localhost/reshotel_api/api_booking", CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET" ));
KESIMPULAN
Kesimpulan yang dapat diambil dari sistem yang dibuat adalah sebagai berikut :
1. Sistem Reservasi Hotel ini mampu menyediakan informasi hotel serta mampu mengelola transaksi pemesanan kamar untuk dapat meningkatkan efisiensi dari segi operasional perusahaan perhotelan.
2. Sistem Reservasi Hotel ini mampu meningkatkan efisiensi operasional bagi pihak pengguna sehingga dapat mengetahui dan membandingkan tarif asli dari hotel tersebut dengan sistem lain.
3. Sistem Reservasi Hotel ini mampu meningkatkan efisiensi waktu bagi pihak pengguna dalam melakukan aktifitas sehari-hari baik dalam keperluan pekerjaan maupun wisata. 4. Sistem Reservasi ini telah menggunakan metode pembayaran dengan meng-import file
CSV dari pihak Bank, dan menggunakan kode unik untuk proses verifikasi data pembayaran.
5. Sistem telah mampu menerapkan API untuk mengoptimalkan potensi dari sistem dantelah berhasil melakukan interkoneksi dengan sistem pihak ketiga.
6. Dengan menggunakan API pihak ketiga mampu mengakses data yang diperlukan secara mudah, singkat, dan ketika ada perubahan data pun akan terbaharui secara otomatis.
SARAN
Sistem Reservasi Kamar Hotel ini masih dapat dikembangkan dalam hal berikut :
1. Dalam pengembangan Sistem Reservasi Kamar Hotel ini dapat digabungkan dengan sistem manajemen hotel, sehingga lebih lengkap dalam mengelola berbagai aspek dalam perusahaan perhotelan secara keseluruhan.
2. Diperlukan penambahan pilihan pemesanan tanpa daftar, untuk pengguna yang tidak ingin repot mendaftar terlebih dahulu.
3. Diperlukan penambahan jumlah raungan yang pasti agar dapat mengatur penjadwalan ruangannya.
4. Sistem Reservasi Hotel merupakan suatu sistem yang akan mengelola transaksi pemesanan sekaligus pembayaran, oleh karena itu diperlukan adanya pengembangan sistem keamanan yang kuat.
DAFTAR PUSTAKA
Amin, M. M. (2010). Pengembangan Aplikasi Web Menggunakan PHP Data Objects (PDO). Yogyakarta: Graha Ilmu.
Dzayin, C. (2015). Membangun Aplikasi Shop Online dengan Codeigniter untuk Pemula. Yogyakarta: Andi.
Firdaus, R. M. (2015). Perancangan Sistem Informasi Pencarian Hotel Di Wilayah Jember Dengan Menggunakan Google Maps Api. Jember.
Frans, G. P. (2008). Tip Trik Menggunakan Browser Opera. Jakarta: Elex Media Komputindo. Frengki, N.D (2008). Membuat Web Server dan Virtual Host di Ubuntu 9.10. Yogyakarta : Elex
Media Komputindo.
Husni. (2007). Pemrograman Database Berbasis Web. Yogyakarta: Graha Ilmu. Jogiyanto. (2005). Analisis dan Desain Sistem Informasi. Yogyakarta: Graha Ilmu.
Khafidli, M. F. (2011). Trik Menguasai HTML5, CSS3, PHP Aplikatif. Yogyakarta: Lokomedia. Kustiyahningsih, Y., & Anamisa, D. R. (2011). Pemrograman Basis Data Berbasasis Web
menggunakan PHP & MySQL. Yogyakarta: Graha Ilmu.
Peranginangin, K. (2006). Aplikasi WEB dengan PHP dan Mysql. Yogyakarta: Andi.
Sidharta, L. (1996). Internet Informasi Bebas Hambatan. Jakarta: Elex Media Komputindo. Sidik, B., & Pohan, H. I. (2007). Pemrograman Web dengan HTML. Bandung: Informatika
Bandung.
Simamarta, J. (2006). Aplikasi Mobile Commerce. Yogyakarta: Andi.
Wibowo, B. (2014). Rancang Bangun Sistem Informasi Reservasi Sewa Kamar Hotel Berbasis Web (Studi Kasus Hotel Mandarin Pekalongan).