Membuat CRUD Android Studio dengan MySQL
Untuk membuat sebuah aplikasi android studio agar terhubung dengan database mysql, sobat membutuhkan yang namanya REST API. Apa itu REST API (Representional State Transfer). REST API adalah suatu arsitektur komunikasi data menggunakan suatu protokol HTTP untuk menerima dan merespon (request dan response) data.
Singkatnya, API itu sebagai jembatan yang menghubungkan sebuah aplikasi dengan aplikasi lainnya. Nah jadi sobat ruangcoder, pada tutorial kali ini sobat akan membuat suatu API menggunakan bahasa pemrograman PHP. Jadi pada kasus ini sobat akan menghubungkan Android dengan PHP sebagai server sidenya,
Membuat Database dengan MySQL
-- phpMyAdmin SQL Dump -- version 4.5.2 -- http://www.phpmyadmin.net -- -- Host: 127.0.0.1 -- Generation Time: Feb 05, 2020 at 04:46 AM -- Server version: 5.5.64-MariaDB-1ubuntu0.14.04.1 -- PHP Version: 5.6.23 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Database: `db_siswa` -- -- -------------------------------------------------------- -- -- Table structure for table `tb_siswa` -- CREATE TABLE `tb_siswa` ( `noinduk` int(5) NOT NULL, `nama` varchar(50) DEFAULT NULL, `alamat` varchar(100) DEFAULT NULL, `hobi` varchar(50) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data for table `tb_siswa` -- INSERT INTO `tb_siswa` (`noinduk`, `nama`, `alamat`, `hobi`) VALUES (1, 'RuangCoder', 'Jalan Raja Joglo', 'Ngopi'), (2, 'Ruang Coder Ex', 'Jalan Raya Joglo', 'Mancing'); -- -- Indexes for dumped tables -- -- -- Indexes for table `tb_siswa` -- ALTER TABLE `tb_siswa` ADD UNIQUE KEY `noinduk` (`noinduk`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `tb_siswa` -- ALTER TABLE `tb_siswa` MODIFY `noinduk` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Kemudian sobat , insert data nya , minimal 2 biar lebih terlihat rapih nantinya , seperti gambar dibawah ini :
Membuat API Server
Kalau tadi admin sudah dijelaskan apa itu Restful API. Maka, mari langsung sobat buat saja API Servernya. API server merupakan direktori yang nantinya diletakkan di web server untuk menaruh endpoint / api yang akan sobat buat. dan letakkan di folder :
Disini admin menamai direktori admin api-ruangcoder. Kemudian sobat buat 5 file php dengan nama (sesuai gambar di atas) antara lain :
koneksi.php , untuk mengatur sebuah koneksi PHP sobat ke database MySQL
getData.php, yaitu berisi API Select data dari database sobat.
tambahSiswa.php, berisi API untuk menambahkan data ke database.
deleteSiswa.php, berisi API untuk menghapus data dari database.
updateSiswa.php, berisi API untuk melakukan update data di database.
Kalau sudah mari sobat isi ke-lima file tersebut,
Yang pertama isi file Koneksi.phpdengan code berikut :
Catatan :
Lebih baik jangan langsung di copas ya , latihan mengetik manual , biar sembari baca codingannya , dan kalau ada error bisa benerin sendiri , jadi latihan dulu , kalo dah stuck adanya error , silahkan bandingkan codingan sobat dengan ini , jadi apa yang kurang , biar bisa lancar ngodingnya, oke lanjut
<?php $hostname = 'localhost'; $username = 'root'; $password = ''; $database = 'db_siswa'; $conn = mysqli_connect($hostname,$username,$password,$database); if(!$conn){ echo "gagal"; } ?>
Di koneksi.php sobat mendeklarasikan sebuah hostname,username,password, dari database sobat. Sesuaikan dengan konfigurasi phpmyadmin / mysql sobat ya. Tetapi, untuk variabel database tetap diisi db_siswa.
Kedua isi file getData.php
<?php include('koneksi.php'); //jangan lupa untuk include koneksi.php $sql = "SELECT * FROM tb_siswa"; $query = mysqli_query($conn,$sql); if(mysqli_num_rows($query) > 0){ while($row = mysqli_fetch_object($query)){ $data['status'] = true; $data['result'][] = $row; // $data2 = respond(true, $row); } }else{ $data['status'] = false; $data['result'][] = "Data not Found"; } print_r(json_encode($data)); ?>
Nah sobat pada getData.php berfungsi untuk mengambil / select data dari table tb_siswa kemudian di encode sebagai json. Bagi sobat yang sudah pernah mencoba query sql dasar seharusnya sobat tidak akan bingung ya dengan query di atas.
Ketiga isi file tambahSiswa.php
<?php include('koneksi.php'); $nama = $_POST['nama']; //menangkap nama dari post $noinduk = $_POST['noinduk']; //menangkap noinduk dari post $alamat = $_POST['alamat'];//menangkap alamat dari post $hobi = $_POST['hobi'];//menangkap hobi dari post if(!empty($nama) && !empty($noinduk)){ $sqlCheck = "SELECT COUNT(*) FROM tb_siswa WHERE noinduk='$noinduk' AND nama='$nama'"; $queryCheck = mysqli_query($conn,$sqlCheck); $hasilCheck = mysqli_fetch_array($queryCheck); if($hasilCheck[0] == 0){ $sql = "INSERT INTO tb_siswa (nama,noinduk,alamat,hobi) VALUES('$nama','$noinduk','$alamat','$hobi')"; $query = mysqli_query($conn,$sql); if(mysqli_affected_rows($conn) > 0){ $data['status'] = true; $data['result'] = "Berhasil"; }else{ $data['status'] = false; $data['result'] = "Gagal"; } }else{ $data['status'] = false; $data['result'] = "Gagal, Data Sudah Ada"; } } else{ $data['status'] = false; $data['result'] = "Gagal, Nomor Induk dan Nama tidak boleh kosong!"; } print_r(json_encode($data)); ?>
Sesuai namanya, dimana fungsi api tambahSiswa.php berfungsi untuk menambah data siswa ke database. Data siswa yang nanti diperoleh (noinduk,nama,alamat,dan hobi) berasal dari sebuah aplikasi android yang akan sobat buat setelah ini.
Ke empat isi file updateSiswa.php
<?php include('koneksi.php'); $nama = $_POST['nama']; $noinduk = $_POST['noinduk']; $alamat = $_POST['alamat']; $hobi = $_POST['hobi']; if(!empty($nama) && !empty($noinduk)){ $sql = "UPDATE tb_siswa set nama='$nama', alamat='$alamat', hobi='$hobi' WHERE noinduk='$noinduk' "; $query = mysqli_query($conn,$sql); if(mysqli_affected_rows($conn) > 0){ $data['status'] = true; $data['result'] = "Berhasil"; }else{ $data['status'] = false; $data['result'] = "Gagal"; } }else{ $data['status'] = false; $data['result'] = "Gagal, Nomor Induk dan Nama tidak boleh kosong!"; } print_r(json_encode($data)); ?>
Nah sobat fungsi API ini untuk mengupdate / memperbarui data siswa dari table tb_siswa yang ada didatabse.
Ke lima isi file deleteSiswa.php
<?php include('koneksi.php'); $noinduk = $_POST['noinduk']; if(!empty($noinduk)){ $sql = "DELETE FROM tb_siswa WHERE noinduk='$noinduk' "; $query = mysqli_query($conn,$sql); $data['status'] = true; $data['result'] = 'Berhasil'; }else{ $data['status'] = false; $data['result'] = 'Gagal'; } print_r(json_encode($data)); ?>
Dari namanya saja sobat sudah tentu tau lah ya , fungsi dari API ini untuk menghapus dari dari tb_siswa yang ada didatabase. Yap sobat, sampai sini ke-lima API kita sudah berhasil dibuat dan artinya API server sobat sudah siap!. Artinya juga, kita bisa lanjut masuk ke dalam tahap selanjutnya di android studio. Sekarang, buka android studio kalian.
Kita lanjut masuk ke pembuatan Aplikasi nya , karena kita sudah selesai , membuat API server nya ,
Silahkan sobat buka Android Studi Sobat masing — masing, disini admin menamakan aplikasinya crud-ruangcoder.
Kemudian sobat Siapkan Dependencies / Libraries
Aplikasi android kali ini sobat akan menggunakan library untuk berbagai keperluan, antara lain.
RecyclerView, sebagai wadah untuk data.
CardView, sebagai wadah view recyclerview.
Rengwuxian EditText , library untuk mempercantik tampilan EditText.
Fast Android Networking, library untuk mengatur segala HTTP request (GET dan POST)
yang akan digunakan untuk mengakses API Server yang sudah kita buat tadi .
Masuk ke build.gradle, kemudian masukkan kode di bawah kemudian Sync Now untuk mendownload dependencies ke dalam projek.
Kemudian sobat masuk ke build.gradle (module: app) kemudian masukkan kode di bawah kemudian Sync Now untuk mendownload dependencies ke dalam projek dan tunggu sync sampai selesai dulu sobat.
implementation 'com.amitshekhar.android:android-networking:1.0.2' implementation 'com.android.support:cardview-v7:27.1.1' implementation 'com.android.support:recyclerview-v7:27.1.1' implementation 'com.rengwuxian.materialedittext:library:2.1.4'
Atur AndroidManifest.xml sobat Di android manifest sobat akan menambahkan permission internet pada aplikasi sobat. Tambahkan kode di bawah untuk memberikan permission internet ke aplikasi yang akan sobat buat :
Originally published at https://www.ruangcoder.com on June 5, 2020.