Tutorial Android JSON Webservice PHP MySQL

Artikel ini melanjutkan artikel sebelumnya tentang JSON. Dalam artikel sebelumnya telah dibahas tentang format JSON dan bagaimana membuat data JSON dari tabel MySQL dengan PHP. Dalam artikel ini, kita akan menampilkan data JSON tadi kedalam Listview seperti tampak dibawah ini.

Sekenario

Kita akan menampilkan data JSON ke dalam Listview. Jika item di klik maka akan menampilkan detail datanya.

Demo Webservice JSON Android PHP MySQL
Demo Webservice JSON Android PHP MySQL
Untuk membuat program ini minimal dibutuhkan 4 file yaitu

  1. event.java
  2. eventAdapter.java
  3. ListEventActivity.java
  4. EventDetailActivity.java

    Dari penamaannya saja, anda sudah paham masing masing file java diatas kan?Bagi yang belum memahami Custom listview, saya sarankan anda membaca artikel saya yang berjudul custom Listview sehingga anda paham dengan konsep customAdapter.

    Kode mengambil event dari server

    List<NameValuePair> params = new ArrayList<NameValuePair>();
    		JSONObject json = jParser.makeHttpRequest(VIEW_EVENT_URL, "GET", params);
    		Log.d("JSON", json.toString());
    		// when parsing JSON stuff, we should probably
    		// try to catch any exceptions:
    		try {
    			arrayevent = json.getJSONArray("list_event");
    
    			// looping through all posts according to the json object returned
    			for (int i = 0; i < arrayevent.length(); i++) {
    				JSONObject event = arrayevent.getJSONObject(i);
    				listevent.add(new
    				 Event(BitmapFactory.decodeResource(getResources(),
    				 R.drawable.jadwal), 
    				 event.getString("eventID"), 
    				 event.getString("judul"),
    				 event.getString("tanggal"),
    				 event.getString("jam"),
    				 event.getString("lokasi"))); // end of add					
    			}
    
    		} catch (JSONException e) {
    			e.printStackTrace();
    		}
    		

    menampilkan data di listview

    
    		EventAdapter adapter = new EventAdapter(this, listevent);
    		lvEvent.setAdapter(adapter);
    

    .

    mengaktifkan onItemClick

    lvEvent.setOnItemClickListener(new OnItemClickListener() {
    
    			@Override
    			public void onItemClick(AdapterView<?> parent, View view,
    					int position, long id) {
    
    				// getting values from selected ListItem
    				String eventID = ((TextView) view.findViewById(R.id.tveventID))
    						.getText().toString();
    
    				// Starting new intent
    				Intent in = new Intent(getApplicationContext(),
    						EventDetailActivity.class);
    				// sending idnama_kasus to next activity
    				in.putExtra("eventID", eventID);
    
    				// starting new activity and expecting some response back
    				startActivityForResult(in, 100);
    
    			}
    		});
    

    Perhatikan saat user mengklik listitem, eventID akan di kirim ke halaman EventDetailActivity
    Di halaman event detail activity, parameter eventID dipakai untuk mengambil
    data detail dari webservice dan menampilkannya di TextView

    Download source code

    Topik ini memang cukup komplek dan jika kode ditulis semua, maka artikel ini menjadi sangat panjang. Oleh karena itu, silahkan anda mendowload source codenya dan mencobanya sendiri. Download disini

    Happy Coding!

Tutorial JSON PHP MySQL

Logo JSON
Logo JSON
Membuat JSON dari PHP tidaklah susah, syaratnya, anda memakai PHP versi 5.2 keatas. Mengapa demikian? karena di PHP versi 5.2 keatas sudah mempunyai fungsi json_encode dan json_encode
json_encode adalah fungsi yang mengubah format data Array menjadi JSON, sedangkan json_decode berfungsi sebaliknya, mengubah JSON menjadi PHP Array.

Struktur tabel

Dalam contoh ini, kita akan membuat format data JSOn dari tabel event.

CREATE TABLE IF NOT EXISTS event (
  eventID int(11) NOT NULL AUTO_INCREMENT,
  judul varchar(50) NOT NULL,
  tanggal date NOT NULL,
  jam varchar(10) NOT NULL,
  lokasi varchar(50) NOT NULL,
  keterangan text NOT NULL,
  PRIMARY KEY (eventID)
) ENGINE=InnoDB  ;

setelah membuat tabel, masukan beberapa data sample kedalamnya.

Berikut ini adalah kode PHP untuk mengambil data dari database dan menampilkan
data dalam format JSON.

<?php

mysql_connect("localhost", "root", "");
mysql_select_db("belajarphp");

$query = "SELECT * from event ";
$result = mysql_query($query) or die(mysql_error());

$arr = array();
while ($row = mysql_fetch_assoc($result)) {
    $temp = array(
	"eventID" => $row["eventID"],
    "judul" => $row["judul"],
    "tanggal" => $row["tanggal"], 
    "jam" => $row["jam"], 
    "lokasi" => $row["lokasi"]);
	
    array_push($arr, $temp);
}

$data = json_encode($arr);

echo "{\"list_event\":" . $data . "}";
?>

hasil dari kode diatas

{"list_event":
	[
		{"eventID":"1",
		"judul":"Pengajian Akbar menyambut ramadhan",
		"tanggal":"2014-05-19",
		"jam":"20:00",
		"lokasi":"Masjid Kampus UGM"
		},
		{ "eventID":"2",
		"judul":"Bedah buku kesesatan syiah",
		"tanggal":"2014-05-21",
		"jam":"09:00",
		"lokasi":"Masjid Kampus UII "
		}
	]
}

What next?

Kalau cuma menampilkan data JSOn di browser, tentunya kurang bemanfaat. Manfaat JSON ini terasa kalau kode ini yang sering disebut dengan webservice, diakses oleh aplikasi lain yang beda device, beda bahasa pemrograman atau beda sistem operasi.

Dalam artikel selanjutnya, saya akan menunjukan bagaimana data JSON di artikel ini diakses oleh android dan ditampilkan di listview.