Quick actions

cmd+k|ctrl+k

Navigation

Languages

Tugas 12.1

Snippet info

Language

Cpp

Visibility

public

Author

asiyahtflh

Created

2025-01-09T08:55:07.599483Z

Updated

2025-01-09T09:04:10.453427Z

#include <iostream>
#include <string>
#include <cctype>
#include <iomanip>

using namespace std;

struct Kamar {
    char kode;
    string tipe;
    double harga;
};

void Garis() {
    cout << "--------------------------------------------" << endl;
}

void Judul() {
    Garis();
    cout << "PENGINAPAN PASTI BETAH" << endl;
    Garis();
    cout << "List Function" << endl;
    Garis();
    cout << "1. Function Garis()" << endl;
    cout << "2. Function Judul()" << endl;
    cout << "3. Function Ketentuan" << endl;
    cout << "4. Function TTB()" << 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();
    cout << "Harus bisa handle huruf besar dan kecil." << endl;
    cout << "Harus menggunakan Struct." << endl;
    Garis();
}

void Ketentuan() {
    cout << "Jika lama menginap lebih dari 6 hari maka mendapatkan souvenir Payung Cantik" << endl;
    cout << "Biaya admin 200.000" << endl;
    cout << "Total Bayar adalah (Harga dikali Lama Menginap) + Biaya Admin" << endl;
    Garis();
}

void TTD() {
    Garis();
    cout << "Nama : Asiyah Thufailah" << endl;
    cout << "Email: [email protected]" << endl;
    Garis();
}

double Cek_Harga(char kode, const Kamar kamar[], int n) {
    kode = tolower(kode);
    for (int i = 0; i < n; i++) {
        if (tolower(kamar[i].kode) == kode) {
            return kamar[i].harga;
        }
    }
    return 0;
}

string Cek_Tipe(char kode, const Kamar kamar[], int n) {
    kode = tolower(kode);
    for (int i = 0; i < n; i++) {
        if (tolower(kamar[i].kode) == kode) {
            return kamar[i].tipe;
        }
    }
    return "Tidak Diketahui";
}

string Cek_Souvenir(int lamaMenginap) {
    return (lamaMenginap > 6) ? "Payung Cantik" : "Tidak Ada";
}

int main() {
    Kamar kamar[] = {
        {'A', "Anggrek", 800000},
        {'B', "Bougenville", 700000},
        {'C', "Mawar", 600000}
    };

    const int n = sizeof(kamar) / sizeof(kamar[0]);
    string nama;
    char kodeKamar;
    int lamaMenginap;

    Judul();
    Ketentuan();

    // Input
    cout << "Nama Penyewa \t   : <input>" << endl;
    getline(cin, nama);
    cout << "Kode Kamar [A/B/M] : <input>" << endl;
    cin >> kodeKamar;
    cout << "Lama Menginap\t   : <input>" << endl;
    cin >> lamaMenginap;
    Garis();
    puts ("| Kode | Tipe        | Harga   |");
    Garis();
    puts ("| A    | Anggrek     | 800.000 |");
    puts ("| B    | Bougenville | 700.000 |");
    puts ("| C    | Mawar       | 600.000 |");
    Garis();

    // Proses
    double hargaSewa = Cek_Harga(kodeKamar, kamar, n);
    string tipeKamar = Cek_Tipe(kodeKamar, kamar, n);
    string souvenir = Cek_Souvenir(lamaMenginap);
    double administrasi = 200000;
    double totalBiaya = (hargaSewa * lamaMenginap) + administrasi;

    // Output
    cout << "Nama Penyewa   : " << nama << endl;
    cout << "Kode Kamar     : " << char(toupper(kodeKamar)) << endl;
    cout << "Lama Menginap  : " << lamaMenginap << " hari" << endl;
    cout << "Harga Sewa     : Rp." << fixed << setprecision(2) << hargaSewa << endl;
    cout << "Tipe Kamar     : " << tipeKamar << endl;
    cout << "Souvenir       : " << souvenir << endl;
    cout << "Administrasi   : Rp." << administrasi << endl;
    cout << "Total Biaya    : Rp." << totalBiaya << endl;
    TTD();

    return 0;
}
INFO