Sunday, February 26, 2017

Android Volley Tutorial - Menyimpan Data ke Database MySQL

Hai sobat, ketemu lagi dengan saya di artikel tentang pemrograman android. Pada artikel sebelumnya yang berjudul Menampilkan Data MySQL ke Aplikasi Android Menggunakan Volley, telah saya jelaskan langkah untuk menampilkan data dari database MySQL ke dalam aplikasi android menggunakan librari android. Nah padaartikel kali ini saya akan menunjukan angkah atau cara untuk menyimpan data ke dalam database MySQL menggunakan aplikasi android. Oke sob, silahkan dibaca sampai habis 😁

Android Volley Tutorial - Menyimpan Data ke Database MySQL


Pada artikel sebelumnya sudah saya berikan sedikit penjelasan tentang pembuatan aplikasi mengunakan WebService. Untuk berhubungan dengan database MySQL atau database cloud, aplikasi membutuhkan prosedur koneksi dengan server. Untuk melakukan hal tersebut, kita bisa mengunakan beberapa librari yang sudah disediakan diluar sana seperti AdroidQuery, Volley, dan Retrofit. Dan dalam artikel ini, saya akan menggunakan librari volley sebagai koneksi HTTP client ke server.

Yang harus disiapkan untuk bisa mempraktekkan tutorial dari artikel ini, saya sarankan sobat membaca artikel sebelumnya, sobat bisa baca melalui link di bawah ini 👇

Tutorial Volley Android

Nah jika sudah siap, sekarang kita mulai untuk membuatnya. Aplikasi ini akan digunakan untuk menyimpan data dari ponsel Android ke dalam database MySQL. Database bisa berada di lokal maupun diunggah ke server cloud. Berikut langkah-langkah pembuatanya

Membuat Database

Database yang digunakan masih sama dengan artikel sebelumnya yaitu database app_blogvolley dan tabel hape, silahkan sobat buat seperti pada artikel sebelumnya

Membuat Server

Agar aplikasi android bisa mengambil dan memproses data pada server dan database MySQL, aplikasi android juga membutuhkan server sebagai perantara antara database dan aplikasi adroid. Untuk aplikasi ini kita membutuhkan tiga file PHP, yang pertama yaitu koneksi.php untuk koneksi ke database MySQL, kedua yaitu getdata.php untuk mengambil data databse MySQL dan mengirim ke Aplikasi Android, dan yang terakhir yaitu simpan.php berguna untuk menangkap value dari aplikasi android dan menyimpan data ke dalam database MySQL.

Kedua file tadi sudah saya buat pada artikel sebelumnya, silahkan sobat buat terlebih dahulu, jika sudah silahkan sobat buat file PHP baru dengan nama simpan.php dan buat kodenya seperti berikut ini


<?php
include 'koneksi.php';

if (isset($_POST["merk"]) && isset($_POST["tipe"]) && $_POST["keterangan"]) {

$merk = $_POST["merk"];
$tipe = $_POST["tipe"];
$keterangan = $_POST["keterangan"];

$query = "INSERT INTO hape (merk, tipe, keterangan) VALUES ('$merk', '$tipe', '$keterangan')";
$eksekusi = mysql_query($query);

if ($eksekusi) {

$response['result'] = true;
$response['pesan'] = "Data tersimpan";
echo json_encode($response);
} else {
$response['result'] = false;
$response['pesan'] = "Data gagal tersimpan";
echo json_encode($response);
}

} else {
$response['result']= false ;
$response['msg']="Ada kesalahan";
echo json_encode($response);
}
?>


Membuat Project Baru

Sekarang buat project baru dengan nama CRUD Volley, untuk jenis activity pilih yang Basic Activity

Menginstal Librari

Jika project sudah terbentuk dengan sempurna, sekarang saatnya instal librari yang kita butuhkan. Nanti kita akan menampilkan data pada databse dan menampilkan gambar yang tersimpan si server. Silahkan buka file Build:Grandle(Module) dan masukkan kode berikut di dalam dependencies


compile 'com.github.bumptech.glide:volley-integration:1.4.0'
compile 'com.android.support:recyclerview-v7:25.1.1'
compile 'com.android.support:cardview-v7:25.1.1'


jika sudah jangan lupa pilih Sync Now untuk mensingkronkan project.

Membuat Tampilan

Selanjutnya kita buat tampilan aplikasi androidnya. Karena kita menggunakan Basic Activity, maka akan terbentuk dua layout, yaitu activity_main.xml dan content_main.xml. Layout yang pertama berfungsi untuk menampung komponen toolbar dan floating action button, serta untuk menampilkan layout content_main.xml. Layout selanjutnya adalan content_main.xml yang berfungsi sebagai penampung informasi yang akan ditampilkan kepada user.

Pada activity_main.xml, silahkan ubah id pada FloatingActionButton dari fab menjadi btntambah. kemudian pada content_main.xml, buat kodenya seperti berikut ini


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.aji.crudvolley.MainActivity"
tools:showIn="@layout/activity_main">

<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/lvhape" />
</RelativeLayout>



Nah, pada content_main.xml kita tampilkan komponen RecyclerView sebagai penampil data, tapi itu belum cukup karena nanti kita akan menampilkan data berupa gambar dan teks, maka kita mambutuhkan layout dan komponen tambahan. Silajkan buat layout baru dengan nama list_item.xml dan buat kodenya seperti berikut ini


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="5dp">

<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:clickable="true"
android:foreground="?android:attr/selectableItemBackground"
android:padding="5dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dp">

<ImageView
android:id="@+id/imghp"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@mipmap/ic_launcher" />

<TextView
android:id="@+id/txthape"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:gravity="center_vertical"
android:text="Merk"
android:textSize="25sp" />
</LinearLayout>
</android.support.v7.widget.CardView>

</RelativeLayout>


Membuat Activity Baru

