PERTEMUAN KE 14 ( 3 DESEMBER 2025 )

BUAT PROGRAM MENU UNTUK MEMANGGIL SEMUA FUNGSI YANG TELAH ANDA BUAT.

#include 
#include 
using namespace std;

// ========================
//       PROSEDUR BIODATA
// ========================
void biodata() {
    cout << "=== BIODATA SAYA ===\n";
    cout << "Nama   : Devina Hindriastika\n";
    cout << "NPM	: 20251310007\n";
    cout << "Kelas  : A1\n";
    cout << "=====================\n\n";
}

// ========================
//        FUNGSI MENU
// ========================

// 1. detik ? menit & jam
void detik_ke_menit_jam() {
    int detik;
    cout << "Masukkan detik: ";
    cin >> detik;

    int menit = detik / 60;
    int jam = detik / 3600;

    cout << "Menit : " << menit << endl;
    cout << "Jam   : " << jam << endl;
}

// 2. jam & menit ? detik
void jam_menit_ke_detik() {
    int jam, menit;
    cout << "Masukkan jam   : ";
    cin >> jam;
    cout << "Masukkan menit : ";
    cin >> menit;

    int detik = (jam * 3600) + (menit * 60);
    cout << "Total detik    : " << detik << endl;
}

// 3. Celcius ? Fahrenheit
float celcius_ke_fahrenheit(float c) {
    return (c * 9/5) + 32;
}

// 4. Rata-rata 5 bilangan
float rata5() {
    float a,b,c,d,e;
    cout << "Masukkan 5 bilangan:\n";
    cin >> a >> b >> c >> d >> e;
    return (a+b+c+d+e)/5;
}

// 5. Keliling persegi panjang
int keliling_pp(int p, int l) {
    return 2 * (p + l);
}

// 6. Keliling lingkaran
float kel_lingkaran(float r) {
    return 2 * 3.14 * r;
}

// 7. Volume balok
float volume_balok(float p, float l, float t) {
    return p * l * t;
}

// 8. Volume bola
float volume_bola(float r) {
    return (4.0/3.0) * 3.14 * pow(r,3);
}

// 9. Volume kerucut
float volume_kerucut(float r, float t) {
    return (3.14 * r * r * t) / 3;
}

// 10. Volume tabung
float volume_tabung(float r, float t) {
    return 3.14 * r * r * t;
}

// 11. Mengecek cuaca
void cek_cuaca() {
    int suhu;
    cout << "Masukkan suhu saat ini: ";
    cin >> suhu;

    if(suhu < 25) 
        cout << "Cuaca berpotensi hujan.\n";
    else
        cout << "Cuaca cerah.\n";
}

// 12. Lulus / tidak
void cek_lulus() {
    int nilai;
    cout << "Masukkan nilai: ";
    cin >> nilai;

    if(nilai >= 75)
        cout << "Status: Lulus\n";
    else
        cout << "Status: Tidak lulus\n";
}

// 13. Positif / negatif
void cek_bilangan() {
    int x;
    cout << "Masukkan bilangan: ";
    cin >> x;

    if(x > 0) cout << "Bilangan positif\n";
    else if(x < 0) cout << "Bilangan negatif\n";
    else cout << "Bilangan nol\n";
}

// 14. Tes logika & bahasa
void tes_logika_bahasa() {
    string kata;
    int angka;
    cout << "Masukkan kata: ";
    cin >> kata;
    cout << "Masukkan angka: ";
    cin >> angka;

    if(kata == "AI" && angka == 10)
        cout << "Logika benar!\n";
    else
        cout << "Logika salah.\n";
}

// 15. No hari
void hari_ke_nama() {
    int hari;
    cout << "Masukkan nomor hari (1-7): ";
    cin >> hari;

    switch(hari) {
        case 1: cout << "Senin\n"; break;
        case 2: cout << "Selasa\n"; break;
        case 3: cout << "Rabu\n"; break;
        case 4: cout << "Kamis\n"; break;
        case 5: cout << "Jumat\n"; break;
        case 6: cout << "Sabtu\n"; break;
        case 7: cout << "Minggu\n"; break;
        default: cout << "Hari tidak valid!\n";
    }
}

// 16. Menentukan grade nilai
char grade(int n) {
    if(n >= 85) return 'A';
    else if(n >= 75) return 'B';
    else if(n >= 65) return 'C';
    else if(n >= 50) return 'D';
    else return 'E';
}

// 17. Harga setelah diskon
float diskon(float harga, int persen) {
    return harga - (harga * persen / 100);
}

// 18. Nilai grade (versi lain)
string nilai_grade(int n) {
    if(n >= 90) return "Sangat Baik";
    else if(n >= 75) return "Baik";
    else if(n >= 60) return "Cukup";
    else return "Kurang";
}

