Pengertian File CSV
CSV (Comma-Separated Values) adalah format file teks sederhana yang menyimpan data tabular dalam bentuk baris dan kolom, dengan pemisah koma (,
) atau delimiter lainnya.
Karakteristik CSV:
- Format universal yang bisa dibuka di Excel, text editor, atau program lainnya
- Ringan dan kompatibel dengan berbagai sistem
- Tidak mendukung tipe data kompleks (hanya teks)
- Setiap baris = 1 record, setiap kolom dipisahkan delimiter
Struktur File CSV
Contoh isi file data_mahasiswa.csv
:
NIM,Nama,Jurusan,IPK 001,Andi Wijaya,Informatika,3.75 002,Budi Santoso,Teknik Elektro,3.50 003,Citra Dewi,Manajemen,3.80
Operasi Dasar dengan Python
a. Membaca File CSV
import csv # Membuka file CSV with open('data_mahasiswa.csv', mode='r') as file: reader = csv.reader(file) # Membaca per baris for row in reader: print(row) # Output: # ['NIM', 'Nama', 'Jurusan', 'IPK'] # ['001', 'Andi Wijaya', 'Informatika', '3.75'] # ['002', 'Budi Santoso', 'Teknik Elektro', '3.50'] # ['003', 'Citra Dewi', 'Manajemen', '3.80']
b. Menulis File CSV
data_baru = [ ['004', 'Dedi Pratama', 'Sistem Informasi', '3.60'], ['005', 'Eva Nurlela', 'Akuntansi', '3.90'] ] with open('data_mahasiswa.csv', mode='a', newline='') as file: writer = csv.writer(file) writer.writerows(data_baru)
Library Pandas untuk CSV
a. Membaca CSV ke DataFrame
import pandas as pd df = pd.read_csv('data_mahasiswa.csv') print(df.head())
b. Menulis DataFrame ke CSV
# Tambah data baru df_baru = pd.DataFrame({ 'NIM': ['006'], 'Nama': ['Fajar Setiawan'], 'Jurusan': ['Psikologi'], 'IPK': [3.70] }) # Simpan ke file (mode append) df_baru.to_csv('data_mahasiswa.csv', mode='a', header=False, index=False)
Studi Kasus: Sistem Nilai Mahasiswa
a. File CSV Input (nilai_mahasiswa.csv
)
NIM,Nama,Tugas,UTS,UAS 001,Andi,85,75,80 002,Budi,70,65,75 003,Citra,90,85,95
b. Program Hitung Nilai Akhir
import pandas as pd # Baca data df = pd.read_csv('nilai_mahasiswa.csv') # Hitung nilai akhir (30% Tugas + 30% UTS + 40% UAS) df['Nilai_Akhir'] = 0.3*df['Tugas'] + 0.3*df['UTS'] + 0.4*df['UAS'] # Konversi ke huruf mutu def konversi_nilai(score): if score >= 85: return 'A' elif score >= 70: return 'B' elif score >= 60: return 'C' else: return 'D' df['Huruf_Mutu'] = df['Nilai_Akhir'].apply(konversi_nilai) # Simpan hasil df.to_csv('hasil_nilai.csv', index=False) print("File hasil telah disimpan!")
c. Output File (hasil_nilai.csv
)
NIM,Nama,Tugas,UTS,UAS,Nilai_Akhir,Huruf_Mutu 001,Andi,85,75,80,80.0,B 002,Budi,70,65,75,71.5,B 003,Citra,90,85,95,90.5,A
Best Practices CSV
- Gunakan Header: Selalu sertakan baris header untuk penjelasan kolom
- Encoding UTF-8: Hindari masalah karakter khusus
- Handle Missing Values: Tandai dengan
NA
atau string kosong - Validasi Data: Cek konsistensi data sebelum diproses