Tutorial PHP Lanjutan Part 28 : Belajar REST API Dengan PHP Dan MySQLi
Tutorial PHP Lanjutan Part 28 : Belajar REST API Dengan PHP Dan MySQLi - Hello everyone selamat datang kembali
diwebsite saya belajarwithib.my.id, pada seri kali ini kita akan masih
mempelajari Belajar REST API Dengan PHP Dan MySQLi.
Tidak
seperti biasanya disini saya membuat tutorial singkat yang kebetulan lewat ide
untuk membuat artikel ini, mungkin sebagian dari kamu belum mengerti, singkat
RESTful API ini adalah sebuah web service atau layanan yang memanfaatkan konsep
metodologi HTTP sebagai media transfer datanya.
Data seperti apa yang ditranfer? Data yang sesuai dengan kebutuhan kamu
biasanya dibentuk didalam sebuah JSON atau XML.
Eits…ditutorial kali ini adalah bentuk sederhana dari REST API yang saya ketahui jadi saya tidak ada bilang bahwa ini adalah contoh yang terbaik sedunia melainkan contoh agar kamu paham konsep dari REST API itu sendiri.
Skuyy
lanjut baca artikelnya!
Belajar REST API Dengan PHP Dan MySQLi
Pengertian REST Dan API Beserta Gambarannya.
REST Adalah
singkatan dari Representational state transfer, yang dimana REST itu sendiri
adalah sebuah software architectural style atau arsitektur berbasis web yang
menggunakan protokol HTTP untuk berkomunikasi data.
API Adalah
singkatan dari Application Programming Interface.
Secara umum dan singkat, API memungkinkan aplikasi berkomunikasi satu sama lain
dan API juga merupakan kumpulan dari subroutine definitions, protocol dan juga
tools untuk berkomunikasi data antar aplikasi software.
Source : https://voximplant.com/blog/what-is-a-rest-api |
Cara kerja
dari RESTful API adalah REST client akan mengakses data/resource ke REST server
dimana masing-masing resource atau data tersebut dibedakan oleh sebuah global
ID atau URIs (Universal Resource Identifiers).
Metode
untuk request HTTP yang biasanya dipakai dalam REST api adalah:
- GET, Membaca atau Mengekstrak resource atau data dari REST server
- POST, Membuat resource atau data baru di REST server
- PUT, Memperbaharui resource atau data di REST server
- DELETE, Menghapus resource atau data dari REST server
Nah
biasanya reponse dari server itu dapat berupa JSON, HTML atau XML.
Membuat REST API Sederhana Dengan PHP Dan MySQLi
Saya rasa
kamu sudah mengerti mengenai REST API dan bagaimana cara kerjanya, sekarang
kita lanjut praktek mengenai REST API ini.
Disini saya
praktek menggunakan PHP versi 7 dan MySQLi versi 7 juga, apabila kalian praktek
tidak berhasil sesuai hasil seperti toturial ini mungkin karena perbedaan versi
dari PHP itu sendiri.
Membuat Database Untuk Menampung Data
Seperti
biasanya, siapkan database dengan nama “belajarwithib” lalu kamu bisa membuat
table didalamnya dengan nama “buku” setelah itu didalam table “buku” buat field
seperti contoh dibawah.
Jika sudah mulailah masukan data asal-asal saja yang penting ada dulu datanya tapi jika kamu ingin sama seperti apa yang saya buat silahkan ketik atau copy perintah SQL dibawah ini dan pastekan RUN sendiri.
INSERT INTO `buku` (`id_buku`, `judul`, `isi`, `tahun_terbit`, `cover`) VALUES (NULL, 'MongoDB Untuk Indonesia', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\r\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\r\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\r\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\r\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\r\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.', '2020-12-01', 'https://via.placeholder.com/700x1000.png?text=COVER+BUKU'), (NULL, 'PHP The Right Way (Bahasa Indonesia)', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\r\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\r\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\r\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\r\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\r\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.', '2020-07-13', 'https://via.placeholder.com/700x1000.png?text=COVER+BUKU'), (NULL, 'Database PostgreSQL, Pemrograman Python, dan SMS Gateway', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\r\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\r\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\r\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\r\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\r\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.', '2019-12-02', 'https://via.placeholder.com/700x1000.png?text=COVER+BUKU'), (NULL, 'Free Smalltalk Books, collected by Stéphane Ducasse', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\r\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\r\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\r\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\r\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\r\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.', '2020-10-11', 'https://via.placeholder.com/700x1000.png?text=COVER+BUKU'), (NULL, 'InTech: Computer and Information Science', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\r\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\r\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\r\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\r\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\r\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.', '2021-01-11', 'https://via.placeholder.com/700x1000.png?text=COVER+BUKU'), (NULL, 'InTech: Computer and Information Science', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\r\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\r\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\r\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\r\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\r\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.', '2020-08-17', 'https://via.placeholder.com/700x1000.png?text=COVER+BUKU');
Hasilnya
akan seperti foto dibawah.
Tapi tenang jika kalian malas untuk mengcopy atau mengetik perintah SQL diatas, kalian bisa mendownload file hasil belajar diakhir artikel nanti.
Membuat
database sudah berhasil sekarang kita lanjut untuk mulai ngoding!
Membuat REST API
Setelah
kamu berhasil membuat database untuk menampung datanya, sekarang kita akan
praktek membuat REST APInya syntaxnya sama ketika kamu sudah pernah buat CRUD
namun hanya beberapa saja yang beda karena data yang kita ingin keluarkan
adalah data JSON.
Buatlah new
file dengan nama “index.php” lalu ketikanlah code seperti dibawah ini.
<?php
// Koneksi kedatabase
$host = "localhost";
$user = "root";
$pass = "";
$db = "belajarwithib";
$koneksi = mysqli_connect($host,$user,$pass,$db);
if (!$koneksi) {
die("Koneksi gagal:".mysqli_connect_error());
}
// Mengecek apakah data dari Method GET kosong atau tidak
if (empty($_GET)) {
// Memanggil seluruh data dari table BUKU
$query = mysqli_query($koneksi, "SELECT * FROM buku");
// Membuat array kosong
$data = array();
while ($row = mysqli_fetch_array($query)) {
// Menambahkan array kedalam variabel data
array_push($data, array(
'id' => $row['id_buku'],
'judul' => $row['judul'],
'tanggal' => $row['tahun_terbit']
));
}
// Mengubah format data array menjadi JSON
echo json_encode(array('data' => $data));
}else{
// Jika Method get mendapatkan data ID maka nilainya akan ditampung kedalam variabel ID
$id = $_GET['id'];
// Memanggil seluruh data dari table BUKU berdasarkan variabel ID
$query = mysqli_query($koneksi, "SELECT * FROM buku WHERE id_buku='$id'");
// Membuat array kosong
$data = array();
while ($row = mysqli_fetch_array($query)) {
$data = array(
'id' => $row['id_buku'],
'judul' => $row['judul'],
'tanggal' => $row['tahun_terbit'],
'cover' => $row['cover'],
'isi' => $row['isi']
);
}
// Mengubah format data array menjadi JSON
echo json_encode($data);
}
?>
Penjelasan Singkat
Code dibawah ini merupakan koneksi untuk kita dapat mengakses data yang berada didatabase.
// Koneksi kedatabase
$host = "localhost";
$user = "root";
$pass = "";
$db = "belajarwithib";
$koneksi = mysqli_connect($host,$user,$pass,$db);
if (!$koneksi) {
die("Koneksi gagal:".mysqli_connect_error());
}
Nah kalu code dibawah, kita membuat dulu array yang datanya kosong lalu kita tampung kedalam variable data.
$data = array();
Setelah itu nanti kita menambahkan data kedalam array yang berada didalam variable data dengan menggunakan fungsi array_push() yang fungsi nya untuk menambahkan data array 1 elemen atau lebih.
array_push($data, array(
'id' => $row['id_buku'],
'judul' => $row['judul'],
'tanggal' => $row['tahun_terbit']
));
Jika sudah kita akan menampilkan datanya dalam bentuk JSON, disini kita menggunakan fungsi json_encode() yang berfungsi sebagai merubah array menjadi json
echo json_encode($data);
Tapi kamu bisa membuat array didalam JSON, hal itu sudah saya contohkan pada code dibawah ini.
echo json_encode(array('data' => $data));
jadi didalam JSON ada array dan didalam array ada JSON.
Uji Coba Program
Sekarang kita masuk kedalam tahap pengujian program yang sudah kita buat.
Oiya disini saya menggunakan Ektensi JSON VIEWER dari google chrome jadi tampilannya so pasti berbeda dengan kamu jika tidak menggunakan Ekstensi tersebut.
Tampilan jika pertama kali diakses
Kita mengakses data dari URL dengan menggunakan param ID atau kamu dapat mengakses seperti url ini : http://localhost/bwi/index.php?id=1
Halaman jika data dari URL didapatkan
Pada hasil foto diatas data yang keluar hanya berdasarkan ID yang kamu buat dan datanya hanya berupa JSON
File Pendukung Belajar
Download Source Code Belajar REST API Dengan PHP Dan MySQLi
Semoga Bermanfaat.