Home >Mobile >Android Fast Track CRUD Android PHP MySql

Android Fast Track CRUD Android PHP MySql

Date post:12-Jul-2015
Category:
View:8,318 times
Download:4 times
Share this document with a friend
Transcript:
  • Agus Haryanto, MKOMhttp://agusharyanto.net@agus_inovatoragus.superwriter@gmail.com08551000444 / 089673371119

    Juara 2 Indosat M2 Android Application ContestJuara Harapan Kompetisi Android T-Market (Telesindo)Juara 1 BBDEVID Challenge Blackberry Application (Webworks)Juara 1 AngelHack Blackberry Indonesia

  • ANDRO ID PHP MYSQL

    Kali ini kita akan membahas Bagaimana Android dapat mengirim data ke server dan mem-bacanya. Ada beberapa pendekatan untuk komunikasi dengan server ini tetapi yang sering dipakai adalah melalui http. Dengan demikian untuk mempraktekannya kita harus menginstall apache web server lengakap dengan PHP dan MySQLnya.

    CRUD AN DR O I D PHP M Y S Q LAplikasi yang menggunakan database pada umumnya memiliki fungsi untuk

    Menampilkan data

    Menambah data

    Menghapus data

    Merubah data

    Database SQLite pada android mempunyai keterbatasan pada salah satunya pada kapasitas penyim-panan data. Akan bermasalah apabila kita memaksakan menyimpan data yang besar (lebih dari 10000 data) pada SQLite. Selain itu jika kita ingin perubahan data aplikasi dirasakan oleh semua user tanpa harus install ulang aplikasi, maka data harus disimpan di Server. Cara yang paling sering digunakan adalah dengan perantara Webserver, PHP dan MySQL. Dimana android untuk melakukan perubahan data atau mendapatkan data dari database server cukup dengan memanggil url php yang telah diten-tukan.

    Agar lebih dimengerti mari kita buat aplikasi tentang maintenance data harga handphone yang data-base servernya menggunakan MySQL dengan Web Server Apache dan Server Side Scriptnya meng-gunakan PHP untuk itu hal yang penting untuk dilakukan sebelum memulai pembuatan aplikasinya adalah menyiaplkan environment servernya dengan menginstall XAMPP (Windows) atau LAMP (Linux). Setelah selesai Instalasi lalu kita lakukan langkah berikut.

    1. Pekerjaan di MySql, buat database dan tablenya.CREATE DATABASE db_phone;

    CREATE TABLE tbl_phone (id INT(4) NOT NULL AUTO_INCREMENT,phone_name VARCHAR(32) NOT NULL,price INT(10) NOT NULL,PRIMARY KEY (id))ENGINE=MyISAM;

    insert into tbl_phone values(null,'Galaxy S3',6000000);insert into tbl_phone values(null,'Galaxy Ace 2',3000000);insert into tbl_phone values( null,'HTC One',6000000);

  • 2. Siapkan Script PHP untuk memasukkan data baru ke tbl_phone, simpan dengan nama add_phone.php simpan didirectory document_root/phone contoh htdoc/phone jadi urlnya ada-lah http://yourdomain/phone/add_phone.php

  • 5. Siakan Scritpt untuk menghapus data phone di server, simpan dengan nama delete_phone.php

    6. Sekarang mari kita siapkan bagian androidnya, buat new android project MySQLPhone

    7. Buat Class HttpHelper.java lalu ketikkan kode berikutpackage net.agusharyanto.mysqlphone;import java.io.BufferedReader;

  • import java.io.InputStream;import java.io.InputStreamReader;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 android.util.Log;public class HttpHelper {

    /**

    * Method untuk Mengirimkan data kes erver event by button login diklik * * @param view */public static String getRequest(String Url) {

    String sret="";HttpClient client = new DefaultHttpClient();HttpGet request = new HttpGet(Url);try {

    HttpResponse response = client.execute(request);sret= request(response);

    } catch (Exception ex) {}return sret;

    }

    /** * Method untuk Menenrima data dari server * * @param response * @return */public static String request(HttpResponse response) {

    String result = "";

    try {InputStream in = response.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 ex) {result = "Error";

    }

    return result;}

    }

    Class HttpHelper ini digunakan untuk mengirim data keserver dan menangkap nilai yang dikemba-likan server.

  • 8. Buat class JSONFunction .java lalu ketikkan kode berikutpackage net.agusharyanto.mysqlphone;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.params.BasicHttpParams;import org.apache.http.params.HttpConnectionParams;import org.apache.http.params.HttpParams;import org.json.JSONException;import org.json.JSONObject;import android.util.Log;public class JSONfunctions {

    public static JSONObject getJSONfromURL(String url) {InputStream is = null;String result = "0";JSONObject jArray = null;try {

    HttpParams httpParameters = new BasicHttpParams();int timeoutConnection = 60000;HttpConnectionParams.setConnectionTimeout(httpParameters,

    timeoutConnection);int timeoutSocket = 60000;HttpConnectionParams.setSoTimeout(httpParameters,

    timeoutSocket);HttpClient httpclient = new

    DefaultHttpClient(httpParameters);

    HttpPost httppost = new HttpPost(url);HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();is = entity.getContent();

    } catch (Exception e) {Log.e("log_tag", "Error intimeout http connection " +

    e.toString());

    }

    // convert response to stringtry {

    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 + "\n");}is.close();result = sb.toString();

    } catch (Exception e) {

  • Log.e("log_tag", "Error converting result " + e.toString());result = "{\"errorcode\":\"0\"}";

    }

    try {jArray = new JSONObject(result);

    } catch (JSONException e) {Log.e("log_tag", "Error parsing data " + e.toString());result = "{\"errorcode\":\"0\"}";try {

    jArray = new JSONObject(result);} catch (JSONException e1) {

    // TODO Auto-generated catch blocke1.printStackTrace();

    }}

    return jArray;}

    public static String getStringJSONfromURL(String url) {InputStream is = null;String result = "0";

    // http posttry {

    HttpParams httpParameters = new BasicHttpParams();int timeoutConnection = 60000;HttpConnectionParams.setConnectionTimeout(httpParameters,

    timeoutConnection);int timeoutSocket = 60000;HttpConnectionParams.setSoTimeout(httpParameters,

    timeoutSocket);HttpClient httpclient = new

    DefaultHttpClient(httpParameters);

    HttpPost httppost = new HttpPost(url);HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();is = entity.getContent();

    } catch (Exception e) {Log.e("log_tag", "Error intimeout http connection " +

    e.toString());

    }

    // convert response to stringtry {

    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 + "\n");}is.close();result = sb.toString();

    } catch (Exception e) {Log.e("log_tag", "Error converting result " + e.toString());

  • result = "{\"errorcode\":\"0\"}";}

    return result;}

    }

    Class JSONFunction ini digunakan untuk menangkap nilai kembalian dari server yang datanya berupa JSON

    9. Buat Layoutbaru dengan nama add.xml lalu ketikan kode berikut

    < EditText android:text = "" android:id = "@+id/edtName"android:layout_width="fill_parent"

    android:layout_height="wrap_content">

    < EditText android:text = "" android:id = "@+id/edtPrice"android:layout_width="fill_parent"

    android:layout_height="wrap_content">

    10. Buat Layout dengan nama listphone.xml

  • android:layout_height="wrap_content" android:layout_weight = "1"

    android:layout_alignParentLeft="true" android:layout_below="@+id/textView1"/>

    11. Buat layout dengan nama row.xml

    < TextView android:id="@+id/phonename" android:layout_width="150sp" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:padding="5sp" />

    < TextView android:id="@+id/price" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="right" android:layout_toRightOf="@+id/phonename" android:padding="5sp" />

    12. Semua Layout sudah siap, saatnya membuat bagian javanya. Pada awal yang ditampilkan adalah list smartphone dan harganya, buat class baru dengan nama ListDataPhoneActivity.java

    package net.agusharyanto.mysqlphone;import java.util.ArrayList;import java.util.HashMap;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import android.app.Activity;import android.app.ProgressDialog;import android.content.Context;import android.content.Intent;import android.os.AsyncTask;import android.os.Bundle;import android.util.Log;import android.view.ContextMenu;import android.view.Menu;

  • import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.ListAdapter;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.Toast;public class ListDataPhoneActivity extends Activity {

    /** Called when the activity is first created. */private ListView listView1;private static final int REQUEST_CODE = 1;private ArrayList mylist = new

    ArrayList();

Embed Size (px)
Recommended