# MATRIKS HAK AKSES MENU PER ROLE
# Sistem Pendaftaran & Absensi Sekolah — Laravel
#
# ROLE YANG ADA:
#   R1 = Super Admin
#   R2 = Admin Sekolah
#   R3 = Guru (Mapel)
#   R4 = Wali Kelas
#   R5 = Siswa
#   R6 = Orang Tua / Wali Murid
#   R7 = Operator PPDB
#
# TANDA:
#   ✅ = Boleh akses
#   ❌ = Tidak boleh akses
#
# FORMAT BARIS:
# KODE | NAMA MENU | R1 | R2 | R3 | R4 | R5 | R6 | R7

---

## [GROUP-01] DASHBOARD

| Kode     | Nama Menu                      | R1 Super Admin | R2 Admin Sekolah | R3 Guru | R4 Wali Kelas | R5 Siswa | R6 Orang Tua | R7 Op.PPDB |
|----------|--------------------------------|:--------------:|:----------------:|:-------:|:-------------:|:--------:|:------------:|:----------:|
| MENU_001 | Dashboard Utama                | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MENU_002 | Widget Kehadiran Hari Ini      | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_003 | Widget Siswa Sering Alpha      | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| MENU_004 | Widget Notifikasi Terbaru      | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MENU_005 | Widget Kalender Akademik       | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MENU_006 | Widget Statistik PPDB          | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| MENU_007 | Widget Pending Izin            | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| MENU_008 | Widget Grafik Mingguan         | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |

---

## [GROUP-02] PPDB — PENERIMAAN PESERTA DIDIK BARU

| Kode     | Nama Menu                      | R1 Super Admin | R2 Admin Sekolah | R3 Guru | R4 Wali Kelas | R5 Siswa | R6 Orang Tua | R7 Op.PPDB |
|----------|--------------------------------|:--------------:|:----------------:|:-------:|:-------------:|:--------:|:------------:|:----------:|
| MENU_010 | PPDB (Parent Menu)             | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
| MENU_011 | Pengaturan Periode PPDB        | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_012 | Daftar Pendaftar               | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| MENU_013 | Tambah Pendaftar (Manual)      | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| MENU_014 | Detail Pendaftar               | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| MENU_015 | Edit Data Pendaftar            | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| MENU_016 | Hapus Pendaftar                | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_017 | Verifikasi Berkas              | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| MENU_018 | Detail Verifikasi Berkas       | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| MENU_019 | Seleksi & Penerimaan           | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| MENU_020 | Ubah Status Pendaftar          | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| MENU_021 | Cetak Kartu Pendaftaran        | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| MENU_022 | Konversi ke Siswa Aktif        | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_023 | Laporan PPDB                   | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| MENU_024 | Export Laporan PPDB Excel      | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| MENU_025 | Export Laporan PPDB PDF        | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| MENU_026 | Form Pendaftaran Publik        | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
| MENU_027 | Cek Status Pendaftaran Publik  | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
| MENU_028 | Upload Berkas Pendaftaran      | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
| MENU_029 | Download Berkas Pendaftar      | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |

---

## [GROUP-03] DATA SISWA

| Kode     | Nama Menu                      | R1 Super Admin | R2 Admin Sekolah | R3 Guru | R4 Wali Kelas | R5 Siswa | R6 Orang Tua | R7 Op.PPDB |
|----------|--------------------------------|:--------------:|:----------------:|:-------:|:-------------:|:--------:|:------------:|:----------:|
| MENU_030 | Data Siswa (Parent Menu)       | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_031 | Daftar Siswa                   | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_032 | Tambah Siswa Baru              | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_033 | Detail Siswa                   | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| MENU_034 | Edit Data Siswa                | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_035 | Hapus / Nonaktifkan Siswa      | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_036 | Import Siswa dari Excel/CSV    | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_037 | Download Template Import       | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_038 | Export Siswa ke Excel          | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| MENU_039 | Export Siswa ke PDF            | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| MENU_040 | Mutasi / Pindah Kelas          | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_041 | Pindah Sekolah (Keluar)        | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_042 | Alumni & Kelulusan             | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_043 | Proses Kelulusan               | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_044 | Generate QR Kartu Pelajar      | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_045 | Cetak Kartu Pelajar            | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ |
| MENU_046 | Data Orang Tua / Wali          | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| MENU_047 | Tambah / Edit Orang Tua        | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_048 | Riwayat Kelas Siswa            | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ |
| MENU_049 | Assign Siswa ke Kelas          | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |

