SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
Trigger Pada Oracle 10g
Mudafiq R. Pratama
mudafiq.riyan@yahoo.com
http://mudafiqriyan.com



   Lisensi Dokumen:
   Copyright © 2012 MudafiqRiyan.Com
   Seluruh dokumen di MudafiqRiyan.Com dapat digunakan, dimodifikasi dan
   disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat
   tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang
   disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang,
   kecuali mendapatkan ijin terlebih dahulu dari MudafiqRiyan.Com.




Pendahuluan
         Trigger adalah blok PL/SQL yang disimpan dalam database dan akan diaktivasi
ketika kita melakukan statement-statement SQL (DELETE, UPDATE, dan INSERT)
pada sebuah tabel. Aktivasi trigger didasarkan pada event yang terjadi di dalam tabel
tersebut sehingga trigger dapat membantu dalam menjaga integritas dan konsistensi data.
Implementasi trigger yang sering ditemui dalam dunia nyata adalah untuk mengeset dan
mengubah nilai kolom dalam suatu tabel sehingga validasi nilai dari tabel tersebut akan
terjaga. Adanya trigger dalam database akan meringankan kita dalam pembuatan
aplikasi karena di dalam aplikasi yang kita buat, kita tidak perlu lagi untuk melakukan
validasi data.



Membuat Trigger
         Oracle telah menyediakan statement CREATE TRIGGER untuk membuat
sebuah trigger yang selanjutnya akan diaktivasi berdasarkan event tertentu. Secara
umum, event trigger terbagi menjadi dua, yaitu BEFORE (sebelum) dan AFTER
(setelah). Event tersebut menandakan kapan trigger akan diaktivasi, apakah sebelum
ataukah sesudah proses yang dilakukan di dalam tabel bersangkutan



Ikatlah Ilmu Dengan Menulisnya                                                       1.
Copyright © 2012MudafiqRiyan.Com
Daftar event yang mungkin digunakan untuk mengaktifkan trigger:




        Model-model yang digunakan untuk menspesifikasi aturan basis data aktif
adalah model ECA (Event-Condition-Action). Aturan dalam model ECA memiliki tiga
komponen yaitu:
   1. Event
       Event yang memicu suatu rule tersebut biasanya berupa operasi perubahan basis
       data yang secara eksplisit ditambahkan ke basis data. Namun pada umumnya,
       bisa berupa event temporal atau jenis event eksternal yang lain.
   2. Condition
       Condition menentukan apakah suatu rule dijalankan atau tidak. Ketika suatu
       trigger dijalankan, maka bagian condition (bersifat optional) akan dievaluasi jika
       didefinisikan oleh yang membuat trigger. Jika evaluasi bagian condition bernilai
       TRUE maka aksi suatu rule dijalankan.
   3. Action
       Action biasanya berupa statement sql.


Format Penggunaan Trigger Pada Umumnya
                  CREATE [OR REPLACE] TRIGGER trigger_name
                           {BEFORE | AFTER} triggering_event
                  [referencing_clause]
                           [WHEN trigger_condition]
                           [FOR EACH ROW]
                           Trigger_body;


Ikatlah Ilmu Dengan Menulisnya                                                       2.
Copyright © 2012MudafiqRiyan.Com
Dimana trigger_name adalah nama trigger, triggering_event menspesifikasikan event
yang firing (menyalakan) trigger, dan trigger_body adalah kode utama untuk trigger.
Referencing_clause digunakan untuk menunjuk pada data dalam baris yang saat ini
sedang dimodifikasi dengan nama yang berbeda. Jika ada trigger_condition dalam
klausa WHEN, pertama akan dievaluasi dan kemudian trigger_body dieksekusi hanya
jika hasil evaluasi bernilai TRUE.
        Trigger dapat dinyalakan sebelum (before) atau sesudah (after) eksekusi
statement, dan dapat dinyalakan sekali tiap baris yang dipengaruhi atau sekali tiap
statement. Kombinasi dari tiga faktor ini menetukan tipe trigger. Ada total 12
kemungkinan: 3 statement x 2 timing x 2 level.


Tabel berikut menunjukkan tipe dari trigger Data Manipulating Language




Ikatlah Ilmu Dengan Menulisnya                                                 3.
Copyright © 2012MudafiqRiyan.Com
Contoh penggunaan trigger




SQL pembuatan tabel dosen:
 Create table dosen(
          nip_dosen char(10) primary key not null,
          nama_dosen char(20),
          jumlah_wali integer default 0
 )

SQL pembuatan tabel mahasiswa:
 Create table mahasiswa(
          nrp_mhs char(10) primary key not null,
          nama_mhs char(20),
          id_wali char(10) not null,
          foreign key (id_wali) references dosen(nip_dosen)
 )

        Pada tabel dosen JUMLAH_WALI diatur dengan nilai awal default null atau 0.
NIP_DOSEN merupakan primary key pada tabel dosen dan menjadi references di tabel
mahasiswa dengan foreign key ID_WALI dan NRP_MHS sebagai primary key pada
tabel mahasiswa. Untuk menjaga agar nilai-nilai derived attribute tetap benar, dapat
dilakukan dengan menggunakan trigger. Event-event yang dapat mempengaruhi
perubahan nilai dari jumlah_wali sebagai berikut:
     1. INSERT mahasiswa baru
     2. UPDATE mahasiswa dari id_wali satu ke id_wali yang lain
     3. DELETE mahasiswa yang ada

