Cara Buat Form Login & Register Database MYSQL Dengan Eclipse Adt
Kode untuk server,
menggunakan database mysql, tabel ‘user’ dengan field id, user, dan password
Connection.php
<?php
$hostname_localhost =”localhost:3306″;
$database_localhost =”droid”;
$username_localhost =”root”;
$password_localhost =””;
$con =
mysql_connect($hostname_localhost,$username_localhost,$password_localhost)
or
trigger_error(mysql_error(),E_USER_ERROR);
?>
|
Get.php
<?php
require_once(‘connection.php’);
mysql_select_db($database_localhost,$con);
$query_search
= “select * from user where user = ‘”.$_POST[‘user’].”‘ and password =
‘”.$_POST[‘password’].”‘ “;
$query_exec
= mysql_query($query_search) or die(mysql_error());
if
(mysql_errno()) {
header(“HTTP/1.1 500 Internal Server Error”);
echo
$query.’\n’;
echo
mysql_error();
} else {
if(mysql_num_rows($query_exec)
!= 0){
$output=mysql_fetch_object($query_exec);
print(json_encode($output));
}
else {echo “No Data”; }
mysql_close();
}
?>
|
Pada kode di atas,
hasil dari query dijadikan sebuah object dengan method mysql_fetch_object dan menjadikannya sebuah object
json dengan memanggil method json_encode.
Login.html (untuk ujicoba)
<html>
<form action=”get.php”
method=”POST”>
<input type=”text”
name=”user”/>
<br>
<input type=”text”
name=”password”/>
<input type=”submit”
value=”login”/>
</form>
</html>
|
Setelah dicoba dengan
form html sederhana, maka didapatkan output:
{“id”:”1″,”user”:”admin”,”password”:”admin”,”status”:”admin”}
Sedangkan jika login salah,
maka didapatkan output: No Data
Setelah server siap, kita
beralih ke aplikasi android, buatlah sebuah project baru di eclipse.
Kode untuk tampilan utama:
xmlns:tools=“http://schemas.android.com/tools” android:layout_width=“fill_parent” android:layout_height=“fill_parent” android:orientation=“horizontal”> <TextView android:id=“@+id/textView1” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:layout_centerHorizontal=“true” android:text=“username : “ /> <EditText android:id=“@+id/etUsername” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:layout_centerHorizontal=“true” android:layout_below=“@id/textView1” android:ems=“20” android:hint=“username” android:inputType=“text” > <requestFocus /> </EditText> <TextView android:id=“@+id/TextViewPassword” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:layout_centerHorizontal=“true” android:layout_below=“@id/etUsername” android:text=“Password:” /> <EditText android:id=“@+id/etPassword” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:layout_centerHorizontal=“true” android:layout_below=“@id/TextViewPassword” android:ems=“20” android:hint=“password” android:inputType=“textPassword” /> <Button android:id=“@+id/btnLogin” android:text=“Login!” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:layout_alignRight=“@id/etPassword” android:layout_below=“@id/etPassword” />
</RelativeLayout>
|
Kemudian kode untuk
memroses login, kita buat sebuah kelas baru untuk menangani JSON. Method login
digunakan ketika user menekan tombol login di tampilan
//kelas
json helper, untuk pemrosesan json dari server
public
class JSONHelper {
//untuk
proses kirim data login ke server, kemudian melihat balikan
public LoginDetails
login(String username, String password)
throws ClientProtocolException,
IOException{
InputStream
is;
String
result = “”;
LoginDetails
details = null;
JSONObject
jsonObject = null;
//sebagai
ganti localhost di php, menggunakan 10.0.2.2
//untuk
akses http di server
HttpClient
httpClient = new DefaultHttpClient();
HttpPost
httpPost = new HttpPost(url);
//menambahkan data post untuk user dan password
List<NameValuePair>
nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair(“user”, username));
nameValuePairs.add(new BasicNameValuePair(“password”, password));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
//melihat hasil dari alamat + data post tadi
HttpResponse
response = httpClient.execute(httpPost);
//mengambil entity dari
hasil tadi
HttpEntity
entity = response.getEntity();
//mengambil input stream dari
hasil respon
is
= entity.getContent();
//melihat
teks dari input stream
result
= convertInputtoString(is);
Log.v(“resut”, result);
//kalau
hasilnya no data atau null, mengembalikan null, login tak berhasil
if(result.equalsIgnoreCase(“No Data”) || result == null){
return
null;
}else{
try {
//membuat object json
dari string yang diterima
jsonObject
= new JSONObject(result);
details
= new LoginDetails();
//mengambil user dan status dari object json
details.setUsername(jsonObject.getString(“user”));
details.setStatus(jsonObject.getString(“status”));
return details;
} catch (JSONException e) {
Log.v(“error”, e.getMessage());
}
}
return
null;
}
|
Kelas login details
untuk menyimpan detail
public
class LoginDetails {
private String username;
private String status;
public String getUsername() {
return
username;
}
public
void setUsername(String username) {
this.username = username;
}
public String getStatus() {
return
status;
}
public
void setStatus(String status) {
this.status = status;
}
}
|
Berikut adalah kode yang
dipanggil ketika tombol login ditekan
public
void onClick(View v) {
if(v.getId() == R.id.btnLogin){
EditText
user = (EditText)findViewById(R.id.etUsername);
EditText
password = (EditText)findViewById(R.id.etPassword);
//jika
masih kosong, harus diisi terlebih dahulu
if(user.getText().toString().length()
== 0 ||
password.getText().toString().length()
== 0){
Toast.makeText(getBaseContext(),
“You must fill in username and password”, Toast.LENGTH_SHORT).show();
}else{
setProgressBarIndeterminateVisibility(true);
progress = ProgressDialog.show(this, “Logging in”, “Please wait”);
LoginDetails
details = null;
try {
details
=
jsonHelper.login(user.getText().toString(),
user.getText().toString());
} catch (ClientProtocolException
e) {
Log.v(“error”, e.getMessage());
} catch (IOException e) {
Log.v(“error”, e.getMessage());
}
setProgressBarIndeterminateVisibility(false);
progress.dismiss();
if(details == null){
Toast.makeText(getBaseContext(),
“Login failed”, Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getBaseContext(),
“Login succeed as “+details.getUsername(),
Toast.LENGTH_SHORT).show();
}
}
|
Komentar
Posting Komentar