Anda di halaman 1dari 17

LAPORAN STUDI KASUS 2

Trigger dengan PostgreSQL

Disusun untuk Memenuhi Matakuliah Praktikum Basis Data II


Yang Dibimbing oleh Annisa Puspa Kirana, S.Kom, M.Kom

Disusun Oleh:
Muhammad Fikri Mustopo

(150535604974)

Nadiyah Puspita Dewi

(150535600968)

Nella Ayu Ambarwati

(150535601730)

S1 TI 2015OFF B

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
SEPTEMBER 2016

MODUL 2
Trigger PostgreSQL

A. TUJUAN
- Memahami konsep dasar trigger di dalam basis data.
- Memahami implemetasi trigger sebagai bentuk respon atas suatu kejadian.
- Mampu menyelesaikan kasus-kasus manipulasi data yang kompleks dengan
memanfaatkan trigger.
B. DASAR TEORI
1. Trigger
Trigger dapat di definisikan sebagi himpunan kode (prosedural) yang di
eksekusi secara otomatis sebagi respon atas suatu kejadian berkaitan dengan tbel
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) mendifinisikan aksi pada setia baris tabel, trigger pernyataan
hanya berlaku untuk setiap pernyataan INSERT, UPDATE, dan DELETE
digunakan untuk menentukan event (proses) yang dijadikan trigger (pemicu)

untuk menjalankan perintah perintah di dalam triggers.


Statment trigger yaitu trigger dijalankan sekali saja pada saat terjadi sebuah
event. Statement trigger juga dijalankan sekali, meskipun tidak ada satupun baris
yang dipengaruhi oleh event yang terjadi.

2. Definisi Trigger
CREATE TRIGGER nama_trigger [BEFORE/AFTER]
[INSERT/UPDATE/DELETE]
ON nama_table
FOR EACH ROW
BEGIN
//defisi trigger
END;

Dari sisi perilaku (behavior) eksekusi, trigger dapat dibedakan beberapa jenis,
namun umumnya ada dua jenis trigger BEFORE dan AFTER. Sesuai penamaannya,
jenis jenis ini mempresentasikan waktu eksekusi trigger misalnya sebelum ataukah
sesudah pernyataan-pernyataan yang berkorespondensi.

Before trigger menjalankan trigger action sebelum event atau statement


berlangsung. Oleh karena itu, trigger ini cocok digunakan untuk
mendeteksi bilamana event boleh dilanjutkan maupun tidak.

After trigger menjalankan trigger action setelah event terjadi.

Kita mungkin akan berhubungan dengan data lama (old) dan data baru (new) yang
terjadi dalam transaksi. Dalam trigger, dikenal istilah alias atau referensi, yaitu sejenis
variabel yang menyimpan nilai dari suatu kolom dalam tabel. Alias terbagi menjadi
dua, yaitu:
-

old variabel yang menyimpan nilai lama kolom sebelum trigger dieksekusi.

new variabel yang menyimpan nilai baru kolom setelah trigger dieksekusi.

3. Jenis Trigger
-

DDL Trigger

Trigger yang diimplementasikan ke dalam perintah SQL jenis DDL


diantaranya : Create, Alter, Grant, Deny, Revoke, Update Statistics, Drop.
-

DML Trigger
perintah SQL jenis DML yang mampu menerima Trigger, yaitu : Insert, Update,
Delete

4. Kelebihan dan kekurangan trigger


a. Kelebihan Trigger

Trigger menyediakan cara alternative untuk memeriksa integritas.

Trigger bias menangkap kesalahan dalam business logic pada tingkat database.

Trigger menyediakan cara alternative untuk menjalankan tugas-tugas yang


dijadwalkan

Trigger sangat berguna untuk mengaudit perubahan data dalam table database

b. Kelemahan Trigger

Trigger hanya bias menyediakan validasi tambahan tapi tidak dapat


menggantikan semua validasi

Beberapa validasi sederhana dapat dilakukan di level aplikasi, sbg Contoh : Kita
dapat menvalidasi inputan di sisi klien menggunakan javascript atau di sisi
server dengan menggunakan script PHP atau ASP.NET.

Trigger mengeksekusi secara tak terlihat dari klien-aplikasi yang terhubung ke


