Tutorial Belajar REST API Menggunakan PHP [OOP Version]

Hallo….

Ketemu lagi, semoga pembaca sekalian dalam keadaaan sehat sehingga tetap bisa fokus membuat program.

Pada tutorial sebelumnya kita telah membahas tentang REST API dan jika teman-teman telah membaca dan membuat script di postingan tersebut maka akan diperolah pemahaman tentang dasar rest api dan latihan project rest api sederhana menggunakan PHP Native dan MySQL database.

Tutorial belajar Rest API ini masih menggunakan PHP dan MySQL. Dapat dikatakan Ini adalah lanjutan dari tutorial rest api sebelumnya namun script php yang digunakan untuk membuat rest api ini berbentuk object oriented programming.

Sebagai pengguna PHP tentu kita tahu bahwa di php kita bisa menggunkan pendekatan prosedural dan object oriented dalam mengembangkan scirpt.

Nah Langsung Saja…

Langkah Pembuatan File Rest Api

Di bawah ini mari kita selesaikan pembuatan file php menggunakan pendekatan OOP untuk membuat REST API.

1. Siapkan database

Buatlah terlebih dahulu database. (boleh digunakan database yang sudah ada). Pada contoh ini menggunakan database indonetsource sebagai..

2. Buatlah tabel mahasiswa di database seperti di bawah ini.

