#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
// ========= DEKLARASI FUNGSI =========
void Garis();
void Judul();
void Keterangan();
void TTD();
void InfoTarif();
void Cek_Tipe();
void Cek_Harga();
void Cek_Souvenir();
// ========= STRUCT =========
struct DataPenginapan {
string nama;
string tipe;
string souvenir;
char kode;
int lama_menginap;
double harga_sewa;
double administrasi;
double total_biaya;
};
// ========= VARIABEL GLOBAL =========
DataPenginapan data; // Menggunakan struct untuk menyimpan semua data
// ========= FUNGSI UTAMA =========
int main() {
// Menampilkan header program
Garis();
Judul();
Garis();
// Menampilkan daftar fungsi yang ada dalam program
cout << "List Function" << endl;
Garis();
cout << "1. Function Garis()" << endl;
cout << "2. Function Judul()" << endl;
cout << "3. Function Keterangan()" << endl;
cout << "4. Function TTD()" << endl;
cout << "5. Function InfoTarif()" << endl;
cout << "6. Function Cek_Tipe()" << endl;
cout << "7. Function Cek_Harga()" << endl;
cout << "8. Function Cek_Souvenir()" << endl;
Garis();
// Menampilkan informasi aturan program
cout << "Harus bisa handle huruf besar dan kecil." << endl;
cout << "Harus menggunakan Struct." << endl;
Garis();
// Menampilkan ketentuan souvenir dan biaya admin
cout << "Jika lama menginap lebih dari 6 hari maka mendapatkan souvenir Payung" << endl;
cout << "Biaya admin 200.000" << endl;
cout << "Total Bayar adalah (Harga dikali Lama Menginap) + Biaya Admin" << endl;
Garis();
// Memanggil fungsi-fungsi sesuai urutan proses
Keterangan();
InfoTarif();
Cek_Tipe();
Cek_Harga();
Cek_Souvenir();
TTD();
return 0;
}
// ========= IMPLEMENTASI FUNGSI =========
void Garis() {
cout << "------------------------------------------" << endl;
}
void Judul() {
cout << "PENGINAPAN DUSUN NGAWI" << endl;
}
void Keterangan() {
cout << "Nama Penyewa : <input> ";
cin >> data.nama;
cout << "\nKode Kamar [A/B/C] : <input> ";
cin >> data.kode;
cout << "\nLama Menginap : <input> \n";
cin >> data.lama_menginap;
}
void InfoTarif() {
Garis();
cout << "| Kode | Tipe | Harga |" << endl;
Garis();
cout << "| A | Topaz | 800.000 |" << endl;
cout << "| B | Jade | 700.000 |" << endl;
cout << "| C | Amethyst | 600.000 |" << endl;
Garis();
}
void Cek_Tipe() {
if (data.kode == 'A' || data.kode == 'a') {
data.tipe = "Topaz";
data.harga_sewa = 800000;
} else if (data.kode == 'B' || data.kode == 'b') {
data.tipe = "Jade";
data.harga_sewa = 700000;
} else if (data.kode == 'C' || data.kode == 'c') {
data.tipe = "Amethyst";
data.harga_sewa = 600000;
}
}
void Cek_Harga() {
data.administrasi = 200000;
data.total_biaya = (data.harga_sewa * data.lama_menginap) + data.administrasi;
}
void Cek_Souvenir() {
if (data.lama_menginap > 6) {
data.souvenir = "Tumbler";
} else {
data.souvenir = "-";
}
cout << "Nama Penyewa : " << data.nama << endl;
cout << "Kode Kamar [A/B/C] : " << data.kode << endl;
cout << "Lama Menginap : " << data.lama_menginap << " hari" << endl;
cout << "Harga Sewa : Rp. " << fixed << setprecision(2) << data.harga_sewa << endl;
cout << "Tipe Kamar : " << data.tipe << endl;
cout << "Souvenir : " << data.souvenir << endl;
cout << "Administrasi : Rp. " << fixed << setprecision(2) << data.administrasi << endl;
cout << "Total Biaya : Rp. " << fixed << setprecision(2) << data.total_biaya << endl;
Garis();
}
void TTD() {
cout << "Nama : M Fadhlan Robbi" << endl;
cout << "Email : DlanByy@gmail.com" << endl;
}