database server sehingga sulit untuk mencari tahu apa yang terjadi di level
database.

Trigger berjalan setiap update yang dibuat ke table sehingga menambah beban
kerja ke database dan menyebabkan system berjalan lebih lambat.
Ada kalanya trigger di pandang sebagai bentuk spesifikasi dari stored
procedure ( terkait pendefinisian body). Bagaimanapun, trigger akan di panggil
(secara otomatis) ketika event terjadi, sedangkan stored procedure harus di
panggil secara eksplisit.

C. STUDI KASUS 1
STUDI KASUS
1. Create database baru dengan nama praktikum1_studikasus

2. Create table

a. Tabel buruh

Analisa :
Create table buruh berfungsi untuk membuat tabel baru dengan nama tabel
yaitu buruh dalam tabel buruh terdiri dari 4 atribut yaitu id_buruh dengan type data
integer dimana data yang akan di inputkan adalah bilangan desimal, kemudian atribut
nama dengan type data name yang berfungsiuntuk menginputkan karakter sebenarnya
hampir sama dengan varchar jenispekerjaan dengan type data varchar(20) artinya data
karakter maksimal panjang adalah 20 karakter jika lebih maka karakter ke 21 ke
belakang tidak bisa tersimpan, antribut gaji berguna untuk menyimpan data gaji buruh
berupa bilangan desimal.
Select*from buruh; berfungsi untuk menampilkan data dari table buruh sedang
kan tanda * menampilkan keseluruan atribut yang ada di dalam table buruh.
b. Tabel backup_buruh

Analisa :
Create table backup_buruh berfungsi untuk membuat tabel backup dengan
nama tabel yaitu backup_buruh dalam tabel ini terdiri dari 5 atribut yaitu id_buruh
dengan type data integer dimana data yang akan di inputkan adalah bilangan desimal,
kemudian atribut nama dengan type data name yang berfungsiuntuk menginputkan
karakter sebenarnya hampir sama dengan varchar jenispekerjaan dengan type data
varchar(20) artinya data karakter maksimal panjang adalah 20 karakter jika lebih
maka karakter ke 21 ke belakang tidak bisa tersimpan, antribut gaji berguna untuk

menyimpan data gaji buruh berupa bilangan desimal dan atribut operation dengan
panjang varchar 25 karakter.
Select*from back_buruh; berfungsi untuk menampilkan data dari table backup
buruh sedang kan tanda * menampilkan keseluruan atribut yang ada di dalam table
buruh.
c. Tabel jenis_pekerjaan

Analisa :
create table jenis_pekerjaan berfungsi untuk membuat table baru dengan nama
table jenis_pekerjaan di dalam table jenis_pekerjaan terdiri dari 5 atribut, atribut
nomor denang tipe data integer intuk menginputkkan angka desimal, jenis_pekerjaan
dengan type data name, id_buruh dengan type data integer, lama_kerja berfungsi
untuk memasukan informasi lamanya uruh bekerja dengan type data integer sebagai
inputan penyimpanan dan atribut terakhir adalah gaji ber tipe data integer
Select*from jenis_pekerjaan ; berfungsi untuk menampilkan data dari table
backup buruh sedang kan tanda * menampilkan keseluruan atribut yang ada di dalam
table buruh.
d. Tabel gaji

Analisa :
Create table gaji berguna untuk membuat table baru dengan nama gaji dengan
atribut nomor, gaji dan kelas dan semua nya bertipe data integer karena yang akan di
inputkan angka desimal

Select* from gaji berguna untuk menampilkan data dan semua atribut yang
ada di dalam table gaji.
3. Alter table
a. Tabel buruh

Analisa :
Alter table buruh add alamat varchar(25); berfungsi untuh menambahkan
colom baru pada table buruh dengan atribut alamat bertype data varchar dan panjang
25 karakter jika lebih dari maka data tidak di simpan secara penuh.
Select*from buruh; berfungsi untuk menampilkan data dan atribut data
didalam table buruh
b. Tabel backup_buruh

Analisa :
Alter table backup_buruh add alamat varchar(25); berfungsi untuh
menambahkan colom baru pada table buruh dengan atribut alamat bertype data
varchar dan panjang 25 karakter jika lebih dari maka data tidak di simpan secara
penuh.
Select*from backup_buruh; berfungsi untuk menampilkan data dan atribut
data didalam table backup_buruh

4. Trigger

Analisa :
Trigger adalah blok SQL atau prosedur yang berhubungan dengan table, view,
skema atau database yang dijalankan secara implicit pada saat terjadi sebuah event.
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 Delelet dan bisa digabung jadi satu trigger
yang dinamakan Multiple Trigger
Dimana dalam kondisi ini create funtional backup dengan nama triger studi
kasus dimana jika tg_op bereven triger delete maka data akan dimasukkan kedalam
table backup_buruh dengan atribut id_buruh, nama, jenispekerjaan, gaji, operation
dan alamat dan value yang di isi adalah data berupa data data lama yang ada pada
table backup_buruh maka atribut operation akan menampilkan Delete
Jika tg_op bereven insert maka data yang akan di masukan ke dalam table
backup_buruh dengan atribut id_buruh, nama, jenispekerjaan, gaji, operation dan
alamat dan value yang di isi adalah data terbaru yang baru di inputkan ke database
maka atribut operation akan menampilkan insert
Jika tg_op bereven triger update maka data akan dimasukkan kedalam table
backup_buruh dengan atribut id_buruh, nama, jenispekerjaan, gaji, operation dan
alamat dan value dari atribut telah di berbarui maka atribut operation yang ada di table
backup_akan menampilkan Upadate.

Analisa :

Create triger audit_backup adalah query untuk membuat triger baru dengan
nama triger adalah audit_backup dimana triger akan di jalankan disaat even triger
seperti insert, delete dan update terpenuhi maka data baru akan di proses oleh triger
audit_backup yang berada pada table backup_buruh dimana triger tersebut akan di
hubungkan dengan prosedur backup() yang sudah di buat sebelumnya.
5. Insert

Analisa :
Insert into buruh berfungsi untuk menambahkan colom pada atribut yang ada
di table buruh misal atribut id_buruh, nama, jenispekerjaan , gaji, alamat akan di isi
dengan value id_ buruh = 12, nama=parmi, jenispekerjaan = tani, gaji=450 dan
alamat=jalan surabaya, dan seterusnya.
Select*from buruh ; berfungsi untuk menampilkan data dariatribut dan kolom
yang ada i dalam table buruh

6. Update

Analisa :
update buruh set gaji = 700 artinya mengganti informasi pada colom atribut
gaji menjadi 700 dimana data yang di rubah terletak pada id_buruh = 14 atas nama

Rozikin yang awal nya 570 akan menjadi 700 karena sudah di ganti oleh perintah
update.
Select * from buruh; berfungsi menampilkan semua data dari table buruh.
7. Delete

Analisa :
Fungsi delete untuk menghapus suatu informasi Delete from buruh where
id_buruh=16 dimana data yang akan di hapus terletak pada table buruh dimana yang
akan terhapus terletak pada id_buruh dengan id 16 atas nama mudia akan hilang
permanent dalam database di table buruh.
8. Insert ke - 2

Analisa :
Insert into buruh berfungsi untuk menambahkan colom pada atribut yang ada
di table buruh misal atribut id_buruh, nama, jenispekerjaan , gaji, alamat akan di isi
dengan value id_ buruh = 16, nama=mudia, jenispekerjaan = tani, gaji=360 dan
alamat=jalan sigura-gura, dan seterusnya. Dan table backup_buruh sebagai
monitoring operasi yang telah di jalan pada database.
Select*from buruh ; berfungsi untuk menampilkan data dariatribut dan kolom
yang ada i dalam table buruh
9. Drop table

Analisa :
Table berguna untuk menghapus secara permanent table dari suatu database,
Drop table gaji maka table gaji akan hilang dari database sehingga tidak bisa di akses
lagi dan jika di tampilkan dengan perintah select*from gaji maka secara otomatis akan
error karena data yang ada sudah tidak bisa di baca.

10. AVG

Analisa :
Perintah AVG adalah untuk menentukan Rata - Rata Select avg(gaji) as
rata_gaji from buruh; dalam query ini maka yang akan di rata_rata adalah atribut gaji
yang terdapat pada table buruh dan colom akan di nama ulang dengan perintah as dan
colom baru dari penentuan rata-rata adalah rata_rata_gaji_numeric
11. SUM

