Sabtu, 09 Desember 2023

PBKK - 10 - Google Apps Script

 

Nama : Richie Seputro

NRP : 5025211213

Kelas : Pemrograman Berbasis Kerangka Kerja A

Tahun Ajaran : 2023/2024 (Semester Gasal)

Link Repository : https://github.com/richiesuper/pbkk-apps-script

Link Deployment: https://richiesuper.github.io/pbkk-apps-script/

Penjelasan :


Pada kesempatan kali ini, saya membuat sebuah web app yang bisa terhubung dengan Google Workspace apps seperti Google Docs dan lain-lain. Kali ini, aplikasi berbentuk seperti formulir data diri yang mana akan mengirim data dari form ke Apps Script yang akan menyimpan data hasil kiriman tersebut ke Spreadsheet Google.


1. Pertama, saya membuat halaman HTML untuk formulir. Kode HTML dapat diakses melalui link repository di atas.


2. Kedua, saya membuat sebuah spreadsheet baru untuk menyimpan data dan menambahkan header-header untuk data. Spreadsheet dapat diakses melalui link berikut: https://docs.google.com/spreadsheets/d/1jIg6Ww9POyfRgUvxXeqtGIBR5Sxm5dEOzFuUmPiod00/edit?usp=sharing

3. Ketiga, saya membuat Apps Script melalui tab "Ekstensi" yang diisi dengan source code sebagai berikut:

// Deploy this script on Google Apps Script  
 const sheetName = 'Sheet1'  
 const scriptProp = PropertiesService.getScriptProperties()  
 function intialSetup() {  
   const activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet()  
   scriptProp.setProperty('key', activeSpreadsheet.getId())  
 }  
 function doPost(e) {  
   const lock = LockService.getScriptLock()  
   lock.tryLock(10000)  
   try {  
     const doc = SpreadsheetApp.openById(scriptProp.getProperty('key'))  
     const sheet = doc.getSheetByName(sheetName)  
     const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]  
     const nextRow = sheet.getLastRow() + 1  
     const newRow = headers.map(function (header) {  
       let value = e.parameter[header]  
       if (typeof value === 'string' && value.charAt(0) === '=') {  
         value = "'" + value  
       }  
       return header === 'Date' ? new Date() : value  
     })  
     sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow])  
     return ContentService  
       .createTextOutput(JSON.stringify({ 'result': 'success', 'row': nextRow }))  
       .setMimeType(ContentService.MimeType.JSON)  
   }  
   catch (e) {  
     return ContentService  
       .createTextOutput(JSON.stringify({ 'result': 'error', 'error': e }))  
       .setMimeType(ContentService.MimeType.JSON)  
   }  
   finally {  
     lock.releaseLock()  
   }  
 } 

4. Selanjutnya, saya men-deploy script tersebut agar bisa dipakai orang lain dan data disimpan ke akun Google saya

5. Selanjutnya, coba masukkan data ke formulir dan klik tombol kirim

6. Terakhir, coba cek di Spreadsheet apakah datanya telah berhasil disimpan atau tidak





Tidak ada komentar:

Posting Komentar

PBKK - FP - Cloud Based Data Search with Google Apps Script

Nama : Richie Seputro, Andhika Lingga Mariano, Frederick Yonatan Susanto NRP : 5025211213, 5025211161, 5025211121 Kelompok: 22 Kelas : Pemro...