Advertisement
kadoel

Script Satu Form Untuk Banyak Kelas

Aug 15th, 2020 (edited)
1,439
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  
  3. APPS SCRIPT MEMBUAT SATU FORM UNTUK BANYAK KELAS
  4. PEMBUAT: I KADEK ADI SUANDANA | [email protected]
  5.  
  6. */
  7.  
  8. function buatForm() {
  9.  
  10.   //----------------------------  Load Data Pengaturan  -----------------------------------------------------------------------------------
  11.   var kadoel_halamanPengaturan = SpreadsheetApp.getActive().getSheetByName('Pengaturan');
  12.   var kadoel_mataPelajaran = kadoel_halamanPengaturan.getRange("B2").getValue(); //Sudah
  13.   var kadoel_maxAbsen = kadoel_halamanPengaturan.getRange("B3").getValue();
  14.   var kadoel_judulForm = kadoel_halamanPengaturan.getRange("B4").getValue(); //Sudah
  15.   var kadoel_pesanKonfirmasi = kadoel_halamanPengaturan.getRange("B5").getValue(); //Sudah
  16.   var kadoel_pesanFormTutup = kadoel_halamanPengaturan.getRange("B6").getValue(); //Sudah
  17.   //----------------------------------------------------------------------------------------------------------------------------------------
  18.  
  19.  
  20.   //--------------  Membuat Form Beserta Section 1 & Pengaturan Form  ----------------------------------------------------------------------
  21.   var kadoel_form = FormApp.create(kadoel_judulForm + ' - ' + kadoel_mataPelajaran).setTitle(kadoel_judulForm + ' - ' + kadoel_mataPelajaran).setIsQuiz(true); //Judul Section 1 dan Set Sebagai Kuis
  22.   kadoel_form.setShuffleQuestions(true); //Acak Urutan Pertanyaan
  23.   kadoel_form.setLimitOneResponsePerUser(true); // Hanya Menerima 1 Respon / Siswa
  24.  
  25.   var kadoel_sheetPetunjuk = SpreadsheetApp.getActive().getSheetByName('Petunjuk');
  26.   var kadoel_pilihanPetunjuk = kadoel_sheetPetunjuk.getRange(2, 1, kadoel_sheetPetunjuk.getMaxRows() - 1).getValues();
  27.   var daftarPetunjuk = "";
  28.   for (var indexPetunjuk = 0; indexPetunjuk < kadoel_pilihanPetunjuk.length; indexPetunjuk++) {
  29.     if (kadoel_pilihanPetunjuk[indexPetunjuk][0] != "") {
  30.       daftarPetunjuk += (indexPetunjuk + 1) + '. ' + kadoel_pilihanPetunjuk[indexPetunjuk][0] + "\n";
  31.     }
  32.  
  33.   }
  34.   kadoel_form.setDescription('Petunjuk Umum: \n' + daftarPetunjuk);
  35.  
  36.  
  37.   if (kadoel_pesanKonfirmasi != "") {
  38.     kadoel_form.setConfirmationMessage(kadoel_pesanKonfirmasi) //Pesan Setelah Selesai Mengerjakan
  39.   }
  40.  
  41.   if (kadoel_pesanFormTutup != "") {
  42.     kadoel_form.setCustomClosedFormMessage(kadoel_pesanFormTutup) //Pesan Ketika Tidak Lagi Menerima Respon
  43.   }
  44.   //----------------------------------------------------------------------------------------------------------------------------------------
  45.  
  46.  
  47.   //-------  Menambahkan Item No Absen  --------------------------------------------------------------------------------------------------
  48.   kadoel_form.addSectionHeaderItem();
  49.   var kadoel_dropdownAbsen = kadoel_form.addListItem().setTitle('No. Absen').setRequired(true);
  50.  
  51.   var noAbsen = [];
  52.  
  53.   for (var indexAbsen = 0; indexAbsen < Number(kadoel_maxAbsen); indexAbsen++) {
  54.     noAbsen[indexAbsen] = indexAbsen + 1;
  55.   }
  56.   kadoel_dropdownAbsen.setChoiceValues(noAbsen);
  57.   //----------------------------------------------------------------------------------------------------------------------------------------
  58.  
  59.  
  60.   //-------  Menambahkan Item Password  --------------------------------------------------------------------------------------------------
  61.  
  62.   var kadoel_sheetKelas = SpreadsheetApp.getActive().getSheetByName('Kelas');
  63.   var kadoel_passswordKelas = kadoel_sheetKelas.getRange(2, 2, kadoel_sheetKelas.getMaxRows() - 1).getValues();
  64.   var daftarPassword = "";
  65.   for (var indexPassword = 0; indexPassword < kadoel_passswordKelas.length; indexPassword++) {
  66.     if (kadoel_passswordKelas[indexPassword][0] != "") {
  67.       daftarPassword += kadoel_passswordKelas[indexPassword][0] + "|";
  68.     }
  69.   }
  70.  
  71.  
  72.   //Buat Kolom Input Password
  73.   kadoel_form.addSectionHeaderItem();
  74.   var kadoel_token = kadoel_form.addTextItem().setTitle('Password').setRequired(true);
  75.   var validasiToken = FormApp.createTextValidation()
  76.     .setHelpText('Maaf, Password Salah')
  77.     .requireTextMatchesPattern('(' + daftarPassword + ')')
  78.     .build();
  79.   kadoel_token.setValidation(validasiToken);
  80.   //----------------------------------------------------------------------------------------------------------------------------------------
  81.  
  82.  
  83.   //---------  Membuat Section 2 Beserta Judul dan Deskripsi  -------------------------------------------------------------------------------
  84.  
  85.   kadoel_form.addPageBreakItem().setTitle("Soal Pilihan Ganda").setHelpText('Pilihlah Jawaban Yang Menurut Anda Benar');
  86.   //----------------------------------------------------------------------------------------------------------------------------------------
  87.  
  88.  
  89.   //---------  Import Soal Pilihan Ganda  -------------------------------------------------------------------------------
  90.   var kadoel_pilihanGanda = SpreadsheetApp.getActive().getSheetByName('Soal');
  91.   var kadoel_jumlahBarisPG = kadoel_pilihanGanda.getDataRange().getNumRows();
  92.   var kadoel_pertanyaanPG = kadoel_pilihanGanda.getRange(1, 1, kadoel_jumlahBarisPG, 1).getValues();
  93.   var kadoel_pilihanJawabanPG = kadoel_pilihanGanda.getRange(1, 2, kadoel_jumlahBarisPG, 5).getValues();
  94.   var kadoel_point = kadoel_pilihanGanda.getRange(1, 7, kadoel_jumlahBarisPG, 1).getValues();
  95.  
  96.   //Menambahkan Soal Pilihan Ganda, Pilihan Jawaban, Jawaban Benar, Point, Required
  97.   for (var i = 1; i < kadoel_jumlahBarisPG; i++) {
  98.  
  99.     var kadoel_soalPG = kadoel_form.addMultipleChoiceItem();
  100.     kadoel_soalPG.setRequired(true);
  101.  
  102.     kadoel_soalPG.setPoints(kadoel_point[i][0]);
  103.  
  104.     kadoel_soalPG.setTitle(kadoel_pertanyaanPG[i][0]);
  105.  
  106.     kadoel_soalPG.setChoices([
  107.  
  108.       kadoel_soalPG.createChoice(kadoel_pilihanJawabanPG[i][0], true),
  109.  
  110.       kadoel_soalPG.createChoice(kadoel_pilihanJawabanPG[i][1]),
  111.  
  112.       kadoel_soalPG.createChoice(kadoel_pilihanJawabanPG[i][2]),
  113.  
  114.       kadoel_soalPG.createChoice(kadoel_pilihanJawabanPG[i][3]),
  115.  
  116.       kadoel_soalPG.createChoice(kadoel_pilihanJawabanPG[i][4])
  117.     ]);
  118.   }
  119.   //----------------------------------------------------------------------------------------------------------------------------------------
  120.  
  121.   //---------  Menampilkan Pesan Di Akhir Soal  -------------------------------------------------------------------------------
  122.   kadoel_form.addSectionHeaderItem().setTitle("Ingat Tekan Tombol Kirim / Send Di Bawah Untuk Mengirim Jawaban");
  123.   //----------------------------------------------------------------------------------------------------------------------------------------
  124.  
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement