filled('tanggal')) { $query->whereDate('waktu', $request->tanggal); } else { // Default jika tidak ada filter tanggal: hari ini $query->whereDate('waktu', Carbon::today()); } // 2. Filter berdasarkan Jurusan // 'whereHas' digunakan untuk filter berdasarkan relasi if ($request->filled('jurusan_id') && $request->jurusan_id != 'all') { $query->whereHas('siswa', function ($q) use ($request) { $q->where('id_jurusan', $request->jurusan_id); }); } // 3. Filter berdasarkan Kelas if ($request->filled('kelas_id') && $request->kelas_id != 'all') { $query->whereHas('siswa', function ($q) use ($request) { $q->where('id_kelas', $request->kelas_id); }); } // 4. Filter berdasarkan Device if ($request->filled('device_id') && $request->device_id != 'all') { $query->where('id_devices', $request->device_id); } // Eksekusi query setelah semua filter diterapkan $absensi = $query->latest('waktu')->get(); // Data untuk mengisi dropdown filter tetap sama $jurusans = Jurusan::orderBy('nama_jurusan')->get(); $kelases = Kelas::orderBy('nama_kelas')->get(); $devices = Devices::orderBy('nama_device')->get(); return view('admin.presensi.siswa', compact('absensi', 'jurusans', 'kelases', 'devices')); } }