18
LAPORAN PRAKTIKUM V TRIGGER BASIS DATA LANJUT Oleh : Siti Nuraini Triastuti 11120041 Santi Dewi P.S 11120037 Dewi Rahayuningsih 11120058 Fakultas Teknik

Laporan Praktikum 5_Siti Nuraini_11120041

Embed Size (px)

Citation preview

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