""" splash_page.py ────────────── Splash screen modern, full-viewport centered, tampil sekali per sesi. Menggunakan st.components.v1.html (iframe isolated). 🕐 PENGATURAN DURASI: _SPLASH_DURATION = 10 ← ganti angka ini (satuan: detik) Rekomendasi: 4–8 detik 📐 PENGATURAN TINGGI IFRAME: components.html(..., height=700 ...) ← sesuaikan jika konten terpotong """ import time import streamlit as st import streamlit.components.v1 as components _APP_NAME = "SentiTrack" # ┌─────────────────────────────────────────┐ # │ ⏱ GANTI ANGKA INI UNTUK UBAH DURASI │ # │ Satuan: detik | Rekomendasi: 4–8 │ _SPLASH_DURATION = 10 # └─────────────────────────────────────────┘ def _build_splash_html(duration: int) -> str: return f"""
{_APP_NAME}
Dashboard Monitoring Sentimen Netizen terhadap Kebijakan Pembatasan Gratis Ongkir
📌 Topik Penelitian
Perancangan dan Implementasi Dashboard Sentimen Netizen X terhadap Kebijakan Pembatasan Gratis Ongkir dengan Naive Bayes
Komdigi · Analisis Opini Publik di Platform X (Twitter)
🤖
Model
Naive Bayes
📡
Sumber Data
X Data Historis via Tweet Harvest & Realtime
🔤
Preprocessing
Case Folding · Cleaning · Normalisasi · Stopword · Stemming
📊
Output
Positif · Netral · Negatif
Nurizzati Adistya Putri · E31232465
Politeknik Negeri Jember · Manajemen Informatika
Tugas Akhir 2026
""" def maybe_show_splash() -> bool: """ Tampilkan splash jika belum tampil di sesi ini. Kembalikan True jika splash baru saja ditampilkan, False jika dilewati. """ if st.session_state.get("splash_done", False): return False # Sembunyikan semua elemen Streamlit selama splash st.markdown(""" """, unsafe_allow_html=True) # ┌───────────────────────────────────────────────────────┐ # │ 📐 TINGGI IFRAME (px) │ # │ Naikkan jika card terpotong di layar kecil. │ # │ Rekomendasi: 650–750 │ components.html(_build_splash_html(_SPLASH_DURATION), height=700, scrolling=False) # └───────────────────────────────────────────────────────┘ # Tunggu sesuai durasi splash sebelum lanjut ke halaman utama time.sleep(_SPLASH_DURATION + 0.3) st.session_state["splash_done"] = True st.rerun() return True