Roblox
Belajar Luau 02: if, elseif, else, dan Operator Logika
Membuat keputusan di dalam kode Luau: if, else, elseif, urutan pengecekan, operator logika and/or/not, serta nilai yang dianggap benar dan salah.

Program menjadi menarik ketika bisa memilih: membeli pedang kalau koin cukup, memberi gelar sesuai level, atau membuka pintu hanya untuk pemain tertentu. Di pelajaran ini kita membuat keputusan dengan if.
Jalankan di terminal:
luau 02-if-elseif-else.luau
Yang akan dipelajari
ifuntuk menjalankan kode hanya jika kondisinya benarelsedanelseifuntuk memilih di antara beberapa jalan- Kenapa urutan
elseifpenting - Operator logika
and,or,not - Nilai yang dianggap "salah":
nildanfalse
Variabel yang dipakai di contoh:
local namaPemain = "Budi"
local koin = 175
local hargaPedang = 250
if
Bentuknya if <kondisi> then ... end. Kode di dalamnya hanya dijalankan jika kondisinya true; kalau false, blok itu dilewati.
if koin >= 100 then
print("Kamu sudah punya minimal 100 koin!")
end
if koin >= 1000 then
print("Ini TIDAK akan tercetak")
end
if dan else
else memilih salah satu dari dua jalan:
if koin >= hargaPedang then
koin -= hargaPedang
print("Pedang terbeli! Sisa koin:", koin)
else
print(`Koin kurang {hargaPedang - koin} lagi`)
end
elseif untuk banyak pilihan
Kondisi dicek dari atas ke bawah. Begitu ada yang true, sisanya dilewati.
local level = 12
if level >= 50 then
print("Gelar: Legenda")
elseif level >= 20 then
print("Gelar: Pahlawan")
elseif level >= 10 then
print("Gelar: Petualang") -- <- ini yang tercetak (level 12)
else
print("Gelar: Pemula")
end
Urutan itu penting. Coba pikirkan: kalau level >= 10 ditaruh paling atas, pemain level 60 akan mendapat gelar "Petualang". Kenapa? Jawabannya ada di kunci jawaban di akhir artikel.
Operator logika: and, or, not
and bernilai true hanya jika keduanya true:
local punyaKunci = true
local bosSudahKalah = false
if punyaKunci and bosSudahKalah then
print("Pintu harta terbuka!")
else
print("Pintu masih terkunci")
end
or bernilai true jika salah satu saja true:
local isAdmin = false
local isVIP = true
if isAdmin or isVIP then
print("Selamat datang di ruang VIP")
end
not membalik true menjadi false dan sebaliknya:
if not bosSudahKalah then
print("Bos masih hidup, hati-hati!")
end
nil dan false dianggap "salah"
Di Luau, hanya nil dan false yang dianggap salah. Semua nilai lain dianggap benar, termasuk angka 0 dan teks kosong "". Ini sering dipakai di Roblox untuk mengecek apakah sesuatu ada:
local senjata = nil
if senjata then
print("Kamu memegang senjata")
else
print("Tanganmu kosong")
end
Contoh gaya Roblox: menerima damage
local darah = 100
local damage = 30
local pakaiPerisai = true
if pakaiPerisai then
damage = damage / 2 -- perisai mengurangi damage setengahnya
end
darah -= damage
if darah <= 0 then
print(`{namaPemain} kalah!`)
elseif darah < 30 then
print(`{namaPemain} sekarat! Darah: {darah}`)
else
print(`{namaPemain} masih kuat. Darah: {darah}`)
end
Latihan
- Buat variabel
skor. Print nilai huruf:skor >= 90→ "A",>= 75→ "B",>= 60→ "C", selain itu → "D". Ganti nilai skor beberapa kali untuk menguji semua cabang. - Toko: buat variabel
koinkudanhargaRamuan= 50.- Jika koin cukup: kurangi koin, lalu print "Ramuan dibeli! Sisa koin: ..."
- Jika tidak: print "Koin kurang ... lagi" (angkanya dihitung)
- Pintu VIP: buat variabel
levelPemaindanpunyaGamePass. Pemain boleh masuk jika levelnya>= 25atau punya game pass, tetapi hanya jikasedangDibannedbernilaifalse. Print "Boleh masuk" atau "Dilarang masuk".
Kunci jawaban
Coba kerjakan sendiri dulu sebelum membaca bagian ini.
Kenapa urutan elseif penting?
Kalau level >= 10 ditaruh paling atas, pemain level 60 juga memenuhi 60 >= 10, jadi langsung mendapat gelar "Petualang". Cabang di bawahnya (Pahlawan, Legenda) tidak pernah dicek, karena if/elseif berhenti di kondisi pertama yang true.
Aturannya: untuk perbandingan >=, taruh angka terbesar paling atas.
Latihan 1: nilai huruf
local skor = 82 -- ganti-ganti: 95, 82, 70, 40
if skor >= 90 then
print("Nilai: A")
elseif skor >= 75 then
print("Nilai: B") -- <- 82 masuk ke sini
elseif skor >= 60 then
print("Nilai: C")
else
print("Nilai: D")
end
Uji batasnya: skor 90 harus A, 89 harus B, 75 harus B, dan 74 harus C. Angka di "perbatasan" adalah tempat bug paling sering bersembunyi.
Latihan 2: toko ramuan
local koinku = 30 -- coba juga 80
local hargaRamuan = 50
if koinku >= hargaRamuan then
koinku -= hargaRamuan
print(`Ramuan dibeli! Sisa koin: {koinku}`)
else
print(`Koin kurang {hargaRamuan - koinku} lagi`) -- Koin kurang 20 lagi
end
Latihan 3: pintu VIP
local levelPemain = 30
local punyaGamePass = false
local sedangDibanned = true
if (levelPemain >= 25 or punyaGamePass) and not sedangDibanned then
print("Boleh masuk")
else
print("Dilarang masuk") -- <- karena dibanned
end
Kenapa perlu kurung? and dikerjakan lebih dulu daripada or, seperti kali sebelum tambah. Tanpa kurung:
levelPemain >= 25 or punyaGamePass and not sedangDibanned
dibaca Luau sebagai:
levelPemain >= 25 or (punyaGamePass and not sedangDibanned)
Akibatnya pemain level 30 yang dibanned tetap boleh masuk:
if levelPemain >= 25 or punyaGamePass and not sedangDibanned then
print("(tanpa kurung) Boleh masuk <- BUG: pemain dibanned lolos")
end
Kebiasaan baik: kalau mencampur and dan or, selalu pakai kurung.
Discussion (0)
We store your optional name, your comment, and technical hashes (not your raw IP address) to prevent spam. A functional cookie lets you edit or delete your own comments from this browser. To request deletion, use the contact page.
No comments yet. Start the discussion.