Showing posts with label Volley Android. Show all posts
Showing posts with label Volley Android. Show all posts

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

Sunday 31 July 2016

Membuat Koneksi Ke Server Menggunakan Volley 1 -Android

Gambar 1. Membuat koneksi dengan volley
Keuntungan menggunakan Volley:

Gambar 2. Keuntungan Menggunakan Volley (Sumber: https://developer.android.com/training/volley/index.html)

Pada tutorial ini akan membahas bagaimana membangun koneksi dengan server...

1. dowload library volley dengan cara menambahkan kode: compile 'com.android.volley:volley:1.0.0' pada dependencies build.grandle menjadi

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.android.volley:volley:1.0.0'
}


2. Kode membangun koneksi


        //URL
        String url = "http://example.com";

// mendefiniskan permintaan koneksi
        StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        // hasil permintaan  
                        // dieksekusi ketika yang diminta sudah diperoleh
                        System.out.println(response);

                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

                // bila terjadi error
                System.out.println("Something went wrong!");
                error.printStackTrace();

            }
        });

// Pemintaan koneksi dilaksakan
        Volley.newRequestQueue(this).add(stringRequest);

3. Jangan lupa permisson Internet pada manifest


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

Contoh Koneksi Dengan Servel Lokal / Localhost

-Sebelumnya pastikan sudah terinstal xampp atau server local lainnya 
-Aktifkan start Apache dan MySQL

1. Simpan kode dibawah di htdocs

hallodunia.php
<html>
   <body>
 <h1>Hallo Dunia</h1>
 Jangan lupa kunjungi terus komputasistat@blogspot.com
    </body>
</html>

2, Pastikan kode sudah berjalan  dengan cara menjalankan kode dari browser 


Gambar 1. Menjalankan kode dari browser
3. Dapatkan ipaddress yang nantinya akan digunakan sebagai pengganti localhost.
ipaddress bisa didapatkan dengan cara mengetikan ipconfig pada cmd
Gambar 2. Mendapatkan ipaddress 192.168.XXX.XXX

4. Kode membangun koneksi menggunakan volley sudah diletakan pada MainActivity.java. (penjelasan dapat dibaca  pada komentar kode program)

MainActivty.java
import android.app.ProgressDialog;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;


import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

import org.json.JSONObject;

import java.util.HashMap;

public class MainActivity extends AppCompatActivity {
    ProgressDialog pDialog;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


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

// mendefiniskan permintaan koneksi
        StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        // hasil permintaan
                        System.out.println(response);

                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

                // bila terjadi error
                System.out.println("Something went wrong!");
                error.printStackTrace();

            }
        });

// Pemintaan koneksi dilaksakan
        Volley.newRequestQueue(this).add(stringRequest);
    }



}

5. Hasilnya dapat pada logcat
Gambar 3. Hasil dari logcat


Koneksi dengan server sudah berhasil

Lalu bagaimana cara membaca json atau bagaimana melakukan koneksi dengan database. nantikan tutorial kelanjutnya...