Quick actions

cmd+k|ctrl+k

Navigation

Languages

Algoritma Dan Struktur Data Tugas 12.1

Snippet info

Language

Cpp

Visibility

public

Author

fadhlanr

Created

2026-01-07T09:21:22.063624Z

Updated

2026-01-07T09:21:22.063624Z

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