Kedro: Pipeline Data Science yang Reproducible dan Mudah Dirawat
Sebagian besar proyek data science dimulai dari satu notebook dan perlahan berubah menjadi kekusutan sel, path file yang ditulis langsung (hardcoded), serta kode yang hanya bisa berjalan di satu laptop. Kedro adalah framework Python open-source yang menerapkan disiplin software engineering pada pekerjaan data science, memberi proyek Anda struktur standar, cara deklaratif untuk mengelola data, serta pemisahan yang rapi antara kode, konfigurasi, dan data. Tutorial ini membahas konsep-konsepnya dan menunjukkan contoh lengkap yang dapat dijalankan.
Apa Itu Kedro dan Masalah yang Diselesaikannya
Kedro bukan scheduler dan bukan pula alat notebook. Ia adalah framework proyek: cara terstruktur untuk menata kode data science agar reproducible, dapat diuji, dan siap diserahkan ke engineer lain. Kedro dibuat di QuantumBlack (bagian dari McKinsey) dan kini dikelola di bawah LF AI & Data Foundation.
Siapa pun yang pernah merawat kode data science pasti mengenali masalah-masalah berulang berikut:
- Kekacauan notebook. Logika tersebar di sel-sel yang harus dijalankan dengan urutan tepat. State tersembunyi membuat hasil mustahil direproduksi.
- Path yang hardcoded.
pd.readcsv("/Users/ruby/Downloads/datav3final.csv")hanya jalan di satu mesin dan langsung rusak saat rekan kerja meng-clone repository. - Tanggung jawab yang tercampur. Connection string, hyperparameter model, dan logika bisnis bercampur dalam satu file, sehingga mengganti environment berarti mengubah kode sumber.
- Lineage yang tidak jelas. Tidak jelas fungsi mana menghasilkan artefak mana dan apa bergantung pada apa.
Kedro mengatasinya melalui beberapa prinsip inti:
- Pemisahan kode, konfigurasi, dan data. Kode ada di
src/, konfigurasi diconf/, data didata/. Masing-masing bisa berubah secara independen. - Data Catalog yang deklaratif. Dataset adalah entitas bernama yang dideskripsikan dalam YAML, bukan path mentah yang terselip di dalam kode.
- Modularitas. Pekerjaan dipecah menjadi fungsi-fungsi murni kecil (node) yang dirangkai menjadi pipeline, sehingga pengujian dan penggunaan ulang menjadi mudah.
- Reproducibility. Siapa pun bisa meng-clone repository, memasang dependensi, dan menjalankan
kedro rununtuk memperoleh hasil yang sama.
Yang penting, Kedro menyediakan struktur, bukan penjadwalan. Ketika Anda butuh orkestrasi mirip cron, retry, atau scheduler produksi, Anda men-deploy pipeline Kedro ke Airflow, Dagster, Argo, Databricks, atau sejenisnya. Kedro memberi bentuk pada proyek; alat-alat tersebut menjalankannya sesuai jadwal.
Instalasi dan Membuat Proyek
Kedro membutuhkan Python 3.9 atau lebih baru. Selalu pasang ke dalam virtual environment.
python -m venv .venv
source .venv/bin/activate # di Windows: .venv\Scripts\activate
pip install kedro
kedro info
Buat proyek baru. Kedro menggunakan starter (template); contoh di bawah memakai prompt tooling standar.
kedro new --name price-prediction
Anda akan ditanya tooling apa yang ingin disertakan (linting, testing, logging, dokumentasi, struktur data). Untuk tutorial ini kita asumsikan proyek bernama price-prediction untuk model regresi harga rumah.
Struktur Direktori Standar
price-prediction/
├── conf/
│ ├── base/
│ │ ├── catalog.yml # definisi dataset
│ │ ├── parameters.yml # parameter pipeline
│ │ └── logging.yml
│ └── local/
│ └── credentials.yml # rahasia, jangan pernah di-commit
├── data/
│ ├── 01raw/ # data sumber yang immutable
│ ├── 02intermediate/ # data yang sudah bertipe dan bersih
│ ├── 03primary/
│ ├── 04feature/
│ ├── 05modelinput/
│ ├── 06models/
│ ├── 07modeloutput/
│ └── 08reporting/
├── notebooks/
├── src/
│ └── priceprediction/
│ ├── pipelines/
│ ├── pipelineregistry.py
│ └── settings.py
├── pyproject.toml
└── requirements.txt