Tutorial Kedro: Pipeline Data Science yang Reproducible dan Terstruktur

# 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 lan...

By Ruby Abdullah · · tutorial
KedroData SciencePipelineMLOpsReproducibilityPython

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 di conf/, data di data/. 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 run untuk 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

Artikel Terkait

ZenML: Framework Pipeline MLOps yang Modular dan Cloud-Agnostic

ZenML: Framework Pipeline MLOps yang Modular dan Cloud-Agnostic Pendahuluan Membangun model machine learning yang akurat...

Tutorial Ray Train & Ray Tune: Training Terdistribusi dan Tuning Hyperparameter

Ray Train & Ray Tune: Pelatihan Terdistribusi dan Penyetelan Hiperparameter Sebagian besar proyek machine learning dimul...

DuckDB: Database Analitik In-Process untuk Data Science

DuckDB: Database Analitik In-Process untuk Data Science DuckDB adalah database analitik in-process yang dirancang khusus...

Tutorial PySpark untuk Machine Learning: Big Data ML Pipeline

PySpark untuk Machine Learning Daftar Isi Pendahuluan Prasyarat Dasar Spark dan SparkSession Operasi DataFrame