Pada bagian ini, Kamu akan mempelajari mengenai:
- Login menggunakan php
- Login menggunakan mySQL server
- Android dan mySQL server (NOT YET AVAILABLE)
- JSOIN WebService (coming soon)
- Facebook-Twitter API (coming soon)
1. Login menggunakan php
Pada bagian ini, Kamu akan membuat project sederhana berupa halaman login yang autentifikasinya melalui PHP di server. Skenarionya seperti pada gambar 16.1.

Gambar 16.1. Skenario client server
Dalam hal ini, Android bertindak sebagai client. Teks masukan berupa username dan password pada halaman login dikemas sedemikian rupa kemudian dikirim keserver.
Pada bagian server, data yang dikirim android ditangkap oleh file PHP kemudian diolah apakah datanya cocok atau tidak. Selanjutnya PHP mengeluarkan jawaban yang selanjutnya akan ditangkap oleh android.
| Langkah | Client | Server |
|---------|-----------------------------------------------------------------|----------------------------------------------------|
| 1 | Mengambil teks username dan password | - |
| 2 | Megirim data username dan password ke server | Data ditangkap oleh PHP |
| 3 | - | PHP mengeluarkan jawaban berhasil login atau tidak |
| 4 | Jawaban dari server ditangkap oleh android kemudian ditampilkan | |
Project ini diselesaikan melalui 3 tahap,
- Instalasi XAMPP untuk mengaktifkan server local (localhost)
- Membuat file PHP
- Membuat project di Android
Nah, saatnya kita mulai.
2. Instalasi XAMPP
1. Download xampp di website resminya
2. Cari file XAMPP-Control, start APACHE dan MYSQL (Gambar 16.2)

