Tuesday, September 16, 2014

Cara Membuat Menu Login Dengan Android Dan PHP

Kali ini saya ingin share cara membuat menu login dengan Android. Mungkin kalau kita cari-cari di Internet dengan Om Google pasti banyak sekali yang membuat tutorial ini.
Tapi bagaimana jika username dan passowordnya dibaca atau di ambil dari database?

Pertama sekali saya sangat kebingungan untuk membuat aplikasi ini.
Karena adanya interaksi dengan database dengan PHP.
Untuk itu sebagai sesama kita diwajibkan untuk saling berbagi pengetahuan...hihihi

Bisa dibilang saya adalah seorang newbie dalam hal Android. Karena saya itu mulai belajar Android seminggu yang lalu.
Tapi saya banyak belajar dari master-master dan agan-agan yang ada di forum-forum danberselancar dengan Om Google.
Akhirnya setelah berselancar dan diskusi dengan teman-teman, saya bisa membagikan tutorial ini.

Hasil Akhir
Pertama kali kita buat tabel t_user di database kita dimana fieldnya yaituusername(varchar[255]) dan password(varchar[255]). Kalau saya menggunakan phpMyAdmin.

Setelah itu buat file dengan nama koneksi.php, login.php dan simpan di local webserver yang berguna sebagai koneksi ke MYSQL.

Setelah itu kita buat project baru dengan menngunakan ecllipse, buka file javanya. Copykan code dibawah ini dan pastekan.
package contoh.spinneControl;
import java.io.IOException;
import java.util.ArrayList;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.content.Intent;
public class spinControl extends Activity {
String result = null;
StringBuilder sb = null;
EditText user, pass;
Button btnlog;
ArrayList authentication;
String passIn, userIn;

//Deklarasi variable
Button masuk, keluar;
AlertDialog alert;
EditText stand;
String isi_passwd, username;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

user = (EditText) findViewById(R.id.username);
btnlog = (Button) findViewById(R.id.masuk);
pass = (EditText) findViewById(R.id.passwd_input);
btnlog.setOnClickListener(new View.OnClickListener() {
public void onClick(View tombol_login)
{
user = (EditText) findViewById(R.id.username);
pass = (EditText) findViewById(R.id.passwd_input);

try {
this.sendAuthenticationData(user.getText().toString(),
pass.getText().toString() );
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void sendAuthenticationData(String username, String password)
throws ClientProtocolException, IOException
{
authentication = new ArrayList();
authentication.add(new BasicNameValuePair("username", username));
authentication.add(new BasicNameValuePair("password", password));
this.sendData(authentication);
}

public void sendData(ArrayList data) throws ClientProtocolException, IOException
{
readURL rL;
String temp="";
HttpClient httpclient = new DefaultHttpClient(); // I use real path here
HttpPost httppost = new HttpPost("http://alamat urlnya/login.php");
httppost.setEntity(new UrlEncodedFormEntity(data));
try
{
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
temp = EntityUtils.toString(entity);
try {
rL = new readURL("http://alamat URLnya/login.php?username=" +
user.getText().toString() + "&password=" +
pass.getText().toString());
String auth = rL.getHTML();

if(auth.equals("TRUE")){
Toast.makeText(getBaseContext(), "Selamat Datang " + user.getText(),
Toast.LENGTH_LONG).show();
Intent i = new Intent(spinControl.this, Splash.class);
startActivity(i);
} else {
Toast.makeText(getBaseContext(), "Periksa Kembali Data Anda...!!!",
Toast.LENGTH_LONG).show();
}

} catch (Exception ex) {
System.out.println("Error=" + ex.getMessage());
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
});
}
}

Setelah itu buat class baru dan beri nama Splash.java :
package contoh.spinneControl;
import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.widget.ProgressBar;
public class Splash extends Activity{
private static int progress = 0; private int status = 0;
ProgressBar progressBar;
Handler handler = new Handler();
public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
progressBar = (ProgressBar) findViewById(R.id.progg);
new Thread(new Runnable() {

@Overridepublic void run() {// TODO Auto-generated method stub
while(status < 100){
status = loading();
handler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
progressBar.setProgress(status);
}
});
}
handler.post(new Runnable() {
@Overridepublic void run() {
// TODO Auto-generated method stub
setContentView(R.layout.index);
}
});
}
public int loading(){try {
Thread.sleep(50);
} catch(InterruptedException ie){
ie.printStackTrace();
}return ++progress;
}

}).start();
}
}

Buat satu class lagi dengan nama readURL.java :
package contoh.spinneControl;java.net.*;
import java.io.*;
public class readURL {
private String url;

public readURL(String url) {
this.url = url;
}

public String getHTML(){
String isi = "";
try {
URL urlExc = new URL(url);
BufferedReader in = new BufferedReader(
new InputStreamReader(urlExc.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null){
isi+=inputLine;
}
in.close();
} catch(Exception ex) {
System.out.println("Error=" + ex.getMessage());
}
return isi;
}
}

Setelah itu buka file XML nya yang terletak di res. Buat File XML sebanyak 3 buah yaitu main.xmlindex.xml , splash.xml
Form Login
Form Welcome

Full Sourcenya dapat di download disini : Cara Mudah Membuat Menu Login Dengan Android danKoneksi ke MYSQL
Dan Tutorialnya dapat di ambil disini : Cara Mudah Membuat Menu Login Dengan Android.doc

Disqus Comments