AI Assistant
Detail Karya Portofolio

Integrasi Python Flask dengan Wokwi IoT dan MySql

Faiza Aulia Supriatna Oleh: Faiza Aulia Supriatna

Deskripsi & Detail Proyek

Membuat 3 endpoint dengan method POST, PUT, dan GET yang terhubung ke MySql dengan python

  1. Method GET

Kode ini mendemonstrasikan cara membuat API sederhana menggunakan Python dengan Flask yang terhubung ke database MySQL. API ini memiliki metode GET yang mengambil data dari tabel di MySQL. 

Hasil testing dengan postman:

hasil pengujian endpoint /data menggunakan Postman. Ketika endpoint diakses dengan metode GET, server mengembalikan respons HTTP 200 OK, berisi data dari tabel readings dalam format JSON. Data ini memuat dua kolom, yaitu temperature dan humidity. 

b. Method POST

 bertujuan untuk membuat API yang menerima data suhu (temperature) dan kelembapan (humidity) dari klien, kemudian menyimpan data tersebut ke dalam database MySQL.

Hasil testing dengan postman: 

pengujian endpoint API /data dengan metode POST menggunakan Postman. URL yang digunakan adalah http://10.239.0.123:5000/data, dengan data dalam format JSON yang berisi temperature (25) dan humidity (40). Server merespons dengan kode status 201 Created, menandakan data berhasil ditambahkan ke database, serta mengembalikan JSON berisi id (1), temperature (25), dan humidity (40) sebagai konfirmasi. Pengujian ini memastikan API berfungsi dengan baik dan dapat menyimpan data ke database tanpa pengaturan autentikasi tambahan.

  1. Method PUT

merupakan implementasi endpoint HTTP PUT untuk memperbarui data di database MySQL berdasarkan ID. Endpoint ini menerima parameter data_id dalam URL dan data JSON berisi temperature dan humidity. Koneksi ke database dilakukan menggunakan fungsi connect_db(), dan query SQL UPDATE digunakan untuk memperbarui data. Setelah perubahan dikomit dengan conn.commit(), koneksi ditutup, dan respons JSON berisi data yang diperbarui dikirimkan dengan status HTTP 200.

Hasil testing dengan postman: 

pengujian dengan Postman menunjukkan pengiriman data baru (humidity: 75 dan temperature: 32) ke endpoint http://192.239.5.223:5000/data/1. Respons server menampilkan data yang diperbarui dan status HTTP 200, menandakan keberhasilan. Validasi input, penanganan kesalahan, dan penggunaan environment variables direkomendasikan untuk meningkatkan keamanan dan keandalan aplikasi.

 

 

  1. Simulasi endpoint yang sudah dibuat dengan wokwi

Hasil terminal: 

Hasil terminal menunjukkan bahwa server Flask berhasil berjalan di dua alamat, yaitu http://127.0.0.1:5000 untuk localhost dan http://192.168.1.8:5000 untuk jaringan lokal, memungkinkan akses baik secara lokal maupun dari perangkat lain dalam jaringan yang sama. Aplikasi dijalankan dalam mode debug, yang memberikan kemampuan untuk melacak dan menangani kesalahan selama pengembangan. Debugger dilindungi oleh PIN 101-881-416 sebagai langkah keamanan untuk mencegah akses tidak sah.

Selain itu, terminal mencatat log aktivitas permintaan HTTP yang diterima server. Beberapa permintaan POST ke endpoint /data tercatat dengan waktu yang berdekatan, menunjukkan bahwa API sedang diuji, baik secara manual menggunakan alat seperti Postman maupun secara otomatis melalui skrip pengujian. Setiap permintaan ini berasal dari alamat 127.0.0.1 (localhost), dengan status HTTP 201, yang menandakan bahwa permintaan berhasil diproses dan data baru berhasil dibuat, seperti menyimpan data ke dalam database.

Secara keseluruhan, hasil terminal menunjukkan bahwa server berjalan dengan baik, dan endpoint /data berfungsi sesuai yang diharapkan. Untuk memastikan keberhasilan operasinya, disarankan untuk memverifikasi bahwa data yang dikirim ke endpoint sesuai dengan validasi API dan memeriksa database untuk memastikan data disimpan dengan benar. Tambahan log atau alat debugging dapat membantu memantau detail payload data jika diperlukan.