UAS Algoritma - Ananda RA

Run Settings
LanguageC++
Language Version
Run Command
#include <iostream> #include <string.h> #include <iomanip> // UAS Algoritma Dan Struktur Data //Ananda Rakhma Aulia - 3420220024 using namespace std; void garis(int p) { int i = 0; while (i < p) { cout<<"="; i++;} cout<<endl; // (<- looping while) } string formatRupiah(long nominal) { string angka = to_string(nominal); int n = angka.length(); int hitung = 0; string hasil = ""; for (int i = n - 1; i >= 0; i--) { hasil = angka[i] + hasil; hitung++; if (hitung % 3 == 0 && i != 0) { hasil = "." + hasil; } } return hasil; } struct { int jml; string nama; } structKasir; //(<- struct function) void author(string nama, string nim, string email) { garis(40); cout<<"Nama : "<<nama<<endl; //(<- cout function) cout<<"NIM : "<<nim<<endl; //(<- cout function) cout<<"Email : "<<email<<endl; //(<- cout function) } void judul() { garis(40); puts("FLOWERS HOTEL"); //(<- puts function) puts("Jl. Raya Hankam Jatirahayu Bekasi"); //(<- puts function) garis(40); //(<-function NOT return value without parameter) } void ketentuan() { puts("| Kelas | Nama Kelas | Biaya Per Malam |"); garis(40); puts("| 1 | VIP | Rp. 1.000.000 |"); puts("| 2 | Reguler | Rp. 800.000 |"); puts("| 3 | Ekonomi | Rp. 600.000 |"); garis(40); puts("| Kode Kamar | Nama Kamar |"); garis(40); puts("| E | Edelweiss |"); puts("| M | Magnolia |"); puts("| O | Orchid |"); garis(40); cout<<"KETENTUAN"<<endl; garis(40); puts("Harus Terdapat:"); puts("fungsi STRUCT."); puts("fungsi cout, cin, endl, printf, scanf."); puts("function return value dengan parameter."); puts("function return value TANPA parameter."); puts("function NOT return value dengan parameter."); puts("function NOT return value TANPA parameter."); puts("function yang memanggil function lain."); puts("variable bertipe array."); puts("struktur IF."); puts("struktur SWITCH CASE."); puts("looping while dan looping for."); puts("Class dengan Variable Private."); puts("Class dengan Prototipe Function."); garis(65); puts("Subtotal adalah Harga Per Malam x Lama Menginap."); puts("Diskon 10% dari Subtotal jika Lama Menginap lebih dari 10 hari."); puts("Diskon 5% dari Subtotal jika Lama Menginap lebih dari 5 hari."); garis(65); } class penyewa { private: string nama; char kd_kelas, kd_kamar; int lama; //(<- class with variable private function) public: void set_nilai(string nm, char kdKelas, char kdKamar, int lm); //(<- class with prototipe function) string get_nama() { return nama; } string get_kelas(); //(<- class with prototipe function) string get_kamar(); //(<- class with prototipe function) long get_harga(); //(<- class with prototipe function) int get_lama() { return lama; } }; void penyewa::set_nilai(string nm, char kdKelas, char kdKamar, int lm) { nama = nm; kd_kelas = kdKelas; kd_kamar = kdKamar; lama = lm; } // if else structure string penyewa::get_kelas() { if (kd_kelas == '1') { return "VIP"; } else if (kd_kelas == '2') { return "REGULER"; } else if (kd_kelas == '3') { return "EKONOMI"; } else { return ""; } } // switch case structure string penyewa::get_kamar() { switch (kd_kamar) { case 'E': case 'e': return "EDELWEISS"; break; case 'M': case 'm': return "MAGNOLIA"; break; case 'O': case 'o': return "ORCHID"; break; default: return ""; break; } } long penyewa::get_harga() { if (kd_kelas == '1') { return 1000000; } else if (kd_kelas == '2') { return 800000; } else if (kd_kelas == '3') { return 600000; } else { return 0; } } //(<- function return value without parameter) long subtotal(int lama, long harga) { return lama * harga; } //(<- function return value with parameter) long hitung_tobay(long subtotal, long diskon) { return subtotal - diskon; } //(<- function return value with parameter) long hitung_diskon(long subtotal, int lama) { if(lama > 10) { return 0.1 * subtotal; } else if(lama > 5) { return 0.05 * subtotal; } else { return 0; } } int main() { judul(); ketentuan(); cout<<endl; printf("Input Nama Kasir : <input>"); //(<- printf function) cin>>structKasir.nama;cout<<endl; //(<- cin function) printf("Jumlah Data : <input>"); scanf("%d", &structKasir.jml);cout<<endl<<endl; //(<- scanf function) int i, lama_sewa; string nama; char kodekelas, kodekamar; penyewa objpenyewa[10]; //(<- variabel bertipe array) for(i=1;i<=structKasir.jml;i++) { printf("Data Ke - %d",i); cout<<endl; printf("Nama Penyewa : <input>"); cin>>nama; cout<<endl; printf("Kode Kelas [1/2/3] : <input>"); cin>>kodekelas; cout<<endl; printf("Kode Kamar [E/M/O] : <input>"); cin>>kodekamar; cout<<endl; printf("Lama Sewa : <input>"); cin>>lama_sewa; cout<<endl; objpenyewa[i].set_nilai(nama, kodekelas, kodekamar, lama_sewa); cout<<endl; //(<- looping for) } judul(); cout<<"Nama Kasir : "<<structKasir.nama<<endl; cout<<"Jumlah Data : "<<structKasir.jml<<endl; garis(94); cout<<"| No | Nama Penyewa | Kelas | Kamar | Harga | Lama |"; cout<<" Subtotal| Diskon | Total Bayar |"<<endl; garis(94); long grand_total = 0; for(i=1;i<=structKasir.jml;i++) { cout<<"| "<<setiosflags(ios::left)<<setw(3)<<i; cout<<"| "<<setw(13)<<objpenyewa[i].get_nama(); cout<<"| "<<setw(8)<<objpenyewa[i].get_kelas(); cout<<"| "<<setw(10)<<objpenyewa[i].get_kamar(); long harga = objpenyewa[i].get_harga(); cout<<"| "<<setw(8)<<harga; int lama = objpenyewa[i].get_lama(); cout<<"| "<<setw(5)<<lama; long subttl = subtotal(harga, lama); cout<<"| "<<setw(8)<<subttl; long diskon = hitung_diskon(subttl, lama); cout<<"| "<<setw(8)<<diskon; long tobay = hitung_tobay(subttl, diskon); cout<<"| "<<setw(12)<<tobay<<"|"; grand_total = grand_total + tobay; cout<<endl; } garis(94); cout<<"GRAND TOTAL: Rp"<<formatRupiah(grand_total)<< endl; author("Ananda Rakhma Aulia","3420220024","anandara7891@gmail.com"); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines