際際滷

際際滷Share a Scribd company logo
TRIGGER
Praktikum Sistem Basis Data

agus andri putra, ST.
Definisi Trigger






Trigger adalah sebuah objek database yang di
asosiasikan dengan sebuah tabel dan akan aktif
(terpicu/trigger) ketika sebuah event terjadi
pada tabel tersebut
Trigger hanya terjadi ketika ada eksekusi INSERT,
DELETE, dan UPDATE pada tabel yang
bersangkutan
Waktu eksekusi trigger yang mungkin terjadi
terdiri dari 2 yaitu BEFORE dan AFTER dari
statement SQLnya
agus andri putra, ST.
Keuntungan menggunakan Trigger
 Trigger

dapat digunakan untuk mengubah
data sebelum proses INSERT dilakukan atau
untuk memberikan nilai default, misalnya
mengubah data diluar nilai yang
diperbolehkan, contoh : jika ada pengisian
nilai diatas 100, maka akan di jadikan 100.
 Kita dapat menyimpan data suatu record ke
tabel lain ( misalnya history) sebelum data
tersebut diupdate atau di delete. Sehingga
semua perubahan data dapat dilacak dari
sejak data itu di buat
agus andri putra, ST.
STRUKTUR TRIGGER

agus andri putra, ST.
Mengakses nilai baru dan lama
 Dalam

trigger, kita dapat mengakses data
lama dan data baru . Data lama dapat
direference dengan record OLD dan data
baru dengan record NEW

 Untuk

mengacu ke sebuah field dapat ditulis
dengan NEW.nama_field atau
OLD.nama_field
agus andri putra, ST.
Contoh 1
 Ada

sebuah tabel mahasiswa ( nim, nama,
alamat)
 Buatlah sebuah trigger yang akan
menyimpan history alamat. Jika sebuah
alamat berubah, maka alamat lama harus
disimpan di tabel history alamat.

agus andri putra, ST.
Kemudian isi tabel tersebut sesuai dengan type data dan
nama field nya
Dan siapkan tabel history untuk penyimpanan selanjutnya :

agus andri putra, ST.
Create trigger

agus andri putra, ST.
Contoh penggunaan trigger
Mengubah data yang sudah dengan :

Maka data yang lama akan disimpan di tabel history_alamat_mahasiswa

agus andri putra, ST.
 Untuk

bisa melihat alamat yang pernah di
pakai oleh nim 1210705138

Inilah tampilannya :

agus andri putra, ST.
Optimalisasi trigger


Trigger pertama mempunyai kekurangan yaitu
ketika ada perubahan di tabel mahasiswa
walaupun tidak mengubah kolom alamat, maka
statement INSERT ditabel history akan dijalankan.
Untuk mengoptimalkannya dengan membuat
trigger seperti ini :

agus andri putra, ST.
Contoh 2


Buatlah suatu trigger yang akan dieksekusi ketika
ada perubahan NIM di tabel mahasiswa yang
akan melakukan update ke tabel
history_alamat_mahasiswa untuk menyesuaikan
NIM-nya agar relasinya tidak terlepas

agus andri putra, ST.
 Jika

kita mengeksekusi trigger tersebut maka
akan peringatan yang berisi :

 Artinya

kita tidak bisa membuat multiple
trigger pada sebuah tabel pada waktu dan
event yang sama
 Solusi yang bisa dilakukan adalah
menggabung isi trigger
trig_update_mahasiswa dengan isi trigger baru
agus andri putra, ST.
Penggabungan trigger

Trigger baru
agus andri putra, ST.
Perubahan contoh 2

Hasil :

UPDATE mahasiswa SET nim= 1210705140 WHERE nim= 1210705138;
Hasil :

agus andri putra, ST.
Keterangan tambahan

 Trigger

pada contoh sebelumnya bisa dimodifikasi
untuk membuat trigger yang akan menghapus
semua data pada tabel
history_alamat_mahasiswa ketika ada
penghapusan pada tabel mahasiswa

 Hal

