Query Database dengan SQLAlchemy
Penjelasan
Setiap class Model punya atribut .query yang menjadi pintu masuk untuk semua operasi baca. Model.query.all() mengambil semua baris, Model.query.get(id) mengambil satu baris berdasar primary key, Model.query.filter_by(kolom=nilai).first() mencari baris pertama yang cocok. Untuk menulis data, kamu buat instance model baru, panggil db.session.add(instance), lalu db.session.commit() untuk benar-benar menyimpan ke database — perubahan tidak permanen sampai commit dipanggil. Update dilakukan dengan mengubah atribut objek yang sudah di-query lalu commit lagi, dan delete lewat db.session.delete(instance) diikuti commit.
Contoh Konsep
# Membaca data
semua_produk = Produk.query.all()
satu_produk = Produk.query.get(1)
murah = Produk.query.filter(Produk.harga < 50000).all()
# Menambah data
baru = Produk(nama='Mouse Wireless', harga=75000)
db.session.add(baru)
db.session.commit()
# Mengubah data
produk = Produk.query.get(1)
produk.harga = 99000
db.session.commit()
# Menghapus data
produk = Produk.query.get(2)
db.session.delete(produk)
db.session.commit()
Praktikum
Lengkapi fungsi untuk menambah produk baru dan menyimpannya ke database.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Bungkus operasi tulis dengan try/except dan db.session.rollback() saat error, supaya session tidak tersangkut di state yang tidak konsisten kalau commit gagal.