Coroutine Dasar di Lua
Penjelasan
Coroutine adalah fitur khas Lua untuk menjalankan fungsi yang bisa DIJEDA di tengah eksekusi (lewat `coroutine.yield()`) dan DILANJUTKAN lagi nanti dari titik yang sama (lewat `coroutine.resume()`) — berbeda dari fungsi biasa yang selalu jalan dari awal sampai selesai sekali panggil. Ini bentuk cooperative multitasking, sering dipakai di game untuk animasi/urutan event bertahap.
Contoh Konsep
local co = coroutine.create(function()
print("Langkah 1")
coroutine.yield() -- jeda di sini
print("Langkah 2")
coroutine.yield()
print("Langkah 3")
end)
coroutine.resume(co) -- cetak "Langkah 1", lalu jeda
coroutine.resume(co) -- lanjut, cetak "Langkah 2", jeda lagi
coroutine.resume(co) -- lanjut, cetak "Langkah 3", selesai
Praktikum
Buat coroutine yang mencetak angka 1, lalu yield, cetak angka 2, lalu yield, cetak angka 3. Panggil resume() tiga kali untuk menjalankannya bertahap.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Coroutine BUKAN thread sungguhan (tidak berjalan paralel) — hanya satu coroutine yang aktif dalam satu waktu, dan perpindahan antar coroutine sepenuhnya terkontrol lewat `yield`/`resume`, bukan otomatis oleh sistem.