Episode ini membangun fondasi statistika untuk analis: mean, median, mode, variance, standar deviasi, distribusi, skewness, dan sampling. Kalian akan belajar merangkum dan menginterpretasi dataset dengan benar, serta menghindari kesimpulan yang menyesatkan dari angka yang menipu

Setelah di episode 4 kalian mahir menarik data dengan SQL, kini saatnya memahami apa arti angka-angka itu. Statistika adalah bahasa analisis: ia memberi kerangka untuk merangkum data, mengukur ketidakpastian, dan membandingkan kelompok secara adil. Tanpa statistika, analis menebak; dengan statistika, analis berargumen dengan bukti.
Episode ini fokus pada statistika deskriptif — mendeskripsikan dan merangkum data dengan ukuran pemusatan, penyebaran, dan distribusi — plus dasar sampling. Kita akan bekerja dengan contoh kasus penjualan supaya setiap konsep langsung terasa relevan untuk pekerjaan sehari-hari. Statistika inferensial (uji hipotesis, p-value) akan kalian temui di episode 21.
Jumlah semua nilai dibagi banyaknya nilai. Sensitif terhadap outlier.
Nilai tengah setelah data diurutkan. Kokoh terhadap outlier.
Nilai yang paling sering muncul — satu-satunya ukuran pemusatan yang bisa dipakai untuk data kategorikal.
import pandas as pd
penjualan = pd.Series([100, 120, 110, 95, 1500])
print("mean :", penjualan.mean())
print("median:", penjualan.median())
print("mode :", penjualan.mode().tolist())Output mean = 385, sedangkan median = 110. Lihat selisihnya? Satu order aneh sebesar 1500 menyeret rata-rata jauh ke atas, sementara median nyaris tidak bergeming. Inilah mengapa analis selalu mengecek keduanya.
Important
Saat distribusi skewed (menceng), median lebih mewakili "nilai tipikal" daripada mean. Untuk data pendapatan, harga rumah, atau durasi sesi — yang hampir selalu skewed — jangan pernah melaporkan mean tanpa melaporkan median.
Mean tanpa penyebaran tidak lengkap: dua tim bisa punya rata-rata penjualan sama, tetapi satu konsisten dan satu lagi tidak menentu.
import numpy as np
tim_a = np.array([100, 102, 99, 101, 100])
tim_b = np.array([50, 150, 90, 120, 100])
print("std A:", tim_a.std().round(2))
print("std B:", tim_b.std().round(2))Tim A dan B sama-sama rata-rata 100, tetapi standar deviasinya sangat berbeda. Standar deviasi kecil = konsisten; besar = bergejolak. Untuk data bisnis, ini berarti tim B jauh lebih sulit diprediksi — informasi yang tidak terlihat jika hanya melihat mean.
Distribusi menggambarkan bagaimana nilai-nilai tersebar. Dua bentuk yang paling sering kalian jumpai:
| Kondisi | mean vs median | Arti bisnis |
|---|---|---|
| Simetris | mean ≈ median | Data seimbang, tidak ada outlier dominan |
| Right-skewed | mean > median | Beberapa nilai besar menarik rata-rata; median lebih mewakili |
| Left-skewed | mean < median | Beberapa nilai sangat kecil menekan rata-rata |
Cara cepat mengecek: hitung mean dan median. Jika mean > median, hampir pasti skewed. Visualisasi histogram di episode 9 akan membuat pola ini jauh lebih jelas.
Analis jarang menganalisis seluruh populasi. Sampling memilih subset yang mewakili keseluruhan. Dua prinsip utamanya:
SELECT *
FROM orders
TABLESAMPLE SYSTEM (10);Pitfall terbesar sampling di dunia analis bukan tekniknya, melainkan sumber datanya: menganalisis hanya customer yang aktif (survivorship bias), hanya order yang sukses, atau hanya bulan yang bagus. Sampel yang "sopan" menghasilkan kesimpulan yang menyenangkan tetapi salah.
Gabungkan semuanya dalam satu alur: ambil data dari database, ringkas dengan SQL, lalu periksa distribusinya dengan Python.
SELECT
COUNT(*) AS jumlah_order,
ROUND(AVG(amount), 2) AS rata_rata,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY amount) AS median
FROM orders
WHERE status = 'completed';PERCENTILE_CONT(0.5) adalah cara SQL menghitung median. Bandingkan rata_rata dan median: jika jauh berbeda, catat bahwa distribusi amount skewed — jangan laporkan rata-rata sendirian.
import pandas as pd
df = pd.read_csv("orders.csv")
print("skew:", df["amount"].skew().round(2))Nilai skew positif kuat (misal > 1) menegaskan distribusi right-skewed. Laporan kalian kemudian bisa menyebut: "Rata-rata order Rp385.000, tetapi median hanya Rp110.000 — mayoritas order bernilai kecil, dinaikkan oleh segelintir order besar."
Inti yang harus dibawa pulang:
Di episode 6 selanjutnya kita masuk ke Python untuk analisis dengan pandas — DataFrame, filtering, groupby, dan NumPy di Jupyter, lengkap dengan EDA pertama kalian. SQL sudah menjadi senjata pertama, statistika sudah menjadi lensa, dan sekarang Python akan menjadi pisau bedah kalian!