Skip to main content

Trigger di PLSQL

Trigger di PLSQL

Trigger pada PLSQL adalah suatu mekanisme untuk menjalankan program otomatis yang kita siapkan ketika perintah query tertentu dijalankan. Trigger biasanya sering digunakan sebagai alert untuk menampilkan error atau juga sering digunakan untuk menjalankan log daily pencatatan database. 



Sama seperti pembuatan procedure dan function di pembahasan sebelumnya, trigger pada PLSQL juga dibuat dengan menggunakan SQL command pada menu oracle. Bedanya dengan procedure adalah trigger tidak di panggil oleh query dan tidak memiliki nilai balik. Trigger akan muncul atau jalan secara otomatis, jika kondisi query memiliki nilai sesuai dengan trigger yang kita siapkan. 

Trigger Alert Insert / Update Database

Langsung saja, disini saya ingin mencontohkan fungsi trigger yang pertama yaitu sebagau alert insert atau update database. Semisal disini saya tidak ingin terjadinya proses insert atau update tabel barang dengan panjang nama barang yang kurang dari 3 misalnya. Maka disini saya bisa membuat trigger query PLSQL sebagai berikut. 

CREATE OR REPLACE TRIGGER Trigger_Barang
   BEFORE INSERT OR UPDATE
   ON BARANG
   FOR EACH ROW
DECLARE

BEGIN
   IF length (:new.Nama_Barang) < 3 THEN
      raise_application_error(-20015, 'Panjang NAME tidak boleh kurang dari tiga');
   END IF;

END;
Untuk membuat trigger, kita membutuhkan keterangan : 
  • apakah akan di letakan pada before atau after (insert, update dan delete) 
  • trigger akan bereaksi ketika action terjadi pada tabel apa?
  • dan for each row digunakan untuk action trigger apa yang terjadi pada setiap attribute tabel tersebut. 
Dan untuk actionnya kita letakan pada declare condition dan paga begin kita buatkan program trigger sesuai yang kita inginkan. Dalam hal ini, saya menggunakan algoritma If dengan kondisi jika nama barang kurang dari 3, maka action apa yang akan terjadi. 
Jika kita jalankan query pembuatan trigger diatas, maka hasilnya ketika kita ingin insert atau update data pada tabel barang, jika attribute nama barang kurang dari 3 akan memunculkan alert seperti contoh berikut ini. 


Tapi kalo nama barangnya 3 atau lebih, maka hasilnya data yang kita insert akan berhasil.  


Hal ini juga berlaku untuk insert data menggunakan tampilang GUI atau non-sql query. Jika kita insert data kurang dari 3 panjang karakter, maka hasilnya pop up trigger akan muncul dan data tidak akan di insert kedalam database. 

Trigger Membuat Tabel Log Otomatis ketika Update dan Delete Data

Next kita coba buat trigger selanjutnya yaitu membuat trigger membuat tabel log otomatis ketika ada data yang di update dan delete. Log tabel yang saya maksud disini sebenernya bukan log juga sih tapi lebih ke log history data yang telah di update atau delete. Jatuhnya seperti backup data setelah user melakukan update atau delete. Langsung saja, kita akan buat trigger nya namun kali ini kita akan buat dengan mode gui atau object browser agar kalian lebih memahaminya juga. 


Untuk membuat trigger di mode object browser caranya cukup mudah, yaitu kita tambahkan pada ikon plus di pojok kanan atas, lalu klik pada trigger.

Selanjutnya, kita buat triggernya untuk tabel yang mana. Karena disini saya ingin membuat trigger untuk tabel barang, maka tabel namenya kita pilih tabel barang. Setelah itu kita klik next.
 

Pada pengisian form ini sama seperti pada sql command sebelumnya. Yaitu kita isikan nama triggernya, lalu isikan before atau after pada optionnya apakah insert, update atau delete. Disini karena saya ingin membuat log untuk update terlebih dahulu, maka saya pilih yang option update. Dan jangan lupa untuk for each rownya agar diceklis ya. Dan untuk perintah triggernya kita isikan manual pada script trigger body. Setelah itu klik next.
 

