Langsung ke konten utama

Seri 3: Mengotomasi Google Sheets Menggunakan Script

Membaca, Menulis, dan Memformat Data Secara Otomatis


Di dua seri sebelumnya, kita sudah mengenal dasar Google Apps Script (GAS) dan belajar menulis serta menjalankan fungsi sederhana.

Sekarang saatnya kita melangkah lebih jauh — menghubungkan Apps Script langsung dengan data di Google Sheets.

Melalui seri ini, kita akan belajar:

  • Membaca dan menulis data di sel spreadsheet,

  • Menambahkan baris secara otomatis,

  • Membuat format tabel otomatis,

  • Serta membuat fungsi auto timestamp agar setiap perubahan data bisa terekam otomatis.

Dengan memahami ini, kita sudah bisa mengotomatiskan banyak pekerjaan administratif hanya dengan beberapa baris kode.


⚙️ 1. Mengenal Objek SpreadsheetApp dan Sheet

Untuk berinteraksi dengan Google Sheets, Apps Script menyediakan objek utama bernama SpreadsheetApp.

Dari objek ini, kita bisa mengakses dokumen yang sedang aktif, lalu memilih lembar kerja (sheet) di dalamnya.

Contoh dasar:

function contohSpreadsheetApp() { const spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); const sheet = spreadsheet.getActiveSheet(); Logger.log(sheet.getName()); }

Kode di atas akan menampilkan nama sheet aktif di log.
SpreadsheetApp adalah pintu utama, dan sheet adalah halaman tempat kita berinteraksi dengan data.


📖 2. Membaca Data dari Sel dan Range

Kita bisa mengambil data dari sel tertentu menggunakan getRange() dan getValue().

Contoh:

function bacaSatuSel() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const data = sheet.getRange("A1").getValue(); Logger.log("Isi sel A1 adalah: " + data); }

Kalau kita ingin membaca banyak data sekaligus, gunakan getValues():

function bacaBeberapaSel() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const data = sheet.getRange("A1:B5").getValues(); Logger.log(data); }

getValues() akan mengembalikan array dua dimensi, di mana setiap baris adalah array dari nilai di kolom.


✍️ 3. Menulis Data ke Spreadsheet

Untuk menulis data, kita menggunakan fungsi kebalikannya — setValue() dan setValues().

Contoh sederhana:

function tulisData() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); sheet.getRange("A1").setValue("Halo dari Apps Script!"); }

Jika kita ingin menulis banyak nilai sekaligus:

function tulisBeberapaData() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const data = [ ["Nama", "Kota"], ["Bagus", "Yogyakarta"], ["Rina", "Bandung"], ["Dewi", "Jakarta"] ]; sheet.getRange("A1:B4").setValues(data); }

➕ 4. Menambahkan Baris Baru Otomatis

Kita bisa menambahkan data baru ke baris terakhir yang berisi data, menggunakan getLastRow():

function tambahBarisBaru() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const barisBaru = sheet.getLastRow() + 1; sheet.getRange(barisBaru, 1).setValue("Data baru otomatis"); }

Setiap kali fungsi dijalankan, data baru akan ditulis di baris paling bawah, tanpa menimpa data sebelumnya.


🎨 5. Membuat Format Otomatis

Apps Script juga bisa membantu kita mengatur format sel, warna, dan ukuran kolom secara otomatis.

Contoh:

function formatTabel() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const range = sheet.getRange("A1:B1"); range.setFontWeight("bold"); range.setBackground("#f2f2f2"); sheet.autoResizeColumns(1, 2); }

Hasilnya, baris pertama akan diformat dengan huruf tebal, latar belakang abu-abu muda, dan lebar kolom disesuaikan otomatis.


🧮 6. Latihan Mini: Membuat Log Aktivitas Sederhana

Kita buat contoh sederhana yang akan:

  1. Menambahkan baris baru,

  2. Menulis nama dan waktu eksekusi otomatis.

function logAktivitas() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const baris = sheet.getLastRow() + 1; const waktu = new Date(); sheet.getRange(baris, 1).setValue("Aktivitas otomatis"); sheet.getRange(baris, 2).setValue(waktu); }

Setiap kali dijalankan, fungsi ini akan menambahkan log baru di bawah data lama.

Mengotomasi Google Sheets Menggunakan Script

Mengotomasi Google Sheets Menggunakan Script



⏰ 7. Membuat Fungsi Auto Timestamp (Otomatis Saat Diedit)

Kadang kita ingin menambahkan tanggal/waktu otomatis setiap kali isi sel berubah.
Kita bisa membuat fungsi trigger onEdit() untuk itu:

function onEdit(e) { const sheet = e.source.getActiveSheet(); const range = e.range; if (range.getColumn() === 1 && range.getRow() > 1) { sheet.getRange(range.getRow(), 2).setValue(new Date()); } }

Mengotomasi Google Sheets Menggunakan Script


Penjelasan:

  • Fungsi ini berjalan otomatis setiap kali kita mengedit sesuatu di spreadsheet.

  • Jika perubahan terjadi di kolom A, maka kolom B akan diisi dengan waktu edit.

  • Ini sangat berguna untuk membuat log aktivitas, tracking update, atau absensi otomatis.

Mengotomasi Google Sheets Menggunakan Script


Pada seri ini kita sudah belajar banyak hal penting:
  • Mengenal objek SpreadsheetApp dan Sheet,

  • Membaca dan menulis data ke spreadsheet,

  • Menambah baris otomatis,

  • Membuat format otomatis,

  • Dan menambahkan fungsi auto timestamp saat data berubah.

Dengan kemampuan ini, kita sudah bisa membuat berbagai otomatisasi kecil yang mempercepat pekerjaan sehari-hari — mulai dari mencatat transaksi otomatis, log aktivitas, hingga format laporan mingguan.


📅 Seri Selanjutnya:

➡️ Seri 4 — Trigger dan Event Otomatis di Google Apps Script
Kita akan mempelajari cara menjalankan script tanpa harus menekan tombol Run lagi.
Script bisa berjalan otomatis saat waktu tertentu, saat dokumen dibuka, atau saat data diubah — semuanya bisa diatur dengan trigger.

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'...