Semester 1
14 modul ajar · XI TJKT · Fase F
ML ITU MUDAH & MENYENANGKAN (No-Code)
3 modul — 4 pertemuan — kenalan dengan ML tanpa coding
Machine Learning — Supervised vs Unsupervised
Isi Pokok
• Definisi AI, ML, Deep Learning • Supervised Learning: data berlabel, prediksi (klasifikasi + regresi) • Unsupervised Learning: data tidak berlabel, clustering • Analogi: guru (supervised) vs self-learning (unsupervised)
Kegiatan Praktik
• Card sorting: kelompokkan contoh aplikasi ke Supervised/Unsupervised • Studi kasus: deteksi spam, rekomendasi Netflix, pengelompokan pelanggan • Diskusi: aplikasi ML apa yang paling sering kalian pakai?
Isi Pokok
• Dataset, class, sample — apa bedanya? • Pengaruh jumlah & variasi data terhadap akurasi • Training model tanpa coding
Kegiatan Praktik
• Kumpulkan 3 objek (botol, buku, HP, dll) • Buka Teachable Machine → webcam → record @50+ sampel per kelas • Klik **Train Model** — lihat AI belajar otomatis • Tes prediksi: ubah sudut, jarak, pencahayaan — apa yang terjadi?
Feature Engineering — Dataset dari Angka
Isi Pokok
• Feature = angka yang dibaca komputer • Label = jawaban yang benar • Feature relevan vs tidak relevan • Feature Engineering: memilih & membuat feature yang baik
Kegiatan Praktik
• Card sort: ciri-ciri siswa (tinggi, berat, rambut, warna sepatu) — mana feature relevan? • Think-Pair-Share: kasus "Prediksi siswa naik kelas" — feature apa saja? • Praktik Excel/Sheets: buat dataset 20 baris dari data teman sekelas
CODING ML DENGAN PYTHON
3 modul — 3 pertemuan — belajar coding untuk ML
Dasar Python + Google Colab
Isi Pokok
• Kenapa Python untuk AI/ML? • Google Colab: notebook online, gratis, GPU • Variabel, tipe data (int, float, string) • List, perulangan `for`, percabangan `if-else` • Library: `import`, fungsi sederhana
Kegiatan Praktik
• Live coding guru — siswa ikut mengetik • Tebak output — kuis interaktif • Modifikasi kode: ganti nilai, lihat perubahan • Perbandingan: syntax Python vs C++ (yang sudah dipelajari di kelas X)
Upload CSV + Data Exploration
Isi Pokok
• Dataset dunia nyata: CSV (Comma Separated Values) • GIGO: Garbage In, Garbage Out • Data Exploration: head, info, describe • Outlier: data aneh yang merusak model
Kegiatan Praktik
• Download dataset dari Kaggle / data nilai siswa • Upload ke Colab → `pd.read_csv()` • Eksplorasi: berapa baris? kolom? tipe data? • Berburu outlier: cari nilai janggal di data • Diskusi: "Apa akibatnya kalau data kotor?"
Preprocessing — Normalize + Train-Test Split
Isi Pokok
• Normalisasi: menyamakan skala angka (0–1) • Train-Test Split: 80% belajar, 20% ujian • Kenapa tidak boleh pakai data ujian untuk belajar?
Kegiatan Praktik
• Simulasi kartu: 80 kartu train, 20 kartu test • Praktik Colab: `train_test_split()` • Praktik: `MinMaxScaler` untuk normalisasi • Eksperimen: bandingkan model dengan & tanpa normalisasi
MEMBUAT MODEL SENDIRI
3 modul — 3 pertemuan — training, evaluasi, save/load
Training Model + Hyperparameter Tuning
Isi Pokok
• MLPClassifier: jaringan saraf sederhana • Hyperparameter: epoch, learning rate • Overfitting vs underfitting • Model = kumpulan angka (bobot/weight)
Kegiatan Praktik
• Praktik Colab: training MLPClassifier di dataset numerik • Eksperimen 9 kombinasi: epoch (50/100/200) × learning rate (0.001/0.01/0.1) • Catat akurasi tiap kombinasi — mana terbaik? • Diskusi: "Kenapa learning rate besar malah jelek?"
Model Evaluation — Confusion Matrix
Isi Pokok
• Confusion Matrix: TP, TN, FP, FN • Accuracy per class (tidak cukup accuracy saja) • Precision, Recall, F1-score (intuisi) • Kapan FP berbahaya? Kapan FN berbahaya?
Kegiatan Praktik
• Simulasi kartu: 4 kuadran confusion matrix • Praktik Colab: `confusion_matrix()`, `classification_report()` • Analisis: kelas mana yang paling sering salah? • Studi kasus: deteksi penyakit — FP vs FN, mana lebih berbahaya?
Save & Load Model — .pkl
Isi Pokok
• `joblib.dump()` — simpan model ke file • `joblib.load()` — muat model dari file • .pkl = file model jadi • Prediksi data baru tanpa training ulang
Kegiatan Praktik
• Train model → `joblib.dump()` → download .pkl • Upload .pkl → `joblib.load()` → prediksi data baru • Eksperimen: prediksi data siswa baru (yang tidak ada di dataset training) • Diskusi: "Ini yang terjadi di aplikasi nyata — model dilatih sekali, dipakai berkali-kali"
APLIKASI DUNIA NYATA
3 modul — 3 pertemuan — real-time, chatbot, LLM
Real-time Live Classification
Isi Pokok
• Static vs Real-time classification • Export model TM ke TensorFlow.js • Confidence bar chart • Faktor: jarak, sudut, pencahayaan
Kegiatan Praktik
• Buat model di TM → Export → TensorFlow.js → Download ZIP • Buka `index.html` di browser — kamera hidup, prediksi real-time! • Eksperimen: jarak dekat vs jauh, terang vs redup, angle berbeda • Diskusi: "Di aplikasi nyata, apa saja tantangan real-time?"
Chatbot FAQ — TF-IDF
Isi Pokok
• TF-IDF: mengubah teks jadi angka • Cosine Similarity: mengukur kemiripan teks • Threshold: batas keyakinan chatbot • Dataset FAQ: 30+ pertanyaan + jawaban
Kegiatan Praktik
• Buat 30+ FAQ di Google Sheets → download CSV • Upload CSV ke Colab → training TF-IDF • Uji chatbot: tanya 6 tipe pertanyaan • Eksperimen: ubah threshold — apa efeknya? • Diskusi: "Kapan chatbot rule-based lebih baik dari AI?"
Chatbot AI — Groq / Gemini (LLM)
Isi Pokok
• LLM vs Rule-based: perbedaan fundamental • API key: kunci rumah digital • Temperature: kreativitas vs kepastian • Prompt engineering: cara bertanya yang baik • Halusinasi AI: AI percaya diri tapi salah
Kegiatan Praktik
• Daftar provider (Groq/Gemini) — pilih salah satu • Dapatkan API key • Jalankan chatbot Colab — ngobrol dengan AI! • Eksperimen temperature: 0 vs 1 — beda apa? • Bandingkan: tanya hal yang sama ke chatbot Modul 11 vs Modul 12
PROYEK AKHIR
2 modul — 4 pertemuan — science project + integrasi
Science Program — Klasifikasi Postur Duduk
Isi Pokok
• Siklus ilmiah ML: Collect → Train → Predict • MediaPipe Pose Detection: 33 landmark → 99 angka • Dataset postur: tegak, miring, bungkuk • Training MLPClassifier → real-time predict • Ergonomi untuk TJKT
Kegiatan Praktik
**Pertemuan 1:** Setup MediaPipe → collect data 3 postur @50 sampel → train model → save .pkl **Pertemuan 2:** Load model → real-time predict → eksperimen jarak/cahaya → analisis akurasi → diskusi ergonomi
All Features Integration — Smart Lab Assistant
Isi Pokok
• Integrasi 5 fitur dalam 1 program Streamlit • Detection (MediaPipe) → ML (.pkl) → Chatbot (TF-IDF) → Graphics (chart) → Statistics (log) • Arsitektur sistem: data mengalir antar fitur • Challenge: Most Complete Program
Kegiatan Praktik
**Pertemuan 1:** Setup Streamlit → integrasi Detection + ML + Graphics → dashboard **Pertemuan 2:** Integrasi Chatbot + Statistics → debugging → presentasi
Daftar Modul
Supervised dan Unsupervised Learning
Mengenal dua pendekatan utama Machine Learning: Supervised Learning (belajar dengan data berlabel) dan Unsupervised Learning (menemukan pola tanpa label).
Teachable Machine — No Code ML
Membuat model Machine Learning tanpa coding menggunakan Teachable Machine: klasifikasi gambar, suara, dan pose secara visual.
Feature Engineering
Memahami konsep fitur dan label, serta teknik feature engineering: seleksi fitur, encoding, scaling, dan ekstraksi fitur.
Python dan Google Colab
Pengenalan dasar pemrograman Python untuk Machine Learning menggunakan Google Colab: variabel, tipe data, perulangan, dan library ML.
CSV dan Data Exploration
Membaca, mengeksplorasi, dan memahami dataset CSV menggunakan pandas: statistik deskriptif, visualisasi, dan deteksi anomali.
Preprocessing Data
Teknik preprocessing: menangani missing values, encoding data kategorikal, scaling fitur, dan train-test split.
Training dan Hyperparameter
Melatih model MLPClassifier, memahami epoch dan learning rate, serta melakukan eksperimen hyperparameter tuning.
Model Evaluation
Mengevaluasi performa model dengan confusion matrix, akurasi per kelas, precision, recall, dan F1-score.
Save dan Load Model
Menyimpan model ke file .pkl dengan joblib, memuatnya kembali, dan memahami konsep deployment model.
Real-time Classification
Menerapkan model real-time dengan webcam: ekspor ke TensorFlow.js, confidence score, dan pengujian di berbagai kondisi.
Chatbot FAQ dengan TF-IDF
Membangun chatbot FAQ berbasis TF-IDF dan Cosine Similarity: dataset CSV, threshold, testing, dan improvement.
Chatbot dengan LLM (Groq/Gemini)
Membangun chatbot berbasis Large Language Model: API Groq/Gemini, temperature, prompt engineering, dan halusinasi AI.
Klasifikasi Postur Duduk
Proyek deteksi postur duduk real-time: MediaPipe Pose Detection, MLPClassifier, dan ergonomi postur tegak, miring, bungkuk.
All Features Integration — Smart Lab Assistant
Proyek capstone mengintegrasikan 5 fitur (Detection, ML, Chatbot, Graphics, Statistics) dalam satu dashboard Streamlit.