Bagi yang mau script triggernya kalian tinggal copy aja script berikut ini.

INSERT INTO BARANG_LOG(Kode_Barang, Nama_Barang, Satuan_Barang, Stok_Barang, Tanggal, Type)
VALUES (:OLD.Kode_BARANG, :OLD.Nama_Barang, :OLD.Satuan_Barang, :OLD.Stok_Barang, CURRENT_TIMESTAMP, 'UPDATE');
Jika sudah sesuai semua, kita tinggal finishing saja. Klik Create Trigger untuk langkah selanjutnya. 
 

Maka jika pilihan object browsernya kita arahkan ke list trigger, trigger yang kita buat dengan nama trigger_update_barang tadi akan muncul di list trigger.


Jika sudah muncul trigger pada list triggernya, maka ketika kita ingin update data, semisal disini saya ingin update data atau row sikat gigi menjadi pasta gigi.
 

Maka tabel log baru akan terbentuk dari hasil trigger yang kita buat tadi. Isi datanya adalah data lama sebelum data sikat gigi diubah menjadi data pasta gigi. Dan sebagai keterangan disini saya memberikan kolom attribute baru yaitu type untuk membedakan apakah data yang masuk ke tabel barang_log adalah tabel hasil update atau tabel hasil delete yang nanti kita akan buat juga.
 

Sekarang setelah berhasil pada tabel update, kita buat juga trigger ketika user ingin delete data pada tabel barang. Step-stepnya sama seperti trigger yang update data. Bedanya hanya di scriptnya dan pemilihan optionnya saja. Yaitu menggunakan option delete. Dan di scriptnya hanya berbeda pada kolom type nya yaitu informasi yang menandakan trigger ini untuk data yang telah di delete dari tabel barang.


Berikut script triggernya.

INSERT INTO BARANG_LOG(Kode_Barang, Nama_Barang, Satuan_Barang, Stok_Barang, Tanggal, Type)
VALUES (:OLD.Kode_BARANG, :OLD.Nama_Barang, :OLD.Satuan_Barang, :OLD.Stok_Barang, CURRENT_TIMESTAMP, 'DELETE');
Hasilnya pada trigger list akan tercipta 2 trigger baru yaitu trigger history log update dan history log untuk delete pada tabel barang.


Demikian pembahasan mengenai trigger di PLSQL pada oracle application express. Semoga membantu dan memudahkan pembaca untuk mempelajari trigger pada PLSQL. Sekian dari saya, jika ada yang ingin di tanyakan bisa lemparkan di kolom komentar. Terima kasih sudah berkunjung, sampai berjumpa di pembahasan oracle database selanjutnya. Terima kasih. 

Comments

Popular posts from this blog

BT-BASIC commands used

8.10     Some of the most frequently used BT-BASIC commands used are: msi                               Changes default working directory. Mass storage is            Same as “msi” cat                               Catalogs (list)the node names in the specified directory.             get                               Brings the contents of a file into the system workspace.        ...

Perhitungan & Cara Merubah Kumparan Blender Dari 220 V Menjadi 12 V

          Seperti yang telah dijelaskan pada buku “menggulung motor listrik arus bolak-balik, servis peralatan listrik rumah tangga kelompok penggerak dan perbaikan peralatan listrik pertukangan”, bahwa motor penggerak yang digunakan pada perlatan listrik rumah tangga dan pertukangan seperti blender, mixer, bor tembak, gerinda dsb menggunakan jenis motor universal. Motor universal adalah jenis motor listrik yang dapat disuplai dengan sumber listrik arus bolak-balik (AC) dan arus searah (DC). Jadi peralatan-peralatan listrik rumah tangga dan pertukangan tersebut yang biasanya kita suplai dengan sumber listrik AC dari PLN atau Genset sebesar 220 V sebenarnya dapat juga kita suplai dengan sumber listrik DC yang tentunya tegangan juga harus sama yakni 220 V.           Yang menjadi permasalahan bagaimana kalau peralatan listrik rumah tangga atau pertukangan tersebut, sebagai contoh misalkan blender yang ingin digunakan atau dioper...

