Buka buku statistika mana pun dan kita akan berpapasan dengan satu huruf Yunani: Σ (sigma besar). Rumus rata-rata, varians, korelasi, hingga rumus error pada machine learning semuanya memakai notasi ini. Sigma bukan konsep baru — ia hanya penulisan ringkas untuk kegiatan yang sudah kita lakukan berulang kali di dua chapter sebelumnya: menjumlahkan nilai demi nilai. Pada chapter ini kita belajar membaca notasi sigma, menerapkannya untuk rata-rata dan varians, lalu melihat bentuk lanjutannya: sigma ganda untuk data berbentuk tabel.

Membaca Notasi Sigma #

Notasi sigma menyatakan penjumlahan berulang dalam satu baris:

text
 n
 Σ x_i = x_1 + x_2 + ... + x_n
 i=1

Tiga bagiannya perlu dibaca cermat. Huruf Σ berarti “jumlahkan”. Tulisan kecil di bawah, i = 1, menyatakan indeks mulai; tulisan di atas, n, menyatakan indeks akhir. Sedangkan x_i adalah suku yang dijumlahkan — nilai ke-i dari kumpulan data. Sigma dengan batas i = 1 hingga n pada x_i artinya jumlahkan x_1, x_2, dan seterusnya sampai x_n.

Contoh konkret memperjelas. Lima transaksi pagi di Toko Kopi Kita bernilai 42, 18, 65, 30, dan 25 (ribuan rupiah); sigma atas nilai-nilai tersebut adalah 42 + 18 + 65 + 30 + 25. Loop for adalah terjemahan langsung notasi ini ke Python:

python
nilai_transaksi = [42, 18, 65, 30, 25]   # nilai transaksi (ribuan rupiah)

jumlah = 0
for x in nilai_transaksi:
    jumlah = jumlah + x

print(f"Jumlah seluruh transaksi: {jumlah} ribu rupiah")

Output yang Dihasilkan:

text
Jumlah seluruh transaksi: 180 ribu rupiah

Mari kita telaah baris-baris kode di atas:

  1. Baris 3 (jumlah = 0): variabel penampung — biasa disebut akumulator — dimulai dari nol karena penjumlahan tidak memiliki nilai awal lain.
  2. Baris 4-5 (for x in ...): loop berperan sebagai indeks i yang berjalan dari suku pertama hingga suku terakhir; setiap putaran menambahkan satu x_i ke akumulator.
  3. Setelah loop selesai, jumlah bernilai 180 — tepat hasil ekspansi sigma di atas.

Sigma untuk Rata-rata dan Varians #

Kekuatan notasi sigma baru terasa ketika ia menjadi bahan bangunan rumus lain. Dua rumus statistika paling dasar dibangun di atasnya:

text
rata-rata = ( Σ x_i ) / n

varians populasi = Σ (x_i - rata-rata)^2 / n

Rata-rata adalah sigma dibagi banyaknya data. Varians populasi mengukur sebaran: setiap nilai dikurangi rata-rata, dikuadratkan, dijumlahkan, lalu dibagi n. Kuadrat membuat selisih positif dan selisih negatif tidak saling menghapus. Kita hitung keduanya dengan dua loop:

python
data = [42, 18, 65, 30, 25]

n = len(data)
jumlah = 0
for x in data:
    jumlah += x
rata_rata = jumlah / n

selisih_kuadrat = 0
for x in data:
    selisih_kuadrat += (x - rata_rata) ** 2
varians = selisih_kuadrat / n

print(f"Rata-rata        : {rata_rata}")
print(f"Varians populasi : {varians}")

Output yang Dihasilkan:

text
Rata-rata        : 36.0
Varians populasi : 271.6

Loop pertama menghitung sigma biasa untuk rata-rata 36.0. Loop kedua menghitung sigma untuk suku yang berbeda, (x - rata-rata)^2 — bukti bahwa sigma tidak selalu menjumlahkan nilai mentah; yang dijumlahkan bisa hasil olahan dari setiap nilai. Angka 271.6 inilah ragam (varians) populasi lima transaksi tersebut; akar kuadratnya disebut simpangan baku dan akan sering kita jumpai pada Section statistika.

Cara Cepat: sum() dan NumPy #

Untuk pekerjaan harian, Python dan NumPy menyediakan pintasan untuk sigma. Ketiganya menghitung hal yang sama — pilihan hanya soal kecepatan menulis dan kecepatan eksekusi:

