trigger tugas rumah

 



Detail Fungsi

Tampilan ini adalah bagian dari HeidiSQL (terlihat di judul jendela), sebuah klien untuk basis data MySQL/MariaDB, PostgreSQL, dan SQL Server. Fungsi-fungsi yang ditampilkan meliputi:

1. Melihat dan Mengubah Struktur Tabel

Tampilan utama menunjukkan struktur (skema) dari tabel barang di dalam database trigger_tugas_rumah (terlihat di sidebar dan tab).

  • Kolom (Columns): Anda dapat melihat detail dari setiap kolom dalam tabel:

    • id_barang: Tipe data INT, Panjang 10, Primary Key (ditunjukkan oleh ikon kunci kuning), dan memiliki properti AUTO_INCREMENT (akan otomatis bertambah saat data baru dimasukkan).

    • nama_barang: Tipe data VARCHAR, Panjang 45.

    • stok: Tipe data INT, Panjang 10.

    • harga: Tipe data INT, Panjang 10.

  • Mengubah: Anda dapat menambah (Add), menyunting (Edit), menghapus (Drop), dan memindahkan urutan (Up/Down) kolom-kolom ini.

  • Properti: Dapat dilihat dan diubah properti seperti Allow Null (apakah kolom boleh kosong), Default (nilai default jika tidak diisi), dan Collation (aturan perbandingan karakter).

2. Mengelola Objek Database Lain

Di panel kiri (Sidebar), Anda dapat melihat dan mengelola objek lain dalam database trigger_tugas_rumah, termasuk:

  • Tabel: Seperti barang, pembelian, penjualan, tugas_rumah_besar, dll.

  • Trigger: Ada 12 objek trigger yang terdaftar, dan di bawah tabel barang terdapat trigger-trigger seperti trg_delete, trg_insert, trg_pembelian, dll. Trigger adalah kode SQL yang otomatis dieksekusi sebelum atau sesudah operasi INSERT, UPDATE, atau DELETE pada tabel.

3. Melihat dan Menjalankan Kode SQL

Di bagian bawah terdapat panel untuk Help, Discard, dan Save. Di bawahnya, terlihat log SQL (baris 662-665) yang menunjukkan perintah-perintah CREATE TRIGGER terakhir yang dieksekusi. Ini mengindikasikan fungsi untuk menjalankan query SQL (terlihat juga tab Query di atas).

Secara ringkas, tampilan ini berfungsi sebagai antarmuka grafis (GUI) untuk administrasi dan pengembangan database, memfokuskan pada pengaturan struktur tabel dan pengelolaan trigger.







Detail Fungsi dari Trigger trg_delete

Trigger adalah sebuah blok kode SQL yang secara otomatis dijalankan (dipicu) oleh sistem manajemen database (DBMS) sebagai respons terhadap peristiwa tertentu, seperti operasi INSERT, UPDATE, atau DELETE pada sebuah tabel.

1. Definisi Trigger

  • Nama Trigger (Name): trg_delete

  • Aplikasi pada Tabel (On table): pembelian

    • Artinya: Trigger ini akan aktif ketika terjadi perubahan pada tabel pembelian.

  • Waktu Pemicuan (Event): BEFORE DELETE

    • Artinya: Trigger ini akan dieksekusi sebelum sebuah baris data dihapus dari tabel pembelian.

2. Tujuan dan Aksi (Trigger Statement)

Tujuan utama dari trigger ini adalah untuk mencatat (logging) setiap kali ada data yang akan dihapus dari tabel pembelian.

Kode SQL dalam Trigger:

SQL
BEGIN
    INSERT INTO log_pembelian (id_pembelian, operasi, waktu)
    VALUES (OLD.id_pembelian, 'Delete', NOW());
END
  • Aksi: Trigger ini melakukan perintah INSERT INTO log_pembelian ....

    • Ini berarti ia memasukkan baris data baru ke dalam tabel yang bernama log_pembelian.

  • Data yang Disimpan:

    • OLD.id_pembelian: Mengambil nilai id_pembelian dari baris yang akan dihapus (OLD merujuk pada data sebelum operasi DELETE).

    • 'Delete': Memberi label operasi ini sebagai 'Delete'.

    • NOW(): Menyimpan waktu saat operasi penghapusan terjadi.

Kesimpulan

Fungsi utama dari trg_delete ini adalah untuk mengimplementasikan audit trail (jejak audit) atau mekanisme logging. Setiap kali sebuah data pembelian dihapus, trigger ini memastikan bahwa informasi tentang penghapusan tersebut (ID pembelian, jenis operasi, dan waktu) dicatat secara otomatis di tabel log_pembelian sebelum data asli hilang.






Detail Fungsi dari Trigger trg_insert

Sama seperti trigger sebelumnya, ini adalah kode SQL yang akan dijalankan secara otomatis oleh sistem database (MySQL/HeidiSQL) sebagai respons terhadap sebuah peristiwa.

1. Definisi Trigger

  • Nama Trigger (Name): trg_insert

  • Aplikasi pada Tabel (On table): pembelian

    • Artinya: Trigger ini akan aktif ketika terjadi perubahan pada tabel pembelian.

  • Waktu Pemicuan (Event): AFTER INSERT

    • Artinya: Trigger ini akan dieksekusi setelah sebuah baris data baru berhasil dimasukkan (INSERT) ke dalam tabel pembelian.

2. Tujuan dan Aksi (Trigger Statement)

Tujuan utama dari trigger ini adalah untuk mencatat (logging) setiap kali ada data baru yang berhasil dimasukkan ke tabel pembelian.

Kode SQL dalam Trigger:

SQL
BEGIN
    INSERT INTO log_pembelian (id_pembelian, operasi, waktu)
    VALUES (NEW.id_pembelian, 'Insert', NOW());
END
  • Aksi: Trigger ini melakukan perintah INSERT INTO log_pembelian ....

    • Ini berarti ia memasukkan baris data baru ke dalam tabel yang bernama log_pembelian.

  • Data yang Disimpan:

    • NEW.id_pembelian: Mengambil nilai id_pembelian dari baris data yang baru dimasukkan (NEW merujuk pada data setelah operasi INSERT).

    • 'Insert': Memberi label operasi ini sebagai 'Insert'.

    • NOW(): Menyimpan waktu saat operasi penyisipan data terjadi.

Kesimpulan

Fungsi utama dari trg_insert ini adalah untuk mengimplementasikan audit trail (jejak audit) atau mekanisme logging. Setiap kali sebuah data pembelian baru ditambahkan, trigger ini secara otomatis mencatat informasi tentang penambahan tersebut (ID pembelian, jenis operasi, dan waktu) ke dalam tabel log_pembelian.

(Bandingkan dengan trg_delete yang mencatat operasi DELETE. Kedua trigger ini bekerja bersama untuk mencatat setiap aktivitas INSERT dan DELETE pada tabel pembelian.)





Detail Fungsi Tabel log_pembelian

Tabel log_pembelian berfungsi sebagai tabel logging (pencatatan). Tujuan eksistensinya adalah untuk menyimpan riwayat atau jejak audit dari operasi yang terjadi pada tabel lain, yaitu tabel pembelian.

Trigger-trigger seperti trg_insert dan trg_delete yang dibahas sebelumnya secara otomatis memasukkan data ke dalam tabel ini setiap kali terjadi penambahan atau penghapusan data di tabel pembelian.

1. Struktur Kolom (Columns)

Anda dapat melihat detail dari setiap kolom yang menyusun tabel log ini:

Nama KolomTipe DataKeterangan/Fungsi
waktuDATETIMEMencatat kapan operasi (misalnya, insert atau delete) itu terjadi.
id_pembelianINTMencatat ID dari baris data di tabel pembelian yang terpengaruh oleh operasi tersebut.
operasiVARCHARMencatat jenis operasi yang terjadi (misalnya, akan berisi nilai 'Insert', 'Delete', atau 'Update').

2. Mekanisme Audit Trail

Tabel ini adalah inti dari sistem Audit Trail (jejak audit). Fungsinya adalah:

  • Pencatatan Sejarah: Menyimpan catatan permanen tentang perubahan data, yang berguna untuk penelusuran jika terjadi kesalahan atau manipulasi data.

  • Akuntabilitas: Menyediakan bukti siapa (jika kolom user ditambahkan) dan kapan perubahan penting pada data pembelian dilakukan.

  • Pemulihan: Dapat membantu menganalisis urutan kejadian jika data perlu dipulihkan atau dikoreksi.

Dengan kata lain, tabel log_pembelian berfungsi sebagai buku harian otomatis yang mencatat semua aktivitas penting yang terjadi pada data transaksi pembelian.






Detail Fungsi dari Trigger trg_update

