Konsep Dasar RESTful API dan Implementasi dengan Flask

From OnnoWiki
Revision as of 19:16, 7 April 2025 by Onnowpurbo (talk | contribs)
Jump to navigation Jump to search

Berikut adalah contoh modul pembelajaran berjudul **"Konsep Dasar RESTful API dan Implementasinya dengan Flask"**, cocok untuk mahasiswa IT semester awal atau menengah. Materi ini dapat digunakan dalam kelas atau sebagai bagian dari e-learning.

---

      1. 📘 **Modul Pembelajaran**
  1. Konsep Dasar RESTful API dan Implementasi dengan Flask

---

    1. 1. **Deskripsi Singkat**

Modul ini membahas konsep dasar RESTful API, arsitektur serta metode HTTP yang digunakan. Mahasiswa juga akan mempelajari bagaimana membangun RESTful API sederhana menggunakan framework Flask di Python.

---

    1. 2. **Tujuan Pembelajaran**

Setelah mempelajari modul ini, mahasiswa diharapkan mampu: - Memahami konsep REST dan RESTful API. - Menjelaskan metode HTTP (GET, POST, PUT, DELETE). - Mengembangkan RESTful API sederhana menggunakan Flask. - Menguji endpoint API menggunakan tools seperti Postman atau Curl.

---

    1. 3. **Materi Pembelajaran**
      1. 3.1. **Apa itu REST dan RESTful API?**

- **REST (Representational State Transfer)** adalah arsitektur standar komunikasi web berbasis HTTP. - **RESTful API** adalah API yang mengikuti prinsip REST, bersifat stateless dan memanfaatkan metode HTTP standar.

      1. 3.2. **Metode HTTP yang Umum Digunakan**

| Metode | Deskripsi | |--------|----------------------------------------| | GET | Mengambil data dari server | | POST | Mengirim data baru ke server | | PUT | Memperbarui data yang sudah ada | | DELETE | Menghapus data dari server |

      1. 3.3. **Struktur URL RESTful**

Contoh struktur API REST: ``` GET /api/users -> mengambil semua user GET /api/users/1 -> mengambil user dengan ID 1 POST /api/users -> menambahkan user baru PUT /api/users/1 -> memperbarui user dengan ID 1 DELETE /api/users/1 -> menghapus user dengan ID 1 ```

---

    1. 4. **Praktikum: Implementasi RESTful API dengan Flask**
      1. 4.1. **Instalasi Flask**

```bash pip install flask ```

      1. 4.2. **Contoh Program Sederhana**

```python from flask import Flask, jsonify, request

app = Flask(__name__)

  1. Simulasi database

users = [

   {"id": 1, "name": "Andi"},
   {"id": 2, "name": "Budi"}

]

@app.route("/api/users", methods=["GET"]) def get_users():

   return jsonify(users)

@app.route("/api/users/<int:user_id>", methods=["GET"]) def get_user(user_id):

   user = next((u for u in users if u["id"] == user_id), None)
   return jsonify(user) if user else ("User not found", 404)

@app.route("/api/users", methods=["POST"]) def add_user():

   new_user = request.get_json()
   users.append(new_user)
   return jsonify(new_user), 201

@app.route("/api/users/<int:user_id>", methods=["PUT"]) def update_user(user_id):

   updated_data = request.get_json()
   for user in users:
       if user["id"] == user_id:
           user.update(updated_data)
           return jsonify(user)
   return ("User not found", 404)

@app.route("/api/users/<int:user_id>", methods=["DELETE"]) def delete_user(user_id):

   global users
   users = [u for u in users if u["id"] != user_id]
   return ("Deleted", 204)

if __name__ == "__main__":

   app.run(debug=True)

```

---

    1. 5. **Latihan**
      1. Soal 1:

Jelaskan perbedaan antara metode HTTP GET dan POST.

      1. Soal 2:

Tambahkan endpoint baru `/api/users/search?name=andi` untuk mencari user berdasarkan nama.

---

    1. 6. **Penilaian**

Penilaian dapat dilakukan berdasarkan: - Pemahaman konsep REST (20%) - Implementasi API menggunakan Flask (40%) - Penggunaan tools untuk pengujian API seperti Postman (20%) - Jawaban soal latihan (20%)

---

    1. 7. **Referensi**

- Flask Documentation: https://flask.palletsprojects.com/ - RESTful API Tutorial: https://restfulapi.net/

---

Kalau kamu mau, modul ini bisa aku buat jadi file PDF atau versi slide PowerPoint juga. Mau?