Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

//

===================================================================================
=======//
//==== Fungsi untuk import soal dari ms.excel menggunakan script ====//
//==== 1. Siapkan soal dalam bentuk ms.excel (sesuai format contoh file) ====//
//==== 2. Upload file ms.excel ke google drive lalu disimpan menjadi google
spreadsheet ====//
//==== 3. Klik menu �alat� atau �tools�, lalu pilih �editor skrip� atau �script
editor� ====//
//==== 4. Lakukan perubahan pada NAMA GOOGLE FORM dan NAMA SHEET ====//
//==== sesuai kebutuhan agar tidak terjadi duplikasi google form ====//
//==== 5. Jumlah baris soal : sesuai kenginan/bebas ====//
//==== 6. Jumlah opsi jawaban : 5 (a,b,c,d,e) ====//
//==== 7. Kunci Jawaban diletakkan pada kolom ke 8, ====//
//==== COPY-PASTE KUNCI JAWABAN AGAR TIDAK MERUBAH FORMAT TEKS ====//
//==== 8. Poin tiap nomer diletakkan pada kolom terakhir (kolom ke 9) ====//
//==== 9. klik tombol �jalankan� atau �Run�, ====//
//==== jika ada notifikasi, silahkan pilih �lanjutkan/izinkan/jalankan� ====//
//
===================================================================================
=======//

function Sman1LecesForm() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('soal1'); //<============ NAMA SHEET di file excel
var jumlahBaris = (sheet.getDataRange().getNumRows())-1; //proses perhitungan
jumlah baris soal
var pertanyaanKu = sheet.getRange(2,2,jumlahBaris,1).getValues(); //posisi kolom
pertanyaan ==> kolom ke 2
var kunciJawabanKu = sheet.getRange(2,8,jumlahBaris,1).getValues(); //posisi
kunci jawaban ==> kolom ke 8
var opsiJawabanKu = sheet.getRange(2,3,jumlahBaris,5).getValues(); //posisi
pilihan jawaban ==> kolom ke 3 sampai kolom ke 7
var poinKu = sheet.getRange(2,9,jumlahBaris,1).getValues(); //posisi poin ==>
kolom ke 9
var acakOpsiKu = opsiJawabanKu.map(acakOpsiJawaban); //persiapan fungsi acak opsi
jawaban
Logger.log(acakOpsiKu);
Logger.log(kunciJawabanKu);

var form = FormApp.create('NAMA FORM'); //<==========NAMA GOOGLE FORM/FILENYA


(BUKAN JUDUL)
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