Anda sering mendengar istilah machine learning, tetapi setiap kali mencoba belajar, materi langsung melompat ke rumus aljabar linear dan kalkulus. Akibatnya muncul kesan bahwa ML hanya untuk peneliti, bukan untuk developer web atau pemilik usaha yang punya data penjualan di aplikasinya sendiri. Padahal, untuk mulai memakai ML secara praktis, yang dibutuhkan pertama kali adalah pemahaman alur kerja, bukan rumus.
Artikel ini menjelaskan konsep dasar ML dengan contoh dari dunia bisnis kecil, memperlihatkan kode Python singkat yang bisa langsung dicoba, dan menunjukkan bagaimana hasilnya bisa dipakai di aplikasi Laravel.
Machine Learning dalam Satu Kalimat
Pada pemrograman biasa, Anda menulis aturan: "jika total belanja di atas 500 ribu, beri ongkir gratis". Pada machine learning, Anda memberi komputer banyak contoh data beserta hasilnya, lalu komputer mencari polanya sendiri. Misalnya, Anda memberi data 2.000 pelanggan lama beserta keterangan apakah mereka berhenti membeli atau tidak, lalu model belajar mengenali ciri pelanggan yang cenderung berhenti.
Hasil belajar itu disebut model. Model menerima data baru dan mengeluarkan prediksi. Model tidak pernah "tahu pasti"; ia memberi tebakan terbaik berdasarkan pola masa lalu. Itu sebabnya kualitas data jauh lebih menentukan daripada kecanggihan algoritma.
Tiga Jenis Utama
| Jenis | Data yang dibutuhkan | Contoh di bisnis | Algoritma awal yang umum |
|---|---|---|---|
| Supervised learning | Data berlabel (sudah ada jawabannya) | Prediksi pelanggan berhenti (churn), perkiraan penjualan minggu depan, deteksi transaksi mencurigakan | Regresi linear, regresi logistik, decision tree, random forest |
| Unsupervised learning | Data tanpa label | Mengelompokkan pelanggan berdasarkan pola belanja, menemukan produk yang sering dibeli bersamaan | K-Means, clustering hierarkis, association rules |
| Reinforcement learning | Lingkungan yang memberi "hadiah" atau "hukuman" | Robotika, game, optimasi harga dinamis skala besar | Q-learning, policy gradient |
Untuk pemula dan kebutuhan UMKM, hampir semua kasus praktis masuk supervised atau unsupervised. Reinforcement learning menarik, tetapi jarang menjadi titik awal yang masuk akal.
Supervised learning sendiri terbagi dua. Klasifikasi menebak kategori, misalnya "berhenti" atau "tetap". Regresi menebak angka, misalnya jumlah porsi yang terjual besok. Mengetahui pertanyaan Anda termasuk yang mana sudah menyelesaikan separuh keputusan.
Alur Kerja Proyek ML
- Rumuskan pertanyaan bisnis. Bukan "saya mau pakai AI", tetapi "pelanggan mana yang kemungkinan tidak belanja lagi dalam 60 hari?". Pertanyaan yang jelas menentukan data dan jenis model.
- Kumpulkan data. Biasanya sudah ada di database aplikasi: tabel pesanan, pelanggan, produk. Ekspor ke CSV.
- Bersihkan data. Hapus duplikat, tangani nilai kosong, samakan format tanggal. Bagian ini sering memakan waktu paling banyak.
- Buat fitur. Ubah data mentah menjadi angka yang bermakna: jumlah transaksi 90 hari terakhir, rata-rata nilai belanja, hari sejak pembelian terakhir.
- Bagi data latih dan data uji. Misalnya 80% untuk melatih, 20% untuk menguji. Model harus dinilai dengan data yang belum pernah ia lihat.
- Latih model sederhana dulu. Regresi logistik atau decision tree. Model sederhana menjadi patokan sebelum mencoba yang lebih rumit.
- Evaluasi. Gunakan metrik yang sesuai: akurasi, precision, recall, atau MAE untuk regresi.
- Pakai dan pantau. Hubungkan ke aplikasi, lalu latih ulang berkala karena pola pelanggan berubah.
Contoh Kode: Prediksi Pelanggan Berhenti
Misalkan Anda sudah mengekspor file pelanggan.csv dengan kolom jumlah_transaksi_90h, rata_belanja, hari_sejak_terakhir, dan berhenti (0 atau 1). Dengan Python dan scikit-learn, model dasarnya hanya beberapa baris:
# pip install pandas scikit-learn joblib
import pandas as pd
import joblib
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
df = pd.read_csv("pelanggan.csv")
X = df[["jumlah_transaksi_90h", "rata_belanja", "hari_sejak_terakhir"]]
y = df["berhenti"]
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42, stratify=y
)
model = RandomForestClassifier(n_estimators=200, random_state=42)
model.fit(X_train, y_train)
print(classification_report(y_test, model.predict(X_test)))
joblib.dump(model, "model_churn.joblib")
Laporan classification_report menampilkan precision dan recall per kelas. Jika recall untuk kelas "berhenti" rendah, artinya model melewatkan banyak pelanggan yang sebenarnya berhenti, dan itu biasanya lebih penting diperbaiki daripada angka akurasi total.
Menghubungkan ke Aplikasi Laravel
Developer Laravel tidak perlu memindahkan seluruh aplikasi ke Python. Pola yang paling sederhana adalah memisahkan tugas: Laravel menyiapkan data dan menampilkan hasil, Python melatih dan menjalankan model. Ada dua cara umum:
- Batch terjadwal. Laravel mengekspor CSV setiap malam, skrip Python menghitung skor risiko untuk semua pelanggan, lalu menulis hasilnya ke tabel
customer_scores. Laravel tinggal membaca tabel itu. Cara ini paling mudah untuk pemula. - API kecil. Model dibungkus dengan FastAPI atau Flask, dan Laravel memanggilnya lewat
Http::post()saat butuh prediksi seketika.
Contoh ekspor data dari Laravel dengan perintah Artisan yang dijadwalkan:
// routes/console.php (Laravel 11)
use Illuminate\Support\Facades\Schedule;
Schedule::command('ml:export-customers')->dailyAt('01:00');
Schedule::exec('python3 ' . base_path('ml/score.py'))->dailyAt('01:30');
Kueri untuk menghitung fitur seperti jumlah transaksi 90 hari terakhir bisa berat jika tabel pesanan besar. Teknik indeks dan agregasi yang efisien dibahas di optimasi performa query Eloquent Laravel, sedangkan rancangan tabel pendukungnya bisa dimulai dari merancang ERD sederhana untuk aplikasi.
Ide Proyek ML yang Realistis untuk UMKM
Agar tidak terjebak pada proyek yang terlalu ambisius, pilih masalah yang datanya sudah Anda miliki dan hasilnya bisa langsung ditindaklanjuti. Beberapa contoh:
- Perkiraan stok mingguan untuk warung makan atau toko kelontong, dari riwayat penjualan per produk per hari. Hasilnya dipakai untuk menentukan jumlah belanja bahan.
- Segmentasi pelanggan dengan K-Means berdasarkan frekuensi dan nilai belanja, lalu kirim promo berbeda ke tiap kelompok.
- Skor risiko pelanggan berhenti seperti contoh di atas, untuk menentukan siapa yang perlu dihubungi lewat WhatsApp.
- Kategorisasi otomatis pengeluaran atau tiket keluhan berdasarkan teks deskripsinya.
Kesalahan Umum Pemula
Data bocor ke data uji
Misalnya memasukkan kolom "tanggal berhenti" sebagai fitur. Model terlihat hampir sempurna saat diuji, lalu gagal total di dunia nyata. Pastikan setiap fitur hanya memakai informasi yang tersedia pada saat prediksi dibuat.
Terpaku pada akurasi
Jika hanya 5% pelanggan yang berhenti, model yang selalu menebak "tidak berhenti" sudah 95% akurat tetapi tidak berguna. Lihat precision dan recall.
Data terlalu sedikit
Beberapa puluh baris tidak cukup untuk pola yang stabil. Untuk masalah sederhana, ratusan hingga ribuan contoh adalah titik awal yang lebih masuk akal. Jika data masih sedikit, aturan bisnis biasa sering lebih baik daripada ML.
Melatih sekali lalu lupa
Perilaku pelanggan berubah karena musim, harga, atau pesaing. Jadwalkan pelatihan ulang, misalnya bulanan, dan bandingkan metriknya dengan model sebelumnya.
Checklist Proyek ML Pertama
- Pertanyaan bisnis tertulis dalam satu kalimat.
- Data minimal ratusan baris dengan label yang jelas.
- Fitur tidak mengandung informasi dari masa depan.
- Ada model patokan sederhana untuk perbandingan.
- Metrik evaluasi dipilih sesuai risiko bisnis.
- Rencana pemakaian hasil: siapa yang membaca skor dan tindakan apa yang diambil.
- Jadwal pelatihan ulang dan pemantauan.
Langkah Belajar Berikutnya
Jalur yang efisien untuk pemula: kuasai dasar Python dan pandas, kerjakan dataset terbuka di Kaggle (misalnya data Titanic atau data penjualan ritel), lalu baca dokumentasi scikit-learn bagian "Getting Started". Jika lebih suka tanpa kode, Google Colab menyediakan notebook gratis di browser, dan layanan AutoML dari penyedia cloud bisa membantu eksperimen awal. Yang terpenting, segera coba dengan data dari usaha atau aplikasi Anda sendiri, karena di situlah intuisi terbentuk.
ML baru terasa manfaatnya bila aplikasi bisnis Anda sudah mencatat transaksi dengan rapi. Jika data masih tersebar di buku dan chat, mulailah dari pencatatan digital, dan source code aplikasi kasir atau penjualan dari katalog GudangCode bisa menjadi sumber data awal untuk eksperimen pertama Anda.