Stored Procedure Stored procedure memungkinkan sebuah aplikasi berbasis database (SQL) mendefinisikan dan kemudian memanggil prosedur melalui pernyataan SQL.
Stored procedure dapat digunakan untuk aplikasi
terdistribusi (client server) maupun aplikasi tidak terdistribusi (lokal). Stored Procedure Keuntungan besar dalam menggunakan Stored procedure pada aplikasi terdistribusi adalah dapat digunakannya satu perintah CALL pada aplikasi untuk mengerjakan perintah yang sama.
Tersimpannya Stored procedure pada sistem database
terpusat memungkinkan dilakukannya perubahan untuk menyesuaikan dengan perubahan sistem terkini dan dapat berlaku untuk keseluruh sistem aplikasi yang ada tanpa perlu dilakukan perubahan untuk setiap modul aplikasi. Stored Procedure Stored Procedure dapat diartikan sebagai program (“routines”) yang tersimpan dalam database seperti halnya data.
MySQL mendukung dua jenis ‘routines’, yaitu : Stored Procedure
dan functions yang mengembalikan nilai.
Sebuah Stored procedure setidaknya memiliki nama, dapat
mengandung parameter (ataupun tidak), dan berisi SQL statement yang dapat terdiri dari satu atau banyak SQL statement lain didalamnya.
Fungsi baru yang terdapat pada MySQL Stored Procedure
antara lain variabel lokal (local variable), kontrol alur (loop control)¸ dan pengkondisian (conditional). Stored Procedure Terdapat beberapa ketentuan umum yang harus diperhatikan dalam membuat procedure di MySQL, diantaranya adalah :
a. Nama procedure bersifat tidak case sensitive, artinya
procedure ‘p1’ adalah sama dengan procedure ‘P1’.
b. Nama procedure adalah terbatas dengan panjang
maksimum adalah 64 karakter dan tidak diperkenankan menggunakan nama yang ada pada fungsi built-in MySQL.
c. MySQL tidak memperkenankan terjadinya overloading,
kondisi dimana terdapat dua procedure dengan nama yang sama dalam satu database. Stored Procedure Delimiter Delimiter adalah karakter atau string yang digunakan untuk menyatakan akhir SQL statement, default delimiter pada MySQL adalah semicolon (;). Perubahan delimiter diperlukan karena dalam sebuah Stored Procedure dapat terdiri dari lebih satu statement dan setiap akhir statement diakhiri dengan delimiter. Sebagai contoh kita akan mengubah delimiter menjadi // dengan syntax berikut : DELIMITER // *Note : DELIMITER hanya berlaku jika mengoperasikan perintah SQL melalui Command Prompt (CMD). Stored Procedure Format umum dalam pembuatan stored procedure :
CREATE PROCEDURE procedure1 /* name */
([IN] parameter1 INTEGER) /* parameters */ [BEGIN] /* start of block */ .... /* Statements */ .... /* Statements */ [END] /* end of block */
*Note : BEGIN dan END harus digunakan hanya ketika ada
lebih dari satu statements dalam sebuah stored procedure. Stored Procedure Stored Procedure dapat dibuat dengan perintah sebagai berikut : CREATE PROCEDURE p1() SELECT * FROM provinsi;
Untuk menjalankan store procedure yang telah dibuat,
gunakan perintah CALL, sebagai contoh : CALL p1(); Stored Procedure dengan Paramater Contoh pembuatan Stored Procedure dengan Paramater :
Mencari record dengan paramater :
CREATE PROCEDURE p2(IN pkd_prov Varchar(5)) SELECT * FROM kota where kd_prov = pkd_prov;
Menambahkan record dengan paramater :
CREATE PROCEDURE tambahp(IN pkd_prov Varchar(5), pnm_prov Varchar(30)) INSERT INTO provinsi VALUES(pkd_prov, pnm_prov); Stored Procedure dengan Conditional Contoh pembuatan stored procedure dengan conditional dan variabel lokal :
Menggunakan conditional IF-THEN-ELSE :
CREATE PROCEDURE p3(IN par1 int) BEGIN DECLARE var1 int; SET var1 = 3; IF par1 > 3 THEN SET var1 = par1 – var1; SELECT var1; ELSE SET var1 = par1 + var1; SELECT var1; END IF; END; Stored Procedure dengan Perulangan Contoh pembuatan stored procedure dengan perulangan dan variabel lokal :
Menggunakan perulangan While .. Do :
CREATE PROCEDURE p4() BEGIN DECLARE x int; SET x = 0; WHILE x < 3 DO SELECT x; SET x = x + 1; END WHILE; END; Stored Procedure dengan Perulangan Contoh pembuatan stored procedure dengan perulangan dan variabel lokal :
Menggunakan perulangan Repeat .. Until :
CREATE PROCEDURE p5() BEGIN DECLARE x int; SET x = 0; REPEAT SELECT x; SET x = x + 1; UNTIL x >= 3 END REPEAT; END; Stored Procedure Menghapus sebuah stored procedure dengan perintah : DROP PROCEDURE nama_procedure;
Untuk melihat daftar procedure yang ada dalam database
kita bisa menggunakan perintah : SHOW PROCEDURE STATUS; TERIMAKASIH! See You Next Time...