RENCANA + Link2 MATERI Training _"SISTEM MANAJEMEN MUTU (ISO 9001_2015)".
Aplikasi Pemesanan Kamar Hotel dan Ketersediaan Kamar Hotel
1. APLIKASI PEMESANAN KAMAR HOTEL DAN
KETERSEDIAAN KAMAR HOTEL
Asep Sutiono – 17160090
Email : asep.sutiono196@gmail.com
Program Strata Satu Teknik Informatika
Universitas Bina Sarana Informatika
Jl. Sekolah internasional No. 1-6 Antapani, Bandung
Abstrak
Fungsi dari kemajuan teknologi diantaranya adalah untuk mempermudah suatu
pekerjaan dan meningkatkan kualitas perorangan, pemerintahan dan perusahaan. Salah satu
penerapan teknologi adalah pembuatan aplikasi untuk mempermudah suatu pekerjaan dan
menyediakan informasi dengan cepat dan akurat. Dengan meningkatnya wisatawan, maka
hotel yang merupakan badan usaha akomodasi yang menyediakan jasa penginapan harus
melayani wistawan yang akan menggunakan jasa tersebut dengan cepat dan menyediakan
informasi ketersediaan kamar yang akurat. Pembuatan aplikasi ini adalah untuk membantu
bagian penerima tamu hotel menyediakan informasi ketersediaan kamar dan membantu bagian
penerima tamu hotel melayani tamu atau wisatawan yang akan menginap di hotel atau tempat
penginapan tersebut.
Kata kunci : pemrograman, algoritma, hotel dan C++.
1. Pendahuluan
Hotel merupakan badan usaha
akomodasi yang menyediakan pelayanan
jasa penginapan, penyedia makanan dan
minuman serta fasilitas jasa lainnya dimana
semua pelayanan itu diperuntukkan bagi
masyarakat umum, baik mereka yang
bermalam di hotel tersebut ataupun mereka
yang hanya menggunakan fasilitas tertentu
yang dimiliki hotel tersebut.
Peranan hotel dalam industri
pariwisata sangat penting. Salah satu
peranan hotel dalam industri wisata adalah
membantu para wisatawan yang sedang
berwisata dengan jasa penginapan yang
disediakan oleh hotel. Bisnis pariwisata di
Indonesia cukup potensial mengingat
Indonesia secara alami memiliki potensi
keindahan alam dan keunikan budaya.
Potensi tersebut mengakibatkan industri
pariwisata masih terjaga kelestariannya.
Perkembangan bisnis perhotelan di
Indonesia meningkat cukup segnifikan. Ini
bisa dilihat dari jumlah wisatawan
mancanegara pada bulan September 2016
berjumlah 1.006.653 wisatawan
dibandingkan dengan tahun sebelumnya
pada bulan September berjumlah 920.123
wisatawan.
Pelayanan yang diberikan hotel
kepada wisatawan akan berdampak pada
ketertarikan wisatawan terhadap hotel
tersebut. Salah satu pelayanan yang
diberikan hotel adalah proses pemesanan
kamar hotel dan informasi ketersediaan
kamar hotel. Untuk meningkatkan
ketertarikan wisatawan, maka dibutuhkan
sebuah aplikasi yang dapat melakukan
proses pemesanan dengan cepat dan
menyediakan informasi ketersedian kamar
dengan akurat. Aplikasi dibuat dengan
bahasa pemrograman salah satunya
adalah bahasa pemrograman C++. Untuk
menuliskan bahasa pemrograman C++
diperlukan IDE yang berfungsi untuk
membangun aplikasi dari bahasa C++.
2. Metode Penelitian
2.1 Pengumpulan data
Yang dilakukan adalah
mengumpulkan informasi mengenai wisata
yang ada di Indonesia, jumlah wisatawan,
perkembangan bisnis perhotelan di
Indonesia dan prosedur pemesanan kamar
hotel.
2. 2.2 Analisa masalah
Dengan meningkatnya jumlah
wisatawan yang menginap di hotel, maka
dibutuhkan aplikasi yang dapat membantu
penerima tamu hotel untuk melayani
wisatawan yang akan menginap di hotel
tersebut.
2.3 Rancangan Aplikasi
Membuat sebuah algoritma untuk
pengisian data berupa data wisatawan dan
data pemesanan kamar hotel(check in dan
check out), ketersediaan kamar hotel dan
tampilan antarmuka. Perangkat yang
dibutuhkan untuk membuat aplikasi adalah
laptop yang terinstal sistem operasi
windows, microsoft visio digunakan untuk
membuat flowchart dan dev-c++ untuk
menuliskan pemrograman c++. Dibawah ini
adalah tabel fungsi menu dari aplikasi
pemesanan kamar hotel dan ketersediaan
kamar hotel.
Menu Fungsi
1. Check
In
Untuk mendaftarkan
wisatawan atau tamu yang
hendak menginap di hotel
dan dibuatkan ID Tamu.
2. Check
Out
Untuk mendaftarkan
wisatawan atau tamu yang
hendak meninggalkan hotel
berdasarkan ID Tamu
3. Daftar
Tamu
Untuk melihat daftar tamu
yang sudah check in atau
check out
4. Exit Untuk mengakhiri program
yang berjalan
Tabel 1. Fungsi menu.
2.4 Pembuatan aplikasi
Pada tahapan ini, pembuatan
aplikasi dilakukan berdasarkan algoritma
yang telah dibuat kedalam kode program
dan menguji programnya untuk memastikan
programnya berjalan dengan baik.
3. Hasil dan pembahasan
3.1 Landasan teori
3.1.1 Struktur Bahasa Pemrograman C++
a. Komentar.
Pada bagian ini berisi keterangan
pada program yang dibuat dan tidak akan
di eksekusi ketika program berjalan. Ada
dua cara untuk menuliskan komentar, yaitu
dengan tanda // dan tanda /*..*/. Komentar
dengan tanda // hanya berlaku satu baris
dan komenter dengan tanda /*...*/ bisa
digunakan untuk komentar yang lebih dari
satu baris.
b. Preprocessor directive.
Preprocessor directive ditandai
dengan simbol #. Bertugas untuk
mengarahkan prepocessor yang akan
digunakan untuk membaca file header atau
bisa dikatakan sebagai pengatur proses
kompilasi. Contoh preprocessor directive
#include, #define, #if, #else, dan lainnya.
c. Fungsi utama (main()).
Adalah fungsi yang akan
dieksekusi pertama kali pada saat program
dijalankan. Setelah fungsi utama diikuti
dengan tanda kurung kurawal { dan }. Di
dalam tanda { dan } berisi deklarasi dan
perintah-perintah yang akan dijalankan.
Contoh perintah yang digunakan untuk
menampilkan pesan “Hallo BSI!”:
d. Fungsi tambahan ini adalah fungsi yang
mendukung dan merupakan pemecahan
dari fungsi utama. Terdiri atas function dan
procedure. Function merupakan fungsi
dengan nilai balik, sedangkan procedure
adalah fungsi tanpa nilai balik. Untuk fungsi
tambahan nanti akan kita kupas lebih lebar
lagi.
Contoh fungsi tambahan:
3.1.2 Dev-C++
Dev-C++ adalah IDE bebas dengan
fitur yang lengkap dan di distribusikan
dibawah GNU General Public License
untuk pemrograman bahasa C dan C++.
//Contoh komentar satu baris
/*Komentar baris kesatu
Komentar baris kedua
Komentar baris ketiga
Dan komentar baris berikutnya
*/
main(){
cout << “Hallo BSI!”;
}
void gotoxy(int x, int y){
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetS
tdHandle(STD_OUTPUT_HANDLE),
coord);
}
3. Dev-C++ dibuat dengan bahasa Delphi.
Dev-C++ mudah digunakan dan dilengkapi
dengan MinGW atau TDM-GCC sebagai
kompilernya. Dev-C++ bisa di
kombinasikan dengan Cygwin atau
kompiler manapun. Dev-C++ hanya bisa
digunakan di sistem operasi windows
tetapi, ada upaya untuk membuat versi
linux. Cara menggunakan Dev-C++ untuk
menuliskan program C++ yaitu dengan
membuka program Dev-C++ dan tekan
Ctrl+N untuk membuka editor baru dan
pada editor tersebut bahasa C++ bisa
dituliskan. Untuk compile bahasa C++
dengan menekan tombol F9 pada
keyboard, F10 untuk menjalankan program
dan F11 untuk compile dan menjalankan
program.
Gambar 1. IDE Dev-C++
3.2 Algoritma aplikasi pemesanan kamar
hotel dan ketersediaan kamar hotel.
Kamar hotel yang tersedia adalah
30 untuk masing-masing tipe kamar hotel,
dikenakan biaya administrasi sebesar
Rp.200.000 dan ID tamu atau wisatawan
diawali dengan angka 1110 dan akan
bertambah jika jumlah tamu atau wisatawan
yang akan menginap bertambah. Ada
empat menu yang bekerja pada aplikasi
pemesanan kamar hotel dan ketersediaan
kamar hotel. Berikut akan dijelaskan
algoritma dan cara kerja dari masing-
masing menu.
A. Menu pertama untuk mendaftarkan
wisatawan atau tamu yang hendak
menginap di hotel.
a) Memasukan nama wisatawan atau
tamu yang akan menginap.
b) Memasukan nomor telepon atau
hp.
c) Masukan kode kamar yang dipilih
wisatawan atau tamu. Jika kode
kamar yang dipilih adalah A, maka
tipe kamarnya adalah Anggrek dan
harganya Rp.300.000. Jika kode
kamar yang dipilih adalah B, maka
tipe kamarnya adalah Bugenville
dan harganya Rp.250.000. Jika
kode kamar yang dipilih adalah M,
maka tipe kamarnya adalah Melati
dan harganya Rp.200.000. Jika
kode kamar yang dimasukan salah,
maka kembali untuk memasukan
kode kamar yang benar.
d) Memasukan lama menginap. Jika
lama menginap lebih dari sama
dengan lima hari, maka akan
mendapatkan bonus payung. Jika
tidak, maka tidak akan
mendapatkan bonus.
e) Menampilkan rincian data
pemesanan kamar beserta total
biaya yang harus dibayarkan dan
sudah termasuk biaya administrasi.
f) Memasukan nominal uang
pembayaran yang dibayarkan
wisatawan atau tamu.
g) Menampilkan uang kembali.
h) Pemeriksaan kembali oleh
penerima tamu terhadap rincian
data pemesan kamar. Setelah
diperiksa, selanjutnya memasukan
karakter Y atau T. Karakter Y untuk
proses pengurangan ketersediaan
kamar, status tamu atau wisatawan
adalah check in, di buatkan ID,
penyimpanan data pemesan kamar
dan kembali ke menu. Karakter T
untuk kembali ke menu tanpa
menyimpan data pemesan kamar.
B. Menu kedua untuk mendaftarkan
pemesan kamar yang akan Check Out.
a) Masukan ID tamu atau
wisatawan dan proses
pencarian.
b) Tampil rincian data tamu atau
wisatawan berdasarkan ID.
c) Masukan karakter Y atau T
pada form Check Out. Jika
karakter yang dimasukan Y,
maka status tamu atau
4. wisatawan tersebut menjadi
Check Out. Jika karakter yang
dipilih adalah T, maka akan
kembali ke menu.
C. Menu ketiga untuk melihat daftar tamu.
Pada menu ketiga, data yang
ditampilkan adalah id, nama, lama
menginap, tipe kamar dan status. Data
yang ditampilkan adalah data tamu atau
wisatawan yang pernah check in ke hotel
tersebut.
D. Menu keempat untuk keluar dari progam
yang sedang berjalan.
3.3 Flowchart aplikasi pemesanan kamar
hotel dan ketersediaan kamar hotel.
Programmulai
dijalankan
Ketersediaan
kamar,total
tamudan
PilihMenu
MenuMenu
Memasukan
Nama
No.Telephone/HP
KodeKamar
Lamamenginap
KodeKamar
Tipekamar:Melati
Harga :Rp.200.000
Tipekamar:Anggrek
Harga :Rp.300.000
Tipekamar:Bugenville
Harga :Rp.250.000
Lamamenginap
>=5hari
Tidakdapatbonus
Mendapatkan
payung
TampilRincian
Pemesanankamar
dantotalyangharus
dibayar
Proses? 1
1
DibuatkanID,
mengurangi
ketersediaankamar,
statusmenjadi
CheckIn,simpan
datapemesan
kamarkedatabase
dankembalike
menu
Kumpulandata
pemesankamar
1
MasukanID
pemesan
kamar
Prosesmencaridata
pemesankamar
padadatabase
2
2
Menampilkan
rinciandata
pemesankamar
CheckOut? 1
Mengubahstatus
menjadiCheckOut,
menambah
ketersediaankamar,
simpanrinciancheck
outdankembalike
menu
2
1
Keluardariprogram
Prosespemanggilan
datapemesan
kamar
2
Menampilak
semuadata
pemesan
kamardan
kembalike
manu
1
Administrasi :Rp.200.000
Anggrek :30kamar
Bugenville :30kamar
Melati :30kamar
ID :1110
1
23
4
A M
B
T
Y
Y
T
Y
T
Gambar 2. Flowchart
3.4 Struktur aplikasi pemesanan kamar
hotel dan ketersediaan kamar hotel.
A. Deklarasi variabel.
Fungsi dari deklarasi pada program
yang dibuat adalah untuk menyimpan nilai
yang dimasukan dan menampung data
yang dimasukan. Penampungan data
menggunakan Array satu dimensi untuk
tipe data yang berhubungan numerik dan
karakter. Untuk tipe data yang
menggunakan string menggunakan Array
dua dimensi. Dibawah ini adalah kode
deklarasi variabel pada aplikasi pemesanan
kamar hotel dan ketersediaan kamar hotel.
B. Menu utama.
Pada menu utama, data yang
ditampilkan berupa ketersediaan kamar dan
menampilkan masing-masing menu untuk
dipilih sesuai kebutuhan. Berikut adalah
kode untuk tampilan menu utama.
struct tm nowLocal; now = time(NULL);
nowLocal = *localtime(&now);
int menu, a, charga, cidTamu = 1110, admin
= 200000, melati = 30, anggrek = 30,
bugenville = 30, indeks=0, jumlahTamu = 0;
long int total, uangBayar;
char pilihan,chp[13], kamar,
ctipeKamar[15], cnama[20], cbendera,
cbonus[10];
//database atau variabel array
int idTamu[50], harga[50],
lamaMenginap[50], ciTa[50], ciB[50],
ciT[50], coTa[50], coB[50], coT[50], val[50];
char nama[50][25], hp[50][13],
tipeKamar[50][50], bendera[50],
status[50][10], bonus[50][10];
system("cls");
cout << "t--------------------------------------------
--------------n";
cout << "tNama HotelttttTanggaln";
cout << "tAlamat hotelnn";
cout << "tTotal tamu : " << jumlahTamu <<
endl;
printf("tAnggrek: %dkamartBugenville:
%dkamartMelati: %dkamarn",anggrek ,
bugenville, melati);
cout << "t--------------------------------------------
--------------n";
cout << "tttt.:: MENU UTAMA ::.n";
cout << "t[1] CHECK INn";
cout << "t[2] CHECK OUTn";
cout << "t[3] DAFTAR TAMUn";
cout << "t[4] Keluarn";
cout << "tMasukan menu : "; cin >> menu;
5. C. Proses pemesanan kamar dan
penyimpanan data.
Data-data yang dimasukan pada
saat pendaftaran disimpan pada sebuah
variabel untuk melanjutkan ke proses
berikutnya. Berikut adalah tabel yang
menjelaskan data yang dimasukan
tersimpan pada variabel.
Masukan Variable Kondisi
Nama cnama tidak ada
No. Tlp./HP chp tidak ada
Kode kamar kamar Pemilihan
tipe kamar
dan harga
sewa
kamarnya
Lama
menginap
menu Pemberian
bonus
berupa
payung
Tabel 2. Pemberian nilai variabel
Berikut adalah kode pemberian nilai
variabel.
Untuk memberi nilai pada variabel cnama
menggunakan fungsi gets() karena fungsi
gets() akan mengambil semua karakter
yang dimasukan termasuk karakter setelah
spasi. Sedangkan untuk variabel chp,
kamar, menu dan yang lainnya bisa
menggunakan cin.
D. Tipe kamar beserta harganya.
Tipe kamar beserta harganya di
dapat berdasarkan kode kamar yang dipilih.
Berikut tabel penjelasan antara kode kamar
dan tipe kamar beserta harganya.
Kode kamar Tipe kamar Harga
A Anggrek Rp.300.000
B Bugenville Rp.250.000
M Melati Rp.200.000
Tabel 3. Kode kamar dan tipe kamar
beserta harganya.
Berikut ini adalah kode yang digunakan
untuk pemilihan tipe kamar.
E. Penyimpanan data.
Setelah variabel berisi data-data
yang telah dimasukan, selanjutnya data-
data tersebut disimpan kembali pada
variabel array. Berikut adalah kode
pemberian nilai pada variabel array.
Indeks juga merupakan sebuah variabel
yang nilainya berupa angka. Nilai indeks
sangat penting, karena data tamu atau
wisatawan disimpan berdasarkan nomor
indeks pada variabel array.
F. Pembuatan ID tamu atau wisatawan.
ID tamu telah di inisialisasi pada
awal pendeklarasian variabel yang nilainya
1110 tersimpan pada variabel cidTamu.
Bagi wisatawan atau tamu yang pertama
kali check in pada aplikasi ini akan
mendapatkan ID 1110 dan nomor ID akan
bertambah satu bagi yang check in
selanjutnya menjadi 1111, 1112 dan
seterusnya. Berikut adalah kode untuk
menambahkan ID.
cout << "tNamattt: "; gets(cnama);
cout << "tNo. Telepon/HPtt: ";cin >> chp;
cout << "tKode kamar [A/B/M]t: "; cin >>
kamar;
cout << "tLama menginaptt: "; cin >>
menu;
cout << "tKode kamar [A/B/M]t: "; cin >>
kamar;
switch(toupper(kamar)){
case 'A':
strcpy(ctipeKamar, "Anggrek");
charga = 300000;
cbendera = 'A';
break;
case 'B':
strcpy(ctipeKamar, "Bugenville");
charga = 250000;
cbendera = 'B';
break;
case 'M':
strcpy(ctipeKamar, "Melati");
charga = 200000;
cbendera = 'M';
break;
default:
goto kode;
}
idTamu[indeks] = cidTamu;
harga[indeks] = charga;
lamaMenginap[indeks] = menu;
strcpy(nama[indeks], cnama);
strcpy(hp[indeks], chp);
strcpy(status[indeks], "CHECK IN");
strcpy(tipeKamar[indeks], ctipeKamar);
strcpy(bonus[indeks], cbonus);
cidTamu +=1;
6. G. Pengurangan jumlah kamar.
Jumlah kamar akan berkurang jika
ada tamu atau wisatawan yang sudah
terdaftar check in. Pengurangan jumlah
kamar sesuai dengan kamar yang dipilih
tamu atau wisatawan. Berikut adalah kode
untuk mengurangi jumlah kamar.
Fungsi toupper() digunakan untuk
mengubah huruf yang dimasukan menjadi
huruf besar.
H. Proses pencarian data dengan ID.
Proses pencarian data pada
aplikasi ini menggunakan pengulangan.
Berikut adalah kode untuk mencari data.
Sebelum ke proses pengulangan, pertama
yang harus dilakukan adalah memasukan
ID tamu atau wisatawan dan akan
tersimpan pada variabel menu. Selanjutnya
proses pengulangan yang akan mencari ID
yang sama yaitu ID yang dimasukan
dengan ID yang pernah di simpan di array.
Jika ada yang sama, maka blok program
akan di jalankan dan pengulangan
dihentikan dengan break.
I. Penambahan jumlah kamar.
Penambahan jumlah kamar terjadi
jika proses pencarian data berhasil yang
merupakan salah satu blok program yang
akan dieksekusi. Berikut adalah kode untuk
menambahkan jumlah kamar.
J. Proses menampilkan daftar tamu atau
wisatawan.
Untuk menampilkan semua data
tamu atau wisatawan menggunakan cara
pengulangan yaitu dengan memanggil data
yang ada pada elemen array. Berikut
adalah kode untuk menampilkan semua
data tamu atau wisatawan.
Nilai dari elemen array dihasilkan dari
proses pengulangan yang akan terus
memanggil data berdasarkan jumlah tamu.
K. Menghentikan program.
Untuk menghentikan program yang
berjalan berada pada menu ke empat.
Berikut adalah kode yang ada pada menu
ke empat.
Menu ke empat merupakan default dari
menu yang ada yang akan menghentikan
program yang sedang berjalan.
3.5 Hasil pengujian aplikasi.
3.5.1 Menu utama.
Gambar 2. Menu utama.
Pada menu utama, terlihat jumlah tamu ada
empat sesuai dengan yang telah di
daftarkan berjumlah empat selain itu, ada
jumlah kamar dari masing-masing tipe
kamar berkurang.
//pengurangan kamar
if(toupper(kamar) == 'A' ) anggrek -=1;
else if(toupper(kamar) == 'B') bugenville -
=1;
else if(toupper(kamar) == 'M') melati -=1;
cout << "tMasukan ID : ";cin >> menu;
for(a=0;a<50;a++){
if(idTamu[a] == menu){
//blok program yang akan
dieksekusi
break;
}
}
if(toupper(pilihan) == 'Y' and val[a] == 0){
if(bendera[a] == 'A') anggrek +=1;
else if(bendera[a] == 'B') bugenville
+=1;
else if(bendera[a] == 'M') melati
+=1;
}}
for(a=0;a<jumlahTamu;a++){
cout << "|" << setiosflags(ios::right) <<
setw(12) << idTamu[a];
cout << "|" << setiosflags(ios::right) <<
setw(20) << nama[a];
cout << "|" << setiosflags(ios::right) <<
setw(13) << lamaMenginap[a];
cout << "|" << setiosflags(ios::right) <<
setw(16) << tipeKamar[a];
cout << "|" << setiosflags(ios::right) <<
setw(12) << status[a];
cout << "|n";
cout << "----------------------------------------------
---------------------------------n";
}
default:
exit(0);
7. 3.5.2 Mendaftarkan tamu atau wisatawan.
Gambar 3. Proses pendaftaran
Gambar diatas adalah proses
mendaftarkan tamu atau wisatawan dengan
mengisi biodata berupa nama, nomor
telepon atau hp, kode kamar dan lama
menginap yang di masukan penerima tamu.
3.5.3 Rincian data.
Gambar 4. Rincian data tamu atau
wisatawan
Pada gambar diatas menampilkan rincian
data setelah penerima tamu memasukan
data yang selanjutnya diproses supaya
datanya tersimpan.
2.5.4 Daftar tamu.
Gambar 5. Menampilkan data tamu.
Pada gambar diatas, tamu yang pernah
menginap di hotel ditampilkan. Data yang
ditampilkan berupa ID, nama, lama
menginap, tipe kamar dan status.
4. Kesimpulan dan saran.
Kesimpulan yang dapat diambil dari proses
pembuatan aplikasi pemesanan hotel dan
ketersediaan kamar hotel adalah sebagai
berikut:
1. Untuk menyimpan data bisa
menggunakan array.
2. Untuk mencari data pada array bisa
menggunakan metode
pengulangan.
3. Untuk mengubah huruf kecil
menjadi huruf besar, bisa
menggunakan fungsi toupper().
4. Untuk menghentikan program, bisa
menggunakan fungsi exit().
Dalam aplikasi pemesanan kamar hotel dan
ketersediaan kamar hotel masih terdapat
beberapa kekurangan yaitu belum adanya
pengelolaan nomor kamar, data yang
disimpan akan hilang jika program di tutup
dan validasi pengguna. Saran bagi yang
akan mengembangkan aplikasi ini adalah
menambahkan database supaya data yang
disimpan masih tetap ada walaupun
program ditutup, menambahkan fitur
pengelolaan nomor kamar dan
menambahkan validasi pengguna untuk
membatasi penggunaan aplikasi ini.
Daftar Pustaka
[1] Kementrian Pariwisata Republik Indonesia.
2016. Data Kunjungan Wisatawan
Mancanegara Bulan September Tahun
2016.
http://www.kemenpar.go.id/userfiles/file/Lap
bul%20Sep%202016.pdf
[2] Jenishotel[dot]info. 2015. Perkembangan
Bisnis Perhotelan dan Pariwisata di
Indonesia.
http://jenishotel.info/perkembangan-bisnis-
perhotelan-dan-pariwisata-di-indonesia
[3] Belajar C++. 2016. Struktur dan bagian-
bagian program C++.
http://www.belajarcpp.com/2016/01/struktur-
dan-bagian-bagian-program-cplusplus.html