---

## [GROUP-04] DATA GURU & STAF

| Kode     | Nama Menu                      | R1 Super Admin | R2 Admin Sekolah | R3 Guru | R4 Wali Kelas | R5 Siswa | R6 Orang Tua | R7 Op.PPDB |
|----------|--------------------------------|:--------------:|:----------------:|:-------:|:-------------:|:--------:|:------------:|:----------:|
| MENU_050 | Data Guru & Staf (Parent Menu) | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_051 | Daftar Guru                    | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_052 | Tambah Guru Baru               | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_053 | Detail Guru                    | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_054 | Edit Data Guru                 | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_055 | Hapus / Nonaktifkan Guru       | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_056 | Import Data Guru dari Excel    | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_057 | Download Template Import Guru  | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_058 | Export Data Guru               | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_059 | Penugasan Mengajar (Mapel)     | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_060 | Penugasan Wali Kelas           | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_061 | Absensi Guru — Input           | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_062 | Absensi Guru — Rekap           | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_063 | Daftar Staf Tata Usaha         | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_064 | Tambah / Edit Staf             | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |

---

## [GROUP-05] AKADEMIK & JADWAL

| Kode     | Nama Menu                        | R1 Super Admin | R2 Admin Sekolah | R3 Guru | R4 Wali Kelas | R5 Siswa | R6 Orang Tua | R7 Op.PPDB |
|----------|----------------------------------|:--------------:|:----------------:|:-------:|:-------------:|:--------:|:------------:|:----------:|
| MENU_065 | Akademik & Jadwal (Parent Menu)  | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| MENU_066 | Tahun Ajaran — Daftar            | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_067 | Tahun Ajaran — Tambah            | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_068 | Tahun Ajaran — Edit              | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_069 | Set Tahun Ajaran Aktif           | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_070 | Kelas / Rombel — Daftar          | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_071 | Kelas / Rombel — Tambah          | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_072 | Kelas / Rombel — Edit            | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_073 | Kelas / Rombel — Hapus           | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_074 | Mata Pelajaran — Daftar          | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| MENU_075 | Mata Pelajaran — Tambah          | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_076 | Mata Pelajaran — Edit            | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_077 | Mata Pelajaran — Hapus           | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_078 | Jadwal Pelajaran — Daftar        | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| MENU_079 | Jadwal Pelajaran — Tambah        | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_080 | Jadwal Pelajaran — Edit          | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_081 | Jadwal Pelajaran — Hapus         | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_082 | Jadwal Saya (Guru/Siswa)         | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| MENU_083 | Cetak Jadwal PDF                 | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| MENU_084 | Validasi Bentrok Jadwal          | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_085 | Hari Libur — Daftar              | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| MENU_086 | Hari Libur — Tambah              | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_087 | Hari Libur — Edit                | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_088 | Hari Libur — Hapus               | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_089 | Kalender Akademik View           | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |

---

## [GROUP-06] ABSENSI

| Kode     | Nama Menu                         | R1 Super Admin | R2 Admin Sekolah | R3 Guru | R4 Wali Kelas | R5 Siswa | R6 Orang Tua | R7 Op.PPDB |
|----------|-----------------------------------|:--------------:|:----------------:|:-------:|:-------------:|:--------:|:------------:|:----------:|
| MENU_090 | Absensi (Parent Menu)             | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| MENU_091 | Scan QR Absensi                   | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_092 | Input Manual — Absensi Harian     | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_093 | Input Manual — Per Mata Pelajaran | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_094 | Input Manual — Massal (Batch)     | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| MENU_095 | Edit Absensi                      | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_096 | Hapus Absensi                     | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_097 | Rekap Absensi Saya (Siswa)        | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ |
| MENU_098 | Absensi Anak (Orang Tua)          | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
| MENU_099 | Rekap Per Kelas                   | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_100 | Rekap Harian                      | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_101 | Rekap Mingguan                    | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| MENU_102 | Rekap Bulanan                     | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| MENU_103 | Rekap Per Semester                | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| MENU_104 | Laporan Alpha Berulang            | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| MENU_105 | Export Absensi ke PDF             | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| MENU_106 | Export Absensi ke Excel           | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_107 | Manajemen QR Code Siswa           | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_108 | Regenerate QR Code                | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_109 | Riwayat Scan QR                   | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| MENU_110 | Cetak Raport Kehadiran PDF        | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ |

---

## [GROUP-07] IZIN & SURAT KETERANGAN

| Kode     | Nama Menu                      | R1 Super Admin | R2 Admin Sekolah | R3 Guru | R4 Wali Kelas | R5 Siswa | R6 Orang Tua | R7 Op.PPDB |
|----------|--------------------------------|:--------------:|:----------------:|:-------:|:-------------:|:--------:|:------------:|:----------:|
| MENU_111 | Izin & Surat (Parent Menu)     | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| MENU_112 | Ajukan Izin / Sakit            | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ |
| MENU_113 | Daftar Pengajuan Izin          | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| MENU_114 | Detail Pengajuan Izin          | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| MENU_115 | Approve / Reject Izin          | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| MENU_116 | Edit Pengajuan Izin            | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ |
| MENU_117 | Hapus Pengajuan Izin           | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_118 | Upload Lampiran Surat          | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ |
| MENU_119 | Download Lampiran Surat        | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| MENU_120 | Riwayat Izin Saya              | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ |
| MENU_121 | Rekap Izin/Sakit Per Periode   | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_122 | Export Rekap Izin Excel        | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |

---

## [GROUP-08] LAPORAN

| Kode     | Nama Menu                        | R1 Super Admin | R2 Admin Sekolah | R3 Guru | R4 Wali Kelas | R5 Siswa | R6 Orang Tua | R7 Op.PPDB |
|----------|----------------------------------|:--------------:|:----------------:|:-------:|:-------------:|:--------:|:------------:|:----------:|
| MENU_123 | Laporan (Parent Menu)            | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MENU_124 | Laporan Per Siswa                | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| MENU_125 | Laporan Per Kelas                | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_126 | Laporan Per Mata Pelajaran       | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_127 | Laporan Per Sekolah              | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_128 | Persentase Kehadiran Per Kelas   | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_129 | Ranking Alpha Terbanyak          | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| MENU_130 | Cetak Raport Kehadiran PDF       | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ |
| MENU_131 | Export Rekap Excel               | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_132 | Laporan PPDB                     | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| MENU_133 | Laporan Absensi Guru             | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_134 | Dashboard Statistik Chart        | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| MENU_135 | Laporan Bulanan (Summary)        | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| MENU_136 | Laporan Per Semester             | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |

---

## [GROUP-09] NOTIFIKASI

| Kode     | Nama Menu                        | R1 Super Admin | R2 Admin Sekolah | R3 Guru | R4 Wali Kelas | R5 Siswa | R6 Orang Tua | R7 Op.PPDB |
|----------|----------------------------------|:--------------:|:----------------:|:-------:|:-------------:|:--------:|:------------:|:----------:|
| MENU_137 | Notifikasi (Parent Menu)         | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MENU_138 | Kotak Masuk Notifikasi           | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MENU_139 | Tandai Sudah Dibaca              | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MENU_140 | Hapus Notifikasi                 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MENU_141 | Pengaturan Notifikasi Email/WA   | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_142 | Template Notifikasi Email        | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_143 | Edit Template Notifikasi         | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_144 | Konfigurasi WhatsApp API         | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_145 | Test Kirim Notifikasi            | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_146 | Log Pengiriman Notifikasi        | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |

---

## [GROUP-10] PENGATURAN SISTEM