Setelah kita buat tampilan aplikasi androidnya, selanjutnya tambahkan activity baru yang nantinya digunakan untuk menambah data. Alurnya yaitu, jika komponen FloatingActionButton pada MainActivity ditekan maka akan berpindah pada activity baru. Untuk membuat activity baru silahkan sobat baca pada artikel saya sebelumnya tentang Intent pada link di bawah ini

Multiple Activity Android

Buat activity baru dengan tipe Basic Activity dan beri nama TambahActivity. Maka akan tebentuk dua layout lagi yaitu activity_tambah.xml dan content_tambah.xml. Pada activity_tambah.xml, ubah id pada komponen FloatingActionButton dari fab menjadi btnsimpan, selanjutnya pada content_tambah.xml buat kodenya seperti berikut ini


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content_tambah"
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"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.aji.crudvolley.TambahActivity"
tools:showIn="@layout/activity_tambah">

<EditText
android:id="@+id/txtmerk"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:hint="Merk"
android:inputType="textPersonName" />

<EditText
android:id="@+id/txttipe"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/txtmerk"
android:layout_marginTop="14dp"
android:hint="Tipe"
android:inputType="textPersonName" />

<EditText
android:id="@+id/txtket"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/txttipe"
android:layout_marginTop="16dp"
android:gravity="top"
android:hint="Keterangan"
android:inputType="textMultiLine"
android:lines="8"
android:maxLines="10"
android:minLines="6"
android:scrollbars="vertical" />
</RelativeLayout>



Membuat Logika Java

Jika tampilan sudah dibuat, sekarang saatnya membuat logika program sob. Untuk pembuatan logika java sedikit saya pisah-pisahkan classnya agar mudah dalam pemanggilan. Untuk yang pertama, kita buat class baru untuk menyimpan url utama server serta method yang nanti perlu digunakan. Silahkan buat class baru si dalam package helper dan beri nama helper.java. Untuk membuat package baru bisa sobat baca di link artikel sebelumnya.

Jika sudah terbentuk class baru dengan nama helper.java, kemuadian buat kodenya seperti berikut ini


package com.aji.crudvolley.helper;

/**
* Created by AJISETYA
*/

public class helper {
public static String main_url = "http://192.168.95.77/app_blogvolley/";
}



Setelah membuat helper, selanjutnya adalah membuat class sebagai control librari volley. Setiap eksekusi dan pemanggilan librari dibuat dari class ini. Silahkan buat class baru di dalam package app dengan nama AppController.java dan buat kodenya seperti berikut ini


package com.aji.crudvolley.app;

import android.app.Application;
import android.text.TextUtils;

import com.aji.crudvolley.utils.LruBitmapCache;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.Volley;

/**
* Created by AJISETYA.
*/

public class AppController extends Application{
public static final String TAG = AppController
.class.getSimpleName();

private RequestQueue requestQueue;
private ImageLoader imageLoader;

private static AppController appController;

@Override
public void onCreate() {
super.onCreate();
appController = this;
}

public static synchronized AppController getAppController(){
return appController;
}

public RequestQueue getRequestQueue(){
if (requestQueue == null){
requestQueue = Volley.newRequestQueue(getApplicationContext());
}
return requestQueue;
}

public ImageLoader getImageLoader(){
getRequestQueue();
if (imageLoader == null){
imageLoader = new ImageLoader(this.requestQueue
, new LruBitmapCache());
}
return this.imageLoader;
}

public <T> void addToRequestQueue(Request<T> request, String tag){
// set the default tag if tag is empty
request.setTag(TextUtils.isEmpty(tag) ? TAG : tag);
getRequestQueue().add(request);
}

public void cancelPendingRequest(Object object){
if (requestQueue != null){
requestQueue.cancelAll(object);
}
}
}



Oke, lanjut lagi ke class utama yaitu MainActivity.java. Di sini kita akan menampilkan data pada komponen RecyclerView. Untuk menampilkan data pada komponen RecyclerView Android caranya hampir sama dengan cara menampilkan data ke ListView Android, hanya beda sedikit pada adapternya saja.

Pada class MainActivity.java ini akan kita tampilkan data yang sudah tersimpan di dalam database MySQL. Untuk cara menampilkan data database MySQL ke aplikasi Android menggunakan RecyclerView caranya sama dengan tutorial yang sebelumnya saya buat, bisa sobat baca pada link berikut

Menampilkan Data ke RecyclerView

Nah seperti konsep pada link artikel di atas maka untuk class ini, silahkan sobat buat kodenya seperti di bawah ini


package com.aji.crudvolley;

import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;

import com.aji.crudvolley.adapter.AdapterList;
import com.aji.crudvolley.app.AppController;
import com.aji.crudvolley.helper.helper;
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 org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;

public class MainActivity extends AppCompatActivity {

private RecyclerView lvhape;

private ArrayList<HashMap<String, String>> list_data;

private String tag_json = "tag_json";

private String url = helper.main_url + "getdata.php";

ProgressDialog pd;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.btntambah);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(getApplicationContext(), TambahActivity.class));
}
});

pd = new ProgressDialog(this);

lvhape = (RecyclerView)findViewById(R.id.lvhape);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
lvhape.setLayoutManager(linearLayoutManager);

list_data = new ArrayList<HashMap<String, String>>();

showData();
}

private void showData() {

pd.setMessage("Loading...");
pd.setCancelable(false);
showDialog();

JsonObjectRequest jsonRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("RESPONSE ", response.toString());
hideDialog();
try {
JSONArray jray = response.getJSONArray("handphone");
for (int a = 0; a < jray.length(); a++){
JSONObject json = jray.getJSONObject(a);
HashMap<String, String> map = new HashMap<>();
map.put("id", json.getString("idhp"));
map.put("merk", json.getString("merk"));
map.put("tipe", json.getString("tipe"));
map.put("gambar", json.getString("gambar"));
map.put("keterangan", json.getString("keterangan"));
list_data.add(map);
AdapterList adapter = new AdapterList(MainActivity.this, list_data);
lvhape.setAdapter(adapter);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("ERROR", error.getMessage());
hideDialog();
}
});