Gambar 16.2 Saat xampp control aktif
3. Masuklah ke direktori c:/xampp/htdocs , bikin folder baru bernama android
3. Membuat file PHP
1. Ketik file login.php berikut (bisa menggunakan notepad)
1: <?php
2: $user=$_POST['auser'];
3: $pass=$_POST['apass'];
4:
5: if($user=='omayib'&&$pass='1234'){
6: $ket='Login sukses';
7: }else{
8: $ket='gagal login';
9: }
10: echo $ket;
11: ?>
2. simpan di direktori C:/xampp/htdocs/android
4. Membuat Project di Android
1. Siapkan project baru dengan seperti kententuan berikut
| Project name | PHPLogin |
|-----------------|---------------------|
| Build Target | Android 2.2 |
| Aplication name | Login melalui PHP |
| Package name | omayib.com.phplogin |
| Create Activity | Phplogin |
| Min SDK version | 8 |
2. Ketik strings.xml seperti berikut
1: <?xml version="1.0" encoding="utf-8"?>
2: <resources>
3: <string name="hello">Hello World, Phplogin!</string>
4: <string name="app_name">Login melalui PHP</string>
5: <string name="txtPesan">Silakan Login dulu</string>
6: <string name="txtUser">Username</string>
7: <string name="txtPass">Password</string>
8: <string name="btnLogin">Login</string>
9: <string name="btnSignUp">Sign Up</string>
10: </resources>
3. Ketik main.xml seperti berikut
1: <?xml version="1.0" encoding="utf-8"?>
2: <LinearLayout
3: xmlns:android="http://schemas.android.com/apk/res/android"
4: android:orientation="vertical"
5: android:layout_width="fill_parent"
6: android:layout_height="fill_parent">
7: <TextView
8: android:layout_width="fill_parent"
9: android:layout_height="wrap_content"
10: android:text="@string/hello" />
11: <TextView
12: android:layout_width="wrap_content"
13: android:layout_height="wrap_content"
14: android:id="@+id/textView2"
15: android:text="@string/txtUser"></TextView>
16: <EditText
17: android:layout_width="match_parent"
18: android:layout_height="wrap_content"
19: android:id="@+id/userInput"></EditText>
20: <TextView
21: android:layout_width="wrap_content"
22: android:layout_height="wrap_content"
23: android:id="@+id/textView1"
24: android:text="@string/txtPass"></TextView>
25: <EditText
26: android:layout_width="match_parent"
27: android:layout_height="wrap_content"
28: android:id="@+id/passInput"></EditText>
29: <Button android:id="@+id/button1"
30: android:layout_width="match_parent"
31: android:layout_height="wrap_content"
32: android:text="@string/btnLogin"></Button>
33: <EditText
34: android:layout_width="match_parent"
35: android:layout_height="wrap_content"
36: android:id="@+id/status"
37: android:text="@string/txtPesan"></EditText>
38: </LinearLayout>
4. Membuat class ClientToserver.java yang nantinya berperan sebagai jembatan antara php deserver dengan activity phplogin
1: package omayib.com.phplogin;
2:
3: import java.io.BufferedReader;
4: import java.io.InputStreamReader;
5: import java.net.URI;
6: import java.util.ArrayList;
7:
8: import org.apache.http.HttpResponse;
9: import org.apache.http.NameValuePair;
10: import org.apache.http.client.HttpClient;
11: import
org.apache.http.client.entity.UrlEncodedFormEntity;
12: import org.apache.http.client.methods.HttpGet;
13: import org.apache.http.client.methods.HttpPost;
14: import org.apache.http.conn.params.ConnManagerParams;
15: import org.apache.http.impl.client.DefaultHttpClient;
16: import org.apache.http.params.HttpConnectionParams;
17: import org.apache.http.params.HttpParams;
18:
19: public class ClientToServer {
20: public static final int HTTP_TIMEOUT = 30 * 1000;
21: private static HttpClient client;
22: private static HttpClient getHttpClient() {
23: if (client == null) {
24: client = new DefaultHttpClient();
25: final HttpParams parameterHttp = client.getParams();
26: HttpConnectionParams.setConnectionTimeout(parameterHttp,
27: HTTP_TIMEOUT);
28: ConnManagerParams.setTimeout(parameterHttp,
HTTP_TIMEOUT);
29: }
30: return client;
31: }
32:
33: public static String eksekusiHttpPost(String url,
34: ArrayList<NameValuePair> postParameter) throws Exception
{
35: BufferedReader in = null;
36: try {
37: HttpClient klien = getHttpClient();
38: HttpPost req = new HttpPost(url);
39: UrlEncodedFormEntity formEntity = new
UrlEncodedFormEntity(
40: postParameter);
41: req.setEntity(formEntity);
42: HttpResponse jawaban = klien.execute(req);
43: in = new BufferedReader(new
InputStreamReader(jawaban.getEntity().getContent()));
44: StringBuffer sb = new StringBuffer("");
45: String line = "";
46: String NL = System.getProperty("line.separator");
47: while ((line = in.readLine()) != null) {
48: sb.append(line + NL);
49: }
50: in.close();
51: String hasil = sb.toString();
52: return hasil;
53: } finally {
54: if (in != null) {
55: in.close();
56: }
57: }
58:
59: }
60:
61: public static String eksekusiHttpGet(String url) throws
Exception {
62: BufferedReader in = null;
63: try {
64: HttpClient hc = getHttpClient();
65: HttpGet req = new HttpGet();
66: req.setURI(new URI(url));
67: HttpResponse resp = hc.execute(req);
68: in = new BufferedReader(new
InputStreamReader(resp.getEntity().getContent()));
69: StringBuffer sb = new StringBuffer("");
70: String line = "";
71: String NL = System.getProperty("line.separator");
72: while ((line = in.readLine()) != null) {
73: sb.append(line + NL);
74: }
75: in.close();
76: String hasil = sb.toString();
77: return hasil;
78: } finally {
79: if (in != null) {
80: in.close();
81: }
82: }
83: }
84: }
5. Pada phplogin.java ubah kodenya seperti dibawah ini
1: package omayib.com.phplogin;
2:
3: import java.util.ArrayList;
4:
5: import org.apache.http.NameValuePair;
6: import org.apache.http.message.BasicNameValuePair;
7:
8: import android.app.Activity;
9: import android.os.Bundle;
10: import android.view.View;
11: import android.view.View.OnClickListener;
12: import android.widget.Button;
13: import android.widget.EditText;
14: import android.widget.Toast;
15:
16: public class Phplogin extends Activity implements
OnClickListener {
17: Button loginBtn;
18: EditText user, pass;
19: EditText status;
20: private String url = "http://10.0.2.2/android/login.php";
21:
22: /** Called when the activity is first created. */
23: @Override
24: public void onCreate(Bundle savedInstanceState) {
25: super.onCreate(savedInstanceState);
26: setContentView(R.layout.main);
27:
28: user = (EditText) findViewById(R.id.userInput);
29: pass = (EditText) findViewById(R.id.passInput);
30: status = (EditText) findViewById(R.id.status);
31: loginBtn = (Button) findViewById(R.id.button1);
32: loginBtn.setOnClickListener(this);
33: }
34:
35: @Override
36: public void onClick(View v) {
37: // TODO Auto-generated method stub
38: kirimData();
39: }
40:
41: private void kirimData() {
42: // TODO Auto-generated method stub
43: ArrayList<NameValuePair> kirimkephp = new
44: ArrayList<NameValuePair>();
45: kirimkephp.add(new
46: BasicNameValuePair("auser",user.getText().toString()));
47: kirimkephp.add(new
48: BasicNameValuePair("apass",pass.getText().toString()));
49: String respon=null;
50: try {
51: respon=ClientToServer.eksekusiHttpPost(url,
52: kirimkephp);
53: String res=respon.toString();
54: res=res.trim();
55: Toast.makeText(this, res.toString(),
56: Toast.LENGTH_SHORT).show();
57: status.setText(res.toString());
58: } catch (Exception e) {
59: // TODO Auto-generated catch block
60: e.printStackTrace();
61: }
62: }
63: }
6. Bagian AndroidManifest.xml, tambahkan permission.internet
1: <?xml version="1.0" encoding="utf-8"?>
2: <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3: package="com.login.php"
4: android:versionCode="1"
5: android:versionName="1.0">
6: <uses-sdk android:minSdkVersion="8" />
7:
8: <uses-permission android:name="android.permission.INTERNET">
10: </uses-permission>
11:
12: <application android:icon="@drawable/icon"
13: android:label="@string/app_name">
14: <activity android:name=".LoginPHP"
15: android:label="@string/app_name">
16: <intent-filter>
17: <action android:name="android.intent.action.MAIN"/>
19: <category
20: android:name="android.intent.category.LAUNCHER" />
21: </intent-filter>
22: </activity>
23: </application>
24: </manifest>
7. Lakukan run, jika berhasil maka hasilnya seperti gambar 16.3

