Minggu, 23 November 2014

Fungsi dan Trigger



Assalamu’alaikum Wr.Wb.

Eits, jumpa lagi nih. Langsung aja lah menuju bahasan pada kesempatan kali ini. Jadi kali ini membahas tentang Fungsi dan Trigger.

Fungsi MySQL

Fungsi (function) adalah kumpulan-kumpulan SQL berupa routine yang disimpan dalam database MySQL server. Biasanya fungsi ini dikombinasikan dengan store procedure atau bisa juga tidak.
Sintaks dasar fungsi sebagai berikut:
CREATE
[DEFINER = {user | CURRENT_USER }]
FUNCTION sp_name ([func_parameter[...]])
RETURNS type [characteristic . . .] routine_body

Dalam fungsi, kita bisa memasukkan logika pemrograman. Beberapa diantaranya adalah penggunaan variabel, kendali kondisional, dan perulangan.

DECLARE

Pendeklarasian variabel memiliki sintaks seperti berikut:
DECLARE var_name [. var_name] . . . type [DEFAULT value]

Contohnya:
DECLARE nilai INT
DECLARE x, y INT DEFAULT 0

Pemberian nilai ke sebuah variabel dapat dilakukan dengan perintah SET. Hasil dari query juga dapat dimasukkan ke dalam variabel menggunakan SELECT INTO. Berikut ini contohnya.
SET hasil = ‘Ganjil’;
SELECT count(*) INTO nim FROM mahasiswa;

Ruang lingkup variabel berada diantara blok BEGIN dan END dimana variabel tersebut didefinisikan.

Kendali IF

Dasar sintaksnya sebagai berikut:

IF search_condition THEN statement_list [ELSEIF search_condition THEN statement_list] . . . [ELSE statement_list] END IF;

Nilai search_condition akan dievaluasi. Jika bernilai TRUE, maka statement_list setelah THEN dijalankan. Jika bernilai FALSE, maka statement_list pada ELSE yang dijalankan. Penggunaan banyak kondisi dapat dilakukan dengan statement ELSEIF.

Trigger

Trigger adalah sebuah Object Script MySQL Command yang memicu suatu kejadian dalam database MySQL berupa aksi insert, update, dan delete setelah syarat tertentu terpenuhi. Berikut sintaks lengkapnya.
CREATE
     [DEFINER = {user | CURRENT_USER}]
     TRIGGER trigger_name trigger_time trigger_event
     ON tbl_name FOR EACH ROW trigger_body

Baiklah sobat, sekarang waktunya penerapan penjelasan-penjelasan yang telah dibahas sedikit diatas tadi. Pertama-tama dimulai dari membuat fungsi.

1. Pembuatan Fungsi Konversi
Untuk membuat fungsi, saya mengambil contoh cara konversi derajat Fahrenheit ke derajat Celcius. Maka fungsinya sebagai berikut.











2. Fungsi Pencarian Data
Dengan menggunakan tabel mahasiswa yang sudah ada, kita akan mencoba mencari alamat dari suatu mahasiswa berdasarkan nama dari mahasiswa tersebut. Jadi nanti hasil yang akan ditampilkan merupakan alamat mahasiswa yang dicari

Misalnya kita ingin mencari alamat dari “Toni atau Avika”, maka querynya seperti pada gambar berikut ini. Pertama-tama membuat fungsinya dahulu, kemudian untuk mencarinya menggunakan select.


3. Fungsi dengan Declare dan IF-ELSEIF
Pernyataan fungsi dengan menggunakan if-elseif agar bisa menyatakan semua kondisi yang ada. Jangan lupa juga untuk mengakhiri perintah IF dengan END IF. Misalnya pembuatan fungsi pada tabel dibawah ini.

Nilai > 100 atau nilai < 0
Salah
Nilai > 90
Nilai A
70 < Nilai < 90
Nilai B
60 < Nilai < 70
Nilai C
50 < Nilai < 60
Nilai D
Nilai < 50
Nilai E


Querynya seperti berikut. Kemudian untuk mengeceknya menggunakan perintah select. 


Keterangan :
*Delimiter:Untuk memberi tahu pada MySQL soal delimiter yang digunakan, secara default menggunakan ; . Jadi bila ada tanda ; MySQL akan mengartikan akhir statement, pada contoh kali ini delimiter yang digunakan // . Itu berarti akhir statementnya adalah //.
*Declare: Untuk mendeklarasikan sebuah variabel



4. Fungsi dengan IF-ELSE
Pada fungsi ini misalnya pencarian jenis bilangan berupa ganjil atau genap. Setiap pembuatan fungsi yang kompleks selalu menggunakan BEGIN-END. Di dalam begin-end tersebut adalah tempat untuk menyatakan definisi atau perintah apa yang ingin kita lakukan. Contohnya seperti berikut.

5. Membuat Trigger
Sebelum membahas trigger, buat terlebih dahulu tambahan kolom tanggal pada tabel mahasiswa. Kolom inilah yang nantinya akan digunakan sebagai trigger.


Setelah itu membuat query dari trigger. Pada bahasan ini tanggal akan otomatis terisi saat melakukan insert data dan saat update data. Tanggal tersebut menunjukkan tanggal perubahan data tersebut dilakukan.

Jika trigger sudah berhasil dibuat, maka selanjutnya mencoba untuk menginsert atau mengupdate data pada tabel mahasiswa.

Nah, yang terakhir untuk mengecek trigger tanggal tersebut berhasil dibuat atau tidak  dengan menampilkan tabel mahasiswanya. Jika berhasil, akan muncul tanggal dimana tanggal tersebut merupakan waktu insert atau update data.



Kesimpulan
Setelah tadi membahas penerapannya, selanjutnya saya mencoba membandingkan sedikit masih sama seperti yang dulu-dulu yaitu antara Postgre dan MySQL. Dalam pembahasan kali ini saya menemukan banyak sekali perbedaannya. Bahkan semuanya berbeda querynya pada saat membuat fungsi ataupun trigger.

Pada Postgre penggunaan fungsi dibarengi dengan language ‘sql’ atau fungsi yang lebih kompleks lagi dengan language ‘plpgsql’ untuk mengakhiri statement dari fungsi yang dibuat. Sedangkan pada MySQL tidak memerlukan hal tersebut, tetapi menggunakan delimiter karena statementnya banyak. Sebab jika tidak begitu sebuah fungsi tidak akan berhasil dibuat.

Berlainan dengan fungsi, pada trigger kurang lebih query dasarnya sama antara Postgre dan MySQL. Meskipun begitu ada sedikit perbedaannya yaitu pada trigger eventnya. Dalam Postgre trigger eventnya bisa langsung diisi dua seperti insert or update. Sedangkan pada MySQL harus membuat trigger event secara tersendiri, jadi pertama membuat trigger insert dan kedua membuat trigger update.

Kurang lebihnya seperti itulah yang bisa saya simpulkan dari pembahasan mengenai fungsi dan trigger. Semoga memberi manfaat sobat. Thanks and see ya next meeting...:)

Wassalamu’alaikum Wr.Wb.


Referensi:
http://www.arifyuli.com/2013/09/pemakaian-view-function-trigger-dan-stored-porcedure-di-mysql/




Tidak ada komentar:

Posting Komentar