Membuat CRUD Restful API dengan PHP dan MySQL Lengkap

Pada kesempatan kali ini kita akan memperlajari mengenai cara membuat crud restful api dengan menggunakan PHP dan MySQL. Membuat crud restful api dengan PHP dan MySQL Lengkap merupakan cara yang paling mudah untuk membuat restful api dengan PHP dan MySQL. ada beberapa point yang harus kita persiapkan sebelum kita memulai membuat crus restful api dengan PHP dan MySQL yaitu:

  1. Membuat Database pada PHPMyadmin beserta tabel dan field yang dibutuhkan.
  2. Membuat Folder penyimpanan untuk menyimpan script yang kita buat.
  3. Membuat File koneksi ke database.
  4. Membuat File CRUD pada pemrograman PHP
  5. Melakukan pengetesan restful API dengan menggunakan aplikasi POSTMAN.

Jika kalian sudah memahami point-point apa saja yang harus dipersiapkan maka silahkan ikuti tahapan-tahapan berikut ini.

1. Membuat database pada PHPMyadmin dengan PHP dan MySQL

Pada tahapan pertama ini kita akan membuat database dengan nama dbrest dan selanjutnya membuat satu tabel saja untuk contoh penerapan restful API yaitu dengan nama produk. Bagi teman-teman yang baru belajar pemrograman PHP dan database MySQL tidak perlu khawatir karena admin akan menjelaskan dari tahapan paling awal dan terperinci.

Oke kita akan membuat database dengan nama dbrest, jangan lupa kalian untuk menjalankan Apache dan Mysql pada XAMPP. Untuk langkahnya silahkan perhatikan gambar berikut ini:

Membuat crud restful api dengan php dan MySQL Lengkap
Membuat database dbrest

Setelah kalian berhasil mengakses PHPMyAdmin maka silahkan buat database dengan nama dbrest seperti gambar diatas. Selanjutny klik button Buat. Untuk tahapan selanjutnya kita akan membuat tabel dengan nama produk, silahkan perhatikan gambar berikut untuk lebih jelasnya.

Membuat crud restful api dengan php dan MySQL Lengkap
Membuat tabel produk

Ketika kita klik nama database yang sudah kita buat sebelumnya maka selanjutnya kita akan diarahkan pada halaman Buat Tabel. silahkan kalian isi dengan tabel yang kalian butuhkan untuk admin sendiri memberi contoh dengan nama tabel produk. Selantnya silahkan klik button kirim pada bagian paling kanan.

Selanjutnya kita akan membuat field-field yang dibutuhkan untuk proses crud, Silahkan teman-teman perhatikan gambar dibawah ini untuk langkah pembuatan field dan tipe datanya.

Membuat crud restful api dengan php dan MySQL Lengkap
Membuat field produk

Untuk field dan tipe datanya kalian dapat mengikuti contoh yang ada pada gambar, jangan lupa untuk men ceklis pada bagian id pada kolom AI. Setelah selesai silahkan save pada bagian kanan bawah. Maka kita akan mendapatkan hasil struktur tabel seperti berikut.

Struktur tabel produk

Setelah struktur tabel sama persis maka langlah selanjutnya adalah melakukan insert data pada menu Tambahkan, silahkan kalian tambahkan data-datanya, sebagai contoh kalian dapat mengikuti seperti gambar dibawah ini. Untuk mengisi kolom-kolomnya silahkan kalian kosongkan saja pada bagian Id karena akan terisi secara otomatis. dan hasil yang didapat akan seperti gambar dibawah ini:

Data tabel Produk

Kalian dapat mengikuti data-data pada gambar diatas, sebagai contoh saja yang nantinya akan kita manipulasi pada bagian rest API dengan menggunakan aplikasi POSTMAN. Langkah selanjutnya kita akan membuat folder penyimpanan, silahkan simak penjelasan dibawah ini.

2. Membuat folder pengimpanan script PHP dan Mysql

