Pages

Form Login Android - PHP - MySQL

Sabtu, 17 Oktober 2015

Assalamualaikum Wr. Wb~

     Oke, sekarang kita bermain pemrograman android.


Kalo di sekolahan aku nama pelajarannya PEMROGRAMAN PERANGKAT BERGERAK, aneh ya? walaupun maksudnya bener, tapi agak lucu wkwk

     Kali ini aku mau kasih tutorial form login yang datanya ada di MySQL. Kenapa aku tulis PHP di judulnya, karna yang aku tau dari Android ga bisa langsung akses ke database MySQL. Jadi harus lewat perantara PHP buat pengambilan datanya.

Langsung aja! Pertama kalian buat databasenya kaya gini, Sekalian insert dulu bebas, user sama password yang kalian isi digunain buat login nantinya.


Kedua, kalian bikin file PHPnya dengan nama androidLogin.php dan copy kode ini
<?php
mysql_connect("localhost","root","") or die ("Koneksi Gagal!!");
mysql_select_db("ujikom");
$sql = "select * from admin where user = '$_POST[user]'";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
if(mysql_num_rows($query) == 0){
echo "Username Belum Terdaftar";
}elseif($_POST['user'] == "" or $_POST['pass'] == ""){
echo "Form Masih Kosong!";
}elseif($_POST['pass'] <> $row['password']){
echo "Password Salah!";
}elseif($_POST['pass'] == $row['password']){
echo "Berhasil Login!";
}
?>

Lanjut! Kemudian kalian copy kode ini ke activity_main.xml
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="16dp"
    android:paddingBottom="16dp"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/strUser"
        android:id="@+id/textView"
        android:layout_marginTop="10dp"
        android:layout_alignParentTop="true" />

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editTextUsername"
        android:layout_below="@+id/textView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/strPass"
        android:id="@+id/textView2"
        android:layout_below="@+id/editTextUsername"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editTextNama"
        android:layout_below="@+id/textView2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/strLogin"
        android:id="@+id/buttonLogin"
        android:layout_below="@+id/editTextNama"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
</RelativeLayout>

Terus bikin class baru namanya ClientToServer.java dan copy kode ini ke dalamnya
package koukousei.androidtugas_php_1;

import android.util.Log;


import org.apache.http.HttpEntity;

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;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;
import java.util.ArrayList;

/**

 * Created by user on 02-Oct-15.
 */
public class ClientToServer {
    public static final int HTTP_TIMEOUT = 30 * 1000;
    private static HttpClient httpClient;
    private static HttpClient getHttpClient(){
        if(httpClient == null){
            httpClient = new DefaultHttpClient();
            final HttpParams parameterHttp = httpClient.getParams();
            HttpConnectionParams.setConnectionTimeout(parameterHttp, HTTP_TIMEOUT);
            HttpConnectionParams.setSoTimeout(parameterHttp, HTTP_TIMEOUT);
            ConnManagerParams.setTimeout(parameterHttp, HTTP_TIMEOUT);
        }
        return httpClient;
    }

    public static String executeHttpPost(String url, ArrayList<NameValuePair> postParameter) throws Exception{

        BufferedReader bufferedReader = null;
        try{
            HttpClient httpClient = getHttpClient();
            HttpPost httpPost = new HttpPost(url);
            UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParameter);
            httpPost.setEntity(formEntity);
            HttpResponse httpResponse = httpClient.execute(httpPost);
            bufferedReader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
            StringBuffer stringBuffer = new StringBuffer("");
            String line = "";
            String NL = System.getProperty("line.separator");
            while((line = bufferedReader.readLine()) != null){
                stringBuffer.append(line + NL);
            }
            bufferedReader.close();
            String hasil = stringBuffer.toString();
            return hasil;
        }finally {
            if(bufferedReader != null){
                try{
                    bufferedReader.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
    }
}

Nah terakhir kalian buka MainActivity.java dan copy kode berikut
.package koukousei.androidtugas_php_1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;

import java.util.ArrayList;

import koukousei.phplogin.R;


public class MainActivity extends Activity implements View.OnClickListener {
    EditText etUser, etPass;
    Button btnLogin;
    String url = "http://10.0.2.2/PHP_Tugas_1/Android/androidLogin.php";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.form_login);
        StrictMode.enableDefaults();
        btnLogin = (Button) findViewById(R.id.buttonLogin);
        btnLogin.setOnClickListener(this);
        etUser = (EditText) findViewById(R.id.editTextUsername);
        etPass = (EditText) findViewById(R.id.editTextNama);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.buttonLogin:
                kirimData();
                break;
        }
    }

    private void kirimData(){
        ArrayList<NameValuePair> kirimPhp = new ArrayList<NameValuePair>();
        kirimPhp.add(new BasicNameValuePair("user", etUser.getText().toString()));
        kirimPhp.add(new BasicNameValuePair("pass", etPass.getText().toString()));
        String respon = null;
        try{
            respon = ClientToServer.executeHttpPost(url, kirimPhp);
            String res = respon.toString();
            res = res.trim();
            if(res.equals("Berhasil Login!")){
                Toast.makeText(this, res.toString(), Toast.LENGTH_SHORT).show();
                etUser.setText("");
                etPass.setText("");
                etUser.requestFocus();
            }else{
                Toast.makeText(this, res.toString(), Toast.LENGTH_SHORT).show();
                etUser.setText("");
                etPass.setText("");
                etUser.requestFocus();
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

Jangan lupa ubah isi variable url, sesuaikan dengan directory file php kalian, ganti juga package packagenya sesuai dengan project kalian. Selesai, silahkan di run pake emulator kesayangan kalian!
Sekian dari aku, semoga bermanfaat! Terima Kasih~

Wassalamualaikum Wr. Wb~

Tidak ada komentar:

Posting Komentar