SlideShare a Scribd company logo
1 of 10
Download to read offline
Praktikum ANDROID 
ANDROID 
FOR 
BEGINNER MODUL 11 
! 
[ANDROID WORKING WITH JSON API] 
!!!!! 
SUDARYATNO 
yatnosudar@gmail.com | @dodulz | facebook : yatno.sudar 
Page 1 of 10
Praktikum ANDROID 
ANDROID WORKING WITH JSON API 
! 
NETWORKING 
Android memiliki fasilitas untuk akses jaringan intranet maupun internet. Akses yang digunakan 
pun beragam mulai dari Socket sampai protokol HTTP. Banyak dari aplikasi android 
menggunakan protokol HTTP. Protokol ini sering digunakan untuk upload dan download. Untuk 
mengakses jaringan, kita harus menambahkan permission di AndroidManifest.xml. 
uses-permission android:name=android.permission.INTERNET /! 
uses-permission android:name=android.permission.ACCESS_NETWORK_STATE / 
Untuk mengetahui apakah android terhubung dengan internet atau tidak, kita dapat cek dengan 
code berikut : 
Tips, lakukan proses networking di background service. Gunakan class AsynTask agar proses 
yang dilakukan activity tidak membuat aplikasi kita error. 
! 
JSON API 
JSON (JavaScript Object Notation) digunakan sebagai media penghubung antara aplikasi 
client dan aplikasi server. Keuntungan dari JSON API lebih ringan dibanding webservice 
menggunakan XML. Beberapa contoh platform yang sudah memanfaatkan teknologi JSON seprti 
Twitter, Facebook , Instagram, dan lain-lain. 
JSON memiliki sturktur yang terdiri Object dan Array. Objet merupakan data tunggal, 
sedangkan Array terdiri dari dari banyak Object. Berikut ini contoh dari JSON. JSON Object 
ditandai dengan kurung siku “ [ ] ” sedangkan JSON Object ditandai dengan kurung kurawal “ { } ”. 
!! 
Page 2 of 10 
ConnectivityManager connMgr = (ConnectivityManager) ! 
getSystemService(Context.CONNECTIVITY_SERVICE);! 
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();! 
if (networkInfo != null  networkInfo.isConnected()) {! 
// fetch data! 
} else {! 
// display error! 
}
Praktikum ANDROID 
Pada JSON diatas, terdiri dari JSON Object dan JSON Array. contacts merupakan JSON Array , id, 
name, email, address, gender, phone, mobile, home, office merupakan JSON Object. JSON class di 
android terdiri dari dua class, JSONArray dan JSONObject. 
! 
Android Asynchronous Http Client 
Adalah library third party yang dibuat oleh James Smith digunakan untuk melakukan akses ke 
JSON API dengan mudah. Library ini bersifat Asynchronous yang artinya setiap proses logic yang 
dilakukan, diselesaikan tanpa ada prosesi menunggu untuk menyelesaikan proses logic dan 
dapat melakukan proses logic yang lain. Namun proses logic akan memberikan callback atau 
informasi di kemudian waktu jika proses sudah selesai. 
! 
Contoh di kehidupan nyata sebagai berikut: 
Dalam sebuah antrian rumah sakit, untuk menemui dokter kita diwajibkan ke resepsionis dulu 
untuk mengisi data diri baru selanjutnnya menemui dokter. Data diri yang harus di isi ada lima 
lembar. dan panjang antrian adalah 100 pasien. 
! 
Page 3 of 10 
{ 
contacts: [ 
{ 
id: c200, 
name: Ravi Tamada, 
email: ravi@gmail.com, 
address: xx-xx-xxxx,x - street, x - country, 
gender : male, 
phone: { 
mobile: +91 0000000000, 
home: 00 000000, 
office: 00 000000 
} 
}, 
{ 
id: c201, 
name: Johnny Depp, 
email: johnny_depp@gmail.com, 
address: xx-xx-xxxx,x - street, x - country, 
gender : male, 
phone: { 
mobile: +91 0000000000, 
home: 00 000000, 
office: 00 000000 
} 
} 
] 
}
Praktikum ANDROID 
A. Penyelesaian Synchronous 
Jika diselesaikan secara Synchronous setiap antrian akan mengantri di resepsionis untuk 
mengisi data diri sebanyak lima lembar. untuk kemudian selanjutnnya menemui dokter. Bisa di 
bayangkan berapa lama waktu yang dibutuhkan untuk si pasien ke 100 bisa menemui dokter. 
B. Penyelesaian Asynchronous 
Jika diselesaikan secara Asynchronous setiap antrian akan mengambil formulir biodata. Dan diisi 
secara mandiri tanpa perlu mengantri di resepsionis. setelah selesai mengisi kemudian 
diserahkan keresepsionis dan diperbolehkan untuk menemui dokter. 
! 
Untuk mendownload library ini bisa di situs http://loopj.com/android-async-http/. Berikut ini 
adalah fitur yang dapat anda gunakan untuk keperluan Http Client di android : 
! 
• Make asynchronous HTTP requests, handle responses in anonymous callbacks 
• HTTP requests happen outside the UI thread 
• Requests use a threadpool to cap concurrent resource usage 
• GET/POST params builder (RequestParams) 
• Multipart file uploads with no additional third party libraries 
• Tiny size overhead to your application, only 25kb for everything 
• Automatic smart request retries optimized for spotty mobile connections 
• Automatic gzip response decoding support for super-fast requests 
• Binary file (images etc) downloading with BinaryHttpResponseHandler 
• Built-in response parsing into JSON with JsonHttpResponseHandler 
• Persistent cookie store, saves cookies into your app’s SharedPreferences 
!! 
Page 4 of 10
Praktikum ANDROID 
PRAKTIKUM 
! Tujuan : Dapat menggunakan Library Asynchronous Http Client untuk keperluan API dan dapat 
memahami bentuk-bentuk dari JSON! 
Scope : AndroidHttpClient, JSONObject, JSONArray, ListView, AsynTask! ! 
1. Buat project baru! 
2. Edit activity_main.xml dengan code berikut :! 
RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android 
3. Buat file layout dengan nama item_contact.xml dengan code berikut :! 
Page 5 of 10 
xmlns:tools=http://schemas.android.com/tools 
android:layout_width=match_parent 
android:layout_height=match_parent 
android:paddingBottom=@dimen/activity_vertical_margin 
android:paddingLeft=@dimen/activity_horizontal_margin 
android:paddingRight=@dimen/activity_horizontal_margin 
android:paddingTop=@dimen/activity_vertical_margin 
tools:context=.MainActivity  
ListView 
android:id=@+id/list_contact 
android:layout_width=match_parent 
android:layout_height=wrap_content 
android:layout_alignParentBottom=true 
android:layout_alignParentRight=true 
android:visibility=gone  
/ListView 
ProgressBar 
android:id=@+id/progressbar 
android:layout_width=wrap_content 
android:layout_height=wrap_content 
android:layout_centerHorizontal=true 
android:layout_centerVertical=true / 
/RelativeLayout 
?xml version=1.0 encoding=utf-8? 
LinearLayout xmlns:android=http://schemas.android.com/apk/res/android 
android:layout_width=match_parent 
android:layout_height=match_parent 
android:orientation=vertical 
TextView 
android:id=@+id/nama 
android:layout_width=match_parent 
android:layout_height=wrap_content 
android:textAppearance=?android:attr/textAppearanceMedium / 
TextView 
android:id=@+id/email 
android:layout_width=match_parent 
android:layout_height=wrap_content
Praktikum ANDROID 
android:textAppearance=?android:attr/textAppearanceSmall / 
4. Buat file Contacts dengan code sebagai berikut :! 
Page 6 of 10 
TextView 
android:id=@+id/ponsel 
android:layout_width=match_parent 
android:layout_height=wrap_content 
android:textAppearance=?android:attr/textAppearanceSmall / 
/LinearLayout 
public class Contacts { 
public String id; 
public String name; 
public String email; 
public String address; 
public String gender; 
public String phone_mobile; 
public String phone_home; 
public String office; 
public String getId() { 
return id; 
} 
public void setId(String id) { 
this.id = id; 
} 
public String getName() { 
return name; 
} 
public void setName(String name) { 
this.name = name; 
} 
public String getEmail() { 
return email; 
} 
public void setEmail(String email) { 
this.email = email; 
} 
public String getAddress() { 
return address; 
} 
public void setAddress(String address) { 
this.address = address; 
} 
public String getGender() { 
return gender; 
} 
public void setGender(String gender) { 
this.gender = gender; 
}
Praktikum ANDROID 
5. Buat file AdapterContacts dengan code berikut :! 
Page 7 of 10 
public String getPhone_mobile() { 
return phone_mobile; 
} 
public void setPhone_mobile(String phone_mobile) { 
this.phone_mobile = phone_mobile; 
} 
public String getPhone_home() { 
return phone_home; 
} 
public void setPhone_home(String phone_home) { 
this.phone_home = phone_home; 
} 
public String getOffice() { 
return office; 
} 
public void setOffice(String office) { 
this.office = office; 
} 
} 
public class AdapterContacts extends ArrayAdapterContacts{ 
public Activity context; 
public int textViewResourceId = R.layout.item_contacts; 
public AdapterContacts(Activity context, int textViewResourceId) { 
super(context, textViewResourceId); 
this.context = context; 
this.textViewResourceId = textViewResourceId; 
} 
class ViewHolder{ 
public TextView nama; 
public TextView mobile; 
public TextView email; 
} 
@Override 
public View getView(int position, View convertView, ViewGroup 
parent) { 
View view = convertView; 
if (view==null) { 
LayoutInflater inflater = context.getLayoutInflater(); 
view = inflater.inflate(textViewResourceId, parent, 
false); 
ViewHolder vh = new ViewHolder(); 
vh.email = (TextView) view.findViewById(R.id.email); 
vh.nama = (TextView) view.findViewById(R.id.nama); 
vh.mobile = (TextView) view.findViewById(R.id.ponsel);
Praktikum ANDROID 
6. Edit MainActivity dengan code berikut :! 
! 
Page 8 of 10 
view.setTag(vh); 
}else{ 
view = convertView; 
} 
Contacts contacts= getItem(position); 
ViewHolder vc =(ViewHolder) view.getTag(); 
vc.email.setText(contacts.getEmail()); 
vc.nama.setText(contacts.getName()); 
vc.mobile.setText(contacts.getPhone_mobile()); 
return view; 
} 
} 
public class MainActivity extends Activity { 
! 
private ListView list; 
private AdapterContacts adapter; 
private ProgressBar progressBar; 
! 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
! 
list = (ListView) findViewById(R.id.list_contact); 
progressBar = (ProgressBar) findViewById(R.id.progressbar); 
adapter = new AdapterContacts(MainActivity.this, 
R.layout.item_contacts); 
list.setAdapter(adapter); 
! 
new bg_process().execute(http://api.androidhive.info/ 
contacts/); 
} 
! 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
// Inflate the menu; this adds items to the action bar if it 
is present. 
getMenuInflater().inflate(R.menu.main, menu); 
return true; 
}
Praktikum ANDROID 
! 
Page 9 of 10 
class bg_process extends AsyncTaskString, Contacts, Boolean { 
@Override 
protected Boolean doInBackground(final String... params) { 
runOnUiThread(new Runnable() { 
@Override 
public void run() { 
AsyncHttpClient client = new AsyncHttpClient(); 
client.get(params[0], new JsonHttpResponseHandler() { 
@Override 
public void onSuccess(JSONObject response) { 
progressBar.setVisibility(View.GONE); 
list.setVisibility(View.VISIBLE); 
try { 
JSONArray jsonArray = response.getJSONArray(“contacts); 
for (int i = 0; i  jsonArray.length(); i++) { 
Contacts contacts = new Contacts(); 
JSONObject jsonObject = jsonArray.getJSONObject(i); 
contacts.setId(jsonObject.getString(id)); 
contacts.setName(jsonObject.getString(name)); 
contacts.setEmail(jsonObject.getString(email)); 
contacts.setGender(jsonObject.getString(gender)); 
contacts.setAddress(jsonObject.getString(address)); 
contacts.setPhone_home(jsonObject.getJSONObject(“phone) 
.getString(home)); 
contacts.setPhone_mobile(jsonObject.getJSONObject(“phone) 
.getString(mobile)); 
contacts.setOffice(jsonObject.getJSONObject(“phone) 
.getString(office)); 
publishProgress(contacts); 
} 
} catch (JSONException e) { 
e.printStackTrace(); 
} 
super.onSuccess(response); 
} 
}); 
} 
}); 
return null; 
} 
@Override 
protected void onProgressUpdate(Contacts... values) { 
adapter.add(values[0]); 
super.onProgressUpdate(values); 
} 
} 
}
Praktikum ANDROID 
7. Jalankan Aplikasi ! 
Tugas :! ! 
1. Buat halaman detail dari contact! 
2. Hubungkan halaman detail dengan setOnItemClickListener! 
3. Simpulkan fungsi dari View.GONE dan View.VISIBLE 
Page 10 of 10

