Satu Program, Empat Operasi: CRUD Python dengan PyMySQL

belajar Python dari dasar

Mengelola data merupakan salah satu kebutuhan utama dalam pengembangan aplikasi.

Hampir setiap aplikasi membutuhkan fitur untuk menambahkan data, menampilkan data, mengubah data, dan menghapus data.

Empat proses tersebut dikenal dengan istilah CRUD, yaitu Create, Read, Update, dan Delete.

Dengan menggunakan Python, kita dapat membuat aplikasi CRUD yang terhubung langsung dengan database MySQL.

Salah satu library yang dapat digunakan untuk menghubungkan Python dengan MySQL adalah PyMySQL.

Pada artikel ini, kita akan membuat sebuah program CRUD Python dengan PyMySQL yang dapat digunakan untuk mengelola data mahasiswa.

Program dibuat dalam bentuk sederhana sehingga konsepnya mudah dipahami dan dapat dikembangkan menjadi aplikasi yang lebih besar.

Apa Itu CRUD?

CRUD merupakan singkatan dari empat operasi utama dalam pengelolaan data:

  • Create digunakan untuk menambahkan data baru.
  • Read digunakan untuk mengambil atau menampilkan data.
  • Update digunakan untuk mengubah data yang sudah tersimpan.
  • Delete digunakan untuk menghapus data.

Keempat operasi tersebut merupakan bagian penting dari aplikasi yang menggunakan database.

Sebagai contoh, dalam aplikasi data mahasiswa, Create digunakan ketika kita memasukkan mahasiswa baru.

Read digunakan untuk menampilkan daftar mahasiswa. Update digunakan ketika ingin memperbaiki nama atau program studi, sedangkan Delete digunakan untuk menghapus data mahasiswa.

Dengan menggabungkan Python, MySQL, dan PyMySQL, keempat operasi tersebut dapat dijalankan melalui satu program.

Apa Itu PyMySQL?

PyMySQL adalah library Python yang digunakan untuk berkomunikasi dengan database MySQL atau MariaDB.

Dengan PyMySQL, program Python dapat melakukan berbagai aktivitas terhadap database, seperti membuat koneksi, menjalankan query SQL, mengambil data, memasukkan data, memperbarui data, dan menghapus data.

Untuk menggunakan dan mengakses PyMySQL, library tersebut perlu dipasang terlebih dahulu menggunakan pip.

Buka Command Prompt atau Terminal, kemudian jalankan:

pip install pymysql

Jika proses instalasi berhasil, PyMySQL sudah dapat digunakan dalam program Python.

Menyiapkan Database MySQL

Sebelum membuat program CRUD, kita perlu menyiapkan database terlebih dahulu.

Pada contoh ini kita menggunakan database bernama db_python dan tabel mahasiswa.

Jalankan SQL berikut melalui phpMyAdmin, MySQL client, atau aplikasi database lainnya:

CREATE DATABASE db_python;

USE db_python;

CREATE TABLE mahasiswa (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama VARCHAR(100) NOT NULL,
    nim VARCHAR(20) NOT NULL,
    jurusan VARCHAR(100) NOT NULL
);
CRUD Python MySQL

Tabel tersebut memiliki empat kolom utama.

id digunakan sebagai identitas setiap data dan dibuat otomatis menggunakan AUTO_INCREMENT. Kolom nama menyimpan nama mahasiswa, nim menyimpan nomor induk mahasiswa, sedangkan jurusan menyimpan program studi.

Membuat Koneksi Python dengan MySQL

Langkah pertama dalam program adalah membuat koneksi ke database.

Contohnya:

import pymysql

db = pymysql.connect(
    host="localhost",
    user="root",
    password="",
    database="db_python"
)

cursor = db.cursor()

print("Koneksi database berhasil!")

Sesuaikan bagian user, password, dan database dengan konfigurasi MySQL yang digunakan pada komputer.

Jika menggunakan Laragon atau XAMPP dengan konfigurasi standar, biasanya MySQL berjalan pada localhost.

Operasi Create: Menambahkan Data

Operasi pertama adalah Create, yaitu memasukkan data baru ke dalam database.

Contohnya:

import pymysql

db = pymysql.connect(
    host="localhost",
    user="root",
    password="",
    database="db_python"
)

