Quick actions

cmd+k|ctrl+k

Navigation

Languages

Tugas 12.1

Snippet info

Language

Cpp

Visibility

public

Author

rosdianafitriyani

Created

2024-12-28T01:29:39.033415Z

Updated

2024-12-28T02:31:24.958019Z

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

using namespace std;

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

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

//Fungsi TTD
void TTD() {
    cout<<"Nama  : Rosdiana Fitriyani"<<endl;
    cout<<"Email : [email protected]"<<endl;
    cout<<"NIM   : 1620230020"<<endl;
}

//Fungsi Judul
void Judul() {
    Garis();
    cout << "                PENGINAPAN PASTI BETAH           " << endl;
    Garis();
}

//Fungsi Ketentuan
void Ketentuan() {
    cout<<"List Function"<<endl;
    Garis();
    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();
    cout<<"Harus bisa handle huruf besar dan kecil."<<endl;
    cout<<"Harus Menggunakan Struct."<<endl;
    Garis();
    cout<<"Jika lama menginap lebih dari 6 hari maka mendapatkan souvenir Payung Cantik."<<endl;
    cout<<"Biaya admin: Rp. 200.000"<<endl;
    cout<<"Total Bayar adalah (Harga dikali Lama Menginap) + Biaya Admin"<<endl;
    Garis();
}

//Fungsi Tarif
float tarif(char kode) {
    float harga;
    if (kode == 'A' || kode == 'a') {
    	harga = 800000;
    } else if (kode == 'B' || kode == 'b') {
    	harga = 700000;
    } else if (kode == 'C' || kode == 'c') {
        harga = 600000;
    } else {
    	harga = 0;
    }
    return harga;
}

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

//Fungsi Cek_Tipe
string Cek_Tipe(char kode, const Kamar kamar[], int size) {
    for (int i = 0; i < size; i++) {
        if (toupper(kode) == kamar[i].kode) {
            return kamar[i].tipe;
        }
    }
    return "";
}

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

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

string nama;
    char kodeKamar;
    int lamaMenginap;

    Judul();
    Ketentuan();

    // Input
    cout<<"Nama Penyewa        : <input>";
    getline(cin, nama);
    cout<<endl;
    cout<<"Kode Kamar [A/B/M]  : <input>";
    cin >> kodeKamar;
    cout<<endl;
    cout<<"Lama Menginap       : <input>";
    cin >> lamaMenginap;
    cout<<endl;

    // Proses
    double hargaKamar = Cek_Harga(kodeKamar, kamar, 3);
    string tipeKamar = Cek_Tipe(kodeKamar, kamar, 3);
    string souvenir = Cek_Souvenir(lamaMenginap);
    double totalBiaya = (hargaKamar * lamaMenginap) + admin;

    // Output
    Garis();
    cout<<"| Kode | Tipe        |Harga     |"<<endl;
    Garis();
    cout<<"| A    | Anggrek     | 800.000  |"<<endl;
    cout<<"| B    | Bougenville | 700.000  |"<<endl;
    cout<<"| C    | Mawar       | 600.000  |"<<endl;
    Garis();
    cout << "Nama Penyewa   : "<<nama<<endl;
    cout << "Kode Kamar     : "<<kodeKamar<<endl;
    cout << "Lama Menginap  : "<<lamaMenginap<<"hari"<<endl;
    cout << "Harga Sewa     : Rp. " <<fixed<<setprecision(2)<<hargaKamar<<endl;
    cout << "Tipe Kamar     : " <<tipeKamar<<endl;
    cout << "Souvenir       : " <<souvenir<<endl;
    cout << "Administrasi   : Rp. " <<admin<<endl;
    cout << "Total Biaya    : Rp. " <<totalBiaya<<endl;
    Garis();
    TTD();
    return 0;
}
INFO