Membuat CRUD (Create, Read, Update, Delete) Dengan MySQL Di Android

Diposting oleh Chandra pada Android & Db

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:

Membuat CRUD (Create, Read, Update, Delete) dengan MySQL di Android

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),Membuat CRUD (Create, Read, Update, Delete) dengan MySQL di Android
  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:

Membuat CRUD (Create, Read, Update, Delete) dengan MySQL di Android

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.

Membuat CRUD (Create, Read, Update, Delete) dengan MySQL di Android

Tutorial terkait Membuat CRUD (Create, Read, Update, Delete) dengan MySQL di Android