cursor = db.cursor()

print("Koneksi database berhasil!")

nama = input("Nama mahasiswa: ")
nim = input("NIM: ")
jurusan = input("Jurusan: ")

sql = """
INSERT INTO mahasiswa (nama, nim, jurusan)
VALUES (%s, %s, %s)
"""

cursor.execute(sql, (nama, nim, jurusan))
db.commit()

print("Data berhasil ditambahkan!")

Perintah INSERT INTO digunakan untuk memasukkan data ke tabel.

Pada PyMySQL, parameter %s digunakan untuk memberikan nilai dari Python ke query SQL. Cara ini lebih baik dibandingkan menggabungkan input pengguna langsung ke dalam string SQL.

Setelah menjalankan INSERT, kita menggunakan:

db.commit()

commit() diperlukan agar perubahan benar-benar disimpan ke database.

Output dari kode diatas adalah:

CRUD Python MySQL

Operasi Read: Menampilkan Data

Selanjutnya adalah Read, yaitu mengambil data dari database.

Gunakan kode berikut:

sql = "SELECT * FROM mahasiswa"

cursor.execute(sql)

data = cursor.fetchall()

for mahasiswa in data:
    print(mahasiswa)

SELECT * FROM mahasiswa digunakan untuk mengambil seluruh data dari tabel mahasiswa.

Sedangkan fetchall() digunakan untuk mengambil seluruh hasil query.

Kita juga dapat menampilkan data dengan format yang lebih rapi:

for mahasiswa in data:
    print(
        f"ID: {mahasiswa[0]} | "
        f"Nama: {mahasiswa[1]} | "
        f"NIM: {mahasiswa[2]} | "
        f"Jurusan: {mahasiswa[3]}"
    )

Dengan cara tersebut, data akan lebih mudah dibaca melalui terminal.

Operasi Update: Mengubah Data

Data yang sudah tersimpan terkadang perlu diperbaiki. Untuk kebutuhan tersebut kita menggunakan operasi Update.

Contohnya:

id_mahasiswa = input("Masukkan ID mahasiswa: ")
nama = input("Nama baru: ")
nim = input("NIM baru: ")
jurusan = input("Jurusan baru: ")

sql = """
UPDATE mahasiswa
SET nama=%s, nim=%s, jurusan=%s
WHERE id=%s
"""

cursor.execute(
    sql,
    (nama, nim, jurusan, id_mahasiswa)
)

db.commit()

print("Data berhasil diperbarui!")

Query UPDATE digunakan untuk mengubah data yang sudah ada.

Bagian WHERE id=%s sangat penting karena menentukan data mana yang akan diperbarui. Tanpa WHERE, seluruh baris pada tabel dapat ikut berubah.

Operasi Delete: Menghapus Data

Operasi terakhir adalah Delete.

Untuk menghapus data mahasiswa berdasarkan ID, gunakan:

id_mahasiswa = input("Masukkan ID mahasiswa yang ingin dihapus: ")

sql = "DELETE FROM mahasiswa WHERE id=%s"

cursor.execute(sql, (id_mahasiswa,))
db.commit()

print("Data berhasil dihapus!")

Perintah DELETE akan menghapus data berdasarkan ID yang diberikan.

Sama seperti UPDATE, penggunaan WHERE sangat penting agar program tidak menghapus seluruh isi tabel secara tidak sengaja.

Menggabungkan CRUD dalam Satu Program

Setelah memahami masing-masing operasi, kita dapat menggabungkannya menjadi sebuah program sederhana berbasis menu.

Contohnya:

import pymysql

db = pymysql.connect(
    host="localhost",
    user="root",
    password="",
    database="db_python"
)

cursor = db.cursor()


def tampilkan_data():
    cursor.execute("SELECT * FROM mahasiswa")
    data = cursor.fetchall()

    print("\n=== DATA MAHASISWA ===")

    if not data:
        print("Belum ada data.")
        return

    for mahasiswa in data:
        print(
            f"ID: {mahasiswa[0]} | "
            f"Nama: {mahasiswa[1]} | "
            f"NIM: {mahasiswa[2]} | "
            f"Jurusan: {mahasiswa[3]}"
        )