AppController.getAppController().addToRequestQueue(jsonRequest, tag_json);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();

//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}

return super.onOptionsItemSelected(item);
}

private void showDialog() {
if (!pd.isShowing())
pd.show();
}

private void hideDialog() {
if (pd.isShowing())
pd.dismiss();
}
}



Setelah membuat kode pada MainActivity, untuk menampilkan data ke RecyclerView harus menggunakan adapter sebagai pemroses data dan viewholder sebagai penampil data. Jadi sekarang sobat buat file class baru di dalam package viewholder dan beri nama HapeHolder.java, untuk kodenya seperti berikut ini


package com.aji.crudvolley.holder;

import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.aji.crudvolley.R;

/**
* Created by AJISETYA
*/
public class HapeHolder extends RecyclerView.ViewHolder {
public TextView txthape;
public ImageView imghape;

public HapeHolder(View itemView) {
super(itemView);

txthape = (TextView)itemView.findViewById(R.id.txthape);
imghape = (ImageView)itemView.findViewById(R.id.imghp);
}
}



Selanjutnya, class HapeHolderkita panggil pada class adapter sebagai penampil data di masing masing komponen. Sekarang buat class baru di dalam package adapter dan beri nama AdapterList.java, dan buat kodenya seperti berikut ini


package com.aji.crudvolley.adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.aji.crudvolley.MainActivity;
import com.aji.crudvolley.R;
import com.aji.crudvolley.helper.helper;
import com.aji.crudvolley.holder.HapeHolder;
import com.bumptech.glide.Glide;

import java.util.ArrayList;
import java.util.HashMap;

/**
* Created by AJISETYA
*/
public class AdapterList extends RecyclerView.Adapter<HapeHolder> {

private ArrayList<HashMap<String, String>> list_data;
Context context;

public AdapterList(MainActivity mainActivity, ArrayList<HashMap<String, String>> list_data) {
this.list_data = list_data;
this.context = mainActivity;
}

@Override
public HapeHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, null);
return new HapeHolder(view);
}

@Override
public void onBindViewHolder(HapeHolder holder, int position) {
holder.txthape.setText(list_data.get(position).get("merk"));
Glide.with(context).load(helper.main_url + "img/" + list_data.get(position).get("gambar"))
.crossFade().placeholder(R.mipmap.ic_launcher).into(holder.imghape);
}

@Override
public int getItemCount() {
return list_data.size();
}
}



Oke kita sudah menampilkan data, sekarang kita ke class TambahActivity.java yang berfungsi sebagai halaman untuk menambah data. Tidak seperti MainActivity class ini sedikit simple, silahkan sobat buka class TambahActivity.java dan buat kodenya sperti berikut ini


package com.aji.crudvolley;

import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.aji.crudvolley.app.AppController;
import com.aji.crudvolley.helper.helper;
import com.android.volley.AuthFailureError;
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.StringRequest;

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

import java.util.HashMap;
import java.util.Map;

public class TambahActivity extends AppCompatActivity {

private EditText txtmerk, txttipe, txtket;

ProgressDialog pd;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tambah);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

txtmerk = (EditText) findViewById(R.id.txtmerk);
txttipe = (EditText) findViewById(R.id.txttipe);
txtket = (EditText) findViewById(R.id.txtket);

pd = new ProgressDialog(this);

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.btnsimpan);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String merk = txtmerk.getText().toString().trim();
String tipe = txttipe.getText().toString().trim();
String keterangan = txtket.getText().toString().trim();
if (!merk.isEmpty() && !tipe.isEmpty() && !keterangan.isEmpty()) {
simpanData(merk, tipe, keterangan);
} else if (merk.isEmpty()) {
txtmerk.setError("merk tidak boleh kosong");
txtmerk.requestFocus();
} else if (tipe.isEmpty()) {
txttipe.setError("tipe tidak boleh kosong");
txttipe.requestFocus();
} else if (keterangan.isEmpty()) {
txtket.setError("keterangan tidak boleh kosong");
txtket.requestFocus();
}

}
});
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

