Modul 4-API
Modul 4-API
A. Tujuan
1. Mahasiswa mengetahui apa itu API dan bagaimana cara mengimplementasikannya
ke Pengembangan Android
2. Mahasiswa Mampu memahami tahapan dalam membangun aplikasi Android dengan
menggunakan API.
B. Teori
Saat kita menarik data akan ada dua response yang diberikan yaitu OnSuccess() dan
OnFailure(). OnSuccess() berlaku ketika kita berhasil mendapatkan data dengan status
code 200, sedangkan OnFailure() akan mengembalikan status code seperti di bawah ini:
C. Praktikum
TUJUAN
Pada praktikum kali ini kita akan mencoba menarik data API dari GitHub User dan
menampilkan dengan ListView.
1. Buat proyek baru di Android Studio dengan kriteria sebagai berikut :
2. Kita akan menggunakan Library AsyncHttpClient (LoopJ) untuk menarik API dan
juga Library Glide untuk memuat gambar dari internet, silahkan tambahkan di
build.gradle :
1. implementation 'com.loopj.android:android-async-http:1.4.9'
2. implementation 'com.github.bumptech.glide:glide:4.12.0'
4. Setelah itu buat kelas baru dengan klik kanan pada package utama → New → Java
Class. Beri nama User setter & getter untuk setiap variabelnya. Silakan sesuaikan
kodenya seperti berikut :
1. public class User {
2. private String photo;
3. private String name;
4. private String type;
5.
6. public String getType() {
7. return type;
8. }
9. public String getName() {
10. return name;
11. }
12. public String getPhoto() {
13. return photo;
14. }
15. public void setPhoto(String photo) {
16. this.photo = photo;
17. }
18. public void setName(String name) {
19. this.name = name;
20. }
21. public void setType(String type) {
22. this.type = type;
23. }
24. }
5. Setelah itu buat berkas item_user.xml untuk tampilan list dengan cara klik kanan pada
direktori layout → new → layout resource file dan kemudian beri
nama item_user.xml. Sesuaikan kodenya seperti berikut :
1. <?xml version="1.0" encoding="utf-8"?>
2. <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
3. android:layout_width="match_parent"
4. android:layout_height="match_parent"
5. android:padding="16dp">
6.
7. <ImageView
8. android:id="@+id/img_photo"
9. android:layout_width="100dp"
10. android:layout_height="100dp"
11. android:scaleType="fitXY" />
12.
13. <TextView
14. android:id="@+id/txt_name"
15. android:layout_width="wrap_content"
16. android:layout_height="wrap_content"
17. android:layout_marginStart="26dp"
18. android:layout_toEndOf="@id/img_photo"
19. android:text="user"
20. android:textSize="18sp"
21. android:textStyle="bold" />
22.
23.
24. <TextView
25. android:id="@+id/txt_type"
26. android:layout_width="wrap_content"
27. android:layout_height="wrap_content"
28. android:layout_below="@id/txt_name"
29. android:layout_marginStart="26dp"
30. android:layout_marginTop="10dp"
31. android:layout_toRightOf="@id/img_photo"
32. android:ellipsize="end"
33. android:maxLines="3"
34. android:text="type" />
35. </RelativeLayout>
6. Selanjutnya kita akan mencoba menggunakan UserAdapter. Silakan buat kelas baru
klik kanan pada package utama → New → Java Class dan kemudian beri nama
UserAdapter. Kemudian buatlah setter & getter serta implement methods. Silakan
sesuaikan kodenya seperti berikut :
1. public class UserAdapter extends BaseAdapter {
2.
3. private Context context;
4. private ArrayList<User> users;
5.
6. public void setUsers(ArrayList<User> users) {
7. this.users = users;
8. }
9.
10. public UserAdapter(Context context) {
11. this.context = context;
12. users = new ArrayList<>();
13. }
14.
15. @Override
16. public int getCount() {
17. return 0;
18. }
19.
20. @Override
21. public Object getItem(int i) {
22. return null;
23. }
24.
25. @Override
26. public long getItemId(int i) {
27. return 0;
28. }
29.
30. @Override
31. public View getView(int i, View view, ViewGroup
viewGroup) {
32. return null;
33. }
34. }
Kemudian buat kelas ViewHolder di dalam kelas UserAdapter dan tambahkan kode
berikut:
9. Buatlah sebuah function getListUsers() untuk mengambil data dari API, kemudian
tambahkan header untuk token dan request pada method AsyncHttpClient().
1. private void getListUsers() {
2. progressBar.setVisibility(View.VISIBLE);
3. AsyncHttpClient client = new AsyncHttpClient();
4. String url = "https://api.github.com/users";
5. client.addHeader("Authorization", "token
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");
6. client.addHeader("User-Agent", "request");
7.
8. client.get(url, new AsyncHttpResponseHandler() {
9.
10. });
11. }
10. Akan terdapat error pada AsyncHttpResponseHandler() silahkan di klik dan tekan
alt + enter lalu Implement Methods. Hasilnya akan seperti ini
1. client.get(url, new AsyncHttpResponseHandler() {
2.
3. @Override
4. public void onSuccess(int statusCode, Header[] headers,
byte[] responseBody) {
5.
6. }
7.
8. @Override
9. public void onFailure(int statusCode, Header[] headers,
byte[] responseBody, Throwable error) {
10.
11. }
12. });
13.
15. Selesai, Jalankan aplikasi Github Users. Hasilnya akan seperti ini