Mengambil data terbaru dari Google Sheets...
Total Pendaftar
0
Seluruh data aktif
Pendaftar Hari Ini
0
Terdaftar hari ini
Program Keahlian
Persaingan per-jurusan
Distribusi Gender
Perbandingan jenis kelamin
Asal Sekolah (SMP)
Institusi asal pendaftar teratas
Formulir Pendaftaran SPMB
Harap isi seluruh berkas dan data diri dengan lengkap.
Koneksi Database Cloud (Google Sheets)
Sudah terhubung otomatis ke Spreadsheet utama. Anda juga dapat menggantinya dengan URL kustom.
Panel Administrator
Pengelolaan database pendaftar lokal dan status integrasi cloud (Hapus data lokal & cloud aktif).
| No. | Status Cloud | Nama Lengkap | Lahir | Gender | Kontak | Program Keahlian | Asal SMP | Aksi |
|---|
Belum ada data pendaftar baru.
Panduan Integrasi Google Sheets Anda (Mendukung Hapus & Ambil Data Otomatis)
Data yang diinput dari form pendaftaran web ini dapat otomatis tersimpan langsung ke Google Sheets Anda secara langsung (Real-Time). Ikuti petunjuk mudah berikut ini:
- Buat dokumen Google Sheets baru di akun Google Drive Anda.
- Buka menu Ekstensi > Pilih Apps Script.
- Hapus semua kode bawaan dan tempelkan script berikut ini (sudah dilengkapi proteksi pencegahan baris ganda, pengunci antrean LockService, **sinkronisasi dua arah GET**, & penghapusan otomatis dua arah):
// KODE GOOGLE APPS SCRIPT LENGKAP (GET + POST + DELETE)
function doGet(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = [];
if (sheet.getLastRow() > 1) {
var range = sheet.getRange(2, 1, sheet.getLastRow() - 1, 10);
var values = range.getValues();
for (var i = 0; i < values.length; i++) {
data.push({
id: values[i][0].toString(),
tanggal_daftar: values[i][1],
nama: values[i][2],
tempat_lahir: values[i][3],
tanggal_lahir: values[i][4],
alamat: values[i][5],
jenis_kelamin: values[i][6],
no_hp: values[i][7],
program_keahlian: values[i][8],
asal_smp: values[i][9],
synced: true
});
}
}
return ContentService.createTextOutput(JSON.stringify(data))
.setMimeType(ContentService.MimeType.JSON);
}
function doPost(e) {
var lock = LockService.getScriptLock();
try {
lock.waitLock(30000);
} catch (f) {
return ContentService.createTextOutput(JSON.stringify({"status": "error", "message": "Gagal mengunci sistem"}))
.setMimeType(ContentService.MimeType.JSON);
}
try {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = JSON.parse(e.postData.contents);
var targetId = data.id.toString();
// === FITUR HAPUS OTOMATIS ===
if (data.action === "delete") {
if (sheet.getLastRow() > 0) {
var dataRange = sheet.getRange(1, 1, sheet.getLastRow(), 1).getValues();
for (var i = 0; i < dataRange.length; i++) {
if (dataRange[i][0].toString() === targetId) {
sheet.deleteRow(i + 1);
return ContentService.createTextOutput(JSON.stringify({"status": "success"}))
.setMimeType(ContentService.MimeType.JSON);
}
}
}
return ContentService.createTextOutput(JSON.stringify({"status": "not_found"}))
.setMimeType(ContentService.MimeType.JSON);
}
// Tentukan header jika sheet masih kosong
if (sheet.getLastRow() === 0) {
sheet.appendRow(["ID Unik", "Tanggal Daftar", "Nama", "Tempat Lahir", "Tanggal Lahir", "Alamat", "Gender", "No. HP", "Jurusan", "Asal SMP"]);
} else {
// Cari duplikasi
var dataRange = sheet.getRange(1, 1, sheet.getLastRow(), 1).getValues();
for (var i = 0; i < dataRange.length; i++) {
if (dataRange[i][0].toString() === targetId) {
return ContentService.createTextOutput(JSON.stringify({"status": "duplicate"}))
.setMimeType(ContentService.MimeType.JSON);
}
}
}
sheet.appendRow([
targetId,
data.tanggal_daftar || new Date(),
data.nama,
data.tempat_lahir,
data.tanggal_lahir,
data.alamat,
data.jenis_kelamin,
data.no_hp,
data.program_keahlian,
data.asal_smp
]);
return ContentService.createTextOutput(JSON.stringify({"status": "success"}))
.setMimeType(ContentService.MimeType.JSON);
} finally {
lock.releaseLock();
}
}
- Klik tombol **Terapkan (Deploy)** di kanan atas > pilih **Penerapan Baru (New Deployment)**.
- Pilih jenis terapan **Aplikasi Web (Web App)**.
- Setelan Akses: Atur agar dijalankan sebagai **"Saya (Your Account)"** dan siapa saja yang memiliki akses ke **"Siapa Saja (Anyone)"**.
- Salin URL Aplikasi Web yang diberikan, lalu tempelkan ke variabel `DEFAULT_GSHEET_URL` di baris baris 582 kode aplikasi web ini sebelum mengunggahnya ke hosting.