{"id":3887,"date":"2025-10-18T20:40:03","date_gmt":"2025-10-18T13:40:03","guid":{"rendered":"https:\/\/bknpdiperjuangan.id\/?page_id=3887"},"modified":"2025-12-13T01:53:23","modified_gmt":"2025-12-12T18:53:23","slug":"rangking-dokumenter","status":"publish","type":"page","link":"https:\/\/bknpdiperjuangan.id\/en\/rangking-dokumenter\/","title":{"rendered":"Rangking Video Kreatif"},"content":{"rendered":"<div class=\"table-container\">\n    <table id=\"data-penjurian\" style=\"width: 100%; border-collapse: collapse;\">\n        <thead>\n            <tr style=\"background-color: darkred; color: white;\">\n                <th style=\"padding: 10px; border: 1px solid #ccc;\">Judul Karya<\/th>\n                <th style=\"padding: 10px; border: 1px solid #ccc;\">Filosofi Konten<\/th>\n                <th style=\"padding: 10px; border: 1px solid #ccc;\">Substansi Konten<\/th>\n                <th style=\"padding: 10px; border: 1px solid #ccc;\">Keunikan Konten<\/th>\n                <th style=\"padding: 10px; border: 1px solid #ccc;\">Visual Video<\/th>\n                <th style=\"padding: 10px; border: 1px solid #ccc;\">Total Nilai<\/th>\n            <\/tr>\n        <\/thead>\n        <tbody id=\"tabel-body-data\">\n            <tr><td colspan=\"6\" style=\"text-align:center; padding: 20px;\">Memuat data&#8230;<\/td><\/tr>\n        <\/tbody>\n    <\/table>\n<\/div>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ \u26a0\ufe0f GANTI DENGAN URL CSV PUBLIK ANDA DI SINI\n    const SHEET_URL = 'https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vS--iUMpQrZ39tJYxrEPGiwVVBhlLhpVStogstUF4qQc9UoKSEKsVNzNiRl5ByTJ05KhSQ20Zl5q7DS\/pub?gid=1495371284&single=true&output=csv';\n    \n    const tableBody = document.getElementById('tabel-body-data');\n    const totalColumns = 6; \/\/ HARUS 6\n    const TOTAL_NILAI_INDEX = 5; \/\/ Index kolom Total Nilai (kolom ke-6)\n    const JUDUL_KARYA_INDEX = 0; \/\/ Index kolom Judul Karya (kolom ke-1)\n    \n    if (!tableBody) return;\n\n    \/\/ --- FUNGSI BARU UNTUK TROPHY (PENAMBAHAN 1) ---\n    function getTrophy(rank) {\n        if (rank === 1) return ' \ud83c\udfc6'; \/\/ Emas\n        if (rank === 2) return ' \ud83e\udd48'; \/\/ Perak\n        if (rank === 3) return ' \ud83e\udd49'; \/\/ Perunggu\n        return '';\n    }\n\n    \/\/ --- FUNGSI BARU UNTUK MERENDER DATA KE TABEL (PENAMBAHAN 2) ---\n    function renderTable(dataRows) {\n        \/\/ Kosongkan tabel sebelum merender data yang sudah diurutkan\n        tableBody.innerHTML = ''; \n\n        dataRows.forEach((columns, index) => {\n            const newRow = document.createElement('tr');\n            \/\/ Menentukan warna baris menggunakan index dari data yang sudah diurutkan\n            newRow.style.backgroundColor = ((index + 1) % 2 === 0) ? '#f9f9f9' : '#ffffff';\n            \n            const rank = index + 1; \/\/ Peringkat dimulai dari 1\n            const trophy = getTrophy(rank);\n\n            for (let j = 0; j < totalColumns; j++) {\n                \/\/ Hapus tanda kutip dari data jika ada\n                const data = columns[j].trim().replace(\/\"\/g, ''); \n                \n                const newCell = document.createElement('td');\n                newCell.style.padding = '10px';\n                newCell.style.border = '1px solid #ccc';\n                newCell.style.color = '#222'; \n                newCell.style.fontWeight = '500'; \n                newCell.style.fontSize = '15px'; \n\n               if (j === JUDUL_KARYA_INDEX) { \/\/ <-- PERUBAHAN UTAMA DI SINI\n                    \/\/ Tambahkan ikon piala HANYA di kolom Judul Karya\n                    newCell.innerHTML = `<strong>${data}<\/strong>${trophy}`;\n                } \n                else if (j === TOTAL_NILAI_INDEX) {\n                    \/\/ Hanya tampilkan nilai tanpa piala\n                    newCell.textContent = data; \n                    newCell.style.textAlign = 'center'; \/\/ Rata tengah\n                }\n                else {\n                    newCell.textContent = data;\n                }\n\n                newRow.appendChild(newCell);\n            }\n            \n            tableBody.appendChild(newRow);\n        });\n    }\n\n    tableBody.innerHTML = `<tr><td colspan=\"${totalColumns}\" style=\"text-align:center; padding: 20px;\">Memuat data...<\/td><\/tr>`;\n\n    \/\/ Ambil data CSV\n    fetch(SHEET_URL)\n        .then(response => {\n            if (!response.ok) {\n                throw new Error('Gagal mengambil data dari Google Sheets. Status: ' + response.status);\n            }\n            return response.text();\n        })\n        .then(csvText => {\n            \/\/ Kita tidak merender kosong di sini, tapi setelah parsing & sorting\n            \/\/ tableBody.innerHTML = ''; \n            \n            const rows = csvText.trim().split('\\n');\n            \n            if (rows.length <= 1) {\n                tableBody.innerHTML = `<tr style=\"color: blue;\"><td colspan=\"${totalColumns}\" style=\"text-align:center; padding: 20px;\">Data kosong atau hanya ada header.<\/td><\/tr>`;\n                return;\n            }\n\n            \/\/ --- DATA COLLECTION (PENAMBAHAN 3) ---\n            let dataRows = []; \/\/ Array untuk menyimpan semua baris data\n            \n            for (let i = 1; i < rows.length; i++) {\n                \n                const trimmedRow = rows[i].trim();\n                if (trimmedRow === '') continue; \n\n                \/\/ Regex untuk memisahkan kolom\n                const columns = trimmedRow.match(\/(\".*?\"|[^,]+)(?=,|$)\/g);\n                \n                if (columns.length === totalColumns) {\n                    \/\/ Simpan data baris yang sudah di-parse ke array\n                    dataRows.push(columns); \n                } else {\n                    console.warn(`Baris ${i + 1} dilewati. Diharapkan ${totalColumns} kolom, Ditemukan ${columns ? columns.length : 'null'}.`);\n                }\n            }\n\n            \/\/ --- SORTING (PENAMBAHAN 4) ---\n            \/\/ Urutkan dataRows berdasarkan Total Nilai (index 5), dari tertinggi ke terendah\n            dataRows.sort((a, b) => {\n                \/\/ Menggunakan parseFloat untuk perbandingan angka, dan menghapus tanda kutip jika ada\n                const valA = parseFloat(a[TOTAL_NILAI_INDEX].trim().replace(\/\"\/g, ''));\n                const valB = parseFloat(b[TOTAL_NILAI_INDEX].trim().replace(\/\"\/g, ''));\n                return valB - valA; \/\/ Pengurutan menurun (DESC)\n            });\n\n            \/\/ --- RENDER KE TABEL (PENGGANTIAN LOOP) ---\n            \/\/ Panggil fungsi renderTable dengan data yang sudah diurutkan\n            renderTable(dataRows);\n\n\n        })\n        .catch(error => {\n            console.error('Terjadi kesalahan FETCH:', error);\n            tableBody.innerHTML = `<tr><td colspan=\"${totalColumns}\" style=\"text-align:center; color:red; padding: 20px;\">ERROR: Gagal memuat data. Pesan: ${error.message}<\/td><\/tr>`;\n        });\n});\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>","protected":false},"excerpt":{"rendered":"<p>Judul Karya Filosofi Konten Substansi Konten Keunikan Konten Visual Video Total Nilai Memuat data&#8230;<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-3887","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/bknpdiperjuangan.id\/en\/wp-json\/wp\/v2\/pages\/3887","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bknpdiperjuangan.id\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bknpdiperjuangan.id\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bknpdiperjuangan.id\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bknpdiperjuangan.id\/en\/wp-json\/wp\/v2\/comments?post=3887"}],"version-history":[{"count":66,"href":"https:\/\/bknpdiperjuangan.id\/en\/wp-json\/wp\/v2\/pages\/3887\/revisions"}],"predecessor-version":[{"id":4302,"href":"https:\/\/bknpdiperjuangan.id\/en\/wp-json\/wp\/v2\/pages\/3887\/revisions\/4302"}],"wp:attachment":[{"href":"https:\/\/bknpdiperjuangan.id\/en\/wp-json\/wp\/v2\/media?parent=3887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}