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 ) ); |
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" ); ?> |
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(); } } ?> |
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 )); ?> |
Buat project android baru dengan struktur sebagai berikut :
Setelah selesai, maka akan ada file dengan ekstensi .java seperti berikut :
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(); 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 } }); } } |
1
| <uses-permission android:name= "android.permission.INTERNET" /> |
Semoga bermanfaat !
Tidak ada komentar:
Posting Komentar