{"id":6315,"date":"2026-09-30T21:39:50","date_gmt":"2026-09-30T21:39:50","guid":{"rendered":"https:\/\/ppid.trunojoyo.ac.id\/?page_id=6315"},"modified":"2026-09-30T21:55:02","modified_gmt":"2026-09-30T21:55:02","slug":"realisasi-pendapatan-dan-pengeluaran","status":"publish","type":"page","link":"https:\/\/ppid.trunojoyo.ac.id\/index.php\/realisasi-pendapatan-dan-pengeluaran\/","title":{"rendered":"Realisasi Pendapatan dan Pengeluaran"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6315\" class=\"elementor elementor-6315\">\n\t\t\t\t<div class=\"elementor-element elementor-element-464a87f e-flex e-con-boxed e-con e-parent\" data-id=\"464a87f\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-486c59c elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"486c59c\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"dashboard-anggaran\">\r\n\r\n    <!-- =====================================================\r\n         HEADER + FILTER + UPDATE\r\n         ===================================================== -->\r\n\r\n    <div class=\"dashboard-header\">\r\n\r\n        <div class=\"header-content\">\r\n\r\n            <h2>\r\n                Realisasi Berdasarkan Sumber Dana\r\n            <\/h2>\r\n\r\n            <p>\r\n                Rincian dana, pengeluaran, sisa dana, dan tingkat penggunaan\r\n            <\/p>\r\n\r\n            <div class=\"dashboard-update\">\r\n\r\n                <span class=\"update-dot\"><\/span>\r\n\r\n                <span>\r\n                    Diperbarui pada\r\n                <\/span>\r\n\r\n                <strong id=\"update-waktu\">\r\n                    -\r\n                <\/strong>\r\n\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n\r\n        <div class=\"tahun-box\">\r\n\r\n            <label for=\"pilih-tahun\">\r\n                Tahun Anggaran\r\n            <\/label>\r\n\r\n            <select id=\"pilih-tahun\">\r\n\r\n                <option value=\"semua\">\r\n                    Semua Tahun\r\n                <\/option>\r\n\r\n            <\/select>\r\n\r\n        <\/div>\r\n\r\n    <\/div>\r\n\r\n\r\n\r\n    <!-- =====================================================\r\n         CARD SUMBER DANA\r\n         ===================================================== -->\r\n\r\n    <div\r\n        id=\"container-sumber-dana\"\r\n        class=\"sumber-grid\">\r\n    <\/div>\r\n\r\n\r\n\r\n    <!-- =====================================================\r\n         TABLEPRESS SEBAGAI SUMBER DATA\r\n         ===================================================== -->\r\n\r\n    <div class=\"tablepress-data-source\">\r\n\r\n        \n<table id=\"tablepress-83\" class=\"tablepress tablepress-id-83\">\n<thead>\n<tr class=\"row-1 odd\">\n\t<th class=\"column-1\">Tahun<\/th><th class=\"column-2\">Sumber Dana<\/th><th class=\"column-3\">Total Dana<\/th><th class=\"column-4\">Belanja Pegawai<\/th><th class=\"column-5\">Belanja Barang<\/th><th class=\"column-6\">Belanja Modal<\/th><th class=\"column-7\">Total Pengeluaran<\/th><th class=\"column-8\">Sisa Dana<\/th><th class=\"column-9\">% Penggunaan<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-hover\">\n<tr class=\"row-2 even\">\n\t<td class=\"column-1\">2026<\/td><td class=\"column-2\">RM-BOPTN<\/td><td class=\"column-3\">Rp38,203,509,000<\/td><td class=\"column-4\">Rp0<\/td><td class=\"column-5\">Rp13,024,554,125<\/td><td class=\"column-6\">Rp10,719,426,722<\/td><td class=\"column-7\">Rp23,743,980,847<\/td><td class=\"column-8\">Rp14,459,528,153<\/td><td class=\"column-9\">62.15%<\/td>\n<\/tr>\n<tr class=\"row-3 odd\">\n\t<td class=\"column-1\">2026<\/td><td class=\"column-2\">RM<\/td><td class=\"column-3\">Rp155,906,841,000<\/td><td class=\"column-4\">Rp145,600,051,000<\/td><td class=\"column-5\">Rp7,132,047,200<\/td><td class=\"column-6\">Rp0<\/td><td class=\"column-7\">Rp7,132,047,200<\/td><td class=\"column-8\">Rp148,774,793,800<\/td><td class=\"column-9\">4.57%<\/td>\n<\/tr>\n<tr class=\"row-4 even\">\n\t<td class=\"column-1\">2026<\/td><td class=\"column-2\">BLU<\/td><td class=\"column-3\">Rp99,400,000,000<\/td><td class=\"column-4\">Rp0<\/td><td class=\"column-5\">Rp32,049,541,014<\/td><td class=\"column-6\">Rp479,276,269<\/td><td class=\"column-7\">Rp32,528,817,283<\/td><td class=\"column-8\">Rp66,871,182,717<\/td><td class=\"column-9\">32.73%<\/td>\n<\/tr>\n<tr class=\"row-5 odd\">\n\t<td class=\"column-1\">2026<\/td><td class=\"column-2\">SALDO AWAL<\/td><td class=\"column-3\">Rp75,630,000,000<\/td><td class=\"column-4\">Rp0<\/td><td class=\"column-5\">Rp5,326,300,000<\/td><td class=\"column-6\">Rp1,748,716,398<\/td><td class=\"column-7\">Rp7,075,016,398<\/td><td class=\"column-8\">Rp68,554,983,602<\/td><td class=\"column-9\">9.35%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-83 from cache -->\r\n\r\n    <\/div>\r\n\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<style>\r\n\r\n\/* =========================================================\r\n   DASHBOARD\r\n   ========================================================= *\/\r\n\r\n.dashboard-anggaran {\r\n\r\n    width: 100%;\r\n\r\n    max-width: 1400px;\r\n\r\n    margin: 25px auto;\r\n\r\n    font-family:\r\n        Arial,\r\n        Helvetica,\r\n        sans-serif;\r\n\r\n    color: #1e293b;\r\n\r\n    box-sizing: border-box;\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   HEADER\r\n   ========================================================= *\/\r\n\r\n.dashboard-header {\r\n\r\n    display: flex;\r\n\r\n    justify-content: space-between;\r\n\r\n    align-items: center;\r\n\r\n    gap: 35px;\r\n\r\n    background: #ffffff;\r\n\r\n    padding: 24px 28px;\r\n\r\n    border: 1px solid #e5eaf0;\r\n\r\n    border-radius: 15px;\r\n\r\n    box-shadow:\r\n        0 5px 20px rgba(15, 23, 42, 0.05);\r\n\r\n    margin-bottom: 25px;\r\n\r\n    box-sizing: border-box;\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   KONTEN HEADER\r\n   ========================================================= *\/\r\n\r\n.header-content {\r\n\r\n    min-width: 0;\r\n\r\n}\r\n\r\n\r\n.header-content h2 {\r\n\r\n    margin: 0 0 4px 0 !important;\r\n\r\n    padding: 0 !important;\r\n\r\n    color: #123f70 !important;\r\n\r\n    font-size: 22px !important;\r\n\r\n    line-height: 1.35 !important;\r\n\r\n    font-weight: 700 !important;\r\n\r\n}\r\n\r\n\r\n.header-content p {\r\n\r\n    margin: 0 !important;\r\n\r\n    padding: 0 !important;\r\n\r\n    color: #64748b !important;\r\n\r\n    font-size: 12px !important;\r\n\r\n    line-height: 1.5 !important;\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   UPDATE\r\n   ========================================================= *\/\r\n\r\n.dashboard-update {\r\n\r\n    display: flex;\r\n\r\n    align-items: center;\r\n\r\n    gap: 6px;\r\n\r\n    margin-top: 9px;\r\n\r\n    color: #64748b;\r\n\r\n    font-size: 11px;\r\n\r\n    line-height: 1.5;\r\n\r\n}\r\n\r\n\r\n.dashboard-update strong {\r\n\r\n    color: #334155;\r\n\r\n    font-weight: 700;\r\n\r\n}\r\n\r\n\r\n.update-dot {\r\n\r\n    width: 7px;\r\n\r\n    height: 7px;\r\n\r\n    min-width: 7px;\r\n\r\n    background: #16a34a;\r\n\r\n    border-radius: 50%;\r\n\r\n    display: inline-block;\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   FILTER TAHUN\r\n   ========================================================= *\/\r\n\r\n.tahun-box {\r\n\r\n    display: flex;\r\n\r\n    flex-direction: column;\r\n\r\n    gap: 6px;\r\n\r\n    width: 160px;\r\n\r\n    flex: 0 0 160px;\r\n\r\n}\r\n\r\n\r\n.tahun-box label {\r\n\r\n    font-size: 11px;\r\n\r\n    color: #64748b;\r\n\r\n    font-weight: 600;\r\n\r\n}\r\n\r\n\r\n.tahun-box select {\r\n\r\n    width: 100%;\r\n\r\n    height: 40px;\r\n\r\n    padding:\r\n        0 34px 0 13px;\r\n\r\n    border:\r\n        1px solid #d5dee8;\r\n\r\n    border-radius: 9px;\r\n\r\n    background: #ffffff;\r\n\r\n    color: #1e293b;\r\n\r\n    font-size: 13px;\r\n\r\n    font-weight: 600;\r\n\r\n    outline: none;\r\n\r\n    cursor: pointer;\r\n\r\n    box-sizing: border-box;\r\n\r\n}\r\n\r\n\r\n.tahun-box select:hover {\r\n\r\n    border-color: #b9c6d4;\r\n\r\n}\r\n\r\n\r\n.tahun-box select:focus {\r\n\r\n    border-color: #123f70;\r\n\r\n    box-shadow:\r\n        0 0 0 3px rgba(\r\n            18,\r\n            63,\r\n            112,\r\n            0.08\r\n        );\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   GRID CARD\r\n   ========================================================= *\/\r\n\r\n.sumber-grid {\r\n\r\n    display: grid;\r\n\r\n    grid-template-columns:\r\n        repeat(2, minmax(0, 1fr));\r\n\r\n    gap: 20px;\r\n\r\n    width: 100%;\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   CARD SUMBER DANA\r\n   ========================================================= *\/\r\n\r\n.sumber-card {\r\n\r\n    position: relative;\r\n\r\n    background: #ffffff;\r\n\r\n    border:\r\n        1px solid #e8edf3;\r\n\r\n    border-radius: 17px;\r\n\r\n    padding: 23px;\r\n\r\n    box-sizing: border-box;\r\n\r\n    box-shadow:\r\n        0 7px 25px\r\n        rgba(\r\n            15,\r\n            23,\r\n            42,\r\n            0.06\r\n        );\r\n\r\n    transition:\r\n        transform .2s ease,\r\n        box-shadow .2s ease;\r\n\r\n    overflow: hidden;\r\n\r\n}\r\n\r\n\r\n.sumber-card:hover {\r\n\r\n    transform:\r\n        translateY(-2px);\r\n\r\n    box-shadow:\r\n        0 12px 32px\r\n        rgba(\r\n            15,\r\n            23,\r\n            42,\r\n            0.10\r\n        );\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   GARIS ATAS CARD\r\n   ========================================================= *\/\r\n\r\n.sumber-card::before {\r\n\r\n    content: \"\";\r\n\r\n    position: absolute;\r\n\r\n    top: 0;\r\n\r\n    left: 0;\r\n\r\n    right: 0;\r\n\r\n    height: 4px;\r\n\r\n    background: #123f70;\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   HEADER CARD SUMBER\r\n   ========================================================= *\/\r\n\r\n.sumber-card-header {\r\n\r\n    display: flex;\r\n\r\n    justify-content: space-between;\r\n\r\n    align-items: center;\r\n\r\n    gap: 15px;\r\n\r\n    margin-bottom: 20px;\r\n\r\n}\r\n\r\n\r\n.sumber-card-title {\r\n\r\n    display: flex;\r\n\r\n    align-items: center;\r\n\r\n    gap: 11px;\r\n\r\n    min-width: 0;\r\n\r\n}\r\n\r\n\r\n.sumber-icon {\r\n\r\n    width: 41px;\r\n\r\n    height: 41px;\r\n\r\n    min-width: 41px;\r\n\r\n    display: flex;\r\n\r\n    align-items: center;\r\n\r\n    justify-content: center;\r\n\r\n    border-radius: 10px;\r\n\r\n    background: #eef4fa;\r\n\r\n    color: #123f70;\r\n\r\n    font-size: 12px;\r\n\r\n    font-weight: 700;\r\n\r\n}\r\n\r\n\r\n.sumber-card-title h3 {\r\n\r\n    margin: 0 !important;\r\n\r\n    padding: 0 !important;\r\n\r\n    color: #123f70 !important;\r\n\r\n    font-size: 17px !important;\r\n\r\n    line-height: 1.3 !important;\r\n\r\n    font-weight: 700 !important;\r\n\r\n}\r\n\r\n\r\n.sumber-card-title small {\r\n\r\n    display: block;\r\n\r\n    margin-top: 2px;\r\n\r\n    color: #94a3b8;\r\n\r\n    font-size: 10px;\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   BADGE %\r\n   ========================================================= *\/\r\n\r\n.realisasi-badge {\r\n\r\n    flex:\r\n        0 0 auto;\r\n\r\n    padding:\r\n        6px 10px;\r\n\r\n    border-radius: 20px;\r\n\r\n    background: #eef6f0;\r\n\r\n    color: #15803d;\r\n\r\n    font-size: 12px;\r\n\r\n    font-weight: 700;\r\n\r\n    white-space: nowrap;\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   DATA UTAMA\r\n   ========================================================= *\/\r\n\r\n.data-grid {\r\n\r\n    display: grid;\r\n\r\n    grid-template-columns:\r\n        repeat(3, minmax(0, 1fr));\r\n\r\n    gap: 9px;\r\n\r\n    margin-bottom: 20px;\r\n\r\n}\r\n\r\n\r\n.data-item {\r\n\r\n    background: #f8fafc;\r\n\r\n    border-radius: 10px;\r\n\r\n    padding: 12px;\r\n\r\n    box-sizing: border-box;\r\n\r\n}\r\n\r\n\r\n.data-item-label {\r\n\r\n    display: block;\r\n\r\n    margin-bottom: 5px;\r\n\r\n    color: #64748b;\r\n\r\n    font-size: 10px;\r\n\r\n    line-height: 1.4;\r\n\r\n}\r\n\r\n\r\n.data-item-value {\r\n\r\n    display: block;\r\n\r\n    color: #1e293b;\r\n\r\n    font-size: 13px;\r\n\r\n    line-height: 1.35;\r\n\r\n    font-weight: 700;\r\n\r\n    word-break: break-word;\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   KOMPOSISI PENGELUARAN\r\n   ========================================================= *\/\r\n\r\n.belanja-title {\r\n\r\n    margin-bottom: 10px;\r\n\r\n    color: #475569;\r\n\r\n    font-size: 11px;\r\n\r\n    font-weight: 700;\r\n\r\n}\r\n\r\n\r\n.belanja-list {\r\n\r\n    display: flex;\r\n\r\n    flex-direction: column;\r\n\r\n    gap: 7px;\r\n\r\n    margin-bottom: 19px;\r\n\r\n}\r\n\r\n\r\n.belanja-row {\r\n\r\n    display: flex;\r\n\r\n    justify-content: space-between;\r\n\r\n    align-items: center;\r\n\r\n    gap: 15px;\r\n\r\n    font-size: 11px;\r\n\r\n}\r\n\r\n\r\n.belanja-row span:first-child {\r\n\r\n    color: #64748b;\r\n\r\n}\r\n\r\n\r\n.belanja-row span:last-child {\r\n\r\n    color: #334155;\r\n\r\n    font-weight: 600;\r\n\r\n    text-align: right;\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   PROGRESS\r\n   ========================================================= *\/\r\n\r\n.progress-area {\r\n\r\n    margin-top: 4px;\r\n\r\n}\r\n\r\n\r\n.progress-info {\r\n\r\n    display: flex;\r\n\r\n    justify-content: space-between;\r\n\r\n    align-items: center;\r\n\r\n    margin-bottom: 6px;\r\n\r\n}\r\n\r\n\r\n.progress-info span:first-child {\r\n\r\n    color: #64748b;\r\n\r\n    font-size: 10px;\r\n\r\n}\r\n\r\n\r\n.progress-info span:last-child {\r\n\r\n    color: #123f70;\r\n\r\n    font-size: 11px;\r\n\r\n    font-weight: 700;\r\n\r\n}\r\n\r\n\r\n.progress-track {\r\n\r\n    width: 100%;\r\n\r\n    height: 8px;\r\n\r\n    background: #e9eef3;\r\n\r\n    border-radius: 20px;\r\n\r\n    overflow: hidden;\r\n\r\n}\r\n\r\n\r\n.progress-fill {\r\n\r\n    height: 100%;\r\n\r\n    width: 0;\r\n\r\n    background: #123f70;\r\n\r\n    border-radius: 20px;\r\n\r\n    transition:\r\n        width .7s ease;\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   DATA KOSONG\r\n   ========================================================= *\/\r\n\r\n.data-kosong {\r\n\r\n    grid-column:\r\n        1 \/ -1;\r\n\r\n    background: #ffffff;\r\n\r\n    border:\r\n        1px dashed #cbd5e1;\r\n\r\n    border-radius: 14px;\r\n\r\n    padding: 40px 20px;\r\n\r\n    text-align: center;\r\n\r\n    color: #64748b;\r\n\r\n    font-size: 13px;\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   TABLEPRESS SEBAGAI DATA SOURCE\r\n   ========================================================= *\/\r\n\r\n.tablepress-data-source {\r\n\r\n    position: absolute !important;\r\n\r\n    left: -99999px !important;\r\n\r\n    top: -99999px !important;\r\n\r\n    width: 1px !important;\r\n\r\n    height: 1px !important;\r\n\r\n    overflow: hidden !important;\r\n\r\n    opacity: 0 !important;\r\n\r\n    pointer-events: none !important;\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   TABLET\r\n   ========================================================= *\/\r\n\r\n@media (max-width: 900px) {\r\n\r\n    .dashboard-header {\r\n\r\n        align-items: flex-start;\r\n\r\n    }\r\n\r\n\r\n    .sumber-grid {\r\n\r\n        grid-template-columns:\r\n            1fr;\r\n\r\n    }\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   HP\r\n   ========================================================= *\/\r\n\r\n@media (max-width: 600px) {\r\n\r\n    .dashboard-anggaran {\r\n\r\n        margin:\r\n            15px auto;\r\n\r\n    }\r\n\r\n\r\n    .dashboard-header {\r\n\r\n        flex-direction: column;\r\n\r\n        align-items: stretch;\r\n\r\n        gap: 16px;\r\n\r\n        padding: 19px;\r\n\r\n        border-radius: 13px;\r\n\r\n    }\r\n\r\n\r\n    .header-content h2 {\r\n\r\n        font-size: 19px !important;\r\n\r\n    }\r\n\r\n\r\n    .header-content p {\r\n\r\n        font-size: 11px !important;\r\n\r\n    }\r\n\r\n\r\n    .dashboard-update {\r\n\r\n        font-size: 10px;\r\n\r\n        flex-wrap: wrap;\r\n\r\n    }\r\n\r\n\r\n    .tahun-box {\r\n\r\n        width: 100%;\r\n\r\n        flex: none;\r\n\r\n    }\r\n\r\n\r\n    .tahun-box select {\r\n\r\n        width: 100%;\r\n\r\n    }\r\n\r\n\r\n    .sumber-card {\r\n\r\n        padding: 19px;\r\n\r\n        border-radius: 15px;\r\n\r\n    }\r\n\r\n\r\n    .data-grid {\r\n\r\n        grid-template-columns:\r\n            1fr;\r\n\r\n    }\r\n\r\n\r\n    .sumber-card-title h3 {\r\n\r\n        font-size: 16px !important;\r\n\r\n    }\r\n\r\n}\r\n\r\n<\/style>\r\n\r\n\r\n\r\n<script>\r\n\r\n(function () {\r\n\r\n    \"use strict\";\r\n\r\n\r\n    \/* =====================================================\r\n       FORMAT RUPIAH\r\n       ===================================================== *\/\r\n\r\n    function formatRupiah(nilai) {\r\n\r\n        return new Intl.NumberFormat(\r\n            \"id-ID\",\r\n            {\r\n                style: \"currency\",\r\n                currency: \"IDR\",\r\n                minimumFractionDigits: 0,\r\n                maximumFractionDigits: 0\r\n            }\r\n        ).format(\r\n            Math.round(nilai)\r\n        );\r\n\r\n    }\r\n\r\n\r\n    \/* =====================================================\r\n       BACA ANGKA\r\n       ===================================================== *\/\r\n\r\n    function parseAngka(teks) {\r\n\r\n        if (!teks) {\r\n\r\n            return 0;\r\n\r\n        }\r\n\r\n\r\n        let hasil =\r\n            String(teks)\r\n                .replace(\r\n                    \/Rp\/gi,\r\n                    \"\"\r\n                )\r\n                .replace(\r\n                    \/\\s\/g,\r\n                    \"\"\r\n                )\r\n                .replace(\r\n                    \/[^\\d]\/g,\r\n                    \"\"\r\n                );\r\n\r\n\r\n        return Number(hasil) || 0;\r\n\r\n    }\r\n\r\n\r\n    \/* =====================================================\r\n       UPDATE WAKTU\r\n       ===================================================== *\/\r\n\r\n    function tampilkanWaktu() {\r\n\r\n        const sekarang =\r\n            new Date();\r\n\r\n\r\n        const tanggal =\r\n            sekarang.toLocaleDateString(\r\n                \"id-ID\",\r\n                {\r\n                    day: \"2-digit\",\r\n                    month: \"long\",\r\n                    year: \"numeric\"\r\n                }\r\n            );\r\n\r\n\r\n        const jam =\r\n            sekarang.toLocaleTimeString(\r\n                \"id-ID\",\r\n                {\r\n                    hour: \"2-digit\",\r\n                    minute: \"2-digit\"\r\n                }\r\n            );\r\n\r\n\r\n        const element =\r\n            document.getElementById(\r\n                \"update-waktu\"\r\n            );\r\n\r\n\r\n        if (element) {\r\n\r\n            element.textContent =\r\n                tanggal +\r\n                \" pukul \" +\r\n                jam +\r\n                \" WIB\";\r\n\r\n        }\r\n\r\n    }\r\n\r\n\r\n    \/* =====================================================\r\n       AMBIL DATA TABLEPRESS\r\n       ===================================================== *\/\r\n\r\n    function ambilData() {\r\n\r\n        const table =\r\n            document.querySelector(\r\n                \"#tablepress-83\"\r\n            );\r\n\r\n\r\n        if (!table) {\r\n\r\n            return [];\r\n\r\n        }\r\n\r\n\r\n        let hasil = [];\r\n\r\n\r\n        \/* -------------------------------------------------\r\n           DATATABLES AKTIF\r\n           ------------------------------------------------- *\/\r\n\r\n        if (\r\n            window.jQuery &&\r\n            jQuery.fn &&\r\n            jQuery.fn.dataTable &&\r\n            jQuery.fn.dataTable.isDataTable(\r\n                \"#tablepress-83\"\r\n            )\r\n        ) {\r\n\r\n            try {\r\n\r\n                const dt =\r\n                    jQuery(\r\n                        \"#tablepress-83\"\r\n                    ).DataTable();\r\n\r\n\r\n                dt.rows()\r\n                    .data()\r\n                    .each(\r\n                        function (row) {\r\n\r\n                            if (\r\n                                row &&\r\n                                row.length >= 6\r\n                            ) {\r\n\r\n                                hasil.push({\r\n\r\n                                    tahun:\r\n                                        String(\r\n                                            row[0]\r\n                                        )\r\n                                        .replace(\r\n                                            \/<[^>]*>\/g,\r\n                                            \"\"\r\n                                        )\r\n                                        .trim(),\r\n\r\n                                    sumber:\r\n                                        String(\r\n                                            row[1]\r\n                                        )\r\n                                        .replace(\r\n                                            \/<[^>]*>\/g,\r\n                                            \"\"\r\n                                        )\r\n                                        .trim(),\r\n\r\n                                    dana:\r\n                                        parseAngka(\r\n                                            row[2]\r\n                                        ),\r\n\r\n                                    pegawai:\r\n                                        parseAngka(\r\n                                            row[3]\r\n                                        ),\r\n\r\n                                    barang:\r\n                                        parseAngka(\r\n                                            row[4]\r\n                                        ),\r\n\r\n                                    modal:\r\n                                        parseAngka(\r\n                                            row[5]\r\n                                        )\r\n\r\n                                });\r\n\r\n                            }\r\n\r\n                        }\r\n                    );\r\n\r\n\r\n                return hasil;\r\n\r\n            }\r\n\r\n            catch (error) {\r\n\r\n                console.log(\r\n                    \"DataTables API error:\",\r\n                    error\r\n                );\r\n\r\n            }\r\n\r\n        }\r\n\r\n\r\n        \/* -------------------------------------------------\r\n           BACA LANGSUNG TABLEPRESS\r\n           ------------------------------------------------- *\/\r\n\r\n        const rows =\r\n            table.querySelectorAll(\r\n                \"tbody tr\"\r\n            );\r\n\r\n\r\n        rows.forEach(\r\n            function (row) {\r\n\r\n                const cells =\r\n                    row.querySelectorAll(\r\n                        \"td\"\r\n                    );\r\n\r\n\r\n                if (\r\n                    cells.length < 6\r\n                ) {\r\n\r\n                    return;\r\n\r\n                }\r\n\r\n\r\n                const tahun =\r\n                    cells[0]\r\n                    .textContent\r\n                    .trim();\r\n\r\n\r\n                const sumber =\r\n                    cells[1]\r\n                    .textContent\r\n                    .trim();\r\n\r\n\r\n                if (\r\n                    !tahun ||\r\n                    !sumber\r\n                ) {\r\n\r\n                    return;\r\n\r\n                }\r\n\r\n\r\n                if (\r\n                    sumber\r\n                        .toLowerCase()\r\n                        .includes(\"total\")\r\n                ) {\r\n\r\n                    return;\r\n\r\n                }\r\n\r\n\r\n                hasil.push({\r\n\r\n                    tahun:\r\n                        tahun,\r\n\r\n                    sumber:\r\n                        sumber,\r\n\r\n                    dana:\r\n                        parseAngka(\r\n                            cells[2]\r\n                            .textContent\r\n                        ),\r\n\r\n                    pegawai:\r\n                        parseAngka(\r\n                            cells[3]\r\n                            .textContent\r\n                        ),\r\n\r\n                    barang:\r\n                        parseAngka(\r\n                            cells[4]\r\n                            .textContent\r\n                        ),\r\n\r\n                    modal:\r\n                        parseAngka(\r\n                            cells[5]\r\n                            .textContent\r\n                        )\r\n\r\n                });\r\n\r\n            }\r\n        );\r\n\r\n\r\n        return hasil;\r\n\r\n    }\r\n\r\n\r\n    \/* =====================================================\r\n       INISIALISASI\r\n       ===================================================== *\/\r\n\r\n    function initDashboard() {\r\n\r\n        const data =\r\n            ambilData();\r\n\r\n\r\n        if (!data.length) {\r\n\r\n            console.log(\r\n                \"Data TablePress belum ditemukan.\"\r\n            );\r\n\r\n            return;\r\n\r\n        }\r\n\r\n\r\n        const select =\r\n            document.getElementById(\r\n                \"pilih-tahun\"\r\n            );\r\n\r\n\r\n        if (!select) {\r\n\r\n            return;\r\n\r\n        }\r\n\r\n\r\n        \/* -------------------------------------------------\r\n           TAHUN UNIK\r\n           ------------------------------------------------- *\/\r\n\r\n        const tahunUnik =\r\n            [\r\n                ...new Set(\r\n                    data\r\n                        .map(\r\n                            function (item) {\r\n\r\n                                return item.tahun;\r\n\r\n                            }\r\n                        )\r\n                        .filter(Boolean)\r\n                )\r\n            ];\r\n\r\n\r\n        tahunUnik.sort(\r\n            function (a, b) {\r\n\r\n                return (\r\n                    Number(b) -\r\n                    Number(a)\r\n                );\r\n\r\n            }\r\n        );\r\n\r\n\r\n        tahunUnik.forEach(\r\n            function (tahun) {\r\n\r\n                const option =\r\n                    document.createElement(\r\n                        \"option\"\r\n                    );\r\n\r\n\r\n                option.value =\r\n                    tahun;\r\n\r\n\r\n                option.textContent =\r\n                    tahun;\r\n\r\n\r\n                select.appendChild(\r\n                    option\r\n                );\r\n\r\n            }\r\n        );\r\n\r\n\r\n        \/* -------------------------------------------------\r\n           DEFAULT TAHUN TERBARU\r\n           ------------------------------------------------- *\/\r\n\r\n        if (\r\n            tahunUnik.length\r\n        ) {\r\n\r\n            select.value =\r\n                tahunUnik[0];\r\n\r\n        }\r\n\r\n\r\n        \/* =================================================\r\n           TAMPILKAN CARD\r\n           ================================================= *\/\r\n\r\n        function tampilkan() {\r\n\r\n            const tahunDipilih =\r\n                select.value;\r\n\r\n\r\n            let filtered =\r\n                data;\r\n\r\n\r\n            if (\r\n                tahunDipilih !==\r\n                \"semua\"\r\n            ) {\r\n\r\n                filtered =\r\n                    data.filter(\r\n                        function (item) {\r\n\r\n                            return (\r\n                                item.tahun ===\r\n                                tahunDipilih\r\n                            );\r\n\r\n                        }\r\n                    );\r\n\r\n            }\r\n\r\n\r\n            const container =\r\n                document.getElementById(\r\n                    \"container-sumber-dana\"\r\n                );\r\n\r\n\r\n            if (!filtered.length) {\r\n\r\n                container.innerHTML =\r\n\r\n                    '<div class=\"data-kosong\">' +\r\n\r\n                    'Tidak ada data anggaran untuk tahun yang dipilih.' +\r\n\r\n                    '<\/div>';\r\n\r\n                return;\r\n\r\n            }\r\n\r\n\r\n            let html = \"\";\r\n\r\n\r\n            filtered.forEach(\r\n                function (item) {\r\n\r\n\r\n                    \/* TOTAL PENGELUARAN *\/\r\n\r\n                    const totalPengeluaran =\r\n                        item.pegawai +\r\n                        item.barang +\r\n                        item.modal;\r\n\r\n\r\n                    \/* SISA *\/\r\n\r\n                    const sisaDana =\r\n                        item.dana -\r\n                        totalPengeluaran;\r\n\r\n\r\n                    \/* PERSENTASE *\/\r\n\r\n                    let persen = 0;\r\n\r\n\r\n                    if (\r\n                        item.dana > 0\r\n                    ) {\r\n\r\n                        persen =\r\n                            (\r\n                                totalPengeluaran \/\r\n                                item.dana\r\n                            ) * 100;\r\n\r\n                    }\r\n\r\n\r\n                    \/* PROGRESS *\/\r\n\r\n                    const progress =\r\n                        Math.min(\r\n                            Math.max(\r\n                                persen,\r\n                                0\r\n                            ),\r\n                            100\r\n                        );\r\n\r\n\r\n                    \/* =================================================\r\n                       CARD\r\n                       ================================================= *\/\r\n\r\n                    html +=\r\n\r\n                        '<div class=\"sumber-card\">' +\r\n\r\n\r\n                            '<div class=\"sumber-card-header\">' +\r\n\r\n\r\n                                '<div class=\"sumber-card-title\">' +\r\n\r\n\r\n                                    '<div class=\"sumber-icon\">' +\r\n                                        'Rp' +\r\n                                    '<\/div>' +\r\n\r\n\r\n                                    '<div>' +\r\n\r\n                                        '<h3>' +\r\n                                            item.sumber +\r\n                                        '<\/h3>' +\r\n\r\n                                        '<small>' +\r\n                                            'Tahun ' +\r\n                                            item.tahun +\r\n                                        '<\/small>' +\r\n\r\n                                    '<\/div>' +\r\n\r\n\r\n                                '<\/div>' +\r\n\r\n\r\n                                '<div class=\"realisasi-badge\">' +\r\n\r\n                                    persen\r\n                                        .toFixed(2)\r\n                                        .replace(\r\n                                            \".\",\r\n                                            \",\"\r\n                                        ) +\r\n\r\n                                    '%' +\r\n\r\n                                '<\/div>' +\r\n\r\n\r\n                            '<\/div>' +\r\n\r\n\r\n\r\n                            '<div class=\"data-grid\">' +\r\n\r\n\r\n                                '<div class=\"data-item\">' +\r\n\r\n                                    '<span class=\"data-item-label\">' +\r\n                                        'Total Dana' +\r\n                                    '<\/span>' +\r\n\r\n                                    '<span class=\"data-item-value\">' +\r\n                                        formatRupiah(\r\n                                            item.dana\r\n                                        ) +\r\n                                    '<\/span>' +\r\n\r\n                                '<\/div>' +\r\n\r\n\r\n\r\n                                '<div class=\"data-item\">' +\r\n\r\n                                    '<span class=\"data-item-label\">' +\r\n                                        'Total Pengeluaran' +\r\n                                    '<\/span>' +\r\n\r\n                                    '<span class=\"data-item-value\">' +\r\n                                        formatRupiah(\r\n                                            totalPengeluaran\r\n                                        ) +\r\n                                    '<\/span>' +\r\n\r\n                                '<\/div>' +\r\n\r\n\r\n\r\n                                '<div class=\"data-item\">' +\r\n\r\n                                    '<span class=\"data-item-label\">' +\r\n                                        'Sisa Dana' +\r\n                                    '<\/span>' +\r\n\r\n                                    '<span class=\"data-item-value\">' +\r\n                                        formatRupiah(\r\n                                            sisaDana\r\n                                        ) +\r\n                                    '<\/span>' +\r\n\r\n                                '<\/div>' +\r\n\r\n\r\n                            '<\/div>' +\r\n\r\n\r\n\r\n                            '<div class=\"belanja-title\">' +\r\n                                'Komposisi Pengeluaran' +\r\n                            '<\/div>' +\r\n\r\n\r\n\r\n                            '<div class=\"belanja-list\">' +\r\n\r\n\r\n                                '<div class=\"belanja-row\">' +\r\n\r\n                                    '<span>' +\r\n                                        'Belanja Pegawai' +\r\n                                    '<\/span>' +\r\n\r\n                                    '<span>' +\r\n                                        formatRupiah(\r\n                                            item.pegawai\r\n                                        ) +\r\n                                    '<\/span>' +\r\n\r\n                                '<\/div>' +\r\n\r\n\r\n\r\n                                '<div class=\"belanja-row\">' +\r\n\r\n                                    '<span>' +\r\n                                        'Belanja Barang' +\r\n                                    '<\/span>' +\r\n\r\n                                    '<span>' +\r\n                                        formatRupiah(\r\n                                            item.barang\r\n                                        ) +\r\n                                    '<\/span>' +\r\n\r\n                                '<\/div>' +\r\n\r\n\r\n\r\n                                '<div class=\"belanja-row\">' +\r\n\r\n                                    '<span>' +\r\n                                        'Belanja Modal' +\r\n                                    '<\/span>' +\r\n\r\n                                    '<span>' +\r\n                                        formatRupiah(\r\n                                            item.modal\r\n                                        ) +\r\n                                    '<\/span>' +\r\n\r\n                                '<\/div>' +\r\n\r\n\r\n                            '<\/div>' +\r\n\r\n\r\n\r\n                            '<div class=\"progress-area\">' +\r\n\r\n\r\n                                '<div class=\"progress-info\">' +\r\n\r\n                                    '<span>' +\r\n                                        'Tingkat Penggunaan' +\r\n                                    '<\/span>' +\r\n\r\n                                    '<span>' +\r\n\r\n                                        persen\r\n                                            .toFixed(2)\r\n                                            .replace(\r\n                                                \".\",\r\n                                                \",\"\r\n                                            ) +\r\n\r\n                                        '%' +\r\n\r\n                                    '<\/span>' +\r\n\r\n                                '<\/div>' +\r\n\r\n\r\n\r\n                                '<div class=\"progress-track\">' +\r\n\r\n                                    '<div class=\"progress-fill\" ' +\r\n\r\n                                        'style=\"width:' +\r\n                                        progress +\r\n                                        '%\">' +\r\n\r\n                                    '<\/div>' +\r\n\r\n                                '<\/div>' +\r\n\r\n\r\n                            '<\/div>' +\r\n\r\n\r\n                        '<\/div>';\r\n\r\n                }\r\n            );\r\n\r\n\r\n            container.innerHTML =\r\n                html;\r\n\r\n        }\r\n\r\n\r\n        \/* =================================================\r\n           FILTER TAHUN\r\n           ================================================= *\/\r\n\r\n        select.addEventListener(\r\n            \"change\",\r\n            tampilkan\r\n        );\r\n\r\n\r\n        \/* =================================================\r\n           TAMPILKAN\r\n           ================================================= *\/\r\n\r\n        tampilkan();\r\n\r\n\r\n        \/* =================================================\r\n           UPDATE\r\n           ================================================= *\/\r\n\r\n        tampilkanWaktu();\r\n\r\n    }\r\n\r\n\r\n    \/* =====================================================\r\n       JALANKAN SETELAH HALAMAN LOAD\r\n       ===================================================== *\/\r\n\r\n    window.addEventListener(\r\n        \"load\",\r\n        function () {\r\n\r\n            setTimeout(\r\n                initDashboard,\r\n                1000\r\n            );\r\n\r\n        }\r\n    );\r\n\r\n\r\n})();\r\n\r\n<\/script>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Realisasi Berdasarkan Sumber Dana Rincian dana, pengeluaran, sisa dana, dan tingkat penggunaan Diperbarui pada &#8211; Tahun Anggaran Semua Tahun<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"class_list":["post-6315","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ppid.trunojoyo.ac.id\/index.php\/wp-json\/wp\/v2\/pages\/6315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ppid.trunojoyo.ac.id\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ppid.trunojoyo.ac.id\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ppid.trunojoyo.ac.id\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ppid.trunojoyo.ac.id\/index.php\/wp-json\/wp\/v2\/comments?post=6315"}],"version-history":[{"count":20,"href":"https:\/\/ppid.trunojoyo.ac.id\/index.php\/wp-json\/wp\/v2\/pages\/6315\/revisions"}],"predecessor-version":[{"id":6337,"href":"https:\/\/ppid.trunojoyo.ac.id\/index.php\/wp-json\/wp\/v2\/pages\/6315\/revisions\/6337"}],"wp:attachment":[{"href":"https:\/\/ppid.trunojoyo.ac.id\/index.php\/wp-json\/wp\/v2\/media?parent=6315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}