Trigger Mysql



Menurut Wikipedia, trigger dalam database diartikan sebagai “procedural code that is automatically executed in response to certain events on a particular table or view in a database“. Singkatnya, trigger merupakan sekumpulan perintah atau sintaks yang akan secara otomatis dijalankan jika terjadi operasi tertentu dalam tabel atau view. Trigger digunakan untuk memanggil satu atau beberapa perintah SQL secara otomatis sebelum atau sesudah terjadi proses INSERT, UPDATE atau DELETE dari suatu tabel. Sebagai contoh misalnya kita ingin menyimpan id pelanggan secara otomatis ke tabel ‘log’ sebelum menghapus data di tabel pelanggan.
Di MySQL, Triggers mulai dikenal di versi MySQL 5.0, dan di versi saat ini (5.1.4) fungsionalitasnya sudah bertambah. Pada versi selanjutnya pihak pengembang MySQL berjanji akan lebih menguatkan (menambah) fitur trigger ini.
Terdapat tiga kejadian (event) umum yang dapat menyebabkan trigger dipicu :
INSERT, berarti trigger dijalankan ketika terdapat sejumlah data baru yang diinput
UPDATE, berarti trigger dijalankan ketika terdapat data / record yang diubah
DELETE, berarti trigger dijalankan ketika terdapat data / record yang dihapus
Manfaat dari penggunaan trigger :
  1. Trigger merupakan salah satu mekanisme untuk menjalankan aturan bisnis dan menjaga integritas data dalam sebuah basis data. Mekanisme yang lainnya adalah penggunaan CONSTRAINT
  2. Trigger dapat mengevaluasi status dari sebuah tabel sebelum dan sesudah terjadi perubahan data dan melakukan aksinya sesuai perbedaan yang terjadi
  3. Trigger dapat melakukan perubahan cascade melalui melalui relasi tabel pada database, akan tetapi perubahan ini akan lebih efisien jika dieksekusi menggunakan referential integrity constraints.
  4. Trigger dapat melakukan pencegahan akses atas data yang kompleks dibanding dengan menggunakan CHECK CONSTRAINT
  5. Tidak seperti pada Check Constraint, Trigger dapat mereferensikan kolom / field dalam tabel yang berbeda.

Trigger sering digunakan, antara lain untuk:
  • Melakukan update data otomatis jika terjadi perubahan. Contohnya adalah dalam sistem penjualan, jika dientri barang baru maka stock akan bertambah secara otomatis.
  • Trigger dapat digunakan untuk mengimplementasikan suatu sistem log. Setiap terjadi perubahan, secara otomatis akan menyimpan ke tabel log.
  • Trigger dapat digunakan untuk melakukan validasi dan verifikasi data sebelum data tersebut disimpan.

Membuat Trigger Baru
Berikut ini bentuk umum perintah untuk membuat triggers:
CREATE TRIGGER name
[BEFORE|AFTER] [INSERT|UPDATE|DELETE]
ON tablename
FOR EACH ROW statement
Keterangan dari bentuk umum perintah membuat trigger:
  • name, Nama trigger mengikuti peraturan penamaan variabel / identifier dalam MySQL
  • [BEFORE | AFTER] digunakan untuk menentukan kapan proses secara otomatis akan dieksekusi, sebelum atau sesudah proses.
  • [INSERT | UPDATE | DELETE] digunakan untuk menentukan event (proses) yang dijadikan trigger (pemicu) untuk menjalankan perintah-perintah di dalam triggers.
  • tablename, merupakan nama tabel dimana trigger berada.
  • statement, merupakan sekumpulan perintah atau query yang akan secara otomatis dijalankan jika event / proses yang didefinisikan sebelumnya aktif.
Statement atau perintah dalam trigger dapat berupa satu perintah saja, dan dapat juga beberapa perintah sekaligus. Jika terdapat beberapa perintah dalam trigger, maka gunakan perintah BEGIN dan END untuk mengawali dan mengakhiri perintah.
Di dalam statement trigger, kita dapat mengakses record tabel sebelum atau sesudah proses dengan menggunakan NEW dan OLD. NEW digunakan untuk mengambil record yang akan diproses (insert atau update), sedangkan OLD digunakan untuk mengakses record yang sudah diproses (update atau delete).
Berikut ini contoh trigger yang akan mencatat aktivitas ke tabel log setiap terjadi proses insert ke tabel pelanggan:
DELIMITER $$

