MINI
C:
/
siak
/
app
/
AdminLTE
/
Upload File:
files >> C:/siak/app/AdminLTE/Dasboard.php
<?php session_start(); if (!isset($_SESSION['grabtool_sudah_login'])) { header('location:login.php'); exit; } require_once '../config_oracle.php'; // ================= CACHE 60 DETIK ================= $cacheFile = __DIR__ . "/cache_dashboard.json"; if (file_exists($cacheFile) && (time() - filemtime($cacheFile) < 60)) { $cache = json_decode(file_get_contents($cacheFile), true); extract($cache); } else { // ==== STATISTIK CEPAT (1x scan) ==== $sql = " SELECT COUNT(*) TOTAL, SUM(CASE WHEN JENIS_KLMIN='1' THEN 1 ELSE 0 END) LAKI, SUM(CASE WHEN JENIS_KLMIN='2' THEN 1 ELSE 0 END) PEREM, COUNT(DISTINCT NO_KK) KK FROM biodata_wni "; $stid = oci_parse($conn, $sql); oci_execute($stid); $row = oci_fetch_assoc($stid); $total = (int)$row['TOTAL']; $laki = (int)$row['LAKI']; $perem = (int)$row['PEREM']; $kk = (int)$row['KK']; // ==== TOP 10 KELURAHAN ==== $sql2 = " SELECT * FROM ( SELECT NVL(NAMA_KEL,'TIDAK ADA') NAMA_KEL, COUNT(*) JML FROM biodata_wni GROUP BY NAMA_KEL ORDER BY JML DESC ) WHERE ROWNUM <= 10 "; $stid2 = oci_parse($conn, $sql2); oci_execute($stid2); $labels = []; $values = []; while ($r = oci_fetch_assoc($stid2)) { $labels[] = $r['NAMA_KEL']; $values[] = (int)$r['JML']; } file_put_contents($cacheFile, json_encode(compact( 'total','laki','perem','kk','labels','values' ))); } ?> <!DOCTYPE html> <html lang="id"> <head> <meta charset="UTF-8"> <title>Dashboard Penduduk</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css"> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <style> body{background:#f4f6f9} .stat{padding:20px;border-radius:12px;color:#fff} .total{background:#007bff} .laki{background:#17a2b8} .perem{background:#e83e8c} .kk{background:#28a745} .angka{font-size:32px;font-weight:bold} </style> </head> <body> <div class="container mt-4"> <h3 class="text-center mb-4">Dashboard Kependudukan Kaltara</h3> <div class="row text-center"> <div class="col-md-3 mb-3"> <div class="stat total"> Total Penduduk <div class="angka"><?=number_format($total)?></div> </div> </div> <div class="col-md-3 mb-3"> <div class="stat laki"> Laki-Laki <div class="angka"><?=number_format($laki)?></div> </div> </div> <div class="col-md-3 mb-3"> <div class="stat perem"> Perempuan <div class="angka"><?=number_format($perem)?></div> </div> </div> <div class="col-md-3 mb-3"> <div class="stat kk"> Jumlah KK <div class="angka"><?=number_format($kk)?></div> </div> </div> </div> <div class="card mt-4"> <div class="card-header">Top 10 Kelurahan Berdasarkan Jumlah Penduduk</div> <div class="card-body"> <canvas id="chart"></canvas> </div> </div> </div> <script> new Chart(document.getElementById('chart'),{ type:'bar', data:{ labels: <?=json_encode($labels)?>, datasets:[{ label:'Jumlah Penduduk', data:<?=json_encode($values)?>, borderWidth:1 }] }, options:{ responsive:true, scales:{ y:{ beginAtZero:true } } } }); </script> </body> </html>
Copyright ©2021 || Defacer Indonesia