Anda di halaman 1dari 28

PROJEK AKHIR STRUKTUR DATA DAN ALGORITMA

IMPLEMENTASI PEMROGRAMAN BERBASIS OBJEK DALAM


SISTEM MANAJEMEN HOTEL DENGAN MENGGUNAKAN
PROGRAM C++

Dosen Pengampu :
Auli Damayanti, S.Si, M.Si
Muhammadun,S.Si., M.Si.

Disusun Oleh :
Kelompok 10
1. Febri Anggi Tri K 082011233004
2. Cyntia Aristhawati Rahman 082011233065

PROGRAM STUDI S-1 MATEMATIKA


DEPARTEMEN MATEMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS AIRLANGGA
2022
KATA PENGANTAR

Puji syukur kami panjatkan kehadirat Allah SWT atas segala karunia-Nya
sehingga makalah kami yang berjudul “Implementasi Pemrograman Berbasis
Objek Dalam Sistem Manajemen Hotel Dengan Menggunakan Program C++” ini
dapat disusun hingga selesai. Penulisan makalah ini bertujuan untuk memenuhi
tugas yang diberikan oleh Ibu Auli Damayanti, S.Si, M.Si dan Bapak
Muhammadun,S.Si., M.Si. selaku dosen mata kuliah Struktur Data dan Algoritma.
Tidak lupa kami ucapkan terima kasih atas bantuan dari pihak-pihak yang telah
berkontribusi baik berupa pemikiran maupun materi.
Penulis berharap semoga makalah ini dapat menambah pengetahuan dan
pengalaman bagi para pembaca. Bahkan, kami berharap makalah ini dapat
dipraktikkan oleh para pembaca dalam kehidupan sehari-hari.
Bagi kami sebagai penulis, kami merasa masih banyak kekurangan dalam
penyusunan makalah ini dikarenakan keterbatasan pengetahuan dan pengalaman
penulis. Untuk itu kami sangat mengharapkan kritik dan saran yang membangun
dari para pembaca demi kesempurnaan makalah ini.

Surabaya, 25 Juni 2022

Penyusun

i
DAFTAR ISI

KATA PENGANTAR ............................................................................................. i


DAFTAR ISI ........................................................................................................... ii
DAFTAR GAMBAR ............................................................................................. iii
BAB I PENDAHULUAN ....................................................................................... 1
1.1 Latar Belakang ............................................................................................. 1
1.2 Rumusan Masalah ........................................................................................ 2
1.3 Tujuan .......................................................................................................... 2
BAB II TINJAUAN PUSTAKA............................................................................. 3
2.1 Hotel ............................................................................................................. 3
2.2 Sistem Informasi .......................................................................................... 4
2.3 Sistem Manajemen Hotel ............................................................................. 4
2.4 Borland C++ ................................................................................................. 5
2.5 Pemrograman Berbasis Objek ...................................................................... 6
BAB III PEMBAHASAN ....................................................................................... 9
3.1 Implementasi Pemrograman Berbasis Objek Pada Sistem Manajemen Hotel
............................................................................................................................. 9
3.2 Analisis Algoritma Pemrograman Berbasis Objek Pada Sistem Manajemen
Hotel .................................................................................................................. 12
BAB IV PENUTUP .............................................................................................. 16
4.1 Kesimpulan ................................................................................................ 16
4.2 Saran ............................................................................................................ 16
DAFTAR PUSTAKA ........................................................................................... 17
LAMPIRAN .......................................................................................................... 18

ii
DAFTAR GAMBAR

Gambar 3.1.1 Tampilan menu utama ...................................................................... 9


Gambar 3.1.2 Tampilan pemesanan kamar belum dipesan................................... 10
Gambar 3.1.3 Tampilan pemesanan kamar telah dipesan ..................................... 10
Gambar 3.1.4 Tampilan status kamar ................................................................... 10
Gambar 3.1.5 Tampilan informasi kamar kosong ................................................. 10
Gambar 3.1.6 Tampilan informasi kamar telah dipesan ....................................... 10
Gambar 3.1.7 Tampilan informasi pelanggan ....................................................... 11
Gambar 3.1.8 Tampilan edit data .......................................................................... 11
Gambar 3.1.9 Tampilan check-out kamar ............................................................. 11
Gambar 3.1.10 Tampilan riwayat pemesanan ....................................................... 11

iii
BAB I
PENDAHULUAN

1.1 Latar Belakang


Perkembangan teknologi saat ini telah banyak mengalami kemajuan yang
cukup signifikan. Teknologi yang telah ada ditujukan untuk memperbaiki serta
mempermudah aktivitas keseharian manusia. Penggunaan teknologi juga dapat
mempermudah dalam menyusun sistem manajemen melalui sistem informasi,
salah satunya dalam menyusun sistem informasi hotel.
Sistem manajemen hotel sendiri bertujuan untuk membantu manajemen
hotel dalam berbagai kegiatan guna efisiensi dalam operasional sehari-hari
hotel seperti pemesanan kamar, melihat status kamar, melihat informasi kamar,
melihat informasi pelanggan, edit data, check-out kamar, dan melihat riwayat
pemesanan sehingga diharapkan dapat mempermudah staf hingga dapat
memberikan pelayanan secara optimal kepada para tamu.
Sejalan dengan kemajuan teknologi, akan dimanfaatkan teknologi
pemrograman untuk membangun sistem manajemen Hotel Panglima
khususnya dengan menggunakan bahasa C++ yang akan membahas tentang
pemesanan kamar, melihat status kamar, melihat informasi kamar, melihat
informasi pelanggan, edit data, check-out kamar, dan melihat riwayat
pemesanan, sehingga diharapkan dapat memudahkan petugas front desk hotel
dalam menangani informasi pemesanan kamar, melihat status kamar, melihat
informasi kamar, melihat informasi pelanggan, edit data, check-out kamar, dan
melihat riwayat pemesanan sehingga pelayanan kepada tamu menjadi lebih
maksimal, cepat dan akurat sehingga dapat menimbulkan image yang baik
mengenai hotel.

1
1.2 Rumusan Masalah
Berdasarkan latar belakang di atas, maka diperoleh rumusan masalah
sebagai berikut:
1. Bagaimana implementasi Pemrograman Berbasis Objek pada Sistem
Manajemen Hotel dengan menggunakan program c++?
2. Bagaimana analisis algoritma dari implementasi Pemrograman Berbasis
Objek pada Sistem Manajemen Hotel dengan menggunakan program c++?

1.3 Tujuan
Berdasarkan rumusan masalah di atas, maka tujuan dari penyusunan
makalah ini adalah sebagai berikut:
1. Mengetahui implementasi Class pada Sistem Manajemen Hotel dengan
menggunakan program c++?
2. Mengetahui analisis algoritma dari penerapan Class pada Sistem
Manajemen Hotel dengan menggunakan program c++?

2
BAB II
TINJAUAN PUSTAKA

2.1 Hotel
Hotel merupakan tempat yang digunakan sebagai tempat penginapan
dengan menyediakan jasa pelayanan secara profesional bagi para tamu seperti
penyediaan makanan, minuman dan fasilitas lainnya. Beberapa jenis-jenis
hotel antara lain :
1. City Hotel
Hotel yang berlokasi di perkotaan, biasanya diperuntukkan bagi
masyarakat yang bermaksud untuk tinggal dalam jangka waktu pendek.
Sering disebut transit hotel karena biasanya dihuni oleh pelaku bisnis yang
memanfaatkan fasilitas serta pelayanan bisnis yang disediakan oleh hotel
tersebut.
2. Residential Hotel
Hotel yang berlokasi di daerah pinggiran kota besar yang jauh dari
keramaian kota tetapi mudah mencapat tempat-tempat kegiatan usaha.
Berlokasi di daerah-daerah tenang terutama karena diperuntukkan bagi
masyarakat yang ingin tinggal dalam jangka waktu lama.
3. Resort Hotel
Hotel yang berlokasi di daerah pegunungan (mountain hotel) atau di
tepi pantai (beach hotel), di tepi danau atau di tepi aliran sungai. Hotel ini
diperuntukkan bagi pengunjung yang ingin beristirahat pada hari-hari libur
atau bagi mereka yang ingin berekreasi.
4. Motel (Motor Hotel)
Hotel yang berlokasi di pinggiran atau di sepanjang jalan raya yang
menghubungkan satu kota dengan kota besar lainnya atau di pinggiran jalan
raya dekat dengan pintu gerbang atau batas kota besar. Diperuntukkan
sebagai tempat istirahat sementara bagi pelaku perjalanan sehingga
menyediakan fasilitas garasi untuk kendaraan.

