LAPORAN MODUL VIII
PRAKTIKUM BASIS DATA
Disusun untuk Memenuhi Matakuliah Praktikum Basis Data Dibimbing oleh Triyanna Widyaningtyas, S.T., M.T.
Oleh:
Eva Yulia Safitri
(160533611462)
Karina Aulia Faradila
(160533611413)
S1 PTI’16 OFF B
UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA April 2017
TRIGGER
2. Tujuan
Memahami konsep dasar trigger di dalam basis data
Memahami implementasi trigger sebagai bentuk respon atas suatu
Trigger dapat didefinisikan sebagai himpunan kode (prosedural) yang dieksekusi secara otomatis sebagai respon atas suatu kejadian berkaitan dengan tabel basis data. Kejadian (event) yang dapat membangkitkan trigger umumnya berupa pernyataan INSERT, UPDATE, dan DELETE. Berdasarkan ruang lingkupnya, trigger diklasifikasikan menjadi dua jenis: row trigger dan statement trigger. Trigger baris (row) mendefinisikan aksi untuk setiap baris tabel; trigger pernyataan hanya berlaku untuk setiap pernyataan INSERT, UPDATE, atau DELETE. Dari sisi perilaku (behavior) eksekusi, trigger dapat dibedakan menjadi beberapa jenis; namun umumnya ada dua jenis: trigger BEFORE dan AFTER. Sesuai penamaannya, jenis-jenis ini merepresentasikan waktu eksekusi trigger— misalnya sebelum ataukah sesudah pernyataan-pernyataan yang berkorespondensi. Adakalanya trigger dipandang sebagai bentuk spesifik dari stored procedure (terkait pendefinisian body). Bagaimanapun, trigger akan dipanggil (secara otomatis) ketika event terjadi, sedangkan stored procedure harus dipanggil secara eksplisit.
2. Trigger MySQL
MySQL mendukung fitur trigger termasuk juga stored procedure dan view sejak versi 5.0.2 Sebagaimana objek-objek lainnya, trigger diciptakan menggunakan pernyataan CREATE. Sintaks pendefinisian trigger diperlihatkan sebagai berikut:
Jenis Trigger
Ada 2 jenis trigger yaitu :
Application trigger: Terjadi pada saat sebuah kejadian terjadi dengan aplikasi tertentu.
Database trigger : Terjadi pada saat terjadi sebuah perubahan data seperti DML pada table (INSERT, UPDATE atau DELETE)
Keuntungan Trigger
Dalam sebuah tabel dapat mempunyai beberapa trigger. Trigger sangat berguna karena dapat secara otomatis dilaksanakan dalam server, sehingga menyederhanakanpemorgraman, sekaligus menjaga konsistensi informasi dalam database Keuntungan penggunaan Trigger antara lain :
a. Standarisasi (penyeragaman) proses. Trigger dibuat satu kali dan tersimpan dalamdatabase, sehingga semua client yang menggunakan database tersebut sekaligus adalah pengguna Trigger. Dengan demikian seluruh client akan menggunakan operasi yang samaterhadap suatu proses dalam database, karena Trigger yang dipakai sama. b. Menyederhanakan pemrograman. Apabila Trigger sudah dibuat dalam database
server, seluruh program dalam bahasa apapun, yang mengakses database tersebut akan secara otomatis menggunakan Triger yang ada tanpa perlu membuat
perintahnya dalam program
aplikasi.
c. Mudah diperbaharui. Apabila Trigger pernah di-update dalam database server, semua client akan menggunakan perbaruan yang terakhir
d. Kecepatan dan efisiensi proses. Oleh karena Trigger disimpan dalam server dalam kode yang sudah terkompilasi, dan dilaksanakan dalam server sehingga lalu-lintas jaringan menjadi berkurang.
e. Memudahkan kerja secara tim. Apabila Trigger dan Stored Procedure sudah dibuat, anggota tim kerja dapat menggunakan bahasa pemrograman yang berbeda dalam mengaksesnya, karena Trigger disimpan dan dilaksanakan oleh server, tanpa melihat bahasa pemrograman apa yang dipakai oleh pengguna database.
#Konsep trigger
-Trigger adalah object database yang berisi kumpulan perintah SQL yang akan dieksekusi atau dijalankan ketika suatu event terjadi.
-Dalam satu database kita dapat mendefinisikan lebih dari satu Trigger, asalkan nama dari masing masing trigger berbeda.
-Trigger harus berasosiasi dengan tabel tertentu sebagai pemicu trigger untuk menentukan kapan trigger tersebut dieksekusi.
Trigger memiliki referensi New dan OLD.
#Manfaat menggunakan trigger
- Trigger dapat mengubah nilai kolom pada tabel ini
Daftar event untuk aktifasi trigger
Percobaan
Implementasinya pada SQL dan Oracle
4. LATIHAN
Dalam latian ini digunakan dua tabel bernama barang dan pembelian dengan data sebagai berikut :
1. Menggunakan Trigger
Operasi-operasi berkenaan dengan pendefinisian trigger tidak berbeda dengan objek-objek database lainnya
a. Masuk kedalam database yang digunakan untuk menciptakan tabel tadi, kemudian masuk ke menu Trigger
c. Setelah berhasil membuat Trigger. Kembali ke SQL database dan tuliskan sintak berikut :
d. Dan hasilnya akan seperti berikut
Terlihat bahwa Trigger sudah bekerja seperti yang diharapkan, dimana setiap penambahan baru akan mengkremen nilai stok
Untuk mendapatkan informasi mengenai daftar Trigger yang telah terdefinisi, gunakan perintah SHOW TRIGGERS atau bisa langsung ke menu trigger
2. Keyword OLD dan NEW
Untuk merujuk ke kolom-kolom tabel yang diasosiasikan dengan trigger, kita menggunakan keyword OLD dan NEW. Keyword OLD mengacu pada nilai lama, sedangkan NEW merepresentasikan nilai baru. Di trigger INSERT, kita hanya dapat menggunakan keyword NEW karena tidak ada data lama.
Pada contoh di atas, penambahan data pembelian akan mengakibatkan nilai stok barang berubah menyesuaikan banyaknya nilai jumlah pembelian.
b. Kemudian masukkan data kedalam table pembelian
c. Cek kembali data dalam table barang
a. Sama seperti langkah sebelumnya. Masuk ke menu Trigger
c. Kemudian cek data pada table pembelian
a. Update pembelian
3. Trigger Komplek
Keberadaan trigger secara nyata mampu mengatasi berbagai persoalan pelik, misalnya berkaitan dengan integritas atau audit data. Ini tentu sangat masuk akal, karena trigger juga bisa mengandung pernyataan- pernyataan yang kompleks termasuk pencabangan, pengulangan, fungsi-fungsi agregat, bahkan kode pemanggilan prosedur. Sebagai ilustrasi sederhana, kita bisa mendefinisikan trigger untuk memeriksa operasi penambahan data barang. Skenarionya, jika data sudah ada, berikan status eksistensi barang; sebaliknya, data bisa langsung dimasukkan.
5. TUGAS PRAKTIKUM
1. Modifikasi trigger INSERT pembelian untuk menambahkan fitur bonus di dalamnya. Aturannya adalah jika pembelian > 50 dan < 100, maka bonus = 5; jika pembelian > 100 dan < 150, maka bonus = 10; jika pembelian > 150, maka bonus = 20. Ingat, aturan penyesuaian stok barang masih berlaku, setiap ada pembelian maka stok akan berkurang.
Penjelasan :
Pertama kita mensetting stok yang ada sesuai dengan permintaan pada modul. Dimana pada setting modul kita mengunakan query UPDATE. Contohnya UPDATE barang SET stok = 100 WHERE id_brg = ‘A10’; artinya kita mengupdate dari tabel barang dengan merubah stok menjadi 100 dimana stok yang memiliki id_brg = A10. Dan begitupun penjelasan untuk UPDATE barang yang lainnya
b. Tambahan pembelian
Penjelasan :
c. Pembelian akan diberikan bonus
Penjelasan :
Kita akan mencoba apakah trigger yang kita buat berfungsi atau tidak. Sesuai pada modul kita memasukkan pembelian sejumlah 60. Sesuai aturan pada trigger yang kita buat dimana untuk pembelian >50 dan <100 akan mendapat bonus = 5. Maka saat kita buka tabel pembelian akan secara otomatis jumlah beli akan bertambah 5 menjadi 65.
d. Stok akan automatis menyesuaikan sesuai aturan
Penjelasan :
Karena pembelian akan berpengaruh terhadap jumlah stok, seperti aturan yang telah kita cantumka pada trigger. Maka stok pada id_bgr= A10 yang semula 100 dikurangi jumlah pembelian 60 menjadi 40 dan dikurangi bonus sebanyak 5. Jadi total stok yang tersedia sekarang yaitu 35.
6. TUGAS RUMAH
1. Buat tabel pembayaran
2. Buat tabel log_pembelian
Selanjutnya buatlah trigger di dalam tabel Pembelian untuk merekam operasi INSERT, UPDATE, DELETE, dan kemudian menyimpan rekaman operasi sebagai bukti transaksi di tabel log_pembelian.
- Jika INSERT, maka akan memasukkan operasi “Insert” dan menampilkan waktu operasinya di tabel log_pembelian
- Jika UPDATE, maka akan memasukkan operasi “Update” dan menampilkan waktu operasinya di tabel log_pembelian
- Jika DELETE, maka akan memasukkan operasi “Delete” dan menampilkan waktu operasinya di tabel log_pembelian
7. KESIMPULAN
Trigger digunakan untuk memanggil satu atau beberapa perintah SQL secara otomatis sebelum atau sesudah terjadi proses INSERT, UPDATE, dan DELETE dari suatu tabel.
Trigger sering digunakan, antara lain :
Melakukan update data otomatis jika terjadi perubahan. Contohnya adalah dalam sistem penjualan, jika dientri barang baru maka stok akan bertambah secara otomatis.
Trigger dapat digunakan untuk mengimplementasikan suatu sistem log. Setiap terjadi perubahan, secara otomatis akan menyimpan ke tabel log
Trigger dapat digunakan untuk melakukan validasi data sebelum data tersebut disimpan
8. DAFTAR PUSTAKA
Firman Fajrin. 2014. Pengertian Trigger dan Implementasinya http://memahamibdl.blogspot.co.id/2014/07/pengertian-trigger-dan-implementasinya.html
Harits. 2010. Pengertian Trigger pada SQL
http://www.haritsthinkso.com/2010/01/pengertian-trigger-pada-sql.html