APPS SCRIPT PEMBATAS FORMULIR UNTUK JUMLAH RESPON DAN WAKTU
Skrip untuk Google Apps Script yang berfungsi sebagai Form Limiter (Pembatas Formulir). Skrip ini bisa menghentikan penerimaan respons secara otomatis berdasarkan dua kondisi paling umum:
- Berdasarkan Jumlah Respons (misalnya, pendaftaran ditutup setelah
100 orang).
- Berdasarkan Tanggal dan Waktu (misalnya, formulir ditutup pada 15
Oktober 2025 pukul 23:59).
Cara
Memasang Script pada Google Form
Sebelum Anda menyalin kode di bawah, ikuti
langkah-langkah ini terlebih dahulu:
- Buka Google Form yang ingin Anda batasi.
- Klik ikon tiga titik (Lainnya) di pojok kanan atas.
- Pilih Editor skrip.
- Hapus semua kode contoh yang ada di file Code.gs.
- Salin dan tempel salah satu kode di bawah ini ke dalam editor
skrip.
- Klik ikon Simpan proyek (gambar disket).
Metode 1:
Membatasi Berdasarkan Jumlah Respons
Gunakan skrip ini jika Anda ingin formulir
berhenti menerima respons setelah mencapai jumlah tertentu.
Kode Script:
// =================================================================
// SCRIPT
UNTUK MEMBATASI FORMULIR BERDASARKAN JUMLAH RESPONS
//
=================================================================
// --- PENGATURAN ---
// Ganti angka 50 dengan jumlah maksimal
respons yang Anda inginkan.
var maxResponses = 50;
// Pesan yang akan ditampilkan ketika formulir ditutup.
var customCloseMessage = "Mohon maaf,
pendaftaran telah ditutup karena kuota sudah terpenuhi. Terima kasih.";
// ------------------
var responses = form.getResponses();
if (responses.length >= maxResponses) {
// Jika sudah, maka formulir akan ditutup
form.setAcceptingResponses(false);
// Mengatur pesan khusus yang akan ditampilkan di halaman formulir
form.setCustomClosedFormMessage(customCloseMessage);
// (Opsional) Log untuk debugging, bisa dilihat di menu "Eksekusi"
Logger.log("Formulir ditutup karena
telah mencapai batas " + responses.length + " respons.");
}
}
Cara
Mengaktifkan Otomatis (Wajib)
Agar skrip ini berjalan setiap kali ada orang
yang mengirim respons, Anda perlu mengatur Pemicu (Trigger).
- Di editor skrip, klik ikon Jam (Pemicu/Triggers) di menu sebelah
kiri.
- Klik tombol + Tambahkan Pemicu di kanan bawah.
- Konfigurasikan seperti ini:
- Pilih fungsi yang akan dijalankan: checkResponseLimit
- Pilih deployment yang harus dijalankan: Head
- Pilih sumber acara: Dari
formulir
- Pilih jenis acara: Saat
mengirimkan formulir (On form submit)
- Klik Simpan.
- Google akan meminta izin (otorisasi). Izinkan saja agar skrip bisa
berjalan.
Sekarang, setiap kali ada respons baru, skrip
akan memeriksa apakah jumlahnya sudah mencapai batas. Jika ya, formulir akan
otomatis tertutup.
Metode 2:
Membatasi Berdasarkan Tanggal dan Waktu
Gunakan skrip ini jika Anda ingin formulir
ditutup pada tanggal dan waktu yang telah ditentukan.
Kode Script:
// =================================================================
// SCRIPT
UNTUK MEMBATASI FORMULIR BERDASARKAN WAKTU
//
=================================================================
// --- PENGATURAN ---
// Atur tanggal dan waktu penutupan dalam
format: 'TAHUN-BULAN-TANGGAL T JAM:MENIT:DETIK'
// Contoh: '2025-10-15T23:59:00' artinya akan
ditutup pada 15 Oktober 2025 pukul 23:59.
var closingDateTime = new
Date('2025-10-15T23:59:00');
// Pesan yang akan ditampilkan ketika formulir ditutup.
var customCloseMessage = "Mohon maaf,
periode pengisian formulir telah berakhir.";
// ------------------
var currentTime = new Date();
if (currentTime >= closingDateTime) {
// Jika sudah, maka formulir akan ditutup
form.setAcceptingResponses(false);
// Mengatur pesan khusus yang akan ditampilkan
form.setCustomClosedFormMessage(customCloseMessage);
Logger.log("Formulir ditutup karena
jadwal waktu telah terlewati.");
}
}
Cara
Mengaktifkan Otomatis (Wajib)
Untuk metode ini, pemicunya berbeda. Kita akan
membuatnya berjalan setiap beberapa menit atau jam untuk memeriksa waktu.
- Di editor skrip, klik ikon Jam (Pemicu/Triggers) di menu sebelah
kiri.
- Klik tombol + Tambahkan Pemicu di kanan bawah.
- Konfigurasikan seperti ini:
- Pilih fungsi yang akan dijalankan: closeFormOnSchedule
- Pilih deployment yang harus dijalankan: Head
- Pilih sumber acara: Berbasis
waktu (Time-driven)
- Pilih jenis pemicu berbasis waktu: Pemicu
menit atau Pemicu jam (pilih salah satu).
- Pilih interval: Setiap 5 menit, Setiap 10 menit, atau Setiap jam (semakin sering, semakin akurat penutupannya).
- Klik Simpan.
- Sama seperti sebelumnya, berikan izin jika diminta.
Sekarang, skrip akan secara berkala memeriksa
waktu. Jika sudah melewati jadwal yang ditentukan, formulir akan ditutup.
Catatan
Penting:
- Zona Waktu: Pastikan zona waktu proyek Apps Script Anda sesuai
dengan zona waktu target Anda (misalnya, GMT+7 untuk WIB). Anda bisa
memeriksanya di editor skrip, klik ikon Roda Gigi (Pengaturan Proyek) dan
centang "Tampilkan file manifes appsscript.json", lalu atur timeZone.
- Membuka Kembali Formulir: Jika Anda ingin membuka kembali formulir
yang sudah ditutup oleh skrip, buka tab Respons di Google Form Anda dan
aktifkan kembali tombol "Menerima tanggapan"
Komentar
Posting Komentar