Memulai Coroutines

Untuk lebih memahami tentang coroutines, mari kita mulai mencobanya langkah demi langkah. Hal pertama yang wajib Anda tahu adalah bahwa coroutines bukanlah bagian dari bahasa Kotlin [10]. Coroutines hanyalah library lain yang disediakan oleh JetBrains. Untuk itu, agar bisa menggunakannya Anda perlu menambahkan dependensi berikut pada build.gradle.kts:

1. dependencies { 2.     implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.1") 3. }

Dengan menambahkan dependensi di atas, kini Anda sudah siap untuk mencoba menggunakan fitur-fitur coroutines dalam membuat program concurrency. Yuk kita mulai dari kode yang sangat sederhana berikut ini:

1. import kotlinx.coroutines.* 2.   3. fun main() = runBlocking{ 4.     launch { 5.         delay(1000L) 6.         println("Coroutines!") 7.     } 8.     println("Hello,") 9.     delay(2000L) 10. }

Kode di atas menggambarkan bagaimana coroutines bekerja. Kita menggunakan fungsi runBlocking untuk memulai coroutine utama dan launch untuk menjalankan coroutine baru. Jika Anda menjalankan program tersebut, maka konsol akan menampilkan hasil ini:Hello,Coroutines!

Kata Hello, akan ditampilkan lebih awal dan kata Coroutines! Akan ditampilkan 1 detik setelahnya. Mengapa demikian? Padahal jika diperhatikan, kode untuk menampilkan kata Coroutines! dituliskan lebih dulu.

Fungsi delay(1000L) di dalam launch digunakan untuk menunda kode berikutnya selama 1 detik. delay adalah fungsi yang spesial pada coroutines. Ia merupakan sebuah suspending function yang tidak akan memblokir sebuah thread.

Selama proses penundaan tersebut, main thread akan terus berjalan sehingga fungsi println("Hello,") akan langsung dijalankan. Setelah 1 detik, baru fungsi println("Coroutines!") akan dijalankan. Sedangkan kode delay(2000L) digunakan untuk menunda selama 2 detik sebelum JVM berakhir.

Ini baru sekedar permulaan loh. Masih banyak lagi fungsi-fungsi menarik lain pada coroutines yang dapat mempermudah kita dalam membuat program concurrency. Anda bisa memanfaatkan kumpulan library yang dapat ditemukan pada repositori kotlinx.coroutines. JetBrains selaku tim pengembang juga berkomitmen untuk mempertahankan backward compatibility untuk tiap perubahan yang akan dirilis. Itulah mengapa coroutines sudah diperkenalkan sejak Kotlin versi 1.1 dan dirilis resmi pada versi 1.3.

Tersedia juga panduan resmi untuk langkah-langkah penerapan coroutines. Ikuti saja tautan ini.