{"id":5936,"date":"2026-09-29T02:46:45","date_gmt":"2026-09-29T02:46:45","guid":{"rendered":"https:\/\/ppid.trunojoyo.ac.id\/?page_id=5936"},"modified":"2026-09-29T04:19:23","modified_gmt":"2026-09-29T04:19:23","slug":"jumlah-jenis-dan-gambaran-umum-pelanggaran","status":"publish","type":"page","link":"https:\/\/ppid.trunojoyo.ac.id\/index.php\/jumlah-jenis-dan-gambaran-umum-pelanggaran\/","title":{"rendered":"Jumlah, Jenis, dan Gambaran Umum Pelanggaran"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5936\" class=\"elementor elementor-5936\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b845770 e-flex e-con-boxed e-con e-parent\" data-id=\"b845770\" 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-4b8d627 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"4b8d627\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div id=\"ppid-pelanggaran\">\r\n\r\n<style>\r\n\r\n\/* =========================================================\r\n   PPID - RINGKASAN PELANGGARAN\r\n   TABLEPRESS ID 81\r\n   ========================================================= *\/\r\n\r\n#ppid-pelanggaran {\r\n    width: 100%;\r\n    max-width: 1200px;\r\n    margin: 0 auto;\r\n    font-family: \"Segoe UI\", Arial, sans-serif;\r\n    color: #26364a;\r\n    background: transparent;\r\n}\r\n\r\n#ppid-pelanggaran *,\r\n#ppid-pelanggaran *::before,\r\n#ppid-pelanggaran *::after {\r\n    box-sizing: border-box;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   JUDUL\r\n   ========================================================= *\/\r\n\r\n#ppid-pelanggaran .judul-pelanggaran {\r\n    position: relative;\r\n    margin-bottom: 25px;\r\n    padding: 3px 0 16px 17px;\r\n    border-left: 4px solid #d97900;\r\n}\r\n\r\n#ppid-pelanggaran .judul-pelanggaran h2 {\r\n    margin: 0 0 6px 0;\r\n    font-size: 27px;\r\n    line-height: 1.3;\r\n    font-weight: 700;\r\n    color: #26364a;\r\n}\r\n\r\n#ppid-pelanggaran .judul-pelanggaran p {\r\n    margin: 0;\r\n    font-size: 14px;\r\n    line-height: 1.6;\r\n    color: #718096;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   FILTER TAHUN\r\n   ========================================================= *\/\r\n\r\n#ppid-pelanggaran .filter-area {\r\n    display: flex;\r\n    align-items: center;\r\n    flex-wrap: wrap;\r\n    gap: 13px;\r\n    margin-bottom: 25px;\r\n    padding: 15px 17px;\r\n    background: rgba(255,255,255,.95);\r\n    border: 1px solid #e4ebf3;\r\n    border-radius: 13px;\r\n    box-shadow: 0 4px 16px rgba(35,55,80,.045);\r\n}\r\n\r\n#ppid-pelanggaran .filter-label {\r\n    font-size: 12px;\r\n    font-weight: 700;\r\n    color: #526174;\r\n    text-transform: uppercase;\r\n    letter-spacing: .6px;\r\n}\r\n\r\n#ppid-pelanggaran .tahun-list {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    gap: 7px;\r\n}\r\n\r\n#ppid-pelanggaran .tahun-btn {\r\n    border: 1px solid #d8e1eb;\r\n    background: #fff;\r\n    color: #526174;\r\n    padding: 7px 16px;\r\n    border-radius: 25px;\r\n    font-family: inherit;\r\n    font-size: 12px;\r\n    font-weight: 600;\r\n    cursor: pointer;\r\n    transition: all .2s ease;\r\n}\r\n\r\n#ppid-pelanggaran .tahun-btn:hover {\r\n    border-color: #d97900;\r\n    color: #d97900;\r\n}\r\n\r\n#ppid-pelanggaran .tahun-btn.active {\r\n    background: #26364a;\r\n    border-color: #26364a;\r\n    color: #fff;\r\n    box-shadow: 0 4px 12px rgba(38,54,74,.18);\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   KATEGORI\r\n   ========================================================= *\/\r\n\r\n#ppid-pelanggaran .kategori-card {\r\n    margin-bottom: 23px;\r\n    background: rgba(255,255,255,.97);\r\n    border: 1px solid #e1e8f0;\r\n    border-radius: 16px;\r\n    overflow: hidden;\r\n    box-shadow: 0 5px 22px rgba(31,48,70,.055);\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   HEADER KATEGORI\r\n   ========================================================= *\/\r\n\r\n#ppid-pelanggaran .kategori-header {\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: space-between;\r\n    gap: 25px;\r\n    padding: 21px 23px;\r\n    background: linear-gradient(\r\n        135deg,\r\n        #ffffff 0%,\r\n        #f9fbfd 100%\r\n    );\r\n    border-bottom: 1px solid #edf1f5;\r\n}\r\n\r\n#ppid-pelanggaran .kategori-title {\r\n    flex: 1;\r\n}\r\n\r\n#ppid-pelanggaran .kategori-title h3 {\r\n    margin: 0 0 5px 0;\r\n    font-size: 17px;\r\n    line-height: 1.45;\r\n    color: #26364a;\r\n    font-weight: 700;\r\n}\r\n\r\n#ppid-pelanggaran .kategori-title p {\r\n    margin: 0;\r\n    font-size: 12px;\r\n    line-height: 1.5;\r\n    color: #7a8797;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   TOTAL KATEGORI\r\n   ========================================================= *\/\r\n\r\n#ppid-pelanggaran .kategori-total {\r\n    min-width: 105px;\r\n    padding: 11px 16px;\r\n    text-align: center;\r\n    background: #fff8ef;\r\n    border: 1px solid #f3dfc6;\r\n    border-radius: 12px;\r\n}\r\n\r\n#ppid-pelanggaran .kategori-total-label {\r\n    display: block;\r\n    margin-bottom: 2px;\r\n    font-size: 8px;\r\n    font-weight: 800;\r\n    letter-spacing: 1px;\r\n    color: #a76a1f;\r\n}\r\n\r\n#ppid-pelanggaran .kategori-total-number {\r\n    display: block;\r\n    font-size: 27px;\r\n    line-height: 1.1;\r\n    font-weight: 750;\r\n    color: #d97900;\r\n}\r\n\r\n#ppid-pelanggaran .kategori-total-text {\r\n    display: block;\r\n    margin-top: 2px;\r\n    font-size: 10px;\r\n    color: #8a6c4a;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   GRID CARD PELANGGARAN\r\n   ========================================================= *\/\r\n\r\n#ppid-pelanggaran .pelanggaran-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(2, minmax(0, 1fr));\r\n    gap: 14px;\r\n    padding: 19px;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   CARD PELANGGARAN\r\n   ========================================================= *\/\r\n\r\n#ppid-pelanggaran .pelanggaran-item {\r\n    position: relative;\r\n    padding: 17px 18px;\r\n    background: #f9fbfd;\r\n    border: 1px solid #dfe7ef;\r\n    border-radius: 12px;\r\n    transition: all .2s ease;\r\n}\r\n\r\n#ppid-pelanggaran .pelanggaran-item:hover {\r\n    background: #ffffff;\r\n    border-color: #cfdbe7;\r\n    box-shadow: 0 5px 16px rgba(31,48,70,.06);\r\n    transform: translateY(-1px);\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   NAMA JENIS\r\n   ========================================================= *\/\r\n\r\n#ppid-pelanggaran .pelanggaran-nama {\r\n    margin: 0 0 14px 0;\r\n    font-size: 14px;\r\n    line-height: 1.45;\r\n    font-weight: 700;\r\n    color: #26364a;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   INFORMASI CARD\r\n   ========================================================= *\/\r\n\r\n#ppid-pelanggaran .pelanggaran-info {\r\n    display: grid;\r\n    grid-template-columns: 1fr 1fr;\r\n    gap: 10px;\r\n    padding: 11px 12px;\r\n    background: #ffffff;\r\n    border: 1px solid #e8edf3;\r\n    border-radius: 9px;\r\n}\r\n\r\n#ppid-pelanggaran .info-label {\r\n    display: block;\r\n    margin-bottom: 3px;\r\n    font-size: 9px;\r\n    font-weight: 700;\r\n    color: #718096;\r\n    text-transform: uppercase;\r\n    letter-spacing: .4px;\r\n}\r\n\r\n#ppid-pelanggaran .info-value {\r\n    display: block;\r\n    font-size: 19px;\r\n    line-height: 1.1;\r\n    font-weight: 750;\r\n    color: #26364a;\r\n}\r\n\r\n#ppid-pelanggaran .info-value.jumlah {\r\n    color: #d97900;\r\n}\r\n\r\n#ppid-pelanggaran .info-value.progres {\r\n    color: #159447;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   PROGRESS BAR\r\n   ========================================================= *\/\r\n\r\n#ppid-pelanggaran .progress-container {\r\n    margin-top: 12px;\r\n}\r\n\r\n#ppid-pelanggaran .progress-head {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    align-items: center;\r\n    margin-bottom: 5px;\r\n}\r\n\r\n#ppid-pelanggaran .progress-head span:first-child {\r\n    font-size: 10px;\r\n    color: #7b8795;\r\n}\r\n\r\n#ppid-pelanggaran .progress-head span:last-child {\r\n    font-size: 11px;\r\n    font-weight: 700;\r\n    color: #159447;\r\n}\r\n\r\n#ppid-pelanggaran .progress-track {\r\n    width: 100%;\r\n    height: 5px;\r\n    background: #e6ebef;\r\n    border-radius: 20px;\r\n    overflow: hidden;\r\n}\r\n\r\n#ppid-pelanggaran .progress-fill {\r\n    height: 100%;\r\n    background: #159447;\r\n    border-radius: 20px;\r\n    transition: width .45s ease;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   STATUS\r\n   ========================================================= *\/\r\n\r\n#ppid-pelanggaran .status-area {\r\n    margin-top: 12px;\r\n    text-align: right;\r\n}\r\n\r\n#ppid-pelanggaran .status-badge {\r\n    display: inline-block;\r\n    padding: 5px 10px;\r\n    border-radius: 20px;\r\n    font-size: 10px;\r\n    font-weight: 700;\r\n}\r\n\r\n#ppid-pelanggaran .status-selesai {\r\n    background: #ddf8e9;\r\n    color: #07833e;\r\n}\r\n\r\n#ppid-pelanggaran .status-proses {\r\n    background: #e5f4ff;\r\n    color: #0878ba;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   DATA KOSONG\r\n   ========================================================= *\/\r\n\r\n#ppid-pelanggaran .empty-state {\r\n    grid-column: 1 \/ -1;\r\n    padding: 30px 20px;\r\n    text-align: center;\r\n}\r\n\r\n#ppid-pelanggaran .empty-state-title {\r\n    margin-bottom: 5px;\r\n    font-size: 14px;\r\n    font-weight: 650;\r\n    color: #687789;\r\n}\r\n\r\n#ppid-pelanggaran .empty-state-text {\r\n    font-size: 12px;\r\n    color: #9aa5b1;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   TABLEPRESS SUMBER\r\n   ========================================================= *\/\r\n\r\n#ppid-pelanggaran #sumber-tablepress {\r\n    display: none !important;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   TABLET\r\n   ========================================================= *\/\r\n\r\n@media (max-width: 800px) {\r\n\r\n    #ppid-pelanggaran .pelanggaran-grid {\r\n        grid-template-columns: 1fr;\r\n    }\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   MOBILE\r\n   ========================================================= *\/\r\n\r\n@media (max-width: 600px) {\r\n\r\n    #ppid-pelanggaran .judul-pelanggaran h2 {\r\n        font-size: 21px;\r\n    }\r\n\r\n    #ppid-pelanggaran .filter-area {\r\n        align-items: flex-start;\r\n        flex-direction: column;\r\n    }\r\n\r\n    #ppid-pelanggaran .kategori-header {\r\n        align-items: flex-start;\r\n        flex-direction: column;\r\n        padding: 18px;\r\n    }\r\n\r\n    #ppid-pelanggaran .kategori-total {\r\n        width: 100%;\r\n    }\r\n\r\n    #ppid-pelanggaran .pelanggaran-grid {\r\n        padding: 14px;\r\n    }\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   MOBILE KECIL\r\n   ========================================================= *\/\r\n\r\n@media (max-width: 400px) {\r\n\r\n    #ppid-pelanggaran .pelanggaran-info {\r\n        grid-template-columns: 1fr 1fr;\r\n    }\r\n\r\n    #ppid-pelanggaran .pelanggaran-nama {\r\n        font-size: 13px;\r\n    }\r\n\r\n}\r\n\r\n<\/style>\r\n\r\n\r\n<!-- =====================================================\r\n     JUDUL\r\n     ===================================================== -->\r\n\r\n<div class=\"judul-pelanggaran\">\r\n\r\n    <h2>\r\n        Jumlah, Jenis, dan Gambaran Umum Pelanggaran\r\n    <\/h2>\r\n\r\n    <p>\r\n        Informasi pelanggaran berdasarkan hasil pengawasan\r\n        internal dan laporan masyarakat.\r\n    <\/p>\r\n\r\n<\/div>\r\n\r\n\r\n<!-- =====================================================\r\n     FILTER TAHUN\r\n     ===================================================== -->\r\n\r\n<div class=\"filter-area\">\r\n\r\n    <span class=\"filter-label\">\r\n        Pilih Tahun\r\n    <\/span>\r\n\r\n    <div id=\"filter-tahun\" class=\"tahun-list\"><\/div>\r\n\r\n<\/div>\r\n\r\n\r\n<!-- =====================================================\r\n     KONTEN\r\n     ===================================================== -->\r\n\r\n<div id=\"konten-pelanggaran\">\r\n\r\n\r\n    <!-- =================================================\r\n         INTERNAL\r\n         ================================================= -->\r\n\r\n    <div class=\"kategori-card\">\r\n\r\n        <div class=\"kategori-header\">\r\n\r\n            <div class=\"kategori-title\">\r\n\r\n                <h3>\r\n                    Pelanggaran yang Ditemukan oleh\r\n                    Satuan Pengawasan Internal\r\n                <\/h3>\r\n\r\n                <p>\r\n                    Ringkasan pelanggaran berdasarkan hasil\r\n                    pengawasan internal.\r\n                <\/p>\r\n\r\n            <\/div>\r\n\r\n\r\n            <div class=\"kategori-total\">\r\n\r\n                <span class=\"kategori-total-label\">\r\n                    JUMLAH\r\n                <\/span>\r\n\r\n                <strong\r\n                    id=\"total-internal\"\r\n                    class=\"kategori-total-number\">\r\n                    0\r\n                <\/strong>\r\n\r\n                <span class=\"kategori-total-text\">\r\n                    Pelanggaran\r\n                <\/span>\r\n\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n\r\n        <div\r\n            id=\"data-internal\"\r\n            class=\"pelanggaran-grid\">\r\n        <\/div>\r\n\r\n    <\/div>\r\n\r\n\r\n\r\n    <!-- =================================================\r\n         MASYARAKAT\r\n         ================================================= -->\r\n\r\n    <div class=\"kategori-card\">\r\n\r\n        <div class=\"kategori-header\">\r\n\r\n            <div class=\"kategori-title\">\r\n\r\n                <h3>\r\n                    Pelanggaran yang Dilaporkan oleh\r\n                    Masyarakat\r\n                <\/h3>\r\n\r\n                <p>\r\n                    Ringkasan pelanggaran berdasarkan\r\n                    laporan masyarakat.\r\n                <\/p>\r\n\r\n            <\/div>\r\n\r\n\r\n            <div class=\"kategori-total\">\r\n\r\n                <span class=\"kategori-total-label\">\r\n                    JUMLAH\r\n                <\/span>\r\n\r\n                <strong\r\n                    id=\"total-masyarakat\"\r\n                    class=\"kategori-total-number\">\r\n                    0\r\n                <\/strong>\r\n\r\n                <span class=\"kategori-total-text\">\r\n                    Pelanggaran\r\n                <\/span>\r\n\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n\r\n        <div\r\n            id=\"data-masyarakat\"\r\n            class=\"pelanggaran-grid\">\r\n        <\/div>\r\n\r\n    <\/div>\r\n\r\n<\/div>\r\n\r\n\r\n<!-- =====================================================\r\n     TABLEPRESS ID 81\r\n     \r\n     Struktur:\r\n     No\r\n     Tahun\r\n     Sumber\r\n     Jenis Pelanggaran\r\n     Jumlah\r\n     Progres Penindakan\r\n     ===================================================== -->\r\n\r\n<div id=\"sumber-tablepress\">\r\n\r\n    \n<table id=\"tablepress-81\" class=\"tablepress tablepress-id-81\">\n<thead>\n<tr class=\"row-1 odd\">\n\t<th class=\"column-1\">No<\/th><th class=\"column-2\">Tahun<\/th><th class=\"column-3\">Sumber<\/th><th class=\"column-4\">Jenis Pelanggaran<\/th><th class=\"column-5\">Jumlah<\/th><th class=\"column-6\">Progres Penindakan<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-hover\">\n<tr class=\"row-2 even\">\n\t<td class=\"column-1\">1<\/td><td class=\"column-2\">2024<\/td><td class=\"column-3\">Internal <\/td><td class=\"column-4\">Reviu Serapan Semester I Th. 2024 <\/td><td class=\"column-5\">3<\/td><td class=\"column-6\">67%<\/td>\n<\/tr>\n<tr class=\"row-3 odd\">\n\t<td class=\"column-1\">2<\/td><td class=\"column-2\">2024<\/td><td class=\"column-3\">Internal<\/td><td class=\"column-4\">Reviu POK Tahun 2024<\/td><td class=\"column-5\">2<\/td><td class=\"column-6\">100%<\/td>\n<\/tr>\n<tr class=\"row-4 even\">\n\t<td class=\"column-1\">3<\/td><td class=\"column-2\">2024<\/td><td class=\"column-3\">Internal<\/td><td class=\"column-4\">Monev ZI\/PIEPTN<\/td><td class=\"column-5\">2<\/td><td class=\"column-6\">100%<\/td>\n<\/tr>\n<tr class=\"row-5 odd\">\n\t<td class=\"column-1\">4<\/td><td class=\"column-2\">2024<\/td><td class=\"column-3\">Internal<\/td><td class=\"column-4\">Reviu LAKIN UTM Tahun 2023<\/td><td class=\"column-5\">3<\/td><td class=\"column-6\">100%<\/td>\n<\/tr>\n<tr class=\"row-6 even\">\n\t<td class=\"column-1\">5<\/td><td class=\"column-2\">2024<\/td><td class=\"column-3\">Internal<\/td><td class=\"column-4\">Monev Pelaksanaan PBJ Semester I Tahun 2024<\/td><td class=\"column-5\">4<\/td><td class=\"column-6\">50%<\/td>\n<\/tr>\n<tr class=\"row-7 odd\">\n\t<td class=\"column-1\">6<\/td><td class=\"column-2\">2025<\/td><td class=\"column-3\">Internal<\/td><td class=\"column-4\">Verifikasi dan Evaluasi Tunjangan Kinerja Dosen TA.2025<\/td><td class=\"column-5\">3<\/td><td class=\"column-6\">100%<\/td>\n<\/tr>\n<tr class=\"row-8 even\">\n\t<td class=\"column-1\">7<\/td><td class=\"column-2\">2025<\/td><td class=\"column-3\">Internal<\/td><td class=\"column-4\">Monev capaian SPM 2024<\/td><td class=\"column-5\">2<\/td><td class=\"column-6\">100%<\/td>\n<\/tr>\n<tr class=\"row-9 odd\">\n\t<td class=\"column-1\">8<\/td><td class=\"column-2\">2025<\/td><td class=\"column-3\">Internal<\/td><td class=\"column-4\">Reviu LAKIN UTM Tahun 2024<\/td><td class=\"column-5\">2<\/td><td class=\"column-6\">100%<\/td>\n<\/tr>\n<tr class=\"row-10 even\">\n\t<td class=\"column-1\">9<\/td><td class=\"column-2\">2025<\/td><td class=\"column-3\">Internal<\/td><td class=\"column-4\">Audit Pengelolaan Keuangan<\/td><td class=\"column-5\">3<\/td><td class=\"column-6\">-<\/td>\n<\/tr>\n<tr class=\"row-11 odd\">\n\t<td class=\"column-1\">10<\/td><td class=\"column-2\">2025<\/td><td class=\"column-3\">Internal<\/td><td class=\"column-4\">Monev Pelaksanaan PBJ TA. 2025<\/td><td class=\"column-5\">3<\/td><td class=\"column-6\">67%<\/td>\n<\/tr>\n<tr class=\"row-12 even\">\n\t<td class=\"column-1\">11<\/td><td class=\"column-2\">2026<\/td><td class=\"column-3\">Internal<\/td><td class=\"column-4\">Reviu POK 2026<\/td><td class=\"column-5\">2<\/td><td class=\"column-6\">67%<\/td>\n<\/tr>\n<tr class=\"row-13 odd\">\n\t<td class=\"column-1\">12<\/td><td class=\"column-2\">2026<\/td><td class=\"column-3\">Internal<\/td><td class=\"column-4\">Verifikasi dan Evaluasi Tunjangan Kinerja Dosen semester 1 TA 2026<\/td><td class=\"column-5\">4<\/td><td class=\"column-6\">100%<\/td>\n<\/tr>\n<tr class=\"row-14 even\">\n\t<td class=\"column-1\">13<\/td><td class=\"column-2\">2026<\/td><td class=\"column-3\">Internal<\/td><td class=\"column-4\">Reviu LAKIN UTM 2025<\/td><td class=\"column-5\">2<\/td><td class=\"column-6\">50%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-81 from cache -->\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<script>\r\n\r\ndocument.addEventListener(\r\n    \"DOMContentLoaded\",\r\n    function () {\r\n\r\n\r\n        \/* =================================================\r\n           AMBIL TABLEPRESS\r\n           ================================================= *\/\r\n\r\n        const table =\r\n            document.querySelector(\r\n                \"#sumber-tablepress table\"\r\n            );\r\n\r\n\r\n        if (!table) {\r\n            return;\r\n        }\r\n\r\n\r\n        const rows =\r\n            table.querySelectorAll(\r\n                \"tbody tr\"\r\n            );\r\n\r\n\r\n        const data = [];\r\n\r\n\r\n        \/* =================================================\r\n           BACA TABLEPRESS 81\r\n\r\n           0 = No\r\n           1 = Tahun\r\n           2 = Sumber\r\n           3 = Jenis Pelanggaran\r\n           4 = Jumlah\r\n           5 = Progres Penindakan\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 (cells.length < 6) {\r\n                    return;\r\n                }\r\n\r\n\r\n                data.push({\r\n\r\n                    no:\r\n                        cells[0]\r\n                            .innerText\r\n                            .trim(),\r\n\r\n                    tahun:\r\n                        cells[1]\r\n                            .innerText\r\n                            .trim(),\r\n\r\n                    sumber:\r\n                        cells[2]\r\n                            .innerText\r\n                            .trim(),\r\n\r\n                    jenis:\r\n                        cells[3]\r\n                            .innerText\r\n                            .trim(),\r\n\r\n                    jumlah:\r\n                        cells[4]\r\n                            .innerText\r\n                            .trim(),\r\n\r\n                    progres:\r\n                        cells[5]\r\n                            .innerText\r\n                            .trim()\r\n\r\n                });\r\n\r\n            }\r\n        );\r\n\r\n\r\n        if (data.length === 0) {\r\n            return;\r\n        }\r\n\r\n\r\n        \/* =================================================\r\n           DAFTAR TAHUN\r\n           ================================================= *\/\r\n\r\n        const tahunList = [\r\n\r\n            ...new Set(\r\n\r\n                data\r\n                    .map(\r\n                        item => item.tahun\r\n                    )\r\n                    .filter(\r\n                        tahun => tahun !== \"\"\r\n                    )\r\n\r\n            )\r\n\r\n        ]\r\n        .sort()\r\n        .reverse();\r\n\r\n\r\n        const filterTahun =\r\n            document.getElementById(\r\n                \"filter-tahun\"\r\n            );\r\n\r\n\r\n        \/* =================================================\r\n           BUTTON TAHUN\r\n           ================================================= *\/\r\n\r\n        tahunList.forEach(\r\n            function (\r\n                tahun,\r\n                index\r\n            ) {\r\n\r\n                const button =\r\n                    document.createElement(\r\n                        \"button\"\r\n                    );\r\n\r\n\r\n                button.type =\r\n                    \"button\";\r\n\r\n\r\n                button.className =\r\n                    \"tahun-btn\";\r\n\r\n\r\n                button.textContent =\r\n                    tahun;\r\n\r\n\r\n                if (index === 0) {\r\n\r\n                    button.classList.add(\r\n                        \"active\"\r\n                    );\r\n\r\n                }\r\n\r\n\r\n                button.addEventListener(\r\n                    \"click\",\r\n                    function () {\r\n\r\n\r\n                        document\r\n                            .querySelectorAll(\r\n                                \"#ppid-pelanggaran .tahun-btn\"\r\n                            )\r\n                            .forEach(\r\n                                function (btn) {\r\n\r\n                                    btn.classList.remove(\r\n                                        \"active\"\r\n                                    );\r\n\r\n                                }\r\n                            );\r\n\r\n\r\n                        button.classList.add(\r\n                            \"active\"\r\n                        );\r\n\r\n\r\n                        tampilkanData(\r\n                            tahun\r\n                        );\r\n\r\n                    }\r\n                );\r\n\r\n\r\n                filterTahun.appendChild(\r\n                    button\r\n                );\r\n\r\n            }\r\n        );\r\n\r\n\r\n        \/* =================================================\r\n           FORMAT PROGRESS\r\n           ================================================= *\/\r\n\r\n        function formatProgress(\r\n            value\r\n        ) {\r\n\r\n            let angka =\r\n                parseFloat(\r\n\r\n                    String(value)\r\n                        .replace(\",\", \".\")\r\n                        .replace(\"%\", \"\")\r\n\r\n                );\r\n\r\n\r\n            if (isNaN(angka)) {\r\n                angka = 0;\r\n            }\r\n\r\n\r\n            angka =\r\n                Math.max(\r\n                    0,\r\n                    Math.min(\r\n                        100,\r\n                        angka\r\n                    )\r\n                );\r\n\r\n\r\n            return {\r\n\r\n                angka:\r\n                    angka,\r\n\r\n                label:\r\n                    value || \"0%\"\r\n\r\n            };\r\n\r\n        }\r\n\r\n\r\n        \/* =================================================\r\n           FORMAT JUMLAH\r\n           ================================================= *\/\r\n\r\n        function formatJumlah(\r\n            value\r\n        ) {\r\n\r\n            const angka =\r\n                parseInt(\r\n\r\n                    String(value)\r\n                        .replace(\r\n                            \/[^0-9]\/g,\r\n                            \"\"\r\n                        )\r\n\r\n                ) || 0;\r\n\r\n\r\n            return angka;\r\n\r\n        }\r\n\r\n\r\n        \/* =================================================\r\n           STATUS\r\n           ================================================= *\/\r\n\r\n        function getStatus(\r\n            angka\r\n        ) {\r\n\r\n            if (angka >= 100) {\r\n\r\n                return {\r\n\r\n                    text:\r\n                        \"Selesai 100%\",\r\n\r\n                    className:\r\n                        \"status-selesai\"\r\n\r\n                };\r\n\r\n            }\r\n\r\n\r\n            if (angka > 0) {\r\n\r\n                return {\r\n\r\n                    text:\r\n                        \"Proses Tindak Lanjut\",\r\n\r\n                    className:\r\n                        \"status-proses\"\r\n\r\n                };\r\n\r\n            }\r\n\r\n\r\n            return {\r\n\r\n                text:\r\n                    \"Belum Ditindaklanjuti\",\r\n\r\n                className:\r\n                    \"status-proses\"\r\n\r\n            };\r\n\r\n        }\r\n\r\n\r\n        \/* =================================================\r\n           RENDER CARD\r\n           ================================================= *\/\r\n\r\n        function renderData(\r\n            target,\r\n            rowsData,\r\n            totalElement\r\n        ) {\r\n\r\n\r\n            const container =\r\n                document.getElementById(\r\n                    target\r\n                );\r\n\r\n\r\n            container.innerHTML =\r\n                \"\";\r\n\r\n\r\n            let total = 0;\r\n\r\n\r\n            rowsData.forEach(\r\n                function (\r\n                    item\r\n                ) {\r\n\r\n\r\n                    const jumlah =\r\n                        formatJumlah(\r\n                            item.jumlah\r\n                        );\r\n\r\n\r\n                    const progress =\r\n                        formatProgress(\r\n                            item.progres\r\n                        );\r\n\r\n\r\n                    total += jumlah;\r\n\r\n\r\n                    const status =\r\n                        getStatus(\r\n                            progress.angka\r\n                        );\r\n\r\n\r\n                    const card =\r\n                        document.createElement(\r\n                            \"div\"\r\n                        );\r\n\r\n\r\n                    card.className =\r\n                        \"pelanggaran-item\";\r\n\r\n\r\n                    card.innerHTML = `\r\n\r\n                        <div class=\"pelanggaran-nama\">\r\n\r\n                            ${item.jenis || \"-\"}\r\n\r\n                        <\/div>\r\n\r\n\r\n                        <div class=\"pelanggaran-info\">\r\n\r\n                            <div>\r\n\r\n                                <span class=\"info-label\">\r\n                                    Jumlah\r\n                                <\/span>\r\n\r\n                                <span class=\"info-value jumlah\">\r\n                                    ${jumlah}\r\n                                <\/span>\r\n\r\n                            <\/div>\r\n\r\n\r\n                            <div>\r\n\r\n                                <span class=\"info-label\">\r\n                                    Progres\r\n                                <\/span>\r\n\r\n                                <span class=\"info-value progres\">\r\n                                    ${progress.label}\r\n                                <\/span>\r\n\r\n                            <\/div>\r\n\r\n                        <\/div>\r\n\r\n\r\n                        <div class=\"progress-container\">\r\n\r\n                            <div class=\"progress-head\">\r\n\r\n                                <span>\r\n                                    Progres Penindakan\r\n                                <\/span>\r\n\r\n                                <span>\r\n                                    ${progress.label}\r\n                                <\/span>\r\n\r\n                            <\/div>\r\n\r\n\r\n                            <div class=\"progress-track\">\r\n\r\n                                <div\r\n                                    class=\"progress-fill\"\r\n                                    style=\"\r\n                                        width:${progress.angka}%\r\n                                    \">\r\n                                <\/div>\r\n\r\n                            <\/div>\r\n\r\n                        <\/div>\r\n\r\n\r\n                        <div class=\"status-area\">\r\n\r\n                            <span\r\n                                class=\"status-badge\r\n                                ${status.className}\">\r\n\r\n                                ${status.text}\r\n\r\n                            <\/span>\r\n\r\n                        <\/div>\r\n\r\n                    `;\r\n\r\n\r\n                    container.appendChild(\r\n                        card\r\n                    );\r\n\r\n                }\r\n            );\r\n\r\n\r\n            \/* =================================================\r\n               TOTAL KATEGORI\r\n               ================================================= *\/\r\n\r\n            document.getElementById(\r\n                totalElement\r\n            ).textContent =\r\n                total;\r\n\r\n\r\n            \/* =================================================\r\n               EMPTY STATE\r\n               ================================================= *\/\r\n\r\n            if (\r\n                rowsData.length === 0\r\n            ) {\r\n\r\n                container.innerHTML = `\r\n\r\n                    <div class=\"empty-state\">\r\n\r\n                        <div class=\"empty-state-title\">\r\n\r\n                            Belum terdapat data\r\n                            pelanggaran\r\n\r\n                        <\/div>\r\n\r\n\r\n                        <div class=\"empty-state-text\">\r\n\r\n                            Belum terdapat data pelanggaran\r\n                            pada tahun yang dipilih.\r\n\r\n                        <\/div>\r\n\r\n                    <\/div>\r\n\r\n                `;\r\n\r\n            }\r\n\r\n        }\r\n\r\n\r\n        \/* =================================================\r\n           FILTER BERDASARKAN TAHUN\r\n           ================================================= *\/\r\n\r\n        function tampilkanData(\r\n            tahun\r\n        ) {\r\n\r\n\r\n            const dataTahun =\r\n                data.filter(\r\n                    function (\r\n                        item\r\n                    ) {\r\n\r\n                        return (\r\n                            item.tahun ===\r\n                            tahun\r\n                        );\r\n\r\n                    }\r\n                );\r\n\r\n\r\n            \/* =============================================\r\n               INTERNAL\r\n               ============================================= *\/\r\n\r\n            const internal =\r\n                dataTahun.filter(\r\n                    function (\r\n                        item\r\n                    ) {\r\n\r\n                        return item.sumber\r\n                            .toLowerCase()\r\n                            .includes(\r\n                                \"internal\"\r\n                            );\r\n\r\n                    }\r\n                );\r\n\r\n\r\n            \/* =============================================\r\n               MASYARAKAT\r\n               ============================================= *\/\r\n\r\n            const masyarakat =\r\n                dataTahun.filter(\r\n                    function (\r\n                        item\r\n                    ) {\r\n\r\n                        return item.sumber\r\n                            .toLowerCase()\r\n                            .includes(\r\n                                \"masyarakat\"\r\n                            );\r\n\r\n                    }\r\n                );\r\n\r\n\r\n            \/* =============================================\r\n               TAMPILKAN INTERNAL\r\n               ============================================= *\/\r\n\r\n            renderData(\r\n                \"data-internal\",\r\n                internal,\r\n                \"total-internal\"\r\n            );\r\n\r\n\r\n            \/* =============================================\r\n               TAMPILKAN MASYARAKAT\r\n               ============================================= *\/\r\n\r\n            renderData(\r\n                \"data-masyarakat\",\r\n                masyarakat,\r\n                \"total-masyarakat\"\r\n            );\r\n\r\n        }\r\n\r\n\r\n        \/* =================================================\r\n           TAHUN TERBARU OTOMATIS AKTIF\r\n           ================================================= *\/\r\n\r\n        if (\r\n            tahunList.length > 0\r\n        ) {\r\n\r\n            tampilkanData(\r\n                tahunList[0]\r\n            );\r\n\r\n        }\r\n\r\n    }\r\n);\r\n\r\n<\/script>\r\n\r\n<\/div>\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>Jumlah, Jenis, dan Gambaran Umum Pelanggaran Informasi pelanggaran berdasarkan hasil pengawasan internal dan laporan masyarakat. Pilih Tahun Pelanggaran yang Ditemukan oleh Satuan Pengawasan Internal Ringkasan pelanggaran berdasarkan hasil pengawasan internal. JUMLAH 0 Pelanggaran Pelanggaran yang Dilaporkan oleh Masyarakat Ringkasan pelanggaran berdasarkan laporan masyarakat. JUMLAH 0 Pelanggaran<\/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-5936","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ppid.trunojoyo.ac.id\/index.php\/wp-json\/wp\/v2\/pages\/5936","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=5936"}],"version-history":[{"count":17,"href":"https:\/\/ppid.trunojoyo.ac.id\/index.php\/wp-json\/wp\/v2\/pages\/5936\/revisions"}],"predecessor-version":[{"id":5968,"href":"https:\/\/ppid.trunojoyo.ac.id\/index.php\/wp-json\/wp\/v2\/pages\/5936\/revisions\/5968"}],"wp:attachment":[{"href":"https:\/\/ppid.trunojoyo.ac.id\/index.php\/wp-json\/wp\/v2\/media?parent=5936"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}