Anda di halaman 1dari 11

Pertemuan 6-7

Tujuan Instruksional Khusus


Mahasiswa dapat mengimplementasikan trigger

Pokok Bahasan
Trigger

Sub Pokok Bahasan


Membuat trigger

Petunjuk
Pembahasan Materi
TRIGGER artinya pelatuk atau pemicu. Tigger difungsikan sebagai pemicu pada sebuah proses
dalam ssuatu database, misalnya pada sebuah tabel. Trigger juga berfungsi untuk menyisipkan fungsi
saat record tersebut mengalami perubahan (insert, delete ataupun update)

Beberapa keuntungan dari trigger:

1. Dengan trigger dapat dengan mudah mencari data yang berubah, siapa yang melakukan
perubahan, dan kapan dilakukan perubahan.
2. Jika terjadi perubahan, program trigger akan secara otomatis memberikan sinyal program
lain untuk mengeksekusi sesuatu.
3. Memanggil fungsi/ procedure secara otomatis

A. Membuat Trigger
Trigger dapat dibagi menjadi dua jenis antara lain:
1. After : terdiri atas after delete, insert, update
2. Before : terdiri before delete, insert, update

Sintak
Create

[definer= {user | current_user}]


Trigger trigger_name trigger_time trigger_event

On tbl_name for each row trigger_stmt


Keterangan:
[definer= {user | current_user}] definisi user yang sedang aktif, sifatnya optional
Trigger trigger_name : Nama trigger

trigger_time: Waktu menjalankan trigger: ini dapat berupa BEFORE atau AFTER
 BEFORE membuat trigger diaktifkan sebelum dihubungkan dengan suatu
operasi.
 Affter : membuat trigger diaktifkan setelah dihubungkan dengan suatu
operasi.
trigger_event : berupa kejadian yang akan dijalankan Trigger
 Insert : trigger diaktifkan ketika sebuiah record baru disisipkan ke dalam
tabel. Contoh statemen insert, load data, dan replace
 Update : trigger diaktifkan ketika sebuah record dimodifikasi contoh :
update
 Delete : trigger diaktifkan ketika sebuah record dihapus. Contoh statemen
delete dan replace
trigger _event tidak merepresentasikan statemen SQL yang diaktifkan trigger
sebagai suatu operasi tabel.
tbl_name : nama tabel yang berasosiasi dengan trigger

trigger_stmt :statemen (tunggal atau jamak) yang akan dijalankan ketika trigger aktif.

Praktikum 1:

1. Buat databse kampus


2. Buat tabel mahasiswa

3. Isikan data mahasis tersebut

4. Buat tabel log


Contoh yang dibahas adalah mencatat kejadian-kejadian yang terjadi beserta waktu pada
tabel mahasiswa, dan catatan-catatan tadi disimpan dalam tabel yang lain, dan misal
disimpan dalam tabel log_mhs
5. Contoh 1 : Buat trigger untuk insert

6. Lakukan penginputan data mahasiswa

7. Contoh 2 buat trigger untuk update

8. Lakukan perubahan mahasiswa


9. Contoh 3. Buat trigger untuk melakukan pengahapusan record.

10. Tampilkan tabel log_mhs


Amati perubahan dari tabel tersebut.
.......................

B. Mendapatkan nilai suatu field dalam trigger


Untuk mendapatkan nilai dari suatu field sebelum dan sesudah pernyataan DML di execute,
dapat menggunakan OLD dan NEW untuk mewakili tabel yang dihubungkan dengan trigger.

 OLD.col_name untuk mendapatkan nilai dari field sebelum record di update atau di
delete
 NEW.col_name untuk mendapatkan nilai dari field setelah record di update atau
redord yang baru di insert
Sebagai contoh pada trigger BEFORE UPDATE, untuk mendapatkan nilai dari field saldo
sebelum field ini diupdate gunakan pernyataan OLD.saldo dan untuk mendapatkan nilai field
ini setelah di-update kita gunakan pernyataan NEW.Saldo
Contoh:
Saldosebelum = OLD.saldo
Saldosesudah = NEW.saldo

Praktikum 2:

1. Buat database penjualan


2. Buat tabel produk

3. Buat tabel log _harga_produk

4. Buat trigger untuk pengubahan harga.


5. Inputkan data produk

6. Lakukan perubahan harga pada br-001 yang semuala 2000 menjadi 2200

7. Setelah harga dilakukan perubahan maka cek kembali tabel produk dan tabel log

