{"id":1283,"date":"2022-12-19T15:39:37","date_gmt":"2022-12-19T08:39:37","guid":{"rendered":"https:\/\/lib.stikesmucis.ac.id\/?page_id=1283"},"modified":"2026-06-26T11:32:46","modified_gmt":"2026-06-26T04:32:46","slug":"menu-prosiding","status":"publish","type":"page","link":"https:\/\/lib.stikesmucis.ac.id\/?page_id=1283","title":{"rendered":"Menu Prosiding ALL"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1283\" class=\"elementor elementor-1283\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8b2e9f2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8b2e9f2\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-12f3aaa\" data-id=\"12f3aaa\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9b7c65e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9b7c65e\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-d1ecf5a\" data-id=\"d1ecf5a\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-78c22cc\" data-id=\"78c22cc\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-62a8f7c elementor-widget elementor-widget-image\" data-id=\"62a8f7c\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.6.5 - 27-04-2022 *\/\n.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=\".svg\"]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}<\/style>\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/lib.stikesmucis.ac.id\/wp-content\/uploads\/elementor\/thumbs\/Koleksi-Prosiding-q2wmaxti1k0tth2z0v1e25cvpakh4n4nithxq2frl0.png\" title=\"Koleksi Prosiding\" alt=\"Koleksi Prosiding\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-239b6b4\" data-id=\"239b6b4\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-51f07dd elementor-widget elementor-widget-heading\" data-id=\"51f07dd\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.6.5 - 27-04-2022 *\/\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><h2 class=\"elementor-heading-title elementor-size-default\">Daftar Prosiding STIKes Muhammadiyah Ciamis<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5159971 elementor-widget elementor-widget-heading\" data-id=\"5159971\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/lib.stikesmucis.ac.id\/?page_id=1215\">Berikut merupakan kumpulan prosiding yang tersedia di Perpustakaan STIKes Muhammadiyah Ciamis<\/a><\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b88b688 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b88b688\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-918af33\" data-id=\"918af33\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2bfa293 elementor-widget elementor-widget-heading\" data-id=\"2bfa293\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Rekap Prosiding <\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e3d5457 elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e3d5457\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7c3b414\" data-id=\"7c3b414\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-25340d0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"25340d0\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-c000d4b\" data-id=\"c000d4b\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-627568e elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"627568e\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE html>\n<html lang=\"id\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Universal Data Viewer - Tabel Murni<\/title>\n    <style>\n        \/* =========================================\n           VARIABEL WARNA & TEMA DASAR\n        ========================================= *\/\n        :root {\n            --primary-color: #4F46E5;\n            --primary-hover: #4338CA;\n            --bg-color: #F9FAFB;\n            --card-bg: #FFFFFF;\n            --text-main: #1F2937;\n            --text-muted: #6B7280;\n            --border-color: #E5E7EB;\n            --font-family: 'Inter', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n        }\n\n        \/* Isolasi CSS Tabel 2 agar tidak bentrok dengan Tabel 1 *\/\n        #gas-app-container-2 .gas-data-wrapper {\n            font-family: var(--font-family);\n            background-color: var(--bg-color);\n            color: var(--text-main);\n            padding: 20px;\n            border-radius: 12px;\n            box-shadow: 0 ; \n            max-width: 100%;\n            margin: 0 auto;\n            overflow: hidden;\n        }\n\n        #gas-app-container-2 .gas-data-wrapper * {\n            box-sizing: border-box;\n        }\n\n        \/* =========================================\n           INFO HEADER & TOMBOL REFRESH\n        ========================================= *\/\n        #gas-app-container-2 .gas-header-info {\n            display: flex;\n            justify-content: flex-end; \n            align-items: center;\n            margin-bottom: 15px;\n            flex-wrap: wrap;\n            gap: 10px;\n        }\n\n        #gas-app-container-2 .gas-header-right {\n            display: flex;\n            align-items: center;\n            gap: 10px;\n            flex-wrap: wrap;\n        }\n\n        #gas-app-container-2 .gas-last-updated {\n            font-size: 12px;\n            color: var(--text-muted);\n            font-style: italic;\n        }\n\n        #gas-app-container-2 .gas-btn-refresh {\n            padding: 6px 12px;\n            background-color: var(--card-bg);\n            border: 1px solid var(--border-color);\n            border-radius: 6px;\n            font-size: 13px;\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            gap: 6px;\n            color: var(--text-main);\n            transition: all 0.2s;\n            font-weight: 500;\n        }\n\n        #gas-app-container-2 .gas-btn-refresh:hover {\n            background-color: #F3F4F6;\n        }\n\n        #gas-app-container-2 .gas-btn-refresh svg {\n            transition: transform 0.3s;\n        }\n\n        #gas-app-container-2 .spin-icon svg {\n            animation: spin-svg-2 1s linear infinite;\n        }\n\n        @keyframes spin-svg-2 { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }\n\n        \/* =========================================\n           DESAIN TABEL (PENGATURAN LEBAR & PERATAAN)\n        ========================================= *\/\n        #gas-app-container-2 .gas-table-container {\n            width: 100%;\n            overflow-x: auto; \n            background: var(--card-bg);\n            border-radius: 8px;\n            border: 1px solid var(--border-color);\n        }\n\n        #gas-app-container-2 .gas-table {\n            \/* 1. PENGATURAN LEBAR AGAR SAMA DENGAN SHEET *\/\n            width: 100%; \n            min-width: max-content; \n            white-space: nowrap; \n\n            border-collapse: collapse;\n            \n            \/* 2. PENGATURAN PERATAAN TEKS HORIZONTAL TABEL UMUM *\/\n            text-align: center; \n        }\n\n        #gas-app-container-2 .gas-table th, #gas-app-container-2 .gas-table td {\n            padding: 12px 15px;\n            border-bottom: 1px solid var(--border-color);\n            font-size: 14px;\n        }\n\n        #gas-app-container-2 .gas-table td {\n            font-weight: 400 !important; \n        }\n\n        #gas-app-container-2 .gas-table th {\n            background-color: #F3F4F6;\n            font-weight: 600;\n            color: var(--text-main);\n            text-transform: uppercase;\n            font-size: 12px;\n            letter-spacing: 0.05em;\n            \n            \/* Perataan khusus Header *\/\n            text-align: center; \n        }\n\n        #gas-app-container-2 .gas-table tr:hover {\n            background-color: #F9FAFB;\n        }\n\n        #gas-app-container-2 .gas-link {\n            color: #2563EB;\n            text-decoration: none;\n            font-weight: 500;\n            word-break: break-all;\n        }\n        #gas-app-container-2 .gas-link:hover {\n            text-decoration: underline;\n            color: #1D4ED8;\n        }\n\n        \/* =========================================\n           PAGINASI & LOADING\n        ========================================= *\/\n        #gas-app-container-2 .gas-pagination {\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            gap: 15px;\n            margin-top: 20px;\n        }\n\n        #gas-app-container-2 .gas-page-btn {\n            padding: 8px 16px;\n            background-color: var(--card-bg);\n            border: 1px solid var(--border-color);\n            border-radius: 6px;\n            cursor: pointer;\n            font-size: 14px;\n            transition: all 0.2s;\n        }\n\n        #gas-app-container-2 .gas-page-btn:hover:not(:disabled) {\n            background-color: var(--primary-color);\n            color: white;\n            border-color: var(--primary-color);\n        }\n\n        #gas-app-container-2 .gas-page-btn:disabled {\n            opacity: 0.5;\n            cursor: not-allowed;\n            background-color: #F3F4F6;\n        }\n\n        #gas-app-container-2 .gas-page-info {\n            font-size: 14px;\n            color: var(--text-muted);\n        }\n\n        #gas-app-container-2 .gas-loading {\n            text-align: center;\n            padding: 40px;\n            color: var(--text-muted);\n        }\n        #gas-app-container-2 .gas-spinner {\n            border: 4px solid #f3f3f3;\n            border-top: 4px solid var(--primary-color);\n            border-radius: 50%;\n            width: 40px;\n            height: 40px;\n            animation: spin-2 1s linear infinite;\n            margin: 0 auto 15px auto;\n        }\n        @keyframes spin-2 { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }\n\n        #gas-app-container-2 .gas-error {\n            background-color: #FEE2E2;\n            color: #B91C1C;\n            padding: 15px;\n            border-radius: 6px;\n            text-align: center;\n            border: 1px solid #FCA5A5;\n            margin-bottom: 20px;\n        }\n    <\/style>\n<\/head>\n<body>\n\n    <!-- KODE EMBED TABEL 2 (TANPA FILTER & SESUAI LEBAR SHEET) -->\n    <div id=\"gas-app-container-2\" \n         data-sheet-id=\"1iPnBNBFio7dOs1S7OA8FZWUyhQMnAJRYHeBRec8plIQ\" \n         data-sheet-name=\"Rekap\"> \n    <\/div>\n\n    <script>\n        \/\/ =========================================\n        \/\/ KONFIGURASI APLIKASI 2\n        \/\/ =========================================\n        const IS_PREVIEW_2 = false;\n        const GAS_URL_2 = \"https:\/\/script.google.com\/macros\/s\/AKfycbwxHMaAnyupyTn1Eh5OsiP_mN9xwmoAwO8JLCOA3CaLfQ-nZkvvZV6azCHly14eaz4VqQ\/exec\";\n\n        let appData_2 = { headers: [], data: [] };\n        let filteredRows_2 = [];\n        let currentPage_2 = 1;\n        const rowsPerPage_2 = 10;\n\n        \/\/ =========================================\n        \/\/ SISTEM INISIALISASI ANTI-TAB FREEZE (POLLING)\n        \/\/ =========================================\n        let isGasAppReady_2 = false;\n\n        function runGasApp_2() {\n            if (isGasAppReady_2) return;\n            const container = document.getElementById(\"gas-app-container-2\");\n            if (container) {\n                isGasAppReady_2 = true;\n                initApp_2();\n            }\n        }\n\n        \/\/ Coba jalankan secara berulang selama beberapa detik pertama\n        let gasAttempts_2 = 0;\n        let gasTimer_2 = setInterval(() => {\n            runGasApp_2();\n            gasAttempts_2++;\n            \/\/ Berhenti mencoba setelah 5 detik agar tidak membebani browser\n            if (isGasAppReady_2 || gasAttempts_2 > 50) clearInterval(gasTimer_2);\n        }, 100);\n\n        \/\/ Fallback event standar\n        document.addEventListener('DOMContentLoaded', runGasApp_2);\n        window.addEventListener('load', runGasApp_2);\n\n\n        function initApp_2() {\n            const container = document.getElementById(\"gas-app-container-2\");\n            if (!container) return; \n\n            container.innerHTML = `\n                <div class=\"gas-data-wrapper\">\n                    <div id=\"gasLoading-2\" class=\"gas-loading\">\n                        <div class=\"gas-spinner\"><\/div>\n                        <p>Memuat data...<\/p>\n                    <\/div>\n                    <div id=\"gasContent-2\" style=\"display: none;\">\n                        \n                        <div class=\"gas-header-info\">\n                            <div class=\"gas-header-right\">\n                                <div id=\"gasLastUpdated-2\" class=\"gas-last-updated\"><\/div>\n                                <button id=\"gasBtnRefresh-2\" class=\"gas-btn-refresh\" onclick=\"manualRefresh_2()\">\n                                    <svg width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\"><\/path><\/svg> \n                                    Update Data\n                                <\/button>\n                            <\/div>\n                        <\/div>\n\n                        <div class=\"gas-table-container\">\n                            <table class=\"gas-table\" id=\"gasTable-2\">\n                                <thead><tr id=\"gasTableHeader-2\"><\/tr><\/thead>\n                                <tbody><\/tbody>\n                            <\/table>\n                        <\/div>\n                        <div class=\"gas-pagination\" id=\"gasPagination-2\"><\/div>\n                    <\/div>\n                <\/div>\n            `;\n\n            if (IS_PREVIEW_2) {\n                \/\/ DATA DUMMY\n            } else {\n                const sheetId = container.getAttribute(\"data-sheet-id\");\n                const sheetName = container.getAttribute(\"data-sheet-name\");\n\n                if (!sheetId || !sheetName) {\n                    showError_2(\"Konfigurasi Embed Salah: data-sheet-id atau data-sheet-name belum diisi.\");\n                    return;\n                }\n\n                const cacheKey = `gas_data_${sheetId}_${sheetName}`;\n                const cachedData = sessionStorage.getItem(cacheKey);\n                \n                if (cachedData) {\n                    const parsedCache = JSON.parse(cachedData);\n                    appData_2.headers = parsedCache.headers;\n                    appData_2.data = parsedCache.data;\n                    \n                    setTimeout(() => {\n                        const lastUpdatedEl = document.getElementById(\"gasLastUpdated-2\");\n                        if(lastUpdatedEl && parsedCache.lastUpdated) {\n                            lastUpdatedEl.innerText = \"Terakhir diperbarui (Cache): \" + parsedCache.lastUpdated;\n                        }\n                    }, 50);\n\n                    processDataLoad_2(false); \n                    \n                    fetchData_2(sheetId, sheetName, cacheKey, true);\n                } else {\n                    fetchData_2(sheetId, sheetName, cacheKey, false);\n                }\n            }\n        }\n\n        function manualRefresh_2() {\n            const btn = document.getElementById(\"gasBtnRefresh-2\");\n            if (btn) btn.classList.add(\"spin-icon\");\n            \n            const container = document.getElementById(\"gas-app-container-2\");\n            const sheetId = container.getAttribute(\"data-sheet-id\");\n            const sheetName = container.getAttribute(\"data-sheet-name\");\n            \n            const cacheKey = `gas_data_${sheetId}_${sheetName}`;\n            \n            fetchData_2(sheetId, sheetName, cacheKey, true);\n        }\n\n        function fetchData_2(sheetId, sheetName, cacheKey, isBackground = false) {\n            const url = `${GAS_URL_2}?sheetId=${sheetId}&sheetName=${sheetName}`;\n\n            fetch(url)\n                .then(response => response.json())\n                .then(result => {\n                    const btn = document.getElementById(\"gasBtnRefresh-2\");\n                    if (btn) btn.classList.remove(\"spin-icon\");\n\n                    if (result.status === \"success\") {\n                        appData_2.headers = result.headers;\n                        appData_2.data = result.data;\n                        \n                        const nowTime = new Date().toLocaleTimeString('id-ID');\n\n                        sessionStorage.setItem(cacheKey, JSON.stringify({\n                            headers: appData_2.headers,\n                            data: appData_2.data,\n                            lastUpdated: nowTime\n                        }));\n                        \n                        const lastUpdatedEl = document.getElementById(\"gasLastUpdated-2\");\n                        if(lastUpdatedEl) {\n                            lastUpdatedEl.innerText = \"Terakhir diperbarui: \" + nowTime;\n                            lastUpdatedEl.style.color = \"#10B981\";\n                            setTimeout(() => lastUpdatedEl.style.color = \"var(--text-muted)\", 2000);\n                        }\n\n                        processDataLoad_2(isBackground);\n                    } else {\n                        if (!isBackground) showError_2(result.error);\n                    }\n                })\n                .catch(error => {\n                    const btn = document.getElementById(\"gasBtnRefresh-2\");\n                    if (btn) btn.classList.remove(\"spin-icon\");\n\n                    if (!isBackground) showError_2(\"Gagal menghubungi server database.\");\n                    console.error(\"Fetch Error:\", error);\n                });\n        }\n\n        function showError_2(message) {\n            const container = document.getElementById(\"gas-app-container-2\");\n            if (container) {\n                container.innerHTML = `<div class=\"gas-error\"><strong>Error:<\/strong> ${message}<\/div>`;\n            }\n        }\n\n        function processDataLoad_2(isBackgroundRefresh = false) {\n            if (!isBackgroundRefresh) {\n                document.getElementById(\"gasLoading-2\").style.display = \"none\";\n                document.getElementById(\"gasContent-2\").style.display = \"block\";\n            }\n\n            renderHeader_2();\n            \n            filteredRows_2 = appData_2.data;\n            currentPage_2 = 1;\n\n            renderTable_2();\n        }\n\n        function renderHeader_2() {\n            const thead = document.getElementById(\"gasTableHeader-2\");\n            if (!thead) return;\n            thead.innerHTML = \"\";\n            appData_2.headers.forEach(header => {\n                const th = document.createElement(\"th\");\n                th.innerText = header.replace(\/\\*$\/, \"\").trim();\n                thead.appendChild(th);\n            });\n        }\n\n        function formatCellContent_2(text) {\n            if (!text) return \"\";\n            if (typeof text !== 'string') text = String(text);\n            \n            if (text.toLowerCase().includes(\"<a \") && text.toLowerCase().includes(\"href=\")) {\n                return text; \n            }\n            \n            const urlRegex = \/(https?:\\\/\\\/[^\\s]+)\/g;\n            return text.replace(urlRegex, function(url) {\n                return `<a href=\"${url}\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"gas-link\">${url}<\/a>`;\n            });\n        }\n\n        function renderTable_2() {\n            const tbody = document.querySelector(\"#gasTable-2 tbody\");\n            if (!tbody) return;\n            tbody.innerHTML = \"\";\n\n            if (filteredRows_2.length === 0) {\n                tbody.innerHTML = `<tr><td colspan=\"${appData_2.headers.length}\" style=\"text-align: center; padding: 20px;\">Tidak ada data yang ditemukan.<\/td><\/tr>`;\n                renderPagination_2();\n                return;\n            }\n\n            const start = (currentPage_2 - 1) * rowsPerPage_2;\n            const end = start + rowsPerPage_2;\n            const paginatedData = filteredRows_2.slice(start, end);\n\n            paginatedData.forEach(row => {\n                const tr = document.createElement(\"tr\");\n                let rowHtml = \"\";\n                row.forEach(cell => {\n                    rowHtml += `<td>${formatCellContent_2(cell)}<\/td>`;\n                });\n                tr.innerHTML = rowHtml;\n                tbody.appendChild(tr);\n            });\n\n            renderPagination_2();\n        }\n\n        function renderPagination_2() {\n            const paginationContainer = document.getElementById(\"gasPagination-2\");\n            if (!paginationContainer) return;\n            paginationContainer.innerHTML = \"\";\n            \n            const totalPages = Math.ceil(filteredRows_2.length \/ rowsPerPage_2);\n            if (totalPages <= 1) return;\n\n            const prevBtn = document.createElement(\"button\");\n            prevBtn.className = \"gas-page-btn\";\n            prevBtn.innerText = \"Sebelumnya\";\n            prevBtn.disabled = currentPage_2 === 1;\n            prevBtn.onclick = () => {\n                if (currentPage_2 > 1) {\n                    currentPage_2--;\n                    renderTable_2();\n                }\n            };\n            paginationContainer.appendChild(prevBtn);\n\n            const pageInfo = document.createElement(\"span\");\n            pageInfo.className = \"gas-page-info\";\n            pageInfo.innerText = `Halaman ${currentPage_2} dari ${totalPages}`;\n            paginationContainer.appendChild(pageInfo);\n\n            const nextBtn = document.createElement(\"button\");\n            nextBtn.className = \"gas-page-btn\";\n            nextBtn.innerText = \"Selanjutnya\";\n            nextBtn.disabled = currentPage_2 === totalPages;\n            nextBtn.onclick = () => {\n                if (currentPage_2 < totalPages) {\n                    currentPage_2++;\n                    renderTable_2();\n                }\n            };\n            paginationContainer.appendChild(nextBtn);\n        }\n    <\/script>\n<\/body>\n<\/html>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9b8cde7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9b8cde7\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f506e50\" data-id=\"f506e50\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-085630c elementor-widget elementor-widget-heading\" data-id=\"085630c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Daftar Prosiding Semua Program Studi<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c29731 elementor-widget elementor-widget-html\" data-id=\"5c29731\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE html>\n<html lang=\"id\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Universal Data Viewer - Tabel 1<\/title>\n    <style>\n        \/* =========================================\n           VARIABEL WARNA & TEMA DASAR\n        ========================================= *\/\n        :root {\n            --primary-color: #4F46E5;\n            --primary-hover: #4338CA;\n            --bg-color: #F9FAFB;\n            --card-bg: #FFFFFF;\n            --text-main: #1F2937;\n            --text-muted: #6B7280;\n            --border-color: #E5E7EB;\n            --font-family: 'Inter', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n        }\n\n        \/* Isolasi CSS Tabel 1 agar tidak bentrok dengan Tabel 2 *\/\n        #gas-app-container-1 .gas-data-wrapper {\n            font-family: var(--font-family);\n            background-color: var(--bg-color);\n            color: var(--text-main);\n            padding: 20px;\n            border-radius: 12px;\n            box-shadow: 0 ;\n            max-width: 100%; \n            margin: 0 auto;\n            overflow: hidden;\n        }\n\n        #gas-app-container-1 .gas-data-wrapper * {\n            box-sizing: border-box;\n        }\n\n        \/* =========================================\n           KONTROL (PENCARIAN & FILTER)\n        ========================================= *\/\n        #gas-app-container-1 .gas-controls {\n            display: flex;\n            flex-direction: column;\n            gap: 15px;\n            margin-bottom: 20px;\n            background: var(--card-bg);\n            padding: 15px;\n            border-radius: 8px;\n            border: 1px solid var(--border-color);\n        }\n\n        #gas-app-container-1 .gas-search-box {\n            width: 100%;\n            position: relative;\n        }\n\n        #gas-app-container-1 .gas-search-input {\n            width: 100%;\n            padding: 10px 15px;\n            height: 42px; \n            border: 1px solid var(--border-color);\n            border-radius: 6px;\n            font-size: 14px;\n            outline: none;\n            transition: border-color 0.2s;\n        }\n\n        #gas-app-container-1 .gas-search-input:focus {\n            border-color: var(--primary-color);\n            box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1);\n        }\n\n        #gas-app-container-1 .gas-filter-group {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 10px;\n            width: 100%;\n            align-items: center; \n        }\n\n        #gas-app-container-1 .gas-filter-select {\n            padding: 0 10px;\n            height: 42px; \n            border: 1px solid var(--border-color);\n            border-radius: 6px;\n            font-size: 14px;\n            background-color: white;\n            flex: 1;\n            min-width: 150px;\n            outline: none;\n            cursor: pointer;\n        }\n\n        #gas-app-container-1 .gas-btn-reset {\n            padding: 0 15px;\n            height: 42px; \n            background-color: #EF4444;\n            color: white;\n            border: none;\n            border-radius: 6px;\n            cursor: pointer;\n            font-size: 14px;\n            transition: background 0.2s;\n            white-space: nowrap;\n        }\n\n        #gas-app-container-1 .gas-btn-reset:hover {\n            background-color: #DC2626;\n        }\n\n        \/* =========================================\n           INFO HEADER & TOMBOL REFRESH\n        ========================================= *\/\n        #gas-app-container-1 .gas-header-info {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            margin-bottom: 10px;\n            flex-wrap: wrap;\n            gap: 10px;\n        }\n\n        #gas-app-container-1 .gas-data-count {\n            font-size: 13px;\n            color: var(--text-muted);\n            background-color: #F3F4F6;\n            padding: 6px 12px;\n            border-radius: 6px;\n            border: 1px solid var(--border-color);\n        }\n        \n        #gas-app-container-1 .gas-data-count strong {\n            color: var(--primary-color);\n            font-weight: 600;\n        }\n\n        #gas-app-container-1 .gas-header-right {\n            display: flex;\n            align-items: center;\n            gap: 10px;\n            flex-wrap: wrap;\n        }\n\n        #gas-app-container-1 .gas-last-updated {\n            font-size: 12px;\n            color: var(--text-muted);\n            font-style: italic;\n        }\n\n        #gas-app-container-1 .gas-btn-refresh {\n            padding: 6px 12px;\n            background-color: var(--card-bg);\n            border: 1px solid var(--border-color);\n            border-radius: 6px;\n            font-size: 13px;\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            gap: 6px;\n            color: var(--text-main);\n            transition: all 0.2s;\n            font-weight: 500;\n        }\n\n        #gas-app-container-1 .gas-btn-refresh:hover {\n            background-color: #F3F4F6;\n        }\n\n        #gas-app-container-1 .gas-btn-refresh svg {\n            transition: transform 0.3s;\n        }\n\n        #gas-app-container-1 .spin-icon svg {\n            animation: spin-svg-1 1s linear infinite;\n        }\n\n        @keyframes spin-svg-1 { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }\n\n        \/* =========================================\n           DESAIN TABEL\n        ========================================= *\/\n        #gas-app-container-1 .gas-table-container {\n            width: 100%;\n            overflow-x: auto; \n            background: var(--card-bg);\n            border-radius: 8px;\n            border: 1px solid var(--border-color);\n        }\n\n        #gas-app-container-1 .gas-table {\n            width: 100%;\n            border-collapse: collapse;\n            text-align: left;\n            min-width: 600px;\n        }\n\n        #gas-app-container-1 .gas-table th, #gas-app-container-1 .gas-table td {\n            padding: 12px 15px;\n            border-bottom: 1px solid var(--border-color);\n            font-size: 14px;\n        }\n\n        #gas-app-container-1 .gas-table td {\n            font-weight: 400 !important; \n        }\n\n        #gas-app-container-1 .gas-table th {\n            background-color: #F3F4F6;\n            font-weight: 600;\n            color: var(--text-main);\n            text-transform: uppercase;\n            font-size: 12px;\n            letter-spacing: 0.05em;\n            text-align: center; \n        }\n\n        #gas-app-container-1 .gas-table tr:hover {\n            background-color: #F9FAFB;\n        }\n\n        #gas-app-container-1 .gas-link {\n            color: #2563EB;\n            text-decoration: none;\n            font-weight: 500;\n            word-break: break-all;\n        }\n        #gas-app-container-1 .gas-link:hover {\n            text-decoration: underline;\n            color: #1D4ED8;\n        }\n\n        \/* =========================================\n           PAGINASI & LOADING\n        ========================================= *\/\n        #gas-app-container-1 .gas-pagination {\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            gap: 15px;\n            margin-top: 20px;\n        }\n\n        #gas-app-container-1 .gas-page-btn {\n            padding: 8px 16px;\n            background-color: var(--card-bg);\n            border: 1px solid var(--border-color);\n            border-radius: 6px;\n            cursor: pointer;\n            font-size: 14px;\n            transition: all 0.2s;\n        }\n\n        #gas-app-container-1 .gas-page-btn:hover:not(:disabled) {\n            background-color: var(--primary-color);\n            color: white;\n            border-color: var(--primary-color);\n        }\n\n        #gas-app-container-1 .gas-page-btn:disabled {\n            opacity: 0.5;\n            cursor: not-allowed;\n            background-color: #F3F4F6;\n        }\n\n        #gas-app-container-1 .gas-page-info {\n            font-size: 14px;\n            color: var(--text-muted);\n        }\n\n        #gas-app-container-1 .gas-loading {\n            text-align: center;\n            padding: 40px;\n            color: var(--text-muted);\n        }\n        #gas-app-container-1 .gas-spinner {\n            border: 4px solid #f3f3f3;\n            border-top: 4px solid var(--primary-color);\n            border-radius: 50%;\n            width: 40px;\n            height: 40px;\n            animation: spin-1 1s linear infinite;\n            margin: 0 auto 15px auto;\n        }\n        @keyframes spin-1 { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }\n\n        #gas-app-container-1 .gas-error {\n            background-color: #FEE2E2;\n            color: #B91C1C;\n            padding: 15px;\n            border-radius: 6px;\n            text-align: center;\n            border: 1px solid #FCA5A5;\n            margin-bottom: 20px;\n        }\n\n        @media screen and (max-width: 768px) {\n            #gas-app-container-1 .gas-filter-select {\n                width: 100%; \n                flex: none;\n            }\n            #gas-app-container-1 .gas-btn-reset {\n                width: 100%; \n            }\n        }\n    <\/style>\n<\/head>\n<body>\n\n    <!-- KODE EMBED TABEL 1 (DENGAN FILTER) -->\n    <div id=\"gas-app-container-1\" \n         data-sheet-id=\"1iPnBNBFio7dOs1S7OA8FZWUyhQMnAJRYHeBRec8plIQ\" \n         data-sheet-name=\"All\"> \n    <\/div>\n\n    <script>\n        \/\/ =========================================\n        \/\/ KONFIGURASI APLIKASI 1\n        \/\/ =========================================\n        const IS_PREVIEW_1 = false; \n        const GAS_URL_1 = \"https:\/\/script.google.com\/macros\/s\/AKfycbwxHMaAnyupyTn1Eh5OsiP_mN9xwmoAwO8JLCOA3CaLfQ-nZkvvZV6azCHly14eaz4VqQ\/exec\";\n\n        let appData_1 = { headers: [], data: [] };\n        let filteredRows_1 = [];\n        let currentPage_1 = 1;\n        const rowsPerPage_1 = 20;\n        \n        let activeFilters_1 = {}; \n        let searchQuery_1 = \"\";\n\n        \/\/ =========================================\n        \/\/ SISTEM INISIALISASI ANTI-TAB FREEZE (POLLING)\n        \/\/ =========================================\n        let isGasAppReady_1 = false;\n\n        function runGasApp_1() {\n            if (isGasAppReady_1) return;\n            const container = document.getElementById(\"gas-app-container-1\");\n            if (container) {\n                isGasAppReady_1 = true;\n                initApp_1();\n            }\n        }\n\n        \/\/ Coba jalankan secara berulang selama beberapa detik pertama\n        let gasAttempts_1 = 0;\n        let gasTimer_1 = setInterval(() => {\n            runGasApp_1();\n            gasAttempts_1++;\n            \/\/ Berhenti mencoba setelah 5 detik agar tidak membebani browser\n            if (isGasAppReady_1 || gasAttempts_1 > 50) clearInterval(gasTimer_1);\n        }, 100);\n\n        \/\/ Fallback event standar\n        document.addEventListener('DOMContentLoaded', runGasApp_1);\n        window.addEventListener('load', runGasApp_1);\n\n\n        function initApp_1() {\n            const container = document.getElementById(\"gas-app-container-1\");\n            if (!container) return; \n\n            \/\/ Buat kerangka UI awal\n            container.innerHTML = `\n                <div class=\"gas-data-wrapper\">\n                    <div id=\"gasLoading-1\" class=\"gas-loading\">\n                        <div class=\"gas-spinner\"><\/div>\n                        <p>Memuat data...<\/p>\n                    <\/div>\n                    <div id=\"gasContent-1\" style=\"display: none;\">\n                        <div class=\"gas-controls\" id=\"gasControls-1\">\n                            <div class=\"gas-search-box\">\n                                <input type=\"text\" id=\"gasSearchInput-1\" class=\"gas-search-input\" placeholder=\"Cari data apa saja...\" onkeyup=\"handleSearch_1(this.value)\">\n                            <\/div>\n                            <div class=\"gas-filter-group\" id=\"gasFilterContainer-1\">\n                                <!-- Dropdown Filter Otomatis -->\n                            <\/div>\n                        <\/div>\n                        \n                        <div class=\"gas-header-info\">\n                            <div id=\"gasDataCount-1\" class=\"gas-data-count\">Memuat jumlah data...<\/div>\n                            <div class=\"gas-header-right\">\n                                <div id=\"gasLastUpdated-1\" class=\"gas-last-updated\"><\/div>\n                                <button id=\"gasBtnRefresh-1\" class=\"gas-btn-refresh\" onclick=\"manualRefresh_1()\">\n                                    <svg width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\"><\/path><\/svg> \n                                    Update Data\n                                <\/button>\n                            <\/div>\n                        <\/div>\n\n                        <div class=\"gas-table-container\">\n                            <table class=\"gas-table\" id=\"gasTable-1\">\n                                <thead><tr id=\"gasTableHeader-1\"><\/tr><\/thead>\n                                <tbody><\/tbody>\n                            <\/table>\n                        <\/div>\n                        <div class=\"gas-pagination\" id=\"gasPagination-1\"><\/div>\n                    <\/div>\n                <\/div>\n            `;\n\n            if (IS_PREVIEW_1) {\n                \/\/ DATA DUMMY\n            } else {\n                const sheetId = container.getAttribute(\"data-sheet-id\");\n                const sheetName = container.getAttribute(\"data-sheet-name\");\n\n                if (!sheetId || !sheetName) {\n                    showError_1(\"Konfigurasi Embed Salah: data-sheet-id atau data-sheet-name belum diisi.\");\n                    return;\n                }\n\n                const cacheKey = `gas_data_${sheetId}_${sheetName}`;\n                const cachedData = sessionStorage.getItem(cacheKey);\n                \n                if (cachedData) {\n                    const parsedCache = JSON.parse(cachedData);\n                    appData_1.headers = parsedCache.headers;\n                    appData_1.data = parsedCache.data;\n                    \n                    setTimeout(() => {\n                        const lastUpdatedEl = document.getElementById(\"gasLastUpdated-1\");\n                        if(lastUpdatedEl && parsedCache.lastUpdated) {\n                            lastUpdatedEl.innerText = \"Terakhir diperbarui (Cache): \" + parsedCache.lastUpdated;\n                        }\n                    }, 50);\n\n                    processDataLoad_1(false); \n                    \n                    fetchData_1(sheetId, sheetName, cacheKey, true);\n                } else {\n                    fetchData_1(sheetId, sheetName, cacheKey, false);\n                }\n            }\n        }\n\n        function manualRefresh_1() {\n            const btn = document.getElementById(\"gasBtnRefresh-1\");\n            if (btn) btn.classList.add(\"spin-icon\"); \n            \n            const container = document.getElementById(\"gas-app-container-1\");\n            const sheetId = container.getAttribute(\"data-sheet-id\");\n            const sheetName = container.getAttribute(\"data-sheet-name\");\n            \n            const cacheKey = `gas_data_${sheetId}_${sheetName}`;\n            \n            fetchData_1(sheetId, sheetName, cacheKey, true);\n        }\n\n        function fetchData_1(sheetId, sheetName, cacheKey, isBackground = false) {\n            const url = `${GAS_URL_1}?sheetId=${sheetId}&sheetName=${sheetName}`;\n\n            fetch(url)\n                .then(response => response.json())\n                .then(result => {\n                    const btn = document.getElementById(\"gasBtnRefresh-1\");\n                    if (btn) btn.classList.remove(\"spin-icon\");\n\n                    if (result.status === \"success\") {\n                        appData_1.headers = result.headers;\n                        appData_1.data = result.data;\n                        \n                        const nowTime = new Date().toLocaleTimeString('id-ID');\n\n                        sessionStorage.setItem(cacheKey, JSON.stringify({\n                            headers: appData_1.headers,\n                            data: appData_1.data,\n                            lastUpdated: nowTime\n                        }));\n                        \n                        const lastUpdatedEl = document.getElementById(\"gasLastUpdated-1\");\n                        if(lastUpdatedEl) {\n                            lastUpdatedEl.innerText = \"Terakhir diperbarui: \" + nowTime;\n                            lastUpdatedEl.style.color = \"#10B981\"; \n                            setTimeout(() => lastUpdatedEl.style.color = \"var(--text-muted)\", 2000);\n                        }\n\n                        processDataLoad_1(isBackground);\n                    } else {\n                        if (!isBackground) showError_1(result.error);\n                    }\n                })\n                .catch(error => {\n                    const btn = document.getElementById(\"gasBtnRefresh-1\");\n                    if (btn) btn.classList.remove(\"spin-icon\");\n\n                    if (!isBackground) showError_1(\"Gagal menghubungi server database.\");\n                    console.error(\"Fetch Error:\", error);\n                });\n        }\n\n        function showError_1(message) {\n            const container = document.getElementById(\"gas-app-container-1\");\n            if (container) {\n                container.innerHTML = `<div class=\"gas-error\"><strong>Error:<\/strong> ${message}<\/div>`;\n            }\n        }\n\n        function processDataLoad_1(isBackgroundRefresh = false) {\n            if (!isBackgroundRefresh) {\n                document.getElementById(\"gasLoading-1\").style.display = \"none\";\n                document.getElementById(\"gasContent-1\").style.display = \"block\";\n            }\n\n            renderHeader_1();\n            renderFilters_1();\n            applyFiltersAndSearch_1();\n        }\n\n        function renderHeader_1() {\n            const thead = document.getElementById(\"gasTableHeader-1\");\n            if (!thead) return;\n            thead.innerHTML = \"\";\n            appData_1.headers.forEach(header => {\n                const th = document.createElement(\"th\");\n                th.innerText = header.replace(\/\\*$\/, \"\").trim();\n                thead.appendChild(th);\n            });\n        }\n\n        function renderFilters_1() {\n            const container = document.getElementById(\"gasFilterContainer-1\");\n            if (!container) return;\n            \n            let filterHtml = \"\";\n            let filterableColumns = [];\n\n            appData_1.headers.forEach((header, index) => {\n                let isFilterable = header.trim().endsWith(\"*\");\n                let cleanHeader = header.replace(\/\\*$\/, \"\").trim(); \n\n                if (isFilterable) {\n                    let uniqueValues = [...new Set(appData_1.data.map(row => {\n                        let textVal = String(row[index] || \"\");\n                        return textVal.replace(\/<[^>]*>?\/gm, '');\n                    }))].filter(val => val !== \"\" && val !== null && val !== undefined);\n                \n                    filterableColumns.push(index);\n                    let optionsHtml = uniqueValues.sort().map(val => `<option value=\"${val}\">${val}<\/option>`).join(\"\");\n                    \n                    filterHtml += `\n                        <select class=\"gas-filter-select\" data-col-index=\"${index}\" onchange=\"handleFilterChange_1(this)\">\n                            <option value=\"\">Semua ${cleanHeader}<\/option>\n                            ${optionsHtml}\n                        <\/select>\n                    `;\n                }\n            });\n\n            if (filterableColumns.length > 0) {\n                 filterHtml += `<button class=\"gas-btn-reset\" onclick=\"resetFilters_1()\">Reset Filter<\/button>`;\n            }\n\n            container.innerHTML = filterHtml;\n\n            const selects = document.getElementById(\"gasFilterContainer-1\").querySelectorAll(\".gas-filter-select\");\n            selects.forEach(select => {\n                const colIndex = select.getAttribute(\"data-col-index\");\n                if (activeFilters_1[colIndex]) {\n                    select.value = activeFilters_1[colIndex];\n                }\n            });\n        }\n\n        function handleSearch_1(value) {\n            searchQuery_1 = value.toLowerCase();\n            currentPage_1 = 1;\n            applyFiltersAndSearch_1();\n        }\n\n        function handleFilterChange_1(selectElement) {\n            const colIndex = selectElement.getAttribute(\"data-col-index\");\n            const value = selectElement.value;\n\n            if (value === \"\") {\n                delete activeFilters_1[colIndex];\n            } else {\n                activeFilters_1[colIndex] = value;\n            }\n            \n            currentPage_1 = 1;\n            applyFiltersAndSearch_1();\n        }\n\n        function resetFilters_1() {\n            const searchInput = document.getElementById(\"gasSearchInput-1\");\n            if (searchInput) searchInput.value = \"\";\n            \n            const selects = document.getElementById(\"gasFilterContainer-1\").querySelectorAll(\".gas-filter-select\");\n            selects.forEach(select => select.value = \"\");\n            \n            searchQuery_1 = \"\";\n            activeFilters_1 = {};\n            currentPage_1 = 1;\n            \n            applyFiltersAndSearch_1();\n        }\n\n        function applyFiltersAndSearch_1() {\n            filteredRows_1 = appData_1.data.filter(row => {\n                for (let colIndex in activeFilters_1) {\n                    let cellText = String(row[colIndex] || \"\").replace(\/<[^>]*>?\/gm, '');\n                    if (cellText !== activeFilters_1[colIndex]) return false; \n                }\n                if (searchQuery_1 !== \"\") {\n                    const rowString = row.map(v => String(v).replace(\/<[^>]*>?\/gm, '')).join(\" \").toLowerCase();\n                    if (!rowString.includes(searchQuery_1)) return false;\n                }\n                return true;\n            });\n\n            const countEl = document.getElementById(\"gasDataCount-1\");\n            if (countEl) {\n                if (searchQuery_1 !== \"\" || Object.keys(activeFilters_1).length > 0) {\n                    countEl.innerHTML = `Menemukan <strong>${filteredRows_1.length}<\/strong> dari total <strong>${appData_1.data.length}<\/strong> data`;\n                } else {\n                    countEl.innerHTML = `Menampilkan total <strong>${appData_1.data.length}<\/strong> data`;\n                }\n            }\n\n            renderTable_1();\n        }\n\n        function formatCellContent_1(text) {\n            if (!text) return \"\";\n            if (typeof text !== 'string') text = String(text);\n            \n            if (text.toLowerCase().includes(\"<a \") && text.toLowerCase().includes(\"href=\")) {\n                return text; \n            }\n            \n            const urlRegex = \/(https?:\\\/\\\/[^\\s]+)\/g;\n            return text.replace(urlRegex, function(url) {\n                return `<a href=\"${url}\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"gas-link\">${url}<\/a>`;\n            });\n        }\n\n        function renderTable_1() {\n            const tbody = document.querySelector(\"#gasTable-1 tbody\");\n            if (!tbody) return;\n            tbody.innerHTML = \"\";\n\n            if (filteredRows_1.length === 0) {\n                tbody.innerHTML = `<tr><td colspan=\"${appData_1.headers.length}\" style=\"text-align: center; padding: 20px;\">Tidak ada data yang ditemukan.<\/td><\/tr>`;\n                renderPagination_1();\n                return;\n            }\n\n            const start = (currentPage_1 - 1) * rowsPerPage_1;\n            const end = start + rowsPerPage_1;\n            const paginatedData = filteredRows_1.slice(start, end);\n\n            paginatedData.forEach(row => {\n                const tr = document.createElement(\"tr\");\n                let rowHtml = \"\";\n                row.forEach(cell => {\n                    rowHtml += `<td>${formatCellContent_1(cell)}<\/td>`;\n                });\n                tr.innerHTML = rowHtml;\n                tbody.appendChild(tr);\n            });\n\n            renderPagination_1();\n        }\n\n        function renderPagination_1() {\n            const paginationContainer = document.getElementById(\"gasPagination-1\");\n            if (!paginationContainer) return;\n            paginationContainer.innerHTML = \"\";\n            \n            const totalPages = Math.ceil(filteredRows_1.length \/ rowsPerPage_1);\n            if (totalPages <= 1) return;\n\n            const prevBtn = document.createElement(\"button\");\n            prevBtn.className = \"gas-page-btn\";\n            prevBtn.innerText = \"Sebelumnya\";\n            prevBtn.disabled = currentPage_1 === 1;\n            prevBtn.onclick = () => {\n                if (currentPage_1 > 1) {\n                    currentPage_1--;\n                    renderTable_1();\n                }\n            };\n            paginationContainer.appendChild(prevBtn);\n\n            const pageInfo = document.createElement(\"span\");\n            pageInfo.className = \"gas-page-info\";\n            pageInfo.innerText = `Halaman ${currentPage_1} dari ${totalPages}`;\n            paginationContainer.appendChild(pageInfo);\n\n            const nextBtn = document.createElement(\"button\");\n            nextBtn.className = \"gas-page-btn\";\n            nextBtn.innerText = \"Selanjutnya\";\n            nextBtn.disabled = currentPage_1 === totalPages;\n            nextBtn.onclick = () => {\n                if (currentPage_1 < totalPages) {\n                    currentPage_1++;\n                    renderTable_1();\n                }\n            };\n            paginationContainer.appendChild(nextBtn);\n        }\n    <\/script>\n<\/body>\n<\/html>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Daftar Prosiding STIKes Muhammadiyah Ciamis Berikut merupakan kumpulan prosiding yang tersedia di Perpustakaan STIKes Muhammadiyah Ciamis Rekap Prosiding Universal Data Viewer &#8211; Tabel Murni Daftar Prosiding Semua Program Studi Universal Data Viewer &#8211; Tabel 1<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-1283","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/lib.stikesmucis.ac.id\/index.php?rest_route=\/wp\/v2\/pages\/1283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lib.stikesmucis.ac.id\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lib.stikesmucis.ac.id\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lib.stikesmucis.ac.id\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lib.stikesmucis.ac.id\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1283"}],"version-history":[{"count":212,"href":"https:\/\/lib.stikesmucis.ac.id\/index.php?rest_route=\/wp\/v2\/pages\/1283\/revisions"}],"predecessor-version":[{"id":3335,"href":"https:\/\/lib.stikesmucis.ac.id\/index.php?rest_route=\/wp\/v2\/pages\/1283\/revisions\/3335"}],"wp:attachment":[{"href":"https:\/\/lib.stikesmucis.ac.id\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}