Each worksheet now includes Ringkasan Materi, Template A.x, 3 exercises with example answers, and reflection prompts. Synced from rti-20252 student repo.
177 lines
5.3 KiB
Markdown
177 lines
5.3 KiB
Markdown
# WS-09: Implementation & Environment
|
||
|
||
> **Bab 9 — Implementasi Riset & Kontrol Lingkungan**
|
||
|
||
---
|
||
|
||
## Ringkasan Materi
|
||
|
||
### Implementasi Riset ≠ Coding Biasa
|
||
|
||
Tujuan implementasi riset bukan membuat software yang berfungsi, melainkan membangun **instrumen pengukuran yang konsisten**. Setiap modul harus di-mapping ke variabel (dari Bab 6), parameter harus config-driven, dan logging aktif dari hari pertama.
|
||
|
||
### Reproducible Implementation Model
|
||
|
||
```
|
||
Design → Implementation → Environment Setup → Execution Consistency → Reproducibility → Trustworthy Result
|
||
```
|
||
|
||
Setiap transisi memiliki syarat:
|
||
- Design → Implementation: kode sesuai mapping variabel-ke-komponen
|
||
- Implementation → Environment: versi, dependency, seed, path, OS eksplisit
|
||
- Environment → Consistency: seed terkunci, urutan deterministik
|
||
- Consistency → Reproducibility: dokumentasi lengkap
|
||
- Reproducibility → Trust: siapa pun ikuti dokumentasi → hasil sama/serupa
|
||
|
||
### Repeatability vs Reproducibility
|
||
|
||
| Level | Peneliti | Environment | Hasil |
|
||
|-------|---------|-------------|-------|
|
||
| **Repeatability** | Sama | Sama | Sama persis |
|
||
| **Reproducibility** | Berbeda | Berbeda (ikuti docs) | Sama/serupa |
|
||
|
||
Capai **repeatability** dulu, baru **reproducibility**.
|
||
|
||
### Engineering vs Research Perspective
|
||
|
||
| Aspek | Engineering | Research |
|
||
|-------|-----------|---------|
|
||
| Tujuan | Sistem berfungsi untuk user | Instrumen pengukuran konsisten |
|
||
| Dependency | Update ke terbaru | Lock di versi spesifik |
|
||
| Testing | Unit, integration, E2E | Repeatability test (run ulang → sama?) |
|
||
| Dokumentasi | User guide, API docs | Environment spec, execution steps, expected output |
|
||
| Config | Default masuk akal | Setiap parameter eksplisit & adjustable |
|
||
|
||
### Jebakan Kognitif
|
||
|
||
1. Menunda environment setup → bug sulit dilacak
|
||
2. Tidak pakai version control → hasil tidak bisa direkonstruksi
|
||
3. Menolak Docker/container → "di laptop saya bisa" saat review
|
||
4. 3× hasil sama ≠ repeatable (bisa cache/state tersimpan)
|
||
|
||
### Istilah Penting
|
||
|
||
- **Environment Specification** — Deskripsi lengkap: hardware, OS, runtime, library + versi, config, seed
|
||
- **Dependency** — Komponen eksternal yang harus di-lock versinya
|
||
- **Config-driven** — Parameter dieksternalisasi ke file konfigurasi, bukan hardcode
|
||
|
||
---
|
||
|
||
## Template A.9 — Dokumentasi Setup Eksperimen
|
||
|
||
```
|
||
EXPERIMENT SETUP DOCUMENTATION
|
||
|
||
Hardware:
|
||
CPU : ____________________
|
||
RAM : ____________________
|
||
GPU : ____________________
|
||
Storage : ____________________
|
||
|
||
Software:
|
||
OS : ____________________
|
||
Runtime : ____________________
|
||
Framework : ____________________
|
||
|
||
Dependencies:
|
||
| Library | Version | Sumber | Hash/Checksum |
|
||
|---------|---------|--------|---------------|
|
||
| | | | |
|
||
| | | | |
|
||
|
||
Konfigurasi:
|
||
Config file : ____________________
|
||
Random seed : ____________________
|
||
Hyperparameters : ____________________
|
||
|
||
Reproducibility Check:
|
||
[ ] Dependency terdokumentasi (requirements.txt / lock file)
|
||
[ ] Seed ditetapkan di semua level (Python, NumPy, framework)
|
||
[ ] Config di version control
|
||
[ ] README instruksi reproduksi lengkap
|
||
```
|
||
|
||
---
|
||
|
||
## Latihan 1 — Environment Specification
|
||
|
||
Dokumentasikan environment untuk eksperimen Anda (boleh environment saat ini atau yang direncanakan).
|
||
|
||
| Komponen | Spesifikasi |
|
||
|----------|------------|
|
||
| CPU | *Contoh: Intel Core i7-12700H, 14 Core* |
|
||
| RAM | *Contoh: 32 GB DDR5* |
|
||
| GPU | *Contoh: NVIDIA RTX 3060 6GB / CPU-only jika tidak ada GPU* |
|
||
| OS | *Contoh: Ubuntu 22.04 LTS / Windows 11* |
|
||
| Runtime | |
|
||
| Framework | |
|
||
| Random Seed | |
|
||
|
||
**Dependencies (minimal 5):**
|
||
|
||
| Library | Version | Alasan Dibutuhkan |
|
||
|---------|---------|-------------------|
|
||
| *Contoh: scikit-learn* | *1.3.2* | *Klasifikasi + evaluasi metrik* |
|
||
| | | |
|
||
| | | |
|
||
| | | |
|
||
| | | |
|
||
|
||
---
|
||
|
||
## Latihan 2 — Repeatability Test Plan
|
||
|
||
Rancang tes repeatability sederhana: jalankan kode yang sama 3× di environment yang sama.
|
||
|
||
| Run | Seed | Metrik Utama | Hasil Sama? |
|
||
|-----|------|-------------|-------------|
|
||
| 1 | *Contoh: 42* | *Contoh: Accuracy* | — |
|
||
| 2 | | | [ ] Ya / [ ] Tidak |
|
||
| 3 | | | [ ] Ya / [ ] Tidak |
|
||
|
||
**Jika hasil berbeda, kemungkinan penyebab:**
|
||
> ___________________________________________________
|
||
|
||
**Checklist kontrol yang sudah diterapkan:**
|
||
- [ ] Random seed di-set di semua level
|
||
- [ ] Tidak ada background process yang mengganggu
|
||
- [ ] Cache dibersihkan antar-run
|
||
- [ ] Config file yang sama untuk semua run
|
||
|
||
---
|
||
|
||
## Latihan 3 — README Eksperimen
|
||
|
||
Tulis README minimum untuk eksperimen Anda (6 komponen wajib).
|
||
|
||
```
|
||
# Judul Eksperimen: ____________________
|
||
|
||
## 1. Environment
|
||
> (Salin spesifikasi dari Latihan 1)
|
||
|
||
## 2. Installation
|
||
> (Langkah instalasi, misal: "pip install -r requirements.txt")
|
||
|
||
## 3. Data
|
||
> (Deskripsi data: sumber, format, ukuran)
|
||
|
||
## 4. Execution
|
||
> (Command untuk menjalankan eksperimen)
|
||
|
||
## 5. Configuration
|
||
> (File config yang digunakan + parameter kunci)
|
||
|
||
## 6. Expected Output
|
||
> (Contoh output yang diharapkan + format)
|
||
```
|
||
|
||
---
|
||
|
||
## Refleksi
|
||
|
||
> Apakah eksperimen Anda saat ini bisa direproduksi oleh orang lain tanpa bantuan Anda? Komponen apa yang masih hilang?
|
||
|
||
**Level saat ini:** [ ] Repeatability / [ ] Reproducibility / [ ] Belum keduanya
|
||
**Komponen yang belum terdokumentasi:**
|
||
> ___________________________________________________
|