Quick actions

cmd+k|ctrl+k

Navigation

Languages

Dicoding 6

Snippet info

Language

Swift

Visibility

public

Author

elaine.fawne

Created

2020-04-29T14:58:17Z

Updated

2020-04-29T15:30:59Z

import Foundation
 
var listFruits = [String]()
var isRunning = true
 
 
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
    }
}
 
func showAllFruits(){
    if listFruits.isEmpty {
        print("Belum ada item di dalam daftar")
    }else{
        for (index, value) in listFruits.enumerated() {
            print("[\(index + 1)] \(value)")
        }
    }
}
 
func insertFruit(){
    if let name = getInput(message: "Masukkan nama buah") {
        listFruits.append(name)
    }else{
        insertFruit()
        print("Input tidak valid")
    }
}
 
func editFruit(){
    showAllFruits()
    print("----------------------------------")
    if let position = getInputInt(message: "Pilih posisi buah yang akan diganti"), position<=listFruits.count && position>0, let name = getInput(message: "Masukkan nama buah") {
        listFruits[position-1] = name
    }else{
        editFruit()
        print("Input tidak valid")
    }
}
 
func deleteFruit() {
    showAllFruits()
    if let position = getInputInt(message: "Pilih posisi buah yang akan dihapus"),
        position<=listFruits.count && position>0{
        listFruits.remove(at: position-1)
    }else{
        deleteFruit()
        print("Input tidak valid")
    }
}
 
func showMenu(){
    print("Selamat Datang di Dicoding Market")
    print("---------------MENU---------------")
    print("[1] Tampilkan semua buah")
    print("[2] Tambah item buah")
    print("[3] Ubah item buah")
    print("[4] Hapus item buah")
    print("[5] Keluar")
    if let position = getInputInt(message: "Silakan pilih menu di atas"), position<=5 && position>0{
        print("----------------------------------")
        switch position {
        case 1:
            showAllFruits()
            break
        case 2:
            insertFruit()
            break
        case 3:
            editFruit()
            break
        case 4:
            deleteFruit()
            break
        case 5:
            isRunning = false
            print("Terima kasih, silakan datang kembali!")
            break
        default:
            print("Pilihan Anda salah")
        }
    } else {
        print("Item menu tidak valid")
    }
    print("----------------------------------")
}
 
while isRunning {
    showMenu()
}
INFO