Antrian Potong Rambut — Aplikasi Antrian Barbershop (Android + Laravel)
Aplikasi Android antrian barbershop tanpa login pelanggan: scan QR toko, isi formulir singkat, foto wajah, lalu pantau nomor secara langsung. Barber memakai APK yang sama untuk memanggil, melayani, dan mencatat bayar. Kotlin + Jetpack Compose dengan API Laravel 13.

Aplikasi Android antrian barbershop. Pelanggan scan QR toko, isi nama dan umur, foto wajah, lalu dapat nomor antrian — tanpa akun, tanpa daftar. HP lalu memantau posisi dan perkiraan waktu tunggu. Barber memakai APK yang sama dalam mode login untuk memanggil, melayani, dan menutup tiap tiket. Tugas kuliah Aplikasi & Mobile — Android 3 (kelas TI23).
Sorotan
- Pelanggan tanpa login — QR memuat alamat server dan kode toko, jadi aplikasi tidak butuh setelan IP. UUID perangkat mengenali HP; satu HP bisa mendaftarkan rombongan 1–10 orang, masing-masing dapat nomor berurutan.
- Penomoran aman dari balapan — ambil nomor dan "panggil berikutnya" berjalan di transaksi DB yang mengunci baris toko (
lockForUpdate), dengan kunci unik(tanggal, nomor)sebagai jaring pengaman. Diukur dengan 30 proses PHP serentak ke MariaDB: 30/30 berhasil dengan nomor unik 1..30. Kontrol negatif (kunci dibuang): hanya 7/30 berhasil. - Foto wajah sementara — foto membantu barber mengenali pelanggan. Wajib persetujuan, server memeriksa isinya JPEG (≤300 KB), hanya barber dan HP pemilik tiket yang bisa mengambilnya, dan foto dihapus saat tiket selesai atau batal.
- Semua keputusan di server — penomoran, perubahan status, dan estimasi ada di model Laravel. HP hanya mengirim input dan menampilkan hasil; perubahan status yang tidak sah dijawab 409.
Fitur Utama
- Alur pelanggan — scan QR → formulir (nama, umur, layanan) → foto wajah (tombol jepret manual, aktif hanya saat ML Kit melihat wajah di posisi pas) → karcis dengan posisi dan perkiraan "±N menit".
- Papan langsung — papan kursi (siapa di kursi tiap barber) dan papan barisan menunggu, diperbarui selama layar terlihat.
- Notifikasi latar — foreground service berbunyi saat tinggal 2 orang lagi dan saat pelanggan dipanggil.
- Mode barber — panggil berikutnya, mulai, lewati, panggil ulang, selesai + catat bayar (tunai/QRIS), dan tiket tamu untuk pelanggan tanpa aplikasi.
- Alat pemilik — kelola layanan, barber, setelan toko, buat QR baru, dan laporan harian (pendapatan, pelanggan, rating).
Teknologi
- Kotlin 2.4 + Jetpack Compose (satu Activity per layar)
- CameraX 1.6 + ML Kit barcode scanning dan face detection (offline)
- Retrofit 3 + kotlinx-serialization
- Laravel 13 + Sanctum (token barber)
- MariaDB 10.4
Status & Kematangan
Fitur lengkap untuk tugas kuliah dan sudah diuji di HP asli (vivo, Android 12) lewat Wi-Fi: alur pelanggan penuh, alur barber, tiket tamu, notifikasi, dan pembuatan QR baru. Berjalan di jaringan lokal (server di laptop, HP di Wi-Fi yang sama); tidak di-deploy ke publik. Estimasi waktu tunggu yang lebih pintar berdasarkan riwayat layanan nyata masih direncanakan.
Metrik Terukur
| Uji fitur Laravel | 67 lulus |
| Uji unit Android | 14 lulus |
| Ambil nomor serentak | 30/30 unik (tanpa kunci: 7/30) |
| Tabel database | 6 (4 master, 2 transaksi) |