Lembar Kerja Mahasiswa untuk Mata Kuliah Big data

yaqinov 0 views 60 slides Oct 11, 2025
Slide 1
Slide 1 of 60
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60

About This Presentation

Lembar Kerja Mahasiswa (LKM) ini dirancang sebagai panduan pembelajaran praktis selama satu semester untuk mata kuliah Big Data, Analisis Sentimen, dan Prediksi Tren, yang berfokus pada penerapan langsung konsep analisis data berskala besar dalam konteks nyata. Setiap LKM memuat komponen teori inti,...


Slide Content

1

Big Data, Analisis Sentimen, dan Prediksi
Tren

Dr. Muhammad Ainul Yaqin, S.Si, M.Kom
Daftar Isi
Daftar Isi .................................................................................................................................................. 1
Pertemuan 1: Pengantar Big Data dan Ekosistemnya ............................................................................ 5
A. Tujuan Pembelajaran ...................................................................................................................... 5
B. Deskripsi Materi .............................................................................................................................. 5
C. Kegiatan Pembelajaran ................................................................................................................... 5
Langkah 1 – Pemahaman Konsep Big Data (Diskusi Kelas) ............................................................. 5
Langkah 2 – Arsitektur Ekosistem Big Data (Teori dan Visualisasi)................................................. 5
Langkah 3 – Persiapan Lingkungan Kerja (Praktik Instalasi) ........................................................... 6
Langkah 4 – Eksplorasi Dataset Besar (Praktik) .............................................................................. 6
D. Diskusi dan Refleksi ........................................................................................................................ 7
E. Penugasan Individu ......................................................................................................................... 7
Pertemuan 2: Akuisisi dan Penyimpanan Data ....................................................................................... 8
A. Tujuan Pembelajaran ...................................................................................................................... 8
B. Deskripsi Materi .............................................................................................................................. 8
C. Kegiatan Pembelajaran ................................................................................................................... 8
Langkah 1 – Pemahaman Konsep Akuisisi Data (Diskusi Kelas) ...................................................... 8
Langkah 2 – Pengenalan MongoDB (Teori Singkat) ........................................................................ 9
Langkah 3 – Praktik Akuisisi Data dari Web .................................................................................... 9
Langkah 4 – Praktik Akuisisi Data Menggunakan API ..................................................................... 9
Langkah 5 – Penyimpanan Data ke MongoDB .............................................................................. 10
D. Diskusi dan Refleksi ...................................................................................................................... 10
E. Penugasan Individu ....................................................................................................................... 10
Pertemuan 3: Pembersihan dan Pra-pemrosesan Data ....................................................................... 12
A. Tujuan Pembelajaran .................................................................................................................... 12
B. Deskripsi Materi ............................................................................................................................ 12
C. Kegiatan Pembelajaran ................................................................................................................. 12
Langkah 1 – Pemahaman Konsep (Diskusi Kelas) ......................................................................... 12
Langkah 2 – Eksplorasi Data Mentah ............................................................................................ 13
Langkah 3 – Penanganan Data Hilang dan Duplikat ..................................................................... 13
Langkah 4 – Pembersihan Teks ..................................................................................................... 13
Langkah 5 – Tokenisasi dan Stemming ......................................................................................... 14
Langkah 6 – Simpan Data yang Telah Dibersihkan ....................................................................... 14
D. Diskusi dan Refleksi ...................................................................................................................... 14
E. Penugasan Individu ....................................................................................................................... 14
Pertemuan 4: Eksplorasi dan Visualisasi Data ...................................................................................... 16
A. Tujuan Pembelajaran .................................................................................................................... 16
B. Deskripsi Materi ............................................................................................................................ 16
C. Kegiatan Pembelajaran ................................................................................................................. 16

2

Langkah 1 – Pemahaman Konsep EDA (Diskusi Kelas) .................................................................. 16
Langkah 2 – Persiapan Dataset ..................................................................................................... 16
Langkah 3 – Analisis Deskriptif Sederhana ................................................................................... 17
Langkah 4 – Visualisasi Data Numerik dan Kategorikal ................................................................ 17
Langkah 5 – Visualisasi Data Teks ................................................................................................. 18
Langkah 6 – Interpretasi dan Diskusi ............................................................................................ 18
D. Diskusi dan Refleksi ...................................................................................................................... 18
E. Penugasan Individu ....................................................................................................................... 18
Pertemuan 5: Dasar Analisis Sentimen ................................................................................................. 20
A. Tujuan Pembelajaran .................................................................................................................... 20
B. Deskripsi Materi ............................................................................................................................ 20
C. Kegiatan Pembelajaran ................................................................................................................. 20
Langkah 1 – Pemahaman Konsep Analisis Sentimen (Diskusi Kelas) ............................................ 20
Langkah 2 – Persiapan Lingkungan dan Dataset ........................................................................... 21
Langkah 3 – Analisis Sentimen dengan TextBlob .......................................................................... 21
Langkah 4 – Analisis Sentimen dengan VADER ............................................................................. 21
Langkah 5 – Visualisasi Distribusi Sentimen ................................................................................. 22
Langkah 6 – Interpretasi dan Diskusi ............................................................................................ 22
D. Diskusi dan Refleksi ...................................................................................................................... 22
E. Penugasan Individu ....................................................................................................................... 23
Pertemuan 6: Analisis Sentimen Berbasis Machine Learning ............................................................... 24
A. Tujuan Pembelajaran .................................................................................................................... 24
B. Deskripsi Materi ............................................................................................................................ 24
C. Kegiatan Pembelajaran ................................................................................................................. 24
Langkah 1 – Pemahaman Konsep Analisis Sentimen ML .............................................................. 24
Langkah 2 – Persiapan Dataset dan Lingkungan ........................................................................... 25
Langkah 3 – Pembagian Data dan Ekstraksi Fitur ......................................................................... 25
Langkah 4 – Pelatihan Model Machine Learning .......................................................................... 25
Langkah 5 – Eksperimen dan Perbandingan Model ...................................................................... 26
Langkah 6 – Interpretasi dan Diskusi ............................................................................................ 26
D. Diskusi dan Refleksi ...................................................................................................................... 26
E. Penugasan Individu ....................................................................................................................... 27
Pertemuan 7: Evaluasi Model dan Optimasi Analisis Sentimen ........................................................... 28
A. Tujuan Pembelajaran .................................................................................................................... 28
B. Deskripsi Materi ............................................................................................................................ 28
C. Kegiatan Pembelajaran ................................................................................................................. 28
Langkah 1 – Pemahaman Konsep Evaluasi Model ........................................................................ 28
Langkah 2 – Persiapan Dataset dan Model Awal .......................................................................... 29
Langkah 3 – Ekstraksi Fitur ............................................................................................................ 29
Langkah 4 – Evaluasi Awal Model ................................................................................................. 29
Langkah 5 – Cross-Validation ........................................................................................................ 30
Langkah 6 – Optimasi Parameter (Grid Search) ............................................................................ 30
Langkah 7 – Analisis Hasil Optimasi .............................................................................................. 30
D. Diskusi dan Refleksi ...................................................................................................................... 30
E. Penugasan Individu ....................................................................................................................... 31
Pertemuan 8: Analisis Tren Sentimen dan Visualisasi Dinamis ............................................................ 32
A. Tujuan Pembelajaran .................................................................................................................... 32
B. Deskripsi Materi ............................................................................................................................ 32

3

C. Kegiatan Pembelajaran ................................................................................................................. 32
Langkah 1 – Pemahaman Konsep Tren Sentimen ......................................................................... 32
Langkah 2 – Persiapan Dataset dan Lingkungan ........................................................................... 33
Langkah 3 – Agregasi Data Berdasarkan Waktu ........................................................................... 33
Langkah 4 – Visualisasi Tren Sentimen (Statik) ............................................................................. 33
Langkah 5 – Visualisasi Dinamis dengan Plotly ............................................................................. 34
Langkah 6 – Interpretasi Hasil ....................................................................................................... 34
D. Diskusi dan Refleksi ...................................................................................................................... 34
E. Penugasan Individu ....................................................................................................................... 35
Pertemuan 9: Pengenalan Prediksi Tren Sentimen Menggunakan Model Time Series ....................... 36
A. Tujuan Pembelajaran .................................................................................................................... 36
B. Deskripsi Materi ............................................................................................................................ 36
C. Kegiatan Pembelajaran ................................................................................................................. 36
Langkah 1 – Pemahaman Dasar Time Series ................................................................................ 36
Langkah 2 – Persiapan Dataset ..................................................................................................... 37
Langkah 3 – Visualisasi Data Deret Waktu .................................................................................... 37
Langkah 4 – Prediksi Sederhana dengan Moving Average ........................................................... 37
Langkah 5 – Prediksi dengan Model ARIMA ................................................................................. 38
D. Diskusi dan Refleksi ...................................................................................................................... 38
E. Penugasan Individu ....................................................................................................................... 39
Pertemuan 10: Prediksi Tren Sentimen Menggunakan Model Machine Learning (LSTM atau Random
Forest) ................................................................................................................................................... 40
A. Tujuan Pembelajaran .................................................................................................................... 40
B. Deskripsi Materi ............................................................................................................................ 40
C. Kegiatan Pembelajaran ................................................................................................................. 40
Langkah 1 – Penjelasan Konsep .................................................................................................... 40
Langkah 2 – Persiapan Dataset ..................................................................................................... 41
Langkah 3 – Pembuatan Fitur Lag untuk Prediksi ......................................................................... 41
Langkah 4 – Prediksi Tren dengan Random Forest ....................................................................... 41
Langkah 5 – Prediksi Tren dengan LSTM ....................................................................................... 42
Langkah 6 – Perbandingan dan Diskusi ......................................................................................... 42
D. Diskusi dan Refleksi ...................................................................................................................... 43
E. Penugasan Individu ....................................................................................................................... 43
Pertemuan 11: Evaluasi dan Optimasi Model Prediksi Tren Sentimen ................................................ 44
A. Tujuan Pembelajaran .................................................................................................................... 44
B. Deskripsi Materi ............................................................................................................................ 44
C. Kegiatan Pembelajaran ................................................................................................................. 44
Langkah 1 – Diskusi Konsep Evaluasi dan Optimasi ...................................................................... 44
Langkah 2 – Persiapan Data dan Model ........................................................................................ 45
Langkah 3 – Evaluasi Model Random Forest (Baseline) ................................................................ 45
Langkah 4 – Optimasi Model Random Forest dengan Grid Search .............................................. 46
Langkah 5 – Evaluasi dan Optimasi Model LSTM .......................................................................... 46
Langkah 6 – Perbandingan Hasil dan Diskusi ................................................................................ 47
D. Diskusi dan Refleksi ...................................................................................................................... 47
E. Penugasan Individu ....................................................................................................................... 48
Pertemuan 12: Integrasi Analisis Sentimen dan Prediksi Tren dalam Dashboard ................................ 49
A. Tujuan Pembelajaran .................................................................................................................... 49
B. Deskripsi Materi ............................................................................................................................ 49

4

C. Kegiatan Pembelajaran ................................................................................................................. 49
Langkah 1 – Pengenalan Konsep Dashboard Interaktif ................................................................ 49
Langkah 2 – Persiapan Lingkungan dan Data ................................................................................ 50
Langkah 3 – Visualisasi Interaktif Dasar ........................................................................................ 50
Langkah 4 – Membuat Dashboard Interaktif dengan Streamlit ................................................... 50
Langkah 5 – Menambahkan Interaktivitas Tambahan .................................................................. 51
D. Diskusi dan Refleksi ...................................................................................................................... 51
E. Penugasan Individu ....................................................................................................................... 52
Pertemuan 13: Implementasi Dashboard Berbasis Cloud untuk Pemantauan Tren Real-Time ........... 53
A. Tujuan Pembelajaran .................................................................................................................... 53
B. Deskripsi Materi ............................................................................................................................ 53
C. Kegiatan Pembelajaran ................................................................................................................. 53
Langkah 1 – Review Konsep Dashboard ....................................................................................... 53
Langkah 2 – Persiapan Struktur Proyek ........................................................................................ 53
Langkah 3 – Persiapan Dashboard untuk Cloud ........................................................................... 54
Langkah 4 – Deploy ke Cloud ........................................................................................................ 55
Langkah 5 – Integrasi Data Real-Time ........................................................................................... 55
D. Diskusi dan Refleksi ...................................................................................................................... 55
E. Penugasan Individu ....................................................................................................................... 55
Pertemuan 14: Presentasi dan Evaluasi Proyek Akhir Analisis Sentimen dan Prediksi Tren ................ 57
A. Tujuan Pembelajaran .................................................................................................................... 57
B. Deskripsi Materi ............................................................................................................................ 57
C. Struktur Presentasi Proyek ........................................................................................................... 57
D. Kegiatan Pembelajaran ................................................................................................................. 58
Langkah 1 – Persiapan Presentasi ................................................................................................. 58
Langkah 2 – Pelaksanaan Presentasi ............................................................................................. 58
Langkah 3 – Evaluasi dan Diskusi .................................................................................................. 58
E. Panduan Pembuatan Slide Presentasi .......................................................................................... 59
F. Penugasan Akhir ............................................................................................................................ 59
G. Kriteria Penilaian ......................................................................................................................... 59
H. Refleksi Mahasiswa ...................................................................................................................... 60

