SlideShare a Scribd company logo
1 of 20
TRIGGER
Praktikum Sistem Basis Data
agus andri putra, ST.
Definisi Trigger
• Trigger adalah sebuah objek database yang di
asosiasikan dengan sebuah tabel dan akan aktif
(terpicu/trigger) ketika sebuah event terjadi pada tabel
tersebut
• Trigger hanya terjadi ketika ada eksekusi INSERT,
DELETE, dan UPDATE pada tabel yang
bersangkutan
• Waktu eksekusi trigger yang mungkin terjadi terdiri
dari 2 yaitu BEFORE dan AFTER dari statement
SQLnya
agus andri putra, ST.
Keuntungan menggunakan Trigger
 Trigger dapat digunakan untuk mengubah data
sebelum proses INSERT dilakukan atau untuk
memberikan nilai default, misalnya mengubah data
diluar nilai yang diperbolehkan, contoh : jika ada
pengisian nilai diatas 100, maka akan di jadikan
100.
 Kita dapat menyimpan data suatu record ke tabel
lain ( misalnya history) sebelum data tersebut
diupdate atau di delete. Sehingga semua
perubahan data dapat dilacak dari sejak data itu di
buat
agus andri putra, ST.
STRUKTUR TRIGGER
agus andri putra, ST.
Mengakses nilai baru dan lama
 Dalam trigger, kita dapat mengakses data lama
dan data baru . Data lama dapat direference
dengan record OLD dan data baru dengan record
NEW
 Untuk mengacu ke sebuah field dapat ditulis
dengan NEW.nama_field atau OLD.nama_field
agus andri putra, ST.
Contoh 1
 Ada sebuah tabel mahasiswa ( nim, nama,
alamat)
 Buatlah sebuah trigger yang akan menyimpan
history alamat. Jika sebuah alamat berubah,
maka alamat lama harus disimpan di tabel
history alamat.
agus andri putra, ST.
Kemudian isi tabel tersebut sesuai dengan type data dan nama field
nya
Dan siapkan tabel history untuk penyimpanan selanjutnya :
agus andri putra, ST.
Create trigger
agus andri putra, ST.
Contoh penggunaan trigger
Mengubah data yang sudah dengan :
Maka data yang lama akan disimpan di tabel history_alamat_mahasiswa
agus andri putra, ST.
 Untuk bisa melihat alamat yang pernah di
pakai oleh nim “1210705138”
Inilah tampilannya :
agus andri putra, ST.
Optimalisasi trigger
 Trigger pertama mempunyai kekurangan yaitu ketika
ada perubahan di tabel ‘mahasiswa’ walaupun tidak
mengubah kolom alamat, maka statement INSERT
ditabel history akan dijalankan. Untuk
mengoptimalkannya dengan membuat trigger seperti
ini :
agus andri putra, ST.
Contoh 2
 Buatlah suatu trigger yang akan dieksekusi ketika ada
perubahan NIM di tabel ‘mahasiswa’ yang akan
melakukan update ke tabel ‘history_alamat_mahasiswa’
untuk menyesuaikan NIM-nya agar relasinya tidak
terlepas
agus andri putra, ST.
 Jika kita mengeksekusi trigger tersebut maka akan
peringatan yang berisi :
 Artinya kita tidak bisa membuat multiple trigger
pada sebuah tabel pada waktu dan event yang
sama
 Solusi yang bisa dilakukan adalah menggabung isi
trigger trig_update_mahasiswa dengan isi trigger
baru
agus andri putra, ST.
Penggabungan trigger
Trigger baru
agus andri putra, ST.
Perubahan contoh 2
Hasil :
UPDATE mahasiswa SET nim= 1210705140 WHERE nim= 1210705138;
Hasil :
agus andri putra, ST.
Keterangan tambahan
 Trigger pada contoh sebelumnya bisa dimodifikasi
untuk membuat trigger yang akan menghapus semua
data pada tabel ‘history_alamat_mahasiswa’ ketika ada
penghapusan pada tabel ‘mahasiswa’
 Hal tersebut bisa dilakukan dengan membuat trigger
