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
//localhost/restapiphp/objects/get_mhs.php
2. GET Mahasiswa By Nim
//localhost/restapiphp/objects/get_byNim.php?nim=20210003
3. Input Mahasiswa
Untuk input kita gunakan format raw pada menu body dan send data ke url
//localhost/restapiphp/objects/input_mhs.php
Respon saat input failed
input sukses
4. Update Mahasiswa
//localhost/restapiphp/objects/update_mhs.php
5. Delete Mahasiswa
//localhost/restapiphp/objects/delete_mhs.php
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.