← Cara Saya Berpikir

Implementasi Reproducible — Mengapa Reproducibility adalah Fondasi Kepercayaan Hasil

Jarak antara desain dan eksekusi

Ada jarak yang sering diremehkan antara "saya tahu apa yang akan saya bangun" dan "saya memiliki sistem yang siap dieksperimenkan." Jarak itu diisi oleh tiga hal: implementasi yang konsisten, environment yang terkontrol, dan dokumentasi yang memungkinkan reproduksi.

Tanpa ketiganya, eksperimen mungkin berhasil di mesin peneliti — tapi tidak bisa diverifikasi, diulang, atau dipercaya oleh siapapun. Variasi tak terencana pada environment (versi library, konfigurasi OS, spesifikasi hardware) bisa mengubah hasil secara signifikan. Dua peneliti yang menjalankan "eksperimen yang sama" pada environment berbeda mungkin mendapat hasil berbeda bukan karena metode berbeda, melainkan karena infrastruktur berbeda.

Studi replikasi di machine learning secara konsisten menunjukkan bahwa reproduksi hasil lebih sulit dari yang diasumsikan. Ini bukan masalah teori — ini masalah praktik sehari-hari.

Reproducible Implementation Model

Trustworthy result bukan hanya produk dari desain eksperimen yang baik — ia juga produk dari implementasi dan environment yang terkontrol:

  1. Design → Implementation (Coding): desain eksperimen diterjemahkan menjadi kode. Setiap modul sistem harus sesuai dengan mapping variabel-ke-komponen dari desain. Implementasi yang tidak sesuai desain menghasilkan eksperimen yang menguji sesuatu yang berbeda dari yang direncanakan.

  2. Implementation → Environment Setup (Konfigurasi): kode memerlukan environment: versi Python/Java, library dependencies, GPU driver, dataset path, OS. Jika environment tidak didefinisikan secara eksplisit, eksperimen hanya bisa berjalan di mesin yang kebetulan memiliki konfigurasi serupa.

  3. Environment → Execution Consistency (Kontrol): setiap kali eksperimen dijalankan, hasilnya harus konsisten. Ini memerlukan: random seed terkunci, urutan eksekusi deterministik, dan kondisi environment yang stabil.

  4. Consistency → Reproducibility (Dokumentasi): konsistensi internal belum cukup. Agar orang lain bisa mereproduksi, dokumentasi harus lengkap: versi kode, environment spec, parameter, data, dan langkah-langkah eksekusi.

  5. Reproducibility → Trustworthy Result (Verifikasi): hasil baru dipercaya ketika ada jaminan bahwa siapa pun yang mengikuti dokumentasi akan mendapat hasil yang sama atau sangat serupa.

Praktik reproducibility yang konkret

Version control everything: bukan hanya kode, tapi juga konfigurasi, preprocessing script, dan — jika memungkinkan — data atau seed untuk regenerasi data.

requirements.txt atau environment.yaml: dokumentasikan semua dependency dengan versi yang tepat. Perbedaan versi library bisa mengubah hasil numerik secara signifikan.

Random seed eksplisit: setiap operasi stokastik (data splitting, weight initialization, sampling) harus menggunakan seed yang didokumentasikan.

Containerization: Docker atau environment manager (conda, virtualenv) memastikan siapapun bisa merekonstruksi environment yang identik.

README yang actionable: langkah-langkah untuk menjalankan eksperimen harus jelas dan bisa diikuti oleh seseorang yang tidak pernah melihat kode sebelumnya.

Repeatability vs reproducibility

Repeatability: peneliti yang sama, kode yang sama, environment yang sama, menghasilkan hasil yang sama. Ini standar minimum.

Reproducibility: peneliti yang berbeda, dengan kode yang independen, berdasarkan deskripsi metode yang sama, menghasilkan hasil yang konsisten. Ini standar ideal.

Riset yang hanya memenuhi repeatability tapi tidak reproducibility adalah riset yang tidak bisa diverifikasi secara independent — dan nilai ilmiahnya terbatas.

Helmi Bahara
Tentang penulis Helmi Bahara

Systems Architect & AI Workflow Thinker