Pada pelajaran kali ini akan mencoba untuk membagikan tutorial CRUD (Create Read Update Delete) pada Android Studio menggunkan MySQL + PHP dan juga menggunakan bahasa pemrograman Kotlin.
Tahap-tahap yang akan kita pakai pada tutorial kali ini adalah :
1. Pembuatan database pada phpmyadmin
2. Pembuatan beberapa file php yang akan kita gunakan sebagai RestAPI yaitu file
- connection.php : untuk koneksi ke database
- create.php : untuk menambahkan data ke database
- read.php : untuk menampilkan semua isi data dari database
- update.php : untuk memperbarui data yang ada di database
- delete.php : untuk menghapus data yang ada di database
3. Membuat Project baru pada android studio untuk implementasi operasi CRUD
4. Testing aplikasi
Sekarang mari masuk ke tahap pertama yaitu pembuatan database pada phpmyadmin. Di sini menggunakan server lokal dengan XAMPP.
pertama buat dulu database nya dengan nama db_simplecrud
create database db_simplecrud
Selanjutnya buat tabel dengan nama tb_student, tabelnya sendiri terdiri dari 4 field yaitu nim(PK),name,address,gender
create table tb_student (
nim int(20) primary key not null,
name text,
address text,
gender text
)
sampai di sini pembuatan database telah selesai, selanjutnya akan masuk ke tahap kedua yaitu pembuatan RestApi.
Buat folder baru di htdocs (untuk yang menggunakan XAMPP) dengan nama simplecrud, di dalam folder simplecrud buatlah beberpa file php yang terdiri dari connection.php, create.php, read.php, update.php, dan delete.php
Buka file connection.php dan 4 variabel berikut
$HOST = 'localhost';
$USER = 'root';
$PASS = '';
$DB = 'db_simplecrud';
?>
4 variabel di atas digunakan untuk menampung data yang dibutuhkan saat koneksi ke database.
Kemudian tambahkan script berikut tepat dibawah 4 variabel yang telah dibuat
$CON = mysqli_connect($HOST,$USER,$PASS,$DB);
pada script di atas membuat 1 variabel dengan nama $CON yang dipakai untuk menampung fungsi koneksi ke database, variabel ini nanti yang akan dipakai untuk melakukan query-query pada database.
Sehingga keseluruhan script dari file connection.php seperti berikut
$HOST = 'localhost';
$USER = 'root';
$PASS = '';
$DB = 'db_simplecrud';
$CON = mysqli_connect($HOST,$USER,$PASS,$DB);?>
Sekarang buka file create.php, dan buat 4 buah variabel untuk menampung data yang diambil dari method POST.
require_once('connection.php');
$nim = $_POST['nim'];
$name = $_POST['name'];
$address = $_POST['address'];
$gender = $_POST['gender'];
?>
Dalam pemrograman php ada beberapa method yang digunakan untuk mengirim nilai yaitu GET, POST, PUT, DELETE tapi yang sering digunakan adalah GET sama POST .
Pada method POST data dikirimkan langsung lewat body/form tanpa melalui URL sedangkan GET bisa langsung memberikan paramater lewat URL untuk data yang akan dikirimkan.
Contoh paramater yang digunakan untuk mengirim data lewat method GET
para1 bernilai value
para 2 bernilai values
untuk script require_once digunakan untuk mengimport file connection.php kedalam file create.php
Selanjutnya tambahkan script berikut di bawah variabel tadi atau sebelum tanda ?>
if(!$nim || !$name || !$address || !$gender){echo json_encode(array('message'=>'required field is empty.'));}else{}
script di atas digunakan untuk pengecekan terhadap variabel yg menerima data dari method POST, jadi saat ada salah satu data yang kosong maka kita akan menampilkan pesan ‘required field is empty’
echo json_encode(array('message'=>'required field is empty.'));
gunakan script di atas untuk menampilkan data dalam format JSON (Javascript Object Notation).
Sekarang tambahkan script berikut di dalam else{}
$query = mysqli_query($CON, "INSERT INTO tb_student VALUES ('$nim','$name','$address','$gender')");if($query){echo json_encode(array('message'=>'student data successfully added.'));}else{echo json_encode(array('message'=>'student data failed to add.'));}
pada variabel $query menampung script untuk melakukan query ke database, saat melakukan query ke database dibutuhkan variabel koneksi yang telah dibuat tadi yaitu $CON.
Saat data berhasil ditambahkan maka akan keluar pesan ‘student data successfully added.’ pada layar, sebaliknya jika gagal maka pesan yang akan tampil ‘student data failed to add.’ .
Keseluruhan isi dari file create.php adalah
require_once('connection.php');
$nim = $_POST['nim'];
$name = $_POST['name'];
$address = $_POST['address'];
$gender = $_POST['gender'];
if(!$nim || !$name || !$address || !$gender){
echo json_encode(array('message'=>'required field is empty.'));
}else{
$query = mysqli_query($CON, "INSERT INTO tb_student VALUES ('$nim','$name','$address','$gender')");
if($query){
echo json_encode(array('message'=>'student data successfully added.'));
}else{
echo json_encode(array('message'=>'student data failed to add.'));
}
}?>
Selanjutnya buka file read.php kemudian tambahkan script berikut
require_once('connection.php');$result = array();
$query = mysqli_query($CON,"SELECT * FROM tb_student ORDER BY nim DESC");
while($row = mysqli_fetch_assoc($query)){
$result[] = $row;
}
echo json_encode(array('result'=>$result));?>
pada script di atas dibuat variabel $result di mana variabel ini digunakan untuk menampung sebuah data array, kemudian akan melakukan query ke database yang di mana data tersebut ditampung dalam variabel $query.
Setelah itu buat fungsi while (perulangan) di mana setiap data yang ada pada $query menampung pada variable $row, saat data ditampung masukan data tersebut ke variabel $query.
Saat perulangan telah selesai maka akan menampilkan semua datanya.
Sekarang buka file delete.php dan tambahkan script berikut
require_once('connection.php');$nim = $_GET['nim'];
if(!$nim){
echo json_encode(array('message'=>'required field is empty'));
}else{
$query = mysqli_query($CON, "DELETE FROM tb_student WHERE nim='$nim'");
if($query){
echo json_encode(array('message'=>'student data successfully deleted.'));
}else{
echo json_encode(array('message'=>'student data failed to delete.'));
}
}?>
Sekarang buka file update.php dan tambahkan script berikut
require_once('connection.php');
$nim = $_POST['nim'];
$name = $_POST['name'];
$address = $_POST['address'];
$gender = $_POST['gender'];
if(!$nim || !$name || !$address || !$gender){
echo json_encode(array('message'=>'required field is empty.'));
}else{
$query = mysqli_query($CON, "UPDATE tb_student SET name='$name', address='$address', gender='$gender' WHERE nim = '$nim'");
if($query){
echo json_encode(array('message'=>'student data successfully updated.'));
}else{
echo json_encode(array('message'=>'student data failed to update.'));
}
}?>
fungsi pada script yang ada pada file update.php dan delete.php hampir sama seperti yang ada pada create.php hanya saja beda pada query nya.
Sekarang uji restApi yang telah dibuat tadi, disini menggunakan Postman untuk menguji nya ( mendownload di sini )
Pengujian file create.php
Pengujian file read.php
Pengujian file update.php
Pengujian delete.php