3
2.2 Sistem Informasi
Informasi adalah data yang telah diolah untuk dimanfaatkan dalam
mengambil keputusan saat ini atau mendatang. Dasar dari suatu informasi
adalah data, kesalahan dalam mengambil atau memasukkan data ataupun
kesalahan dalam mengelola data akan menyebabkan kesalahan dalam
memberikan informasi. Sehingga data yang didapatkan dan dimasukkan harus
valid (benar) hingga bentuk pengolahannya agar bisa menghasilkan informasi
yang dapat dipercaya.
Informasi diperoleh dari sistem informasi (information systems) atau
disebut juga processing systems atau information processing systems atau
information generating systems.
Sistem informasi adalah suatu sistem di dalam suatu organisasi yang
mempertemukan kebutuhan pengolahan transaksi harian dan mendukung
operasi. Data sebagai bahan baku informasi dapat berupa gambaran kejadian
yang berwujud karakter, angka atau simbol tertentu yang memiliki arti. Data
kemudian diolah melalui suatu model sehingga menjadi informasi, penerima
kemudian menerima informasi tersebut, membuat suatu keputusan dan
melakukan tindakan yang akan menghasilkan tindakan lain yang akan
membuat sejumlah data kembali Data yang ditangkap dianggap sebagai input,
diproses kembali melalui model, dan begitu seterusnya membentuk suatu
siklus.

2.3 Sistem Manajemen Hotel


Dalam Kamus Besar Bahasa Indonesia manajemen berarti penggunaan
sumber daya secara efektif untuk mencapai sasaran. Berdasarkan definisi
tersebut, manajemen hotel dapat diartikan sebagai proses penggunaan sumber
daya hotel secara efektif untuk mencapai sasaran yang telah ditetapkan.
Sistem manajemen hotel atau yang sering disebut Hotel Management
System (HMS) adalah sebuah program komputer (hotel software) yang
bertujuan membantu manajemen hotel dalam kegiatan hotel baik kegiatan
sehari-hari maupun laporan-laporan yang diperlukan hotel. Kegiatan tersebut

4
seperti menerima tamu (check in), mendata tagihan tamu (guest folio) ataupun
pembayaran tamu (guest payment). Dengan adanya sistem ini diharapkan para
tamu mendapatkan pelayanan yang lebih baik (good of service). Hasil lain yang
dicapai dengan pemakaian sistem manajemen adalah efisiensi dalam
operasional sehari-hari hotel.
Ruang lingkup sebuah sistem manajemen hotel sangatlah luas, tergantung
kelengkapan fitur yang disediakan oleh program tersebut. Kelengkapan itu
sendiri sangat tergantung pada tipe atau jenis hotel dan struktur organisasi
perhotelan. Beberapa pekerjaan yang dapat ditangani oleh suatu sistem
manajemen hotel antara lain:
(1) Pada divisi kamar (room division), terutama bagian kantor depan (front
office) dan bagian tata graha (housekeeping),
(2) Pada divisi accounting (accounting division) untuk semua bagian
accounting,
(3) Pada divisi restoran dan bar (bar and restaurant division),
(4) Pada divisi marketing (marketing division),
(5) Pada divisi teknisi dan peralatan (engineering division).

2.4 Borland C++


