-->
g2QFCKwavghUp2yzjKrIFwEeG13RASCerFTCMH35

Cara Trigger Di PHP Xampp


Trigger adalah sebuah Script MySQL Command yang memicu suatu kejadian dalam database MySQL berupa aksi insert, update dan delete setelah syarat tertentu. Lokasi penulisan Trigger adalah di dalam database yang bersangkutan, dan Trigger tidak ditempatkan di php script. Hasil penulisan dari sebuah Trigger akan menimbulkan efek manipulasi database secara otomatis sesuai dengan yang kita inginkan. Misalnya, setelah insert pada tabel_a dan kolom a1 maka akan otomatis insert pada tabel_b pada kolom b1. Begitu pula untuk aksi update dan delete. Untuk pembuatan Trigger ini saya menggunakan Appserv 2.5.10, MySQL Version 5.0.24a, browser mozilla Firefox dengan sistem operasi Windows7 Ultimate.





Trigger merupakan script MySQL Command yang terdiri dari 3 pokok dasar yaitu, insert, update dan delete. Adapun langkah-langkah membuat Trigger adalah :

1. Buat database dulu dengan script :  create databaset ‘tes’;

2. Buat tabel beli :

1
2
3
4
5
6
7
8
9
CREATE TABLE beli
(id_beli int(11) NOT NULL AUTO_INCREMENT
, kd_barang varchar(10)  default NULL
, satuan double default NULL
, jumlah int(11) default NULL
, total double default NULL
, status varchar(30) default NULL
, PRIMARY  KEY (id_beli)
) ENGINE = MYISAM DEFAULT CHARSET = utf8;

3.  Buat tabel Jual :

1
2
3
4
5
6
7
8
9
10
CREATE  TABLE jual
(id_jual int(11)  NOT  NULL AUTO_INCREMENT
, kd_client varchar(10)  NOT  NULL
, kd_barang varchar(10)  default NULL
, satuan int(5)  default NULL
, jumlah double  default NULL ,
 total double  default NULL ,
 status varbinary(25)  default NULL ,
 PRIMARY  KEY (id_jual)
) ENGINE  =  MYISAM  DEFAULT CHARSET  =  utf8;

4. Buat tabel stok :

1
2
3
4
5
CREATE  TABLE stok
(kd_barang varchar(5) NOT  NULL
, jumlah int(11) NOT NULL
, PRIMARY KEY (kd_barang)
) ENGINE = MYISAM  DEFAULT CHARSET = utf8;
Nah, anda sudah memiliki tabel beli, jual dan stok. Skenarionya adalah jika ada pembelian, akan otomatis menambah stok barang, dan jika ada penjualan akan mengurangi stok barang secara otomatis.

Perhatikan tanda $$ tersebut harus dikonfigurasikan seperti gambar berikut :
Penulisan Trigger

Artinya, anda harus menambahkan tanda $$ karena itu merupakan delimiter yang membatasi akhir dari sebuah Trigger

1. Membuat Trigger beli_barang

1
2
3
4
5
6
7
CREATE TRIGGER beli_barang after INSERT ON beli
 FOR EACH ROW BEGIN
 INSERT INTO stok SET
 kd_barang = NEW.kd_barang
 , jumlah=New.jumlah
 ON DUPLICATE KEY UPDATE jumlah=jumlah+New.jumlah;
 END$$
Keterangan : Trigger dibuat dengan nama ‘beli_barang’ dan bekerja setelah insert data pada tabel beli, maka akan insert juga pada tabel stok dengan mengisi field pada tabel stok berupa kd_barang dan jumlah sama persis yang di insert di tabel beli.  Dan Metode updatenya adalah jumlah yang ada ditambah dengan jumlah baru yang di insert kan di tabel beli. Jika awal insert otomatis tidak ada penjumlahan, karena logika nya jumlah barang yang ada di tabel stok adalah nol.

On Duplicate Key Update artinya : jika ada insert data di tabel beli dengan kode barang  (kd_barang) yang sama, maka akan otomatis menambah jumlah nya di tabel stok dengan kd_barang yang dimaksud. Akan saya jelaskan lebih rinci dengan gambar :
Isi Tabel Yang diberi Trigger

2. Membuat Trigger jual_barang

1
2
3
4
5
6
7
CREATE TRIGGER jual_barang after INSERT ON jual
 FOR EACH ROW BEGIN
 UPDATE stok
 SET jumlah = jumlah - NEW.jumlah
 WHERE
 kd_barang = NEW.kd_barang;
 END$$
Keterangan : Trigger dibuat dengan nama ‘jual_barang’ setelah insert pada tabel jual maka pada setiap barisnya akan di update dimana kode barang (kd_barang) nya sama dengan yang ada di tabel stok (stok). Hasilnya adalah jika ada penjualan barang pada tabel jual (jual), maka akan otomatis mengurai jumlah barang pada stok (stok), dimana kode barang yang dimaksud (kd_barang) sama dengan yang diisi di tabel jual (jual).

Kesimpulannya, salah satu manfaat Trigger adalah membantu administrasi database dengan teknik memanipulasi data sesuai dengan yang dibutuhkan.

Sumber : setyawan88.wordpress.com
Related Posts

Related Posts

Post a Comment