Ikatlah Ilmu Dengan Menulisnya                                                  4.
Copyright © 2012MudafiqRiyan.Com
Ketiga event diatas akan digabungkan menjadi satu dalam sebuah trigger dengan
SQL sebagai berikut:
 CREATE OR REPLACE TRIGGER nambah
 After
 Begin
          If inserting then
                  Update dosen
                  Set jumlah_wali = jumlah_wali+1
                  Where nip_dosen = :new.id_wali;
          End if;


          If deleting then
                  Update dosen
                  Set jumlah_wali = jumlah_wali-1
                  Where nip_dosen = :old.id_wali;
          End if;


          If updating then
                  Begin
                           Update dosen
                           Set jumlah_wali = jumlah_wali+1
                           Where nip_dosen = :new.id_wali;
                           Update dosen
                           Set jumlah_wali = jumlah_wali-1
                           Where nip_dosen = :old.id_walil;
                  End;
          End if;
 End;




Ikatlah Ilmu Dengan Menulisnya                                                   5.
Copyright © 2012MudafiqRiyan.Com
Keterangan:
      Nama trigger yaitu nambah
      Event after menandakan bahwa trigger ini akan diaktifkan sekali setelah
       statement yang diinginkan dijalankan (INSERT, UPDATE, DELETE) pada
       tabel mahasiswa.
      Bila sebuah data di-insert-kan dalam tabel mahasiswa maka tabel dosen akan di
       update setelah perintahnya dijalankan dengan proses: set jumlah_wali =
       jumlah_wali+1 dengan syarat nip_dosen = :new.id_wali.
      Bila data di delete, maka proses yang akan dijalankan oleh trigger setelah proses
       tersebut adalah: set jumlah_wali = jumlah_wali-1 dengan syarat nip_dosen =
       :old.id_wali
Bila data update, maka proses yang akan dilakukan oleh trigger yaitu menambahkan
data kemudian menghapus data yang lama.


Penerapan Trigger
        Berdasarkan contoh kasus di atas, mari kita memakai seperti kasus di atas,
mempelajari mengenai kasus untuk dosen wali mahasiswa. Data yang ada pada dosen
adalah jumlah mahasiwa yang menjadi wali dosen tersebut. Sedangkan pada
mahasiswa, hanya menyantumkan NIP dari dosen walinya. Sehingga ketika ada
mahasiswa yang ditambahkan, tentunya dosen wali yang bersangkutan akan
menambahkan pula jumlah mahasiswa yang di walikan. Berikut tahapan-tahapan yang
perlu dilakukan:
    1. Untuk itu perlu membuat tabel dosen terlebih dahulu dengan query:
             create table dosen(
                   nip_dosen char(10) primary key not null,
                   nama_dosen char(100),
                   jumlah_wali integer default 0
            )




Ikatlah Ilmu Dengan Menulisnya                                                      6.
Copyright © 2012MudafiqRiyan.Com
Tabel    dosen    memiliki   kolom-kolom    nip_dosen,   nama_dosen,    dan
    jumlah_wali. Yang mana kolom jumlah_wali ini sifatnya dinamis sesuai data
    mahasiswa yang di insert-kan. Sehingga ketika data mahasiswa di insert-kan, maka
    jumlah_wali pada dosen bersangkutan akan bertambah. Kolom jumlah_wali ini
    atributnya integer dan sifatnya default 0, yaitu ketika tidak ada data yang
    dimasukkan, maka data defaultnya akan bernilai 0.




Ikatlah Ilmu Dengan Menulisnya                                                  7.
Copyright © 2012MudafiqRiyan.Com
2. Kemudian membuat tabel mahasiswa dengan query:
                 create table mahasiswa(
                       nrp_mhs char(10) primary key not null,
                       nama_mhs char(100),
                       id_wali char(10) not null,
                       foreign key(id_wali) references dosen(nip_dosen)
                  )




       Tabel mahasiswa ini memiliki kolom-kolom: nrp_mhs, nama_mhs, id_wali.
       Yang mana id_wali dari tabel mahasiswa merupakan foreign key dari nip_dosen
       dari tabel dosen. Sehingga untuk memasukkan id_wali harus sesuai dengan data
       yang ada pada nip_dosen. Dan id_wali tidak boleh kosong, wajib diisi karena
       sifatnya not null.




Ikatlah Ilmu Dengan Menulisnya                                                 8.
Copyright © 2012MudafiqRiyan.Com
3. Pada tahap ke-3 ini, kita akan membuat script untuk trigger. Berikut scriptnya:
              create or replace trigger nambah
              after
              insert or delete or update on mahasiswa
              for each row
              begin
                      if inserting then
                                update dosen
                                set jumlah_wali = jumlah_wali+1
                                where nip_dosen = :new.id_wali;
                      end if;


                      if deleting then
                                update dosen
                                set jumlah_wali = jumlah_wali-1
                                where nip_dosen = :old.id_wali;
                      end if;


                      if updating then
                                begin
                                update dosen
                                set jumlah_wali = jumlah_wali+1
                                where nip_dosen = :new.id_wali;
                                update dosen
                                set jumlah_wali = jumlah_wali-1
                                where nip_dosen = :old.id_wali;
                                end;
                      end if;
               end;




