Contoh Sederhana Kode Google Apps Script Untuk Google Form


Google Apps Script adalah platform scripting gratis dari Google yang memungkinkan Anda membuat aplikasi web dan automatisasi tugas dengan menggunakan bahasa pemrograman JavaScript. Salah satu aplikasi yang dapat dibuat dengan Google Apps Script adalah Google Form.

Google Form adalah aplikasi online yang memungkinkan Anda membuat formulir dan meminta orang lain untuk mengisi form tersebut. Formulir dapat berisi berbagai jenis pertanyaan, seperti pilihan ganda, skala, dan teks bebas. Hasil dari formulir dapat dikumpulkan dan dianalisis dalam bentuk tabel atau grafik.

Dengan Google Apps Script, Anda dapat membuat formulir Google yang lebih kompleks dan memiliki fitur tambahan. Berikut adalah beberapa contoh bagaimana Google Apps Script dapat digunakan dengan Google Form:

  1. Pengiriman Email Otomatis: Anda dapat membuat script untuk mengirim email otomatis kepada orang yang mengisi formulir. Email ini dapat berisi informasi tentang formulir yang telah diisi, atau tindak lanjut berdasarkan jawaban yang diterima.
  2. Autentikasi Pengguna: Anda dapat membuat formulir Google yang hanya dapat diakses oleh pengguna yang memiliki akun Google yang sah. Ini bisa sangat berguna untuk formulir yang memerlukan informasi sensitif.
  3. Integrasi dengan Aplikasi Lain: Anda dapat mengintegrasikan formulir Google dengan aplikasi lain, seperti Google Sheet, untuk memproses dan menganalisis data yang diterima.
  4. Validasi Input: Anda dapat membuat script untuk memvalidasi input dari pengguna sebelum data disimpan. Ini membantu mencegah kesalahan data dan memastikan bahwa semua informasi yang diterima adalah valid.

Berikut adalah contoh sederhana dari script Google Apps Script untuk memvalidasi input dari formulir Google:

function onFormSubmit(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var email = e.values[1];
  var regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
  
  if (!regex.test(email)) {
    form.setTextItemResponse("Email", "Alamat email tidak valid");
    form.submit();
  } else {
    sheet.appendRow([email]);
  }
}

Di atas adalah contoh sederhana mengenai bagaimana memvalidasi input email dari formulir Google dengan Google Apps Script. Pertama, fungsi onFormSubmit dipanggil setiap kali formulir dikirimkan. Kemudian, variabel form mengacu pada formulir asli dan sheet mengacu pada lembar kerja yang digunakan untuk menyimpan data formulir.

Selanjutnya, variabel email mengambil nilai dari kolom email pada formulir. Kemudian, ekspresi reguler regex digunakan untuk memvalidasi apakah alamat email yang dimasukkan valid atau tidak. Jika alamat email tidak valid, pesan kesalahan ditampilkan pada formulir dan formulir dikirimkan kembali. Jika alamat email valid, maka email tersebut ditambahkan ke lembar kerja.

Google Apps Script dan Google Form sangat berguna bagi banyak organisasi dan individu. Misalnya, sekolah dapat menggunakan formulir Google untuk mengumpulkan informasi dari siswa dan orang tua, atau membuat formulir sederhana untuk mengumpulkan pesanan makan siang. Perusahaan dapat menggunakan formulir Google untuk mengumpulkan informasi dari pelanggan, atau membuat formulir yang digunakan oleh staf untuk mengajukan permohonan cuti.

Dengan Google Apps Script, formulir Google dapat dikustomisasi dan dioptimalkan untuk memenuhi kebutuhan khusus dari organisasi atau individu. Script dapat membuat formulir Google lebih mudah digunakan dan mengurangi waktu yang dibutuhkan untuk memproses dan menganalisis data.

Dalam beberapa kasus, Google Apps Script dapat membantu menghemat biaya dan meningkatkan produktivitas. Misalnya, sekolah dapat menggunakan script untuk mengirim email otomatis kepada orang tua saat siswa tidak hadir, atau membuat formulir yang secara otomatis mengirimkan email ke staf saat permohonan cuti diterima.

Berikut adalah beberapa contoh lainnya kode Google Apps Script untuk Google Form:

Kirim Email Otomatis

function sendConfirmationEmail(e) {
  var email = e.values[1];
  var subject = "Form Submission Confirmation";
  var message = "Thank you for submitting the form. We have received your information.";
  MailApp.sendEmail(email, subject, message);
}

Mengurangi Jumlah Pengecualian

function limitResponses(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var lastRow = sheet.getLastRow();
  var maxResponses = 100;
  
  if (lastRow >= maxResponses) {
    form.setAcceptingResponses(false);
  }
}

Membuat Grafik dari Data Formulir

function createChart() {
  var form = FormApp.getActiveForm();
  var sheet = form.getSheetByName("Sheet1");
  var range = sheet.getRange(1, 1, sheet.getLastRow(), 2);
  var chart = sheet.newChart().setChartType(Charts.ChartType.BAR)
      .addRange(range)
      .setOption('title', 'Form Submission Results')
      .setOption('width', 600)
      .setOption('height', 400)
      .build();
  sheet.insertChart(chart);
}

Menambahkan Kolom Otomatis

function autoTimestamp(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var timestamp = new Date();
  e.values[2] = timestamp;
  sheet.appendRow(e.values);
}

Menambahkan Otomatis Nama Wilayah

function addLocation(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var location = e.values[3];
  var map = Maps.newGeocoder().geocode(location);
  var lat = map.results[0].geometry.location.lat;
  var lng = map.results[0].geometry.location.lng;
  e.values[4] = lat + ", " + lng;
  sheet.appendRow(e.values);
}

Validasi Pilihan

