Belajar AI - Data: Akuisisi, Persiapan & Pipeline
Episode 9 of 24

Belajar AI - Data: Akuisisi, Persiapan & Pipeline

Mempelajari sisi data engineering dari AI: akuisisi, cleaning, augmentation, labeling, dan data versioning; serta membangun pipeline data untuk training yang benar — train/validation/test split, normalization, dan feature engineering — untuk mencegah data leakage.

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 8 kalian memahami cara mengevaluasi model dan dimensi etika, episode ini kembali ke tanah: data. Model yang hebat tidak ada artinya tanpa data yang benar. Di dunia kerja, pernyataan "80% waktu engineer AI dihabiskan untuk data" bukan lelucon — ini deskripsi pekerjaan sehari-hari.

Mengapa episode ini penting? Karena hampir semua kegagalan model di produksi bukan karena modelnya, melainkan karena kualitas data: data yang kotor, leakage, distribusi yang berubah, atau label yang salah. Episode ini membangun kebiasaan data engineering yang benar sejak awal — kebiasaan yang akan membedakan kalian dari mereka yang hanya "memanggil model".

Akuisisi Data: Dari Mana Data Datang

Sumber data nyata bermacam-macam:

SumberContohTantangan Utama
Internal (database, log)Transaksi, log serverQuery, join, privacy
EksternalDataset publik (Kaggle, Hugging Face), scrapingLisensi, kualitas, legalitas
User-generatedFeedback, reviewKuantitas, noise
Labeling manualAnotasi gambarBiaya, konsistensi

Data generation adalah tren 2025-2026: memakai LLM untuk membuat data sintetis tambahan (augmentasi, label awal yang lalu di-review manusia). Hemat biaya, tetapi hasilnya harus selalu diaudit — data sintetis bisa menyuntik bias model penghasilnya.

Download dataset dari Hugging Face
pip install datasets huggingface_hub
Muat dataset dari Hugging Face
from datasets import load_dataset
 
ds = load_dataset("tweet_eval", "sentiment")
print(ds["train"][0])

Cleaning Data

Data mentah selalu kotor. Pipeline cleaning standar:

  1. Hapus duplikat: df.drop_duplicates().
  2. Tangani missing values: hapus baris (jika sedikit) atau imputasi (median/modus) — detail di episode 10.
  3. Perbaiki tipe data: tanggal, angka, kategori.
  4. Deteksi outlier: nilai ekstrem dari error sensor atau kesalahan input.
  5. Standardisasi teks (untuk NLP): lowercase, normalisasi whitespace, perbaiki typo.
Cleaning data standar
import pandas as pd
 
df = pd.read_csv("raw_orders.csv")
df = df.drop_duplicates()
df["price"] = pd.to_numeric(df["price"], errors="coerce")
df = df.dropna(subset=["price"])
df = df[df["price"].between(0, 100000)]   # buang outlier tak masuk akal
print(df.info())

Aturan penting: selalu simpan versi raw. Jangan pernah menimpa data mentah hasil cleaning — suatu saat kalian butuh kembali ke sumber untuk debugging.

Labeling Data

Supervised learning butuh label yang benar. Dua pendekatan:

  • Manual labeling: tim anotator atau crowdsourcing (Amazon Mechanical Turk, platform labeling). Kunci kualitas: consensus — dua anotator yang setuju, yang ketiga memutuskan perselisihan.
  • Semi-supervised / LLM-assisted: model (termasuk LLM) menghasilkan label awal, manusia me-review. Memangkas biaya drastis.

Metrik penting: inter-annotator agreement (misal Cohen's Kappa) — jika anotator tidak sepakat, label tidak reliabel dan model akan belajar noise.

Data Augmentation

Augmentation menciptakan variasi data tanpa pengumpulan baru — cara paling efektif melawan overfitting (episode 5):

  • Gambar: rotasi, flip, crop, perubahan warna, noise.
  • Teks: synonym replacement, back-translation, parafrase dengan LLM.
  • Tabular: sedikit penambahan noise, SMOTE untuk kelas tidak seimbang.
Augmentasi gambar dengan torchvision
from torchvision import transforms
 
train_transform = transforms.Compose([
    transforms.RandomHorizontalFlip(p=0.5),
    transforms.RandomRotation(10),
    transforms.ColorJitter(brightness=0.2),
    transforms.ToTensor(),
])

Augmentasi menambah robustness: model yang dilatih dengan banyak variasi cenderung tidak terkejut oleh kondisi dunia nyata yang berubah.

Data Versioning

Data berubah sepanjang waktu. Tanpa versioning, mustahil mereproduksi training yang sudah lewat. Di episode 11 kita akan melihat experiment tracking; untuk data, ada dua level:

  • Dataset versioning: simpan hash/snapshot dataset per eksperimen (misal v1-2026-08-10).
  • DVC (Data Version Control): tool seperti git untuk data — melacak perubahan dataset dan menghubungkannya ke versi code & model.
Versioning dataset dengan DVC
dvc add data/train.csv
git commit -am "add train data v3"

Pipeline Data untuk Training: Aturan Anti-Leakage

Ini bagian yang paling sering salah di dunia nyata. Data leakage terjadi ketika informasi dari test/validation "bocor" ke training — hasilnya evaluasi terlihat bagus, tetapi model gagal di produksi.

100%

Aturannya: split dulu, baru preprocessing. Kalau kalian menghitung mean untuk normalization dari seluruh dataset lalu baru split, statistik dari data test ikut "diajarkan" ke model.

Pipeline yang benar: split sebelum transform
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.ensemble import RandomForestClassifier
 
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)
 
pipe = Pipeline([
    ("scaler", StandardScaler()),
    ("clf", RandomForestClassifier()),
])
 
pipe.fit(X_train, y_train)      # scaler fit hanya di train
print(pipe.score(X_test, y_test))

Pipeline scikit-learn menjamin transformer di-fit hanya pada data training — kebiasaan kecil yang mencegah kesalahan leakage yang mahal.

Warning

Data leakage adalah error paling berbahaya di ML karena tidak menimbulkan error — evaluasi tetap sukses. Tanda-tandanya: performa validasi "terlalu bagus" atau gap akurasi yang tidak masuk akal. Selalu ingat urutan: split → fit → transform, bukan sebaliknya.

Penutup

Inti yang harus dibawa pulang:

  • Data adalah sumber kualitas model: akuisisi → cleaning → labeling → augmentation → versioning.
  • Augmentasi dan data sintetis melawan overfitting dan memperluas data — tapi hasil sintetis harus diaudit.
  • Data versioning (DVC, hash dataset) adalah syarat reproducibilitas.
  • Aturan anti-leakage: split sebelum preprocessing; pakai Pipeline agar transformer hanya di-fit di train.

Di episode 10 selanjutnya kita akan mengasah Feature Engineering & Model Selection — encoding variabel kategorikal, scaling, feature selection, imputation, memilih baseline vs model lanjutan, dan trade-off interpretability, accuracy, serta cost. Sampai jumpa di episode 10!