Mempelajari stack Python untuk AI: NumPy untuk komputasi numerik, Pandas untuk manipulasi data, Matplotlib untuk visualisasi, dan scikit-learn untuk machine learning dasar; serta praktik Exploratory Data Analysis pada dataset iris sebagai latihan nyata pertama.

Setelah di episode 2 kita membangun peta bidang AI dan terminologi kunci, kini saatnya turun ke kode. Episode ini adalah jembatan dari teori ke praktik: kalian akan menguasai empat library paling mendasar di dunia AI — NumPy, Pandas, Matplotlib, dan scikit-learn — lalu mempraktikkannya dengan Exploratory Data Analysis (EDA) pada dataset nyata.
Mengapa ini penting? Karena 80% pekerjaan AI engineer nyata justru bukan training model, melainkan memahami dan membersihkan data. Sebelum model bisa belajar apa pun, kalian harus tahu bentuk, kualitas, dan pola datanya. Library-library di episode ini adalah peralatan sehari-hari untuk pekerjaan itu.
NumPy adalah fondasi segalanya — TensorFlow dan PyTorch dibangun di atas konsep array NumPy. Library ini menyediakan array multidimensi dan operasi vektor yang cepat (jauh lebih cepat dari list Python biasa).
import numpy as np
arr = np.array([[1, 2], [3, 4]])
print(arr.shape) # (2, 2)
print(arr + 10) # broadcast: tambahkan ke semua elemen
print(np.mean(arr)) # 2.5Kunci mental: selalu vektorisasi. Tulis operasi pada seluruh array, jangan loop per-elemen — itu pembeda performa antara kode yang lambat dan cepat.
Pandas menyediakan DataFrame — struktur tabel dua dimensi mirip spreadsheet. Ini alat utama EDA: membaca CSV, memfilter, mengelompokkan, dan menangani nilai kosong.
import pandas as pd
df = pd.read_csv("data.csv")
print(df.head()) # 5 baris pertama
print(df.info()) # tipe & non-null per kolom
print(df.describe()) # statistik ringkas per kolom numerikMatplotlib membuat grafik: scatter, histogram, boxplot. Visualisasi adalah cara tercepat menemukan pola dan anomali yang tidak terlihat di tabel angka.
scikit-learn adalah library ML klasik yang paling populer: model (klasifikasi, regresi, clustering), preprocessing, dan metrik evaluasi dalam satu API yang konsisten. Kita mulai memakainya di episode 4.
Install semuanya dalam satu perintah di dalam venv episode 0:
pip install numpy pandas matplotlib scikit-learn jupyterBuat notebook baru, lalu jalankan sel-demi-sel. Workflow khas AI: tulis hipotesis, eksplorasi dengan kode, amati hasil, ulangi. Jupyter membuat loop ini cepat karena setiap sel bisa dijalankan ulang tanpa memulai dari nol.
Kita pakai dataset Iris — legenda dunia ML: 150 sampel bunga iris dari 3 spesies, masing-masing dengan 4 fitur ukuran (sepal dan petal). Meski sederhana, Iris punya semua elemen EDA yang kalian butuhkan.
import pandas as pd
from sklearn.datasets import load_iris
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df["species"] = iris.target_names[iris.target]
print(df.head())
print(df["species"].value_counts())Perhatikan: iris.feature_names memberi nama kolom fitur, dan kita menambahkan kolom species sebagai label.
print(df.isnull().sum()) # harus 0 di semua kolom
print(df.dtypes) # semua numerik + object untuk species
print(df.duplicated().sum()) # baris duplikatData ideal tidak pernah ada di dunia nyata. isnull().sum(), duplicated(), dan dtypes adalah pemeriksaan pertama yang selalu dilakukan — jika ada nilai kosong, kita perlu memutuskan strategi (dibahas di episode 10).
grouped = df.groupby("species").agg(["mean", "std"]).round(2)
print(grouped)Pertanyaan klasik EDA: apakah spesies benar-benar bisa dibedakan dari fiturnya? Jika rata-rata fitur antar spesies berbeda nyata, maka klasifikasi ML berpeluang besar bekerja.
import matplotlib.pyplot as plt
for species in df["species"].unique():
subset = df[df["species"] == species]
plt.scatter(subset["sepal length (cm)"],
subset["petal length (cm)"],
label=species)
plt.xlabel("Sepal length (cm)")
plt.ylabel("Petal length (cm)")
plt.legend()
plt.show()Dari plot, kalian akan melihat satu spesies (setosa) terpisah jelas, sementara dua lainnya saling tumpang tindih — petunjuk penting bahwa tugas klasifikasi antar kedua spesies itu lebih sulit.
Tip
Satu angka bisa menyesatkan, satu plot bisa bercerita. Biasakan men-plot data sebelum memodelkannya — pola yang terlihat mata sering tidak terlihat di tabel statistik. Prinsip ini dikenal sebagai visual inspection first.
Analisis korelasi memperkuat temuan visual:
numeric = df.select_dtypes(include="number")
print(numeric.corr().round(2))Korelasi tinggi antara petal length dan petal width (sekitar 0.96) menunjukkan keduanya membawa informasi yang serupa — pengetahuan yang berguna saat feature selection di episode 10.
for baris per baris; pakai operasi vektor (groupby, apply).Inti yang harus dibawa pulang:
Di episode 4 selanjutnya kita akan membahas Machine Learning untuk pemahaman AI — supervised (classification & regression), unsupervised (clustering), dan reinforcement learning, plus pipeline nyata train/test split, fit, predict, dan evaluasi accuracy/precision di dataset iris yang sama. Sampai jumpa di episode 4!