Borland C++ adalah sebuah perangkat lunak (bahasa pemrograman) untuk
menyusun aplikasi yang berdasarkan pada bahasa pemrograman C dan bekerja
dilingkungan sistem operasi Windows. Borland C++ merupakan salah satu
pengembangan dari bahasa C yang ditulis oleh Brian W. Kernighan dan Denies
M. Ritchie. Kemudian disempurnakan oleh Brajne Stroustrup menjadi C with
Classes, dan berganti nama menjadi C++ yang disempurnakan oleh Rick
Mascitti. Penyempurnaan atau pengembangan bahasa C menjadi C++ adalah
penambahan Object Oriented Programming (OOP) yang bertujuan membantu
membuat dan mengelola program yang besar dan kompleks

5
2.5 Pemrograman Berbasis Objek
Pemrograman Berbasis Objek (PBO) atau juga dikenal dengan Object
Oriented Programming (OOP) adalah sebuah tata cara pembuatan program
(programming paradigm) dengan menggunakan konsep “objek” yang
memiliki data dan code. Data ini tersedia dalam bentuk field (lebih populer
disebut sebagai atribut atau properti) dan code dalam bentuk prosedur (yang
dikenal dengan istilah method). Secara sederhana, pemrograman ini
memiliki konsep program dengan memecah permasalahan menjadi objek-
objek yang terpisah kemudian saling berinteraksi satu sama lainnya untuk
menyelesaikan sebuah tugas.
Dalam Pemrograman Berbasis Objek beberapa unsur yang perlu dipahami
antara lain:
1. Objek
Objek bisa diartikan sebagai segala sesuatu yang dapat dibedakan satu
dengan lainnya. Di dalam OOP objek digunakan untuk membungkus data
dan fungsi bersama dalam satu unit. Ciri utama dari sebuah objek adalah
objek memiliki atribut/state (status) dan method/behavior (tingkah laku).
2. Class
Class adalah template/dasar dari objek. Class adalah prototipe atau blue
print yang mendefinisikan variabel-variabel dan method-method secara
umum. Sebuah Objek tercipta dari turunan atau disebut sebagai proses
instance/ instantiationdari suatu kelas. Proses pembentukan Objek dari
suatu class disebut sebagai instance.
3. Property (atribut)
Property atau atribut adalah definisi data yang membedakan antara
objek satu dengan objek lainnya. Di dalam Class atribut disebut sebagai
variabel.
4. Method (behavior)
Method/behavior adalah tingkah laku atau hal-hal yang bisa dilakukan
oleh objek dari suatu class. Behavior dapat merubah nilai atribut dari suatu

6
objek, menerima informasi dari objek lain atau mengirim informasi ke
objek lain untuk melakukan suatu tugas.
Dalam class, behavior disebut juga method. Method sendiri adalah
serangkaian pernyataan dalam suatu class yang menghandle suatu task
tertentu. Cara objek berkomunikasi dengan objek lain dengan
menggunakan method.

Beberapa konsep dasar dari Pemrograman Berbasis Objek antara lain:


1. Encapsulation (Enkapsulasi)
Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail
(property) dari suatu class, agar property tersebut tidak dapat digunakan
secara sembarangan oleh Class lain. Teknik enkapsulasi ini berkaitan
dengan hak akses suatu variabel, misalnya seperti penggunaan hak
akses private, protected dan sebagainya.
2. Inheritance (Pewarisan)
Inheritance adalah pewarisan atau menurunkan atribut dan method dari
suatu class ke class lainnya yang menyebabkan class yang mewariskan
tersebut dapat mengakses atau memiliki seluruh property maupun method
yang ada di dalam class yang diwariskan tersebut (class induknya). Class
yang mewarisi disebut superclass, base class atau parent class dan class
yang diwarisi disebut subclass atau child class.
3. Polymorphisme (Perubahan Bentuk)
Polimorfisme adalah kemampuan suatu objek untuk memiliki lebih dari
satu bentuk. Bisa juga berarti banyak class (kelas) yang berasal dari satu
induk. Polimorfis mengijinkan kelas induk untuk mendefinisikan sebuah
method general (bersifat umum) untuk semua class turunannya. Polimorfis
dapat berupa overloading atau overriding. Overloading adalah suatu
keadaan dimana beberapa method memiliki nama yang sama tetapi
memiliki fungsionalitas yang berbeda. Ciri-ciri overloading yaitu nama
method harus sama, sedangkan parameter harus berbeda. Overloading
inilah yang memungkinkan polimorfisme pada kelas super dan

