import { BarChart, PieChart } from "@mantine/charts";
import {
Box,
Card,
Grid,
Group,
Stack,
Table,
Text,
Title,
useMantineColorScheme,
} from "@mantine/core";
import {
IconArrowDown,
IconArrowUp,
IconBabyCarriage,
IconSkull,
} from "@tabler/icons-react";
import React from "react";
// Sample Data
const kpiData = [
{
id: 1,
title: "Total Penduduk",
value: "5.634",
sub: "Aktif terdaftar",
icon: (
),
},
{
id: 2,
title: "Kepala Keluarga",
value: "1.354",
sub: "Total KK",
icon: (
),
},
{
id: 3,
title: "Kelahiran",
value: "23",
sub: "Tahun ini",
icon: (
),
},
{
id: 4,
title: "Kemiskinan",
value: "324",
delta: "-10% dari tahun lalu",
deltaType: "positive",
icon: (
),
},
];
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 },
];
const jobDistributionData = [
{ job: "Sipil", total: 1200 },
{ job: "Guru", total: 850 },
{ job: "Petani", total: 950 },
{ job: "Pedagang", total: 750 },
{ job: "Wiraswasta", total: 984 },
];
const religionData = [
{ religion: "Hindu", total: 4234, color: "red" },
{ religion: "Islam", total: 856, color: "blue" },
{ religion: "Kristen", total: 412, color: "green" },
{ religion: "Buddha", total: 202, color: "yellow" },
];
const banjarData = [
{ banjar: "Banjar Darmasaba", population: 1200, kk: 300, poor: 45 },
{ banjar: "Banjar Manesa", population: 950, kk: 240, poor: 32 },
{ banjar: "Banjar Cabe", population: 800, kk: 200, poor: 28 },
{ banjar: "Banjar Penenjoan", population: 1100, kk: 280, poor: 38 },
{ banjar: "Banjar Baler Pasar", population: 984, kk: 250, poor: 42 },
{ banjar: "Banjar Bucu", population: 600, kk: 184, poor: 25 },
];
const dynamicStats = [
{
title: "Kelahiran",
value: "23",
icon: ,
color: "green",
},
{
title: "Kematian",
value: "12",
icon: ,
color: "red",
},
{
title: "Pindah Masuk",
value: "45",
icon: ,
color: "blue",
},
{
title: "Pindah Keluar",
value: "32",
icon: ,
color: "orange",
},
];
const DemografiPekerjaan = () => {
const { colorScheme } = useMantineColorScheme();
const dark = colorScheme === "dark";
return (
{/* KPI Cards */}
{kpiData.map((kpi) => (
{kpi.title}
{React.cloneElement(kpi.icon, {
className: "h-6 w-6",
color: dark
? "var(--mantine-color-dark-3)"
: "var(--mantine-color-dimmed)",
})}
{kpi.value}
{kpi.delta && (
{kpi.delta}
)}
{kpi.sub && (
{kpi.sub}
)}
))}
{/* Charts Section */}
{/* Grafik Pengelompokan Umur */}
Grafik Pengelompokan Umur
{/* Demografi Pekerjaan */}
Demografi Pekerjaan
{/* Agama & Data per Banjar */}
{/* Distribusi Agama */}
Distribusi Agama
({
name: item.religion,
value: item.total,
color: item.color,
}))}
withLabels
withLabelsLine
labelsPosition="outside"
labelsType="percent"
/>
{/* Data per Banjar */}
Data per Banjar
Banjar
Penduduk
KK
Miskin
{banjarData.map((item, index) => (
{item.banjar}
{item.population.toLocaleString()}
{item.kk.toLocaleString()}
{item.poor.toLocaleString()}
))}
{/* Statistik Dinamika Penduduk */}
Statistik Dinamika Penduduk
{dynamicStats.map((stat, index) => (
{stat.title}
{stat.value}
{stat.icon}
))}
);
};
export default DemografiPekerjaan;