Untitled
unknown
c_cpp
a year ago
4.2 kB
10
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