Cara Baca Dan Parse File CSV di Python
Cara Baca Dan Parse File CSV di Python
Dalam pemrograman Python, file CSV (Comma-Separated Values) sering digunakan untuk menyimpan data dalam format tabular yang sederhana dan mudah diakses. File ini biasanya digunakan untuk menyimpan data seperti laporan, daftar, atau database yang dapat dibaca oleh berbagai perangkat lunak. Python menawarkan beberapa cara yang efektif untuk membaca dan memproses file CSV menggunakan modul bawaan serta pustaka tambahan seperti csv dan pandas. Dalam artikel ini, kita akan membahas cara membaca dan memparse file CSV di Python, mulai dari metode dasar hingga penggunaan teknik yang lebih efisien untuk menangani data dalam jumlah besar.
Table of Contents
Memahami Apa Itu File CSV
File CSV (Comma-Separated Values) merupakan file teks sederhana yang dirancang untuk menyimpan data dalam format terstruktur. Meskipun terlihat seperti file teks biasa, CSV memiliki cara unik untuk mengorganisir datanya agar mudah diproses oleh berbagai program.
Sesuai dengan namanya, format CSV menggunakan koma sebagai pemisah antar data. Setiap baris dalam file ini berisi satu atau beberapa entri data, yang dipisahkan oleh tanda koma untuk membentuk kolom.
Contoh isi file CSV:
```
NO,NAMA,ALAMAT
1,Bambang,Bandung
2,Cacha,Surabaya
3,Diana,Mataram
4,Emi,Jakarta
``` Seperti yang dapat dilihat, file CSV sangat mirip dengan tabel di spreadsheet. Baris pertama umumnya berisi header atau label untuk menjelaskan kolom, sedangkan baris-baris berikutnya memuat data yang sesuai dengan header tersebut.
Delimiter: Pemisah Antar Data
Hal yang menarik dari CSV adalah penggunaan delimiter, yaitu karakter yang digunakan untuk memisahkan setiap data. Dalam format CSV standar, delimiter yang paling sering digunakan adalah tanda koma. Namun, ada juga file serupa yang menggunakan delimiter lain, seperti tab (`\t`), titik dua (`:`), atau titik koma (`;`), tergantung pada kebutuhan atau format yang dipilih oleh pembuat file.
Mengatasi Tanda Koma dalam Data
Terkadang, kita bisa menemui situasi di mana tanda koma menjadi bagian dari data yang ingin disimpan. Misalnya, nama seseorang yang diikuti oleh gelar akademik seperti ini:
```
Bambang, S.Kom
``` Dalam kasus seperti ini, tanda koma dalam data bisa menyebabkan kebingungan karena program akan mengira tanda koma tersebut sebagai pemisah data. Untuk menghindari hal ini, CSV menggunakan tanda petik ganda untuk mengelompokkan data yang mengandung koma atau delimiter lainnya.
Contoh yang lebih tepat akan terlihat seperti ini:
```
NO,NAMA,ALAMAT
1,"Bambang, S.Kom",Bandung
2,"Cacha, S.H",Surabaya
3,"Diana, S.Kom",Mataram
4,"Emi, M.Kom",Jakarta
``` Dengan menempatkan tanda petik di sekitar nama lengkap yang mengandung koma, kita dapat memastikan data tersebut diproses sebagai satu kesatuan, bukan sebagai dua entri terpisah.
Baca Juga
Cara Membaca File CSV Di Phyton
Untuk membaca file CSV di Python, Pada dasarnya hampir sama dengan membaca file teks biasa. Proses dimulai dengan membuka file tersebut menggunakan fungsi bawaan Python seperti `open()`. Namun, yang membedakan adalah cara memproses atau memparse datanya. Pada file teks biasa, data bisa langsung diambil dan dibaca sesuai kebutuhan, sedangkan untuk file CSV, diperlukan langkah tambahan untuk mengurai struktur file yang menggunakan pemisah (delimiter) tertentu, biasanya koma.
Di Python, terdapat library bawaan bernama `csv` yang dirancang khusus untuk menangani file CSV. Library ini memungkinkan kita untuk mengurai dan membaca data dari file CSV dengan mudah. Setelah file dibuka, kita menggunakan `csv.reader()` untuk memulai proses pembacaan data dengan menetapkan tanda pemisah yang sesuai, dalam hal ini koma (`,`). Fungsi ini akan membaca setiap baris dalam file CSV dan memisahkan data berdasarkan delimiter yang telah ditentukan.
Sebagai contoh, jika kita memiliki file CSV bernama `contacts.csv` dengan data seperti berikut:
```
NO,NAMA,TELEPON
1,Bambang,081234
2,Richard,08712333
3,Bapak Budi,08733311
4,Joko,0851231
``` Langkah selanjutnya adalah membuat program Python sederhana untuk membaca file tersebut. Kita bisa membuat file baru bernama `baca_csv.py` yang berisi kode berikut:
```python
import csv
with open('contacts.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=",")
for row in csv_reader:
print(row)
``` Kode di atas membuka file `contacts.csv`, kemudian menggunakan `csv.reader()` untuk membaca data berdasarkan delimiter koma. Setiap baris dalam file akan dibaca dan disimpan sebagai list, di mana setiap elemen dari list tersebut merupakan data dari kolom yang dipisahkan oleh koma. Kode ini kemudian mencetak setiap baris dari file CSV yang telah diparse, sehingga memudahkan kita untuk melihat atau memproses data lebih lanjut.
Pada program di atas, Kita mulai dengan membuka file `contacts.csv` menggunakan fungsi `open()` dan menyimpannya dalam variabel `csv_file`. Fungsi ini bertanggung jawab untuk membuka file, dan menyediakan akses untuk membaca kontennya. Setelah file dibuka, kita menggunakan modul `csv` bawaan Python untuk membaca isi file dengan fungsi `csv.reader()`. Fungsi ini memungkinkan kita untuk mengurai setiap baris dari file CSV, dan memisahkan data berdasarkan delimiter yang telah ditentukan, dalam hal ini adalah tanda koma (,).
Tanda koma digunakan sebagai delimiter karena file CSV secara default menggunakan tanda koma untuk memisahkan kolom-kolomnya. Namun, jika file yang kita baca menggunakan delimiter lain, kita cukup mengganti karakter delimiter yang digunakan pada parameter `csv.reader()`. Misalnya, jika file CSV menggunakan tab sebagai pemisah, kita bisa mengganti delimiter menjadi `\t`, atau jika menggunakan titik dua (`:`) atau titik koma (`;`), kita juga dapat menyesuaikan parameter tersebut. Hal ini memberikan fleksibilitas kepada program untuk membaca file CSV dengan berbagai format.
Setelah `csv.reader()` digunakan, ia menghasilkan sebuah objek `csv_reader`. Objek ini berisi data yang telah diparse dari file CSV, namun untuk mengakses dan melihat isi datanya, kita perlu menggunakan perulangan `for`. Dengan perulangan ini, setiap baris dari file CSV akan dibaca satu per satu dan dicetak dalam bentuk list. Setiap elemen dari list tersebut merepresentasikan kolom yang dipisahkan oleh delimiter di dalam file CSV. Melalui pendekatan ini, kita dapat dengan mudah memproses dan mengelola data dari file CSV dalam program Python.
Parsing CSV menjadi List
Untuk mengubah file CSV menjadi list, kita dapat memulai dengan memparsing file tersebut menggunakan Python. File CSV umumnya dipisahkan dengan koma, dan setiap barisnya berisi data yang bisa kita olah. Untuk memulai, kita akan membaca file CSV dan mengubahnya menjadi list Python, di mana setiap baris dalam file akan menjadi elemen di dalam list tersebut.
Berikut ini adalah Contoh program dasar untuk parsing file CSV menjadi list:
```python
import csv
contacts = []
with open('contacts.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=",")
for row in csv_reader:
contacts.append(row)
print(contacts)
``` Pada program di atas, kita pertama-tama mendefinisikan list kosong bernama `contacts`. Kemudian, kita membuka file `contacts.csv` menggunakan fungsi `open()`, dan mengolah isinya menggunakan `csv.reader()`. Fungsi `csv.reader()` akan membaca setiap baris dalam file CSV berdasarkan delimiter (koma) dan mengembalikannya dalam bentuk list. Hasil dari setiap baris ini kemudian ditambahkan ke list `contacts` menggunakan metode `append()`.
Setelah program ini dijalankan, isi list `contacts` akan terlihat seperti ini:
```python
[['NO', 'NAMA', 'TELEPON'], ['1', 'Bambang', '081234'], ['2', 'Richard', '08712333'], ['3', 'Bapak Budi', '08733311'], ['4', 'Joko', '0851231']]
```
Menghapus Label dari List
Pada hasil di atas, kita bisa melihat bahwa label atau header (baris pertama yang berisi 'NO', 'NAMA', 'TELEPON') juga ikut masuk ke dalam list. Jika kita hanya ingin menyimpan data tanpa label, kita dapat menghapusnya dengan metode `pop()`. Berikut adalah modifikasi programnya:
```python
import csv
contacts = []
with open('contacts.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=",")
for row in csv_reader:
contacts.append(row)
# Menghapus label dan menyimpannya ke variabel terpisah
labels = contacts.pop(0)
# Mencetak label dan data kontak
print("Labels:", labels)
print("Contacts:", contacts)
``` Pada kode ini, setelah semua baris dari file CSV ditambahkan ke list `contacts`, kita menggunakan `pop(0)` untuk menghapus elemen pertama (yaitu header atau label) dari list tersebut dan menyimpannya dalam variabel `labels`. Sekarang, kita memiliki dua list: `labels` yang berisi header, dan `contacts` yang berisi data kontak tanpa label.
Setelah dijalankan, hasil yang akan muncul adalah seperti ini:
```python
# Isi list labels:
['NO', 'NAMA', 'TELEPON']
# Isi list contacts:
[['1', 'Bambang', '081234'], ['2', 'Richard', '08712333'], ['3', 'Bapak Budi', '08733311'], ['4', 'Joko', '0851231']]
``` Dengan cara ini, kita sudah memiliki dua list yang terpisah antara label dan data. Selanjutnya, kita dapat menggunakan data ini untuk keperluan lain, misalnya memproses lebih lanjut atau menyimpan kembali ke dalam format lain.
Cara Parsing CSV Menjadi Dictionary di Python
Salah satu cara yang efektif untuk membaca file CSV di Python adalah dengan memparsingnya menjadi sebuah dictionary. Dengan dictionary, kita dapat memetakan setiap kolom (sebagai key) dengan isian data di baris tersebut (sebagai value). Ini membuat data lebih mudah diakses berdasarkan nama kolom, sehingga lebih fleksibel saat diolah.
Bagi yang belum familiar dengan dictionary, struktur ini terdiri dari pasangan key dan value. Key berfungsi sebagai identitas unik, sementara value adalah data yang terhubung dengan key tersebut. Jika kamu ingin mempelajari lebih lanjut tentang dictionary, disarankan untuk membaca panduan mengenai “Tutorial Dictionary di Python” terlebih dahulu.
Untuk parsing file CSV menjadi dictionary, Kita dapat memanfaatkan modul `csv` dan menggunakan fungsi `DictReader()`. Fungsi ini akan mengubah setiap baris CSV menjadi dictionary di mana key-nya adalah nama kolom (header), dan value-nya adalah data dari baris tersebut.
Contoh Program Parsing CSV ke Dictionary
Berikut adalah contoh sederhana untuk membaca file CSV dan mengubahnya menjadi list of dictionaries:
```python
import csv
contacts = []
with open('contacts.csv') as csv_file:
csv_reader = csv.DictReader(csv_file)
for row in csv_reader:
contacts.append(row)
print(contacts)
``` Dalam program di atas, kita menggunakan `csv.DictReader()` untuk membaca file `contacts.csv`. Setiap baris pada file CSV akan diubah menjadi dictionary, di mana key-nya adalah nama kolom pada file CSV (seperti 'NO', 'NAMA', 'TELEPON'), dan value-nya adalah data pada baris tersebut. Hasil dari setiap baris kemudian ditambahkan ke dalam list `contacts`.
Misalnya, jika file `contacts.csv` berisi data berikut:
```
NO,NAMA,TELEPON
1,Bambang,081234
2,Richard,08712333
3,Bapak Budi,08733311
4,Joko,0851231
``` Maka setelah diparse, output dari program akan terlihat seperti ini:
```python
[{'NO': '1', 'NAMA': 'Bambang', 'TELEPON': '081234'},
{'NO': '2', 'NAMA': 'Richard', 'TELEPON': '08712333'},
{'NO': '3', 'NAMA': 'Bapak Budi', 'TELEPON': '08733311'},
{'NO': '4', 'NAMA': 'Joko', 'TELEPON': '0851231'}]
```
Penjelasan Program
- `
DictReader()`: Fungsi ini membaca file CSV dan mengubah setiap baris menjadi dictionary. Nama kolom di baris pertama file CSV digunakan sebagai key untuk setiap dictionary yang terbentuk. - Looping dengan `
for`: Untuk setiap baris yang dihasilkan oleh `DictReader`, kita menambahkan dictionary tersebut ke dalam list `contacts`. - Hasil Akhir: Hasil dari parsing ini adalah list yang berisi beberapa dictionary, di mana setiap dictionary merepresentasikan satu baris data di file CSV.
Dengan format ini, kita bisa mengakses data lebih mudah. Misalnya, jika ingin mengakses nama pada baris pertama, kita bisa melakukannya seperti ini:
```python
print(contacts[0]['NAMA']) # Output: Bambang
``` Keunggulan Parsing CSV Menjadi Dictionary
Parsing file CSV menjadi dictionary memberikan fleksibilitas lebih karena memungkinkan kita mengakses data berdasarkan nama kolom, bukan berdasarkan indeks baris. Ini sangat berguna ketika kita berhadapan dengan file CSV yang memiliki banyak kolom atau ketika urutan kolom tidak tetap.
Metode ini juga sangat efisien saat kita perlu mengakses data tertentu, seperti memfilter atau mencari data berdasarkan nilai key tertentu, tanpa harus tahu posisi kolomnya dalam file CSV.
Dengan pendekatan ini, kita dapat mengolah data CSV di Python dengan lebih mudah dan terstruktur.
- Pengertian dan Kegunaan Bahasa Pemrograman Python
- Phyton 1 : Tutorial Pengenalan Dasar
- Phyton 2 : Macam Penulisan Sintaks
- Phyton 3 : Konsep Variabel dan Data
- Phyton 4 - Cara Mengambil Input dan Output
- Phyton 5 : Jenis-jenis Operator
- Phyton 6 - Percabangan
- Phyton 7 - Perulangan
- Phyton 8 - Struktur Data List
- 4 Variasi Fungsi Print () Pada Phyton
- Tutorial Python: Struktur Data Dictionary
- Phyton 9 - Struktur Data Tuple
- Phyton 9 : Struktur Data Tuple Part 2
- 5 Variasi Coding Python dengan Fungsi Concatenate, Yuk, Coba
- PyScript: Masa Depan Python di Browser ?
- 7 Hal Dasar yang Harus Diketahui Tentang Dictionary pada Python
- Memahami Fungsi dan Prosedur pada Python
- 6 Proyek Coding Python untuk Meningkatkan Portofolio Anda
- Tutorial Python: Membaca dan Menulis File dengan Lebih Mendalam
- Cara Baca Dan Parse File CSV di Python
- 7 Teknik Membuat Dictionary di Python dengan Data dari Berbagai Sumber
- 5 Kesalahan Umum dalam Menggunakan Dictionary di Python dan Cara Menghindarinya
- Belajar Python: Proses Data JSON dari File dan API Web
- Belajar Python: Buat Fungsi Dengan Lambda Expression
- Apa Maksud dari *args dan kwargs pada Python?
- Tutorial Membuat 3 Jenis Kalkulator Dengan Python
- Panduan Lengkap: Cara Menghapus Item di List Python Tanpa Drama
- Cara Bangun Dashboard di Jupyter Pakai Solara
- 6 Perintah pip yang Harus Diketahui Setiap Developer Python
- Panduan Lengkap Menggunakan pip: Manajer Paket Python yang Wajib Dikuasai
- Rekomendasi 6 Framework Terbaik untuk Python: Dari Santai Sampai Superhero!
- Benar Nggak Sih Python Ramah untuk Programmer Pemula?
- Optimasi Performa Perbandingan Dokumen di Python: Ketika CPU Lo Kerja Rodi!
- Mengupas Tuntas Cara Mengiterasi Dictionary di Python: Panduan Lengkap yang Gak Bikin Pusing!
- 5 Proyek AI Seru yang Bisa Lo Bangun Weekend Ini dengan Python
- Rust vs Python: Duel Sengit Bahasa Pemrograman! Mana yang Cocok Buat Lo?
- 6 Trik Python Terbaru 2025 yang Wajib Dicoba Programmer
- Tutorial Lengkap Membuat News Aggregator Menggunakan Python
- Stop Nulis Function Python Kayak Gini, Bro!
- 7 Python Decorators yang Bikin Kode Lo Makin Canggih
- Trik Python debugging yang wajib lo coba.
- Membangun List di Python: Filosofi, Teknik, dan Tips Anti-Kudet
- DERET FAKTORIAL: SI "BAHAN VIRAL" MATEMATIKA YANG BIKIN KODE LO NAIK LEVEL!
- Project Python Seru: Bikin Script Otomatisasi Pengorganisir File (Biar Folder Download Nggak Kayak Gudang)
- Automating Email Sending Via Phyton – Biar Jempol Lo Pensiun Dini
- Project 2: Automating Web Scraping for Data Collection dengan Python
- Automatisasi Tugas GUI dengan PyAutoGUI
- Cara Lama vs Cara Kekinian: Belajar dataclass Python
- Automatisasi Laporan PDF dengan Python
- Membongkar Rahasia field() di Python: Kendali Penuh atas Dataclass
- Praktik Lanjutan Menulis Kode Python yang Bersih dan Ramah Pemula
- Python Function Annotations: Fitur Keren yang Sering Diremehkan, Padahal Bikin Kamu Terlihat Programmer Cerdas
- Python Keyword Arguments: Panduan Bad Boy Buat Programmer Biar Nggak Salah Urus Function
- Belajar Fungsi Tanpa Parameter Python dari Nol: Panduan Lengkap Buat Pemula Sampai Nyantol di Kepala
- Tutorial Coding: Keluar dari Plateau of False Competence di Python
- Plotting Graph Menggunakan Seaborn di Python
- Mutable vs Immutable Objects di Python: Konsep Dasar yang Sering Diremehkan
- Python time.sleep() – Cara Mudah Memberi Jeda pada Program Kamu
- Mengapa Saya Berhenti Menggunakan Class di Python (Dan Apa yang Saya Gunakan Sebagai Gantinya)
- Different Delay Time of Python sleep() – Mengatur Jeda Sesuai Kebutuhan Program
- Mengenal Python math Module: Panduan Lengkap untuk Operasi Matematika di Python
Last updated on June 03, 2026