Bagi programmer yang
terbiasa menggunakan
android untuk
memprogram database, pastinya
terbiasa dengan
SQLite. Bagaimana
menggantikan
fungsi SQLite
pada android dengan DDMS
MySQL? Pastinya dibutuhkan server side seperti PHP atau ASP yang digunakan untuk mengakses database MySQL. Berikut
ilustrasi projek yang akan dibuat :
Keterangan :
Device android digunakan untuk memberikan inputan berupa „nama, npm dan kelas‟ ke server
dengan alamat www.tavgreen.com. Data yang telah di inputkan dikirim melalui php untuk
kemudian disimpan ke database mysql.
Langkah – langkah
Installkan software berikut :
· SDK Windows dan Eclipse untuk development android
· Xampp untuk web server PHP dan MySQL .
Program
Buatlah
database pada mySQL anda dengan nama „android‟ dengan field “nama, npm dan kelas” seperti pada gambar sebagai berikut
:
Buatlah file php dengan disimpan di
folder
htdocs à android à simpan.php:
Keterangan :
· 2 – 4 : Simpan nilai yang didapat dari metode „post‟ dari android device ke variable
$nama, $npm dan $kelas.
· 5
:
hubungkan
database
dengan hostname = „localhost‟
,
username
=
„root‟ dan
password kosong.
· 6 : memilih database yang akan digunakan, yaitu
„android‟
· 7 : string untuk insert data ke dalam database
· 8 : eksekusi query sehingga data benar-benar
tersimpan ke database
Buatlah project android baru sebagai
berikut dengan nama „guessmysql‟:
Buatlah desain layout
mobile device anda seperti berikut (terdiri
atas 3 field dan 1 button) :
Buatlah file java seperti
berikut :
Tambahkan “uses permission” untuk mengakses Internet seperti
berikut :
Buatlah file java dengan nama “CustomHttpClient” kemudian copy kan script
berikut :
package guest.MySQL;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URI;
import java.util.ArrayList;
import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams;
public class
CustomHttpClient {
/** The
time it
takes
for
our
client
to timeout */
public static
final int HTTP_TIMEOUT = 30 * 1000; // milliseconds
/** Single instance
of our HttpClient */
private static HttpClient mHttpClient;
/**
* Get
our
single instance
of our HttpClient
object.
*
* @return an HttpClient
object with connection
parameters set
*/
private static HttpClient getHttpClient() {
if (mHttpClient == null) {
mHttpClient = new DefaultHttpClient();
final HttpParams params
= mHttpClient.getParams(); HttpConnectionParams.setConnectionTimeout(params, HTTP_TIMEOUT); HttpConnectionParams.setSoTimeout(params, HTTP_TIMEOUT); ConnManagerParams.setTimeout(params, HTTP_TIMEOUT);
}
return mHttpClient;
}
/**
* Performs
an HTTP
Post request to the specified url with
the
* specified
parameters.
*
* @param url The
web
address
to post
the
request
to
* @param postParameters The parameters
to send
via
the
request
* @return The result of
the
request
*/
public static
String executeHttpPost(String
url, ArrayList<NameValuePair>
postParameters) throws Exception { BufferedReader in
= null; try
{
HttpClient
client = getHttpClient();
HttpPost request = new HttpPost(url); UrlEncodedFormEntity formEntity
= new
UrlEncodedFormEntity(postParameters);
request.setEntity(formEntity);
HttpResponse response
= client.execute(request);
in = new BufferedReader(new
InputStreamReader(response.getEntity().getContent()));
StringBuffer
sb =
new StringBuffer(""); String line = "";
String
NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line + NL);
}
in.close();
String result
= sb.toString();
return result;
} finally
{
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* Performs
an HTTP
GET
request
to the
specified url.
*
* @param url The
web
address
to post
the
request
to
* @return The result of
the
request
*/
public static
String executeHttpGet(String url) throws Exception { BufferedReader
in =
null;
try {
HttpClient client
= getHttpClient(); HttpGet
request = new HttpGet(); request.setURI(new URI(url));
HttpResponse response
= client.execute(request);
in = new BufferedReader(new
InputStreamReader(response.getEntity().getContent()));
StringBuffer
sb =
new StringBuffer(""); String line = "";
String
NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line + NL);
}
in.close();
String result
= sb.toString();
return result;
} finally
{
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
Uji Coba Program
Setelah semua script diketikan, maka jalankan program android anda sehingga akan menghasilkan user
interface seperti berikut :
Bukalah phpmyadmin dari
browser, dan periksa apakah data yang di inputkan di mobile device telah masuk ke dalam server
di localhost anda seperti berikut :
Penutup
Dalam penyusunan E-book ini,
penulis menyadari
banyaknya kekurangan,
oleh karena itu
penulis mengharapkan mendapat kritik dan saran agar penulis dapat menyusun E-book lainnya
dengan lebih
baik lagi. Apabila pembaca terdapat kesulitan dalam mengaplikasikan materi-materi yang telah diulas
sebelumnya, silahkan
menghubungi penulis di http://tavgreen.com. Nantikan E-book
selanjutnya
“Pemrograman
Android Lanjutan” yang sedang penulis selesaikan.