PL/SQL - Fungsi: Panduan untuk Pemula

Hai teman-teman yang sedang belajar pemrograman! Hari ini, kita akan memulai perjalanan menarik ke dunia fungsi PL/SQL. Jangan khawatir jika Anda belum pernah menulis sebaris kode sebelumnya - saya akan menjadi panduan Anda, dan kita akan mengambil langkah ini satu per satu. Pada akhir tutorial ini, Anda akan dapat membuat dan memanggil fungsi seperti seorang ahli!

PL/SQL - Functions

Apa Itu Fungsi PL/SQL?

Sebelum kita masuk ke detil, mari kita mengerti apa itu fungsi. Picturkan fungsi sebagai seorang asisten kecil dalam kode Anda. Itu seperti mini-program dalam program utama Anda yang melakukan tugas tertentu. Anda memberikan informasi kepadanya (kita sebut ini sebagai input atau parameter), itu melakukan pekerjaan, dan kemudian memberikan Anda hasil.

Sebagai contoh, bayangkan Anda memiliki asisten robot ( mari kita sebutnya FunctionBot) yang dapat menghitung luas lingkaran. Anda memberitahu FunctionBot jari-jari lingkaran, dan secara cepat melakukan perhitungan dan memberitahu Anda luasnya. Itu sebenarnya apa yang dilakukan fungsi dalam pemrograman!

Membuat Fungsi

Sekarang, mari kita belajar bagaimana membuat fungsi sendiri dalam PL/SQL. Struktur dasar terlihat seperti ini:

CREATE [OR REPLACE] FUNCTION function_name
[(parameter_name [IN | OUT | IN OUT] type [, ...])]
RETURN return_datatype
IS
-- Bagian deklarasi
BEGIN
-- Bagian eksekusi
RETURN (value);
END;
/

Jangan khawatir! Mari kitauraikan ini:

  1. CREATE [OR REPLACE] FUNCTION: Ini memberitahu Oracle bahwa kita ingin membuat fungsi baru (atau mengganti yang sudah ada).
  2. function_name: Ini adalah nama yang kita berikan ke fungsi.
  3. (parameter_name [IN | OUT | IN OUT] type [, ...]): Ini adalah input yang diterima oleh fungsi kita.
  4. RETURN return_datatype: Ini menentukan jenis data yang akan dikembalikan oleh fungsi.
  5. IS: Kata kunci ini memisahkan header fungsi dari tubuhnya.
  6. Kata-kunci BEGIN dan END membungkus kode utama fungsi kita.
  7. RETURN (value): Ini adalah tempat kita menentukan apa yang harus dikembalikan oleh fungsi.

Mari kita membuat fungsi sederhana yang menghitung luas lingkaran:

CREATE OR REPLACE FUNCTION calculate_circle_area(radius NUMBER)
RETURN NUMBER
IS
pi CONSTANT NUMBER := 3.14159265359;
area NUMBER;
BEGIN
area := pi * radius * radius;
RETURN area;
END;
/

Berikut apa yang terjadi dalam fungsi ini:

  1. Kita membuat fungsi bernama calculate_circle_area.
  2. Itu menerima satu parameter input: radius, yang bertipe NUMBER.
  3. Itu akan mengembalikan NUMBER (luas lingkaran).
  4. Kita mendefinisikan konstanta pi dengan nilainya.
  5. Kita menghitung luas menggunakan rumus: π * r^2.
  6. Akhirnya, kita mengembalikan luas yang dihitung.

Memanggil Fungsi

Sekarang kita telah membuat fungsi, bagaimana kita menggunakannya? Ini disebut "memanggil" fungsi. Dalam PL/SQL, Anda dapat memanggil fungsi dengan beberapa cara:

1. Dalam pernyataan SELECT:

SELECT calculate_circle_area(5) AS circle_area FROM DUAL;

Ini akan mengembalikan luas lingkaran dengan jari-jari 5.

2. Dalam blok PL/SQL:

DECLARE
result NUMBER;
BEGIN
result := calculate_circle_area(7);
DBMS_OUTPUT.PUT_LINE('Luas lingkaran adalah: ' || result);
END;
/

Ini akan menghitung luas lingkaran dengan jari-jari 7 dan mencetak hasilnya.

3. Sebagai bagian dari ekspresi yang lebih besar:

DECLARE
radius NUMBER := 10;
diameter NUMBER;
BEGIN
diameter := 2 * radius;
DBMS_OUTPUT.PUT_LINE('Luas lingkaran dengan diameter ' ||
diameter || ' adalah: ' ||
calculate_circle_area(radius));
END;
/

Ini menghitung diameter dan kemudian menggunakan fungsi kita untuk menemukan luas.

Fungsi Rekursif PL/SQL

Sekarang, mari kita bicara tentang sesuatu yang sedikit lebih tingkat tinggi: fungsi rekursif. Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Itu seperti boneka Rusia - buka satu, dan ada yang lain di dalamnya!

Berikut adalah contoh kelasik: menghitung faktorial dari sebuah angka. Faktorial 5 (ditulis sebagai 5!) adalah 5 4 3 2 1 = 120.

Mari kita tulis fungsi rekursif untuk menghitung faktorial:

CREATE OR REPLACE FUNCTION factorial(n NUMBER)
RETURN NUMBER
IS
BEGIN
IF n = 0 OR n = 1 THEN
RETURN 1;
ELSE
RETURN n * factorial(n - 1);
END IF;
END;
/

Berikut adalah apa yang terjadi dalam fungsi ini:

  1. Jika n adalah 0 atau 1, kita kembalikan 1 (ini adalah kasus dasar).
  2. Jika tidak, kita kalikan n dengan faktorial (n-1).
  3. Fungsi ini terus memanggil dirinya sendiri dengan angka yang lebih kecil sampai mencapai kasus dasar.

Untuk menggunakan fungsi ini:

BEGIN
DBMS_OUTPUT.PUT_LINE('Faktorial 5 adalah: ' || factorial(5));
END;
/

Ini akan mencetak: "Faktorial 5 adalah: 120"

Metode Umum Fungsi PL/SQL

Berikut adalah tabel metode umum yang digunakan dengan fungsi PL/SQL:

Metode Deskripsi Contoh
CREATE FUNCTION Membuat fungsi baru CREATE FUNCTION my_func...
REPLACE FUNCTION Mengganti fungsi yang sudah ada CREATE OR REPLACE FUNCTION my_func...
RETURN Menentukan jenis kembalian dan nilai RETURN NUMBER; ... RETURN result;
CALL Memanggil fungsi SELECT my_func(5) FROM DUAL;
DROP FUNCTION Menghapus fungsi DROP FUNCTION my_func;
EXECUTE Menjalankan fungsi EXECUTE my_func(10);

Ingat, latihan membuat sempurna! Jangan khawatir untuk mencoba perubahan input, mengkombinasikan fungsi, atau membuat fungsi unik Anda sendiri. Semakin banyak Anda bermain dengannya, semakin Anda akan memahami cara kerjanya.

Dan itu saja! Anda telah mengambil langkah pertama ke dunia fungsi PL/SQL. Dari membuat kalkulator sederhana hingga penyelesaian masalah rekursif, fungsi adalah alat kuat yang akan membuat kode Anda lebih efisien dan mudah dikelola. Terus jelajahi, terus kode, dan terutama, bersenang-senang!

Credits: Image by storyset