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
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.
Penyusun
i
DAFTAR ISI
ii
DAFTAR GAMBAR
iii
BAB I
PENDAHULUAN
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.
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).
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.
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
9
1) Menu pemesanan kamar
Tampilan apabila kamar belum dipesan
10
4) Melihat informasi pelanggan
5) Edit data
6) Check-out kamar
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;
}
}
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;
}
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";
}
}
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
}
}
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
17
LAMPIRAN
#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