Dicoding 8

Run Settings
LanguageSwift
Language Version
Run Command
import Foundation // Function untuk mendapatkan item dari user func getInput(message: String) -> String?{ print(message, terminator: " : "); return readLine() } func getInputInt(message: String) -> Int?{ if let inputString = getInput(message: message){ return Int(inputString) } else{ return nil } } // Kelas Makanan berat enum HeavyMeal: Int, CaseIterable { case nasiGoreng = 1, indomie, magelangan, nasiKuning, kwetiau, nasiPutih } // Kelas Makanan Ringan enum SideDish: Int, CaseIterable { case ikan = 1, telur, tempe, tahu, kerupuk } // Kelas Minuman enum Drinks: Int, CaseIterable { case esTeh = 1, esJeruk, kopi, airPutih } func showAllHeavyMeal(){ var position = 1 print("Makan berat") for heavyMeal in HeavyMeal.allCases { print("[\(position)] \(heavyMeal)") position += 1 } } func showAllSideDish(){ var position = 1 print("Lauk") for sideDish in SideDish.allCases { print("[\(position)] \(sideDish)") position += 1 } } func showAllDrink(){ var position = 1 print("Minuman") for drink in Drinks.allCases { print("[\(position)] \(drink)") position += 1 } } var total = 0 var item = ("","","") func inputHeavyMeal(){ if let position = getInputInt(message: "Pilihlah makanan"){ if let heavyMeal = HeavyMeal(rawValue: position) { switch heavyMeal { case .indomie: total += 6000 item.0 = "Indomie" case .kwetiau: total += 10000 item.0 = "Kwetiau" case .magelangan: total += 7000 item.0 = "Magelangan" case .nasiGoreng: total += 9000 item.0 = "Nasi Goreng" case .nasiPutih: total += 3000 item.0 = "Nasi Putih" case .nasiKuning: total += 5000 item.0 = "Nasi Kuning" } } else { print("Posisi \(position) tidak ditemukan") } }else{ print("Input tidak valid") } } func inputSideDish(){ if let position = getInputInt(message: "Pilihlah lauk"){ if let sideDish = SideDish(rawValue: position) { switch sideDish { case .ikan: total += 5000 item.1 = "Ikan" case .kerupuk: total += 500 item.1 = "Kerupuk" case .tahu: total += 1000 item.1 = "Tahu" case .telur: total += 3000 item.1 = "Telur" case .tempe: total += 1000 item.1 = "Tempe" } } else { print("Posisi \(position) tidak ditemukan") } }else{ print("Input tidak valid") } } func inputDrinks(){ if let position = getInputInt(message: "Pilihlah lauk"){ if let drink = Drinks(rawValue: position) { switch drink { case .airPutih: total += 0 item.2 = "Air Putih" case .esJeruk: total += 2500 item.2 = "Es Jeruk" case .esTeh: total += 2000 item.2 = "Es Teh" case .kopi: total += 3000 item.2 = "Kopi" } } else { print("Posisi \(position) tidak ditemukan") } }else{ print("Input tidak valid") } } func menu(){ print("Selamat datang di Rumah Makan Dicoding") print("--------------------------------------") showAllHeavyMeal() inputHeavyMeal() print("--------------------------------------") showAllSideDish() inputSideDish() print("--------------------------------------") showAllDrink() inputDrinks() print("--------------------------------------") print("Anda memilih \(item.0), \(item.1), dan \(item.2) dengan total harga Rp. \(total)") print("--------------------------------------") print("Terima kasih, selamat datang kembali!") } menu()
Editor Settings
Theme
Key bindings
Full width
Lines