8. Amati perubahan tabel log_harga_produk


.................................................................................

Latihan 1
1. Buat database gaji_karyawan
2. Buat table karyawan
No Nama Tanggal lahir Alamat gol
karyawan
N-01-01 Amin awaludin 1976-04-24 Jl Raya Buaran no 2.a
80 pekalongan
N-01-02 Rahmat 1978-06-25 Jl kali malang no 3.a
60 Batang
N-01-03 Tuti Kusuma 1983-05-06 JL intan gg 2 no 25 3.a
Wardani Pemalang
N-01-04 Yulianto 1985-05-07 Jl kalimalang gg 4 2.a
no 23 Batang

3. Buat table gaji


Gol Gaji pokok
2.a 1.500.000
2.b 1.700.000
2.c 1.900.000
3.a 2.500.000
4. Buat table log_perubahan_gaji yang dapat mencatat log id, gol, gaji_pokok_lama,
gaji_pokok-baru, dan waktu perubahan
5. Buat tabel log yang menyimpan data perubahan kejadian pada tabel gaji. Dengan field
kejadian dan waktu. (insert, update, delete)
6. Buat trigger untuk menyimpan data perubahan gaji
7. Buat trigger untuk menyimpan data perubahan kejadian pada tabel gaji (insert, update,
delete)
8. Buat perubahan gaji dengan kenaikan 200.000 untuk setiap golongan
9. Tampilkan data tabel Log_perubahan_gaji

C. Otomatisasi proses
Salah satu penggunaan trigger adalah melakukan otomatisasi update tabel lain setelah proses DML
terjadi pada suatu tabel. Sehingga contoh membuat trigger yang otomatis akan mengurangi atau
menambah jumlah stok pada proses penjualan dan pembelian barang

Langkah praktikum:

1. Buat database stok_barang


2. Buat tabel barangxxxx

3. Buat tabel belixxxx


4. Buat tabel jual

5. Buat trigger untuk update stok barang saat terjadi pembelian:

6. Buat trigger untuk update stok barang saat terjadi penjualan:

7. Inputkan data pada tabel barangxxxx

no Kode barang nama satuan stok


1 b.501 Buku tulis isi 58 pack 28
2 b.502 Buku tulis isi 38 pack 22
3 b.503 Sampo botol 10
4 b.504 Beras liter 12
5 b.505 Gula pasir kg 23
Ss : data table barang

8. Inputkan data pada tabel belixxxx

n No faktur tgl Kode barang qty


o
1 BL-12-01 2019-12-05 b.501 20
2 BL-12-02 2019-12-05 b.502 20
3 BL-12-03 2019-12-06 b.503 15
4 BL-12-04 2019-12-06 b.504 50
5 BL-12-05 2019-12-07 b.505 25
Ss : data table beli dan data table barang

9. Inputkan data pada tabel jualxxxx

n No faktur tgl Kode barang qty


o
1 JL-12-01 2019-12-06 b.501 5
2 JL-12-02 2019-12-07 b.502 3
3 JL-12-03 2019-12-07 b.503 7
4 JL-12-04 2019-12-08 b.504 15
5 JL-12-05 2019-12-08 b.505 20
Ss : data table jual dan data table barang

Latihan 2
1. Buat database perpustakaan
2. Buat table bukuxxxx
Kode buku Judul stok_buku
B-01 Matematika kelas 5 25
B-02 IPA kelas 2 22
B-03 Bahasa Indonesia kelas 6 24
B-04 Agama islam kelas 1 15

3. Buat table peminjamanxxxx


Nama field Type size
No_peminjama Char 6
n
Tgl_pinjam Date
Kode_buku Char 5
Jumlah_pinjam int
4. Buat table pengembalianxxxx
Nama field Type size
No_pengembalian Char 6
Tgl_kembali Date
Kode_buku Char 5
Jumlah_kembali int

5. Buat trigger yang dapat melakukan perubahan saat terjadi peminjaman dan
pengembalian untuk perubahan stok buku
6. Inputkan data peminjaman
No_pinjam Tgl pinjam Kode buku Jumlah pinjam
P-01 9/7/2018 B-01 1
P-02 10/7/2018 B-04 2

7. Inputkan data pengembalian buku


No_pengembalian Tgl kembali Kode buku Jumlah kembali
K-01 10/7/2018 B-01 1
K-02 16/7/2018 B-04 1

Anda mungkin juga menyukai