// 19. Kalkulator
void kalkulator() {
    float a, b;
    char op;
    cout << "Masukkan angka 1 : "; cin >> a;
    cout << "Masukkan operator (+ - * /): "; cin >> op;
    cout << "Masukkan angka 2 : "; cin >> b;

    switch(op) {
        case '+': cout << "Hasil: " << a + b << endl; break;
        case '-': cout << "Hasil: " << a - b << endl; break;
        case '*': cout << "Hasil: " << a * b << endl; break;
        case '/': 
            if(b != 0) cout << "Hasil: " << a / b << endl;
            else cout << "Error: pembagian nol\n";
            break;
        default: cout << "Operator tidak valid!\n";
    }
}

// 20. Cetak bilangan genap
void cetak_genap(int a, int b) {
    for(int i = a; i <= b; i++) {
        if(i % 2 == 0)
            cout << i << " ";
    }
    cout << endl;
}

// ===============================
//          PROGRAM UTAMA
// ===============================
int main() {
    int pilihan;

    do {
        biodata();

        cout << "=== MENU PROGRAM ===\n";
        cout << "1. Detik ke menit & jam\n";
        cout << "2. Jam & menit ke detik\n";
        cout << "3. Celcius ke Fahrenheit\n";
        cout << "4. Rata-rata 5 bilangan\n";
        cout << "5. Keliling persegi panjang\n";
        cout << "6. Keliling lingkaran\n";
        cout << "7. Volume balok\n";
        cout << "8. Volume bola\n";
        cout << "9. Volume kerucut\n";
        cout << "10. Volume tabung\n";
        cout << "11. Cek cuaca\n";
        cout << "12. Lulus / tidak\n";
        cout << "13. Positif / negatif\n";
        cout << "14. Tes logika & bahasa\n";
        cout << "15. Nomor hari\n";
        cout << "16. Grade nilai\n";
        cout << "17. Harga diskon\n";
        cout << "18. Nilai grade (versi lain)\n";
        cout << "19. Kalkulator\n";
        cout << "20. Cetak bilangan genap\n";
        cout << "0. Keluar\n";
        cout << "Pilih menu: ";
        cin >> pilihan;

        cout << endl;

        switch(pilihan) {
            case 1: detik_ke_menit_jam(); break;
            case 2: jam_menit_ke_detik(); break;
            case 3: {
                float c;
                cout << "Masukkan Celcius: ";
                cin >> c;
                cout << "Fahrenheit = " << celcius_ke_fahrenheit(c) << endl;
                break;
            }
            case 4: cout << "Rata-rata = " << rata5() << endl; break;
            case 5: {
                int p,l;
                cout << "Panjang: "; cin >> p;
                cout << "Lebar  : "; cin >> l;
                cout << "Keliling = " << keliling_pp(p,l) << endl;
                break;
            }
            case 6: {
                float r;
                cout << "Jari-jari: "; cin >> r;
                cout << "Keliling = " << kel_lingkaran(r) << endl;
                break;
            }
            case 7: {
                float p,l,t;
                cout << "Panjang Lebar Tinggi : ";
                cin >> p >> l >> t;
                cout << "Volume = " << volume_balok(p,l,t) << endl;
                break;
            }
            case 8: {
                float r;
                cout << "Jari-jari: ";
                cin >> r;
                cout << "Volume bola = " << volume_bola(r) << endl;
                break;
            }
            case 9: {
                float r,t;
                cout << "Jari-jari dan tinggi: ";
                cin >> r >> t;
                cout << "Volume kerucut = " << volume_kerucut(r,t) << endl;
                break;
            }
            case 10: {
                float r,t;
                cout << "Jari-jari dan tinggi: ";
                cin >> r >> t;
                cout << "Volume tabung = " << volume_tabung(r,t) << endl;
                break;
            }
            case 11: cek_cuaca(); break;
            case 12: cek_lulus(); break;
            case 13: cek_bilangan(); break;
            case 14: tes_logika_bahasa(); break;
            case 15: hari_ke_nama(); break;
            case 16: {
                int n;
                cout << "Masukkan nilai: ";
                cin >> n;
                cout << "Grade = " << grade(n) << endl;
                break;
            }
            case 17: {
                float h; int d;
                cout << "Harga: "; cin >> h;
                cout << "Diskon (%): "; cin >> d;
                cout << "Harga setelah diskon = " << diskon(h,d) << endl;
                break;
            }
            case 18: {
                int n;
                cout << "Masukkan nilai: ";
                cin >> n;
                cout << nilai_grade(n) << endl;
                break;
            }
            case 19: kalkulator(); break;
            case 20: {
                int a,b;
                cout << "Awal dan akhir: ";
                cin >> a >> b;
                cetak_genap(a,b);
                break;
            }
            case 0: cout << "Program selesai.\n"; break;
            default: cout << "Menu tidak valid!\n";
        }

        cout << "\nTekan ENTER untuk kembali ke menu...";
        cin.ignore(); cin.get();

    } while(pilihan != 0);

    return 0;
}

Tidak ada komentar:

Posting Komentar