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