Fungsi bertakrif pengguna

Fungsi bertakrif pengguna merupakan jenis fungsi yang disediakan oleh pengaturcara sendiri, dalam konteks di mana andaian biasa ialah fungsi yang dibina untuk sesuatu program. Fungsi bertakrif pengguna kebiasaannya dituis untuk keperluan pengaturcara.Seperti fungsi bina-dalam, fungsi bertakrif pengguna mempunyai nama di bahagian pengepala dan nilai argumen. Fungsi bertakrif pengguna dikenali sebagai user-defined function dalam bahasa Inggeris; fungsi berdefinisi pengguna– nama lain fungsi bertaktif pengguna dalam Bahasa Melayu.

Bahasa BASIC

Dalam sesetengah pelaksanaan lama bagi bahasa pengaturcaraan BASIC, fungsi takrifan pengguna ditakrifkan dengan sintaks "DEF FN". Loghat yang lebih moden bagi BASIC pula dipengaruhi oleh paradigma pengaturcaraan berstruktur, di mana kebanyakan atau semua kod ditulis sebagai fungsi atau tatacara takrifan pengguna, lantas konsep ini secara praktikal tidak lagi diperlukan.

Pangkalan data

Dalam pangkalan data SQL, sesebuah fungsi takrifan pengguna membekalkan suatu mekanisme bagi sambungan bagi kefungsian pelayan pangkalan data dengan menambahkan fungsi yang boleh dinilaikan dalam kenyataan SQL. Piawai SQL membezakan fungsi skalar dan jadual. Fungsi skalar cuma memulangkan satu nilai tunggal (atau NULL), manakala fungsi jadual memulangkan sebuah jadual (hubungan) yang terdiri daripada sifar atau lebih baris, setiap baris terdiri daripada satu atau lebih lajur.

Fungis takrifan pengguna dalam SQL diisytiharkan dengan kenyataan CREATE FUNCTION. Sebagai contoh, fungsi yang menukarkan Celsius kepada Fahrenheit mungkin diisytiharkan begini:
CREATE FUNCTION dbo.CkepadaF(Celsius FLOAT)
  RETURNS FLOAT
  RETURN (Celsius * 1.8) + 32

Setelah diwujudkan, sesebuah fungsi takrifan pengguna bolehlah digunakan dalam ungkapan dalam kenyataan SQL. Sebagai contoh, ia boleh diseru pada mana fungsi intrinsik lain dibenarkan. Kenyataan SELECT turut termasuk, di mana fungsi boleh digunakan pada data yang tersimpan dalam jejadual dalam pengkalan data. Fungsi berkenaan dinilaikan sekali pada setiap baris. Sebagai contoh, anggap ada jadual bernama UNSUR, dengan setiap barisnya ialah unsur kimia yang diketahui. Jadual itu mempunyai satu lajur bernama TakatDidih bagi menyimpan takat didih bagi unsur terbabit, dalam Celsius. Pertanyaan

SELECT Name, CtoF(TakatDidih)
  FROM Unsur

akan mendapat balik nama dan takat didih daripada setiap baris. Ia menyeru fungsi takrifan pengguna CkepadaF seperti yang diisytiharkan dia atas bagi menukar nilai dalam lajur berkenaan kepada nilai dalam Fahrenheit.

 Rujukan 

Kategori:Pangkalan data
Kategori:SQL
Kategori:Subrutin