DATABASE TRIGGER DENGAN MYSQL

TUGAS

DATABASE TRIGGER DENGAN MYSQL

 

 

clip_image002

 

 

 

Oleh:

Junaidi (1410320026)

Gladys Alisa Suciani (1410320028)

Lala Bella Savira (1300330015)

 

 

 

 

PROGRAM STUDI D3 TEKNIK INFORMATIKA

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER

MATARAM

2016

 

 

 

A. PENGERTIAN TRIGGER

Trigger jika diartikan secara bahasa sederhana yaitu suatu pemicu, jika secara istilah trigger merupakan prosedur yang berhubungan dengan table, view, skema atau database yang dijalankan secara implicit pada saat terjadi sebuah event. Trigger diaktifkan berdasarkan waktu yang diinginkan trigger itu bekerja yang biasa disebut dengan Trigger Timing.

Trigger Timing memiliki 3 timing atau waktu pengaktifan trigger, yaitu:

  1. BEFORE: Trigger dijalankan sebelum DML event pada tabel.
  2. AFTER: Trigger dijalankan setelah DML event pada tabel.
  3. INSTEAD OF : Trigger dijalankan pada sebuah view.

Sedangkan untuk Trigger itu sendiri memiliki 3 event yaitu:

  1. INSERT : berfungsi untuk memasukkan/menginput data ke dalam tabel, fungsi insert disini jika tabel pertama diinput data yang diinginkan, maka secara auto data tersebut akan masuk/merubah ke tabel kedua.
  2. UPDATE: pada trigger berfungsi sebagai mana Edit, jika data pada tabel pertama diupdate makan akan secara otomatis tabel kedua juga akan terupdate sesuai dengan data yang diupdate.
  3. DELETE: Sama seperti perintah trigger sebelumnya, Delete berfungsi menghapus data pada tabel, dan jika tabel pertama dihapus makan pada tabel kedua juga akan secara automatis mengubah data yang di delete.

Hasil penulisan dari sebuah Trigger akan menimbulkan efek manipulasi database secara otomatis sesuai dengan yang kita inginkan. Misalnya, setelah insert pada tabel_a dan kolom a1 maka akan otomatis insert pada tabel_b pada kolom b1. Begitu pula untuk aksi update dan delete.

B. MENGGUNAAN TRIGGER

1. Pembuatan Trigger

Pernyataan CREATE TRIGGER digunakan untuk membuat trigger, termasuk aksi apa yang dilakukan saat trigger diaktifkan.

Sintak:

CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt

Keterangan :

· [DEFINER = { user | CURRENT_USER }]: Definisi user yang sedang aktif, sifatnya opsional.

· trigger_name: Nama trigger.

· trigger_time: waktu menjalankan trigger. Ini dapat berupa BEFORE atau AFTER.

· trigger_event: berupa kejadian yang akan dijalankan trigger.

· tbl_name: Nama tabel yang berasosiasi dengan trigger.

· trigger_stmt: Statemen (tunggal atau jamak) yang akan dijalankan ketika trigger aktif.

Sebagai contoh kasus penggunaan trigger adalah mencatat kejadian-kejadian yang terjadi beserta waktunya pada tabel mahasiswa, dan catatan-catatan tadi disimpan dalam tabel yang lain, misal log_mahasiswa. Misalkan struktur tabel log_mahasiswa adalah sebagai berikut.

clip_image003

clip_image004

Contoh 1:

Isi record sebelumnya pada tabel tbl_mahasiswa dan log_mahasiswa sebagai berikut:

clip_image006

clip_image007

Kemudian buat trigger dengan nama ins_mhs yang akan melakukan event insert secara otomatis ke tabel log_mahasiswa ketika kita melakukan event insert pada tabel tbl_mahasiswa.

clip_image009

Lakukan insert ke tabel tbl_mahasiswa

clip_image011

Untuk melihat hasilnya tampilkan tabel log_mahasiswa

clip_image012

Dari contoh diatas dapat dilihat bahwa ketika satu record pada tabel tbl_mahasiswa disisipkan (insert), maka secara otomatis tabel log_mahasiswa akan disisipkan satu record, yaitu kejadian ‘Tambah data’ dan waktu saat record pada tabel mahasiswa disisipkan.

Contoh 2:

Membuat trigger dengan nama update_mhs yang akan melakukan event insert secara otomatis ke tabel log_mahasiswa ketika kita melakukan event update pada tabel tbl_mahasiswa.

clip_image014

Lakukan update pada tabel tbl_mahasiswa

clip_image015

Untuk melihat hasilnya tampilkan tabel log_mahasiswa

clip_image016

Dari contoh diatas dapat dilihat bahwa ketika satu record pada tabel tbl_mahasiswa diperbaharui (update), maka secara otomatis tabel log_mahasiswa akan disisipkan satu record, yaitu kejadian ‘Ubah Data’ dan waktu saat record pada tabel tbl_mahasiswa diperbaharui.

2. Keyword OLD dan NEW

Untuk merujuk ke kolom-kolom tabel yang diasosiasikan dengan trigger, kita menggunakan keyword OLD dan NEW. Keyword OLD mengacu pada nilai lama, sedangkan NEW merepresentasikan nilai baru. Di trigger INSERT, kita hanya dapat menggunakan keyword NEW karena tidak ada data lama.

Contoh berikut memperlihatkan penggunaan keyword NEW pada trigger INSERT.

clip_image018

Isi record sebelumnya pada tabel tbl_barang.

clip_image019

