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(); } } }
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());
}
}
});
}
}
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));
}
?>
$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:
Post a Comment