Ikatlah Ilmu Dengan Menulisnya                                                      9.
Copyright © 2012MudafiqRiyan.Com
Script di atas merupakan pembuatan trigger untuk penanganan ketika data
    mahasiswa di insertkan, maka data pada jumlah_wali (tabel dosen) akan ikut
    terupdate juga.
    Maksud dari script trigger diatas adalah:
     Nama trigger yaitu nambah
     Event after menandakan bahwa trigger ini akan diaktifkan sekali setelah
       statement yang diinginkan dijalankan (INSERT, UPDATE, DELETE) pada
       tabel mahasiswa.
     Bila sebuah data di-insert-kan dalam tabel mahasiswa maka tabel dosen akan di
       update setelah perintahnya dijalankan dengan proses: set jumlah_wali =
       jumlah_wali+1 dengan syarat nip_dosen = :new.id_wali.
     Bila data di delete, maka proses yang akan dijalankan oleh trigger setelah proses
       tersebut adalah: set jumlah_wali = jumlah_wali-1 dengan syarat nip_dosen =
       :old.id_wali
     Bila data update, maka proses yang akan dilakukan oleh trigger yaitu
       menambahkan data kemudian menghapus data yang lama.




Ikatlah Ilmu Dengan Menulisnya                                                     10.
Copyright © 2012MudafiqRiyan.Com
Pembuktian:
   1. Kita memasukkan list data untuk dosen. Berikut query nya:
              insert   into    dosen   (nip_dosen,    nama_dosen)      values    ('001',
               'Hariyadi,S.Kom')
              insert into dosen (nip_dosen, nama_dosen) values ('002', 'Setio Basuki')
              insert into dosen (nip_dosen, nama_dosen) values ('003', 'Yuda
               Munarko')
              insert into dosen (nip_dosen, nama_dosen) values ('004', 'Gita Indah')
              insert into dosen (nip_dosen, nama_dosen) values ('005', 'Mahar Faiq')


   2. Setelah meng-inputkan data-data mengenai dosen, kita lihat isi dari tabel dosen
       mengunakan query: select * from dosen




       Dari data-data yang sudah dimasukkan, lihatlah pada kolom jumlah_wali,
    isinya adalah 0 karena default untuk data kosong adalah 0. Karena data mahasiswa
    juga belum di insert-kan.




Ikatlah Ilmu Dengan Menulisnya                                                      11.
Copyright © 2012MudafiqRiyan.Com
3. Mari insert-kan data beberapa mahasiswa menggunakan query-query berikut:
              insert into mahasiswa values ('07560242', 'Mudafiq', '001');
              insert into mahasiswa values ('07560022', 'Fitrika', '002');
              insert into mahasiswa values ('07560109', 'Charisma', '001');
              insert into mahasiswa values ('07560254', 'Ivan', '003');
              insert into mahasiswa values ('07560412', 'Abbi', '002');




       Tiap mahasiswa yang berbeda telah di-insert-kan data berdasarkan dosen
       walinya masing-masing. Pada kasus ini:
        Mudafiq, dosen walinya adalah nip_dosen=001
        Fitrika, dosen walinya adalah nip_dosen=002
        Charisma, dosen walinya adalah nip_dosen=001
        Ivan, dosen walinya adalah nip_dosen=003
        Abbi, dosen walinya adalah nip_dosen=002




Ikatlah Ilmu Dengan Menulisnya                                                 12.
Copyright © 2012MudafiqRiyan.Com
4. Kemudian kita periksa kembali isi data dari tabel dosen menggunakan query:
       select * from dosen




    Jelas bahwa data dari tabel dosen juga terupdate. Lihat pada jumlah_wali yang
semulai nilainya 0 semua, sekarang dengan penambahan data-data dari tabel mahasiswa,
pada tabel dosen juga terisi untuk jumlah_wali sesuai dengan nama mahasiswa dan
dosen walinya masing-masing. Sehingga dapat diketahui bahwa dosen ini jumlah
mahasiswa yang ditangani berapa. Dengan begitu semakin memudahkan programmer
aplikasi untuk pembuatan sistem.



=0=0=0=0=0=0=0=0=      Selamat Mencoba                  =0=0=0=0=0=0=0=0=




Ikatlah Ilmu Dengan Menulisnya                                                  13.
Copyright © 2012MudafiqRiyan.Com
Biografi Penulis
                          Mudafiq Riyan Pratama. Adalah seorang anak laki-laki dari
                          Nurkholis (bapak) dan Susriyanti (ibu) ini terlahir di Jember
                          pada tanggal 9 Mei 1989. Mengawali pendidikan TK dan SD
                          di Jenggawah, Jember. Kemudian menempuh SMP di SMPN
                          6 Jember, yang kemudian dilanjutkan ke SMAN 2 Jember.
                          Kuliah S1 di Universitas Muhammadiyah Malang dengan
                          mengambil jurusan Teknik Informatika. Saat itulah penulis
                          mengawali masuk ke dunia informatika yang sebelumnya
                          tidak pernah tau tentang dunia tersebut. Saat itulah
ketertarikan dengan informatika makin membesar. Penulis mulai meniti karir di bidang
IT sebagai programmer freelance. Hingga akhirnya saat ini beliau berkarir sebagai
tenaga pengajar (dosen) di Universitas Muhammadiyah Jember.




Ikatlah Ilmu Dengan Menulisnya                                                     14.
Copyright © 2012MudafiqRiyan.Com

Contenu connexe

Tendances

Array searching sorting_pert_11,12,13,14,15
Array searching sorting_pert_11,12,13,14,15Array searching sorting_pert_11,12,13,14,15
Array searching sorting_pert_11,12,13,14,15doudomblogspot
 
51231301 erd-sederhana-rs
51231301 erd-sederhana-rs51231301 erd-sederhana-rs
51231301 erd-sederhana-rsAlan Inversent
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queueRhe Dwi Yuni
 
Algoritma Apriori
Algoritma AprioriAlgoritma Apriori
Algoritma Aprioridedidarwis
 
Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)eka pandu cynthia
 
