Fungsi takrifan pengguna

Daripada Wikipedia, ensiklopedia bebas.
Lompat ke: pandu arah, cari

Fungsi takrifan pengguna (bahasa Inggerisnya User-defined function, UDF), ialah fungsi yang disediakan oleh pengguna atau persekitaran, dalam konteks di mana anggapan biasa bahawa fungsi tersebut dibina kedalam atur cara atau persekitaran berkenaan.

Bahasa BASIC[sunting | sunting sumber]

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[sunting | sunting sumber]

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 sebua 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.