Stored Procedures dan Functions di MySQL

Stored Procedures dan Functions adalah dua fitur penting dalam MySQL yang memungkinkan eksekusi perintah SQL secara otomatis dan terstruktur. Keduanya membantu mengurangi redundansi kode, meningkatkan kinerja database, serta menyederhanakan pengelolaan data.
Dalam artikel ini, kita akan membahas konsep dasar, perbedaan antara Stored Procedures dan Functions, cara membuatnya, serta contoh penggunaannya.
Apa Itu Stored Procedure dan Function?
Stored Procedure
Stored Procedure adalah kumpulan perintah SQL yang disimpan dalam database dan dapat dieksekusi berulang kali tanpa perlu menulis ulang query. Stored Procedure berguna untuk menangani operasi kompleks, seperti manipulasi data dan transaksi.
Function
Function dalam MySQL mirip dengan Stored Procedure, tetapi memiliki perbedaan utama: Function selalu mengembalikan satu nilai dan dapat digunakan dalam query SQL seperti SELECT
.
Perbedaan | Stored Procedure | Function |
Penggunaan di Query | Tidak bisa digunakan dalam SELECT | Bisa digunakan dalam SELECT |
Dapat Mengubah Data | Ya (Dapat menggunakan INSERT , UPDATE , DELETE ) | Tidak (Hanya bisa membaca data) |
Pengembalian Nilai | Bisa mengembalikan satu atau lebih nilai | Hanya mengembalikan satu nilai |
Pemanggilan | Menggunakan CALL | Menggunakan SELECT |
Cara Membuat Stored Procedure di MySQL
Sintaks Dasar Stored Procedure
DELIMITER //
CREATE PROCEDURE nama_procedure(parameter)
BEGIN
-- Perintah SQL di sini
END //
DELIMITER ;
DELIMITER //
digunakan untuk menghindari konflik dengan;
di dalam prosedur.parameter
bisa berupa input, output, atau keduanya.
Contoh Stored Procedure Sederhana
Stored Procedure berikut akan menampilkan semua data dari tabel employees
.
DELIMITER //
CREATE PROCEDURE get_all_employees()
BEGIN
SELECT * FROM employees;
END //
DELIMITER ;
Menjalankan Stored Procedure
CALL get_all_employees();
Stored Procedure dengan Parameter
Stored Procedure berikut menampilkan data karyawan berdasarkan ID:
DELIMITER //
CREATE PROCEDURE get_employee_by_id(IN emp_id INT)
BEGIN
SELECT * FROM employees WHERE id = emp_id;
END //
DELIMITER ;
Menjalankan Stored Procedure dengan Parameter
CALL get_employee_by_id(101);
Cara Membuat Function di MySQL
Sintaks Dasar Function
DELIMITER //
CREATE FUNCTION nama_function(parameter) RETURNS tipe_data
DETERMINISTIC
BEGIN
-- Perintah SQL di sini
RETURN nilai;
END //
DELIMITER ;
RETURNS tipe_data
menentukan jenis data yang dikembalikan.DETERMINISTIC
berarti function selalu memberikan output yang sama untuk input yang sama.
Contoh Function Sederhana
Function berikut menghitung gaji tahunan berdasarkan gaji bulanan.
DELIMITER //
CREATE FUNCTION hitung_gaji_tahunan(gaji_bulanan DECIMAL(10,2)) RETURNS DECIMAL(10,2)
DETERMINISTIC
BEGIN
RETURN gaji_bulanan * 12;
END //
DELIMITER ;
Menjalankan Function
SELECT hitung_gaji_tahunan(5000);
Output: 60000.00
Manipulasi Data dengan Stored Procedure
Stored Procedure dapat digunakan untuk INSERT
, UPDATE
, atau DELETE
data dalam tabel.
Contoh: Stored Procedure untuk Menambah Data
DELIMITER //
CREATE PROCEDURE add_employee(IN emp_name VARCHAR(100), IN emp_salary DECIMAL(10,2))
BEGIN
INSERT INTO employees (name, salary) VALUES (emp_name, emp_salary);
END //
DELIMITER ;
Menjalankan Stored Procedure
CALL add_employee('John Doe', 7000);
Menghapus Stored Procedure dan Function
Jika ingin menghapus prosedur atau fungsi yang sudah dibuat, gunakan perintah berikut:
Menghapus Stored Procedure
DROP PROCEDURE IF EXISTS nama_procedure;
Menghapus Function
DROP FUNCTION IF EXISTS nama_function;
Keuntungan Menggunakan Stored Procedures dan Functions
- Mengurangi Redundansi Kode – Query kompleks bisa dibuat sekali dan digunakan berkali-kali.
- Meningkatkan Kinerja – MySQL menyimpan prosedur dalam bentuk precompiled, sehingga lebih cepat dieksekusi.
- Meningkatkan Keamanan – Hak akses bisa diatur untuk mencegah manipulasi langsung oleh pengguna biasa.
- Menyederhanakan Manajemen Database – Operasi kompleks seperti transaksi dapat dilakukan dengan mudah.
Kesimpulan
Stored Procedures dan Functions di MySQL adalah fitur yang sangat berguna untuk meningkatkan efisiensi pengelolaan database. Stored Procedure cocok untuk eksekusi query yang melibatkan manipulasi data, sementara Function lebih cocok untuk perhitungan dan operasi yang mengembalikan satu nilai.
Dengan memahami dan menerapkan kedua fitur ini, Anda dapat mengembangkan sistem database yang lebih cepat, aman, dan mudah dikelola.