main
import [Link].*
fun main() {
val scanner = Scanner(System.`in`)
val rooms = listOf("Ruang1", "Ruang2", "Ruang3")
val inv = Inventaris(rooms)
while (true) {
println("\n=== Menu Inventaris ===")
println("1. Lihat daftar alat")
println("2. Tambah alat baru")
println("3. Lihat stok per ruangan")
println("4. Update stok")
println("0. Keluar")
print("Pilih menu: ")
when ([Link]()) {
1 -> [Link]()
2 -> {
print("Nama alat baru: ")
val nama = [Link]().trim()
if ([Link](nama)) println("✅ Alat '$nama' ditambahkan.")
else println("❌ Gagal: sudah ada atau nama kosong.")
}
3 -> [Link]()
4 -> {
[Link]()
print("Pilih nomor alat: "); val ai = [Link]()-1
[Link] { i,r -> println("${i+1}. $r") }
print("Pilih ruangan: "); val ri = [Link]()-1
print("Masukkan stok baru: "); val ns = [Link]()
if ([Link](ai, ri, ns)) println("✅ Stok diperbarui.")
else println("❌ Update gagal.")
}
0 -> { println("Keluar."); break }
else -> println("Pilihan tidak dikenal.")
}
}
}
infistoris
import [Link].*
class Inventaris(val rooms: List<String>) {
private val daftarAlat = mutableListOf<Alat>()
private val stok: MutableMap<Pair<Alat, String>, Int> = mutableMapOf()
init { resetDefault() }
fun resetDefault() {
[Link]()
daftarAlat += listOf("Pulpen", "Pensil", "Penghapus", "Spidol").map
{ Alat(it) }
[Link]()
for (alat in daftarAlat)
for (ruang in rooms)
stok[alat to ruang] = 0
}
fun tampilNamaAlat() {
println("Daftar Alat:")
[Link] { i, a -> println("${i+1}. ${[Link]}") }
}
fun tambahAlat(nama: String): Boolean {
if ([Link] { [Link](nama, true) }) return false
val alat = Alat(nama)
daftarAlat += alat
[Link] { r -> stok[alat to r] = 0 }
return true
}
fun tampilStok() {
println("\nStok per ruangan:")
print("Alat\\Ruang")
[Link] { r -> print("\t$r") }
println()
[Link] { alat ->
print([Link])
[Link] { r -> print("\t${stok[alat to r]}") }
println()
}
}
fun updateStok(idxAlat: Int, idxRuang: Int, newStok: Int): Boolean {
if (idxAlat !in [Link] || idxRuang !in [Link]) return
false
val alat = daftarAlat[idxAlat]
val ruang = rooms[idxRuang]
stok[alat to ruang] = newStok
return true
}
}
alat
data class Alat(val nama: String)