function validateChoice(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var choice = e.values[5];
  
  if (choice == "") {
    form.setAcceptingResponses(false);
    form.displayError("Please make a selection.");
  } else {
    sheet.appendRow(e.values);
  }
}

Menambahkan Keterangan Otomatis

function addDescription(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var description = "Form submitted on " + new Date();
  e.values[6] = description;
  sheet.appendRow(e.values);
}

Menambahkan Nomor Urut Otomatis

function addSerialNumber(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var lastRow = sheet.getLastRow();
  e.values[7] = lastRow + 1;
  sheet.appendRow(e.values);
}

Mengirim Email Otomatis

function sendConfirmationEmail(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var email = e.values[1];
  var subject = "Form Submission Confirmation";
  var message = "Dear " + e.values[0] + ",\n\n" +
                "This is to confirm that your form has been successfully submitted.\n\n" +
                "Thank you for your time.\n\n" +
                "Best regards,\n" +
                "Google Form Team";
  MailApp.sendEmail(email, subject, message);
  sheet.appendRow(e.values);
}

Membatasi Jumlah Isian

function limitResponses(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var totalRows = sheet.getLastRow();
  
  if (totalRows >= 10) {
    form.setAcceptingResponses(false);
    form.displayError("Sorry, the form is no longer accepting responses.");
  } else {
    sheet.appendRow(e.values);
  }
}

Memvalidasi Tanggal

function validateDate(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var date = e.values[8];
  var enteredDate = new Date(date);
  var today = new Date();
  
  if (enteredDate < today) {
    form.setAcceptingResponses(false);
    form.displayError("Please enter a valid date.");
  } else {
    sheet.appendRow(e.values);
  }
}

Menghitung Jumlah Total Nilai

function calculateTotalScore(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var score1 = parseInt(e.values[2]);
  var score2 = parseInt(e.values[3]);
  var score3 = parseInt(e.values[4]);
  var totalScore = score1 + score2 + score3;
  e.values[5] = totalScore;
  sheet.appendRow(e.values);
}

Membatasi Waktu Isian

function limitSubmissionTime(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var currentTime = new Date();
  var startTime = new Date("2022-02-01T00:00:00Z");
  var endTime = new Date("2022-02-28T23:59:59Z");
  
  if (currentTime >= startTime && currentTime <= endTime) {
    sheet.appendRow(e.values);
  } else {
    form.setAcceptingResponses(false);
    form.displayError("Sorry, the form is closed.");
  }
}

Memvalidasi Email

function validateEmail(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var email = e.values[1];
  var emailRegex = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}$/;
  
  if (emailRegex.test(email)) {
    sheet.appendRow(e.values);
  } else {
    form.setAcceptingResponses(false);
    form.displayError("Please enter a valid email address.");
  }
}

Memvalidasi Isian Wajib

function validateMandatoryFields(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var name = e.values[0];
  var email = e.values[1];
  
  if (name != "" && email != "") {
    sheet.appendRow(e.values);
  } else {
    form.setAcceptingResponses(false);
    form.displayError("Please fill in all the mandatory fields.");
  }
}

Mengirimkan Email Otomatis setelah Isian

function sendConfirmationEmail(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var email = e.values[1];
  var subject = "Form Submission Confirmation";
  var message = "Dear " + e.values[0] + ",\n\nThank you for submitting the form. Your responses have been recorded.\n\nBest regards,\nThe Team";
  MailApp.sendEmail(email, subject, message);
  sheet.appendRow(e.values);
}

Membatasi Jumlah Isian

function limitResponseCount(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var responseCount = sheet.getLastRow();
  
  if (responseCount <= 100) {
    sheet.appendRow(e.values);
  } else {
    form.setAcceptingResponses(false);
    form.displayError("Sorry, the form has reached its response limit.");
  }
}

Membuat Otomatis Nama File Berdasarkan Tanggal dan Waktu

function createFileName(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var date = new Date();
  var fileName = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " " + date.getHours() + "-" + date.getMinutes() + "-" + date.getSeconds();
  var file = DriveApp.createFile(fileName, sheet.getDataRange().getValues());
  sheet.appendRow(e.values);
}

Menghapus Baris Duplikat

function removeDuplicates(e) {
  var form = e.source;
  var sheet = form.getSheetByName("Sheet1");
  var data = sheet.getDataRange().getValues();
  var newData = [];
  for (var i in data) {
    var row = data[i];
    var duplicate = false;
    for (var j in newData) {
      if (row.join() == newData[j].join()) {
        duplicate = true;
      }
    }
    if (!duplicate) {
      newData.push(row);
    }
  }
  sheet.clearContents();
  sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
  sheet.appendRow(e.values);
}

Ini adalah beberapa contoh tambahan dari kode Google Apps Script yang dapat Anda gunakan untuk memanfaatkan lebih banyak fitur Google Form. Kode-kode ini dapat dengan mudah disesuaikan dengan kebutuhan Anda. Anda juga dapat menggabungkan beberapa kode ini untuk membuat solusi yang lebih kompleks.

Penting untuk diingat bahwa kode Google Apps Script memerlukan pengetahuan pemrograman dan mungkin memerlukan beberapa percobaan dan kesalahan sebelum dapat bekerja dengan benar. Jika Anda merasa kesulitan, Anda dapat mencari bantuan dari komunitas pengembang atau mempelajari lebih lanjut tentang bahasa pemrograman.

Dengan menggunakan Google Apps Script, Anda dapat membuat solusi kustom yang sangat berguna untuk membantu memanage data form Anda. Jangan ragu untuk mencoba dan mempelajari lebih lanjut tentang Google Apps Script dan bagaimana Anda dapat memanfaatkannya untuk meningkatkan produktivitas dan efisiensi Anda.

Nandemo Webtools

Leave a Reply