CREATE TABLE `tbl_mahasiswa` (
 `nim` varchar(8) NOT NULL,
 `nama` varchar(30) NOT NULL,
 `jenis_kelamin` enum(‘Laki-laki’,’Perempuan’) NOT NULL,
 `tempat_lahir` varchar(20) NOT NULL,
 `tanggal_lahir` date NOT NULL,
 `alamat` text NOT NULL,
 PRIMARY KEY (`nim`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

Tabel ini adalah tabel yang akan diakses datanya nanti oleh client.

3. Mempersiapkan file PHP

Membuat directory project.

Jika menggunakan wampp maka buatlah project pada directory www. Namun jika menggunakan xampp maka dibuat pada folder htdocs.

Nama project yang digunakan adalah restapiphp

struktur folder project.

restapiphp
|---- dbconfig
|---- database.php
|---- objects
|---- delete_mhs.php
|---- get_byNim.php
|---- get_mhs.php
|---- input_mhs.php
|---- mahasiswa.php
|---- update.php

dbconfig

database.php

<?php
class Database{
  
    // specify your own database credentials
    private $host = "localhost";
    private $db_name = "indonetsource";
    private $username = "root";
    private $password = "";
    public $conn;
  
    // get the database connection
    public function koneksi(){
        $this->conn = null;  
        try{            
            $this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
            $this->conn->exec("set names utf8");
        }catch(PDOException $exception){
            echo "Connection error: " . $exception->getMessage();
        }
  
        return $this->conn;
    }
}
?>

selanjutnya membuat file objects.

Object

Object dari program rest api yang kita buat adalah mahasiswa. Mahasiswa sebagai object data/atributnya akan dilakukan manipulasi seperti create,read,update dan delete. Dalam pengembangan versi oop ini sebaiknya pahami terlebih dahulu apa itu oop.

Keseluruhan proses ini kita buatkan methodnya di file mahasiswa.php. Masing-masing method inilah yang akan dipanggil nanti oleh file yang bertugas melakukan crud.

mahasiswa.php

<?php

class Mahasiswa{
    
    public $nim;
    public $nama;
    public $jenis_kelamin;
    public $tempat_lahir;
    public $tanggal_lahir;    
    public $alamat;

    private $kon;
    private $tabel = "tbl_mahasiswa";
      
    public function __construct($dbname){
        $this->kon = $dbname;
    }

    //Get Semua data Mahasiswa
    function get_mhs()
    {
        $query = "SELECT * FROM " . $this->tabel . "";        
        $stmt = $this->kon->prepare($query);        
        $stmt->execute();
        return $stmt;
    }

    //fungsi get mahasiswa by nim
    function get_byNim()
    {
        $query = "SELECT * FROM " . $this->tabel . " m          
                WHERE
                    m.nim = ?
                LIMIT
                0,1";

        $stmt = $this->kon->prepare($query);
        $stmt->bindParam(1, $this->nim);
        
        $stmt->execute();
        $row = $stmt->fetch(PDO::FETCH_ASSOC);

        // memasukkan nilai ke object      
        $this->nama = $row['nama'];
        $this->tempat_lahir = $row['tempat_lahir'];
        $this->jenis_kelamin = $row['jenis_kelamin'];
        $this->tanggal_lahir = $row['tanggal_lahir'];
        $this->alamat = $row['alamat'];
    }
    
    //fungsi input data mahasiswa
    function input_mhs()
    {        
        $query = "INSERT INTO
                " . $this->tabel . "
            SET
               nim=:nim, nama=:nama, jenis_kelamin=:jenis_kelamin, 
               tempat_lahir=:tempat_lahir, tanggal_lahir=:tanggal_lahir, 
               alamat=:alamat";

        $stmt = $this->kon->prepare($query);     
        $stmt->bindParam('nim', $this->nim);
        $stmt->bindParam('nama', $this->nama);
        $stmt->bindParam('jenis_kelamin', $this->jenis_kelamin);
        $stmt->bindParam('tempat_lahir', $this->tempat_lahir);
        $stmt->bindParam('tanggal_lahir', $this->tanggal_lahir);
        $stmt->bindParam('alamat', $this->alamat);
        
        if ($stmt->execute()) {
            return true;
        }
        return false;
    }

    //fungsi updete data mahasiswa
    function update_mhs()
    {        
        $query = "UPDATE
                " . $this->tabel . "
            SET
                nama = :nama,
                tempat_lahir = :tempat_lahir,
                jenis_kelamin = :jenis_kelamin,
                tanggal_lahir = :tanggal_lahir,
                alamat = :alamat
            WHERE
                nim = :nim";
        
        $stmt = $this->kon->prepare($query);

        $stmt->bindParam('nama', $this->nama);
        $stmt->bindParam('tempat_lahir', $this->tempat_lahir);
        $stmt->bindParam('jenis_kelamin', $this->jenis_kelamin);
        $stmt->bindParam('tanggal_lahir', $this->tanggal_lahir);
        $stmt->bindParam('alamat', $this->alamat);
        $stmt->bindParam('nim', $this->nim);
        
        if ($stmt->execute()) {
            return true;
        }

        return false;
    }

    //fungsi delete mahasiswa
    function delete_mhs()
    {        
        $query = "DELETE FROM " . $this->tabel . " WHERE nim = ?";        
        $stmt = $this->kon->prepare($query);
        $stmt->bindParam(1, $this->nim);    
        
        if ($stmt->execute()) {
            return true;
        }
        return false;
    }
}
?>

Selanjutnya kita memerlukan pemanggilan terhadap method di atas. File lengkap dapat di lihat di github indonetsource .

Setelah mempersiapkan ke semua file di atas, silahkan lakukan uji coba CRUD menggunkan postman.

Hasil Testing Rest Api Pada Postman.

1. Get Semua data Mahasiswa

http://localhost/restapiphp/objects/get_mhs.php

belajar REST API get semua data
Get Semua data Mahasiswa

2. GET Mahasiswa By Nim

http://localhost/restapiphp/objects/get_byNim.php?nim=20210003

belajar Rest api get data by id
Get Mahasiswa By Nim

3. Input Mahasiswa

Untuk input kita gunakan format raw pada menu body dan send data ke url

http://localhost/restapiphp/objects/input_mhs.php

rest input data
Input Mahasiswa

Respon saat input failed

belajar rest api respone failed
Respon failed

input sukses

resone rest input sukses....
Respone success

4. Update Mahasiswa

http://localhost/restapiphp/objects/update_mhs.php

updat data mahasiswa
Rest Update

5. Delete Mahasiswa

http://localhost/restapiphp/objects/delete_mhs.php

rest delete mahasiswa
Rest Delete Mahasiswa

Penutup…

Itulah keseluruhan file yang harus kita selesaikan dalam tutorial belajar rest api ini. Teman-teman dapat membuat dan menggembangkan sendiri setelah mencoba membuat file rest di atas.

Leave a comment