|
Metode dan Algoritma | Aplikasi Android JSON Mengambil Data dari Web Database PHP MySQL . Anda bisa melakukan konsultasi tentang Aplikasi Android JSON Mengambil Data dari Web Database PHP MySQL melalui form di samping kanan !!!
Penulis ingin sharing pengetahuan untuk membuat Aplikasi Android untuk Mengakses Data dalam Bentuk JSON dari Web PHP dengan Database MySQL. Sebelum ini koleksi kode program milik penulis masih terpisah-pisah. Kali ini penulis berhasil kumpulkan menjadi sebuah contoh program lengkap untuk mengambil data dari Server Web PHP MySQL menggunakan JSON kemudian diikuti dengan Menambahkan Data dari Aplikasi Android ke Web PHP MySQL tersebut dengan Metode POST. Mengupdat data dengan Metode POST juga. dan Menghapus data kita coba pakai Method GET.
Karena aplikasi ini cukup panjang. Penulis membagi menjadi 4 bagian :
1. Mengambil Data JSON dari PHP MySQL
2. Menambahkan Data ke PHP MySQL menggunakan POST.
3. Mengedit / update Data ke PHP MySQL menggunakan Method POST.
4. Menghapus Data di PHP MySQL dengan Metode GET.
Sedangkan source code program yang penulis sharing dan bisa didownload di bawah sudah lengkap keempat bagian tersebut. Silakan didownload.
Pada artikel ini kita bahas bagian pertama yaitu Mengambil Data JSON dari PHP MySQL :
Pada Web PHP MySQL buka localhost/phpmyadmin, buat database `db` dan buatlah tabel `kota` di dalamnya dengan perintah SQL sebagai berikut :
CREATE TABLE IF NOT EXISTS `kota` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nama` varchar(200) DEFAULT NULL,
`latitude` varchar(100) DEFAULT NULL,
`longitude` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
INSERT INTO `kota` (`id`, `nama`, `latitude`, `longitude`) VALUES
(1, 'Yogyakarta', '111111', '222222'),
(2, 'Semarang', '333333', '444444'),
(3, 'Solo', '5555555', '6666666'),
(4, 'Magelang', '7777777', '8888888');
Kemudian pada folder htdocs dalam hal ini kita buat di /xampp/htdocs/json/daftarkota.php, kita buat file PHP untuk mengambil data di database MySQL dan menampilkan dalam format JSON. kode programnya sebagai berikut :
<?php
$link = mysql_connect('localhost', 'root', '') or die('Cannot connect to the DB');
mysql_select_db('db', $link) or die('Cannot select the DB');
$query = "SELECT * FROM kota";
$result = mysql_query($query, $link) or die('Errorquery: '.$query);
$rows = array();
while ($r = mysql_fetch_assoc($result)) {
$rows[] = $r;
}
$data = "{kota:".json_encode($rows)."}";
echo $data;
?>
Kemudian sambungkan dahulu komputer tempat server PHP MySQL berada dengan suatu jaringan sehingga IP Address nya aktif. Klik Start, Search ketik "cmd", pada perintah DOS ketikkan perintah ipconfig sebagai berikut sehingga didapatkan IP Address komputer yang akan digunakan dalam kode program Android untuk koneksi ke server web
Kemudian kita masuk ke Project Android. Buka Eclipse, buat project Android Baru.
Program utama kita letakkan di MainActivity
MainActivity.java
package com.amijaya.androidphpmysqljson;
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 org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
// http://cariprogram.blogspot.com
// nuramijaya@gmail.com
public class MainActivity extends Activity {
private JSONObject jObject;
private String jsonResult ="";
private String url = "http://192.168.43.150/json/daftarkota.php";
private String url2 = "http://192.168.43.150/json/delkota.php";
String[] daftarid;
String[] daftarnama;
String[] daftarlatitude;
String[] daftarlongitude;
Menu menu;
public static MainActivity ma;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ma=this;
RefreshList();
}
public void RefreshList() {
try {
jsonResult = getRequest(url);
jObject = new JSONObject(jsonResult);
JSONArray menuitemArray = jObject.getJSONArray("kota");
daftarid = new String[menuitemArray.length()];
daftarnama = new String[menuitemArray.length()];
daftarlatitude = new String[menuitemArray.length()];
daftarlongitude = new String[menuitemArray.length()];
for (int i = 0; i < menuitemArray.length(); i++)
{
daftarid[i] = menuitemArray.getJSONObject(i).getString("id").toString();
daftarnama[i] = menuitemArray.getJSONObject(i).getString("nama").toString();
daftarlatitude[i] = menuitemArray.getJSONObject(i).getString("latitude").toString();
daftarlongitude[i] = menuitemArray.getJSONObject(i).getString("longitude").toString();
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ListView ListView01 = (ListView)findViewById(R.id.ListView01);
ListView01.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, daftarnama));
ListView01.setSelected(true);
ListView01.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
final String selectionid = daftarid[arg2];
final String selectionnama = daftarnama[arg2];
final String selectionlatitude = daftarlatitude[arg2];
final String selectionlongitude = daftarlongitude[arg2];
final CharSequence[] dialogitem = {"Edit", "Delete"};
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Pilih ?");
builder.setItems(dialogitem, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
switch(item){
case 0 :
/*Intent i = new Intent(getApplicationContext(), EditActivity.class);
i.putExtra("id", selectionid);
i.putExtra("nama", selectionnama);
i.putExtra("latitude", selectionlatitude);
i.putExtra("longitude", selectionlongitude);
startActivity(i);*/
break;
case 1 :
/*getRequest(url2 + "?id=" + selectionid);
RefreshList();
*/
break;
}
}
});
builder.create().show();
}});
((ArrayAdapter)ListView01.getAdapter()).notifyDataSetInvalidated();
}
/**
* Method untuk Mengirimkan data ke server
*/
public 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){
Toast.makeText(this,"Gagal "+sret, Toast.LENGTH_SHORT).show();
}
return sret;
}
/**
* Method untuk Menerima data dari server
*/
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;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
this.menu = menu;
menu.add(0, 1, 0, "Tambah").setIcon(android.R.drawable.btn_plus);
menu.add(0, 2, 0, "Refresh").setIcon(android.R.drawable.ic_menu_rotate);
menu.add(0, 3, 0, "Exit").setIcon(android.R.drawable.ic_menu_close_clear_cancel);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 1:
//Intent i = new Intent(MainActivity.this, AddActivity.class);
//startActivity(i);
return true;
case 2:
RefreshList();
return true;
case 3:
finish();
return true;
}
return false;
}
}
Kemudian tampilannya kita pakai saja tampilan default kemudian ditambah satu buah ListView dengan nama ListView01 :
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Android JSON PHP MySQL"
/>
<ListView android:id="@+id/ListView01" android:layout_width="match_parent" android:layout_height="wrap_content"></ListView>
</LinearLayout>
Android Manifest perlu ditambahkan permisson untuk melakukan koneksi ke Internet :
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.amijaya.androidphpmysqljson"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!--activity android:name=".AddActivity"
android:label="@string/app_name">
</activity>
<activity android:name=".EditActivity"
android:label="@string/app_name">
</activity-->
</application>
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
Hasilnya
Project selengkapnya silakan didownload disini :
https://docs.google.com/open?id=0B4i1FYc_4RXzN2NOb29kYUcycW8
Semoga bermanfaat, Selamat Coding.
Artikel Selanjutnya Aplikasi Android untuk Menambahkan Data ke PHP MySQL menggunakan POST
ActionScript AS3 ASP.NET AJAX C / C++ C# Clipper COBOL ColdFusion DataFlex Delphi Emacs Lisp Fortran FoxPro Java J2ME JavaScript JScript Lingo MATLAB Perl PHP PostScript Python SQL VBScript Visual Basic 6.0 Visual Basic .NET Flash MySQL Oracle Android
Related Post :
Judul: Aplikasi Android JSON Mengambil Data dari Web Database PHP MySQL
Rating: 100% based on 99998 ratings. 5 user reviews.
Ditulis Oleh hank2
Rating: 100% based on 99998 ratings. 5 user reviews.
Ditulis Oleh hank2
Anda sedang membaca artikel tentang
Aplikasi Android JSON Mengambil Data dari Web Database PHP MySQL, Semoga artikel tentang Aplikasi Android JSON Mengambil Data dari Web Database PHP MySQL ini sangat bermanfaat bagi teman-teman semua, jangan lupa untuk mengunjungi lagi melalui link
Aplikasi Android JSON Mengambil Data dari Web Database PHP MySQL.
{ 0 komentar... Views All / Send Comment! }
Posting Komentar