Mengolah data dari database merupakan salah satu keterampilan penting dalam pemrograman Python.
Selain melakukan operasi CRUD di Python, programmer juga perlu memahami cara memindahkan data dari database ke format file yang mudah digunakan oleh aplikasi lain.
Salah satu format yang paling sering digunakan adalah CSV (Comma-Separated Values).
Pada artikel ini, kita akan membahas cara export data database MySQL ke CSV menggunakan Python, mulai dari persiapan database, instalasi library, penulisan kode program, hingga proses mengekspor data dari tabel tertentu.
Sebagai contoh, kita akan menggunakan database bernama db_python dengan dua tabel, yaitu mahasiswa dan jurusan.
Tabel mahasiswa:

Tabel jurusan:

Tutorial ini cocok untuk pemula yang sedang belajar Python, SQL, dan pengolahan data menggunakan database.
Wajib pelajari: Tutorial Mengakses Database Menggunakan PyMySQL
1. Apa Itu Export Database ke CSV?
Export database ke CSV adalah proses mengambil data dari database, kemudian menyimpannya ke dalam file teks dengan format tabel.
Setiap kolom dipisahkan menggunakan karakter tertentu, biasanya tanda koma, sedangkan setiap baris mewakili satu record.
File CSV memiliki beberapa kelebihan, antara lain:
- Dapat dibuka menggunakan Microsoft Excel, Google Sheets, dan aplikasi spreadsheet lainnya.
- Mudah diproses kembali menggunakan Python.
- Dapat digunakan untuk pertukaran data antarsistem.
- Memudahkan pembuatan laporan dan dokumentasi data.
- Tidak memerlukan aplikasi database untuk membaca isi file.
Misalnya, data mahasiswa yang tersimpan di MySQL dapat diekspor menjadi mahasiswa.csv. File tersebut kemudian dapat digunakan untuk membuat laporan nilai atau dibagikan kepada pihak lain.
2. Persiapan Python dan MySQL
Sebelum membuat program, pastikan MySQL sudah berjalan dan database db_python tersedia. Kamu dapat memeriksa database dan tabel melalui phpMyAdmin.
Selanjutnya, instal library mysql-connector-python melalui terminal atau Command Prompt:
pip install mysql-connector-python
Library ini digunakan untuk menghubungkan program Python dengan MySQL dan menjalankan perintah SQL.
Kita juga akan menggunakan modul bawaan Python bernama csv. Modul tersebut tidak perlu diinstal karena sudah tersedia pada instalasi Python standar.
3. Export Seluruh Data Tabel mahasiswa ke CSV
Langkah pertama adalah mengekspor seluruh data mahasiswa ke dalam file mahasiswa.csv.
Buat folder baru dan buat file Python dengan nama index.py, kemudian masukkan kode berikut:
import mysql.connector
import csv
# Koneksi ke database MySQL
koneksi = mysql.connector.connect(
host="localhost",
user="root",
password="",
database="db_python"
)
cursor = koneksi.cursor()
# Mengambil seluruh data mahasiswa
cursor.execute("""
SELECT id, nama, nim, nilai, id_jurusan
FROM mahasiswa
""")
data = cursor.fetchall()
# Mengambil nama kolom dari hasil query
nama_kolom = [kolom[0] for kolom in cursor.description]
# Menulis data ke file CSV
with open(
"mahasiswa.csv",
mode="w",
newline="",
encoding="utf-8-sig"
) as file:
writer = csv.writer(file)
writer.writerow(nama_kolom)
writer.writerows(data)
# Menutup koneksi
cursor.close()
koneksi.close()
print("Data mahasiswa berhasil diekspor ke CSV!")
Catatan: Sesuaikan user dan password dengan konfigurasi MySQL di komputer kamu. Pada instalasi lokal tertentu, pengguna root mungkin menggunakan password kosong, tetapi konfigurasi ini tidak berlaku untuk semua komputer.
Penjelasan kode
mysql.connector.connect()digunakan untuk menghubungkan Python dengan database MySQL.cursor.execute()menjalankan perintah SQL untuk mengambil data.fetchall()mengambil seluruh baris hasil query.cursor.descriptionmenyediakan informasi tentang nama kolom hasil query.csv.writer()membuat objek untuk menulis data ke CSV.writerow()menulis satu baris, sedangkanwriterows()menulis banyak baris sekaligus.encoding="utf-8-sig"membantu Excel mengenali karakter UTF-8 dengan lebih baik.newline=""mencegah munculnya baris kosong tambahan pada sejumlah lingkungan.
Jalankan program menggunakan perintah berikut:
python export_mahasiswa.py
atau bisa klik tombol Run di visual studio code, jika berhasil maka akan muncul pesan “Data mahasiswa berhasil diekspor ke CSV!” dan muncul file baru dengan nama mahasiswa.csv.

Jika file mahasiswa.csv dibuka maka ada isi data tabel mahasiswa.