Gambar 16.3 Hasil akhir project phplogin
5. Login Menggunakan Database
Nah sekarang skenarionya kita ubah sedikit. File PHP bertugas mencocokkan data dari android dengan data di database. Dengan lain kata dalam bagian ini file PHP berfungsi sebagai jembatan antara client android dengan database di server.

Gambar 16.4. Skenario login menggunakan database
Secara garis besar, langkah-langkah yang harus dilakukan sbeagai berikut
- Membuat database di server localhost
- Membuat php
- Membuat project di Android
6. Membuat database di server localhost
- Jalankan xampp
- Jalankan browser, ketik "localhost/phpmyadmin"
- Membuat database, pada bagian SQL ketikkan sebagai berikut
Create database logindb;
4. Klik database logindb, kemudian kita akan membuat table user. Pada bagian SQL ketikkan sebagai berikut
CREATE TABLE IF NOT EXISTS `user` (
`_id` int(4) NOT NULL,
`username` varchar(32) NOT NULL,
`password` varchar(32) NOT NULL,
`email` varchar(32) NOT NULL,
`akun twitter` varchar(32) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Untuk lebih jelasnya, langkah 4 ini tampak seperti gambar 6.15.

Gambar 16.5 SQL untuk membuat table user
5. Memasukkan data ke dalam database
INSERT INTO `logindb`.`user` (`_id` ,`username` ,`pass
word` , `email` ,`akun twitter`)
VALUES (
'1', 'omayib', '1234r', 'omayib@gmail.com', '@omayib'
);
Jika sudah benar, maka hasil akhirnya seperti gambar 16.6

Gambar 16.6 Tabel user pada database dan datanya
7. Membuat php
Langkah selanjutnya membuat file logindb.php yang nantinya bertugas untuk mencocokkan data dari server dan client. Berikut ini adalah logindb.php. Simpan file logindb.php di direktori c:/xampp/htdocs/android/.
1: <?php
2: $user=$_POST['user'];
3: $pass=$_POST['pass'];
4:
5: $konek=mysql_connect("localhost","root","");
6: mysql_select_db("latihanDB");
7:
8: $quer="SELECT * FROM user WHERE username='$user' AND password='$pass'";
9: $hasil=mysql_query($quer) or die("Kesalahan query:".mysql_error());
10:
11: if(mysql_num_rows($hasil)==1){
12: echo 1;
13: }else{
14: echo 0;
15: }
16: ?>
8. Membuat project di Android
Bagian ini masih menggunakan project login sebelumnya yaitu project PHPLogin. Hanya saja url diganti seperti ini Sebelumnya.
private String url = "http://10.0.2.2/android/login.php";
Kemudaian diganti
private String url = "http://10.0.2.2/android/loginDB.php";
Sumber
omayib.com