Definisi Trigger dan Cara bekerjanya

 Trigger

Apa itu Trigger dalam Database?

Trigger adalah sebuah alat otomatis dalam database yang "terpicu" atau dijalankan setiap kali ada perubahan data tertentu. Jadi, jika kamu melakukan INSERT, UPDATE, atau DELETE pada tabel, trigger bisa langsung dijalankan untuk melakukan tugas lain secara otomatis, seperti memvalidasi data atau mengupdate tabel lain.

Bagaimana Trigger Bekerja?

  1. Pemicu (Event): Ini adalah peristiwa yang memicu trigger untuk dijalankan. Misalnya, INSERT berarti trigger akan dijalankan ketika ada data yang ditambahkan ke tabel.

  2. Waktu Eksekusi: Trigger bisa dijalankan sebelum perubahan terjadi (BEFORE) atau setelah perubahan terjadi (AFTER).

  3. Logika dalam Trigger: Setelah pemicu terjadi, trigger akan menjalankan beberapa logika, seperti memeriksa data, mengupdate kolom lain, atau mencatat perubahan ke tabel audit.

  4. Referensi Data: Trigger bisa mengakses data yang diubah dengan menggunakan NEW (untuk data yang baru) dan OLD (untuk data yang lama).

Contoh Sederhana

Bayangkan kamu memiliki tabel stok_barang, dan kamu ingin secara otomatis mengurangi jumlah stok barang ketika ada penjualan. Setiap kali data penjualan dimasukkan ke dalam tabel penjualan, kita ingin mengurangi stok barang yang terjual.

Tabel Stok Barang:

CREATE TABLE stok_barang (
    id INT PRIMARY KEY,
    nama VARCHAR(100),
    jumlah INT
);

Tabel Penjualan:

CREATE TABLE penjualan (
    id INT PRIMARY KEY,
    id_barang INT,
    jumlah_terjual INT,
    tanggal DATE
);

Trigger untuk Mengurangi Stok Otomatis:

Kita akan membuat trigger yang berjalan setelah data dimasukkan ke tabel penjualan. Trigger ini akan mengurangi jumlah barang yang terjual di tabel stok_barang.

DELIMITER $$

CREATE TRIGGER after_penjualan
AFTER INSERT ON penjualan
FOR EACH ROW
BEGIN
    -- Kurangi stok barang sesuai jumlah yang terjual
    UPDATE stok_barang
    SET jumlah = jumlah - NEW.jumlah_terjual
    WHERE id = NEW.id_barang;
END $$

DELIMITER ;

Penjelasan Kode:

  • AFTER INSERT ON penjualan: Trigger ini dijalankan setelah ada data yang dimasukkan ke tabel penjualan.

  • NEW.jumlah_terjual: Ini adalah data dari baris yang baru saja dimasukkan ke tabel penjualan. NEW digunakan untuk mengakses data yang baru.

  • UPDATE stok_barang: Setelah penjualan dilakukan, trigger ini mengurangi jumlah stok barang di tabel stok_barang sesuai dengan jumlah yang terjual.

Apa yang Terjadi Ketika Penjualan Ditambahkan?

Misalkan ada data penjualan baru:

INSERT INTO penjualan (id_barang, jumlah_terjual, tanggal)
VALUES (1, 3, '2025-09-18');
  • Data penjualan ini akan memicu trigger.

  • Trigger akan mengurangi stok barang dengan id = 1 sebanyak 3 unit.

Kapan Menggunakan Trigger?

Trigger sangat berguna jika kamu ingin melakukan hal-hal seperti:

  1. Mencatat riwayat perubahan: Misalnya, mencatat perubahan pada tabel produk ke tabel audit.

  2. Validasi otomatis: Menjamin data yang dimasukkan sesuai dengan aturan tertentu.

  3. Pemeliharaan data: Menjaga konsistensi data antar tabel, seperti mengupdate stok saat terjadi penjualan.

Jenis-Jenis Trigger yang Ada :

  1. Trigger AFTER (AFTER Trigger):
    Trigger jenis ini akan dieksekusi setelah operasi (INSERT, UPDATE, DELETE) berhasil dilakukan pada tabel. Misalnya, jika ingin melakukan sesuatu setelah data berhasil dimasukkan ke dalam tabel, seperti memperbarui tabel lain atau membuat log.

    Contoh: Mengupdate data lain setelah ada perubahan di tabel utama.

  2. Trigger BEFORE (BEFORE Trigger):
    Trigger jenis ini dieksekusi sebelum operasi tertentu terjadi pada tabel. Biasanya, trigger ini digunakan untuk memvalidasi data atau melakukan pengecekan terhadap data yang akan dimasukkan, diubah, atau dihapus.

    Contoh: Memvalidasi data yang akan dimasukkan ke dalam tabel agar memenuhi syarat tertentu.

  3. Trigger INSTEAD OF (INSTEAD OF Trigger):
    Trigger ini mengabaikan operasi yang diminta (INSERT, UPDATE, DELETE) dan menggantinya dengan eksekusi trigger itu sendiri. Biasanya digunakan dalam view atau materialized view.

    Contoh: Jika kita ingin mengganti tindakan INSERT dengan memasukkan data ke dua tabel berbeda secara bersamaan.

Komponen yang Ada dalam Trigger

Trigger biasanya terdiri dari beberapa komponen:

  • Event: Peristiwa yang memicu trigger, seperti INSERT, UPDATE, atau DELETE.

  • Timing: Menentukan kapan trigger akan dijalankan, apakah sebelum atau sesudah peristiwa.

  • Action: Kode SQL yang akan dijalankan setelah trigger dipicu, seperti UPDATE atau INSERT ke tabel lain.


https://www.nesabamedia.com/pengertian-trigger/
chatgpt.com : penjelasan-trigger/

0 komentar:

Posting Komentar