Study
Flask

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.

Editor Latihan

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.