#include <iostream>
#include <string>
#include <iomanip>
#include <cmath>
using namespace std;
bool cekPrima(int num) {
if (num <= 1) return false;
for (int i = 2; i <= sqrt(num); i++) {
if (num % i == 0) return false;
}
return true;
}
string bonusIf(int totalPembelian) {
if (totalPembelian >= 100000 && totalPembelian < 200000) return "Discount 5%";
else if (totalPembelian >= 200000 && totalPembelian < 300000) return "Tiket ke Yogya";
else if (totalPembelian >= 300000 && totalPembelian < 400000) return "Tiket ke Bali";
else if (totalPembelian >= 400000 && totalPembelian < 500000) return "Jam tangan Rolex";
else if (totalPembelian >= 500000) return "Tiket ke Swiss";
else return "Tidak ada bonus";
}
string bonusCase(int totalPembelian) {
switch (totalPembelian / 100000) {
case 5: return "Tiket ke Swiss";
case 4:
if (totalPembelian >= 400000) return "Jam tangan Rolex";
else return "Tiket ke Bali";
case 3: return "Tiket ke Bali";
case 2: return "Tiket ke Yogya";
case 1:
if (totalPembelian >= 100000) return "Discount 5%";
else return "Tidak ada bonus";
default: return "Tidak ada bonus";
}
}
int main() {
string password, inputPassword;
cout << "Masukkan password: ";
cin >> inputPassword;
if (inputPassword != "password") {
cout << "Password salah. Silakan coba lagi." << endl;
return 0;
}
int pilihan;
do {
cout << "Pilih program yang ingin dijalankan: " << endl;
cout << "1. Program 1 (Cek Prima)" << endl;
cout << "2. Program 2 (Bonus Pembelian metode IF dan CASE)" << endl;
cout << "3. Program 3 (Diskon Belanja)" << endl;
cout << "4. Program 4 (Pembayaran Semester)" << endl;
cout << "5. Program 5 (Nota Pembelian)" << endl;
cout << "6. Exit" << endl;
cout << "Masukkan pilihan Anda: ";
cin >> pilihan;
switch (pilihan) {
case 1: {
struct Bilangan {
int nilai;
string status;
};
int awal, akhir;
cout << "Masukkan nilai awal dari rentang: ";
cin >> awal;
cout << "Masukkan nilai akhir dari rentang: ";
cin >> akhir;
int jumlahBilangan = akhir - awal + 1;
Bilangan bilangan[jumlahBilangan];
for (int i = 0; i < jumlahBilangan; i++) {
bilangan[i].nilai = awal + i;
if (cekPrima(bilangan[i].nilai))
bilangan[i].status = "Prima";
else
bilangan[i].status = "Bukan Prima";
}
cout << "\nHasil Pengecekan Bilangan dari " << awal << " hingga " << akhir << ":\n";
cout << "+----------+-------------+\n";
cout << "| Bilangan | Status |\n";
cout << "+----------+-------------+\n";
for (int i = 0; i < jumlahBilangan; i++) {
cout << "| " << setw(8) << bilangan[i].nilai << " | " << setw(11) << bilangan[i].status << " |\n";
}
cout << "+----------+-------------+\n";
break;
}
case 2: {
struct Pelanggan {
string NIK;
string nama;
string alamat;
int umur;
int totalPembelian;
string bonusIf;
string bonusCase;
};
int jumlahPelanggan;
cout << "Masukkan jumlah pelanggan: ";
cin >> jumlahPelanggan;
cin.ignore();
Pelanggan* pelanggan = new Pelanggan[jumlahPelanggan];
for (int i = 0; i < jumlahPelanggan; i++) {
cout << "Masukkan data pelanggan ke-" << i + 1 << endl;
cout << "Masukkan NIK: ";
getline(cin, pelanggan[i].NIK);
cout << "Masukkan nama: ";
getline(cin, pelanggan[i].nama);
cout << "Masukkan alamat: ";
getline(cin, pelanggan[i].alamat);
cout << "Masukkan umur: ";
cin >> pelanggan[i].umur;
cout << "Masukkan total pembelian: ";
cin >> pelanggan[i].totalPembelian;
cin.ignore();
pelanggan[i].bonusIf = bonusIf(pelanggan[i].totalPembelian);
pelanggan[i].bonusCase = bonusCase(pelanggan[i].totalPembelian);
}
cout << "\n+-------+-----------------+-----------------+------+-----------------+---------------------+---------------------+\n";
cout << "| NIK | Nama | Alamat | Umur | Total Pembelian | Bonus (if-else) | Bonus (case) |\n";
cout << "+-------+-----------------+-----------------+------+-----------------+---------------------+---------------------+\n";
for (int i = 0; i < jumlahPelanggan; i++) {
cout << " | " << setw(5) << pelanggan[i].NIK
<< " | " << setw(15) << pelanggan[i].nama
<< " | " << setw(15) << pelanggan[i].alamat
<< " | " << setw(4) << pelanggan[i].umur
<< " | " << setw(15) << pelanggan[i].totalPembelian
<< " | " << setw(17) << pelanggan[i].bonusIf
<< " | " << setw(17) << pelanggan[i].bonusCase
<< " |\n";
}
cout << "+-------+-----------------+-----------------+------+-----------------+---------------------+---------------------+\n";
break;
}
case 3: {
struct Item {
string nama;
int harga;
float diskon;
float hargaSetelahDiskon;
};
Item belanjaan[2];
belanjaan[0] = {"Baju", 100000, 0.25, 0};
belanjaan[1] = {"Celana", 100000, 0.55, 0};
for (int i = 0; i < 2; i++) {
belanjaan[i].hargaSetelahDiskon = belanjaan[i].harga - (belanjaan[i].harga * belanjaan[i].diskon);
}
float totalBelanja = 0;
for (int i = 0; i < 2; i++) {
totalBelanja += belanjaan[i].hargaSetelahDiskon;
}
cout << "\n+-------+---------+----------------+------------------------+\n";
cout << "| Nama | Harga | Diskon | Harga Setelah Diskon |\n";
cout << "+-------+---------+----------------+------------------------+\n";
for (int i = 0; i < 2; i++) {
cout << "| " << setw(5) << belanjaan[i].nama
<< " | " << setw(6) << belanjaan[i].harga
<< " | " << setw(7) << (belanjaan[i].diskon * 100) << "%"
<< " | " << setw(22) << fixed << setprecision(2) << belanjaan[i].hargaSetelahDiskon
<< " |\n";
}
cout << "+-------+---------+----------------+------------------------+\n";
cout << "Total belanja Oni setelah diskon adalah: Rp" << fixed << setprecision(2) << totalBelanja << endl;
break;
}
case 4: {
struct Pembayaran {
int semester;
int biayaSPP;
int biayaPembangunan;
int biayaPerSKS;
int jumlahSKS;
int totalBiaya;
};
Pembayaran pembayaran[3];
// Inisialisasi data biaya tetap
pembayaran[0] = {1, 3000000, 5000000, 250000, 0, 0}; // Semester 1
pembayaran[1] = {2, 3000000, 0, 250000, 0, 0}; // Semester 2
pembayaran[2] = {3, 3000000, 0, 250000, 0, 0}; // Semester 3
// Meminta input jumlah SKS dari pengguna
for (int i = 0; i < 3; i++) {
cout << "Masukkan jumlah SKS untuk semester " << pembayaran[i].semester << ": ";
cin >> pembayaran[i].jumlahSKS;
// Menghitung total biaya untuk tiap semester
pembayaran[i].totalBiaya = pembayaran[i].biayaSPP +
pembayaran[i].biayaPembangunan +
(pembayaran[i].biayaPerSKS * pembayaran[i].jumlahSKS);
}
// Menghitung total biaya keseluruhan
int totalBiayaKeseluruhan = 0;
for (int i = 0; i < 3; i++) {
totalBiayaKeseluruhan += pembayaran[i].totalBiaya;
}
// Menampilkan slip pembayaran dalam bentuk tabel
cout << "\nSlip Pembayaran Mahasiswa Selama Tiga Semester\n";
cout << "---------------------------------------------\n";
cout << "+----------+-----------+-------------------+---------------+------------+-------------+\n";
cout << "| Semester | Biaya SPP | Biaya Pembangunan | Biaya per SKS | Jumlah SKS | Total Biaya |\n";
cout << "+----------+-----------+-------------------+---------------+------------+-------------+\n";
for (int i = 0; i < 3; i++) {
cout << "| " << setw(8) << pembayaran[i].semester
<< " | " << setw(10) << pembayaran[i].biayaSPP
<< " | " << setw(15) << pembayaran[i].biayaPembangunan
<< " | " << setw(12) << pembayaran[i].biayaPerSKS
<< " | " << setw(9) << pembayaran[i].jumlahSKS
<< " | " << setw(11) << pembayaran[i].totalBiaya
<< " |\n";
}
cout << "+----------+-----------+-------------------+---------------+------------+-------------+\n";
cout << "Total Biaya Keseluruhan: Rp" << totalBiayaKeseluruhan << ",00" << endl;
break;
}
case 5: {
struct Barang {
string nama;
int harga;
int jumlah;
int totalHarga;
double ppn;
double totalSetelahPPN;
};
int jumlahBarang;
cout << "Masukkan jumlah barang yang akan dibeli: ";
cin >> jumlahBarang;
Barang barang[jumlahBarang];
for (int i = 0; i < jumlahBarang; i++) {
cout << "Masukkan nama barang ke-" << i + 1 << ": ";
cin.ignore();
getline(cin, barang[i].nama);
cout << "Masukkan harga barang ke-" << i + 1 << ": ";
cin >> barang[i].harga;
cout << "Masukkan jumlah barang ke-" << i + 1 << ": ";
cin >> barang[i].jumlah;
barang[i].totalHarga = barang[i].harga * barang[i].jumlah;
barang[i].ppn = barang[i].totalHarga * 0.10;
barang[i].totalSetelahPPN = barang[i].totalHarga + barang[i].ppn;
}
cout << "\nNota Pembelian\n";
cout << "---------------------------------------------\n";
cout << "+---------------+-------------+--------+--------------+--------+-------------------+\n";
cout << "| Nama Barang | Harga Satuan | Jumlah | Total Harga | PPN | Total Setelah PPN |\n";
cout << "+---------------+-------------+--------+--------------+--------+-------------------+\n";
for (int i = 0; i < jumlahBarang; i++) {
cout << "| " << setw(13) << left << barang[i].nama
<< " | " << setw(11) << right << barang[i].harga
<< " | " << setw(6) << right << barang[i].jumlah
<< " | " << setw(12) << right << barang[i].totalHarga
<< " | " << setw(6) << right << fixed << setprecision(2) << barang[i].ppn
<< " | " << setw(17) << right << fixed << setprecision(2) << barang[i].totalSetelahPPN
<< " |\n";
}
cout << "+---------------+-------------+--------+--------------+--------+-------------------+\n";
break;
}
case 6: {
cout << "Terima kasih!" << endl;
break;
}
default: {
cout << "Pilihan tidak valid." << endl;
break;
}
}
} while (pilihan != 6);
return 0;
}
No comments:
Post a Comment