0% menganggap dokumen ini bermanfaat (0 suara)
2K tayangan

Modul 13 User Defined Function

Dokumen tersebut membahas tentang User Defined Function (UDF) dalam basis data. UDF merupakan program yang ditulis pengguna untuk menambahkan fungsionalitas database dengan menambahkan fungsi-fungsi baru. Terdapat dua jenis UDF yaitu scalar UDF yang mengembalikan nilai tunggal dan table UDF yang mengembalikan sejumlah baris tabel. Dokumen ini memberikan contoh pembuatan dan penggunaan kedua jenis UDF tersebut.

Diunggah oleh

Niken H. Wardani
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
2K tayangan

Modul 13 User Defined Function

Dokumen tersebut membahas tentang User Defined Function (UDF) dalam basis data. UDF merupakan program yang ditulis pengguna untuk menambahkan fungsionalitas database dengan menambahkan fungsi-fungsi baru. Terdapat dua jenis UDF yaitu scalar UDF yang mengembalikan nilai tunggal dan table UDF yang mengembalikan sejumlah baris tabel. Dokumen ini memberikan contoh pembuatan dan penggunaan kedua jenis UDF tersebut.

Diunggah oleh

Niken H. Wardani
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 6

BASIS DATA LANJUT:

User Defined Function


Satrio Agung Wicaksono M.Kom., Welly Purnomo, ST., Widhy Hayuhardhika S.Kom.

1. 2. 3. 4.

Definisi User Defined Function Pembuatan User Defined Function Scalar Function Table Function

MODUL

User Defined Function (UDF) merupakan salah satu objek database yang memetakan kumpulan input data menjadi kumpulan output data. Contohnya adalah sebuah fungsi yang merubah ukuran input dalam inchi menjadi output ukuran sentimeter. DB2 support 3 tipe UDF yaitu SQL UDF, External UDF dan Sourced UDF. Namun yang akan dibahas dalam modul ini hanya SQL UDF yaitu UDF berdasarkan bahasa SQL. Berdasarkan result set yang dihasilkan oleh UDF, dikelompokkan menjadi 2 yaitu scalar UDF dan table UDF. dapat

13

Basis Data Lanjut / User Defined Function

Brawijaya University

2012

1. Definisi User Defined Function


User Defined Function (UDF) merupakan program yang ditulis user untuk memperkaya fungsionalitas database manager dengan menambahkan fungsi-fungsi baru dalam kumpulan built-in function. UDF secara fungsi tidak sekuat stored procedure karena UDF memiliki batasan-batasan yang tidak bisa menggantikan fungsi stored procedure. Namun UDF juga memiliki beberapa keuntungan : 1. Dieksekusi dalam perintah SELECT 2. Dieksekusi dari berbagai bagian perintah SQL (WHERE/HAVING, CASE) 3. Output UDF (table functions) dapat digunakan sebagai Rowset dalam perintah FROM 4. Dapat digunakan seperti view yang berparameter

2. Pembuatan User Defined Function


A. CREATE UDF
Berdasarkan nilai kembaliannya (return value) ada 2 tipe UDF yaitu scalar dan table. Berikut ini diberikan contoh sederhana untuk membuat UDF. Contoh create fungsi scalar : CREATE FUNCTION FUNCTION1 () RETURNS INTEGER NO EXTERNAL ACTION F1: BEGIN ATOMIC RETURN SELECT COUNT(*) FROM SYSIBM.SYSTABLES; END Contoh create fungsi table: CREATE FUNCTION FUNCTION2 () RETURNS TABLE(TABNAME VARCHAR(128)) NO EXTERNAL ACTION F1: BEGIN ATOMIC RETURN SELECT LASTNAME FROM EMPLOYEE; END

B. MODIFYING UDF
Dalam bahasa SQL DB2 tidak ada perintah ALTER untuk memodifikasi sebuah UDF. Ketika perlu melakukan perubahan fungsi yang telah ada maka fungsi tersebut harus di drop dulu dan di create ulang.

Page 2 of 6

Basis Data Lanjut / User Defined Function C. DROPPING UDF


Contoh menghapus fungsi berdasarkan nama fungsi: DROP FUNCTION function1;

Brawijaya University

2012

Jika terdapat 2 fungsi yang memiliki nama yang sama tetapi dengan parameter berbeda (disebut function overloading) maka cara penghapusannya berdasarkan nama fungsi dan parameternya. Contohnya sebagai berikut : DROP FUNCTION function1(int);

