--- marp: true paginate: true class: bagian-iii header: 'RTI — Riset Teknologi Informasi | Universitas Putra Bangsa Kebumen' footer: 'Helmi Bahar Alim, S.Kom., M.Kom. | 2026' --- # Bab 10 — Experiment Execution & Data Collection ## Dari Rencana ke Data yang Terpercaya *Pertemuan 10 (M10)  |  Sub-CPMK 3.2  |  CPMK03  |  CPL06* Fase: **Executing** (M9–M11)  ·  Bagian III: Execution **Universitas Putra Bangsa**  |  Fak. Sains & Teknologi  ·  Prodi Teknik Informatika --- ## Agenda Pertemuan 10 1. Execution plan: pentingnya perencanaan sebelum eksekusi 2. Experiment Execution Pipeline 3. Mengapa multiple run wajib 4. Struktur data logging yang benar 5. Konsistensi eksekusi — sama persis setiap kali 6. Data collection protokol 7. Cognitive Traps & Studi Kasus 8. Output Praktis: Log Eksperimen + Dataset Mentah --- ## Capaian Pembelajaran Setelah pertemuan ini, mahasiswa mampu: - Menyusun **execution plan** yang detail sebelum menjalankan eksperimen - Menerapkan **multiple run** dan menjelaskan alasan statistiknya - Merancang struktur **data logging** yang komprehensif - Memastikan **konsistensi eksekusi** di semua skenario dan run - Menghasilkan **dataset eksperimen mentah** yang siap divalidasi > Sub-CPMK 3.2 → Melaksanakan eksperimen dan mengumpulkan data (CPL06) --- ## Experiment Execution Pipeline *Dari desain ke dataset yang siap dianalisis*
**Design** ↓ Execution Plan (sebelum eksperimen dimulai) ↓ Controlled Execution (skenario satu per satu) ↓ Data Collection (setiap metrik, setiap run) ↓ Data Logging (terstruktur, timestamped) ↓ **Dataset for Analysis**
> Eksekusi **tanpa execution plan** = memasak tanpa resep. Mungkin jadi, tapi tidak terjamin konsistensinya. --- ## Execution Plan — Apa yang Harus Ada **Sebelum menjalankan eksperimen pertama:** ``` EXECUTION PLAN — Eksperimen [N] Skenario yang akan dijalankan: Skenario 1: [kondisi A] — [parameter spesifik] Skenario 2: [kondisi B] — [parameter spesifik] Skenario 3: [baseline] — [parameter spesifik] Jumlah run per skenario: 10 Random seeds untuk tiap run: [42, 123, 456, 789, 1024, ...] Urutan eksekusi: 1. Skenario baseline → 10 runs 2. Skenario 1 → 10 runs 3. Skenario 2 → 10 runs Estimasi waktu per run: 45 menit Total waktu: ~22.5 jam ``` --- ## Mengapa Multiple Run Wajib? **Satu run tidak cukup karena:** 1. Inisialisasi random (weight initialization, shuffle order) berbeda setiap run 2. Hardware variance (thermal throttling, background processes) 3. Satu run tidak bisa menghitung **standard deviation → tidak bisa uji statistik** | Runs | Yang Bisa Dihitung | Yang Tidak Bisa | |------|-------------------|----------------| | 1 run | Point estimate saja | ± std, t-test, CI | | 3 run | Mean (terlalu kecil untuk distribusi) | Reliable CI | | 5 run | Mean ± std (minimum acceptable) | Large sample statistics | | 10+ run | Mean ± std + t-test + CI | — | > **Minimum dalam riset TI:** 5 run. Disarankan 10 run untuk stabilitas statistik. --- ## Struktur Data Logging *Setiap run harus menghasilkan log yang lengkap* ```python log_entry = { "run_id": "exp03_run07", "timestamp": "2026-04-13T10:25:33", "experiment_id": "exp-03", "scenario": "attention-mechanism", "random_seed": 789, "config": { "model": "BiLSTM", "attention": True, "learning_rate": 1e-3, "batch_size": 32, "epochs": 50 }, "results": { "f1_micro": 0.872, "f1_macro": 0.815, "precision": 0.889, "recall": 0.856, "training_time_sec": 2723 }, "hardware": "RTX 3090, 24GB VRAM, CUDA 11.8" } ``` --- ## Konsistensi Eksekusi — Checklist Setiap Run *Sebelum memulai setiap run, pastikan:* | Item | Cek | |------|-----| | Environment aktif (conda/venv) | `conda activate rti-exp` | | Config file benar untuk skenario ini | `cat configs/exp_03_s1.yaml` | | Random seed di-set | Set di numpy, torch, Python random | | Dataset di lokasi yang benar + checksum OK | `md5sum dataset.csv` | | GPU memory kosong | `nvidia-smi` | | Log directory tersedia | `mkdir -p logs/exp03/` | | Tidak ada proses berat yang berjalan | Tutup browser, aplikasi lain | > Konsistensi eksekusi bukan paranoia — ini adalah standar ilmiah. --- # Cognitive Traps ## Bab 10 — Experiment Execution --- ## Cognitive Traps — Bab 10 **"Satu run sudah cukup kalau hasilnya bagus"** "Bagus" dalam satu run mungkin keberuntungan (lucky seed). Tanpa multiple run, tidak ada cara mengetahui apakah hasil tersebut stabil atau artifact dari kondisi spesifik satu eksekusi. **"Data logging berlebihan, cukup catat hasil akhir saja"** Ketika ada anomali atau hasil yang tidak terduga, log yang lengkap adalah satu-satunya cara untuk menginvestigasi. Logging minimal = debugging impossible. Disk space murah, waktu investigasi mahal. **"Eksperimen bisa dijalankan sambil mengerjakan yang lain"** Background processes mengkonsumsi CPU/GPU/RAM dan dapat mempengaruhi throughput dan latency measurement. Untuk eksperimen yang mengukur performa sistem, isolasi resource wajib. --- ## Studi Kasus 1 — Single Run Disaster (Basic) **Konteks:** Mahasiswa melaporkan F1=91.5%. Dosen meminta run ulang. Hasil: 84.2%. **Investigasi:** - Run pertama: lucky seed, distribusi batch training kebetulan balans - Run ulang: seed berbeda, batch distribution berbeda - Variance sangat tinggi: std = 3.7% → model tidak stabil **Tabel dari 5 run:** | Run | Seed | F1-score | |-----|------|---------| | 1 | 42 | 91.5% ← yang dilaporkan | | 2 | 123 | 84.2% | | 3 | 456 | 87.1% | | 4 | 789 | 85.8% | | 5 | 1024 | 86.3% | | **Mean ± Std** | | **87.0 ± 2.6%** | **Pelajaran:** F1 yang sebenarnya adalah 87.0 ± 2.6%, bukan 91.5%. --- ## Studi Kasus 2 — Eksekusi Tidak Konsisten (Advanced) **Konteks:** Researcher membandingkan dua model. Model A selalu dijalankan di pagi hari (server dingin), Model B di sore hari (server panas, thermal throttling aktif). **Hasil:** Model A 15% lebih cepat dalam inference time. **Masalah:** Perbedaan inference time bukan karena model — tapi karena kondisi hardware yang berbeda. **Protokol eksekusi yang benar:** 1. Randomize urutan eksekusi per run (Model A/B dijalankan bergantian dalam satu sesi) 2. Jalankan warm-up run sebelum pengukuran (GPU dalam kondisi stabil) 3. Ukur hardware state sebelum setiap run (`nvidia-smi`, CPU temperature) 4. Catat semua di log --- ## Format Dataset Mentah *Hasil semua run harus tersimpan dalam format yang terstruktur* ``` results/ exp03_summary.csv ← semua run, semua skenario exp03_raw/ run_01_seed42.json run_02_seed123.json ... exp03_config/ scenario_1_attention.yaml scenario_2_baseline.yaml ``` **Format `exp03_summary.csv`:** ```csv run_id,scenario,seed,f1_micro,f1_macro,precision,recall,time_sec exp03_s1_r1,attention,42,0.872,0.815,0.889,0.856,2723 exp03_s1_r2,attention,123,0.865,0.810,0.882,0.849,2698 exp03_s2_r1,baseline,42,0.821,0.768,0.844,0.799,2511 ``` --- ## Research vs Engineering — Execution | Aspek | Engineering | Research | |-------|------------|---------| | Eksekusi | Run sekali, jika berhasil → selesai | Minimal 5 run per skenario | | Kondisi eksekusi | Tidak disebutkan | Dikontrol dan didokumentasikan | | Data yang disimpan | Hasil akhir saja | Semua run, semua metrik, semua log | | Anomali | Dibuang / diabaikan | Dicatat dan diinvestigasi | | Urutan eksekusi | Tidak penting | Randomized untuk menghindari order bias | --- ## Ringkasan Pertemuan 10 | Konsep | Inti | |--------|------| | Execution Pipeline | Design → Plan → Execution → Collection → Logging → Dataset | | Multiple Run | Min. 5 runs → bisa hitung mean ± std → bisa uji statistik | | Data Logging | Setiap run: ID, timestamp, config, result, hardware | | Konsistensi | Checklist yang sama sebelum setiap run | | Format Dataset | CSV summary + JSON detail per run + YAML config | --- ## Final Statement & Output Praktis
"Data yang baik bukan data yang banyak, tetapi data yang dikumpulkan dengan konsistensi metodologi yang ketat."
### Output Praktis M10 Hasilkan dan kumpulkan: 1. **Log eksperimen** (minimal 5 run per skenario, format terstruktur) 2. **Dataset mentah** (`results/exp_summary.csv` + file per run) 3. **Catatan anomali** — apa yang terjadi di luar rencana selama eksekusi *Dokumen ini menjadi dasar untuk validasi data di Bab 11.* --- ## Referensi Utama — Bab 10 - Wohlin, C., Runeson, P., Höst, M., Ohlsson, M. C., Regnell, B., & Wesslén, A. (2012). *Experimentation in software engineering*. Springer. - Pineau, J., Vincent-Lamarre, P., Sinha, K., Larivière, V., Beygelzimer, A., d'Alché-Buc, F., Fox, E., & Larochelle, H. (2021). Improving reproducibility in machine learning research. *Journal of Machine Learning Research, 22*(1), 7459–7478. - Hoefler, T., & Belli, R. (2015). Scientific benchmarking of parallel computing systems: Twelve ways to tell the masses when reporting performance results. In *Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis* (pp. 1–12). ACM.