More Related Content

What's hot

Modul praktikum 4 - Android Sudaryatno
Modul praktikum 4 - Android SudaryatnoModul praktikum 4 - Android Sudaryatno
Modul praktikum 4 - Android SudaryatnoYatno Sudar
 
Modul praktikum 8 - Android Sudaryatno
Modul praktikum 8 - Android SudaryatnoModul praktikum 8 - Android Sudaryatno
Modul praktikum 8 - Android SudaryatnoYatno Sudar
 
Modul praktikum 3 - Android Sudaryatno
Modul praktikum 3 - Android SudaryatnoModul praktikum 3 - Android Sudaryatno
Modul praktikum 3 - Android SudaryatnoYatno Sudar
 
Belajar Android Membuat Katalog Produk
Belajar Android Membuat Katalog ProdukBelajar Android Membuat Katalog Produk
Belajar Android Membuat Katalog ProdukAgus Haryanto
 
Modul praktikum 14 - Android Sudaryatno
Modul praktikum 14 - Android SudaryatnoModul praktikum 14 - Android Sudaryatno
Modul praktikum 14 - Android SudaryatnoYatno Sudar
 
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLiteCara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLitecreatorb dev
 
Aplikasi Cuaca dan Quiz Android
Aplikasi Cuaca dan Quiz AndroidAplikasi Cuaca dan Quiz Android
Aplikasi Cuaca dan Quiz Androidrivalbamen
 