tersebut bisa dilakukan dengan membuat
trigger AFTER DELETE ON mahasiswa yang akan
menghapus semua data pada tabel
history_alamat_mahasiswa yang sesuai nim-nya
dengan nim dari tabel mahasiswa yang akan
dihapus (DELETE FROM history_alamat_mahasiswa
WHERE nim=OLD.nim)
agus andri putra, ST.
Contoh 3
 Buatlah

suatu trigger yang mencegah
perubahan pada primary key tabel
mahasiswa (field nim). Jika ada perubahan,
maka nim tidak boleh berubah

 Hal

ini dapat dilakukan yaitu dengan mengeset
nilai nim yang baru (NEW.nim) dengan nilai
yang sama (OLD.nim)

agus andri putra, ST.
Contoh 3
Buat trigger baru dengan nama trig_update_nim_mahasiswa

agus andri putra, ST.
Hasil

Nim baru , tapi tidak akan berpengaruh

agus andri putra, ST.
Kelas IF-A

Latihan praktek
 Buatlah

sebuah tabel untuk menyimpan data
transaksi transfer yang strukturnya sebagai
berikut :






NoTransaksi
WaktuTransaksi
NoRekPengirim
NoRekPenerima
BesarTransfer

:INT auto_increment
:DATETIME
:INT, FK REF rekening(No)
:INT, FK REF rekening(No)
:DOUBLE

 Jika

penambahan data dari tabel transfer
(AFTER INSERT ON transfer), maka akan
mengupdate saldo pada rekening yang
bersangkutan sesuai dengan besar transfer

agus andri putra, ST.
Format laporan hasil praktikum
1. Lampirkan dan tulis kembali apa yang telah di lakukan
pada saat praktikum pada file document laporan kalian
2. Kerjakan soal latihan tersebut, dan print screen syntax
maupun hasilnya
3. Lampirkan juga database yang telah dibuat oleh kalian
4. Berikan keterangan yang lengkap pada hasil laporan
kalian


Kirim ke email :

praksibadat@gmail.com
Dengan subject :

Prak_Trig(spasi)nim_nama_kelas
Contoh : Prak_Trig 207700316_agus_IF-A

Batas Pengiriman : Sabtu, 23-11- 2013 pukul 23:59 WIB
agus andri putra, ST.

More Related Content

