Advertisement
kadoel

Kadoel Script Import SpreadSheet

May 22nd, 2020
1,313
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 | kadoel@smkn1nusapenida.sch.id
  6.  
  7. */
  8.  
  9. function importDariSpreadSheet() {
  10.  
  11.   var kadoel_halamanSoal = SpreadsheetApp.getActive().getSheetByName('Soal');
  12.   var kadoel_jumlahBaris = kadoel_halamanSoal.getDataRange().getNumRows();
  13.   var kadoel_pertanyaan = kadoel_halamanSoal.getRange(1,1,kadoel_jumlahBaris,1).getValues();
  14.   var kadoel_pilihanJawaban = kadoel_halamanSoal.getRange(1,2,kadoel_jumlahBaris,5).getValues();
  15.   var kadoel_point = kadoel_halamanSoal.getRange(1,7,kadoel_jumlahBaris,1).getValues();
  16.   var kadoel_mataPelajaran = kadoel_halamanSoal.getRange("B1").getValue();
  17.  
  18.   var kadoel_halaman_kelas = SpreadsheetApp.getActive().getSheetByName('Kelas');
  19.   var kadoel_pilihanKelas = kadoel_halaman_kelas.getRange(2,1, kadoel_halaman_kelas.getMaxRows()-1).getValues();
  20.  
  21.   var kadoel_halaman_token = SpreadsheetApp.getActive().getSheetByName('Token');
  22.   var token = kadoel_halaman_token.getRange("A2").getValue(); //Ambil Nilai Token
  23.  
  24.   //Membuat Form Beserta Section 1
  25.   var kadoel_form_soal = FormApp.create('SOAL PAS '+ kadoel_mataPelajaran) // nama Form
  26.  
  27.   .setTitle('PENILAIAN AKHIR SEMESTER GENAP 2019 / 2020 - '+ kadoel_mataPelajaran) //Judul Section 1
  28.  
  29.   .setDescription('Petunjuk Umum: \n'+
  30.                   '1. Tulislah terlebih dahulu nama dan nomor absen dan pilih kelas \n'+
  31.                   '2. Periksa dan baca soal-soal sebelum Anda menjawab \n'+
  32.                   '3. Kerjakan soal yang Anda anggap paling mudah \n'+
  33.                   '4. Periksa pekerjaan anda sebelum dikirim \n'+
  34.                   '5. Alokasi waktu 2 jam') // Deskripsi Section 1
  35.  
  36.   .setLimitOneResponsePerUser(true) // Hanya Menerima 1 Respon / Siswa
  37.  
  38.   .setConfirmationMessage('Jawaban Anda Sudah Disimpan \n'+
  39.                          'Terima Kasih') //Pesan Setelah Selesai Mengerjakan
  40.  
  41.   .setCustomClosedFormMessage('Maaf, Penilaian Akhir Semester Sudah Berakhir \n'+
  42.                              'Terima Kasih') //Pesan Ketika Tidak Lagi Menerima Respon
  43.  
  44.   .setShuffleQuestions(true) //Acak Urutan Pertanyaan
  45.  
  46.   .setIsQuiz(true); //Atur Form Sebagai Juis
  47.  
  48.  
  49.  
  50.   //Buat Kolom Input Nama
  51.   kadoel_form_soal.addSectionHeaderItem();
  52.   var kadoel_nama = kadoel_form_soal.addTextItem().setTitle('Nama').setRequired(true);
  53.   var validasiNama = FormApp.createTextValidation()
  54.   .setHelpText('Penulisan Nama Harus Menggunakan Huruf Besar Semua')
  55.   .requireTextMatchesPattern('[A-Z\\s]+')
  56.   .build();
  57.   kadoel_nama.setValidation(validasiNama);
  58.  
  59.  
  60.   //Buat Kolom Input No.Absen
  61.   kadoel_form_soal.addSectionHeaderItem();
  62.   var kadoel_absen = kadoel_form_soal.addTextItem().setTitle('No. Absen').setRequired(true);
  63.   var validasiAbsen = FormApp.createTextValidation()
  64.   .setHelpText('Inputkan Angka Antara 1 - 40')
  65.   .requireTextMatchesPattern('^([1-9]|[1][0-9]|[2][0-9]|[3][0-9]|[4][0])$')
  66.   .build();
  67.   kadoel_absen.setValidation(validasiAbsen);
  68.  
  69.  
  70.   //Buat Dropdown Kelas
  71.   kadoel_form_soal.addSectionHeaderItem();
  72.   var kadoel_kelas = kadoel_form_soal.addListItem();
  73.   kadoel_kelas.setTitle('Kelas');
  74.   kadoel_kelas.setRequired(true);
  75.  
  76.   var namaKelas = [];
  77.  
  78.   for(var i = 0; i < kadoel_pilihanKelas.length; i++){
  79.     if(kadoel_pilihanKelas[i][0] != "")
  80.       namaKelas[i] = kadoel_pilihanKelas[i][0];
  81.   }
  82.  
  83.   kadoel_kelas.setChoiceValues(namaKelas);
  84.  
  85.  
  86.  
  87.   //Buat Kolom Input Token
  88.   kadoel_form_soal.addSectionHeaderItem();
  89.   var kadoel_token = kadoel_form_soal.addTextItem().setTitle('Token').setRequired(true);
  90.   var validasiToken = FormApp.createTextValidation()
  91.   .setHelpText('Maaf, Token Salah')
  92.   .requireTextMatchesPattern('^'+token+'$')
  93.   .build();
  94.   kadoel_token.setValidation(validasiToken);
  95.  
  96.  
  97.  
  98.   //Membuat Section 2 Beserta Judul dan Deskripsi
  99.                                                                                
  100.   kadoel_form_soal.addPageBreakItem()
  101.  
  102.   .setTitle("Soal Pilihan Ganda")
  103.  
  104.   .setHelpText('Pilihlah Jawaban Yang Menurut Anda Benar');
  105.  
  106.  
  107.   //Menambahkan Soal Pilihan Ganda, Pilihan Jawaban, Jawaban Benar, Point, Required
  108.   for(var i=2;i<kadoel_jumlahBaris;i++){
  109.      
  110.     var kadoel_tambahPertanyaan = kadoel_form_soal.addMultipleChoiceItem();
  111.    
  112.     kadoel_tambahPertanyaan.setRequired(true);
  113.    
  114.     kadoel_tambahPertanyaan.setPoints(kadoel_point[i][0]);
  115.  
  116.     kadoel_tambahPertanyaan.setTitle(kadoel_pertanyaan[i][0]);
  117.    
  118.     kadoel_tambahPertanyaan.setChoices([
  119.  
  120.         kadoel_tambahPertanyaan.createChoice(kadoel_pilihanJawaban[i][0],true),
  121.  
  122.         kadoel_tambahPertanyaan.createChoice(kadoel_pilihanJawaban[i][1]),
  123.  
  124.         kadoel_tambahPertanyaan.createChoice(kadoel_pilihanJawaban[i][2]),
  125.  
  126.         kadoel_tambahPertanyaan.createChoice(kadoel_pilihanJawaban[i][3]),
  127.        
  128.         kadoel_tambahPertanyaan.createChoice(kadoel_pilihanJawaban[i][4])
  129.     ]);
  130.   }
  131.  
  132.   kadoel_form_soal.addSectionHeaderItem().setTitle('Klik Submit atau Kirim Di Bawah Ini Setelah Selesai Mengerjakan Soal');
  133.  
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement