Modul Praktikum Basis Data 8
Modul Praktikum Basis Data 8
MODUL VIII
TRIGGER
A. TUJUAN
Memahami konsep dasar trigger di dalam basis data.
Memahami implementasi trigger sebagai bentuk respon atas suatu
kejadian.
Mampu menyelesaikan kasus-kasus manipulasi data yang kompleks
B. PETUNJUK
Awali setiap aktivitas dengan doa, semoga berkah dan mendapat kemudahan.
Pahami tujuan, dasar teori, dan latihan-latihan praktikum dengan baik dan benar.
Kerjakan tugas-tugas praktikum dengan baik, sabar, dan jujur.
Tanyakan kepada asisten/dosen apabila ada hal-hal yang kurang jelas.
C. DASAR TEORI
1. Trigger
Trigger dapat didefinisikan sebagai himpunan kode (prosedural) yang
dieksekusi secara otomatis sebagai respon atas suatu kejadian berkaitan
dengan tabel basis data. Kejadian (event) yang dapat membangkitkan
51
2. Trigger MySQL
MySQL mendukung fitur triggertermasuk juga stored procedure dan
viewsejak versi 5.0.2 Sebagaimana objek-objek lainnya, trigger
MySQL tidak mengizinkan multiple trigger dengan waktu aksi dan event
D. LATIHAN
Dalam latihan ini digunakan dua buah tabel bernama barang dan pembelian
nama_brg
Mouse
Keyboard
DVD R-W
stok
20
25
20
Tabel pembelian
id_pem
1
id_brg
A10
jml_beli
5
1. Menggunakan Trigger
Jurusan Teknik Elektro
Fakultas Teknik Universitas Negeri Malang (UM)
52
4. Periksa hasilnya:
mysql> SELECT * FROM barang;
+--------+----------+------+
| id_brg | nama_brg | stok |
+--------+----------+------+
| A10
| Mouse
|
20 |
| A11
| Keyboard |
25 |
| A12
| DVD R-W |
20 |
| A13
| Modem
|
6 |
+--------+----------+------+
4 rows in set (0.00 sec)
53
INSERT.
DELIMITER //
CREATE TRIGGER updateStok
AFTER INSERT ON pembelian
FOR EACH ROW BEGIN
-- Update nilai stok barang
UPDATE barang
SET stok = stok + NEW.jml_beli
WHERE id_brg = NEW.id_brg;
END //
DELIMITER ;
pembelian.
54
20 + 10 = 30
Untuk kasus trigger DELETE, keyword yang bisa digunakan hanya OLD.
Misalkan kita ingin mendefinisikan trigger untuk menghapus semua data
pembelian manakala data barang yang sesuaidiindikasikan melalui
55
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 pernyataanpernyataan yang komplekstermasuk pencabangan, pengulangan,
langsung dimasukkan.
DELIMITER //
CREATE TRIGGER auditBarang
BEFORE INSERT ON barang
FOR EACH ROW BEGIN
IF NOT EXISTS (SELECT id_brg FROM barang WHERE id_brg =
NEW.id_brg)
Jurusan Teknik Elektro
Fakultas Teknik Universitas Negeri Malang (UM)
56
E. TUGAS PRAKTIKUM
1. Modifikasi trigger
pemberian bonus. Skenarionya, jika pembelian lebih dari 150 dan kurang
dari 250, bonus 15; pembelian lebih dari 250 dan kurang dari 350, bonus
25; pembelian lebih dari 350, bonus 50. Untuk aturan penyesuaian stok
(Point: 40)
3.
Note:
Untuk mencegah duplikasi pendefinisian trigger, terlebih dahulu hapus
57