#include <iostream>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
using namespace std;
// ================= STRUCT =================
struct Penyewa {
char nama[50];
char kode;
int lama;
};
// ================ DEKLARASI FUNGSI =================
void garis();
void judul();
void ketentuan();
void infoTarif();
void ttd();
char cekTipe(char kode);
int cekHarga(char kode);
string cekSouvenir(int lama);
// ================= PROGRAM UTAMA =================
int main() {
Penyewa p;
int harga, admin = 200000;
float total;
string souvenir;
judul();
ketentuan();
infoTarif();
// ===== INPUT KE SAMPING =====
cin >> p.nama >> p.kode >> p.lama;
p.kode = cekTipe(p.kode);
harga = cekHarga(p.kode);
souvenir = cekSouvenir(p.lama);
total = (harga * p.lama) + admin;
garis();
cout << "Nama Penyewa\t : " << p.nama << endl;
cout << "Kode Kamar[A/B/M]: " << p.kode << endl;
cout << "Lama Menginap\t : " << p.lama << " hari" << endl;
printf("Harga Sewa\t : Rp.%d.00\n", harga);
cout << "Tipe Kamar\t : ";
switch (p.kode) {
case 'A': cout << "Aman Sentosa"; break;
case 'B': cout << "Citra Mandiri"; break;
case 'M': cout << "Griya Asri"; break;
}
cout << endl;
cout << "Souvenir\t : " << souvenir << endl;
printf("Administrasi\t : Rp.%d.00\n", admin);
printf("Total Biaya\t : Rp.%.2f\n", total);
ttd();
return 0;
}
// ================= IMPLEMENTASI FUNGSI =================
void garis() {
puts("----------------------------------------");
}
void judul() {
puts("----------------------------------------");
puts("PENGINAPAN PASTI BETAH");
puts("----------------------------------------");
}
void ketentuan() {
puts("List Function");
puts("----------------------------------------");
puts("1. Function Garis()");
puts("2. Function Judul()");
puts("3. Function Ketentuan()");
puts("4. Function TTD()");
puts("5. Function infoTarif()");
puts("6. Function cekTipe()");
puts("7. Function cekHarga()");
puts("8. Function cekSouvenir()");
puts("----------------------------------------");
puts("Harus bisa handle huruf besar dan kecil.");
puts("Harus menggunakan Struct.");
puts("----------------------------------------");
puts("Jika lama menginap lebih dari 6 hari maka mendapatkan souvenir Payung Cantik");
puts("Biaya admin 200.000");
puts("Total bayar adalah (Harga dikali Lama Menginap) + Biaya Admin");
puts("----------------------------------------");
}
void infoTarif() {
puts("| Kode | Tipe | Harga |");
puts("----------------------------------------");
puts("| A | Aman Sentosa | 800000 |");
puts("| B | Citra Mandiri | 700000 |");
puts("| M | Griya Asri | 600000 |");
}
char cekTipe(char kode) {
return toupper(kode);
}
int cekHarga(char kode) {
switch (kode) {
case 'A': return 800000;
case 'B': return 700000;
case 'M': return 600000;
default : return 0;
}
}
string cekSouvenir(int lama) {
if (lama > 6)
return "Payung Cantik";
else
return "-";
}
void ttd() {
puts("----------------------------------------");
puts("Nama : Rendy Wicaksono");
puts("Email : rendywicaksono@gmail.com");
}