Bagian 3 menetapkan teknik untuk tiap pertanyaan, tetapi saat itu semuanya masih berstatus kandidat. Pada bagian ini kandidat-kandidat tersebut diuji kesesuaiannya sebelum satu angka pun dihitung, karena memilih teknik adalah keputusan desain: teknik yang keliru tetap menghasilkan angka, hanya saja angka yang menjawab pertanyaan lain dari yang kita ajukan. Kita juga mencatat teknik-teknik yang sengaja tidak dipilih beserta alasannya — bagian Metode pada laporan akhir kelak memuat keputusan-keputusan ini, dan alasan menolak sesuatu sama pentingnya dengan alasan memilihnya.

Kontrak Pertanyaan dan Teknik Kandidat #

Sebelum menguji, kita pulihkan dulu kontrak kerja dari Bagian 3:

KodePertanyaanKolomTeknik kandidat
P1Apakah jam belajar berhubungan dengan nilai?jam_belajar_mingguan, nilai_ujianKorelasi Pearson
P2Apakah kehadiran berhubungan dengan nilai?kehadiran_persen, nilai_ujianKorelasi Pearson
P3Apakah rata-rata nilai kedua kelas berbeda bermakna?kelas, nilai_ujianUji-t dua sampel bebas
P4Berapa perkiraan nilai tiap tambahan jam belajar?jam_belajar_mingguan, nilai_ujianRegresi linear sederhana

Keempat pertanyaan itu kebetulan menghadirkan tiga jenis hubungan yang berbeda: antar dua kolom numerik (P1, P2), antar dua kelompok (P3), dan pola perkiraan dari satu kolom ke kolom lain (P4). Tiga jenis inilah yang menentukan tekniknya — bukan selera, bukan pula tingkat keterkenalan nama tekniknya.

Alasan di Balik Tiap Pemilihan #

P1 dan P2 memakai korelasi Pearson karena keduanya membandingkan dua kolom numerik pada kelompok siswa yang sama. Koefisien Pearson menghasilkan satu angka antara -1 dan +1 yang merangkum arah serta kekuatan hubungan linear; materi lengkapnya ada pada chapter Korelasi dan Kovarians . Prasyarat terpentingnya adalah hubungan yang kira-kira mengikuti garis lurus — klaim yang belum kita periksa, dan yang kelak diverifikasi lewat scatter plot pada Bagian 9 sebelum laporan ditulis.

P3 memakai uji-t dua sampel bebas karena pertanyaannya membandingkan rata-rata dua kelompok yang tidak saling berbagi anggota: setiap siswa hanya tercatat di satu kelas. Mengapa tidak cukup membandingkan angka 70,60 lawan 66,87 dari Bagian 6? Karena rata-rata sampel bergoyang dari sampel ke sampel — selisih kecil bisa muncul dari kebetulan pengambilan data. Uji-t menghitung seberapa besar selisih semacam itu wajar muncul bila kedua kelas sesungguhnya setara, sehingga keputusan kita berpijak pada peluang, bukan pada kesan. Kerangka berpikirnya — hipotesis nol, statistik uji, p-value — pernah kita bangun pada chapter Pengujian Hipotesis .

P4 memakai regresi linear sederhana karena pertanyaannya meminta perkiraan besaran, bukan sekadar ada tidaknya hubungan. Regresi mencocokkan garis nilai = a + b × jam belajar pada data; kemiringan garisnya (slope) menjawab “berapa perubahan nilai rata-rata per tambahan satu jam”, dan ukuran R-kuadratnya menjawab seberapa dekat titik-titik data mengikuti garis tersebut. Dua angka itulah yang dibutuhkan pembaca laporan untuk memahami kekuatan pola.

Teknik yang Sengaja Tidak Dipilih #

Menolak teknik dengan alasan tercatat adalah bagian dari kejujuran metode. Empat kandidat yang sering menggoda untuk dataset semacam ini kita coret satu per satu:

  1. Clustering — bertugas menemukan kelompok tersembunyi pada data tanpa label. Kelompok kita sudah diketahui (kelas A dan B), dan yang dicari adalah hubungan antar kolom, bukan kelompok baru. Clustering pada 30 baris berisiko menghasilkan gugusan yang hanya memantulkan kebetulan. Teknik ini tepat dipakai justru ketika kelompoknya belum ada — sebagaimana pada proyek segmentasi pelanggan sebelumnya, yang pertanyaannya memang mencari segmen.
  2. Klasifikasi dan prediksi machine learning — bertugas menebak label atau nilai milik observasi baru. Tujuan kita adalah memahami hubungan di dalam data yang ada, bukan membangun mesin perkiraan; dan 30 baris terlalu sedikit untuk melatih sekaligus menguji model secara adil. Regresi dua parameter sudah menjawab P4 dengan bahasa yang bisa dibaca siapa pun.
  3. ANOVA — saudara uji-t untuk membandingkan tiga kelompok atau lebih. Dataset ini hanya memiliki dua kelas, sehingga uji-t yang lebih sederhana memadai. ANOVA menjadi pilihan saat kolom kategorikalnya memuat banyak kelas.
  4. Analisis deret waktu — memerlukan pengamatan berurutan pada sumbu waktu. Data kita adalah potret satu ujian tanpa dimensi waktu, sehingga tidak ada deret yang bisa dibaca.