| Kode     | Nama Menu                          | R1 Super Admin | R2 Admin Sekolah | R3 Guru | R4 Wali Kelas | R5 Siswa | R6 Orang Tua | R7 Op.PPDB |
|----------|------------------------------------|:--------------:|:----------------:|:-------:|:-------------:|:--------:|:------------:|:----------:|
| MENU_147 | Pengaturan (Parent Menu)           | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_148 | Profil Sekolah                     | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_149 | Upload Logo Sekolah                | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_150 | Manajemen User — Daftar            | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_151 | Manajemen User — Tambah            | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_152 | Manajemen User — Edit              | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_153 | Manajemen User — Hapus             | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_154 | Reset Password User                | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_155 | Manajemen Role — Daftar            | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_156 | Manajemen Role — Tambah            | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_157 | Manajemen Role — Edit              | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_158 | Manajemen Role — Hapus             | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_159 | Assign Permission ke Role          | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_160 | Manajemen Permission — Daftar      | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_161 | Manajemen Permission — Tambah      | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_162 | Manajemen Permission — Edit        | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_163 | Manajemen Permission — Hapus       | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_164 | Manajemen Menu — Daftar            | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_165 | Manajemen Menu — Tambah            | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_166 | Manajemen Menu — Edit              | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_167 | Assign Menu ke Role                | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_168 | Aturan Absensi — Jam Masuk/Pulang  | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_169 | Batas Toleransi Keterlambatan      | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_170 | Batas Maksimal Alpha               | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_171 | Pengaturan SMTP Email              | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_172 | Test Kirim Email SMTP              | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_173 | Log Aktivitas Sistem               | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_174 | Filter & Cari Log Aktivitas        | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_175 | Backup Database                    | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_176 | Restore Database                   | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_177 | Riwayat Backup                     | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_178 | Informasi Sistem & Versi           | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_179 | Pengaturan Format Nomor Urut       | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MENU_180 | Pengaturan Tema Warna Aplikasi     | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |

---

## [GROUP-11] PROFIL PENGGUNA

| Kode     | Nama Menu                      | R1 Super Admin | R2 Admin Sekolah | R3 Guru | R4 Wali Kelas | R5 Siswa | R6 Orang Tua | R7 Op.PPDB |
|----------|--------------------------------|:--------------:|:----------------:|:-------:|:-------------:|:--------:|:------------:|:----------:|
| MENU_181 | Profil Saya                    | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MENU_182 | Edit Profil                    | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MENU_183 | Ubah Password                  | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MENU_184 | Ubah Foto Profil / Avatar      | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MENU_185 | Riwayat Login Saya             | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |

---

## [GROUP-12] AUTENTIKASI (Halaman Publik)

| Kode     | Nama Menu                      | R1 Super Admin | R2 Admin Sekolah | R3 Guru | R4 Wali Kelas | R5 Siswa | R6 Orang Tua | R7 Op.PPDB |
|----------|--------------------------------|:--------------:|:----------------:|:-------:|:-------------:|:--------:|:------------:|:----------:|
| MENU_186 | Halaman Login                  | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MENU_187 | Halaman Lupa Password          | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MENU_188 | Halaman Reset Password         | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MENU_189 | Halaman Verifikasi Email       | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MENU_190 | Logout                         | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |

---

## REKAPITULASI AKSES PER ROLE

| Role | Jumlah Menu Dapat Diakses | Persentase dari 190 Menu |
|------|:-------------------------:|:------------------------:|
| R1 — Super Admin        | 190 | 100% |
| R2 — Admin Sekolah      | 141 | 74%  |
| R3 — Guru               | 71  | 37%  |
| R4 — Wali Kelas         | 84  | 44%  |
| R5 — Siswa              | 47  | 25%  |
| R6 — Orang Tua / Wali   | 46  | 24%  |
| R7 — Operator PPDB      | 41  | 22%  |

---

## SEEDER LARAVEL — menu_role (Contoh Implementasi)