7
subkelasnya. Dimana dua atau lebih Objek/class dikatakan polimorfis jika
memiliki antarmuka yang identik tetapi memiliki perilaku yang berbeda.
4. Abstraction (Abstrak)
Abstraction adalah keadaan dimana class-class memiliki informasi
abstrak dan metode-metode dari suatu kumpulan data. Sifat ini tidak bisa
diubah dan berlaku juga sebagai kerangka dalam penciptaan berbagai
subclass.
Suatu class akan memiliki informasi dan metode yang dapat diturunkan
ke subclass-nya. Kemudian, seluruh subclass tersebut akan mengikuti apa
saja metode turunan dari abstract class tersebut.

8
BAB III
PEMBAHASAN

3.1 Implementasi Pemrograman Berbasis Objek Pada Sistem Manajemen


Hotel
Pada implementasi Pemrograman Berbasis Objek pada sistem manajeman
hotel kali ini akan dilakukan di ruang lingkup divisi kamar (room division)
tepatnya pada bagian kantor depan (front office) dimana akan dilengkapi
dengan beberapa menu antara lain:
- Menu pemesanan kamar / check-in
- Menu status kamar
- Menu informasi kamar
- Menu informasi pelanggan
- Menu edit data
- Menu meninggalkan kamar / check-out
- Menu riwayat pemesanan

Setelah sricpt program (terlampir) dilakukan running, akan muncul menu


utama dari program, yaitu:

Gambar 3.1.1 Tampilan menu utama

Beberapa contoh tampilan inputan pada program:

9
1) Menu pemesanan kamar
 Tampilan apabila kamar belum dipesan

Gambar 3.1.2 Tampilan pemesanan kamar belum dipesan

 Tampilan apabila kamar telah dipesan

Gambar 3.1.3 Tampilan pemesanan kamar telah dipesan

2) Melihat status kamar

Gambar 3.1.4 Tampilan status kamar

3) Melihat informasi kamar


 Tampilan jika kamar kosong

Gambar 3.1.5 Tampilan informasi kamar kosong

 Tampilan jika kamar telah dipesan

Gambar 3.1.6 Tampilan informasi kamar telah dipesan

10
4) Melihat informasi pelanggan

Gambar 3.1.7 Tampilan informasi pelanggan

5) Edit data

Gambar 3.1.8 Tampilan edit data

6) Check-out kamar

Gambar 3.1.9 Tampilan check-out kamar

7) Melihat riwayat pemesanan

Gambar 3.1.10 Tampilan riwayat pemesanan

11
3.2 Analisis Algoritma Pemrograman Berbasis Objek Pada Sistem
Manajemen Hotel
o Menu pemeriksaan ketersediaan kamar (check)
for(int i=1;i<=n;i++) n kali
{
rd.read((char*)&obj,sizeof(obj)); n kali
if(r==obj.room_no) n kali
{
flag=0; n kali
break;
}
}

Pada menu check didapati nilai 4𝑛. Dengan demikian kompleksitas


waktunya adalah 𝑂(𝑛).

o Menu pemesanan kamar (alootroom)


cout<<"\nMasukkan nomor kamar : "; 1 kali
cin>>r;
c=check(r); 1 kali
if(c==0) 1 kali
{
cout<<"\nKamar sudah dipesan";
}
else
{
obj.room_no=r; 1 kali
obj.accept();
fstream wr;
wr.open("record10.txt",ios::app); 1 kali
wr.write((char*)&obj,sizeof(obj)); 1 kali
}

Pada menu pemesanan kamar didapati nilai 6. Dengan demikian


kompleksitas waktunya ialah 6.