Melakukan operasi Insert pada tabel tbl_pembelian.

clip_image020

Perubahan isi record pada tabel tbl_barang setelah dilakukan insert pada tabel tbl_pembelian.

clip_image021

Dari contoh di atas dapat dilihat bahwa ketika insert pada tabel tbl_pembelian dengan kode barang B002 (Teh Pucuk) dengan jumlah beli 3 buah, maka pada tabel tbl_barang yang mula-mulanya stok pada barang dengan kode B002 adalah 67 sekarang stoknya menjadi 70 setelah ditambah dengan jumlah beli pada tabel tbl_pembelian.

Untuk kasus trigger DELETE, keyword yang bisa digunakan hanya OLD. Misalkan kita ingin mendefinisikan trigger untuk menghapus semua data pembelian manakala data barang yang sesuai diindikasikan melalui primary key dan foreign key dihapus.

clip_image023

Isi record sebelumnya pada tabel tbl_pembelian.

clip_image024

Melakukan operasi DELETE pada tabel tbl_barang

clip_image025

Isi record pada tabel tbl_pembelian setelah dilakukan operasi delete pada tabel tbl_barang.

clip_image026

Dari contoh kasus di atas ketika melakukan operasi delete pada tabel tbl_barang dengan kode barang B001 maka pada tabel tbl_pembelian yang berisi kode barang yang sama dengan kode barang barang yang dihapus pada tabel tbl_barang yakni B001 akan otomatis dihapus juga.

Khusus untuk operasi UPDATE, kita bisa memanfaatkan keyword NEW maupun OLD.

clip_image028

Isi record sebelumnya pada tabel tbl_barang dan tbl_pembelian.

clip_image029

clip_image030

Lakukan operasi UPDATE pada tabel tbl_pembelian

clip_image031

Untuk melihat hasilnya tampilkan lagi tabel tbl_barang

clip_image032

Dari contoh kasus di atas dapat kita lihat setelah pada tabel tbl_pembelian dilakukan operasi UPDATE pada record dengan kode barang B002 yang mula-mulanya jumlah beli dari 3 buah diganti atau di update menjadi 10 buah, maka secara otomatis pada tabel tbl_barang dengan kode barang yang sama yakni B002 juga mengalami update yang mula-mulanya stoknya 70 buah menjadi 77 buah.

3. TRIGGER KOMPLEKS

Keberadaan trigger secara nyata mampu mengatasi berbagai persoalan pelik, misalnya berkaitan dengan integritas atau audit data. Ini tentu sangat masuk akal, karena trigger juga bisa mengandung pernyataan-pernyataan yang kompleks termasuk percabangan, pengulangan, fungsi-fungsi agregat, bahkan kode pemanggilan prosedur.

Sebagai ilustrasi sederhana, kita bisa mendefinisikan trigger untuk memeriksa operasi update pada tabel tbl_barang maka pada tabel status_barang akan mengalami penambahan record yakni ketika stok tabel tbl_barang adalah 0 dan akan dihapus jika tidak stok tidak sama dengan 0.

Buat trigger dengan nama sts_brg.

clip_image034

Isi record sebelumnya pada tabel tbl_barang dan status_barang

clip_image035

clip_image036

Lakukan operasi update pada tabel tbl_barang.

clip_image038

Untuk melihat hasil dari trigger tersebut silahkan tampilkan tabel status_barang.

clip_image039

Kemudian lakukan operasi update kembali dengan kode barang yang sama ubah stoknya menjadi bukan 0 lagi misalnya stoknya menjadi 90.

clip_image041

Kemudian lihat lagi hasilnya dengan menampilkan tabel status_barang

clip_image042

Dari contoh di atas dapat kita lihat bahwa ketika stok pada tabel di update menjadi 0 maka pada tabel status barang akan mengalami operasi insert dan ketika di update lagi menjadi 90 maka recordnya akan dihapus.

Sumber:

· elektro.um.ac.id/wp-content/uploads/2016/05/Modul-6-Trigger.pdf

· ariv.lecturer.pens.ac.id/Database%202/T13%20-%20Database%20Trigger.pdf

· http://pusat-bahasa.info/relo/download/119542039mohriyan-MySQL2.pdf

3 komentar:

  1. I've used AVG security for a couple of years, I would recommend this Anti virus to all of you.

    BalasHapus
Catatan:
Untuk menyisipkan video, gunakan tag <i rel="youtube">URL YOUTUBE ANDA...</i>
Untuk menyisipkan gambar, gunakan tag <i rel="image">URL GAMBAR ANDA...</i>
Untuk menyisipkan kode, gunakan tag <i rel="code">KODE ANDA...</i>
Untuk menyisipkan kode panjang, gunakan tag <i rel="pre">KODE ANDA...</i>
Untuk menyisipkan catatan, gunakan tag <b rel="quote">CATATAN ANDA...</b>
Untuk menciptakan efek tebal gunakan tag <strong>TEKS ANDA...</strong>

NB: Jika ingin menuliskan kode pada komentar harap gunakan Tool untuk mengkonversi kode tersebut agar kode bisa muncul dan jelas atau gunakan tool dibawah "Konversi Kode di Sini!"

Jika ingin menuliskan komentar yang keluar dari topik pada artikel ini silahkan kehalaman OOT (out of topic) dengan menekan tombol OOT di bawah ini.

Konversi Kode di Sini!OOT

 
Design by Juned al~Bughisy Copyright © 2012 ~ 2013 Powered by Blogger
Back to Top