Register Database MYSQL Dengan Eclipse Adt part 09 pemesanan ruangan karaoke
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