Dicoding 7

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 } } // speedTotal untuk menampung variabel speed var speedTotal = 0 // closure untuk menambah kecepatan func makeIncrementer(forIncrement amount: Int) -> () -> Int { func incrementer() -> Int { speedTotal += amount return speedTotal } return incrementer } // closure untuk mengurangi kecepatan func makeDecrementer(forDecrement amount: Int) -> () -> Int { func decrementer() -> Int { speedTotal -= amount return speedTotal } return decrementer } // menentukan nilai penambahan dan pengurangan let incrementByTen = makeIncrementer(forIncrement: 10) let decrementByTen = makeDecrementer(forDecrement: 10) // menyalakan mesin motor listrik func turnOnEngine() { print("Hidupkan mesin.........") print("Selamat datang di Motor Listrik Dicoding") print("Brem brem brem brem") } // mematikan mesin motor listrik func turnOffEngine(){ print("Ciiiiiiiitttttt......") print("Motor berhenti!!!!") } // menampilkan kecepatan saat ini func showSpeed(){ print("Kecepatan saat ini : \(speedTotal)") print("Ngeeeeengggggggg") } // memberikan aksi ke motor listrik func action(){ print("----------------------------------------") print("Ayo beraksi:") print("[1] Tambahkan kecepatan") print("[2] Kurangi kecepatan") print("[3] Matikan mesin") if let state = getInputInt(message: "Masukkan aksi Anda"){ switch state { case 1: speedTotal = incrementByTen() showSpeed() action() case 2: if speedTotal >= 0 { speedTotal = decrementByTen() showSpeed() action() }else{ turnOffEngine() break } case 3: turnOffEngine() break default: break } }else{ print("Input tidak valid") } }
Editor Settings
Theme
Key bindings
Full width
Lines