5

Pertemuan 1: Pengantar Big Data dan Ekosistemnya
Mata Kuliah: Big Data, Analisis Sentimen, dan Prediksi Tren
Durasi: 1 Pertemuan (2–3 jam)

A. Tujuan Pembelajaran
1. Mahasiswa memahami konsep dasar dan karakteristik utama Big Data.
2. Mahasiswa mengenali arsitektur dan komponen utama dalam ekosistem Big Data.
3. Mahasiswa mampu melakukan instalasi lingkungan kerja untuk pengolahan data skala
besar.
4. Mahasiswa dapat mengeksplorasi dataset besar secara sederhana menggunakan
Python.

B. Deskripsi Materi
Big Data adalah istilah yang digunakan untuk menggambarkan kumpulan data dengan
volume besar, kecepatan tinggi, dan variasi tinggi. Data ini tidak dapat diolah menggunakan
sistem basis data konvensional. Ekosistem Big Data mencakup platform, arsitektur, dan alat
yang memungkinkan penyimpanan, pemrosesan, dan analisis data dalam skala besar.
Komponen utama dalam ekosistem Big Data mencakup:
 Data Source: Sensor, media sosial, log sistem, transaksi digital, atau data IoT.
 Data Storage: Hadoop Distributed File System (HDFS), NoSQL, atau Data Lake.
 Data Processing: Spark, MapReduce, dan Kafka.
 Data Analysis: Python, R, dan tool machine learning.
 Data Visualization: Tableau, Power BI, atau library Python seperti matplotlib dan
seaborn.

C. Kegiatan Pembelajaran
Langkah 1 – Pemahaman Konsep Big Data (Diskusi Kelas)
1. Dosen menjelaskan karakteristik 5V Big Data: Volume, Velocity, Variety, Veracity,
dan Value.
2. Mahasiswa diminta memberi contoh nyata dari setiap karakteristik (misal: data
transaksi e-commerce, data cuaca, data sensor kendaraan).
3. Dosen menjelaskan perbandingan antara sistem konvensional (RDBMS) dengan
sistem Big Data.
4. Mahasiswa mendiskusikan kasus sederhana di mana sistem tradisional tidak mampu
menangani skala data tertentu.
Langkah 2 – Arsitektur Ekosistem Big Data (Teori dan Visualisasi)
1. Dosen memaparkan arsitektur umum Big Data:

6

o Data ingestion (Kafka, Flume)
o Storage (HDFS, NoSQL)
o Processing (Spark, MapReduce)
o Analysis & Visualization (Python, Tableau)
2. Mahasiswa menggambar diagram sederhana arsitektur Big Data versi masing-masing,
disertai penjelasan fungsi tiap komponen.
Langkah 3 – Persiapan Lingkungan Kerja (Praktik Instalasi)
1. Instalasi Python (≥3.9) dan Jupyter Notebook.
2. Instalasi pustaka:
pip install pandas dask numpy matplotlib
3. Pengecekan versi dengan:
python --version
jupyter --version
4. Mahasiswa membuat file baru di Jupyter Notebook dengan nama:
Eksplorasi_Dataset_BigData_Pertemuan1.ipynb

Langkah 4 – Eksplorasi Dataset Besar (Praktik)
Gunakan dataset publik besar, misalnya US Accidents Dataset atau NYC Taxi Trips Dataset
(dapat diunduh dari Kaggle).
1. Impor pustaka:
import dask.dataframe as dd
2. Muat dataset besar (contoh):
df = dd.read_csv('US_Accidents_Dec21_updated.csv')
3. Tampilkan struktur data:
df.head()
df.info()
4. Hitung jumlah baris:
len(df)
5. Lakukan eksplorasi awal:
o Kolom dengan nilai kosong terbanyak
o Distribusi data berdasarkan waktu atau lokasi
o Contoh visualisasi sederhana:

7

df['State'].value_counts().nlargest(10).compute().plot(kind='
bar')
6. Simpulkan hasil eksplorasi dalam 3–4 kalimat.

D. Diskusi dan Refleksi
1. Apa perbedaan utama antara pemrosesan data dengan pandas dan dask?
2. Mengapa arsitektur Big Data memerlukan pemisahan antara penyimpanan dan
pemrosesan?
3. Apa potensi tantangan dalam penerapan Big Data di dunia nyata?

E. Penugasan Individu
Judul Tugas: Instalasi dan Eksplorasi Dataset Besar
Instruksi:
1. Instalasi lingkungan kerja (Python, Jupyter, pustaka dask).
2. Unduh salah satu dataset besar dari Kaggle (≥100 MB).
3. Lakukan eksplorasi data menggunakan dask:
o Tampilkan 5 baris pertama.
o Hitung jumlah baris dan kolom.
o Identifikasi kolom dengan missing value terbanyak.
o Buat grafik distribusi data sederhana.
4. Simpulkan hasil eksplorasi (maksimal 200 kata).
5. Simpan file notebook dengan nama:
LKM1_Nama_NIM.ipynb
6. Kumpulkan ke sistem LMS atau email sesuai instruksi dosen.
Kriteria Penilaian:
Aspek Bobot
Instalasi dan konfigurasi lingkungan 20%
Eksplorasi dataset besar (kode dan hasil) 40%
Visualisasi data dan analisis sederhana 25%
Kerapian notebook dan kesimpulan 15%

8

Pertemuan 2: Akuisisi dan Penyimpanan Data
Mata Kuliah: Big Data, Analisis Sentimen, dan Prediksi Tren
Durasi: 1 Pertemuan (2–3 jam)

A. Tujuan Pembelajaran
1. Mahasiswa memahami konsep akuisisi data dari berbagai sumber digital.
2. Mahasiswa mengenali berbagai format dan struktur data (terstruktur, semi-terstruktur,
tidak terstruktur).
3. Mahasiswa mampu melakukan pengambilan data melalui web scraping dan API
publik.
4. Mahasiswa dapat menyimpan data hasil akuisisi ke basis data NoSQL.

B. Deskripsi Materi
Akuisisi data merupakan tahap awal dalam proses Big Data yang melibatkan pengumpulan
data dari berbagai sumber seperti web, media sosial, sensor, dan transaksi digital. Data yang
diperoleh biasanya memiliki format berbeda, sehingga perlu disimpan dalam sistem yang
mendukung fleksibilitas dan skalabilitas.
Format data umum yang digunakan:
 Terstruktur: CSV, SQL database
 Semi-terstruktur: JSON, XML
 Tidak terstruktur: teks, gambar, video
Untuk pengambilan data, dua metode utama digunakan:
1. Web Scraping: Mengambil data langsung dari halaman web menggunakan pustaka
seperti BeautifulSoup atau Scrapy.
2. API (Application Programming Interface): Mengakses data melalui endpoint
resmi, misalnya Twitter API atau NewsAPI.
Penyimpanan hasil akuisisi dapat dilakukan menggunakan MongoDB, sistem basis data
NoSQL yang menyimpan data dalam format dokumen JSON.

C. Kegiatan Pembelajaran
Langkah 1 – Pemahaman Konsep Akuisisi Data (Diskusi Kelas)
1. Dosen menjelaskan perbedaan antara data terstruktur, semi-terstruktur, dan tidak
terstruktur.
2. Mahasiswa memberi contoh nyata dari setiap jenis data tersebut.
3. Dosen memperkenalkan konsep web scraping dan API, serta etika pengambilan data
publik.

9

4. Mahasiswa berdiskusi mengenai contoh sumber data terbuka yang relevan dengan
topik penelitian atau isu sosial terkini.
Langkah 2 – Pengenalan MongoDB (Teori Singkat)
1. Dosen menjelaskan karakteristik NoSQL dan keunggulan MongoDB untuk
menyimpan data semi-terstruktur.
2. Dosen menjelaskan konsep collection, document, dan schema flexibility.
3. Mahasiswa memahami bagaimana data dari web atau API dapat disimpan ke
MongoDB.
Langkah 3 – Praktik Akuisisi Data dari Web
1. Instalasi pustaka:
pip install requests beautifulsoup4 pymongo
2. Buat file baru di Jupyter Notebook dengan nama:
Akuisisi_Data_Pertemuan2.ipynb
3. Contoh kode web scraping sederhana:
import requests
from bs4 import BeautifulSoup

url = "https://news.detik.com/terpopuler"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

titles = soup.find_all('h3')
for t in titles[:10]:
print(t.text)
4. Mahasiswa menjalankan kode di atas, lalu memodifikasi agar hasilnya disimpan
dalam list Python.
Langkah 4 – Praktik Akuisisi Data Menggunakan API
1. Mahasiswa mendaftar akun di https://newsapi.org untuk mendapatkan API Key.
2. Contoh penggunaan API:
import requests
api_key = "MASUKKAN_API_KEY_ANDA"
url = f"https://newsapi.org/v2/top-
headlines?country=id&apiKey={api_key}"
response = requests.get(url)
data = response.json()

for article in data['articles'][:5]:
print(article['title'])

10

3. Mahasiswa mencoba mengganti parameter API (misalnya kata kunci atau negara) dan
mencatat hasilnya.
Langkah 5 – Penyimpanan Data ke MongoDB
1. Jalankan MongoDB lokal atau gunakan layanan cloud seperti MongoDB Atlas.
2. Sambungkan Python ke MongoDB:
from pymongo import MongoClient

client = MongoClient("mongodb://localhost:27017/")
db = client["bigdata_db"]
collection = db["berita_terbaru"]

collection.insert_many(data['articles'])
print("Data berhasil disimpan ke MongoDB.")
3. Verifikasi penyimpanan dengan menampilkan beberapa dokumen:
for doc in collection.find().limit(3):
print(doc['title'])

D. Diskusi dan Refleksi
1. Apa perbedaan utama antara pengambilan data dengan web scraping dan API?
2. Mengapa NoSQL seperti MongoDB lebih cocok untuk menyimpan data semi-
terstruktur?
3. Apa risiko hukum dan etika dalam melakukan web scraping?

E. Penugasan Individu
Judul Tugas: Akuisisi dan Penyimpanan Data dari Web dan API
Instruksi:
1. Pilih salah satu topik berita atau kata kunci yang menarik.
2. Lakukan dua metode pengambilan data:
o Web scraping dari satu situs berita (gunakan BeautifulSoup).
o Pengambilan data melalui API publik (misalnya NewsAPI, OpenWeatherMap,
atau Twitter API).
3. Gabungkan hasil data dari kedua sumber menjadi satu struktur Python.
4. Simpan data hasil akuisisi ke MongoDB.
5. Tampilkan minimal 5 entri dari koleksi MongoDB.
6. Simpulkan perbedaan karakteristik data dari dua sumber tersebut (maksimal 150
kata).
7. Simpan file notebook dengan nama:
LKM2_Nama_NIM.ipynb
8. Kumpulkan sesuai instruksi dosen.

11

Kriteria Penilaian:
Aspek Bobot
Akuisisi data melalui web scraping 25%
Akuisisi data melalui API 25%
Penyimpanan data ke MongoDB 25%
Analisis dan kesimpulan 15%
Kerapian kode dan dokumentasi 10%

12

Pertemuan 3: Pembersihan dan Pra-pemrosesan Data
Mata Kuliah: Big Data, Analisis Sentimen, dan Prediksi Tren
Durasi: 1 Pertemuan (2–3 jam)

A. Tujuan Pembelajaran
1. Mahasiswa memahami pentingnya pembersihan dan pra-pemrosesan data sebelum
analisis.
2. Mahasiswa mampu mengidentifikasi dan menangani data yang hilang, duplikat, dan
tidak konsisten.
3. Mahasiswa dapat melakukan pembersihan teks dari noise seperti tanda baca, URL,
emoji, dan simbol.
4. Mahasiswa mampu menerapkan tokenisasi dan stemming untuk menyiapkan data teks
bagi analisis lebih lanjut.

B. Deskripsi Materi
Tahap pembersihan data (data cleaning) dan pra-pemrosesan (data preprocessing)
merupakan langkah penting dalam siklus analisis Big Data. Data mentah yang dikumpulkan
dari web atau API biasanya memiliki masalah seperti nilai kosong, format tidak konsisten,
atau teks yang mengandung karakter tidak relevan.
Beberapa langkah penting dalam tahap ini meliputi:
 Menghapus duplikasi data
 Menangani nilai kosong (missing values)
 Normalisasi teks: mengubah huruf menjadi huruf kecil, menghapus tanda baca,
URL, emoji, dan karakter khusus
 Tokenisasi: memecah kalimat menjadi kata-kata
 Stemming dan Lemmatization: mengembalikan kata ke bentuk dasarnya
Proses ini bertujuan untuk menghasilkan data yang bersih, konsisten, dan siap digunakan
untuk analisis sentimen atau model prediksi tren.

C. Kegiatan Pembelajaran
Langkah 1 – Pemahaman Konsep (Diskusi Kelas)
1. Dosen menjelaskan pentingnya pembersihan data dalam pipeline analisis Big Data.
2. Mahasiswa diminta mengidentifikasi contoh data kotor atau tidak konsisten dari hasil
pertemuan sebelumnya.
3. Diskusi dilakukan tentang dampak data tidak bersih terhadap hasil analisis sentimen
dan prediksi tren.

13

Langkah 2 – Eksplorasi Data Mentah
1. Gunakan data hasil web scraping atau API dari pertemuan sebelumnya.
2. Mahasiswa membuka file notebook baru dengan nama:
Pembersihan_Data_Pertemuan3.ipynb
3. Impor pustaka Python berikut:
import pandas as pd
import numpy as np
import re
import string
4. Baca data hasil akuisisi:
df = pd.read_json('data_berita.json') # atau format data Anda
df.head()

5. Identifikasi permasalahan data:
df.info()
df.isnull().sum()
df.duplicated().sum()

Langkah 3 – Penanganan Data Hilang dan Duplikat
1. Hapus baris duplikat:
df = df.drop_duplicates()
2. Isi nilai kosong pada kolom tertentu:
df['author'] = df['author'].fillna('Tidak Diketahui')
3. Verifikasi hasil pembersihan:
df.isnull().sum()

Langkah 4 – Pembersihan Teks
Gunakan kolom teks berita atau tweet (misalnya content atau title).
1. Definisikan fungsi pembersihan teks:
def clean_text(text):
text = str(text).lower() # ubah ke
huruf kecil
text = re.sub(r"http\S+|www\S+|https\S+", '', text) # hapus
URL

14

text = re.sub(r'@\w+|#', '', text) # hapus
mention dan hashtag
text = re.sub(r'[^a-zA-Z\s]', '', text) # hapus angka
dan simbol
text = text.strip()
return text
2. Terapkan fungsi ke kolom teks:
df['clean_text'] = df['content'].apply(clean_text)
3. Lihat hasil:
df[['content', 'clean_text']].head(5)

Langkah 5 – Tokenisasi dan Stemming
1. Instal pustaka:
pip install nltk
2. Contoh penerapan:
import nltk
from nltk.tokenize import word_tokenize
from nltk.stem import PorterStemmer
nltk.download('punkt')

stemmer = PorterStemmer()
df['tokens'] = df['clean_text'].apply(lambda x: word_tokenize(x))
df['stemmed'] = df['tokens'].apply(lambda tokens: [stemmer.stem(w)
for w in tokens])
df[['clean_text', 'stemmed']].head(5)

Langkah 6 – Simpan Data yang Telah Dibersihkan
df.to_csv('data_bersih.csv', index=False)
print("Data berhasil disimpan sebagai data_bersih.csv")


D. Diskusi dan Refleksi
1. Apa dampak jika proses pembersihan data dilewati dalam proyek analisis Big Data?
2. Mengapa pembersihan teks penting dalam analisis sentimen?
3. Bagaimana Anda menangani data yang terlalu bising atau mengandung banyak
karakter asing?

E. Penugasan Individu
Judul Tugas: Pembersihan dan Pra-pemrosesan Data

15

Instruksi:
1. Gunakan dataset hasil akuisisi data dari pertemuan sebelumnya.
2. Lakukan langkah-langkah berikut:
o Identifikasi jumlah data duplikat dan hilang.
o Hapus duplikat dan isi nilai kosong dengan pendekatan yang sesuai.
o Bersihkan kolom teks dari URL, simbol, tanda baca, dan karakter asing.
o Lakukan tokenisasi dan stemming terhadap kolom teks.
3. Simpan hasil akhir ke dalam file data_bersih.csv.
4. Buat ringkasan hasil pra-pemrosesan dalam bentuk markdown di bagian akhir
notebook (maksimal 150 kata).
5. Simpan file notebook dengan nama:
LKM3_Nama_NIM.ipynb
6. Kumpulkan sesuai instruksi dosen.
Kriteria Penilaian:
Aspek Bobot
Identifikasi dan penanganan data hilang dan duplikat 25%
Pembersihan teks dan normalisasi 30%
Tokenisasi dan stemming 25%
Analisis dan dokumentasi hasil 10%
Kerapian kode dan struktur notebook 10%

16

Pertemuan 4: Eksplorasi dan Visualisasi Data
Mata Kuliah: Big Data, Analisis Sentimen, dan Prediksi Tren
Durasi: 1 Pertemuan (2–3 jam)

A. Tujuan Pembelajaran
1. Mahasiswa memahami konsep eksplorasi data sebagai langkah awal analisis.
2. Mahasiswa mampu melakukan analisis deskriptif terhadap dataset hasil pra-
pemrosesan.
3. Mahasiswa dapat membuat visualisasi data menggunakan pustaka Python.
4. Mahasiswa mampu menafsirkan pola, tren, dan distribusi data melalui grafik.

B. Deskripsi Materi
Eksplorasi data (Exploratory Data Analysis atau EDA) adalah proses untuk memahami
struktur, pola, dan karakteristik data sebelum dilakukan analisis lanjutan. Tahapan ini
mencakup identifikasi distribusi variabel, pencarian hubungan antarvariabel, serta deteksi
pola atau anomali.
Visualisasi data berperan penting dalam membantu interpretasi hasil eksplorasi. Pustaka
Python seperti matplotlib, seaborn, dan wordcloud sering digunakan untuk memvisualkan
tren, frekuensi, dan korelasi dalam data.
Dalam konteks Big Data, eksplorasi visual juga dapat dilakukan terhadap data teks untuk
menemukan topik populer atau pola kemunculan kata tertentu.

C. Kegiatan Pembelajaran
Langkah 1 – Pemahaman Konsep EDA (Diskusi Kelas)
1. Dosen menjelaskan tujuan utama EDA dan pentingnya memahami data sebelum
membangun model.
2. Mahasiswa diminta mengidentifikasi pertanyaan eksploratif dari dataset masing-
masing, misalnya:
o Siapa penulis berita terbanyak?
o Kapan volume berita mencapai puncak?
o Kata apa yang paling sering muncul dalam teks?
3. Diskusi mengenai pentingnya visualisasi untuk menyampaikan insight dengan efektif.
Langkah 2 – Persiapan Dataset
1. Gunakan file hasil pembersihan dari pertemuan sebelumnya:
import pandas as pd

17

df = pd.read_csv('data_bersih.csv')
df.head()
2. Pastikan kolom teks dan waktu tersedia, misalnya clean_text, publishedAt, atau
author.
Langkah 3 – Analisis Deskriptif Sederhana
1. Tampilkan informasi dasar:
df.info()
df.describe(include='all')
2. Hitung jumlah entri unik dan distribusi data:
print(df['author'].nunique())
print(df['author'].value_counts().head(10))
3. Buat tabel ringkasan:
summary = df['author'].value_counts().reset_index()
summary.columns = ['author', 'jumlah_berita']
summary.head()

Langkah 4 – Visualisasi Data Numerik dan Kategorikal
1. Instal pustaka yang diperlukan:
pip install matplotlib seaborn wordcloud
2. Import dan konfigurasi:
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="whitegrid")
3. Visualisasi 10 penulis dengan berita terbanyak:
top_authors = df['author'].value_counts().head(10)
plt.figure(figsize=(10,6))
sns.barplot(x=top_authors.values, y=top_authors.index,
palette='viridis')
plt.title('10 Penulis dengan Jumlah Berita Terbanyak')
plt.xlabel('Jumlah Berita')
plt.ylabel('Penulis')
plt.show()
4. Visualisasi distribusi tanggal publikasi:
df['publishedAt'] = pd.to_datetime(df['publishedAt'],
errors='coerce')
df['publishedAt'].dt.date.value_counts().sort_index().plot(figsize=
(12,5))

