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);
}
}
Berikut ini adalaah script untuk memindahkan data dari spreadsheet ke dalam grup telegram. Langkahnya adalah sebagai berikut:
Buat sebuah google spreadsheet dengan nama tertentu dan dengan data yang ingin dikirimkan atau di eksport ke dalam sebuah grup telegram;
Ketuk menu Ekstensi dan ketuk sub menu Apps script kemudian beri nama.
Salin semua script yang sudah kami sediakan di bawah dan paste atau tempelkan ke dalam app script yang sudah anda siapkan. Pastikan anda hapus dulu isi script tersebut sampai bersih sebelum anda menempelkan script di bawah.
Sekarang masuk ke dalam teleegram dan buat sebuah grup
Masuk ke dalam @botfather dan buat sebuah telegrambot kemudian gabungkan telegrambot tersebut ke dalam grup yang sudah dibuat dan jadikan sebagai admin.
Agar anda bisa mengetahui chat_ID dari grup tersebut, masukan ke dalam grup tersebut username ini @RawDataBot atau yang ini @get_id_bot, dan setelah anda mendapatkan chat_ID dari grup tersebut, anda boleh mengeluarkan dan menghapus @RawDataBot atau @get_id_bot dari grup tersebut.
Dengan membuat telegrambot di @botfather maka anda sudah mendapatkan token telegram. Dan dengan memasukkan @RawDataBot atau @get_id_bot ke dalam grup, anda sudah mendapatkan chat_ID dari grup. Dan dengan membuat sebuah spreadsheet, maka anda pun sudah mendapatkan ID_spreadsheet. Semua kode tersebut harus dimasukkan ke dalam script sesuai dengan penjelasan yang ada.
Penjelasan detail bisa anda lihat dalm video di bawah:
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Jalankan')
.addItem('Kirim ke Telegram', 'getDataAndSendToTelegramBot')
.addToUi();
}
function getDataAndSendToTelegramBot() {
// Kode yang sama seperti sebelumnya
// ...
}
function getDataAndSendToTelegramBot() {
var token = "TOKEN_TELEGRAM";
var chatId = "CHAT_ID";
var spreadsheetId = "ID_SPREADSHEET";
var sheetName = "NAMA_SHEET";
var columnIndices = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,]; // Indeks kolom yang ingin diambil (A, B, D, C, E)
var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
var sheet = spreadsheet.getSheetByName(sheetName);
var lastRow = sheet.getLastRow();
var headerRange = sheet.getRange(1, 1, 1, sheet.getLastColumn()); // Rentang untuk baris header
var headerValues = headerRange.getValues()[0]; // Mengambil nilai header dalam satu dimensi
var dataRange = sheet.getRange(2, 1, lastRow - 1, columnIndices.length); // Mengambil data dari baris 2 hingga terakhir, dengan jumlah kolom yang ditentukan
var dataValues = dataRange.getValues();
var sentData = getSentDataFromProperties(); // Mendapatkan data yang sudah dikirim sebelumnya
var newData = [];
// Memeriksa setiap baris data baru
for (var i = 0; i < dataValues.length; i++) {
var rowData = dataValues[i];
// Memeriksa apakah baris data sudah pernah dikirim sebelumnya
if (!isDataSent(rowData, sentData)) {
newData.push(rowData); // Menyimpan baris data yang belum pernah dikirim sebelumnya
}
}
// Mengirim data yang belum pernah dikirim sebelumnya ke Telegram
sendNewDataToTelegramBot(token, chatId, newData, headerValues, columnIndices);
// Menyimpan data yang sudah dikirim ke Properties
saveSentDataToProperties(newData, sentData);
}
function isDataSent(rowData, sentData) {
// Memeriksa apakah baris data sudah pernah dikirim sebelumnya berdasarkan kolom-kolom yang relevan
for (var i = 0; i < sentData.length; i++) {
var sentRow = sentData[i];
var isMatch = true;
for (var j = 0; j < sentRow.length; j++) {
if (rowData[j].toString() !== sentRow[j].toString()) {
isMatch = false;
break;
}
}
if (isMatch) {
return true; // Data sudah pernah dikirim sebelumnya
}
}
return false; // Data belum pernah dikirim sebelumnya
}
function sendNewDataToTelegramBot(token, chatId, newData, headerValues, columnIndices) {
var message = "";
// Menampilkan nama header diikuti dengan data pada setiap baris yang belum pernah dikirim sebelumnya
for (var i = 0; i < newData.length; i++) {
var rowData = newData[i];
for (var j = 0; j < headerValues.length; j++) {
var headerValue = headerValues[j];
var cellValue = rowData[columnIndices[j] - 1];
message += headerValue + ": " + cellValue + "\n";
}
message += "\n"; // Memberikan spasi antara setiap baris data
}
if (message !== "") {
sendToTelegramBot(token, chatId, message);
}
}
function sendToTelegramBot(token, chatId, message) {
var telegramUrl = "https://api.telegram.org/bot" + token + "/sendMessage";
var payload = {
"method": "post",
"contentType": "application/json",
"payload": JSON.stringify({
"chat_id": chatId,
"text": message
})
};
UrlFetchApp.fetch(telegramUrl, payload);
}
function getSentDataFromProperties() {
var sentData = [];
// Mendapatkan data yang sudah dikirim sebelumnya dari Properties
var properties = PropertiesService.getUserProperties();
var sentDataString = properties.getProperty("sentData");
if (sentDataString) {
sentData = JSON.parse(sentDataString);
}
return sentData;
}
function saveSentDataToProperties(newData, sentData) {
sentData.push.apply(sentData, newData); // Menggabungkan data yang sudah dikirim sebelumnya dengan data baru
// Menyimpan data yang sudah dikirim ke Properties
var properties = PropertiesService.getUserProperties();
properties.setProperty("sentData", JSON.stringify(sentData));
}
Anda bisa memperkaya keterampilan lebih jauh berkenaan dengan spreadsheets dan google forms.
Silahkan pelajari video-video di bawah
Panduan google forms dari dasar. Cara membuat soal dalam sebuah google forms dan menyimpan data responden dalam sebuah google spread sheets.
Mengkoneksikan data google spreadheets ke dalam sebuah grup telegram
Membuat List Drop Down dalam google form menggunakan data dari spreadsheet.
Jika anda akan membuat list data dalam google form dimana datanya cukup banyak, tentu akan sangat merepotkan jika anda harus mengetik atau copy-paste satu demi satu.
Dengan menggunakan script di bawah, maka anda bisa mengkombinasikan spreadsheets dengan google form dimana spreadsheet difungsikan sebagai tempat untuk menyimpan list data yang akan ditampilkan dalam google form.
Membuat soal dalam words dan mengeksportnya ke dalam google forms. Pembuatan soal ini menggunakan addons (pengaya) yang gratis dan tentu saja fasilitasnya cukup terbatas
Script untuk membuat list dalam google forms
/**
* Auto-populate Question options in Google Forms
* from values in Google Spreadsheet
*
* Written by Amit Agarwal (MIT License)
*
**/
const populateGoogleForms = () => {
const GOOGLE_SHEET_NAME = "NAMA SHEET ANDA";
const GOOGLE_FORM_ID = "ID GOOGLE FORM";
const ss = SpreadsheetApp.getActiveSpreadsheet();
const [header, ...data] = ss
.getSheetByName(GOOGLE_SHEET_NAME)
.getDataRange()
.getDisplayValues();
const choices = {};
header.forEach((title, i) => {
choices[title] = data.map((d) => d[i]).filter((e) => e);
});
FormApp.openById(GOOGLE_FORM_ID)
.getItems()
.map((item) => ({
item,
values: choices[item.getTitle()],
}))
.filter(({ values }) => values)
.forEach(({ item, values }) => {
switch (item.getType()) {
case FormApp.ItemType.CHECKBOX:
item.asCheckboxItem().setChoiceValues(values);
break;
case FormApp.ItemType.LIST:
item.asListItem().setChoiceValues(values);
break;
case FormApp.ItemType.MULTIPLE_CHOICE:
item.asMultipleChoiceItem().setChoiceValues(values);
break;
default:
// ignore item
}
});
ss.toast("Google Form Updated !!");
};
Membuat soal menggunakan google form memiliki tingkat kerumitan tersendiri dimana kita harus melakukan copy-paste untuk setiap soal yang kita buat. Jika jumlah soal cukup banyak, maka tentu hal tersebut akan merepotkan.
Sabahat Guru sudah menyiapkan Template khusus untuk membuat soal dalam spreadsheet, dan hanya dengan satu klik, maka soal tersebut akan dieksport ke dalam google form.
Silahkan copy-pasteu script di bawah dan pelajari panduannya dalam bentuk video di bawah:
Script Template Spreadsheet
function onOpen() {
var menu = SpreadsheetApp.getUi().createMenu('Forms');
menu.addItem('CREATE TEMPLATE', 'createTemplate').addToUi();
menu.addItem('CREATE FORM', 'createForm').addToUi();
menu.addItem('CREATE FORMS', 'createForms').addToUi();
}
function createTemplate() {
var s = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
s.deleteColumns(17, 8);
s.deleteRows(100,900);
s.setColumnWidth(1, 110);
s.setColumnWidth(2, 400);
s.setColumnWidths(3, 16, 110);
s.setFrozenColumns(2);
s.setFrozenRows(3);
s.getRange('A4:A100').setDataValidation(SpreadsheetApp.newDataValidation()
.setAllowInvalid(false)
.requireValueInList(['ACCEPTANCE', 'CHECKBOX', 'CHECKGRID', 'CHOICE', 'DATE', 'GRID', 'IMAGE1', 'IMAGE2', 'LIST', 'PAGE', 'PARAGRAPH', 'SCALE', 'SECTION', 'TEXT', 'TIME', 'VIDEO'], true)
.build());
s.getRange('A1:A100').setFontWeight('bold').setHorizontalAlignment('center');
s.getRange('A1').setValue('JUDUL');
s.getRange('A2').setValue('DESKRIPSI');
s.getRange('A3').setValue('TYPE');
s.getRange('C1').setValue('FOLDER ID:').setFontWeight('bold').setHorizontalAlignment('right');
s.getRange('E1').setValue('PUBLIC URL:').setFontWeight('bold').setHorizontalAlignment('right');
s.getRange('G1').setValue('COPY FORM:').setFontWeight('bold').setHorizontalAlignment('right');
s.getRange('H1').setDataValidation(SpreadsheetApp.newDataValidation().setAllowInvalid(false).requireValueInList(['YES'], true).build());
s.getRange('I1').setValue('LINK COPY:').setFontWeight('bold').setHorizontalAlignment('right');
s.getRange('B3').setValue('PERTANYAAN').setFontWeight('bold').setHorizontalAlignment('center');
s.getRange('C3').setValue('PETUNJUK').setFontWeight('bold').setBackground('#f8f8ff').setHorizontalAlignment('center');
s.getRange('D3').setValue('POINTS').setFontWeight('bold').setBackground('#fafad2').setHorizontalAlignment('center');
s.getRange('E3').setValue('TEXT TRUE').setFontWeight('bold').setBackground('#e6e6fa').setHorizontalAlignment('center');
s.getRange('F3').setValue('TEXT FALSE').setFontWeight('bold').setBackground('#e6e6fa').setHorizontalAlignment('center');
s.getRange('G3').setValue('LINK').setFontWeight('bold').setBackground('#fffacd').setHorizontalAlignment('center');
s.getRange('H3').setValue('NAMA LINK').setFontWeight('bold').setBackground('#fffacd').setHorizontalAlignment('center');
s.getRange('I3:R3').setValue('OPSI').setFontWeight('bold').setBackground('#f5f5dc').setHorizontalAlignment('center');
s.getRange('E4:H100').setBackground('#eed5d5');
s.getRange('I4:R100').setBackground('#f3e9f3');
s.getRange('C4:C100').setBackground('#f8f8ff');
s.getRange('D4:D100').setBackground('#fafad2');
};
function createForm() {
var s = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
body(s);
}
function createForms() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for (var k=0; k<sh.length; k++) {
var s = sh[k];
body(s);
}
}
function body(s) {
var r = s.getDataRange();
var nr = r.getNumRows();
var nc = r.getNumColumns();
var lr = s.getLastRow();
var lc = s.getLastColumn();
var d = r.getValues();
var fol = DriveApp.getFolderById(d[0][3]);
if (d[0][7] === 'YES') {
var fm = DriveApp.getFileById(d[0][9]).makeCopy(d[0][1], fol);
var id = fm.getId();
var f = FormApp.openById(id);
} else {
var fm = FormApp.create(d[0][1]);
var id = fm.getId();
var f = FormApp.openById(id);
}
f.setDescription(d[1][1]);
f.setIsQuiz(true);
var ur = f.getPublishedUrl();
s.getRange('F1').setValue(ur);
var file = DriveApp.getFileById(id);
fol.addFile(file);
DriveApp.getRootFolder().removeFile(file);
for(var x=0;x<nr;x++){ // Beginning of for loop with x
var i = d[x][0];
var cr = 1 + x;
var ro = s.getRange(cr, 8, 1, 10);
var op = ro.getValues();
if(i==''){continue;}
else if (i =='CHOICE') {
var arr = [];
if (d[0][11] == "YES"){ var its = f.getItems();
for (var w = 0; w < its.length; w += 1){ var ite = its[w]; if (ite.getTitle() === "CHOICE"){ var q = ite.asMultipleChoiceItem().duplicate(); }}
} else { var q = f.addMultipleChoiceItem(); }
q.setTitle(d[x][1]).setHelpText(d[x][2]).setRequired(true);
if (d[x][3] !== '') {q.setPoints(d[x][3])}
for (var ccc = 8; ccc<nc; ccc++) {
var cu = 1 + ccc;
if (s.getRange(cr,cu,1,1).getValue() !== '' && s.getRange(cr,cu,1,1).getBackground() === "#00ff00") {var q1 = q.createChoice(d[x][ccc], true); arr.push(q1);}
else if (s.getRange(cr,cu,1,1).getValue() !== '' && s.getRange(cr,cu,1,1).getBackground() !== "#00ff00") {var q1 = q.createChoice(d[x][ccc], false); arr.push(q1);}
}
q.setChoices(arr);
if (d[x][4] !== ""){
var correctFeedback = FormApp.createFeedback().setText(d[x][4]).build();
q.setFeedbackForCorrect(correctFeedback);
}
if (d[x][5] !== ""){
var incorrectFeedback = FormApp.createFeedback().setText(d[x][5]).addLink(d[x][6],d[x][7]).build();
q.setFeedbackForIncorrect(incorrectFeedback);
}
}
else if (i =='LIST') {
var arr = [];
if (d[0][11] == "YES"){ var its = f.getItems();
for (var w = 0; w < its.length; w += 1){ var ite = its[w]; if (ite.getTitle() === "LIST"){ var q = ite.asListItem().duplicate(); }}
} else { var q = f.addListItem(); }
q.setTitle(d[x][1]).setHelpText(d[x][2]).setRequired(true);
if (d[x][3] !== '') {q.setPoints(d[x][3])}
for (var ccc = 8; ccc<nc; ccc++) {
var cu = 1 + ccc;
if (s.getRange(cr,cu,1,1).getValue() !== '' && s.getRange(cr,cu,1,1).getBackground() === "#00ff00") {var q1 = q.createChoice(d[x][ccc], true); arr.push(q1);}
else if (s.getRange(cr,cu,1,1).getValue() !== '' && s.getRange(cr,cu,1,1).getBackground() !== "#00ff00") {var q1 = q.createChoice(d[x][ccc], false); arr.push(q1);}
}
q.setChoices(arr);
if (d[x][4] !== ""){
var correctFeedback = FormApp.createFeedback().setText(d[x][4]).build();
q.setFeedbackForCorrect(correctFeedback);
}
if (d[x][5] !== ""){
var incorrectFeedback = FormApp.createFeedback().setText(d[x][5]).addLink(d[x][6],d[x][7]).build();
q.setFeedbackForIncorrect(incorrectFeedback);
}
}
else if (i =='CHECKBOX') {
var arr = [];
if (d[0][11] == "YES"){ var its = f.getItems();
for (var w = 0; w < its.length; w += 1){ var ite = its[w]; if (ite.getTitle() === "CHECKBOX"){ var q = ite.asCheckboxItem().duplicate(); }}
} else { var q = f.addCheckboxItem(); }
q.setTitle(d[x][1]).setHelpText(d[x][2]).setRequired(true);
if (d[x][3] !== '') {q.setPoints(d[x][3])}
for (var ccc = 8; ccc<nc; ccc++) {
var cu = 1 + ccc;
if (s.getRange(cr,cu,1,1).getValue() !== '' && s.getRange(cr,cu,1,1).getBackground() === "#00ff00") {var q1 = q.createChoice(d[x][ccc], true); arr.push(q1);}
else if (s.getRange(cr,cu,1,1).getValue() !== '' && s.getRange(cr,cu,1,1).getBackground() !== "#00ff00") {var q1 = q.createChoice(d[x][ccc], false); arr.push(q1);}
}
q.setChoices(arr);
if (d[x][4] !== ""){
var correctFeedback = FormApp.createFeedback().setText(d[x][4]).build();
q.setFeedbackForCorrect(correctFeedback);
}
if (d[x][5] !== ""){
var incorrectFeedback = FormApp.createFeedback().setText(d[x][5]).addLink(d[x][6],d[x][7]).build();
q.setFeedbackForIncorrect(incorrectFeedback);
}
}
else if (i =='GRID') {
var arr1 = [];
for (q=0; q<op[0].length; q++){
if (op[0][q] !== '') {arr1.push(op[0][q]);}
}
var arr2 = [];
for (q=0; q<op[0].length; q++){
if (op[0][q] !== '') {arr2.push(op[0][q]);}
}
f.addGridItem().setTitle(d[x][1]).setHelpText(d[x][2]).setRequired(true).setRows(arr1).setColumns(arr2);
}
else if (i =='CHECKGRID') {
var arr1 = [];
for (q=0; q<op[0].length; q++){
if (op[0][q] !== '') {arr1.push(op[0][q]);}
}
var arr2 = [];
for (q=0; q<op[0].length; q++){
if (op[0][q] !== '') {arr2.push(op[0][q]);}
}
f.addCheckboxGridItem().setTitle(d[x][1]).setHelpText(d[x][2]).setRequired(true).setRows(arr1).setColumns(arr2);
}
else if (i =='TEXT') {
var q = f.addTextItem().setTitle(d[x][1]).setHelpText(d[x][2]).setRequired(true);
if (d[x][3] !== '') {q.setPoints(d[x][3])}
}
else if (i =='PARAGRAPH') {
var q = f.addParagraphTextItem().setTitle(d[x][1]).setHelpText(d[x][2]).setRequired(true);
if (d[x][3] !== '') {q.setPoints(d[x][3])}
}
else if (i =='SECTION') {
f.addSectionHeaderItem().setTitle(d[x][1]).setHelpText(d[x][2]);
}
else if (i =='PAGE') {
f.addPageBreakItem().setTitle(d[x][1]).setHelpText(d[x][2]);
}
else if (i =='IMAGE1') {
var img = UrlFetchApp.fetch(d[x][6]);
f.addImageItem().setTitle(d[x][1]).setHelpText(d[x][2]).setImage(img).setAlignment(FormApp.Alignment.CENTER).setWidth(800);
}
else if (i =='IMAGE2') {
var file = DriveApp.getFileById(d[x][6]);
f.addImageItem().setTitle(d[x][1]).setHelpText(d[x][2]).setImage(file).setAlignment(FormApp.Alignment.CENTER).setWidth(800);
}
else if (i =='VIDEO') {
f.addVideoItem().setTitle(d[x][1]).setHelpText(d[x][2]).setVideoUrl(d[x][6]).setAlignment(FormApp.Alignment.CENTER).setWidth(800);
}
else if (i =='SCALE') {
var q = f.addScaleItem().setTitle(d[x][1]).setHelpText(d[x][2]).setRequired(true).setLabels(d[x][6], d[x][7]).setBounds(d[x][4], d[x][5]);
if (d[x][3] !== '') {q.setPoints(d[x][3])}
}
else if (i =='TIME') {
var q = f.addTimeItem().setTitle(d[x][1]).setHelpText(d[x][2]).setRequired(true);
if (d[x][3] !== '') {q.setPoints(d[x][3])}
}
else if (i =='DATE') {
var q = f.addDateItem().setTitle(d[x][1]).setHelpText(d[x][2]).setRequired(true);
if (d[x][3] !== '') {q.setPoints(d[x][3])}
}
else if(i =='ACCEPTANCE'){
var item = f.addMultipleChoiceItem();
var goSubmit = item.createChoice('YES', FormApp.PageNavigationType.SUBMIT);
var goRestart = item.createChoice('NO', FormApp.PageNavigationType.RESTART);
item.setRequired(true);
item.setTitle(d[x][1]);
item.setHelpText(d[x][2]);
item.setChoices([goSubmit,goRestart]);
}
} // End of principle for loop with x
var iti = f.getItems();
for (var y = 0; y < iti.length; y += 1){
var ito = iti[y];
if (ito.getTitle() === "CHOICE"){ f.deleteItem(ito); }
else if (ito.getTitle() === "LIST"){ f.deleteItem(ito); }
else if (ito.getTitle() === "CHECKBOX"){ f.deleteItem(ito); }
}
} // End of entire scipt
Google classroom merupakan media yang sangat mumpuni untuk membantu kegiatan proses belajar mengajar secara online. Berikut ini adalah panduan dasar mengenai google classroom
Dalam video ini kami jelaskan dari dasar cara memulai membuat kelas menggunakan google classroom.
Dalam video ini kami jelaskan bagaimana cara menginstall aplikasi google classrom ke dalam android
Dalam video ini kami jelaskan bagaimana cara menyiapkan materi atau bahan ajar dalam sebuah google classroom
Dalam video ini kami jelaskan bagaimana cara setting beberapa fitur di dalam google classroom.