python
import numpy as np

data = np.array([42, 18, 65, 30, 25])

print(f"sum() bawaan : {sum(data)}")
print(f"np.sum()     : {np.sum(data)}")
print(f"np.mean()    : {np.mean(data)}")
print(f"np.var()     : {np.var(data)}")

Output yang Dihasilkan:

text
sum() bawaan : 180
np.sum()     : 180
np.mean()    : 36.0
np.var()     : 271.6

Hasil ketiga fungsi NumPy persis sama dengan loop manual kita: 180 untuk jumlah, 36.0 untuk rata-rata, dan 271.6 untuk varians. Python juga punya modul statistics bawaan dengan statistics.mean() dan statistics.pvariance(). NumPy menang ketika datanya besar — operasinya dijalankan di seluruh array sekaligus tanpa loop eksplisit; pembahasan penuhnya ada di chapter Dasar NumPy .

Sigma Ganda untuk Data Berbentuk Tabel #

Data nyata jarang berupa satu deret angka; ia berbentuk tabel dengan baris dan kolom. Ketika kita perlu menjumlahkan seluruh isinya, notasi yang terpakai adalah sigma ganda — sigma di dalam sigma. Sigma luar berjalan pada indeks baris i, sigma dalam berjalan pada indeks kolom j:

text
jumlah total = Σ Σ penjualan[i][j]
               i  j

Tabel penjualan tiga hari untuk dua produk (kopi dan teh) memberi contoh konkret:

python
import numpy as np

# Baris = hari (Senin, Selasa, Rabu), kolom = produk (kopi, teh)
penjualan = [
    [32, 15],
    [40, 18],
    [28, 21],
]

total_semua = 0
for i in range(len(penjualan)):            # sigma luar: bergerak di baris
    for j in range(len(penjualan[0])):     # sigma dalam: bergerak di kolom
        total_semua += penjualan[i][j]

print(f"Total penjualan 3 hari, semua produk: {total_semua}")

arr = np.array(penjualan)
print(f"Total semua (arr.sum())      : {arr.sum()}")
print(f"Total per produk (axis=0)    : {arr.sum(axis=0).tolist()}")
print(f"Total per hari (axis=1)      : {arr.sum(axis=1).tolist()}")

Output yang Dihasilkan:

text
Total penjualan 3 hari, semua produk: 154
Total semua (arr.sum())      : 154
Total per produk (axis=0)    : [100, 54]
Total per hari (axis=1)      : [47, 58, 49]

Loop bersarang di baris 9-12 adalah sigma ganda yang sesungguhnya: untuk setiap baris i, loop dalam menjumlahkan seluruh kolom j. Hasil 154 terbukti sama dengan arr.sum(). Menariknya, NumPy juga bisa meringkas sigma ganda sebagian — axis=0 menjumlahkan menuruni baris (total per produk: 100 gelas kopi, 54 gelas teh), sedangkan axis=1 menjumlahkan sepanjang kolom (total per hari). Struktur baris-kolom ini tepatnya adalah matriks, bahan utama dua chapter berikutnya.

Rangkuman #

  • Sigma (Σ) adalah notasi ringkas penjumlahan berulang; batas bawah dan atas menyatakan indeks awal dan akhir.
  • Loop for dengan akumulator adalah terjemahan langsung sigma ke Python, dimulai dari nilai nol.
  • Rata-rata dan varians populasi adalah dua rumus penting pertama yang dibangun dari sigma.
  • sum(), np.sum(), np.mean(), dan np.var() adalah cara cepat yang hasilnya sama dengan loop manual.
  • Sigma ganda menjumlahkan data berbentuk tabel — sigma luar untuk baris, sigma dalam untuk kolom.

Sigma mengajari kita menyusun dan meringkas perhitungan berulang. Namun perhitungan seorang analis tidak berhenti pada menjumlahkan; ia juga perlu menjawab pertanyaan “pada nilai berapa sesuatu terjadi?” — berapa gelas agar laba positif, pada pekan berapa penjualan menyentuh target. Untuk itu kita perlu kemampuan menyelesaikan persamaan dan pertidaksamaan, materi chapter berikutnya.

Referensi #

  1. Python Docs — Modul statistics
  2. NumPy — numpy.mean
  3. Python Docs — More on Lists