18

plt.title('Distribusi Berita per Tanggal')
plt.xlabel('Tanggal')
plt.ylabel('Jumlah Berita')
plt.show()

Langkah 5 – Visualisasi Data Teks
1. Buat WordCloud dari kolom clean_text:
from wordcloud import WordCloud
text = ' '.join(df['clean_text'].dropna())
wordcloud = WordCloud(width=800, height=400,
background_color='white').generate(text)
plt.figure(figsize=(10,5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.title('WordCloud dari Konten Berita')
plt.show()
2. Buat analisis frekuensi kata manual:
from collections import Counter
all_words = ' '.join(df['clean_text']).split()
freq = Counter(all_words)
print(freq.most_common(20))

Langkah 6 – Interpretasi dan Diskusi
1. Analisis hasil visualisasi:
o Apakah ada pola waktu tertentu yang menunjukkan lonjakan berita?
o Siapa penulis paling produktif?
o Kata apa yang paling sering muncul, dan apa maknanya?
2. Mahasiswa menuliskan hasil interpretasi secara singkat di bagian akhir notebook.

D. Diskusi dan Refleksi
1. Bagaimana EDA membantu dalam menentukan arah analisis berikutnya?
2. Apa risiko interpretasi yang keliru dari visualisasi data?
3. Mengapa penting menyesuaikan jenis grafik dengan jenis data yang dianalisis?

E. Penugasan Individu
Judul Tugas: Eksplorasi dan Visualisasi Data
Instruksi:
1. Gunakan dataset hasil pembersihan dari pertemuan sebelumnya.
2. Lakukan analisis deskriptif terhadap dataset:

19

o Hitung jumlah entri unik pada kolom kategorikal (misalnya author, source).
o Tampilkan distribusi data berdasarkan waktu publikasi.
3. Buat minimal tiga jenis visualisasi:
o Grafik batang (bar chart) untuk data kategorikal.
o Grafik garis (line chart) untuk data waktu.
o WordCloud untuk data teks.
4. Berikan interpretasi dari setiap visualisasi (2–3 kalimat per grafik).
5. Simpan hasil eksplorasi dalam file:
LKM4_Nama_NIM.ipynb
6. Kumpulkan sesuai instruksi dosen.
Kriteria Penilaian:
Aspek Bobot
Analisis deskriptif dataset 25%
Kualitas visualisasi dan relevansi grafik 35%
Interpretasi hasil eksplorasi 25%
Kerapian kode dan dokumentasi 15%

20

Pertemuan 5: Dasar Analisis Sentimen
Mata Kuliah: Big Data, Analisis Sentimen, dan Prediksi Tren
Durasi: 1 Pertemuan (2–3 jam)

A. Tujuan Pembelajaran
1. Mahasiswa memahami konsep dasar analisis sentimen dan penerapannya dalam dunia
nyata.
2. Mahasiswa mengenali dua pendekatan utama analisis sentimen: berbasis leksikon dan
berbasis pembelajaran mesin.
3. Mahasiswa mampu melakukan analisis sentimen sederhana menggunakan pustaka
Python.
4. Mahasiswa dapat menginterpretasikan hasil polaritas dan subjektivitas dari data teks.

B. Deskripsi Materi
Analisis sentimen adalah proses mengidentifikasi dan mengukur opini atau emosi yang
terkandung dalam teks. Tujuannya untuk mengetahui apakah teks tersebut bersentimen
positif, negatif, atau netral. Analisis ini banyak digunakan dalam evaluasi produk, opini
publik, serta monitoring media sosial.
Pendekatan analisis sentimen terdiri atas dua metode utama:
1. Pendekatan Berbasis Leksikon – menggunakan daftar kata yang telah diberi skor
sentimen (misalnya VADER, TextBlob, SentiWordNet).
2. Pendekatan Berbasis Machine Learning – menggunakan model pembelajaran
terlatih untuk mengenali pola sentimen berdasarkan fitur teks.
Pada pertemuan ini, mahasiswa akan melakukan analisis sentimen dasar dengan pendekatan
leksikon menggunakan pustaka TextBlob dan VADER.

C. Kegiatan Pembelajaran
Langkah 1 – Pemahaman Konsep Analisis Sentimen (Diskusi Kelas)
1. Dosen menjelaskan konsep dasar sentimen (positif, negatif, netral) dan hubungannya
dengan opini publik.
2. Mahasiswa memberikan contoh kalimat yang mencerminkan sentimen berbeda.
3. Dosen memperkenalkan perbedaan antara metode leksikon dan pembelajaran mesin.
4. Mahasiswa berdiskusi tentang bagaimana sentimen publik dapat memengaruhi
keputusan bisnis atau kebijakan.

21

Langkah 2 – Persiapan Lingkungan dan Dataset
1. Gunakan dataset hasil pembersihan dari pertemuan sebelumnya (misalnya kolom
clean_text).
2. Impor pustaka:
import pandas as pd
from textblob import TextBlob
from nltk.sentiment.vader import SentimentIntensityAnalyzer
import nltk
nltk.download('vader_lexicon')
3. Baca data:
df = pd.read_csv('data_bersih.csv')
df.head()
4. Pastikan kolom teks sudah bersih dari karakter asing.
Langkah 3 – Analisis Sentimen dengan TextBlob
1. Hitung polaritas dan subjektivitas:
def get_textblob_sentiment(text):
blob = TextBlob(str(text))
return blob.sentiment.polarity, blob.sentiment.subjectivity

df['polarity'], df['subjectivity'] =
zip(*df['clean_text'].map(get_textblob_sentiment))
df[['clean_text', 'polarity', 'subjectivity']].head()
2. Tentukan label sentimen:
def label_sentiment(p):
if p > 0:
return 'positif'
elif p < 0:
return 'negatif'
else:
return 'netral'

df['sentiment_tb'] = df['polarity'].apply(label_sentiment)
df['sentiment_tb'].value_counts()

Langkah 4 – Analisis Sentimen dengan VADER
1. Gunakan pendekatan VADER:
sia = SentimentIntensityAnalyzer()
df['vader_score'] = df['clean_text'].apply(lambda x:
sia.polarity_scores(str(x))['compound'])

22


2. Klasifikasikan hasil:
def label_vader(score):
if score >= 0.05:
return 'positif'
elif score <= -0.05:
return 'negatif'
else:
return 'netral'

df['sentiment_vader'] = df['vader_score'].apply(label_vader)
df['sentiment_vader'].value_counts()

3. Bandingkan hasil TextBlob dan VADER:
comparison = pd.crosstab(df['sentiment_tb'], df['sentiment_vader'])
print(comparison)

Langkah 5 – Visualisasi Distribusi Sentimen
1. Visualisasi hasil analisis:
import matplotlib.pyplot as plt
df['sentiment_vader'].value_counts().plot(kind='bar',
color=['green', 'red', 'gray'])
plt.title('Distribusi Sentimen Berdasarkan VADER')
plt.xlabel('Sentimen')
plt.ylabel('Jumlah Data')
plt.show()
2. Hitung proporsi sentimen:
print(df['sentiment_vader'].value_counts(normalize=True) * 100)

Langkah 6 – Interpretasi dan Diskusi
1. Mahasiswa menuliskan hasil analisis dengan menjawab pertanyaan berikut:
o Sentimen apa yang paling dominan dalam dataset?
o Apakah hasil TextBlob dan VADER menunjukkan pola serupa?
o Apakah ada kalimat ambigu yang sulit diklasifikasikan?

D. Diskusi dan Refleksi
1. Mengapa hasil antara TextBlob dan VADER bisa berbeda?
2. Kapan metode leksikon lebih tepat digunakan dibanding machine learning?
3. Bagaimana kualitas teks memengaruhi akurasi hasil analisis sentimen?

23

E. Penugasan Individu
Judul Tugas: Analisis Sentimen Dasar dengan TextBlob dan VADER
Instruksi:
1. Gunakan dataset teks hasil pembersihan dari pertemuan sebelumnya.
2. Lakukan langkah-langkah berikut:
o Hitung polaritas dan subjektivitas menggunakan TextBlob.
o Hitung skor sentimen menggunakan VADER.
o Bandingkan hasil kedua metode dalam bentuk tabel.
o Visualisasikan distribusi sentimen (positif, negatif, netral).
o Tulis interpretasi hasil dalam bentuk markdown (maksimal 200 kata).
3. Simpan file dengan nama:
LKM5_Nama_NIM.ipynb
4. Kumpulkan sesuai instruksi dosen.
Kriteria Penilaian:
Aspek Bobot
Implementasi analisis sentimen dengan TextBlob 25%
Implementasi analisis sentimen dengan VADER 25%
Perbandingan hasil dan interpretasi analisis 30%
Visualisasi hasil sentimen 10%
Kerapian kode dan dokumentasi 10%

24

Pertemuan 6: Analisis Sentimen Berbasis Machine Learning
Mata Kuliah: Big Data, Analisis Sentimen, dan Prediksi Tren
Durasi: 1 Pertemuan (2–3 jam)

A. Tujuan Pembelajaran
1. Mahasiswa memahami konsep analisis sentimen berbasis pembelajaran mesin.
2. Mahasiswa mengenali tahapan dalam membangun model klasifikasi teks.
3. Mahasiswa mampu menerapkan model machine learning untuk menganalisis
sentimen teks.
4. Mahasiswa dapat mengevaluasi kinerja model menggunakan metrik akurasi, presisi,
dan recall.

B. Deskripsi Materi
Analisis sentimen berbasis machine learning menggunakan algoritma pembelajaran untuk
mengenali pola dalam teks yang mencerminkan emosi atau opini. Model dilatih
menggunakan data berlabel (positif, negatif, netral) untuk memprediksi sentimen pada data
baru.
Tahapan umum analisis sentimen berbasis machine learning:
1. Persiapan Data: Memuat, membersihkan, dan memisahkan data berlabel.
2. Ekstraksi Fitur: Mengubah teks menjadi representasi numerik menggunakan metode
seperti Bag of Words atau TF-IDF.
3. Pelatihan Model: Menggunakan algoritma seperti Naive Bayes, Logistic Regression,
atau SVM.
4. Evaluasi Model: Mengukur performa model dengan data uji menggunakan metrik
seperti accuracy, precision, recall, dan F1-score.

C. Kegiatan Pembelajaran
Langkah 1 – Pemahaman Konsep Analisis Sentimen ML
1. Dosen menjelaskan perbedaan antara pendekatan leksikon dan pembelajaran mesin.
2. Mahasiswa mendiskusikan keuntungan dan keterbatasan model berbasis machine
learning.
3. Dosen memperkenalkan dataset berlabel yang akan digunakan untuk pelatihan model.

25

Langkah 2 – Persiapan Dataset dan Lingkungan
1. Unduh atau gunakan dataset publik, misalnya dataset ulasan film dari IMDB atau
dataset ulasan produk (CSV dengan kolom text dan label).
2. Impor pustaka yang diperlukan:
import pandas as pd
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
3. Baca dataset:
df = pd.read_csv('sentiment_dataset.csv')
df.head()

4. Pastikan kolom teks (text) dan label (label) tersedia.

Langkah 3 – Pembagian Data dan Ekstraksi Fitur
1. Pisahkan data menjadi train dan test:
X_train, X_test, y_train, y_test = train_test_split(df['text'],
df['label'], test_size=0.2, random_state=42)

2. Konversi teks menjadi representasi numerik menggunakan TF-IDF:
vectorizer = TfidfVectorizer(stop_words='english',
max_features=5000)
X_train_tfidf = vectorizer.fit_transform(X_train)
X_test_tfidf = vectorizer.transform(X_test)

3. Tampilkan ukuran hasil transformasi:
print(X_train_tfidf.shape, X_test_tfidf.shape)


Langkah 4 – Pelatihan Model Machine Learning
1. Gunakan Naive Bayes Classifier:
model = MultinomialNB()
model.fit(X_train_tfidf, y_train)

26

2. Prediksi data uji:
y_pred = model.predict(X_test_tfidf)
3. Evaluasi kinerja model:
print("Akurasi:", accuracy_score(y_test, y_pred))
print("\nLaporan Klasifikasi:\n", classification_report(y_test,
y_pred))
4. Visualisasi confusion matrix:
import matplotlib.pyplot as plt
import seaborn as sns

cm = confusion_matrix(y_test, y_pred)
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues')
plt.xlabel('Prediksi')
plt.ylabel('Aktual')
plt.title('Confusion Matrix Model Naive Bayes')
plt.show()

Langkah 5 – Eksperimen dan Perbandingan Model
1. Coba algoritma lain seperti Logistic Regression:
from sklearn.linear_model import LogisticRegression

log_model = LogisticRegression(max_iter=1000)
log_model.fit(X_train_tfidf, y_train)
y_pred_log = log_model.predict(X_test_tfidf)

print("Akurasi Logistic Regression:", accuracy_score(y_test,
y_pred_log))
2. Bandingkan hasil dengan model Naive Bayes.
3. Catat kelebihan dan kekurangan masing-masing model berdasarkan hasil pengujian.

Langkah 6 – Interpretasi dan Diskusi
1. Diskusikan hasil berikut:
o Model mana yang memberikan akurasi lebih baik?
o Apa pengaruh pemilihan fitur terhadap performa model?
o Apakah data yang tidak seimbang memengaruhi hasil prediksi?
2. Dosen menegaskan pentingnya validasi dan evaluasi model secara objektif.

D. Diskusi dan Refleksi
1. Mengapa TF-IDF lebih efektif daripada Bag of Words dalam analisis teks?

27

2. Apakah model yang lebih kompleks selalu memberikan hasil yang lebih baik?
3. Bagaimana cara mengatasi ketidakseimbangan kelas dalam data sentimen?

E. Penugasan Individu
Judul Tugas: Analisis Sentimen Berbasis Machine Learning
Instruksi:
1. Gunakan dataset teks berlabel (misalnya ulasan produk, tweet, atau film).
2. Lakukan tahapan berikut:
o Pisahkan dataset menjadi data latih (80%) dan data uji (20%).
o Transformasikan teks menggunakan TF-IDF Vectorizer.
o Latih model Naive Bayes dan Logistic Regression.
o Bandingkan hasil kedua model dengan metrik evaluasi (akurasi, presisi, recall,
F1-score).
o Tampilkan confusion matrix dan analisis perbedaan hasil.
3. Simpan file dengan nama:
LKM6_Nama_NIM.ipynb
4. Kumpulkan sesuai instruksi dosen.
Kriteria Penilaian:
Aspek Bobot
Implementasi TF-IDF dan pemrosesan data 20%
Pelatihan model Naive Bayes 20%
Pelatihan model Logistic Regression 20%
Evaluasi dan perbandingan hasil model 25%
Visualisasi hasil dan kerapian dokumentasi 15%

28

Pertemuan 7: Evaluasi Model dan Optimasi Analisis Sentimen
Mata Kuliah: Big Data, Analisis Sentimen, dan Prediksi Tren
Durasi: 1 Pertemuan (2–3 jam)

A. Tujuan Pembelajaran
1. Mahasiswa memahami konsep evaluasi model dalam analisis sentimen berbasis
machine learning.
2. Mahasiswa mengenali berbagai metrik evaluasi untuk menilai performa model
klasifikasi.
3. Mahasiswa mampu menerapkan teknik cross-validation dan hyperparameter tuning.
4. Mahasiswa dapat membandingkan hasil optimasi model untuk meningkatkan akurasi
analisis sentimen.

B. Deskripsi Materi
Evaluasi model merupakan tahap penting dalam memastikan model analisis sentimen bekerja
secara optimal dan tidak mengalami overfitting atau underfitting. Metrik yang umum
digunakan meliputi:
 Accuracy: proporsi prediksi benar dari keseluruhan data.
 Precision: sejauh mana prediksi positif benar-benar positif.
 Recall: sejauh mana model berhasil menangkap seluruh data positif.
 F1-score: rata-rata harmonis antara precision dan recall.
Optimasi model dilakukan dengan menyesuaikan parameter dan teknik pembelajaran agar
hasil prediksi semakin akurat. Dua teknik utama yang digunakan adalah cross-validation
untuk menguji kestabilan model dan Grid Search untuk menemukan kombinasi parameter
terbaik.

C. Kegiatan Pembelajaran
Langkah 1 – Pemahaman Konsep Evaluasi Model
1. Dosen menjelaskan peran metrik evaluasi dan pentingnya memilih metrik yang sesuai
dengan konteks data.
2. Mahasiswa menganalisis contoh kasus di mana akurasi tinggi belum tentu
menunjukkan performa model yang baik.
3. Dosen memperkenalkan teknik validasi silang (cross-validation) dan optimasi
parameter.

29

Langkah 2 – Persiapan Dataset dan Model Awal
1. Gunakan dataset dari pertemuan sebelumnya (sentiment_dataset.csv) yang
memiliki kolom text dan label.
2. Impor pustaka:
import pandas as pd
from sklearn.model_selection import train_test_split,
cross_val_score, GridSearchCV
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report,
confusion_matrix, accuracy_score
import matplotlib.pyplot as plt
import seaborn as sns
3. Baca data dan pisahkan:
df = pd.read_csv('sentiment_dataset.csv')
X_train, X_test, y_train, y_test = train_test_split(df['text'],
df['label'], test_size=0.2, random_state=42)

Langkah 3 – Ekstraksi Fitur
1. Lakukan transformasi teks menggunakan TF-IDF:
vectorizer = TfidfVectorizer(stop_words='english',
max_features=5000)
X_train_tfidf = vectorizer.fit_transform(X_train)
X_test_tfidf = vectorizer.transform(X_test)


Langkah 4 – Evaluasi Awal Model
1. Latih model Naive Bayes dan hitung akurasi:
nb_model = MultinomialNB()
nb_model.fit(X_train_tfidf, y_train)
y_pred_nb = nb_model.predict(X_test_tfidf)

print("Akurasi Naive Bayes:", accuracy_score(y_test, y_pred_nb))
print("\nLaporan Klasifikasi:\n", classification_report(y_test,
y_pred_nb))
2. Tampilkan confusion matrix:
cm = confusion_matrix(y_test, y_pred_nb)
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix – Naive Bayes')
plt.xlabel('Prediksi')
plt.ylabel('Aktual')
plt.show()

30


Langkah 5 – Cross-Validation
1. Gunakan cross-validation untuk menguji kestabilan model:
scores = cross_val_score(nb_model, X_train_tfidf, y_train, cv=5,
scoring='accuracy')
print("Akurasi per fold:", scores)
print("Rata-rata akurasi:", scores.mean())
2. Catat variasi hasil antar fold untuk melihat kestabilan performa model.

Langkah 6 – Optimasi Parameter (Grid Search)
1. Terapkan optimasi menggunakan Logistic Regression:
log_model = LogisticRegression(max_iter=1000)
params = {'C': [0.1, 1, 10], 'solver': ['liblinear', 'lbfgs']}
grid = GridSearchCV(log_model, param_grid=params, cv=5,
scoring='accuracy')
grid.fit(X_train_tfidf, y_train)

print("Parameter terbaik:", grid.best_params_)
print("Akurasi terbaik:", grid.best_score_)
2. Uji model terbaik:
best_model = grid.best_estimator_
y_pred_best = best_model.predict(X_test_tfidf)
print("\nLaporan Klasifikasi Model Terbaik:\n",
classification_report(y_test, y_pred_best))

Langkah 7 – Analisis Hasil Optimasi
1. Bandingkan hasil sebelum dan sesudah optimasi:
o Akurasi model awal vs hasil Grid Search.
o Nilai precision dan recall pada setiap kelas.
2. Diskusikan kemungkinan penyebab perubahan performa.

D. Diskusi dan Refleksi
1. Apakah cross-validation selalu meningkatkan keandalan model?
2. Mengapa pemilihan parameter yang tepat dapat mengubah performa model secara
signifikan?
3. Bagaimana keseimbangan antara kompleksitas model dan waktu komputasi dapat
dipertahankan?

31


E. Penugasan Individu
Judul Tugas: Evaluasi dan Optimasi Model Analisis Sentimen
Instruksi:
1. Gunakan dataset teks berlabel (misalnya ulasan produk, film, atau tweet).
2. Lakukan langkah-langkah berikut:
o Bangun model Naive Bayes dan Logistic Regression.
o Evaluasi keduanya dengan accuracy, precision, recall, dan F1-score.
o Terapkan cross-validation (k=5) untuk menguji kestabilan model.
o Lakukan Grid Search untuk mengoptimalkan parameter pada Logistic
Regression.
o Bandingkan performa model sebelum dan sesudah optimasi.
3. Buat visualisasi confusion matrix dan grafik akurasi antar model.
4. Tulis interpretasi hasil evaluasi dalam bentuk markdown (maks. 300 kata).
5. Simpan file dengan nama:
LKM7_Nama_NIM.ipynb
6. Kumpulkan sesuai instruksi dosen.
Kriteria Penilaian:
Aspek Bobot
Implementasi evaluasi model dasar 20%
Cross-validation dan interpretasi hasil 20%
Optimasi parameter dengan Grid Search 25%
Analisis perbandingan performa model 20%
Visualisasi dan kerapian dokumentasi 15%

32

Pertemuan 8: Analisis Tren Sentimen dan Visualisasi Dinamis
Mata Kuliah: Big Data, Analisis Sentimen, dan Prediksi Tren
Durasi: 1 Pertemuan (2–3 jam)

A. Tujuan Pembelajaran
1. Mahasiswa memahami konsep analisis tren sentimen dari waktu ke waktu.
2. Mahasiswa mampu mengelompokkan data sentimen berdasarkan periode waktu
tertentu.
3. Mahasiswa dapat menampilkan hasil analisis tren dalam bentuk visualisasi dinamis
menggunakan Python.
4. Mahasiswa mampu menginterpretasikan perubahan tren opini publik berdasarkan
hasil visualisasi.

B. Deskripsi Materi
Analisis tren sentimen berfokus pada perubahan pola opini atau emosi dari waktu ke waktu.
Proses ini penting dalam memahami dinamika publik terhadap produk, peristiwa, atau
kebijakan tertentu.
Langkah-langkah umum analisis tren sentimen:
1. Klasifikasi Sentimen: Menentukan label sentimen (positif, negatif, netral).
2. Agregasi Waktu: Mengelompokkan data berdasarkan tanggal, minggu, atau bulan.
3. Analisis Perubahan: Mengamati pola kenaikan atau penurunan proporsi sentimen.
4. Visualisasi Dinamis: Menggunakan grafik interaktif atau animasi untuk
menggambarkan perubahan tren secara visual.
Pada pertemuan ini, mahasiswa akan mempraktikkan analisis tren sentimen menggunakan
Python dengan bantuan pustaka Pandas, Matplotlib, dan Plotly Express.

C. Kegiatan Pembelajaran
Langkah 1 – Pemahaman Konsep Tren Sentimen
1. Dosen menjelaskan pentingnya analisis tren dalam memahami perubahan opini
publik.
2. Mahasiswa mendiskusikan contoh kasus seperti tren sentimen terhadap produk baru
atau isu sosial di media sosial.
3. Dosen mencontohkan bagaimana tren dapat digunakan untuk pengambilan keputusan
strategis.

33

Langkah 2 – Persiapan Dataset dan Lingkungan
1. Gunakan dataset hasil analisis sentimen dari pertemuan sebelumnya yang memiliki
kolom:
o date (format YYYY-MM-DD)
o text (teks asli)
o sentiment (positif, negatif, netral)
2. Impor pustaka:
import pandas as pd
import matplotlib.pyplot as plt
import plotly.express as px
from datetime import datetime
3. Baca dataset:
df = pd.read_csv('sentiment_with_date.csv')
df['date'] = pd.to_datetime(df['date'])
df.head()


Langkah 3 – Agregasi Data Berdasarkan Waktu
1. Hitung jumlah masing-masing sentimen per minggu:
df['week'] = df['date'].dt.to_period('W').apply(lambda r:
r.start_time)
sentiment_trend = df.groupby(['week',
'sentiment']).size().reset_index(name='count')
sentiment_trend.head()

2. Pivot agar mudah divisualisasikan:
trend_pivot = sentiment_trend.pivot(index='week',
columns='sentiment', values='count').fillna(0)
trend_pivot.head()

Langkah 4 – Visualisasi Tren Sentimen (Statik)
1. Visualisasi menggunakan Matplotlib:
plt.figure(figsize=(10,6))
plt.plot(trend_pivot.index, trend_pivot.get('positif', 0),
label='Positif', color='green')
plt.plot(trend_pivot.index, trend_pivot.get('negatif', 0),
label='Negatif', color='red')
plt.plot(trend_pivot.index, trend_pivot.get('netral', 0),
label='Netral', color='gray')
plt.title('Tren Sentimen dari Waktu ke Waktu')
plt.xlabel('Tanggal')
plt.ylabel('Jumlah Sentimen')
plt.legend()

34

plt.grid(True)
plt.show()
2. Amati pola perubahan dan fluktuasi sentimen.

Langkah 5 – Visualisasi Dinamis dengan Plotly
1. Buat grafik interaktif:
fig = px.line(sentiment_trend,
x='week',
y='count',
color='sentiment',
title='Tren Sentimen Interaktif per Minggu',
labels={'count': 'Jumlah Sentimen', 'week':
'Minggu'})
fig.show()
2. Tambahkan animasi jika dataset mencakup jangka waktu panjang:
fig = px.bar(sentiment_trend,
x='sentiment',
y='count',
animation_frame='week',
color='sentiment',
range_y=[0, sentiment_trend['count'].max()+10],
title='Perubahan Sentimen dari Waktu ke Waktu')
fig.show()


Langkah 6 – Interpretasi Hasil
1. Amati hasil visualisasi dan tuliskan pengamatan:
o Sentimen mana yang paling dominan di awal dan akhir periode?
o Adakah pergeseran signifikan yang menunjukkan perubahan opini publik?
o Apakah terdapat periode lonjakan opini tertentu yang dapat dikaitkan dengan
peristiwa spesifik?
2. Dosen memandu mahasiswa dalam mengaitkan hasil analisis dengan konteks dunia
nyata.

D. Diskusi dan Refleksi
1. Bagaimana pola sentimen dapat digunakan untuk memprediksi reaksi publik di masa
depan?
2. Mengapa visualisasi tren penting bagi pengambilan keputusan bisnis dan kebijakan
publik?
3. Apakah jumlah data yang terlalu sedikit dapat menyesatkan dalam interpretasi tren?

35

E. Penugasan Individu
Judul Tugas: Analisis dan Visualisasi Tren Sentimen
Instruksi:
1. Gunakan dataset sentimen dengan kolom date, text, dan sentiment.
2. Lakukan langkah-langkah berikut:
o Kelompokkan data berdasarkan waktu (minggu atau bulan).
o Hitung proporsi masing-masing sentimen.
o Visualisasikan tren sentimen dalam bentuk grafik garis menggunakan
Matplotlib dan Plotly.
o Buat animasi interaktif tren perubahan sentimen menggunakan Plotly
Express.
o Tuliskan analisis interpretatif berdasarkan hasil visualisasi.
3. Simpan file dengan nama:
LKM8_Nama_NIM.ipynb
4. Kumpulkan sesuai instruksi dosen.
Kriteria Penilaian:
Aspek Bobot
Pengolahan dan agregasi data waktu 20%
Implementasi visualisasi statik (Matplotlib) 20%
Implementasi visualisasi dinamis (Plotly) 25%
Analisis dan interpretasi tren 25%
Kerapian kode dan dokumentasi 10%

36

Pertemuan 9: Pengenalan Prediksi Tren Sentimen Menggunakan
Model Time Series
Mata Kuliah: Big Data, Analisis Sentimen, dan Prediksi Tren
Durasi: 1 Pertemuan (2–3 jam)

A. Tujuan Pembelajaran
1. Mahasiswa memahami konsep dasar time series analysis dalam konteks prediksi tren
sentimen.
2. Mahasiswa mampu menyiapkan data sentimen untuk analisis deret waktu.
3. Mahasiswa dapat menerapkan model sederhana seperti Moving Average dan ARIMA
untuk prediksi tren sentimen.
4. Mahasiswa mampu menampilkan hasil prediksi dalam bentuk visual yang informatif.

B. Deskripsi Materi
Prediksi tren sentimen menggunakan time series bertujuan untuk memperkirakan arah
perubahan opini publik di masa depan. Model deret waktu digunakan untuk menangkap pola
historis sentimen, baik berupa kenaikan, penurunan, maupun fluktuasi periodik.
Tahapan utama dalam prediksi tren sentimen:
1. Persiapan Data: Mengagregasi jumlah sentimen per periode (hari, minggu, atau
bulan).
2. Visualisasi Awal: Mengamati pola tren historis untuk mendeteksi musiman atau
lonjakan tertentu.
3. Pemodelan: Menggunakan model statistik seperti Moving Average atau ARIMA.
4. Prediksi dan Evaluasi: Memprediksi tren mendatang dan membandingkannya
dengan data aktual.

C. Kegiatan Pembelajaran
Langkah 1 – Pemahaman Dasar Time Series
1. Dosen menjelaskan konsep dasar deret waktu (time series), termasuk istilah trend,
seasonality, dan residual.
2. Mahasiswa mengamati contoh grafik tren sentimen dari dataset sebelumnya untuk
memahami bentuk pola historis.
3. Dosen mencontohkan bagaimana model sederhana dapat digunakan untuk
memperkirakan nilai masa depan.

37

Langkah 2 – Persiapan Dataset
Gunakan dataset hasil agregasi sentimen mingguan atau bulanan dari pertemuan sebelumnya.
Contoh data:
week sentiment count
2024-01-01 positif 124
2024-01-01 negatif 57
2024-01-08 positif 136
2024-01-08 negatif 49
Langkah Persiapan:
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.arima.model import ARIMA
from datetime import datetime

# Membaca dataset tren sentimen
df = pd.read_csv('sentiment_trend.csv')
df['week'] = pd.to_datetime(df['week'])
df = df[df['sentiment'] == 'positif'] # fokus pada sentimen positif
df = df[['week', 'count']].set_index('week')
df.head()

Langkah 3 – Visualisasi Data Deret Waktu
plt.figure(figsize=(10,6))
plt.plot(df.index, df['count'], label='Jumlah Sentimen Positif',
color='green')
plt.title('Tren Sentimen Positif dari Waktu ke Waktu')
plt.xlabel('Tanggal')
plt.ylabel('Jumlah')
plt.legend()
plt.grid(True)
plt.show()
Mahasiswa mengamati adanya pola kenaikan atau penurunan jumlah sentimen dari waktu ke
waktu.

Langkah 4 – Prediksi Sederhana dengan Moving Average
df['moving_avg'] = df['count'].rolling(window=3).mean()

plt.figure(figsize=(10,6))
plt.plot(df.index, df['count'], label='Data Aktual', color='gray')
plt.plot(df.index, df['moving_avg'], label='Moving Average (3 Minggu)',
color='blue')
plt.title('Prediksi Tren Sentimen dengan Moving Average')

38

plt.xlabel('Tanggal')
plt.ylabel('Jumlah')
plt.legend()
plt.show()
Mahasiswa mempelajari bagaimana rata-rata bergerak membantu menghaluskan fluktuasi dan
menyoroti tren utama.

Langkah 5 – Prediksi dengan Model ARIMA
# Inisialisasi dan pelatihan model
model = ARIMA(df['count'], order=(1,1,1))
model_fit = model.fit()

# Prediksi 4 minggu ke depan
forecast = model_fit.forecast(steps=4)
forecast
Visualisasi hasil prediksi:
plt.figure(figsize=(10,6))
plt.plot(df.index, df['count'], label='Data Aktual', color='gray')
plt.plot(pd.date_range(df.index[-1], periods=5, freq='W')[1:], forecast,
label='Prediksi ARIMA', color='red', marker='o')
plt.title('Prediksi Tren Sentimen Positif Menggunakan ARIMA')
plt.xlabel('Tanggal')
plt.ylabel('Jumlah Prediksi')
plt.legend()
plt.show()


Langkah 6 – Interpretasi Hasil
1. Bandingkan hasil prediksi dengan tren aktual pada periode terakhir.
2. Diskusikan pola yang muncul:
o Apakah prediksi menunjukkan tren naik atau turun?
o Seberapa stabil pola sentimen dalam jangka waktu tertentu?
o Bagaimana hasil prediksi dapat dimanfaatkan dalam konteks bisnis atau opini
publik?

D. Diskusi dan Refleksi
1. Apa keuntungan menggunakan model deret waktu dalam analisis sentimen?
2. Bagaimana menentukan parameter p, d, q yang optimal dalam model ARIMA?
3. Bagaimana dampak data noise terhadap keakuratan prediksi tren sentimen?

39

E. Penugasan Individu
Judul Tugas: Prediksi Tren Sentimen Menggunakan Model Time Series
Instruksi:
1. Gunakan dataset tren sentimen mingguan yang telah dibuat pada pertemuan
sebelumnya.
2. Lakukan analisis dan prediksi tren dengan langkah berikut:
o Visualisasikan pola historis sentimen.
o Terapkan model Moving Average untuk memperkirakan tren jangka pendek.
o Terapkan model ARIMA untuk prediksi tren jangka menengah.
o Tampilkan hasil prediksi dalam bentuk grafik.
o Tulis interpretasi hasil prediksi dalam konteks perubahan opini publik.
3. Simpan file tugas dengan nama:
LKM9_Nama_NIM.ipynb
4. Kumpulkan sesuai ketentuan dosen pengampu.
Kriteria Penilaian:
Aspek Bobot
Persiapan dan pembersihan data 15%
Implementasi Moving Average 20%
Implementasi ARIMA dan hasil prediksi 25%
Visualisasi hasil dan kejelasan grafik 20%
Analisis interpretatif dan penjelasan hasil 20%

40

Pertemuan 10: Prediksi Tren Sentimen Menggunakan Model Machine
Learning (LSTM atau Random Forest)
Mata Kuliah: Big Data, Analisis Sentimen, dan Prediksi Tren
Durasi: 1 Pertemuan (2–3 jam)

A. Tujuan Pembelajaran
1. Mahasiswa memahami konsep prediksi tren sentimen berbasis machine learning.
2. Mahasiswa mampu menyiapkan data time series sentimen untuk digunakan pada
model prediksi berbasis pembelajaran mesin.
3. Mahasiswa dapat menerapkan model Random Forest Regressor dan LSTM (Long
Short-Term Memory) untuk memprediksi tren sentimen.
4. Mahasiswa dapat membandingkan hasil prediksi kedua model melalui visualisasi dan
metrik evaluasi.

B. Deskripsi Materi
Prediksi tren sentimen dengan machine learning merupakan tahap lanjutan setelah analisis
time series tradisional. Pendekatan ini memungkinkan model mengenali pola non-linear dan
interaksi kompleks antar fitur waktu.
Dua pendekatan utama digunakan:
1. Random Forest Regressor – model berbasis ensemble learning yang kuat terhadap
data non-linear dan outlier.
2. LSTM (Long Short-Term Memory) – model jaringan saraf yang dirancang khusus
untuk menangkap ketergantungan jangka panjang dalam data berurutan.
Penerapan kedua model ini membantu memprediksi perubahan opini publik dengan akurasi
yang lebih tinggi dibandingkan model statistik klasik.

C. Kegiatan Pembelajaran
Langkah 1 – Penjelasan Konsep
1. Dosen menjelaskan perbedaan pendekatan statistik (ARIMA) dengan machine
learning.
2. Mahasiswa memahami bahwa Random Forest beroperasi dengan membentuk
kumpulan pohon keputusan, sedangkan LSTM mempelajari pola waktu melalui
memori internal.
3. Diskusi dilakukan mengenai kelebihan dan kelemahan masing-masing metode.

41

Langkah 2 – Persiapan Dataset
Gunakan dataset agregasi sentimen mingguan yang telah digunakan pada pertemuan
sebelumnya.
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error, mean_squared_error
import matplotlib.pyplot as plt

# Membaca dataset
df = pd.read_csv('sentiment_trend.csv')
df['week'] = pd.to_datetime(df['week'])
df = df[df['sentiment'] == 'positif']
df = df[['week', 'count']].set_index('week')
df.head()


Langkah 3 – Pembuatan Fitur Lag untuk Prediksi
Model machine learning membutuhkan fitur input (X) dan target (y). Fitur lag dibuat untuk
merepresentasikan nilai historis.
# Membuat fitur lag
df['lag_1'] = df['count'].shift(1)
df['lag_2'] = df['count'].shift(2)
df['lag_3'] = df['count'].shift(3)
df = df.dropna()

X = df[['lag_1', 'lag_2', 'lag_3']]
y = df['count']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,
shuffle=False)


Langkah 4 – Prediksi Tren dengan Random Forest

from sklearn.ensemble import RandomForestRegressor

# Model Random Forest
rf = RandomForestRegressor(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)
y_pred_rf = rf.predict(X_test)

# Evaluasi
mae_rf = mean_absolute_error(y_test, y_pred_rf)
rmse_rf = np.sqrt(mean_squared_error(y_test, y_pred_rf))
print(f"MAE RF: {mae_rf:.2f}, RMSE RF: {rmse_rf:.2f}")

# Visualisasi hasil
plt.figure(figsize=(10,5))
plt.plot(y_test.values, label='Data Aktual', color='gray')
plt.plot(y_pred_rf, label='Prediksi Random Forest', color='green')
plt.title('Prediksi Tren Sentimen - Random Forest')

42

plt.xlabel('Periode')
plt.ylabel('Jumlah Sentimen Positif')
plt.legend()
plt.show()


Langkah 5 – Prediksi Tren dengan LSTM

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
from sklearn.preprocessing import MinMaxScaler

# Normalisasi data
scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)
y_scaled = scaler.fit_transform(y.values.reshape(-1,1))

