#include <iostream>
#include <string>
#include <iomanip> // Untuk fixed dan setprecision
using namespace std;
// Struct untuk data penyewa
struct Penyewa {
string nama;
char kodeKamar;
int lamaMenginap;
string tipeKamar;
int harga;
string souvenir;
int totalBiaya;
int administrasi = 200000; // Biaya administrasi tetap
};
// Fungsi membuat garis
void garis(int a) {
for (int i = 1; i <= a; i++) {
cout << "-";
}
cout << endl;
}
// Fungsi menampilkan judul
void judul() {
garis(33);
cout << "PENGINAPAN PASTI BETAH" << endl;
}
// Fungsi menampilkan ketentuan
void ketentuan() {
garis(33);
cout << "List Function" << endl;
garis(33);
cout << "1. Function Garis()" << endl;
cout << "2. Function Judul()" << endl;
cout << "3. Function Ketentuan()" << endl;
cout << "4. Function TTD()" << endl;
cout << "5. Function Tarif()" << endl;
cout << "6. Function Cek_Tipe()" << endl;
cout << "7. Function Cek_Harga()" << endl;
cout << "8. Function Cek_Souvenir()" << endl;
garis(33);
cout << "Jika lama menginap lebih dari 6 hari maka mendapat souvenir Payung Cantik." << endl;
cout << "Biaya Admin: Rp. 200.000" << endl;
cout << "Total Biaya adalah (Harga dikali lama menginap) + Biaya Admin" << endl;
garis(33);
}
// Fungsi ttd
void ttd() {
cout << "Nama : Muhammad Hikmal Faturrahman" << endl;
cout << "Email : imayyynew@gmail.com" << endl;
}
// Fungsi menampilkan daftar tarif
void infoTarif() {
garis(33);
cout << "| Kode | Tipe | Harga |" << endl;
garis(33);
cout << "| A | Anggrek | 800.000 |" << endl;
cout << "| B | Bougenville | 700.000 |" << endl;
cout << "| C | Mawar | 600.000 |" << endl;
garis(33);
}
// Fungsi mengecek tipe kamar
void cek_tipe(char kodeKamar, string &tipe, int &harga) {
if (kodeKamar == 'A' || kodeKamar == 'a') {
tipe = "Anggrek";
harga = 800000;
} else if (kodeKamar == 'B' || kodeKamar == 'b') {
tipe = "Bougenville";
harga = 700000;
} else if (kodeKamar == 'C' || kodeKamar == 'c') {
tipe = "Mawar";
harga = 600000;
} else {
tipe = "Tidak Dikenal";
harga = 0;
}
}
// Fungsi mengecek souvenir
void cek_souvenir(int lamaMenginap, string &souvenir) {
if (lamaMenginap > 6) {
souvenir = "Payung Cantik";
} else {
souvenir = "Tidak Ada";
}
}
// Fungsi untuk menampilkan rincian harga
void cek_harga(const Penyewa &penyewa) {
cout << fixed << setprecision(2);
cout << "Nama Penyewa : " << penyewa.nama << endl;
cout << "Kode Kamar : " << penyewa.kodeKamar << endl;
cout << "Lama Menginap : " << penyewa.lamaMenginap << " hari" << endl;
cout << "Harga Sewa : Rp. " << penyewa.harga << endl;
cout << "Tipe Kamar : " << penyewa.tipeKamar << endl;
cout << "Souvenir : " << penyewa.souvenir << endl;
cout << "Administrasi : Rp. " << penyewa.administrasi << endl;
cout << "Total Biaya : Rp. " << penyewa.totalBiaya << endl;
garis(33);
}
// Fungsi utama
int main() {
Penyewa penyewa;
// Menampilkan judul dan ketentuan
judul();
ketentuan();
// Input data penyewa
cout << "Nama Penyewa : <input>\n";
cin >> penyewa.nama;
cout << "Kode Kamar [A/B/C]: <input>\n";
cin >> penyewa.kodeKamar;
cout << "Lama Menginap : <input>\n";
cin >> penyewa.lamaMenginap;
// Menentukan tipe kamar dan harga
cek_tipe(penyewa.kodeKamar, penyewa.tipeKamar, penyewa.harga);
// Menentukan souvenir
cek_souvenir(penyewa.lamaMenginap, penyewa.souvenir);
// Menghitung total biaya
penyewa.totalBiaya = (penyewa.harga * penyewa.lamaMenginap) + penyewa.administrasi;
// Menampilkan daftar tarif
infoTarif();
// Menampilkan rincian harga
cek_harga(penyewa);
// Menampilkan ttd
ttd();
return 0;
}