Our social:

Latest Post

Kamis, 21 September 2017

Trigger

kurang lebih 9 bulan tidak aktif di blogger lagi kali ini saya coba posting dari pengalaman saya hari ini untuk penyelesaikan kasus di aplikasi saya mengenai php mysql, dimana perlu melakukan update terhadap suatu field dari table, berdasarkan isi field dari table lain, dan di aplikasi ini saya menggunakan trigger dari mysql, apakah itu trigger ?

trigger
Trigger adalah sebuah objek database yang di asosiasikan dengan sebuah tabel dan akan aktif (terpicu/trigger) ketika sebuah event terjadi pada tabel tersebut Trigger hanya terjadi ketika ada eksekusi INSERT, DELETE, dan UPDATE pada tabel yang bersangkutan Waktu eksekusi trigger yang mungkin terjadi terdiri dari 2 yaitu BEFORE dan AFTER dari statement SQLnya. 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


Jenis Trigger
Ada 2 jenis trigger yaitu :
·         Application trigger: Terjadi pada saat sebuah kejadian

terjadi dengan aplikasi tertentu.

·         Database trigger : Terjadi pada saat terjadi sebuah

perubahan data seperti DML pada table (INSERT,

UPDATE atau DELETE)

caranya
script dasar dari trigger 


CREATE TRIGGER nama_trigger after kejadian(i/u/d) ON nama_tabel
 FOR EACH ROW BEGIN
 INSERT INTO nama_tabel SET
 nama_field = kejadian(new/old).nama_field
 , nama_field=kejadian(new/old).nama_field
 ON DUPLICATE KEY UPDATE nama_field=nama_field+kejadian(new/old).nama_field;
 END$$  

untuk memulainya, pertama kita harus membuat tabelnya
Table kesatu : beli
CREATE TABLE beli(
id_beli INT( 11 ) NOT NULL AUTO_INCREMENT ,
kd_barang VARCHAR( 5 ) DEFAULT NULL ,
nama_barang VARCHAR( 20 ) DEFAULT NULL ,
jumlah INT( 11 ) DEFAULT NULL ,
PRIMARY KEY ( id_beli )
) ENGINE = MYISAM DEFAULT CHARSET = utf8; 
 Table kedua : jual

CREATE TABLE jual(
id_jual INT( 11 ) NOT NULL AUTO_INCREMENT ,
kd_pelanggan VARCHAR( 10 ) NOT NULL ,
kd_barang VARCHAR( 5 ) DEFAULT NULL ,
nama_barang VARCHAR( 20 ) DEFAULT NULL ,
jumlah INT( 11 ) DEFAULT NULL ,
PRIMARY KEY ( id_jual )
) ENGINE = MYISAM DEFAULT CHARSET = utf8;

 Table ketiga : stok

CREATE  TABLE stok
(kd_barang varchar(5) NOT  NULL
, jumlah int(11) NOT NULL
, PRIMARY KEY (kd_barang)
) ENGINE = MYISAM  DEFAULT CHARSET = utf8;


Sekarang kita sudah mempunyai 3 table yang akan dieksekusi, alurnya seperti ini : Jika ada pembelian (kita membeli barang ke distributor) maka akan menambah stok barang. Jika ada penjualan (ada yang membeli barang kita) maka akan mengurangi stok barang. Bagaimana? Sudah mengerti alurnya? Jika sudah kita langsung buat triggernya.

*Note : Jangan lupa perhatikan tanda $$ (delimeter)nya. Jika lupa akan error. Delimeter akan membatasi akhir dari sebuah trigger.


 1. Membuat Trigger beli_barang

 
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 diberi nama beli_barang, dan trigger akan bekerja setelah memasukkan data kedalam table beli. Dan secara otomatis akan menambahkan stok barang kedalam table stok. Karena data pada table beli masih nol, jika kita memasukkan data ke table beli, maka tidak akan ada penjumlahan yang terjadi.

Sekarang cobalah masukkan sebuah data ke dalam table beli.


Klik Go, lalu buka table stok. Jika berhasil, barang yang sudah dimasukkan di table beli akan masuk ke dalam table stok yatu kd_barang dan jumlahnya.







Sekarang, cobalah untuk memasukkan barang lagi ke table beli. Dengan kd_barang dan nama_barang yang sama. Tetapi bedakan jumlahnya, saya contohkan jumlahnya 23. Klik go dan coba lihat table stok





 Bertambah bukan? Sekarang sudah lebih mengerti konsep dari trigger kan? Jika sudah, kita buat trigger yang selanjutnya.

 2. Membuat trigger jual_barang

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 diberi nama jual_barang, dan trigger akan bekerja setelah memasukkan data kedalam table jual. Dan secara otomatis akan mengurangi stok barang dalam table stok.
Sekarang cobalah untuk memasukkan sebuah data ke dalam table jual. Kita akan mencoba memasukkan data yang telah ada di table beli (tersedia dalam stok).











 Klik Go, setalah itu buka table stok.






Jumlah stok yang awalnya 53 telah berkurang karena barang telah dibeli oleh pelanggan sebanyak 10.
Nah, itulah trigger. Sangat memudahkan bukan untuk memanipulasi data bukan? Semoga bermanfaat ya dan teruslah belajar :)

 sumber :
definisi trigger : http://memahamibdl.blogspot.co.id/2014/07/pengertian-trigger-dan-implementasinya.html
cara : https://www.dumetschool.com/blog/Cara-Membuat-Trigger-dI-MySQL

Cara agar Wallpaper Dekstop Tidak Bisa Diganti

Tampilan wallpaper atau gambar desktop merupakan salah satu hal yang sangat penting. Desktop background atau gambar wallpaper yang unik dan bagus bisa menjadikan pengguna lebih senang berhadapan dengan komputer. Setiap orang sebagai pengguna komputer tentu mempunyai rasa kesenangan yang berbeda-beda mengenai desktop background ini.


www.warung-alkautsar.blogspot.com
 
Cara mengganti gambar atau wallpaper desktop background yang biasa dilakukan adalah dengan klik kanan pada desktop kemudian pilih Properties. Pada jendela display properties, pilih tab desktop kemudian pilih salah satu pilihan gambar yang ada atau cari gambar lain di file dengan klik browse. Atur posisinya kemudian klik OK. Maka wallpaper akan berubah dan telah diganti.

Desktop background yang telah terpasang sesuai dengan selera dan keinginan ini, pada waktu dan kesempatan yang lain bisa saja berubah. Berubah wallpapernya karena diganti oleh upengguna lain. Tentu saja hal ini sangat menjengkelkan. cara agar wallpaper dekstop tidak bisa diganti, bisa dilakukan dengan cara :

Untuk pengguna windows xp

    1.Tekan tombol window + R (untuk membuka menu run)
    2.Ketik gpedit.msc kemudian tekan enter (untuk masuk ke jendela group policy editor)
    3.Masuk ke User Configuration > Administrative templates > Control Panel > Display
    4.Pada panel sebelah kanan, klik ganda pada prevent changing wallpaper

  www.warung-alkautsar.blogspot.com

    5. Ubah menjadi enable
    6. Masuk ke User Configuration --> Administrative Templates --> Start Menu and Taskbar --> pilih Prevent Changes to Taskbar and Start Menu Settings --> pilih enable --> klik Ok

www.warung-alkautsar.blogspot.com
  7. Masih di gpedit.msc, sekarang masuk ke User Configuration --> Administrative Templates --> Desktop --> Active Desktop --> pilih Active Desktop Wallpaper --> pilih enable --> masukan nama wallpaper beserta lokasi penyimpanannya --> pilih wallpaper type terserah kamu --> klik Ok.

www.warung-alkautsar.blogspot.com
    8. Klik OK
    9. Log off atau restart komputer

Untuk pengguna windows 7
  1. Tekan tombol window + R (untuk membuka menu run)
  2. Ketik gpedit.msc kemudian tekan enter (untuk masuk ke jendela group policy editor)
  3. Masuk ke User Configuration > Administrative templates > Control Panel > Personalization
  4. Pada panel sebelah kanan, klik ganda pada prevent changing desktop background
  5. Ubah menjadi enable klik OK

    www.warung-alkautsar.blogspot.com

  6. Mungkin diperlukan enable desktop wallpaper pada User Configuration > Administrative templates > desktop > desktop
  7. Klik OK
  8. Log off atau restart komputer
Setelah pengaturan diatas, user tidak bisa lagi untuk mengganti wallpaper atau desktop background. Tab desktop pada display properties akan menjadi tidak aktif, sehingga tidak bisa memilih gambar untuk desktop. Mereka akan berfikir “Desktop background atau wallpaper tidak bisa diganti”.





www.warung-alkautsar.blogspot.com  sumber