Analisis :
Sum berfungsi untuh menjumlahkan data yang bersifat integer dimana select
sum(gaji) as total_gaji from buruh akan menjumlah semua data yang berada pada
table buruh di colom gaji yang akan di jumlah dan akan di buatkan colom baru
dengan perintah as total_gaji dan output yang di tampilkan adalah jumlah
keseluruhan gaji burung sebanyak 2840.
12. Count

Analisa :
Count berfungsi untuk menghitung banyak nya data yang ada pada table
dengan kondisi select count(*) as jumlah_buruh from buruh; dimana select count(*)
dimana data yang di tampilkan adalah data banyak nya buruh ada 6 yang ada di tabel
buruh dan dibuatkan colom baru jumlah_buruh dengan query as jumlah_buruh
13. Min

Analisa :
Perintah Min berfungsi untuk memfilter data oaling kecil dalam database
dimana select min(gaji) as gaji_termurah from buruh akan memfilter di tabel buruh
pada atribut gaji dan as sebagai membuat colom baru dengan gaji_termurah integer
dan data yang di peroleh adalah 350 dimana gaji terkecil atas nama parmi
14. Max

Analisa :
Max yang berarti maksimal Select max(gaji) as gaji_termahal from buruh
maka data yang akan tampil adalah data gaji tertinggi dari table buruh dengan nama
colom baru gaji_termahalInteger dan gaji termahal dalam kondisi ini adalah akan di
tampil kan 700 dimana gaji ini atas nama Rozikin.
15. View

Analisa :
View bisa dikatakan table virtual yang bisa berasal dari table lain atau
gabungan dari beberapa tabel fungsi dari view adalah untuk keyamanan, keamanan,
dan dapat mempercepat proses menapilkan data create vBuruh untuk membuat view
baru dengan nama view adalah Vburuh. Dimana query di atas akan menampilkan data
gabungan dari 3 table yaitu table buruh, jenis _pekerjaan dan backup_data dimana
atribut yang di tampilkan adalah id_buruh, nama, jenis_pekerjaan, lama_kerja, gaji,
dan operation.
16. Select conditional

Analisa :
Select conditional berfungsi untuk memfilter data dimana data yang ingin di
temukan sesuai kondisi yang ingin di cari seperti query berikut Select*form buruh

where gaji > 350; dimana kondisi gaji yang akan di tampilkan lebih dari 350 maka
data gaji dibawah nya tidak akan tampil.
Pertanyaan Latihan Praktikum
Apa yg terjadi pada backup_tbl setelah melakukan insert update dan delete dengan
trigger ?

Pada table backup_tbl terjadi perubahan yaitu penambahan data secara otomatis
ketika table emp_table melakukan operasi insert delete dan update. Data masuk secara
otomatis disertai dengan operasi yang dilakukan.

KESIMPULAN
Trigger digunakan untuk memanggil satu atau beberapa perintah,
melakukan pengupdatan data otomatis dengan beberapa fungsi atau
perintah INSERT, UPDATE dan DELETE selain itu , di dalam laporan ini
juga terdapat beberapa fungsi yang digunakan diantaranya:
AVG atau average digunakan untuk mengeteahui rata-rata dari suatu data atau
pada suatu tabel
SUM adalah suatu fungsi sql yang digunakan untuk menjumlahkan nilai dari
suatu kumpulan record aau data
Count yaitu suatu fungsi yang digunakan untuk mendapatkan jumlah garis atau
record pada suatu tabel
Min atau Minimal adalah suatu fungsi untuk mendapatkan nilai terkecil aatau
minim dari kumpulan suatu tabel
Max atau Maximal adalah kebalikan dari Min yaitu suatu fungsi untuk
mendapatkan nilai tertinggi dari suatu tabel

a. DAFTAR PUSTAKA

Haritsthikso. 2016. Pengertian Trigger pada SQL.


(http://www.haritsthinkso.com/2010/01/pengertian-trigger-pada-sql.html).
Diakses pada tanggal 20 September 2016.

Galaxy. 2016. Materi Trigger (http://al-poenya.blogspot.co.id/2012/11/materitriger.html). Diakses pada tanggal 20 September 2016.

Anda mungkin juga menyukai