You are on page 1of 16

LAPORAN PRAKTIKUM V

TRIGGER
BASIS DATA LANJUT











Oleh :
Siti Nuraini Triastuti 11120041
Santi Dewi P.S 11120037
Dewi Rahayuningsih 11120058


Fakultas Teknik
Program Studi Teknik Informatika
Universitas Wijaya Kusuma Surabaya
2014
TUJUAN
1. Mahasiswa mengerti tentang Trigger.
2. Mahasiswa memahami penggunaan Trigger.
3. Mahasiswa mampu menerapkan penggunaan Triger.

PENDAHULUAN
Trigger adalah blok PL/SQL atau prosedur yang berhubungan dengan table, view,
skema atau database yang dijalankan secara implicit pada saat terjadi sebuah
event.
Tipe dari trigger adalah :
Application trigger : diaktifkan pada saat terjadi event yang berhubungan dengan
sebuah aplikasi
Database trigger : diaktifkan pada saat terjadi event yang berhubungan dengan
data (seperti operasi DML) atau event yang berhubungan dengan sistem (semisal
logon atau shutdown) yang terjadi pada sebuah skema atau database.
TRIGGER
Trigger dapat didefinisikan sebagai sebuah kumpulan aksi yang akan dijalankan
jika terjadi sebuah peristiwa yang lain. Selain itu, Trigger merupakan respon
otomatis yang dijalankan saat sebuah tindakan spesifik dilakukan.
Alasan Penggunaan Trigger
1. Memaksakan Penerapan Business Rule
Business rules (aturan-aturan dalam proses bisnis) dapat dipaksakan terjadi tanpa
harus bergantung pada pengembang aplikasi.
Contoh : STOK Barang.
2. Melindungi Integritas Data
Apabila database telah diset dengan baik dan terencana, termasuk di dalamnya
mengenai rancangan relasi tabel, maka akan timbul masalah baru dalam
pengembangan aplikasi. Masalah tersebut adalah integritas data yang harus dijaga
yang harus dijaga dengan baik agar perancangan yang telah dikembangkan tidak
sia-sia. Dalam hal ini trigger menjadi aktor utama dalam proses perlindungan
integrasi data tersebut.
Contoh : STATUS mahasiswa.
3. Mengeksekusi Perintah Tambahan
Perintah tambahan dalam trigger umumnya dibuat dengan memanfaatkan fasilitas
CLR (Common Language Runtime).
Contoh : Pengiriman Email peringatan.


Ketentuan dan Kondisi yg. Disarankan untuk Tidak Menggunakan
TRIGGER
1. Trigger menjadi sebuah object yang tersembunyi (Hidden) dalam database.
Jika seorang pengembang bukan orang yang rajin membuat dikumentasi,
disarankan untuk tidak mengimplementasikan Trigger.
2. Usahakan untuk membuat trigger yang tidak membutuhkan waktu lama
dalam proses eksekusinya.
3. Jika business rule telah terpenuhi dengan adanya Constraint, maka
disarankan untuk tidak lagi menggunakan trigger.

Jenis Trigger
1. DDL Trigger
Trigger yang diimplementasikan ke dalam perintah SQL jenis DDL diantaranya
: Create, Alter, Grant, Deny, Revoke, Update Statistics, Drop.
2. DML Trigger
3 perintah SQL jenis DML yang mampu menerima Trigger, yaitu : Insert, Update,
Delete.


TUGAS TAMBAHAN
Soal :
Buat 3 trigger pada SQL dan ORACLE di project rental mobil

ORACLE
1. Trigger dengan nama stok_mobilkurang Dengan Query :
Create or replace
trigger stok_mobilkurang
before insert or update of mobil_sewa on sewa
for each row
begin
if NVL(:old.mobil_sewa,0)<NVL(:new.mobil_sewa,0) then
update mobil
set jumlah_stok = jumlah_stok (NVL(:new.mobil_sewa,0)-
NVL(:0.nobil_sewa,0))
where id_barang = :new.id_barang;
end if;
end;








Hasil yang ditampilkan :


2. Trigger dengan nama sewa dan mobil .Dengan Query :
Create table sewa(id_sewa int constraint id_sewa primary key not null,
tanggal_sewa varchar(20), mobil_sewa int, id_barang int);
Insert into sewa values (91,10 mei 2014,10,901);
Select * from sewa

Create table mobil (id_barang int constraint id_barang primary key not null,
jumlah_stok int);
Insert into mobil values (903,25);
Select * from mobil






Hasil yang ditampilkan :



3. Trigger dengan nama insert_kredit. Dengan query :
Create or replace trigger insert_kredit
After insert on kredit
For each row
Begin
Insert into kredit_backup
Values (:new.no_kredit, :new.jumlah_cicilan, :new.id_transaksi);
End;

Hasil yang ditampilkan :


Menambahkan data pada tabel kredit dengan no_kredit=35,
jumlah_cicilan=70000, dan id_transaksi=424


















Lihat tabel kredit_backup data yang sudah di tambahkan di table kredit sudah
secara otomatis terbackup di table kredit_backup










Hasil yang ditampilkan :

4. trigger dengan nama insert_insert. Dengan query :
create or replace trigger insert_insert
after insert on transaksi
for each row
begin
insert into transaksi_backup
values (:new.id_transaksi, :new.jumlah, :new.tgl_pinjam, :newtgl_pengembalian,
:new.total, :new.id_owner, :new.no_pol);
end;

Hasil yang ditampilkan :






















Hasil yang ditampilkan :





SQL

1. Trigger dengan nama insert_kredit. Dengan query :
Create trigger insert_kredit
On kredit
Instead of insert
As
Begin
Insert into kredit
(no_kredit, jumlah_cicilan, id_transaksi)
Select inserted.no_kredit,
Inserted.jumlah_cicilan,
Inserted.id_transaksi
From inserted
Join kredit_backup
On inserted.no_kredit=inserted.no_kredit
End
Select * from kredit_backup


Hasil yang ditampilkan :

2. Trigger dengan nama insert_insert. Dengan query :
Create trigger insert_insert
On transaksi
Insertead of insert
As
Begin insert transaksi
(id_transaksi, jumlah, tgl_pinjam, tgl_pengembalian, total, id_owner, no_pol)
Select inserted.id_transaksi,
Inserted.jumlah,
Inserted.tgl_pinjam,
Inserted.tgl_pengembalian,
Inserted.total,
Inserted.id_owner,
Inserted.no_pol
From inserted
Join transaksi_backup
On inserted.id_transaksi=inserted.id_transaksi
End
Select * from transaksi_backup

Hasil yang ditampilkan :




3. Trigger dengan nama mobil_sewa.Dengan query :
Create trigger mobil_sewa on sewa
For insert
As
Update b set b.mobil=b.mobil i.mobil_sewa
From barang b join inserted i on b.id_barang=i.id_barang




KESIMPULAN
Triger adalah sebuah blok yang disimpan dalam database yang secara otomatis
akan teraktivasi ketika terjadi suatu operasi pada sebuah table,view,schema,atau
database. Trigger merupakan store procedure yang dijalankan secara automatis
saat user melakukan modifikasi data pada tabel. Modifikasi data yang dilakukan
pada tabel yaitu berupa perintah INSERT, UPDATE, dan DELETE. INSERT ,
UPDATE dan DELETE bisa digabung jadi satu trigger yang dinamakan Multiple
Trigger.



LEMBAR MONITORING

You might also like