Dataset yang baru diunduh ibarat kotak berlabel minim: baris dan kolomnya terlihat jelas, tetapi artinya hanya bisa ditebak. Dokumentasi dataset adalah alat yang mengubah tebakan menjadi kepastian — ia menjelaskan apa isi tiap kolom, bagaimana data dikumpulkan, dan sampai sejauh mana kesimpulannya boleh dibawa. Pada bagian ini kita membaca dokumentasi dataset contoh nilai_siswa.csv secara saksama, lalu membandingkannya dengan kenyataan di dalam berkas. Untuk dataset pilihan Anda sendiri, bagian ini mengajarkan cara membaca dokumentasinya — dan bila dokumentasinya tidak ada, cara menuliskannya sendiri.

Tiga Hal yang Harus Dibaca dari Dokumentasi #

Dokumentasi dataset yang baik selalu memuat tiga lapisan informasi, dan kita membacanya berurutan:

  1. Kamus data — daftar kolom beserta tipe dan artinya. Ini lapisan paling teknis: tanpa kamus data, kita tidak tahu apakah angka 85 pada suatu kolom berarti persen, rupiah, atau skor.
  2. Konteks pengumpulan — siapa, kapan, dan bagaimana data direkam. Konteks menentukan siapa populasi sesungguhnya di balik baris-baris data.
  3. Batas interpretasi — hal-hal yang secara sengaja tidak dijawab oleh data, misalnya variabel yang tidak terukur atau periode yang tidak tercakup.

Ketiga lapisan ini saling menopang. Kamus data tanpa konteks menghasilkan hitungan yang benar tetapi salah sasaran; konteks tanpa batas interpretasi mengundang kesimpulan yang melampaui datanya.

Kamus Data Dataset Contoh #

Kamus data biasanya tersaji sebagai tabel sederhana. Untuk dataset contoh ini, dokumentasinya menyatakan lima kolom dengan tipe dan arti sebagai berikut:

KolomTipe terdokumentasiArti
siswateksnama panggilan siswa, unik untuk tiap siswa
kelasteks (A/B)kelas tempat siswa belajar
jam_belajar_mingguanbilangan bulatrata-rata jam belajar per minggu
kehadiran_persenbilangan bulatpersentase kehadiran, 0-100
nilai_ujianbilangan bulatnilai ujian terakhir, skala 0-100

Dokumentasi yang baik juga mencantumkan cara pengumpulan: dataset contoh ini merupakan gabungan survei kebiasaan belajar (jam belajar diisi sendiri oleh siswa) dan rekap absensi serta nilai dari wali kelas, untuk satu ujian matematika di akhir semester. Kalimat sesederhana itu sudah mengubah cara kita membaca data — jam belajar adalah laporan mandiri siswa, sehingga bisa saja terlalu rendah atau terlalu tinggi dilaporkan.

Sekarang kita uji: apakah berkas yang sesungguhnya diunduh cocok dengan dokumentasinya? Kamus data kita susun sebagai DataFrame, lalu dibandingkan dengan tipe data yang dibaca pd.read_csv:

python
import pandas as pd

# Kamus data sebagaimana tertulis pada dokumentasi dataset contoh.
kamus = pd.DataFrame(
    {
        "kolom": ["siswa", "kelas", "jam_belajar_mingguan",
                  "kehadiran_persen", "nilai_ujian"],
        "tipe": ["teks", "teks (A/B)", "bilangan bulat",
                 "bilangan bulat", "bilangan bulat"],
        "arti": ["nama panggilan siswa, unik",
                 "kelas tempat siswa belajar",
                 "rata-rata jam belajar per minggu",
                 "persentase kehadiran, 0-100",
                 "nilai ujian terakhir, 0-100"],
    }
)
print("Kamus data versi dokumentasi:")
print(kamus.to_string(index=False))

df = pd.read_csv("../data/nilai_siswa.csv")
print("\nTipe data aktual hasil pd.read_csv:")
print(df.dtypes.to_string())

Output yang Dihasilkan:

