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:

  1. Berdasarkan Jumlah Respons (misalnya, pendaftaran ditutup setelah 100 orang).
  2. 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:

  1. Buka Google Form yang ingin Anda batasi.
  2. Klik ikon tiga titik (Lainnya) di pojok kanan atas.
  3. Pilih Editor skrip.
  4. Hapus semua kode contoh yang ada di file Code.gs.
  5. Salin dan tempel salah satu kode di bawah ini ke dalam editor skrip.
  6. 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

// =================================================================

 function checkResponseLimit() {

  // --- 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 form = FormApp.getActiveForm();

  var responses = form.getResponses();

   // Memeriksa apakah jumlah respons saat ini sudah mencapai atau melebihi batas

  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).

  1. Di editor skrip, klik ikon Jam (Pemicu/Triggers) di menu sebelah kiri.
  2. Klik tombol + Tambahkan Pemicu di kanan bawah.
  3. 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)
  4. Klik Simpan.
  5. 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

// =================================================================

 function closeFormOnSchedule() {

  // --- 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 form = FormApp.getActiveForm();

  var currentTime = new Date();

   // Memeriksa apakah waktu saat ini sudah melewati waktu penutupan

  if (currentTime >= closingDateTime) {

       // Jika sudah, maka formulir akan ditutup

    form.setAcceptingResponses(false);

       // Mengatur pesan khusus yang akan ditampilkan

    form.setCustomClosedFormMessage(customCloseMessage);

     // (Opsional) Log untuk debugging

    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.

  1. Di editor skrip, klik ikon Jam (Pemicu/Triggers) di menu sebelah kiri.
  2. Klik tombol + Tambahkan Pemicu di kanan bawah.
  3. 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).
  4. Klik Simpan.
  5. 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

Postingan populer dari blog ini

TRYOUT TKA Ekonomi | Uji Dirimu: 40 Soal TKA Ekonomi 80 Menit | Pembahasan Soal TKA Ekonomi SMA/SMK