Label

Laporkan Penyalahgunaan

Langsung ke konten utama

Prosedur dan Function

Dalam MySQL, procedure (prosedur) dan function (fungsi) adalah dua jenis stored routines yang menyimpan serangkaian perintah SQL untuk menjalankan operasi tertentu. Meskipun keduanya mirip, terdapat beberapa perbedaan utama dalam penggunaannya:

1. Prosedur (Stored Procedure)

Prosedur adalah kumpulan perintah SQL yang disimpan dalam basis data, yang dapat dijalankan kapan saja.
Prosedur dapat menerima parameter (input, output, atau keduanya) dan digunakan untuk melakukan operasi kompleks yang melibatkan beberapa langkah.
Prosedur tidak harus mengembalikan nilai tetapi dapat mengembalikan beberapa hasil jika diperlukan, seperti result sets atau parameter output.
Prosedur dipanggil menggunakan perintah CALL.

Contoh Prosedur:
DELIMITER //
CREATE PROCEDURE tambahAngka(IN num1 INT, IN num2 INT, OUT hasil INT)
BEGIN
    SET hasil = num1 + num2;
END //
DELIMITER ;

Untuk memanggil prosedur:
CALL tambahAngka(5, 10, @output);
SELECT @output; -- untuk melihat hasil


2. Fungsi (Function)

Fungsi adalah rutin yang menerima masukan (parameter) dan selalu mengembalikan satu nilai sebagai hasil.
Biasanya digunakan untuk operasi sederhana yang menghasilkan satu nilai, seperti melakukan perhitungan atau mengolah data.
Fungsi dapat digunakan dalam perintah SQL, seperti di dalam SELECT, WHERE, atau JOIN.
Fungsi didefinisikan dengan perintah CREATE FUNCTION dan mengembalikan nilai menggunakan RETURN.

Contoh Fungsi:
DELIMITER //
CREATE FUNCTION perkalian(num1 INT, num2 INT) RETURNS INT
BEGIN
    RETURN num1 * num2;
END //
DELIMITER ;

Untuk menggunakan fungsi:
SELECT perkalian(5, 10);


Perbedaan Utama:
Pengembalian Nilai: Fungsi selalu mengembalikan nilai tunggal, sementara prosedur tidak harus mengembalikan nilai.
Penggunaan di SQL: Fungsi dapat digunakan langsung dalam pernyataan SQL (seperti SELECT), sedangkan prosedur tidak bisa.
Cara Panggil: Prosedur dipanggil dengan CALL, sedangkan fungsi dipanggil langsung dalam pernyataan SQL.