Mata Kuliah Basis Data
Mata Kuliah Basis DataMata Kuliah Basis Data
Mata Kuliah Basis DataMr. Nugraha
 
Perancangan Data Warehouse (Logical dan Physical)
Perancangan Data Warehouse (Logical dan Physical)Perancangan Data Warehouse (Logical dan Physical)
Perancangan Data Warehouse (Logical dan Physical)dedidarwis
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03KuliahKita
 
Proses Data Mining
Proses Data MiningProses Data Mining
Proses Data Miningdedidarwis
 
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVC
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVC[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVC
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVCrizki adam kurniawan
 
ARSITEKTUR MODEL BASIS DATA
ARSITEKTUR MODEL BASIS DATAARSITEKTUR MODEL BASIS DATA
ARSITEKTUR MODEL BASIS DATAEDIS BLOG
 
Algotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - CollectionAlgotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - CollectionSiska Amelia
 
Pengertian field, record, table, file, data dan basis data lengkap pengerti...
Pengertian field, record, table, file, data dan basis data lengkap   pengerti...Pengertian field, record, table, file, data dan basis data lengkap   pengerti...
Pengertian field, record, table, file, data dan basis data lengkap pengerti...ym.ygrex@comp
 
Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur dataAsep Jaenudin
 

Tendances (20)

Array searching sorting_pert_11,12,13,14,15
Array searching sorting_pert_11,12,13,14,15Array searching sorting_pert_11,12,13,14,15
Array searching sorting_pert_11,12,13,14,15
 
51231301 erd-sederhana-rs
51231301 erd-sederhana-rs51231301 erd-sederhana-rs
51231301 erd-sederhana-rs
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queue
 
Algoritma Apriori
Algoritma AprioriAlgoritma Apriori
Algoritma Apriori
 
Fungsi (function)
Fungsi (function)Fungsi (function)
Fungsi (function)
 
Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)
 
Mata Kuliah Basis Data
Mata Kuliah Basis DataMata Kuliah Basis Data
Mata Kuliah Basis Data
 
Perancangan Data Warehouse (Logical dan Physical)
Perancangan Data Warehouse (Logical dan Physical)Perancangan Data Warehouse (Logical dan Physical)
Perancangan Data Warehouse (Logical dan Physical)
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03
 
Proses Data Mining
Proses Data MiningProses Data Mining
Proses Data Mining
 
