TL;DR
Statistik deskriptif adalah cara meringkas data jadi beberapa angka kunci: rata-rata, median, sebaran, dan bentuk distribusinya. Gunanya buat ngerti karakter data sebelum kamu bikin chart atau ngambil keputusan. Di dataset toko_berkah, rata-rata nilai transaksi Rp 187.000 tapi mediannya cuma Rp 92.000. Selisih itu langsung ngasih tau ada segelintir transaksi besar yang narik rata-rata ke atas.
Statistik deskriptif adalah cara meringkas kumpulan data jadi beberapa angka kunci: rata-rata, median, sebaran, dan bentuk distribusinya. Tugasnya satu: ngasih tau kamu karakter data sebelum kamu bikin kesimpulan dari situ.
Banyak analis loncat langsung ke chart. Data ditarik, bar chart dibikin, slide dikirim.
Terus di meeting ada yang nanya "kok rata-ratanya segitu, padahal kayaknya kebanyakan pelanggan belanja kecil-kecil?" Dan kamu nggak punya jawaban.
Di dataset toko_berkah, rata-rata nilai transaksi Rp 187.000. Mediannya Rp 92.000. Selisih dua kali lipat. Angka itu doang udah cerita banyak.
Statistik deskriptif adalah sekumpulan ukuran yang ngerangkum data apa adanya, tanpa narik kesimpulan ke luar data itu. Isinya tiga kelompok: ukuran pemusatan (mean, median, modus), ukuran sebaran (range, standar deviasi, IQR), dan ukuran bentuk (skewness, kurtosis).
Bedanya sama statistik inferensial: deskriptif cuma ngomongin data yang kamu pegang. Inferensial nebak soal populasi yang lebih besar.
Kalau kamu bilang "rata-rata transaksi 3 cabang ini Rp 187 ribu", itu deskriptif. Kalau kamu bilang "rata-rata transaksi semua cabang kami kemungkinan di kisaran itu", kamu udah masuk inferensial, dan butuh uji statistik.
Tiga-tiganya ngukur "tengah", tapi definisi tengahnya beda.
| Ukuran | Cara ngitung | Kuat di | Lemah di |
|---|---|---|---|
| Mean (rata-rata) | Total dibagi jumlah data | Data yang sebarannya rata | Kena banget sama outlier |
| Median | Nilai di posisi tengah setelah diurutkan | Data miring, ada nilai ekstrem | Nggak nangkep besarnya nilai ekstrem |
| Modus | Nilai yang paling sering muncul | Data kategori | Bisa nggak ada, bisa lebih dari satu |
Contoh gampangnya. Nilai transaksi hari ini di toko_berkah cabang Bandung: 45rb, 52rb, 60rb, 78rb, 4.500rb.
Yang mana yang lebih jujur nunjukin "belanja khas hari ini"? Median. Mean-nya keangkat gara-gara satu pesanan hajatan Rp 4,5 juta.
Aturan praktisnya: kalau mean dan median jauh beda, data kamu miring. Pakai median buat cerita, sebut mean cuma sebagai konteks.
Standar deviasi ngukur seberapa jauh data biasanya nyebar dari rata-ratanya. Angka kecil artinya data kumpul rapat. Angka besar artinya berpencar.
Ini yang bikin dia berguna: dua toko bisa punya rata-rata penjualan harian sama persis Rp 5 juta, tapi ceritanya beda total.
Rata-rata doang nggak bakal nunjukin bedanya. Standar deviasi yang ngasih tau.
Rumusnya di Excel dan Sheets:
=STDEV.S(B2:B366) // buat data sampel
=STDEV.P(B2:B366) // buat data populasi penuh
Kalau data kamu semua transaksi yang ada, pakai STDEV.P. Kalau cuma sebagian yang kamu ambil, pakai STDEV.S. Bedanya di penyebut rumus, dan buat data besar hasilnya hampir sama.
Cara paling umum: aturan IQR. Hitung kuartil pertama (Q1) dan kuartil ketiga (Q3), lalu IQR = Q3 − Q1.
Batasnya:
Batas bawah = Q1 - (1.5 × IQR)
Batas atas = Q3 + (1.5 × IQR)
Nilai di luar batas itu = outlier.
Di toko_berkah:
Ada 412 transaksi di atas Rp 340.500 dari total 8.400, sekitar 4,9%.
Tapi jangan buru-buru hapus. Aku cek satu-satu, dan ternyata:
Yang 23 dibuang. Yang 389 dipertahanin, malah dibikin segmen sendiri. Outlier bukan otomatis sampah. Kadang dia justru insight-nya.
Query buat narik semua angka deskriptif sekaligus:
SELECT
COUNT(*) AS jumlah_transaksi,
ROUND(AVG(total_harga), 0) AS rata_rata,
MIN(total_harga) AS nilai_min,
MAX(total_harga) AS nilai_max,
ROUND(STDDEV(total_harga), 0) AS standar_deviasi,
PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY total_harga) AS q1,
PERCENTILE_CONT(0.50) WITHIN GROUP (ORDER BY total_harga) AS median,
PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY total_harga) AS q3
FROM transaksi
WHERE status = 'selesai';
Hasilnya:
| Ukuran | Nilai |
|---|---|
| Jumlah transaksi | 8.257 |
| Rata-rata | Rp 187.400 |
| Median | Rp 92.000 |
| Min | Rp 5.000 |
| Max | Rp 12.400.000 |
| Standar deviasi | Rp 421.800 |
| Q1 / Q3 | Rp 48.000 / Rp 165.000 |
Yang langsung kebaca dari tabel ini:
Keputusan yang lahir dari 3 baris angka ini: toko_berkah bikin harga khusus grosir. 4,9% transaksi outlier itu nyumbang 41% dari total revenue.
Kalau outlier-nya dihapus di awal analisis "biar rapi", insight ini nggak akan pernah ketemu.
Buat ngitung ini di database sendiri, kamu bakal sering kepakai fungsi AVG dan GROUP BY. Kalau istilah kuartil masih asing, ada penjelasannya di glossary percentile.
Rata-rata sendirian hampir selalu nyesatin. Minimal sebut median dan standar deviasinya juga.
Outlier bisa salah input, bisa juga kejadian penting. Cek dulu, baru putusin.
Data bisnis Indonesia (penjualan, pendapatan, ukuran transaksi) hampir nggak pernah berdistribusi normal. Biasanya miring ke kanan. Jangan pakai asumsi normal tanpa dicek dulu lewat histogram.
Sepuluh menit ngecek statistik deskriptif bisa nyelamatin kamu dari chart yang salah cerita.
Pakai median kalau data kamu punya nilai ekstrem yang bisa narik rata-rata. Gaji, harga rumah, nilai transaksi. Semua ini biasanya miring ke kanan. Satu orang bergaji Rp 500 juta di kantor 20 orang bisa bikin rata-rata gaji naik puluhan juta, padahal 19 orang lain nggak ngerasain apa-apa. Median nggak kepengaruh sama nilai ekstrem, jadi lebih jujur nunjukin kondisi orang di tengah.
Standar deviasi ngukur seberapa jauh data biasanya nyebar dari rata-ratanya. Kalau kecil, data kumpul rapat di sekitar rata-rata. Kalau besar, data berpencar. Dua toko dengan rata-rata penjualan sama Rp 5 juta bisa punya cerita beda: yang satu stabil Rp 4,8-5,2 juta tiap hari, yang satu naik-turun Rp 1-12 juta. Standar deviasi yang ngasih tau bedanya.
Cara paling umum pakai aturan IQR. Hitung Q1 dan Q3, terus IQR = Q3 - Q1. Nilai yang di bawah Q1 - 1,5×IQR atau di atas Q3 + 1,5×IQR dianggap outlier. Tapi jangan langsung hapus. Cek dulu: outlier itu salah input, atau kejadian nyata yang penting? Transaksi Rp 12 juta di warung bisa jadi typo, bisa juga pesanan hajatan.
Deskriptif ngerangkum data yang kamu punya. Inferensial narik kesimpulan tentang populasi yang lebih besar dari sampel yang kamu punya. Kalau kamu bilang "rata-rata transaksi di 3 cabang ini Rp 187 ribu", itu deskriptif. Kalau kamu bilang "rata-rata transaksi di semua cabang kami kemungkinan antara Rp 180-195 ribu", itu inferensial, dan butuh uji statistik.
Skewness ngukur kemiringan distribusi. Kalau positif, ekornya panjang ke kanan. Artinya ada sedikit nilai yang jauh lebih besar dari mayoritas. Kalau negatif, ekornya ke kiri. Pentingnya: distribusi yang miring bikin rata-rata jadi angka yang menyesatkan. Begitu kamu lihat skewness tinggi, pindah baca median.
Yang perlu kamu bawa:
Definisi formal tiap ukuran ada di NIST Engineering Statistics Handbook, rujukan yang aku pakai kalau lagi ragu.
Habis ngerti angkanya, langkah berikutnya visualisasi. Lanjut ke Power Query di Power BI buat nyiapin datanya sebelum masuk chart.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Cara pakai pandas rolling buat hitung moving average dan haluskan data time series yang naik-turun. Lengkap dengan contoh penjualan harian UMKM.
Data transaksi harian sering terlalu ramai buat dilihat. Pandas resample ngeringkasnya jadi total per minggu atau per bulan cuma dengan satu baris, asal indeksnya tanggal.
Kolom tanggal yang kebaca sebagai teks bikin sortir dan hitung selisih hari jadi kacau. Ini cara pd.to_datetime ubah teks jadi tanggal asli, plus tangani format berantakan.