Bongkar Mitos Machine Learning: Nggak Perlu PhD Matematika Buat Bikin Model Python Pertama

Bongkar Mitos Machine Learning: Nggak Perlu PhD Matematika Buat Bikin Model Python Pertama

Oleh Reggi, 12 Sep 2026

Tiap kali ngebahas soal AI atau Machine Learning, linimasa teknologi langsung dipenuhi istilah keren kayak neural networks, deep learning, sampai hyperparameters. Kesannya, sebelum bisa bikin satu program Machine Learning yang jalan, kamu harus punya gelar PhD dulu di bidang matematika lanjutan. Padahal, kalau kita preteli hype-nya sampai ke tulang dasar, konsep dasarnya jauh lebih pragmatis. Untuk benar-benar paham What a Machine Learning Model is and How to Make One, kamu sebenarnya cuma butuh laptop, Python, dan eksekusi logika yang benar.

Pada dasarnya, Machine Learning itu cuma soal nyuruh komputer buat ngenali pola dari contoh-contoh data yang udah ada, lalu nemu pola itu buat nembak atau memprediksi data baru. Prinsipnya mirip banget waktu kita kecil belajar ngebedain kucing sama hewan lain: setelah ngelihat puluhan contoh kucing, otak kita otomatis ngenali polanya.

Di artikel ini, kita bakal bongkar mental model Machine Learning dari nol, bedain kodingan tradisional vs ML, lalu langsung eksekusi bikin model nyata pakai Python dan scikit-learn.


Machine Learning vs Pemrograman Tradisional: Di Mana Bedanya?

Buat kamu yang datang dari background software engineering atau koding biasa, cara pikir kamu harus dibalik sedikit.

Dalam pemrograman tradisional, kamu menyuplai aturan (rules) dan data ke komputer untuk mendapatkan jawaban:

text
Data + Rules → Answer

Contoh sederhananya begini:

python
if hours_studied > 4: return "Pass" else: return "Fail"

Di sini, kamu sebagai developer nge-draft aturannya secara manual. Komputer nggak belajar apa-apa. Dia cuma eksekutor lugu yang menjalankan perintah kamu titik demi titik.

Machine Learning membalik alur tersebut secara total:

text
Examples + Correct Answers → Machine Learning Model

Kamu ngasih contoh data beserta jawaban yang benar ke algoritma. Si algoritma bakal mengolah data itu buat nemuin pola atau aturan mainnya sendiri. Setelah modelnya terlatih, kamu tinggal kasih data baru:

text
New Data + Trained Model → Prediction

Pola pikir ini yang jadi fondasi utama. Kamu nggak lagi nulis aturan if-else secara manual buat nentuin hasil. Algoritma yang bakal mengekstrak aturan itu dari data.


Mengenal Fitur (Features) dan Label (Labels)

Banyak istilah Machine Learning kedengaran intimidatif, padahal artinya sangat simpel.

  • Feature (X): Informasi atau petunjuk yang kita pakai buat membuat prediksi. Contoh: jumlah jam belajar, tingkat kehadiran, atau nilai tugas.
  • Label (y): Jawaban atau target yang ingin diprediksi oleh model. Contoh: Lulus atau Gagal.

Kalau dalam kasus memprediksi hasil ujian:

text
Jam Belajar (Features) → Model → Lulus/Gagal (Label)

Tipe Machine Learning yang bakal kita pakai di sini adalah Supervised Learning. Artinya, kita melatih model menggunakan data di mana jawaban yang benar (label) sudah kita ketahui dari awal. Ini beda dengan Unsupervised Learning, di mana algoritma disuruh nyari kelompok data sendiri tanpa kasih tahu jawaban benarnya.


Persiapan Setup & Struktur Data

Sebelum masuk ke script, pastikan kamu udah terpasang setup dasar berikut di sistem kamu:

  1. Python sudah terinstal (bisa dicek lewat terminal via python --version).
  2. Code editor seperti VS Code.
  3. Terminal atau Command Prompt.

Buat folder proyek baru bernama machine-learning-model, lalu di dalamnya buat file bernama main.py. Instal library scikit-learn yang bakal kita pakai lewat terminal:

bash
pip install scikit-learn

Kenapa Formasi Data Harus 2D?

Ada satu trik kecil yang sering bikin bingung pemula di scikit-learn. Library ini mewajibkan data input (features) berformat dua dimensi (2D array/nested list).

Sebabnya jelas: dalam dunia nyata, sebuah dataset hampir selalu punya lebih dari satu kolom fitur.

Jam BelajarKehadiranNilai Sebelumnya
280%65
595%82
798%91

Setiap baris mewakili satu sampel data (mahasiswa), dan setiap kolom mewakili fitur. Jadi, walaupun proyek pertama kita cuma pakai satu fitur (jam belajar), datanya tetap harus dibungkus dalam bentuk list di dalam list: [[1], [2], [3]].


Praktek: Bikin Model Machine Learning Pertama

Kita bakal bikin script Python utuh untuk memprediksi apakah seorang siswa bakal lulus ujian berdasarkan jumlah jam belajarnya. Algoritma yang kita pakai adalah Decision Tree Classifier (Pohon Keputusan), yang bekerja dengan cara membuat serangkaian pertanyaan berbasis logika pada data.

Buka file main.py dan masukkan kodingan lengkap berikut:

python
from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # Step 1: Buat Dataset (X = Features, y = Labels) # X menggunakan format 2D: [ [jam_belajar] ] X = [[1], [2], [3], [4], [5], [6], [7], [8]] y = [0, 0, 0, 1, 1, 1, 1, 1] # 0 = Fail, 1 = Pass # Step 2: Split data menjadi Training set dan Testing set X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.25, random_state=42 ) # Step 3: Inisialisasi Model Decision Tree model = DecisionTreeClassifier() # Step 4: Latih Model (Training) model.fit(X_train, y_train) # Step 5: Evaluasi Performa Model dengan Data Test predictions = model.predict(X_test) accuracy = accuracy_score(y_test, predictions) print(f"Model accuracy: {accuracy * 100:.2f}%") # Step 6: Prediksi Data Baru (Siswa yang belajar 5 jam) new_student = [[5]] new_prediction = model.predict(new_student) # Step 7: Konversi Output Angka ke Teks yang Mudah Dibaca if new_prediction[0] == 1: print("The model predicts: Pass") else: print("The model predicts: Fail")

Bedah Kode: Apa yang Terjadi di Balik Layar?

Proses kodingan di atas sebenarnya mengikuti alur yang sangat konsisten:

  1. train_test_split(X, y, test_size=0.25, random_state=42): Kita memisah dataset kita. 75% dipakai buat latihan (training), 25% disimpan buat ujian akhir model (testing). Kenapa harus dipisah? Supaya kita bisa nguji apakah model benar-benar paham pola, atau cuma sekadar ngelafalin/menghafal data. Parameter random_state=42 memastikan acakan pembagian data selalu konsisten setiap kali script dijalankan.
  2. model.fit(X_train, y_train): Ini baris paling krusial. Metode .fit() adalah proses pelatihan sesungguhnya. Algoritma Decision Tree bakal membaca data X_train dan jawaban y_train, lalu secara otomatis mencari batas aturan. Di kasus ini, dia mungkin nemuin aturan internal seperti: "Apakah jam belajar <= 3.5?".
  3. model.predict(X_test): Kita menyuruh model menebak data uji yang belum pernah dia lihat sebelumnya, lalu menghitung akurasinya lewat accuracy_score.

Peringatan Krusial Soal Akurasi: Jangan Tertipu Angka Tinggi

Di dunia profesional, akurasi tinggi nggak selalu berarti model kamu bagus.

Bayangkan kamu bikin model buat mendeteksi penyakit langka dari 100 orang, di mana 99 orang sehat dan 1 orang sakit.

Kalau model kamu malas dan cuma menebak "Sehat" ke semua 100 orang, secara matematis akurasi model kamu adalah 99%. Tapi model itu jeblok total karena gagal mendeteksi 1 orang yang benar-benar sakit.

Itulah alasannya di industri nyata, developer nggak cuma mengandalkan akurasi. Mereka pakai metrik evaluasi lain seperti precision, recall, F1 score, hingga mean squared error.


Masalah Klasik: Overfitting vs Underfitting

Saat melatih model Machine Learning, kamu bakal sering ketemu dua masalah ini:

  • Overfitting: Model terlalu menghafal data latihan secara rinci sampai ke noise-noise-nya. Akibatnya, performa saat training bagus banget (misal 100%), tapi begitu dikasih data baru yang beda dikit, prediksinya ngaco total. Ibarat siswa yang menghafal persis soal latihan, begitu angka di soal ujian diganti dikit, langsung bingung.
  • Underfitting: Model terlalu sederhana sampai nggak sanggup menangkap pola dasar dari data. Hasilnya, di data latihan maupun data baru, performanya sama-sama hancur.

Tugas kita sebagai pengembang adalah mencari titik tengah (balance): model yang cukup kompleks untuk memahami pola, tapi cukup fleksibel untuk generalisasi data baru.


Mengatur Hyperparameters

Di dalam kode di atas, kita sempat menulis DecisionTreeClassifier(). Dalam Machine Learning, nilai yang dipelajari model dari data secara otomatis disebut Parameter.

Sedangkan Hyperparameter adalah konfigurasi yang kita tentukan sebelum proses pelatihan dimulai.

Sebagai contoh, kita bisa membatasi kedalaman pohon keputusan agar tidak terlalu kompleks dan mencegah overfitting:

python
model = DecisionTreeClassifier(max_depth=3)

Di sini max_depth=3 adalah hyperparameter. Kita menginstruksikan ke algoritma: "Tolong pelajari polanya, tapi jangan bikin cabang keputusan lebih dari 3 tingkat."


Upgrade Model: Menambah Fitur Multiple & Mode Regresi

Realitanya, keputusan jarang diambil cuma dari satu variabel. Mari kita tingkatkan dataset kita dengan menambah fitur kedua: Persentase Kehadiran Kelas.

Classification dengan Multiple Features

python
# Format tiap sampel: [Jam Belajar, Persentase Kehadiran] X = [ [2, 80], [5, 95], [7, 98], [1, 60] ] y = [0, 1, 1, 0] model = DecisionTreeClassifier() model.fit(X, y) # Prediksi siswa baru: Belajar 4 jam, Kehadiran 85% new_student = [[4, 85]] print(model.predict(new_student))

Bahkan jika kamu punya ratusan fitur (seperti memprediksi harga rumah berdasarkan luas tanah, jumlah kamar, lokasi, tahun dibangun), pola dasarnya tetap sama persis: Features → Model → Prediction.

Perbedaan Klasifikasi vs Regresi

Proyek yang kita bikin dari tadi adalah kasus Classification (memprediksi kategori: Pass atau Fail, Spam atau Not Spam).

Kalau kamu ingin memprediksi angka kontinu (seperti harga rumah dalam nominal Dolar/Rupiah), kamu menggunakan Regression.

Di scikit-learn, workflow regresi hampir identik:

python
from sklearn.linear_model import LinearRegression # Feature: Luas Rumah (sq ft), Label: Harga ($) X = [[1000], [1500], [2000]] y = [300000, 400000, 500000] model = LinearRegression() model.fit(X, y) # Prediksi harga rumah luas 1800 sq ft prediction = model.predict([[1800]]) print(prediction)

Perhatikan betapa miripnya struktur pemanggilannya. Sekali kamu paham workflow dasar fit dan predict, mencoba algoritma baru di scikit-learn cuma masalah mengganti kelas modelnya saja.


Workflow Standard Machine Learning di Industri

Biar punya mental model yang utuh, proses pengerjaan Machine Learning skala riil biasanya mengikuti alur ini:

text
Collect Data → Clean Data → Select Features → Choose Algorithm → Split Data → Train Model → Evaluate → Tune Hyperparameters → Predict → Deploy

Di dalam sistem aplikasi nyata, model ML biasanya cuma satu komponen kecil dari arsitektur perangkat lunak yang lebih besar.

Misalnya pada aplikasi pemantau Email Spam: ada sistem backend yang menerima email, memproses teks, mengirimkan fitur ke Model Machine Learning, mengambil hasil prediksi, lalu menentukan apakah email itu masuk ke Inbox atau folder Spam.


Skill Apa yang Harus Dipelajari Setelah Ini?

Kalau kamu udah berhasil menjalankan script di atas dan paham alurnya, langkah berikutnya untuk memperdalam ilmu ini adalah:

  1. Pelajari NumPy & pandas: Dua library wajib Python buat manipulasi matriks dan membaca file dataset (seperti CSV).
    python
    import pandas as pd df = pd.read_csv("data_siswa.csv")
  2. Visualisasi Data: Pelajari matplotlib atau seaborn buat nge-plot data ke bentuk grafik. Ini penting banget buat nyari pola awal sebelum data dimasukkan ke model.
  3. Eksplorasi Algoritma Lain: Coba pelajari cara kerja Random Forest, Logistic Regression, atau Support Vector Machines (SVM).
  4. Perdalam Matematika Dasar: Pahami konsep turunan (derivatives) dan gradients. Ini bakal sangat krusial saat kamu mulai masuk ke ranah Neural Networks.

Kesimpulan: Mental Model yang Wajib Disimpan

Machine Learning itu bukan sihir atau otak buatan ajaib yang hidup di dalam komputer. ML adalah model matematis yang dibentuk oleh algoritma berdasarkan pola dari contoh data.

Ingat terus pola 3 baris sakti di Python ini:

python
model = SomeMachineLearningModel() model.fit(X_train, y_train) predictions = model.predict(X_new)

Nggak perlu langsung ngambisius bikin AI raksasa. Mulai dari dataset kecil, bikin satu model sederhana, amati prediksinya, otak-atik parameter, dan lihat perubahannya. Dari proses bongkar-pasang langsung seperti inilah pemahaman Machine Learning kamu bakal terbentuk secara solid.


Referensi


Sedang Ramai Dibaca