private void simpanData(final String merk, final String tipe, final String keterangan) {
String url_simpan = helper.main_url + "simpan.php";

String tag_json = "tag_json";

pd.setCancelable(false);
pd.setMessage("Menyimpan...");
showDialog();

StringRequest stringRequest = new StringRequest(Request.Method.POST, url_simpan, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("response", response.toString());
hideDialog();

try {
JSONObject jObject = new JSONObject(response);
String pesan = jObject.getString("pesan");
String hasil = jObject.getString("result");
if (hasil.equalsIgnoreCase("true")) {
Toast.makeText(TambahActivity.this, pesan, Toast.LENGTH_SHORT).show();
startActivity(new Intent(getApplicationContext(), MainActivity.class));
finish();
} else {
Toast.makeText(TambahActivity.this, pesan, Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(TambahActivity.this, "Error JSON", Toast.LENGTH_SHORT).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("ERROR", error.getMessage());
Toast.makeText(TambahActivity.this, error.getMessage(), Toast.LENGTH_SHORT).show();
hideDialog();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> param = new HashMap<String, String>();
param.put("merk", merk);
param.put("tipe", tipe);
param.put("keterangan", keterangan);
return param;
}
};

AppController.getAppController().addToRequestQueue(stringRequest, tag_json);
}

private void showDialog() {
if (!pd.isShowing())
pd.show();
}

private void hideDialog() {
if (pd.isShowing())
pd.dismiss();
}

}



Memberikan Izin Mengakses Internet

Karena aplikasi mengambil data dari databse MySQL di server, maka aplikasi internet mebutuhkan perizinan untuk mengakses internet. Untuk menambahkan izin internet caranya dengan menambahkan kode di bawah ini di dalam file AndroidManifest.xml dan letakkan di atas kode <application>


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


Menjalankan Program

Jika semuanya sudah sekarang saatnya menjalankan aplikasi dengan memilih menu Run-app, maka tampilannya akn menjadi seperti ini sob

Android Volley Tutorial - Menyimpan Data ke Database MySQL

Android Volley Tutorial - Menyimpan Data ke Database MySQL


Nah, bagaimana sobat, cukup mudah bukan? aplikasi ini memiliki dua pekerjaan untuk librari volley, yang pertama adalah membuat permintaan JSON dan yang kedua yaitu menambahkan POST parameter ke server. Data dari server MySQL diambil dan ditamilkan di Android RecyclerView dan data nilai dikirim ke server kemudian disimpan ke dalam database MySQL.

Silahkan jika sobat ingin melihat project lengkap tentang menyimpan data ke dalam database MySQL dengan aplikasi android, bisa dilihat di link berikut


Sekian artikel tentang  Android Volley Tutorial - Menyimpan Data ke Database MySQL, semoga bermanfaat. Silahkan bagikan artikel ini jika sobat mneyukainya. Silahkan sobat bisa kirimkan pertanyaan, kritik, saran, maupun komentar di kolom komentar di bawah ini. Sekian, sampai jumpa di artikel selanjutnya..





Tuesday, February 21, 2017

Menampilkan Data MySQL ke Aplikasi Android dengan Volley dan RecyclerView

Hai sobat blog setya aji, kembali lagi dengan saya di tutorial android. Pada tutorial sebelumnya yang berjudul Menampilkan Data dari Database MySQL ke Aplikasi Android dengan Volley, saya telah jelaskan bagaimana membuat database server data dan mengambil data tersebut kemudian menampilkannya di aplikasi android menggunakan librari volley. Dan pada aritikel kali ini saya akan meneruskan tutorial kemarin, masih menggunakan librari volley sebagai pengambil data, nah bedanya nanti data akan saya tampilkan di komponen RecyclerView. Oke sob, berikut tutorialnya 😁

Menampilkan Data MySQL ke Aplikasi Android dengan Volley dan RecyclerView


Untuk membuat aplikasi android, kadang aplikasi membutuhkan data yan gdi simpan di server clound agar bisa diakses oleh banyak pengguna. Data tersebut biasanya disimpan di dalam database MySQL dan diakses dengan file WEB PHP. Untuk bisa mengakses data pada server ke dalam aplikasi android, aplikasi harus mengunakan layanan web (Web Service). Untuk penjelasan lanjut tentang Web Service bisa sobat baca di artikel sebelumnya.

Nah, untuk menggunakan Web Service, kita bisa menggunakan beberapa librari seperti asyntask, Android Query, Volley, maupun Retrofit. Librari-librari tersebut memiliki kelebihan dan kekurangan masing-masing, dan untuk kecepatan mengambil data Retrofit yang paling unggul.

Baca juga "Cara Menampilkan Kecepatan Internet Android di Statusbar"

Pada artikel kali ini masih menggunakan librari volley untuk mengambil data. Dan tambahanya adalah, data yang diambil akan ditampilan pada komponen RecyclerView berbentuk list. Oke berikut angkah pembuatanya.

Pada artikel ini saya menggunakan server dan project dari artikel sebelumnya. Jika sobat belum membuatnya, silahkan bisa sobat buka pada link di bawah ini

Menampilkan Data Dari MySql ke Aplikasi Android

Membuat Server

Server yang saya gunakan sama dengan tutorial sebelumnya, yaitu dengan database MySQL dengan nama database app_blogvolley di table hape

Membuat Project Baru

Untuk project yang dibuat saya ambil dari artikel sebelumnya, yaitu project volley

Menginstal Librari

Librari yang digunakan masih sama dengan artikel sebelumnya, yaitu gabungan antara volley dan glide

Membuat Tampilan

Untuk nanti kita akan tampilkan data pada komponen RecyclerView, untuk menambahkan komponen RecyclerView, silahkan sobat bisa membaca pada postingan saya sebelumnya di link berikut

Membuat Aplikasi Android RecyclerView dan Menampilkan Gambar dengan Glide

Setelah komponen recyclerview telah ditambahkan, sekarang buka file activity_main.xml dan tambahkan komponen RecyclerView, kodenya seperti berikut ini :


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.aji.voley1.MainActivity">


<android.support.v7.widget.RecyclerView
android:id="@+id/lvhape"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true" />
</RelativeLayout>



Kemudian jika kita ingin menampilkan data pada RecyclerView dengan tampilan yang kita inginkan, maka kita membuatuhkan layout baru agar kita bisa menampilkan data pada komponen yang kita butuhkan. Pada komponen RecyclerView kita akan tampilkan data gambar dan satu teks sebagai judul data.

Menampilkan Data MySQL ke Aplikasi Android dengan Volley dan RecyclerView

Untuk menampung gambar menggunakan komponen ImageView dan untuk menampilkan teks menggunakan komponen TextView. Silahkan buat layout baru kemudian beri nama dengan list_item.xml, kodenya sebagai berikut


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="5dp">

<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:padding="5dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dp">

<ImageView
android:id="@+id/imghp"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@mipmap/ic_launcher" />

<TextView
android:id="@+id/txthape"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:gravity="center_vertical"
android:text="Merk"
android:textSize="25sp" />
</LinearLayout>
</android.support.v7.widget.CardView>

</RelativeLayout>


Membuat Logika Java

Jika tampilanya sudah dibuat, sekarang masukkan logika java pada file MainActivity.java. Untuk kali ini kita akan ubah beberapa kode yang ada pada artikel sebelumnya, silahkan sobat cek kode pada file MainActivity.java dan rbah seperti berikut ini :


package com.aji.voley1;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.bumptech.glide.Glide;

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

import java.util.ArrayList;
import java.util.HashMap;

public class MainActivity extends AppCompatActivity {

private RecyclerView lvhape;

private RequestQueue requestQueue;
private StringRequest stringRequest;

ArrayList<HashMap<String, String>> list_data;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

String url = "http://192.168.95.77/app_blogvolley/getdata.php";

lvhape = (RecyclerView) findViewById(R.id.lvhape);
LinearLayoutManager llm = new LinearLayoutManager(this);
llm.setOrientation(LinearLayoutManager.VERTICAL);
lvhape.setLayoutManager(llm);

requestQueue = Volley.newRequestQueue(MainActivity.this);

list_data = new ArrayList<HashMap<String, String>>();

stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("response ", response);
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray jsonArray = jsonObject.getJSONArray("handphone");
for (int a = 0; a < jsonArray.length(); a++) {
JSONObject json = jsonArray.getJSONObject(a);
HashMap<String, String> map = new HashMap<String, String>();
map.put("id", json.getString("idhp"));
map.put("merk", json.getString("merk"));
map.put("tipe", json.getString("tipe"));
map.put("gambar", json.getString("gambar"));
map.put("keterangan", json.getString("keterangan"));
list_data.add(map);
AdapterList adapter = new AdapterList(MainActivity.this, list_data);
lvhape.setAdapter(adapter);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, error.getMessage(), Toast.LENGTH_SHORT).show();
}
});

