Android Basic #3: Retrofit

Andre Saftari
Chevalier Lab
Published in
5 min readMay 7, 2021

Objectives:
Mengenal basic dari Android Retrofit

Aloha Chevas!

Selamat datang kembali di serial Android Basic. Bisa langsung ketebak dong, dari cover dan judulnya, ya gak? Nah kita mau mengenal sedikit tentang Retrofit di kesempatan kali ini. Kali ini kita santai, gak terlalu banyak kodingan kok 👌

Jadi, pada kesempatan kali ini, kita akan bahas basic Retrofit seperti komponen yang harus ada di project teman-teman apa saja? Kapan kita menggunakan library ini? Arsitektur yang nanti akan digunakan bersamaan dengan Retrofit tuh yang mana ya? Ini semua akan kita bahas santai…

Hah Retrofit? Apa itu?

Sebelum pusing ke pengenalan komponennya, kita kenalan dulu nih sama Retrofit . Jadi, Retrofit adalah “alat” agar Android app kita dengan RESTful Web Service dapat menjalin hubungan satu sama lain.

Detilnya, Retrofit adalah Type-safe REST API client yang dibuat khusus untuk Android dan Java, sehingga menggunakan Android + RESTful Web Service menjadi lebih mudah.

Btw… buat yang nanyain RESTful Web Service tuh apa sih? Nah, simple-nya bisa disebut Remote data source (sumber data yang disimpan di internet).

Bagaimana cara mengimplementasikan Retrofit ?

Sebelum masuk ke implementasi, kita perlu belajar dulu komponen dari library Retrofit apa aja sih? Library Retrofit atau yang sering dikenal dengan Retrofit saja, mempunya 3 komponen utama.

1. Config class / Retrofit configuration
2. DAO (Data Access Object) / API Endpoint
3. Model / API Response

API components

1. Retrofit Configuration

Komponen ini berfungsi untuk menginisalisasi dan mengkonfigurasi Retrofit client untuk menghubungkan BASE URL dari sebuah API dengan Endpoints (jalur API) yang ada di komponen DAO.

Selain konfigruasi API URL, di sini kita juga bisa setup “penangkap data” atau disebut Http Logger Interceptor untuk melihat data apa saja yang kita kirim dan kita ambil.

Retrofit Configuration Example

2. DAO (Data Access Object) / API Endpoint

DAO, komponen yang menghubungkan BASE URL ke tiap-tiap Endpoint API untuk mengakses data.

Untuk mendapatkan data yang kita mau, ada rute-rute (Endpoints) untuk mengaksesnya. Nah tapi selain rute, ada juga yang harus diperhatikan. Komponen lain yang harus diperhatikan adalah HTTP methods. Pada Retrofit, terdapat 4 anotasi HTTP methods, yaitu:

GET

Biasanya, method GET digunakan saat kita ingin mengambil data dari API. Seperti pada screenshot di bawah ini. Untuk mendapatkan list user Github, kita menggunakan @GET(“users”) dan @GET(“users/{username}”) untuk mendapatkan detail profil si user itu. Btw… yang ada di dalam kurung itu yang kita sebut Endpoints, jadi penulisannya @Methods(Endpoint: String)

DAO GET Example

POST

Temen-temen sering denger kata “Posting” kan? Nah, kalo kita mem-posting foto di sosial media, berarti kita mengirim foto tersebut ke sosial media. Method POST berperan seperti itu, saat kita menggunakan method ini, artinya kita mengirim data dari Android app ke API. Biasanya digunakan untuk login akun, register akun baru, checkout pesanan, atau bahkan mengirim feedback.

DAO POST Example

PUT

Namanya sedikit berbeda dengan method lainnya ya? Santai… Kalau biasanya temen-temen sering denger kata EDIT, nah PUT adalah EDIT. So, jelas yaaa fungsinya PUT adalah mengubah data yang sudah ada di API. Contoh paling mudahnya, saat kita ingin mengubah profil atau bio kita di suatu sosial media, nah disinilah method PUT beraksi.

DAO PUT Example

DELETE

Like the name itself… Delete artinya Hapus, itulah fungsi dari method ini. Dalam real-time, method ini biasa digunakan saat melakukan aksi yang berhubungan dengan penghapusan data, baik permanen maupun sementara. Contoh, misalkan kita menyimpan suatu produk dengan fitur “add to cart”, tetapi karena kita ingat kalau kita sedang menghemat, kita hapus seluruh isi cart, saat menghapus itulah method ini beraksi.

Note: Selain anotasi @GET, @POST, @PUT, dan @DELETE. Ada anotasi lain yaitu @Multipart yang hanya digunakan saat berinteraksi dengan API berupa Form-Data (contohnya pada screenshot method POST)

3. Model/Response

Komponen yang berperan menampung response data yang didapat setelah kita me-request ke API.

Data-data kembalian ini disebut sebagai response, dalam Android Kotlin, dibuat sebagai response data class, seperti di screenshot.

Response Model Example

Note: Setiap atribut dalam response model ini, harus memiliki variable yang sama seperti key pada API response saat melakukan request

Contoh kodingan-kodingan di atas, bisa teman-teman lihat di Github ini yak…
https://github.com/andresaftari/android-fundamental/tree/api-example

Nah… 3 komponen utamanya sudah kita bahas nih. Screenshot-screenshot di atas juga merupakan contoh dari kodingannya yaaaa. Apabila teman-teman mau mencoba langsung di Android Studio, tapi bingung mulai darimana, coba mampir salah satu dari 2 tutorial series di bawah ini:

1. Retrofit Basic

2. Retrofit + MVVM Architecture

Itu semua pengenalan untuk “Apa itu Retrofit?” dan “Komponennya apa aja sih?”. Ingat, Retrofit ini adalah salah satu library penting yang banyak digunakan oleh berbagai aplikasi Android, apalagi yang memiliki koneksi ke internet dan pertukaran data melalui internet. Anyway, sekian dulu untuk Android Basic #3 nya kali yaaa… Next partnya akan membahas apalagi kira-kira? Nahh, stay tune aja okee? Bye…

--

--