12
o Menu status kamar (rstatus)
for(int i=1;i<=n;i++) n kali
{
rd.read((char*)&obj,sizeof(obj)); n kali
cout<<"\nNomor Kamar : "<<obj.room_no; cout<<endl; 1 kali
cout<<"\nNama : "<<obj.name; cout<<endl; 1 kali
cout<<"\nNomor Telepon : "<<obj.mob; cout<<endl; 1 kali
cout<<"\n----------------------------";cout<<endl;
}

Pada menu status kamar didapati nilai 2𝑛 + 3. Dengan demikian


kompleksitas waktunya ialah 𝑂(𝑛).

o Menu edit data (edit)


for(int i=1;i<=n;i++) n kali
{
rd.read((char*)&obj,sizeof(obj)); n kali
if (obj.room_no==rno) n kali
{
cout<<"\nMasukkan Nomor Kamar Baru : "; 1 kali
cin>>rno;
obj.room_no=rno; 1 kali
obj.accept();
wr.write((char*)&obj,sizeof(obj)); 1 kali
}
else
{
wr.write((char*)&obj,sizeof(obj)); 1 kali
}
}

Pada menu edit didapati nilai 3𝑛 + 4. Dengan demikian kompleksitas


waktunya ialah 𝑂(𝑛).

13
o Menu informasi kamar (roominfo)
for (int i=1;i<=n;i++) n kali
{
rd.read((char*)&obj,sizeof(obj)); n kali
if (r==obj.room_no) n kali
{
rstatus();
}
else
{
cout<<"\nKamar Tersebut Kosong";
}
}

Pada menu informasi kamar didapati nilai 3𝑛. Dengan demikian


kompleksitas waktunya ialah 𝑂(𝑛).

o Menu informasi pelanggan (customerinfo)


for (int i=1;i<=n;i++) n kali
{
rd.read((char*)&obj,sizeof(obj)); n kali
if (stricmp(obj.name,na)== 0) n kali
{
rstatus();
}
else
{
cout<<"\nDetail Pelanggan Tidak Ditemukan";
}
}

Pada menu informasi pelanggan didapati nilai 3𝑛. Dengan demikian


kompleksitas waktunya ialah 𝑂(𝑛).

14
o Menu check-out kamar (leaveroom)
for(int i=1;i<=n;i++) n kali
{
rd.read((char*)&obj,sizeof(obj)); 1 kali
if (obj.room_no==rno) n kali
{
cin.ignore();
cout<<"\nTanggal Check-Out : ";
cin.getline(obj.date1,15);
nwr.write((char*)&obj,sizeof(obj)); 1 kali
}
else
{
wr.write((char*)&obj,sizeof(obj)); 1 kali
}
}

Pada menu check-out kamar didapati nilai 2𝑛 + 3. Dengan demikian


kompleksitas waktunya ialah 𝑂(𝑛).

o Menu riwayat pemesanan (oldreco)


for(int i=1;i<=n;i++) n kali
{
rd.read((char*)&obj,sizeof(obj)); n kali
obj.display();
cout<<"\nTanggal Check-Out : "<<obj.date1;
cout<<endl<<endl;
}

Pada menu riwayat pemesanan didapati nilai 2𝑛. Dengan demikian


kompleksitas waktunya ialah 𝑂(𝑛).

Maka diperoleh analisis algoritma dari program yakni


𝐶(𝑛) = 𝑂(𝑛) + 6 + 𝑂(𝑛) + 𝑂(𝑛) + 𝑂(𝑛) + 𝑂(𝑛) + 𝑂(𝑛) + 𝑂(𝑛)𝑂(𝑛).

15
BAB IV
PENUTUP

4.1 Kesimpulan
Pemrograman berbasis objek menggunakan program c++ dapat digunakan
untuk membangun sistem manajemen hotel. Dimana pada kesempatan ini
digunakan untuk membantu tugas bagi front office dengan beberapa fitur
diantaranya dapat menangani informasi pemesanan kamar, melihat status
kamar, melihat informasi kamar, melihat informasi pelanggan, edit data, check-
out kamar dan melihat riwayat pemesanan.
Berdasarkan analisis algoritma didapatkan 𝐶(𝑛) = 𝑂(𝑛) + 6 + 𝑂(𝑛) +
𝑂(𝑛) + 𝑂(𝑛) + 𝑂(𝑛) + 𝑂(𝑛) + 𝑂(𝑛)𝑂(𝑛).

