1. π Pengertian Background Process & Threading
7
π Penjelasan
- Background Process adalah proses yang berjalan di belakang layar tanpa interaksi langsung dengan pengguna.
- Threading adalah teknik menjalankan beberapa proses secara bersamaan dalam satu aplikasi.
π§ Narasi
Dalam aplikasi mobile, tidak semua proses dapat dijalankan di layar utama. Misalnya, saat aplikasi mengambil data dari internet, proses tersebut harus berjalan di background agar UI tetap responsif.
2. π§ Konsep Thread
7
π Jenis Thread
- Main Thread (UI Thread) β menangani UI
- Worker Thread β menangani proses berat
π§ Narasi
Main thread harus tetap ringan karena bertanggung jawab terhadap tampilan UI. Jika terlalu berat, aplikasi akan mengalami lag atau ANR (Application Not Responding).
3. β οΈ Masalah pada Main Thread
6
π Penyebab
- Proses berat di main thread
- Networking langsung di UI thread
- Loop yang berlebihan
π§ Narasi
Kesalahan ini sering terjadi pada pemula. Oleh karena itu, penting memahami konsep threading sejak awal.
4. π Konsep Asynchronous Programming
8
π Penjelasan
Asynchronous memungkinkan proses berjalan tanpa mengganggu proses lain.
π§ Narasi
Dengan async programming, aplikasi tetap responsif meskipun sedang memproses data di background.
5. π§΅ Implementasi Thread di Android
7
π Contoh Thread
Thread {
println("Proses di background")
}.start()
π§ Narasi
Thread manual dapat digunakan, namun memiliki keterbatasan dan cukup kompleks untuk dikelola.
6. βοΈ Handler dan Looper
5
π Penjelasan
- Handler β mengirim pesan antar thread
- Looper β mengatur antrian pesan
π§ Narasi
Digunakan untuk komunikasi antara background thread dan main thread.
7. β³ AsyncTask (Deprecated)
6
π Penjelasan
AsyncTask dulu digunakan untuk background task sederhana, tetapi sekarang sudah deprecated.
π§ Narasi
Penggunaan AsyncTask sudah tidak direkomendasikan karena keterbatasan dan potensi memory leak.
8. π Kotlin Coroutines (Modern Approach)
7
π Penjelasan
Coroutine adalah cara modern untuk menjalankan asynchronous task dengan kode yang lebih sederhana.
π Contoh
GlobalScope.launch {
val data = fetchData()
}
π§ Narasi
Coroutines membuat kode asynchronous terlihat seperti synchronous, sehingga lebih mudah dipahami.
9. π Dispatcher dalam Coroutine
7
π Jenis Dispatcher
| Dispatcher | Fungsi |
|---|---|
| Main | UI Thread |
| IO | Operasi jaringan/database |
| Default | CPU intensive task |
π§ Narasi
Dispatcher menentukan di thread mana coroutine dijalankan.
10. π Background Service
8
π Jenis Service
- Foreground Service
- Background Service
- IntentService
π§ Narasi
Service digunakan untuk menjalankan proses jangka panjang seperti musik atau tracking lokasi.
11. β‘ WorkManager
7
π Penjelasan
WorkManager digunakan untuk menjalankan task yang dijadwalkan atau berulang.
π§ Narasi
Cocok untuk sinkronisasi data, backup, atau notifikasi berkala.
12. β οΈ Permasalahan Umum
7
π Masalah
- Race condition
- Deadlock
- Memory leak
- Thread tidak sinkron
π§ Narasi
Masalah concurrency dapat menyebabkan bug yang sulit dideteksi.
13. π‘ Best Practice
π Tips
- Gunakan Coroutine
- Hindari blocking main thread
- Gunakan WorkManager untuk task terjadwal
- Kelola lifecycle dengan benar
π§ Narasi
Dengan mengikuti best practice, aplikasi akan lebih stabil dan responsif.
π Kesimpulan
Background Process dan Threading adalah konsep penting dalam pengembangan aplikasi mobile untuk menjaga performa dan responsivitas. Dengan menggunakan coroutine dan tools modern, pengembang dapat mengelola proses background dengan lebih efisien.
π― Latihan / Tugas
- Buat proses background sederhana
- Implementasikan coroutine untuk API
- Tampilkan loading saat proses berjalan
- Gunakan WorkManager untuk task berkala