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

Monday 13 February 2017

Mempercepat Transaksi Insert Database SQLite -Android

Gambar 1. 17 Kali

Di era digital ini memang tidak bisa dipungkiri kalau kita akan berjibaku dengan data yang banyak. Untuk mengolah data yang banyak tersebut perlu metode /cara yang tepat agar waktu dibutuhkan bisa seminimal munkin contoh dalam dunia pemrograman kita dapat menggunakan lebih sedikit variabel dan memaksimalkan penggunaan for/looping (mengurangi penggunaan looping yang berlebihan). Kita juga dapat memaksimalkan algoritma contoh penggunaan binary search akan lebih cepat dibandingkan linier search.

Pada kesempatan ini saya akan membagi potongan sourcode insert ke database sqlite dari sumber blog: http://www.techrepublic.com/blog/software-engineer/turbocharge-your-sqlite-inserts-on-android/ . Penjelasan lebih detail dapat kunjungi blog tersebut.

Kecepatan dapat meningkat sampai 17x.
Sesuai dengan yang tertera pada http://www.techrepublic.com/blog/software-engineer/turbocharge-your-sqlite-inserts-on-android/

berikut potongan


private void bulkInsertOneHundredRecords() {
          String sql = "INSERT INTO "+ SAMPLE_TABLE_NAME +" VALUES (?,?,?);";
          SQLiteStatement statement = sampleDB.compileStatement(sql);
          sampleDB.beginTransaction();
          for (int i = 0; i<100; i++) {
                    statement.clearBindings();
                    statement.bindLong(indexkolom1tipeinteger, datayangdinsert1);
                    statement.bindLong(indexkolom2tipeinteger, datayangdinsert2);
                    statement.bindLong(indexkolom3tipeinteger, datayangdinsert3);
                    statement.execute();
           }
           sampleDB.setTransactionSuccessful(); 
           sampleDB.endTransaction();
} 


Sekian dan terimakasih...



Membuat Simpel Recyclerview Lengkap Sampai Jadi -Android

Ok..  Blog saya agak tersendat karena ada kesibukan yang benar2 sibuk dan juga listrik disini sedang ada gangguan selama 2 minggu kurang lebih.
Yang saya posting disini yaitu source code Recyclerview sesuai judul. Meskipun recyclerview sudah lama muncul namun saya belum pernah mengiplementasikan pada aplikasi android buatan saya hingga bulan Februari 2017. Penggunaan recyclerview pada aplikasi saya didasari karena saya membutuhan media yang mampu menampilkan puluhan ribu baris bertipe string. Sebelumnya menggunakan TextView namun aplikasi selalu error berkali2. Sebenarnya untuk masalah ini listview bisa dijadikan bahan percobaan sbelum melangkah menggunakan recyclerview. Recyclerview hampir mirip dengan listview namun recyclerview lebih canggih terutama disisi performa.


Gif 1. Hasil Tutorial


XML:

1.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"
    >

    <!-- A RecyclerView with some commonly used attributes -->

    <android.support.v7.widget.RecyclerView
        android:id="@+id/my_recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical" />



</RelativeLayout>

2.rowlayout,xml


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:padding="6dip" >

    <ImageView
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_alignParentBottom="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="6dip"
        android:contentDescription="TODO"
        android:src="@android:mipmap/sym_def_app_icon" />

    <TextView
        android:id="@+id/secondLine"
        android:layout_width="fill_parent"
        android:layout_height="26dip"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@id/icon"
        android:ellipsize="marquee"
        android:singleLine="true"
        android:text="Description"
        android:textSize="12sp" />

    <TextView
        android:id="@+id/firstLine"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/secondLine"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_alignWithParentIfMissing="true"
        android:layout_toRightOf="@id/icon"
        android:gravity="center_vertical"
        android:text="Example application"
        android:textSize="16sp" />

</RelativeLayout>

Java:

1. MainActivity.java


import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;