4.2 Saran
Kedepannya agar dapat ditingkatkan ruang lingkup dari sistem manajemen
hotel yang dibuat sehingga dapat melayani semua divisi yang ada dalam
lingkungan hotel untuk meningkatkan pelayanan yang lebih baik terhadap para
pelanggan.

16
DAFTAR PUSTAKA

Komar, Richard. 2006. Hotel Management (Manajemen Hotel). Penerbit :


Grasindo, Jakarta.
Manajemen. 2016. Pada KBBI Daring. Diakses 14 Juni 2022 dari
https://kbbi.kemdikbud.go.id/entri/Manajemen
Supriyanto, Aji. 2005. Pengantar Sistem Informasi. Yogyakarta : Andi.
Zeda. 2011. Sistem Informasi Manajemen Perhotelan. Diakses pada 14 Juni 2022
dari https://iamzeda.wordpress.com/2011/03/17/sistem-informasi-
manajemen-perhotelan/

17
LAMPIRAN

Lampiran 1 : Script program

#include <iostream>
#include <fstream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>

class hotel
{
public:
int room_no;
char date[15];
char date1[15];
char name[30];
char mob[15];
char adress[50];

void accept()
{
cin.ignore();
cout<<"Tanggal check-in : ";
cin.getline(date,15);
cout<<"Nama lengkap : ";
cin.getline(name,30);
cout<<"Nomor Telepon : ";
cin>>mob;
cin.ignore();
cout<<"Alamat : ";
cin.getline(adress,50);
}
void display()
{
cout<<"Nomor Kamar : "<<room_no;
cout<<"Nama : "<<name;
cout<<"Nomor Telepon : "<<mob;
cout<<"Alamat : "<<adress;
cout<<"----------------------------";
}
};

hotel obj;

18
int check(int r)
{
int flag=1;
fstream rd;
rd.open("rekam.txt",ios::in);
rd.seekg(0,ios::end);
int n=rd.tellg();
n=n/sizeof(obj);
rd.seekg(0,ios::beg);
for(int i=1;i<=n;i++)
{
rd.read((char*)&obj,sizeof(obj));
if(r==obj.room_no)
{
flag=0;
break;
}
}
return flag;
}
void alotroom()
{
int r,c;
cout<<"Masukkan nomor kamar : ";
cin>>r;
c=check(r);
if(c==0)
{
cout<<"Kamar sudah dipesan";
}
else
{
obj.room_no=r;
obj.accept();
fstream wr;
wr.open("rekam.txt",ios::app);
wr.write((char*)&obj,sizeof(obj));
}
}

