Berikut ini adalah panduan untuk membuat soal dalam google form dimana data soalnya diambil dari sebuah spreadsheet.
Panduan Video
Script untuk membuatnya sudah kami siapkan di bawah
Tampilan Multiple choice
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addItem('Update Form from Spreadsheet', 'updateFormFromSpreadsheet')
.addToUi();
}
function updateFormFromSpreadsheet() {
try {
var form = FormApp.openById('ID FORM'); // Ganti FORM_ID dengan ID formulir yang benar
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
// Membuat objek untuk menyimpan kunci unik pertanyaan
var questionKeys = {};
// Menghapus pertanyaan yang ada di formulir
var items = form.getItems();
while (items.length > 0) {
form.deleteItem(items.pop());
}
// Menambahkan pertanyaan baru atau mengupdate pertanyaan yang sudah ada
var headers = data[0];
for (var i = 1; i < headers.length; i++) {
var question = headers[i];
var choices = [];
// Membuat kunci unik untuk pertanyaan
var questionKey = question.toLowerCase().replace(/\s/g, '_');
// Memeriksa apakah pertanyaan sudah ada sebelumnya
if (questionKeys.hasOwnProperty(questionKey)) {
continue; // Lanjut ke iterasi selanjutnya jika pertanyaan sudah ada
}
for (var j = 1; j < data.length; j++) {
var choice = data[j][i];
if (choice !== "") {
choices.push(choice);
}
}
if (choices.length > 0) {
var item = form.addMultipleChoiceItem()
.setTitle(question)
.setChoiceValues(choices);
// Menetapkan bahwa setiap pertanyaan harus memiliki satu jawaban
item.setRequired(true);
// Menyimpan kunci unik pertanyaan ke objek
questionKeys[questionKey] = true;
}
}
SpreadsheetApp.getUi().alert('Formulir berhasil diperbarui dari spreadsheet.');
} catch (error) {
SpreadsheetApp.getUi().alert('Terjadi kesalahan: ' + error);
}
}
Tampilan Dropdown
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addItem('Update Form from Spreadsheet', 'updateFormFromSpreadsheet')
.addToUi();
}
function updateFormFromSpreadsheet() {
try {
var form = FormApp.openById('ID FORM'); // Ganti FORM_ID dengan ID formulir yang benar
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
// Membuat objek untuk menyimpan kunci unik pertanyaan
var questionKeys = {};
// Menghapus pertanyaan yang ada di formulir
var items = form.getItems();
while (items.length > 0) {
form.deleteItem(items.pop());
}
// Menambahkan pertanyaan baru atau mengupdate pertanyaan yang sudah ada
var headers = data[0];
for (var i = 1; i < headers.length; i++) {
var question = headers[i];
var choices = [];
// Membuat kunci unik untuk pertanyaan
var questionKey = question.toLowerCase().replace(/\s/g, '_');
// Memeriksa apakah pertanyaan sudah ada sebelumnya
if (questionKeys.hasOwnProperty(questionKey)) {
continue; // Lanjut ke iterasi selanjutnya jika pertanyaan sudah ada
}
for (var j = 1; j < data.length; j++) {
var choice = data[j][i];
if (choice !== "") {
choices.push(choice);
}
}
if (choices.length > 0) {
var item = form.addListItem()
.setTitle(question)
.setChoiceValues(choices);
// Menetapkan bahwa setiap pertanyaan harus memiliki satu jawaban
item.setRequired(true);
// Menyimpan kunci unik pertanyaan ke objek
questionKeys[questionKey] = true;
}
}
SpreadsheetApp.getUi().alert('Formulir berhasil diperbarui dari spreadsheet.');
} catch (error) {
SpreadsheetApp.getUi().alert('Terjadi kesalahan: ' + error);
}
}