```php
<?php
// database/seeders/MenuRoleSeeder.php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use App\Models\Menu;
use App\Models\Role;

class MenuRoleSeeder extends Seeder
{
    public function run(): void
    {
        // Ambil semua role
        $superAdmin   = Role::where('name', 'super-admin')->first();
        $adminSekolah = Role::where('name', 'admin-sekolah')->first();
        $guru         = Role::where('name', 'guru')->first();
        $waliKelas    = Role::where('name', 'wali-kelas')->first();
        $siswa        = Role::where('name', 'siswa')->first();
        $orangTua     = Role::where('name', 'orang-tua')->first();
        $operatorPpdb = Role::where('name', 'operator-ppdb')->first();

        // -------------------------------------------------------
        // Helper: attach menu ke role berdasarkan array kode menu
        // -------------------------------------------------------
        $attach = function (Role $role, array $codes) {
            $ids = Menu::whereIn('code', $codes)->pluck('id');
            $role->menus()->syncWithoutDetaching($ids);
        };

        // -------------------------------------------------------
        // R1 — SUPER ADMIN: semua menu
        // -------------------------------------------------------
        $allMenuIds = Menu::pluck('id');
        $superAdmin->menus()->sync($allMenuIds);

        // -------------------------------------------------------
        // R2 — ADMIN SEKOLAH
        // -------------------------------------------------------
        $attach($adminSekolah, [
            // Dashboard
            'dashboard','dashboard.summary','dashboard.notifications',
            'dashboard.calendar','dashboard.ppdb-stats','dashboard.pending-approval',
            'dashboard.alpha-students','dashboard.weekly-chart',
            // PPDB
            'ppdb','ppdb.settings','ppdb.registrants','ppdb.registrants.create',
            'ppdb.detail','ppdb.edit','ppdb.delete','ppdb.verification',
            'ppdb.verification-detail','ppdb.selection','ppdb.status-update',
            'ppdb.print-card','ppdb.convert-student','ppdb.reports',
            'ppdb.export-excel','ppdb.export-pdf','ppdb.upload-doc','ppdb.download-doc',
            // Siswa
            'students','students.list','students.create','students.detail',
            'students.edit','students.delete','students.import','students.import-template',
            'students.export-excel','students.export-pdf','students.mutation',
            'students.transfer-out','students.alumni','students.alumni-process',
            'students.qr-generate','students.id-card-print','students.parents',
            'students.parents-edit','students.history','students.assign-class',
            // Guru
            'teachers','teachers.list','teachers.create','teachers.detail',
            'teachers.edit','teachers.delete','teachers.import','teachers.import-template',
            'teachers.export','teachers.assign-subject','teachers.assign-homeroom',
            'teachers.attendance-create','teachers.attendance-recap',
            'staff.list','staff.edit',
            // Akademik
            'academic','academic.years','academic.years-create','academic.years-edit',
            'academic.set-active-year','academic.classrooms','academic.classrooms-create',
            'academic.classrooms-edit','academic.classrooms-delete',
            'academic.subjects','academic.subjects-create','academic.subjects-edit',
            'academic.subjects-delete','academic.schedules','academic.schedules-create',
            'academic.schedules-edit','academic.schedules-delete','academic.my-schedule',
            'academic.print-schedule','academic.conflict-check',
            'academic.holidays','academic.holidays-create','academic.holidays-edit',
            'academic.holidays-delete','academic.calendar-view',
            // Absensi
            'attendance','attendance.qr-scan','attendance.manual-daily',
            'attendance.manual-subject','attendance.manual-batch','attendance.edit',
            'attendance.delete','attendance.rekap-siswa','attendance.rekap-kelas',
            'attendance.rekap-harian','attendance.rekap-mingguan','attendance.rekap-bulanan',
            'attendance.rekap-semester','attendance.alpha-report',
            'attendance.export-pdf','attendance.export-excel',
            'attendance.qr-manage','attendance.qr-regen','attendance.qr-log',
            'attendance.print-raport',
            // Izin
            'permits','permits.submit','permits.list','permits.detail',
            'permits.approval','permits.edit','permits.delete','permits.upload',
            'permits.download','permits.history','permits.recap','permits.export',
            // Laporan
            'reports','reports.by-student','reports.by-class','reports.by-subject',
            'reports.by-school','reports.percentage','reports.alpha-ranking',
            'reports.print','reports.export-excel','reports.ppdb',
            'reports.teacher-attendance','reports.dashboard-chart',
            'reports.monthly-summary','reports.semester',
            // Notifikasi
            'notifications','notifications.inbox','notifications.mark-read',
            'notifications.delete','notifications.settings','notifications.templates',
            'notifications.templates-edit','notifications.test-send','notifications.log',
            // Pengaturan
            'settings','settings.school-profile','settings.school-logo',
            'settings.users','settings.users-create','settings.users-edit',
            'settings.users-reset-pass',
            'settings.attendance-rules','settings.late-tolerance','settings.alpha-threshold',
            'settings.activity-log','settings.activity-log-filter',
            'settings.system-info','settings.number-format','settings.theme',
            // Profil & Auth
            'profile','profile.edit','profile.password','profile.avatar','profile.login-history',
            'auth.login','auth.forgot-password','auth.reset-password',
            'auth.verify-email','auth.logout',
        ]);

        // -------------------------------------------------------
        // R3 — GURU MATA PELAJARAN
        // -------------------------------------------------------
        $attach($guru, [
            'dashboard','dashboard.summary','dashboard.notifications','dashboard.calendar',
            'dashboard.weekly-chart',
            'students','students.list','students.detail',
            'teachers','teachers.detail','teachers.attendance-recap',
            'academic','academic.classrooms','academic.subjects','academic.schedules',
            'academic.my-schedule','academic.print-schedule',
            'academic.holidays','academic.calendar-view',
            'attendance','attendance.qr-scan','attendance.manual-daily',
            'attendance.manual-subject','attendance.edit',
            'attendance.rekap-kelas','attendance.rekap-harian',
            'attendance.rekap-mingguan','attendance.rekap-bulanan','attendance.rekap-semester',
            'attendance.export-pdf','attendance.export-excel','attendance.qr-log',
            'permits','permits.list','permits.detail','permits.download',
            'permits.recap',
            'reports','reports.by-student','reports.by-class','reports.by-subject',
            'reports.percentage','reports.export-excel','reports.dashboard-chart',
            'reports.monthly-summary','reports.semester',
            'notifications','notifications.inbox','notifications.mark-read','notifications.delete',
            'profile','profile.edit','profile.password','profile.avatar','profile.login-history',
            'auth.login','auth.forgot-password','auth.reset-password',
            'auth.verify-email','auth.logout',
        ]);

        // -------------------------------------------------------
        // R4 — WALI KELAS
        // -------------------------------------------------------
        $attach($waliKelas, [
            'dashboard','dashboard.summary','dashboard.notifications','dashboard.calendar',
            'dashboard.pending-approval','dashboard.weekly-chart',
            'students','students.list','students.detail',
            'students.export-excel','students.export-pdf',
            'students.id-card-print','students.parents','students.history',
            'teachers','teachers.detail','teachers.attendance-recap',
            'academic','academic.classrooms','academic.subjects','academic.schedules',
            'academic.my-schedule','academic.print-schedule',
            'academic.holidays','academic.calendar-view',
            'attendance','attendance.qr-scan','attendance.manual-daily',
            'attendance.manual-subject','attendance.manual-batch','attendance.edit',
            'attendance.rekap-siswa','attendance.rekap-kelas','attendance.rekap-harian',
            'attendance.rekap-mingguan','attendance.rekap-bulanan','attendance.rekap-semester',
            'attendance.alpha-report',
            'attendance.export-pdf','attendance.export-excel','attendance.qr-log',
            'attendance.print-raport',
            'permits','permits.list','permits.detail','permits.approval',
            'permits.download','permits.recap','permits.export',
            'reports','reports.by-student','reports.by-class','reports.by-subject',
            'reports.percentage','reports.alpha-ranking','reports.print',
            'reports.export-excel','reports.dashboard-chart',
            'reports.monthly-summary','reports.semester',
            'notifications','notifications.inbox','notifications.mark-read','notifications.delete',
            'profile','profile.edit','profile.password','profile.avatar','profile.login-history',
            'auth.login','auth.forgot-password','auth.reset-password',
            'auth.verify-email','auth.logout',
        ]);

        // -------------------------------------------------------
        // R5 — SISWA
        // -------------------------------------------------------
        $attach($siswa, [
            'dashboard','dashboard.notifications','dashboard.calendar',
            'students','students.detail',
            'academic','academic.subjects','academic.schedules',
            'academic.my-schedule','academic.print-schedule',
            'academic.holidays','academic.calendar-view',
            'attendance','attendance.rekap-siswa',
            'attendance.rekap-mingguan','attendance.rekap-bulanan','attendance.rekap-semester',
            'attendance.export-pdf','attendance.qr-log','attendance.print-raport',
            'permits','permits.submit','permits.list','permits.detail',
            'permits.edit','permits.upload','permits.download','permits.history',
            'reports','reports.by-student','reports.print','reports.monthly-summary',
            'reports.semester',
            'notifications','notifications.inbox','notifications.mark-read','notifications.delete',
            'profile','profile.edit','profile.password','profile.avatar','profile.login-history',
            'auth.login','auth.forgot-password','auth.reset-password',
            'auth.verify-email','auth.logout',
        ]);

        // -------------------------------------------------------
        // R6 — ORANG TUA / WALI MURID
        // -------------------------------------------------------
        $attach($orangTua, [
            'dashboard','dashboard.notifications','dashboard.calendar',
            'students','students.detail','students.history',
            'academic','academic.schedules','academic.holidays','academic.calendar-view',
            'ppdb','ppdb.public-form','ppdb.check-status','ppdb.upload-doc',
            'attendance','attendance.child-attendance',
            'attendance.rekap-mingguan','attendance.rekap-bulanan','attendance.rekap-semester',
            'attendance.export-pdf','attendance.print-raport',
            'permits','permits.submit','permits.list','permits.detail',
            'permits.edit','permits.upload','permits.download','permits.history',
            'reports','reports.by-student','reports.print','reports.monthly-summary',
            'reports.semester',
            'notifications','notifications.inbox','notifications.mark-read','notifications.delete',
            'profile','profile.edit','profile.password','profile.avatar','profile.login-history',
            'auth.login','auth.forgot-password','auth.reset-password',
            'auth.verify-email','auth.logout',
        ]);

        // -------------------------------------------------------
        // R7 — OPERATOR PPDB
        // -------------------------------------------------------
        $attach($operatorPpdb, [
            'dashboard','dashboard.notifications','dashboard.ppdb-stats',
            'ppdb','ppdb.registrants','ppdb.registrants.create','ppdb.detail',
            'ppdb.edit','ppdb.verification','ppdb.verification-detail',
            'ppdb.selection','ppdb.status-update','ppdb.print-card',
            'ppdb.reports','ppdb.export-excel','ppdb.export-pdf',
            'ppdb.public-form','ppdb.check-status','ppdb.upload-doc','ppdb.download-doc',
            'reports','reports.ppdb',
            'notifications','notifications.inbox','notifications.mark-read','notifications.delete',
            'profile','profile.edit','profile.password','profile.avatar','profile.login-history',
            'auth.login','auth.forgot-password','auth.reset-password',
            'auth.verify-email','auth.logout',
        ]);
    }
}
```