CREATE TRIGGER penjualan.before_insert BEFORE INSERT ON penjualan.pelanggan
FOR EACH ROW BEGIN
INSERT INTO `log` (description, `datetime`, user_id)
VALUES (CONCAT('Insert data ke tabel pelanggan id_plg = ', NEW.id_pelanggan), now(), user());
END;
$$ 

DELIMITER ;


Sumber: Buku MySQL 5: Dari Pemula Hingga Mahir oleh Achmad Solichin


Menghapus Trigger
Untuk menghapus trigger, dapat menggunakan perintah DROP TRIGGER dengan diikuti dengan nama tabel dan nama triggernya. Berikut ini bentuk umum dan contoh perintah untuk menghapus trigger.
Bentuk umum dan contoh menghapus trigger:
DROP TRIGGER tablename.triggername;
Contoh menghapus trigger bernama ‘before_insert’ yang ada di tabel pelanggan.
DROP TRIGGER penjualan.before_insert;

Pembuatan dan Pengolahan Databases


LANDASAN TEORI

Apa itu DataBase ???
Database adalah suatu kumpulan data yang saling berhubungan yang diorganisasi sedemikian rupa sehingga kelak dapat dimanfaatkan dengan cepat dan mudah dan disimpan  dalam media penyimpanan tertentu. 

Maksud dari database adalah untuk menyimpan semua data yang diinginkan dalam satu lokasi, sehingga pencarian data menjadi lebih mudah dan redundant dapat tereliminasi
Dalam implementasinya, data berbentuk tabel. Tabel merupakan obyek database yang memuat record (row/baris) dimana masing-masing record tersebut merupakan gabungan dari beberapa sifat data yang identik. Nilai-nilai  yang terkandung  dalam sifat data tersebut  disebut field.



Alasan "Kenapa Menggunakan Database ??"

·         Redudansi data dan ketidak konsistenan data.
·         Kesulitan dalam  mengakses data.
·         Isolasi data.
·         Masalah integritas.
·         Update otomatis
·         Akses konkuren dari beberapa user.
·         Masalah keamanan.
·         Dan lain-lain.



Karakteristik utama dari penggunaan database :
·         Merepresentasikan aspek dari dunia nyata.
·         Terstruktur dengan baik.
·         Dapat merepresentasikan kondisi saat ini (current state).
·         Ada penggunanya dan ada aplikasi.
·         Disimpan dalam memori komputer secara permanen.
·         Dapat diakses dan dimanipulasi menggunakan DBMS.


.         PERMASALAHAN

Ø  Mendesain sebuah database penjualan. ( Tabel: pelanggan, jual, beli, detailjual, detailbeli, barang,jenisbarang, suplier )
Ø  Membuat sebuah database penjualan menggunakan mySQL sesuai dengan desain.
Ø  Membuat relasi antar table.
Ø  Mengisi data pada setiap table.




3.         PEMBAHASAN
Ø  Mendesain sebuah database penjualan

Relasi
1.    barang ( kodebarang , kodejenis, barcode namabarang, hargajuakl, hargabeli, diskon)
2.    beli ( nomorbeli , tanggal, carapembayaran, statusbayar, dikon, kodesupply)
3.    detailbeli ( nomorbeli, kodebarang, harga, qty,diskon)
4.    detailjual (nomorjual, kodebarang, harga, qty, dikon)
5.    jenisbarang (kodejenis , namajenis, keterangan)
6.    jual (nomorjual , tanggal, carapembayaran, statusbayar, diskon, kodepelanggan  )
7.    pelanggan (kodepelanggan , namapelanggan, alamat, notelp, jenispelanggan)



Ø  Membuat  database sesuai dengan desain.

Untuk membuat database mySql dibutuhkan sebuah sqlServer, bisa menggunakan Wamp. Selain itu dibutuhkan sebuah browser (Mozilla firefox) untuk mengoprasikan phpmyadmin.
Hidupkan wamp dan buka browser,ketikkan http://localhost/phpmyadmin pada address bar. Pertama kita buat database dengan nama “penjualan”:Setelah database telah dibuat,selanjutnya membuat tabel.Berikutnya kita membuat field pada tabel ‘barang’ Pada contoh ini, dimisalkan untuk field ‘kodebarang’ kita buat sebagai primary key.Satu hal yang terpenting, pastikan bahwa tabel yang di buat ini harus bertipe ‘INNODB’. Karena hanya dengan tipe INNODB lah, kita bisa membuat foreign key, relasi dan referential integrity. Untuk membuat tabel bertipe INNODB, pilih pada bagian ‘Storage Engines’ yang terdapat di bagian bawah panel membuat tabel.
Setelah diset field dan storage engine nya sebagai INNODB, barulah kita  bisa simpan tabel ‘barang’ nya.

Setelah sukses membuat table barang, kita lanjutkan membuat table yang berikutnya. Langkahnya sama seperti saat membuat table barang. Untuk field yang akan dijadikan sebagai foreign key ,maka harus di“index”.  Contohnya saat membuat table beli , field kodesupply merupakan foreign key,setelah semua table dibuat,selanjutnya adalah membuat relasi antar table. Langkah berikutnya adalah, kita mengeset relasi antara kedua tabel yang dihubungkan dengan field ‘kodejenis’.




Primary Key adalah atribut (field) yang dipilih untuk menentukan struktur storage pada organisasi file multi key, adapun key lainnya disebut dengan secondary key. Pengertian lainya Primary Key adalah suatu nilai dalam basis data yang digunakan untuk mengidentifikasi suatu baris dalam tabel. Nilai dari primary key adalah unik. pengertian lain
Primary key :Salah satu atrribut dari candidat key dapat dipilih menjadi primary key dengan 3 kriteria sbb :
  • Key tersebut lebih natural untuk dijadikan acuan
  • Key tersebut lebih sederhana
  • Key tersebut cukup uniqe
Foreign Key adalah Sebuah kumpulan field dalam satu relasi yang digunakan untuk me“refer” (menunjuk) ke suatu baris (tuple) pada relasi yang lain (harus berkorespondensi dengan primary key pada relasi yang kedua), seperti: ‘logical pointer’. Sedangkan hubungan antara keduanya (primary key dan foreign key) di jelaskan sebagai berikut,“Primary Key” adalah field kunci / utama dari suatu tabel yang menunjukkan bahwa field yang menjadi kunci tersebut tidak bisa diisi dengan data yang sama, atau dengan kata lain Primary key menjadikan tiap record memiliki identitas sendiri-sendiri yang membedakan satu sama lainnya (unik).“Foreign key” adalah satu attribute yang melengkapi satu relationship yang menunjukan ke induknya, dengan kata lain keduanya saling berkaitan. pengertian lain ;
Foreign key : merupakan sembarang atribut yang menunjuk kepada primary key pada tabel lain.
  • Akan terjadi pada suatu relasi yang memiliki kardinalitas one to many atau many to many

Profile Sheila On7

Grup yang berdiri pada 6 Mei 1996 ini pada awalnya adalah sekumpulan anak-anak sekolah dari beberapa SMA di Yogyakarta. Di awal berdirinya bersatulah lima anak muda, Duta (vokal) berasal dari SMA 4, Adam (bass) dari SMA 6, Eross (gitar) dari SMA Muhammadiyah I, Sakti (gitar) dari SMA De Britto, dan Anton (drum) berasal dari SMA Bopkri I. Mereka sepakat untuk membentuk sebuah band dan membawakan lagu-lagu dari kelompok Oasis, U2, Bon Jovi, Guns N’ Roses, dll.

Pada waktu itu juga, mereka telah memiliki beberapa lagu-lagu orisinal karya mereka sendiri dan mereka mencoba untuk memperkenalkan dan membawakan lagu-lagu tersebut dengan penuh rasa percaya diri di berbagai pentas.

Saat ini SO7 tinggal berempat setelah Sakti dan Adam keluar. Namun untuk Drumer pengganti Anton diisi oleh Brian.

Sheila Management
Jl. Terus No. 7
Bulusan RT 09/39 Sardonoharjo, Ngaglik, Sleman
Yogyakarta 55581 Indonesia
Phone & fax: +62.274.883.507
Booking Agent:
+62-811-253777
Website: www.sheilaon7.com