Data eksperimen menuntut analisis statistik yang benar, bukan sekadar rata-rata. Proyek ini melatih disiplin analisis eksperimen: merancang analisis sebelum menyentuh data, merangkum data dengan statistik deskriptif, menguji signifikansi perbedaan antar perlakuan, lalu menafsirkan hasil dengan jujur termasuk keterbatasannya.

Alur tahapannya:

  • perancangan analisis — menetapkan hipotesis, variabel, dan rencana uji statistik,
  • statistik deskriptif — merangkum tiap kelompok perlakuan,
  • analisis statistik — uji normalitas, uji perbedaan, dan interval kepercayaan,
  • interpretasi hasil — menarik kesimpulan yang didukung data beserta batasannya.

Seluruh kode sumber setiap tahap tersedia pada bagian Berkas Sumber di bawah halaman setiap bagian. Studi kasusnya: eksperimen waktu produksi tiga metode (A, B, C) dengan 10 replikat per metode. Kita membangun setiap uji statistik secara manual dari rumus dasar — ANOVA, uji t, sampai p-value — sehingga semuanya berjalan di MATLAB maupun Octave tanpa Statistics Toolbox, dan seluruh angkanya deterministik karena data dibangun dari nilai tetap, bukan rand.

Perilaku yang Diharapkan #

Satu panggilan jalankanAnalisis() menjalankan seluruh pipeline: membangun data eksperimen dan menyimpannya ke CSV, mencetak tabel statistik per metode, menguji normalitas, menjalankan ANOVA satu arah, melanjutkan ke uji posthoc Bonferroni, menggambar box plot pembanding, mencetak kesimpulan, dan menulis laporan.txt. Transkrip berikut adalah hasil nyata menjalankan fungsi tersebut:

text
=== Analisis Data Eksperimen Waktu Produksi ===
Desain: 3 metode (A, B, C) x 10 replikat, alpha = 0.05

Data eksperimen tersimpan: data_eksperimen.csv

--- Statistik deskriptif per metode ---
Metode    n    mean     std  median     SE   CI95-   CI95+    min    max
A        10   50.00    1.90   49.65   0.60   48.82   51.18  47.30  52.90
B        10   45.00    1.95   44.90   0.62   43.79   46.21  42.60  47.60
C        10   52.00    2.83   51.80   0.89   50.25   53.75  48.50  56.10

--- Uji normalitas (g1 skewness, g2 kurtosis) ---
Metode        g1        g2   |g1| < 0.5
A          0.151    -1.190   cukup normal
B          0.029    -1.627   cukup normal
C          0.082    -1.440   cukup normal

--- ANOVA satu arah ---
Sumber        SS    df       MS       F        p
Antara    260.00     2   130.00   25.30 6.46e-07
Dalam     138.74    27     5.14
Total     398.74    29
F kritis (df 2, 27; alpha 0.05) = 3.35, eta^2 = 0.652
Keputusan: p < alpha -> H0 ditolak; minimal satu metode berbeda.

--- Posthoc: uji t berpasangan + Bonferroni ---
Jumlah perbandingan: 3, alpha Bonferroni = 0.05 / 3 = 0.0167
Pasangan  selisih          t          p   keputusan
A - B       +5.00      +5.80  1.698e-05   signifikan
A - C       -2.00      -1.86    0.07994   tidak signifikan
B - C       -7.00      -6.45  4.565e-06   signifikan

--- Box plot per metode ---
A: Q1=48.5 med=49.65 Q3=51.6 whisker=47.3-52.9 outlier=0
B: Q1=43.1 med=44.9 Q3=46.8 whisker=42.6-47.6 outlier=0
C: Q1=49.1 med=51.8 Q3=54.7 whisker=48.5-56.1 outlier=0
Grafik tersimpan: box-plot-eksperimen.png

--- Kesimpulan ---
ANOVA signifikan (F(2,27) = 25.30, p = 6.46e-07): minimal satu metode berbeda.
Metode tercepat: B (mean 45.00 menit, SE 0.62).
A - C: tidak cukup bukti perbedaan (p = 0.07994).

Laporan tersimpan: laporan.txt

Fitur yang Dibangun #

