Coroutines adalah solusi Kotlin untuk asynchronous programming — menulis kode async (network calls, operasi database) yang dibaca secara berurutan tanpa memblokir main thread. Mereka adalah cara modern dan direkomendasikan untuk menangani pekerjaan async di Android, menghindari kompleksitas callback.
Mengapa async penting di 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.
