count(); $totalPenyakit = Penyakit::count(); $totalHama = Penyakit::where('jenis', 'Hama')->count(); $totalPenyakitOnly = Penyakit::where('jenis', 'Penyakit')->count(); $totalGejala = Gejala::count(); $totalRule = Rule::count(); $totalTerdeteksi = Konsultasi::where('status', 'selesai')->count(); $totalTidakTerdeteksi = Konsultasi::where('status', 'tidak_terdeteksi')->count(); // Penyakit paling sering menjadi diagnosa utama $penyakitTerbanyak = HasilDiagnosa::select('id_penyakit', DB::raw('count(*) as total')) ->with('penyakit') ->where('ranking', 1) ->groupBy('id_penyakit') ->orderByDesc('total') ->limit(6) ->get(); // 6 konsultasi terbaru $konsultasiTerbaru = Konsultasi::with(['hasilUtama.penyakit', 'user']) ->latest('tanggal') ->limit(6) ->get(); // Konsultasi per bulan (tahun ini) — untuk grafik $konsultasiPerBulanRaw = Konsultasi::selectRaw('MONTH(tanggal) as bulan, COUNT(*) as total') ->whereYear('tanggal', now()->year) ->groupBy('bulan') ->orderBy('bulan') ->pluck('total', 'bulan'); // Isi array 12 bulan, bulan yang kosong = 0 $konsultasiPerBulan = collect(range(1, 12))->map(fn($b) => $konsultasiPerBulanRaw[$b] ?? 0)->values()->toArray(); return view('admin.dashboard', compact( 'totalKonsultasi', 'konsultasiHariIni', 'totalPenyakit', 'totalHama', 'totalPenyakitOnly', 'totalGejala', 'totalRule', 'totalTerdeteksi', 'totalTidakTerdeteksi', 'penyakitTerbanyak', 'konsultasiTerbaru', 'konsultasiPerBulan' )); } }