Menu
CoddyTech

Membuat dan Melanjutkan Coroutine

Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 49 dari 54.

Sekarang setelah kamu memahami apa itu coroutine, mari pelajari cara membuat dan menjalankannya di Lua.

Untuk membuat coroutine, kamu menggunakan fungsi coroutine.create(). Fungsi ini menerima fungsi biasa sebagai argumennya dan membungkusnya menjadi object coroutine. Berikut sintaks dasarnya:

function myTask()
    print("Hello from coroutine!")
end

local co = coroutine.create(myTask)

Pada tahap ini, coroutine sudah ada, tetapi belum mulai berjalan. Fungsi myTask belum dipanggil. Untuk benar-benar memulai atau melanjutkan eksekusi coroutine, kamu menggunakan coroutine.resume():

coroutine.resume(co)

Saat kamu memanggil resume() pada coroutine untuk pertama kalinya, coroutine mulai berjalan dari awal fungsinya. Jika coroutine berjalan sampai selesai tanpa berhenti sementara, coroutine selesai dan tidak dapat dilanjutkan lagi.

Berikut contoh lengkapnya:

function greet()
    print("Starting...")
    print("Finishing!")
end

local co = coroutine.create(greet)
coroutine.resume(co)  -- Mencetak kedua pesan

Coroutine berjalan dari awal hingga akhir sekaligus. Di pelajaran berikutnya, kamu akan belajar cara membuat coroutine berhenti sementara di tengah eksekusi.

challenge icon

Tantangan

Mudah

Tulis fungsi runSimpleCoroutine yang menerima message dan mengembalikan output dari coroutine yang mencetak pesan tersebut.

Buat coroutine menggunakan coroutine.create() yang membungkus fungsi untuk mencetak pesan yang diberikan. Lalu gunakan coroutine.resume() untuk menjalankan coroutine tersebut. Fungsi ini harus mengembalikan pesan yang dicetak.

Logika:

  • Definisikan fungsi yang mencetak parameter pesan
  • Buat coroutine dari fungsi tersebut menggunakan coroutine.create()
  • Lanjutkan coroutine menggunakan coroutine.resume()
  • Kembalikan pesan yang dicetak

Parameter:

  • message (string): Pesan yang akan dicetak oleh coroutine

Nilai yang dikembalikan: Pesan yang dicetak oleh coroutine (string)

Coba sendiri

function runSimpleCoroutine(message)
    -- Tulis kodemu di sini
end
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Lua online