UTS Praktikum
Sesi 8 adalah evaluasi tengah semester untuk memastikan mahasiswa tidak hanya mengikuti coding, tetapi benar-benar memahami alur berpikir pada pembelajaran mesin untuk teks. Fokus UTS bukan sekadar menghasilkan output, melainkan menunjukkan bahwa mahasiswa mengerti mengapa suatu langkah dilakukan, bagaimana hasil dibaca, dan apa arti keputusan yang diambil.
Agar mahasiswa tidak merasa UTS seperti “ruang gelap”, halaman ini dibuat sebagai peta belajar. Di sini ada kisi-kisi, format ujian, contoh kasus, contoh struktur jawaban, dan template notebook latihan. Jadi mahasiswa bisa menyiapkan diri dengan lebih terarah dan tidak belajar secara acak.
Tujuan UTS praktikum
UTS praktikum dirancang untuk melihat apakah mahasiswa mampu bergerak dari data teks mentah menuju hasil analisis yang bisa dipertanggungjawabkan. Artinya, mahasiswa tidak hanya dinilai dari apakah kodenya berjalan, tetapi juga dari kemampuan menjelaskan preprocessing, memilih fitur, membangun model, membaca evaluasi, dan memberi simpulan sederhana.
Bayangkan mahasiswa sedang diuji sebagai calon koki. Dosen tidak hanya ingin melihat apakah masakan sudah jadi. Dosen juga ingin tahu apakah bahan dicuci dengan benar, bumbu dipilih tepat, proses masak dilakukan runtut, dan hasil akhirnya bisa dijelaskan rasanya. Begitu juga pada UTS ini. Proses berpikir sama pentingnya dengan hasil akhir.
Format UTS yang disarankan
| Komponen | Bobot | Keterangan |
|---|---|---|
| Teori singkat | 30% | Pertanyaan singkat tentang konsep dasar sesi 1 sampai sesi 7. |
| Praktik notebook | 70% | Mahasiswa mengolah data, membangun model, mengevaluasi, dan menarik simpulan. |
Jika dosen ingin versi yang lebih aplikatif, praktik notebook dapat diberi porsi lebih besar karena mata kuliah ini memang berbasis praktikum.
Kisi-kisi UTS per topik
Pengantar NLP dan AI generatif
Mahasiswa memahami pengertian NLP, text mining, machine learning untuk teks, dan perbedaan umum dengan generative AI.
Preprocessing
Mahasiswa tahu fungsi case folding, cleaning, tokenisasi, stopword removal, stemming, dan normalisasi.
Representasi teks
Mahasiswa memahami BoW, N-gram, TF-IDF, sparse vector, dan cosine similarity dasar.
Klasifikasi teks
Mahasiswa mampu menyiapkan train-test split dan membangun baseline dengan model klasik.
Evaluasi model
Mahasiswa bisa membaca accuracy, precision, recall, F1-score, confusion matrix, dan analisis error.
Word embedding
Mahasiswa memahami ide representasi semantik, kemiripan kata, dan masalah OOV.
Transformer dasar
Mahasiswa mengenal attention, tokenizer, pretrained model, dan fine-tuning dasar untuk klasifikasi.
Contoh bentuk soal teori singkat
Bagian teori tidak perlu terlalu panjang, tetapi cukup untuk melihat apakah mahasiswa memahami inti konsep. Contohnya, dosen dapat memberi 5 sampai 7 pertanyaan singkat yang jawabannya masing-masing satu paragraf pendek.
Contoh pertanyaan teori: Mengapa preprocessing penting dalam NLP? Apa perbedaan TF-IDF dan embedding? Mengapa accuracy saja belum cukup dalam evaluasi? Apa peran tokenizer pada transformer? Jelaskan fine-tuning dengan bahasa sederhana.
Contoh skenario soal praktik
Kasus yang sangat cocok untuk UTS adalah ulasan aplikasi kampus, komentar mahasiswa terhadap sistem akademik, atau klasifikasi berita sederhana. Kasus seperti ini dekat dengan kehidupan mahasiswa, sehingga lebih mudah dipahami dan tidak terasa terlalu abstrak.
Kasus sentimen
Memprediksi apakah ulasan mahasiswa tentang aplikasi kampus bersifat positif atau negatif.
Kasus topik
Mengelompokkan pesan ke kategori akademik, administrasi, teknis, atau umum.
Kasus spam
Membedakan pesan penting dengan pesan promosi atau spam sederhana.
Template notebook UTS: kerangka umum pengerjaan
Bagian ini bisa dijadikan latihan sebelum ujian. Mahasiswa cukup memahami alurnya dan menyesuaikan dengan dataset yang diberikan saat UTS.
import pandas as pd
import re
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report, confusion_matrix, accuracy_score
# 1. baca data
df = pd.read_csv("dataset_uts.csv")
print(df.head())
print(df["label"].value_counts())
# 2. preprocessing sederhana
def preprocess(text):
text = str(text).lower()
text = re.sub(r"[^a-zA-Z0-9\s]", " ", text)
text = re.sub(r"\s+", " ", text).strip()
return text
df["clean_text"] = df["text"].apply(preprocess)
# 3. split data
X_train, X_test, y_train, y_test = train_test_split(
df["clean_text"],
df["label"],
test_size=0.2,
random_state=42,
stratify=df["label"]
)
# 4. ubah teks jadi fitur TF-IDF
vectorizer = TfidfVectorizer(max_features=3000, ngram_range=(1,2))
X_train_tfidf = vectorizer.fit_transform(X_train)
X_test_tfidf = vectorizer.transform(X_test)
# 5. latih model baseline
model = MultinomialNB()
model.fit(X_train_tfidf, y_train)
# 6. evaluasi
pred = model.predict(X_test_tfidf)
print("Accuracy:", accuracy_score(y_test, pred))
print(classification_report(y_test, pred))
print(confusion_matrix(y_test, pred))Template lanjutan: membandingkan beberapa model
Jika dosen ingin mahasiswa naik satu tingkat, soal bisa meminta perbandingan beberapa model. Ini sangat baik karena mahasiswa dipaksa membaca evaluasi, bukan hanya menghasilkan satu angka.
from sklearn.linear_model import LogisticRegression
from sklearn.svm import LinearSVC
from sklearn.neighbors import KNeighborsClassifier
models = {
"Naive Bayes": MultinomialNB(),
"Logistic Regression": LogisticRegression(max_iter=1000),
"Linear SVM": LinearSVC(),
"KNN": KNeighborsClassifier(n_neighbors=3)
}
for nama, clf in models.items():
clf.fit(X_train_tfidf, y_train)
pred = clf.predict(X_test_tfidf)
acc = accuracy_score(y_test, pred)
print("Model:", nama)
print("Accuracy:", acc)
print(classification_report(y_test, pred))
print("=" * 60)Template tambahan: contoh struktur jawaban analisis
Mahasiswa sering bisa menjalankan kode, tetapi bingung menulis simpulan. Karena itu perlu dibiasakan struktur jawaban yang rapi.
# contoh struktur simpulan yang bisa ditulis di notebook
"""
Dataset berisi ulasan mahasiswa dengan dua label, yaitu positif dan negatif.
Setelah preprocessing, teks diubah menjadi fitur TF-IDF unigram dan bigram.
Empat model diuji, yaitu Naive Bayes, Logistic Regression, Linear SVM, dan KNN.
Berdasarkan hasil evaluasi, model terbaik adalah .... karena memiliki accuracy dan F1-score tertinggi.
Kesalahan model paling sering muncul pada ulasan yang mengandung pujian dan keluhan sekaligus.
Perbaikan berikutnya adalah menambah data, memperbaiki preprocessing, atau mencoba model transformer.
"""Template bonus: kerangka sederhana fine-tuning transformer
Bagian ini dapat dijadikan bonus, tugas tambahan, atau soal pengayaan untuk mahasiswa yang sudah lebih maju. Tidak wajib selalu keluar sebagai inti UTS, tetapi bagus untuk mengukur kesiapan mahasiswa yang lebih kuat.
from transformers import AutoTokenizer, AutoModelForSequenceClassification
model_name = "indobenchmark/indobert-base-p1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2)
# langkah lanjutan bisa mengikuti pola pada sesi 7:
# 1. ubah DataFrame menjadi Dataset
# 2. tokenisasi
# 3. training dengan Trainer
# 4. evaluasi hasilContoh paket soal UTS yang mudah diterapkan
Berikut contoh paket soal yang seimbang antara konsep dan praktik. Paket seperti ini cocok karena menguji alur berpikir, bukan sekadar menyalin sintaks.
| Bagian | Tugas mahasiswa | Nilai |
|---|---|---|
| A | Jelaskan secara singkat fungsi preprocessing, TF-IDF, dan confusion matrix. | 20 |
| B | Lakukan preprocessing pada dataset yang diberikan. | 15 |
| C | Bangun fitur TF-IDF dan latih minimal dua model klasifikasi. | 25 |
| D | Tampilkan accuracy, classification report, dan confusion matrix. | 20 |
| E | Tulis analisis singkat model terbaik dan usulan perbaikan. | 20 |
Rubrik penilaian yang disarankan
Rubrik membantu penilaian menjadi lebih konsisten. Mahasiswa juga lebih jelas apa yang dianggap penting. Penilaian yang baik tidak hanya menghargai output akhir, tetapi juga kerapian alur kerja dan kualitas penjelasan.
Teknis kode
Kode berjalan, alurnya runtut, dan hasil dapat direproduksi.
Pemahaman konsep
Mahasiswa dapat menjelaskan alasan memilih langkah tertentu dan membaca hasil evaluasi.
Kualitas simpulan
Mahasiswa mampu memberi kesimpulan yang jujur, ringkas, dan relevan terhadap hasil.
Kesalahan umum mahasiswa saat UTS
Kesalahan pertama adalah langsung melatih model tanpa mengecek dataset. Kesalahan kedua adalah preprocessing yang tidak konsisten antara data train dan test. Kesalahan ketiga adalah hanya menulis accuracy tanpa classification report. Kesalahan keempat adalah simpulan yang terlalu umum, misalnya hanya menulis “model berjalan dengan baik” tanpa bukti. Kesalahan kelima adalah panik melihat error kecil lalu lupa bahwa inti soal sebenarnya adalah alur logika.
Pesan penting untuk mahasiswa: saat ujian, jangan mulai dari hal yang paling rumit. Mulailah dari membaca data, pahami label, lakukan preprocessing dengan rapi, baru lanjut ke fitur dan model. Urutan berpikir yang tenang biasanya menghasilkan nilai yang lebih baik.
Diskusi Mahasiswa dengan Sistem LLM
Tanyakan materi yang masih terkait Pembelajaran Mesin untuk Teks dan AI Generatif.
Pembahasan dibatasi pada topik mata kuliah ini. Pertanyaan di luar tema akan ditolak secara otomatis.