Live coding andorid
Live coding andoridLive coding andorid
Live coding andoridArif Huda
 
Tutorial Cara Membuat Aplikasi RSS Android - creatorb
Tutorial Cara Membuat Aplikasi RSS Android - creatorbTutorial Cara Membuat Aplikasi RSS Android - creatorb
Tutorial Cara Membuat Aplikasi RSS Android - creatorbcreatorb dev
 
Kenalan Dengan Firebase Android
Kenalan Dengan Firebase AndroidKenalan Dengan Firebase Android
Kenalan Dengan Firebase AndroidAgus Haryanto
 
Belajar Android Studio Memberi Efek animasi pada Button
Belajar Android Studio Memberi Efek animasi pada ButtonBelajar Android Studio Memberi Efek animasi pada Button
Belajar Android Studio Memberi Efek animasi pada ButtonAgus Haryanto
 
Android membuat-aplikasi-sederhana
Android membuat-aplikasi-sederhanaAndroid membuat-aplikasi-sederhana
Android membuat-aplikasi-sederhanaRobby Febrian
 
Modul praktikum 10 - Android Sudaryatno
Modul praktikum 10 - Android SudaryatnoModul praktikum 10 - Android Sudaryatno
Modul praktikum 10 - Android SudaryatnoYatno Sudar
 
Belajar android studio dengan membuat aplikasi android sederhana
Belajar android studio dengan membuat aplikasi android sederhanaBelajar android studio dengan membuat aplikasi android sederhana
Belajar android studio dengan membuat aplikasi android sederhanaslempase
 
Tutorial Lengkap Cara Membuat Aplikasi Android Sederhana
Tutorial Lengkap Cara Membuat Aplikasi Android SederhanaTutorial Lengkap Cara Membuat Aplikasi Android Sederhana
Tutorial Lengkap Cara Membuat Aplikasi Android Sederhanacreatorb dev
 
Belajar Android PHP MySQL Login dengan Volley
Belajar Android PHP MySQL Login dengan VolleyBelajar Android PHP MySQL Login dengan Volley
Belajar Android PHP MySQL Login dengan VolleyAgus Haryanto
 
Tutorial Android Membuat Aplikasi senter Flash light
Tutorial Android Membuat Aplikasi senter Flash lightTutorial Android Membuat Aplikasi senter Flash light
Tutorial Android Membuat Aplikasi senter Flash lightAgus Haryanto
 