requestQueue.add(stringRequest);
}
}


Untuk menampilkan data ke dalam RecyclerView, kita membutuhkan adapter untuk memproses data. Adapter yang digunakan adalah adapter yang diubah sesuai keinginan kita agar data tampil di masing-masing komponen yang ada di layout list_item.xml. Oke, untuk membuat adapter, kita menggunakan sebuah class baru yang nanti kita beri nama AdapterList yang class ini memiliki sifat dari RecyclerView.Adapter. Kemudian untuk penampung data, menggunakan ViewHolder yang kita masukan ke dalam AdapterList. Untuk kodenya seperti berikut


package com.aji.voley1;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;

import java.util.ArrayList;
import java.util.HashMap;

/**
* Created by AJISETYA.
*/
public class AdapterList extends RecyclerView.Adapter<AdapterList.ViewHolder>{

Context context;
ArrayList<HashMap<String, String>> list_data;

public AdapterList(MainActivity mainActivity, ArrayList<HashMap<String, String>> list_data) {
this.context = mainActivity;
this.list_data = list_data;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, null);
return new ViewHolder(view);
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Glide.with(context)
.load("http://192.168.95.77/app_blogvolley/img/" + list_data.get(position).get("gambar"))
.crossFade()
.placeholder(R.mipmap.ic_launcher)
.into(holder.imghape);
holder.txthape.setText(list_data.get(position).get("merk"));
}

@Override
public int getItemCount() {
return list_data.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {
TextView txthape;
ImageView imghape;

public ViewHolder(View itemView) {
super(itemView);

txthape = (TextView) itemView.findViewById(R.id.txthape);
imghape = (ImageView) itemView.findViewById(R.id.imghp);
}
}
}



Memberikan Izin Mengakses Internet

Karena aplikasi mengambil data dari server lewat internet, maka kita harus memberikan izin internet di dalam AndroidManifest.xml, untuk kodenya di bawah ini lalu letakkan di atas kode <application>


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


Menjalankan Aplikasi

Jika tampilan dan kode javanya sudah, sekarang aplikasi sudah bisa dijalankan dengan memilih menu Run-app, untuk tampilanya seperti berikut ini

Menampilkan Data MySQL ke Aplikasi Android dengan Volley dan RecyclerView


Nah, konsepnya sama seperti kita menampikan data ke aplikasi menggunakan AQuery dan ListView. Jadi data diambil dengan memanggil json dari server, kemudian diproses dan dimasukkan ke dalam RecyclerView untuk ditampilkan pada layar.

Oke sekian artikel tentang Menampilkan Data MySQL ke Aplikasi Android dengan Volley dan RecyclerView, semoga bermanfaat dan membantu sobat yang sedang belajar pemrograman android. Silahkan bagikan artike ini ke taman-teman sobat jika sobat senang dengan artikel ini. Silahkan isi kolom komentar di bawah jika sobat ada pertanyaan, kritik, dan saran. Oke, terimakasih sampai jumpa di artikel selanjutnya.. 😀


Tuesday, February 14, 2017

Volley - Menampilkan Data dari Database MySQL ke Aplikasi Android

Hai sobat, kembali lagi dengan saya, masih di tutorial tentang pemrograman android. Pada artikel sebelumnya yang berjudul Tutorial Membuat Aplikasi Android Menggunakan Librari Volley, telah saya jelaskan bagaimana persiapan membuat dan mengambil data dari database ke dalam aplikasi android menggunakan librari Volley. Dan pada artikel kali ini saya akan meneruskan ke tahap selanjutnya yaitu menampilkan data yang telah diambil ke dalam beberapa komponen sesuai data.

Volley - Menampilkan Data dari Database MySQL ke Aplikasi Android

Pada artikel sebelumnya telah saya jelaskan persiapan yang dibutuhkan untuk membuat aplikasi android dan menambahkan librari volley untuk mengambil data dari database MySQL. Silahkan bagi sobat yang belum mengetahui cara dan persiapanya bisa mempelajarinya terebih dahulu di link berikut ini

Tutorial Membuat Aplikasi Android Menggunakan Librari Volley

Pada tutorial kai ini, saya akan coba membuat aplikasi android untuk menampilkan spesifikasi handphone. Data handphone sudah disimpan di dalam database MySQL dan untuk mengirim ke dalam aplikasi android menggunakan file PHP sebagai server. Nanti data pada MySQL diambil oleh file PHP kemudian diproses menjadi bentuk JSON, nah JSON ini akan diambil oleh aplikasi kemudian diproses lalu ditampilkan di layar aplikasi. Kira-kira alurnya seperti itu sob, agak bingung ya 😅 tenang ntar mudeng sendiri..

Oke mari buat aplikasi android kita, langkah-langkahnya seperti berikut ini :

