SlideShare a Scribd company logo
Trigger
Pemograman Basis Data
Kelompok :
Muh.Taufik H. (12410100126)
Moh.Toif Nizar Fatoni (12410100148)
Ekky Anugrah Putra (12410100156)
Reza Herbianto (12410100106)
*
Trigger adalah sebuah objek database yang diasosiasikan dengan
sebuah tabel dan akan aktif (terpicu/trigger) ketika sebuah event
terjadi pada tabel tersebut.
Event adalah sebuah proses yang akan dilakukan oleh sistem
ketika menemui suatu kejadian yang dipicu oleh perilaku dari luar
sistem.
Dalam sistem database perilaku di luar sistem yang memicu
adanya event adalah pada saat user melakukan modifikasi data,
maka secara otomatis trigger akan dijalankan.
Trigger hanya akan terjadi ketika ada eksekusi
INSERT,UPDATE,DELETE pada tabel yang bersangkutan.
PemogramanBasisData
*
Trigger dibuat sesuai dengan keperluan. Ada kalanya trigger perlu
dibuat, dan kadangkala tidak perlu dibuat.
 Trigger perlu dibuat pada saat :
• Membentuk sebuah aksi tertentu terhadap suatu event
• Memusatkan operasi global
 Trigger tidak perlu dibuat, jika :