Pada tahapan kedua ini kita akan membuat folder dengan nama restful_api pada directori htdocs, selanjutnya buka text editor yang kalian miliki untuk admin sendiri menggunakan VSCode sebagai text editornya. Selanjutnya silahkan masukan folder yang sudah dibuat sebelumnya dan kita akan membuat 2 folder baru dengan nama config dan produk. Untuk lebih detailnya silahkan perhatikan gambar dibawah ini.

Open Folder

Setelah sesuia struktur foldenya maka selanjutnya kita akan membuat struktur file kosong yang nantinya kita akan isi dengan script secara terpisah, untuk struktur filenya sendiri silahakan perhatikan dan ikuti gambar dibawah ini.

Struktur File

Setelah struktur file PHP sudah dibuat selanjutnya kita akan mengisikan file koneksi dengna kodingan yang menghubungkan script PHP dengan database MySQL.

3. Koneksi CRUD restful api dengan php dan MySQL

Bagian pertama yang akan kita isikan script yaitu pada bagian koneksi_db.php yang terdapat pada folder config. Untuk scriptnya teman-teman dapat mengikuti script dibawah ini. Jangan Lupa setiap mengikuti kodingan dibawah dengan menambahkan tag PHP diatas dan bagian paling bawahnya.

    define('HOST','localhost');
    define('USER','root');
    define('DB','dbrest');
    //password disesuaikan dengan akses ke database masing-masing
    define('PASS','');
    $conn = new mysqli(HOST,USER,PASS,DB) or die('Koneksi error untuk mengakses database');  

Maksud script diatas adalah dengan memasukan HOST, USER dan database yang kita gunakan. secara default untuk HOST dan USER yaitu diisi dengan localhost dan root. Untuk password dapat disesuaikan dengan yang kalian gunakan, karena admin tidak menggunakan password jadi mengosongkan pada bagian password. dan selanjutnya membuat pengkondisian.

4. Script view all data CRUD restful api dengan php dan MySQL

Untuk membuat script view all data kita akan mengisikan pada file api_tampil_all.php yang terdapat pada folder produk. File ini akan menyimpan script untuk menampilkan data secara keseluruhan. Untuk scriptnya sendiri silahkan kalian ikuti script dibawah ini.

    require_once('../config/koneksi_db.php');
    $myArray = array();
    if ($result = mysqli_query($conn, "SELECT * FROM produk ORDER BY id ASC")){
        while ($row = $result->fetch_array(MYSQLI_ASSOC)){
            $myArray[] = $row;
        }
        mysqli_close($conn);
        echo json_encode($myArray);
    }

Untuk dapat menampilkan data pada file app_tampil_all.php dengan menambahkan koneksi terlebih dahalu yaitu menggunakan require_once(‘../config/koneksi_db.php’); dan selanjutnya kita membuat script untuk menampilkan semua data yang terdapat pada tabel produk selanjutnya melakukan encode maksudnya adalah untuk mengembalikan hasilnya dengan data json. Silahkan ikuti dan jalankan link rest API pada aplikasi POSTMAN dengan metode GET, jika berhasil maka akan menampilkan gambar seperti berikut ini.

tampil all data

Dari gambar diatas kita dapat melihat hasil respon dari JSON yaitu berhasil menampilan data keseluruhan yang terdapat pada tabel produk.

5. Membuat script View Data By Id

Pada bagian ini yaitu kita akan membuat script yang digunakan untuk menampilkan salah satu data dengan menggunakan id, pada file api_tampil_byid.php yang tedapat pada folder produk. untuk script nya silahkan kalian ikuti script berikut.

    require_once('../config/koneksi_db.php');

    $myArray = array();
    if(isset($_GET['id'])){
        $id=$_GET['id'];

        if($result = mysqli_query($conn, "SELECT * FROM produk WHERE id=$id")){
            while ($row = $result->fetch_array(MYSQLI_ASSOC)){
                $myArray[] = $row;
            }
            mysqli_close($conn);
            echo json_encode($myArray);
        }
    }

Pada script diatas kita dapat melihat ada sedikit perubahan pada bagian where yang berisikan Id, untuk menjalannya hapir sama yaitu dengan menggunakan metode GET, tetapi ada pengisian value yaitu dengan id 3. untuk contoh penerapannya silahkan perhatikan script dibawah ini.

Tampil per Id

Kita dapat melihat pada gambar diatas merupakan hasil ketika kita menjalankan file api_tampil_byid.php dengan mengisi value contohnya adalah id dengan nomor 3, maka akan menampilkan JSON dengan data id ke 3.

6. Membuat script tambah data

Pada bagian ini kita akan menambahkan script menambahkan data kedalam database yaitu pada file api_tambah.php yang terdapat pada folder produk. untuk script lengkapnya dapat mengikuti script dibawah ini.

    require_once('../config/koneksi_db.php');
    if (isset($_POST['nama_produk']) && isset($_POST['tipe_produk']) && isset($_POST['harga']) && isset($_POST['stok'])) {
        $nama_produk    = $_POST['nama_produk'];
        $tipe_produk  = $_POST['tipe_produk'];
        $sql = $conn->prepare("INSERT INTO produk (nama_produk, tipe_produk, harga, stok) VALUES (?, ?, ?, ?)");
        $harga    = $_POST['harga'];
        $stok    = $_POST['stok'];
        $sql->bind_param('ssdd', $nama_produk, $tipe_produk, $harga, $stok);
        $sql->execute();
        if ($sql) {
         //echo json_encode(array('RESPONSE' => 'FAILED'));
         echo json_encode(array('RESPONSE' => 'SUCCESS'));
         //header("location:../readapi/tampil.php");
        } else  {
        echo "GAGAL";
       }
    }

Untuk membuat script tambah data yaitu dengan menambahkan koneksi pada bagian paling atas selanjtunya membuat pengkondisian yang dimana field-field pada tabel produk harus diisi. selanjutnya terdapat metode bind_param maksudnya untuk menyimpan variabel yang akan dieksekusi didalam metode bind_param terdapat tulisan ssdd maksudnya adalah S= String , D= Decimal/double . yang merupakan tipe data yang akan diinputkan.

Selanjutnya membuat pengkondisian jika berhasil maka script akan menampilkan respon JSON. Untuk hasil dari script diatas kita dapat mencoba pada aplikasi postman. Silahkan perhatikan gambar dibawah ini.

Tambah data

Untuk mengecek rest api penambahan data dengan menggunakan metode POST dan memilih menu Body->x-www-form-urlencoded. Selanjutnya mengisi Key dan value sesuai dengan field dan data yang ingin kalian inputkan. Selanjutnya klik tombol Send. Jika berhasil maka akan menampilkan respon Success seperti yang terlihat pada gambar diatas.

7. Membuat Script Ubah Data

Pada bagian ketujuh ini tentunya kita akan membuat script untuk mengubah data yang terdapat pada tabel produk, untuk metode yang digunakan pada saat pengecekan tentunya berbeda dengan yang sebelumnya yaitu dengan menggunakan metode PUT, metode put inilah yang digunakan untuk dapat mengambil id yang kita pilih dan melakukan mengubahan data, untuk scriptnya kalian dapat mengikuti script dibawah ini:

    require_once('../config/koneksi_db.php');
    $data = json_decode(file_get_contents("php://input"));

    if ($data->id!=null){
        $id             = $data->id;
        $nama_produk    = $data->nama_produk;
        $harga          = $data->harga;
        $tipe_produk    = $data->tipe_produk;
        $stok           = $data->stok;

        $sql = $conn->prepare("UPDATE produk SET nama_produk=?, tipe_produk=?, harga=?, stok=? WHERE id=?");
        // pada bind parameter ssddd itu artinya tipe data yang dikitimkan s= string, d= double, i=interfer.
        $sql->bind_param('ssddd', $nama_produk, $tipe_produk, $harga, $stok, $id);
        $sql->execute();
        if ($sql){
            echo json_encode(array('RESPONSE' => 'SUCCESS'));
        }else{
            echo json_encode(array('RESPONSE' => 'FAILED'));
        }
    }else {
        echo "GAGAL";
    }

