Bikin soal di GF ambil dari G-sheet




Cara cepat membuat soal di G-Form master datanya dari Google-SpreadSheet , simak video berikut ini
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);
}
}