2025-10-01
admin

Cara Backup Spreadsheet Otomatis ke Google Drive dengan Apps Script

Amankan data spreadsheet Anda! Tutorial lengkap membuat backup otomatis ke Google Drive dan mengirimkannya via email menggunakan Google Apps Script. Cegah kehilangan data akibat human error!
Cara Backup Spreadsheet Otomatis ke Google Drive dengan Apps Script
  1. 1. Buka Google Apps Script
  2. 2. Masukkan Kode Script
  3. 3. Simpan Script
  4. 4. Jalankan Fungsi createTrigger

 

Berikut adalah langkah-langkah untuk membuat script Google Apps Script yang berfungsi untuk membackup spreadsheet ke folder tertentu di Google Drive setiap hari pada jam tertentu, dan mengirimkan file backup dalam format XLSX yang dikompres ke ZIP melalui email. Teknik backup ini memberikan solusi jika terjadi sesuatu yang tidak diinginkan atau human error pada tim kita.

1. Buka Google Apps Script

  • Buka Google Drive Anda.
  • Klik tombol "New" -> "More" -> "Google Apps Script".

2. Masukkan Kode Script

Salin dan tempel kode berikut ke dalam editor Google Apps Script:

function backupSpreadsheet() {
 // ID Spreadsheet yang ingin di-backup
 var spreadsheetId = "<ID SPREADSHEET>"; // Ganti dengan ID Spreadsheet Anda
 var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
  
 // Buat salinan spreadsheet
 var currentDate = new Date();
 var formattedDate = Utilities.formatDate(currentDate, Session.getScriptTimeZone(), "yyyy-MM-dd_HH-mm-ss");
 var copyTitle = spreadsheet.getName() + " Backup " + formattedDate;
 var copy = spreadsheet.copy(copyTitle);
  
 // ID Folder Google Drive tempat menyimpan salinan
 var folderId = "<ID FOLDER>"; // Ganti dengan ID Folder Google Drive Anda
 var folder = DriveApp.getFolderById(folderId);
 var copiedFile = DriveApp.getFileById(copy.getId());
 folder.addFile(copiedFile);
  
 // Hapus salinan dari root folder
 DriveApp.getRootFolder().removeFile(copiedFile);
  
 // Konversi file ke format XLSX
 var xlsxBlob = convertToXlsx(copy.getId(), formattedDate);
  
 // Kompres file XLSX ke dalam file ZIP
 var zipBlob = Utilities.zip([xlsxBlob], "backup_" + formattedDate + ".zip");

 // Kirim salinan melalui email sebagai lampiran ZIP
 var emailAddress = "<EMAIL TUJUAN>"; // Ganti dengan alamat email yang diinginkan
 var currentDateTime = new Date();
 var emailSubject = "Salinan Spreadsheet - " + Utilities.formatDate(currentDateTime, Session.getScriptTimeZone(), "yyyy-MM-dd HH:mm:ss");
 var emailBody = "Halo,\n\nBerikut adalah Backup spreadsheet master 2018 dalam format ZIP: \n\nSalam,\nTim Classy Indonesia";

 try {
  MailApp.sendEmail({
   to: emailAddress,
   name: 'BACKUP DATA',
   subject: emailSubject,
   body: emailBody,
   attachments: [zipBlob]
  });
 } catch (e) {
  Logger.log("Gagal mengirim email: " + e.message);
 }
  
 // Hapus salinan spreadsheet
 DriveApp.getFileById(copy.getId()).setTrashed(true);
}

function convertToXlsx(fileId, formattedDate) {
 var url = "https://docs.google.com/spreadsheets/d/" + fileId + "/export?format=xlsx";
 var token = ScriptApp.getOAuthToken();
 var response = UrlFetchApp.fetch(url, {
  headers: {
   Authorization: "Bearer " + token
  }
 });
 return response.getBlob().setName("backup_" + formattedDate + ".xlsx");
}

function createTrigger() {
 // Hapus semua trigger sebelumnya
 var triggers = ScriptApp.getProjectTriggers();
 for (var i = 0; i < triggers.length; i++) {
  ScriptApp.deleteTrigger(triggers[i]);
 }
  
 // Buat trigger baru
 ScriptApp.newTrigger("backupSpreadsheet")
  .timeBased()
  .everyDays(1)
  .atHour(13) // Ganti dengan jam yang diinginkan (0-23)
  .create();
}

Konfigurasi:

  - Ganti `spreadsheetId` dengan ID Spreadsheet yang ingin Anda backup.

  - Ganti `folderId` dengan ID folder Google Drive tempat Anda ingin menyimpan backup.

  - Ganti `emailAddress` dengan alamat email yang akan menerima backup.

3. Simpan Script

  • Klik "File" -> "Save".
  • Beri nama proyek Anda, misalnya "Backup Spreadsheet".

4. Jalankan Fungsi createTrigger

  • Di editor, pilih fungsi createTrigger dari dropdown dan klik tombol "Run".
  • Berikan izin yang diperlukan untuk skrip tersebut.


Screenshoot File spreadsshet disalin ke folder khusus





Screenshoot outbox pengiriman email




blog admin

Artikel Terkait