Bagian 1 menutup dengan mean awal tiap mata pelajaran, tetapi satu ukuran pemusatan belum cukup untuk membaca kelas. Mean tercatat sensitif terhadap nilai ekstrem, median tahan terhadapnya, dan modus menunjukkan nilai yang paling banyak dihuni — ketiganya saling melengkapi, dan jarak antar ketiganya justru menyimpan informasi. Pada bagian ini kita menghitung perangkat statistik deskriptif lengkap untuk ketiga mata pelajaran: ukuran pemusatan, ringkasan lima angka, standar deviasi, lalu menggunakannya untuk membaca jejak outlier yang sempat terlihat pada tabel mentah.
Tiga Ukuran Pemusatan #
Cuplikan berikut menghitung mean, median, dan modus untuk ketiga kolom nilai sekaligus. Modus dihitung dengan statistics.multimode karena jumlah modus bisa lebih dari satu — kebiasaan yang diperkenalkan chapter Statistik dengan Python Standar:
import statistics
matematika = [70, 88, 76, 80, 65, 84, 92, 68, 78, 86,
73, 62, 82, 45, 90, 66, 77, 81, 60, 79,
74, 87, 67, 76, 83, 69, 75, 64, 72, 85]
bahasa = [78, 70, 91, 84, 67, 82, 74, 89, 76, 80,
86, 64, 93, 72, 88, 75, 81, 68, 95, 77,
69, 85, 73, 90, 80, 87, 71, 92, 83, 80]
sains = [88, 60, 93, 73, 70, 78, 64, 90, 75, 83,
58, 71, 68, 76, 92, 65, 74, 79, 62, 72,
85, 67, 77, 70, 81, 59, 86, 74, 63, 82]
for nama, nilai in [("matematika", matematika), ("bahasa", bahasa), ("sains", sains)]:
print(f"{nama:<11s}: mean {statistics.mean(nilai):6.2f} | median {statistics.median(nilai):5.1f} | modus {statistics.multimode(nilai)}")Output yang Dihasilkan:
matematika : mean 75.13 | median 76.0 | modus [76]
bahasa : mean 80.00 | median 80.0 | modus [80]
sains : mean 74.50 | median 74.0 | modus [70, 74]Tiga pola berbeda terbaca dari angka-angka tersebut. Bahasa adalah contoh sebaran yang hampir simetris: mean, median, dan modus bertemu pada angka yang sama, 80 — tiga ukuran pemusatan yang sepakat menunjuk pusat data. Matematika menampilkan mean 75.13 yang berada di bawah median 76.0; nilai 45 milik Nadia menarik mean ke bawah tanpa menggerakkan median, persis perilaku yang dibahas chapter Mean tentang sensitivitas mean. Sains memiliki mean 74.50 di atas median 74.0 dan modus ganda [70, 74] — dua nilai yang sama sering munculnya, bentuk data multimodal yang membuat multimode lebih tepat daripada mode yang hanya mengembalikan satu nilai.
Ringkasan Lima Angka dan Sebaran #
Mean dan median menjawab “di mana pusatnya”; pertanyaan berikutnya adalah “seberapa lebar sebarannya”. Ringkasan lima angka — minimum, Q1, median, Q3, maksimum — plus standar deviasi menjawabnya sekaligus:
import statistics
import numpy as np
matematika = [70, 88, 76, 80, 65, 84, 92, 68, 78, 86,
73, 62, 82, 45, 90, 66, 77, 81, 60, 79,
74, 87, 67, 76, 83, 69, 75, 64, 72, 85]
bahasa = [78, 70, 91, 84, 67, 82, 74, 89, 76, 80,
86, 64, 93, 72, 88, 75, 81, 68, 95, 77,
69, 85, 73, 90, 80, 87, 71, 92, 83, 80]
sains = [88, 60, 93, 73, 70, 78, 64, 90, 75, 83,
58, 71, 68, 76, 92, 65, 74, 79, 62, 72,
85, 67, 77, 70, 81, 59, 86, 74, 63, 82]
for nama, nilai in [("matematika", matematika), ("bahasa", bahasa), ("sains", sains)]:
q1, q2, q3 = np.percentile(nilai, [25, 50, 75])
print(f"{nama:<11s}: min {min(nilai):2d} | Q1 {q1:6.2f} | median {q2:5.1f} | Q3 {q3:6.2f} | max {max(nilai):2d} | std {np.std(nilai, ddof=1):5.2f}")
print()
print("quantiles inclusive matematika :", statistics.quantiles(matematika, n=4, method="inclusive"))Output yang Dihasilkan:
matematika : min 45 | Q1 68.25 | median 76.0 | Q3 82.75 | max 92 | std 10.37
bahasa : min 64 | Q1 73.25 | median 80.0 | Q3 86.75 | max 95 | std 8.55
sains : min 58 | Q1 67.25 | median 74.0 | Q3 81.75 | max 93 | std 10.00
quantiles inclusive matematika : [68.25, 76.0, 82.75]Beberapa hal layak dicatat dari hasil di atas. Baris terakhir membuktikan kesetaraan yang sudah dikenal dari chapter Statistik dengan NumPy: np.percentile metode default menghasilkan kuartil yang persis sama dengan statistics.quantiles metode inclusive — 68.25, 76.0, 82.75 — sehingga kedua alat dapat dipakai bergantian. Standar deviasi dihitung dengan pembagi n − 1 (versi sampel, ddof=1), konvensi yang sama dengan statistics.stdev dan describe() pandas. Sebaran terlebar dimiliki matematika (std 10.37) dan terketat bahasa (8.55) — pola yang masuk akal karena satu nilai 45 di ujung matematika ikut melebarkan jarak tipikal data ke mean.
Membaca Jarak Mean-Median #
Eksperimen kecil berikut mengukur langsung seberapa besar pengaruh satu nilai terhadap dua ukuran pemusatan. Kita hitung ulang mean dan median matematika dua kali: dengan 30 data lengkap, lalu dengan 29 data tanpa nilai 45:
import statistics
matematika = [70, 88, 76, 80, 65, 84, 92, 68, 78, 86,
73, 62, 82, 45, 90, 66, 77, 81, 60, 79,
74, 87, 67, 76, 83, 69, 75, 64, 72, 85]
tanpa_45 = [x for x in matematika if x != 45]
print(f"mean 30 data : {statistics.mean(matematika):.2f}")
print(f"mean 29 data : {statistics.mean(tanpa_45):.2f}")
print(f"median 30 data : {statistics.median(matematika):.1f}")
print(f"median 29 data : {statistics.median(tanpa_45):.1f}")
print(f"selisih mean : {statistics.mean(tanpa_45) - statistics.mean(matematika):.2f}")Output yang Dihasilkan:
mean 30 data : 75.13
mean 29 data : 76.17
median 30 data : 76.0
median 29 data : 76.0
selisih mean : 1.04Dua temuan penting tersembul dari eksperimen ini (angka dibulatkan ke dua desimal). Pertama, satu nilai dari 30 data menggeser mean lebih dari satu poin penuh — selisih 1.04 poin antara 76.17 dan 75.13; pada kelas dengan 30 siswa, satu ulangan yang jauh di bawah bisa mengubah kesan “rata-rata kelas” secara terasa. Kedua, median tidak bergerak sama sekali — tetap 76.0 — karena median hanya melihat peringkat, dan membuang data terendah tidak mengubah posisi tengah yang tersisa. Inilah alasan klasik chapter Median merekomendasikan median ketika data memuat nilai ekstrem.
Ringkasan Karakter Tiga Mata Pelajaran #
Dengan seluruh ukuran di tangan, ketiga mata pelajaran mulai menunjukkan wataknya masing-masing:
| Mata pelajaran | Mean vs median | std | Kesan awal |
|---|---|---|---|
| matematika | mean di bawah median | 10.37 | ada tarikan ke bawah — kandidat outlier rendah |
| bahasa | ketiganya bertemu di 80 | 8.55 | simetris dan paling rapat sebarannya |
| sains | mean di atas median | 10.00 | tarikan ringan ke atas — beberapa nilai tinggi |
Kesan awal ini belum boleh menjadi kesimpulan: jarak mean-median bisa juga lahir dari sebaran yang miring tanpa ada outlier sama sekali. Dua pertanyaan masih terbuka. Apakah nilai 45 benar-benar outlier menurut ukuran formal, bukan sekadar nilai terendah? Dan bagaimana bentuk sebaran ketiganya bila dilihat dari frekuensi kelas dan grafiknya? Bagian 3 menjawab keduanya dengan tabel frekuensi, histogram, skewness, dan uji z-score.