import { Badge, Box, Card, Grid, GridCol, Group, Progress, Stack, Text, ThemeIcon, Title, useMantineColorScheme, } from "@mantine/core"; import { Baby, BarChart3, Building2, Home, PieChart as PieChartIcon, TrendingDown, Users, } from "lucide-react"; import { Bar, BarChart, CartesianGrid, Cell, Pie, PieChart, ResponsiveContainer, Tooltip, XAxis, YAxis, } from "recharts"; // KPI Data const kpiData = [ { id: 1, title: "Total Penduduk", value: "5.634", subtitle: "Aktif terdaftar", icon: Users, }, { id: 2, title: "Kepala Keluarga", value: "1.354", subtitle: "Total KK", icon: Home, }, { id: 3, title: "Kelahiran", value: "23", subtitle: "Tahun ini", icon: Baby, }, { id: 4, title: "Kemiskinan", value: "324", subtitle: "-10% dari tahun lalu", trend: "positive", icon: TrendingDown, }, ]; // Age Distribution Data const ageDistributionData = [ { ageRange: "17-25", total: 850 }, { ageRange: "26-35", total: 1200 }, { ageRange: "36-45", total: 1100 }, { ageRange: "46-55", total: 950 }, { ageRange: "56-65", total: 750 }, { ageRange: "65+", total: 484 }, ]; // Job Distribution Data const jobDistributionData = [ { job: "Sipil", total: 1200 }, { job: "Guru", total: 850 }, { job: "Petani", total: 950 }, { job: "Pedagang", total: 750 }, { job: "Wiraswasta", total: 984 }, ]; // Religion Data const religionData = [ { name: "Hindu", value: 4234, color: "#EF4444" }, { name: "Islam", value: 856, color: "#3B82F6" }, { name: "Kristen", value: 412, color: "#22C55E" }, { name: "Buddha", value: 202, color: "#FACC15" }, ]; // Banjar Data const banjarData = [ { banjar: "Darmasaba", population: 1200, kk: 300, poor: 45 }, { banjar: "Manesa", population: 950, kk: 240, poor: 32 }, { banjar: "Cabe", population: 800, kk: 200, poor: 28 }, { banjar: "Penenjoan", population: 1100, kk: 280, poor: 38 }, { banjar: "Baler Pasar", population: 984, kk: 250, poor: 42 }, { banjar: "Bucu", population: 600, kk: 184, poor: 25 }, ]; // Dynamic Stats Data const dynamicStats = [ { title: "Kelahiran", value: "23", icon: Baby, color: "#22C55E", }, { title: "Kematian", value: "12", icon: TrendingDown, color: "#EF4444", }, { title: "Pindah Masuk", value: "45", icon: Users, color: "#3B82F6", }, { title: "Pindah Keluar", value: "32", icon: Users, color: "#3B82F6", }, ]; // Sektor Unggulan Data const sektorUnggulanData = [ { sektor: "Pertanian", value: 65 }, { sektor: "Perdagangan", value: 45 }, { sektor: "Industri", value: 38 }, { sektor: "Jasa", value: 52 }, ]; const DemografiPekerjaan = () => { const { colorScheme } = useMantineColorScheme(); const dark = colorScheme === "dark"; return ( {/* TOP SECTION - 4 STAT CARDS */} {kpiData.map((item) => ( {item.title} {item.value} {item.trend === "positive" && ( )} {item.subtitle} ))} {/* ROW 2 - 3 COLUMNS */} {/* LEFT: PENGELOMPOKAN UMUR */} Pengelompokan Umur {/* CENTER: DEMOGRAFI PEKERJAAN */} Demografi Pekerjaan {/* RIGHT: STATISTIK DINAMIKA PENDUDUK */} Dinamika Penduduk {dynamicStats.map((stat, index) => ( {stat.title} {stat.value} ))} {/* ROW 3 - 3 COLUMNS */} {/* LEFT: DISTRIBUSI AGAMA */} Distribusi Agama {religionData.map((entry, index) => ( ))} {religionData.map((item, index) => ( {item.name} {item.value.toLocaleString()} ))} {/* CENTER: DATA PER BANJAR */} Data per Banjar {banjarData.map((item, index) => ( ))}
Banjar Penduduk KK Miskin
{item.banjar} {item.population.toLocaleString()} {item.kk.toLocaleString()} {item.poor.toLocaleString()}
{/* RIGHT: STATISTIK SEKTOR UNGGULAN */} Sektor Unggulan {sektorUnggulanData.map((entry, index) => ( ))}
); }; export default DemografiPekerjaan;