Dynamic Blinkie Text Generator at TextSpace.net

Feedburner

I heart FeedBurner

Kamis, 16 Februari 2017


Koneksi Android ke Database MYSQL mengggunakan PHP JSON

Selama ini database bawaan android adalah Sqlite Database. Namun bagaimana jika kita memanfaatkan Mysql sebagai database dan PHP Sebagai Server side nya ?
Berikut tutorial koneksi Android ke Mysql dengan menggunakan server PHP.
Pertama buat database dulu di mysql, misalnya database dengan nama android.
Selanjutnya buat tabel dengan nama kontak dengan struktur tabel sebagai berikut :
1
2
3
4
5
CREATE TABLE kontak(
id_kontak int (2),
nama varchar (255),
PRIMARY KEY( id_kontak )
);
Lalu isi tabel dengan data sesuai yang diinginkan . Misal nya

Selanjut nya adalah membuat file PHP untuk dikoneksikan ke Mysql.
Buat file php dengan nama db_config.php dan isikan kode berikut :
1
2
3
4
5
6
<?php
    define('DB_SERVER',"localhost");
    define('DB_USER' , "root");
    define('DB_PASSWORD',"");
    define('DB_DATABASE',"android");
?>
Kode tersebut digunakan untuk komunikasi dengan database mysql. Setting username dan password sesuai dengan konfigurasi mysql anda.
Selanjutnya buat file php dengan nama db_connect.php dan isi sebagai berikut :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
class DB_CONNECT{
    function __construct(){
    $this->connect();
}
function __destruct(){
   $this->close();
}
function connect(){
  //require_once __DIR__ .'/db_config.php';
  include "db_config.php";
  $con = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die (mysql_error());
  $db = mysql_select_db(DB_DATABASE) or die (mysql_error());
  return $con;
}
function close(){
   mysql_close();
 }
}
?>
Selanjutnya buat file php dengan nama bacaKontak.php, file ini digunakan untuk membaca semua data yang ada pada database mysql. isi file bacaKontak.php sebagai berikut :
1
2
3
4
5
6
7
8
9
10
<?php
  require_once __DIR__ .'/db_connect.php';
  $db = new DB_CONNECT();
  $select = mysql_query("SELECT * FROM kontak");
 
  while($value = mysql_fetch_assoc($select)){
    $output [] = $value;
  }
  print(json_encode($output));
?>
Nah sekarang tinggal buat file android nya.
Buat project android baru dengan struktur sebagai berikut :
7
Setelah selesai, maka akan ada file dengan ekstensi .java seperti berikut :
6
Buka file MainActivity.java dan isi dengan kode berikut :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package com.koneksimysql;
 
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.ParseException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.ArrayAdapter;
 
public class MainActivity extends ListActivity{
  String id;
  String[] nama;
 
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
 
   String hasil = null;
   InputStream is = null;
   StringBuilder sb = null;
 
   try{
      HttpClient httpClient = new DefaultHttpClient();
      HttpPost httpPost = new HttpPost("http://10.0.2.2/android/bacaKontak.php");
      HttpResponse response = httpClient.execute(httpPost);
      HttpEntity entity = response.getEntity();
      is = entity.getContent();
 
    }catch(Exception e){
      Log.e("log_tag", "Error Http Connection");
   }
   try{
      BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
      sb = new StringBuilder();
      sb.append(reader.readLine()+"\n");
      String line = "0";
      while((line = reader.readLine()) != null){
         sb.append(line + "\n");
      }is.close();
      hasil = sb.toString();
   }catch(Exception e){
      Log.e("log_tag", "Error Converting result"+e.toString());
   }
   JSONArray jArray;
   try{
       jArray = new JSONArray(hasil);
       JSONObject jObject = null;
       nama = new String[jArray.length()];
       for(int i = 0; i<jArray.length(); i++){
       jObject = jArray.getJSONObject(i);
       nama[i] = jObject.getString("nama");
   }
   }catch(JSONException je){
       Toast.makeText(getBaseContext(), "No data Found",
       Toast.LENGTH_LONG).show();
   }
    catch (ParseException pe){
      pe.printStackTrace();
  }
     setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, nama));
     ListView lv;
     lv = getListView();
     lv.setTextFilterEnabled(true);
     lv.setOnItemClickListener(new OnItemClickListener(){
 
     @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
       // TODO Auto-generated method stub
 
    }
 
  });
 }
}
Dan terakhir, tambahkan code berikut di AndroidManifest.xml nya .
1
<uses-permission android:name="android.permission.INTERNET" />
Hasil akhir nya nya sebagai berikut :

Semoga bermanfaat ! 🙂

Tidak ada komentar:

Posting Komentar