Giatberilmu.blogspot.com Giatberilmu.blogspot.com
Aplikasi CRUD Android Menggunakan database Mysql
Aplikasi CRUD Android Menggunakan database Mysql
Hai, kawan-kawan kali ini saya akan membuat tutorial CRUD (Hai, kawan-kawan kali ini saya akan membuat tutorial CRUD (Create Read Update DeleteCreate Read Update Delete) Android dengan) Android dengan menggunakan database Mysql untuk perantaranya menggunakan file php. Program yang saya buat adalah data menggunakan database Mysql untuk perantaranya menggunakan file php. Program yang saya buat adalah data produk dimana nantinya kita bisa membuat(
produk dimana nantinya kita bisa membuat(createcreate), mengedit(), mengedit(UpdateUpdate), membaca(), membaca(read read ), dan), dan menghapus(
menghapus(deletedelete) data.) data.
Sebelum saya mulai, ada yang perlu kawan-kawan ketahui bahwa seringkali saat pembuatan program k Sebelum saya mulai, ada yang perlu kawan-kawan ketahui bahwa seringkali saat pembuatan program k itaita selalu salah membedakan variable, nah mulai sekarang saya akan membedakan variable dari file php dan kelas selalu salah membedakan variable, nah mulai sekarang saya akan membedakan variable dari file php dan kelas java yang ada di android, agar kawan-kawan bisa membedakan dan
java yang ada di android, agar kawan-kawan bisa membedakan dan belajar dengan lebih mudah.belajar dengan lebih mudah.
Yosh Langsung
Yosh Langsungsaja, pertama buat database terlebih dahulu, database = “crud_ar” table=”produk” dengansaja, pertama buat database terlebih dahulu, database = “crud_ar” table=”produk” dengan field sebagai berikut :
field sebagai berikut :
Kedua buatlah file php sebagai aksi CRUD, disini saya berinama
Kedua buatlah file php sebagai aksi CRUD, disini saya berinama aksi.phpaksi.phpdengan kode sebagai berikut :dengan kode sebagai berikut :
<?php
<?php
mysql_connect("localhost","root","");
mysql_connect("localhost","root","");
mysql_select_db("crud_ar"); //database name
mysql_select_db("crud_ar"); //database name
switch($_GET['a']){ switch($_GET['a']){ case "insert" : case "insert" : $id = $_GET['kd']; $id = $_GET['kd']; $nm = $_GET['nm']; $nm = $_GET['nm']; $hrg = $_GET['hrg']; $hrg = $_GET['hrg']; $des = $_GET['deskripsi']; $des = $_GET['deskripsi'];
$result = mysql_query("INSERT INTO produk(kd,nm,hrg,deskripsi) VALUES('$id','$nm','$hrg','$des')");
$result = mysql_query("INSERT INTO produk(kd,nm,hrg,deskripsi) VALUES('$id','$nm','$hrg','$des')");
if($result){
if($result){
echo "berhasil insert data";
echo "berhasil insert data";
}else{ }else{ echo "nm".$nm; echo "nm".$nm; } } break; break; case "update": case "update": $kd = $_GET['kd']; $kd = $_GET['kd']; $nm = $_GET['nm']; $nm = $_GET['nm'];
Giatberilmu.blogspot.com
$hrg = $_GET['hrg']; $des = $_GET['des'];
$result = mysql_query("UPDATE produk SET nm='$nm' , hrg='$hrg', deskripsi='$des' WHERE kd='$kd'"); if($result){
echo "berhasil ubah data"; }else{
echo "gagal ubah data"; }
break;
case "delete":
$id = $_GET['kd'];
$result = mysql_query("DELETE FROM produk WHERE kd='$id'"); if($result){
echo "berhasil hapus data"; }else{
echo "gagal hapus data"; }
break; case "read":
$kd=$_GET['kd'];
/* Source code untuk Menampilkan Data */
$q = mysql_query("SELECT * FROM produk where kd='$kd'"); $v = '{"data" : [';
while($r=mysql_fetch_array($q)) {
$ob = array('"','<br>','</br>');
$v .='{"kd" : "'.$r['kd'].'", "nm" : "'.str_replace($ob,' ',strip_tags($r["nm"])).'","hrg" :
"'.str_replace($ob,' ',strip_tags($r["hrg"])). '","deskripsi" : "'.str_replace($ob,' ',strip_tags($r["deskripsi"])).'"}'; }
$v .= ']}'; echo $v; }
?>
Fungsi dari kode di atas adalah untuk menerima request dari client kepada server. Ketiga buatlah project Androidnya di Eclipse, seperti gambar dibawah ini :
Giatberilmu.blogspot.com
Keterangan project Android : Project name = prak_Crud Package Name = arum.jiyu.com SDK = Android 2.3.1 (min 9)
Keempat buat kelas object Json (bagi yang belum tahu membuat kelas object caranya : klik kanan package “arum.jiyu.com” >> New >> Class >> isi (Name = JSONParser Superclass= java.lang.Object hilangkan centang pada “ Inherited abstract methods” >> Finish )), berikut SourceCode JSONParser.java :
package arum.jiyu.com; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONException; import org.json.JSONObject;
Giatberilmu.blogspot.com
import android.util.Log;
public class JSONParser {
static InputStream is = null;
static JSONObject jObj = null;
static String json = "";
public JSONObject AmbilJson(String url) {
try {
DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url);
HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8); StringBuilder sb = new StringBuilder(); String line = null;
while ((line = reader.readLine()) != null) { sb.append(line);
}
is.close();
json = sb.toString(); } catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString()); }
try {
jObj = new JSONObject( json); } catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString()); }
return jObj; }
Giatberilmu.blogspot.com Kelima buatlah layout seperti berikut, di main.xml :
Source code main.xml :
<?xml version="1.0" encoding ="utf-8"?>
<LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:layout_width ="fill_parent" android:layout_height ="fill_parent" android:orientation ="vertical" > <TextView android:layout_width ="fill_parent" android:layout_height="wrap_content" android:text ="@string/hello" /> <TextView android:id ="@+id/textView1" android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:text ="Kode" > </TextView> <LinearLayout android:id ="@+id/linearLayout2" android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:orientation ="horizontal" > <EditText android:id ="@+id/editKode" android:layout_width ="wrap_content"
Giatberilmu.blogspot.com android:layout_height ="wrap_content" android:layout_weight ="1" /> <Button android:id ="@+id/btnCek" android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:text ="Cek" /> </LinearLayout > <TextView android:id ="@+id/textView2" android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:text ="Nama" > </TextView> <EditText android:id ="@+id/editNama" android:layout_width ="match_parent" android:layout_height ="wrap_content" > </EditText> <TextView android:id ="@+id/textView4" android:layout_width="wrap_content" android:layout_height ="wrap_content" android:text ="Harga" /> <EditText android:id ="@+id/editHarga" android:layout_width ="match_parent" android:layout_height ="wrap_content" /> <TextView android:id ="@+id/textView5" android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:text ="Deskripsi" /> <EditText android:id ="@+id/editDes" android:layout_width ="match_parent" android:layout_height ="wrap_content" android:layout_weight ="0.27" android:inputType ="textMultiLine" /> <LinearLayout android:id ="@+id/linearLayout1" android:layout_width ="match_parent" android:layout_height="wrap_content" >
Giatberilmu.blogspot.com <Button android:id ="@+id/buttonInsert" android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:text ="insert" > </Button> <Button android:id ="@+id/buttonUpdate" android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:text ="update"> </Button> <Button android:id ="@+id/buttonDelete" android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:text ="delete" > </Button> </LinearLayout > </LinearLayout >
Keenam, tulis source code di bawah ini di kelas Prak_CrudActivity.java :
package arum.jiyu.com; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast;
public class Prak_CrudActivity extends Activity {
/** Called when the activity is first created. */
private EditText kode, nama, harga, deskripsi;
private Button insert, update, delete, cek;
private String kode1, nama1, harga1, deskripsi1 ; JSONArray data = null;
Giatberilmu.blogspot.com @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout. main);
kode = (EditText) findViewById(R.id.editKode); nama = (EditText) findViewById(R.id.editNama); harga = (EditText) findViewById(R.id.editHarga); deskripsi = (EditText) findViewById(R.id.editDes); cek = (Button) findViewById(R.id.btnCek);
insert = (Button) findViewById(R.id.buttonInsert); update = (Button) findViewById(R.id.buttonUpdate); delete = (Button) findViewById(R.id.buttonDelete); insert.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub String url = "";
// karena saya menggunakan Genymotion sebagai emulator // jadi IP address = 10.0.3.2 namun jika kawan kawan // menggunakan emulator bawaan eclipse
// silahkan gunakan IP Address 10.0.2.2 url = "http://10.0.3.2/crud/aksi.php" ;
try {
String ko = URLEncoder.encode(kode.getText().toString(), "utf-8");
String n = URLEncoder.encode(nama.getText().toString(), "utf-8");
String hr = URLEncoder.encode(harga.getText().toString(), "utf-8");
String d = URLEncoder.encode(
deskripsi.getText().toString(), "utf-8");
url += "?a=insert&kd=" + ko + "&nm=" + n + "&hrg=" + hr + "&deskripsi=" + d; getRequest(url); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } });
update.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) { String url = "";
// karena saya menggunakan Genymotion sebagai emulator // jadi IP address = 10.0.3.2 namun jika kawan kawan // menggunakan emulator bawaan eclipse
Giatberilmu.blogspot.com url = "http://10.0.3.2/crud/aksi.php" ;
try {
String ko = URLEncoder.encode(kode.getText().toString(), "utf-8");
String n = URLEncoder.encode(nama.getText().toString(), "utf-8");
String hr = URLEncoder.encode(harga.getText().toString(), "utf-8");
String d = URLEncoder.encode(
deskripsi.getText().toString(), "utf-8"); url += "?a=update&kd=" + ko + "&nm=" + n + "&hrg=" + hr
+ "&des=" + d; getRequest(url); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } });
delete.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub String url = ""; kode1 = kode.getText().toString(); url = "http://10.0.3.2/crud/aksi.php?a=delete&kd=" + kode1; getRequest(url); } });
cek.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub kode1 = kode.getText().toString();
String url = "http://10.0.3.2/crud/aksi.php?a=read&kd=" + kode1; JSONParser jParser = new JSONParser();
JSONObject json = jParser.AmbilJson(url);
try {
data = json.getJSONArray( "data");
for (int i = 0; i < data.length(); i++) { JSONObject ar = data.getJSONObject(i); String kode_d = ar.getString( "kd"); String nama_d = ar.getString( "nm"); String harga_d = ar.getString( "hrg"); String des_d = ar.getString( "deskripsi"); kode.setText(kode_d);
Giatberilmu.blogspot.com nama.setText(nama_d); harga.setText(harga_d); deskripsi.setText(des_d); } } catch (JSONException e) { e.printStackTrace(); } } }); }
public void getRequest(String url) {
Toast. makeText(this, url, Toast.LENGTH_LONG ).show(); HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
try {
HttpResponse response = client.execute(request); Toast. makeText(this, request(response) + ":)",
Toast.LENGTH_SHORT ).show(); } catch (Exception ex) {
Toast. makeText(this, "data gagal", Toast.LENGTH_SHORT ).show(); }
}
public static String request(HttpResponse reponse) { String result = "";
try {
InputStream in = reponse.getEntity().getContent(); BufferedReader reader = new BufferedReader(
new InputStreamReader(in)); StringBuilder str = new StringBuilder(); String line = null;
while ((line = reader.readLine()) != null) { str.append(line + "\n"); } in.close(); result = str.toString(); } catch (Exception e) { result = "Error"; } return result; } }
Giatberilmu.blogspot.com Terakhir, jangan lupa untuk menambah
uses permission di AndroidManifest.xml
sebagai berikut :Giatberilmu.blogspot.com
Terima kasih sudah berkunjung, semoga tutorial saya bermanfaat untuk kawan-kawan semangat !! Untuk download program dan tutorial silahkan klik menu DOWNLOAD