Mengintegrasikan Google Form ke Banyak Sheet 

Sebelumnya, saya sudah pernah menjelaskan cara mengintegrasikan Google Form dengan banyak file Spreadsheet. Kali ini, saya akan menjelaskan cara mengintegrasikan Google Form dengan banyak sheet dalam 1 file. 

Secara umum, cara untuk mengintegrasikan Google Form ke banyak sheet tidak jauh berbeda dengan mengintegrasikan Google Form dengan banyak file Spreadsheet. Yang membedakan hanya kode programnya saja. Jadi, pada tutorial kali ini, saya tidak akan menuliskan langkahnya secara lengkap. Untuk langkahnya mulai dari awal silakan ikuti tutorial sebelumnya di sini. Sementara pada tutorial kali ini saya akan langsung menjelaskan kode programnya.

Seperti yang sudah pernah saya jelaskan, untuk mengintegrasikan Google Form dengan banyak file Spreadsheet, kita bisa menggunakan kode seperti di bawah ini:

function onFormSubmit(e) {
  const itemResponses = e.response.getItemResponses();
  var responses = e.response.getItemResponses(); // Get the submitted responses
  
  // Construct an array of response values
  var formResponse = responses.map(function(response) {
    return response.getResponse();
  });

  // Get the timestamp of the form submission
  var timestamp = e.response.getTimestamp();
  
  // Add timestamp to the beginning of the formResponse array
  formResponse.unshift(timestamp);
  
  // Menampung jawaban pertanyaan kedua untuk digunakan sebagai parameter dalam filtering
  const pertanyaan_kedua = itemResponses[1].getResponse();

  var second_spreadsheet = SpreadsheetApp.openById('SPREADSHEETID');
  var second_sheet = second_spreadsheet.getActiveSheet();
  
  // Mengecek apakah jawaban pertanyaan kedua adalah "Opsi 1", jika ya, maka akan ditambahkan ke file Spreadsheet yang lain, selain pada Spreadsheet utama.
  if (pertanyaan_kedua === 'Opsi 1') {
    second_sheet.appendRow(formResponse);
  }
}

Sementara untuk mengintegrasikan Google Form ke banyak sheet dalam 1 file, kita perlu menambahkan pemanggilan nama sheet dan pengkondisian untuk menentukan sheet mana yang akan ditambah datanya. Kurang lebih seperti ini.

const ss = SpreadsheetApp.getActiveSpreadsheet();

if (status === 'Student') {
    ss.getSheetByName('Student_Copy').appendRow(e.values);
} else {
    ss.getSheetByName('Staff_copy').appendRow(e.values);
}

Dan jika digabungkan mulai dari awal, kode lengkapnya kurang lebihnya adalah sebagai berikut:

function onFormSubmit(e) {
  const itemResponses = e.response.getItemResponses();
  var responses = e.response.getItemResponses(); // Get the submitted responses
  
  // Construct an array of response values
  var formResponse = responses.map(function(response) {
    return response.getResponse();
  });

  // Get the timestamp of the form submission
  var timestamp = e.response.getTimestamp();
  
  // Add timestamp to the beginning of the formResponse array
  formResponse.unshift(timestamp);
  
  // Menampung jawaban pertanyaan kedua untuk digunakan sebagai parameter dalam filtering
  const pertanyaan_kedua = itemResponses[1].getResponse();

  // Menampung file spreadsheet yang tersambung dengan form
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  
  // Mengecek apakah jawaban pertanyaan kedua adalah "Opsi 1", jika ya, tambahkan data ke sheet student. jika tidak, tambahkan data ke sheet staf.
  if (pertanyaan_kedua === 'Opsi 1') {
     // Menambah row data pada tab (sheet) yang bernama 'Student_Copy'
     ss.getSheetByName('Student_Copy').appendRow(formResponse);
  } else {
    // Menambah row data pada tab (sheet) yang bernama 'Staff_copy'
    ss.getSheetByName('Staff_copy').appendRow(formResponse);
  }
}

Satu yang perlu diperhatikan, agar kode di atas bisa berjalan dengan baik, pastikan dalam file Spreadsheet yang kamu gunakan, ada tab (sheet) dengan nama Student_Copy dan Staff_Copy. Karena jika tidak, maka akan muncul error.

Demikian tutorial singkat kali ini. Semoga bermanfaat.

Comments