MA1420 · DATA SAINS · SESI 02

Statistik Deskriptif I:
Ukuran Pemusatan & Penyebaran

Sebelum menganalisis data, kita perlu "mengenal" data kita terlebih dulu. Statistik deskriptif adalah cara kita memperkenalkan diri pada data — seperti bertanya "berapa rata-ratanya? seberapa bervariasi nilainya? adakah yang ekstrem?"

1. Peran Statistik Deskriptif

Statistik deskriptif adalah sekumpulan metode untuk merangkum dan menggambarkan karakteristik utama sebuah dataset — tanpa menarik kesimpulan lebih jauh (itu tugas statistik inferensi di sesi 4–5).

💡 ILUSTRASI — RAPOR SEKOLAH

Bayangkan seorang guru menerima 500 lembar nilai ujian. Tidak mungkin memahaminya satu per satu. Statistik deskriptif seperti membuat rapor ringkas: nilai tertinggi berapa? terendah berapa? rata-rata kelas berapa? ada yang sangat jauh dari rata-rata?

Tanpa statistik deskriptif, kita seperti membaca kamus kata per kata — tidak mendapat gambaran keseluruhan. Statistik deskriptif memberi kita "foto" dari data.

🗂️ DUA JENIS UKURAN UTAMA

Ukuran Pemusatan → Di mana "pusat" / "nilai tengah" data berada? (mean, median, modus)

Ukuran Penyebaran → Seberapa "menyebar" data dari pusatnya? (range, variance, std, IQR)

2. Ukuran Pemusatan: Mean, Median, Modus

Ketiga ukuran ini sama-sama menjawab pertanyaan: "Nilai mana yang paling mewakili keseluruhan data?" — tetapi dengan cara yang berbeda.

💡 ILUSTRASI — GAJI DI KANTOR

Sebuah startup punya 9 karyawan bergaji Rp 4–5 juta, dan 1 CEO bergaji Rp 50 juta.

🔴 Mean (rata-rata): (9×4,5 + 50) / 10 = Rp 9,05 juta → Terdengar besar, tapi tidak mewakili karyawan biasa karena "ditarik" oleh gaji CEO.
🟡 Median (nilai tengah): Rp 4,5 juta → Lebih jujur menggambarkan gaji "karyawan biasa".
🟢 Modus (paling sering): Rp 4 juta atau 5 juta → Gaji yang paling banyak orang terima.

MEAN (RATA-RATA) x̄ = Σxᵢ / n
Jumlahkan semua nilai, bagi dengan banyaknya data. Sensitif terhadap outlier (nilai ekstrem).
📌 Gunakan saat: data simetris, tidak ada outlier ekstrem
MEDIAN (NILAI TENGAH) Nilai ke-((n+1)/2)
Urutkan data, ambil nilai di tengah. Tidak terpengaruh outlier — lebih robust dari mean.
📌 Gunakan saat: ada outlier, data miring (skewed)
MODUS (TERBANYAK) nilai paling sering
Nilai yang muncul paling banyak. Satu-satunya ukuran yang bisa dipakai untuk data kategorikal.
📌 Gunakan saat: data kategorikal, ingin tahu "mayoritas"

Contoh Manual: Data Nilai Ujian

Data: 70, 75, 78, 80, 82, 82, 85, 88, 90, 95 (n = 10, sudah terurut)

MEAN 82.5
(70+75+…+95) / 10 = 825/10
MEDIAN 82.0
Rata-rata data ke-5 (82) dan ke-6 (82) = 82
MODUS 82
Muncul 2 kali, paling sering
⚡ KAPAN MENGGUNAKAN MASING-MASING?

Mean: Data gaji pegawai negeri (distribusi normal, tidak ada outlier besar)

Median: Data harga rumah, data gaji swasta (selalu ada outlier kaya raya)

Modus: "Ukuran baju apa yang paling laris?" — data kategorikal/diskrit

3. Ukuran Penyebaran

Dua dataset bisa memiliki mean yang sama persis tapi karakteristik yang sangat berbeda. Itulah mengapa kita perlu ukuran penyebaran.

💡 ILUSTRASI — DUA KELAS DENGAN RATA-RATA SAMA

