Android Login Menggunakan MySQL dan PHP CodeIgniter API

Ini adalah tulisan sambungan saya dari login api dengan php codeigniter dan mysql jika belum paham apa itu API bisa melihat kesana dulu :)

Oke seperti yang telah kita bahas dan saya janjikan di tutorial pertama, kali ini mari kita buat implementasi dari API yang kita buat pada aplikasi Android.

Tools yang saya gunakan pada pembahasan kali ini adalah IDE Android Studio yang lebih powerfull ketimbang Eclipse.

Jadi untuk memulai, kita bisa buat project baru. apa saja terserah dengan syarat berbasis Gradle.

setelah project telah dibuat oleh Android Studio, kita harus melakukan penambahan library pada Gradle file project kita (Project : Beasiswa FIT) kalau di saya karena saya membuat project dengan nama tersebut. gambarnya sebagai berikut :


kita menambahkan :
compile 'com.squareup.okhttp:okhttp:2.4.0'

OkHttp adalah library java canggih yang dapat menangani koneksi berbasis HTTP. jadi kita tidak perlu bersusah payah dalam membuat kode yang panjang untuk terkoneksi internet nantinya. :)


hal penting yang perlu diperhatikan adalah peroses 'Sync'. karena kita menambahkan library maka library perlu di unduh dengan menekan tombol Sync Now yang ada disebelah kanan atas Android Studio. prosess ini tentu saja membutuhkan Koneksi Internet.
Setelah perosess sync beres maka kita sudah siap untuk membuat kode nya.

Untuk pengkodean android kita bisa merancang tampilan login terlebih dahulu, saya merancang tampilan seperti ini :


Setelah selesai dengan pembuatan tampilan login, kita bisa langsung masuk ke kode dan menulis bagaimana cara agar terauthentikasi dengan Login API.

package ari.project.beasiswafit.ui;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.squareup.okhttp.FormEncodingBuilder;
import com.squareup.okhttp.MediaType;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.RequestBody;
import com.squareup.okhttp.Response;

import java.io.IOException;

import ari.project.beasiswafit.R;


public class LoginActivity extends ActionBarActivity implements View.OnClickListener, Runnable {

    private EditText username;
    private EditText password;
    private Button login;

    OkHttpClient client = new OkHttpClient();

    // 10.0.2.2 adalah alias alamat localhost
    private final String loginurl = "http://10.0.2.2/beafit/index.php/android/loginapi";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
        getSupportActionBar().hide();
        username = (EditText) findViewById(R.id.username);
        password = (EditText) findViewById(R.id.password);
        login = (Button) findViewById(R.id.buttonlogin);
        login.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        new Thread(this).start();
    }

    @Override
    public void run() {
        RequestBody formBody = new FormEncodingBuilder()
                .add("username", username.getText().toString())
                .add("password", password.getText().toString())
                .build();
        Request request = new Request.Builder()
                .url(loginurl)
                .post(formBody)
                .build();

        try {
            Response response = client.newCall(request).execute();
            if (!response.isSuccessful()){
                throw new IOException("Unexpected code " + response);
            }
            System.out.println(response.body().string());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

terakhir, jangan lupa menambahkan pada Androidmanifest.xml setelah selesai, kode bisa kita uji coba. 


jika di logcat android studio telah menampilkan data JSON, berarti selamat. kita telah berhasil melakukan login dan koneksi ke PHP CodeIgniter API.


jika data JSON nya kosong, berarti username atau password yang diinputkan salah :)
Selanjutnya, kita akan melakukan parsing data JSON yang akan saya bahas di tulisan selanjutnya.

semoga bermanfaat :)

Komentar

Posting Komentar