Study
Lua

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.

Editor Latihan

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.