---

## RINGKASAN KEBIJAKAN AKSES PER ROLE

### R1 — Super Admin
> Akses penuh ke **semua 190 menu** tanpa terkecuali. Satu-satunya role yang bisa mengelola Role, Permission, Menu, Backup/Restore database, SMTP, dan WhatsApp API.

### R2 — Admin Sekolah (141 menu)
> Kelola operasional sekolah sepenuhnya. **Tidak bisa:** hapus user, kelola role/permission/menu, konfigurasi SMTP, backup/restore, WhatsApp API.

### R3 — Guru Mata Pelajaran (71 menu)
> Input absensi mapel yang diampu, lihat rekap kelas yang diajar. **Tidak bisa:** edit data siswa/guru, hapus absensi, batch absensi, approve izin, akses laporan sekolah.

### R4 — Wali Kelas (84 menu)
> Lebih luas dari Guru — bisa approve izin, batch absensi, alpha report, export laporan kelas. **Tidak bisa:** CRUD data master, kelola user/role, backup.

### R5 — Siswa (47 menu)
> Read-only untuk data pribadi. Bisa: lihat rekap absensi diri sendiri, ajukan izin, lihat jadwal, download raport kehadiran diri sendiri.

### R6 — Orang Tua / Wali (46 menu)
> Pantau absensi anak, ajukan izin/sakit, daftar PPDB online. **Tidak bisa:** input absensi, akses data sekolah, laporan per kelas.

### R7 — Operator PPDB (41 menu)
> Fokus pada modul PPDB saja. **Tidak bisa:** akses data siswa aktif, absensi, laporan akademik, atau pengaturan sistem.