Pilih Laman

sumber  : http://www.aplikasi-mobile.com/id/Blog/id/18/Tutorial_Android_App_:_Belajar_Membangun_Koneksi_terhadap_Web_Service_API

Pada tutorial tahap ini kita akan membuat panggilan Web Service, untuk itu kita akan menggunakan URL http://aplikasi-mobile.com/id/dummy/json, di mana URL ini akan menyediakan Web Service dengan format JSON, yang berisikan macam-macam Klub Sepakbola di English Premier League.

Lakukanlah navigasi ke http://aplikasi-mobile.com/id/dummy/json untuk melihat data yang ada. Untuk lebih jelas dalam melihat JSON data, cobalah  navigasi ke https://jsonformatter.curiousconcept.com/ dan paste URL http://aplikasi-mobile.com/id/dummy/json ke dalam box di tengah, dan klik Process.

Jika anda memakai Google Chrome, anda bisa melakukan instalasi Chrome Extension JSONView yang akan memudahkan anda untuk melihat bentuk dari Data itu sendiri. Tutorial tentang JSON bisa anda dapatkan di sini.

Untuk pertama kalinya dalam tutorial ini kita akan menggunakan library dari luar. Untuk itu lakukanlah navigasi ke Gradle Scripts > build.gradle (Module : app), double-click saja, dan tambahkan line berikut ke dalam bagian dependencies :

compile 'com.loopj.android:android-async-http:1.4.4'

 

… sehingga menjadi seperti berikut :

Selanjutnya silakan klik Sync Now yang muncul pada toolbar di atas.

Tunggu sebentar sembari Gradle akan mengunduh library yang diperlukan. Setelah selesai kita akan bukaMainActivity, tambahkan sebuah global variable ini pada class MainActivity :

ProgressDialog mDialog;

 

Setelah itu tambahkan kode ini pada onCreate untuk menginisiasi ProgressDialog kita :

//7. Tambahan untuk Progress dialog
mDialog = new ProgressDialog(this);
mDialog.setMessage("Sedang Mencari Klub");
mDialog.setCancelable(false);

 

… sehingga kode lengkapnya menjadi seperti berikut :

Terakhir, tambahkan fungsi berikut pada MainActivity :

public void query_data(){

//8.url web service yang dipakai , 1 pada bagian belakang menunjukan nomor halaman
String url = "http://aplikasi-mobile.com/id/dummy/json/1";
//9. Bikin Klien
AsyncHttpClient client = new AsyncHttpClient();
//10. Keluarkan Progress Dialoh
mDialog.show();
//11. Panggilan dijalankan
client.get(url,
new JsonHttpResponseHandler() {
@Override
public void onSuccess(JSONObject jsonObject) {
// 12. Begitu Sukses hilangkan progress dialog
mDialog.dismiss();
//13. Keluarkan toast
Toast.makeText(getApplicationContext(), "Sukses!", Toast.LENGTH_SHORT).show();
//14. Untuk sekarang JSON hanya kita keluarkan lewat log
Log.d("aplikasi-mobile.com", jsonObject.toString());
}
@Override
public void onFailure(int statusCode, Throwable throwable, JSONObject error) {
// 15. Dismiss the ProgressDialog
mDialog.dismiss();
//16. Keluarkan toast
Toast.makeText(getApplicationContext(), "Error: " + statusCode + " " + throwable.getMessage(), Toast.LENGTH_LONG).show();
//17. Print Log
Log.e("aplikasi-mobile.com", statusCode + " " + throwable.getMessage());
}
});
}

 

Sekarang tambahkan :

query_data();

… pada metode onCreate. Ini dikarenakan dalam mengakses Web Service anda membutuhkan koneksi Internet, dan anda harus menambakan permission pada AndroidManifest anda. Copy kode di bawah ini dan tambahkan ke dalam tag manifest pada AndroidManifest.xml anda.

<uses-permission android:name="android.permission.INTERNET"/>

 

Manifest Anda akan menjadi seperti berikut :

Sekarang cobalah untuk melakukan run pada aplikasi anda.

Pada permulaan aplikasi anda, akan muncul ProgressDialog dengan tulisan “Sedang Mencari Klub”. Perhatikan pada logcat yang muncul di belakang emulator pada gambar. Setelah ProgressDialog selesai, akan muncul tulisan data dari JSON yang kita panggil tadi. Dapat di lihat pada screenshot di bawah di bagian yang bewarna biru.

Metode pengeluaran log ini dipicu oleh kode Log.d pada metode onSuccess, dan tulisan “Sukses!” dipicu oleh kode Toast pada metode onSuccess juga.