Saya ingin berbagi sama lainnya supaya ilmu saya bermanfaat untuk orang lain dan bisa di gunakan untuk orang lain,, terima kasih yang sudah mau berkunjung di blog saya semoga ilmunya bermanfaat

Breaking

Tuesday, April 10, 2018

CRUD in Android Studio - Create Data Akun Login in Android Studio use MySQL Database (Register)

CRUD in Android Studio - Create Data Akun Login in Android Studio use MySQL Database (Register)




Daftar isi :
  • Create Database in MySQL
  • Membuat Tampilan Register
  • Proses Register in Android Studio
  • Proses Register in PHP

Assalamu'alaikum Wr. Wb.

Salam untuk kita semua, Jumpa lagi di di blog Mr. Brohid kali ini saya akan berbagi ilmu kepada kalian tentang CRUD in Android Studio - Create Data Akun Login in Android Studio use MySQL Database (Register) Untuk materi dari artikel ini sudah saya sebuatkan dalam daftar isi di atas. Untuk lebih jelasnya kalian langsung saja masuk ke dalam proses pertama.

1. Create Database in MySQL

Untuk proses pertama ini kita akan membuat database untuk menampung data-data yang akan kita gunakan dalam membuat Login di Aplikasi Android Studio nya. Kalian bisa menggunakan server lokal seperti xampp, wamp, lamp, dll. Di sini saya akan menggunakan xampp sebagai server local saya. Ok setelah kalian jalankan xampp, kita buat database di PHPMyAdmin dengan nama yang sesuai anda ingin kan. Di sini saya akan kasih contoh nama db_android, dan tabelnya terdiri dari sebagai berikut.


Setelah kita membuat database kita buat folder untuk menyimpan data proses Register.php nya, kita akan taruh pada xampp.



2. Membuat Tampilan Register

Di proses ke dua ini kita akan membuat tampilan register di aplikasi Android yang kita buat sekarang, Untuk membuat tampilan kita buka dahulu activity_register.xml dan kalian bisa design sessuai keinginan kalian dan sesuka kalian dan di sini saya akan memberi contoh sederhana design tampilan dari Register di bawah ini.

Example:


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
   tools:context="com.example.lenovo.myapplication.FormRegister">


    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_marginTop="33dp"
        app:srcCompat="@drawable/gambar"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />


    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Form Registrasi"
        android:textSize="20dp"
        android:textStyle="bold"
        android:textAlignment="center"
        android:textColor="@color/colorPrimary"
        android:id="@+id/textView4"
        android:layout_below="@+id/imageView2"
        android:layout_alignParentEnd="true"
        android:layout_marginTop="18dp" />


    <EditText
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="19dp"
        android:hint="Username"
        android:textSize="15dp"
        android:textColor="@color/colorPrimary"
        android:textColorHint="@color/colorPrimary"
        android:layout_below="@+id/textView4"
        android:layout_centerHorizontal="true"
        android:id="@+id/editText" />


    <EditText
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:hint="Password"
        android:textSize="15dp"
        android:textColor="@color/colorPrimary"
        android:textColorHint="@color/colorPrimary"
        android:layout_below="@+id/editText"
        android:layout_alignStart="@+id/editText"
        android:layout_marginTop="10dp"
        android:id="@+id/editText2" />


    <EditText
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:hint="Ulangi Password"
        android:textSize="15dp"
        android:layout_marginTop="10dp"
        android:textColor="@color/colorPrimary"
        android:textColorHint="@color/colorPrimary"
        android:id="@+id/editText3"
        android:layout_below="@+id/editText2"
        android:layout_alignStart="@+id/button" />


    <Button
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:hint="Register"
        android:background="@color/colorPrimary"
        android:textColorHint="#fff"
        android:textStyle="bold"
        android:layout_marginTop="10dp"
        android:id="@+id/button"
        android:layout_below="@+id/editText3"
        android:layout_alignStart="@+id/editText2" />


    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAlignment="center"
        android:text="You have account ? Sign In."
        android:layout_below="@+id/button"
        android:layout_alignParentStart="true"
        android:layout_marginTop="20dp" />


</RelativeLayout>



View design:


Setelah kita membuat tampilan untuk Register sekarang kita akan langsung ke proses selanjutnya.


3. Proses Register di Android Studio

Di proses ke tiga kali ini kita akan membuat proses register pada Android Studio. Untuk pembuatannya kita akan menambahkan class baru sebagai wadah untuk proses Register. dan kalian bisa kasih nama proses sesuai yang anda inginkan dan anda sukai. Di sini saya akan kasih nama proses_register.java, di class proses register ini akan menampung proses untuk memproses data supaya bisa mengambil data dari database. oke di bawah ini script proses_register.java. 



public class proses_crud extends AsyncTask<String,Void, String> {

    private String url_proses_daftar = "http://ip kalian/proses_android/proses_daftar.php"; // link proses daftar di php

    Context context;
    ProgressDialog progressDialog;
    Activity activity;
    AlertDialog.Builder builder;