Untuk membuat edit data yang pertama yang harus diperhatikan adalah pada bagian $data = json_decode (file_get_contents(“php://input”)); dimana script tersebut digunakan untuk mendapatkan data dengan cara men decode data JSON yang dipilih, lalu selanjutnya masuk kepada tahapan pengkondisian dimana tahapan tersebut digunakan untuk pengecekan apkaah data-data yang diinputkan sudah benar atau tidak. Jika benar maka akan memunculkan pesan Success dan jika tidak memunculkan pesan failed.

Untuk cara pengecekannya ada beberapa yang perlu diperhatikan tentunya, silahkan kalian lihat gambar dibawah ini:

Rest Edit

Pada pengecekan rest edit tentunya kita harus memperhatikan method yang berada disebelah kiri dengan mengantinya menjadi metode PUT, selanjutnya pilih menu Body->raw. Lalu kalian akan mengetik script JSON dengan data yang baru tetapi menggunakan id yang sudah ada di tabel produk. Untuk conth pada gambar admin mengedit data yang berapa pada id 1 lalu mengisikan data baru seperti yang diinputkan pada kolom raw. Jika berhasil maka akan menampilkan pesan Success.

8. Membuat Script Hapus Data

Pada tahapan terakhir ini tentunya kita akan membuat script untuk menghapus data data yang telah kita inputkan atau yang terdapat pada database, caranya cukup sederhana yaitu kita hanya tinggal memanggil id yang akan kita harus selanjutnya melakukan penghapusan data. Untuk scriptnya sendiri kalian dapat mengikutinya dibawah ini.

    require_once('../config/koneksi_db.php');
    $data = json_decode(file_get_contents("php://input"));

    if ($data->id!=null){
        $id=$data->id;
            $sql = $conn->prepare("DELETE FROM produk WHERE id=?");
            $sql->bind_param('i', $id);
            $sql->execute();

            if ($sql){
                echo json_encode(array('RESPONSE' =>'SUCCESS'));
            }else {
                echo json_encode(array('RESPONSE' => 'FAILED'));
            }
    }else{
        echo "gagal";
    }

Hampir sama halnya dengan membuat edit, kita harus membuat perintah untuk mendapatkan id data data yang akan kita hapus. selanjutnya mempuat pengkondisian dan melakukan eksekusi. Jika berhasil maka pesan yang akan dikembalian yaitu success dan jika gagal maka pesan yang akan dikembalikan yaitu failed. Untuk mengetahui penerapan delete pada rest api kalian dapat memperhatikan gambar dibawah ini.

Rest Hapus

Ada beberapa hal juga yang harus diperhatikan saat menguji rest delete yaitu dengan memilik metode Delete, selanjutnya menggunakan menu Body->raw lalu memasukan id yang akan kita delete tentunya. selanjut menekan tombol send maka jika berhasil akan mengembalikan respon Success dan jika gagal akan mengembalikan respon failed.

Untuk tutorial lanjutan dari tutorial ini silhakan kunjungi: Membuat Crud Restful API OOP PHP dan MySQL

Mungkin sekian artikel kali ini mengenai Membuat crud restful api dengan php dan MySQL Lengkap, semoga artikel yang admin tulis dapat memberikan pengetahui serta manfaat bagi para pembacanya. Terimaksih telah berkunjung dan membaca atikel ini. Semoga kalian berhasil mencoba dan mengikuti tutorialnya. Untuk artikel mengenai SOAP dan REST kalian dapat mengunjungi

Panduan Lengkap SOAP, REST dan JSON

Salam Success 🙂

By: Muhammad Rizal Supriadi

11 thoughts on “Membuat CRUD Restful API dengan PHP dan MySQL Lengkap”

Leave a Comment

Your email address will not be published. Required fields are marked *