Daftar Periksa Prasyarat pada Data #

Pemilihan yang beralasan tetap perlu diperiksa terhadap data yang sesungguhnya. Kompas berikut memeriksa syarat-syarat teknis keempat teknik pada 30 baris bersih:

python
import pandas as pd


def muat_bersih(path):
    """Muat data mentah dan terapkan seluruh langkah pembersihan."""
    df = pd.read_csv(path).drop_duplicates().reset_index(drop=True)
    df["kelas"] = df["kelas"].str.upper()
    df["kehadiran_persen"] = pd.to_numeric(df["kehadiran_persen"].replace("-", pd.NA))
    df = df.dropna(subset=["kehadiran_persen"]).reset_index(drop=True)
    df["kehadiran_persen"] = df["kehadiran_persen"].astype(int)
    return df


bersih = muat_bersih("../data/nilai_siswa.csv")

kolom_numerik = ["jam_belajar_mingguan", "kehadiran_persen", "nilai_ujian"]
semua_numerik = all(
    pd.api.types.is_numeric_dtype(bersih[kolom]) for kolom in kolom_numerik
)
jumlah_kelas = bersih["kelas"].nunique()
ukuran_kelas = bersih["kelas"].value_counts().sort_index().to_dict()
rentang_jam = bersih["jam_belajar_mingguan"].max() - bersih["jam_belajar_mingguan"].min()

periksa = {
    "P1/P2/P4: kolom numerik lengkap": semua_numerik,
    "P1/P2/P4: minimal 30 pasangan data": len(bersih) >= 30,
    "P3: tepat dua kelompok kelas": jumlah_kelas == 2,
    "P3: kedua kelompok cukup berisi": min(ukuran_kelas.values()) >= 10,
    "P4: prediktor tidak mendatar (rentang > 5)": rentang_jam > 5,
}

print("Daftar periksa prasyarat teknik pada data bersih:")
for syarat, lolos in periksa.items():
    print(f"  [{'x' if lolos else ' '}] {syarat}")
print()
print("Jumlah baris bersih :", len(bersih))
print("Ukuran tiap kelas   :", ukuran_kelas)
print("Rentang jam belajar :", rentang_jam, "jam")
print()
print("Keputusan:", "SEMUA TEKNIK LAYAK DIPAKAI" if all(periksa.values())
      else "ADA TEKNIK YANG PERLU DIGANTI")

Output yang Dihasilkan:

text
Daftar periksa prasyarat teknik pada data bersih:
  [x] P1/P2/P4: kolom numerik lengkap
  [x] P1/P2/P4: minimal 30 pasangan data
  [x] P3: tepat dua kelompok kelas
  [x] P3: kedua kelompok cukup berisi
  [x] P4: prediktor tidak mendatar (rentang > 5)

Jumlah baris bersih : 30
Ukuran tiap kelas   : {'A': 15, 'B': 15}
Rentang jam belajar : 14 jam

Keputusan: SEMUA TEKNIK LAYAK DIPAKAI

Cara membaca daftar periksa tersebut:

  1. Kolom numerik lengkap menegaskan hasil pembersihan Bagian 5: setelah - ditangani dan tipe diperbaiki, ketiga kolom analisis benar-benar numerik. Korelasi dan regresi akan menolak kolom bertipe teks, jadi pemeriksaan ini mencegah galat di tengah jalan.
  2. Minimal 30 pasangan data adalah patokan kasar agar korelasi tidak ditopang segelintir titik. Pada 30 baris, satu titik pencilan sudah cukup menggeser angka korelasi — keterbatasan yang akan kita catat lagi saat interpretasi.
  3. Tepat dua kelompok dengan isi seimbang (15 berbanding 15) memenuhi syarat uji-t sampel bebas dan membuat perbandingannya lebih mudah ditafsirkan. Kelompok yang timpang tetap bisa diuji, tetapi pembacaannya perlu langkah ekstra.
  4. Rentang prediktor 14 jam berarti garis regresi punya ruang yang cukup untuk ditopang data — prediktor yang mendatar membuat slope tak bermakna.

Seluruh syarat terpenuhi dan keputusan terkunci: korelasi Pearson untuk P1-P2, uji-t untuk P3, regresi linear untuk P4. Sekarang saatnya menghitung dan membaca angkanya satu per satu — pekerjaan yang menanti pada Bagian 8: Menerapkan Teknik Analisis .