import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    private RecyclerView mRecyclerView;
    private RecyclerView.Adapter mAdapter;
    private RecyclerView.LayoutManager mLayoutManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);

        // use this setting to improve performance if you know that changes
        // in content do not change the layout size of the RecyclerView
        mRecyclerView.setHasFixedSize(true);

        // use a linear layout manager
        mLayoutManager = new LinearLayoutManager(this);
        mRecyclerView.setLayoutManager(mLayoutManager);

        // specify an adapter (see also next example)
        ArrayList<String> mDataset=new ArrayList<>();
        for(int i=0;i<10;i++){
        String a="test "+i;
        mDataset.add(a);}
        mAdapter = new MyAdapter(mDataset);

        mRecyclerView.setAdapter(mAdapter);
    }

}



2. MyAdapter.java


import java.util.ArrayList;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private ArrayList<String> mDataset;

    // Provide a reference to the views for each data item
    // Complex data items may need more than one view per item, and
    // you provide access to all the views for a data item in a view holder
    public class ViewHolder extends RecyclerView.ViewHolder {
        // each data item is just a string in this case
        public TextView txtHeader;
        public TextView txtFooter;

        public ViewHolder(View v) {
            super(v);
            txtHeader = (TextView) v.findViewById(R.id.firstLine);
            txtFooter = (TextView) v.findViewById(R.id.secondLine);
        }
    }

    public void add(int position, String item) {
        mDataset.add(position, item);
        notifyItemInserted(position);
    }

    public void remove(String item) {
        int position = mDataset.indexOf(item);
        mDataset.remove(position);
        notifyItemRemoved(position);
    }

    // Provide a suitable constructor (depends on the kind of dataset)
    public MyAdapter(ArrayList<String> myDataset) {
        mDataset = myDataset;
    }

    // Create new views (invoked by the layout manager)
    Context context;
    @Override
    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
                                                   int viewType) {
        // create a new vie
        context=parent.getContext();
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.rowlayout, parent, false);
        // set the view's size, margins, paddings and layout parameters
        ViewHolder vh = new ViewHolder(v);
        return vh;
    }

    // Replace the contents of a view (invoked by the layout manager)
    @Override
    public void onBindViewHolder(final ViewHolder holder, final int position) {
        // - get element from your dataset at this position
        // - replace the contents of the view with that element
        final String name = mDataset.get(position);
        holder.txtHeader.setText(mDataset.get(position));
        holder.txtHeader.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
              //  remove(name);
                Toast toast= Toast.makeText(context,
                        "Recycler "+position, Toast.LENGTH_SHORT);
                toast.setGravity(Gravity.TOP| Gravity.CENTER_HORIZONTAL, 0, 0);
                toast.show();            }
        });

        holder.txtFooter.setText("Footer: " + mDataset.get(position));

    }

    // Return the size of your dataset (invoked by the layout manager)
    @Override
    public int getItemCount() {
        return mDataset.size();
    }

}



3. tambahkan compile 'com.android.support:recyclerview-v7:24.2.1'

pada build.grandle (Module:app), ubah versi 24.2.1 sesuai dengan versi appcompat mu



dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:recyclerview-v7:24.2.1'
    compile 'com.android.support:appcompat-v7:24.2.1'
}


Silahkan ber-experiment ria untuk mengenal Recyclerview lebih dalam..
Terimakasih...




Sunday 8 January 2017

Cara Menggunakan Realm Database 2 ( CRUD : Simple Insert and Select ) -Android

Jika sebelumnya sudah melakukan insert https://komputasistat.blogspot.co.id/2016/10/cara-menggunakan-realm-database-1-crud.html . Sekarang saat untuk mengambil data yang sudah di-insert.
berikut source codenya

user.java: ( membuat get and set otomatis / enkapsulasi https://komputasistat.blogspot.co.id/2017/01/cara-membuat-getter-and-setter.html )
import android.media.Image;

import io.realm.RealmObject;
import io.realm.annotations.Ignore;
import io.realm.annotations.PrimaryKey;
import io.realm.annotations.Required;

/**
 * Created by Windows on 22/10/2016.
 */
public class User extends RealmObject {

     private String id;
     private String nama;
     private String alamat;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public String getAlamat() {
        return alamat;
    }

    public void setAlamat(String alamat) {
        this.alamat = alamat;
    }
}


MainActivity.java
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import io.realm.Realm;

public class MainActivity extends AppCompatActivity {
    Realm realm;
    EditText id,nama,alamat;
    User user;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        setContentView(R.layout.activity_main);
        Button btn=(Button)findViewById(R.id.button);
        id=(EditText)findViewById(R.id.editText);
        nama=(EditText)findViewById(R.id.editText2);
        alamat=(EditText)findViewById(R.id.editText3);
        Realm.init(this);
         realm = Realm.getDefaultInstance();


        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                realm.beginTransaction();
                user = realm.createObject(User.class);

                user.setId(id.getText().toString());
                user.setNama(nama.getText().toString());
                user.setAlamat(alamat.getText().toString());

                realm.commitTransaction();
            }
        });

        Button btn2=(Button)findViewById(R.id.button2);

        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent i=new Intent(MainActivity.this,LoadActivity.class);
                startActivity(i);
            }
        });


    }
}