    public proses_crud(Context context) {
        this.context = context;
        activity = (Activity) context;
    }

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        builder = new AlertDialog.Builder(activity);
        progressDialog = new ProgressDialog(context);
        progressDialog.setMessage("Koneksi ke server...");
        progressDialog.setIndeterminate(true);
        progressDialog.setCancelable(false);
        progressDialog.show();
    }

    @Override
    protected String doInBackground(String... params) {
        String method = params[0];
        if (method.equals("Daftar")){
            try {
                URL url = new URL(url_proses_daftar);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("POST");
                connection.setDoOutput(true);
                connection.setDoInput(true);
                OutputStream outputStream = connection.getOutputStream();
                BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
                String username, password;
                username = params[1];
                password = params[2];

                String data_daftar = URLEncoder.encode("username", "UTF-8") + "=" + URLEncoder.encode(username, "UTF-8") + "&" +
                        URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode(password, "UTF-8");

                bufferedWriter.write(data_daftar);
                bufferedWriter.flush();
                bufferedWriter.close();
                outputStream.close();

                InputStream inputStream = connection.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
                StringBuilder stringBuilder = new StringBuilder();
                String line = "";

                while ((line = bufferedReader.readLine()) != null){
                    stringBuilder.append(line + "\n");
                }

                connection.disconnect();
                Thread.sleep(10000);
                return stringBuilder.toString().trim();

            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        try {
            JSONObject jsonObject = new JSONObject(s);
            JSONArray jsonArray = jsonObject.getJSONArray("Server");
            JSONObject JO = jsonArray.getJSONObject(0);
            String code = JO.getString("code");
            String message = JO.getString("pesan");
            if (code.equals("daftar_true")){
                builder.setMessage(message);
                builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        progressDialog.dismiss();
                        context.startActivity(new Intent(context, HomeActivity.class));
                    }
                });
                AlertDialog alertDialog = builder.create();
                alertDialog.show();
            }else if (code.equals("daftar_false")){
                builder.setMessage(message);
                builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        progressDialog.dismiss();
                    }
                });
                AlertDialog alertDialog = builder.create();
                alertDialog.show();
            } 
        } catch (JSONException e) {
            e.printStackTrace();
        }

    }
}

Setelah kalian selesai menulis script di atas, kita akan memanggil class proses register ini ke dalam class register. Masukkan kode script di bawah ini ke dalam class proses register untuk memanggil proses register yang kita buat tadi.

Example :


package com.example.lenovo.myapplication;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import com.example.lenovo.myapplication.proses.proses_crud;

public class FormRegister extends AppCompatActivity {

    EditText username, password, ulangpass;
    Button btn_daftar;
    TextView login;
    AlertDialog.Builder builder;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_form_register);

        username = (EditText) findViewById(R.id.editText);
        password = (EditText) findViewById(R.id.editText2);
        ulangpass = (EditText) findViewById(R.id.editText3);
        login = (TextView) findViewById(R.id.back);
        btn_daftar = (Button) findViewById(R.id.button_daftar);
        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(FormRegister.this, WelcomeActivity.class);
                startActivity(intent);
            }
        });
        btn_daftar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (username.getText().toString().equals("")||password.getText().toString().equals("")){
                    builder = new AlertDialog.Builder(FormRegister.this);
                    builder.setTitle("Informasi");
                    builder.setMessage("Your fill not input..!!");
                    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            dialogInterface.dismiss();
                        }
                    });
                    AlertDialog alertDialog = builder.create();
                    alertDialog.show();
                }else if (!password.getText().toString().equals(ulangpass.getText().toString())){
                    builder = new AlertDialog.Builder(FormRegister.this);
                    builder.setTitle("Informsi");
                    builder.setMessage("Maaf password dan ulangi password tidak sama...!");
                    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            dialogInterface.dismiss();
                        }
                    });
                    AlertDialog alertDialog = builder.create();
                    alertDialog.show();
                }
                else {
                    proses_crud backgroundTask = new proses_crud(FormRegister.this);
                     backgroundTask.execute("Daftar", username.getText().toString(),password.getText().toString());
                }
            }
        });
    }


}

Setelah kalian selesai pembuatan proses di androidnya kita akan membuat proses register pada script php nya pada proses ke empat.


4. Proses Register di PHP

Untuk proses ke empat ini kita akan membuat proses_register.php untuk membaca data dari android ke database

Example:


<?php
$nama = $_POST['username'];
$pass = $_POST['password'];

require "koneksi.php";

$query1 = "SELECT * FROM table_login ORDER BY id_login;";
$id = mysqli_query($conn, $query1);
$row = mysqli_fetch_array($id);

if (empty($row['id_login'])) {
$nomor = "1";
}else{
$nomor = $row['id_login'] + 1;
}


$query = "INSERT INTO `table_login` (`id_login`, `username`, `password`) VALUES (NULL, '$nama', '$pass')";
$result = mysqli_query($conn, $query);

if ($result) {
$response = array();
$code = "daftar_true";
$message = "Welcome to Apps My Application.";
array_push($response, array("code"=>$code, "pesan"=>$message));
echo json_encode(array("Server"=>$response));
}
else
{
$response = array();
$code = "daftar_false";
$message = "Gagal mendaftar..!";
array_push($response, array("code"=>$code, "pesan"=>$message));
echo json_encode(array("Server"=>$response));

}
?>


Setelah selesai untuk pembuatan proses Register pada php kalian bisa coba jalankan di device kalian. Semoga berhasil dan bertambah ilmunya, jangan lupa baca artikel lainnya dan baca juga artikel Make Login in Android App use MySQL Database - Android Studio 

Sekian dari saya apabila ada salah kata atau tulisan saya mohon maaf dan terima kasih sudah mau berkunjiung di blok saya jangan lupa baca artikel lainnya.


Wassalamu'alaikum Wr Wb.

No comments: