Artikel

CARA MUDAH MEMBUAT STOK OTOMATIS BERTAMBAH DAN BERKURANG

Assalamualaikum warahmatullahi wabarakatuh

Halooo apa kabar rekan rekan himasis, kembali lagi dengan mimin si pembawa informasiii hehe

Mimin harap rekan rekan selalu dalam keadaan sehat sehat ya, aminnn

Jangan lupa jaga kesehatan, dan jangan lupa untuk terus membaca karena banyak sekali informasi yang didapat dengan membaca. Salah satunya dengan rajin membaca web himasis ini

Yukkk, langsung saja kita simak pemaparan berikut iniii

Cek it!

TRIGGER, apa sih yang terpikirkan ketika mendengar/membaca kata trigger? Trigger merupakan suatu kumpulan script yang terdapat dalam DBMS (Database Management System) yang berhubungan dengan table, view, ataupun skema yang dijalankan secara otomatis ketika terdapat event yang dijalan kan. Event? Ya event tersebut  meliputi operasi yang biasa dilakukan dalam mengolah database, seperti :

  • DML (Data Manipulation Language) yang meliputi DELETE, INSERT atau UPDATE
  • DDL (Data Definition Language) yang meliputi CREATE, ALTER atau DROP
  • Operasi Database lainnya, seperti SERVERERROR, LOGON, LOGOFF, STARTUP atau SHUTDOWN)

Perintah untuk membuat trigger adalah sebagai berikut :

 

CREATE TRIGGER nama_trigger [BEFORE|AFTER]

[INSERT/UPDATE/DELETE]

ON nama_table

FOR EACH ROW

BEGIN

// trigger body

END;

 

Keterangan dari bentuk perintah umum dalam membuat trigger, yaitu : 

  • nama_trigger : nama trigger yang dibuat sesuai dengan karakteristik penamaan dalam MySQL
  • [BEFORE|AFTER] : menunjukkan waktu untuk mengeksekusi trigger secara otomatis, apakah sebelum atau sesudah perubahan pada row data table. Jadi pilihannya adalah AFTER atau BEFORE.
  • [INSERT | UPDATE | DELETE] : digunakan untuk menentukan event yang menyebabkan terjadinya trigger, pilIhan event tersebut terdiri dari INSER, UPDATE dan DELETE.
  • nama_table : menunjukkan table yang akan dilakukan trigger didalamnya
  • trigger_body : menunjukkan statement perintah dalam MySQL yang akan otomatis dijalankan jika event sedang aktif.

Contoh :

1. Kita buat database dengan nama trigger

 

membuat database

 

2. Buat tabel barang_masuk dengan field id_bm(pk), id_barang, tgl_masuk, jumlah

 

barang masuk

 

3. Buat tabel barang_keluar dengan field id_bk(pk), id_barang, tgl_keluar, jumlah

 

barang keluar

 

4. Buat tabel barang dengan field id_barang(pk), nama_brg, stok

 

tabel barang

 

5. Membuat trigger (AFTER INSERT) di phpmyadmin dengan menklik menu trigger, pada tabel barang_keluar

 

trigger

 

6. Add Trigger

 

add trigger

 

7. Isi

 

after insert

 

Ket

  • trigger_name : nama trigger.
  • table : nama table yang saat itu dibuatkan triggernya.
  • trigger_time : kapan kita mengeksekusi trigger, apakah sebelum atau sesudah perubahan pada row data table. Jadi pilihannya adalah AFTER atau BEFORE.
  • trigger_event : merupakan event atau peristiwa yang menyebabkan trigger dilakukan. Pilihan event tersebut adalah INSERT, UPDATE, DELETE.
  • trigger_definition : statement-statement perintah SQL yang akan dilakukan. Jika perintahnya lebih dari satu maka gunakan dalam blok statement BEGIN ... END.
  • Jika DEFINER dispesifikasikan maka kita memutuskan trigger tersebut dijalankan hanya oleh user tertentu (dalam format penulisan user@host). Jika tidak dispesifikasikan, maka user yang melakukan perubahan (CURRENT_USER) adalah pilihan default.

Referensi "OLD" dan "NEW"

  • Karena trigger digunakan pada saat terjadi perubahan row data, maka kita perlu referensi ke row sebelum dan sesudah perubahan. Untuk ini ada dua alias yang berfungsi untuk hal tersebut yaitu OLD dan NEW.
  • Sesuai namanya, OLD digunakan untuk referensi sebelum perubahan dan NEW untuk referensi sesudah perubahan.

 

pada trigger definition diawali dengan BEGIN dan diakhiri dengan END

 

BEGIN

   UPDATE barang SET stok = stok - NEW.jumlah

   WHERE id_barang = NEW.id_barang;

END

 

PENJELASAN

barang merupakan nama tabel yang akan mendapatkan dampak dari dibuatnya trigger tersebut

stok merupakan salah satu field yang terdapat dalam tabel barang yang nantinya terjadi perubahan saat tabel barang_keluar diinputkan jumlahnya

stok - NEW.jumlah artinya field stok akan dikurang dengan jumlah baru inputan yang terdapat didalam field jumlah di tabel barang_keluar

id_barang merupakan kode yang menghubungkan kedua tabel (dimana id_barang dalam tabel barang berfungsi sebagai primary key, namun di tabel barang_keluar berfungsi sebagai foreign key)

 

8. Membuat trigger (AFTER DELETE) pada table barang_keluar

 

after delete

 

9. Membuat trigger (AFTER INSERT) pada table barang_masuk

 

after insert t_masuk

 

10. Membuat trigger(AFTER DELETE) pada tabel barang_masuk

 

after delete t_masuk

 

Lalu lakukan uji coba, apabila berhasil maka stok yang ada di tabel barang akan berkurang/bertambah otomatis saat diinputkan data yang terdapat pada tabel barang_masuk ataupun barang_keluar.

Selamat mencoba dan semoga berhasilll

Sekian informasi yang bisa mimin sampaikan, mohon maaf apabila ada salah salah kata

mimin undur diri, sampai bertemu diartikel selanjutnya

 

SALAMPERUBAHAN

 

Wassalamualaikum Warahmatullahi Wabarakatuh

 

Untuk databasenya bisa didownload disini

 

REFERENSI :

https://www.nesabamedia.com/pengertian-trigger/

http://mysql.phi-integration.com/sql/membuat-trigger-di-mysql