# Membentuk data untuk LSTM
X_lstm = np.reshape(X_scaled, (X_scaled.shape[0], X_scaled.shape[1], 1))
X_train_lstm, X_test_lstm = X_lstm[:int(len(X_lstm)*0.8)],
X_lstm[int(len(X_lstm)*0.8):]
y_train_lstm, y_test_lstm = y_scaled[:int(len(y_scaled)*0.8)],
y_scaled[int(len(y_scaled)*0.8):]

# Model LSTM
model = Sequential()
model.add(LSTM(50, return_sequences=False,
input_shape=(X_train_lstm.shape[1], 1)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse')

# Pelatihan model
model.fit(X_train_lstm, y_train_lstm, epochs=50, batch_size=4, verbose=0)

# Prediksi
y_pred_lstm = model.predict(X_test_lstm)
y_pred_lstm = scaler.inverse_transform(y_pred_lstm)
y_test_inv = scaler.inverse_transform(y_test_lstm)

# Evaluasi
mae_lstm = mean_absolute_error(y_test_inv, y_pred_lstm)
rmse_lstm = np.sqrt(mean_squared_error(y_test_inv, y_pred_lstm))
print(f"MAE LSTM: {mae_lstm:.2f}, RMSE LSTM: {rmse_lstm:.2f}")

# Visualisasi hasil
plt.figure(figsize=(10,5))
plt.plot(y_test_inv, label='Data Aktual', color='gray')
plt.plot(y_pred_lstm, label='Prediksi LSTM', color='blue')
plt.title('Prediksi Tren Sentimen - LSTM')
plt.xlabel('Periode')
plt.ylabel('Jumlah Sentimen Positif')
plt.legend()
plt.show()


Langkah 6 – Perbandingan dan Diskusi
Mahasiswa membandingkan kinerja kedua model dan mendiskusikan hasilnya.

43

1. Model mana yang memberikan prediksi lebih stabil?
2. Bagaimana pengaruh jumlah data terhadap akurasi model?
3. Apakah tren prediksi sejalan dengan pola historis?

D. Diskusi dan Refleksi
1. Bagaimana perbedaan mendasar antara Random Forest dan LSTM dalam
memprediksi tren waktu?
2. Apa tantangan utama dalam melatih model LSTM pada dataset yang kecil?
3. Bagaimana model ini dapat diterapkan pada analisis opini publik dalam skala besar?

E. Penugasan Individu
Judul Tugas: Prediksi Tren Sentimen dengan Random Forest dan LSTM
Instruksi:
1. Gunakan dataset tren sentimen mingguan yang telah disiapkan.
2. Lakukan langkah-langkah berikut:
o Buat fitur lag minimal tiga periode sebelumnya.
o Lakukan prediksi tren menggunakan Random Forest.
o Lakukan prediksi tren menggunakan LSTM.
o Tampilkan hasil dalam bentuk grafik perbandingan.
o Bandingkan performa kedua model menggunakan MAE dan RMSE.
o Tuliskan interpretasi hasil dalam konteks perubahan opini publik.
3. Simpan file dengan nama:
LKM10_Nama_NIM.ipynb
4. Kumpulkan sesuai ketentuan dosen.
Kriteria Penilaian:
Aspek Bobot
Persiapan dataset dan fitur lag 15%
Implementasi Random Forest 20%
Implementasi LSTM 25%
Evaluasi model dan visualisasi hasil 20%
Interpretasi dan analisis hasil 20%

44

Pertemuan 11: Evaluasi dan Optimasi Model Prediksi Tren Sentimen
Mata Kuliah: Big Data, Analisis Sentimen, dan Prediksi Tren
Durasi: 1 Pertemuan (2–3 jam)

A. Tujuan Pembelajaran
1. Mahasiswa memahami prinsip evaluasi model prediksi tren sentimen menggunakan
metrik statistik dan visual.
2. Mahasiswa mampu melakukan pengujian performa model (Random Forest dan
LSTM) secara objektif.
3. Mahasiswa dapat menerapkan teknik optimasi seperti Grid Search, Hyperparameter
Tuning, atau Early Stopping untuk meningkatkan performa model.
4. Mahasiswa mampu menganalisis hasil optimasi dan menjelaskan dampaknya terhadap
akurasi prediksi tren.

B. Deskripsi Materi
Evaluasi dan optimasi model merupakan tahap penting dalam proses analisis prediksi tren
sentimen. Setelah model dilatih, diperlukan pengukuran performa dan penyesuaian parameter
agar hasil prediksi lebih akurat dan stabil.
Beberapa metrik evaluasi yang umum digunakan:
 MAE (Mean Absolute Error): Rata-rata kesalahan absolut prediksi.
 RMSE (Root Mean Squared Error): Ukuran deviasi kesalahan yang memperbesar
penalti pada kesalahan besar.
 R² (Coefficient of Determination): Menunjukkan seberapa baik model menjelaskan
variasi data.
Optimasi model dapat dilakukan dengan dua pendekatan:
1. Model Tree-based (Random Forest): menggunakan Grid Search untuk mencari
kombinasi parameter terbaik.
2. Model Neural (LSTM): menggunakan Early Stopping dan Dropout untuk mencegah
overfitting.

C. Kegiatan Pembelajaran
Langkah 1 – Diskusi Konsep Evaluasi dan Optimasi
1. Dosen menjelaskan peran metrik evaluasi dalam menentukan kinerja model prediksi.
2. Mahasiswa diminta mengidentifikasi model yang sudah dibuat sebelumnya (Random
Forest dan LSTM).
3. Dosen memberikan contoh visualisasi kesalahan model (residual plot, learning curve).

45


Langkah 2 – Persiapan Data dan Model
Gunakan dataset tren sentimen mingguan yang sama seperti pertemuan sebelumnya.
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error, mean_squared_error,
r2_score
from sklearn.ensemble import RandomForestRegressor

# Membaca dataset
df = pd.read_csv('sentiment_trend.csv')
df['week'] = pd.to_datetime(df['week'])
df = df[df['sentiment'] == 'positif']
df = df[['week', 'count']].set_index('week')

# Membuat fitur lag
df['lag_1'] = df['count'].shift(1)
df['lag_2'] = df['count'].shift(2)
df['lag_3'] = df['count'].shift(3)
df = df.dropna()

X = df[['lag_1', 'lag_2', 'lag_3']]
y = df['count']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,
shuffle=False)


Langkah 3 – Evaluasi Model Random Forest (Baseline)

rf = RandomForestRegressor(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)
y_pred_rf = rf.predict(X_test)

mae = mean_absolute_error(y_test, y_pred_rf)
rmse = np.sqrt(mean_squared_error(y_test, y_pred_rf))
r2 = r2_score(y_test, y_pred_rf)

print(f"MAE: {mae:.2f}")
print(f"RMSE: {rmse:.2f}")
print(f"R²: {r2:.3f}")

Visualisasi performa:
import matplotlib.pyplot as plt

plt.figure(figsize=(10,6))
plt.plot(y_test.values, label='Data Aktual', color='gray')
plt.plot(y_pred_rf, label='Prediksi RF', color='green')
plt.title('Perbandingan Data Aktual dan Prediksi (Random Forest)')
plt.xlabel('Periode')
plt.ylabel('Jumlah Sentimen Positif')

46

plt.legend()
plt.show()



Langkah 4 – Optimasi Model Random Forest dengan Grid Search

from sklearn.model_selection import GridSearchCV

param_grid = {
'n_estimators': [50, 100, 200],
'max_depth': [3, 5, 10, None],
'min_samples_split': [2, 5, 10]
}

grid_search = GridSearchCV(
estimator=RandomForestRegressor(random_state=42),
param_grid=param_grid,
scoring='neg_mean_absolute_error',
cv=3,
n_jobs=-1
)

grid_search.fit(X_train, y_train)
print("Parameter terbaik:", grid_search.best_params_)

best_rf = grid_search.best_estimator_
y_pred_best = best_rf.predict(X_test)

mae_best = mean_absolute_error(y_test, y_pred_best)
rmse_best = np.sqrt(mean_squared_error(y_test, y_pred_best))
print(f"MAE (Optimasi): {mae_best:.2f}, RMSE (Optimasi):
{rmse_best:.2f}")



Langkah 5 – Evaluasi dan Optimasi Model LSTM

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense, Dropout
from tensorflow.keras.callbacks import EarlyStopping
from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)
y_scaled = scaler.fit_transform(y.values.reshape(-1,1))

# Membentuk data untuk LSTM
X_lstm = np.reshape(X_scaled, (X_scaled.shape[0], X_scaled.shape[1], 1))
X_train_lstm, X_test_lstm = X_lstm[:int(len(X_lstm)*0.8)],
X_lstm[int(len(X_lstm)*0.8):]
y_train_lstm, y_test_lstm = y_scaled[:int(len(y_scaled)*0.8)],
y_scaled[int(len(y_scaled)*0.8):]

# Model LSTM dengan Dropout dan EarlyStopping
model = Sequential()

47

model.add(LSTM(64, return_sequences=False,
input_shape=(X_train_lstm.shape[1], 1)))
model.add(Dropout(0.2))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse')

early_stop = EarlyStopping(monitor='loss', patience=5,
restore_best_weights=True)

model.fit(X_train_lstm, y_train_lstm, epochs=100, batch_size=4,
verbose=0, callbacks=[early_stop])

# Prediksi
y_pred_lstm = model.predict(X_test_lstm)
y_pred_lstm = scaler.inverse_transform(y_pred_lstm)
y_test_inv = scaler.inverse_transform(y_test_lstm)

mae_lstm = mean_absolute_error(y_test_inv, y_pred_lstm)
rmse_lstm = np.sqrt(mean_squared_error(y_test_inv, y_pred_lstm))
print(f"MAE LSTM: {mae_lstm:.2f}, RMSE LSTM: {rmse_lstm:.2f}")

Visualisasi hasil optimasi LSTM:
plt.figure(figsize=(10,6))
plt.plot(y_test_inv, label='Data Aktual', color='gray')
plt.plot(y_pred_lstm, label='Prediksi LSTM (Optimasi)', color='blue')
plt.title('Perbandingan Data Aktual dan Prediksi LSTM Setelah Optimasi')
plt.xlabel('Periode')
plt.ylabel('Jumlah Sentimen Positif')
plt.legend()
plt.show()


Langkah 6 – Perbandingan Hasil dan Diskusi
Mahasiswa membandingkan hasil sebelum dan sesudah optimasi.
1. Model mana yang mengalami peningkatan paling signifikan setelah tuning?
2. Bagaimana pengaruh Dropout atau Grid Search terhadap kesalahan prediksi?
3. Apakah hasil prediksi menjadi lebih stabil dan realistis?

D. Diskusi dan Refleksi
1. Mengapa optimasi parameter dapat meningkatkan performa model?
2. Apa risiko overfitting jika model terlalu dioptimasi?
3. Bagaimana memilih metrik evaluasi yang sesuai dengan tujuan analisis?

48

E. Penugasan Individu
Judul Tugas: Evaluasi dan Optimasi Model Prediksi Tren Sentimen
Instruksi:
1. Gunakan model Random Forest dan LSTM dari pertemuan sebelumnya.
2. Lakukan hal-hal berikut:
o Hitung metrik evaluasi awal (MAE, RMSE, R²).
o Lakukan optimasi model dengan Grid Search (Random Forest) dan Early
Stopping (LSTM).
o Bandingkan hasil sebelum dan sesudah optimasi.
o Tampilkan hasil dalam bentuk grafik perbandingan dan tabel metrik.
o Berikan analisis singkat mengenai perubahan performa model.
3. Simpan file tugas dengan nama:
LKM11_Nama_NIM.ipynb
4. Kumpulkan sesuai ketentuan dosen.
Kriteria Penilaian:
Aspek Bobot
Implementasi evaluasi baseline model 20%
Penerapan optimasi Random Forest 20%
Penerapan optimasi LSTM 25%
Visualisasi hasil dan perbandingan metrik 20%
Analisis dan interpretasi hasil 15%

49

Pertemuan 12: Integrasi Analisis Sentimen dan Prediksi Tren dalam
Dashboard Interaktif
Mata Kuliah: Big Data, Analisis Sentimen, dan Prediksi Tren
Durasi: 1 Pertemuan (2–3 jam)

A. Tujuan Pembelajaran
1. Mahasiswa memahami konsep integrasi analisis sentimen dan prediksi tren ke dalam
visualisasi interaktif.
2. Mahasiswa mampu membangun dashboard sederhana untuk menampilkan hasil
analisis dan prediksi secara dinamis.
3. Mahasiswa dapat mengimplementasikan komponen visual menggunakan pustaka
seperti Plotly, Dash, atau Streamlit.
4. Mahasiswa mampu menginterpretasikan hasil analisis dalam bentuk antarmuka
interaktif yang informatif dan mudah digunakan.

B. Deskripsi Materi
Integrasi hasil analisis sentimen dan prediksi tren ke dalam dashboard interaktif
memungkinkan pengguna memahami data secara visual dan real-time. Dengan pendekatan
ini, pengguna dapat:
 Melihat distribusi sentimen dari waktu ke waktu.
 Memantau tren perubahan opini publik.
 Membandingkan hasil analisis antar model prediksi.
Beberapa pustaka yang umum digunakan:
 Plotly Dash – framework berbasis Python untuk membangun aplikasi dashboard
berbasis web.
 Streamlit – pustaka sederhana untuk membuat aplikasi data interaktif dengan cepat.
 Plotly Express – pustaka untuk visualisasi data interaktif yang mudah digunakan.

C. Kegiatan Pembelajaran
Langkah 1 – Pengenalan Konsep Dashboard Interaktif
1. Dosen menjelaskan pentingnya penyajian hasil analisis dalam bentuk visual interaktif.
2. Mahasiswa meninjau struktur umum dashboard yang menampilkan input, analisis,
dan output prediksi.
3. Dosen menunjukkan contoh dashboard sederhana berbasis Streamlit atau Dash.

50

Langkah 2 – Persiapan Lingkungan dan Data
Gunakan hasil analisis sentimen dan prediksi tren dari pertemuan sebelumnya.
Struktur dataset yang digunakan:
date sentiment count model predicted_trend
2024-01-01 positif 120 LSTM 118
2024-01-08 positif 140 LSTM 136
2024-01-15 negatif 45 RF 50

import pandas as pd
import plotly.express as px

# Membaca dataset
df = pd.read_csv('sentiment_prediction.csv')
df['date'] = pd.to_datetime(df['date'])
df.head()


Langkah 3 – Visualisasi Interaktif Dasar
Visualisasi distribusi sentimen:
fig = px.bar(df, x='date', y='count', color='sentiment',
title='Distribusi Sentimen dari Waktu ke Waktu',
labels={'count': 'Jumlah Sentimen', 'date': 'Tanggal'})
fig.show()
Visualisasi perbandingan prediksi tren:
fig2 = px.line(df, x='date', y=['count', 'predicted_trend'],
title='Perbandingan Tren Aktual dan Prediksi',
labels={'value': 'Jumlah Sentimen', 'date': 'Tanggal'})
fig2.show()


Langkah 4 – Membuat Dashboard Interaktif dengan Streamlit
Buat file baru dengan nama app.py.
import streamlit as st
import pandas as pd
import plotly.express as px

# Membaca dataset
df = pd.read_csv('sentiment_prediction.csv')
df['date'] = pd.to_datetime(df['date'])

# Judul dashboard

51

st.title("Dashboard Analisis Sentimen dan Prediksi Tren")

# Filter model
model_list = df['model'].unique().tolist()
selected_model = st.selectbox("Pilih Model Prediksi:", model_list)
filtered_df = df[df['model'] == selected_model]

# Visualisasi 1: Distribusi Sentimen
st.subheader("Distribusi Sentimen dari Waktu ke Waktu")
fig1 = px.bar(filtered_df, x='date', y='count', color='sentiment',
title=f"Distribusi Sentimen ({selected_model})",
labels={'count': 'Jumlah Sentimen', 'date': 'Tanggal'})
st.plotly_chart(fig1)

# Visualisasi 2: Prediksi Tren
st.subheader("Prediksi Tren Sentimen")
fig2 = px.line(filtered_df, x='date', y=['count', 'predicted_trend'],
title="Perbandingan Data Aktual dan Prediksi",
labels={'value': 'Jumlah Sentimen', 'date': 'Tanggal'})
st.plotly_chart(fig2)

# Statistik Ringkas
st.subheader("Statistik Deskriptif")
st.write(filtered_df[['count', 'predicted_trend']].describe())
Jalankan aplikasi:
streamlit run app.py
Dashboard akan muncul di browser lokal dengan visualisasi interaktif yang menampilkan
analisis dan prediksi tren berdasarkan model terpilih.

Langkah 5 – Menambahkan Interaktivitas Tambahan
Mahasiswa dapat menambahkan fitur seperti:
 Date range picker untuk memilih rentang waktu.
 Radio button untuk memilih jenis sentimen (positif, negatif, netral).
 Download button untuk menyimpan hasil analisis dalam format CSV.
Contoh penambahan pemilihan rentang tanggal:
start_date, end_date = st.date_input("Pilih rentang waktu:",
[df['date'].min(),
df['date'].max()])
mask = (df['date'] >= pd.to_datetime(start_date)) & (df['date'] <=
pd.to_datetime(end_date))
df_filtered = df.loc[mask]


D. Diskusi dan Refleksi
1. Mengapa visualisasi interaktif penting dalam komunikasi hasil analisis data?

52

2. Bagaimana dashboard dapat membantu pengambilan keputusan berbasis data?
3. Apa tantangan utama dalam integrasi analisis dan prediksi ke dalam satu sistem
visual?

E. Penugasan Individu
Judul Tugas: Pembuatan Dashboard Analisis Sentimen dan Prediksi Tren
Instruksi:
1. Gunakan dataset analisis sentimen dan prediksi tren yang telah dibuat pada pertemuan
sebelumnya.
2. Bangun dashboard interaktif menggunakan Streamlit atau Dash dengan fitur berikut:
o Visualisasi distribusi sentimen (positif, negatif, netral).
o Visualisasi tren prediksi berdasarkan model (Random Forest / LSTM).
o Filter berdasarkan tanggal dan model.
o Statistik deskriptif hasil analisis.
3. Simpan file dengan nama:
LKM12_Nama_NIM_app.py
4. Jalankan dashboard dan ambil screenshot tampilan utama untuk laporan.
5. Kumpulkan file .py, dataset .csv, dan screenshot hasil tampilan.
Kriteria Penilaian:
Aspek Bobot
Struktur dan fungsi dasar dashboard 25%
Implementasi visualisasi interaktif 25%
Integrasi hasil analisis dan prediksi tren 20%
Fitur interaktivitas tambahan 15%
Kerapian kode dan dokumentasi 15%

53

Pertemuan 13: Implementasi Dashboard Berbasis Cloud untuk
Pemantauan Tren Real-Time
Mata Kuliah: Big Data, Analisis Sentimen, dan Prediksi Tren
Durasi: 1 Pertemuan (2–3 jam)

A. Tujuan Pembelajaran
1. Mahasiswa memahami konsep deployment dashboard ke platform cloud untuk
pemantauan data real-time.
2. Mahasiswa mampu mengonfigurasi dan menjalankan aplikasi analisis dan prediksi
tren di cloud.
3. Mahasiswa dapat mengintegrasikan pembaruan data secara otomatis ke dalam
dashboard.
4. Mahasiswa memahami aspek keamanan dan efisiensi dalam implementasi dashboard
berbasis cloud.

B. Deskripsi Materi
Dashboard berbasis cloud memungkinkan analisis sentimen dan prediksi tren diakses secara
real-time dari berbagai perangkat. Penerapan ini umum digunakan oleh organisasi untuk
memantau opini publik, tren pasar, atau persepsi pelanggan secara langsung.
Topik utama dalam pertemuan ini:
 Pemilihan platform cloud (Streamlit Cloud, Render, Google Cloud, AWS, atau
Hugging Face Spaces).
 Pengaturan lingkungan virtual dan dependensi proyek.
 Otomatisasi pembaruan data (misalnya dengan API, cron job, atau koneksi database
cloud).
 Publikasi dan akses dashboard melalui tautan publik.

C. Kegiatan Pembelajaran
Langkah 1 – Review Konsep Dashboard
Mahasiswa meninjau dashboard yang dibuat pada pertemuan sebelumnya (analisis sentimen
dan prediksi tren). Dosen menjelaskan cara mengubahnya agar siap dipublikasikan ke
lingkungan cloud.

Langkah 2 – Persiapan Struktur Proyek
Struktur direktori minimal yang dibutuhkan:

54

project/

├── app.py
├── sentiment_prediction.csv
├── requirements.txt
└── README.md
File requirements.txt berisi pustaka yang diperlukan:
streamlit
plotly
pandas
numpy
File README.md berisi deskripsi singkat aplikasi:
# Dashboard Analisis Sentimen dan Prediksi Tren
Aplikasi ini menampilkan analisis sentimen dan prediksi tren berbasis data
real-time menggunakan Streamlit.

Langkah 3 – Persiapan Dashboard untuk Cloud
Tambahkan mekanisme pembaruan data agar dashboard selalu menampilkan tren terbaru.
Contoh kode pada app.py:
import streamlit as st
import pandas as pd
import plotly.express as px
import time

st.title("Dashboard Real-Time Analisis Sentimen dan Prediksi Tren")

@st.cache_data(ttl=60)
def load_data():
df = pd.read_csv('sentiment_prediction.csv')
df['date'] = pd.to_datetime(df['date'])
return df

# Simulasi pemantauan real-time
placeholder = st.empty()

for i in range(5): # Loop pembaruan data 5 kali
df = load_data()
fig = px.line(df, x='date', y='predicted_trend',
title='Prediksi Tren Sentimen (Real-Time)',
labels={'predicted_trend': 'Skor Prediksi', 'date':
'Tanggal'})
placeholder.plotly_chart(fig)
time.sleep(5) # pembaruan setiap 5 detik

Kode di atas membuat dashboard memperbarui visualisasi setiap beberapa detik
menggunakan data terbaru.

55

Langkah 4 – Deploy ke Cloud
1. Streamlit Cloud
o Masuk ke https://share.streamlit.io
o Hubungkan dengan akun GitHub.
o Unggah proyek ke repositori GitHub (nama bebas).
o Pilih repositori dan file utama (app.py) untuk dijalankan.
o Tunggu hingga deployment selesai dan dapatkan tautan publik.
2. Alternatif Platform:
o Render.com → Deploy aplikasi Python dengan pengaturan start command:
streamlit run app.py.
o Hugging Face Spaces → Gunakan mode “Streamlit” untuk menampilkan
antarmuka interaktif.

Langkah 5 – Integrasi Data Real-Time
Mahasiswa menambahkan fungsi pembaruan data otomatis dari API publik.
Contoh penggunaan API sederhana (contoh data berita atau tweet):
import requests

@st.cache_data(ttl=300)
def fetch_latest_data():
url = "https://api.sampleapis.com/futurama/episodes" # contoh API
response = requests.get(url)
if response.status_code == 200:
data = response.json()
df = pd.DataFrame(data)
return df
return pd.DataFrame()
Integrasikan data API ke dalam dashboard untuk menunjukkan dinamika real-time.

D. Diskusi dan Refleksi
1. Apa keuntungan utama dashboard cloud dibanding dashboard lokal?
2. Bagaimana strategi menjaga performa aplikasi ketika volume data sangat besar?
3. Faktor apa yang perlu diperhatikan dalam keamanan dan manajemen akses dashboard
publik?

E. Penugasan Individu
Judul Tugas: Deploy Dashboard Analisis Sentimen dan Prediksi Tren ke Cloud
Instruksi:

56

1. Gunakan dashboard interaktif hasil pertemuan sebelumnya.
2. Tambahkan fitur pembaruan data real-time (misalnya simulasi waktu atau integrasi
API).
3. Buat file requirements.txt dan README.md dengan isi yang sesuai.
4. Deploy ke salah satu platform berikut:
o Streamlit Cloud
o Render.com
o Hugging Face Spaces
o Google Cloud Run
5. Pastikan dashboard dapat diakses melalui tautan publik.
6. Kumpulkan:
o Tautan publik dashboard
o Tangkapan layar tampilan utama
o Tangkapan layar log deployment
o Salinan kode proyek (.zip)
Kriteria Penilaian:
Aspek Bobot
Keberhasilan deployment di cloud 25%
Fitur pembaruan data real-time 25%
Kualitas visualisasi dan interaktivitas 20%
Struktur proyek dan dokumentasi 15%
Estetika dan performa dashboard 15%

57

Pertemuan 14: Presentasi dan Evaluasi Proyek Akhir Analisis Sentimen
dan Prediksi Tren
Mata Kuliah: Big Data, Analisis Sentimen, dan Prediksi Tren
Durasi: 1 Pertemuan (2–3 jam)

A. Tujuan Pembelajaran
1. Mahasiswa mampu mempresentasikan hasil akhir proyek integrasi analisis sentimen
dan prediksi tren secara sistematis.
2. Mahasiswa dapat menjelaskan alur kerja analisis, pemrosesan data, model prediksi,
dan implementasi dashboard berbasis cloud.
3. Mahasiswa mampu mengevaluasi kelebihan, kekurangan, dan potensi pengembangan
lanjutan dari proyek yang telah dibuat.
4. Mahasiswa dapat menginterpretasikan hasil analisis sebagai dasar pengambilan
keputusan berbasis data.

B. Deskripsi Materi
Pertemuan ini merupakan puncak dari seluruh rangkaian kegiatan praktik. Mahasiswa
menampilkan hasil implementasi proyek analisis sentimen dan prediksi tren yang telah
dikembangkan selama 13 pertemuan sebelumnya.
Fokus utama sesi ini meliputi:
 Presentasi proyek secara individu atau kelompok.
 Evaluasi proses dan hasil implementasi sistem analisis sentimen serta prediksi tren.
 Diskusi keandalan model dan efektivitas visualisasi dashboard.
 Umpan balik dari dosen dan mahasiswa lain untuk peningkatan kualitas proyek.

C. Struktur Presentasi Proyek
Setiap kelompok/mahasiswa menyusun presentasi dengan alur berikut:
1. Latar Belakang dan Tujuan Proyek
o Permasalahan yang ingin diselesaikan melalui analisis sentimen.
o Tujuan dan manfaat yang diharapkan dari sistem yang dibuat.
2. Desain Sistem dan Alur Data
o Sumber dan format data yang digunakan.
o Proses pembersihan dan pra-pemrosesan data.
o Deskripsi model analisis sentimen dan prediksi tren yang diterapkan (Machine
Learning atau LSTM).
3. Implementasi Dashboard
o Teknologi yang digunakan (Streamlit, Dash, atau platform cloud lain).

58

o Fitur interaktif yang diimplementasikan.
o Mekanisme pembaruan data real-time.
4. Hasil dan Analisis
o Visualisasi tren dan distribusi sentimen.
o Perbandingan hasil aktual dan prediksi.
o Evaluasi performa model (akurasi, error rate, atau metrik lainnya).
5. Kesimpulan dan Rencana Pengembangan
o Capaian utama dari proyek.
o Ide pengembangan ke depan (penambahan fitur, integrasi API, atau
peningkatan model).

D. Kegiatan Pembelajaran
Langkah 1 – Persiapan Presentasi
1. Mahasiswa menyiapkan presentasi dalam format slide (PPT/PDF) dengan durasi 10–
15 menit per kelompok.
2. Setiap presentasi harus mencakup:
o Cuplikan kode utama.
o Tangkapan layar dashboard.
o Penjelasan visualisasi hasil analisis.
o Tautan publik dashboard berbasis cloud.

Langkah 2 – Pelaksanaan Presentasi
1. Presentasi dilakukan secara langsung atau daring.
2. Setiap kelompok menampilkan hasil implementasi proyek secara live melalui
dashboard yang telah dideploy.
3. Dosen dan mahasiswa lain memberikan umpan balik dan pertanyaan terkait hasil
analisis, akurasi model, serta aspek visualisasi.

Langkah 3 – Evaluasi dan Diskusi
Setelah semua kelompok melakukan presentasi, dilakukan sesi refleksi bersama untuk
mengevaluasi:
 Tantangan yang dihadapi selama pengembangan proyek.
 Strategi yang berhasil dalam optimasi model dan visualisasi.
 Pelajaran utama yang diperoleh dari integrasi analisis sentimen dan prediksi tren
berbasis Big Data.

59

E. Panduan Pembuatan Slide Presentasi
Struktur minimal slide presentasi proyek akhir:
1. Judul Proyek dan Anggota Kelompok
2. Latar Belakang dan Tujuan
3. Dataset dan Metodologi Analisis
4. Desain Arsitektur Sistem dan Model
5. Tampilan Dashboard dan Penjelasan Fitur
6. Hasil Analisis dan Evaluasi Model
7. Kesimpulan dan Rencana Pengembangan Lanjutan
Format slide:
 Gunakan font mudah dibaca (Arial, Calibri, atau Roboto).
 Hindari terlalu banyak teks; gunakan diagram dan grafik.
 Gunakan tangkapan layar dashboard dan hasil visualisasi model.

F. Penugasan Akhir
Judul Tugas: Presentasi dan Evaluasi Proyek Akhir Analisis Sentimen dan Prediksi Tren
Instruksi:
1. Susun laporan singkat (maksimum 5 halaman) berisi:
o Deskripsi proyek
o Penjelasan metode dan model yang digunakan
o Tautan dashboard cloud
o Analisis hasil dan kesimpulan
2. Siapkan slide presentasi (PPT atau PDF) berdasarkan panduan di atas.
3. Lakukan presentasi secara langsung sesuai jadwal kelas.
4. Unggah file berikut ke LMS:
o Slide presentasi
o Laporan proyek
o Tautan publik dashboard

G. Kriteria Penilaian
Aspek Bobot
Struktur dan isi presentasi 20%
Kualitas analisis dan akurasi model 25%
Desain dan interaktivitas dashboard 20%
Kemampuan menjawab pertanyaan dan argumentasi 15%
Laporan dan dokumentasi proyek 20%

60

H. Refleksi Mahasiswa
Tuliskan tanggapan pribadi terkait proyek akhir:
1. Bagian paling menantang dalam proyek ini.
2. Strategi yang paling membantu dalam menyelesaikan masalah.
3. Pembelajaran utama yang diperoleh dari integrasi Big Data, analisis sentimen, dan
prediksi tren.