Menulis Berkas CSV dalam Python
Berkas CSV tidak hanya dapat dibaca menggunakan Python, tetapi juga dapat dibuat dan diisi menggunakan program. Kemampuan menulis berkas CSV sangat berguna ketika data yang dihasilkan oleh program perlu disimpan agar dapat digunakan kembali. Sebagai contoh, program dapat mengumpulkan data siswa, nilai, barang, transaksi, atau hasil perhitungan kemudian menyimpannya ke dalam berkas CSV.
Sebelum lebih lanjut mempelajari materi tentang Menulis Berkas CSV dalam Python, terlebih dahulu pelajari materi tentang: Direktori dalam Python, Berkas CSV dalam Python, dan Membaca Berkas CSV dalam Python.
Sebelum lebih lanjut mempelajari materi tentang Menulis Berkas CSV dalam Python, terlebih dahulu pelajari materi tentang: Direktori dalam Python, Berkas CSV dalam Python, dan Membaca Berkas CSV dalam Python.
Python menyediakan modul bawaan `csv` yang dapat digunakan untuk menulis data dengan cara yang sederhana. Modul tersebut menyediakan beberapa alat penting, seperti `csv.writer()` dan `csv.DictWriter()`.
Contoh data CSV:
Nama, Umur, Kelas
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
Data tersebut dapat dibuat langsung menggunakan Python. Setelah program dijalankan, data akan tersimpan dalam sebuah berkas dengan ekstensi `.csv`.
Gunakan:
import csv
Setelah modul diimpor, fungsi untuk menulis data dapat digunakan. Dua alat utama yang perlu dipahami adalah:
Contoh:
file = open("siswa.csv", "w")
Namun, penggunaan `with` lebih dianjurkan.
with open("siswa.csv", "w") as file:
pass
Jika `siswa.csv` belum tersedia, Python akan membuat berkas tersebut. Jika berkas sudah tersedia, mode `"w"` dapat mengganti isi lama.
Contoh:
with open("siswa.csv", "w", newline="") as file:
pass
Penggunaan ini membantu menghindari baris kosong tambahan pada beberapa sistem operasi.
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
pass
Penggunaan `encoding="utf-8"` membantu menjaga karakter teks tetap tersimpan dengan benar.
Contoh:
import csv
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
Setelah objek `penulis` dibuat, data dapat dimasukkan menggunakan `writerow()` atau `writerows()`.
import csv
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Nama", "Umur", "Kelas"])
Program tersebut membuat satu baris yang berisi nama kolom.
Hasil:
Nama,Umur,Kelas
import csv
with open("siswa.csv", "w", newline="", encoding="utf-8") 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"])
Hasil:
Nama, Umur, Kelas
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
Contoh:
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)
Semua data akan ditulis ke dalam CSV.
Contoh `writerow()`:
penulis.writerow(["Andi", 16, "10A"])
Contoh `writerows()`:
penulis.writerows([
["Andi", 16, "10A"],
["Budi", 17, "11B"]
])
import csv
siswa = [
["Andi", 16, "10A"],
["Budi", 17, "11B"],
["Citra", 16, "10B"]
]
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
for data in siswa:
penulis.writerow(data)
Program tersebut menggunakan perulangan untuk menulis setiap data.
Contoh:
import csv
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
kolom = ["Nama", "Umur", "Kelas"]
penulis = csv.DictWriter(file, fieldnames=kolom)
`fieldnames` digunakan untuk menentukan nama kolom.
penulis.writeheader()
Contoh lengkap:
import csv
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
kolom = ["Nama", "Umur", "Kelas"]
penulis = csv.DictWriter(file, fieldnames=kolom)
penulis.writeheader()
Hasil:
Nama,Umur,Kelas
import csv
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
kolom = ["Nama", "Umur", "Kelas"]
penulis = csv.DictWriter(file, fieldnames=kolom)
penulis.writeheader()
penulis.writerow({
"Nama": "Andi",
"Umur": 16,
"Kelas": "10A"
})
Hasil:
Nama, Umur, Kelas
Andi, 16, 10A
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="", encoding="utf-8") as file:
kolom = ["Nama", "Umur", "Kelas"]
penulis = csv.DictWriter(file, fieldnames=kolom)
penulis.writeheader()
penulis.writerows(data)
Hasil:
Nama, Umur, Kelas
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
`csv.writer()` cocok digunakan ketika data tersedia dalam bentuk daftar.
Contoh:
["Andi", 16, "10A"]
Sedangkan `csv.DictWriter()` cocok ketika data disimpan dalam bentuk kamus.
Contoh:
{
"Nama": "Andi",
"Umur": 16,
"Kelas": "10A"
}
Contoh:
import csv
with open("siswa.csv", "a", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Dina", 17, "11A"])
Data Dina akan ditambahkan ke bagian akhir.
Contoh mode `"w"`:
open("siswa.csv", "w")
Contoh mode `"a"`:
open("siswa.csv", "a")
Mode harus dipilih sesuai tujuan program.
import csv
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file, delimiter=";")
penulis.writerow(["Nama", "Umur", "Kelas"])
penulis.writerow(["Andi", 16, "10A"])
penulis.writerow(["Budi", 17, "11B"])
Hasil:
Nama; Umur; Kelas
Andi; 16; 10A
Budi; 17; 11B
Contohnya alamat:
Jalan Merdeka, Nomor 10
Modul `csv` dapat menangani kondisi tersebut.
import csv
with open("alamat.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Nama", "Alamat"])
penulis.writerow(["Andi", "Jalan Merdeka, Nomor 10"])
Hasil CSV akan menangani tanda koma pada alamat secara tepat.
import csv
with open("nilai.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Nama", "Nilai"])
penulis.writerow(["Andi", 80])
penulis.writerow(["Budi", 75])
penulis.writerow(["Citra", 90])
Hasil:
Nama, Nilai
Andi, 80
Budi, 75
Citra, 90
Python akan mengubah nilai tersebut menjadi bentuk yang sesuai ketika ditulis ke dalam berkas teks.
Contoh:
import csv
with open("angka.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Angka", "Kuadrat"])
for angka in range(1, 6):
penulis.writerow([angka, angka ** 2])
Hasil:
Angka, Kuadrat
1, 1
2, 4
3, 9
4, 16
5, 25
Cara tersebut berguna ketika data dibuat secara otomatis oleh program.
import csv
data = [
["Andi", 80],
["Budi", 75],
["Citra", 90],
["Dina", 85]
]
with open("nilai.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Nama", "Nilai"])
penulis.writerows(data)
Hasil:
Nama, Nilai
Andi, 80
Budi, 75
Citra, 90
Dina, 85
import csv
data = [
{"Nama": "Andi", "Nilai": 80},
{"Nama": "Budi", "Nilai": 75},
{"Nama": "Citra", "Nilai": 90},
{"Nama": "Dina", "Nilai": 85}
]
with open("nilai.csv", "w", newline="", encoding="utf-8") as file:
kolom = ["Nama", "Nilai"]
penulis = csv.DictWriter(file, fieldnames=kolom)
penulis.writeheader()
penulis.writerows(data)
Pendekatan ini lebih mudah dibaca ketika data memiliki banyak kolom.
Contoh:
import csv
nama = input("Nama: ")
umur = int(input("Umur: "))
kelas = input("Kelas: ")
with open("siswa.csv", "a", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow([nama, umur, kelas])
print("Data berhasil disimpan")
Program tersebut menerima data dari pengguna kemudian menambahkannya ke dalam CSV.
import csv
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Nama", "Umur", "Kelas"])
for i in range(3):
nama = input("Nama: ")
umur = int(input("Umur: "))
kelas = input("Kelas: ")
penulis.writerow([nama, umur, kelas])
print("Semua data berhasil disimpan")
Program tersebut meminta data tiga kali kemudian menyimpannya ke dalam satu berkas CSV.
Contoh:
import csv
with open("hasil.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Angka", "Kuadrat", "Kubik"])
for angka in range(1, 6):
kuadrat = angka ** 2
kubik = angka ** 3
penulis.writerow([angka, kuadrat, kubik])
Hasil:
Angka, Kuadrat, Kubik
1, 1, 1
2, 4, 8
3, 9, 27
4, 16, 64
5, 25, 125
import csv
try:
with open("data.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Nama", "Nilai"])
penulis.writerow(["Andi", 80)
print("Data berhasil disimpan")
except OSError:
print("Terjadi kesalahan saat menulis berkas")
Penanganan kesalahan membuat program lebih siap menghadapi kondisi yang tidak sesuai.
Kode:
open("data.csv", "w")
dapat menghapus isi lama ketika data ditulis kembali. Jika data lama harus tetap dipertahankan, gunakan mode `"a"`.
newline=""
Contoh:
open("data.csv", "w", newline="")
Contoh:
kolom = ["Nama", "Umur"]
Maka data sebaiknya memiliki:
{"Nama": "Andi", "Umur": 16}
Gunakan:
penulis.writeheader()
jika nama kolom perlu disimpan sebagai baris pertama.
Berikut diberikan contoh program lengkap dengan csv.writer().
Contoh:
import csv
data = [
["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.writerow(["Nama", "Umur", "Kelas"])
penulis.writerows(data)
print("Data berhasil disimpan")
Program tersebut melakukan beberapa tahap:
Berikut diberikan contoh program lengkap dengan DictWriter().
Pengertian Menulis Berkas CSV
Menulis berkas CSV berarti membuat berkas baru atau memasukkan data ke dalam berkas CSV yang sudah tersedia.Contoh data CSV:
Nama, Umur, Kelas
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
Data tersebut dapat dibuat langsung menggunakan Python. Setelah program dijalankan, data akan tersimpan dalam sebuah berkas dengan ekstensi `.csv`.
Modul csv
Python menyediakan modul `csv` untuk menangani data CSV.Gunakan:
import csv
Setelah modul diimpor, fungsi untuk menulis data dapat digunakan. Dua alat utama yang perlu dipahami adalah:
- `csv.writer()`
- `csv.DictWriter()`
Membuat Berkas CSV
Berkas dapat dibuat menggunakan fungsi `open()` dengan mode `"w"`.Contoh:
file = open("siswa.csv", "w")
Namun, penggunaan `with` lebih dianjurkan.
with open("siswa.csv", "w") as file:
pass
Jika `siswa.csv` belum tersedia, Python akan membuat berkas tersebut. Jika berkas sudah tersedia, mode `"w"` dapat mengganti isi lama.
Menggunakan newline
Ketika menulis CSV, sebaiknya gunakan `newline=""`.Contoh:
with open("siswa.csv", "w", newline="") as file:
pass
Penggunaan ini membantu menghindari baris kosong tambahan pada beberapa sistem operasi.
Menggunakan Encoding
Untuk data teks, terutama data yang memiliki berbagai karakter, encoding dapat ditentukan.with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
pass
Penggunaan `encoding="utf-8"` membantu menjaga karakter teks tetap tersimpan dengan benar.
Menulis Data dengan csv.writer()
`csv.writer()` digunakan untuk membuat objek yang dapat menulis data ke dalam CSV.Contoh:
import csv
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
Setelah objek `penulis` dibuat, data dapat dimasukkan menggunakan `writerow()` atau `writerows()`.
Menulis Satu Baris
Fungsi `writerow()` digunakan untuk menulis satu baris.import csv
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Nama", "Umur", "Kelas"])
Program tersebut membuat satu baris yang berisi nama kolom.
Hasil:
Nama,Umur,Kelas
Menulis Beberapa Baris
Setiap baris dapat ditulis menggunakan `writerow()`.import csv
with open("siswa.csv", "w", newline="", encoding="utf-8") 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"])
Hasil:
Nama, Umur, Kelas
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
Menulis Banyak Baris dengan writerows()
Jika banyak data sudah tersedia dalam bentuk daftar, `writerows()` dapat digunakan.Contoh:
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)
Semua data akan ditulis ke dalam CSV.
Perbedaan writerow() dan writerows()
| Fungsi | Kegunaan |
|---|---|
|
|
|
|
Contoh `writerow()`:
penulis.writerow(["Andi", 16, "10A"])
Contoh `writerows()`:
penulis.writerows([
["Andi", 16, "10A"],
["Budi", 17, "11B"]
])
Menulis Data dari List
Data yang sudah disimpan dalam list dapat langsung ditulis ke CSV.import csv
siswa = [
["Andi", 16, "10A"],
["Budi", 17, "11B"],
["Citra", 16, "10B"]
]
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
for data in siswa:
penulis.writerow(data)
Program tersebut menggunakan perulangan untuk menulis setiap data.
Menulis Data dengan DictWriter
Selain `csv.writer()`, Python menyediakan `csv.DictWriter()`. `DictWriter` cocok digunakan ketika data disimpan dalam bentuk kamus.Contoh:
import csv
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
kolom = ["Nama", "Umur", "Kelas"]
penulis = csv.DictWriter(file, fieldnames=kolom)
`fieldnames` digunakan untuk menentukan nama kolom.
Menulis Header dengan writeheader()
Setelah membuat `DictWriter`, nama kolom dapat ditulis menggunakan `writeheader()`.penulis.writeheader()
Contoh lengkap:
import csv
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
kolom = ["Nama", "Umur", "Kelas"]
penulis = csv.DictWriter(file, fieldnames=kolom)
penulis.writeheader()
Hasil:
Nama,Umur,Kelas
Menulis Data dengan writerow() pada DictWriter
Setelah header dibuat, data dapat ditulis menggunakan `writerow()`.import csv
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
kolom = ["Nama", "Umur", "Kelas"]
penulis = csv.DictWriter(file, fieldnames=kolom)
penulis.writeheader()
penulis.writerow({
"Nama": "Andi",
"Umur": 16,
"Kelas": "10A"
})
Hasil:
Nama, Umur, Kelas
Andi, 16, 10A
Menulis Banyak Data dengan DictWriter
Jika terdapat banyak data, gunakan `writerows()`.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="", encoding="utf-8") as file:
kolom = ["Nama", "Umur", "Kelas"]
penulis = csv.DictWriter(file, fieldnames=kolom)
penulis.writeheader()
penulis.writerows(data)
Hasil:
Nama, Umur, Kelas
Andi, 16, 10A
Budi, 17, 11B
Citra, 16, 10B
Perbedaan writer dan DictWriter
| Fitur | csv.writer() | csv.DictWriter() |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
`csv.writer()` cocok digunakan ketika data tersedia dalam bentuk daftar.
Contoh:
["Andi", 16, "10A"]
Sedangkan `csv.DictWriter()` cocok ketika data disimpan dalam bentuk kamus.
Contoh:
{
"Nama": "Andi",
"Umur": 16,
"Kelas": "10A"
}
Menambahkan Data ke CSV
Mode `"w"` akan menulis ulang isi berkas. Jika data lama perlu dipertahankan dan data baru hanya ditambahkan, gunakan mode `"a"`.Contoh:
import csv
with open("siswa.csv", "a", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Dina", 17, "11A"])
Data Dina akan ditambahkan ke bagian akhir.
Perbedaan Mode w dan a
| Mode | Kegunaan |
|---|---|
|
|
|
|
Contoh mode `"w"`:
open("siswa.csv", "w")
Contoh mode `"a"`:
open("siswa.csv", "a")
Mode harus dipilih sesuai tujuan program.
Menulis CSV dengan Pemisah Titik Koma
CSV tidak selalu menggunakan koma sebagai pemisah. Beberapa data menggunakan titik koma. Untuk membuat CSV dengan pemisah titik koma, gunakan `delimiter`.import csv
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file, delimiter=";")
penulis.writerow(["Nama", "Umur", "Kelas"])
penulis.writerow(["Andi", 16, "10A"])
penulis.writerow(["Budi", 17, "11B"])
Hasil:
Nama; Umur; Kelas
Andi; 16; 10A
Budi; 17; 11B
Menulis Data yang Mengandung Koma
Data tertentu dapat mengandung tanda koma.Contohnya alamat:
Jalan Merdeka, Nomor 10
Modul `csv` dapat menangani kondisi tersebut.
import csv
with open("alamat.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Nama", "Alamat"])
penulis.writerow(["Andi", "Jalan Merdeka, Nomor 10"])
Hasil CSV akan menangani tanda koma pada alamat secara tepat.
Menulis Data Angka
Angka dapat langsung dimasukkan ke dalam daftar.import csv
with open("nilai.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Nama", "Nilai"])
penulis.writerow(["Andi", 80])
penulis.writerow(["Budi", 75])
penulis.writerow(["Citra", 90])
Hasil:
Nama, Nilai
Andi, 80
Budi, 75
Citra, 90
Python akan mengubah nilai tersebut menjadi bentuk yang sesuai ketika ditulis ke dalam berkas teks.
Menulis Data dari Perulangan
Data dapat dibuat melalui perulangan.Contoh:
import csv
with open("angka.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Angka", "Kuadrat"])
for angka in range(1, 6):
penulis.writerow([angka, angka ** 2])
Hasil:
Angka, Kuadrat
1, 1
2, 4
3, 9
4, 16
5, 25
Cara tersebut berguna ketika data dibuat secara otomatis oleh program.
Menulis Data Nilai Siswa
Contoh program berikut membuat data nilai siswa.import csv
data = [
["Andi", 80],
["Budi", 75],
["Citra", 90],
["Dina", 85]
]
with open("nilai.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Nama", "Nilai"])
penulis.writerows(data)
Hasil:
Nama, Nilai
Andi, 80
Budi, 75
Citra, 90
Dina, 85
Menulis Data Nilai dengan DictWriter
Data yang sama dapat dibuat menggunakan `DictWriter`.import csv
data = [
{"Nama": "Andi", "Nilai": 80},
{"Nama": "Budi", "Nilai": 75},
{"Nama": "Citra", "Nilai": 90},
{"Nama": "Dina", "Nilai": 85}
]
with open("nilai.csv", "w", newline="", encoding="utf-8") as file:
kolom = ["Nama", "Nilai"]
penulis = csv.DictWriter(file, fieldnames=kolom)
penulis.writeheader()
penulis.writerows(data)
Pendekatan ini lebih mudah dibaca ketika data memiliki banyak kolom.
Membuat CSV dari Data Pengguna
Data dari `input()` juga dapat disimpan ke CSV.Contoh:
import csv
nama = input("Nama: ")
umur = int(input("Umur: "))
kelas = input("Kelas: ")
with open("siswa.csv", "a", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow([nama, umur, kelas])
print("Data berhasil disimpan")
Program tersebut menerima data dari pengguna kemudian menambahkannya ke dalam CSV.
Membuat Program Input Beberapa Data
Perulangan dapat digunakan jika data yang dimasukkan lebih dari satu.import csv
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Nama", "Umur", "Kelas"])
for i in range(3):
nama = input("Nama: ")
umur = int(input("Umur: "))
kelas = input("Kelas: ")
penulis.writerow([nama, umur, kelas])
print("Semua data berhasil disimpan")
Program tersebut meminta data tiga kali kemudian menyimpannya ke dalam satu berkas CSV.
Menyimpan Hasil Perhitungan ke CSV
CSV juga dapat digunakan untuk menyimpan hasil perhitungan.Contoh:
import csv
with open("hasil.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Angka", "Kuadrat", "Kubik"])
for angka in range(1, 6):
kuadrat = angka ** 2
kubik = angka ** 3
penulis.writerow([angka, kuadrat, kubik])
Hasil:
Angka, Kuadrat, Kubik
1, 1, 1
2, 4, 8
3, 9, 27
4, 16, 64
5, 25, 125
Menangani Kesalahan Saat Menulis
Kesalahan dapat terjadi ketika lokasi berkas tidak dapat digunakan atau terdapat masalah lain pada proses penulisan. Penanganan dapat dilakukan menggunakan `try` dan `except`.import csv
try:
with open("data.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.writer(file)
penulis.writerow(["Nama", "Nilai"])
penulis.writerow(["Andi", 80)
print("Data berhasil disimpan")
except OSError:
print("Terjadi kesalahan saat menulis berkas")
Penanganan kesalahan membuat program lebih siap menghadapi kondisi yang tidak sesuai.
Kesalahan yang Sering Terjadi
Berikut dijelaskan beberapa contoh kesalahan yang sering terjadi ketika Menulis Berkas CSV dalam Python.Menggunakan Mode w Tanpa Sengaja
Berikut dijelaskan jenis kesalahan menggunakan mode w tanpa sengaja.
open("data.csv", "w")
dapat menghapus isi lama ketika data ditulis kembali. Jika data lama harus tetap dipertahankan, gunakan mode `"a"`.
Lupa newline
Ketika menulis CSV, sebaiknya gunakan:newline=""
Contoh:
open("data.csv", "w", newline="")
Salah Menentukan Nama Kolom
Ketika menggunakan `DictWriter`, nama pada data harus sesuai dengan `fieldnames`.Contoh:
kolom = ["Nama", "Umur"]
Maka data sebaiknya memiliki:
{"Nama": "Andi", "Umur": 16}
Lupa Menulis Header
Jika menggunakan `DictWriter`, header tidak otomatis ditulis hanya karena `fieldnames` sudah ditentukan.Gunakan:
penulis.writeheader()
jika nama kolom perlu disimpan sebagai baris pertama.
Berikut diberikan contoh program lengkap dengan csv.writer().
Contoh:
import csv
data = [
["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.writerow(["Nama", "Umur", "Kelas"])
penulis.writerows(data)
print("Data berhasil disimpan")
Program tersebut melakukan beberapa tahap:
- Membuat data siswa.
- Membuka berkas CSV.
- Membuat objek `writer`.
- Menulis nama kolom.
- Menulis seluruh data.
- Menutup berkas secara otomatis.
Berikut diberikan contoh program lengkap dengan DictWriter().
Contoh:
import csv
data = [
{"Nama": "Andi", "Umur": 16, "Kelas": "10A"},
{"Nama": "Budi", "Umur": 17, "Kelas": "11B"},
{"Nama": "Citra", "Umur": 16, "Kelas": "10B"}
]
kolom = ["Nama", "Umur", "Kelas"]
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.DictWriter(file, fieldnames=kolom)
penulis.writeheader()
penulis.writerows(data)
print("Data berhasil disimpan")
Siapkan data
↓
Buka atau buat berkas
↓
Buat csv.writer()
atau csv.DictWriter()
↓
Tulis header jika diperlukan
↓
Tulis data
↓
Simpan dan tutup berkas
Pola tersebut dapat diterapkan pada berbagai jenis program.
Nama,Umur,Kelas
`csv.writer()` cocok digunakan ketika data tersedia dalam bentuk daftar. Data dapat ditulis menggunakan `writerow()` untuk satu baris atau `writerows()` untuk banyak baris.
Sementara itu, `csv.DictWriter()` cocok digunakan ketika data disimpan dalam bentuk kamus. Nama kolom dapat ditentukan melalui `fieldnames`, kemudian ditulis menggunakan `writeheader()`. Data dapat dimasukkan menggunakan `writerow()` atau `writerows()`.
Hal penting lainnya adalah memahami mode `"w"` dan `"a"`. Mode `"w"` digunakan untuk membuat atau menulis ulang berkas, sedangkan mode `"a"` digunakan untuk menambahkan data ke bagian akhir berkas.
Dengan menguasai cara menulis CSV, program Python dapat menyimpan hasil pengolahan data secara terstruktur sehingga data dapat digunakan kembali pada proses berikutnya.
data = [
{"Nama": "Andi", "Umur": 16, "Kelas": "10A"},
{"Nama": "Budi", "Umur": 17, "Kelas": "11B"},
{"Nama": "Citra", "Umur": 16, "Kelas": "10B"}
]
kolom = ["Nama", "Umur", "Kelas"]
with open("siswa.csv", "w", newline="", encoding="utf-8") as file:
penulis = csv.DictWriter(file, fieldnames=kolom)
penulis.writeheader()
penulis.writerows(data)
print("Data berhasil disimpan")
Alur Menulis Berkas CSV
Secara umum, proses menulis CSV dapat digambarkan sebagai berikut:Siapkan data
↓
Buka atau buat berkas
↓
Buat csv.writer()
atau csv.DictWriter()
↓
Tulis header jika diperlukan
↓
Tulis data
↓
Simpan dan tutup berkas
Pola tersebut dapat diterapkan pada berbagai jenis program.
Latihan
Berikut beberapa latihan untuk memperkuat pemahaman.Latihan 1
Buat berkas `siswa.csv` menggunakan Python.Latihan 2
Tuliskan nama kolom:Nama,Umur,Kelas
Latihan 3
Tambahkan minimal lima data siswa menggunakan `writerow()`.Latihan 4
Gunakan `writerows()` untuk menulis beberapa data sekaligus.Latihan 5
Buat program yang menggunakan `DictWriter()`.Latihan 6
Gunakan `writeheader()` untuk menulis nama kolom.Latihan 7
Buat program yang meminta nama, umur, dan kelas melalui `input()` kemudian menyimpannya ke CSV.Latihan 8
Buat program yang menambahkan data baru tanpa menghapus data lama.Latihan 9
Buat berkas `nilai.csv` yang berisi nama dan nilai siswa.Latihan 10
Buat program yang menghasilkan data angka, kuadrat, dan kubik kemudian menyimpannya dalam CSV.Kesimpulan
Menulis berkas CSV menggunakan Python dapat dilakukan dengan mudah menggunakan modul `csv`. Dua alat utama yang perlu dipahami adalah `csv.writer()` dan `csv.DictWriter()`.`csv.writer()` cocok digunakan ketika data tersedia dalam bentuk daftar. Data dapat ditulis menggunakan `writerow()` untuk satu baris atau `writerows()` untuk banyak baris.
Sementara itu, `csv.DictWriter()` cocok digunakan ketika data disimpan dalam bentuk kamus. Nama kolom dapat ditentukan melalui `fieldnames`, kemudian ditulis menggunakan `writeheader()`. Data dapat dimasukkan menggunakan `writerow()` atau `writerows()`.
Hal penting lainnya adalah memahami mode `"w"` dan `"a"`. Mode `"w"` digunakan untuk membuat atau menulis ulang berkas, sedangkan mode `"a"` digunakan untuk menambahkan data ke bagian akhir berkas.
Dengan menguasai cara menulis CSV, program Python dapat menyimpan hasil pengolahan data secara terstruktur sehingga data dapat digunakan kembali pada proses berikutnya.
5 komentar untuk "Menulis 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 -
Ini judul skripsinya belum genap 100?
BalasHapusIya ini judul skripsinya cuma 2, yang lainnya mana.
HapusSabar, kakak, sisa judul skripsinya juga sedang pengetikkan.
HapusApakah ada judul skripsi selain jurusan informatika?
BalasHapusAda, judul skripsi lain bisa dilihat di halaman utama.
Hapus