Penjelasan Stored Procedure dan Cursor pada Database

WI
Wilan
3 menit baca
Stored Procedure & Cursor

Stored Procedure

Stored procedure merupakan kumpulan perintah-perintah SQL atau bisa dikatakan sebagai subprogram dengan nama tertentu yang disimpan pada database.

Proses yang dilakukan stored procedure yaitu menerima inputan parameter, kemudian mengembalikan nilai-nilai dalam bentuk parameter output kepada pemanggilnya, serta melakukan operasi pengolahan data pada database yang dijalankan oleh suatu program seperti trigger atau stored procedure lainnya.

Penggunaan stored procedure memiliki beberapa kelebihan, yaitu:

  • Meningkatkan performa pada aplikasi, karena stored procedure yang telah dibuat berjalan lebih cepat dari perintah SQL yang dikirim aplikasi dan belum dikompilasi.
  • Menurunkan traffic jaringan dari database dan aplikasi, karena tidak perlu mengirimkan SQL yang belum dikompilasi.
  • Dapat digunakan secara berulang dan transparan pada semua aplikasi.

Meskipun demikian, penggunaan stored procedure juga memiliki beberapa kelemahan, yaitu:

  • Tidak dapat dilakukan debug.
  • Membuat beban pada hardware server bertambah.
  • Penulisannya tidak mudah dan memerlukan pengetahuan yang spesifik.

Sintaks pada Stored Procedure

Sintaks yang terdapat pada stored procedure adalah sebagai berikut:

Sintaks Penulisan Stored Procedure

DELIMITER //

CREATE PROCEDURE nama_procedure()
BEGIN
    query sql
END //

DELIMITER ;

Sintaks Memanggil Stored Procedure

CALL nama_procedure();

Sintaks Deklarasi Variabel Stored Procedure

DECLARE nama_variable tipedata(panjang) DEFAULT nilai;

Sintaks Stored Procedure dengan Parameter

Terdapat tiga mode untuk parameter, yaitu:

  • IN
    Bentuk default dari parameter, di mana semua perubahan pada stored procedure tidak akan mempengaruhi parameter.

  • OUT
    Mode yang akan mengubah nilai parameter, lalu mengirimkan kembali ke pemanggilnya.

  • INOUT
    Mode kombinasi dari IN dan OUT.

Contoh Sintaks Mendefinisikan Stored Procedure dengan Parameter

DELIMITER //

CREATE PROCEDURE nama_procedure(
    [mode] [parameter] [tipe_data]
)
BEGIN
    query sql
END //

DELIMITER ;

Contoh Sintaks Memanggil Stored Procedure dengan Parameter

CALL nama_procedure([nilai_parameter]);

Cursor

Cursor merupakan objek pada database yang digunakan untuk menampung pemrosesan pernyataan SQL yang bersifat spesifik, atau dapat dikatakan sebagai variabel penampung hasil query yang mengandung lebih dari satu row atau record.

Cursor dapat melakukan iterasi sebanyak row data pada tabel. Terdapat beberapa sifat dari cursor, yaitu:

  • Tidak dapat dilakukan update (read only).
  • Cursor hanya berjalan pada satu arah (non-scrollable).
  • Tidak disarankan untuk melakukan update pada tabel yang diacu oleh cursor karena dapat memberikan hasil yang tidak diinginkan (asensitive).

Sintaks pada Cursor

Pada cursor terdapat beberapa tahap dalam pembuatannya, yaitu:

1. Declare

Tahapan untuk mendeklarasikan cursor, dengan sintaks:

DECLARE nama_cursor CURSOR FOR
pernyataan_SELECT;

2. Open

Tahapan untuk membuka atau mengaktifkan cursor, dengan sintaks:

OPEN nama_cursor;

3. Fetch

Tahapan untuk mengambil data dari cursor dan kemudian menampungnya pada sebuah variabel, dengan sintaks:

FETCH nama_cursor INTO daftar_variabel;

4. Close

Tahapan untuk menonaktifkan cursor, dengan sintaks:

CLOSE nama_cursor;

Perbedaan Stored Procedure dan Cursor

Perbedaan stored procedure dengan cursor adalah stored procedure hanya menampung perintah-perintah deklarasi dari MySQL, sedangkan cursor menampung hasil query sekaligus sebagai pointer dari hasil query.

Hal ini memungkinkan cursor dapat melakukan perintah yang kompleks yang tidak dapat dilakukan oleh stored procedure. Salah satunya adalah melakukan iterasi pada record.

W

Ditulis oleh

Wilan

Kontributor tetap Bali Island Tekno yang aktif berbagi pengetahuan seputar teknologi, pemrograman, dan dunia rekayasa perangkat lunak.

Kembali ke Beranda Diperbarui pada: 5 Juni 2026