📊 Dokumentasi Sistem SIAGAKU-SLB

Entity Relationship Diagram & Penjelasan Fitur

Ringkasan Sistem

Tentang Aplikasi

SIAGAKU-SLB adalah aplikasi edukasi mitigasi bencana gempa bumi yang dirancang khusus untuk siswa Sekolah Luar Biasa (SLB).

  • Platform pembelajaran interaktif
  • Konten multimedia (gambar, audio, video)
  • Kuis edukatif dengan sertifikat
  • Sistem manajemen peserta & hasil

Teknologi

  • Backend: PHP 8.2.12
  • Database: MySQL 8.0+
  • Frontend: Tailwind CSS 3.x
  • Server: Apache 2.4.58
  • Library: TCPDF, Chart.js
  • Architecture: MVC Pattern

Entity Relationship Diagram (ERD)

Catatan: Diagram menunjukkan relasi antar tabel dalam database SIAGAKU-SLB

erDiagram instansi ||--o{ season : "memiliki" season ||--o{ peserta : "mendaftar_di" peserta ||--o{ hasil_kuis : "mengerjakan" materi ||--o{ kuis : "memiliki" kuis ||--o{ soal : "berisi" kuis ||--o{ hasil_kuis : "dikerjakan_dalam" users ||--o{ activity_log : "melakukan" instansi { int id PK string nama string alamat string telepon string email datetime created_at } season { int id PK int instansi_id FK string nama string tahun_ajaran string deskripsi enum status datetime created_at } peserta { int id PK int season_id FK string nama enum jenis_kelamin date tanggal_lahir text alamat datetime created_at } users { int id PK string username string password string nama string email enum role datetime created_at } materi { int id PK string judul text deskripsi text konten string file_pdf string video_url datetime created_at } kuis { int id PK int materi_id FK string judul text deskripsi datetime created_at } soal { int id PK int kuis_id FK text pertanyaan string file_gambar string file_audio string file_video text opsi_a_teks string opsi_a_gambar string opsi_a_audio string opsi_a_video text opsi_b_teks string opsi_b_gambar string opsi_b_audio string opsi_b_video text opsi_c_teks string opsi_c_gambar string opsi_c_audio string opsi_c_video enum jawaban datetime created_at } hasil_kuis { int id PK int peserta_id FK int kuis_id FK int season_id FK int skor int jumlah_benar int jumlah_salah datetime tanggal time waktu } activity_log { int id PK int user_id FK string action text description string ip_address datetime created_at }

Penjelasan Relasi:

  • Instansi → Season: Satu instansi bisa memiliki banyak sesi/kelas
  • Season → Peserta: Satu sesi bisa memiliki banyak peserta
  • Peserta → Hasil Kuis: Satu peserta bisa mengerjakan banyak kuis
  • Materi → Kuis: Satu materi bisa memiliki banyak kuis
  • Kuis → Soal: Satu kuis berisi banyak soal
  • Kuis → Hasil Kuis: Satu kuis bisa dikerjakan banyak peserta
  • Users → Activity Log: Satu user bisa memiliki banyak log aktivitas

Detail Tabel Database

1 Tabel: instansi

Nama Kolom Tipe Data Keterangan
id INT (PK, AUTO_INCREMENT) ID unik instansi/sekolah
nama VARCHAR(255) Nama instansi/sekolah SLB
alamat TEXT Alamat lengkap instansi
telepon VARCHAR(20) Nomor telepon kontak
email VARCHAR(255) Email resmi instansi
created_at DATETIME Waktu pembuatan data

2 Tabel: season

Nama Kolom Tipe Data Keterangan
id INT (PK, AUTO_INCREMENT) ID unik sesi/kelas
instansi_id INT (FK) ID instansi yang memiliki sesi
nama VARCHAR(255) Nama sesi (contoh: Kelas 1A)
tahun_ajaran VARCHAR(20) Tahun ajaran (contoh: 2024/2025)
deskripsi TEXT Deskripsi tambahan sesi
status ENUM('aktif','tidak_aktif') Status aktif/nonaktif sesi
created_at DATETIME Waktu pembuatan sesi

3 Tabel: peserta

Nama Kolom Tipe Data Keterangan
id INT (PK, AUTO_INCREMENT) ID unik peserta
season_id INT (FK) ID sesi tempat peserta terdaftar
nama VARCHAR(255) Nama lengkap peserta
jenis_kelamin ENUM('L','P') L = Laki-laki, P = Perempuan
tanggal_lahir DATE Tanggal lahir peserta
alamat TEXT Alamat lengkap peserta
created_at DATETIME Waktu pendaftaran

4 Tabel: users

Nama Kolom Tipe Data Keterangan
id INT (PK, AUTO_INCREMENT) ID unik admin/user
username VARCHAR(50) Username login (unique)
password VARCHAR(255) Password terenkripsi (bcrypt)
nama VARCHAR(255) Nama lengkap user
email VARCHAR(255) Email user
role ENUM('admin','superadmin') Hak akses user
created_at DATETIME Waktu pembuatan akun

5 Tabel: materi

Nama Kolom Tipe Data Keterangan
id INT (PK, AUTO_INCREMENT) ID unik materi
judul VARCHAR(255) Judul materi pembelajaran
deskripsi TEXT Deskripsi singkat materi
konten TEXT Isi konten materi lengkap
file_pdf VARCHAR(255) Nama file PDF (jika ada)
video_url VARCHAR(255) URL video YouTube (jika ada)
created_at DATETIME Waktu pembuatan materi

6 Tabel: kuis

Nama Kolom Tipe Data Keterangan
id INT (PK, AUTO_INCREMENT) ID unik kuis
materi_id INT (FK, NULLABLE) ID materi terkait (opsional)
judul VARCHAR(255) Judul kuis
deskripsi TEXT Deskripsi kuis
created_at DATETIME Waktu pembuatan kuis

7 Tabel: soal

Fitur Unggulan: Tabel ini mendukung multimedia penuh (gambar, audio, video) untuk pertanyaan dan semua opsi jawaban

Nama Kolom Tipe Data Keterangan
id INT (PK, AUTO_INCREMENT) ID unik soal
kuis_id INT (FK) ID kuis yang memiliki soal ini
pertanyaan TEXT Teks pertanyaan
file_gambar VARCHAR(255) Gambar pertanyaan (opsional)
file_audio VARCHAR(255) Audio pertanyaan (opsional)
file_video VARCHAR(255) Video pertanyaan (opsional)
opsi_a_teks TEXT Teks opsi A
opsi_a_gambar VARCHAR(255) Gambar opsi A (opsional)
opsi_a_audio VARCHAR(255) Audio opsi A (opsional)
opsi_a_video VARCHAR(255) Video opsi A (opsional)
... (Sama untuk opsi_b_* dan opsi_c_*)
jawaban ENUM('A','B','C') Jawaban yang benar
created_at DATETIME Waktu pembuatan soal

8 Tabel: hasil_kuis

Nama Kolom Tipe Data Keterangan
id INT (PK, AUTO_INCREMENT) ID unik hasil
peserta_id INT (FK) ID peserta yang mengerjakan
kuis_id INT (FK) ID kuis yang dikerjakan
season_id INT (FK, NULLABLE) ID sesi saat kuis dikerjakan
skor INT Total skor yang diperoleh
jumlah_benar INT (DEFAULT 0) Jumlah jawaban benar
jumlah_salah INT (DEFAULT 0) Jumlah jawaban salah
tanggal DATETIME Tanggal & waktu pengerjaan
waktu TIME Waktu pengerjaan

9 Tabel: activity_log

Nama Kolom Tipe Data Keterangan
id INT (PK, AUTO_INCREMENT) ID unik log
user_id INT (FK, NULLABLE) ID user yang melakukan aksi
user_name VARCHAR(255) Nama user (cadangan jika user dihapus)
action VARCHAR(100) Jenis aksi (CREATE, UPDATE, DELETE, dll)
description TEXT Deskripsi detail aktivitas
ip_address VARCHAR(50) IP address user
created_at DATETIME Waktu aktivitas dilakukan

Fitur-Fitur Sistem

Fitur untuk Peserta (Siswa SLB)

Pendaftaran

  • Pendaftaran mudah dengan kode sesi
  • Pilih instansi dan kelas
  • Isi data diri lengkap
  • Auto-login setelah daftar

Belajar Materi

  • Akses materi pembelajaran
  • Baca konten edukatif
  • Lihat PDF pembelajaran
  • Tonton video tutorial

Main Kuis

  • Kuis interaktif dengan multimedia
  • Soal dengan gambar, audio, video
  • Opsi jawaban multimedia
  • Tanpa batas waktu (fokus pemahaman)
  • Progress bar & navigasi soal

Hasil & Sertifikat

  • Lihat skor real-time
  • Statistik detail (benar/salah)
  • Persentase kelulusan
  • Download sertifikat PDF (≥60%)
  • Riwayat semua kuis

Fitur untuk Guru/Admin

Manajemen Materi

  • Tambah, edit, hapus materi
  • Upload PDF pembelajaran
  • Embed video YouTube
  • Rich text editor konten

Manajemen Kuis

  • Buat kuis baru
  • Hubungkan dengan materi
  • Kelola soal per kuis
  • Edit/hapus kuis existing

Manajemen Soal

  • Tambah soal dengan multimedia
  • Upload gambar/audio/video per soal
  • Upload media per opsi jawaban
  • Tentukan jawaban benar
  • Edit & hapus soal

Monitoring Hasil

  • Lihat semua hasil kuis
  • Filter per kuis/sesi/tanggal
  • Statistik performa siswa
  • Export ke Excel (.xlsx)

Fitur untuk Super Administrator

Manajemen Instansi

  • CRUD instansi/sekolah SLB
  • Data lengkap sekolah
  • Multi-instansi support

Manajemen Sesi

  • CRUD sesi/kelas
  • Atur tahun ajaran
  • Aktif/nonaktif sesi
  • Pisahkan data per periode

Manajemen User

  • Tambah admin/guru
  • Atur role & hak akses
  • Reset password
  • Aktivasi/nonaktif user

Manajemen Peserta

  • Lihat semua peserta
  • Profil detail per peserta
  • Grafik perkembangan
  • Edit/hapus data peserta

Dashboard Lengkap

  • Statistik real-time
  • Grafik performa
  • Log aktivitas
  • Export laporan PDF/Excel
  • Top performers

Activity Log

  • Tracking semua aktivitas
  • History CRUD operations
  • IP address monitoring
  • Audit trail lengkap

Keunggulan Sistem

🎨

UI/UX Ramah SLB

Desain colorful, interaktif, dan mudah dipahami khusus untuk siswa SLB dengan kebutuhan khusus

📱

Fully Responsive

Dapat diakses optimal di HP, tablet, dan desktop dengan layout yang menyesuaikan ukuran layar

🎬

Multimedia Lengkap

Support gambar, audio, dan video untuk soal & opsi jawaban. Cocok untuk berbagai gaya belajar

🎓

Sertifikat Digital

Generate sertifikat PDF otomatis untuk peserta yang lulus (≥60%) dengan design profesional

📊

Reporting Advanced

Dashboard dengan grafik Chart.js, export Excel/PDF, statistik detail, dan analisis performa

🔒

Keamanan Terjamin

Password bcrypt, session management, SQL injection protection, XSS prevention, CSRF token

Performa Optimal

Optimasi query database, caching, lazy loading, compressed assets, dan gzip compression

🎵

Background Music

Music player floating untuk atmosfer belajar lebih menyenangkan dengan kontrol play/pause

🔄

Clean URL

URL SEO-friendly tanpa .php extension menggunakan Apache mod_rewrite (.htaccess)

© 2025 SIAGAKU-SLB • Sistem Informasi Mitigasi Gempa untuk SLB