Layout, listview, gridview, and adapter
Layout, listview, gridview, and adapterLayout, listview, gridview, and adapter
Layout, listview, gridview, and adapterGoogle
 
Pertemuan 11 thread dan asyntask
Pertemuan 11 thread dan asyntaskPertemuan 11 thread dan asyntask
Pertemuan 11 thread dan asyntaskheriakj
 
Belajar Android Studio - Membuat Aplikasi Android Sederhana
Belajar Android Studio - Membuat Aplikasi Android SederhanaBelajar Android Studio - Membuat Aplikasi Android Sederhana
Belajar Android Studio - Membuat Aplikasi Android SederhanaAgus Haryanto
 

What's hot (20)

Modul praktikum 4 - Android Sudaryatno
Modul praktikum 4 - Android SudaryatnoModul praktikum 4 - Android Sudaryatno
Modul praktikum 4 - Android Sudaryatno
 
Modul praktikum 8 - Android Sudaryatno
Modul praktikum 8 - Android SudaryatnoModul praktikum 8 - Android Sudaryatno
Modul praktikum 8 - Android Sudaryatno
 
Modul praktikum 3 - Android Sudaryatno
Modul praktikum 3 - Android SudaryatnoModul praktikum 3 - Android Sudaryatno
Modul praktikum 3 - Android Sudaryatno
 
Belajar Android Membuat Katalog Produk
Belajar Android Membuat Katalog ProdukBelajar Android Membuat Katalog Produk
Belajar Android Membuat Katalog Produk
 
Modul praktikum 14 - Android Sudaryatno
Modul praktikum 14 - Android SudaryatnoModul praktikum 14 - Android Sudaryatno
Modul praktikum 14 - Android Sudaryatno
 
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLiteCara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
 
Aplikasi Cuaca dan Quiz Android
Aplikasi Cuaca dan Quiz AndroidAplikasi Cuaca dan Quiz Android
Aplikasi Cuaca dan Quiz Android
 
Live coding andorid
Live coding andoridLive coding andorid
Live coding andorid
 
Tutorial Cara Membuat Aplikasi RSS Android - creatorb
Tutorial Cara Membuat Aplikasi RSS Android - creatorbTutorial Cara Membuat Aplikasi RSS Android - creatorb
Tutorial Cara Membuat Aplikasi RSS Android - creatorb
 
Kenalan Dengan Firebase Android
Kenalan Dengan Firebase AndroidKenalan Dengan Firebase Android
Kenalan Dengan Firebase Android
 
Belajar Android Studio Memberi Efek animasi pada Button
Belajar Android Studio Memberi Efek animasi pada ButtonBelajar Android Studio Memberi Efek animasi pada Button
Belajar Android Studio Memberi Efek animasi pada Button
 
Android membuat-aplikasi-sederhana
Android membuat-aplikasi-sederhanaAndroid membuat-aplikasi-sederhana
Android membuat-aplikasi-sederhana
 
Modul praktikum 10 - Android Sudaryatno
Modul praktikum 10 - Android SudaryatnoModul praktikum 10 - Android Sudaryatno
Modul praktikum 10 - Android Sudaryatno
 
Belajar android studio dengan membuat aplikasi android sederhana
Belajar android studio dengan membuat aplikasi android sederhanaBelajar android studio dengan membuat aplikasi android sederhana
Belajar android studio dengan membuat aplikasi android sederhana
 
Tutorial Lengkap Cara Membuat Aplikasi Android Sederhana
Tutorial Lengkap Cara Membuat Aplikasi Android SederhanaTutorial Lengkap Cara Membuat Aplikasi Android Sederhana
Tutorial Lengkap Cara Membuat Aplikasi Android Sederhana
 
Belajar Android PHP MySQL Login dengan Volley
Belajar Android PHP MySQL Login dengan VolleyBelajar Android PHP MySQL Login dengan Volley
Belajar Android PHP MySQL Login dengan Volley
 
Tutorial Android Membuat Aplikasi senter Flash light
Tutorial Android Membuat Aplikasi senter Flash lightTutorial Android Membuat Aplikasi senter Flash light
Tutorial Android Membuat Aplikasi senter Flash light
 
Layout, listview, gridview, and adapter
Layout, listview, gridview, and adapterLayout, listview, gridview, and adapter
Layout, listview, gridview, and adapter
 
Pertemuan 11 thread dan asyntask
Pertemuan 11 thread dan asyntaskPertemuan 11 thread dan asyntask
Pertemuan 11 thread dan asyntask
 
Belajar Android Studio - Membuat Aplikasi Android Sederhana
Belajar Android Studio - Membuat Aplikasi Android SederhanaBelajar Android Studio - Membuat Aplikasi Android Sederhana
Belajar Android Studio - Membuat Aplikasi Android Sederhana
 

Viewers also liked

Modul praktikum 9 - Android Sudaryatno
Modul praktikum 9 - Android SudaryatnoModul praktikum 9 - Android Sudaryatno
Modul praktikum 9 - Android SudaryatnoYatno Sudar
 
Fundamental android application development
Fundamental android application developmentFundamental android application development
Fundamental android application developmentGoogle
 
Laporan praktikum modul 4
Laporan praktikum modul 4Laporan praktikum modul 4
Laporan praktikum modul 4Devi Apriansyah
 
Laporan pratikum v mulmet
Laporan pratikum v mulmetLaporan pratikum v mulmet
Laporan pratikum v mulmetrahmi wahyuni
 
Laporan praktikum ii visual
Laporan praktikum ii visualLaporan praktikum ii visual
Laporan praktikum ii visualrahmi wahyuni
 
