Android Membaca Data dari Remote MySql Server

Android MySql

Android tidak mempunyai API yang memungkinkan untuk bisa berhubungan dengan database MySql secara langsung (via tembak IP komputer server), selain itu cara tembak IP seperti itu tidak dianjurkan karena alasan keamanan dan beberapa alasan lainnya seperti portabilitas, lebih lengkapnya silahkan ikuti diskusinya disini.

Cara yang dianjurkan untuk berkomunikasi dengan database server seperti MySql adalah dengan menggunakan Web Service. Pada tulisan ini saya akan sharing mengenai cara membaca data yang berada pada remote MySql server untuk kemudian ditampilkan pada sebuah ListView dan sebuah halaman detail.

Menyiapkan Database

Langkah pertama adalah kita siapkan database terlebih dahulu. Saya membuat database dengan nama androiddataserver dengan sebuah tabel yang bernama product. Berikut ini adalah struktur tabel tersebut.

Menulis Kelas Domain

Seperti biasa kita buat sebuah kelas domain. Berikut adalah kode dari kelas Product yang merupakan representasi dari tabel product.

file : Product.java

Membuat Web Service Menggunakan PHP

Untuk kemudahan tutorial bagi pembaca yang masih awam OOP pada PHP maka bagian web service yang menangani request dan repsonse data kita buat dengan menggunakan PHP procedural yang masih menggunakan fungsi MySql extension (mysql_xxx).

Web service kita nantinya bisa menerima 2 request. Pertama adalah request untuk meminta semua data product yang ada di database sedangkan yang kedua adalah untuk menerima request berupa permintaan satu data product.

PHP secara perlahan akan menghilangkan fungsi mysql_xxx
Developer dianjurkan untuk mulai menggunakan OOP dan PDO untuk komunikasi dengan database
Baca artikel yang membahas PDO di link berikut
PHP : Beralih dari Ekstensi Mysql ke PDO

Dibawah ini adalah kode untuk koneksi ke database
file : connection.php

Request permintaan semua data product akan dihandle oleh kode berikut ini
file : index.php

Kode diatas sangat sederhana dan sangat polos karena tidak menerapkan pattern apapun. Coba akses file diatas maka hasil yang muncul pada browser adalah data-data yang terdapat pada database dalam format Json.
Berikut ini adalah screenshotnya.

json

Selanjutnya kita tulis kode untuk menangani permintaan satu data product dengan id tertentu. Berikut adalah kodenya

file : detail.php

Panggil file diatas dan jangan lupakan sertakan get variable dengan nama id. Berikut adalah hasilnya
json detail

Menulis CustomHttpClient

Android perlu memiliki kemampuan untuk membaca response dari Web Service yang berupa data Json tadi. Pada bagian ini kita akan menulis kelas yang bertugas untuk menangani hal tersebut. Kelas yang akan kita buat memanfaatkan library HttpClient yang bisa didownload disini.

Jangan lupa masukkan library tersebut kedalam classpath dari project Android kita
library httpclient

Berikut ini adalah kodenya
file : CustomHttpClient.java

Membuat Custom ListView

Data semua product tadi akan ditampilkan pada Android dalam bentuk list menggunakan widget ListView. Pada bagian ini kita akan membuat custom list view.
Buatlah layout dengan struktur sebagai berikut

file : list_item_product.xml

Selanjutnya kita buat sebuah adapter untuk menampilkan data ke list view item

file : ProductAdapter.java

Menulis Activity

Seperti sudah saya kemukakan tadi diatas, aplikasi yang sedang kita buat memiliki 2 Activity, satu untuk menampilkan list semua data yang ada didatabse dan satu lagi untuk menampilkan detail dari data product.

Buat sebuah layout berikut ini untuk Activity menampilkan semua data

file : all_products.xml

Dan berikut adalah kode Activity-nya

file : AllProducts.java

Perhatikan pada baris yang saya tandai. Pada baris tersebut kita menggunakan library Gson untuk mengubah string dalam bentuk Json yang didapat dari web service ke dalam objek dari kelas Product.
Library tersebut dapat didownload disini dan jangan lupa masukkan ke classpath seperti tadi memasukkan library HttpClient.

Selanjutnya buat layout untuk Activity menampilkan detail product seperti dibawah ini

file : activity_product_detail.xml

Kelas Activity-nya adalah dibawah ini

file : ProductDetail.java

Kembali kita gunakan Gson untuk mengubah string json menjadi objek product.

Jangan lupa tambahkan permisson pada file manifest agar aplikasi kita bisa mengakses internet

Running dan Screenshot Program

Jalankan aplikasi dan berikut adalah screenshotnya

Semua Data
SC20130704-170702

Data Detail
SC20130704-161009

Data di Database MySql
db

Penutup

Sekian tutorial membaca data dari remote MySql server di Android
semoga bermanfaat 😀

Bagi yang menginginkan kedua sourcode diatas(PHP dan Android) silahkan tinggalkan email pada komentar 🙂

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

27 thoughts on “Android Membaca Data dari Remote MySql Server

  1. nanya juga mas , kasusnya sama gson.class error (tidak ada), padahal library udah di add dan ga ada error di codingan, tp pas di run masih “Unfortunately has stopped” di logcat-nya error di gson.class
    mohon bantuannya mas

    skalian minta sourcecode boleh kan mas? hehe
    email: riochimaru@gmail.com

  2. Thanks tutorialnya… Sangat membantu… 🙂
    Jika boleh, tolong dikirim SC nya untuk mempelajarinya lebih lanjut…
    Sebelum dan sesudahnya thank yo very much.. 🙂

  3. Kalau data tidak tertampil di listview, itu ada apa ya gan? Nyoba project agan di import tidak bisa di run, stopped. Thanks a lot~

  4. Salam

    Gan, saya tertarik sekali dengan scripx, tolong dikirim ke email saya, karena lagi senang2 nya belajar android, trima kasih dan salam android

  5. pak mau tanya kalo insert suatu tabel yang tabel tersebut berisi field
    dari tabel lain gimana pak ? semisal mau insert di tabel mahasiswa ada field (id
    mahasiswa, nama, id matakuliah(dari tabel matakuliah), nilai) .

Leave a Reply

Your email address will not be published. Required fields are marked *