def tambah_data():
    nama = input("Nama: ")
    nim = input("NIM: ")
    jurusan = input("Jurusan: ")

    sql = """
    INSERT INTO mahasiswa (nama, nim, jurusan)
    VALUES (%s, %s, %s)
    """

    cursor.execute(sql, (nama, nim, jurusan))
    db.commit()

    print("Data berhasil ditambahkan.")


def ubah_data():
    id_mahasiswa = input("ID mahasiswa: ")
    nama = input("Nama baru: ")
    nim = input("NIM baru: ")
    jurusan = input("Jurusan baru: ")

    sql = """
    UPDATE mahasiswa
    SET nama=%s, nim=%s, jurusan=%s
    WHERE id=%s
    """

    cursor.execute(
        sql,
        (nama, nim, jurusan, id_mahasiswa)
    )

    db.commit()

    print("Data berhasil diubah.")


def hapus_data():
    id_mahasiswa = input("ID mahasiswa: ")

    sql = "DELETE FROM mahasiswa WHERE id=%s"

    cursor.execute(sql, (id_mahasiswa,))
    db.commit()

    print("Data berhasil dihapus.")


while True:

    print("\n======================")
    print("      CRUD PYTHON")
    print("======================")
    print("1. Tampilkan Data")
    print("2. Tambah Data")
    print("3. Ubah Data")
    print("4. Hapus Data")
    print("5. Keluar")

    pilihan = input("Pilih menu: ")

    if pilihan == "1":
        tampilkan_data()

    elif pilihan == "2":
        tambah_data()

    elif pilihan == "3":
        ubah_data()

    elif pilihan == "4":
        hapus_data()

    elif pilihan == "5":
        print("Program selesai.")
        break

    else:
        print("Pilihan tidak tersedia.")


cursor.close()
db.close()

Program tersebut sudah memiliki empat operasi utama CRUD dalam satu aplikasi sederhana.

Ketika dijalankan, pengguna akan mendapatkan menu untuk menampilkan, menambahkan, mengubah, dan menghapus data mahasiswa.

Baca juga: Belajar Framework Python: Panduan Mengenal Django, Flask, dan FastAPI

Mengapa CRUD Penting dalam Pemrograman?

Memahami CRUD merupakan salah satu dasar penting ketika mulai mempelajari pemrograman yang berhubungan dengan database.

Konsep CRUD tidak hanya digunakan pada program Python berbasis terminal. Konsep yang sama juga ditemukan pada aplikasi web, sistem informasi sekolah, aplikasi kasir, sistem akademik, sistem inventaris, hingga aplikasi perusahaan.

Misalnya pada sistem akademik, Create digunakan untuk menambahkan mahasiswa, Read untuk melihat data mahasiswa, Update untuk memperbaiki data, dan Delete untuk menghapus data yang tidak diperlukan.

Karena itu, setelah memahami CRUD Python dengan PyMySQL, pengembang dapat melanjutkan ke tahap berikutnya seperti membuat CRUD berbasis GUI menggunakan Tkinter atau membangun aplikasi web menggunakan Flask, Django, maupun framework lainnya.

Kesimpulan

CRUD Python dengan PyMySQL memberikan dasar yang kuat untuk memahami bagaimana sebuah program berkomunikasi dengan database MySQL.

Empat operasi utama, yaitu Create, Read, Update, dan Delete, memungkinkan Python digunakan untuk mengelola data secara langsung. PyMySQL berperan sebagai penghubung antara program Python dengan database MySQL sehingga query SQL dapat dijalankan dari dalam aplikasi.

Pada contoh di atas, kita telah membuat database db_python, tabel mahasiswa, koneksi PyMySQL, serta operasi untuk menambahkan, menampilkan, mengubah, dan menghapus data.

Dari program sederhana tersebut, pengembangan dapat dilanjutkan ke aplikasi yang lebih kompleks dengan menambahkan fitur pencarian, filtering, validasi input, pagination, login pengguna, dan tampilan antarmuka.

Dengan memahami konsep CRUD, Python tidak hanya digunakan untuk membuat program sederhana, tetapi juga dapat menjadi bagian dari aplikasi yang membutuhkan pengelolaan database secara terstruktur.

Artikel lainnya: 5 Library Python Terbaik untuk Data Science

Previous Article

Python dan MySQL: Tutorial Mengakses Database Menggunakan PyMySQL

Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *