Logo Mediatama Portal Soal / Tema 09
LEMBAR SPESIFIKASI PROYEK PRAKTIK • TEMA 09

Sistem Tiketing & Registrasi Check-in Event

Pemesanan Tiket Workshop, Penerbitan e-Ticket Unik, dan Validasi Kehadiran di Pintu Masuk

KODE: MED-WEB-09
TINGKAT: Intermediate
Mata Uji Fullstack Web App
Estimasi Waktu 3 - 4 Jam / Take-home
Sifat Pengerjaan Open Book & Docs
Tech Stack Bebas Dipilih Peserta
Kebebasan Pilihan Teknologi: Anda dibebaskan memilih bahasa pemrograman, framework, arsitektur, dan database yang paling Anda kuasai (misalnya: Laravel, CodeIgniter, Express.js/Node.js, Next.js, Django, FastAPI, Go Gin/Fiber, PHP Native, Vue/React, serta database MySQL, PostgreSQL, MariaDB, atau SQLite). Penilaian menitikberatkan pada kelengkapan 4 modul utama, integritas alur transaksi, keamanan, dan pengalaman pengguna (UX).

Latar Belakang & Studi Kasus

Event Organizer 'Nusantara Tech Summit' menyelenggarakan serangkaian seminar teknologi dan workshop intensif dengan kapasitas terbatas. Permasalahan yang timbul pada event sebelumnya adalah pemalsuan tiket oleh pihak tidak bertanggung jawab, penonton yang membeli tiket tetapi kuotanya sudah habis akibat keterlambatan update sistem, serta antrean berdesak-desakan di meja registrasi masuk karena panitia mencari nama peserta secara manual di kertas ratusan lembar. Diperlukan aplikasi web untuk manajemen kuota tiket per kategori, pemesanan tiket dengan invoice dan e-ticket berkode unik, validasi check-in real-time, dan dashboard kehadiran.

4 Modul Wajib yang Harus Dibangun

Pilar Inti Fungsionalitas
01

Modul Autentikasi & Hak Akses (Login System)

Pengamanan akun, sesi pengguna, dan pembatasan wewenang fitur

Role: Administrator / Event Director

Membuat data event (nama acara, tanggal, lokasi), konfigurasi kuota dan harga tiket per kelas (Early Bird, Regular, VIP), kelola user, serta pantau grafik real-time penjualan dan kehadiran.

Role: Ticketing Staff / Gate Officer

Melayani pembelian tiket langsung di lokasi (on-the-spot), melakukan pencarian / simulasi scan kode unik e-ticket untuk check-in peserta di pintu gerbang, cetak e-ticket / ID card peserta, dan melihat rekap peserta.

Ketentuan Keamanan & Teknis:
  • Form login dengan validasi input (penanganan username/email salah atau password tidak cocok).
  • Password wajib di-hash menggunakan algoritma aman (Bcrypt, Argon2, atau sejenisnya). Tidak boleh menyimpan password plaintext.
  • Proteksi route (Middleware / Guard): Halaman dashboard, transaksi, dan laporan tidak boleh dapat diakses tanpa login.
  • Mekanisme Logout yang menghancurkan sesi / token secara bersih dan mengarahkan kembali ke halaman login.
02

Modul Dashboard Eksekutif (Metrics & Overview)

Pusat pemantauan kinerja real-time dan ringkasan operasional

4 Indikator KPI Utama yang Wajib Ditampilkan:
Total Tiket Terjual
Akumulasi seluruh tiket seminar/workshop yang lunas terjual
Tingkat Kehadiran (Check-In)
Persentase peserta yang sudah scan check-in di lokasi acara dibanding tiket terjual
Total Pendapatan Registrasi
Akumulasi nominal rupiah penjualan tiket event
Sisa Kuota Tiket
Kapasitas bangku yang masih dapat dipesan oleh calon peserta
Komponen Visual Pendukung:
  • Grafik Visual: Tampilkan visualisasi tren transaksi (misal: grafik batang/garis 7 hari terakhir atau diagram distribusi kategori). Boleh menggunakan Chart.js, ApexCharts, SVG interaktif, atau visual bar CSS murni.
  • Tabel Riwayat Cepat: Daftar 5–10 transaksi paling baru beserta status singkatnya.
  • Tombol Aksi Cepat (Quick Action): Shortcut langsung untuk membuat transaksi baru tanpa harus membuka menu lain.
03

Modul Transaksi Inti (Core Business Transaction)

Pencatatan data dinamis master-detail dengan kalkulasi otomatis

Format Nomor Faktur / Invoice: TIK-EVT-YYYYMMDD-XXXX (Contoh: TIK-EVT-20261023-0134)
Nomor invoice harus dibuat otomatis oleh sistem saat form dibuka atau saat transaksi disimpan, dengan format teratur dan unik.
Alur & Elemen Input Form Transaksi:
  • •Identitas Pemesan: Nama Lengkap, Alamat Email Aktif, Nomor Handphone / WhatsApp, Institusi / Perusahaan
  • •Pilihan Acara / Sesi Seminar yang diikuti
  • •Multi-kategori Tiket: Pilih Tipe Tiket (misal: VIP Pass, General Admission, Workshop Session) x Jumlah Tiket (Qty)
  • •Kalkulasi: Harga per tiket x Qty, Potongan Kode Promo (jika ada), Grand Total Pembayaran
  • •Penerbitan Kode Unik e-Ticket: Sistem secara otomatis menghasilkan Kode Tiket Unik berformat acak alfa-numerik (misal: EVT-VIP-8F92K) untuk setiap tiket yang dibeli
  • •Fitur Validasi Check-In Pintu Masuk: Petugas memasukkan / scan kode tiket; sistem memverifikasi validitas tiket dan mengubah status menjadi 'Hadir' (Check-in time tercatat)
Validasi & Integritas Data Wajib:
  • ✓Pencegahan over-capacity: Kuota tiket tidak boleh minus saat dibeli bersamaan
  • ✓Pencegahan tiket ganda (Double check-in): Tiket yang sudah berstatus 'Hadir' akan ditolak jika dicoba check-in kembali dengan pesan peringatan 'Tiket Sudah Digunakan'
  • ✓Format kode tiket unik dijamin tidak duplikat dengan indexed unique constraint
  • ✓Tampilan e-Ticket & ID Card Siap Cetak berisikan detail event, nama peserta, kategori tiket, dan barcode/kode unik
04

Modul Laporan & Ekspor Data (Reporting & Analytics)

Penyajian rekap data historis, filter periode, dan pencetakan dokumen

Parameter Filter Dinamis:

Pilihan Event, Kategori Tiket (VIP, Regular, Workshop), dan Status Kehadiran (Hadir vs Belum Hadir)

Ringkasan Statistik (Summary Bar):

Total Kuota Tersedia, Total Tiket Terjual, Total Nominal Pendapatan, dan Jumlah Peserta yang Sudah Masuk (Attended)

Struktur Kolom Tabel Laporan:

No. Registrasi, Kode Tiket, Nama Peserta, Email, Kategori Tiket, Biaya, Status Bayar, Status Check-in, Jam Masuk

Kemampuan Ekspor:

Ekspor ke format PDF daftar hadir resmi dan file spreadsheet Excel/CSV

Rekomendasi Skema Basis Data (Database Design)

Dapat disesuaikan atau dikembangkan sesuai arsitektur pilihan Anda

5 Tabel
Nama Tabel Deskripsi & Saran Kolom Minimal
users Pengguna aplikasi (id, username, password_hash, nama_lengkap, role [admin/gate_staff], created_at)
events Master acara (id, judul_event, deskripsi, tanggal_acara, lokasi, status_aktif)
ticket_tiers Kategori tiket (id, event_id, nama_kategori, harga_tiket, kuota_maksimal, kuota_terjual)
ticket_orders Header transaksi pesanan tiket (id, no_invoice, nama_pemesan, email, no_hp, total_biaya, status_bayar, created_at)
event_passes Rincian e-ticket unik per peserta (id, order_id, ticket_tier_id, kode_unik_tiket, nama_peserta, status_kehadiran [belum/hadir], check_in_time)

Rubrik Penilaian & Pembobotan

Total Nilai Maksimal: 100 Poin

Fungsionalitas & Kesesuaian Alur Bisnis 40 Poin

Semua 4 pilar (Login, Dashboard, Transaksi Master-Detail, Laporan) berfungsi utuh tanpa error saat diuji.

Integritas Data & Keamanan 25 Poin

Hashing password, proteksi route, pencegahan duplikasi data, validasi stok/kapasitas, dan transaction commit/rollback.

Desain Antarmuka (UI) & Pengalaman Pengguna (UX) 20 Poin

Tampilan rapi, responsif di mobile & desktop, feedback interaktif (notifikasi sukses/gagal), dan kemudahan navigasi.

Kualitas Kode & Dokumentasi 15 Poin

Struktur folder terorganisir (MVC / Clean Architecture), penamaan variabel deskriptif, dan panduan instalasi README.md.

Ketentuan Pengumpulan & Deliverables

Peserta wajib menyerahkan hasil pengerjaan berupa:

  1. Source Code Proyek: Diunggah ke repositori GitHub / GitLab publik atau diarsipkan dalam format .zip.
  2. Database Dump / Seeder: File database.sql atau seeder/migration yang sudah memuat data awal (sample demo data) untuk akun login dan master data.
  3. Dokumen README.md: Berisi daftar tech stack yang digunakan, langkah instalasi step-by-step, serta kredensial akun uji coba (email/username & password untuk masing-masing role).
Kembali ke Daftar 10 Tema