Monday 31 October 2016

Membuat Permintaan Object JSON Menggunakan Volley 2 -Android

Sebelumnya kita telah sukses melaksanakan koneksi dengan server (https://komputasistat.blogspot.co.id/2016/07/membuat-koneksi-ke-server-menggunakan.html) . Lalu bagaimana mengambil nilai dari output berformat json.



1. Copy paste kode dibawah ke kode editor kemudian simpan ke dalam extensi .php di htdocs

{
    "noinduk" : "123",
    "nama" : "Hasta Nurhusada", 
    "alamat" : "Teluk Bintuni",
    "matakuliah" : {
        "inti" : "Algoritma Pemrograman",
        "tambahan" : "Sisjarkom"
    }
     
}

2. Untuk mendapatkan nilai json dengan susunan nilai berbeda pelajari dahulu contoh ini. Kemudian ubah susunan nilai json dan jangan lupa ubah kode java pengambilan nilai json .

MainActivity.java:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;


import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.VolleyLog;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;

import org.json.JSONException;
import org.json.JSONObject;


public class MainActivity extends AppCompatActivity {
    private String jsonResponse;
    TextView respontxt;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        respontxt=(TextView)findViewById(R.id.respontxt);

        //ganti localhost (http://localhost:XXXX/hallodunia.php menjadi) ip address yang diperoleh dari ipconfig cmd
        String url = "http://xxx.xxx.xxx.xxx:xxxx/hallodunia.php";

        JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET,
                url, null, new Response.Listener<JSONObject>() {

            @Override
            public void onResponse(JSONObject response) {
                Log.d("as", response.toString());

                try {
                    // Parsing json object response
                    // response will be a json object
                    String noinduk = response.getString("noinduk");
                    String nama = response.getString("nama");
                    String alamat = response.getString("alamat");
                    JSONObject matakuliah = response.getJSONObject("matakuliah");
                    String inti = matakuliah.getString("inti");
                    String tambahan = matakuliah.getString("tambahan");

                    jsonResponse = "";
                    jsonResponse += "noinduk: " + noinduk + "\n\n";
                    jsonResponse += "nama: " + nama + "\n\n";
                    jsonResponse += "alamat: " + alamat + "\n\n";
                    jsonResponse += "matakuliah inti: " + inti + "\n\n";
                    jsonResponse += "matakuliah tambahan: " + tambahan + "\n\n";

                    respontxt.setText(jsonResponse);

                } catch (JSONException e) {
                    e.printStackTrace();
                    Toast.makeText(getApplicationContext(),
                            "Error: " + e.getMessage(),
                            Toast.LENGTH_LONG).show();
                }
            }
        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d("asas", "Error: " + error.getMessage());
                Toast.makeText(getApplicationContext(),
                        error.getMessage(), Toast.LENGTH_SHORT).show();
                // hide the progress dialog
            }
        });
// Pemintaan koneksi dilaksakan
        Volley.newRequestQueue(this).add(jsonObjReq);
    }



}

3.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/respontxt"
        android:layout_height="wrap_content" />

</RelativeLayout>

3. Jangan lupa atur dependencies seperti pembahasan sebelumnya (https://komputasistat.blogspot.co.id/2016/07/membuat-koneksi-ke-server-menggunakan.html)


4. Hasil:
Gambar 1. Gambar hasil mendapatkan nilai JSON menggunakan volley 

Sekian Trimakasih

Artikel Terkait Android ,Volley Android

3 comments:

  1. has, wis 2 project aku garap nganggo tutorial mu... thank youu

    ReplyDelete
  2. emang manteb ini tutorialnya gan, bermanfaat sekali
    mesin pemisah lcd

    ReplyDelete