Coroutines ialah penyelesaian Kotlin untuk pengaturcaraan asinkron — menulis kod async (panggilan rangkaian, operasi pangkalan data) yang dibaca secara berjujukan tanpa menyekat thread utama. Ia cara moden yang disyorkan untuk mengendalikan kerja async dalam Android, mengelakkan kerumitan callback.
Mengapa async penting dalam Android
The MAIN (UI) thread must stay responsive — blocking it (with network/DB work) freezes
the UI (ANR "Application Not Responding" errors):
→ long operations MUST run off the main thread (asynchronously)
→ old approaches: callbacks (nested, complex), threads/AsyncTask (verbose, error-prone)
→ COROUTINES make async code clean and sequential.
