Enam bulan setelah tesis Anda lulus, seorang peneliti lain membaca hasil Anda dan ingin melanjutkannya. Dia meminta data dan kode. Anda membuka folder lama — dan menemukan kekacauan: berkas bernama final.do, final_fix.do, final_REAL_fix2.do, data tercecer di beberapa tempat, dan tidak ada catatan urutan menjalankannya. Lebih buruk lagi: Anda sendiri pun lupa langkah persis untuk memunculkan angka di Tabel 3. Secara praktis, hasil riset Anda tidak bisa diulang oleh siapa pun — termasuk Anda.
Inilah masalah yang dipecahkan oleh paket replikasi (replication package): satu kumpulan rapi berisi data, kode, dan dokumentasi yang menjamin hasil riset bisa dihasilkan ulang dari awal. Sejak American Economic Association (AEA — himpunan ekonom Amerika, penerbit jurnal-jurnal ekonomi paling berpengaruh) memberlakukan kebijakan ketat soal ketersediaan data dan kode pada 2019, menyusun paket replikasi menjadi keterampilan wajib. Bagi mahasiswa, kebiasaan ini membuat tesis lebih kredibel, jauh lebih mudah direvisi, dan menjadi modal saat mengejar publikasi.
Apa Itu “Reproducible” — dan Kenapa Wajib
Sebuah hasil disebut dapat direproduksi (reproducible) kalau orang lain, dengan data dan kode yang sama, memperoleh angka yang persis sama dengan yang Anda laporkan. Ini berbeda dari “dapat direplikasi” (replicable) — yaitu memperoleh kesimpulan serupa dengan data baru yang berbeda. Paket replikasi mengurus yang pertama: jaminan bahwa dari bahan baku yang Anda sertakan, Tabel 3 dan Gambar 2 muncul kembali tanpa keajaiban.
Kenapa ini penting?
| Manfaat | Penjelasan |
|---|---|
| Kredibilitas | Hasil yang bisa diulang lebih dipercaya — pembaca tak perlu sekadar percaya pada kata-kata Anda |
| Transparansi | Penguji dan pembaca bisa memverifikasi sendiri tiap angka |
| Diri sendiri | “Anda di masa depan” bisa menjalankan ulang tanpa pusing saat revisi datang |
| Syarat jurnal | AEA, jurnal papan atas, dan makin banyak lainnya mewajibkannya |
| Sitasi | Paket yang baik sering disitasi terpisah dari papernya |
Kemampuan diulang adalah pilar metode ilmiah. Hasil yang tidak bisa diulang sulit dipercaya — bukan karena pasti salah, tetapi karena tak ada yang bisa memeriksanya.
Lima Tahap Menyusun Paket
Menyusun paket replikasi bukan satu pekerjaan besar, melainkan lima tahap berurutan. Tiap tahap menyiapkan tahap berikutnya, dan menyelesaikannya di akhir jauh lebih sulit daripada merawatnya sepanjang jalan.
Sisa artikel ini membahas tiap tahap dengan contoh konkret.
Tahap 1 — Atur Folder
Folder yang bersih dan dapat ditebak adalah fondasi segalanya. Aturan emasnya satu: pisahkan dengan tegas data mentah, kode, dan keluaran.
paket-replikasi/
├── README.md <- titik masuk, instruksi lengkap
├── data/
│ ├── mentah/ <- data asli (JANGAN diubah sama sekali)
│ └── bersih/ <- data hasil olahan (dihasilkan kode)
├── kode/
│ ├── 01_bersihkan.do <- bernomor sesuai urutan jalan
│ ├── 02_analisis.do
│ └── 03_tabel_gambar.do
├── keluaran/
│ ├── tabel/
│ └── gambar/
└── dokumen/
└── codebook.pdf <- definisi tiap variabel
Tiga prinsip yang membuat struktur ini bekerja:
- Data mentah tak tersentuh. Folder
data/mentah/berisi data persis seperti Anda terima — tidak pernah disunting tangan. Semua pembersihan terjadi di kode dan menghasilkandata/bersih/. Kalau Anda merusak data bersih, cukup jalankan ulang kode; data mentah tetap aman sebagai sumber kebenaran. - Kode bernomor sesuai urutan jalan. Awalan
01_,02_,03_memberi tahu siapa pun urutan menjalankannya tanpa harus menebak. Mata orang lain langsung tahu: bersihkan dulu, analisis kemudian, baru cetak tabel. - Keluaran terpisah dari masukan. Tabel dan gambar duduk di folder sendiri, sehingga jelas mana yang bahan baku dan mana yang hasil akhir.
Catatan istilah:
.doadalah berkas naskah (script) untuk perangkat lunak Stata; di R berkasnya.R, di Python.py. Prinsip penomoran dan pemisahan folder sama persis untuk ketiganya.
Tahap 2 — Tata Kode agar Dapat Diulang
Folder rapi belum cukup kalau kodenya hanya jalan di komputer Anda. Lima praktik berikut membuat kode bisa dijalankan ulang oleh siapa pun, kapan pun — inti dari reproducibility.
Kunci angka-acak (set seed). Banyak prosedur memakai angka acak: pengambilan ulang sampel bootstrap (teknik menaksir ketidakpastian dengan mengundi ulang data Anda sendiri), simulasi, atau model pembelajaran mesin. Tanpa “mengunci” pengundian itu, hasil berubah sedikit tiap kali dijalankan. Menetapkan kunci-acak — misalnya set seed 12345 di Stata, set.seed(12345) di R — memaksa pengundian selalu menghasilkan deretan angka yang sama, sehingga angka Anda dapat direproduksi persis.
Pakai path relatif, bukan absolut. Path adalah alamat berkas di komputer. Path absolut seperti C:\Users\Budi\tesis\data.csv menunjuk lokasi yang hanya ada di mesin Budi — di komputer lain langsung gagal. Path relatif menunjuk dari akar proyek, misalnya data/mentah/data.csv, sehingga berlaku di mana saja paket itu disalin. Alat bantu seperti here::here() di R atau global path di Stata memudahkan ini.
Sediakan naskah induk (master script). Satu berkas — jalankan_semua.do atau master.R — yang memanggil semua naskah lain sesuai urutan, sehingga seluruh analisis berjalan dengan satu perintah. Pemeriksa cukup menekan satu tombol, bukan menebak-nebak urutan sembilan berkas.
Catat versi perangkat lunak dan paket. Versi yang berbeda kadang memberi hasil berbeda. Sebutkan dengan tepat: “Stata 18”, “R 4.3”, “Python 3.11”, lengkap dengan paket tambahan. Di R, alat renv merekam versi paket secara otomatis; di Python, berkas requirements.txt atau environment.yml melakukan hal serupa.
Jangan mengetik angka hasil secara manual. Setiap tabel dan angka di paper harus dihasilkan oleh kode, bukan diketik tangan. Angka yang diketik manual rawan salah ketik, dan saat data berubah Anda lupa memperbaruinya. Biarkan kode yang mencetak, supaya jejaknya selalu terlacak.
Tahap 3 — Tulis README
README adalah berkas pertama yang dibaca orang. Ia peta seluruh paket: tanpa README yang baik, paket terbaik sekalipun terasa seperti kota tanpa rambu. Mengikuti templat AEA, README memuat enam bagian:
- Gambaran umum — ringkasan singkat apa yang dilakukan paket ini.
- Ketersediaan data — dari mana data berasal, apakah publik atau terbatas, dan cara mengaksesnya.
- Perangkat lunak dan versi — Stata 18 / R 4.3 / Python 3.11, beserta paket yang dipakai.
- Instruksi menjalankan — urutan berkas dan perkiraan lama proses.
- Daftar keluaran — berkas mana menghasilkan Tabel atau Gambar mana di paper. Ini bagian yang paling sering dilupakan, padahal paling membantu pemeriksa.
- Kontak dan lisensi — siapa yang dihubungi dan ketentuan pemakaian ulang.
Bayangkan README sebagai surat yang Anda tulis untuk orang asing yang tidak punya konteks apa pun. Kalau dia bisa menjalankan paket Anda hanya dengan membaca README, Anda berhasil.
Tahap 4 — Buat Codebook
Codebook (buku kode) adalah dokumen yang mendefinisikan tiap variabel dalam data Anda: namanya, artinya, satuannya, dan nilai-nilai yang mungkin. Tanpa codebook, kolom bernama inc_d atau educ2 jadi teka-teki — bahkan bagi Anda sendiri setahun kemudian.
Untuk tiap variabel, catat empat hal:
| Unsur | Contoh |
|---|---|
| Nama variabel | pendapatan_bln |
| Definisi | Pendapatan rumah tangga per bulan |
| Satuan / kode | Rupiah; 9999 = tidak menjawab |
| Sumber | Susenas BPS 2023, blok pengeluaran |
Untuk variabel berkategori, daftarkan arti tiap kode (misalnya 1 = laki-laki, 2 = perempuan). Codebook yang baik membuat orang lain memahami data tanpa harus bertanya, dan melindungi Anda dari salah tafsir variabel sendiri saat menulis ulang bab analisis.
Tahap 5 — Tinjau, Uji Jalankan, lalu Arsip
Tahap terakhir adalah ujian sesungguhnya: jalankan paket dari nol di folder bersih, idealnya di komputer lain atau setidaknya seakan-akan Anda orang asing. Hapus semua keluaran lama, jalankan naskah induk, dan periksa apakah tiap tabel dan gambar muncul kembali persis sama. Inilah saat semua path absolut yang tersembunyi dan langkah manual yang terlupa akan ketahuan.
Setelah lolos uji, arsipkan paket di tempat permanen yang memberi pengenal tetap — repositori AEA, OSF (Open Science Framework), Dataverse, atau Zenodo. Tujuannya: tautan ke paket Anda tetap hidup bertahun-tahun ke depan.
Berbagi Data dengan Jujur
Tantangan paling sering ditemui mahasiswa: data tidak boleh disebar bebas — karena rahasia, berbayar, atau alasan etika (misalnya menyangkut data pribadi responden). AEA tetap menuntut transparansi, dan jalan keluarnya bukan menyembunyikan, melainkan menjelaskan dengan jujur:
- Kalau data publik (BPS, World Bank): sertakan datanya, atau beri tautan resmi plus naskah untuk mengunduhnya.
- Kalau data terbatas (berbayar atau berizin): jelaskan persis bagaimana orang lain bisa memperolehnya — prosedur, biaya, lembaga kontak, dan syaratnya.
- Kalau data benar-benar rahasia: sertakan data sintetis atau contoh berukuran kecil yang menyerupai struktur data asli (nama kolom dan tipe sama, isinya buatan), sehingga kode tetap bisa dijalankan untuk memeriksa alurnya, walau angkanya tidak nyata.
Kuncinya: kewajiban Anda bukan selalu membagikan data mentah, melainkan menjelaskan secara jujur status dan cara aksesnya. Yang dilarang adalah mengaburkan asal-usul data atau berpura-pura data terbuka padahal tidak. Integritas di sini berarti transparan soal keterbatasan, bukan menutupinya.
Checklist Kesiapan
Sebelum mengirim, lewati daftar periksa ini. Widget di bawah membuatnya interaktif — centang tiap butir dan lihat skor kesiapan Anda:
- Folder memisahkan
data/mentah,kode, dankeluarandengan jelas - Data mentah tidak pernah disunting tangan
- Kode bernomor sesuai urutan jalan
- Tidak ada satu pun path absolut spesifik komputer
- Kunci-acak ditetapkan untuk semua proses acak
- Ada naskah induk yang menjalankan semua dengan satu perintah
- Versi perangkat lunak dan paket dicatat
- Tidak ada angka hasil yang diketik manual ke paper
- README memuat keenam bagian (terutama daftar “kode mana → keluaran mana”)
- Codebook mendefinisikan tiap variabel
- Status dan cara akses data dijelaskan dengan jujur
- Paket sudah diuji-jalankan ulang dari folder bersih
Excel Pendamping
/excel/replication-package-aea.xlsx berisi: templat struktur folder, checklist AEA lengkap, templat README per bagian, dan tabel pemetaan “kode mana menghasilkan keluaran mana”.
Cek Pemahaman
1. Anda menemukan baris import delimited "C:\Users\Sari\Documents\tesis\data\survei.csv" di kode tesis seorang teman. Kenapa baris ini akan membuat paketnya gagal direproduksi, dan bagaimana memperbaikinya?
Lihat jawaban
Baris itu memakai path absolut — alamat yang hanya ada di komputer Sari. Begitu paket disalin ke komputer lain, folder C:\Users\Sari\... tidak ada, dan kode langsung berhenti dengan kesalahan “berkas tidak ditemukan”. Perbaikannya: pakai path relatif dari akar proyek, misalnya import delimited "data/mentah/survei.csv", sehingga berlaku di mana pun paket itu berada. Tambahan baik: definisikan akar proyek satu kali di awal (lewat here::here() di R atau global path di Stata) agar semua path mengacu padanya.
2. (transfer) Data tesis Anda berasal dari wawancara dengan 40 perusahaan yang setuju ikut hanya dengan jaminan kerahasiaan penuh — Anda terikat etika untuk tidak menyebarkannya. Penguji meminta paket replikasi yang sesuai standar AEA. Apa yang Anda lakukan agar tetap memenuhi transparansi tanpa melanggar kerahasiaan?
Lihat jawaban
Anda tidak melampirkan data aslinya — itu melanggar janji etika. Tetapi Anda tetap transparan dengan tiga langkah: (1) di README, jelaskan status data (rahasia, berbasis persetujuan responden) dan prosedur bagaimana peneliti lain bisa, secara sah, mengumpulkan data serupa; (2) sertakan data sintetis — berkas dengan nama dan tipe kolom yang sama persis seperti data asli tetapi isinya buatan — sehingga seluruh kode tetap dapat dijalankan dan alur analisisnya bisa diperiksa; (3) lampirkan codebook lengkap agar struktur data tergambar jelas. Dengan begitu pemeriksa bisa memverifikasi bahwa kode Anda benar, walau tidak bisa melihat angka asli. Transparan soal keterbatasan adalah bentuk integritas, bukan kekurangan.
Kesalahan Umum
Path absolut spesifik komputer. C:\Users\Budi\tesis\data.csv gagal di komputer lain. Pakai path relatif dari akar proyek.
Lupa mengunci angka-acak. Hasil dengan komponen acak (bootstrap, simulasi, pembelajaran mesin) berubah tiap dijalankan. Tetapkan kunci-acak agar dapat diulang.
Mengetik angka hasil ke paper secara manual. Rawan salah ketik dan tidak terlacak saat data berubah. Keluaran harus dicetak oleh kode.
README minim. “Jalankan analisis.do” tidak cukup. Sebutkan urutan, versi perangkat lunak, dan pemetaan keluaran (“Tabel 3 dari berkas mana”).
Mencampur data mentah dan olahan. Data mentah harus tak tersentuh; data bersih dihasilkan kode. Mencampurnya membuat asal-usul angka kabur dan mustahil ditelusuri.
Mengaburkan status data. Berpura-pura data terbuka padahal terbatas, atau diam soal kerahasiaan, melanggar integritas. Jujurlah soal keterbatasan dan sertakan data sintetis bila perlu.
Dipakai di Praktik
Penyerahan tesis dan disertasi. Banyak program kini meminta paket replikasi. Kebiasaan rapi sejak awal menghemat banyak waktu saat revisi tiba.
Publikasi jurnal ekonomi. Jurnal AEA (AER, AEJ), Econometrica, dan makin banyak jurnal mewajibkan paket replikasi yang lolos verifikasi Data Editor sebelum naskah diterbitkan.
Kolaborasi riset. Paket yang rapi memudahkan kerja tim dan menjaga keberlanjutan proyek ketika anggota berganti — orang baru bisa langsung menjalankan analisis tanpa mewawancarai Anda.
Lanjutan
- Pre-Registration dengan OSF — pasangan paket replikasi di sisi awal riset.
- Workflow Tesis End-to-End — peta utuh tempat paket replikasi duduk di tahap akhir.
- Zotero Citation Management — merapikan sitasi sejalan dengan merapikan kode dan data.
Terkait Claude for Research:
Reference
- AEA Data Editor (2020), “Data and Code Availability Policy”
- Vilhuber, L. (2020), “Reproducibility and replicability in economics”
- TIER Protocol, “Teaching Integrity in Empirical Research”