Pada seri belajar Python part 11 sebelumnya, kita telah mempelajari cara menghubungkan Python ke database. Setelah koneksi berhasil dibuat, langkah berikutnya adalah mulai mengelola data di dalam database tersebut menggunakan operasi dasar yang umum digunakan dalam pengembangan aplikasi, yaitu CRUD.
Dalam belajar python part 12 ini, kita akan belajar membuat CRUD pada Python menggunakan koneksi database yang telah dibuat sebelumnya, sehingga aplikasi dapat mulai berinteraksi langsung dengan data secara lebih dinamis.
Apa itu CRUD?
CRUD adalah singkatan dari Create, Read, Update, dan Delete yaitu operasi dasar pengolahan data. Operasi ini dapat kita gunakan dalam mengembangkan aplikasi Python dan MySQL Connector.
| Operasi | Keterangan | Perintah SQL |
|---|---|---|
| Create | Menambahkan data | INSERT INTO |
| Read | Menampilkan / membaca data | SELECT |
| Update | Memperbarui data yang ada | UPDATE |
| Delete | Menghapus data | DELETE FROM |
Menyiapkan Koneksi Database
Sebelum melakukan operasi CRUD, kita perlu membuat koneksi ke database. Buat file baru bernama crud.py dan tambahkan kode koneksi berikut di bagian awal.
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="toko_online"
)
cursor = db.cursor()Kode di atas membuat koneksi ke database toko_online dan menginisialisasi objek cursor yang akan kita gunakan untuk menjalankan semua query SQL.
Create: Menambahkan Data
Operasi Create digunakan untuk menyimpan data baru ke dalam tabel. Pada Python, kita menggunakan perintah INSERT INTO yang dieksekusi melalui method cursor.execute().
Menambahkan Satu Data
Buat file baru bernama insert.py, kemudian isi dengan kode berikut:
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="toko_online"
)
cursor = db.cursor()
sql = "INSERT INTO produk (nama, harga, stok) VALUES (%s, %s, %s)"
nilai = ("Laptop Gaming", 15000000.00, 10)
cursor.execute(sql, nilai)
db.commit()
print(f"Data berhasil ditambahkan! ID: {cursor.lastrowid}")Jalankan dengan perintah:
$ python3 insert.pyJika berhasil, output yang muncul adalah:
Data berhasil ditambahkan! ID: 1Note:
Setiap operasi yang mengubah data (INSERT, UPDATE, DELETE) harus diakhiri dengan db.commit(). Tanpa perintah ini, perubahan tidak akan tersimpan ke database secara permanen.
Menambahkan Banyak Data Sekaligus
Untuk menyisipkan beberapa data sekaligus secara efisien, gunakan method executemany():
sql = "INSERT INTO produk (nama, harga, stok) VALUES (%s, %s, %s)"
data_produk = [
("Mouse Wireless", 250000.00, 50),
("Keyboard Mekanikal", 750000.00, 30),
("Monitor 24 Inch", 3500000.00, 15),
("Headset Gaming", 450000.00, 25),
]
cursor.executemany(sql, data_produk)
db.commit()
print(f"{cursor.rowcount} data berhasil ditambahkan!")Note:
Selalu gunakan placeholder %s dan passing nilai secara terpisah (bukan string concatenation). Cara ini melindungi aplikasi dari serangan SQL Injection.
Read: Menampilkan Data
Operasi Read digunakan untuk mengambil dan menampilkan data dari tabel. Kita menggunakan perintah SELECT dan tiga method utama untuk mengambil hasilnya.
Menampilkan Semua Data
Buat file select.py untuk menampilkan seluruh data produk:
import mysql.connector
db = mysql.connector.connect(
host="localhost", user="root",
passwd="", database="toko_online"
)
cursor = db.cursor()
cursor.execute("SELECT * FROM produk")
hasil = cursor.fetchall()
print(f"{'ID':<5} {'Nama':<25} {'Harga':>12} {'Stok':>6}")
print("-" * 52)
for baris in hasil:
print(f"{baris[0]}:<5} {baris[1]}:<25} {baris[2]}:>12,.2f} {baris[3]}:>6}")Contoh output yang dihasilkan:
ID Nama Harga Stok
----------------------------------------------------
1 Laptop Gaming 15,000,000.00 10
2 Mouse Wireless 250,000.00 50
3 Keyboard Mekanikal 750,000.00 30
4 Monitor 24 Inch 3,500,000.00 15
5 Headset Gaming 450,000.00 25
Read: Menampilkan Data
Operasi Read digunakan untuk mengambil dan menampilkan data dari tabel. Kita menggunakan perintah SELECT dan tiga method utama untuk mengambil hasilnya.
Menampilkan Semua Data
Buat file select.py untuk menampilkan seluruh data produk:
import mysql.connector
db = mysql.connector.connect(
host="localhost", user="root",
passwd="", database="toko_online"
)
cursor = db.cursor()
cursor.execute("SELECT * FROM produk")
hasil = cursor.fetchall()
print(f"{'ID':<5} {'Nama':<25} {'Harga':>12} {'Stok':>6}")
print("-" * 52)
for baris in hasil:
print(f"{baris[0]}:<5} {baris[1]}:<25} {baris[2]}:>12,.2f} {baris[3]}:>6}")Contoh output yang dihasilkan:

