π― Tujuan Pembelajaran
Setelah menyelesaikan proyek akhir, siswa diharapkan mampu:
- Menggabungkan beberapa konsep Python yang telah dipelajari.
- Membaca dan menyiapkan data sederhana.
- Menentukan masalah yang dapat diselesaikan dengan analisis data atau Machine Learning.
- Membuat aplikasi sederhana di Google Colab.
- Menggunakan model classification atau regression sesuai kebutuhan proyek.
- Membuat input, proses, dan output yang jelas.
- Menguji program dengan beberapa contoh data.
- Membaca hasil model secara kritis, bukan sekadar menerima output.
- Membuat visualisasi bila diperlukan.
- Menjelaskan proses, hasil, keterbatasan, dan kesimpulan dengan bahasa sendiri.
π€ Gambaran Proyek Akhir
Pada pertemuan terakhir, siswa menggabungkan materi yang telah dipelajari menjadi sebuah aplikasi AI sederhana.
Komponen minimal aplikasi
π Alur Pengerjaan Proyek
Contoh: βSaya ingin memperkirakan nilai siswa berdasarkan beberapa informasi.β
Identifikasi kolom, jumlah data, feature, dan target jika menggunakan Machine Learning.
Gunakan regression untuk target angka dan classification untuk target kategori.
Tulis kode secara bertahap, bukan langsung membuat program yang sangat panjang.
Masukkan beberapa contoh dan periksa apakah output masuk akal.
Gunakan metrik atau pemeriksaan yang sesuai dan jelaskan keterbatasannya.
Tulis kesimpulan berdasarkan hasil yang benar-benar diperoleh.
π§© Pilihan Proyek
Pilih salah satu dari lima proyek berikut.
βοΈ Persiapan di Google Colab
Gunakan Google Colab untuk membuat satu notebook khusus proyek akhir.
Struktur notebook yang disarankan
- Judul proyek dan nama siswa.
- Latar belakang masalah.
- Tujuan proyek.
- Dataset dan penjelasan kolom.
- Import library.
- Eksplorasi data.
- Persiapan data.
- Pembuatan model atau analisis.
- Prediksi/hasil.
- Evaluasi.
- Visualisasi.
- Kesimpulan.
- Keterbatasan dan pengembangan.
Library yang sering digunakan
import pandas as pd
import matplotlib.pyplot as plt
# Jika menggunakan Machine Learning
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, mean_absolute_error, r2_score
# Pilih sesuai proyek:
from sklearn.linear_model import LinearRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_irisπ Proyek 1 β Prediksi Nilai Siswa
Tujuan proyek adalah membuat model yang memperkirakan nilai siswa berdasarkan beberapa feature.
Input
- jam belajar
- jumlah tugas
- kehadiran
Output
Prediksi nilai siswa.
Contoh dataset
| Jam Belajar | Jumlah Tugas | Kehadiran (%) | Nilai |
|---|---|---|---|
| 2 | 5 | 80 | 68 |
| 3 | 6 | 85 | 74 |
| 4 | 7 | 90 | 82 |
| 5 | 8 | 95 | 89 |
| 6 | 9 | 98 | 94 |
Contoh kode
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# Dataset contoh
data = {
"jam_belajar": [2,3,4,5,6,2,4,5,7,8,3,6],
"jumlah_tugas": [5,6,7,8,9,4,6,7,10,10,5,9],
"kehadiran": [80,85,90,95,98,78,88,93,99,100,82,97],
"nilai": [68,74,82,89,94,65,79,87,96,98,71,92]
}
df = pd.DataFrame(data)
X = df[["jam_belajar", "jumlah_tugas", "kehadiran"]]
y = df["nilai"]
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.25, random_state=42
)
model = LinearRegression()
model.fit(X_train, y_train)
# Contoh siswa baru
siswa_baru = [[5, 8, 94]]
prediksi = model.predict(siswa_baru)
print("Prediksi nilai:", prediksi[0])Pengembangan
- Tambahkan jumlah latihan.
- Tambahkan nilai tugas atau ujian sebelumnya.
- Buat input interaktif menggunakan
input(). - Tampilkan grafik hubungan feature dengan nilai.
- Hitung MAE dan RΒ² pada data testing.
πΈ Proyek 2 β Klasifikasi Bunga
Proyek ini menggunakan dataset Iris. Model belajar mengelompokkan bunga berdasarkan karakteristiknya.
Feature
- sepal length
- sepal width
- petal length
- petal width
Target
Jenis bunga Iris: setosa, versicolor, atau virginica.
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
iris = load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42, stratify=y
)
model = DecisionTreeClassifier(random_state=42)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
print("Akurasi:", accuracy_score(y_test, y_pred))
# Contoh prediksi satu bunga
contoh = [[5.1, 3.5, 1.4, 0.2]]
hasil = model.predict(contoh)[0]
print("Prediksi:", iris.target_names[hasil])π Proyek 3 β Prediksi Harga
Buat aplikasi untuk memperkirakan harga berdasarkan karakteristik properti.
Input
- luas tanah
- luas bangunan
- jumlah kamar
Output
Prediksi harga.
import pandas as pd
from sklearn.linear_model import LinearRegression
# Contoh data latihan
# harga dinyatakan dalam juta rupiah
data = {
"luas_tanah": [60, 72, 90, 100, 120, 150, 180, 200],
"luas_bangunan": [45, 50, 70, 80, 90, 110, 130, 150],
"jumlah_kamar": [2, 2, 3, 3, 3, 4, 4, 5],
"harga": [350, 390, 500, 560, 650, 800, 950, 1100]
}
df = pd.DataFrame(data)
X = df[["luas_tanah", "luas_bangunan", "jumlah_kamar"]]
y = df["harga"]
model = LinearRegression()
model.fit(X, y)
rumah_baru = [[120, 90, 3]]
prediksi = model.predict(rumah_baru)
print("Prediksi harga:", prediksi[0], "juta rupiah")train_test_split() agar model dapat dievaluasi pada data yang tidak digunakan saat training. Tambahkan MAE/RΒ² dan grafik bila sesuai.π Proyek 4 β Analisis Nilai Siswa
Program membaca dataset CSV kemudian mengolah data tanpa harus menggunakan Machine Learning.
Target pekerjaan
- menghitung rata-rata
- mencari nilai tertinggi
- mencari nilai terendah
- membuat grafik
- memberikan kesimpulan
Contoh membaca CSV
import pandas as pd
import matplotlib.pyplot as plt
# Ganti dengan nama file CSV Anda
# df = pd.read_csv("nilai_siswa.csv")
# Contoh data jika belum memiliki file CSV
data = {
"nama": ["Andi", "Budi", "Citra", "Dina", "Eko"],
"matematika": [80, 70, 90, 85, 75],
"bahasa": [75, 80, 95, 82, 78],
"informatika": [90, 75, 92, 88, 85]
}
df = pd.DataFrame(data)
print(df)Menghitung statistik
kolom_nilai = ["matematika", "bahasa", "informatika"]
df["rata_rata"] = df[kolom_nilai].mean(axis=1)
print("Rata-rata kelas:")
print(df[kolom_nilai].mean())
print("\nNilai tertinggi:")
print(df[kolom_nilai].max())
print("\nNilai terendah:")
print(df[kolom_nilai].min())
print("\nSiswa dengan rata-rata tertinggi:")
print(df.loc[df["rata_rata"].idxmax(), ["nama", "rata_rata"]])Membuat grafik
df.plot(
x="nama",
y="rata_rata",
kind="bar",
legend=False,
title="Rata-rata Nilai Siswa"
)
plt.ylabel("Nilai")
plt.xlabel("Nama")
plt.tight_layout()
plt.show()Kesimpulan harus berdasarkan hasil yang benar-benar terlihat pada data dan grafik. Hindari membuat kesimpulan yang tidak didukung data.
π§ Proyek 5 β AI Klasifikasi Sederhana
Siswa membuat model yang mengklasifikasikan data menjadi dua kategori.
Contoh kategori
Contoh struktur dataset
| Feature 1 | Feature 2 | Target |
|---|---|---|
| 80 | 90 | 1 |
| 75 | 85 | 1 |
| 45 | 50 | 0 |
| 40 | 55 | 0 |
Contoh dengan Decision Tree
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
data = {
"feature_1": [80,75,90,85,45,40,50,55,88,92,42,48],
"feature_2": [90,85,95,88,50,55,48,52,92,96,45,49],
"target": [1,1,1,1,0,0,0,0,1,1,0,0]
}
df = pd.DataFrame(data)
X = df[["feature_1", "feature_2"]]
y = df["target"]
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.25, random_state=42, stratify=y
)
model = DecisionTreeClassifier(max_depth=3, random_state=42)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
print("Akurasi:", accuracy_score(y_test, y_pred))
contoh_baru = [[70, 80]]
hasil = model.predict(contoh_baru)[0]
print("Kategori:", "Layak" if hasil == 1 else "Tidak Layak")π Template Notebook Proyek
Gunakan struktur berikut agar laporan proyek mudah dibaca.
# PROYEK AKHIR β APLIKASI AI SEDERHANA
# Nama:
# Kelas:
# Proyek:
# 1. LATAR BELAKANG
# Jelaskan masalah yang ingin diselesaikan.
# 2. TUJUAN
# Jelaskan tujuan aplikasi.
# 3. DATA
# Jelaskan sumber dan kolom data.
# 4. IMPORT LIBRARY
# 5. EKSPLORASI DATA
# 6. PERSIAPAN DATA
# 7. MODEL / ANALISIS
# 8. PREDIKSI / HASIL
# 9. EVALUASI
# 10. VISUALISASI
# 11. KESIMPULAN
# 12. KETERBATASAN & RENCANA PENGEMBANGANπ Evaluasi & Pengujian
Setiap proyek harus memiliki cara untuk memeriksa apakah program bekerja dengan benar.
Untuk Regression
- MAE
- RΒ²
- perbandingan nilai aktual dan prediksi
- grafik bila relevan
Untuk Classification
- accuracy
- confusion matrix bila sesuai
- precision/recall bila konteks membutuhkannya
- pemeriksaan kesalahan prediksi
Untuk Analisis Data
- periksa tipe data
- periksa data kosong
- periksa nilai yang tidak wajar
- cek kembali hasil perhitungan
- pastikan kesimpulan sesuai data
π Etika, Keterbatasan, dan Tanggung Jawab
Aplikasi AI sederhana tetap perlu digunakan secara bertanggung jawab.
π 5 Latihan Soal
Lihat pedoman jawaban
Lihat jawaban
Lihat pedoman jawaban
Lihat pedoman jawaban
Lihat contoh jawaban
π οΈ 5 Tugas Proyek
Tugas 1 β Prediksi Nilai Siswa
Buat aplikasi regression menggunakan minimal 20 data siswa dengan feature jam belajar, jumlah tugas, dan kehadiran. Target adalah nilai.
- Buat atau siapkan dataset.
- Eksplorasi data.
- Bagi training/testing.
- Latih model.
- Buat minimal 3 prediksi.
- Hitung MAE dan RΒ².
- Tulis kesimpulan dan keterbatasan.
Tugas 2 β Klasifikasi Bunga Iris
Gunakan dataset Iris untuk membuat aplikasi yang menentukan jenis bunga.
- Jelaskan empat feature.
- Bagi data.
- Gunakan model classification.
- Uji beberapa data.
- Hitung accuracy.
- Jelaskan minimal dua contoh kesalahan atau keterbatasan model jika ada.
Tugas 3 β Prediksi Harga Rumah
Buat aplikasi berdasarkan luas tanah, luas bangunan, dan jumlah kamar.
- Dataset minimal 20 baris.
- Gunakan regression.
- Uji minimal 3 rumah baru.
- Hitung MAE dan RΒ² pada data testing.
- Buat satu grafik yang membantu menjelaskan data atau hasil.
Tugas 4 β Analisis Nilai dari CSV
Gunakan dataset CSV nilai siswa.
- Baca CSV dengan Pandas.
- Hitung rata-rata.
- Cari nilai tertinggi dan terendah.
- Tentukan siswa dengan rata-rata tertinggi.
- Buat minimal dua grafik.
- Tulis minimal tiga kesimpulan berbasis data.
Tugas 5 β AI Klasifikasi Dua Kategori
Buat model classification sederhana untuk dua kategori, misalnya Layak/Tidak Layak atau Kategori A/Kategori B.
- Buat dataset minimal 30 baris.
- Tentukan minimal dua feature.
- Jelaskan bagaimana label dibuat.
- Bagi training/testing.
- Latih model.
- Uji data baru.
- Hitung evaluasi.
- Jelaskan risiko jika model salah mengklasifikasikan data.
π Checklist & Rubrik Proyek
Checklist pengumpulan
Komponen penilaian yang dapat digunakan guru
| Komponen | Fokus |
|---|---|
| Pemahaman masalah | Siswa dapat menjelaskan tujuan dan input/output proyek. |
| Data | Data relevan, struktur jelas, dan diolah dengan benar. |
| Koding | Kode terstruktur, dapat dijalankan, dan diberi penjelasan. |
| Model/analisis | Metode sesuai dengan tujuan dan diterapkan dengan benar. |
| Evaluasi | Hasil diuji dan dibahas, termasuk keterbatasan. |
| Visualisasi | Grafik digunakan bila membantu menjelaskan hasil. |
| Komunikasi | Kesimpulan jelas dan didukung hasil. |
| Etika | Privasi, sumber data, bias, dan keterbatasan diperhatikan. |
Guru dapat menyesuaikan bobot setiap komponen dengan kebutuhan kelas.
π€ Panduan Presentasi Proyek
Presentasi dapat dibuat singkat, misalnya 5β7 menit per kelompok.
- Masalah: apa yang ingin diselesaikan?
- Data: data apa yang digunakan?
- Metode: mengapa menggunakan regression, classification, atau analisis data?
- Demo: jalankan aplikasi atau tampilkan notebook.
- Hasil: apa yang diperoleh?
- Evaluasi: bagaimana mengetahui hasilnya dapat dipercaya untuk konteks latihan?
- Keterbatasan: apa yang belum dapat dilakukan model?
- Pengembangan: apa yang ingin diperbaiki jika memiliki lebih banyak waktu?
π Refleksi Siswa
- Konsep Python apa yang paling banyak saya gunakan dalam proyek?
- Apa masalah utama yang saya coba selesaikan?
- Bagian data mana yang paling penting?
- Mengapa saya memilih metode tersebut?
- Bagaimana saya menguji program?
- Apa hasil yang paling menarik?
- Kesalahan apa yang saya temukan?
- Apa keterbatasan aplikasi saya?
- Apa yang akan saya perbaiki jika memiliki data lebih banyak?
- Bagaimana saya akan menggunakan AI secara bertanggung jawab?
π Ringkasan Proyek Akhir
- Tentukan masalah yang jelas.
- Siapkan dan pahami data.
- Tentukan feature dan target jika menggunakan Machine Learning.
- Pilih metode yang sesuai: regression, classification, atau analisis data.
- Bangun aplikasi secara bertahap.
- Uji dengan data yang sesuai.
- Evaluasi hasil.
- Gunakan visualisasi untuk membantu memahami data.
- Jelaskan keterbatasan.
- Buat kesimpulan berdasarkan bukti dari data.
π Google Colab
Gunakan Google Colab untuk membuat dan menjalankan notebook proyek akhir.
Materi Pembelajaran Koding dan Kecerdasan Artifisial β’ Python β’ Google Colab β’ Proyek Akhir