text
Kamus data versi dokumentasi:
               kolom           tipe                             arti
               siswa           teks       nama panggilan siswa, unik
               kelas     teks (A/B)       kelas tempat siswa belajar
jam_belajar_mingguan bilangan bulat rata-rata jam belajar per minggu
    kehadiran_persen bilangan bulat      persentase kehadiran, 0-100
         nilai_ujian bilangan bulat      nilai ujian terakhir, 0-100

Tipe data aktual hasil pd.read_csv:
siswa                   object
kelas                   object
jam_belajar_mingguan     int64
kehadiran_persen        object
nilai_ujian              int64

Perhatikan hasil pembandingannya:

  1. Empat kolom cocok — siswa dan kelas terbaca object (tipe teks pandas), jam_belajar_mingguan dan nilai_ujian terbaca int64, persis seperti dokumentasi.
  2. Satu kolom tidak cocok — kehadiran_persen terdokumentasi bilangan bulat, tetapi terbaca object. pandas hanya memberi tipe object bila ada isi yang bukan angka; berarti di kolom itu ada sel bernilai aneh. Ini bukan kesalahan dokumentasi yang harus disanksikan — justru ini temuan penting: dokumentasi menjelaskan niat kolom, data menyimpan kenyataannya, dan selisih keduanya adalah daftar kerja untuk Bagian 4.
  3. Kamus data sebagai DataFrame sengaja dipakai agar pemeriksaan dokumentasi bisa dijalankan ulang oleh kode — bukan sekadar tabel yang dilupakan setelah dibaca sekali.

Konteks yang Menentukan Cara Membaca #

Dari dokumentasi kita tahu tiga fakta konteks yang akan menuntun seluruh proyek. Pertama, subjek datanya siswa sekolah menengah dari dua kelas paralel di satu sekolah — jadi populasi yang bisa kita generalisasi hanyalah kelompok serupa, bukan seluruh pelajar Indonesia. Kedua, jam belajar adalah laporan mandiri, sehingga angkanya patut dibaca dengan sedikit sikap hati-hati. Ketiga, data mengambil satu titik waktu (satu ujian akhir semester), sehingga analisis kita melihat potret, bukan film — kita tidak bisa mengetahui apakah kebiasaan belajar siswa berubah dari bulan ke bulan.

Batas Interpretasi yang Tercatat #

Dokumentasi yang jujur juga menuliskan apa yang tidak bisa dijawab datanya. Untuk dataset contoh ini, tiga batas tercatat sejak awal: tidak ada data nilai ujian sebelumnya (padahal itu prediktor terkuat nilai berikutnya), tidak ada informasi nilai mata pelajaran lain, dan tidak ada faktor di luar sekolah yang terukur, misalnya keikutsertaan les privat. Batas-batas ini akan kita angkat lagi saat menyusun laporan pada Bagian 11 — laporan yang baik selalu menuliskan keterbatasannya, bukan menyembunyikannya.

Membuat Dokumentasi untuk Dataset Anda #

Bila dataset pilihan Anda dari Kaggle atau UCI, halaman unduhannya biasanya sudah memuat tiga lapisan di atas — tugas Anda tinggal membaca. Bila Anda mengumpulkan data sendiri atau menemukan dataset tanpa dokumentasi, tuliskanlah minimal: satu tabel kamus data (kolom, tipe, arti), satu paragraf konteks (siapa, kapan, bagaimana), dan satu daftar batas (apa yang tidak terukur). Formatnya bebas; yang penting lapisan infonya lengkap. Dokumentasi ini akan menjadi rujukan pertama Anda setiap kali lupa arti sebuah kolom — dan rujukan pertama pembaca laporan Anda.

Dataset contoh sudah dipilih dan dokumentasinya sudah terbaca, termasuk satu selisih tipe yang mencurigakan. Sebelum menyentuh pembersihan, kita perlu memastikan seluruh rencana analisis memang bisa dijawab oleh kolom-kolom yang ada — caranya adalah merumuskan pertanyaan secara eksplisit pada Bagian 3: Merumuskan Pertanyaan .