<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://lms.onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Membuat_dan_mengonsumsi_API_sederhana_dengan_PHP</id>
	<title>Membuat dan mengonsumsi API sederhana dengan PHP - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://lms.onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Membuat_dan_mengonsumsi_API_sederhana_dengan_PHP"/>
	<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_dan_mengonsumsi_API_sederhana_dengan_PHP&amp;action=history"/>
	<updated>2026-04-21T02:30:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_dan_mengonsumsi_API_sederhana_dengan_PHP&amp;diff=72432&amp;oldid=prev</id>
		<title>Unknown user at 04:40, 7 April 2025</title>
		<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_dan_mengonsumsi_API_sederhana_dengan_PHP&amp;diff=72432&amp;oldid=prev"/>
		<updated>2025-04-07T04:40:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_dan_mengonsumsi_API_sederhana_dengan_PHP&amp;amp;diff=72432&amp;amp;oldid=72431&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
	<entry>
		<id>https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_dan_mengonsumsi_API_sederhana_dengan_PHP&amp;diff=72431&amp;oldid=prev</id>
		<title>Unknown user at 03:21, 7 April 2025</title>
		<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_dan_mengonsumsi_API_sederhana_dengan_PHP&amp;diff=72431&amp;oldid=prev"/>
		<updated>2025-04-07T03:21:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_dan_mengonsumsi_API_sederhana_dengan_PHP&amp;amp;diff=72431&amp;amp;oldid=72328&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
	<entry>
		<id>https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_dan_mengonsumsi_API_sederhana_dengan_PHP&amp;diff=72328&amp;oldid=prev</id>
		<title>Unknown user: Created page with &quot;Berikut adalah modul &quot;Membuat dan Mengonsumsi API Sederhana dengan PHP&quot; sebagai bagian dari mata kuliah Pemrograman Web, dengan fokus pada pengantar RESTful API menggunakan Ub...&quot;</title>
		<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_dan_mengonsumsi_API_sederhana_dengan_PHP&amp;diff=72328&amp;oldid=prev"/>
		<updated>2025-04-06T02:10:49Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Berikut adalah modul &amp;quot;Membuat dan Mengonsumsi API Sederhana dengan PHP&amp;quot; sebagai bagian dari mata kuliah Pemrograman Web, dengan fokus pada pengantar RESTful API menggunakan Ub...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Berikut adalah modul &amp;quot;Membuat dan Mengonsumsi API Sederhana dengan PHP&amp;quot; sebagai bagian dari mata kuliah Pemrograman Web, dengan fokus pada pengantar RESTful API menggunakan Ubuntu 24.04. Modul ini mencakup langkah-langkah praktis dan contoh implementasi tanpa menggunakan alat dari Microsoft.&lt;br /&gt;
