Berikut adalah tutorial untuk membuat Google Form, Google Spreadsheet, Google Slide, folder di Google Drive, dan menemukan ID-nya masing-masing untuk digunakan dengan Google Apps Script.


# 1. Membuat Google Form

1. Buka Google Forms: Kunjungi [Google Forms](https://forms.google.com) dan klik "Blank" untuk membuat form baru.

2. Isi Form: Tambahkan pertanyaan yang diperlukan. Misalnya, tambahkan pertanyaan untuk Nama dan Email.

3. Simpan Form: Form akan otomatis tersimpan di Google Drive.


# Menemukan ID Google Form

1. Buka Form: Buka form yang telah dibuat.

2. Salin URL: URL di address bar mengandung ID Form. Misalnya, jika URL-nya `https://docs.google.com/forms/d/1AbCDEFGHIJKL/viewform`, ID Form adalah `1AbCDEFGHIJKL`.


# 2. Membuat Google Spreadsheet

1. Buka Google Sheets: Kunjungi [Google Sheets](https://sheets.google.com) dan klik "Blank" untuk membuat spreadsheet baru.

2. Isi Spreadsheet: Masukkan data atau biarkan kosong untuk diisi oleh respon Google Form.

3. Simpan Spreadsheet: Spreadsheet akan otomatis tersimpan di Google Drive.


# Menemukan ID Google Spreadsheet

1. Buka Spreadsheet: Buka spreadsheet yang telah dibuat.

2. Salin URL: URL di address bar mengandung ID Spreadsheet. Misalnya, jika URL-nya `https://docs.google.com/spreadsheets/d/1XYZ12345/edit`, ID Spreadsheet adalah `1XYZ12345`.



# 3. Membuat Google Slide

1. Buka Google Slides: Kunjungi [Google Slides](https://slides.google.com) dan klik "Blank" untuk membuat slide baru.

2. Isi Slide: Buat template dengan placeholder seperti `{{NAME}}` dan `{{TIKET}}`.

3. Simpan Slide: Slide akan otomatis tersimpan di Google Drive.


# Menemukan ID Google Slide

1. Buka Slide: Buka slide yang telah dibuat.

2. Salin URL: URL di address bar mengandung ID Slide. Misalnya, jika URL-nya `https://docs.google.com/presentation/d/1SLIDEXYZ123/edit`, ID Slide adalah `1SLIDEXYZ123`.


# 4. Membuat Folder di Google Drive

1. Buka Google Drive: Kunjungi [Google Drive](https://drive.google.com).

2. Buat Folder: Klik kanan dan pilih "New folder" atau klik tombol "New" di kiri atas dan pilih "Folder". Beri nama folder tersebut.

3. Simpan Folder: Folder akan otomatis tersimpan di Google Drive.


# Menemukan ID Folder Google Drive

1. Buka Folder: Buka folder yang telah dibuat.

2. Salin URL: URL di address bar mengandung ID Folder. Misalnya, jika URL-nya `https://drive.google.com/drive/folders/1FOLDERXYZ123`, ID Folder adalah `1FOLDERXYZ123`.


# 5. Menggunakan Google Apps Script

Gunakan script di bawah ini dan ganti placeholder dengan ID yang telah ditemukan sebelumnya:


function onFormSubmit(e) {

  var formResponsesSheetId = '<ID SPREADSHEET>'; // ID Spreadsheet respon Google Form

  var templateSlideId = '<ID SLIDE>'; // ID Slide template

  var targetFolderId = '<ID FOLDER>'; // ID Folder Google Drive tujuan


  // Ambil data dari spreadsheet

  var sheet = SpreadsheetApp.openById(formResponsesSheetId).getSheets()[0];

  var lastRow = sheet.getLastRow();

  var namaKu = sheet.getRange(lastRow, 2).getValue(); // Nama ada di kolom B (kolom ke-2)

  var emailtujuan = sheet.getRange(lastRow, 3).getValue(); // Email ada di kolom C (kolom ke-3)


  // Generate nomor tiket secara otomatis

  var nomorTiket = 'ID-' + pad(lastRow, 3);

  sheet.getRange(lastRow, 4).setValue(nomorTiket); // Menulis nomor tiket di kolom D (kolom ke-4)


  // Buat QR code berdasarkan ID Tiket

  var qrCodeUrl = 'https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=' + encodeURIComponent(nomorTiket);

  var response = UrlFetchApp.fetch(qrCodeUrl);

  var qrCodeBlob = response.getBlob().setName('qrcode.png');


  // Simpan QR code sementara di Google Drive

  var tempFolder = DriveApp.getFolderById(targetFolderId);

  var qrCodeFile = tempFolder.createFile(qrCodeBlob);

  var qrCodeFileId = qrCodeFile.getId();


  // Buat salinan presentasi sebagai file baru untuk diexport

  var slideTemplate = DriveApp.getFileById(templateSlideId);

  var copiedPresentation = slideTemplate.makeCopy('Sertifikat ' + namaKu);

  var copiedPresentationId = copiedPresentation.getId();


  // Buka salinan presentasi

  var presentation = SlidesApp.openById(copiedPresentationId);

  var slide = presentation.getSlides()[0]; // Menggunakan slide pertama sebagai template


  // Update slide dengan data dari form

  slide.replaceAllText('{{NAME}}', namaKu);

  slide.replaceAllText('{{TIKET}}', nomorTiket);


  // Sisipkan QR code ke dalam slide

  var qrCodeImage = slide.insertImage(qrCodeFile.getBlob(), 300, 200, 100, 100); // Sesuaikan posisi dan ukuran sesuai kebutuhan

  slide.replaceAllText('{{QRCODE2}}', ''); // Hapus placeholder setelah gambar disisipkan


  // Simpan perubahan dan tutup presentasi

  presentation.saveAndClose();


  // Hapus file QR code sementara

  qrCodeFile.setTrashed(true);


  // Tunggu beberapa saat agar perubahan diterapkan

  Utilities.sleep(5000); // Tunggu 5 detik


  // Export slide sebagai gambar PNG

  var exportUrl = 'https://docs.google.com/presentation/d/' + copiedPresentationId + '/export/png?pageid=' + slide.getObjectId();

  var token = ScriptApp.getOAuthToken();

  var response = UrlFetchApp.fetch(exportUrl, {

    headers: {

      'Authorization': 'Bearer ' + token

    }

  });


  var blob = response.getBlob();

  var today = new Date();

  var formattedDate = Utilities.formatDate(today, Session.getScriptTimeZone(), 'yyyyMMdd');

  blob.setName('e-Tiket-' + nomorTiket + '-' + namaKu + '-' + formattedDate + '.png');


  // Simpan gambar di folder Google Drive

  var folder = DriveApp.getFolderById(targetFolderId);

  var pngFile = folder.createFile(blob);


  // Kirim email dengan gambar terlampir

  MailApp.sendEmail({

    to: emailtujuan,

    subject: 'e-Tiket ' + nomorTiket + ' ' + namaKu,

    body: 'Halo ' + namaKu + ',\n\nE-tiket dengan nomor ' + nomorTiket + ' atas nama ' + namaKu + ' sudah berhasil mendaftar, e-tiket terlampir pada email ini. Terima kasih.\n\nSalam,\nE-Tiket Form',

    attachments: [blob]

  });


  // Simpan link file PNG ke kolom E (kolom ke-5)

  var fileLink = pngFile.getUrl();

  sheet.getRange(lastRow, 5).setValue(fileLink);


  // Hapus file salinan presentasi

  DriveApp.getFileById(copiedPresentationId).setTrashed(true);

}


// Fungsi untuk padding nomor tiket

function pad(num, size) {

  var s = num + "";

  while (s.length < size) s = "0" + s;

  return s;

}


function setupTrigger() {

  var form = FormApp.openById('<ID FORM>'); // Ganti dengan ID Formulir Anda

  ScriptApp.newTrigger('onFormSubmit')

    .forForm(form)

    .onFormSubmit()

    .create();


  Logger.log('Trigger setup berhasil dijalankan pada ' + new Date());

}


// Fungsi untuk melihat log di Google Apps Script

function viewLogs() {

  Logger.log('Log dilihat pada ' + new Date());

  Logger.getLog(); // Memanggil log yang ada

}


# Cara Menggunakan Script

1. Buka Google Apps Script: Buka Google Sheets, lalu klik `Extensions > Apps Script`.

2. Copy dan Paste Script: Salin script di atas dan tempelkan ke editor script.

3. Ganti Placeholder: Ganti `<ID SPREADSHEET>`, `<ID SLIDE>`, `<ID FOLDER>`, dan `<ID FORM>` dengan ID yang sesuai.


4. Setup Trigger: Jalankan fungsi `setupTrigger` untuk mengatur trigger agar script berjalan saat form disubmit

.

5. Uji Coba: Submit form dan cek hasilnya di Google Drive dan email.




Selamat mencoba! Jika ada pertanyaan, jangan ragu untuk bertanya.

LINK DEMO