Study
Luau

Debugging Dasar (print, warn, error handling pcall)

Penjelasan

Debugging paling dasar di Luau dilakukan lewat `print()` untuk log biasa dan `warn()` untuk pesan peringatan yang tampil berwarna kuning di Output Roblox Studio, memudahkan membedakan log penting dari log biasa. Untuk kode yang berpotensi error (misalnya memanggil API eksternal atau mengakses data yang mungkin tidak ada), `pcall()` membungkus pemanggilan fungsi supaya error tidak menghentikan seluruh script, melainkan dikembalikan sebagai nilai boolean plus pesan error. Pola `pcall` sangat penting di server Roblox — satu error yang tidak ditangani dalam sebuah event bisa menghentikan alur logic untuk pemain itu, tapi dengan `pcall`, error bisa ditangkap dan game tetap berjalan dengan penanganan yang lebih baik (misalnya retry atau pesan ke pemain).

Contoh Konsep

print("Ini log biasa")
warn("Ini peringatan, tampil kuning di Output")

-- Menangkap error dengan pcall
local berhasil, hasilAtauError = pcall(function()
    local data = game:GetService("DataStoreService"):GetDataStore("SkorPemain")
    return data:GetAsync("Pemain1")
end)

if berhasil then
    print("Data:", hasilAtauError)
else
    warn("Gagal mengambil data: " .. tostring(hasilAtauError))
end

Praktikum

Bungkus pemanggilan fungsi yang mungkin error (misalnya membagi angka dengan pembagi yang bisa nol) menggunakan pcall, lalu tampilkan warn kalau gagal dan print hasil kalau berhasil.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Jangan bungkus seluruh script dengan satu `pcall` besar — bungkus hanya bagian kode yang benar-benar berisiko error, supaya bug lain tidak diam-diam tertelan dan sulit dilacak.