You are on page 1of 2

//

===================================================================================
=============//
//==== Fungsi untuk import soal dari ms.excel menggunakan script
====//
//==== Create and Modified by : Masdin Media
(https://bit.ly/JelajahMasdinMedia) ====//
//==== Dapatkan Informasi menarik lainnya di Channel Masdin Media
====//
//==== Ketentuan :
====//
//==== 1. Siapkan soal dalam bentuk ms.excel (sesuai format : saya siapkan di link
deskripsi) ====//
//==== 2. Upload file ms.excel ke google drive lalu disimpan menjadi google
spreadsheet ====//
//==== 3. Jumlah baris soal : sesuai kenginan/bebas
====//
//==== 4. Jumlah opsi jawaban : 5 (a,b,c,d,e)
====//
//==== 5. Kunci Jawaban diletakkan pada pilihan pertama (setelah kolom pertanyaan)
====//
//==== 6. Poin tiap nomer diletakkan pada kolom terakhir
====//
//
===================================================================================
=============//

function MasdinMediaForm() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('soal'); //sesuaikan nama sheet di ms.excel
var jumlahBaris = (sheet.getDataRange().getNumRows())-1; //proses perhitungan
jumlah baris soal
var pertanyaanKu = sheet.getRange(2,2,jumlahBaris,1).getValues(); //posisi kolom
pertanyaan ==> 1 kolom
var kunciJawabanKu = sheet.getRange(2,3,jumlahBaris,1).getValues(); //posisi
kunci jawaban ==> 1 kolom
var opsiJawabanKu = sheet.getRange(2,3,jumlahBaris,5).getValues(); //posisi
pilihan jawaban ==> 5 kolom
var poinKu = sheet.getRange(2,8,jumlahBaris,1).getValues(); //posisi poin ==> 1
kolom
var acakOpsiKu = opsiJawabanKu.map(acakOpsiJawaban); //persiapan fungsi acak opsi
jawaban
Logger.log(acakOpsiKu);
Logger.log(kunciJawabanKu);

var form = FormApp.create('G-Form Masdin Media'); //Mulai membuat google form


form.setIsQuiz(true); //menjadikan form sebagai quiz

for(var i=0;i<jumlahBaris;i++){
var terpilih0 = false;
var terpilih1 = false;
var terpilih2 = false;
var terpilih3 = false;
var terpilih4 = false;

if (acakOpsiKu[i][0] == kunciJawabanKu[i][0]) {
var terpilih0 = true;
}
else if (acakOpsiKu[i][1] == kunciJawabanKu[i][0]) {
var terpilih1 = true;
}
else if (acakOpsiKu[i][2] == kunciJawabanKu[i][0]) {
var terpilih2 = true;
}
else if (acakOpsiKu[i][3] == kunciJawabanKu[i][0]) {
var terpilih3 = true;
}
else if (acakOpsiKu[i][4] == kunciJawabanKu[i][0]) {
var terpilih4 = true;
}

var addItem = form.addMultipleChoiceItem();


addItem.setTitle(pertanyaanKu[i][0])
.setRequired(true) //menentukan bahwa soal wajib dijawab
.setPoints(poinKu[i][0]) //menentukan poin tiap pertanyaan
.setChoices([
addItem.createChoice(acakOpsiKu[i][0],terpilih0), //posisi kunci jawaban
addItem.createChoice(acakOpsiKu[i][1],terpilih1),
addItem.createChoice(acakOpsiKu[i][2],terpilih2),
addItem.createChoice(acakOpsiKu[i][3],terpilih3),
addItem.createChoice(acakOpsiKu[i][4],terpilih4)
]);
}
}

//fungsi acak opsi jawaban


function acakOpsiJawaban(array) {
var i, j, temp;
for (i = array.length - 1; i > 0; i--) {
j = Math.floor(Math.random() * (i + 1));
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return array;
}

You might also like