Triggers: Time-Driven & Event-Based
SeriLevel 4 — Integrasi & Trigger1 / 4

Triggers: Time-Driven & Event-Based

Jalankan script otomatis berdasar waktu (time-driven) atau kejadian (onEdit, onSubmit) di Google Apps Script.

Trigger#

Trigger menjalankan fungsi tanpa klik manual. Dua jenis: berbasis waktu dan berbasis kejadian.

Time-Driven (Berbasis Waktu)#

Jalankan fungsi tiap interval tertentu.

Example:

function pasangJadwal() {
ScriptApp.newTrigger('kirimLaporan')
.timeBased()
.everyDays(1)
.atHour(7)
.create();
}
MethodDeskripsi
everyDays(n)Tiap n hari
everyHours(n)Tiap n jam
everyMinutes(n)Tiap n menit
atHour(h)Jam tertentu (0–23)
onWeekDay(ScriptApp.WeekDay.MONDAY)Hari tertentu

Event-Based (Berbasis Kejadian)#

Jalankan fungsi saat data berubah atau form dikirim.

Example:

function pasangOnEdit() {
ScriptApp.newTrigger('saatEdit')
.forSpreadsheet(SpreadsheetApp.getActive())
.onEdit()
.create();
}
function saatEdit(e) {
const sheet = e.range.getSheet();
const baris = e.range.getRow();
const nilaiBaru = e.value;
sheet.getRange(baris, 6).setValue('Diubah: ' + new Date());
}

Example (form submit):

function pasangOnSubmit() {
ScriptApp.newTrigger('saatSubmit')
.forSpreadsheet(SpreadsheetApp.getActive())
.onFormSubmit()
.create();
}

Membaca Event Object#

PropertiIsi
e.rangeCell yang berubah
e.valueNilai baru
e.sourceSpreadsheet aktif
e.valuesSemua jawaban (onFormSubmit)

Membersihkan Trigger#

Example:

function hapusSemuaTrigger() {
ScriptApp.getProjectTriggers().forEach((t) => ScriptApp.deleteTrigger(t));
}

Warning

Banyak trigger yang sama menumpuk jika pasang* dijalankan berulang. Cek getProjectTriggers() dulu atau jalankan sekali.

Next#

Pelajari Web App & UI Custom.

Lisensi

CC BY-NC-SA 4.0 Karya ini dilisensikan di bawah Lisensi Creative Commons Atribusi-NonKomersial-BerbagiSerupa 4.0 Internasional.

Tulisan Terkait

Butuh jasa automatisasi atau custom Apps Script?

Jangan ragu untuk berkonsultasi. Kami bantu bangun solusi sesuai kebutuhan Anda.

Konsultasi sekarang →