Belajar REST API Dengan PHP Dan MySQLi

RESTful API ini adalah sebuah web service atau layanan yang memanfaatkan konsep metodologi HTTP sebagai media transfer datanya. Data seperti apa yang

Belajar REST API Dengan PHP Dan MySQLi

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.

Belajar REST API Dengan PHP Dan MySQLi
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.

Belajar REST API Dengan PHP Dan MySQLi

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.

Belajar REST API Dengan PHP Dan MySQLi

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

Belajar REST API Dengan PHP Dan MySQLi


Kita mengakses data dari URL dengan menggunakan param ID atau kamu dapat mengakses seperti url ini : http://localhost/bwi/index.php?id=1

Belajar REST API Dengan PHP Dan MySQLi

Halaman jika data dari URL didapatkan

Belajar REST API Dengan PHP Dan MySQLi


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.