Banner - Belajar Python part 12

Belajar Python Part 12: Membuat CRUD pada Python

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.

OperasiKeteranganPerintah SQL
CreateMenambahkan data INSERT INTO
ReadMenampilkan / membaca dataSELECT
UpdateMemperbarui data yang adaUPDATE
DeleteMenghapus dataDELETE FROM
Tabel 1.1 Ringkasan operasi CRUD

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().

Promo Hosting Murah Rumahweb

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.py

Jika berhasil, output yang muncul adalah:

Data berhasil ditambahkan! ID: 1

Note:

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:

output CRUD - belajar python

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.py

Output 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!

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 0 / 5. Vote count: 0

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Amiratur Rafifah

Amiratur Rafifah, atau yang akrab dipanggil Fifah, adalah seorang staf technical support di Rumahweb Indonesia dengan passion besar di dunia pendidikan, teknologi, dan kreativitas. Melalui Journal Rumahweb, Fifah ingin berbagi insight dan solusi teknis, dengan fokus pada penggunaan dan pengembangan Python di lingkungan hosting.