4. Export Data Tabel jurusan ke CSV
Selain data mahasiswa, kita dapat mengekspor data jurusan secara terpisah. Cara ini berguna jika data dari setiap tabel ingin disimpan dalam file masing-masing.
Baca juga: 5 Library Python Terbaik untuk Data Science
Buat file export_jurusan.py dengan kode berikut:
import mysql.connector
import csv
koneksi = mysql.connector.connect(
host="localhost",
user="root",
password="",
database="db_python"
)
cursor = koneksi.cursor()
cursor.execute("""
SELECT id, nama_jurusan
FROM jurusan
ORDER BY id ASC
""")
data = cursor.fetchall()
nama_kolom = [kolom[0] for kolom in cursor.description]
with open(
"jurusan.csv",
mode="w",
newline="",
encoding="utf-8-sig"
) as file:
writer = csv.writer(file)
writer.writerow(nama_kolom)
writer.writerows(data)
cursor.close()
koneksi.close()
print("Data jurusan berhasil diekspor ke CSV!")
Jika berhasil:


Perintah ORDER BY id ASC memastikan data jurusan ditulis berdasarkan ID dari yang terkecil hingga terbesar.
Setelah program dijalankan, kamu akan mendapatkan file jurusan.csv yang berisi daftar jurusan beserta ID-nya.
5. Export Data Mahasiswa Beserta Nama Jurusan Menggunakan JOIN
Pada contoh sebelumnya, kolom id_jurusan masih berupa angka. Agar hasil CSV lebih mudah dibaca, kita dapat menggabungkan tabel mahasiswa dan jurusan menggunakan SQL JOIN.
Dengan cara ini, file CSV akan menampilkan nama jurusan secara langsung tanpa harus mencocokkan ID secara manual.
Gunakan kode berikut:
import mysql.connector
import csv
koneksi = mysql.connector.connect(
host="localhost",
user="root",
password="",
database="db_python"
)
cursor = koneksi.cursor()
query = """
SELECT
m.id,
m.nama,
m.nim,
m.nilai,
j.nama_jurusan
FROM mahasiswa AS m
INNER JOIN jurusan AS j
ON m.id_jurusan = j.id
ORDER BY m.id ASC
"""
cursor.execute(query)
data = cursor.fetchall()
nama_kolom = [kolom[0] for kolom in cursor.description]
with open(
"mahasiswa_dan_jurusan.csv",
mode="w",
newline="",
encoding="utf-8-sig"
) as file:
writer = csv.writer(file)
writer.writerow(nama_kolom)
writer.writerows(data)
cursor.close()
koneksi.close()
print("Data mahasiswa dan jurusan berhasil diekspor!")
Output data CSV:

6. Export Data Tertentu Berdasarkan Kondisi
Python juga dapat mengekspor data berdasarkan kriteria tertentu. Misalnya, kita hanya ingin mengekspor mahasiswa yang memiliki nilai minimal 80.
Contoh program:
import mysql.connector
import csv
koneksi = mysql.connector.connect(
host="localhost",
user="root",
password="",
database="db_python"
)
cursor = koneksi.cursor()
cursor.execute("""
SELECT id, nama, nim, nilai
FROM mahasiswa
WHERE nilai >= %s
ORDER BY nilai DESC
""", (80,))
data = cursor.fetchall()
nama_kolom = [kolom[0] for kolom in cursor.description]
with open(
"mahasiswa_lulus.csv",
mode="w",
newline="",
encoding="utf-8-sig"
) as file:
writer = csv.writer(file)
writer.writerow(nama_kolom)
writer.writerows(data)
cursor.close()
koneksi.close()
print("Data mahasiswa dengan nilai minimal 80 berhasil diekspor!")
Output:

Pada contoh tersebut, WHERE nilai >= %s digunakan untuk menyaring data berdasarkan nilai. Parameter (80,) dikirim terpisah dari query agar nilai dapat diproses sebagai parameter SQL, bukan digabungkan langsung ke string query.
Teknik ini berguna untuk membuat laporan mahasiswa berprestasi, laporan mahasiswa berdasarkan jurusan, atau laporan dengan kriteria tertentu.
Artikel lainnya: Satu Program, Empat Operasi: CRUD Python dengan PyMySQL
Kesimpulan
Export data database MySQL ke CSV menggunakan Python merupakan teknik yang bermanfaat untuk membuat laporan, memindahkan data, dan melakukan analisis lebih lanjut.
Dengan library mysql-connector-python dan modul csv, proses tersebut dapat dilakukan menggunakan beberapa langkah sederhana.
Pada database db_python, kita telah mempraktikkan cara mengekspor tabel mahasiswa, mengekspor tabel jurusan, menggabungkan kedua tabel menggunakan JOIN, serta mengekspor data berdasarkan kondisi tertentu.
Setelah memahami contoh-contoh tersebut, kamu dapat mengembangkannya menjadi program yang memiliki pilihan tabel, filter data, pengurutan, hingga ekspor laporan secara otomatis.
Dengan menguasai cara export database ke CSV menggunakan Python, kamu akan memiliki keterampilan dasar yang penting untuk pengolahan data, pembuatan laporan, dan pengembangan aplikasi berbasis database.