Study
Jetpack Compose

Fetching Data dengan Retrofit

Penjelasan

Retrofit adalah library HTTP client paling populer di ekosistem Android — endpoint API didefinisikan sebagai interface dengan annotation (@GET, @POST), Retrofit otomatis men-generate implementasinya. Dikombinasikan dengan suspend fun (coroutine Kotlin) dan dipanggil dari ViewModel lewat viewModelScope.

Contoh Konsep

interface ApiService {
    @GET("produk")
    suspend fun ambilProduk(): List<ProdukDto>
}

class ProdukViewModel(private val api: ApiService) : ViewModel() {
    private val _produk = MutableStateFlow<List<ProdukDto>>(emptyList())
    val produk: StateFlow<List<ProdukDto>> = _produk

    fun ambilProduk() {
        viewModelScope.launch {
            _produk.value = api.ambilProduk()
        }
    }
}

Praktikum

Buat interface ApiService dengan suspend fun ambilArtikel(): List<ArtikelDto> ditandai @GET("artikel"). Buat ArtikelViewModel yang memanggilnya lewat viewModelScope.launch, hasilnya disimpan ke MutableStateFlow.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

viewModelScope.launch { } penting dipakai (bukan GlobalScope atau coroutine scope lain) karena coroutine yang dijalankan di dalamnya OTOMATIS DIBATALKAN saat ViewModel-nya dihancurkan (mis. user keluar dari layar) — mencegah kebocoran coroutine yang terus jalan padahal UI-nya sudah tidak ada.