FiturPerilaku
Data eksperimen sintetis3 metode x 10 replikat dari formula tetap; tersimpan sebagai data_eksperimen.csv (guard writematrix/dlmwrite)
Statistik deskriptifPer metode: n, mean, std sampel, median, SE, CI95 (mean +/- 1.96*SE), min, max
Uji normalitas ringanSkewness g1 dan kurtosis g2 dari rumus momen; kriteria praktis |g1| < 0.5
ANOVA satu arah manualSSbetween/SSwithin, df, MSB/MSW, F, p-value persis lewat betainc, nilai kritis lewat betaincinv, eta-squared
Posthoc BonferroniUji t pooled untuk 3 pasangan dengan ambang alpha/3; tabel keputusan
Box plot manualKotak dari quantile + fill + line — tanpa Statistics Toolbox; lima bilangan tiap grup dicetak
Laporan otomatislaporan.txt ditulis dari struct hasil sehingga angkanya selalu konsisten dengan tabel Command Window
Uji otomatistests/uji_analisis.m: 26 kasus assert termasuk determinisme dua kali eksekusi

Tujuan Pembelajaran #

  • Merancang rencana analisis lengkap sebelum melihat data — hipotesis, alpha, dan urutan uji dikunci di awal.
  • Menghitung statistik deskriptif per kelompok dan membedakan std, standard error, dan confidence interval.
  • Menguji normalitas lewat momen g1/g2 dan mengetahui batasnya dibanding uji formal.
  • Membangun ANOVA satu arah dari rumus dasar: SS, df, MS, F, p-value, dan effect size eta-squared.
  • Menerapkan koreksi Bonferroni untuk uji posthoc dan menjelaskan alasan family-wise error.
  • Menghitung p-value persis tanpa toolbox memakai betainc/betaincinv.
  • Menulis laporan analisis dari struct hasil dan menguji seluruh pipeline secara deterministik.

Prasyarat #

Materi berikut perlu dikuasai sebelum memulai proyek ini:

  • Statistik Deskriptif, Confidence Interval, Hypothesis Testing, dan Analisis Variansi dari section Statistik dan Analisis Data
  • Interpretasi Hasil Statistik dari section Statistik dan Analisis Data — dasar kejujuran pelaporan yang dipakai di Bagian 4
  • Box Plot dari section Visualisasi Data — pola quantile + fill dipakai ulang di sini
  • Membaca File CSV dan Menulis File Data dari section Import dan Export Data
  • Membuat Function dan Local Functions dari section Fungsi
  • Assertions dan Unit Testing dari section Debugging dan Pengujian

Struktur Proyek #

Kode dipisah menjadi fungsi analisis di src/ dan satu berkas uji di tests/:

text
analisis-data-eksperimen/
├── _index.md
├── bagian/
│   ├── perancangan-analisis/
│   │   └── index.md
│   ├── statistik-deskriptif/
│   │   └── index.md
│   ├── analisis-statistik/
│   │   └── index.md
│   └── interpretasi-hasil/
│       └── index.md
├── src/
│   ├── buatDataEksperimen.m    - data sintetis deterministik + CSV
│   ├── statistikKelompok.m     - statistik deskriptif per metode
│   ├── ujiNormalitas.m         - skewness/kurtosis momen
│   ├── ujiAnova.m              - one-way ANOVA manual + p-value
│   ├── ujiPostHoc.m            - uji t berpasangan + Bonferroni
│   └── jalankanAnalisis.m      - orkestrasi + box plot + laporan
└── tests/
    └── uji_analisis.m          - 26 kasus uji otomatis

Cara Menjalankan #

Buka folder src/ lalu panggil jalankanAnalisis dari Command Window:

matlab
% dari folder src/
hasil = jalankanAnalisis();

Semua berkas keluaran — data_eksperimen.csv, box-plot-eksperimen.png, laporan.txt — ditulis di folder kerja aktif, jadi pastikan kita menjalankan fungsi dari folder yang bisa ditulisi. Struct hasil memuat seluruh hasil antara (hasil.anova, hasil.posthoc, dan seterusnya) kalau kita ingin memeriksa angkanya lebih jauh. Setiap fungsi analisis juga bisa dipanggil sendiri untuk eksperimen, misalnya statistikKelompok(data) setelah data = buatDataEksperimen();.

Tahapan Pengerjaan #

Proyek dikerjakan dalam empat bagian berurutan; setiap bagian menghasilkan fungsi yang langsung bisa diuji:

  1. Bagian 1: Perancangan Analisis — konteks eksperimen, hipotesis, variabel, rencana uji, dan data sintetis deterministik.
  2. Bagian 2: Statistik Deskriptif — statistik per kelompok beserta makna SE dan CI, ditambah box plot pembanding.
  3. Bagian 3: Analisis Statistik — uji normalitas, ANOVA manual lengkap dengan p-value, dan posthoc Bonferroni.
  4. Bagian 4: Interpretasi Hasil — membaca hasil utuh, laporan tertulis, keterbatasan, dan uji otomatis.

Mulailah dari Bagian 1: keputusan perancangan di sana menentukan apa yang boleh dan tidak boleh kita simpulkan di Bagian 4.