Wednesday, 15 June 2016

Cara POST Data menggunakan Retrofit 2 [Contoh : Proses Login]

Berselang satu hari dengan Tutorial GET data menggunakan Retrofit, kali ini saya akan membagikan cara POST data dengan Retrofit. Contoh kasus yang saya gunakan disini yaitu proses login sampe mendapatkan response dari API


Nah hasilnya itu seperti yang terlihat di video diatas. Oke mari kita mulai, apa saya yang diperlukan? bagaimana caranya?. Ikuti saja tutorial ini sampe selesai, niscaya kalian pasti mengerti.

Baca juga : Cara Insert Data Dari Android (Retrofit 2.0 POST) Ke Database Menggunakan Server PHP + MySQL

Compile beberapa library dibawah ini di build.gradle (apps):

compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'

Dibagian AndroidManifest.xml kalian tampahkan uses permission seperti dibawah ini :

Layout yang diperlukan antara lain :
  1. activity_main.xml > menampilkan tampilan utamanya
  2. item_answer.xml > menampilkan jawaban dari FAQ
  3. item_question.xml > menampilkan pertanyataan dari FAQ
File Java yang diperlukan antara lain :
  1. MainActivity.java > Segala proses Login dan passing di lakukan disini
  2. ApiClient.java > membuat client dan interceptor Retrofit
  3. Inteface ApiService.java > Inisialisasikan method POST retrofit
  4. LoggingInterceptors.java > melihat hasil dari proses di Log
  5. FaqModel.java > untuk menampung response Questions dan Answer
  6. ListFaqModel.java > untuk menampung List array dari FAQ
  7. ExpandAdapter.java > untuk menset question dan answer di Expandable

Kenapa perlu class LoggingInterceptors.java? karena diretrofit akan sulit mendeteksi outputnya (jikalau terjadi error2 tertentu kalian akan kebingungan untuk debugging nya). Makanya perlu class ini

Baca juga : Cara Menampilkan Data Dari Database Ke Android. Android Menggunakan Retrofit 2.0 (Method GET) Untuk Menggambil Data Dan Server Menggunakan PHP + MySQL

Oya sebelumnya kalian harus tau dl target kalian bentuk JSON nya seperti apa, sehingga akan mudah dalam membuat class modelnya.
Target URL kalian adalah :

http://private-fc41f-myprofile2.apiary-mock.com/loginsaya

Dengan required field username dan password

Target Response JSON yang akan kalian dapat bentuknya seperti ini :

Selanjutnya kita mulai proses kodingannya, ikuti step-step dibawah ini, pastikan kalian memahaminya ya, karena pemrograman itu bukan hanya sekedar copy and paste saja tapi understanding what you did and wrote.

Buat file xml beri nama activity_main.xml, ketikan kode dibawah ini :

Buat file xml baru beri nama item_answer.xml, ketikan kode dibawah ini :

Buat file xml baru beri name item_questions.xml, ketikan kode dibawah ini :

Selanjutnya, Kita buat semua file java. berikut ini adalah source code dari class-class java nya

Buat file java baru beri nama ApiClient.java, ketikan kode-kode dibawah ini :

Buat file java interface baru beri nama ApiService.java, ketikan kode dibawah ini :

Buat class java baru beri nama LoggingInterceptor.java, ketika kode dibawah ini :

Buat class java baru yang akan menampung setiap object FAQ, beri nama FaqModel.java, ketikan kode dibawah ini :

Karena bentuk API yang harus ada List untuk membungkus FaqModel.java, maka kita harus buatkan class yang berfungsi sebagai list nya yaitu ListFaqModel.java

Selanjutnya, buat sebuah class Adapter baru. Class Adapter berfungsi untuk menset data data yang telah didapat, beri nama ExpandAdapter.java

Selanjutnya adalah MainActivity.java yaitu tempat mengimplementasikan semua class dan interface

Jika sudah selesai dengan semuanya, silakan di jalankan projectnya melalu Android Studio kalian. Harusnya sih baik-baik saja ya, karena saya sebelum posting di blog, saya sudah coba dulu sebelumnya.

---------------
Nah, fungsi dari LoggingInterceptors.java bisa kalian lihat di Logcat Android Studio Kalian :


Support kami dengan cara like fans page :







Oke, sekian tutorial kali ini, jika ada sesuatu yang ingin ditanyakan silakan tulis komentar kalian. Happy coding! Have fun!

2 komentar

saya menggunakan cara ngepost mirip diatas namun selalu masuk ke onFailure, padahal data sudah berhasil dipost ke database, hasil dari LoggingInterceptors pun sudah muncul, namun tidak bisa masuk ke kondisi onRespnse

kadang banyak hal yg bisa bikin gagal gan. walopun prosesnya sudah benar.

Misalkan nama-nama atribut di database - json - Serialzed harus sama gan.

Saya sebelum posting ini juga mengalami error, errornya karna nama atribut list Question dan Answer tidak sama dengan di json

Please post a polite comment and do not post a spam
EmoticonEmoticon