BT-BASIC command line

8.8       At the BT-BASIC command line type the command  msi  and the directory path, then press the “ENTER” key on the keyboard.  Example:                   msi ‘/hp3070/boards/aspect/main’ 8.9       At the BT-BASIC command line type the command  get ‘testplan’ and press the   ENTER” key on the keyboard.  You should now see the body of the testplan file displayed in the work space of the BT-BASIC window. 8.10     Some of the most frequently used BT-BASIC commands used are:

Autodesk SketchBook Pro 2021 Full Version

BAGAS31 – Sesuai dengan namanya, Autodesk SketchBook Pro 2021 Full Version ini merupakan software digital sketching atau drawing terbaik yang bisa kamu gunakan. Pada versi terbaru kali ini, ada beberapa penambahan fitur yang sangat efektif. Dengan fitur baru tersebut, diharapkan mampu meningkatkan proses sketching maupun drawing kamu. Autodesk SketchBook sendiri sudah bisa kamu dapatkan secara gratis melalui website resminya. Namun untuk kamu yang mau download versi Autodesk Sketchbook Pro, maka bisa langsung download melalui link yang sudah saya sediakan di bawah ini. Download Autodesk SketchBook Pro 2021 Full Version Screenshot: System Requirements: Windows 10 2.5 – 2.9 GHz of Intel or AMD CPU 4 GB of Memory 256 MB Graphics card with OpenGL 2.0 support We recommend that you use a pressure-sensitive tablet and pen for basic features Download: Autodesk SketchBook Pro 2021 Full Version [ FileUp ][ Uptobox ][ UsersDrive ] Jamu Only [ File...

Testhead

4.3         Testhead The testhead is that portion of the tester that supports the PIN, ASRU and Controller cards.   The testhead is divided into two BANKS and each BANK is divided into two MODULES, see figure 2 below.  Bank 1 contains modules 0 and 1, bank 2 contains modules 2 and 3.  The test fixtures are placed on the banks of the tester and locked down for board testing.  The testhead cards interface to the test fixture through the spring loaded pogo pin “nails” at the top edge on each of these card types. 4.4       Support Bay The support bay is a stand-alone cabinet that houses the power supplies for the Unit Under Test.  This bay also houses the test station power distribution unit and test station controller on earlier models. 4.5       Emergency Shutdown Switch The emergency shutdown switch is the large red button located at the lower left corne...

Kelebihan dan Kekurangan Saluran Listrik Jenis Saluran Udara dan Saluran Bawah Tanah

Berdasarkan pemasangannya,   saluran distribusi dibagi menjadi dua kategori, yaitu : saluran udara (overhead line) merupakan sistem penyaluran tenaga listrik melalui kawat penghantar yang ditompang pada tiang listrik. Sedangkan saluran bawah tanah (underground cable) merupakan sistem penyaluran tenaga listrik melalui kabel-kabel yang ditanamkan di dalam tanah. 1.    Saluran Bawah Tanah (Underground Lines) Saluran distribusi yang menyalurkan energi listrik melalui kabel yang ditanam didalam tanah. Kategori saluran distribusi seperti ini adalah yang favorite untuk pemasangan di dalam kota, karena berada didalam tanah, maka tidak mengganggu keindahan kota dan juga tidak mudah terjadi gangguan akibat kondisi cuaca atau kondisi alam. Namun juga memilik kekurangan, yaitu mahalnya biaya investasi dan sulitnya menentukan titik gangguan dan perbaikannya. Kedua cara penyaluran memiliki keuntungan dan kerugian masing-masing. Keuntungan yang dapat diperoleh dari suatu jaringan bawah...