Anda di halaman 1dari 3

SMK Negeri 1 Karang Baru

Membuat Trigger

Hari/ Tanggal : Sabtu/ 26 Oktober 2013


Standar Kompetensi : Membuat Aplikasi Basis Data
Guru Mata Diklat : Safrizal, S.ST
Tujuan Pratikum : Agar siswa dapat memahami dan membuat Trigger

1. Masuk ke aplikasi MySQL Workbench 6.0, atau bisa juga menggunakan command
prompt.
2. Gunakan database siswa  use siswa; (database pada materi sebelumnya)
3. Buatlah sebuah database baru yang setiap field-nya sama persis dengan table data
siswa, table tersebut saya beri nama hapus_data_siswa, dengan cara seperti berikut.

4. Hasilnya langsung dapat bisa dilihat pada jendela schema

5. Sekarang kita memiliki 2 buah table yang field-nya sama persis. Selanjutnya kita akan
membuat sebuah trigger yang berfungsi untuk menampung data yang telah dihapus dari
data_siswa. Data yang dihapus tersebut akan masuk ke table hapus_data_siswa secara
otomatis ketika kita menghapus data tersebut dari table data_siswa.

6. Selanjutnya kita akan melakukan uji coba apakah trigger yang kita buat berhasil atau
tidak. Lakukan pengecekan data pada table data_siswa.
Pada gambar diatas saya memiliki 3 buah record, isi record pada table data_siswa anda
pasti akan berbeda dengan record yang saya miliki, jadi untuk perintah selanjutnya
sesuaikan dengan kondisi record masing-masing.
7. Hapus salah satu record

8. Kemudian kita cek pada table hapus_data_siswa.

Hasilnya data yang dihapus dari table data_siswa telah masuk ke table
hapus_data_siswa.
9. Sekarang kita cek kembali table data_siswa

Record yang sebelumnya dihapus memang telah terhapus, dan record tersebut pindah
ke table hapus_data_siswa secara otomatis dikarenakan trigger yang kita buat.

By : SAFRIZAL, S.ST
Penjelasan :
Trigger adalah suatu objek database yang merupakan aksi atau prosedur yang
dilakukan jika terjadi perubahan pada row data suatu table. Trigger tidak dapat menjadi
bagian dari temporary table atau view.
Beberapa contoh penggunaan trigger yang sangat berguna adalah jika kita ingin
melakukan kalkulasi tertentu yang tidak perlu "diketahui" aplikasi luar, mencatat aktivitas
operasi table misalkan untuk kepentingan change data capture ( CDC ) , dan lain-lain.
1. Berikut adalah syntax dari perintah trigger
CREATE
[DEFINER = { user | CURRENT_USER }]
TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_body
2. Keterangan :
trigger_name = nama trigger.
trigger_time = kapan kita mengeksekusi trigger, apakah sebelum atau sesudah
perubahan pada row data table. Jadi pilihannya adalah AFTER atau BEFORE.
trigger_event = merupakan event atau peristiwa yang menyebabkan trigger
dilakukan. Pilihan event tersebut adalah : INSERT, UPDATE, DELETE.
tbl_name = nama table.
trigger_body = statement-statement perintah SQL yang akan dilakukan. Jika
perintahnya lebih dari satu maka gunakan dalam blok statement BEGIN ... END.
Jika DEFINER dispesifikasikan maka kita memutuskan trigger tersebut dijalankan
hanya oleh user tertentu(dalam format penulisan user@host). Jika tidak
dispesifikasikan, maka user yang melakukan perubahan (CURRENT_USER)
adalah pilihan default.
3. OLD dan NEW
Karena trigger digunakan pada saat terjadi perubahan row data, maka kita perlu
referensi ke row sebelum dan sesudah perubahan. Untuk ini ada dua alias yang
berfungsi untuk hal tersebut yaitu OLD dan NEW. Sesuai namanya, OLD digunakan
untuk referensi sebelum perubahan dan NEW untuk referensi sesudah perubahan.

Tugas :
1. Buatlah 3 buah trigger, 1 buah trigger dengan event INSERT, 1 buah trigger
dengan event UPDATE, 1 buah trigger dengan event DELETE.
2. InsyaALLAH akan di cek pada tanggal 2 November 2013, BAGI YANG
TIDAK MENGERJAKAN AKAN MENDAPAT SANGSI

By : SAFRIZAL, S.ST