Untitled
unknown
c_cpp
5 months ago
4.2 kB
4
Indexable
#include <iostream> #include <iomanip> #include <string> using namespace std; // Fungsi Judul void JUDUL() { cout << "----------------------------------------------------------------------------------------------------------------\n"; cout << "PROGRAM TIKET KERETA\n"; cout << "----------------------------------------------------------------------------------------------------------------\n"; cout << " Kelas\t\t| AG(Argo Bromo) | AL(Argo Lawu) | PH(Argo Wilis) |\n"; cout << "----------------------------------------------------------------------------------------------------------------\n"; cout << "| 1-Executive\t| 500.000\t | 475.000\t | 450.000\t |\n"; cout << "| 2-Bisnis\t| 480.000\t | 455.000\t | 430.000\t |\n"; cout << "| 3-Ekonomi\t| 460.000\t | 435.000\t | 410.000\t |\n"; cout << "----------------------------------------------------------------------------------------------------------------\n"; cout << "Ketentuan Discount: \n"; cout << "Apabila pembelian tiket diatas 10 maka diskon 10% dari Total\n"; cout << "Apabila pembelian tiket diatas 5 maka diskon 5% dari Total\n"; cout << "----------------------------------------------------------------------------------------------------------------\n"; } // Fungsi Cek Harga float CEK_HARGA(const string& kodeKereta, int kodeKelas) { if (kodeKereta == "AG" || kodeKereta == "ag") { switch (kodeKelas) { case 1: return 500000; case 2: return 480000; case 3: return 460000; } } else if (kodeKereta == "AL" || kodeKereta == "al") { switch (kodeKelas) { case 1: return 475000; case 2: return 455000; case 3: return 435000; } } else if (kodeKereta == "PH" || kodeKereta == "ph") { switch (kodeKelas) { case 1: return 450000; case 2: return 430000; case 3: return 410000; } } return 0.0; // Jika kodeKereta atau kodeKelas tidak valid } // Fungsi Cek Nama Kereta string CEK_NAMA_KERETA(const string& kodeKereta) { if (kodeKereta == "AG" || kodeKereta == "ag") return "Argo Bromo"; if (kodeKereta == "AL" || kodeKereta == "al") return "Argo Lawu"; if (kodeKereta == "PH" || kodeKereta == "ph") return "Argo Wilis"; return "Kode kereta tidak valid"; } // Fungsi Cek Nama Kelas string CEK_NAMA_KELAS(int kodeKelas) { switch (kodeKelas) { case 1: return "Executive"; case 2: return "Bisnis"; case 3: return "Ekonomi"; default: return "Kode kelas tidak valid"; } } // Fungsi Cek Diskon float CEK_DISKON(int jumlahBeli, float subtotal) { if (jumlahBeli > 10) return 0.1 * subtotal; // Diskon 10% if (jumlahBeli > 5) return 0.05 * subtotal; // Diskon 5% return 0.0; // Tidak ada diskon } int main() { string namaPemesan, kodeKereta; int kodeKelas, jumlahBeli; JUDUL(); cout << "\nNama Pemesan\t\t\t: "; getline(cin, namaPemesan); cout << "\nMasukkan Kode Kereta [AG/AL/PH] : "; cin >> kodeKereta; cout << "\nMasukkan Kode Kelas [1/2/3]\t: "; cin >> kodeKelas; // Validasi Input float hargaTiket = CEK_HARGA(kodeKereta, kodeKelas); if (hargaTiket == 0.0) { cout << "\nInput Kode Kereta atau Kode Kelas salah!\n"; return 1; } string namaKereta = CEK_NAMA_KERETA(kodeKereta); string namaKelas = CEK_NAMA_KELAS(kodeKelas); // Output cout << "\nDATA PEMESANAN KERETA\n"; cout << "-------------------------\n"; cout << "Nama Pemesan: " << namaPemesan << endl; cout << "Kode Kereta : " << namaKereta << endl; cout << "Kode Kelas : " << namaKelas << endl; cout << "Harga Tiket : " << fixed << setprecision(2) << hargaTiket << endl; cout << "\nJumlah Beli: "; cin >> jumlahBeli; float subtotal = hargaTiket * jumlahBeli; float diskon = CEK_DISKON(jumlahBeli, subtotal); float total = subtotal - diskon; cout << "Subtotal : " << subtotal << endl; cout << "Diskon : " << diskon << endl; cout << "Total : " << total << endl; return 0; }
Editor is loading...
Leave a Comment