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:
<RelativeLayout
xmlns:android=http://schemas.android.com/apk/res/android&#8221;

android:layout_width=“fill_parent”
https://hartz.files.wordpress.com/2012/12/120512_1434_membuatlogi1.png?w=645
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
phpmenggunakan 10.0.2.2
        String url = http://10.0.2.2/droid/get.php&#8221;
        
        //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
kosongharus
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