kumpulan-kumpulan SQL berupa rountine yang di simpan dalam database MySQL Server. biasanya function ini dikombinasikan dengan store pocedure atau bisa juga tidak di kombinasikan dengan store procedure
oke berikut ini cara membuat function
dalam contoh dibawah ini kasus tentang sistem informasi sekolah, yang mana function yang dibuat akan mengembalikan nilai berupa jumlah siswa dari setiap kelas.
sturuktur tabel siswa
CREATE TABLE `data_siswa`.`tbl_siswa` (
`nis` char(10) NOT NULL,
`nama` varchar(255) NOT NULL,
`kelas` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
function untuk mengembalikan jumlah data dari setiap kelas
DELIMITER $$
CREATE FUNCTION sf_tampil_siswa_kelas (p_kelas int) RETURNS INT DETERMINISTIC
BEGIN
DECLARE jml INT;
SELECT COUNT(*) AS jml_kelas INTO jml FROM tb_siswa WHERE kelas = p_kelas;
RETURN jml;
END$$
DELIMITER ;
penjelasannya sebagai berikut:
- DELIMITER = adalah untuk memberi tahu kepada myql soal delimiter yang digunakan, secara default menggunakan ; jadi bila ada tanda ; mysql akan mengartikan akhir dari statement, pada contoh di atas delimeter yang digunakan $$ jadi akhir statementnya adalah $$
- CREATE FUNCTION = adalah header untuk membuat function
- RETURNS = adalah untuk menentukan tipe data yang di return-kan oleh function
- DETERMINISTIC/ NOT DETERMINISTIC = adalah untuk menentukan yang bisa menggunakan function ini adalah user pembuatnya saja (determinisric) atau user siapa saja (not determinisric).
- BEGIN END = adalah body dari function jadi semua SQL nya di tulis disini.
contoh pemanggilannya seperiti dibawah ini:
select sf_tampil_siswa_kelas("2");
sebuah function hanya bisa memberikan return berupa nilai saja dan tidak bisa berupa resutlset
untuk penulisan DETEMINISTIC bisa ditulis secara implisit dengan memberikan setting global pada mysql dan secara default benilai NOT DETEMINISTIC , caranya dibawah ini:
SET GLOBAL log_bin_trust_function_creators = 1;
oke bro... semoga membatu... selamat mencoba juga...
Thanku Bro...
ReplyDeleteBermanfaat Sekali Artikelnya
sama-sama bro
ReplyDeleteSip tadinya aku nyobain seharian ga bisa2. Tp setelah liat penjelasan di atas langsung bisa.
ReplyDeletethank's bro...
siip...
ReplyDeletemakasih banget..... tugas q jd kelar
ReplyDeleteterima kasih kembali
ReplyDeletebos ada error keknya
ReplyDeleteDELIMITER; setelah END$$ seharusnya DELIMITER ;
kudu pake spasi
CMIIW
bro bisa tanya dikit kalau function di dalamnya terdapat function bisa ga yah?
ReplyDeletebisa mas... memangil function di dalam function bisa dilakukan mas..
ReplyDeleteMau tanya dong Gan
ReplyDeletekalau di dalam function ada
declare
select field1, field2 from tblcoba
field1 tadi taro di declare val1 dan
field2 tadi taro di declare val2
thx
Baru menaruh hasil query dengan menggunakan satu buah field. Caranya yaitu dengan teknik cursor, sperti yang ada di link ini : http://dendieisme.blogspot.com/2009/07/cursor-store-procedure-mysql.html
DeleteThanks Mas Bro..
ReplyDeleteHmm maaf saya masih rada kurang ngerti
ReplyDeleteJadi sebenarnya fungsi dari function itu apa ya,bisa dijelasin lebih detail kalau bisa dalam studi kasus?
maaf saya masih kurang menggerti fungsi dari function itu apa ?
ReplyDeletemakasih artikelnya membantu.
ReplyDeleteMy Blog
artikelnya singkat tapi membantu
ReplyDeleteBermanfaat sekali gan, wajib di coba ini
ReplyDeletesemoga bermanfaat...
DeleteThank You and I have a keen provide: House Renovation What Order home remodeling estimates
ReplyDelete