1Function
adalah suatu blok PL/SQL yang memiliki konsep sama dengan procedure, hanya saja
pada function terdapat pengembalian nilai (return value).
Karena function dapat mengembalikan sebuah nilai, function dapat diakses
seperti layaknya sebuah variabel biasa.
Bentuk Umum :
CREATE OR REPLACE FUNCTION nama_function (parameter_1, …)
RETURN tipe_data AS
variabel_1 tipe_data;
…
BEGIN
statemen_1;
…
RETURN nilai_yang_dikembalikan;
END;
CREATE OR REPLACE FUNCTION nama_function (parameter_1, …)
RETURN tipe_data AS
variabel_1 tipe_data;
…
BEGIN
statemen_1;
…
RETURN nilai_yang_dikembalikan;
END;
Statemen RETURN tipe_data diatas menunjukkan bahwa function akan mengembalikan nilai dengan tipe data tertentu.
Statemen RETURN nilai_yang_dikembalikan berfungsi untuk mengembalikan nilai yang telah diproses dalam function.
·
Function Tanpa
Parameter.
CREATE OR REPLACE FUNCTION
tulis_teks RETURN VARCHAR2 AS
S VARCHAR2(20)
BEGIN
S := ‘HALLO SEMUA’;
RETURN S;
END;
/
Atau
S VARCHAR2(20)
BEGIN
S := ‘HALLO SEMUA’;
RETURN S;
END;
/
Atau
SET SERVEROUTPUT ON
DECLARE
X VARCHAR2(20);
BEGIN
X := tulis_teks;
DBMS_OUTPUT.PUT_LINE(X);
END;
/
·
Function Dengan
Parameter.
CREATE OR REPLACE FUNCTION
pangkat (bil INTEGER, n INTEGER)
RETURN INTEGER AS
HASIL INTEGER(10);
I INTEGER;
BEGIN
HASIL := 1;
FOR I IN 1..n LOOP
HASIL := HASIL * bil;
END LOOP;
RETURN HASIL;
END;
/
Atau
pangkat (bil INTEGER, n INTEGER)
RETURN INTEGER AS
HASIL INTEGER(10);
I INTEGER;
BEGIN
HASIL := 1;
FOR I IN 1..n LOOP
HASIL := HASIL * bil;
END LOOP;
RETURN HASIL;
END;
/
Atau
SET SERVEROUTPUT ON
DECLARE
H INTEGER;
BEGIN
H := pangkat(2, 3);
DBMS_OUTPUT.PUT_LINE(‘Hasil = ‘ || TO_CHAR(H));
END;
/
·
Function Didalam
Function.
CREATE OR REPLACE FUNCTION kuadrat
(X NUMBER)
RETURN NUMBER AS
HASIL NUMBER(10);
BEGIN
HASIL := X * X;
RETURN HASIL;
END;
/
Atau
RETURN NUMBER AS
HASIL NUMBER(10);
BEGIN
HASIL := X * X;
RETURN HASIL;
END;
/
Atau
CREATE OR REPLACE FUNCTION determinan
(a NUMBER, b NUMBER, c NUMBER)
RETURN NUMBER AS
D NUMBER(10);
BEGIN
D := kuadrat(b) – (4 * a * c);
RETURN D;
END;
/
Atau
SET SERVEROUTPUT ON
DECLARE
D NUMBER(10);
BEGIN
D := determinan(1, 1, -6);
DBMS_OUTPUT.PUT_LINE(‘Nilai determinan = ‘ || TO_CHAR(D));
END;
/
0 komentar:
Posting Komentar