• Fungsionalitas yang diperlukan ada pada Oracle server.
• Duplikat atau sama dengan fungsi trigger yang lain.
PemogramanBasisData
*
Trigger dapat digunakan untuk mengubah data sebelum
proses INSERT dilakukan atau untuk memberikan nilai
default.Misalnya mengubah data yang diluar nilai yang
diperbolehkan.Misalnya,jika ada pengisian nilai di atas
100 maka akan dijadikan 100.
Anda dapat menyimpan data suatu record ke tabel lain
(misalnya history) sebelum data tersebut diupdate atau
didelete.Sehingga semua perubahan data dapat dilacak
semenjak data itu dibuat.
PemogramanBasisData
*
1. Trigger timing :
*a. Untuk tabel : BEFORE, AFTER
*b. Untuk view : INSTEAD OF
2. Trigger event : INSERT, UPDATE atau DELETE
3. Nama tabel : yaitu nama tabel atau view yang
berhubungan dengan trigger.
4. Tipe trigger : Baris atau Pernyataan (statement)
5. Klausa WHEN : untuk kondisi pembatasan
6. Trigger body : bagian prosedur yang dituliskan pada
trigger.
PemogramanBasisData
*
Create Trigger nama_trigger
{ Before | After }
{ INSERT | UPDATE | DELETE }
ON nama_tabel
FOR EACH ROW
statement-statement
PemogramanBasisData
CREATE OR REPLACE TRIGGER secure_emp
BEFORE INSERT ON employees
BEGIN
IF (TO_CHAR(SYSDATE,'DY') IN ('SAT','SUN')) OR
(TO_CHAR(SYSDATE,'HH24:MI') NOT BETWEEN '08:00' AND '18:00')
THEN RAISE_APPLICATION_ERROR (-20500,'Penyisipan data pada
table
EMPLOYEES hanya diperbolehkan selama jam kerja');
END IF;
END;
Contoh trigger diatas akan membatasi penyisipan baris baru ke dalam table
EMPOYEES diperbolehkan hanya pada jam kerja mulai hari Senin sampai
Jum’at. Jika er menyisipkan baris baru diluar ketentuan tersebut, missal pada
hari sabtu maka akan tampil pesan kesalahan.
PemogramanBasisData
BEFORE INSERT OR UPDATE OR DELETE ON employees
BEGIN
IF (TO_CHAR (SYSDATE,'DY') IN ('SAT','SUN')) OR (TO_CHAR (SYSDATE, 'HH24') NOT BETWEEN
'08' AND '18')
THEN
IF DELETING THEN
RAISE_APPLICATION_ERROR (-20502,'You may delete from EMPLOYEES table only during
business hours.');
ELSIF INSERTING THEN
RAISE_APPLICATION_ERROR (-20500,'You may insert into EMPLOYEES table only during
business hours.');
ELSIF UPDATING ('SALARY') THEN
RAISE_APPLICATION_ERROR (-20503,'You may update SALARY only during business hours.');
ELSE
RAISE_APPLICATION_ERROR (-20504,'You may update EMPLOYEES table only during normal
hours.');
END IF;
END IF;
END;
Event pada trigger bisa dikombinasikan dalam dengan menggunakan predikat
kondisional INSERTING, UPDATING dan DELETING. Berikut ini akan dibuat trigger
yang menggunakan predikat kondisional INSERTING, UPDATING dan DELETING
untuk membatasi manipulasi data pada tabel EMPLOYEES hanya diperbolehkan pada
setiap jam kerja mulai hari Senin sampai Jum’at.
PemogramanBasisData
Berikut ini akan dibuat row trigger dengan timing BEFORE untuk
membatasi operasi DML pada table EMPLOYEES hanya
diperbolehkan untuk pegawai yang memiliki kode pekerjaan
‘AD_PRES’ dan ‘AD_VP’ serta memiliki gaji kurang dari 15000.
CREATE OR REPLACE TRIGGER restrict_salary
BEFORE INSERT OR UPDATE OF salary ON employees
FOR EACH ROW
BEGIN
IF NOT (:NEW.job_id IN ('AD_PRES', 'AD_VP'))
AND :NEW.salary > 15000
THEN
RAISE_APPLICATION_ERROR (-20202,'Employee
cannot earn this amount');
END IF;
END;
PemogramanBasisData
CREATE OR REPLACE TRIGGER audit_emp_values
AFTER DELETE OR INSERT OR UPDATE ON employees
FOR EACH ROW
BEGIN
INSERT INTO audit_emp_table (user_name, timestamp,
id, old_last_name, new_last_name, old_title,
new_title, old_salary, new_salary)
VALUES (USER, SYSDATE, :OLD.employee_id,
:OLD.last_name, :NEW.last_name, :OLD.job_id,
:NEW.job_id, :OLD.salary, :NEW.salary );
END;
Pada Row Trigger, nilai dari kolom sebelum dan sesudah perubahan data
dapat dirujuk dengan menggunakan OLD dan NEW qualifier. OLD dan
NEW hanya digunakan pada Row Trigger. OLD dan NEW menggunakan
prefiks (:) untuk pernyataan dalam perintah SQL. Jika qualifier ini terlibat
dalam pembatasan kondisi pada klausa WHEN, maka tidak digunakan
prefiks (:).
PemogramanBasisData
CREATE OR REPLACE TRIGGER derive_commission_pct
BEFORE INSERT OR UPDATE OF salary ON employees
FOR EACH ROW
WHEN (NEW.job_id = 'SA_REP')
BEGIN
IF INSERTING
THEN :NEW.commission_pct := 0;
ELSIF :OLD.commission_pct IS NULL
THEN :NEW.commission_pct := 0;
ELSE
:NEW.commission_pct := :OLD.commission_pct + 0.05;
END IF;
END;
Untuk membatasi operasi trigger hanya pada baris yang memenuhi kondisi
tertentu, maka digunakan klausa WHEN. Berikut ini akan dibuat trigger pada
tabel EMPLOYEES yang menghitung komisi yang diterima oleh seorang
pegawai pada saat sebuah baris ditambahkan ke dalam tabel EMPLOYEES,
atau pada saat dilakukan modifikasi pada gaji pegawai.
PemogramanBasisData
Untuk mengaktifkan atau menonaktifkan database trigger, digunakan
perintah :
ALTER TRIGGER trigger_name DISABLE | ENABLE
Untuk mengaktifkan atau menonaktifkan semua trigger yang berlaku
untuk sebuah tabel, digunakan perintah :
ALTER TABLE table_name DISABLE | ENABLE ALL
Untuk melakukan kompilasi ulang sebuah trigger, digunakan perintah
:
ALTER TRIGGER trigger_name COMPILE
Untuk menghapus trigger dari database, digunakan perintah :
DROP TRIGGER trigger_name
PemogramanBasisData
Terima Kasih Atas
Perhatiannya
∫ ∫

More Related Content

What's hot

Tugas normalisasi imaika penjualan komputer
Tugas normalisasi   imaika penjualan komputerTugas normalisasi   imaika penjualan komputer
Tugas normalisasi imaika penjualan komputer
Hamdi Hamdi
 
Pointer dan Linked List
Pointer dan Linked ListPointer dan Linked List
Pointer dan Linked List
Sherly Uda
 
Project charter
Project charterProject charter
Project charter
DhafaHikmawan
 
membuat function dalam mysql
membuat function dalam mysqlmembuat function dalam mysql
membuat function dalam mysql
sukangimpi
 
Latihan praktek microsoft access
Latihan praktek microsoft accessLatihan praktek microsoft access
Latihan praktek microsoft access
ndriehs
 
Modul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekModul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objek
imam arifin
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
Siti Khotijah
 
Perancangan database penyewaan lapangan
Perancangan database penyewaan lapanganPerancangan database penyewaan lapangan
Perancangan database penyewaan lapangan
evi kufia mahasanti
 
Class diagram
Class diagramClass diagram
Class diagram
Aris Saputro
 
Use skenario
Use skenarioUse skenario
Use skenario
Septyy Wulandary
 
Contoh store procedure dan function
Contoh store procedure dan functionContoh store procedure dan function
Contoh store procedure dan function
Erwin Setiawan
 
MudafiqRiyan - Trigger Pada Oracle 10g
MudafiqRiyan - Trigger Pada Oracle 10gMudafiqRiyan - Trigger Pada Oracle 10g
MudafiqRiyan - Trigger Pada Oracle 10g
Mudafiq R. Pratama
 
Rad, Agile & Extreme Programming
Rad, Agile & Extreme ProgrammingRad, Agile & Extreme Programming
Rad, Agile & Extreme Programming
Raka Auramuwahid
 
Laporan modul 5 basisdata
Laporan modul 5 basisdataLaporan modul 5 basisdata
Laporan modul 5 basisdata
Istu Purnamasari
 
T3 – Query Lanjutan [1]
T3 – Query Lanjutan [1]T3 – Query Lanjutan [1]
T3 – Query Lanjutan [1]
Siska Amelia
 
Data Mining - Naive Bayes
Data Mining - Naive BayesData Mining - Naive Bayes
Data Mining - Naive Bayes
dedidarwis
 
Tipe Data pada MySQL
Tipe Data pada MySQLTipe Data pada MySQL
Tipe Data pada MySQL
Materi Kuliah Online
 
Contoh skpl-software-manajemen-sekolah
Contoh skpl-software-manajemen-sekolahContoh skpl-software-manajemen-sekolah
Contoh skpl-software-manajemen-sekolah
DinilOctav
 
Makalah pemrograman c++ yang revisi
Makalah pemrograman c++ yang revisiMakalah pemrograman c++ yang revisi
Makalah pemrograman c++ yang revisi
JoshuaMadewa
 

What's hot (20)

Tugas normalisasi imaika penjualan komputer
Tugas normalisasi   imaika penjualan komputerTugas normalisasi   imaika penjualan komputer
Tugas normalisasi imaika penjualan komputer
 
Pointer dan Linked List
Pointer dan Linked ListPointer dan Linked List
Pointer dan Linked List
 
Project charter
Project charterProject charter
Project charter
 
Sorting ppt
Sorting ppt Sorting ppt
Sorting ppt
 
membuat function dalam mysql
membuat function dalam mysqlmembuat function dalam mysql
membuat function dalam mysql
 
Latihan praktek microsoft access
Latihan praktek microsoft accessLatihan praktek microsoft access
Latihan praktek microsoft access
 
Modul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekModul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objek
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
 
Perancangan database penyewaan lapangan
Perancangan database penyewaan lapanganPerancangan database penyewaan lapangan
Perancangan database penyewaan lapangan
 
Class diagram
Class diagramClass diagram
Class diagram
 
Use skenario
Use skenarioUse skenario
Use skenario
 
Contoh store procedure dan function
Contoh store procedure dan functionContoh store procedure dan function
Contoh store procedure dan function
 
MudafiqRiyan - Trigger Pada Oracle 10g
MudafiqRiyan - Trigger Pada Oracle 10gMudafiqRiyan - Trigger Pada Oracle 10g
MudafiqRiyan - Trigger Pada Oracle 10g
 
Rad, Agile & Extreme Programming
Rad, Agile & Extreme ProgrammingRad, Agile & Extreme Programming
Rad, Agile & Extreme Programming
 
Laporan modul 5 basisdata
Laporan modul 5 basisdataLaporan modul 5 basisdata
Laporan modul 5 basisdata
 
T3 – Query Lanjutan [1]
T3 – Query Lanjutan [1]T3 – Query Lanjutan [1]
T3 – Query Lanjutan [1]
 
Data Mining - Naive Bayes
Data Mining - Naive BayesData Mining - Naive Bayes
Data Mining - Naive Bayes
 
Tipe Data pada MySQL
Tipe Data pada MySQLTipe Data pada MySQL
Tipe Data pada MySQL
 
Contoh skpl-software-manajemen-sekolah
Contoh skpl-software-manajemen-sekolahContoh skpl-software-manajemen-sekolah
Contoh skpl-software-manajemen-sekolah
 
Makalah pemrograman c++ yang revisi
Makalah pemrograman c++ yang revisiMakalah pemrograman c++ yang revisi
Makalah pemrograman c++ yang revisi
 

Similar to Pemrograman Basis Data "Trigger"

PostgreSQL Trigger
PostgreSQL TriggerPostgreSQL Trigger
PostgreSQL Trigger
Ammar Shadiq
 
Cara membuat Trigger
Cara membuat TriggerCara membuat Trigger
Cara membuat Trigger
sukangimpi
 
Materi my sql part 5
Materi my sql part 5Materi my sql part 5
Materi my sql part 5
Amar Senjaku Ofdetraisar
 
Laporan 5
Laporan 5Laporan 5
Laporan 5
Saul Anizsa
 
Prak05 sbd 24010311130069
Prak05 sbd 24010311130069Prak05 sbd 24010311130069
Prak05 sbd 24010311130069sandy_n
 
Belajar Pemrograman Berbasis Web PHP DHTMLX Part 7 - Join Tables CRUD
Belajar Pemrograman Berbasis Web PHP DHTMLX Part 7 - Join Tables CRUDBelajar Pemrograman Berbasis Web PHP DHTMLX Part 7 - Join Tables CRUD
Belajar Pemrograman Berbasis Web PHP DHTMLX Part 7 - Join Tables CRUD
Tobing Manuppak
 
Laprak sbd
Laprak sbd Laprak sbd
Laprak sbd
Devia Indrasari
 
Trigger
TriggerTrigger
Trigger
Sherly Uda
 
Kamus pl sql
Kamus pl sqlKamus pl sql
Kamus pl sql
Teddy Soleh Susandi
 
015 function
015  function015  function
015 function
AmeliaYusnitaSitangg
 
Bab. 7
Bab. 7Bab. 7
Modul 8&9 maret 2013
Modul 8&9 maret 2013Modul 8&9 maret 2013
Modul 8&9 maret 2013
Muhammad Syafriansyah
 
Trigger Database
Trigger DatabaseTrigger Database
Trigger Database
Putra Andry
 
Modul my sql tutorial part 5
Modul my sql tutorial part 5Modul my sql tutorial part 5
Modul my sql tutorial part 5Ratzman III
 
Belajar pemrograman berbasis web php dhtmlx part 8 Transaction
Belajar pemrograman berbasis web php dhtmlx part 8  TransactionBelajar pemrograman berbasis web php dhtmlx part 8  Transaction
Belajar pemrograman berbasis web php dhtmlx part 8 Transaction
Tobing Manuppak
 
Pertemuan 09 (procedure dan function database)
Pertemuan 09 (procedure dan function database)Pertemuan 09 (procedure dan function database)
Pertemuan 09 (procedure dan function database)
Rifky A Ayub
 
Lapers 6 1235010002
Lapers 6 1235010002Lapers 6 1235010002
Lapers 6 1235010002
Abrianto Nugraha
 
Trigger
TriggerTrigger
Trigger
Putra Andry
 
Pratikum sistem basis data 3
Pratikum sistem basis data 3Pratikum sistem basis data 3
Pratikum sistem basis data 3
Nahot Frastian, M.Kom
 
Tutorial Postgre SQL
Tutorial Postgre SQLTutorial Postgre SQL
Tutorial Postgre SQL
Hari Setiaji
 

Similar to Pemrograman Basis Data "Trigger" (20)

PostgreSQL Trigger
PostgreSQL TriggerPostgreSQL Trigger
PostgreSQL Trigger
 
Cara membuat Trigger
Cara membuat TriggerCara membuat Trigger
Cara membuat Trigger
 
Materi my sql part 5
Materi my sql part 5Materi my sql part 5
Materi my sql part 5
 
Laporan 5
Laporan 5Laporan 5
Laporan 5
 
Prak05 sbd 24010311130069
Prak05 sbd 24010311130069Prak05 sbd 24010311130069
Prak05 sbd 24010311130069
 
Belajar Pemrograman Berbasis Web PHP DHTMLX Part 7 - Join Tables CRUD
Belajar Pemrograman Berbasis Web PHP DHTMLX Part 7 - Join Tables CRUDBelajar Pemrograman Berbasis Web PHP DHTMLX Part 7 - Join Tables CRUD
Belajar Pemrograman Berbasis Web PHP DHTMLX Part 7 - Join Tables CRUD
 
Laprak sbd
Laprak sbd Laprak sbd
Laprak sbd
 
Trigger
TriggerTrigger
Trigger
 
Kamus pl sql
Kamus pl sqlKamus pl sql
Kamus pl sql
 
015 function
015  function015  function
015 function
 
Bab. 7
Bab. 7Bab. 7
Bab. 7
 
Modul 8&9 maret 2013
Modul 8&9 maret 2013Modul 8&9 maret 2013
Modul 8&9 maret 2013
 
Trigger Database
Trigger DatabaseTrigger Database
Trigger Database
 
Modul my sql tutorial part 5
Modul my sql tutorial part 5Modul my sql tutorial part 5
Modul my sql tutorial part 5
 
Belajar pemrograman berbasis web php dhtmlx part 8 Transaction
Belajar pemrograman berbasis web php dhtmlx part 8  TransactionBelajar pemrograman berbasis web php dhtmlx part 8  Transaction
Belajar pemrograman berbasis web php dhtmlx part 8 Transaction
 
Pertemuan 09 (procedure dan function database)
Pertemuan 09 (procedure dan function database)Pertemuan 09 (procedure dan function database)
Pertemuan 09 (procedure dan function database)
 
Lapers 6 1235010002
Lapers 6 1235010002Lapers 6 1235010002
Lapers 6 1235010002
 
Trigger
TriggerTrigger
Trigger
 
Pratikum sistem basis data 3
Pratikum sistem basis data 3Pratikum sistem basis data 3
Pratikum sistem basis data 3
 
Tutorial Postgre SQL
Tutorial Postgre SQLTutorial Postgre SQL
Tutorial Postgre SQL
 

Recently uploaded

PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOKPENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
GusniartiGusniarti5
 
KKTP Kurikulum Merdeka sebagai Panduan dalam kurikulum merdeka
KKTP Kurikulum Merdeka sebagai Panduan dalam kurikulum merdekaKKTP Kurikulum Merdeka sebagai Panduan dalam kurikulum merdeka
KKTP Kurikulum Merdeka sebagai Panduan dalam kurikulum merdeka
irvansupriadi44
 
PPT ELABORASI PEMAHAMAN MODUL 1.4. budaya positfpdf
PPT ELABORASI PEMAHAMAN MODUL 1.4. budaya positfpdfPPT ELABORASI PEMAHAMAN MODUL 1.4. budaya positfpdf
PPT ELABORASI PEMAHAMAN MODUL 1.4. budaya positfpdf
SdyokoSusanto1
 
Observasi-Kelas-oleh-Kepala-Sekolah.pptx
Observasi-Kelas-oleh-Kepala-Sekolah.pptxObservasi-Kelas-oleh-Kepala-Sekolah.pptx
Observasi-Kelas-oleh-Kepala-Sekolah.pptx
akram124738
 
Aksi Nyata Merdeka Belajar Lolos Validasi
Aksi Nyata Merdeka Belajar Lolos ValidasiAksi Nyata Merdeka Belajar Lolos Validasi
Aksi Nyata Merdeka Belajar Lolos Validasi
DinaSetiawan2
 
Modul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Matematika Kelas 11 Fase F Kurikulum MerdekaModul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
Fathan Emran
 
Kisi-kisi PAT IPS Kelas 8 semester 2.pdf
Kisi-kisi PAT IPS Kelas 8 semester 2.pdfKisi-kisi PAT IPS Kelas 8 semester 2.pdf
Kisi-kisi PAT IPS Kelas 8 semester 2.pdf
indraayurestuw
 
705368319-Ppt-Aksi-Nyata-Membuat-Rancangan-Pembelajaran-Dengan-Metode-Fonik.pptx
705368319-Ppt-Aksi-Nyata-Membuat-Rancangan-Pembelajaran-Dengan-Metode-Fonik.pptx705368319-Ppt-Aksi-Nyata-Membuat-Rancangan-Pembelajaran-Dengan-Metode-Fonik.pptx
705368319-Ppt-Aksi-Nyata-Membuat-Rancangan-Pembelajaran-Dengan-Metode-Fonik.pptx
nimah111
 
SOAL ASAS SENI MUSIK kelas 2 semester 2 kurikulum merdeka
SOAL ASAS SENI MUSIK kelas 2 semester 2 kurikulum merdekaSOAL ASAS SENI MUSIK kelas 2 semester 2 kurikulum merdeka
SOAL ASAS SENI MUSIK kelas 2 semester 2 kurikulum merdeka
NiaTazmia2
 
Aksi Nyata Disiplin Positif: Hukuman vs Restitusi vs Konsekuensi
Aksi Nyata Disiplin Positif: Hukuman vs Restitusi vs KonsekuensiAksi Nyata Disiplin Positif: Hukuman vs Restitusi vs Konsekuensi
Aksi Nyata Disiplin Positif: Hukuman vs Restitusi vs Konsekuensi
sabir51
 
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIANSINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
NanieIbrahim
 
GERAKAN KERJASAMA DAN BEBERAPA INSTRUMEN NASIONAL PENCEGAHAN KORUPSI.pptx
GERAKAN KERJASAMA DAN BEBERAPA INSTRUMEN NASIONAL PENCEGAHAN KORUPSI.pptxGERAKAN KERJASAMA DAN BEBERAPA INSTRUMEN NASIONAL PENCEGAHAN KORUPSI.pptx
GERAKAN KERJASAMA DAN BEBERAPA INSTRUMEN NASIONAL PENCEGAHAN KORUPSI.pptx
fildiausmayusuf1
 
Powerpoint Materi Menyusun dan Merencanakan Modul Ajar
Powerpoint Materi Menyusun dan Merencanakan Modul AjarPowerpoint Materi Menyusun dan Merencanakan Modul Ajar
Powerpoint Materi Menyusun dan Merencanakan Modul Ajar
MashudiMashudi12
 
MODUL P5 FASE B KELAS 4 MEMBUAT COBRICK.pdf
MODUL P5 FASE B KELAS 4 MEMBUAT COBRICK.pdfMODUL P5 FASE B KELAS 4 MEMBUAT COBRICK.pdf
MODUL P5 FASE B KELAS 4 MEMBUAT COBRICK.pdf
YuristaAndriyani1
 
Kebijakan PPDB Siswa SMA dan SMK DIY 2024
Kebijakan PPDB Siswa SMA dan SMK DIY 2024Kebijakan PPDB Siswa SMA dan SMK DIY 2024
Kebijakan PPDB Siswa SMA dan SMK DIY 2024
DrEngMahmudKoriEffen
 
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
Fathan Emran
 
Modul Ajar PAI dan Budi Pekerti Kelas 8 Fase D Kurikulum Merdeka
Modul Ajar PAI dan Budi Pekerti Kelas 8 Fase D Kurikulum MerdekaModul Ajar PAI dan Budi Pekerti Kelas 8 Fase D Kurikulum Merdeka
Modul Ajar PAI dan Budi Pekerti Kelas 8 Fase D Kurikulum Merdeka
Fathan Emran
 
Juknis Materi KSM Kabkota - Pendaftaran[1].pdf
Juknis Materi KSM Kabkota - Pendaftaran[1].pdfJuknis Materi KSM Kabkota - Pendaftaran[1].pdf
Juknis Materi KSM Kabkota - Pendaftaran[1].pdf
HendraSagita2
 
PELAKSANAAN + Link2 Materi Pelatihan_ PENGAWASAN P3DN & TKDN_ pd PENGADAAN Ba...
PELAKSANAAN + Link2 Materi Pelatihan_ PENGAWASAN P3DN & TKDN_ pd PENGADAAN Ba...PELAKSANAAN + Link2 Materi Pelatihan_ PENGAWASAN P3DN & TKDN_ pd PENGADAAN Ba...
PELAKSANAAN + Link2 Materi Pelatihan_ PENGAWASAN P3DN & TKDN_ pd PENGADAAN Ba...
Kanaidi ken
 
1 Kisi-kisi PAT Sosiologi Kelas X -www.kherysuryawan.id.docx
1 Kisi-kisi PAT Sosiologi Kelas X -www.kherysuryawan.id.docx1 Kisi-kisi PAT Sosiologi Kelas X -www.kherysuryawan.id.docx
1 Kisi-kisi PAT Sosiologi Kelas X -www.kherysuryawan.id.docx
asepridwan50
 

Recently uploaded (20)

PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOKPENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
 
KKTP Kurikulum Merdeka sebagai Panduan dalam kurikulum merdeka
KKTP Kurikulum Merdeka sebagai Panduan dalam kurikulum merdekaKKTP Kurikulum Merdeka sebagai Panduan dalam kurikulum merdeka
KKTP Kurikulum Merdeka sebagai Panduan dalam kurikulum merdeka
 
PPT ELABORASI PEMAHAMAN MODUL 1.4. budaya positfpdf
PPT ELABORASI PEMAHAMAN MODUL 1.4. budaya positfpdfPPT ELABORASI PEMAHAMAN MODUL 1.4. budaya positfpdf
PPT ELABORASI PEMAHAMAN MODUL 1.4. budaya positfpdf
 
Observasi-Kelas-oleh-Kepala-Sekolah.pptx
Observasi-Kelas-oleh-Kepala-Sekolah.pptxObservasi-Kelas-oleh-Kepala-Sekolah.pptx
Observasi-Kelas-oleh-Kepala-Sekolah.pptx
 
Aksi Nyata Merdeka Belajar Lolos Validasi
Aksi Nyata Merdeka Belajar Lolos ValidasiAksi Nyata Merdeka Belajar Lolos Validasi
Aksi Nyata Merdeka Belajar Lolos Validasi
 
Modul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Matematika Kelas 11 Fase F Kurikulum MerdekaModul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
 
Kisi-kisi PAT IPS Kelas 8 semester 2.pdf
Kisi-kisi PAT IPS Kelas 8 semester 2.pdfKisi-kisi PAT IPS Kelas 8 semester 2.pdf
Kisi-kisi PAT IPS Kelas 8 semester 2.pdf
 
705368319-Ppt-Aksi-Nyata-Membuat-Rancangan-Pembelajaran-Dengan-Metode-Fonik.pptx
705368319-Ppt-Aksi-Nyata-Membuat-Rancangan-Pembelajaran-Dengan-Metode-Fonik.pptx705368319-Ppt-Aksi-Nyata-Membuat-Rancangan-Pembelajaran-Dengan-Metode-Fonik.pptx
705368319-Ppt-Aksi-Nyata-Membuat-Rancangan-Pembelajaran-Dengan-Metode-Fonik.pptx
 
SOAL ASAS SENI MUSIK kelas 2 semester 2 kurikulum merdeka
SOAL ASAS SENI MUSIK kelas 2 semester 2 kurikulum merdekaSOAL ASAS SENI MUSIK kelas 2 semester 2 kurikulum merdeka
SOAL ASAS SENI MUSIK kelas 2 semester 2 kurikulum merdeka
 
Aksi Nyata Disiplin Positif: Hukuman vs Restitusi vs Konsekuensi
Aksi Nyata Disiplin Positif: Hukuman vs Restitusi vs KonsekuensiAksi Nyata Disiplin Positif: Hukuman vs Restitusi vs Konsekuensi
Aksi Nyata Disiplin Positif: Hukuman vs Restitusi vs Konsekuensi
 
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIANSINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
 
GERAKAN KERJASAMA DAN BEBERAPA INSTRUMEN NASIONAL PENCEGAHAN KORUPSI.pptx
GERAKAN KERJASAMA DAN BEBERAPA INSTRUMEN NASIONAL PENCEGAHAN KORUPSI.pptxGERAKAN KERJASAMA DAN BEBERAPA INSTRUMEN NASIONAL PENCEGAHAN KORUPSI.pptx
GERAKAN KERJASAMA DAN BEBERAPA INSTRUMEN NASIONAL PENCEGAHAN KORUPSI.pptx
 
Powerpoint Materi Menyusun dan Merencanakan Modul Ajar
Powerpoint Materi Menyusun dan Merencanakan Modul AjarPowerpoint Materi Menyusun dan Merencanakan Modul Ajar
Powerpoint Materi Menyusun dan Merencanakan Modul Ajar
 
MODUL P5 FASE B KELAS 4 MEMBUAT COBRICK.pdf
MODUL P5 FASE B KELAS 4 MEMBUAT COBRICK.pdfMODUL P5 FASE B KELAS 4 MEMBUAT COBRICK.pdf
MODUL P5 FASE B KELAS 4 MEMBUAT COBRICK.pdf
 
Kebijakan PPDB Siswa SMA dan SMK DIY 2024
Kebijakan PPDB Siswa SMA dan SMK DIY 2024Kebijakan PPDB Siswa SMA dan SMK DIY 2024
Kebijakan PPDB Siswa SMA dan SMK DIY 2024
 
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
 
Modul Ajar PAI dan Budi Pekerti Kelas 8 Fase D Kurikulum Merdeka
Modul Ajar PAI dan Budi Pekerti Kelas 8 Fase D Kurikulum MerdekaModul Ajar PAI dan Budi Pekerti Kelas 8 Fase D Kurikulum Merdeka
Modul Ajar PAI dan Budi Pekerti Kelas 8 Fase D Kurikulum Merdeka
 
Juknis Materi KSM Kabkota - Pendaftaran[1].pdf
Juknis Materi KSM Kabkota - Pendaftaran[1].pdfJuknis Materi KSM Kabkota - Pendaftaran[1].pdf
Juknis Materi KSM Kabkota - Pendaftaran[1].pdf
 
PELAKSANAAN + Link2 Materi Pelatihan_ PENGAWASAN P3DN & TKDN_ pd PENGADAAN Ba...
PELAKSANAAN + Link2 Materi Pelatihan_ PENGAWASAN P3DN & TKDN_ pd PENGADAAN Ba...PELAKSANAAN + Link2 Materi Pelatihan_ PENGAWASAN P3DN & TKDN_ pd PENGADAAN Ba...
PELAKSANAAN + Link2 Materi Pelatihan_ PENGAWASAN P3DN & TKDN_ pd PENGADAAN Ba...
 
1 Kisi-kisi PAT Sosiologi Kelas X -www.kherysuryawan.id.docx
1 Kisi-kisi PAT Sosiologi Kelas X -www.kherysuryawan.id.docx1 Kisi-kisi PAT Sosiologi Kelas X -www.kherysuryawan.id.docx
1 Kisi-kisi PAT Sosiologi Kelas X -www.kherysuryawan.id.docx
 

Pemrograman Basis Data "Trigger"

  • 1. Trigger Pemograman Basis Data Kelompok : Muh.Taufik H. (12410100126) Moh.Toif Nizar Fatoni (12410100148) Ekky Anugrah Putra (12410100156) Reza Herbianto (12410100106)
  • 2. * Trigger adalah sebuah objek database yang diasosiasikan dengan sebuah tabel dan akan aktif (terpicu/trigger) ketika sebuah event terjadi pada tabel tersebut. Event adalah sebuah proses yang akan dilakukan oleh sistem ketika menemui suatu kejadian yang dipicu oleh perilaku dari luar sistem. Dalam sistem database perilaku di luar sistem yang memicu adanya event adalah pada saat user melakukan modifikasi data, maka secara otomatis trigger akan dijalankan. Trigger hanya akan terjadi ketika ada eksekusi INSERT,UPDATE,DELETE pada tabel yang bersangkutan. PemogramanBasisData
  • 3. * Trigger dibuat sesuai dengan keperluan. Ada kalanya trigger perlu dibuat, dan kadangkala tidak perlu dibuat.  Trigger perlu dibuat pada saat : • Membentuk sebuah aksi tertentu terhadap suatu event • Memusatkan operasi global  Trigger tidak perlu dibuat, jika : • Fungsionalitas yang diperlukan ada pada Oracle server. • Duplikat atau sama dengan fungsi trigger yang lain. PemogramanBasisData
  • 4. * Trigger dapat digunakan untuk mengubah data sebelum proses INSERT dilakukan atau untuk memberikan nilai default.Misalnya mengubah data yang diluar nilai yang diperbolehkan.Misalnya,jika ada pengisian nilai di atas 100 maka akan dijadikan 100. Anda dapat menyimpan data suatu record ke tabel lain (misalnya history) sebelum data tersebut diupdate atau didelete.Sehingga semua perubahan data dapat dilacak semenjak data itu dibuat. PemogramanBasisData
  • 5. * 1. Trigger timing : *a. Untuk tabel : BEFORE, AFTER *b. Untuk view : INSTEAD OF 2. Trigger event : INSERT, UPDATE atau DELETE 3. Nama tabel : yaitu nama tabel atau view yang berhubungan dengan trigger. 4. Tipe trigger : Baris atau Pernyataan (statement) 5. Klausa WHEN : untuk kondisi pembatasan 6. Trigger body : bagian prosedur yang dituliskan pada trigger. PemogramanBasisData
  • 6. * Create Trigger nama_trigger { Before | After } { INSERT | UPDATE | DELETE } ON nama_tabel FOR EACH ROW statement-statement PemogramanBasisData
  • 7. CREATE OR REPLACE TRIGGER secure_emp BEFORE INSERT ON employees BEGIN IF (TO_CHAR(SYSDATE,'DY') IN ('SAT','SUN')) OR (TO_CHAR(SYSDATE,'HH24:MI') NOT BETWEEN '08:00' AND '18:00') THEN RAISE_APPLICATION_ERROR (-20500,'Penyisipan data pada table EMPLOYEES hanya diperbolehkan selama jam kerja'); END IF; END; Contoh trigger diatas akan membatasi penyisipan baris baru ke dalam table EMPOYEES diperbolehkan hanya pada jam kerja mulai hari Senin sampai Jum’at. Jika er menyisipkan baris baru diluar ketentuan tersebut, missal pada hari sabtu maka akan tampil pesan kesalahan. PemogramanBasisData
  • 8. BEFORE INSERT OR UPDATE OR DELETE ON employees BEGIN IF (TO_CHAR (SYSDATE,'DY') IN ('SAT','SUN')) OR (TO_CHAR (SYSDATE, 'HH24') NOT BETWEEN '08' AND '18') THEN IF DELETING THEN RAISE_APPLICATION_ERROR (-20502,'You may delete from EMPLOYEES table only during business hours.'); ELSIF INSERTING THEN RAISE_APPLICATION_ERROR (-20500,'You may insert into EMPLOYEES table only during business hours.'); ELSIF UPDATING ('SALARY') THEN RAISE_APPLICATION_ERROR (-20503,'You may update SALARY only during business hours.'); ELSE RAISE_APPLICATION_ERROR (-20504,'You may update EMPLOYEES table only during normal hours.'); END IF; END IF; END; Event pada trigger bisa dikombinasikan dalam dengan menggunakan predikat kondisional INSERTING, UPDATING dan DELETING. Berikut ini akan dibuat trigger yang menggunakan predikat kondisional INSERTING, UPDATING dan DELETING untuk membatasi manipulasi data pada tabel EMPLOYEES hanya diperbolehkan pada setiap jam kerja mulai hari Senin sampai Jum’at. PemogramanBasisData
  • 9. Berikut ini akan dibuat row trigger dengan timing BEFORE untuk membatasi operasi DML pada table EMPLOYEES hanya diperbolehkan untuk pegawai yang memiliki kode pekerjaan ‘AD_PRES’ dan ‘AD_VP’ serta memiliki gaji kurang dari 15000. CREATE OR REPLACE TRIGGER restrict_salary BEFORE INSERT OR UPDATE OF salary ON employees FOR EACH ROW BEGIN IF NOT (:NEW.job_id IN ('AD_PRES', 'AD_VP')) AND :NEW.salary > 15000 THEN RAISE_APPLICATION_ERROR (-20202,'Employee cannot earn this amount'); END IF; END; PemogramanBasisData
  • 10. CREATE OR REPLACE TRIGGER audit_emp_values AFTER DELETE OR INSERT OR UPDATE ON employees FOR EACH ROW BEGIN INSERT INTO audit_emp_table (user_name, timestamp, id, old_last_name, new_last_name, old_title, new_title, old_salary, new_salary) VALUES (USER, SYSDATE, :OLD.employee_id, :OLD.last_name, :NEW.last_name, :OLD.job_id, :NEW.job_id, :OLD.salary, :NEW.salary ); END; Pada Row Trigger, nilai dari kolom sebelum dan sesudah perubahan data dapat dirujuk dengan menggunakan OLD dan NEW qualifier. OLD dan NEW hanya digunakan pada Row Trigger. OLD dan NEW menggunakan prefiks (:) untuk pernyataan dalam perintah SQL. Jika qualifier ini terlibat dalam pembatasan kondisi pada klausa WHEN, maka tidak digunakan prefiks (:). PemogramanBasisData
  • 11. CREATE OR REPLACE TRIGGER derive_commission_pct BEFORE INSERT OR UPDATE OF salary ON employees FOR EACH ROW WHEN (NEW.job_id = 'SA_REP') BEGIN IF INSERTING THEN :NEW.commission_pct := 0; ELSIF :OLD.commission_pct IS NULL THEN :NEW.commission_pct := 0; ELSE :NEW.commission_pct := :OLD.commission_pct + 0.05; END IF; END; Untuk membatasi operasi trigger hanya pada baris yang memenuhi kondisi tertentu, maka digunakan klausa WHEN. Berikut ini akan dibuat trigger pada tabel EMPLOYEES yang menghitung komisi yang diterima oleh seorang pegawai pada saat sebuah baris ditambahkan ke dalam tabel EMPLOYEES, atau pada saat dilakukan modifikasi pada gaji pegawai. PemogramanBasisData
  • 12. Untuk mengaktifkan atau menonaktifkan database trigger, digunakan perintah : ALTER TRIGGER trigger_name DISABLE | ENABLE Untuk mengaktifkan atau menonaktifkan semua trigger yang berlaku untuk sebuah tabel, digunakan perintah : ALTER TABLE table_name DISABLE | ENABLE ALL Untuk melakukan kompilasi ulang sebuah trigger, digunakan perintah : ALTER TRIGGER trigger_name COMPILE Untuk menghapus trigger dari database, digunakan perintah : DROP TRIGGER trigger_name PemogramanBasisData