Method yang sudah dikuasai akan cepat tumpul tanpa bahan untuk dipraktikkan, dan bahan itu harus aman: data latihan yang baik tidak mengandung informasi pribadi, ukurannya ringan, dan boleh dibagikan bebas. Chapter ini menyusun kriteria dataset latihan yang sehat, memetakan dataset klasik yang biasa dipakai komunitas, dan menutup dengan satu dataset bawaan yang bisa Anda muat sekarang juga — tanpa unduhan apa pun. Contoh sepanjang course ini memang sengaja memakai data buatan seperti penjualan toko; dataset terbuka adalah langkah berikutnya untuk berlatih dengan data yang tidak kita rancang sendiri.

Kriteria Dataset Latihan yang Aman #

Sebelum mengunduh data untuk latihan, saring dengan lima kriteria berikut.

  • Legalitas jelas: dataset terbuka dengan lisensi yang mengizinkan pemakaian dan pembagian ulang, seperti data pemerintah di portal Open Data Indonesia atau repositori akademik.
  • Tanpa data pribadi: tidak ada nama, alamat, email, atau nomor identitas asli; jika ada, lakukan anonimisasi dulu.
  • Ukuran wajar: untuk latihan, file dari puluhan kilobyte hingga puluhan megabyte sudah cukup; dataset raksasa justru memperlambat siklus belajar.
  • Format umum: CSV, JSON, Parquet, atau Excel — format yang method IO pandas sudah biasa kita pakai.
  • Punya kamus data: penjelasan arti tiap kolom; tanpa kamus data, analisis menjadi menebak-nebak.

Kriteria kelima sering diabaikan padahal paling menentukan: dataset yang baik menjelaskan satuan dan makna kolomnya, sehingga pertanyaan analisis bisa dirumuskan dengan mantap.

Dataset Klasik untuk Memulai #

Beberapa dataset sudah menjadi “dialek umum” komunitas data — ketika Anda menuliskan hasil analisisnya, pembaca lain langsung memahami konteksnya.

DatasetIsiLatihan yang cocokCara akses
Iris150 baris ukuran tiga spesies bungaKlasifikasi, groupby, statistik deskriptifBawaan scikit-learn, offline
DigitsCitra 8x8 piksel angka tulisan tanganBekerja dengan data matriksBawaan scikit-learn, offline
WineKimia tiga varian anggurStatistik per kelompokBawaan scikit-learn, offline
TitanicData penumpang dan keselamatan merekaMissing data, feature sederhanaUnduhan atau seaborn.load_dataset, butuh internet
TipsTagihan restoran dan tipDistribusi, korelasi, plottingUnduhan atau seaborn.load_dataset, butuh internet

Perhatikan kolom akses: fungsi seaborn.load_dataset mengunduh data dari repositori seaborn saat pertama dipanggil, sehingga membutuhkan koneksi internet dan tidak cocok untuk skrip yang harus berjalan offline. Dataset bawaan scikit-learn justru terpasang bersama library-nya — itulah alasan contoh pada chapter ini memilih Iris.

Mencoba Dataset Bawaan scikit-learn #

Fungsi load_iris mengembalikan data Iris lengkap dengan labelnya, dan parameter as_frame=True meminta hasilnya langsung dalam bentuk DataFrame pandas. Skrip berikut memuat dataset tersebut, menerjemahkan label angka menjadi nama spesies, lalu meringkasnya.

python
from sklearn.datasets import load_iris

import pandas as pd

bunga = load_iris(as_frame=True)
df = bunga.frame
df["spesies"] = df["target"].map(dict(enumerate(bunga.target_names)))
df = df.drop(columns="target")

print("Jumlah baris:", len(df))
print()

print(df.head(3).to_string(index=False))
print()

print(df["spesies"].value_counts().sort_index().to_string())

Output yang Dihasilkan:

text
Jumlah baris: 150

 sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm) spesies
               5.1               3.5                1.4               0.2  setosa
               4.9               3.0                1.4               0.2  setosa
               4.7               3.2                1.3               0.2  setosa

spesies
setosa        50
versicolor    50
virginica     50

Mari kita telaah mekanismenya:

  1. Baris 6 (load_iris(as_frame=True)): dataset dimuat dari paket scikit-learn yang sudah terpasang; tidak ada permintaan jaringan sama sekali, sehingga skrip aman dijalankan di lingkungan terisolasi.
  2. Baris 9 (df["target"].map(...)): kolom target berisi angka 0, 1, 2; method map menerjemahkannya menjadi nama spesies menggunakan dictionary hasil enumerate atas bunga.target_names.
  3. Baris 10-13: kolom target angka dihapus agar tabel hanya berisi pengukuran dan nama spesies, lalu value_counts().sort_index() menghitung distribusi spesies secara alfabetis.

Output mengonfirmasi struktur dataset: 150 baris dengan 50 baris per spesies — pembagian seimbang yang menjadikan Iris ramah untuk latihan agregasi maupun klasifikasi. Empat kolom pengukurannya bernilai kontinu, sehingga latihan groupby, describe, dan visualisasi langsung bisa dilakukan tanpa pembersihan.

Membangun Kebiasaan Berlatih #

Rangkaiannya sederhana: mulai dari data buatan ber-seed seperti contoh course ini, lanjut ke dataset klasik di atas, lalu naik ke data publik nyata dari portal terbuka. Setiap dataset baru, jalankan ritual yang sama — read_csv dengan usecols dan dtype yang tepat (pola pembacaan file dibahas pada IO tools dan pandas.read_csv ), periksa info() dan head(), rumuskan tiga pertanyaan analisis, lalu jawab dengan groupby atau visualisasi. Ketika tiga pertanyaan itu terjawab mulus, dataset berikutnya menanti.

Dataset sudah tersedia, tutorial sudah terkumpul; sumber belajar terakhir yang sering dilupakan adalah kode orang lain. Chapter berikutnya membawa Anda ke gudang contoh kode resmi pandas.