Text berformat JSON adalah salah satu cara untuk berkomunikasi antar
platform. Pada tutorial kali ini, text berformat json digunakan untuk
berkomunikasi antara website dengan android.
1. Buat New Project tutorial selengkapnya dapat dilihat pada : Membuat Aplikasi Dengan Android
Studio 1
Gambar 1. Membuat project baru
|
2. Copy source code dibawah ke MainActivity.java
(contoh text berformat json yang digunakan dari google maps api. Tutorial dapat dilihat pada: Mendapatkan Browser Api Key (
Google Maps Directions Api ) . Dapat juga menggunakan
text format json dari sumber lain coba googling)
import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.widget.TextView; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class MainActivity extends AppCompatActivity { TextView outputTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); outputTextView = (TextView) findViewById(R.id.output); Async a = new Async(); a.execute(""); } // AsyncTask untuk dapat melakukan koneksi dengan website dan juga berfungsi untuk multithreading public class Async extends AsyncTask<String, Integer, String> { @Override protected String doInBackground(String... params) { String data = ""; try { data = downloadUrl("https://maps.googleapis.com/maps/api/directions/json?key=API_KEY_ANDA&origin=-6.649919,106.84452099999999&destination=-6.646100000000001,106.844472&sensor=false&units=metric&mode=driving&alternatives=true"); } catch (Exception e) { Log.d("Background Task", e.toString()); } return data; } @Override protected void onPostExecute(String result) { outputTextView.setText(result); } } private String downloadUrl(String strUrl) throws IOException { String data = ""; InputStream iStream = null; HttpURLConnection urlConnection = null; try { URL url = new URL(strUrl); // membuat http connection untuk berkomunikasi url urlConnection = (HttpURLConnection) url.openConnection(); // mengkoneksikan dengan url urlConnection.connect(); // Membaca data dari url // Data yang sudah terbaca merupakan sequance data / byte streams iStream = urlConnection.getInputStream(); //byte stream yang sudah didapat didecode menjadi characters stream menggunakan InputStreamReader //BufferedReader akan membaca text dari character-input stream, dan melakukan buffering characters sehenggiga dapat dengan efesien membaca character, array dan perbaris BufferedReader br = new BufferedReader(new InputStreamReader(iStream)); //StringBuffer digunkan untuk memodifikasi character-input stream menjadi String StringBuffer sb = new StringBuffer(); String line = ""; while ((line = br.readLine()) != null) { // jika saat baris dibaca berisi null maka tidak akan diinput ke sb sb.append(line); } data = sb.toString(); br.close(); } catch (Exception e) { Log.d("Exception url", e.toString()); } finally { iStream.close(); urlConnection.disconnect(); } return data; } }
3. Copy source code
dibawah ke activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:text="@string/hello_world" android:layout_width="wrap_content" android:id="@+id/output" android:layout_height="wrap_content" /> </RelativeLayout>
4. Copy code dibawah
pada AndroidManifest.xml
<uses-permission
android:name="android.permission.INTERNET" />
Setelah itu run aplikasi
cara untuk menjalankan aplikasii dapat dilihat pada : Membuat Aplikasi Dengan Android Studio 2 ( Menghubungkan
Android Studio dengan Handset Android )
Hasilnya:
|
Setelah Json diperoleh , json ini dapat diolah menggunakan method yang
dimiliki object String namun dibutuhkan cara yang panjang maka biasanya
menggunakan JSONObject .
Nantikan tutorial selanjutnya untuk mengolah text berformat Json diatas
AsyncTask kok error?
ReplyDeleteitu tinggal copy doang hrsny ga error.. emng error gmn?
Delete