Berkas CSV dalam Python
CSV merupakan salah satu bentuk berkas yang banyak digunakan untuk menyimpan data dalam bentuk tabel. CSV sering digunakan untuk menyimpan data siswa, daftar nilai, data barang, hasil penelitian, data pelanggan, dan berbagai jenis data lainnya.
Sebelum lebih lanjut mempelajari materi tentang Berkas CSV dalam Python, terlebih dahulu pelajari materi tentang: Paket dalam Python, Fungsi Utama main dalam Python, dan Direktori dalam Python.
Sebelum lebih lanjut mempelajari materi tentang Berkas CSV dalam Python, terlebih dahulu pelajari materi tentang: Paket dalam Python, Fungsi Utama main dalam Python, dan Direktori dalam Python.
Python menyediakan modul bawaan bernama `csv` yang dapat digunakan untuk membaca dan menulis berkas CSV. Modul ini memudahkan pengolahan data tanpa harus memasang pustaka tambahan.
Dengan memahami berkas CSV, pemrogram dapat membuat program yang mampu membaca data dari tabel, mengubah data, menambahkan data baru, serta menyimpan hasil pengolahan kembali ke dalam berkas.
Contoh isi berkas `data.csv`:
Nama, Umur, Kelas
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
Setiap baris menunjukkan satu data. Baris pertama biasanya digunakan sebagai nama kolom, sedangkan baris berikutnya berisi data. Dalam contoh tersebut terdapat tiga kolom:
Data pertama adalah:
Andi, 16, 10A
Artinya:
Sebagai contoh, data dari aplikasi lembar kerja dapat disimpan sebagai CSV kemudian diproses menggunakan Python.
import csv
Setelah modul diimpor, berbagai fungsi dan kelas yang berkaitan dengan CSV dapat digunakan.
Nama, Umur, Kelas
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
Program Python untuk membacanya:
import csv
with open("data.csv", "r") as file:
data = csv.reader(file)
for baris in data:
print(baris)
Hasil:
['Nama', 'Umur', 'Kelas']
['Andi', '16', '10A' ]
['Budi', '17', '11B' ]
['Citra', '16', '10B' ]
Setiap baris dibaca sebagai daftar.
Perintah:
with open("data.csv", "r") as file:
digunakan untuk membuka berkas.
Kata `with` membantu memastikan berkas ditutup setelah selesai digunakan. Cara tersebut lebih aman dan lebih praktis dibandingkan membuka dan menutup berkas secara manual.
Contoh:
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
Program:
import csv
with open("data.csv", "r") as file:
data = csv.reader(file)
for baris in data:
print(baris)
Hasil:
['Andi', '16', '10A']
['Budi', '17', '11B']
['Citra', '16', '10B']
import csv
with open("data.csv", "r") as file:
data = csv.reader(file)
for baris in data:
print(baris[0])
Jika berkas berisi:
Nama,Umur,Kelas
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
hasilnya:
Nama
Andi
Budi
Citra
Keterangan:
import csv
with open("data.csv", "r") as file:
data = csv.reader(file)
next(data)
for baris in data:
print(baris)
Fungsi `next()` digunakan untuk mengambil baris pertama sebelum perulangan dimulai.
Hasil:
['Andi', '16', '10A']
['Budi', '17', '11B']
['Citra', '16', '10B']
Contoh:
import csv
with open("data.csv", "r") as file:
data = csv.DictReader(file)
for baris in data:
print(baris)
Hasil dapat berupa:
{'Nama': 'Andi', 'Umur': '16', 'Kelas': '10A'}
{'Nama': 'Budi', 'Umur': '17', 'Kelas': '11B'}
{'Nama': 'Citra', 'Umur': '16', 'Kelas': '10B'}
Cara ini membuat data lebih mudah dipahami karena setiap nilai memiliki nama kolom.
import csv
with open("data.csv", "r") as file:
data = csv.DictReader(file)
for baris in data:
print(baris["Nama"])
Hasil:
Andi
Budi
Citra
Contoh lainnya:
import csv
with open("data.csv", "r") as file:
data = csv.DictReader(file)
for baris in data:
print(baris["Nama"], baris["Kelas"])
Hasil:
Andi 10A
Budi 11B
Citra 10B
Contoh:
import csv
with open("siswa.csv", "w", newline="") as file:
penulis = csv.writer(file)
penulis.writerow(["Nama", "Umur", "Kelas"])
penulis.writerow(["Andi", 16, "10A"])
penulis.writerow(["Budi", 17, "11B"])
penulis.writerow(["Citra", 16, "10B"])
Program tersebut membuat berkas `siswa.csv`.
Isi berkas:
Nama, Umur, Kelas
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
Contoh:
penulis.writerow(["Andi", 16, "10A"])
Setiap pemanggilan `writerow()` menghasilkan satu baris dalam berkas CSV.
import csv
data = [
["Nama", "Umur", "Kelas"],
["Andi", 16, "10A" ],
["Budi", 17, "11B" ],
["Citra", 16, "10B" ]
]
with open("siswa.csv", "w", newline="") as file:
penulis = csv.writer(file)
penulis.writerows(data)
Program tersebut menulis seluruh data sekaligus.
import csv
with open("siswa.csv", "a", newline="") as file:
penulis = csv.writer(file)
penulis.writerow(["Dina", 17, "11A"])
Data baru akan ditambahkan pada bagian akhir berkas.
open("data.csv", "w")
Jika berkas sudah memiliki isi, isi lama dapat digantikan. Mode `"a"` digunakan untuk menambahkan data.
open("data.csv", "a")
Isi sebelumnya tetap dipertahankan dan data baru ditambahkan di bagian akhir.
Contoh:
import csv
data = [
{"Nama": "Andi", "Umur": 16, "Kelas": "10A"},
{"Nama": "Budi", "Umur": 17, "Kelas": "11B"},
{"Nama": "Citra", "Umur": 16, "Kelas": "10B"}
]
with open("siswa.csv", "w", newline="") as file:
kolom = ["Nama", "Umur", "Kelas"]
penulis = csv.DictWriter(file, fieldnames=kolom)
penulis.writeheader()
penulis.writerows(data)
Hasilnya:
Nama, Umur, Kelas
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
penulis.writeheader()
Jika nama kolom yang digunakan adalah:
kolom = ["Nama", "Umur", "Kelas"]
maka baris pertama CSV menjadi:
Nama, Umur, Kelas
Contoh:
Nama; Umur; Kelas
Andi; 16; 10A
Budi; 17; 11B
Untuk membaca data tersebut, tentukan `delimiter`.
import csv
with open("data.csv", "r") as file:
data = csv.reader(file, delimiter=";")
for baris in data:
print(baris)
Hasilnya tetap berupa daftar.
Contoh:
import csv
with open("data.csv", "r") as file:
data = csv.reader(file, delimiter="\t")
for baris in data:
print(baris)
Penggunaan pemisah perlu disesuaikan dengan struktur berkas.
Contoh:
Nama,Alamat
Andi,"Jl. Merdeka, No. 10"
Modul `csv` dapat menangani kondisi tersebut.
import csv
with open("data.csv", "r") as file:
data = csv.reader(file)
for baris in data:
print(baris)
Hasil:
['Nama', 'Alamat']
['Andi', 'Jl. Merdeka, No. 10']
Karena alamat berada di dalam tanda kutip, koma pada alamat tidak dianggap sebagai pemisah kolom.
Misalnya:
Andi, 80
Budi, 75
Citra, 90
Ketika dibaca:
import csv
with open("nilai.csv", "r") as file:
data = csv.reader(file)
for baris in data:
print(baris)
nilai `80`, `75`, dan `90` dibaca sebagai teks. Jika ingin melakukan perhitungan, data perlu diubah menjadi bilangan.
nilai = int(baris[1])
Contoh lengkap:
import csv
with open("nilai.csv", "r") as file:
data = csv.reader(file)
next(data)
for baris in data:
nama = baris[0]
nilai = int(baris[1])
print(nama, nilai)
Misalnya:
Nama,Nilai
Andi,80
Budi,75
Citra,90
Dina,85
Program:
import csv
total = 0
jumlah = 0
with open("nilai.csv", "r") as file:
data = csv.DictReader(file)
for baris in data:
total += int(baris["Nilai"])
jumlah += 1
rata_rata = total / jumlah
print("Rata-rata:", rata_rata)
Hasil:
Rata-rata: 82.5
import csv
with open("nilai.csv", "r") as file:
data = csv.DictReader(file)
for baris in data:
nilai = int(baris["Nilai"])
if nilai >= 80:
print(baris["Nama"], nilai)
Hasil:
Andi 80
Citra 90
Dina 85
import csv
data_baru = []
with open("nilai.csv", "r") as file:
data = csv.DictReader(file)
for baris in data:
nilai = int(baris["Nilai"])
baris["Nilai"] = nilai + 5
data_baru.append(baris)
with open("nilai_baru.csv", "w", newline="") as file:
kolom = ["Nama", "Nilai"]
penulis = csv.DictWriter(file, fieldnames=kolom)
penulis.writeheader()
penulis.writerows(data_baru)
Program tersebut membaca data lama, mengubah nilai, kemudian menyimpan hasilnya ke dalam berkas baru.
Contoh:
import csv
with open("data.csv", "r", encoding="utf-8") as file:
data = csv.reader(file)
for baris in data:
print(baris)
Untuk menulis:
import csv
with open("data.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Nama", "Keterangan"])
penulis.writerow(["Andi", "Sangat baik"])
Penentuan encoding membantu menjaga karakter tetap terbaca dengan benar.
import csv
with open("siswa.csv", "r", encoding="utf-8") as file:
data = csv.DictReader(file)
for siswa in data:
print("Nama :", siswa["Nama"])
print("Umur :", siswa["Umur"])
print("Kelas:", siswa["Kelas"])
print()
Program tersebut membaca setiap baris dan menampilkan informasi siswa.
import csv
data = [
["Nama", "Umur", "Kelas"],
["Andi", 16, "10A"],
["Budi", 17, "11B"],
["Citra", 16, "10B"]
]
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerows(data)
print("Data berhasil disimpan")
Setelah program dijalankan, berkas `siswa.csv` akan dibuat.
Contoh alur membaca:
import csv
with open("data.csv", "r", encoding="utf-8") as file:
data = csv.DictReader(file)
for baris in data:
print(baris)
Contoh:
nilai = int(baris["Nilai"])
Gunakan:
csv.reader(file, delimiter=";")
newline=""
dapat membantu mencegah baris kosong tambahan pada beberapa sistem.
Contoh `reader`:
print(baris[0])
Contoh `DictReader`:
print(baris["Nama"])
Fungsi dan kelas yang penting untuk dipahami antara lain `csv.reader()`, `csv.DictReader()`, `csv.writer()`, dan `csv.DictWriter()`.
`csv.reader()` cocok untuk membaca data berdasarkan posisi kolom, sedangkan `csv.DictReader()` memudahkan pengambilan data berdasarkan nama kolom. Untuk menulis data, `csv.writer()` dapat digunakan bersama `writerow()` atau `writerows()`, sedangkan `DictWriter` cocok digunakan ketika data berbentuk kamus.
Penguasaan CSV menjadi dasar penting untuk membuat program yang mampu mengolah data dari tabel. Setelah memahami CSV, pemrogram dapat melanjutkan ke pengolahan data yang lebih kompleks, termasuk membaca data dari banyak berkas, melakukan perhitungan, melakukan penyaringan data, serta menggabungkan hasil pengolahan ke dalam aplikasi Python.
Dengan memahami berkas CSV, pemrogram dapat membuat program yang mampu membaca data dari tabel, mengubah data, menambahkan data baru, serta menyimpan hasil pengolahan kembali ke dalam berkas.
Pengertian CSV
CSV merupakan singkatan dari Comma-Separated Values. Secara sederhana, CSV adalah berkas teks yang menyimpan data dalam bentuk baris dan kolom.Contoh isi berkas `data.csv`:
Nama, Umur, Kelas
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
Setiap baris menunjukkan satu data. Baris pertama biasanya digunakan sebagai nama kolom, sedangkan baris berikutnya berisi data. Dalam contoh tersebut terdapat tiga kolom:
- Nama
- Umur
- Kelas
Data pertama adalah:
Andi, 16, 10A
Artinya:
- Nama = Andi
- Umur = 16
- Kelas = 10A
Alasan Penggunaan CSV
Berkas CSV memiliki beberapa kelebihan.Mudah Dibaca
Isi CSV berupa teks biasa sehingga dapat dibuka menggunakan berbagai aplikasi pengolah teks.Mudah Diolah
Data CSV dapat diproses menggunakan Python dan berbagai bahasa pemrograman lainnya.Ukuran Relatif Ringan
CSV hanya menyimpan data dalam bentuk teks sehingga biasanya memiliki ukuran yang lebih kecil dibandingkan beberapa format berkas tabel lainnya.Mudah Dipindahkan
CSV dapat digunakan untuk bertukar data antara berbagai aplikasi.Sebagai contoh, data dari aplikasi lembar kerja dapat disimpan sebagai CSV kemudian diproses menggunakan Python.
Modul csv dalam Python
Python memiliki modul bawaan bernama `csv`. Untuk menggunakannya, tuliskan:import csv
Setelah modul diimpor, berbagai fungsi dan kelas yang berkaitan dengan CSV dapat digunakan.
Membaca Berkas CSV
Salah satu operasi yang paling sering dilakukan adalah membaca berkas CSV. Misalnya terdapat berkas `data.csv` dengan isi:Nama, Umur, Kelas
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
Program Python untuk membacanya:
import csv
with open("data.csv", "r") as file:
data = csv.reader(file)
for baris in data:
print(baris)
Hasil:
['Nama', 'Umur', 'Kelas']
['Andi', '16', '10A' ]
['Budi', '17', '11B' ]
['Citra', '16', '10B' ]
Setiap baris dibaca sebagai daftar.
Alasan Menggunakan with open()
Berikut dijelaskan alasan menggunakan with open().
with open("data.csv", "r") as file:
digunakan untuk membuka berkas.
Kata `with` membantu memastikan berkas ditutup setelah selesai digunakan. Cara tersebut lebih aman dan lebih praktis dibandingkan membuka dan menutup berkas secara manual.
Membaca CSV Tanpa Header
Jika berkas CSV tidak memiliki nama kolom, setiap baris dapat langsung diproses.Contoh:
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
Program:
import csv
with open("data.csv", "r") as file:
data = csv.reader(file)
for baris in data:
print(baris)
Hasil:
['Andi', '16', '10A']
['Budi', '17', '11B']
['Citra', '16', '10B']
Mengambil Data dari Kolom Tertentu
Karena setiap baris berbentuk daftar, data dapat diakses menggunakan indeks.import csv
with open("data.csv", "r") as file:
data = csv.reader(file)
for baris in data:
print(baris[0])
Jika berkas berisi:
Nama,Umur,Kelas
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
hasilnya:
Nama
Andi
Budi
Citra
Keterangan:
- Indeks `0` menunjukkan kolom pertama.
- Indeks `1` menunjukkan kolom kedua.
- Indeks `2` menunjukkan kolom ketiga.
Melewati Baris Header
Sering kali baris pertama hanya berisi nama kolom sehingga tidak perlu diproses sebagai data. Cara sederhana untuk melewatinya:import csv
with open("data.csv", "r") as file:
data = csv.reader(file)
next(data)
for baris in data:
print(baris)
Fungsi `next()` digunakan untuk mengambil baris pertama sebelum perulangan dimulai.
Hasil:
['Andi', '16', '10A']
['Budi', '17', '11B']
['Citra', '16', '10B']
Membaca CSV Menggunakan DictReader
Python juga menyediakan `csv.DictReader()`. Dengan `DictReader`, setiap baris dibaca sebagai pasangan nama kolom dan nilai.Contoh:
import csv
with open("data.csv", "r") as file:
data = csv.DictReader(file)
for baris in data:
print(baris)
Hasil dapat berupa:
{'Nama': 'Andi', 'Umur': '16', 'Kelas': '10A'}
{'Nama': 'Budi', 'Umur': '17', 'Kelas': '11B'}
{'Nama': 'Citra', 'Umur': '16', 'Kelas': '10B'}
Cara ini membuat data lebih mudah dipahami karena setiap nilai memiliki nama kolom.
Mengambil Nilai Berdasarkan Nama Kolom
Dengan `DictReader`, nilai dapat diambil menggunakan nama kolom.import csv
with open("data.csv", "r") as file:
data = csv.DictReader(file)
for baris in data:
print(baris["Nama"])
Hasil:
Andi
Budi
Citra
Contoh lainnya:
import csv
with open("data.csv", "r") as file:
data = csv.DictReader(file)
for baris in data:
print(baris["Nama"], baris["Kelas"])
Hasil:
Andi 10A
Budi 11B
Citra 10B
Menulis Data ke Berkas CSV
Selain membaca, Python juga dapat membuat berkas CSV. Gunakan `csv.writer()`.Contoh:
import csv
with open("siswa.csv", "w", newline="") as file:
penulis = csv.writer(file)
penulis.writerow(["Nama", "Umur", "Kelas"])
penulis.writerow(["Andi", 16, "10A"])
penulis.writerow(["Budi", 17, "11B"])
penulis.writerow(["Citra", 16, "10B"])
Program tersebut membuat berkas `siswa.csv`.
Isi berkas:
Nama, Umur, Kelas
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
Fungsi writerow()
Fungsi `writerow()` digunakan untuk menulis satu baris.Contoh:
penulis.writerow(["Andi", 16, "10A"])
Setiap pemanggilan `writerow()` menghasilkan satu baris dalam berkas CSV.
Menulis Banyak Baris
Jika data sudah tersedia dalam bentuk daftar, `writerows()` dapat digunakan.import csv
data = [
["Nama", "Umur", "Kelas"],
["Andi", 16, "10A" ],
["Budi", 17, "11B" ],
["Citra", 16, "10B" ]
]
with open("siswa.csv", "w", newline="") as file:
penulis = csv.writer(file)
penulis.writerows(data)
Program tersebut menulis seluruh data sekaligus.
Menambahkan Data ke CSV
Jika ingin menambahkan data tanpa menghapus isi sebelumnya, gunakan mode `"a"`.import csv
with open("siswa.csv", "a", newline="") as file:
penulis = csv.writer(file)
penulis.writerow(["Dina", 17, "11A"])
Data baru akan ditambahkan pada bagian akhir berkas.
Perbedaan Mode w dan a
Mode `"w"` digunakan untuk menulis ulang berkas.open("data.csv", "w")
Jika berkas sudah memiliki isi, isi lama dapat digantikan. Mode `"a"` digunakan untuk menambahkan data.
open("data.csv", "a")
Isi sebelumnya tetap dipertahankan dan data baru ditambahkan di bagian akhir.
Menulis CSV Menggunakan DictWriter
Selain `csv.writer()`, tersedia `csv.DictWriter()`. Metode ini cocok jika data disimpan dalam bentuk kamus.Contoh:
import csv
data = [
{"Nama": "Andi", "Umur": 16, "Kelas": "10A"},
{"Nama": "Budi", "Umur": 17, "Kelas": "11B"},
{"Nama": "Citra", "Umur": 16, "Kelas": "10B"}
]
with open("siswa.csv", "w", newline="") as file:
kolom = ["Nama", "Umur", "Kelas"]
penulis = csv.DictWriter(file, fieldnames=kolom)
penulis.writeheader()
penulis.writerows(data)
Hasilnya:
Nama, Umur, Kelas
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
Fungsi writeheader()
Pada `DictWriter`, fungsi `writeheader()` digunakan untuk menulis nama kolom.penulis.writeheader()
Jika nama kolom yang digunakan adalah:
kolom = ["Nama", "Umur", "Kelas"]
maka baris pertama CSV menjadi:
Nama, Umur, Kelas
Pemisah Data Selain Koma
Walaupun CSV biasanya menggunakan koma sebagai pemisah, beberapa berkas menggunakan tanda lain seperti titik koma.Contoh:
Nama; Umur; Kelas
Andi; 16; 10A
Budi; 17; 11B
Untuk membaca data tersebut, tentukan `delimiter`.
import csv
with open("data.csv", "r") as file:
data = csv.reader(file, delimiter=";")
for baris in data:
print(baris)
Hasilnya tetap berupa daftar.
Menggunakan Tab sebagai Pemisah
Data juga dapat menggunakan tab sebagai pemisah.Contoh:
import csv
with open("data.csv", "r") as file:
data = csv.reader(file, delimiter="\t")
for baris in data:
print(baris)
Penggunaan pemisah perlu disesuaikan dengan struktur berkas.
Data yang Mengandung Koma
Masalah dapat muncul ketika isi data sendiri mengandung koma.Contoh:
Nama,Alamat
Andi,"Jl. Merdeka, No. 10"
Modul `csv` dapat menangani kondisi tersebut.
import csv
with open("data.csv", "r") as file:
data = csv.reader(file)
for baris in data:
print(baris)
Hasil:
['Nama', 'Alamat']
['Andi', 'Jl. Merdeka, No. 10']
Karena alamat berada di dalam tanda kutip, koma pada alamat tidak dianggap sebagai pemisah kolom.
Menangani Data Angka
Data yang dibaca dari CSV umumnya berupa teks.Misalnya:
Andi, 80
Budi, 75
Citra, 90
Ketika dibaca:
import csv
with open("nilai.csv", "r") as file:
data = csv.reader(file)
for baris in data:
print(baris)
nilai `80`, `75`, dan `90` dibaca sebagai teks. Jika ingin melakukan perhitungan, data perlu diubah menjadi bilangan.
nilai = int(baris[1])
Contoh lengkap:
import csv
with open("nilai.csv", "r") as file:
data = csv.reader(file)
next(data)
for baris in data:
nama = baris[0]
nilai = int(baris[1])
print(nama, nilai)
Menghitung Rata-Rata dari CSV
Data nilai yang tersimpan dalam CSV dapat digunakan untuk menghitung rata-rata.Misalnya:
Nama,Nilai
Andi,80
Budi,75
Citra,90
Dina,85
Program:
import csv
total = 0
jumlah = 0
with open("nilai.csv", "r") as file:
data = csv.DictReader(file)
for baris in data:
total += int(baris["Nilai"])
jumlah += 1
rata_rata = total / jumlah
print("Rata-rata:", rata_rata)
Hasil:
Rata-rata: 82.5
Mencari Data Tertentu
CSV juga dapat digunakan untuk mencari data berdasarkan kondisi tertentu. Contoh mencari siswa yang memperoleh nilai minimal 80:import csv
with open("nilai.csv", "r") as file:
data = csv.DictReader(file)
for baris in data:
nilai = int(baris["Nilai"])
if nilai >= 80:
print(baris["Nama"], nilai)
Hasil:
Andi 80
Citra 90
Dina 85
Mengubah Data CSV
Data yang sudah dibaca dapat diubah sebelum disimpan kembali. Contoh menaikkan nilai setiap siswa sebanyak 5 poin:import csv
data_baru = []
with open("nilai.csv", "r") as file:
data = csv.DictReader(file)
for baris in data:
nilai = int(baris["Nilai"])
baris["Nilai"] = nilai + 5
data_baru.append(baris)
with open("nilai_baru.csv", "w", newline="") as file:
kolom = ["Nama", "Nilai"]
penulis = csv.DictWriter(file, fieldnames=kolom)
penulis.writeheader()
penulis.writerows(data_baru)
Program tersebut membaca data lama, mengubah nilai, kemudian menyimpan hasilnya ke dalam berkas baru.
Menangani Encoding
Berkas CSV dapat berisi huruf atau simbol tertentu. Untuk mengurangi masalah karakter, terutama ketika berkas menggunakan huruf non-standar, encoding dapat ditentukan ketika membuka berkas.Contoh:
import csv
with open("data.csv", "r", encoding="utf-8") as file:
data = csv.reader(file)
for baris in data:
print(baris)
Untuk menulis:
import csv
with open("data.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Nama", "Keterangan"])
penulis.writerow(["Andi", "Sangat baik"])
Penentuan encoding membantu menjaga karakter tetap terbaca dengan benar.
Contoh Program Pengelolaan Data Siswa
Berikut contoh sederhana program yang membaca data siswa dari CSV.import csv
with open("siswa.csv", "r", encoding="utf-8") as file:
data = csv.DictReader(file)
for siswa in data:
print("Nama :", siswa["Nama"])
print("Umur :", siswa["Umur"])
print("Kelas:", siswa["Kelas"])
print()
Program tersebut membaca setiap baris dan menampilkan informasi siswa.
Contoh Program Membuat Data Siswa
Data siswa juga dapat dibuat langsung melalui Python.import csv
data = [
["Nama", "Umur", "Kelas"],
["Andi", 16, "10A"],
["Budi", 17, "11B"],
["Citra", 16, "10B"]
]
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerows(data)
print("Data berhasil disimpan")
Setelah program dijalankan, berkas `siswa.csv` akan dibuat.
Alur Pengolahan CSV
Secara umum, pengolahan CSV menggunakan Python dapat dilakukan melalui beberapa tahap:- Impor modul `csv`.
- Buka berkas CSV.
- Baca atau tulis data.
- Lakukan pengolahan jika diperlukan.
- Simpan hasil.
- Tutup berkas secara otomatis menggunakan `with`.
Contoh alur membaca:
import csv
with open("data.csv", "r", encoding="utf-8") as file:
data = csv.DictReader(file)
for baris in data:
print(baris)
Kesalahan yang Sering Terjadi
Berikut dijelaskan beberapa jenis kesalahan yang sering terjadi ketika menggunakan Berkas CSV dalam Python.Nama Berkas Salah
Jika nama berkas tidak sesuai, Python dapat menghasilkan kesalahan karena berkas tidak ditemukan. Pastikan nama dan lokasi berkas sudah benar.Mode Berkas Tidak Sesuai
Penggunaan mode `"w"` dapat mengganti isi berkas lama. Jika hanya ingin menambahkan data, gunakan `"a"`.Lupa Mengubah Data Angka
Data CSV dibaca sebagai teks. Jika ingin melakukan perhitungan, ubah terlebih dahulu menggunakan `int()` atau `float()`.Contoh:
nilai = int(baris["Nilai"])
Pemisah Tidak Sesuai
Jika CSV menggunakan titik koma tetapi program menggunakan koma sebagai pemisah, data dapat terbaca secara tidak tepat.Gunakan:
csv.reader(file, delimiter=";")
Lupa newline
Ketika menulis CSV, penggunaan:newline=""
dapat membantu mencegah baris kosong tambahan pada beberapa sistem.
Perbedaan reader dan DictReader
Fitur | csv.reader() | csv.DictReader() |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Contoh `reader`:
print(baris[0])
Contoh `DictReader`:
print(baris["Nama"])
Perbedaan writer dan DictWriter
Fitur | csv.writer() | csv.DictWriter() |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Latihan
Berikut beberapa latihan untuk memperkuat pemahaman mengenai CSV.Latihan 1
Buat berkas `siswa.csv` yang berisi nama, umur, dan kelas.Latihan 2
Buat program untuk membaca seluruh isi `siswa.csv`.Latihan 3
Tampilkan hanya nama seluruh siswa.Latihan 4
Gunakan `DictReader` untuk membaca data siswa.Latihan 5
Buat program untuk menambahkan satu siswa baru ke dalam CSV.Latihan 6
Buat berkas `nilai.csv` yang berisi nama dan nilai.Latihan 7
Hitung rata-rata nilai dari berkas tersebut.Latihan 8
Tampilkan siswa yang memperoleh nilai minimal 80.Latihan 9
Buat program yang menaikkan seluruh nilai sebanyak 5 poin kemudian menyimpannya ke berkas baru.Latihan 10
Buat program yang membaca CSV dengan pemisah titik koma.Kesimpulan
CSV merupakan format sederhana yang sangat berguna untuk menyimpan data berbentuk tabel. Python menyediakan modul `csv` yang memungkinkan program membaca, menulis, menambahkan, mencari, dan mengolah data CSV.Fungsi dan kelas yang penting untuk dipahami antara lain `csv.reader()`, `csv.DictReader()`, `csv.writer()`, dan `csv.DictWriter()`.
`csv.reader()` cocok untuk membaca data berdasarkan posisi kolom, sedangkan `csv.DictReader()` memudahkan pengambilan data berdasarkan nama kolom. Untuk menulis data, `csv.writer()` dapat digunakan bersama `writerow()` atau `writerows()`, sedangkan `DictWriter` cocok digunakan ketika data berbentuk kamus.
Penguasaan CSV menjadi dasar penting untuk membuat program yang mampu mengolah data dari tabel. Setelah memahami CSV, pemrogram dapat melanjutkan ke pengolahan data yang lebih kompleks, termasuk membaca data dari banyak berkas, melakukan perhitungan, melakukan penyaringan data, serta menggabungkan hasil pengolahan ke dalam aplikasi Python.
Artikel ini akan dibaca oleh: Devy Setyaningrum, Diana Dwi Novianingrum, Difa Yuristika Bilqist, Dika Bayu Wirawan, dan Dimas Putri Meilani.
5 komentar untuk "Berkas CSV dalam Python"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
Terima kasih contoh-contoh judul skripsinya, lumayan membantu saya untuk mencari inspirasi judul buat skripsi.
BalasHapusIya sama-sama, senang bisa membantu.
HapusApakah contoh judul-judul skripsi ini masih relevan dengan kondisi dunia ekonomi saat ini?
BalasHapusTidak tahu, semuanya bergantung pada suduh pandang peneliti itu sendiri.
HapusJika yang dipermasalahkan adalah hukum syariahnya, saya rasa masih relevan karena hukum tersebutkan memang bersumber dari al-quran dan al-hadist.
Hapus