Akses Cepat Semua Sistem Dalam Satu PortalEfisien & Terpadu
Selamat datang di pusat navigasi aplikasi instansi. Temukan dan jalankan seluruh sistem informasi administrasi, akademik, maupun operasional dalam hitungan detik.
Realtime Sync Google Sheets
Sistem Terproteksi
Memuat Aplikasi...
Katalog Aplikasi
Daftar Layanan Digital Tersedia
Aplikasi Tidak Ditemukan
Coba cari dengan kata kunci lain atau pilih kategori "Semua Kategori".
Informasi Terkini
Pengumuman & Pembaruan Sistem
Pemberitahuan pemeliharaan server, rilis fitur baru, dan agenda operasional layanan.
Pusat Dukungan Helpdesk
Butuh Akses Akun Baru atau Bantuan Teknis?
Tim teknis IT Helpdesk kami siap melayani kendala login, pembuatan hak akses aplikasi, maupun integrasi sistem baru selama jam operasional.
Sabtu - Kamis: 07:00 - 14:00 WIB
Gedung BLKK YMI Wonopringgo | YMI Digital
Klik menu Ekstensi > Apps Script, hapus kode lama dan tempel kode di bawah:
function doGet(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var appSheet = ss.getSheetByName("Aplikasi");
var annSheet = ss.getSheetByName("Pengumuman");
return ContentService.createTextOutput(JSON.stringify({
apps: getSheetData(appSheet),
announcements: getSheetData(annSheet)
})).setMimeType(ContentService.MimeType.JSON);
}
function getSheetData(sheet) {
if (!sheet) return [];
var data = sheet.getDataRange().getValues();
if (data.length <= 1) return [];
var headers = data[0];
var result = [];
for (var i = 1; i < data.length; i++) {
var obj = {};
for (var j = 0; j < headers.length; j++) {
obj[headers[j]] = data[i][j];
}
result.push(obj);
}
return result;
}
function doPost(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var requestData = JSON.parse(e.postData.contents);
var action = requestData.action;
if (action === "syncAll") {
// Sinkronisasi Sheet Aplikasi
if (requestData.items) {
var appSheet = ss.getSheetByName("Aplikasi") || ss.insertSheet("Aplikasi");
appSheet.clearContents();
appSheet.appendRow(["id", "nama", "deskripsi", "url", "kategori", "icon"]);
requestData.items.forEach(function(item) {
appSheet.appendRow([item.id, item.nama, item.deskripsi, item.url, item.kategori, item.icon]);
});
}
// Sinkronisasi Sheet Pengumuman
if (requestData.announcements) {
var annSheet = ss.getSheetByName("Pengumuman") || ss.insertSheet("Pengumuman");
annSheet.clearContents();
annSheet.appendRow(["id", "tanggal", "judul", "konten", "tag", "tagClass"]);
requestData.announcements.forEach(function(item) {
annSheet.appendRow([item.id, item.tanggal, item.judul, item.konten, item.tag, item.tagClass]);
});
}
return ContentService.createTextOutput(JSON.stringify({status: "success"}))
.setMimeType(ContentService.MimeType.JSON);
}
return ContentService.createTextOutput(JSON.stringify({status: "error"}))
.setMimeType(ContentService.MimeType.JSON);
}
Klik tombol Deploy > New deployment.
Pilih tipe Web app, atur Who has access menjadi Anyone (Siapa saja).
Salin URL Web App yang didapat, lalu masukkan di menu Konfigurasi API portal ini.
Integrasi Google Sheets
Hubungkan endpoint Web App Apps Script
Masukkan URL Web App hasil deploy dari Google Apps Script.
Mode Data Terhubung Global (Cloud):
Agar URL ini berlaku secara otomatis untuk SELURUH pengunjung tanpa perlu diketik ulang di browser lain, masukkan URL ini ke variabel DEFAULT_GAS_ENDPOINT pada kode index.html sebelum diunggah ke hosting.