“AFTER DELETE ON mahasiswa’ yang akan
menghapus semua data pada tabel
history_alamat_mahasiswa yang sesuai nim-nya
dengan nim dari tabel ‘mahasiswa’ yang akan dihapus
(“DELETE FROM history_alamat_mahasiswa WHERE
nim=OLD.nim”)
agus andri putra, ST.
Contoh 3
 Buatlah suatu trigger yang mencegah perubahan
pada primary key tabel ‘mahasiswa’ (field nim). Jika
ada perubahan, maka nim tidak boleh berubah
 Hal ini dapat dilakukan yaitu dengan mengeset nilai
nim yang baru (NEW.nim) dengan nilai yang sama
(OLD.nim)
agus andri putra, ST.
Contoh 3
Buat trigger baru dengan nama “trig_update_nim_mahasiswa”
agus andri putra, ST.
Hasil
Nim baru , tapi tidak akan berpengaruh
agus andri putra, ST.
Latihan praktek
 Buatlah sebuah tabel untuk menyimpan data
transaksi transfer yang strukturnya sebagai berikut :
 NoTransaksi :INT auto_increment
 WaktuTransaksi :DATATIME
 NoRekPengirim :INT, FK REF rekening(No)
 NoRekPenerima :INT, FK REF rekening(No)
 BesarTransfer :DOUBLE
 Jika penambahan data dari tabel transfer (AFTER
INSERT ON transfer), maka akan mengupdate
saldo pada rekening yang bersangkutan sesuai
dengan besar transfer
Kelas IF-B
agus andri putra, ST.

More Related Content

Similar to OPTIMASI TRIGGER

Trigger Database
Trigger DatabaseTrigger Database
Trigger DatabasePutra Andry
 
Prak05 sbd 24010311130069
Prak05 sbd 24010311130069Prak05 sbd 24010311130069
Prak05 sbd 24010311130069sandy_n
 
PostgreSQL Trigger
PostgreSQL TriggerPostgreSQL Trigger
PostgreSQL TriggerAmmar Shadiq
 
Pemrograman Basis Data "Trigger"
Pemrograman Basis Data "Trigger"Pemrograman Basis Data "Trigger"
Pemrograman Basis Data "Trigger"Opik Oenk
 
Cara membuat Trigger
Cara membuat TriggerCara membuat Trigger
Cara membuat Triggersukangimpi
 

Similar to OPTIMASI TRIGGER (7)

Trigger Database
Trigger DatabaseTrigger Database
Trigger Database
 
Prak05 sbd 24010311130069
Prak05 sbd 24010311130069Prak05 sbd 24010311130069
Prak05 sbd 24010311130069
 
Modul 8&9 maret 2013
Modul 8&9 maret 2013Modul 8&9 maret 2013
Modul 8&9 maret 2013
 
PostgreSQL Trigger
PostgreSQL TriggerPostgreSQL Trigger
PostgreSQL Trigger
 
Pemrograman Basis Data "Trigger"
Pemrograman Basis Data "Trigger"Pemrograman Basis Data "Trigger"
Pemrograman Basis Data "Trigger"
 
Cara membuat Trigger
Cara membuat TriggerCara membuat Trigger
Cara membuat Trigger
 
Trigger
TriggerTrigger
Trigger
 

More from Putra Andry

Pertemuan viii Sorting
Pertemuan viii SortingPertemuan viii Sorting
Pertemuan viii SortingPutra Andry
 
Pertemuan vi (Function Java)
Pertemuan vi (Function Java)Pertemuan vi (Function Java)
Pertemuan vi (Function Java)Putra Andry
 
Procedure dalam Pascal
Procedure dalam PascalProcedure dalam Pascal
Procedure dalam PascalPutra Andry
 
Pengolahan transaksi
Pengolahan transaksiPengolahan transaksi
Pengolahan transaksiPutra Andry
 
Stored procedure
Stored procedureStored procedure
Stored procedurePutra Andry
 
Membuat responsif html email sederhana
Membuat responsif html email sederhanaMembuat responsif html email sederhana
Membuat responsif html email sederhanaPutra Andry
 
Akses multiple table part2
Akses multiple table part2Akses multiple table part2
Akses multiple table part2Putra Andry
 
Dasar Pemrograman Part VII
Dasar Pemrograman Part VIIDasar Pemrograman Part VII
Dasar Pemrograman Part VIIPutra Andry
 
