Untuk menjaga keamanan data dalam
aplikasi yang akan kita buat, sebaiknya kita buat pengaman data salah satunya
membuat Login, sehingga user yang ingin mengakses data dalam aplikasi harus
login terlebih dahulu. Nah, kali ini saya akan berbagi mengenai bagaimana cara
membuat Login pada aplikasi mobile yang menggunakan database MySQL sebagai
tempat penyimpanan datanya. Oke langsung saja pada tahapan-tahapan pembuatan.
Database : campuss_resto || Table : users
Buatlah File PHP untuk menghubungkan project android dengan database mysql, kemudian simpan di C:\xampp\htdocs\campuss_resto, didalam folder campuss_resto dan beri nama check.php dan simpan.php (untuk tambah data)
check.php
<?php
$user=$_GET['user'];
$pass=$_GET['pass'];
$conn =
mysql_connect("localhost","root","");
mysql_select_db("campuss_resto");
$query =
"SELECT * FROM users WHERE nama = '$user' AND sandi='$pass'";
$result
= mysql_query($query) or die("Unable to verify user because : " .
mysql_error());
if
(mysql_num_rows($result) == 1){
echo 1;
}
else {
echo
0;
}
?>
simpan.php
<?php
$nama=$_POST['nama'];
$sandi=$_POST['sandi'];
$email=$_POST['email'];
$conn =
mysql_connect("localhost","root","");
mysql_select_db("campuss_resto");
$query = "INSERT INTO users
(nama,sandi,email) values ('$nama','$sandi','$email')";
$result = mysql_query($query) or
die("REPORTGagal Query Simpan KRS.");
if (mysql_num_rows($result)
== 1){
echo 0;
}
else {
echo
1;
}
?>
Buat Project Android dengan
Buatlah layout seperti berikut :
main.xml
daftar.xml
Tulislah kode di masing-masing class java, sebagai berikut :
AplikasikuActivity.java
package arumjiyu.net;
import java.util.ArrayList;
import
org.apache.http.NameValuePair;
import
org.apache.http.message.BasicNameValuePair;
import
android.app.Activity;
import
android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.EditText;
import
android.widget.TextView;
public class AplikasikuActivity extends Activity {
/** Called when the
activity is first created. */
EditText
us, ps;
Button
login;
String
i;
TextView
pesan;
@Override
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
us = (EditText)
findViewById(R.id.edPass);
ps = (EditText)
findViewById(R.id.edUser);
pesan = (TextView)
findViewById(R.id.textView1);
login = (Button)
findViewById(R.id.btnLogin);
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated
method stub
ArrayList<NameValuePair>
postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("user", us.getText()
.toString()));
postParameters.add(new BasicNameValuePair("pass", ps.getText()
.toString()));
/* String valid =
"1"; */
String
response = null;
try {
response =
CustomHttpClient.executeHttpPost("http://10.0.3.2/campuss_resto/check.php", postParameters);
String
res = response.toString();
res
= res.trim();
res
= res.replaceAll("\\s+", "");
pesan.setText(res);
if (res.equals("1")) {
pesan.setText("Correct
Username or Password");
berhasil(v);
}
else {
pesan.setText("Sorry!! Wrong
Username or Password Entered");
}
}
catch (Exception e) {
us.setText(e.toString());
}
}
});
}
public void tambah_user(View v)
{
Intent
daftar = new Intent(this, daftarAct.class);
startActivity(daftar);
}
public void berhasil(View
theButton) {
Intent
s = new Intent(this, hal2Act.class);
s.putExtra("nama", us.getText().toString());
startActivity(s);
}
}
daftarAct.java
package arumjiyu.net;
import java.util.ArrayList;
import
org.apache.http.NameValuePair;
import
org.apache.http.message.BasicNameValuePair;
import
android.app.Activity;
import
android.content.Intent;
import android.os.Bundle;
import android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.EditText;
import
android.widget.TextView;
import android.widget.Toast;
public class daftarAct extends Activity {
EditText
un, pw, email;
Button
simpan, batal;
TextView
pesan;
@Override
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.daftar);
un = (EditText)
findViewById(R.id.User);
pw = (EditText)
findViewById(R.id.Password);
email = (EditText)
findViewById(R.id.Email);
pesan =
(TextView)findViewById(R.id.textpesan);
simpan = (Button)
findViewById(R.id.btnSave);
batal = (Button)
findViewById(R.id.btnBatal);
simpan.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated
method stub
ArrayList<NameValuePair>
postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("nama", un.getText()
.toString()));
postParameters.add(new BasicNameValuePair("sandi", pw.getText()
.toString()));
postParameters.add(new BasicNameValuePair("email", email
.getText().toString()));
/* String valid =
"1"; */
String
response = null;
try {
response
= CustomHttpClient.executeHttpPost(
"http://10.0.2.2/campuss_resto/simpan.php",
postParameters);
String
res = response.toString();
res
= res.trim();
res
= res.replaceAll("\\s+", "");
pesan.setText(res);
if (res.equals("1")){
Toast.makeText(getApplication(),
"Data
Tersimpan",
Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplication(),
"Data
gagal disimpan",
Toast.LENGTH_LONG).show();
}
}
catch (Exception e) {
un.setText(e.toString());
}
}
});
batal.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated
method stub
Intent
a = new Intent(daftarAct.this,
AplikasikuActivity.class);
startActivity(a);
finish();
}
});
}
}
hal2Act.java
package arumjiyu.net;
import
android.app.Activity;
import
android.content.Intent;
import android.os.Bundle;
import android.view.View;
import
android.widget.TextView;
public class hal2Act extends Activity {
TextView
tNama;
@Override
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hal2);
tNama = (TextView)
findViewById(R.id.txtNama);
Intent
in = getIntent();
String
nm = in.getStringExtra("nama");
tNama.setText(nm);
}
public void SignOut(View v) {
finish();
Intent
i = new Intent(this, AplikasikuActivity.class);
startActivity(i);
}
}
Buatlah Class Object dan berinama CustomHttpClient.java , dengan kode sebagai berikut :
package
arumjiyu.net;
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
* @throws Exception
*/
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
* @throws Exception
*/
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();
}
}
}
}
}
Jangan lupa mendaftarkan Class Activity yang baru saja dibuat di AndroidManifest.xml:
Jalankan Programnya :
Sekian
dari saya semoga bermanfaat J
TERIMA KASIH ILMUNYA ! SAYA COBA DULU.
BalasHapusTerdapat error : android.os.NetworkOnMainThreadException
BalasHapusbegitu diklik Button Sign IN.
Bagaiamana Solusinya ?
sebelumnya terimakasih atas kunjungannya, maaf baru di baca, karena saya sibuk dengan urusan di dunia nyata,
Hapususer permission untuk internet sudah di tambahkan ???