3. Scalar Function
Fungsi scalar mengembalikan nilai tunggal (single value). Fungsi scalar tidak bisa menggunakan query yang dapat merubah kondisi database, seperti query INSERT, UPDATE dan DELETE. Contoh fungsi scalar yang telah built-in adalah SUM(), AVG(), DIGITS(), COALESCE(), dan SUBSTR(). Ada 2 cara memanggil Fungsi Scalar. Cara pertama adalah dengan menggunakan fungsi tersebut dalam perintah SELECT. Cara kedua adalah dengan menggunakan VALUES. Berikut ini ditunjukkan contoh pemanggilan fungsi scalar. SELECT PROJNO, PROJNAME, DEPTNO, RESPEMP, COALESCE(MAJPROJ, 'tidak ada') FROM DB2ADMIN.PROJECT; VALUES projname('AD3100'); Contoh kasus penggunaan UDF dalam database sample schema. Cristine Haas ingin mengetahui jumlah pegawai yang terlibat dalam sebuah project. Ia ingin ketika input nama project menghasilkan keluaran banyaknya pegawai yang menangani project tersebut. Maka untuk memudahkan business logic yang akan diakses Cristine Haas dibuatkan sebuah UDF. (menggunakan IBM Data Studio) CREATE FUNCTION jmlpeg_proj (namaproject varchar(24)) RETURNS INTEGER NO EXTERNAL ACTION F1: BEGIN ATOMIC RETURN SELECT COUNT(e.empno) from empprojact e join project p on (p.projno = e.projno) where p.projname = upper(namaproject); END; VALUES jmlpeg_proj('account programming');

Page 3 of 6

Basis Data Lanjut / User Defined Function

Brawijaya University

2012

Hasil pemanggilan fungsi UDF jmlpeg_proj dengan namaproject = account programming :

Gambar 1. Hasil Pemanggilan UDF jmlpeg_proj

4. Table Function
User defined table function (UDTF) atau table UDF adalah fungsi yang mengembalikan sejumlah baris dalam sebuah tabel (temporary table). Fungsi ini dapat dipanggil menggunakan clausa FROM dalam query. Fungsi tabel bisa menggunakan query yang dapat merubah kondisi database, seperti query INSERT, UPDATE dan DELETE. Contoh fungsi tabel yang telah built-in adalah SNAPSHOT_DYN_SQL() dan MQREADALL(). Cara pemanggilan atau penggunaan table UDF ditunjukkan sebagai berikut :

Gambar 2. Contoh Pemanggilan Table UDF


Page 4 of 6

Basis Data Lanjut / User Defined Function

Brawijaya University

2012

Contoh kasus penggunaan UDTF dalam database sample schema. Seorang web programmer membutuhkan fungsi tabel untuk menampilkan data pegawai-pegawai (no pegawai, nama pegawai [lastname digabung firstname], total pendapatan, workdept ) yang bekerja pada departemen tertentu (nama departemen sesuai input pilihan user). Untuk memenuhi kebutuhan web programmer dibuatlah fungsi tabel kasus1. (menggunakan IBM Data Studio) CREATE FUNCTION kasus1 (namadept varchar(36)) RETURNS TABLE(empno char(6) , nama varchar(28), pendapatan decimal(9) , workdept char(3)) NO EXTERNAL ACTION F1: BEGIN ATOMIC RETURN SELECT e.empno, e.lastname || ' ' || e.firstnme as nama, (e.salary+e.bonus+e.comm) as pendapatan , e.workdept FROM employee e join department d on (e.workdept=d.deptno) WHERE d.deptname = UPPER(namadept); END@ SELECT * FROM TABLE(kasus1('information center'))@

Hasil pemanggilan fungsi UDF kasus1 dengan namadept = information center :

Gambar 3. Hasil Pemanggilan UDF kasus1


Page 5 of 6

Basis Data Lanjut / User Defined Function

Brawijaya University

2012

REFERENSI
IBM, 2009. DB2 Stored ProceduresProgramming Workshop Student Notebook, IBM Training Course code CL711 Bedoya, Hernando and friends, 2006. Stored Procedures, Triggers, and User-Defined Functions on DB2 Universal Database for iSeries. Ibm.com/redbooks. Situs IBM, diakses pada tanggal 2 Juli 2012 http://publib.boulder.ibm.com

PROPAGASI
Pertanyaan (Evaluasi mandiri) 1. Mengapa diperlukan UDF dalam pemanfaatan database? 2. Apa perbedaan Scalar UDF dan Table UDF ?

Page 6 of 6

Anda mungkin juga menyukai