Interactive Python Studio • Analisis & Uji Coba Langsung

Penjelasan Kode & Interactive Playground

Pelajari anatomi logika program inti pembersihan data baris demi baris. Anda dapat langsung memilih berbagai studi kasus materi kuliah, mengubah kode secara kustom, dan menjalankannya dengan keluaran terminal langsung.

Interactive Code Playground
Pilih studi kasus di bawah atau tuliskan kode analisis Python bebas Anda sendiri.
1. Deteksi Missing Values Python 3.11
1
Terminal Output / Hasil Eksekusi
Siap Dijalankan 0 ms
[INFO] Klik tombol "Jalankan Kode" untuk mengeksekusi program dan melihat output analisis...
Bedah Rinci Kode Program Inti (analisis_pengolahan_data.py)
Penjelasan mendalam setiap tahapan algoritma data mining yang tertulis pada program utama

1. Pemuatan Dataset (Data Loading)

Fungsi pd.read_csv('insurance_raw.csv') memuat berkas tabular CSV ke dalam struktur data DataFrame di memori RAM komputer.

df_raw = pd.read_csv('insurance_raw.csv')
print(f"Dimensi data: {df_raw.shape[0]} baris x {df_raw.shape[1]} kolom")

Atribut .shape menghasilkan tuple (1338, 7) yang langsung memverifikasi integritas baris awal pasien sebelum dilakukan manipulasi data.

2. Inspeksi Struktur & Statistik Deskriptif (Data Inspection)

Memeriksa tipe data masing-masing kolom dan menghitung ringkasan statistik 5-angka (Minimum, Kuartil 1, Median, Kuartil 3, Maksimum).

df_raw.info() # Memeriksa tipe data int64, float64, object
df_raw.describe().round(2) # Menghitung mean, std, min, 25%, 50%, 75%, max
df_raw.describe(include=['object']) # Menghitung frekuensi data kategorikal (sex, smoker, region)

3. Pengecekan Missing Values (Data Kosong)

Fungsi .isnull().sum() menjumlahkan nilai boolean True pada setiap kolom untuk mendeteksi sel kosong.

null_counts = df_raw.isnull().sum()
total_missing = null_counts.sum() # Hasil: 0 nilai kosong

Karena nilai total missing = 0, tidak diperlukan imputasi buatan, sehingga keaslian distribusi data terjaga secara murni.

4. Deteksi & Eliminasi Duplikat (Duplicate Handling)

Metode df_raw.duplicated(keep=False) menandai seluruh baris yang memiliki nilai identik di semua kolom.

# 1. Temukan baris kembar
duplicate_rows = df_raw[df_raw.duplicated(keep=False)] # Terdeteksi baris 195 & 581

# 2. Hapus salah satu baris kembar dan buat salinan baru
df_clean = df_raw.drop_duplicates().copy() # Menghasilkan 1.337 baris

5. Algoritma Deteksi Outlier Interquartile Range (IQR)

Metode pemagaran Tukey menggunakan nilai kuartil untuk menetapkan batas atas dan batas bawah data normal.

Q1 = df_clean['charges'].quantile(0.25) # $4.740,29
Q3 = df_clean['charges'].quantile(0.75) # $16.639,91
IQR = Q3 - Q1 # $11.899,62
upper_bound = Q3 + 1.5 * IQR # $34.524,79

# Filter baris outlier
outliers = df_clean[df_clean['charges'] > upper_bound] # 139 baris (10,4%)

6. Rekayasa Fitur & Diskretisasi Kategori WHO (pd.cut)

Fungsi pd.cut() membagi data angka kontinu menjadi interval diskret (binning) berdasarkan batas acuan medis.

bmi_bins = [0, 18.49, 24.99, 29.99, 100]
bmi_labels = ['Underweight', 'Normal', 'Overweight', 'Obese']
df_clean['bmi_category'] = pd.cut(df_clean['bmi'], bins=bmi_bins, labels=bmi_labels)

7. Penyimpanan Multi-Sheet Excel (pd.ExcelWriter)

Menyimpan hasil data bersih dan ringkasan agregasi terpisah ke dalam satu berkas spreadsheet menggunakan engine openpyxl.

with pd.ExcelWriter('insurance_clean.xlsx', engine='openpyxl') as writer:
    df_clean.to_excel(writer, sheet_name='Data_Bersih', index=False)
    summary_smoker.to_excel(writer, sheet_name='Ringkasan_Merokok')
    summary_bmi.to_excel(writer, sheet_name='Ringkasan_BMI')
    summary_age.to_excel(writer, sheet_name='Ringkasan_Usia')