Pages

Labels

Kamis, 15 Maret 2012

Pengolahan Basisdata: Trigger dan Cara Pembuatannya (MI/4 , 23100259)


Perubahan isi tabel terjadi pada saat pengguna melakukan transaksi. Transaksi ini biasanya juga berpengaruh terhadap tabel-tabel lain. Sebagai contoh : pada saat transaksi penjualan sistem akan menambah rekaman tabel JUAL sebelum perintah INSERT misalnya mengecek jumlah stok di tabel BARANG, dan sesudahnya mengurangi stok di tabel BARANG. Oleh karena itu anda bisa menempatkan trigger yang merupakan prosedur pemicu untuk melakukan proses sesuai dengan keinginan.
Trigger adalah suatu objek dalam basisdata yang terdapat pada bagian tabel. Trigger untuk menempatkan suatu prosedure berkaitan dengan perubahan pada isi tabel. Cara kerja trigger adalah merespon berkaitan dengan perintah DML (INSERT , UPDATE, DELETE) pada tabel.

Langkah Pembuatan:
Hidupkan SQLserver dan buka Mozilla firefox. Siapkan database penjualan yang kita buat pada postingan yang sebelum nya (Pengolahan Database: ).
Kita akan membuat trigger pada tabel detailbeli dan juga detailjual.  Yang pertama kita buat trigger pada tabel detailjual terlebih dahulu. Trigger yang akan dibuat yaitu untuk ADD, UPDATE & DELETE. Setiap data yang diinputkan pada detail beli akan berpengaruh pada tabel barang. Saat kita inputkan data baru pada tabel detailbeli,maka akan menambah ‘jumlahstok’ pada tabel barang sesuai nilai yang dimasukkan pada ‘qty’ pada tabel detailbeli. Begitu juga saat kita mengubah nilai pada ‘qty’ atau pun menghapus data tersebut, itu akan berpengaruh pada ‘jumlahstok’.
Untuk membuat trigger maka kita harus SQL query. Pilih menu SQL dan akan tampil seperti pada gambar dibawah:

·         Untuk membuat trigger ADD query-nya sperti ini:
CREATE TRIGGER tadddetailbeli AFTER INSERT ON detailbeli FOR EACH ROW BEGIN UPDATE barang SET jumlahstok=jumlahstok+new.qty WHERE kodebarang=NEW.kodebarang; END;

Catatan: Delimiter harus diganti dengan tanda pipa “|”

·         Untuk membuat trigger UPDATE query-nya sperti ini:
CREATE TRIGGER tupddetailbeli AFTER UPDATE ON detailbeli FOR EACH ROW BEGIN UPDATE barang SET jumlahstok=jumlahstok-OLD.qty+NEW.qty WHERE kodebarang=OLD.kodebarang; end;
·         Untuk membuat trigger DELETE query-nya sperti ini:
CREATE TRIGGER tdeldetailbeli AFTER DELETE ON detailbeli FOR EACH ROW BEGIN UPDATE barang SET jumlahstok=jumlahstok-OLD.qty WHERE kodebarang=OLD.kodebarang; END;

Yang berikutnya kita membuat Trigger untuk yang tabel detailjual.  Pada inti na trigger ini sama dengan trigger diatas. Karena hanya diubah pada tanda tambah (+) menjadi kurang (-) atau sebaliknya. Dan kita juga akan membuat trigger untuk ADD, UPDAT & DELETE.
·         Untuk membuat trigger ADD  query-nya sperti ini:

CREATE TRIGGER tadddetailjual AFTER detailjual FOR EACH ROW BEGIN UPDATE barang SET jumlahstok=jumlahstok-new.qty WHERE kodebarang=NEW.kodebarang; END INSERT ON;

·         Untuk membuat trigger UPDATE  query-nya sperti ini:

CREATE TRIGGER tupddetailjual AFTER UPDATE ON detailjual FOR EACH ROW BEGIN UPDATE barang SET jumlahstok=jumlahstok+OLD.qty-NEW.qty WHERE kodebarang=OLD.kodebarang; end;

·         Untuk membuat trigger DELETE  query-nya sperti ini:

CREATE TRIGGER tdeldetailjual AFTER DELETE ON detailjual FOR EACH ROW BEGIN UPDATE barang SET jumlahstok=jumlahstok+OLD.qty WHERE kodebarang=OLD.kodebarang; END;

Apa bila terjadi kesalahan pada trigger yang sudah terlanjur kita buat, untuk bisa menggantinya harus dihapus terlebih dahulu trigger yang sedang digunakan. Query untuk menghapus trigger:

         DROP TRIGGER namatrigger;

Setelah semua jadi,saatnya pengechekan. Pastikan bahwa tabel barang dan beli sudah ada data. Kemudian kita inputkan data baru pada tabel detailbeli. Setelah diinputkan perhatikan field jumlahstok pada tabel barang sebelum dan sesudah data diinputkan pada tabel detailbeli, jika triggernya berhasil maka akan terjadi penambahan nilai.

Selamat mencoba  ^_^

0 komentar:

Posting Komentar

Keno - Good Morning (OST. Hunter X Hunter).MP3

Powered by mp3skull.com