kadoel

Apps Script Import Dari SpreadSheet Ke Google Form v.2

May 24th, 2020
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  
  3. APPS SCRIPT UNTUK MENGIMPORT SOAL DARI GOOGLE SPREADSHEET KE GOOGLE FORM
  4.  
  5. PEMBUAT: I KADEK ADI SUANDANA | [email protected]
  6.  
  7. */
  8.  
  9. function importDariSpreadSheet() {
  10.  
  11.   //----------------------------  Load Data Pengaturan  -----------------------------------------------------------------------------------
  12.   var kadoel_halamanPengaturan = SpreadsheetApp.getActive().getSheetByName('Pengaturan');
  13.   var kadoel_mataPelajaran = kadoel_halamanPengaturan.getRange("B2").getValue(); //Sudah
  14.   var kadoel_tanggapanSiswa = kadoel_halamanPengaturan.getRange("B3").getValue(); //Sudah
  15.   var kadoel_siswaDropdown = kadoel_halamanPengaturan.getRange("B4").getValue();
  16.   var kadoel_absenDropdown = kadoel_halamanPengaturan.getRange("B6").getValue();
  17.   var kadoel_jenisPertanyaan = kadoel_halamanPengaturan.getRange("B9").getValue();
  18.   var kadoel_urutkanSoalPG = kadoel_halamanPengaturan.getRange("B16").getValue(); //Sudah
  19.   var kadoel_judulForm = kadoel_halamanPengaturan.getRange("B17").getValue(); //Sudah
  20.   var kadoel_pesanKonfirmasi = kadoel_halamanPengaturan.getRange("B18").getValue(); //Sudah
  21.   var kadoel_pesanFormTutup = kadoel_halamanPengaturan.getRange("B19").getValue();//Sudah
  22.   var kadoel_pesanKirimJawaban = kadoel_halamanPengaturan.getRange("B20").getValue();//Sudah
  23.   var kadoel_tokenKuis = kadoel_halamanPengaturan.getRange("B21").getValue();//Sudah
  24.   var kadoel_petunjukKuis = kadoel_halamanPengaturan.getRange("B22").getValue();//Sudah
  25.   //----------------------------------------------------------------------------------------------------------------------------------------
  26.  
  27.  
  28.   //--------------  Membuat Form Beserta Section 1 & Pengaturan Form  ----------------------------------------------------------------------
  29.   var kadoel_form = FormApp.create(kadoel_mataPelajaran).setTitle(kadoel_judulForm +' - '+ kadoel_mataPelajaran).setIsQuiz(true); //Judul Section 1 dan Set Sebagai Kuis
  30.  
  31.   if(kadoel_petunjukKuis == "1"){
  32.     var kadoel_sheetPetunjuk = SpreadsheetApp.getActive().getSheetByName('Petunjuk');
  33.     var kadoel_pilihanPetunjuk = kadoel_sheetPetunjuk.getRange(2, 1, kadoel_sheetPetunjuk.getMaxRows()-1).getValues();
  34.     var daftarPetunjuk="";
  35.     for(var indexPetunjuk = 0; indexPetunjuk < kadoel_pilihanPetunjuk.length; indexPetunjuk++){
  36.       if(kadoel_pilihanPetunjuk[indexPetunjuk][0] !=""){
  37.         daftarPetunjuk+= (indexPetunjuk+1)+'. '+kadoel_pilihanPetunjuk[indexPetunjuk][0]+"\n";
  38.       }
  39.      
  40.     }
  41.     kadoel_form.setDescription('Petunjuk Umum: \n'+daftarPetunjuk);
  42.   }
  43.  
  44.  
  45.   if(kadoel_pesanKonfirmasi != ""){
  46.     kadoel_form.setConfirmationMessage(kadoel_pesanKonfirmasi) //Pesan Setelah Selesai Mengerjakan
  47.   }
  48.  
  49.   if(kadoel_pesanFormTutup != ""){
  50.     kadoel_form.setCustomClosedFormMessage(kadoel_pesanFormTutup) //Pesan Ketika Tidak Lagi Menerima Respon
  51.   }
  52.  
  53.   if(kadoel_urutkanSoalPG =="1"){
  54.     kadoel_form.setShuffleQuestions(true); //Acak Urutan Pertanyaan
  55.   }
  56.   else{
  57.     kadoel_form.setShuffleQuestions(false); //Tidak Acak Urutan Pertanyaan
  58.   }
  59.  
  60.   if(kadoel_tanggapanSiswa == "1"){
  61.     kadoel_form.setLimitOneResponsePerUser(true); // Hanya Menerima 1 Respon / Siswa
  62.   }
  63.   else{
  64.     kadoel_form.setLimitOneResponsePerUser(false); // Boleh Menerima lebih dari 1 Respon / siswa
  65.   }
  66.   //----------------------------------------------------------------------------------------------------------------------------------------
  67.  
  68.  
  69.   //-------  Menambahkan Item Nama Siswa  --------------------------------------------------------------------------------------------------
  70.   kadoel_form.addSectionHeaderItem();
  71.   if(kadoel_siswaDropdown == "1"){
  72.     //Buat Dropdown Nama Siswa
  73.     var kadoel_sheetSiswa = SpreadsheetApp.getActive().getSheetByName('Siswa');
  74.     var kadoel_pilihanSiswa = kadoel_sheetSiswa.getRange(2, 1, kadoel_sheetSiswa.getMaxRows()-1).getValues();
  75.     var kadoel_dropdownSiswa = kadoel_form.addListItem().setTitle('Siswa').setRequired(true);
  76.    
  77.     var namaSiswa = [];
  78.    
  79.     for(var indexSiswa = 0; indexSiswa < kadoel_pilihanSiswa.length; indexSiswa++){
  80.       if(kadoel_pilihanSiswa[indexSiswa][0] != "")
  81.          namaSiswa[indexSiswa] = kadoel_pilihanSiswa[indexSiswa][0];
  82.     }
  83.     kadoel_dropdownSiswa.setChoiceValues(namaSiswa);
  84.   }
  85.  
  86.   else{
  87.     //Buat Kolom Input Nama Siswa
  88.     var kadoel_nama = kadoel_form.addTextItem().setTitle('Nama').setRequired(true);
  89.     var validasiNama = FormApp.createTextValidation()
  90.     .setHelpText('Penulisan Nama Harus Menggunakan Huruf Besar Semua')
  91.     .requireTextMatchesPattern('[A-Z\\s]+')
  92.     .build();
  93.     kadoel_nama.setValidation(validasiNama);
  94.   }
  95.   //----------------------------------------------------------------------------------------------------------------------------------------
  96.  
  97.  
  98.   //-------  Menambahkan Item No Absen  --------------------------------------------------------------------------------------------------
  99.   kadoel_form.addSectionHeaderItem();
  100.   if(kadoel_absenDropdown == "1"){
  101.     var kadoel_maxAbsen = kadoel_halamanPengaturan.getRange("B8").getValue();
  102.     var kadoel_dropdownAbsen = kadoel_form.addListItem().setTitle('No. Absen').setRequired(true);
  103.    
  104.     var noAbsen = [];
  105.    
  106.     for(var indexAbsen = 0; indexAbsen < Number(kadoel_maxAbsen); indexAbsen++){
  107.       noAbsen[indexAbsen] = indexAbsen+1;
  108.     }
  109.     kadoel_dropdownAbsen.setChoiceValues(noAbsen);
  110.   }
  111.  
  112.   else{
  113.     var kadoel_absen = kadoel_form.addTextItem().setTitle('No. Absen').setRequired(true);
  114.     var validasiAbsen = FormApp.createTextValidation()
  115.     .setHelpText('Inputkan Angka Antara 1 - 40')
  116.     .requireTextMatchesPattern('^([1-9]|[1][0-9]|[2][0-9]|[3][0-9]|[4][0])$')
  117.     .build();
  118.     kadoel_absen.setValidation(validasiAbsen);
  119.   }
  120.   //----------------------------------------------------------------------------------------------------------------------------------------
  121.  
  122.   //-------  Menambahkan Dropdown Kelas  --------------------------------------------------------------------------------------------------
  123.   var kadoel_sheetKelas = SpreadsheetApp.getActive().getSheetByName('Kelas');
  124.   var kadoel_pilihanKelas = kadoel_sheetKelas.getRange(2,1, kadoel_sheetKelas.getMaxRows()-1).getValues();
  125.  
  126.   kadoel_form.addSectionHeaderItem();
  127.   var kadoel_kelas = kadoel_form.addListItem();
  128.   kadoel_kelas.setTitle('Kelas');
  129.   kadoel_kelas.setRequired(true);
  130.  
  131.   var namaKelas = [];
  132.  
  133.   for(var i = 0; i < kadoel_pilihanKelas.length; i++){
  134.     if(kadoel_pilihanKelas[i][0] != "")
  135.       namaKelas[i] = kadoel_pilihanKelas[i][0];
  136.   }
  137.  
  138.   kadoel_kelas.setChoiceValues(namaKelas);
  139.  //----------------------------------------------------------------------------------------------------------------------------------------
  140.  
  141.  
  142.   //-------  Menambahkan Item Token  --------------------------------------------------------------------------------------------------
  143.   if(kadoel_tokenKuis !=""){
  144.     //Buat Kolom Input Token
  145.     kadoel_form.addSectionHeaderItem();
  146.     var kadoel_token = kadoel_form.addTextItem().setTitle('Token').setRequired(true);
  147.     var validasiToken = FormApp.createTextValidation()
  148.     .setHelpText('Maaf, Token Salah')
  149.     .requireTextMatchesPattern('^'+kadoel_tokenKuis+'$')
  150.     .build();
  151.     kadoel_token.setValidation(validasiToken);
  152.   }
  153.   //----------------------------------------------------------------------------------------------------------------------------------------
  154.  
  155.  
  156.   //---------  Membuat Section 2 Beserta Judul dan Deskripsi  -------------------------------------------------------------------------------
  157.                                                                                
  158.   var kadoel_bagian2 = kadoel_form.addPageBreakItem();
  159.  
  160.   if(kadoel_jenisPertanyaan == "1"){
  161.     kadoel_bagian2.setTitle("Soal Pilihan Ganda")
  162.     .setHelpText('Pilihlah Jawaban Yang Menurut Anda Benar');
  163.   }
  164.   else if(kadoel_jenisPertanyaan == "2"){
  165.     kadoel_bagian2.setTitle("Soal Isian Singkat")
  166.     .setHelpText('Jawablah Pertanyaan Ini Dengan Jawaban Singkat');
  167.   }
  168.   else if(kadoel_jenisPertanyaan == "3"){
  169.     kadoel_bagian2.setTitle("Soal Essay")
  170.     .setHelpText('Jawablah Pertanyaan Ini Dengan Jelas');
  171.   }
  172.   else if(kadoel_jenisPertanyaan == "4"){
  173.     kadoel_bagian2.setTitle("Soal Pilihan Ganda & Isian Singkat")
  174.     .setHelpText('Silahkan Dijawab Pertanyaan Di Bawah Ini');
  175.   }
  176.   else if(kadoel_jenisPertanyaan == "5"){
  177.     kadoel_bagian2.setTitle("Soal Pilihan Ganda & Essay")
  178.     .setHelpText('Silahkan Dijawab Pertanyaan Di Bawah Ini');
  179.   }
  180.   else if(kadoel_jenisPertanyaan == "6"){
  181.     kadoel_bagian2.setTitle("Soal Isian Singkat & Essay")
  182.     .setHelpText('Silahkan Dijawab Pertanyaan Di Bawah Ini');
  183.   }
  184.   else if(kadoel_jenisPertanyaan == "7"){
  185.     kadoel_bagian2.setTitle("Soal Pilihan Ganda & Isian Singkat & Essay")
  186.     .setHelpText('Silahkan Dijawab Pertanyaan Di Bawah Ini');
  187.   }
  188.   else{
  189.     kadoel_bagian2.setTitle("Anda Belum Menentukan Jenis Pertanyaan")
  190.     .setHelpText('Silahkan Tentukan Jenis Pertanyaan Di Pengaturan');
  191.   }
  192.   //----------------------------------------------------------------------------------------------------------------------------------------
  193.  
  194.  
  195.   //---------  Import Soal Pilihan Ganda  -------------------------------------------------------------------------------
  196.   if(kadoel_jenisPertanyaan == "1" || kadoel_jenisPertanyaan == "4" || kadoel_jenisPertanyaan == "5" || kadoel_jenisPertanyaan == "7"){
  197.     var kadoel_pilihanGanda = SpreadsheetApp.getActive().getSheetByName('Pilihan Ganda');
  198.     var kadoel_jumlahBarisPG = kadoel_pilihanGanda.getDataRange().getNumRows();
  199.     var kadoel_pertanyaanPG = kadoel_pilihanGanda.getRange(1,1,kadoel_jumlahBarisPG,1).getValues();
  200.     var kadoel_pilihanJawabanPG = kadoel_pilihanGanda.getRange(1,2,kadoel_jumlahBarisPG,5).getValues();
  201.     var kadoel_point = kadoel_pilihanGanda.getRange(1,7,kadoel_jumlahBarisPG,1).getValues();
  202.     var kadoel_requiredPG = kadoel_pilihanGanda.getRange(1,8,kadoel_jumlahBarisPG,1).getValues();
  203.    
  204.     //Menambahkan Soal Pilihan Ganda, Pilihan Jawaban, Jawaban Benar, Point, Required
  205.     for(var i=2;i<kadoel_jumlahBarisPG;i++){
  206.      
  207.       var kadoel_soalPG = kadoel_form.addMultipleChoiceItem();
  208.       if(kadoel_requiredPG[i][0] == "1"){
  209.         kadoel_soalPG.setRequired(true);
  210.       }
  211.      
  212.       kadoel_soalPG.setPoints(kadoel_point[i][0]);
  213.      
  214.       kadoel_soalPG.setTitle(kadoel_pertanyaanPG[i][0]);
  215.      
  216.       kadoel_soalPG.setChoices([
  217.        
  218.         kadoel_soalPG.createChoice(kadoel_pilihanJawabanPG[i][0],true),
  219.        
  220.         kadoel_soalPG.createChoice(kadoel_pilihanJawabanPG[i][1]),
  221.        
  222.         kadoel_soalPG.createChoice(kadoel_pilihanJawabanPG[i][2]),
  223.        
  224.         kadoel_soalPG.createChoice(kadoel_pilihanJawabanPG[i][3]),
  225.        
  226.         kadoel_soalPG.createChoice(kadoel_pilihanJawabanPG[i][4])
  227.       ]);
  228.     }
  229.   }
  230.   //----------------------------------------------------------------------------------------------------------------------------------------
  231.  
  232.  
  233.   //---------  Import Soal Isian  -------------------------------------------------------------------------------
  234.   if(kadoel_jenisPertanyaan == "2" || kadoel_jenisPertanyaan == "4" || kadoel_jenisPertanyaan == "6" || kadoel_jenisPertanyaan == "7"){
  235.     var kadoel_isianSingkat = SpreadsheetApp.getActive().getSheetByName('Isian Singkat');
  236.     var kadoel_jumlahBarisIsian = kadoel_isianSingkat.getDataRange().getNumRows();
  237.     var kadoel_pertanyaanIsian = kadoel_isianSingkat.getRange(1,1,kadoel_jumlahBarisIsian,1).getValues();
  238.     var kadoel_requiredIsian = kadoel_isianSingkat.getRange(1,2,kadoel_jumlahBarisIsian,1).getValues();
  239.    
  240.     for(var indexIsian = 2; indexIsian < kadoel_jumlahBarisIsian; indexIsian++){
  241.       kadoel_form.addSectionHeaderItem();
  242.       var kadoel_soalIsian = kadoel_form.addTextItem().setTitle(kadoel_pertanyaanIsian[indexIsian][0]);
  243.       if(kadoel_requiredIsian[indexIsian][0] == "1"){
  244.         kadoel_soalIsian.setRequired(true);
  245.       }
  246.     }
  247.   }
  248.   //----------------------------------------------------------------------------------------------------------------------------------------
  249.  
  250.  
  251.   //---------  Import Soal Essay  -------------------------------------------------------------------------------
  252.   if(kadoel_jenisPertanyaan == "3" || kadoel_jenisPertanyaan == "5" || kadoel_jenisPertanyaan == "6" || kadoel_jenisPertanyaan == "7"){
  253.     var kadoel_essay = SpreadsheetApp.getActive().getSheetByName('Essay');
  254.     var kadoel_jumlahBarisEssay = kadoel_essay.getDataRange().getNumRows();
  255.     var kadoel_pertanyaanEssay = kadoel_essay.getRange(1,1,kadoel_jumlahBarisEssay,1).getValues();
  256.     var kadoel_requiredEssay = kadoel_essay.getRange(1,2,kadoel_jumlahBarisEssay,1).getValues();
  257.    
  258.     for(var indexEssay = 2; indexEssay < kadoel_jumlahBarisEssay; indexEssay++){
  259.       kadoel_form.addSectionHeaderItem();
  260.       var kadoel_soalEssay = kadoel_form.addParagraphTextItem().setTitle(kadoel_pertanyaanEssay[indexEssay][0]);
  261.       if(kadoel_requiredEssay[indexEssay][0] == "1"){
  262.         kadoel_soalEssay.setRequired(true);
  263.       }
  264.     }
  265.   }
  266.   //----------------------------------------------------------------------------------------------------------------------------------------
  267.  
  268.  
  269.   //---------  Menampilkan Pesan Di Akhir Soal  -------------------------------------------------------------------------------
  270.   if(kadoel_pesanKirimJawaban !=""){
  271.     kadoel_form.addSectionHeaderItem().setTitle(kadoel_pesanKirimJawaban);
  272.   }
  273.   //----------------------------------------------------------------------------------------------------------------------------------------
  274.  
  275. }
Add Comment
Please, Sign In to add comment