Tutorial

Jago Python 2: Mini Project - The Data Cleaner & Reporter

· 3 min read
Python Programming
Jago Python 2: Mini Project - The Data Cleaner & Reporter

Kita akan menggabungkan Pandas untuk mengolah tabel dan Matplotlib untuk visualisasi.

šŸš€ Kode Lengkap Proyek

import pandas as pd
import matplotlib.pyplot as plt

def jalankan_otomasi_data(file_input):
    print(f"--- Memulai Proses Pembersihan: {file_input} ---")
    
    try:
        # 1. Load Data
        df = pd.read_csv(file_input)
        
        # 2. Pembersihan Data Kosong (Cleaning)
        # Menghapus baris yang semua kolomnya kosong
        df_clean = df.dropna(how='all')
        # Mengisi kolom 'Skor' yang kosong dengan nilai rata-rata
        if 'Skor' in df_clean.columns:
            rata_rata = df_clean['Skor'].mean()
            df_clean['Skor'] = df_clean['Skor'].fillna(rata_rata)
        
        # 3. Merapikan Teks (Standardization)
        # Mengubah kolom 'Nama' jadi Format Judul (Huruf Besar di Awal)
        if 'Nama' in df_clean.columns:
            df_clean['Nama'] = df_clean['Nama'].str.title().str.strip()

        # 4. Analisis Ringkas
        print("\n--- Ringkasan Data ---")
        print(df_clean.describe())

        # 5. Export Hasil ke Excel/CSV Baru
        nama_file_baru = "data_bersih_final.csv"
        df_clean.to_csv(nama_file_baru, index=False)
        print(f"\nāœ… File bersih berhasil disimpan: {nama_file_baru}")

        # 6. Visualisasi Otomatis
        if 'Nama' in df_clean.columns and 'Skor' in df_clean.columns:
            plt.figure(figsize=(10, 6))
            plt.bar(df_clean['Nama'], df_clean['Skor'], color='skyblue')
            plt.title('Laporan Skor Per Siswa (Otomatis)')
            plt.xlabel('Nama Siswa')
            plt.ylabel('Skor')
            plt.xticks(rotation=45)
            plt.tight_layout()
            
            # Simpan grafik
            plt.savefig('laporan_visual.png')
            print("āœ… Grafik laporan berhasil dibuat: laporan_visual.png")
            plt.show()

    except Exception as e:
        print(f"āŒ Terjadi kesalahan: {e}")

# Jalankan Proyek (Pastikan kamu punya file 'data_mentah.csv')
# jalankan_otomasi_data('data_mentah.csv')

šŸ’” Analisis "Sihir" di Balik Kode Ini

  • str.title().str.strip(): Ini sangat berguna buat bersihin input user yang berantakan (misal: " kAy " jadi "Kay").
  • fillna(rata_rata): Dalam dunia AI/Data, kita gak boleh sembarang hapus data. Mengisi data kosong dengan nilai rata-rata adalah salah satu teknik standar agar analisis tetap akurat.
  • to_csv(): Ini adalah cara kita "menghasilkan produk" berupa file baru yang siap dikirim ke bos atau klien.
  • plt.savefig(): Bayangkan kamu bikin script ini jalan setiap jam 8 pagi. Kamu bakal dapet file gambar laporan terbaru di folder kamu tanpa perlu buka Excel sama sekali!

šŸŽÆ Kesimpulan

Selamat! Kamu sudah menyelesaikan Season 2. Kamu bukan lagi sekadar "orang yang bisa coding", tapi sudah jadi "Orang yang bisa menyelesaikan masalah data".

Ilmu di Season 2 ini (terutama Pandas & NumPy) adalah syarat mutlak sebelum kita menyentuh materi AI Agent dan LLM Integration. Tanpa data yang bersih, AI tercanggih pun gak akan bisa kasih jawaban yang bener.

Share this article