Tutorial Android PHP dan MySQL

Jumpa lagi dengan Agus Haryanto dalam seri Tutorial Android. Sebelumnya terimakasih kepada para pembaca yang sudah merekomendasikan blog ini sebagai salah satu blog favorit untuk tutorial android. Tutorial Kali ini akan membahas tentang Android PHP dan MySQL.
Android oh android kau membuatku semakin ingin memaksimalkan kemampuanmu. Ku bertanya dalam hati apakah engkau dapat mengakses database yang ada diserver, kalau bisa alangkah indahnya, mungkin seindah pergi kepulau komodo walaupun aku sendiri belum pernah kesana :), tetapi aku dapat merasakan keindahannya melalui gambar-gambar diinternet. Wah maaf jadi ngelanturnih.

Antara Jakarta dan Pulau Komodo terbentang jarak yang luas, kita harus melewati daratan dan menyeberangi lautan. Tapi tenang sekarang sudah ada Pesawat Terbang, kita bisa cepat tiba disana

Begitu juga dengan Handset android dengan database server terbentang jarak yang luas bergantung dari letak server kita. Untuk yang satu ini juga tidak perlu khawatir karena ada jaringan internet yang bisa menghubungkan handset android dengan database diserver.

Yang pernah bergaul dengan Aplikasi web database. Tentunya tidak asing dengan PHP dan MySQL.

Yang suka ngeblog tahukan wordpress. WordPress dibangun dengan menggunakan PHP dan MySQL.

Mungkin ada yang tidak sadar dengan Browser yang ada dilaptop kita dapat terhubung ke database MySQL yang tersimpan pada server yang jaraknya jauh dengan kita, semua itu dapat terwujud karena adanya jaringan Internet.

Laptop dengan Handset Android adalah sama, yaitu client dari suatu server, yang berarti dari handset android kita bisa mengakses file PHP yang ada diserver.

Oke untuk praktek kita kali ini kita  akan membuat daftar harga menu makanan, yang datanya diinputkan dari aplikasi android dan ditampilkan juga diaplikasi android  tersebut.

Langkah pertama adalah siapkan database beserta tablenya.

CREATE DATABASE db_makanan;

CREATE TABLE tbl_makanan (
id INT(4) NOT NULL AUTO_INCREMENT,
nama_makanan VARCHAR(32) NOT NULL,
harga INT(10) NOT NULL,
PRIMARY KEY (id)
)
ENGINE=MyISAM;

insert into tbl_makanan values(null,'ayam bakar',12000);
insert into tbl_makanan values(null,'ayam goreng',11000);
insert into tbl_makanan values( null,'ikan bakar',12000);

Oke karena aplikasi  android kita ini nantinya bisa memiliki fitur :

  1. Tambah data makanan
  2. Menampilkan data makanan yang telah diinputkan.

Untuk itu kita perlu membuat file PHP untuk menerima data dari android untuk dimasukkan ke dalam database, simpan dengan nama addmakanan.php

<?php
$nama = $_GET['nama'];
$harga = $_GET['harga'];

$link = mysql_connect('localhost', 'user', 'password') or die('Cannot connect to the DB');
mysql_select_db('db_makanan', $link) or die('Cannot select the DB');

/* grab the posts from the db */
$query = "insert into tbl_makanan (nama_makanan,harga) values('".$nama."',".$harga.")";
$result = mysql_query($query, $link) or die('Error query:  '.$query);
echo "SUCCESS";

?>

Buat juga file php untuk menampilkan daftar makanan yang telah kita inputkan, simpan dengan nama daftarmakanan.php

<?php
$link = mysql_connect('localhost', 'user', 'password') or die('Cannot connect to the DB');
mysql_select_db('db_makanan', $link) or die('Cannot select the DB');

/* grab the posts from the db */
$query = "SELECT nama_makanan, harga FROM tbl_makanan";
$result = mysql_query($query, $link) or die('Errorquery:  '.$query);

$rows = array();
while ($r = mysql_fetch_assoc($result)) {
    $rows[] = $r;
}
$data = "{makanan:".json_encode($rows)."}";
echo $data;
?>

Dari file di atas dapat dilihat bahwa server akan mengirimkan data ke client dalam bentuk JSON.

Untuk membuktikannya, mari kita coba dibrowser, dengan memasukkan address

http://localhost/android/daftarmakanan.php

Sekarang android time
1. Buat  Project Baru dengan nama AndroidJSON