LoadActivity.java: (Select / menampilkan data yang telah disimpan)

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.EditText;
import android.widget.TextView;

import io.realm.Realm;
import io.realm.RealmResults;

/**
 * Created by Windows on 08/01/2017.
 */
public class LoadActivity extends AppCompatActivity {
    Realm realm;
    EditText id,nama,alamat;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        setContentView(R.layout.activity_load);
        TextView textView=(TextView)findViewById(R.id.textView);
        Realm realm = Realm.getDefaultInstance();
        RealmResults<User> results1 =
                realm.where(User.class).findAll();
        String text="";
        for(User c:results1) {
            text=text+c.getId()+"\n";
            text=text+c.getNama()+"\n";
            text=text+c.getAlamat()+"\n\n\n";


        }
        textView.setText(text);
}}

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<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: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="oddsaydev.realminsert.MainActivity">

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText"
        android:hint="id"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText2"
        android:hint="nama"
        android:layout_below="@+id/editText"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText3"
        android:hint="alamat"
        android:layout_below="@+id/editText2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Simpan"
        android:id="@+id/button"
        android:layout_marginTop="32dp"
        android:layout_below="@+id/editText3"
        android:layout_centerHorizontal="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="LOAD"
        android:id="@+id/button2"
        android:layout_below="@+id/button"
        android:layout_centerHorizontal="true" />
</RelativeLayout>

activity_load.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:id="@+id/textView" />
</LinearLayout>

Bila belum mengaktifkan libary realm silahkan melihat tutorial sebelumnya
https://komputasistat.blogspot.co.id/2016/10/cara-menggunakan-realm-database-1-crud.html

Hasil:
Sekian dan Terima kasih..

Cara Membuat Getter and Setter ( Enkapsulasi/Encapsulate ) -Android Studio

Caranya bisa lihat di gambar GIF Berikut ( Membuat get dan set secara otomatis):


GIF 1. Get dan Set Android Studio

Sekian dan terima kasih

Friday 25 November 2016

Memilih Tipe Activity Pada Android Studio -Android




Activity merupakan komponen yang berhubungan langsung dengan screen. Activity merupakan board yang digunakan untuk meletakan komponen-komponen yang digunakan oleh user / pengguna untuk berinteraksi dengan aplikasi. Kebanyakan aplikasi android memiliki beberapa activity. Saat kita membuka suatu aplikasi berarti satu activity dijalankan. Activity memiliki life cycle yang dapat berguna untuk mengetahui state / keadaan dari aplikasi (contoh aplikasi dimatikan, aplikasi ditunda dll). Kita juga dapat membuat suatu aplikasi yang tidak memiliki activity. 
Detail mengenai activity: https://developer.android.com/reference/android/app/Activity.html

Beberapa type Activity yang dapat dipilih ketika kita akan membuat aplikasi pada android studio

1. Blank Activity



Pada tipe ini, activity ditampilkan kosong disertai dengan action bar. Pada action bar terdapat judul, icon dan menu/setting. Action bar dapat disisipkan suatu navigasi yang berguna untuk user/pengguna berinteraksi 



2. Bank Activity with Fragment


 Tipe ini memuat sama hampir sama seperti blank activity namun ada tambahan yaitu fragment. Fragment juga memiliki life cycle sendiri, namun keberadaan fragment harus didalam activity. Jika ingin menampilkan beberapa activity dalam satu aplikasi dan dapat beberapa activity tersebut dapat digantikan oleh fungsi dari fragment, maka lebih baik menggunakan fragment karena fragment lebih menghemat memory. Satu fragment dapat digunakan lebih dari satu activity / bersifat reused, Fragment-fragment juga dapat dikombinasikan ke dalam satu activity (Satu activity ada beberapa fragment).


