BAB 18: Stored Program MySQL Dasar – Stored Procedure, Function, Trigger, dan Event Scheduler

BAB 18: Stored Program MySQL Dasar – Stored Procedure, Function, Trigger, dan Event Scheduler

Stored Program adalah sekumpulan perintah SQL yang disimpan dan dijalankan langsung di dalam MySQL Server.

Stored Program membantu mengurangi beban aplikasi, meningkatkan performa, serta menjaga konsistensi logika bisnis.

Jenis Stored Program di MySQL meliputi:

  • Stored Procedure
  • Function
  • Trigger
  • Event Scheduler

2. Stored Procedure

Stored Procedure adalah prosedur yang berisi satu atau lebih perintah SQL dan dapat dipanggil berulang kali.

Kelebihan Stored Procedure:

  • Query lebih rapi
  • Mengurangi duplikasi kode
  • Performa lebih baik

Contoh Stored Procedure sederhana:

DELIMITER //

CREATE PROCEDURE tampil_mahasiswa()
BEGIN
    SELECT * FROM mahasiswa;
END //

DELIMITER ;

Menjalankan Stored Procedure:

CALL tampil_mahasiswa();

3. Function

Function mirip dengan Stored Procedure, namun harus mengembalikan nilai (RETURN) dan biasanya digunakan dalam query SELECT.

Contoh Function:

DELIMITER //

CREATE FUNCTION hitung_umur(tgl_lahir DATE)
RETURNS INT
DETERMINISTIC
BEGIN
    RETURN YEAR(CURDATE()) - YEAR(tgl_lahir);
END //

DELIMITER ;

Menggunakan Function:

SELECT nama, hitung_umur(tanggal_lahir) AS umur
FROM mahasiswa;

4. Trigger

Trigger adalah Stored Program yang dijalankan otomatis ketika terjadi peristiwa tertentu pada tabel (INSERT, UPDATE, DELETE).

Jenis Trigger:

  • BEFORE INSERT
  • AFTER INSERT
  • BEFORE UPDATE
  • AFTER UPDATE
  • BEFORE DELETE
  • AFTER DELETE

Contoh Trigger:

DELIMITER //

CREATE TRIGGER before_insert_mahasiswa
BEFORE INSERT ON mahasiswa
FOR EACH ROW
BEGIN
    SET NEW.created_at = NOW();
END //

DELIMITER ;

5. Event Scheduler

Event Scheduler digunakan untuk menjalankan perintah SQL secara otomatis berdasarkan waktu tertentu, mirip dengan cron job.

Mengaktifkan Event Scheduler:

SET GLOBAL event_scheduler = ON;

Contoh Event Scheduler:

DELIMITER //

CREATE EVENT hapus_data_lama
ON SCHEDULE EVERY 1 DAY
DO
BEGIN
    DELETE FROM log_aktivitas
    WHERE tanggal < NOW() - INTERVAL 30 DAY;
END //

DELIMITER ;

6. Perbedaan Stored Procedure, Function, Trigger, dan Event

JenisDipanggil ManualReturn NilaiJalan Otomatis
Stored ProcedureYaTidakTidak
FunctionYaYaTidak
TriggerTidakTidakYa
EventTidakTidakYa

Kesimpulan

Stored Program MySQL membantu menjalankan logika bisnis langsung di database. Dengan memahami dasar Stored Procedure, Function, Trigger, dan Event Scheduler, pengguna dapat membangun sistem database yang lebih efisien, otomatis, dan terstruktur.