2. Mari kita Buat layout untuk  Tambah Data, simpan dengan nama tambah.xml


<?xml version="1.0" encoding="utf-8"?>
<?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:text="Nama Makanan :" android:id="@+id/TextView01"
		android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
	<EditText android:text="" android:id="@+id/txtNama"
		android:layout_width="fill_parent" android:layout_height="wrap_content"></EditText>
	<TextView android:text="Harga :" android:id="@+id/TextView02"
		android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
	<EditText android:text="" android:id="@+id/txtHarga"
		android:layout_width="fill_parent" android:layout_height="wrap_content"></EditText>
	<Button android:text="Simpan" android:id="@+id/btnSimpan"
		android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
</LinearLayout>

3.Buat juga Layout untuk menampilkan daftar harga makanan, simpan dengan nama daftarmakanan.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="Baca Data Dari server dengan JSON" />
	<TextView android:layout_width="fill_parent"
		android:layout_height="wrap_content" android:text="Daftar Makanan" />
	<TextView android:layout_width="fill_parent" android:id="@+id/TextViewResult"
		android:layout_height="wrap_content" android:text="Hasil JSON" />
</LinearLayout>

4. Sekararang Mari kita buat Menu dari aplikasi ini, yang didalamnya terdapat navigasi

untuk masuk ke Form Tambah,

ke Daftar Makanan dan keluar Aplikasi. Edit File MainActivity.java

package com.agus.android.php;

