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 :
- Tambah data makanan
- 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 :
- Apa hasil dari main game ?
- Apa hasil dari koding ?
- Kira-kira kalau melamar pekerjaan yang akan diterima yang jago main game atau yang jago koding,
atau yang jago bikin game ? - 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. - 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
makasih gan sudah berhasil .. 🙂
di tunggu tutor berikutnya…
Mantep Gan, Boleh dicontek buat referensi TA g?
masbro kok gak bisa jalan ya
kok aku dapat pesan kayak gini
[2012-02-17 14:24:15 – mysql] ——————————
[2012-02-17 14:24:15 – mysql] Android Launch!
[2012-02-17 14:24:15 – mysql] adb is running normally.
[2012-02-17 14:24:15 – mysql] Performing com.example.android.apis.MainActivity activity launch
[2012-02-17 14:24:15 – mysql] Automatic Target Mode: using existing emulator ’emulator-5554′ running compatible AVD ‘CobaBaru1′
[2012-02-17 14:24:15 – mysql] Uploading mysql.apk onto device ’emulator-5554′
[2012-02-17 14:24:16 – mysql] Installing mysql.apk…
[2012-02-17 14:24:18 – mysql] Re-installation failed due to different application signatures.
[2012-02-17 14:24:18 – mysql] You must perform a full uninstall of the application. WARNING: This will remove the application data!
[2012-02-17 14:24:18 – mysql] Please execute ‘adb uninstall com.example.android.apis’ in a shell.
[2012-02-17 14:24:18 – mysql] Launch canceled!
agan2 yang uda berhasil, bisa bantuin ga kasi tau itu file php/mysql nya di taroh dimana??
kalo ada yang berbaik hati bisa kontek ane di 08999176346, thx 🙂
manteep mas….
saya cobain di emulator ga ada problem…
problem muncul ketika saya cobain di device…
pada jsonactivity nya selalu gagal mengambil data dari server…
padahal ip nya udah sy rubah sesuai server (laptop saya)… sy konek ke laptop melalui jaringan wireless di lab.
apa masalah disini nya yah??
catch(Exception ex){
Toast.makeText(this,”Gagal “+sret, Toast.LENGTH_SHORT).show();
Nah, kalau gitu, gimana kalau Bang Agus ini buat tutorial game sederhana di android. Paling enggak yg 2D lah. Butuh nih referensinya. 🙂
mas, di emulator aq berhasil menjalankan aplikasi seperti mas contohkan ke host yang aq tuju (bukan localhost)
akan tetapi pada saat di instal/implementasi kan ke device applikasi tersebut tidak dapat mengirim/menerima data JSON
pertanyaan.
1. ada yang salahkan di JSON? permision untuk device
2.apa kerena beda versi ?
(aq memakai ROM Custom 2.3.6 &kernel custom)
terimakasih untuk best tutorial & tanggapannya ^^
mas, you are legend..
Mantap, tutorialnya lancar jaya mas!
agan johan file php nya di taruh di directory htdocs gan
create folder trus taruh di dlam nya file addmakanan.php & daftarmakanan.php
kalo create database ny di phpmyadmin ny…
semoga membantu gan
Terima kasih sekali mas tutorialnya..sangat membantu..
Terima kasih, tutorialnya sangat membantu sekali.. Nice sharing 🙂
Nice Tutorial
kalo ada update + delete data makin bagus nih tutorial.
bisa kalieeee
mas klw ambil gmbar dari server gmna ya mas….mohon bntuannya mas…terima kasih
Terima Kasih, saya ingin bertanya, bisakah saya membuat aplikasi yang menampilkan data dari database misalnya, saya ingin menampilkan pasal tertentu dari undang-undang tertentu dalam database UUD, mohon sarannya.
P.S :Masalahnya jika hanya membaca seluruh data, maka akan tertampil semua dan tentu layarnya tidak muat.
@utama, bisa mas, harusnya tinggal main di querynya saja
trima kasih mas , sangat bagus tutorialnya …. hehhehhe . Kalau buat game3d dengan android , minimal harus menguasai apa dulu mas … ????? kalau di reply kirim ke email saya aja ya …. hehehe makasih matur nuwun … wasalamualaykum
kok ga bisa mas?? apa karena belom ada paket untuk mysql connector?? gimana cara masukkan paketnya??
mohon dibalas ya mas… 🙂
@feetbo, untuk code java diandroidnya tidak perlu mysql connector. karena yang connect ke db mysql itu file phpnya
ane pas di script ini kok error trus ya
setContentView(R.layout.daftarmakanan);
TextView txtResult = (TextView)findViewById(R.id.TextViewResult);
error nya seperti ini “daftarmakanan cannot be resolved or is not a field”
maksud nya gmana gan
mohon pencerahan
kalo bisa sms gpp
085313555584
makash agan sekalian
Mas..mohon bantuannya..
kalo data yg dsimpan adalah latitude+longitude..untuk nampilin di peta gmn caranya.?
saya masih baru mulai ngodiing, saya blum ngerti knp msh ada error yg muncul..
dua file php diatas disimpan di htdocs kah? di dalam folder dinamain android?
kenapa di insertActivity.java bagian ini :
setContentView(R.layout.tambah);
txtNama = (EditText) findViewById(R.id.txtNama);
txtHarga = (EditText) findViewById(R.id.txtHarga);
muncul error ” tambah cannot be resolved or is not a field”?
dan di AndroidJSONmanifest ini:
jg muncul error : “no resource found matches ….. ”
file xml di atas dibuat dalam file /res/layout kah?
kenapa muncul error :”Hardcoded string :Nama Makanan, should use @string resource “…
bisa dijelaskan ga kak??
maaf tanya lagi…
kalo membuat data yg tampil jadi clickable gmn.?
misal saya punya tabel hotel,ada field no_telp.
saat sudah tampil dan ingin menghubungi no.telp yg ada tinggal klik pd no.telp tsb.
mohon bantuannya mas…
@sammie, sebetulnya konsepnya sama aja, kalau kita sudah punya latitude dan longitude tentungan dapat kita tampilkan di map. coba gabungkan dengan tutorial map yang ada diblog ini,
permisi mas mau nanya.. maklum masih newbie sekali.. hehe..
data-data php nya kan ada di laptop kita, kalo kita ingin datanya dimasukkan ke android bisa gak mas?
caranya gimana ya?
terima kasih
dulu saya pernah buat hal yg serupa mas , yaitu aplikasi info tentang mahasiswa kampus saya ..thanks for infonya ..
maaf tanya mas, saya sudah coba ngikutin tutorial yang dibikin tapi masih belum bisa muncul ya. pas pilih tampilkan data langsung force close, terus klo pilih tambah data ga bisa masuk data barunya. kira-kira kenapa ya?
terimakasih
@qnoy, sudah ditest dulu dari browser ?. seperti yang ada pada step-step ditutorial ini
om, misal kita punya website portal tanya jawab,
apakah bisa membuat aplikasi android terintegrasi dengan database website tersebut?
mohon tutorialnya om…
pliss mas…. gimana caranya supaya sinkron tambah.xml ama daftarmakanan.xml ama java na mas…..
masalah na di situ mas……
ini yang error
setContentView(R.layout.daftarmakanan);
TextView txtResult = (TextView)findViewById(R.id.TextViewResult);
ama ini mas
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);
maaf mas … udh sukses….. ad yang salah tadi ^_^
mas… kalau masukin ke hape android nya langsung koq datanya ngak kebaca y mas???
padahal lewat emulator bisa mas….
bang mau tanya
di
JSONArray menuitemArray = jObject.getJSONArray(“makanan”);
ini kan ambil dr php ini
$data = “{makanan:”.json_encode($rows).”}”;
echo $data;
saya binggung makanan saya ganti semua kok g tampil y datanya…
decalarasi variable x dmn y mas??
Makasih Mas tutornya
tapi kok saya coba di emulator ga keluar datanya, ada yg salah dimananya ya…?
mau tanya pak, kalo menghubungkan android dengan php yang paling dasar itu gmn ya?misalnya ada tombol, saat diklik langsung ke php yang sudah dibuat. mohon bantuannya
mas mau tanya. kalo mau nampilin gambar dalam database mysql gimana ya??
terima kasih,mohon bantuannya
tutorialnya bagus mas..
saya udah berhasil coba
tp saya masih belum paham
mas mohon bantuannya..
klu inputnya lebih dr 2 kok g bisa y mas..
echonya bilang success tp g tersimpan di mysql..
tanda2 yg di php antara ‘”.$nama.”‘ dan “.$harga.”
apa perbedaannya mas? (apa beda string dan int)
dan di androidnya url += “?nama=” + nama + “&harga=” + harga;
bedanya simbol ? dan &..
mas “Json” itu buat nampilin data sajakah ??
kalau hanya input apakah perlu “Json” juga ??
program udah bisa di running, tapi kuq data gbsa di insert dan data ga bisa di tampilkan di androidnya ..
kira-kira dmna ya kesalahannya ?? mhon pencerahannya.. 🙂
@dfootballoverz, kalau sudah ikuti seluruh step tutorialnya harusnya sukses.
pastikan diservernya terinstall apache, php dan mysql.
@diditserva, json bisa buat input dan output.
json itu hanya format data. tanpa json pun kita bisa input data dan menampilkan data.
@kopiireng.
Ada dua pendekatan yang bisa dipakai.
1. di database hanya menyimpan path file dari gambarnya saja. jadi aplikasi meload gambar berdasrkan path filenya
2. yang disimpan didatabase adalah bytecodenya. nah ini perlu decod encode
bedanya tanpa dan dengan Json apa mas ??
msih bgg soalnya…
saya diemulatornya sudah success tapi kok gak masuk database iah mas ???
trus punya mas pake localhost apa ?
mas kan pake “http://10.0.2.2/android/daftarmakanan.php” kalo diganti dengan http://127.0.0.1/Skripsi/insertpengguna.php bisa gak ???
Maz kok masih pada php nya gak bisa konek pada database….Langkah2 nya udah kayak ditutorial,udah saya tes file php nya keluar tulisan kyk gini
Warning: mysql_connect() [function.mysql-connect]: Access denied for user ‘user’@’localhost’ (using password: YES) in C:\xampp\htdocs\android1\addmakanan.php on line 5
Cannot connect to the DB
Maksud nya apa maz…
makasih banyak mas agus, tutornya bagus-bagus..
siang mas agus
mau tanya, ane pas di script ini kok error trus ya
setContentView(R.layout.daftarmakanan);
TextView txtResult = (TextView)findViewById(R.id.TextViewResult);
error nya seperti ini “daftarmakanan cannot be resolved or is not a field” dan
“TextViewResult cannot be resolved or is not a field”
maksudnya itu gimana gan ?
dan perbedaan http://10.0.2.2 dengan http://localhost apa mas ?
terimakasih,
mohon dijawab ya gan
balas yang error
setContentView(R.layout.tambah);
txtNama = (EditText) findViewById(R.id.txtNama);
txtHarga = (EditText) findViewById(R.id.txtHarga);
muncul error ” tambah cannot be resolved or is not a field”?
R.java di android itu automatic di generate sendiri oleh eclipse
jadi tidak perlu di buat kelasnya
yang di perlukan adalah anda check dulu apakah R.java terletak
folder gennya jika tidak muncul berarti ada kesalahan code di bagian xml file ataupun di bagian AndroidMainifest.xml
jangan di copy paste semua code yang ada di AndroidMainifest.xml, karena ada beberapa file tidak ada di resource anda, coba copy hanya yang perlu saja
dari sini copynya
mas agus, bisakah mas menulis tutorial untuk google app engine, dan android
terima kasih
buat teman2 yang menggunakan android V 3.0 ke atas
coba pakai code ini
setelah oncreate()
StrictMode.ThreadPolicy policy = new StrictMode.
ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);