3. Fullscreen Activity



Aplikasi akan memenuhi layar sehingga akan menutup system user interface (seperti notifikasi bar). Pada tipe fullscreen memberikan alternatif berupa action bar yang muncul ketika user/pengguna menyentuh layar device.


4.Google Maps Activity


Tipe ini membuat activity baru beserta google maps.



5. Google Play Services Activty


Tipe ini membuat activity baru yang terkoneksi dengan Google Play Services klien.


6.Login Activity 



Tipe ini membuat tampilan login berupa textfield email dan password.



7. Navigation Drawer Activity


Tipe ini membuat activity baru disertai dengan navigation drawer. Navigation drawer dapat berguna sebagai navigasi utama yang terletak pada kiri layar. Navigasi ini dapat ditampilkan dengan cara mengusap layar dari arah kiri ke kanan.


dan tipe activity lainnya


Sekian dan Terimakasih





  

Tuesday 15 November 2016

Mengganti Nama Package Menggunakan Android Studio -Android

Nama package digunakan playstore untuk kode unik sebuah aplikasi. Oleh karena itu, ketika kita upload apk ke playstore akan ditolak jika nama package aplikasinya sama dengan nama package aplikasi yang sudah ada di playstore

Gambar 1. Upload Failed. You need to use different package name

Langkah - langkah 

Cara mengganti / mengubah /merubah nama package android ( Rename Package )

1. Klik kanan nama direktori java misal "id.oddsaydev.katabakutidakbaku1" . kemudian pilih Refactor > Rename

Gambar 1. Rename

2. Akan muncul Warning Box, kemudian pilih Rename package. Ubah nama package kemudian pilih refactor.

Gambar 2. Ganti nama package kamudian pilih refactor



3. pada tab refactoring view pilih  Do Refactor (Gambar 3)

Gambar 3.Jalankan  Do Refactor

4. Tunggu beberapa saat sampai proses refactoring selesai


Sekian dan Terimakasih





Sunday 6 November 2016

Menggunakan Firebase Authentication 1 -Android

Gambar 1. Otentifikasi


Authentication atau otentikasi merupakan salah satu cara untuk mengenali user secara spesifik agar spesifikasi/fitur aplikasi dapat disesuaikan dengan kebutuhan user tersebut. Otentifikasi juga menguntungkan server dari segi keamanan karena komunikasi data hanya dapat dilakukan oleh user yang memiliki hak akses terhadap komunikasi tersebut. Permasalahan baru akan muncul  yaitu banyak aplikasi yang membutuhkan otentifikasi sehingga memaksa user untuk memiliki akun pada setiap aplikasi. Untuk mengatasi masalah tersebut kita dapat menggunakan akun user yang terdaftar pada aplikasi populer misal facebook, gmail, twitter dll. Penggunaan akun ini tentu melalui persetujuan user itu sendiri.
Salah satu cara untuk menggunakan akun user aplikasi populer pada aplikasi kita yaitu menggunakan Firebase Authentication. Cara ini lebih praktis  karena kita bisa menggunakan banyak aplikasi populer untuk otentifikasi tanpa harus mempelajari API masing-masing aplikasi populer tersebut.


nantikan example code nya..
Sekian dan Trimakasih


Thursday 3 November 2016

Mengenal Gradle pada Androd Studio -Android

Gambar 1. Gradle



Gradle adalah .. ?
Gradle Merupakan  .. ?
Fungsi Gradle .. ?
Kegunaan Gradle .. ?


Jika kita menggunakan Android Studio pasti kita sudah tidak asing mendengar kata gradle. Gradle merupakan open source build system. Gradle berfungsi untuk mengubah file yang ada di src dan res (xml dan java) menjadi APK. Sebenarnya kita dapat membuat aplikasi android hanya menggunakan code editor (notepad++,notepad, sublime)  tanpa menggunakan menggunakan Android Studio (namun tetap harus menggunakan SDK Android). Kemudian dengan menggunakan gradle file2 tersebut di diubah dan di-compress menjadi apk

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