Dasar Pemrograman Part VI
Dasar Pemrograman Part VIDasar Pemrograman Part VI
Dasar Pemrograman Part VIPutra Andry
 
Dasar Pemrograman Part V
Dasar Pemrograman Part VDasar Pemrograman Part V
Dasar Pemrograman Part VPutra Andry
 
Dasar Pemrograman Part III
Dasar Pemrograman Part IIIDasar Pemrograman Part III
Dasar Pemrograman Part IIIPutra Andry
 
Dasar Pemrograman Part II
Dasar Pemrograman Part IIDasar Pemrograman Part II
Dasar Pemrograman Part IIPutra Andry
 
Dasar Pemrograman Part I
Dasar Pemrograman Part IDasar Pemrograman Part I
Dasar Pemrograman Part IPutra Andry
 

More from Putra Andry (19)

Pertemuan viii Sorting
Pertemuan viii SortingPertemuan viii Sorting
Pertemuan viii Sorting
 
Pertemuan vi (Function Java)
Pertemuan vi (Function Java)Pertemuan vi (Function Java)
Pertemuan vi (Function Java)
 
Pertemuan V
Pertemuan VPertemuan V
Pertemuan V
 
Function
FunctionFunction
Function
 
Procedure dalam Pascal
Procedure dalam PascalProcedure dalam Pascal
Procedure dalam Pascal
 
Pertemuan 9
Pertemuan 9Pertemuan 9
Pertemuan 9
 
Pengolahan transaksi
Pengolahan transaksiPengolahan transaksi
Pengolahan transaksi
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
Pertemuan 8
Pertemuan 8Pertemuan 8
Pertemuan 8
 
Membuat responsif html email sederhana
Membuat responsif html email sederhanaMembuat responsif html email sederhana
Membuat responsif html email sederhana
 
Join
JoinJoin
Join
 
Akses multiple table part2
Akses multiple table part2Akses multiple table part2
Akses multiple table part2
 
Sql outer join
Sql  outer joinSql  outer join
Sql outer join
 
Dasar Pemrograman Part VII
Dasar Pemrograman Part VIIDasar Pemrograman Part VII
Dasar Pemrograman Part VII
 
Dasar Pemrograman Part VI
Dasar Pemrograman Part VIDasar Pemrograman Part VI
Dasar Pemrograman Part VI
 
Dasar Pemrograman Part V
Dasar Pemrograman Part VDasar Pemrograman Part V
Dasar Pemrograman Part V
 
Dasar Pemrograman Part III
Dasar Pemrograman Part IIIDasar Pemrograman Part III
Dasar Pemrograman Part III
 
Dasar Pemrograman Part II
Dasar Pemrograman Part IIDasar Pemrograman Part II
Dasar Pemrograman Part II
 
Dasar Pemrograman Part I
Dasar Pemrograman Part IDasar Pemrograman Part I
Dasar Pemrograman Part I
 

Recently uploaded

Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docxModul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docxherisriwahyuni
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxRezaWahyuni6
 
polinomial dan suku banyak kelas 11..ppt
polinomial dan suku banyak kelas 11..pptpolinomial dan suku banyak kelas 11..ppt
polinomial dan suku banyak kelas 11..pptGirl38
 
Edukasi Haji 2023 pembinaan jemaah hajii
Edukasi Haji 2023 pembinaan jemaah hajiiEdukasi Haji 2023 pembinaan jemaah hajii
Edukasi Haji 2023 pembinaan jemaah hajiiIntanHanifah4
 
Model Manajemen Strategi Public Relations
Model Manajemen Strategi Public RelationsModel Manajemen Strategi Public Relations
Model Manajemen Strategi Public RelationsAdePutraTunggali
 
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptxPanduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptxsudianaade137
 
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxDESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxFuzaAnggriana
 
04-Gemelli.- kehamilan ganda- duo atau triplet
04-Gemelli.- kehamilan ganda- duo atau triplet04-Gemelli.- kehamilan ganda- duo atau triplet
04-Gemelli.- kehamilan ganda- duo atau tripletMelianaJayasaputra
 
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASaku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASreskosatrio1
 
Demonstrasi Kontekstual Modul 1.2. pdf
Demonstrasi Kontekstual  Modul 1.2.  pdfDemonstrasi Kontekstual  Modul 1.2.  pdf
Demonstrasi Kontekstual Modul 1.2. pdfvebronialite32
 
Karakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaKarakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaNadia Putri Ayu
 
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxAKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxWirionSembiring2
 
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdfLAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdfChrodtianTian
 
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxTopik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxsyafnasir
 
Materi Bimbingan Manasik Haji Tarwiyah.pptx
Materi Bimbingan Manasik Haji Tarwiyah.pptxMateri Bimbingan Manasik Haji Tarwiyah.pptx
Materi Bimbingan Manasik Haji Tarwiyah.pptxc9fhbm7gzj
 
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...MarwanAnugrah
 
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...Kanaidi ken
 
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxKesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxDwiYuniarti14
 
adap penggunaan media sosial dalam kehidupan sehari-hari.pptx
adap penggunaan media sosial dalam kehidupan sehari-hari.pptxadap penggunaan media sosial dalam kehidupan sehari-hari.pptx
adap penggunaan media sosial dalam kehidupan sehari-hari.pptxmtsmampunbarub4
 
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxPPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxnerow98
 

Recently uploaded (20)

Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docxModul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptx
 
polinomial dan suku banyak kelas 11..ppt
polinomial dan suku banyak kelas 11..pptpolinomial dan suku banyak kelas 11..ppt
polinomial dan suku banyak kelas 11..ppt
 
Edukasi Haji 2023 pembinaan jemaah hajii
Edukasi Haji 2023 pembinaan jemaah hajiiEdukasi Haji 2023 pembinaan jemaah hajii
Edukasi Haji 2023 pembinaan jemaah hajii
 
Model Manajemen Strategi Public Relations
Model Manajemen Strategi Public RelationsModel Manajemen Strategi Public Relations
Model Manajemen Strategi Public Relations
 
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptxPanduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
 
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxDESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
 
04-Gemelli.- kehamilan ganda- duo atau triplet
04-Gemelli.- kehamilan ganda- duo atau triplet04-Gemelli.- kehamilan ganda- duo atau triplet
04-Gemelli.- kehamilan ganda- duo atau triplet
 
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASaku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
 
Demonstrasi Kontekstual Modul 1.2. pdf
Demonstrasi Kontekstual  Modul 1.2.  pdfDemonstrasi Kontekstual  Modul 1.2.  pdf
Demonstrasi Kontekstual Modul 1.2. pdf
 
Karakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaKarakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional Dunia
 
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxAKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
 
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdfLAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
 
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxTopik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
 
Materi Bimbingan Manasik Haji Tarwiyah.pptx
Materi Bimbingan Manasik Haji Tarwiyah.pptxMateri Bimbingan Manasik Haji Tarwiyah.pptx
Materi Bimbingan Manasik Haji Tarwiyah.pptx
 
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
 
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
 
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxKesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
 
adap penggunaan media sosial dalam kehidupan sehari-hari.pptx
adap penggunaan media sosial dalam kehidupan sehari-hari.pptxadap penggunaan media sosial dalam kehidupan sehari-hari.pptx
adap penggunaan media sosial dalam kehidupan sehari-hari.pptx
 
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxPPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
 