Trigger Database

  • 1. TRIGGER Praktikum Sistem Basis Data agus andri putra, ST.
  • 2. Definisi Trigger Trigger adalah sebuah objek database yang di asosiasikan dengan sebuah tabel dan akan aktif (terpicu/trigger) ketika sebuah event terjadi pada tabel tersebut Trigger hanya terjadi ketika ada eksekusi INSERT, DELETE, dan UPDATE pada tabel yang bersangkutan Waktu eksekusi trigger yang mungkin terjadi terdiri dari 2 yaitu BEFORE dan AFTER dari statement SQLnya agus andri putra, ST.
  • 3. Keuntungan menggunakan Trigger Trigger dapat digunakan untuk mengubah data sebelum proses INSERT dilakukan atau untuk memberikan nilai default, misalnya mengubah data diluar nilai yang diperbolehkan, contoh : jika ada pengisian nilai diatas 100, maka akan di jadikan 100. Kita dapat menyimpan data suatu record ke tabel lain ( misalnya history) sebelum data tersebut diupdate atau di delete. Sehingga semua perubahan data dapat dilacak dari sejak data itu di buat agus andri putra, ST.
  • 5. Mengakses nilai baru dan lama Dalam trigger, kita dapat mengakses data lama dan data baru . Data lama dapat direference dengan record OLD dan data baru dengan record NEW Untuk mengacu ke sebuah field dapat ditulis dengan NEW.nama_field atau OLD.nama_field agus andri putra, ST.
  • 6. Contoh 1 Ada sebuah tabel mahasiswa ( nim, nama, alamat) Buatlah sebuah trigger yang akan menyimpan history alamat. Jika sebuah alamat berubah, maka alamat lama harus disimpan di tabel history alamat. agus andri putra, ST.
  • 7. Kemudian isi tabel tersebut sesuai dengan type data dan nama field nya Dan siapkan tabel history untuk penyimpanan selanjutnya : agus andri putra, ST.
  • 9. Contoh penggunaan trigger Mengubah data yang sudah dengan : Maka data yang lama akan disimpan di tabel history_alamat_mahasiswa agus andri putra, ST.
  • 10. Untuk bisa melihat alamat yang pernah di pakai oleh nim 1210705138 Inilah tampilannya : agus andri putra, ST.
  • 11. Optimalisasi trigger Trigger pertama mempunyai kekurangan yaitu ketika ada perubahan di tabel mahasiswa walaupun tidak mengubah kolom alamat, maka statement INSERT ditabel history akan dijalankan. Untuk mengoptimalkannya dengan membuat trigger seperti ini : agus andri putra, ST.
  • 12. Contoh 2 Buatlah suatu trigger yang akan dieksekusi ketika ada perubahan NIM di tabel mahasiswa yang akan melakukan update ke tabel history_alamat_mahasiswa untuk menyesuaikan NIM-nya agar relasinya tidak terlepas agus andri putra, ST.
  • 13. Jika kita mengeksekusi trigger tersebut maka akan peringatan yang berisi : Artinya kita tidak bisa membuat multiple trigger pada sebuah tabel pada waktu dan event yang sama Solusi yang bisa dilakukan adalah menggabung isi trigger trig_update_mahasiswa dengan isi trigger baru agus andri putra, ST.
  • 15. Perubahan contoh 2 Hasil : UPDATE mahasiswa SET nim= 1210705140 WHERE nim= 1210705138; Hasil : agus andri putra, ST.
  • 16. Keterangan tambahan Trigger pada contoh sebelumnya bisa dimodifikasi untuk membuat trigger yang akan menghapus semua data pada tabel history_alamat_mahasiswa ketika ada penghapusan pada tabel mahasiswa Hal tersebut bisa dilakukan dengan membuat trigger AFTER DELETE ON mahasiswa yang akan menghapus semua data pada tabel history_alamat_mahasiswa yang sesuai nim-nya dengan nim dari tabel mahasiswa yang akan dihapus (DELETE FROM history_alamat_mahasiswa WHERE nim=OLD.nim) agus andri putra, ST.
  • 17. Contoh 3 Buatlah suatu trigger yang mencegah perubahan pada primary key tabel mahasiswa (field nim). Jika ada perubahan, maka nim tidak boleh berubah Hal ini dapat dilakukan yaitu dengan mengeset nilai nim yang baru (NEW.nim) dengan nilai yang sama (OLD.nim) agus andri putra, ST.
  • 18. Contoh 3 Buat trigger baru dengan nama trig_update_nim_mahasiswa agus andri putra, ST.
  • 19. Hasil Nim baru , tapi tidak akan berpengaruh agus andri putra, ST.
  • 20. Kelas IF-A Latihan praktek Buatlah sebuah tabel untuk menyimpan data transaksi transfer yang strukturnya sebagai berikut : NoTransaksi WaktuTransaksi NoRekPengirim NoRekPenerima BesarTransfer :INT auto_increment :DATETIME :INT, FK REF rekening(No) :INT, FK REF rekening(No) :DOUBLE Jika penambahan data dari tabel transfer (AFTER INSERT ON transfer), maka akan mengupdate saldo pada rekening yang bersangkutan sesuai dengan besar transfer agus andri putra, ST.
  • 21. Format laporan hasil praktikum 1. Lampirkan dan tulis kembali apa yang telah di lakukan pada saat praktikum pada file document laporan kalian 2. Kerjakan soal latihan tersebut, dan print screen syntax maupun hasilnya 3. Lampirkan juga database yang telah dibuat oleh kalian 4. Berikan keterangan yang lengkap pada hasil laporan kalian Kirim ke email : praksibadat@gmail.com Dengan subject : Prak_Trig(spasi)nim_nama_kelas Contoh : Prak_Trig 207700316_agus_IF-A Batas Pengiriman : Sabtu, 23-11- 2013 pukul 23:59 WIB agus andri putra, ST.