Update: Memperbarui Data
Operasi Update digunakan untuk mengubah nilai data yang sudah ada di tabel. Gunakan perintah UPDATE … SET … WHERE. Tanpa kondisi WHERE, perintah UPDATE akan mengubah seluruh baris di tabel. Pastikan selalu menyertakan kondisi yang spesifik.
Memperbarui Satu Data
Buat file update.py untuk memperbarui harga dan stok produk berdasarkan ID:
import mysql.connector
db = mysql.connector.connect(
host="localhost", user="root",
passwd="", database="toko_online"
)
cursor = db.cursor()
sql = "UPDATE produk SET harga = %s, stok = %s WHERE id = %s"
nilai = (14500000.00, 8, 1)
cursor.execute(sql, nilai)
db.commit()
print(f"{cursor.rowcount} baris berhasil diperbarui.")Jalankan file tersebut:
$ python3 update.pyOutput yang muncul:
1 baris berhasil diperbarui.Delete: Menghapus Data
Operasi Delete digunakan untuk menghapus satu atau lebih baris dari tabel menggunakan perintah DELETE FROM … WHERE.
Menghapus Satu Data
Buat file delete.py untuk menghapus produk berdasarkan ID:
import mysql.connector
db = mysql.connector.connect(
host="localhost", user="root",
passwd="", database="toko_online"
)
cursor = db.cursor()
id_hapus = 5
sql = "DELETE FROM produk WHERE id = %s"
cursor.execute(sql, (id_hapus,))
db.commit()
if cursor.rowcount > 0:
print(f"Produk dengan ID {id_hapus} berhasil dihapus.")
else:
print(f"Produk dengan ID {id_hapus} tidak ditemukan.")Menghapus Data Berdasarkan Kondisi
Kita juga dapat menghapus data berdasarkan kondisi tertentu, misalnya menghapus semua produk dengan stok 0:
cursor.execute("DELETE FROM produk WHERE stok = %s", (0,))
db.commit()
print(f"{cursor.rowcount} produk habis stok berhasil dihapus.")Menyatukan CRUD dalam Satu File
Agar lebih terorganisir, kita dapat menyatukan semua operasi CRUD ke dalam fungsi-fungsi terpisah di satu file dengan nama produk_crud.py. Berikut contoh struktur yang dapat digunakan:
import mysql.connector
def get_connection():
return mysql.connector.connect(
host="localhost", user="root",
passwd="", database="toko_online"
)
# CREATE
def tambah_produk(nama, harga, stok):
db = get_connection()
cursor = db.cursor()
cursor.execute(
"INSERT INTO produk (nama, harga, stok) VALUES (%s, %s, %s)",
(nama, harga, stok)
)
db.commit()
return cursor.lastrowid
# READ
def ambil_semua_produk():
db = get_connection()
cursor = db.cursor()
cursor.execute("SELECT * FROM produk")
return cursor.fetchall()
# UPDATE
def update_harga(id_produk, harga_baru):
db = get_connection()
cursor = db.cursor()
cursor.execute(
"UPDATE produk SET harga = %s WHERE id = %s",
(harga_baru, id_produk)
)
db.commit()
return cursor.rowcount
# DELETE
def hapus_produk(id_produk):
db = get_connection()
cursor = db.cursor()
cursor.execute(
"DELETE FROM produk WHERE id = %s", (id_produk,)
)
db.commit()
return cursor.rowcount
# Contoh penggunaan
if __name__ == "__main__":
id_baru = tambah_produk("SSD 512GB", 850000, 40)
print(f"Produk baru ditambahkan dengan ID: {id_baru}")
semua = ambil_semua_produk()
print(f"Total produk: {len(semua)}")FAQ
Berikut adalah beberapa pertanyaan popular tentang CRUD pada Python.
Apa itu CRUD pada Python?
CRUD adalah singkatan dari Create, Read, Update, dan Delete, yaitu operasi dasar untuk mengelola data pada database menggunakan Python.
Apa fungsi CRUD dalam pengembangan aplikasi?
CRUD digunakan untuk menambahkan, menampilkan, mengubah, dan menghapus data sehingga aplikasi dapat berinteraksi dengan database secara dinamis.
Database apa saja yang bisa digunakan untuk CRUD di Python?
Python dapat digunakan untuk membuat CRUD dengan berbagai database seperti MySQL, PostgreSQL, SQLite, hingga MariaDB.
Apakah Python cocok untuk membuat aplikasi database?
Ya. Python cukup populer untuk pengembangan aplikasi berbasis database karena sintaksnya sederhana, mudah dipelajari, dan memiliki banyak library pendukung.
Penutup
Dalam seri belajar Python part 12 ini, kita telah mempelajari secara lengkap cara melakukan operasi CRUD menggunakan Python dan MySQL Connector. Kita telah belajar bagaimana menambahkan satu data hingga menyusun fungsi-fungsi CRUD yang terorganisir dalam satu file.
Kemampuan CRUD adalah fondasi dari hampir semua aplikasi yang berinteraksi dengan database. Dengan memahaminya, kamu sudah siap untuk membangun aplikasi yang lebih kompleks, seperti sistem manajemen produk, aplikasi kasir, hingga REST API sederhana.
Pada belajar Python part 13, kita akan melanjutkan pembahasan dengan membangun aplikasi CRUD sederhana menggunakan antarmuka berbasis teks (CLI) yang lebih interaktif. Semoga bermanfaat!