/**
 * Class InsertActivity
 * @version 1.0 Dec 18, 2011
 * @author Agus Haryanto (agus.superwriter@gmail.com)
 * @website http://agusharyanto.net
 */

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends ListActivity {
    /** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);

		// Create an array of Strings, that will be put to our ListActivity
		String[] menu = new String[] { "Tambah Data", "Tampilkan Data", "Exit" };
		// Create an ArrayAdapter, that will actually make the Strings above
		// appear in the ListView
		// Menset nilai array ke dalam list adapater sehingga data pada array
		// akan dimunculkan dalam list
		this.setListAdapter(new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_1, menu));
	}

	@Override
	/**method ini akan mengoveride method onListItemClick
	 * yang ada pada class List Activity
	 * method ini akan dipanggil apabilai ada salah satu item
	 * dari list menu yang dipilih
	 */
	protected void onListItemClick(ListView l, View v, int position, long id) {
		super.onListItemClick(l, v, position, id);
		// Get the item that was clicked
		Object o = this.getListAdapter().getItem(position);
		String pilihan = o.toString();
		tampilkanPilihan(pilihan);
	}

	protected void tampilkanPilihan(String pilihan) {
		try {
			Intent i = null;
			if (pilihan.equals("Tambah Data")) {
				i = new Intent(this, InsertActivity.class);
			} else if (pilihan.equals("Tampilkan Data")) {
				i = new Intent(this, JSONActivity.class);
			} else if (pilihan.equals("Exit")) {
				finish();
			} else {
				Toast.makeText(this,"Anda Memilih: " + pilihan + " , " +
						"Actionnya belum dibuat", Toast.LENGTH_LONG).show();
			}
			startActivity(i);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

5. Sekarang Bagian Form Tambah Datanya, Buat Class baru dengan nama InsertActivity.java.

package com.agus.android.php;

/**
 * Class InsertActivity
 * @version 1.0 Dec 18, 2011
 * @author Agus Haryanto (agus.superwriter@gmail.com)
 * @website http://agusharyanto.net
 */

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

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.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class InsertActivity extends Activity {
	private EditText txtNama;
	private EditText txtHarga;

	private Button btnSimpan;
	// Seusuaikan url dengan nama domain yang anda gunakan
	private String url = "http://10.0.2.2/android/addmakanan.php";

	/**
	 * Method yang dipanggil pada saat aplikaasi dijalankan
	 * */
	@Override
	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		setContentView(R.layout.tambah);
		txtNama = (EditText) findViewById(R.id.txtNama);
		txtHarga = (EditText) findViewById(R.id.txtHarga);

		btnSimpan = (Button) findViewById(R.id.btnSimpan);
		// daftarkan even onClick pada btnSimpan
		btnSimpan.setOnClickListener(new Button.OnClickListener() {
			@Override
			public void onClick(View v) {

				try {
					// setiap parameter yang akan dikirim melalui http
					// harus encode agar
					// dapat terbaca dengan baik oleh server
					String nama = URLEncoder.encode(txtNama.getText()
							.toString(), "utf-8");
					String harga = URLEncoder.encode(txtHarga.getText()
							.toString(), "utf-8");
					url += "?nama=" + nama + "&harga=" + harga;
					getRequest(url);
				} catch (UnsupportedEncodingException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

			}
		});

	}

	/**
	 * Method untuk Mengirimkan data kes erver event by button login diklik
	 *
	 * @param view
	 */
	public void getRequest(String Url) {
		Toast.makeText(this, "Tambah Data " + Url + " ", Toast.LENGTH_SHORT)
				.show();
		HttpClient client = new DefaultHttpClient();
		HttpGet request = new HttpGet(url);
		try {
			HttpResponse response = client.execute(request);
			Toast.makeText(this, "Tambah Data " + request(response) + " ",
					Toast.LENGTH_SHORT).show();
		} catch (Exception ex) {
			Toast.makeText(this, "Tambah Data Gagal !", Toast.LENGTH_SHORT)
					.show();
		}

	}

	/**
	 * 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;
	}

}


6. Waktunya kita buat Class untuk menampilkan data dari server dalam bentuk JSON,
buat class baru dengan nama JSONActivity.java

package com.agus.android.php;

/**
 * Class JSONActivity
 * @version 1.0 Dec 18, 2011
 * @author Agus Haryanto (agus.superwriter@gmail.com)
 * @website http://agusharyanto.net
 */

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.JSONObject;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

public class JSONActivity extends Activity {
	private JSONObject jObject;

	private String xResult ="";
	//Seusuaikan url dengan nama domain yang anda gunakan
	private String url = "http://10.0.2.2/android/daftarmakanan.php";

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.daftarmakanan);
		TextView txtResult = (TextView)findViewById(R.id.TextViewResult);
        xResult = getRequest(url);
       	try {
 			parse(txtResult);
 		} catch (Exception e) {
 			e.printStackTrace();
 		}

	}
	private void parse(TextView txtResult) throws Exception {
		jObject = new JSONObject(xResult);

		JSONArray menuitemArray = jObject.getJSONArray("makanan");
		String sret="";
		for (int i = 0; i < menuitemArray.length(); i++) {
			sret +=menuitemArray.getJSONObject(i)
			.getString("nama_makanan").toString()+" : ";
			System.out.println(menuitemArray.getJSONObject(i)
					.getString("nama_makanan").toString());
			System.out.println(menuitemArray.getJSONObject(i).getString(
					"harga").toString());
			sret +=menuitemArray.getJSONObject(i).getString(
			"harga").toString()+"\n";
		}
		txtResult.setText(sret);
	}

	/**
	 * Method untuk Mengirimkan data kes erver
	 * event by button login diklik
	 *
	 * @param view
	 */
	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 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;
    }

	}

7. Edit file AndroidMainifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.agus.android.php"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />

    <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=".InsertActivity" android:label="Tambah Data">
        </activity>
         <activity android:name="JSONActivity" android:label="Daftar Makanan">
        </activity>

    </application>
    <uses-permission android:name="android.permission.INTERNET">
   </uses-permission>
</manifest>

8. Semua pekerjaan koding sudah kita lakukan sekarang saatnya Running Time

Sentuh Tampilkan data, Wow amazing data yang ada didatabase MySQL dapat tampil diandroid. 

Android memang joss.

Sentuh Tambah Data, Lalu isikan data sebagai beriku


Untuk Menyimpan Data Sentuk Tombol Simpan, Jika data yang disimpan berhasil

akan muncul Toast  “Tambah Data SUCCESS”

Kembali ke menu lalu Sentuh Tampilkan Data

Alhamdulillah, Data yang kusimpan ternyata berhasil tersimpan di database MySQL

Tutorial ini khusus saya buat untuk para pembaca blog agusharyanto.net yang banyak menanyakan
bagaimana mengakses atau membaca data yang berada diserver dalam hal ini MySQL.

Tetaplah semangat adik-adik mahasiswaku, untuk belajar pemrograman janganlah mudah menyerah,
terus coba dan coba. Dengan sendirinya nanti engkau akan merasa bahwa koding itu nikmat.
Bahkan lebih nikmat dari main Game. Masak sih kak, Coba mari berfikir sejenak.

Pada saat kita koding dan saat bermain game sama-sama enaknya.
Perbedaanya adalah hasil dari kegiatan tersebut, mari kita renungkan beberapa pertanyaan dibawah ini :

  1. Apa hasil dari main game ?
  2. Apa hasil dari koding ?
  3. Kira-kira kalau melamar pekerjaan yang akan diterima yang jago main game atau yang jago koding,
    atau yang jago bikin game ?
  4. Bunda kita tercinta lebih bahagia mana, melihat anaknya menghabiskan waktu untuk main game atau
    melihat anaknya menghabiskan waktu untuk koding ?. Jadi ingat waktu ngisi Seminar Android di
    Universitas Budi Luhur, saya sampaikan tunjukkanlah pada orang tua kita, bahwa pengorbanan mereka
    membiayai kita kuliah tidaklah sia-sia. Coba deh kita buat aplikasi sederhana dengan Android,
    lalu kita tunjukkan kepada orang tua kita, perhatikanlah Expresi Wajah mereka.
  5. Tidakkah kau ingin menjadi seorang sumber informasi, dimana jika ada tugs kuliah
    yang ada hubungannya dengan koding, maka teman-temanmu akan bertanya kepadamu ?

Saya sendiri bukanlah orang yang anti game. Sesekali juga main game :).
Tapi hendaklah gunakanlah waktu dengan sebaik-baiknya. Yang sedang duduk dibangku kuliah,
bayangkan saat kita lulus, siapkah kita masuk kedunia kerja atau siapkah kita menjadi entrepreneur.
Boleh jadi jawabannya akan bergantung pada yang kita lakukan saat ini