Menyiapkan Database

Untuk datanya nanti kita simpan di dalam databse MySQL, silahkan instal aplikasi web server seerti XAMPP dan aplikasi sejenisnya. Jika sudah silahkan buat database dengan nama app_blogvolley, kemudian buat table baru dengan nama hape, untuk strukturnya seperti berikut ini

Volley - Menampilkan Data dari Database MySQL ke Aplikasi Android

Jika databse sudah, sekarang pada folder htdocs, buat folder baru dengan nama app_blogvolley, kemudian tambah folder baru dengan nama img di dalamnya.

Volley - Menampilkan Data dari Database MySQL ke Aplikasi Android

Agar bisa terkoneksi dengan database, kita membuatuhkan satu file php sebagai koneksi utama, untuk membuatnya silahkan buka aplikasi teks editor dan buat flebaru dengan nama koneksi.php. Untuk kodenya seperti berikut ini


<?php
$server ="localhost";
$username = "root";
$password ="";
$database ="app_blogvolley";

mysql_connect($server, $username, $password) or die("Koneksi tidak ada");
mysql_select_db($database) or die("Database tidak ditemukan");
?>


Setelah bisa terhubung dengan database, sekarang kita bisa mengambil data dari database menggunakan sebuah file yang berisi query untuk menampilkan data, silahkan buat file baru dengan nama getdata.php dan bua kodenya seperti berikut ini


<?php
include 'koneksi.php';
$hasil = mysql_query("SELECT * FROM hape") or die(mysql_error());
$json_response = array();

if(mysql_num_rows($hasil)> 0){
while ($row = mysql_fetch_array($hasil)) {
$json_response[] = $row;
}
echo json_encode(array('handphone' => $json_response));
}
?>


Nah, sekarang simpan semua file, kemudian buka aplikasi browser sobat dan coba akses file getdata.php yang baru saja dibuat. Kirang lebih jika diakses hasilnya akan seperti berikut ini

Volley - Menampilkan Data dari Database MySQL ke Aplikasi Android

Membuat Project Baru

Silahkan buat project baru dengan nama volley, untuk jenis activity pilih yang empty activity

Menginstal Librari

Untuk mengambil data dari server, kita membutuhkan librari dengan nama Volley, agar bisa mengguanaknya kita harus menginstal librarinya di dalam file build:grandle.

Selanjutnya kita akan menampilkan gambar dari database ke dalam komponen ImageView pada aplikasi. Karena gambar yang akan kita tampilkan berasal dari server atau url, maka kita membutuhkan librari sebagai penampil gambar (Image Loader). Di sini kita akan menggunakan sebuah librari sebagai image loader yaitu librari Glide. Untuk lebih lengkapnya tentang Glide, sobat bisa membacanya di link berikut ini

Librari Glide

Setelah saya cari-cari, saya menemukan sebuah librari yaitu gabungan antara volley dan glide. Librari ini bisa digunakan seperti librari biasanya, silahkan instal librarinya di dalam build:grandle(Project), kodenya seperti berikut


compile 'com.github.bumptech.glide:volley-integration:1.4.0'


Setelah librari sitambahkan, jangan lupa pilih Sync Now untuk mensingkronkan project.

Membuat Tampilan

Untuk tampilanya, nanti akan kita tampilkan gambar dan spesifikasi. Nah untuk membuatnya, silahkan pada file activity_main.xml tambahkan satu komponen ImageView dan tiga komponen TextView, untuk kodenya speerti berikut ini


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
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="com.aji.voley1.MainActivity">

<ImageView
android:layout_width="match_parent"
android:layout_height="300dp"
app:srcCompat="@mipmap/ic_launcher"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/imghp" />

<TextView
android:text="Merk"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/imghp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="16dp"
android:id="@+id/txtmerk" />

<TextView
android:text="Tipe"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/txtmerk"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="16dp"
android:id="@+id/txttipe" />

<TextView
android:text="Keterangan"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/txttipe"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="19dp"
android:id="@+id/txtketerangan" />
</RelativeLayout>



Membuat Logika Java

Setelah membuat tampilannya, selanjutnya membuat logika program pada file java. Buka file MainActivity.java, kemudian buat kodenya seperti berikut ini


package com.aji.voley1;

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

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.bumptech.glide.Glide;

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

import java.util.ArrayList;
import java.util.HashMap;

public class MainActivity extends AppCompatActivity {

private ImageView imghp;
private TextView txtmerk, txttipe, txtketerangan;

private RequestQueue requestQueue;
private StringRequest stringRequest;

ArrayList<HashMap<String, String>> list_data;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

String url = "http://192.168.95.91/app_blogvolley/getdata.php";

imghp = (ImageView)findViewById(R.id.imghp);
txtmerk = (TextView)findViewById(R.id.txtmerk);
txttipe = (TextView)findViewById(R.id.txttipe);
txtketerangan = (TextView)findViewById(R.id.txtketerangan);

requestQueue = Volley.newRequestQueue(MainActivity.this);

list_data = new ArrayList<HashMap<String, String>>();

stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray jsonArray = jsonObject.getJSONArray("handphone");
for (int a = 0; a < jsonArray.length(); a ++){
JSONObject json = jsonArray.getJSONObject(a);
HashMap<String, String> map = new HashMap<String, String>();
map.put("id", json.getString("idhp"));
map.put("merk", json.getString("merk"));
map.put("tipe", json.getString("tipe"));
map.put("gambar", json.getString("gambar"));
map.put("keterangan", json.getString("keterangan"));
list_data.add(map);
}
Glide.with(getApplicationContext())
.load("http://192.168.95.91/app_blogvolley/img/" + list_data.get(0).get("gambar"))
.crossFade()
.placeholder(R.mipmap.ic_launcher)
.into(imghp);
txtmerk.setText(list_data.get(0).get("merk"));
txttipe.setText(list_data.get(0).get("tipe"));
txtketerangan.setText(list_data.get(0).get("keterangan"));
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, error.getMessage(), Toast.LENGTH_SHORT).show();
}
});

requestQueue.add(stringRequest);
}
}



Di dalam kode di atas, pertama kita deklarasikan variable masing masing komponen yang akan digunakan. Kemudian pada method onCreate, kita inisialisasikan variable yang sudah dideklarasikan. Selanjutnya buat method untuk mengambil data pada StringRequest dengan memasukan url atau alamat server.

Akan ada 2 method lagi di dalamnya yaitu onRespon dan Error.Listener. Pada method onRespon, aplikasi akan mengambil data berupa json kemudian disimpan pada variable respon, selanjutnya dimasukkan ke dalam JSONObject dan diurai menggunakan JSONArray. Data yang sudah disimpan diambil berdasarkan field dan index dengan perulangan for, kemudian masing-masing data dipilah dan dimasukkan ke dalam HashMap lalu ke ArrayList.

Baca juga "Cara Merubah Tampilan Android menjadi IOS/IPhone"

Setelah data masuk ke dalam ArrayList, maka data bisa diambil kemudian ditampilkan ke masing-masing komponen. Pada method Error.Listener kita bisa menampilkan perintah ketika terjadi error, di sini saya buat sebuah toast yang menampilkan teks error.

Memberi Izin Mengakses Internet

Agar aplikasi bisa mengambil data pada server, aplikasi membutuhkan izin utnuk mengakses internet. Untuk menambahkanya, silahkan buka AndroidManifest.xml dan tambahkan kode di bawah ini tepat di atas tag <application>


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


Menjalankan Program

Jika semuanya sudah, sekarang aplikasi sudah bisa dijalankan dengan memilih Run-app. Tampilan aplikasi kira-kira akan seperti ini sob 👇👇

Volley - Menampilkan Data dari Database MySQL ke Aplikasi Android


Nah, seperti itu sob, cara mengambil data dari database ke dalam aplikasi android, cukup mudah bukan. Sekian artikel kali ini, semoga membentu dan bermanfaat. Silahkan share artikel ini jika sobat menyukai artikel ini. Sobat juga bisa memberikan kritik, saran atau bertanya dengan mengisi kolom komentar di bawah. Sampai jumpa di artikel berikutnya... 😁

Tutorial selanjutnya "Menampilkan Data MySQL di RecyclerView menggunakan Librari Volley"



Monday, February 13, 2017

Tutorial Membuat Aplikasi Android dengan Librari Volley

Hai sobat, masih pada artikel tentang android, pada artikel sebelumnya saya telah membahas bagaimana cara menjalankan project androidstudio langsung pada perangkat android, dan kali ini saya akan membahas tentang networking pada android. Berikut penjelasan serta langkah-langkah pembuatannya.

Mengambil data dari server menggunakan aplikasi android


Untuk membuat aplikasi android yang bagus dan besar, kadang aplikasi harus terkoneksi dengan internet dan platform lain. Pada pembuatan aplikasi semacam itu maka kita harus menggunakan Web Service. Apa itu web service? Untuk lebih mudahnya, web service adalah bagaimana aplikasi dari lain platform bisa saling terhubung, aplikasi bisa diakses di berbagai platform tanpa memperhatikan di mana database da server berada, aplikasi bisa terhubung dengan menggunakan koneksi intenet. Untuk lebih jelasnya bisa dilihat pada gambar di bawah ini.

Mengambil data dari database menggunakan aplikasi android


Dengan menggunakan Web Service, penguna android dapat menjalankan aplikasi dimanapun dan kapanpun. Untuk mengambil data dari server menggunakan aplikasi android, diperlukan jembatan yang disebut JSON, untuk lebih lengkapnya tentang JSON, sobat bisa cari sendiri di mbah google 😂

Baca juga "Cara Mudah Melacak HP Android yang Hilang"

Untuk web service singkatnya seperti itu, sekarang kita akan masuk tentang Volley. Apa itu Volley? Volley adalah librari yang digunakan untuk penggunaan jaringan seperti mendapatkan data dan mengirim data dengan mudah dan cepat. Volley ini adalah librari yang diciptakan langsung dari google untuk mempermudah developer dalam mengembangkan aplikasi. Volley menawarkan banyak sekali manfaat seperti berikut ini :


·         penjadwalan otomatis permintaan jaringan.
·         Beberapa koneksi jaringan bersamaan.
·         Transparan disk dan respon memori cache dengan standar HTTP koherensi cache yang .
·         Dukungan untuk permintaan prioritas.
·         Pembatalan permintaan API. Anda dapat membatalkan permintaan tunggal, atau Anda dapat mengatur blok atau lingkup permintaan untuk membatalkan.
·         Kemudahan kustomisasi, misalnya, untuk coba lagi dan backoff.
·         memesan kuat yang membuatnya mudah untuk benar mengisi UI dengan data diambil asynchronous dari jaringan.
·         Debugging dan alat pelacakan.

Volley sangat berguna dan bermanfaat untuk membuat aplikasi networking pada android. Voley bisa digunakan secara bebas dan mudah disesuaikan dengan algoritma developer. Volley menyimpan data pada memori ketika menjalankan operasi jaringan, sehingga volley tidak cocok digunakan untuk mengunduh data dalam ukuran yang sangat besar, 

Untuk menggunakan Volley, kita harus menginstal librarinya terlebih dahulu dengan memasukkan kode berikut ini pada file grandle:build, untuk kodenya seperti berikut :


dependencies {
...
compile 'com.android.volley:volley:1.0.0'
}


Oke seperti itu pengenalan dari Volley, untuk selanjutnya akan dijelaskan langkah - langkah penggunaan dari volley

Membuat Project Baru

Pertama buat project baru dengan nama Volley, dan beri nama domain sesuai keinginan sobat.

Membuat Tampilan

Selanjutnya untuk tampilan, tambahkan satu komponen TextView dan satu komponen ImageView, untuk kodenya seperti berikut ini


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
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="com.aji.voley1.MainActivity">


