Quick actions

cmd+k|ctrl+k

Navigation

Languages

Tugas12.1

Snippet info

Language

Cpp

Visibility

public

Author

muhammad-hikmal-faturrahman

Created

2024-12-28T05:30:43.921954Z

Updated

2024-12-28T09:42:25.215683Z

#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    : [email protected]" << 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;
}
INFO