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 dariINdanOUT.
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.
Ditulis oleh
Wilan
Kontributor tetap Bali Island Tekno yang aktif berbagi pengetahuan seputar teknologi, pemrograman, dan dunia rekayasa perangkat lunak.