Kelas A: nilai ujian = 75, 76, 77, 78, 79 → Rata-rata 77, semua hampir sama
Kelas B: nilai ujian = 50, 60, 77, 90, 108 → Rata-rata 77 juga, tapi sangat bervariasi!

Mean saja tidak cukup. Kita perlu tahu "seberapa berpencar" data dari mean-nya. Itulah fungsi ukuran penyebaran — seperti tahu apakah tim bola kaki terdiri dari pemain yang seragam kemampuannya, atau sangat tidak merata.

3.1 Range (Jangkauan)

Ukuran termudah: Range = Nilai Maksimum − Nilai Minimum.

CONTOH

Data: 70, 75, 78, 82, 95

Range = 95 − 70 = 25

⚠️ Kelemahan: Hanya memperhatikan dua nilai (max dan min). Rentan dipengaruhi outlier.

3.2 Variance & Standar Deviasi

Ini adalah ukuran penyebaran yang paling umum digunakan.

VARIANCE (s²) s² = Σ(xᵢ−x̄)² / (n−1)
Rata-rata kuadrat jarak setiap titik data dari mean. Dalam satuan kuadrat (sulit diinterpretasi langsung).
STANDAR DEVIASI (s) s = √(variance)
Akar dari variance. Dalam satuan yang sama dengan data asli — lebih mudah diinterpretasi.
📌 Paling sering digunakan dalam analisis data
💡 ILUSTRASI — BUSUR PANAH

Bayangkan 10 orang memanah target. Mean = rata-rata posisi semua anak panah. Standar Deviasi = seberapa "berpencar" anak panah dari rata-rata itu.

SD kecil → semua anak panah berkumpul rapat (konsisten)
SD besar → anak panah berserakan ke mana-mana (tidak konsisten)

Contoh Perhitungan Manual (Sederhana)

Data: 4, 6, 8, 10, 12 → Mean = 8

xᵢxᵢ − x̄(xᵢ − x̄)²
44 − 8 = −416
66 − 8 = −24
88 − 8 = 00
1010 − 8 = 24
1212 − 8 = 416
Jumlah (Σ) 40
✅ HASIL PERHITUNGAN

Variance = 40 / (5−1) = 40/4 = 10

Standar Deviasi = √10 ≈ 3.16

Artinya: nilai-nilai data rata-rata berjarak ≈3.16 dari mean (8).

3.3 Interquartile Range (IQR)

IQR adalah ukuran penyebaran yang tidak terpengaruh outlier — karena hanya memperhatikan 50% data tengah.

📐 RUMUS IQR

IQR = Q3 − Q1

Di mana Q1 = Kuartil pertama (25%) dan Q3 = Kuartil ketiga (75%)

Visualisasi distribusi data dalam kuartil:

Q1
Q2
Q3
Q4
MinQ1 (25%)Median (50%)Q3 (75%)Max

↔ IQR = Rentang antara Q1 dan Q3 (50% data tengah) ↔

4. Ukuran Posisi: Kuartil, Desil, Persentil

Ukuran posisi memberitahu kita di mana posisi suatu nilai relatif terhadap keseluruhan data.

💡 ILUSTRASI — PERINGKAT UJIAN NASIONAL

Nilai UN Anda 85. Apakah itu bagus? Bergantung! Jika berada di persentil ke-90, artinya Anda lebih tinggi dari 90% peserta lain — itu luar biasa. Jika persentil ke-40, berarti lebih dari separuh peserta nilainya di atas Anda.

UkuranPembagianNotasiContoh
Kuartil 4 bagian sama besar (25% tiap bagian) Q1, Q2, Q3 Q1=nilai batas bawah 25% data terendah
Desil 10 bagian sama besar (10% tiap bagian) D1, D2, ..., D9 D5 = sama dengan median (50%)
Persentil 100 bagian sama besar (1% tiap bagian) P1, P2, ..., P99 P90 = nilai yang melampaui 90% data lainnya
🌡️ CONTOH NYATA — TINGGI BADAN ANAK

WHO menggunakan persentil tinggi badan untuk menilai pertumbuhan anak:

• Anak di persentil ke-50: tinggi rata-rata untuk usianya

• Anak di persentil ke-95: sangat tinggi (lebih dari 95% anak seusianya)

• Anak di persentil ke-5: pendek — mungkin butuh perhatian medis

