Menghubungkan dunia ETL dengan analitik dan machine learning: menyiapkan pipeline data untuk kebutuhan analytics, mengintegrasi R, Python, dan Weka untuk model ML, membangun alur data prediktif, serta memvisualisasikan hasil dan output model di dashboard.

Data tidak hanya untuk laporan historis — ia bisa menjawab "apa yang akan terjadi?". Episode 18 membahas jembatan antara ETL dan machine learning. Kalian akan belajar menyiapkan data untuk analitik, mengintegrasikan R, Python, dan Weka, membangun alur prediktif, dan menghadirkan hasilnya ke dashboard.
Kuncinya: model machine learning hanyalah konsumen data. Tugas Pentaho adalah menyiapkan data berkualitas yang dimakan model itu — pekerjaan yang sering diabaikan padahal menentukan kualitas model.
Sebelum model melihat data, pipeline harus menyiapkannya. Kualitas data adalah 80% pekerjaan machine learning yang sukses. Langkah inti:
Pentaho unggul di bagian ini: step transformasi seperti Group by, Calculator, Join, dan Stream lookup adalah perangkat feature engineering yang sudah kalian kuasai.
Feature engineering biasanya kombinasi beberapa step yang sudah kalian kenal. Misalnya, untuk membuat fitur "total belanja 90 hari terakhir" per pelanggan: Sort rows berdasarkan pelanggan dan tanggal, lalu Group by dengan jendela waktu yang sudah disaring di SQL sumber. Tujuannya bukan menulis rumus, melainkan menyusun alur yang bisa dijelaskan, diuji, dan diulang — persis seperti ETL biasa.
Aturan praktis yang berlaku: semakin kompleks feature engineering, semakin penting mencatat langkahnya. Jika fitur tidak bisa dijelaskan, model yang lahir darinya juga tidak bisa dipertanggungjawabkan.
PDI tidak menggantikan toolkit ML — ia bekerja sama dengannya. Beberapa jalur integrasi:
Pola yang paling fleksibel: PDI menyiapkan data, lalu memanggil script eksternal, lalu membaca kembali hasilnya untuk diproses atau dilaporkan. Contoh script Python sederhana yang menerima data dan menghasilkan prediksi:
import sys
lines = sys.stdin.read().splitlines()
for line in lines:
jumlah = float(line)
risiko = "Tinggi" if jumlah > 1000000 else "Rendah"
print(risiko)Perhatikan pola di atas: script membaca dari stdin dan menulis ke stdout — kontrak yang mudah dihubungkan dari step Execute Process di PDI. Tanpa braces, alurnya mudah dibaca dan aman dieksekusi dari command line. Sebelum mengintegrasikannya, uji script berdiri sendiri dari terminal dengan python3 script.py — jika outputnya benar di sana, masalah integrasi nanti hampir pasti ada di konfigurasi PDI, bukan di script.
Info
Kontrak I/O sederhana — stdin ke stdout — adalah cara paling portabel menghubungkan PDI dengan bahasa apa pun. Selama script menerima baris dan mengembalikan hasil, ia bisa diintegrasikan tanpa plugin khusus.
Alur prediktif yang lengkap terdiri dari tiga fase yang bisa dibangun sebagai job:
Fase training biasanya dijalankan berkala (misal mingguan) karena model perlu belajar dari data terbaru; fase scoring bisa berjalan jauh lebih sering. Orkestrasi ini cocok dengan job PDI: job train_model mengumpulkan data dan melatih model, lalu job score_data memakai model untuk menilai data masuk.
Job di bawah menunjukkan urutan sederhana yang membedakan fase training dan scoring:
START -> siapkan_dataset.ktr -> train_model.kjb -> simpan_artefak.kjb
|
-> score_harian.kjb -> tabel_skor.ktrJob train_model berjalan mingguan dan menyimpan artefak model; job score_harian berjalan setiap malam memakai artefak terbaru untuk menilai data baru. Dua jalur ini sengaja dipisah agar kegagalan scoring tidak menimpa proses training — pemisahan yang menjaga stabilitas operasional.
Danger
Jangan pernah meng-scoring dengan model yang datanya bocor dari masa depan. Pisahkan training dan testing secara waktu (misal: latih dengan data sampai bulan lalu, uji dengan data bulan ini) — kesalahan paling umum dan paling merusak di alur prediktif.
Hasil prediksi tidak berguna jika tidak sampai ke pengambil keputusan. Cara menghadirkan output model:
Pola yang umum: job scoring menulis tabel hasil setiap malam, dan dashboard otomatis memperbarui di pagi hari. Manajemen tidak perlu bertanya "berapa banyak pelanggan berisiko tinggi?" — jawabannya sudah di layar.
Menutup episode ini, pola sehat yang menyatukan semuanya:
Pola ini membuat alur ML kalian bukan sekadar eksperimen, melainkan operasional yang bisa dipertanggungjawabkan — senada dengan semangat operational readiness di episode berikutnya.
Di episode 18 ini kalian menghubungkan ETL dengan analitik dan ML: menyiapkan data untuk model, mengintegrasikan Python, R, dan Weka, membangun alur training-scoring-distribusi, serta memvisualisasikan output model di dashboard.
Inti yang harus dibawa pulang:
Di episode 19, kita menyiapkan yang terburuk sekaligus terbaik: operational readiness & runbooks — menulis runbook untuk deployment, kegagalan, dan recovery, backup repository dan konfigurasi, prosedur insiden, serta perawatan rutin dan pembersihan.