Menjelaskan konsep CRUD dan memetakan tiap operasi ke method HTTP yang sesuai (POST, GET, PUT/PATCH, DELETE).
Tujuan 2
02
Menulis komponen Python yang menjalankan operasi Create, Read, Update, dan Delete terhadap data.
Tujuan 3
03
Menghubungkan antarmuka GUI dengan komponen Python tersebut, lengkap dengan validasi dan penanganan error.
Sub-CPMK Minggu 12: mahasiswa mampu mengintegrasikan antarmuka GUI dengan komponen Python untuk menjalankan operasi CRUD secara utuh dan teruji.
Bagian 1 dari 3
Konsep CRUD & Arsitektur Integrasi
Dari database (P9) dan dummy API (P10) menuju komponen Python nyata yang menjalankan operasi data.
CRUDArsitekturPython
Recap Kilat: Bekal dari Pertemuan Sebelumnya
Dua pertemuan terakhir membangun fondasi yang kita pakai hari ini secara langsung.
Pertemuan 9 — Database
Anda merancang tabel (misalnya mahasiswa, produk, umkm) dengan kolom dan tipe data yang jelas — inilah tempat data CRUD hari ini benar-benar tersimpan.
Pertemuan 10 — Dummy API
Anda mensimulasikan pertukaran data dengan endpoint palsu — hari ini endpoint itu kita ganti dengan komponen Python asli yang membaca & menulis ke database sungguhan.
Intinya: GUI tidak pernah menyentuh database secara langsung — selalu lewat komponen Python yang menjadi perantara resmi.
Apa Itu CRUD? Empat Operasi Dasar Data
Operasi
Method HTTP
Contoh Aksi di Aplikasi
Create — tambah data baru
POST
Mendaftarkan UMKM baru ke sistem
Read — baca / tampilkan data
GET
Menampilkan daftar produk di layar
Update — ubah data yang ada
PUT / PATCH
Mengoreksi alamat toko yang salah ketik
Delete — hapus data
DELETE
Menghapus akun pengguna yang tidak aktif
CRUD adalah singkatan yang mewakili hampir semua kebutuhan pengelolaan data dalam aplikasi bisnis digital — dari e-commerce sampai sistem akademik.
Arsitektur Integrasi: GUI ↔ Python ↔ Database
GUI hanya "meminta" — semua logika & keamanan CRUD hidup di komponen Python, bukan di layar aplikasi.
Mengapa Python Cocok Menjadi Jembatan?
Kemudahan Sintaks
Kode singkat & mudah dibaca, cocok untuk pemula
Framework ringan: Flask untuk membuat endpoint CRUD dalam hitungan baris
Library GUI desktop bawaan: Tkinter
Ekosistem Data
Library database matang: sqlite3, SQLAlchemy
Mudah tersambung ke REST API (Pertemuan 8) yang dikonsumsi React Native
Dipakai luas industri Indonesia: fintech, marketplace, layanan pemerintah
Hari ini kita pakai Flask sebagai kerangka Python untuk menulis fungsi CRUD yang bisa dipanggil dari GUI mana pun.
Bagian 2 dari 3
Membangun Operasi CRUD Langkah demi Langkah
Create • Read • Update • Delete — kode Python nyata yang dijalankan dari GUI.
CreateReadUpdateDelete
CREATE — Menambah Data Baru
@app.route("/umkm", methods=["POST"]) def create_umkm(): data = request.get_json() # simpan ke tabel umkm di database db.execute("INSERT INTO umkm (nama, alamat) VALUES (?, ?)", (data["nama"], data["alamat"])) return {"status": "tersimpan"}, 201
1GUI mengirim data form (nama & alamat UMKM) via POST
2Python menerima data lewat request.get_json()
3Python menjalankan perintah INSERT INTO ke database
4Python mengembalikan status 201 (berhasil dibuat) ke GUI
Baik fetch() di React Native maupun requests.post() di Tkinter, keduanya memanggil endpoint Flask yang sama — satu backend Python melayani dua jenis GUI sekaligus.
Validasi Input & Penanganan Error
@app.route("/umkm", methods=["POST"]) def create_umkm(): data = request.get_json() if not data.get("nama"): return {"error": "nama wajib diisi"}, 400 try: db.execute("INSERT INTO umkm ...", ...) except Exception as e: return {"error": str(e)}, 500
200 / 201
Berhasil
400
Input tidak valid (kesalahan GUI/pengguna)
500
Error di server Python (bukan salah pengguna)
Bagian 3 dari 3
Praktik & Studi Kasus
Menyatukan Create, Read, Update, Delete dalam satu alur aplikasi pendataan UMKM.
Studi KasusDebuggingLatihan
Studi Kasus: Aplikasi Pendataan UMKM End-to-End
1Admin membuka aplikasi → GUI memanggil GET /umkm → layar menampilkan daftar UMKM (Read)
2Admin menekan "Tambah UMKM" → isi form → GUI memanggil POST /umkm (Create)
3Admin menyadari alamat salah ketik → edit → GUI memanggil PUT /umkm/17 (Update)
4UMKM tersebut tutup permanen → admin menekan "Hapus" → GUI memanggil DELETE /umkm/17 (Delete)
5Layar otomatis memanggil ulang GET /umkm → daftar ter-update tanpa admin refresh manual
Kesalahan Umum Integrasi GUI ↔ Python
Gejala
Penyebab Umum
Semua data ikut berubah/terhapus
Lupa klausa WHERE id = ? pada Update/Delete
GUI menampilkan layar kosong
Format JSON respons Python tidak cocok dengan yang diharapkan GUI
Error 500 tanpa pesan jelas
Tidak ada blok try except untuk menangkap error database
Data lama masih tampil setelah Create
GUI tidak memanggil ulang Read setelah operasi berhasil
Kebiasaan baik: uji setiap endpoint CRUD satu per satu (via Postman/browser) sebelum menghubungkannya ke GUI.
Latihan Praktik Terpandu
Tugas hari ini: lengkapi keempat fungsi CRUD (create, read, update, delete) pada proyek database Pertemuan 9 milik kelompok Anda, lalu hubungkan ke GUI aplikasi yang sedang dibangun.
Langkah Kerja
Buka proyek Flask & database dari Pertemuan 9
Tulis 4 endpoint CRUD sesuai pola hari ini
Uji tiap endpoint lewat browser/Postman
Hubungkan ke tombol/form di GUI aplikasi kelompok
Kriteria Selesai
Create menyimpan data baru ke database
Read menampilkan data (dengan paginasi)
Update & Delete hanya menyentuh baris yang dimaksud
Ada validasi input & penanganan error minimal
Waktu praktik: sisa sesi 2. Dampingan dosen & asisten tersedia — bertanya kapan pun menemui kebuntuan.
Ringkasan & Jembatan ke Pertemuan 12
Yang Sudah Anda Kuasai
Konsep CRUD & pemetaannya ke method HTTP
Arsitektur GUI ↔ Python ↔ Database
Menulis keempat fungsi CRUD di Flask
Menghubungkan GUI (React Native & Tkinter) ke endpoint CRUD
Validasi input & penanganan error dasar
Pertemuan 12 Mendatang
Integrasi komponen front-end & back-end dalam satu sistem aplikasi utuh
Menyatukan seluruh potongan (UI, state, navigasi, API, database, CRUD) dari P1–P11
Persiapan menuju evaluasi & debugging proyek akhir (P13–P14)