Difference between revisions of "Membuat dan mengonsumsi API sederhana dengan PHP"

From OnnoWiki
Jump to navigation Jump to search
 
Line 1: Line 1:
Berikut modul lengkap berjudul **"Membuat dan Mengonsumsi API Sederhana dengan PHP di Ubuntu 24.04"**. Modul ini cocok untuk pemula yang ingin belajar dasar API menggunakan PHP dan dijalankan di Ubuntu 24.04.
+
==Tujuan Pembelajaran==
 +
* Memahami konsep dasar REST API.
 +
* Membangun API sederhana dengan PHP (tanpa framework).
 +
* Mengonsumsi (mengakses) API menggunakan PHP dan tools seperti `curl`.
 +
* Menjalankan API di server lokal Ubuntu 24.04 (menggunakan Apache).
  
---
+
==Persiapan Lingkungan==
  
## 🧩 Modul: Membuat dan Mengonsumsi API Sederhana dengan PHP di Ubuntu 24.04
+
'''1. Install Apache, PHP, dan cURL'''
  
### 🎯 Tujuan Pembelajaran
+
sudo apt update
- Memahami konsep dasar REST API.
+
sudo apt install apache2 php libapache2-mod-php php-curl
- Membangun API sederhana dengan PHP (tanpa framework).
 
- Mengonsumsi (mengakses) API menggunakan PHP dan tools seperti `curl`.
 
- Menjalankan API di server lokal Ubuntu 24.04 (menggunakan Apache).
 
  
---
+
'''2. Buat Folder Project'''
  
## 🛠️ Persiapan Lingkungan
+
sudo mkdir -p /var/www/html/simple-api
 +
sudo chown -R $USER:$USER /var/www/html/simple-api
 +
cd /var/www/html/simple-api
  
### 1. Install Apache, PHP, dan cURL
 
```bash
 
sudo apt update
 
sudo apt install apache2 php libapache2-mod-php php-curl
 
```
 
  
### 2. Buat Folder Project
+
==Bagian 1: Membuat API Sederhana==
```bash
 
sudo mkdir -p /var/www/html/simple-api
 
sudo chown -R $USER:$USER /var/www/html/simple-api
 
cd /var/www/html/simple-api
 
```
 
  
---
+
'''1.1 Struktur Direktori'''
  
## 📦 Bagian 1: Membuat API Sederhana
+
simple-api/
 +
├── api.php
 +
└── data.json
  
### 1.1 Struktur Direktori
+
'''1.2 Isi `data.json`'''
```
 
simple-api/
 
├── api.php
 
└── data.json
 
```
 
  
### 1.2 Isi `data.json`
+
<pre>
```json
+
[
[
+
    {"id": 1, "name": "Alice"},
    {"id": 1, "name": "Alice"},
+
    {"id": 2, "name": "Bob"},
    {"id": 2, "name": "Bob"},
+
    {"id": 3, "name": "Charlie"}
    {"id": 3, "name": "Charlie"}
+
]
]
+
</pre>
```
 
  
### 1.3 Isi `api.php`
+
'''1.3 Isi `api.php`'''
```php
 
<?php
 
header('Content-Type: application/json');
 
  
$data = json_decode(file_get_contents('data.json'), true);
+
<pre>
 +
<?php
 +
header('Content-Type: application/json');
 +
 +
$data = json_decode(file_get_contents('data.json'), true);
 +
 +
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
 +
    if (isset($_GET['id'])) {
 +
        $id = intval($_GET['id']);
 +
        foreach ($data as $item) {
 +
            if ($item['id'] === $id) {
 +
                echo json_encode($item);
 +
                exit;
 +
            }
 +
        }
 +
        echo json_encode(["error" => "Data not found"]);
 +
    } else {
 +
        echo json_encode($data);
 +
    }
 +
} else {
 +
    echo json_encode(["error" => "Method not supported"]);
 +
}
 +
</pre>
  
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
+
'''1.4 Akses API via Browser'''
    if (isset($_GET['id'])) {
+
* Semua data: [http://localhost/simple-api/api.php](http://localhost/simple-api/api.php)
        $id = intval($_GET['id']);
+
* Data berdasarkan ID: [http://localhost/simple-api/api.php?id=2](http://localhost/simple-api/api.php?id=2)
        foreach ($data as $item) {
 
            if ($item['id'] === $id) {
 
                echo json_encode($item);
 
                exit;
 
            }
 
        }
 
        echo json_encode(["error" => "Data not found"]);
 
    } else {
 
        echo json_encode($data);
 
    }
 
} else {
 
    echo json_encode(["error" => "Method not supported"]);
 
}
 
```
 
  
### 1.4 Akses API via Browser
 
- Semua data: [http://localhost/simple-api/api.php](http://localhost/simple-api/api.php)
 
- Data berdasarkan ID: [http://localhost/simple-api/api.php?id=2](http://localhost/simple-api/api.php?id=2)
 
  
---
+
==Bagian 2: Mengonsumsi API dengan PHP==
  
## 📥 Bagian 2: Mengonsumsi API dengan PHP
+
'''2.1 File: `consume.php`'''
  
### 2.1 File: `consume.php`
+
<pre>
```php
+
<?php
<?php
+
function getData($url) {
function getData($url) {
+
    $ch = curl_init();
    $ch = curl_init();
+
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_URL, $url);
+
    $result = curl_exec($ch);
    $result = curl_exec($ch);
+
    curl_close($ch);
    curl_close($ch);
+
    return json_decode($result, true);
    return json_decode($result, true);
+
}
}
+
 +
$apiUrl = "http://localhost/simple-api/api.php";
 +
$data = getData($apiUrl);
 +
 +
echo "<h2>Daftar User</h2><ul>";
 +
foreach ($data as $user) {
 +
    echo "<li>{$user['id']} - {$user['name']}</li>";
 +
}
 +
echo "</ul>";
 +
</pre>
  
$apiUrl = "http://localhost/simple-api/api.php";
+
'''2.2 Jalankan di browser'''
$data = getData($apiUrl);
+
* Simpan di `/var/www/html/simple-api/consume.php`
 +
* Akses di browser: [http://localhost/simple-api/consume.php](http://localhost/simple-api/consume.php)
  
echo "<h2>Daftar User</h2><ul>";
 
foreach ($data as $user) {
 
    echo "<li>{$user['id']} - {$user['name']}</li>";
 
}
 
echo "</ul>";
 
```
 
  
### 2.2 Jalankan di browser
+
==Bonus: Uji Coba dengan Terminal==
- Simpan di `/var/www/html/simple-api/consume.php`
 
- Akses di browser: [http://localhost/simple-api/consume.php](http://localhost/simple-api/consume.php)
 
  
---
+
curl http://localhost/simple-api/api.php
 +
curl http://localhost/simple-api/api.php?id=2
  
## 🧪 Bonus: Uji Coba dengan Terminal
+
==Kesimpulan==
```bash
+
* Kamu telah berhasil membuat API sederhana menggunakan file JSON.
curl http://localhost/simple-api/api.php
+
* API ini hanya mendukung method `GET`.
curl http://localhost/simple-api/api.php?id=2
+
* Kamu juga telah belajar cara mengambil data API menggunakan PHP (`curl`).
```
 
  
---
+
Coba membuat versi POST, PUT, DELETE :) ...
  
## 📚 Kesimpulan
+
==Pranala Menarik==
- Kamu telah berhasil membuat API sederhana menggunakan file JSON.
 
- API ini hanya mendukung method `GET`.
 
- Kamu juga telah belajar cara mengambil data API menggunakan PHP (`curl`).
 
  
---
+
* [[Web Programming]]
 
 
Kalau kamu mau versi POST, PUT, DELETE juga, tinggal bilang, nanti kita buatkan lanjutannya ya! Mau dijadikan PDF juga bisa.
 

Latest revision as of 11:40, 7 April 2025

Tujuan Pembelajaran

  • Memahami konsep dasar REST API.
  • Membangun API sederhana dengan PHP (tanpa framework).
  • Mengonsumsi (mengakses) API menggunakan PHP dan tools seperti `curl`.
  • Menjalankan API di server lokal Ubuntu 24.04 (menggunakan Apache).

Persiapan Lingkungan

1. Install Apache, PHP, dan cURL

sudo apt update
sudo apt install apache2 php libapache2-mod-php php-curl

2. Buat Folder Project

sudo mkdir -p /var/www/html/simple-api
sudo chown -R $USER:$USER /var/www/html/simple-api
cd /var/www/html/simple-api


Bagian 1: Membuat API Sederhana

1.1 Struktur Direktori

simple-api/
├── api.php
└── data.json

1.2 Isi `data.json`

 [
     {"id": 1, "name": "Alice"},
     {"id": 2, "name": "Bob"},
     {"id": 3, "name": "Charlie"}
 ]

1.3 Isi `api.php`

 <?php
 header('Content-Type: application/json');
 
 $data = json_decode(file_get_contents('data.json'), true);
 
 if ($_SERVER['REQUEST_METHOD'] === 'GET') {
     if (isset($_GET['id'])) {
         $id = intval($_GET['id']);
         foreach ($data as $item) {
             if ($item['id'] === $id) {
                 echo json_encode($item);
                 exit;
             }
         }
         echo json_encode(["error" => "Data not found"]);
     } else {
         echo json_encode($data);
     }
 } else {
     echo json_encode(["error" => "Method not supported"]);
 }

1.4 Akses API via Browser


Bagian 2: Mengonsumsi API dengan PHP

2.1 File: `consume.php`

 <?php
 function getData($url) {
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch, CURLOPT_URL, $url);
     $result = curl_exec($ch);
     curl_close($ch);
     return json_decode($result, true);
 }
 
 $apiUrl = "http://localhost/simple-api/api.php";
 $data = getData($apiUrl);
 
 echo "<h2>Daftar User</h2><ul>";
 foreach ($data as $user) {
     echo "<li>{$user['id']} - {$user['name']}</li>";
 }
 echo "</ul>";

2.2 Jalankan di browser


Bonus: Uji Coba dengan Terminal

curl http://localhost/simple-api/api.php
curl http://localhost/simple-api/api.php?id=2

Kesimpulan

  • Kamu telah berhasil membuat API sederhana menggunakan file JSON.
  • API ini hanya mendukung method `GET`.
  • Kamu juga telah belajar cara mengambil data API menggunakan PHP (`curl`).

Coba membuat versi POST, PUT, DELETE :) ...

Pranala Menarik