Membuat dan mengonsumsi API sederhana dengan PHP: Difference between revisions

From OnnoCenterWiki
Jump to navigationJump to search
No edit summary
No edit summary
 
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 04: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