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
|
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
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.
Tidak ada komentar:
Posting Komentar