Tugas 14.1 - Algoritma Struktur Data

Run Settings
LanguageC++
Language Version
Run Command
#include <iostream> #include <string.h> using namespace std; // Ananda Rakhma Aulia // 3420220024 struct Menu{ string kode; string jenis; int harga; }; struct Transaksi { string kode; string jenis; int harga; int jumlah; int total; }; Menu menu[] = { {"D", "Dada", 13000}, {"P", "Paha", 8000}, {"S", "Sayap", 11000}, }; Transaksi transaksi[100]; int totalTransaksi = 0; const int menuSize = sizeof(menu) / sizeof(menu[0]); void garis(int panjang) { int i; for(i = 0; i <= panjang; i++) { printf("="); } cout << endl; } void author() { cout << "Nama : Ananda Rakhma Aulia" << endl; cout << "NIM : 3420220024" << endl; cout << "Email : anandara7891@gmail.com" << endl; } void judul() { garis(51); cout << "AMANAH FRIED CHICKEN - JATIRAHAYU\n"; } void daftarMenu() { garis(51); cout << "| Kode | Jenis | Harga |\n"; garis(51); for (int i = 0; i < menuSize; i++) { cout << "| " << menu[i].kode << "\t| " << menu[i].jenis << "\t| " << menu[i].harga << "\t|\n"; } garis(51); } void ketentuan() { printf("KETENTUAN SOAL\n"); printf("Harus Terdapat Function Return Value Dengan Parameter\n"); printf("Harus Terdapat Function Return Value Tanpa Parameter\n"); printf("Harus Terdapat Function NOT Return Value Dengan Parameter\n"); printf("Harus Terdapat Function NOT Return Value Tanpa Parameter\n"); printf("Harus Terdapat Function Yang Memanggil Function Lain\n"); printf("Harus Terdapat Variabel Bertipe Array\n"); printf("Harus Terdapat Struktur IF\n"); printf("Harus Terdapat Struktur Switch Case\n"); printf("Harus Menggunakan Looping\n"); garis(51); } void cetakTransaksi() { garis(51); printf("| %s | %s | %-10s | %-6s | %s | %-s |\n", "No", "Kode", "Jenis", "Harga", "Jumlah", "Total"); garis(51); int totalBayar = 0; for (int i = 0; i < totalTransaksi; i++) { printf("| %-2d | %-4s | %-10s | %-6d | %-6d | %-5d |\n", i + 1, transaksi[i].kode.c_str(), transaksi[i].jenis.c_str(), transaksi[i].harga, transaksi[i].jumlah, transaksi[i].total); totalBayar += transaksi[i].total; } int pajak = totalBayar * 0.1; int grandTotal = totalBayar + pajak; garis(51); printf("Total Bayar : %d \n", totalBayar); printf("Pajak : %d \n", pajak); printf("Grand Total : %d \n", grandTotal); garis(51); } int cariHarga(string kode) { for (int i = 0; i < menuSize; i++) { if (menu[i].kode == kode) { return menu[i].harga; } } return 0; } string cariJenis(string kode) { switch (kode[0]) { case 'D': return "Dada"; case 'P': return "Paha"; case 'S': return "Sayap"; default: return "Kode Salah"; } } void inputKodeBarang(int jumlahBeli, int i = 0) { if (i >= jumlahBeli) return; string kodeBarang, kodeBarangAsli; int jumlahBarang; cout << "\nData ke-" << (i + 1); cout << "\nMasukan kode [D][P][S]: <input>"; cin >> kodeBarang; kodeBarangAsli = kodeBarang; kodeBarang[0] = toupper(kodeBarang[0]); cout << "\nJumlah beli: <input>\n"; cin >> jumlahBarang; transaksi[i].kode = kodeBarangAsli; transaksi[i].jenis = cariJenis(kodeBarang); transaksi[i].harga = cariHarga(kodeBarang); transaksi[i].jumlah = jumlahBarang; transaksi[i].total = transaksi[i].harga * jumlahBarang; totalTransaksi++; inputKodeBarang(jumlahBeli, i + 1); } int main() { judul(); daftarMenu(); ketentuan(); string namaPembeli; int jumlahBeli; cout << "Masukan nama pembeli: <input>" << endl; cin >> namaPembeli; cout << "Masukan jumlah beli: <input>" << endl; cin >> jumlahBeli; inputKodeBarang(jumlahBeli); judul(); cetakTransaksi(); author(); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines