Langsung ke konten utama

Seri 6: Mengelola File dan Folder di Google Drive Secara Otomatis

Pada seri sebelumnya, kita telah belajar mengirim email otomatis dengan template dinamis, pada  seri ini kita akan belajar:

  • Mengakses dan menelusuri file di Google Drive.

  • Membuat, menyalin, dan memindahkan file/folder.

  • Menghapus file lama secara otomatis.

  • Menggabungkannya dengan trigger waktu untuk backup rutin.


⚙️ 1. Pengenalan DriveApp

Google Apps Script menyediakan layanan bernama DriveApp untuk berinteraksi dengan file dan folder di Google Drive.
Kita bisa menggunakannya untuk melakukan hampir semua hal yang bisa kita lakukan di antarmuka web Google Drive.

Beberapa metode penting:

  • DriveApp.getFiles() → Ambil semua file.

  • DriveApp.getFolderById(id) → Akses folder berdasarkan ID.

  • DriveApp.createFolder(nama) → Buat folder baru.

  • file.makeCopy() → Salin file.

  • file.moveTo(folder) → Pindahkan file.


📁 2. Membuat Folder Otomatis

Kita mulai dengan hal paling dasar — membuat folder baru di Drive:

function buatFolderBaru() { const folderBaru = DriveApp.createFolder('Backup Mingguan'); Logger.log('Folder dibuat: ' + folderBaru.getName()); }

Setelah dijalankan, folder bernama “Backup Mingguan” akan muncul di Drive kita.


📂 3. Menemukan Folder Berdasarkan Nama

Jika kita ingin mencari folder yang sudah ada:

function cariFolder() { const folders = DriveApp.getFoldersByName('Backup Mingguan'); if (folders.hasNext()) { const folder = folders.next(); Logger.log('Folder ditemukan: ' + folder.getName()); } else { Logger.log('Folder tidak ditemukan.'); } }

💡 getFoldersByName() mengembalikan iterator — artinya bisa ada lebih dari satu folder dengan nama sama, jadi kita perlu hasNext() dan next() untuk mengambilnya.


🧾 4. Menyalin File ke Folder Lain

Misalnya kita ingin menyalin file laporan dari folder utama ke folder backup otomatis.

function salinFileKeBackup() { const fileId = 'ID_FILE_ASLI'; // Ganti dengan ID file nyata const folderBackup = DriveApp.getFoldersByName('Backup Mingguan').next(); const fileAsli = DriveApp.getFileById(fileId); const fileSalinan = fileAsli.makeCopy(`Backup - ${new Date().toISOString()}`, folderBackup); Logger.log(`File berhasil disalin: ${fileSalinan.getName()}`); }

👉 ID file bisa kita ambil dari URL Google Drive:
contohnya

https://drive.google.com/file/d/1abcXYZ123/view?usp=sharing → ID-nya: 1abcXYZ123

Seri 6: Mengelola File dan Folder di Google Drive Secara Otomatis



🗃️ 5. Memindahkan File

Kita juga bisa memindahkan file dari satu folder ke folder lain:

function pindahkanFile() { const file = DriveApp.getFileById('ID_FILE_ASLI'); const folderTujuan = DriveApp.getFoldersByName('Arsip').next(); file.moveTo(folderTujuan); Logger.log('File berhasil dipindahkan ke folder Arsip'); }

⚠️ Catatan:
File yang dipindahkan akan hilang dari folder asal (bukan disalin).


🧹 6. Menghapus File Lama Otomatis

Kita bisa membuat sistem pembersihan otomatis — misalnya menghapus file backup yang lebih tua dari 7 hari.

function hapusFileLama() { const folderBackup = DriveApp.getFoldersByName('Backup Mingguan').next(); const files = folderBackup.getFiles(); const batasWaktu = new Date(); batasWaktu.setDate(batasWaktu.getDate() - 7); while (files.hasNext()) { const file = files.next(); const tanggalBuat = file.getDateCreated(); if (tanggalBuat < batasWaktu) { Logger.log(`Menghapus file lama: ${file.getName()}`); file.setTrashed(true); // Mengirim ke “Trash” } } }

Dengan begini, setiap minggu kita bisa bersihkan backup lama agar Drive tidak penuh.


🕐 7. Otomasi Backup dengan Trigger Waktu

Kita bisa gabungkan semua logika di atas dengan trigger waktu agar berjalan otomatis tiap minggu.

function buatTriggerBackupMingguan() { ScriptApp.newTrigger('salinFileKeBackup') .timeBased() .everyWeeks(1) .onWeekDay(ScriptApp.WeekDay.MONDAY) .atHour(8) .create(); }

Dengan script ini, file kita akan otomatis dibackup ke folder “Backup Mingguan” setiap Senin pagi jam 8.


🧠 8. Tips Praktis

  • Gunakan Logger.log() atau console.log() (jika pakai V8 engine) untuk melihat hasil proses.

  • Jangan lupa periksa kuota Drive — script tidak akan bisa membuat salinan jika penyimpanan penuh.

  • Gunakan file.getUrl() untuk mendapatkan link ke file hasil proses.


Di seri ini kita sudah belajar:

  • Menggunakan DriveApp untuk membuat dan mencari folder.

  • Menyalin dan memindahkan file antar folder.

  • Menghapus file lama secara otomatis.

  • Menjadwalkan backup mingguan dengan trigger waktu.

Dengan kemampuan ini, kita bisa membuat sistem backup, arsip, dan manajemen dokumen otomatis yang sepenuhnya berjalan di cloud.


🔜 Seri Selanjutnya

➡️ Seri 7: Membuat Add-on Sederhana untuk Google Sheets

Kita akan belajar bagaimana membuat menu khusus di Google Sheets, lalu menambahkan tombol atau fungsi yang bisa dipakai langsung oleh pengguna — seolah kita membuat aplikasi mini di dalam Spreadsheet.

Komentar

Postingan populer dari blog ini

Cara Efektif Menggunakan StringGrid

StringGrid merupakan salah satu VCL yang sangat berguna. Jika anda sudah familiar dengan Webbased Application, anda bisa analogikan StringGrid dengan Table. Table digunakan untuk meenampilkan data. Adapun StringGrid, selain sebagai komponen untuk menampilkan data, dia juga juga bisa sebagai tempat untuk memasukkan data, lihat gambar di bawah ini : Pada gambar di atas, saya menampilkan form jurnal umum sebagai contoh penggunaan StringGrid. Pada contoh di atas, stringgrid dipakai untuk memasukkan data item jurnal berupa Kode dan nama perkiraan, status Debet/Kredit dan Nominal. Untuk memanfaatkan Stringgrid saya mempunyai beberapa konstanta yang mencerminkan nomor urut kolom, misalnya _KolKode merujuk pada kolom Kode Perkiraan, _KolNama merujuk pada kolom Nama. Lebih jelasnya lihat baris kode berikut : Const _KolKode : Integer = 0; _KolNama : Integer = 1; _KolDK : Integer = 2; _KolNominal : Integer = 3; Konstanta-konstanta tersebut saya pakai di beberapa tempat. Diantaran...

Object Oriented Programming (OOP) Pada Delphi - Bag 1

Object Pascal, adalah sebuah bahasa dimana delphi menjadi salah satu IDE (Integrated Development Environment) nya, adalah sebuah bahasa yang mendukung penuh konsep OOP. Sederhananya, bahasa ini memungkinkan bagi programmer untuk membuat dan memanipulasi object. Lebih detailnya, bahasa ini mendukung empat prinsip pokok OOP yaitu : Data Abstraction, Encapsulation, Inheritance, Polymorphism. Mempelajari OOP berbeda dengan mempelajari Delphi. Apalagi bagi seorang yang sudah mengenal bahasa Pascal. Bisa jadi ada orang yang sangat mahir delphi/pascal namun sangat lemah pada konsep OOP. Apa itu OOP? Apa Itu Object? Apa Itu Kelas? OOP adalah semua hal yang berkaitan dengan writing programs that manipulate objects : ). Delphi, Java, C++ adalah beberapa contoh bahasa yang mendukung OOP. Ketiga bahasa di atas mempunyai prinsip-prinsip OOP yang sama, tentunya dengan sintaks (penulisan baris kode program) yang berbeda. Sekali kita sudah menguasai konsep OOP, maka akan begitu mudah mempelaja...

Menambahkan Function Pada Fast Report

Fast report merupakan salah satu reporting tool yang banyak dipakai oleh para developer delphi. Fast Reprt menyediakan built-in function yang sangat memudahkan kita dalam membuat sebuah laporan. Namun adakalanya kita membutuhkan function/procedure yang tidak ada pada built-in function bawaan fast report. Oleh karena itu kita harus menambahkan sendiri. Untuk menambahkan function pada fast report kita perlu membuat kelas yang diturunkan dari TfsRTTIModule. Lebih jelasnya lihat baris kode berikut ini : unit uTSFastReportFunction; interface uses SysUtils, Classes, fs_iinterpreter, Forms; type TTSFastReportFunction = class(TfsRTTIModule) private function CallMethod(Instance: TObject; ClassType: TClass; const MethodName: String; var Params: Variant): Variant; public constructor Create(AScript: TfsScript); override; function Quot(AString : String): String; end; const _Kategori : string = 'My Functions'...