OPTIMASI TRIGGER

  • 1. TRIGGER Praktikum Sistem Basis Data agus andri putra, ST.
  • 2. Definisi Trigger • Trigger adalah sebuah objek database yang di asosiasikan dengan sebuah tabel dan akan aktif (terpicu/trigger) ketika sebuah event terjadi pada tabel tersebut • Trigger hanya terjadi ketika ada eksekusi INSERT, DELETE, dan UPDATE pada tabel yang bersangkutan • Waktu eksekusi trigger yang mungkin terjadi terdiri dari 2 yaitu BEFORE dan AFTER dari statement SQLnya agus andri putra, ST.
  • 3. Keuntungan menggunakan Trigger  Trigger dapat digunakan untuk mengubah data sebelum proses INSERT dilakukan atau untuk memberikan nilai default, misalnya mengubah data diluar nilai yang diperbolehkan, contoh : jika ada pengisian nilai diatas 100, maka akan di jadikan 100.  Kita dapat menyimpan data suatu record ke tabel lain ( misalnya history) sebelum data tersebut diupdate atau di delete. Sehingga semua perubahan data dapat dilacak dari sejak data itu di buat agus andri putra, ST.
  • 5. Mengakses nilai baru dan lama  Dalam trigger, kita dapat mengakses data lama dan data baru . Data lama dapat direference dengan record OLD dan data baru dengan record NEW  Untuk mengacu ke sebuah field dapat ditulis dengan NEW.nama_field atau OLD.nama_field agus andri putra, ST.
  • 6. Contoh 1  Ada sebuah tabel mahasiswa ( nim, nama, alamat)  Buatlah sebuah trigger yang akan menyimpan history alamat. Jika sebuah alamat berubah, maka alamat lama harus disimpan di tabel history alamat. agus andri putra, ST.
  • 7. Kemudian isi tabel tersebut sesuai dengan type data dan nama field nya Dan siapkan tabel history untuk penyimpanan selanjutnya : agus andri putra, ST.
  • 9. Contoh penggunaan trigger Mengubah data yang sudah dengan : Maka data yang lama akan disimpan di tabel history_alamat_mahasiswa agus andri putra, ST.
  • 10.  Untuk bisa melihat alamat yang pernah di pakai oleh nim “1210705138” Inilah tampilannya : agus andri putra, ST.
  • 11. Optimalisasi trigger  Trigger pertama mempunyai kekurangan yaitu ketika ada perubahan di tabel ‘mahasiswa’ walaupun tidak mengubah kolom alamat, maka statement INSERT ditabel history akan dijalankan. Untuk mengoptimalkannya dengan membuat trigger seperti ini : agus andri putra, ST.
  • 12. Contoh 2  Buatlah suatu trigger yang akan dieksekusi ketika ada perubahan NIM di tabel ‘mahasiswa’ yang akan melakukan update ke tabel ‘history_alamat_mahasiswa’ untuk menyesuaikan NIM-nya agar relasinya tidak terlepas agus andri putra, ST.
  • 13.  Jika kita mengeksekusi trigger tersebut maka akan peringatan yang berisi :  Artinya kita tidak bisa membuat multiple trigger pada sebuah tabel pada waktu dan event yang sama  Solusi yang bisa dilakukan adalah menggabung isi trigger trig_update_mahasiswa dengan isi trigger baru agus andri putra, ST.
  • 15. Perubahan contoh 2 Hasil : UPDATE mahasiswa SET nim= 1210705140 WHERE nim= 1210705138; Hasil : agus andri putra, ST.
  • 16. Keterangan tambahan  Trigger pada contoh sebelumnya bisa dimodifikasi untuk membuat trigger yang akan menghapus semua data pada tabel ‘history_alamat_mahasiswa’ ketika ada penghapusan pada tabel ‘mahasiswa’  Hal tersebut bisa dilakukan dengan membuat trigger “AFTER DELETE ON mahasiswa’ yang akan menghapus semua data pada tabel history_alamat_mahasiswa yang sesuai nim-nya dengan nim dari tabel ‘mahasiswa’ yang akan dihapus (“DELETE FROM history_alamat_mahasiswa WHERE nim=OLD.nim”) agus andri putra, ST.
  • 17. Contoh 3  Buatlah suatu trigger yang mencegah perubahan pada primary key tabel ‘mahasiswa’ (field nim). Jika ada perubahan, maka nim tidak boleh berubah  Hal ini dapat dilakukan yaitu dengan mengeset nilai nim yang baru (NEW.nim) dengan nilai yang sama (OLD.nim) agus andri putra, ST.
  • 18. Contoh 3 Buat trigger baru dengan nama “trig_update_nim_mahasiswa” agus andri putra, ST.
  • 19. Hasil Nim baru , tapi tidak akan berpengaruh agus andri putra, ST.
  • 20. Latihan praktek  Buatlah sebuah tabel untuk menyimpan data transaksi transfer yang strukturnya sebagai berikut :  NoTransaksi :INT auto_increment  WaktuTransaksi :DATATIME  NoRekPengirim :INT, FK REF rekening(No)  NoRekPenerima :INT, FK REF rekening(No)  BesarTransfer :DOUBLE  Jika penambahan data dari tabel transfer (AFTER INSERT ON transfer), maka akan mengupdate saldo pada rekening yang bersangkutan sesuai dengan besar transfer Kelas IF-B agus andri putra, ST.