Praktik: Membuat API untuk manajemen data pengguna
Berikut adalah modul praktik untuk membuat RESTful API guna manajemen data pengguna menggunakan Flask di Ubuntu 24.04. Modul ini dirancang sebagai bagian dari mata kuliah Pemrograman Web dan tidak menggunakan alat dari Microsoft.
- Tujuan Pembelajaran:**
1. Memahami konsep dasar RESTful API. 2. Mampu menginstal dan mengkonfigurasi lingkungan pengembangan Flask di Ubuntu 24.04. 3. Mampu membuat API untuk operasi CRUD (Create, Read, Update, Delete) pada data pengguna. 4. Mampu menguji API menggunakan alat seperti cURL atau Postman.
- Prasyarat:**
- Pemahaman dasar tentang Python dan HTTP. - Akses ke sistem yang menjalankan Ubuntu 24.04. - Koneksi internet untuk menginstal paket yang diperlukan.
- Langkah 1: Menyiapkan Lingkungan Flask**
1. **Perbarui dan tingkatkan sistem:**
```bash sudo apt update sudo apt upgrade ```
2. **Instal Python 3 dan pip:**
```bash sudo apt install python3 python3-pip ```
3. **Instal virtualenv untuk membuat lingkungan virtual:**
```bash sudo apt install python3-venv ```
4. **Buat dan aktifkan lingkungan virtual:**
```bash python3 -m venv env source env/bin/activate ```
5. **Instal Flask dalam lingkungan virtual:**
```bash pip install Flask ```
- Langkah 2: Membuat Aplikasi Flask**
1. **Buat file `app.py` dan tambahkan kode berikut:**
```python from flask import Flask, jsonify, request
app = Flask(__name__)
# Data pengguna sementara users = [ {"id": 1, "name": "Alice", "email": "alice@example.com"}, {"id": 2, "name": "Bob", "email": "bob@example.com"} ]
# Endpoint untuk mendapatkan semua pengguna @app.route('/users', methods=['GET']) def get_users(): return jsonify(users)
# Endpoint untuk mendapatkan pengguna berdasarkan ID @app.route('/users/<int:user_id>', methods=['GET']) def get_user(user_id): user = next((user for user in users if user["id"] == user_id), None) if user is None: return jsonify({"error": "Pengguna tidak ditemukan"}), 404 return jsonify(user)
# Endpoint untuk menambahkan pengguna baru @app.route('/users', methods=['POST']) def create_user(): new_user = { "id": len(users) + 1, "name": request.json.get('name'), "email": request.json.get('email') } users.append(new_user) return jsonify(new_user), 201
# Endpoint untuk memperbarui data pengguna berdasarkan ID @app.route('/users/<int:user_id>', methods=['PUT']) def update_user(user_id): user = next((user for user in users if user["id"] == user_id), None) if user is None: return jsonify({"error": "Pengguna tidak ditemukan"}), 404 user['name'] = request.json.get('name', user['name']) user['email'] = request.json.get('email', user['email']) return jsonify(user)
# Endpoint untuk menghapus pengguna berdasarkan ID @app.route('/users/<int:user_id>', methods=['DELETE']) def delete_user(user_id): global users users = [user for user in users if user["id"] != user_id] return , 204
if __name__ == "__main__": app.run(debug=True) ```
2. **Jalankan aplikasi Flask:**
```bash python app.py ```
Aplikasi akan berjalan di `http://127.0.0.1:5000/`.
- Langkah 3: Menguji API**
1. **Mendapatkan semua pengguna:**
```bash curl -X GET http://127.0.0.1:5000/users ```
2. **Mendapatkan pengguna berdasarkan ID:**
```bash curl -X GET http://127.0.0.1:5000/users/1 ```
3. **Menambahkan pengguna baru:**
```bash curl -X POST http://127.0.0.1:5000/users \ -H "Content-Type: application/json" \ -d '{"name": "Charlie", "email": "charlie@example.com"}' ```
4. **Memperbarui data pengguna:**
```bash curl -X PUT http://127.0.0.1:5000/users/1 \ -H "Content-Type: application/json" \ -d '{"name": "Alice Smith", "email": "alice.smith@example.com"}' ```
5. **Menghapus pengguna:**
```bash curl -X DELETE http://127.0.0.1:5000/users/1 ```
- Catatan Penting:**
- Data pengguna dalam contoh ini disimpan dalam list Python (`users`) yang bersifat sementara. Untuk aplikasi produksi, disarankan menggunakan database seperti SQLite, PostgreSQL, atau MySQL. - Pastikan untuk menambahkan penanganan kesalahan dan validasi data yang memadai dalam aplikasi Anda. - Untuk pengujian yang lebih interaktif, Anda dapat menggunakan alat seperti Postman.
- Referensi Tambahan:**
- Tutorial dari DigitalOcean tentang pembuatan REST API dengan Flask: citeturn0search3 - Dokumentasi resmi Flask: https://flask.palletsprojects.com/
Dengan mengikuti modul ini, diharapkan mahasiswa dapat memahami dan mengimplementasikan RESTful API untuk manajemen data pengguna menggunakan Flask di Ubuntu 24