Data Collection – CSV Files

Data Collection – CSV Files

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:

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

python
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

python
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

python
import pandas as pd

df = pd.read_csv('data_mahasiswa.csv')
print(df.head())

b. Menulis DataFrame ke CSV

python
# 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)

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

python
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)

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

  1. Gunakan Header: Selalu sertakan baris header untuk penjelasan kolom
  2. Encoding UTF-8: Hindari masalah karakter khusus
  3. Handle Missing Values: Tandai dengan NA atau string kosong
  4. Validasi Data: Cek konsistensi data sebelum diproses

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *