UTS
IF1402 Praktikum
Sesi 8 - UTS Praktikum
Sesi 8 dari 16

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.

Cakupan: sesi 1 sampai 7 Format: teori + praktik Fokus: paham alur, bukan hafalan
Pertanyaan utama sesi ini Apa saja yang harus benar-benar dikuasai mahasiswa sebelum masuk UTS praktikum?
Jawaban singkatnya Mahasiswa perlu paham pipeline NLP dari awal sampai evaluasi model, lalu mengenal embedding dan transformer sebagai lanjutan menuju NLP modern.
Hasil belajar Mahasiswa memiliki gambaran jelas tentang format UTS, kisi-kisi materi, latihan yang relevan, dan contoh struktur penyelesaian soal praktik.

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.

Perumpamaan mudah

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

1

Pengantar NLP dan AI generatif

Mahasiswa memahami pengertian NLP, text mining, machine learning untuk teks, dan perbedaan umum dengan generative AI.

2

Preprocessing

Mahasiswa tahu fungsi case folding, cleaning, tokenisasi, stopword removal, stemming, dan normalisasi.

3

Representasi teks

Mahasiswa memahami BoW, N-gram, TF-IDF, sparse vector, dan cosine similarity dasar.

4

Klasifikasi teks

Mahasiswa mampu menyiapkan train-test split dan membangun baseline dengan model klasik.

5

Evaluasi model

Mahasiswa bisa membaca accuracy, precision, recall, F1-score, confusion matrix, dan analisis error.

6

Word embedding

Mahasiswa memahami ide representasi semantik, kemiripan kata, dan masalah OOV.

7

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 hasil

Contoh 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.

Ruang Diskusi Mahasiswa dengan Sistem LLM

Tanyakan konsep, latihan, studi kasus, atau minta penjelasan ulang dengan bahasa yang lebih sederhana. Sistem hanya melayani topik yang masih berkaitan dengan mata kuliah ini.

Konteks halaman: Sesi 8 - UTS Praktikum Fokus: NLP, text mining, transformer, LLM, prompt, semantic search, RAG

Halo, saya siap membantu diskusi belajar Anda.

Silakan tanyakan materi yang berkaitan dengan mata kuliah ini, misalnya preprocessing, TF-IDF, klasifikasi teks, embedding, transformer, LLM, prompt engineering, semantic search, RAG, evaluasi model, etika AI, atau studi kasus yang serupa.

Bila pertanyaan di luar tema mata kuliah, sistem akan menolak dengan sopan.

Jawaban akan dibuat lebih jelas, tidak monoton, penuh contoh, dan memakai paragraf biasa tanpa markdown.