Semoga Bermanfaat

Salam hangat

Agus Haryanto

referensi:

http://developer.andorid.com

http://about-android.blogspot.com/2010/03/androind-json-parser.html

269 comments to Tutorial Android PHP dan MySQL

  • vixemon

    ohhh,,, udah ketemu mas,,,, ternyata letaknya di script XML layout,,,, saya kemaren cuma ngutak-ngatik script javanya, makanya gak ketemu-ketemu…..!!!!

    terima kasih byk mas atas bantuannya….!!!! semoga tambah sukses….!!!! aminnn

  • Putra

    Siang Mas … saya lagi coba nich Program Android
    Ttp ada errornya yaitu :

    1.error: Error: No resource found that matches the given name (at ‘icon’ with value ‘@drawable/
    icon’).
    pas

    2. tag should specify a target API level (the highest verified version; when running on later
    versions, compatibility behaviors may be enabled) with android:targetSdkVersion=”?”
    pas di

    kira-kira knp yach ? Tq sebelumnya
    kalo bisa email ke saya aja mas ….

  • sama mas putra punya saya juga eror di icon nya kenapa yah mas. mungkin bisa char yang udah bisa

  • Agus Haryanto

    @beny, ganti aja icon dengan ic_launcher

  • oms klo punya saya ko gagal terus ya pas di
    keluar tulisan gagal terus ya 🙁

  • Untuk semuanya yg masih gagal, ane saranin ngetik ulang dari awal, jangan copas, ane udah nyoba hasil copas dan ada kode2 tertentu yang error mungkin ngga support.

    Terima kasih mas tutorialnya, berhasil dan sangat membantu.

  • pandu

    Dear Mas,
    saya sudah coba programmnya, tetapi pas saya mau tampilkan data dan tambah data ada toast “Gagal” kenapa ya mas kira kira ????

  • Mantab gan, terima kasih
    bisa bantu skripsi gua ntar nih

  • Dear Mas, mau tanya nih ? gimana ya biar data yang di tampilkan di android bisa cepat, data nya saya ambil dari database mysql cuma datanya ada sekitar 25 ribu record… apa ada script khusus biar bisa cepat ditampilkan di android…

  • Agus Haryanto

    @bhakti, Salah satu cara yang bisa dilkukan adalah paging jadi tidak 25ribu ditampilkan sekaligus.

  • fery

    mas agus kok sya tidak bs mnampilkan datany tp klo tambah data bisa??mhon pencerahanny y terima kasih

  • aplikasinya dah jalan tapi untuk tampilkan dan isi GAGAL. Mohon bmbingannya

  • Salut …. semoga Mas Agus di lancarkan rizkinya …. amien !!

  • Thanks atas Infonya.. menarik banget.

  • mas agus, saya mau bertanya, itu yg disimpan di mysqlp baru hanya text? bagaimana dengan gambar dan peta? apakah datanya yang sudah di input masih bisa di update? saya sangat terinspirasi dengan mas agus, sekarang saya sedang menyusun skirpsi membuat sebuah aplikasi android

  • mas punya saya error pas di klik php nya ..

    Warning: mysql_connect(): Access denied for user ‘user’@’localhost’ (using password: YES) in C:\xampp\htdocs\android\daftarmakanan.php on line 2
    Cannot connect to the DB

  • Agus Haryanto

    @Diram, itu salah user sama password ke MySQLnya kalau settingan default, biasanya user diisi dengan root dan password =”

  • Agus Haryanto

    @fajar, pada tutorial disini yang disimpan hanya text saja. tetapi support juga untuk menyimpan data gambar.

  • Agus Haryanto

    @Nanang, Aaamiiiin

  • hyuda

    gagal mas
    keterangan

    txtNama cannot be resolved

    mohon pencerahannya

  • hyuda

    yang tadi dah beres mas..

    sekarang masalah domain diganti bagaimana ya?
    Maksud yang saya gunakan itu bagaimana,krg paham saya?

  • afany

    permisi,,,
    mau nanya,,ini main.xml nya gmn???koq gag ada yah???
    terima kasih

  • Agus Haryanto

    @fany, Kalau pakai eclipse yang baru biasanya nama filenya activity_main.xml

  • rendy

    om itu misalnya di jalanin di handphone koneksi ke localhostnya gimana ??

  • Mas agus mau tanya
    punya saya udah jalan,,, tp pas Tambah data / Tampilkan data kok selalu gagal ya??
    padahal saat saya ngakses ip 10.0.2.2 di browser emulatornya bisa…

    Keterangannya Gagal Gtu Aja

    SSnya :
    http://i.imgur.com/tUUdiOW.jpg?1
    http://i.imgur.com/3a3yjcX.jpg?1

    mohon bimbingannya
    Email = hadie.png@gmail.com

  • Agus Haryanto

    @hadi, user dan passwordnya sudah benar. jangan lupa di androidmainfest tmabhkan permission internet

  • zhakareya

    Mas agus kalo aplikasi panduan haji yang di gplay sama ga konsepnya seperti aplkkasi di atas

  • Ok gan Berhasil
    Thanks Bimbingannya

  • Agus Haryanto

    @zhakareya, secara umum untuk pembuatan aplikasi semacam panduan untuk contentnya bisa ditaruh diserver datau di local android sendiri

  • darwin tarain

    mas kalau mau ngedit gthu gmna mas

  • darwin tarain

    mas kalau ngejalanin dri hp itu pake ip komputer ya,aku masih blum ngerti maksudnya gmna,kalau dari emulator uda berhasil nii

  • mas klo Input datanya bukan EditText tapi dari spinner gimana mas,-
    makasi sebelumnya ..

  • Mas Numpang Nanya nih!!
    klo url web yang kita mau parsing menggunakan httacces,jd tdk keliatan file phpnya.
    jdi bagaimana mas???
    bisa di parsing kah??
    maaf oot dikit.hehe

  • Agus Haryanto

    @erik, rasanya aneh kalau developer tidak tahu nama file.php yang diakses. file servernya kan developer juga yang buat

  • Azar

    mas agus mau tanya,aku kan dah coba tutornya trus ga ada notive warning tapi pas di emulator kan muncul list view neh lah pas aku pilih semuanya kok malah ga ke eksekusi padalah ga ada notive warning
    trus lagi mas pas aku buat lg dan aku pisahin tambah data jadi tapi kok ga ke input ya ke databases gagal melulu inputnya
    kalo berkenan hubungi g talk saya tolong jadi guru android saya 🙂
    g mail : azarangga@gmail.com
    makasih sebelumnya mas

  • terima kasih mas…. sangat membantu sekali tutorialnya

  • public class Tampil_jadwal extends Activity {

    private JSONObject jObject;

    private String xResult=””;

    //Seusuaikan url dengan nama domain yang anda gunakan
    private String url = “http://10.0.2.2/appmysql/tampil_jadwal.php”;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tampil_jadwal_layout);
    TextView txtResult = (TextView)findViewById(R.id.TextViewResulttttt);

    xResult = getRequest(url);

    try {

    parse(txtResult);

    }

    catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
    }
    }

    //=================================================================

    private void parse(TextView txtResult)throws Exception {

    jObject = new JSONObject(xResult);

    JSONArray menuitemArray = jObject.getJSONArray(“jadwal”);

    String sret=””;

    for (int i = 0; i < menuitemArray.length(); i++) {
    sret +=menuitemArray.getJSONObject(i).getString("kd_tim").toString()+" : ";
    System.out.println(menuitemArray.getJSONObject(i).getString("kd_tim").toString());

    System.out.println(menuitemArray.getJSONObject(i).getString("nama_tim").toString());

    sret +=menuitemArray.getJSONObject(i).getString("nama_tim").toString()+"\n";
    }

    txtResult.setText(sret);
    }

    //=======================================================
    public String getRequest(String Url) {
    // TODO Auto-generated method stub
    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 mas bro "+sret, Toast.LENGTH_SHORT).show();
    }
    return sret;
    }

    //=========================
    public String request(HttpResponse response) {
    // TODO Auto-generated method stub
    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;
    }

    }

    ga ada eror tapi gagal. muncul toast “gagal”
    manifest udah usespermision internet

    tabel

    kd_tim int primary key
    nama_tim varchar

  • Yudi

    Mas agus mau nanya nih
    kendala saya sama kaya mas Hadi, saya sudah perbaiki user & passwordnya (‘root’,”);
    androidmanifest nya juga sudah ditambah permission internet.
    tp kenapa ya msih belum bisa insert & menampilkan data ??
    mohon bantuannya mas

    Hadi
    May 24th, 2013 at 4:13 am
    Mas agus mau tanya
    punya saya udah jalan,,, tp pas Tambah data / Tampilkan data kok selalu gagal ya??
    padahal saat saya ngakses ip 10.0.2.2 di browser emulatornya bisa…

    Keterangannya Gagal Gtu Aja

    SSnya :
    http://i.imgur.com/tUUdiOW.jpg?1
    http://i.imgur.com/3a3yjcX.jpg?1

  • brian

    mas klo yg error gk kebaca tapi di navigasi menu klik tambah data sama tampilkan data gk reaksi apa-apa itu gimana yaa mas?

  • Iman Syaefulloh

    Mas agus mohon pencerahannya, kasus saya sama dengan Mas Yudi, aplikasi saya masih belum bisa menampilkan dan menambah data, tapi pada saat saya akses lewat browser response json nya muncul.

    Terimakasih sebelumnya.

  • Agus Haryanto

    @Yudi,Imam coba pakai Assynchtask. Android versi 2.3 keatas diharuskan menggunakan assynchtask untuk komunikasi dengan server

  • Adeng Balawan

    makasih mas, sebelumnya tutorialnya..
    saya pengen bikin aplikasi kyk gitu tp inputanya beda..
    mau tanya nih,

    String nama = URLEncoder.encode(txtNama.getText().toString(), “utf-8”);
    String harga = URLEncoder.encode(txtHarga.getText().toString(), “utf-8”);

    pas saya edit txtNama sama String nama nya kok langsung error ya?
    sebenernya “String nama = URLEncoder.encode(txtNama.getText().toString(), “utf-8″);” itu nyambungnya kemana? terima kasih..

  • setiawan

    Mas kenapa menampilkan data gk bisa ya.?? Muncul pesan Gagal

  • deni

    mas ko menu listnya ga bisa nampilin form yang di klik
    tolong pencerahanya

  • billy

    pagi pak agus, saya mau tanya, kalo untuk kita jumlahkan misalkan harganya, katakanlah kita pake SQL SELECT SUM(harga) from makanan;
    kira2 metode apa yang cocok
    terima kasih sebelumnya 🙂

  • Annas

    Pak Agus.. saya bisa sukses semua sama kyk tutornya.. tapi setelah edit ada loginnya jadi tidak bisa insert data ke database…
    jadi gini saya login dulu baru bisa ngakses tambah n tampil data.. login berhasil tapi setelah tambah data selalu gagal.. padahal kalo tidak ada login, selalu berhasil..
    saya coba cari barngkali ada erornya.. tpi di log eror tidak ada yg eror pak..
    kira kira apa penyebabnya pak?

  • ari taku

    makasih banyak mas… sangat membantu untuk Tugas Akhir sy… (y)

    semoga makin sukses… aamiin

  • nateriver01

    permisi semuanya,,mau numpang nanya nih..
    ada yg bisa contohin source code untuk input data ke mysql dari radiogroup ga?
    terima kasih sebelumnya

  • Annas

    pak tolong dijawab ya
    itukan cuman nginput text.. kalo nginputnya tanggal ke database gmna ya pak?

  • ugin

    Pak mau tanya,
    programnya sudah saya buat, tapi ga bisa di tampilkan sama tambah data, punya temen saya bisa, padahal kita sama2 bikin brengan, apa di ICS mesti di tambahin Assynchtask? itu gimana caranya ya Pak?

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>