<TextView
android:text="Hello World!"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/textView4" />
</RelativeLayout>



Menginstal Librari

Jika tampilanya sudah dibuat, selanjutnya instal librarinya di file build:grandle. Selain librari volley, tambahkan satu librari untuk menampilkan gambar dari server, bisa juga disebut image loader. Di sini saya mengunakan librari glide. Kedua librari tersebut kebetulan bisa digabungkan menjadi satu paket kode. Untuk kodenya seerti berikut ini :


dependencies {
...
compile 'com.android.volley:volley:1.0.0'
}


Membuat Logika Java

Setelah membuat tampilan dan menginstal librari, selanjutnya adalah membuat logikanya di file java. Silahkan buka class MainActivity dan buat kodenya seperti berikut ini


package com.aji.voley1;

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

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.bumptech.glide.Glide;

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

import java.util.ArrayList;
import java.util.HashMap;

public class MainActivity extends AppCompatActivity {

private ImageView imghp;
private TextView txtmerk, txttipe, txtketerangan;

private RequestQueue requestQueue;
private StringRequest stringRequest;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

String url = "http://armioindonesia.esy.es/app_berita/getberita.php";

requestQueue = Volley.newRequestQueue(MainActivity.this);

stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(MainActivity.this, response, Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, error.getMessage(), Toast.LENGTH_SHORT).show();
}
});

requestQueue.add(stringRequest);
}
}



Menjalankan Program

Jika semuanya sudah siap, sekarang aplikasi bisa dijalankan dengan memilih menu Run-app, maka tampilanya akan jadi seperti berikut ini

Tutorial Membuat Aplikasi Android dengan Librari Volley


Nah pada aplikasi tersebut sobat sudah bisa mengambil data dari server dengan aplikasi android berupa json yang ditampilkan pada Toast ketika volley menjalankan method onResponse.

Begitulah kurang lebih persiapan awal mengambil data dari server menggunakan librari Volley, untuk artikel berikutnya kita saya akan menunjukkan cara menampilkan data ke dalam komponen yang sudah ditampilkan di dalam layout yang sudah dibuat.

Sekian artikel tentang Tutorial Android dengan Librari Volley, semoga bermanfaat, nantikan artikel menarik lainya. Silahkan ikuti blog setya aji atau bagikan artikel ini jika sobat menyukai artikel ini. Silahkan isi kolom komentar di bawah jika sobat memiliki pertanyaan, kritik atau saran.. Sampai jumpa... 😁


Sunday, February 12, 2017

Remote Smartphone Android Menggunakan Komputer

Hai sobat, dah lama nih gak ngeblog gara banyak sekali kesibukan yang membuatku malas dan lagsung tidur pas nyampe rumah #ngomongapaansi 😅 Pada artikel sebelumnya saya telah membagikan beberapa tutorial seputar pemrograman android, dan kali ini saya akan kembali memberikan sedikit tips dan trik untuk android dan komputer.

Remote Smartphone Android Menggunakan Komputer


Artikel ini didasari atas pengalamanku kemarin, ketika memiliki jadwal yang sangat padat dan tidak sempat berpaling dari komputer, padahal notifikasi handphone selalu berbunyi. Jadi saya berfikir bagaimana caranya agar saya bisa membuka semua notifikasi di handphoneku menggunakan komputer yang sedang digunakan. Jadi setelah mencari-cari caranya, akhirnya saya menemukan cara ini.

Karena keseharian saya di depan komputer belajar membuat aplikasi android atau website, jadi saya tidak asing dengan yang namanya adb dab usb debugging. USB debugging dan ADB berfungsi untuk mengatur atau mengontrol sistem android untuk menjalankan perintah yang diberikan lewat komputer. Jadi cara ini adalah penerapan dari fungsi tersebut sob.

Baca juga "Cara Agar Akun Google Tetap Aman"

Jadi jika kita mengendalikan tampilan atau menjalankan android di dalam komputer, tampilan android akan diduplicate ke dalam komputer, kemudian ditampilkan ke layar monitor agar bisa dioperasikan menggunakan komputer.

Oke, cara mengendalikan tampilan andoid ini cukup mudah, langkah-langkahnya seperti berikut :

1. Siapkan smartphone androidmu sob. Minjam teman juga boleh 😁
2. Instal ADB Driver di komputer kesayangan sobat, untuk cara penginstalanya bisa dibuka di link berikut

menginstal ADB Driver

3. Hidupkan pengaturan pengembang atau USB Debugging, caranya bisa dibuka di link berikut.

menghidupkan opsi pengembang

4. Instal aplikasi VYSOR di android sobat, berikut link downloadnya


5. Buka browser Chrome di komputer atau laptop sobat, terus buka link berikut untuk mengunduh VYSOR di komputer


6. Oke sekarang hubungkan android dengan kabel usb dan pastikan smartphone kamu sudah terdeteksi di komputer
7. Jika sudah sekarang buka aplikasi vsor di hape dan di komputer kamu
8. Di dalam aplikasi vysor komputer, pilih temukan perangkat, lalu pilih android kamu yang sudah terdeteksi.

Remote Smartphone Android Menggunakan Komputer

9. Jika ada dialog di android sobat, pilih ok
10. Dan sekarang tampilan android kamu akan langsung tampil di komputer kamu

Remote Smartphone Android Menggunakan Komputer


Setelah komputer terhubung dengan android, sobat bisa mengendalikan handphone android sobat langsung dari komputer, tampilan handphone pun akan menyesuaikan dan untuk mengetik sobat tinggal mengetik seperti biasanya.

Oke sekian artikel tentang Remote Smartphone Android Menggunakan Komputer semoga bermanfaat. Silahkan ikuti dan bagikan jika sobat menyukai artikel ini. Silahkan isi kolom komentar di bawah jika ada pertanyaan, kritik dan saran. Sekian dari saya, sampai jumpa di artikel berikutnya..