Trigger ini dirancang untuk mencatat aktivitas pembaruan data (Update) pada tabel database.

1. Definisi Trigger

  • Nama Trigger (Name): trg_update

  • Aplikasi pada Tabel (On table): pembelian

    • Trigger ini akan aktif ketika terjadi perubahan pada tabel pembelian.

  • Waktu Pemicuan (Event): AFTER UPDATE

    • Trigger ini akan dieksekusi setelah satu atau lebih baris data berhasil diperbarui (UPDATE) di tabel pembelian.

2. Tujuan dan Aksi (Trigger Statement)

Tujuan utama dari trigger ini adalah untuk mencatat (logging) setiap kali ada data yang diperbarui di tabel pembelian.

Kode SQL dalam Trigger:

SQL
BEGIN
    INSERT INTO log_pembelian (id_pembelian, operasi, waktu)
    VALUES (OLD.id_pembelian, 'Update', NOW());
END
  • Aksi: Trigger ini memasukkan baris data baru ke dalam tabel log_pembelian.

  • Data yang Disimpan:

    • OLD.id_pembelian: Mengambil nilai id_pembelian dari baris data sebelum pembaruan terjadi (OLD merujuk pada data sebelum operasi UPDATE). Ini digunakan untuk mengidentifikasi catatan yang diperbarui.

    • 'Update': Memberi label operasi ini sebagai 'Update'.

    • NOW(): Menyimpan waktu saat operasi pembaruan data berhasil diselesaikan.

Kesimpulan

Fungsi utama dari trg_update ini adalah untuk melengkapi sistem Audit Trail (jejak audit). Bersama dengan trg_insert dan trg_delete, trigger ini memastikan bahwa setiap pembaruan data pada tabel pembelian secara otomatis dicatat (di-log) ke dalam tabel log_pembelian, termasuk ID baris yang diubah, jenis operasi (Update), dan waktu kejadian.





Detail Fungsi dari Trigger nama_barang

Trigger ini dirancang untuk melakukan validasi atau manipulasi data pada kolom tertentu sebelum data baru dimasukkan ke dalam tabel.

1. Definisi Trigger

  • Nama Trigger (Name): nama_barang

  • Aplikasi pada Tabel (On table): pembelian

    • Trigger ini akan aktif ketika terjadi perubahan pada tabel pembelian.

  • Waktu Pemicuan (Event): BEFORE INSERT

    • Trigger ini akan dieksekusi sebelum sebuah baris data baru dimasukkan (INSERT) ke dalam tabel pembelian.

2. Tujuan dan Aksi (Trigger Statement)

Tujuan utama dari trigger ini adalah untuk memastikan nama barang yang di-input ke tabel pembelian sudah sesuai dengan data yang ada di tabel barang (atau setidaknya, melakukan pengecekan terkait nama barang).

Kode SQL dalam Trigger:

Trigger ini mendeklarasikan variabel sementara dan kemudian menjalankan query SELECT untuk mengambil data:

SQL
1  BEGIN
2      DECLARE nama_barang_temp VARCHAR(100);
3      SELECT nama_barang INTO nama_barang_temp
4      FROM barang
5      WHERE id_barang = NEW.id_barang;
6      SET NEW.nama_barang = nama_barang_temp;
7  END
  • Baris 2: Mendeklarasikan variabel lokal nama_barang_temp.

  • Baris 3-5: Melakukan query SELECT pada tabel barang. Tujuannya adalah untuk mengambil nama_barang dari tabel barang yang memiliki id_barang yang sama dengan data baru yang akan dimasukkan (NEW.id_barang) ke tabel pembelian. Hasilnya disimpan di variabel nama_barang_temp.

  • Baris 6: Mengatur nilai kolom nama_barang pada baris yang akan dimasukkan (NEW.nama_barang) agar sama dengan nilai yang diambil dari tabel barang (nama_barang_temp).

Kesimpulan

Fungsi utama dari trigger nama_barang adalah untuk melakukan data lookup dan enforcement. Trigger ini secara otomatis mengambil nama barang yang benar dari tabel barang (berdasarkan id_barang yang di-input di tabel pembelian) dan menimpa (mengganti) nilai nama_barang yang mungkin dimasukkan di tabel pembelian dengan nilai yang valid dari tabel barang. Ini memastikan konsistensi data antara dua tabel tersebut.































Komentar

Postingan populer dari blog ini

DFD (Data Flow Diagram)

NORMALISASI DATABASE