Go to file
ericko-cyber 88ac7037e4 first commit 2026-10-20 13:28:38 +07:00
__pycache__ first commit 2026-10-20 13:28:38 +07:00
frontend first commit 2026-10-20 13:28:38 +07:00
venv first commit 2026-10-20 13:28:38 +07:00
Readme.md first commit 2026-10-20 13:28:38 +07:00
app.py first commit 2026-10-20 13:28:38 +07:00
kamus_alay.csv first commit 2026-10-20 13:28:38 +07:00
model_logistic_regression.pkl first commit 2026-10-20 13:28:38 +07:00
models.py first commit 2026-10-20 13:28:38 +07:00
new_kamusalay.csv first commit 2026-10-20 13:28:38 +07:00
nlp.py first commit 2026-10-20 13:28:38 +07:00
requirements.txt first commit 2026-10-20 13:28:38 +07:00
sentiment_tiktok.db first commit 2026-10-20 13:28:38 +07:00
sentiment_tiktok.sql first commit 2026-10-20 13:28:38 +07:00
tfidf_vectorizer.pkl first commit 2026-10-20 13:28:38 +07:00

Readme.md

🧠 Analisis Sentimen Komentar TikTok (TF-IDF & Logistic Regression)

Sistem aplikasi web untuk klasifikasi dan analisis sentimen komentar video TikTok berbahasa Indonesia ke dalam kategori POSITIF atau NEGATIF. Sistem ditenagai oleh representasi fitur TF-IDF (1..2 n-gram) dan model Logistic Regression.


✨ Fitur Utama Sistem

  1. Dashboard & Analisis Video TikTok:
    • Memasukkan tautan video TikTok (https://www.tiktok.com/@.../video/...).
    • Menganalisis komentar secara otomatis (Mode Demo 300 komentar realistis) atau input komentar manual (one comment per line).
    • Menghitung persentase sentimen, rasio sentimen, dan diagram visual (Donut Chart).
  2. Riwayat Analisis (History):
    • Menyimpan seluruh riwayat analisis ke database SQLite lokal (sentiment_tiktok.db).
    • Tabel komentar interaktif dengan filter (Semua, Positif, Negatif) dan paginasi.
  3. Pengujian Model & Confusion Matrix (Admin):
    • Evaluasi komprehensif performa model Logistic Regression & ekstraksi TF-IDF.
    • Perhitungan otomatis Akurasi, Presisi, Recall, F1-Score, dan Matriks Kebingungan 2x2 (True Positive, True Negative, False Positive, False Negative).
    • Mendukung 3 mode sumber data uji: Dataset Benchmark Bawaan (60 sampel seimbang), Upload File CSV/TXT berlabel, dan Input Manual Batch.
    • Tabel Classification Report formal standar Scikit-Learn dan rincian prediksi per sampel komentar.
    • Ekspor laporan pengujian ke format CSV dan cetak PDF.
  4. Autentikasi Pengguna:
    • Sistem login dan registrasi akun peneliti.
    • Akun default: admin@tiktok.com (password: admin123).

📁 Struktur Direktori Proyek

project/
├── app.py                          # Server Flask utama (REST API, Autentikasi, Analisis TikTok, Static)
├── nlp.py                          # Modul pra-pemrosesan teks NLP (9 tahapan pembersihan)
├── models.py                       # Modul pemuatan model Logistic Regression & ekstraksi TF-IDF
├── model_logistic_regression.pkl    # Bobot model Logistic Regression hasil latih
├── tfidf_vectorizer.pkl            # Objek TF-IDF Vectorizer terlatih (4.732 fitur n-gram)
├── kamus_alay.csv                  # Dataset kamus normalisasi kata alay/slang
├── requirements.txt                # Daftar pustaka Python yang dibutuhkan
├── Readme.md                       # Dokumentasi panduan lengkap (file ini)
├── PENJELASAN_PROJECT.txt          # Dokumentasi teknis & simulasi perhitungan matematis
├── sentiment_tiktok.db             # Database SQLite lokal untuk riwayat & pengguna
│
└── frontend/                       # Aset Antarmuka Pengguna (Web SPA)
    ├── index.html                  # Halaman utama aplikasi Analisis Sentimen TikTok
    ├── style.css                   # Berkas tata letak dan tema modern
    └── app.js                      # Logika SPA (Router, Auth, Dashboard, Riwayat, Donut Chart)

⚙️ Persyaratan Sistem & Dependensi

Proyek ini menggunakan Python 3.11 / 3.12.

Pustaka Versi Kegunaan
Flask >=3.0.0 Server web & penyedia endpoint REST API
scikit-learn >=1.3.0 Model Logistic Regression & TF-IDF Vectorizer
joblib >=1.3.0 Deserialisasi file model .pkl
pandas >=2.0.0 Pembacaan dataset kamus kata gaul CSV
nltk >=3.8.0 Tokenisasi kata (word_tokenize) & korpus stopword
Sastrawi >=1.0.1 Algoritma stemming kata dasar bahasa Indonesia

🚀 Cara Menjalankan Aplikasi

1. Buka PowerShell / Terminal pada folder proyek

cd "d:\SEMESTER 7\Tugas Akhir\project"

2. Aktifkan Virtual Environment

.\venv\Scripts\activate

3. Jalankan Server Flask

python App.py

(Atau .\venv\Scripts\python.exe App.py)

4. Buka di Browser

Kunjungi alamat:

http://127.0.0.1:5000
  • Login Akun Bawaan:
    • Email: admin@tiktok.com
    • Password: admin123
  • Atau klik "Daftar" untuk membuat akun baru.

📡 Dokumentasi Endpoint REST API

Method Endpoint Keterangan
GET / atau /index.html Memuat aplikasi web utama (TikTok Sentiment Analysis)
POST /api/login Autentikasi pengguna (email, password)
POST /api/register Mendaftarkan pengguna baru
GET /api/me Memeriksa sesi pengguna aktif
POST /api/logout Mengakhiri sesi pengguna
GET /api/stats Statistik total analisis, komentar, positif, negatif
GET /api/analyses Mengambil seluruh riwayat analisis pengguna
POST /api/analyses Menganalisis video TikTok baru (tiktok_url, manual_comments)
GET /api/analyses/<id> Detail analisis video (ringkasan persentase sentimen)
DELETE /api/analyses/<id> Menghapus data analisis dan komentarnya
GET /api/analyses/<id>/comments Daftar komentar dengan filter (POSITIF/NEGATIF) dan paginasi
POST /predict Inferensi satu komentar langsung via REST API
GET /api/model-test/benchmark Mengambil dataset benchmark terkurasi 60 sampel berlabel
POST /api/model-test/evaluate Evaluasi batch model menghasilkan Confusion Matrix & classification report