Pengenalan android ndk
Pengenalan android ndkPengenalan android ndk
Pengenalan android ndkGoogle
 
MVVM Core By GITS-Indonesia
MVVM Core By GITS-IndonesiaMVVM Core By GITS-Indonesia
MVVM Core By GITS-IndonesiaYatno Sudar
 
Laporan praktikum iv.1 visual
Laporan praktikum iv.1 visualLaporan praktikum iv.1 visual
Laporan praktikum iv.1 visualrahmi wahyuni
 
Laporan praktikum iv.2 visual
Laporan praktikum iv.2 visualLaporan praktikum iv.2 visual
Laporan praktikum iv.2 visualrahmi wahyuni
 
Modul praktikum 11 hashing table
Modul praktikum 11 hashing tableModul praktikum 11 hashing table
Modul praktikum 11 hashing tablerahmi wahyuni
 
Laporan praktikum iii visual basic
Laporan praktikum iii visual basicLaporan praktikum iii visual basic
Laporan praktikum iii visual basicrahmi wahyuni
 
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)Agus Haryanto
 

Viewers also liked (14)

Modul praktikum 9 - Android Sudaryatno
Modul praktikum 9 - Android SudaryatnoModul praktikum 9 - Android Sudaryatno
Modul praktikum 9 - Android Sudaryatno
 
Fundamental android application development
Fundamental android application developmentFundamental android application development
Fundamental android application development
 
Laporan praktikum modul 4
Laporan praktikum modul 4Laporan praktikum modul 4
Laporan praktikum modul 4
 
Laporan pratikum v mulmet
Laporan pratikum v mulmetLaporan pratikum v mulmet
Laporan pratikum v mulmet
 
Laporan praktikum ii visual
Laporan praktikum ii visualLaporan praktikum ii visual
Laporan praktikum ii visual
 
Modul android
Modul android Modul android
Modul android
 
Pengenalan android ndk
Pengenalan android ndkPengenalan android ndk
Pengenalan android ndk
 
MVVM Core By GITS-Indonesia
MVVM Core By GITS-IndonesiaMVVM Core By GITS-Indonesia
MVVM Core By GITS-Indonesia
 
Laporan praktikum iv.1 visual
Laporan praktikum iv.1 visualLaporan praktikum iv.1 visual
Laporan praktikum iv.1 visual
 
Laporan praktikum iv.2 visual
Laporan praktikum iv.2 visualLaporan praktikum iv.2 visual
Laporan praktikum iv.2 visual
 
Laporan p1
Laporan p1Laporan p1
Laporan p1
 
Modul praktikum 11 hashing table
Modul praktikum 11 hashing tableModul praktikum 11 hashing table
Modul praktikum 11 hashing table
 
Laporan praktikum iii visual basic
Laporan praktikum iii visual basicLaporan praktikum iii visual basic
Laporan praktikum iii visual basic
 
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
 

Similar to Modul praktikum 11 - Android Sudaryatno

Octav android mysql
Octav android mysqlOctav android mysql
Octav android mysqlrikysp
 
Hitung Ongkos Kirim Menggunakan API rajaongkir.com dengan PHP+JQUERY
Hitung Ongkos Kirim Menggunakan API rajaongkir.com dengan PHP+JQUERYHitung Ongkos Kirim Menggunakan API rajaongkir.com dengan PHP+JQUERY
Hitung Ongkos Kirim Menggunakan API rajaongkir.com dengan PHP+JQUERYYusuf A.H.
 
Tugas 3 – 0317 (individu)
Tugas 3 – 0317 (individu)Tugas 3 – 0317 (individu)
Tugas 3 – 0317 (individu)Linda Lestari
 
Tugas 2 rekayasa web 0316
Tugas 2 rekayasa web 0316Tugas 2 rekayasa web 0316
Tugas 2 rekayasa web 0316art david
 
Nordrassil project web pembangkit ddl dan kode sumber aplikasi basis data
Nordrassil project  web pembangkit ddl dan kode sumber aplikasi basis dataNordrassil project  web pembangkit ddl dan kode sumber aplikasi basis data
Nordrassil project web pembangkit ddl dan kode sumber aplikasi basis dataTri Y. Evelina
 
Tugas4 1300631024
Tugas4 1300631024Tugas4 1300631024
Tugas4 1300631024Wika Anggya
 
Tugas i rekayasa web arie firmandani
Tugas i rekayasa web arie firmandaniTugas i rekayasa web arie firmandani
Tugas i rekayasa web arie firmandaniArie Firmandani
 
Tugas 3 matkul rekayasa web 0317
Tugas 3 matkul rekayasa web 0317Tugas 3 matkul rekayasa web 0317
Tugas 3 matkul rekayasa web 0317esti setiasih
 
Panduan lengkap php ajax j query
Panduan lengkap php ajax j queryPanduan lengkap php ajax j query
Panduan lengkap php ajax j queryfadhilmaulana
 
2 panduan lengkap php ajax j query
2 panduan lengkap php ajax j query2 panduan lengkap php ajax j query
2 panduan lengkap php ajax j queryFajar Baskoro
 
Pengertian Internet Bab II
Pengertian Internet Bab IIPengertian Internet Bab II
Pengertian Internet Bab IIdevilpowerz
 
Tugas 4 JSON Zakaria
Tugas 4 JSON ZakariaTugas 4 JSON Zakaria
Tugas 4 JSON ZakariaZakky Kurnain
 
Tugas3 (individu)-andrian lesmana-1311510448
Tugas3 (individu)-andrian lesmana-1311510448Tugas3 (individu)-andrian lesmana-1311510448
Tugas3 (individu)-andrian lesmana-1311510448Andrian Lesmana
 
Proposal PA reynold syahputra
Proposal PA reynold syahputraProposal PA reynold syahputra
Proposal PA reynold syahputraReynold Syahputra
 
Proposal PA reynold syahputra
Proposal PA reynold syahputraProposal PA reynold syahputra
Proposal PA reynold syahputraReynold Syahputra
 
Laporan pemrograman visual3
Laporan pemrograman visual3Laporan pemrograman visual3
Laporan pemrograman visual3Fenty Hidayati
 

Similar to Modul praktikum 11 - Android Sudaryatno (20)

Octav android mysql
Octav android mysqlOctav android mysql
Octav android mysql
 
Hitung Ongkos Kirim Menggunakan API rajaongkir.com dengan PHP+JQUERY
Hitung Ongkos Kirim Menggunakan API rajaongkir.com dengan PHP+JQUERYHitung Ongkos Kirim Menggunakan API rajaongkir.com dengan PHP+JQUERY
Hitung Ongkos Kirim Menggunakan API rajaongkir.com dengan PHP+JQUERY
 
386 668-1-sm
386 668-1-sm386 668-1-sm
386 668-1-sm
 
Tugas 3 – 0317 (individu)
Tugas 3 – 0317 (individu)Tugas 3 – 0317 (individu)
Tugas 3 – 0317 (individu)
 
Tugas 2 rekayasa web 0316
Tugas 2 rekayasa web 0316Tugas 2 rekayasa web 0316
Tugas 2 rekayasa web 0316
 
Nordrassil project web pembangkit ddl dan kode sumber aplikasi basis data
Nordrassil project  web pembangkit ddl dan kode sumber aplikasi basis dataNordrassil project  web pembangkit ddl dan kode sumber aplikasi basis data
Nordrassil project web pembangkit ddl dan kode sumber aplikasi basis data
 
Tugas4 1300631024
Tugas4 1300631024Tugas4 1300631024
Tugas4 1300631024
 
Tugas i rekayasa web arie firmandani
Tugas i rekayasa web arie firmandaniTugas i rekayasa web arie firmandani
Tugas i rekayasa web arie firmandani
 
Pemrograman android
Pemrograman androidPemrograman android
Pemrograman android
 
Tugas 3 matkul rekayasa web 0317
Tugas 3 matkul rekayasa web 0317Tugas 3 matkul rekayasa web 0317
Tugas 3 matkul rekayasa web 0317
 
Panduan lengkap php ajax j query
Panduan lengkap php ajax j queryPanduan lengkap php ajax j query
Panduan lengkap php ajax j query
 
2 panduan lengkap php ajax j query
2 panduan lengkap php ajax j query2 panduan lengkap php ajax j query
2 panduan lengkap php ajax j query
 
Amazon Web Services
Amazon Web ServicesAmazon Web Services
Amazon Web Services
 
Pengertian Internet Bab II
Pengertian Internet Bab IIPengertian Internet Bab II
Pengertian Internet Bab II
 
Tugas 4 JSON Zakaria
Tugas 4 JSON ZakariaTugas 4 JSON Zakaria
Tugas 4 JSON Zakaria
 
Pertemuan 1
Pertemuan 1Pertemuan 1
Pertemuan 1
 
Tugas3 (individu)-andrian lesmana-1311510448
Tugas3 (individu)-andrian lesmana-1311510448Tugas3 (individu)-andrian lesmana-1311510448
Tugas3 (individu)-andrian lesmana-1311510448
 
Proposal PA reynold syahputra
Proposal PA reynold syahputraProposal PA reynold syahputra
Proposal PA reynold syahputra
 
Proposal PA reynold syahputra
Proposal PA reynold syahputraProposal PA reynold syahputra
Proposal PA reynold syahputra
 
Laporan pemrograman visual3
Laporan pemrograman visual3Laporan pemrograman visual3
Laporan pemrograman visual3
 

More from Yatno Sudar

Introduction Data Warehouse With BigQuery
Introduction Data Warehouse With BigQueryIntroduction Data Warehouse With BigQuery
Introduction Data Warehouse With BigQueryYatno Sudar
 
Introduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform AppsIntroduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform AppsYatno Sudar
 
Chatbot With Dialogflow
Chatbot With DialogflowChatbot With Dialogflow
Chatbot With DialogflowYatno Sudar
 
Dialog Flow - GITS Indonesia
Dialog Flow - GITS IndonesiaDialog Flow - GITS Indonesia
Dialog Flow - GITS IndonesiaYatno Sudar
 
Technical Feasibility For Product
Technical Feasibility For ProductTechnical Feasibility For Product
Technical Feasibility For ProductYatno Sudar
 
Cloud Function For Firebase - GITS
Cloud Function For Firebase - GITSCloud Function For Firebase - GITS
Cloud Function For Firebase - GITSYatno Sudar
 

More from Yatno Sudar (7)

Slack Time
Slack TimeSlack Time
Slack Time
 
Introduction Data Warehouse With BigQuery
Introduction Data Warehouse With BigQueryIntroduction Data Warehouse With BigQuery
Introduction Data Warehouse With BigQuery
 
Introduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform AppsIntroduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform Apps
 
Chatbot With Dialogflow
Chatbot With DialogflowChatbot With Dialogflow
Chatbot With Dialogflow
 
Dialog Flow - GITS Indonesia
Dialog Flow - GITS IndonesiaDialog Flow - GITS Indonesia
Dialog Flow - GITS Indonesia
 
Technical Feasibility For Product
Technical Feasibility For ProductTechnical Feasibility For Product
Technical Feasibility For Product
 