void rstatus()
{
fstream rd;
rd.open("rekam.txt",ios::in);
rd.seekg(0,ios::end);
int n=rd.tellg();

19
n=n/sizeof(obj);
rd.seekg(0,ios::beg);
for(int i=1;i<=n;i++)
{
rd.read((char*)&obj,sizeof(obj));
cout<<"Nomor Kamar : "<<obj.room_no<<endl;;
cout<<"Nama : "<<obj.name<<endl;
cout<<"Nomor Telepon : "<<obj.mob<<endl;
cout<<"----------------------------";
}
}
void edit()
{
int rno;
cout<<"Masukkan Nomor Kamar : ";
cin>>rno;
fstream wr,rd;
rd.open("rekam.txt",ios::in);
wr.open("text.txt",ios::out);
rd.seekg(0,ios::end);
int n=rd.tellg();
n=n/sizeof(obj);
rd.seekg(0,ios::beg);
for(int i=1;i<=n;i++)
{
rd.read((char*)&obj,sizeof(obj));
if (obj.room_no==rno)
{
cout<<"Masukkan Nomor Kamar Baru : ";
cin>>rno;
obj.room_no=rno;
obj.accept();
wr.write((char*)&obj,sizeof(obj));
}
else
{
wr.write((char*)&obj,sizeof(obj));
}
}
rd.close();
wr.close();
remove("reka,.txt");
rename("text.txt","rekam.txt");
}
void roominfo()
{

20
int r;
cout<<"Masukkan Nomor Kamar : ";
cin>>r;
fstream rd;
rd.open("rekam.txt",ios::in);
rd.seekg(0,ios::end);
int n=rd.tellg();
n=n/sizeof(obj);
rd.seekg(0,ios::beg);
for (int i=1;i<=n;i++)
{
rd.read((char*)&obj,sizeof(obj));
if (r==obj.room_no)
{
rstatus();
}
else
{
cout<<"Kamar Tersebut Kosong";
}
}
}
void customerinfo()
{
char na[30];
cin.ignore();
cout<<"Masukkan Nama : ";
cin.getline(na,30);
fstream rd;
rd.open("rekam.txt",ios::in);
rd.seekg(0,ios::end);
int n=rd.tellg();
n=n/sizeof(obj);
rd.seekg(0,ios::beg);
for (int i=1;i<=n;i++)
{
rd.read((char*)&obj,sizeof(obj));
if (stricmp(obj.name,na)==0)
{
rstatus();
}
else
{
cout<<"Detail Pelanggan Tidak Ditemukan";
}
}

21
}
void leaveroom()
{
int rno;
cout<<"Nomor Kamar : ";
cin>>rno;
fstream rd,wr,nwr;
rd.open("rekam.txt",ios::in);
wr.open("text.txt",ios::app);
nwr.open("back.txt",ios::app);
rd.seekg(0,ios::end);
int n=rd.tellg();
n=n/sizeof(obj);
rd.seekg(0,ios::beg);
for(int i=1;i<=n;i++)
{
rd.read((char*)&obj,sizeof(obj));
if (obj.room_no==rno)
{

cin.ignore();
cout<<"Tanggal Check-Out : ";
cin.getline(obj.date1,15);
nwr.write((char*)&obj,sizeof(obj));
}
else
{
wr.write((char*)&obj,sizeof(obj));
}
}
rd.close();
wr.close();
remove("rekam.txt");
rename("text.txt","back.txt");
}
void oldreco()
{
fstream rd;
rd.open("back.txt",ios::in);
rd.seekg(0,ios::end);
int n=rd.tellg();
n=n/sizeof(obj);
rd.seekg(0,ios::beg);
for(int i=1;i<=n;i++)
{
rd.read((char*)&obj,sizeof(obj));

22
obj.display();
cout<<"Tanggal Check-Out : "<<obj.date1;
}
}
main()
{
int e=1,x;
while(e!=0)
{
cout<<endl<<endl;
cout<<"SELAMAT DATANG DI HOTEL PANGLIMA";cout<<endl;
cout<<"________________________________";cout<<endl<<endl;
cout<<"1. Pesan Kamar";cout<<endl;
cout<<"2. Melihat Status Kamar";cout<<endl;
cout<<"3. Melihat Informasi Kamar";cout<<endl;
cout<<"4. Melihat Informasi Pelanggan";cout<<endl;
cout<<"5. Edit data";cout<<endl;
cout<<"6. Check-Out Kamar";cout<<endl;
cout<<"7. Melihat Riwayat Pemesanan";cout<<endl;
cout<<"0. Keluar";cout<<endl<<endl;
cout<<"________________________________";cout<<endl<<endl;
cout<<"Masukkan Pilihan Anda : ";
cin>>x;
switch(x)
{
case 1:
{
alotroom();
break;
}
case 2:
{
rstatus();
break;
}
case 3:
{
roominfo();
break;
}
case 4:
{
customerinfo();
break;
}
case 5:

23
{
edit();
break;
}
case 6:
{
leaveroom();
break;
}

case 7:
{
oldreco();
break;
}
case 0:
{
e=0;
break;
}
}
}
cout<<"SELAMAT TINGGAL !!!";
}

24

Anda mungkin juga menyukai