Membuat CRUD (Create, Read, Update, Delete) Dengan MySQL Di Android
CRUD (Create, Read, Update, Delete) adalah suatu konsep dasar dalam pengembangan aplikasi yang memungkinkan kita melakukan operasi dasar pada data di database. Pada artikel ini, kita akan membahas bagaimana membuat CRUD dengan MySQL di Android.
Pendahuluan
Sebelum kita memulai, pastikan Anda memiliki:
- Android Studio yang telah diinstal di komputer Anda
- MySQL yang telah diinstal di komputer Anda (atau menggunakan layanan hosting MySQL)
- PHP yang telah diinstal di komputer Anda (untuk membuat API)
Membuat Database MySQL
Langkah pertama adalah membuat database MySQL untuk menyimpan data kita. Anda dapat membuat database dengan menggunakan perintah SQL berikut:
CREATE DATABASE db_crud;
Setelah membuat database, kita perlu membuat tabel untuk menyimpan data kita. Berikut adalah contoh tabel yang dapat kita buat:
CREATE TABLE tb_data (
id INT PRIMARY KEY AUTO_INCREMENT,
nama VARCHAR(255),
alamat VARCHAR(255),
no_hp VARCHAR(255)
);
Membuat API dengan PHP
Setelah membuat database dan tabel, kita perlu membuat API dengan PHP untuk mengakses data dari database. Berikut adalah contoh API yang dapat kita buat:
create.php
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "db_crud";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error)
die("Connection failed: " . $conn->connect_error);
// POST data
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$no_hp = $_POST['no_hp'];
// Query untuk menambahkan data
$sql = "INSERT INTO tb_data (nama, alamat, no_hp) VALUES ('$nama', '$alamat', '$no_hp')";
// Eksekusi query
if ($conn->query($sql) === TRUE)
echo "Data telah ditambahkan";
else
echo "Error: " . $sql . "<br>" . $conn->error;
$conn->close();
?>
read.php
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "db_crud";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error)
die("Connection failed: " . $conn->connect_error);
// Query untuk menampilkan data
$sql = "SELECT * FROM tb_data";
// Eksekusi query
$result = $conn->query($sql);
// Cetak hasil
if ($result->num_rows > 0)
while($row = $result->fetch_assoc())
echo "id: " . $row["id"]. " - Nama: " . $row["nama"]. " - Alamat: " . $row["alamat"]. " - No HP: " . $row["no_hp"]. "<br>";
else
echo "0 results";
$conn->close();
?>
update.php
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "db_crud";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error)
die("Connection failed: " . $conn->connect_error);
// POST data
$id = $_POST['id'];
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$no_hp = $_POST['no_hp'];
// Query untuk mengupdate data
$sql = "UPDATE tb_data SET nama='$nama', alamat='$alamat', no_hp='$no_hp' WHERE id='$id'";
// Eksekusi query
if ($conn->query($sql) === TRUE)
echo "Data telah diupdate";
else
echo "Error: " . $sql . "<br>" . $conn->error;
$conn->close();
?>
delete.php
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "db_crud";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error)
die("Connection failed: " . $conn->connect_error);
// POST data
$id = $_POST['id'];
// Query untuk menghapus data
$sql = "DELETE FROM tb_data WHERE id='$id'";
// Eksekusi query
if ($conn->query($sql) === TRUE)
echo "Data telah dihapus";
else
echo "Error: " . $sql . "<br>" . $conn->error;
$conn->close();
?>
Membuat Aplikasi Android
Setelah membuat API dengan PHP, kita dapat membuat aplikasi Android untuk mengakses data dari database. Berikut adalah contoh aplikasi Android yang dapat kita buat:
MainActivity.java
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class MainActivity extends AppCompatActivity
private EditText etNama, etAlamat, etNoHp, etId;
private Button btnCreate, btnRead, btnUpdate, btnDelete;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etNama = findViewById(R.id.et_nama);
etAlamat = findViewById(R.id.et_alamat);
etNoHp = findViewById(R.id.et_no_hp);
etId = findViewById(R.id.et_id);
btnCreate = findViewById(R.id.btn_create);
btnRead = findViewById(R.id.btn_read);
btnUpdate = findViewById(R.id.btn_update);
btnDelete = findViewById(R.id.btn_delete);
btnCreate.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
createData();
);
btnRead.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
readData();
);
btnUpdate.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
updateData();
);
btnDelete.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
deleteData();
);
private void createData()
String nama = etNama.getText().toString();
String alamat = etAlamat.getText().toString();
String noHp = etNoHp.getText().toString();
new AsyncTask<String, String, String>()
@Override
protected String doInBackground(String... strings)
try
URL url = new URL("http://localhost/create.php");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
String data = "nama=" + nama + "&alamat=" + alamat + "&no_hp=" + noHp;
conn.setRequestProperty("Content-Length", String.valueOf(data.length()));
OutputStream os = conn.getOutputStream();
os.write(data.getBytes());
os.close();
int responseCode = conn.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK)
return "Data telah ditambahkan";
else
return "Gagal menambahkan data";
catch (MalformedURLException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();
return null;
@Override
protected void onPostExecute(String s)
super.onPostExecute(s);
Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
.execute();
private void readData()
new AsyncTask<String, String, String>()
@Override
protected String doInBackground(String... strings)
try
URL url = new URL("http://localhost/read.php");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
int responseCode = conn.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK)
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String data = br.readLine();
while (data != null)
System.out.println(data);
data = br.readLine();
br.close();
return "Data telah dibaca";
else
return "Gagal membaca data";
catch (MalformedURLException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();
return null;
@Override
protected void onPostExecute(String s)
super.onPostExecute(s);
Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
.execute();
private void updateData()
String id = etId.getText().toString();
String nama = etNama.getText().toString();
String alamat = etAlamat.getText().toString();
String noHp = etNoHp.getText().toString();
new AsyncTask<String, String, String>()
@Override
protected String doInBackground(String... strings)
try
URL url = new URL("http://localhost/update.php");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
String data = "id=" + id + "&nama=" + nama + "&alamat=" + alamat + "&no_hp=" + noHp;
conn.setRequestProperty("Content-Length", String.valueOf(data.length()));
OutputStream os = conn.getOutputStream();
os.write(data.getBytes());
os.close();
int responseCode = conn.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK)
return "Data telah diupdate";
else
return "Gagal mengupdate data";
catch (MalformedURLException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();
return null;
@Override
protected void onPostExecute(String s)
super.onPostExecute(s);
Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
.execute();
private void deleteData()
String id = etId.getText().toString();
new AsyncTask<String, String, String>()
@Override
protected String doInBackground(String... strings)
try
URL url = new URL("http://localhost/delete.php");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
String data = "id=" + id;
conn.setRequestProperty("Content-Length", String.valueOf(data.length()));
OutputStream os = conn.getOutputStream();
os.write(data.getBytes());
os.close();
int responseCode = conn.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK)
return "Data telah dihapus";
else
return "Gagal menghapus data";
catch (MalformedURLException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();
return null;
@Override
protected void onPostExecute(String s)
super.onPostExecute(s);
Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
.execute();
Kesimpulan
Dalam artikel ini, kita telah membahas bagaimana membuat CRUD (Create, Read, Update, Delete) dengan MySQL di Android. Kita telah membuat database MySQL, API dengan PHP, dan aplikasi Android untuk mengakses data dari database. Dengan menggunakan CRUD, kita dapat mengelola data di database dengan lebih efektif dan efisien.