5. Pengaruh Outlier terhadap Statistik

Outlier adalah nilai yang sangat jauh dari nilai-nilai lainnya dalam dataset. Outlier bisa mengacaukan analisis kita jika tidak ditangani dengan benar.

💡 ILUSTRASI — TIMBANGAN BERAT BADAN

Sekelas mahasiswa punya berat rata-rata 60 kg. Tiba-tiba kita memasukkan data seorang pegulat profesional 150 kg. Rata-rata kelas naik drastis — tapi itu tidak merepresentasikan mahasiswa lain sama sekali.

Median dan IQR tidak terpengaruh outlier ini, tapi mean dan variance sangat terpengaruh. Itulah mengapa penting memilih ukuran yang tepat!

Deteksi Outlier dengan Metode IQR (Pagar/Fence)

📐 RUMUS BATAS OUTLIER

Batas Bawah = Q1 − 1.5 × IQR

Batas Atas = Q3 + 1.5 × IQR

Nilai di luar batas ini diklasifikasikan sebagai outlier.

Ukuran StatistikTerpengaruh Outlier?Solusi
Mean ✗ Sangat terpengaruh Gunakan median sebagai gantinya
Median ✓ Tidak terpengaruh Aman digunakan saat ada outlier
Standar Deviasi ✗ Sangat terpengaruh Gunakan IQR sebagai gantinya
IQR ✓ Tidak terpengaruh Pilihan terbaik saat ada outlier

6. Praktik: Statistik Deskriptif dengan Python

6.1 Dataset: Nilai Mahasiswa ISTN

PYTHON · STATISTIK DESKRIPTIF LENGKAP
import numpy as np
import pandas as pd

# Dataset: nilai UAS 20 mahasiswa Data Sains
nilai = [78, 85, 92, 67, 88, 74, 95, 81, 70, 83,
         76, 89, 55, 91, 73, 86, 98, 79, 82, 77]

s = pd.Series(nilai)  # buat Series Pandas

# ─── UKURAN PEMUSATAN ─────────────────────────────
print("═══ UKURAN PEMUSATAN ═══")
print(f"Mean   (Rata-rata) : {s.mean():.2f}")
print(f"Median (Nilai Tengah): {s.median():.2f}")
print(f"Modus  (Terbanyak)   : {s.mode()[0]}")

# ─── UKURAN PENYEBARAN ────────────────────────────
print("\n═══ UKURAN PENYEBARAN ═══")
print(f"Nilai Min          : {s.min()}")
print(f"Nilai Max          : {s.max()}")
print(f"Range              : {s.max() - s.min()}")
print(f"Variance           : {s.var():.2f}")
print(f"Std Deviasi        : {s.std():.2f}")

# ─── UKURAN POSISI ────────────────────────────────
Q1 = s.quantile(0.25)
Q3 = s.quantile(0.75)
IQR = Q3 - Q1

print("\n═══ UKURAN POSISI ═══")
print(f"Q1 (Kuartil 1 / 25%) : {Q1}")
print(f"Q2 (Median / 50%)    : {s.quantile(0.50)}")
print(f"Q3 (Kuartil 3 / 75%) : {Q3}")
print(f"IQR (Q3 - Q1)        : {IQR}")

# ─── DETEKSI OUTLIER ──────────────────────────────
batas_bawah = Q1 - 1.5 * IQR
batas_atas  = Q3 + 1.5 * IQR

outlier = s[(s < batas_bawah) | (s > batas_atas)]
print("\n═══ DETEKSI OUTLIER (Metode IQR) ═══")
print(f"Batas Bawah (Q1 - 1.5×IQR): {batas_bawah}")
print(f"Batas Atas  (Q3 + 1.5×IQR): {batas_atas}")
print(f"Outlier ditemukan: {outlier.values}")
📤 OUTPUT PROGRAM
═══ UKURAN PEMUSATAN ═══
Mean   (Rata-rata) : 80.95
Median (Nilai Tengah): 81.50
Modus  (Terbanyak)   : 78

═══ UKURAN PENYEBARAN ═══
Nilai Min          : 55
Nilai Max          : 98
Range              : 43
Variance           : 98.47
Std Deviasi        : 9.92

═══ UKURAN POSISI ═══
Q1 (Kuartil 1 / 25%) : 74.75
Q2 (Median / 50%)    : 81.50
Q3 (Kuartil 3 / 75%) : 88.25
IQR (Q3 - Q1)        : 13.5

═══ DETEKSI OUTLIER (Metode IQR) ═══
Batas Bawah (Q1 - 1.5×IQR): 54.5
Batas Atas  (Q3 + 1.5×IQR): 108.5
Outlier ditemukan: []   ← tidak ada outlier!

6.2 Perbandingan: Saat Ada Outlier

PYTHON · PENGARUH OUTLIER
# Simulasi: tambahkan outlier ekstrem (nilai 10)
nilai_dengan_outlier = nilai + [10]  # satu mahasiswa dapat nilai 10!
s2 = pd.Series(nilai_dengan_outlier)

print("Perbandingan SEBELUM dan SESUDAH ada outlier (nilai=10):\n")
print(f"{'Ukuran':<20} {'Sebelum':>10} {'Sesudah':>10} {'Terpengaruh?':>15}")
print("-" * 58)
print(f"{'Mean':<20} {s.mean():>10.2f} {s2.mean():>10.2f} {'✗ YA, berubah jauh':>15}")
print(f"{'Median':<20} {s.median():>10.2f} {s2.median():>10.2f} {'✓ Stabil':>15}")
print(f"{'Std Deviasi':<20} {s.std():>10.2f} {s2.std():>10.2f} {'✗ YA, naik drastis':>15}")
print(f"{'IQR':<20} {s.quantile(.75)-s.quantile(.25):>10.2f} {s2.quantile(.75)-s2.quantile(.25):>10.2f} {'✓ Relatif stabil':>15}")
📤 OUTPUT — TABEL PERBANDINGAN
Perbandingan SEBELUM dan SESUDAH ada outlier (nilai=10):

Ukuran                Sebelum    Sesudah    Terpengaruh?
----------------------------------------------------------
Mean                    80.95      76.52    ✗ YA, berubah jauh
Median                  81.50      79.00    ✓ Stabil
Std Deviasi              9.92      17.83    ✗ YA, naik drastis
IQR                     13.50      14.00    ✓ Relatif stabil
📝 INTERPRETASI HASIL

Penambahan satu nilai outlier (10) membuat mean turun dari 80.95 → 76.52 dan std deviasi hampir dua kali lipat. Sementara itu, median hanya bergeser sedikit dan IQR hampir tidak berubah. Ini membuktikan bahwa median dan IQR lebih "tahan banting" (robust) terhadap outlier.

Uji Pemahaman Sesi 2

🧩 PERTANYAAN 1 — UKURAN PEMUSATAN
Data gaji 5 karyawan: Rp 4 juta, 5 juta, 5 juta, 6 juta, dan 100 juta (direktur). Ukuran pemusatan mana yang PALING TEPAT menggambarkan gaji "karyawan biasa"?
Benar! Median = Rp 5 juta — lebih mewakili karyawan biasa. Mean = (4+5+5+6+100)/5 = Rp 24 juta — sangat tinggi karena "ditarik" gaji direktur. Ini persis seperti analogi karyawan startup di awal materi.
🧩 PERTANYAAN 2 — IQR DAN OUTLIER
Data: Q1 = 20, Q3 = 40. Berapakah batas atas outlier menggunakan metode IQR (1.5 × IQR)?
Benar! IQR = Q3 − Q1 = 40 − 20 = 20. Batas Atas = Q3 + 1.5 × IQR = 40 + 1.5 × 20 = 40 + 30 = 70. Nilai di atas 70 diklasifikasikan sebagai outlier.
🧩 PERTANYAAN 3 — STANDAR DEVIASI
Kelas A: nilai ujian 78, 79, 80, 81, 82. Kelas B: nilai ujian 60, 70, 80, 90, 100. Kedua kelas memiliki rata-rata 80. Pernyataan mana yang BENAR tentang standar deviasi?
Benar! Kelas B nilai-nilainya jauh lebih bervariasi (60 hingga 100 = rentang 40), sehingga standar deviasinya lebih besar. Kelas A sangat seragam (78–82 = rentang hanya 4), SD-nya jauh lebih kecil. Ini menunjukkan bahwa mean sama belum tentu berarti data sama!
📋 Ringkasan Sesi 2