&lt;br /&gt;
## Pendahuluan&lt;br /&gt;
&lt;br /&gt;
RESTful API (Representational State Transfer) adalah arsitektur yang memungkinkan komunikasi antara klien dan server melalui protokol HTTP. Dalam modul ini, kita akan membahas cara membuat API sederhana menggunakan PHP dan MySQL, serta bagaimana mengonsumsi API tersebut.&lt;br /&gt;
&lt;br /&gt;
## 1. Persiapan Lingkungan&lt;br /&gt;
&lt;br /&gt;
### 1.1. Instalasi Apache, MySQL, dan PHP&lt;br /&gt;
&lt;br /&gt;
Pastikan sistem Ubuntu 24.04 Anda telah terinstal Apache, MySQL, dan PHP (LAMP stack). Jika belum, Anda dapat menginstalnya dengan perintah berikut:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql -y&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Setelah instalasi, amankan MySQL dengan menjalankan:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo mysql_secure_installation&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### 1.2. Konfigurasi Direktori Proyek&lt;br /&gt;
&lt;br /&gt;
Buat direktori untuk proyek Anda di direktori root web server:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo mkdir /var/www/html/restful-api&lt;br /&gt;
sudo chown -R $USER:$USER /var/www/html/restful-api&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## 2. Membuat Database dan Tabel&lt;br /&gt;
&lt;br /&gt;
### 2.1. Membuat Database&lt;br /&gt;
&lt;br /&gt;
Masuk ke MySQL dan buat database baru:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
mysql -u root -p&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Setelah masuk ke prompt MySQL, jalankan:&lt;br /&gt;
&lt;br /&gt;
```sql&lt;br /&gt;
CREATE DATABASE db_api;&lt;br /&gt;
USE db_api;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### 2.2. Membuat Tabel&lt;br /&gt;
&lt;br /&gt;
Buat tabel `products` dengan struktur berikut:&lt;br /&gt;
&lt;br /&gt;
```sql&lt;br /&gt;
CREATE TABLE products (&lt;br /&gt;
    id INT AUTO_INCREMENT PRIMARY KEY,&lt;br /&gt;
    name VARCHAR(100) NOT NULL,&lt;br /&gt;
    description TEXT,&lt;br /&gt;
    price DECIMAL(10, 2) NOT NULL,&lt;br /&gt;
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP&lt;br /&gt;
);&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## 3. Membuat API dengan PHP&lt;br /&gt;
&lt;br /&gt;
### 3.1. Struktur Proyek&lt;br /&gt;
&lt;br /&gt;
Atur struktur direktori proyek Anda sebagai berikut:&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
restful-api/&lt;br /&gt;
├── api&lt;br /&gt;
│   ├── config&lt;br /&gt;
│   │   └── Database.php&lt;br /&gt;
│   ├── objects&lt;br /&gt;
│   │   └── Product.php&lt;br /&gt;
│   ├── product&lt;br /&gt;
│   │   ├── create.php&lt;br /&gt;
│   │   ├── delete.php&lt;br /&gt;
│   │   ├── read.php&lt;br /&gt;
│   │   ├── read_one.php&lt;br /&gt;
│   │   └── update.php&lt;br /&gt;
│   └── index.php&lt;br /&gt;
└── .htaccess&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### 3.2. Konfigurasi Database&lt;br /&gt;
&lt;br /&gt;
Buat file `Database.php` di direktori `api/config` dengan isi berikut:&lt;br /&gt;
&lt;br /&gt;
```php&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class Database {&lt;br /&gt;
    private $host = &amp;quot;localhost&amp;quot;;&lt;br /&gt;
    private $db_name = &amp;quot;db_api&amp;quot;;&lt;br /&gt;
    private $username = &amp;quot;root&amp;quot;;&lt;br /&gt;
    private $password = &amp;quot;&amp;quot;;&lt;br /&gt;
    public $conn;&lt;br /&gt;
&lt;br /&gt;
    public function getConnection() {&lt;br /&gt;
        $this-&amp;gt;conn = null;&lt;br /&gt;
        try {&lt;br /&gt;
            $this-&amp;gt;conn = new PDO(&amp;quot;mysql:host=&amp;quot; . $this-&amp;gt;host . &amp;quot;;dbname=&amp;quot; . $this-&amp;gt;db_name, $this-&amp;gt;username, $this-&amp;gt;password);&lt;br /&gt;
            $this-&amp;gt;conn-&amp;gt;exec(&amp;quot;set names utf8&amp;quot;);&lt;br /&gt;
        } catch (PDOException $exception) {&lt;br /&gt;
            echo &amp;quot;Koneksi error: &amp;quot; . $exception-&amp;gt;getMessage();&lt;br /&gt;
        }&lt;br /&gt;
        return $this-&amp;gt;conn;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### 3.3. Membuat Model Produk&lt;br /&gt;
&lt;br /&gt;
Buat file `Product.php` di direktori `api/objects` dengan isi berikut:&lt;br /&gt;
&lt;br /&gt;
```php&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class Product {&lt;br /&gt;
    private $conn;&lt;br /&gt;
    private $table_name = &amp;quot;products&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    public $id;&lt;br /&gt;
    public $name;&lt;br /&gt;
    public $description;&lt;br /&gt;
    public $price;&lt;br /&gt;
    public $created_at;&lt;br /&gt;
&lt;br /&gt;
    public function __construct($db) {&lt;br /&gt;
        $this-&amp;gt;conn = $db;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function read() {&lt;br /&gt;
        $query = &amp;quot;SELECT id, name, description, price, created_at FROM &amp;quot; . $this-&amp;gt;table_name . &amp;quot; ORDER BY created_at DESC&amp;quot;;&lt;br /&gt;
        $stmt = $this-&amp;gt;conn-&amp;gt;prepare($query);&lt;br /&gt;
        $stmt-&amp;gt;execute();&lt;br /&gt;
        return $stmt;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function create() {&lt;br /&gt;
        $query = &amp;quot;INSERT INTO &amp;quot; . $this-&amp;gt;table_name . &amp;quot; SET name=:name, description=:description, price=:price&amp;quot;;&lt;br /&gt;
        $stmt = $this-&amp;gt;conn-&amp;gt;prepare($query);&lt;br /&gt;
&lt;br /&gt;
        $this-&amp;gt;name = htmlspecialchars(strip_tags($this-&amp;gt;name));&lt;br /&gt;
        $this-&amp;gt;description = htmlspecialchars(strip_tags($this-&amp;gt;description));&lt;br /&gt;
        $this-&amp;gt;price = htmlspecialchars(strip_tags($this-&amp;gt;price));&lt;br /&gt;
&lt;br /&gt;
        $stmt-&amp;gt;bindParam(&amp;quot;:name&amp;quot;, $this-&amp;gt;name);&lt;br /&gt;
        $stmt-&amp;gt;bindParam(&amp;quot;:description&amp;quot;, $this-&amp;gt;description);&lt;br /&gt;
        $stmt-&amp;gt;bindParam(&amp;quot;:price&amp;quot;, $this-&amp;gt;price);&lt;br /&gt;
&lt;br /&gt;
        if ($stmt-&amp;gt;execute()) {&lt;br /&gt;
            return true;&lt;br /&gt;
        }&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function readOne() {&lt;br /&gt;
        $query = &amp;quot;SELECT id, name, description, price, created_at FROM &amp;quot; . $this-&amp;gt;table_name . &amp;quot; WHERE id = ? LIMIT 0,1&amp;quot;;&lt;br /&gt;
        $stmt = $this-&amp;gt;conn-&amp;gt;prepare($query);&lt;br /&gt;
        $stmt-&amp;gt;bindParam(1, $this-&amp;gt;id);&lt;br /&gt;
        $stmt-&amp;gt;execute();&lt;br /&gt;
&lt;br /&gt;
        $row = $stmt-&amp;gt;fetch(PDO::FETCH_ASSOC);&lt;br /&gt;
        if ($row) {&lt;br /&gt;
            $this-&amp;gt;name = $row[&amp;#039;name&amp;#039;];&lt;br /&gt;
            $this-&amp;gt;description = $row[&amp;#039;description&amp;#039;];&lt;br /&gt;
            $this-&amp;gt;price = $row[&amp;#039;price&amp;#039;];&lt;br /&gt;
            $this-&amp;gt;created_at = $row[&amp;#039;created_at&amp;#039;];&lt;br /&gt;
            return true;&lt;br /&gt;
        }&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function update() {&lt;br /&gt;
        $query = &amp;quot;UPDATE &amp;quot; . $this-&amp;gt;table_name . &amp;quot; SET name = :name, description = :description, price = :price WHERE id = :id&amp;quot;;&lt;br /&gt;
        $stmt = $this-&amp;gt;conn-&amp;gt;prepare($query);&lt;br /&gt;
&lt;br /&gt;
        $this-&amp;gt;name = htmlspecialchars(strip_tags($this-&amp;gt;name));&lt;br /&gt;
        $this-&amp;gt;description = htmlspecialchars(strip_tags($this-&amp;gt;description));&lt;br /&gt;
        $this-&amp;gt;price = htmlspecialchars(strip_tags($this-&amp;gt;price));&lt;br /&gt;
        $this-&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Melanjutkan modul sebelumnya tentang &amp;quot;Membuat dan Mengonsumsi API Sederhana dengan PHP&amp;quot; pada mata kuliah Pemrograman Web, berikut adalah langkah-langkah tambahan untuk melengkapi implementasi RESTful API dengan operasi **Update** dan **Delete**, serta cara mengonsumsi API tersebut menggunakan PHP di lingkungan Ubuntu 24.04.&lt;br /&gt;
&lt;br /&gt;
## 4. Menambahkan Operasi Update dan Delete pada API&lt;br /&gt;
&lt;br /&gt;
### 4.1. Endpoint Update (PUT)&lt;br /&gt;
&lt;br /&gt;
Buat file `update.php` di direktori `api/product` dengan isi berikut:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```php&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// Header yang diperlukan&lt;br /&gt;
header(&amp;quot;Access-Control-Allow-Origin: *&amp;quot;);&lt;br /&gt;
header(&amp;quot;Content-Type: application/json; charset=UTF-8&amp;quot;);&lt;br /&gt;
header(&amp;quot;Access-Control-Allow-Methods: PUT&amp;quot;);&lt;br /&gt;
header(&amp;quot;Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Sertakan file yang diperlukan&lt;br /&gt;
include_once &amp;#039;../config/Database.php&amp;#039;;&lt;br /&gt;
include_once &amp;#039;../objects/Product.php&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Dapatkan koneksi database&lt;br /&gt;
$database = new Database();&lt;br /&gt;
$db = $database-&amp;gt;getConnection();&lt;br /&gt;
&lt;br /&gt;
// Persiapkan objek produk&lt;br /&gt;
$product = new Product($db);&lt;br /&gt;
&lt;br /&gt;
// Dapatkan data yang dikirim&lt;br /&gt;
$data = json_decode(file_get_contents(&amp;quot;php://input&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
// Pastikan data yang diperlukan tersedia&lt;br /&gt;
if (!empty($data-&amp;gt;id) &amp;amp;&amp;amp; (!empty($data-&amp;gt;name) || !empty($data-&amp;gt;description) || !empty($data-&amp;gt;price))) {&lt;br /&gt;
    // Set ID produk yang akan diperbarui&lt;br /&gt;
    $product-&amp;gt;id = $data-&amp;gt;id;&lt;br /&gt;
&lt;br /&gt;
    // Set properti produk berdasarkan data yang tersedia&lt;br /&gt;
    if (!empty($data-&amp;gt;name)) {&lt;br /&gt;
        $product-&amp;gt;name = $data-&amp;gt;name;&lt;br /&gt;
    }&lt;br /&gt;
    if (!empty($data-&amp;gt;description)) {&lt;br /&gt;
        $product-&amp;gt;description = $data-&amp;gt;description;&lt;br /&gt;
    }&lt;br /&gt;
    if (!empty($data-&amp;gt;price)) {&lt;br /&gt;
        $product-&amp;gt;price = $data-&amp;gt;price;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Perbarui produk&lt;br /&gt;
    if ($product-&amp;gt;update()) {&lt;br /&gt;
        // Set respons kode 200 - OK&lt;br /&gt;
        http_response_code(200);&lt;br /&gt;
        echo json_encode(array(&amp;quot;message&amp;quot; =&amp;gt; &amp;quot;Produk berhasil diperbarui.&amp;quot;));&lt;br /&gt;
    } else {&lt;br /&gt;
        // Set respons kode 503 - Service Unavailable&lt;br /&gt;
        http_response_code(503);&lt;br /&gt;
        echo json_encode(array(&amp;quot;message&amp;quot; =&amp;gt; &amp;quot;Gagal memperbarui produk.&amp;quot;));&lt;br /&gt;
    }&lt;br /&gt;
} else {&lt;br /&gt;
    // Set respons kode 400 - Bad Request&lt;br /&gt;
    http_response_code(400);&lt;br /&gt;
    echo json_encode(array(&amp;quot;message&amp;quot; =&amp;gt; &amp;quot;Data tidak lengkap.&amp;quot;));&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
**Penjelasan:**&lt;br /&gt;
&lt;br /&gt;
- **Header HTTP:** Menentukan bahwa metode yang diizinkan adalah PUT dan mengatur tipe konten sebagai JSON.&lt;br /&gt;
- **Membaca Input:** Mengambil data JSON yang dikirim oleh klien.&lt;br /&gt;
- **Validasi Data:** Memastikan bahwa ID produk dan setidaknya satu atribut lainnya disertakan dalam permintaan.&lt;br /&gt;
- **Memperbarui Produk:** Memanggil metode `update()` pada objek produk untuk memperbarui data di database.&lt;br /&gt;
&lt;br /&gt;
### 4.2. Endpoint Delete (DELETE)&lt;br /&gt;
&lt;br /&gt;
Buat file `delete.php` di direktori `api/product` dengan isi berikut:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```php&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// Header yang diperlukan&lt;br /&gt;
header(&amp;quot;Access-Control-Allow-Origin: *&amp;quot;);&lt;br /&gt;
header(&amp;quot;Content-Type: application/json; charset=UTF-8&amp;quot;);&lt;br /&gt;
header(&amp;quot;Access-Control-Allow-Methods: DELETE&amp;quot;);&lt;br /&gt;
header(&amp;quot;Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Sertakan file yang diperlukan&lt;br /&gt;
include_once &amp;#039;../config/Database.php&amp;#039;;&lt;br /&gt;
include_once &amp;#039;../objects/Product.php&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Dapatkan koneksi database&lt;br /&gt;
$database = new Database();&lt;br /&gt;
$db = $database-&amp;gt;getConnection();&lt;br /&gt;
&lt;br /&gt;
// Persiapkan objek produk&lt;br /&gt;
$product = new Product($db);&lt;br /&gt;
&lt;br /&gt;
// Dapatkan ID produk yang akan dihapus&lt;br /&gt;
$data = json_decode(file_get_contents(&amp;quot;php://input&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
// Pastikan ID produk tersedia&lt;br /&gt;
if (!empty($data-&amp;gt;id)) {&lt;br /&gt;
    // Set ID produk yang akan dihapus&lt;br /&gt;
    $product-&amp;gt;id = $data-&amp;gt;id;&lt;br /&gt;
&lt;br /&gt;
    // Hapus produk&lt;br /&gt;
    if ($product-&amp;gt;delete()) {&lt;br /&gt;
        // Set respons kode 200 - OK&lt;br /&gt;
        http_response_code(200);&lt;br /&gt;
        echo json_encode(array(&amp;quot;message&amp;quot; =&amp;gt; &amp;quot;Produk berhasil dihapus.&amp;quot;));&lt;br /&gt;
    } else {&lt;br /&gt;
        // Set respons kode 503 - Service Unavailable&lt;br /&gt;
        http_response_code(503);&lt;br /&gt;
        echo json_encode(array(&amp;quot;message&amp;quot; =&amp;gt; &amp;quot;Gagal menghapus produk.&amp;quot;));&lt;br /&gt;
    }&lt;br /&gt;
} else {&lt;br /&gt;
    // Set respons kode 400 - Bad Request&lt;br /&gt;
    http_response_code(400);&lt;br /&gt;
    echo json_encode(array(&amp;quot;message&amp;quot; =&amp;gt; &amp;quot;ID produk tidak ditemukan.&amp;quot;));&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
**Penjelasan:**&lt;br /&gt;
&lt;br /&gt;
- **Header HTTP:** Menentukan bahwa metode yang diizinkan adalah DELETE dan mengatur tipe konten sebagai JSON.&lt;br /&gt;
- **Membaca Input:** Mengambil data JSON yang dikirim oleh klien.&lt;br /&gt;
- **Validasi Data:** Memastikan bahwa ID produk disertakan dalam permintaan.&lt;br /&gt;
- **Menghapus Produk:** Memanggil metode `delete()` pada objek produk untuk menghapus data dari database.&lt;br /&gt;
&lt;br /&gt;
## 5. Mengonsumsi RESTful API Menggunakan PHP&lt;br /&gt;
&lt;br /&gt;
Untuk mengonsumsi RESTful API yang telah dibuat, kita dapat menggunakan ekstensi cURL di PHP. Berikut adalah contoh bagaimana melakukan operasi **GET**, **POST**, **PUT**, dan **DELETE** menggunakan cURL.&lt;br /&gt;
&lt;br /&gt;
### 5.1. Konfigurasi cURL&lt;br /&gt;
&lt;br /&gt;
Buat file `api_client.php` dengan fungsi berikut untuk memanggil API:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```php&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
function callAPI($method, $url, $data = false) {&lt;br /&gt;
    $curl = curl_init();&lt;br /&gt;
&lt;br /&gt;
    switch (strtoupper($method)) {&lt;br /&gt;
        case &amp;quot;POST&amp;quot;:&lt;br /&gt;
            curl_setopt($curl, CURLOPT_POST, 1);&lt;br /&gt;
            if ($data)&lt;br /&gt;
                curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));&lt;br /&gt;
            break;&lt;br /&gt;
        case &amp;quot;PUT&amp;quot;:&lt;br /&gt;
            curl_setopt($curl, CURLOPT_CUSTOMREQUEST, &amp;quot;PUT&amp;quot;);&lt;br /&gt;
            if ($data)&lt;br /&gt;
                curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));&lt;br /&gt;
            break;&lt;br /&gt;
        case &amp;quot;DELETE&amp;quot;:&lt;br /&gt;
            curl_setopt($curl, CURLOPT_CUSTOMREQUEST, &amp;quot;DELETE&amp;quot;);&lt;br /&gt;
            if ($data)&lt;br /&gt;
                curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));&lt;br /&gt;
            break;&lt;br /&gt;
        default: // GET&lt;br /&gt;
            if ($data)&lt;br /&gt;
                $url = sprintf(&amp;quot;%s?%s&amp;quot;, $url, http_build_query($data));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Opsi umum&lt;br /&gt;
    curl_setopt($curl, CURLOPT_URL, $url);&lt;br /&gt;
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;
    curl_setopt($curl, CURLOPT_HTTPHEADER, array(&lt;br /&gt;
        &amp;#039;Content-Type: application/json&amp;#039;,&lt;br /&gt;
    ));&lt;br /&gt;
&lt;br /&gt;
    $result&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>