Pert 4 1--_trigger
Pert 4 1--_triggerPert 4 1--_trigger
Pert 4 1--_trigger
 
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVC
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVC[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVC
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVC
 
Model dan Simulasi
Model dan SimulasiModel dan Simulasi
Model dan Simulasi
 
Database rumah sakit
Database rumah sakitDatabase rumah sakit
Database rumah sakit
 
ARSITEKTUR MODEL BASIS DATA
ARSITEKTUR MODEL BASIS DATAARSITEKTUR MODEL BASIS DATA
ARSITEKTUR MODEL BASIS DATA
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
Analisis Kebutuhan Sistem Informasi
Analisis Kebutuhan Sistem InformasiAnalisis Kebutuhan Sistem Informasi
Analisis Kebutuhan Sistem Informasi
 
Algotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - CollectionAlgotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - Collection
 
Pengertian field, record, table, file, data dan basis data lengkap pengerti...
Pengertian field, record, table, file, data dan basis data lengkap   pengerti...Pengertian field, record, table, file, data dan basis data lengkap   pengerti...
Pengertian field, record, table, file, data dan basis data lengkap pengerti...
 
Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur data
 

Similaire à MudafiqRiyan - Trigger Pada Oracle 10g

Mi1274 alpro lanjut 6 - perulangan - 2 - for, do-while
Mi1274 alpro lanjut   6 - perulangan - 2 - for, do-whileMi1274 alpro lanjut   6 - perulangan - 2 - for, do-while
Mi1274 alpro lanjut 6 - perulangan - 2 - for, do-whileDefina Iskandar
 
Konsep Inheritance
Konsep InheritanceKonsep Inheritance
Konsep InheritanceRiski_kiki
 
M. ade candra 1610530187
M. ade candra 1610530187M. ade candra 1610530187
M. ade candra 1610530187Ade Chandra
 
PostgreSQL Trigger
PostgreSQL TriggerPostgreSQL Trigger
PostgreSQL TriggerAmmar Shadiq
 
Program penyimpanan dan hitung IPK
Program penyimpanan dan hitung IPKProgram penyimpanan dan hitung IPK
Program penyimpanan dan hitung IPKAdhitya Akbar
 
Tugas5 1300631024
Tugas5 1300631024Tugas5 1300631024
Tugas5 1300631024Wika Anggya
 
Mengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdfMengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdfraia22
 
Mi1274 alpro lanjut 5 - perulangan - 1
Mi1274 alpro lanjut   5 - perulangan - 1Mi1274 alpro lanjut   5 - perulangan - 1
Mi1274 alpro lanjut 5 - perulangan - 1Defina Iskandar
 
Tugas perulangan/Looping
Tugas perulangan/LoopingTugas perulangan/Looping
Tugas perulangan/LoopingIqbalSyawaludin
 
Laporan Praktikum Algoritma Pemrograman Modul II
Laporan Praktikum Algoritma Pemrograman Modul IILaporan Praktikum Algoritma Pemrograman Modul II
Laporan Praktikum Algoritma Pemrograman Modul IIShofura Kamal
 
F 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriF 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriSyarif Fudin
 

Similaire à MudafiqRiyan - Trigger Pada Oracle 10g (20)

Mi1274 alpro lanjut 6 - perulangan - 2 - for, do-while
Mi1274 alpro lanjut   6 - perulangan - 2 - for, do-whileMi1274 alpro lanjut   6 - perulangan - 2 - for, do-while
Mi1274 alpro lanjut 6 - perulangan - 2 - for, do-while
 
Konsep Inheritance
Konsep InheritanceKonsep Inheritance
Konsep Inheritance
 
Modul basdat I
Modul basdat IModul basdat I
Modul basdat I
 
M. ade candra 1610530187
M. ade candra 1610530187M. ade candra 1610530187
M. ade candra 1610530187
 
Java dasar-libre
Java dasar-libreJava dasar-libre
Java dasar-libre
 
Perulangan for
Perulangan forPerulangan for
Perulangan for
 
Tugas 5 rekayasa web
Tugas 5   rekayasa webTugas 5   rekayasa web
Tugas 5 rekayasa web
 
PostgreSQL Trigger
PostgreSQL TriggerPostgreSQL Trigger
PostgreSQL Trigger
 
Program penyimpanan dan hitung IPK
Program penyimpanan dan hitung IPKProgram penyimpanan dan hitung IPK
Program penyimpanan dan hitung IPK
 
Polymorphisme
PolymorphismePolymorphisme
Polymorphisme
 
Tugas5 1300631024
Tugas5 1300631024Tugas5 1300631024
Tugas5 1300631024
 
Modul pbo
Modul pboModul pbo
Modul pbo
 
Mengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdfMengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdf
 
Belajar Java dasar
Belajar Java dasarBelajar Java dasar
Belajar Java dasar
 
Mi1274 alpro lanjut 5 - perulangan - 1
Mi1274 alpro lanjut   5 - perulangan - 1Mi1274 alpro lanjut   5 - perulangan - 1
Mi1274 alpro lanjut 5 - perulangan - 1
 
Tugas perulangan/Looping
Tugas perulangan/LoopingTugas perulangan/Looping
Tugas perulangan/Looping
 
BAB IV Analisis TB
BAB IV Analisis TBBAB IV Analisis TB
BAB IV Analisis TB
 
5475 1 review konsep pbo
5475 1 review konsep pbo5475 1 review konsep pbo
5475 1 review konsep pbo
 
Laporan Praktikum Algoritma Pemrograman Modul II
Laporan Praktikum Algoritma Pemrograman Modul IILaporan Praktikum Algoritma Pemrograman Modul II
Laporan Praktikum Algoritma Pemrograman Modul II
 
F 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriF 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajri
 

Dernier

Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajatLatihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajatArfiGraphy
 
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptxMiftahunnajahTVIBS
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxmawan5982
 
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfElaAditya
 
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
 
Aksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxAksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxsdn3jatiblora
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAAndiCoc
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASKurniawan Dirham
 
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxBAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxJamhuriIshak
 
Dinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapDinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapsefrida3
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxadimulianta1
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSovyOktavianti
 
Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1udin100
 
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..ikayogakinasih12
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfSitiJulaeha820399
 
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptxMODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptxSlasiWidasmara1
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BAbdiera
 
Aksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru PenggerakAksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru Penggeraksupriadi611
 
contoh penulisan nomor skl pada surat kelulusan .pptx
contoh penulisan nomor skl pada surat kelulusan  .pptxcontoh penulisan nomor skl pada surat kelulusan  .pptx
contoh penulisan nomor skl pada surat kelulusan .pptxHR MUSLIM
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxIrfanAudah1
 

Dernier (20)

Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajatLatihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
 
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
 
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
 
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 & ...
 
Aksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxAksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptx
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
 
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxBAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
 
Dinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapDinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genap
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptx
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
 
Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1
 
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
 
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptxMODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
 
Aksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru PenggerakAksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru Penggerak
 
contoh penulisan nomor skl pada surat kelulusan .pptx
contoh penulisan nomor skl pada surat kelulusan  .pptxcontoh penulisan nomor skl pada surat kelulusan  .pptx
contoh penulisan nomor skl pada surat kelulusan .pptx
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
 

MudafiqRiyan - Trigger Pada Oracle 10g

  • 1. Trigger Pada Oracle 10g Mudafiq R. Pratama mudafiq.riyan@yahoo.com http://mudafiqriyan.com Lisensi Dokumen: Copyright © 2012 MudafiqRiyan.Com Seluruh dokumen di MudafiqRiyan.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari MudafiqRiyan.Com. Pendahuluan Trigger adalah blok PL/SQL yang disimpan dalam database dan akan diaktivasi ketika kita melakukan statement-statement SQL (DELETE, UPDATE, dan INSERT) pada sebuah tabel. Aktivasi trigger didasarkan pada event yang terjadi di dalam tabel tersebut sehingga trigger dapat membantu dalam menjaga integritas dan konsistensi data. Implementasi trigger yang sering ditemui dalam dunia nyata adalah untuk mengeset dan mengubah nilai kolom dalam suatu tabel sehingga validasi nilai dari tabel tersebut akan terjaga. Adanya trigger dalam database akan meringankan kita dalam pembuatan aplikasi karena di dalam aplikasi yang kita buat, kita tidak perlu lagi untuk melakukan validasi data. Membuat Trigger Oracle telah menyediakan statement CREATE TRIGGER untuk membuat sebuah trigger yang selanjutnya akan diaktivasi berdasarkan event tertentu. Secara umum, event trigger terbagi menjadi dua, yaitu BEFORE (sebelum) dan AFTER (setelah). Event tersebut menandakan kapan trigger akan diaktivasi, apakah sebelum ataukah sesudah proses yang dilakukan di dalam tabel bersangkutan Ikatlah Ilmu Dengan Menulisnya 1. Copyright © 2012MudafiqRiyan.Com
  • 2. Daftar event yang mungkin digunakan untuk mengaktifkan trigger: Model-model yang digunakan untuk menspesifikasi aturan basis data aktif adalah model ECA (Event-Condition-Action). Aturan dalam model ECA memiliki tiga komponen yaitu: 1. Event Event yang memicu suatu rule tersebut biasanya berupa operasi perubahan basis data yang secara eksplisit ditambahkan ke basis data. Namun pada umumnya, bisa berupa event temporal atau jenis event eksternal yang lain. 2. Condition Condition menentukan apakah suatu rule dijalankan atau tidak. Ketika suatu trigger dijalankan, maka bagian condition (bersifat optional) akan dievaluasi jika didefinisikan oleh yang membuat trigger. Jika evaluasi bagian condition bernilai TRUE maka aksi suatu rule dijalankan. 3. Action Action biasanya berupa statement sql. Format Penggunaan Trigger Pada Umumnya CREATE [OR REPLACE] TRIGGER trigger_name {BEFORE | AFTER} triggering_event [referencing_clause] [WHEN trigger_condition] [FOR EACH ROW] Trigger_body; Ikatlah Ilmu Dengan Menulisnya 2. Copyright © 2012MudafiqRiyan.Com
  • 3. Dimana trigger_name adalah nama trigger, triggering_event menspesifikasikan event yang firing (menyalakan) trigger, dan trigger_body adalah kode utama untuk trigger. Referencing_clause digunakan untuk menunjuk pada data dalam baris yang saat ini sedang dimodifikasi dengan nama yang berbeda. Jika ada trigger_condition dalam klausa WHEN, pertama akan dievaluasi dan kemudian trigger_body dieksekusi hanya jika hasil evaluasi bernilai TRUE. Trigger dapat dinyalakan sebelum (before) atau sesudah (after) eksekusi statement, dan dapat dinyalakan sekali tiap baris yang dipengaruhi atau sekali tiap statement. Kombinasi dari tiga faktor ini menetukan tipe trigger. Ada total 12 kemungkinan: 3 statement x 2 timing x 2 level. Tabel berikut menunjukkan tipe dari trigger Data Manipulating Language Ikatlah Ilmu Dengan Menulisnya 3. Copyright © 2012MudafiqRiyan.Com
  • 4. Contoh penggunaan trigger SQL pembuatan tabel dosen: Create table dosen( nip_dosen char(10) primary key not null, nama_dosen char(20), jumlah_wali integer default 0 ) SQL pembuatan tabel mahasiswa: Create table mahasiswa( nrp_mhs char(10) primary key not null, nama_mhs char(20), id_wali char(10) not null, foreign key (id_wali) references dosen(nip_dosen) ) Pada tabel dosen JUMLAH_WALI diatur dengan nilai awal default null atau 0. NIP_DOSEN merupakan primary key pada tabel dosen dan menjadi references di tabel mahasiswa dengan foreign key ID_WALI dan NRP_MHS sebagai primary key pada tabel mahasiswa. Untuk menjaga agar nilai-nilai derived attribute tetap benar, dapat dilakukan dengan menggunakan trigger. Event-event yang dapat mempengaruhi perubahan nilai dari jumlah_wali sebagai berikut: 1. INSERT mahasiswa baru 2. UPDATE mahasiswa dari id_wali satu ke id_wali yang lain 3. DELETE mahasiswa yang ada Ikatlah Ilmu Dengan Menulisnya 4. Copyright © 2012MudafiqRiyan.Com
  • 5. Ketiga event diatas akan digabungkan menjadi satu dalam sebuah trigger dengan SQL sebagai berikut: CREATE OR REPLACE TRIGGER nambah After Begin If inserting then Update dosen Set jumlah_wali = jumlah_wali+1 Where nip_dosen = :new.id_wali; End if; If deleting then Update dosen Set jumlah_wali = jumlah_wali-1 Where nip_dosen = :old.id_wali; End if; If updating then Begin Update dosen Set jumlah_wali = jumlah_wali+1 Where nip_dosen = :new.id_wali; Update dosen Set jumlah_wali = jumlah_wali-1 Where nip_dosen = :old.id_walil; End; End if; End; Ikatlah Ilmu Dengan Menulisnya 5. Copyright © 2012MudafiqRiyan.Com
  • 6. Keterangan:  Nama trigger yaitu nambah  Event after menandakan bahwa trigger ini akan diaktifkan sekali setelah statement yang diinginkan dijalankan (INSERT, UPDATE, DELETE) pada tabel mahasiswa.  Bila sebuah data di-insert-kan dalam tabel mahasiswa maka tabel dosen akan di update setelah perintahnya dijalankan dengan proses: set jumlah_wali = jumlah_wali+1 dengan syarat nip_dosen = :new.id_wali.  Bila data di delete, maka proses yang akan dijalankan oleh trigger setelah proses tersebut adalah: set jumlah_wali = jumlah_wali-1 dengan syarat nip_dosen = :old.id_wali Bila data update, maka proses yang akan dilakukan oleh trigger yaitu menambahkan data kemudian menghapus data yang lama. Penerapan Trigger Berdasarkan contoh kasus di atas, mari kita memakai seperti kasus di atas, mempelajari mengenai kasus untuk dosen wali mahasiswa. Data yang ada pada dosen adalah jumlah mahasiwa yang menjadi wali dosen tersebut. Sedangkan pada mahasiswa, hanya menyantumkan NIP dari dosen walinya. Sehingga ketika ada mahasiswa yang ditambahkan, tentunya dosen wali yang bersangkutan akan menambahkan pula jumlah mahasiswa yang di walikan. Berikut tahapan-tahapan yang perlu dilakukan: 1. Untuk itu perlu membuat tabel dosen terlebih dahulu dengan query: create table dosen( nip_dosen char(10) primary key not null, nama_dosen char(100), jumlah_wali integer default 0 ) Ikatlah Ilmu Dengan Menulisnya 6. Copyright © 2012MudafiqRiyan.Com
  • 7. Tabel dosen memiliki kolom-kolom nip_dosen, nama_dosen, dan jumlah_wali. Yang mana kolom jumlah_wali ini sifatnya dinamis sesuai data mahasiswa yang di insert-kan. Sehingga ketika data mahasiswa di insert-kan, maka jumlah_wali pada dosen bersangkutan akan bertambah. Kolom jumlah_wali ini atributnya integer dan sifatnya default 0, yaitu ketika tidak ada data yang dimasukkan, maka data defaultnya akan bernilai 0. Ikatlah Ilmu Dengan Menulisnya 7. Copyright © 2012MudafiqRiyan.Com
  • 8. 2. Kemudian membuat tabel mahasiswa dengan query: create table mahasiswa( nrp_mhs char(10) primary key not null, nama_mhs char(100), id_wali char(10) not null, foreign key(id_wali) references dosen(nip_dosen) ) Tabel mahasiswa ini memiliki kolom-kolom: nrp_mhs, nama_mhs, id_wali. Yang mana id_wali dari tabel mahasiswa merupakan foreign key dari nip_dosen dari tabel dosen. Sehingga untuk memasukkan id_wali harus sesuai dengan data yang ada pada nip_dosen. Dan id_wali tidak boleh kosong, wajib diisi karena sifatnya not null. Ikatlah Ilmu Dengan Menulisnya 8. Copyright © 2012MudafiqRiyan.Com
  • 9. 3. Pada tahap ke-3 ini, kita akan membuat script untuk trigger. Berikut scriptnya: create or replace trigger nambah after insert or delete or update on mahasiswa for each row begin if inserting then update dosen set jumlah_wali = jumlah_wali+1 where nip_dosen = :new.id_wali; end if; if deleting then update dosen set jumlah_wali = jumlah_wali-1 where nip_dosen = :old.id_wali; end if; if updating then begin update dosen set jumlah_wali = jumlah_wali+1 where nip_dosen = :new.id_wali; update dosen set jumlah_wali = jumlah_wali-1 where nip_dosen = :old.id_wali; end; end if; end; Ikatlah Ilmu Dengan Menulisnya 9. Copyright © 2012MudafiqRiyan.Com
  • 10. Script di atas merupakan pembuatan trigger untuk penanganan ketika data mahasiswa di insertkan, maka data pada jumlah_wali (tabel dosen) akan ikut terupdate juga. Maksud dari script trigger diatas adalah:  Nama trigger yaitu nambah  Event after menandakan bahwa trigger ini akan diaktifkan sekali setelah statement yang diinginkan dijalankan (INSERT, UPDATE, DELETE) pada tabel mahasiswa.  Bila sebuah data di-insert-kan dalam tabel mahasiswa maka tabel dosen akan di update setelah perintahnya dijalankan dengan proses: set jumlah_wali = jumlah_wali+1 dengan syarat nip_dosen = :new.id_wali.  Bila data di delete, maka proses yang akan dijalankan oleh trigger setelah proses tersebut adalah: set jumlah_wali = jumlah_wali-1 dengan syarat nip_dosen = :old.id_wali  Bila data update, maka proses yang akan dilakukan oleh trigger yaitu menambahkan data kemudian menghapus data yang lama. Ikatlah Ilmu Dengan Menulisnya 10. Copyright © 2012MudafiqRiyan.Com
  • 11. Pembuktian: 1. Kita memasukkan list data untuk dosen. Berikut query nya:  insert into dosen (nip_dosen, nama_dosen) values ('001', 'Hariyadi,S.Kom')  insert into dosen (nip_dosen, nama_dosen) values ('002', 'Setio Basuki')  insert into dosen (nip_dosen, nama_dosen) values ('003', 'Yuda Munarko')  insert into dosen (nip_dosen, nama_dosen) values ('004', 'Gita Indah')  insert into dosen (nip_dosen, nama_dosen) values ('005', 'Mahar Faiq') 2. Setelah meng-inputkan data-data mengenai dosen, kita lihat isi dari tabel dosen mengunakan query: select * from dosen Dari data-data yang sudah dimasukkan, lihatlah pada kolom jumlah_wali, isinya adalah 0 karena default untuk data kosong adalah 0. Karena data mahasiswa juga belum di insert-kan. Ikatlah Ilmu Dengan Menulisnya 11. Copyright © 2012MudafiqRiyan.Com
  • 12. 3. Mari insert-kan data beberapa mahasiswa menggunakan query-query berikut:  insert into mahasiswa values ('07560242', 'Mudafiq', '001');  insert into mahasiswa values ('07560022', 'Fitrika', '002');  insert into mahasiswa values ('07560109', 'Charisma', '001');  insert into mahasiswa values ('07560254', 'Ivan', '003');  insert into mahasiswa values ('07560412', 'Abbi', '002'); Tiap mahasiswa yang berbeda telah di-insert-kan data berdasarkan dosen walinya masing-masing. Pada kasus ini:  Mudafiq, dosen walinya adalah nip_dosen=001  Fitrika, dosen walinya adalah nip_dosen=002  Charisma, dosen walinya adalah nip_dosen=001  Ivan, dosen walinya adalah nip_dosen=003  Abbi, dosen walinya adalah nip_dosen=002 Ikatlah Ilmu Dengan Menulisnya 12. Copyright © 2012MudafiqRiyan.Com
  • 13. 4. Kemudian kita periksa kembali isi data dari tabel dosen menggunakan query: select * from dosen Jelas bahwa data dari tabel dosen juga terupdate. Lihat pada jumlah_wali yang semulai nilainya 0 semua, sekarang dengan penambahan data-data dari tabel mahasiswa, pada tabel dosen juga terisi untuk jumlah_wali sesuai dengan nama mahasiswa dan dosen walinya masing-masing. Sehingga dapat diketahui bahwa dosen ini jumlah mahasiswa yang ditangani berapa. Dengan begitu semakin memudahkan programmer aplikasi untuk pembuatan sistem. =0=0=0=0=0=0=0=0= Selamat Mencoba =0=0=0=0=0=0=0=0= Ikatlah Ilmu Dengan Menulisnya 13. Copyright © 2012MudafiqRiyan.Com
  • 14. Biografi Penulis Mudafiq Riyan Pratama. Adalah seorang anak laki-laki dari Nurkholis (bapak) dan Susriyanti (ibu) ini terlahir di Jember pada tanggal 9 Mei 1989. Mengawali pendidikan TK dan SD di Jenggawah, Jember. Kemudian menempuh SMP di SMPN 6 Jember, yang kemudian dilanjutkan ke SMAN 2 Jember. Kuliah S1 di Universitas Muhammadiyah Malang dengan mengambil jurusan Teknik Informatika. Saat itulah penulis mengawali masuk ke dunia informatika yang sebelumnya tidak pernah tau tentang dunia tersebut. Saat itulah ketertarikan dengan informatika makin membesar. Penulis mulai meniti karir di bidang IT sebagai programmer freelance. Hingga akhirnya saat ini beliau berkarir sebagai tenaga pengajar (dosen) di Universitas Muhammadiyah Jember. Ikatlah Ilmu Dengan Menulisnya 14. Copyright © 2012MudafiqRiyan.Com