Sejauh ini kita bekerja sebagai pengamat: membersihkan data, merangkum, memvisualisasikan, lalu menarik kesimpulan tentang masa lalu. Machine learning memindahkan fokus kita ke masa depan — bukan lagi “apa yang terjadi?”, melainkan “apa yang kemungkinan besar terjadi?”. Peralatannya bukan proses otomatis yang bekerja tanpa aturan, melainkan cara pemrograman yang arahnya berbeda: alih-alih menulis aturan secara manual, kita memberi program contoh-contoh berlabel dan membiarkan program menyusun polanya. Pada chapter ini kita membedah perbedaan mendasar itu, melihatnya bekerja pada kasus penyaringan spam, lalu menimbang kapan machine learning layak dipakai dan kapan tidak.
Belajar dari Data, Bukan Aturan Tulisan Tangan #
Cara kita menulis program selama ini mengikuti satu resep: aturan + data → jawaban. Kita menulis fungsi yang memeriksa kondisi, program mengeksekusinya pada data, dan keluar jawaban. Machine learning membalik resepnya menjadi data + jawaban → aturan. Kita sediakan data berikut jawabannya (label), algoritma menyusun aturan — yang kita sebut model — yang bisa dipakai menjawab data baru.
| Aspek | Pemrograman biasa | Machine learning |
|---|---|---|
| Masukan yang kita tulis | Aturan eksplisit (if/else, rumus) | Data berlabel (contoh + jawaban) |
| Keluaran proses | Jawaban untuk tiap data | Model yang menyimpan pola |
| Aturan disusun oleh | Kita, baris demi baris | Algoritma, dari data |
| Kenjadi saat pola berubah | Kita ubah kode manual | Kita latih ulang dengan data baru |
| Cocok untuk | Masalah dengan aturan jelas | Pola yang rumit atau terus bergeser |
Perbedaan arah ini terasa nyata saat polanya sulit dirumuskan. Menulis aturan “email memuat kata gratis berarti spam” gampang; masalahnya pengirim spam beradaptasi — mereka menulis “gr4tis”, “GRATIS!!!”, atau “hadiah klaim sekarang”. Semua kombinasi mustahil kita daftarkan. Machine learning mengambil jalan lain: sediakan ribuan email yang sudah dilabeli manusia sebagai spam atau bukan, lalu biarkan model menemukan sendiri kombinasi tanda mana yang paling membedakan kedua kelompok.
Contoh Nyata: Spam dan Churn Pelanggan #
Dua kasus klasik memperlihatkan posisi machine learning di dunia bisnis. Pertama, penyaringan spam: label historis tersedia gratis — jutaan email yang sudah ditandai pengguna. Kedua, churn di Toko Kopi Kita: dari catatan historis kita tahu member mana yang berhenti dan mana yang bertahan, lengkap dengan kebiasaan belanjanya sebelum berhenti. Model yang dilatih pada catatan itu bisa memperkirakan member mana yang berpeluang besar berhenti bulan depan — sehingga tim promosi bisa menghubungi mereka lebih dulu.
Perhatikan bahan bakunya: data berlabel dari masa lalu. Machine learning di sini bukan membaca pikiran, melainkan memanfaatkan fakta bahwa perilaku masa depan biasanya menyisakan jejak yang serupa dengan masa lalu. Bila pola historisnya berubah total — misalnya bisnis berganti model — model lama perlu dilatih ulang dengan data baru.
Alur Dasar: Data, Pelatihan, Prediksi #
Bagaimanapun rumitnya algoritmenya, hampir semua pekerjaan machine learning mengikuti tiga tahap yang sama:
- Data — kumpulkan contoh berlabel: email beserta status spam-nya, member beserta status churn-nya.
- Pelatihan (training) — algoritma memindai data dan menyimpan pola ke dalam model. Istilah teknisnya: model di-fit pada data.
- Prediksi — model yang sudah jadi menerima data baru (email masuk, member baru) dan mengembalikan tebakannya.
Ketiga tahap itu adalah kerangka yang akan kita pakai berulang-ulang di seluruh Section ini; makin lancar kita membacanya, makin cepat memahami model apa pun yang sedang dibahas.
Aturan Tangan vs Belajar dari Data dalam Kode #
Mari kita buktikan bedanya dengan kode kecil. Kita tulis saringan spam dua cara: pertama dengan aturan tangan (daftar kata kunci), kedua dengan “belajar” — menghitung frekuensi kata pada contoh email berlabel, lalu menilai email baru dari kata-katanya.
latihan = [
("klaim hadiah gratis sekarang", "spam"),
("klik tautan untuk hadiah", "spam"),
("undian menang jutaan rupiah", "spam"),
("rapat tim besok pagi", "bukan"),
("laporan penjualan bulan ini siap", "bukan"),
("mohon konfirmasi jadwal", "bukan"),
]
kata_kunci = ["gratis", "hadiah", "klik"]
def filter_aturan(teks):
teks = teks.lower()
return "spam" if any(kata in teks for kata in kata_kunci) else "bukan"
from collections import Counter
frekuensi = {"spam": Counter(), "bukan": Counter()}
for teks, label in latihan:
for kata in teks.lower().split():
frekuensi[label][kata] += 1
def filter_belajar(teks):
kata_list = teks.lower().split()
skor_spam = sum(frekuensi["spam"][kata] for kata in kata_list)
skor_bukan = sum(frekuensi["bukan"][kata] for kata in kata_list)
return "spam" if skor_spam > skor_bukan else "bukan"
uji = [
("klik untuk hadiah gratis", "spam"),
("undian menang mobil", "spam"),
("konfirmasi jadwal rapat", "bukan"),
]
print("%-25s | %-5s | %-6s | %s" % ("Email uji", "Asli", "Aturan", "Belajar"))
for teks, label in uji:
print("%-25s | %-5s | %-6s | %s"
% (teks, label, filter_aturan(teks), filter_belajar(teks)))
benar_aturan = sum(filter_aturan(t) == label for t, label in uji)
benar_belajar = sum(filter_belajar(t) == label for t, label in uji)
print()
print("Tepat dengan aturan tangan : %d dari %d" % (benar_aturan, len(uji)))
print("Tepat dengan belajar data : %d dari %d" % (benar_belajar, len(uji)))Output yang Dihasilkan:
Email uji | Asli | Aturan | Belajar
klik untuk hadiah gratis | spam | spam | spam
undian menang mobil | spam | bukan | spam
konfirmasi jadwal rapat | bukan | bukan | bukan
Tepat dengan aturan tangan : 2 dari 3
Tepat dengan belajar data : 3 dari 3Mari kita telaah baris-baris kode di atas:
latihanmenyimpan enam email contoh beserta labelnya — tiga spam, tiga bukan. Inilah “guru” bagi pendekatan kedua: seluruh pengetahuannya berasal dari sini.filter_aturan()mengetik aturan eksplisit: bila salah satu kata kunci muncul di teks, vonis spam. Pengetahuan ini kita tulis sendiri dan tidak bertambah dari data.frekuensiadalah proses belajarnya: setiap kata dihitung berapa kali muncul di kelompok spam dan di kelompok bukan.Counterdari modulcollectionsbertugas sebagai pencatat frekuensi.filter_belajar()menilai email baru dengan menjumlahkan frekuensi kata-katanya di kedua kelompok, lalu memilih kelompok dengan skor lebih besar — inti dari yang disebut naive Bayes versi paling sederhana.
Hasilnya pada tiga email uji: aturan tangan benar 2 dari 3, sementara pendekatan belajar 3 dari 3. Email “undian menang mobil” membuat aturan tangan keliru karena kata “undian” dan “menang” tidak ada di daftar kata_kunci — padahal keduanya sering muncul pada contoh spam. Pendekatan belajar tidak butuh diubah sedikit pun; bila besok pengirim spam bergaya baru, kita cukup menambah contoh berlabel dan menghitung ulang frekuensinya. Contoh ini hanya enam email; dengan ribuan contoh, prinsip yang sama bekerja pada model sungguhan seperti yang disediakan scikit-learn.
Kapan Machine Learning Layak Dipakai #
Machine learning bukan jawaban untuk semua masalah, dan kejujuran menilai kelayakannya menghemat banyak pekerjaan sia-sia:
| Kondisi | Penilaian |
|---|---|
| Pola rumit, sulit dirumuskan sebagai aturan (spam, deteksi penipuan) | Layak — kekuatan utama machine learning |
| Banyak data historis berlabel tersedia | Layak — bahan bakar tersedia |
| Pola berubah seiring waktu (selera pembeli) | Layak — model bisa dilatih ulang berkala |
| Aturannya sederhana dan jelas (hitung pajak, konversi satuan) | Tidak layak — rumus biasa lebih murah dan tepat |
| Data sedikit atau tidak berlabel | Belum layak — kumpulkan data dulu |
| Kesalahan prediksi sangat mahal tanpa pengawasan manusia | Hati-hati — gunakan sebagai pembantu keputusan, bukan pengambil keputusan |
Rangkuman #
- Machine learning membalut arah pemrograman: dari “aturan + data → jawaban” menjadi “data + jawaban → aturan”; hasil pelatihannya disebut model.
- Alur dasarnya tiga tahap: data berlabel, pelatihan (fit), lalu prediksi (predict) untuk data baru.
- Aturan tangan rapuh terhadap variasi yang tidak terduga; pendekatan belajar dari contoh menemukan pola dari data dan cukup dilatih ulang saat pola bergeser.
- Machine learning layak dipakai saat pola rumit, data berlabel melimpah, dan pola berubah; tidak layak bila aturan sederhana sudah cukup atau datanya belum siap.
- Kasus spam dan churn memperlihatkan pola yang sama: label historis menjadi guru, prediksi menjadi keluaran.
Kita kini memegang definisi kerja machine learning beserta alurnya. Keluarga besar berikutnya yang perlu dipetakan adalah ragamnya: supervised, unsupervised, dan reinforcement learning — tiga jenis pembelajaran dengan bahan dan tujuan berbeda. Peta itu kita susun pada chapter Jenis Machine Learning .