Cloud Function For Firebase - GITS
Cloud Function For Firebase - GITSCloud Function For Firebase - GITS
Cloud Function For Firebase - GITS
 

Modul praktikum 11 - Android Sudaryatno

  • 1. Praktikum ANDROID ANDROID FOR BEGINNER MODUL 11 ! [ANDROID WORKING WITH JSON API] !!!!! SUDARYATNO yatnosudar@gmail.com | @dodulz | facebook : yatno.sudar Page 1 of 10
  • 2. Praktikum ANDROID ANDROID WORKING WITH JSON API ! NETWORKING Android memiliki fasilitas untuk akses jaringan intranet maupun internet. Akses yang digunakan pun beragam mulai dari Socket sampai protokol HTTP. Banyak dari aplikasi android menggunakan protokol HTTP. Protokol ini sering digunakan untuk upload dan download. Untuk mengakses jaringan, kita harus menambahkan permission di AndroidManifest.xml. uses-permission android:name=android.permission.INTERNET /! uses-permission android:name=android.permission.ACCESS_NETWORK_STATE / Untuk mengetahui apakah android terhubung dengan internet atau tidak, kita dapat cek dengan code berikut : Tips, lakukan proses networking di background service. Gunakan class AsynTask agar proses yang dilakukan activity tidak membuat aplikasi kita error. ! JSON API JSON (JavaScript Object Notation) digunakan sebagai media penghubung antara aplikasi client dan aplikasi server. Keuntungan dari JSON API lebih ringan dibanding webservice menggunakan XML. Beberapa contoh platform yang sudah memanfaatkan teknologi JSON seprti Twitter, Facebook , Instagram, dan lain-lain. JSON memiliki sturktur yang terdiri Object dan Array. Objet merupakan data tunggal, sedangkan Array terdiri dari dari banyak Object. Berikut ini contoh dari JSON. JSON Object ditandai dengan kurung siku “ [ ] ” sedangkan JSON Object ditandai dengan kurung kurawal “ { } ”. !! Page 2 of 10 ConnectivityManager connMgr = (ConnectivityManager) ! getSystemService(Context.CONNECTIVITY_SERVICE);! NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();! if (networkInfo != null networkInfo.isConnected()) {! // fetch data! } else {! // display error! }
  • 3. Praktikum ANDROID Pada JSON diatas, terdiri dari JSON Object dan JSON Array. contacts merupakan JSON Array , id, name, email, address, gender, phone, mobile, home, office merupakan JSON Object. JSON class di android terdiri dari dua class, JSONArray dan JSONObject. ! Android Asynchronous Http Client Adalah library third party yang dibuat oleh James Smith digunakan untuk melakukan akses ke JSON API dengan mudah. Library ini bersifat Asynchronous yang artinya setiap proses logic yang dilakukan, diselesaikan tanpa ada prosesi menunggu untuk menyelesaikan proses logic dan dapat melakukan proses logic yang lain. Namun proses logic akan memberikan callback atau informasi di kemudian waktu jika proses sudah selesai. ! Contoh di kehidupan nyata sebagai berikut: Dalam sebuah antrian rumah sakit, untuk menemui dokter kita diwajibkan ke resepsionis dulu untuk mengisi data diri baru selanjutnnya menemui dokter. Data diri yang harus di isi ada lima lembar. dan panjang antrian adalah 100 pasien. ! Page 3 of 10 { contacts: [ { id: c200, name: Ravi Tamada, email: ravi@gmail.com, address: xx-xx-xxxx,x - street, x - country, gender : male, phone: { mobile: +91 0000000000, home: 00 000000, office: 00 000000 } }, { id: c201, name: Johnny Depp, email: johnny_depp@gmail.com, address: xx-xx-xxxx,x - street, x - country, gender : male, phone: { mobile: +91 0000000000, home: 00 000000, office: 00 000000 } } ] }
  • 4. Praktikum ANDROID A. Penyelesaian Synchronous Jika diselesaikan secara Synchronous setiap antrian akan mengantri di resepsionis untuk mengisi data diri sebanyak lima lembar. untuk kemudian selanjutnnya menemui dokter. Bisa di bayangkan berapa lama waktu yang dibutuhkan untuk si pasien ke 100 bisa menemui dokter. B. Penyelesaian Asynchronous Jika diselesaikan secara Asynchronous setiap antrian akan mengambil formulir biodata. Dan diisi secara mandiri tanpa perlu mengantri di resepsionis. setelah selesai mengisi kemudian diserahkan keresepsionis dan diperbolehkan untuk menemui dokter. ! Untuk mendownload library ini bisa di situs http://loopj.com/android-async-http/. Berikut ini adalah fitur yang dapat anda gunakan untuk keperluan Http Client di android : ! • Make asynchronous HTTP requests, handle responses in anonymous callbacks • HTTP requests happen outside the UI thread • Requests use a threadpool to cap concurrent resource usage • GET/POST params builder (RequestParams) • Multipart file uploads with no additional third party libraries • Tiny size overhead to your application, only 25kb for everything • Automatic smart request retries optimized for spotty mobile connections • Automatic gzip response decoding support for super-fast requests • Binary file (images etc) downloading with BinaryHttpResponseHandler • Built-in response parsing into JSON with JsonHttpResponseHandler • Persistent cookie store, saves cookies into your app’s SharedPreferences !! Page 4 of 10
  • 5. Praktikum ANDROID PRAKTIKUM ! Tujuan : Dapat menggunakan Library Asynchronous Http Client untuk keperluan API dan dapat memahami bentuk-bentuk dari JSON! Scope : AndroidHttpClient, JSONObject, JSONArray, ListView, AsynTask! ! 1. Buat project baru! 2. Edit activity_main.xml dengan code berikut :! RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android 3. Buat file layout dengan nama item_contact.xml dengan code berikut :! Page 5 of 10 xmlns:tools=http://schemas.android.com/tools android:layout_width=match_parent android:layout_height=match_parent android:paddingBottom=@dimen/activity_vertical_margin android:paddingLeft=@dimen/activity_horizontal_margin android:paddingRight=@dimen/activity_horizontal_margin android:paddingTop=@dimen/activity_vertical_margin tools:context=.MainActivity ListView android:id=@+id/list_contact android:layout_width=match_parent android:layout_height=wrap_content android:layout_alignParentBottom=true android:layout_alignParentRight=true android:visibility=gone /ListView ProgressBar android:id=@+id/progressbar android:layout_width=wrap_content android:layout_height=wrap_content android:layout_centerHorizontal=true android:layout_centerVertical=true / /RelativeLayout ?xml version=1.0 encoding=utf-8? LinearLayout xmlns:android=http://schemas.android.com/apk/res/android android:layout_width=match_parent android:layout_height=match_parent android:orientation=vertical TextView android:id=@+id/nama android:layout_width=match_parent android:layout_height=wrap_content android:textAppearance=?android:attr/textAppearanceMedium / TextView android:id=@+id/email android:layout_width=match_parent android:layout_height=wrap_content
  • 6. Praktikum ANDROID android:textAppearance=?android:attr/textAppearanceSmall / 4. Buat file Contacts dengan code sebagai berikut :! Page 6 of 10 TextView android:id=@+id/ponsel android:layout_width=match_parent android:layout_height=wrap_content android:textAppearance=?android:attr/textAppearanceSmall / /LinearLayout public class Contacts { public String id; public String name; public String email; public String address; public String gender; public String phone_mobile; public String phone_home; public String office; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; }
  • 7. Praktikum ANDROID 5. Buat file AdapterContacts dengan code berikut :! Page 7 of 10 public String getPhone_mobile() { return phone_mobile; } public void setPhone_mobile(String phone_mobile) { this.phone_mobile = phone_mobile; } public String getPhone_home() { return phone_home; } public void setPhone_home(String phone_home) { this.phone_home = phone_home; } public String getOffice() { return office; } public void setOffice(String office) { this.office = office; } } public class AdapterContacts extends ArrayAdapterContacts{ public Activity context; public int textViewResourceId = R.layout.item_contacts; public AdapterContacts(Activity context, int textViewResourceId) { super(context, textViewResourceId); this.context = context; this.textViewResourceId = textViewResourceId; } class ViewHolder{ public TextView nama; public TextView mobile; public TextView email; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; if (view==null) { LayoutInflater inflater = context.getLayoutInflater(); view = inflater.inflate(textViewResourceId, parent, false); ViewHolder vh = new ViewHolder(); vh.email = (TextView) view.findViewById(R.id.email); vh.nama = (TextView) view.findViewById(R.id.nama); vh.mobile = (TextView) view.findViewById(R.id.ponsel);
  • 8. Praktikum ANDROID 6. Edit MainActivity dengan code berikut :! ! Page 8 of 10 view.setTag(vh); }else{ view = convertView; } Contacts contacts= getItem(position); ViewHolder vc =(ViewHolder) view.getTag(); vc.email.setText(contacts.getEmail()); vc.nama.setText(contacts.getName()); vc.mobile.setText(contacts.getPhone_mobile()); return view; } } public class MainActivity extends Activity { ! private ListView list; private AdapterContacts adapter; private ProgressBar progressBar; ! @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ! list = (ListView) findViewById(R.id.list_contact); progressBar = (ProgressBar) findViewById(R.id.progressbar); adapter = new AdapterContacts(MainActivity.this, R.layout.item_contacts); list.setAdapter(adapter); ! new bg_process().execute(http://api.androidhive.info/ contacts/); } ! @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }
  • 9. Praktikum ANDROID ! Page 9 of 10 class bg_process extends AsyncTaskString, Contacts, Boolean { @Override protected Boolean doInBackground(final String... params) { runOnUiThread(new Runnable() { @Override public void run() { AsyncHttpClient client = new AsyncHttpClient(); client.get(params[0], new JsonHttpResponseHandler() { @Override public void onSuccess(JSONObject response) { progressBar.setVisibility(View.GONE); list.setVisibility(View.VISIBLE); try { JSONArray jsonArray = response.getJSONArray(“contacts); for (int i = 0; i jsonArray.length(); i++) { Contacts contacts = new Contacts(); JSONObject jsonObject = jsonArray.getJSONObject(i); contacts.setId(jsonObject.getString(id)); contacts.setName(jsonObject.getString(name)); contacts.setEmail(jsonObject.getString(email)); contacts.setGender(jsonObject.getString(gender)); contacts.setAddress(jsonObject.getString(address)); contacts.setPhone_home(jsonObject.getJSONObject(“phone) .getString(home)); contacts.setPhone_mobile(jsonObject.getJSONObject(“phone) .getString(mobile)); contacts.setOffice(jsonObject.getJSONObject(“phone) .getString(office)); publishProgress(contacts); } } catch (JSONException e) { e.printStackTrace(); } super.onSuccess(response); } }); } }); return null; } @Override protected void onProgressUpdate(Contacts... values) { adapter.add(values[0]); super.onProgressUpdate(values); } } }
  • 10. Praktikum ANDROID 7. Jalankan Aplikasi ! Tugas :! ! 1. Buat halaman detail dari contact! 2. Hubungkan halaman detail dengan setOnItemClickListener! 3. Simpulkan fungsi dari View.GONE dan View.VISIBLE Page 10 of 10