Sejauh ini peluang selalu menempel pada kejadian berupa label: “member”, “beli lagi”, “hasil positif”. Analisis data membutuhkan sesuatu yang lebih bisa dihitung: bilangan. Variabel acak adalah jembatannya — cara pandang yang mengubah hasil percobaan acak menjadi angka, sehingga kita bisa merata-ratakannya, mengukur sebarannya, dan menjadikannya bahan keputusan. Pada chapter ini kita membedakan variabel acak diskrit dan kontinu, menghitung nilai harapan E[X] dan varians, lalu memakai keduanya untuk memutuskan berapa potong bolu yang sebaiknya diproduksi Toko Kopi Kita setiap hari.
Dari Kejadian ke Bilangan #
Variabel acak adalah pemetaan dari setiap hasil percobaan ke sebuah bilangan. Lemparan dua koin menjadi “banyaknya sisi angka” (0, 1, atau 2); serombongan lima pelanggan menjadi “banyaknya yang memesan menu baru” (0 sampai 5). Kita menamai variabel acak dengan huruf besar (misalnya X) dan nilai hasilnya dengan huruf kecil (misalnya x = 3). Sebelum percobaan dilakukan, nilai X tidak kita ketahui; yang kita ketahui adalah peluang tiap nilai — dan itulah yang benar-benar kita perlukan.
Variabel acak terbagi dua keluarga besar, dan alat hitungnya berbeda:
| Aspek | Diskrit | Kontinu |
|---|---|---|
| Nilai yang mungkin | Bisa dihitung satu per satu: 0, 1, 2, … | Memenuhi selang: 24,3; 24,37; 24,378; … |
| Contoh di kafe | Banyaknya potong bolu terjual hari ini | Suhu udara, berat bersih kemasan kopi |
| Alat peluangnya | P(X = x) langsung berharga | P(X = x) = 0; peluang menempel pada selang |
| Peluang dihitung lewat | Menjumlah P(X = x) | Luas di bawah kurva kerapatan |
Pemisahan ini bukan sekadar teori. Menjumlah peluang titik demi titik hanya sah untuk variabel diskrit; untuk variabel kontinu, satu titik tidak punya lebar sehingga peluangnya nol — kita akan buktikan konsekuensinya di bagian akhir chapter.
Nilai Harapan: Rata-rata Tertimbang Peluang #
Nilai harapan (expected value) E[X] adalah rata-rata tertimbang seluruh nilai yang mungkin, dengan bobot peluangnya. Rumusnya untuk variabel diskrit ringkas:
E[X] = Σ x · P(x)Bayangkan eksperimen diulang ribuan kali: E[X] adalah rata-rata yang akan didekati hasil-hasil tersebut — intuisi yang akan kita pertegas pada chapter Hukum Bilangan Besar. Variabel acak pertama kita adalah permintaan bolu matcha di Toko Kopi Kita. Dari catatan penjualan beberapa bulan, pemilik toko menyusun distribusi permintaan per hari: nol potong berpeluang 5%, satu potong 15%, dua potong 30%, tiga potong 30%, empat potong 15%, dan lima potong 5%. Kita hitung harapan dan sebarannya sekaligus:
import numpy as np
# Distribusi permintaan bolu matcha per hari di Toko Kopi Kita
permintaan = [0, 1, 2, 3, 4, 5]
peluang = [0.05, 0.15, 0.30, 0.30, 0.15, 0.05]
e_x = sum(x * p for x, p in zip(permintaan, peluang))
e_x2 = sum(x**2 * p for x, p in zip(permintaan, peluang))
var_x = e_x2 - e_x**2
var_langsung = sum((x - e_x) ** 2 * p for x, p in zip(permintaan, peluang))
print(f"E[X] = {e_x:.2f} potong")
print(f"E[X²] = {e_x2:.2f}")
print(f"Var(X) = E[X²] - E[X]² = {e_x2:.2f} - {e_x:.2f}² = {var_x:.2f}")
print(f"SD(X) = {var_x ** 0.5:.4f}")
print(f"Cek definisi Σ(x-μ)²·P(x) = {var_langsung:.2f}")
print(f"Cek numpy.average berbobot = {np.average(permintaan, weights=peluang):.2f}")Output yang Dihasilkan:
E[X] = 2.50 potong
E[X²] = 7.70
Var(X) = E[X²] - E[X]² = 7.70 - 2.50² = 1.45
SD(X) = 1.2042
Cek definisi Σ(x-μ)²·P(x) = 1.45
Cek numpy.average berbobot = 2.50Mari kita telaah baris-per-barisnya:
- Baris 7 (
e_x): rumus E[X] = Σ x·P(x) diterjemahkan langsung — setiap nilai permintaan dikalikan bobotnya lalu dijumlah. Hasilnya 2,50 potong: rata-rata permintaan jangka panjang toko ini 2,5 potong per hari. - Baris 8-9 (
e_x2,var_x): varians dihitung lewat jalan pintas Var(X) = E[X²] − (E[X])². Kita hitung dulu E[X²] = 7,70, lalu kurangi kuadrat harapan 2,50² = 6,25, menghasilkan 1,45 potong persegi. - Baris 10 (
var_langsung): verifikasi lewat definisi aslinya, Σ(x−μ)²·P(x), memberi angka yang sama: 1,45. Dua rumus memang selalu setara; jalan pintas hanya menghemat langkah. - Baris 17 (
np.average): NumPy punya rata-rata berbobot siap pakai —weightsmenerima daftar peluang. Cocoknya dengan perhitungan manual menegaskan bahwa E[X] hanyalah generalisasi rata-rata.
Satu catatan penting sebelum lanjut: E[X] = 2,50 padahal permintaan tidak pernah bernilai 2,5 — nilai yang mungkin hanyalah bilangan bulat 0 sampai 5. Nilai harapan adalah pusat massa distribusi, bukan nilai yang paling sering muncul (modus di sini 2 dan 3) dan bukan janji hasil hari ini.
Keputusan Produksi Berbasis Ekspektasi #
Kekuatan sesungguhnya dari nilai harapan muncul ketika variabel acak dipakai membuat keputusan. Bolu matcha harus dibuat di awal hari dan tidak bertahan sampai besok: tiap potong menelan biaya Rp8.000 dan terjual Rp18.000. Bila produksi kurang, penjualan untung hilang; bila berlebih, potong yang tak terjual menjadi kerugian penuh. Keuntungan harian kini adalah variabel acak baru — sebut saja Y — yang bergantung pada permintaan X dan keputusan produksi q. Untuk tiap pilihan q, kita hitung E[Y] dengan mengenumerasi keenam skenario permintaan:
harga_jual = 18_000 # rupiah per potong
biaya_buat = 8_000 # rupiah per potong
# Distribusi permintaan bolu matcha per hari
permintaan = [0, 1, 2, 3, 4, 5]
peluang = [0.05, 0.15, 0.30, 0.30, 0.15, 0.05]
def ekspektasi_profit(jumlah_buat):
total = 0.0
for x, p in zip(permintaan, peluang):
terjual = min(x, jumlah_buat)
profit = harga_jual * terjual - biaya_buat * jumlah_buat
total += p * profit
return total
for q in permintaan:
print(f"buat {q} potong -> E[profit] = Rp{ekspektasi_profit(q):,.0f}".replace(",", "."))Output yang Dihasilkan:
buat 0 potong -> E[profit] = Rp0
buat 1 potong -> E[profit] = Rp9.100
buat 2 potong -> E[profit] = Rp15.500
buat 3 potong -> E[profit] = Rp16.500
buat 4 potong -> E[profit] = Rp12.100
buat 5 potong -> E[profit] = Rp5.000Mari kita telaah kode dan maknanya:
- Baris 11 (
terjual = min(x, jumlah_buat)): permintaan tidak bisa melebihi produksi — penjualan harinya adalah yang lebih kecil antara permintaan dan jumlah buatan.min()mengunci logika ini. - Baris 12 (
profit = ...): pendapatan dari yang laku dijual dikurangi biaya seluruh produksi. Potong yang tak terjual tetap menelan biaya — itulah risiko kelebihan stok. - Baris 13 (
total += p * profit): setiap skenario permintaan menyumbang keuntungannya sendiri dengan bobot peluangnya. Fungsi ini menghitung E[Y] untuk satu pilihan q. - Tabel hasil: ekspektasi naik sampai produksi 3 potong (Rp16.500) lalu turun tajam. Produksi 4 atau 5 potong terlalu agresif — peluang permintaan besar terlalu kecil untuk menutup kerugian saat bolu tak habis.
Keputusan yang memaksimalkan ekspektasi keuntungan adalah memproduksi 3 potong per hari. Perhatikan bahwa keputusan ini tidak menjamin hasil Rp16.500 pada hari konkret — hasil harian tetap acak, bisa minus Rp24.000 bila tak seorang pun membeli. Yang dioptalkan adalah rata-rata jangka panjang, dan pada bisnis yang beroperasi ratusan hari, rata-rata itulah yang menentukan.
Variabel Kontinu: Peluang Menempel pada Selang #
Kini bayangkan variabel yang berbeda jenis: durasi penyeduhan kopi manual, yang bisa bernilai berapa pun antara 0 dan 10 menit — 2 menit, 2,37 menit, 2,371 menit. Tidak ada daftar nilai yang bisa dienumerasi, dan di sinilah hal yang mengejutkan terjadi: peluang durasi tepat 3,000 menit (atau tepat bilangan apa pun) adalah nol. Alasannya sederhana — dari tak berhingga banyaknya nilai yang mungkin, satu titik tunggal tidak menyumbang porsi yang berarti.
Untuk variabel kontinu, peluang menempel pada selang, bukan titik. Alatnya adalah fungsi kerapatan peluang (probability density function) yang menyatakan seberapa padat peluang di sekitar tiap titik; peluang sebuah selang adalah luas di bawah kurva kerapatan pada selang itu. Bentuk paling sederhananya adalah distribusi seragam kontinu — kerapatan rata di seluruh rentang:
# Durasi penyeduhan kopi: seragam kontinu antara 0 dan 10 menit
bawah, atas = 0, 10
kerapatan = 1 / (atas - bawah)
print(f"Nilai kerapatan f(x) = {kerapatan:.2f} untuk semua x di (0, 10)")
print(f"P(X = 3 menit tepat) = 0.0 (satu titik tidak punya lebar)")
print(f"P(2 <= X <= 5) = (5-2) x {kerapatan:.2f} = {(5 - 2) * kerapatan:.2f}")
print(f"P(0 <= X <= 10) = (10-0) x {kerapatan:.2f} = {(10 - 0) * kerapatan:.2f}")Output yang Dihasilkan:
Nilai kerapatan f(x) = 0.10 untuk semua x di (0, 10)
P(X = 3 menit tepat) = 0.0 (satu titik tidak punya lebar)
P(2 <= X <= 5) = (5-2) x 0.10 = 0.30
P(0 <= X <= 10) = (10-0) x 0.10 = 1.00Mari kita telaah hasilnya:
- Baris 3 (
kerapatan): agar luas total 1, kerapatan seragam harus 1/(atas − bawah) = 0,10. Nilai kerapatan boleh lebih dari 0 dan bahkan boleh melebihi 1 — kerapatan bukan peluang. - Baris 7 (
P(2 <= X <= 5)): pada kurva kerapatan yang rata, luas = alas × tinggi = 3 × 0,10 = 0,30. Tiga puluh persen penyeduhan berdurasi antara 2 dan 5 menit. - Baris 8 (
P(0 <= X <= 10)): selang penuh memberi luas 1,00 — seluruh kemungkinan sudah tercakup, pemeriksaan konsistensi yang sebaiknya selalu diingat.
Nilai harapan variabel kontinu memakai integral, bukan penjumlahan — tetapi idenya sama: rata-rata tertimbang dengan kerapatan sebagai bobotnya. Kita tidak perlu menghitung integral secara manual; tugas itu dipegang library sebagaimana akan kita lihat sebentar lagi.
Rangkuman #
- Variabel acak memetakan hasil percobaan ke bilangan, mengubah peluang menjadi bahan hitung: X untuk variabelnya, x untuk nilainya.
- Dua keluarga: diskrit (nilai bisa dihitung satu per satu, peluang lewat penjumlahan) dan kontinu (peluang menempel pada selang, dihitung sebagai luas di bawah kerapatan).
- E[X] = Σ x·P(x) adalah rata-rata tertimbang peluang — pusat massa distribusi, bukan nilai yang paling sering muncul, dan bisa jadi bukan nilai yang mungkin terjadi.
- Var(X) = E[X²] − (E[X])² mengukur sebaran dengan jalan pintas yang setara dengan definisi Σ(x−μ)²·P(x).
- Ekspektasi menjadi alat keputusan: produksi 3 potong bolu memaksimalkan E[profit] harian Toko Kopi Kita sebesar Rp16.500.
Setiap variabel acak membawa distribusi peluangnya sendiri — daftar P(X = x) pada bolu tadi sudah satu contoh lengkap. Chapter berikutnya melangkah lebih jauh: memperlakukan distribusi sebagai objek yang bisa dipelajari. Kita akan berkenalan dengan PMF, PDF, dan CDF secara formal, lalu keluarga distribusi paling sering dipakai di data science — dari lemparan dadu hingga jumlah pembeli yang memesan menu baru — pada chapter Distribusi Probabilitas .