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.
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.
Dengan menggunakan Stored procedure, SQL tidak akan melakukan loading seluruh tabel yang ter‐relasi, tetapi langsung melakukan filtering berdasarkan query yang dimaksud sehingga dari sisi performa eksekusi, utilitas jaringan, dan keamanan dapat lebih terjaga.
Cara membuat Stored Procedure pada MySQL :
- Ubah delimiter menjadi “$$”.
“delimiter $$“ - Membuat procedure untuk melihat tabel.
“create procedure tampil()
->begin
->select*from nama.tabel;
->end $$” - Menggunakan procedure untuk melihat tabel.
“call tampil() $$“ - Membuat procedure untuk memasukkan data ke dalam tabel.
“create procedure tambah(field)
->begin
->insert into nama.tabel values(nama.field);
->end $$” - Menggunakan procedure untuk menambah isi tabel.
“call tambah(‘isi’) $$“ - Membuat procedure untuk mengedit isi tabel.
“create procedure edit(field.samaran)
->begin
->update nama.tabel set nama.field.asli=nama.field.samaran where field.primary.asli=field.primary.samaran;
->end $$” - Menggunakan procedure untuk mengedit isi tabel.
“call edit(‘primary/id.pada.where’,’record.baru’) $$“ - Membuat procedure untuk menghapus isi tabel.
“create procedure hapus(‘id/primary.samaran’)
->begin
->delete from nama.tabel where id/primary.asli=id/primary.samaran;
->end $$” - Mengggunakan procedure hapus untuk menghapus isi tabel.
“call hapus(‘id/primari.dari.where’) $$“ - Untuk melihat procedure yang telah dibuat, gunakan perintah
“show procedure status $$“
sedangkan untuk menghapus procedure, gunakan perintah
“drop procedure nama.procedure $$“.
Procedure banyak digunakan dengan alasan untuk mempersingkat script ketika membuat sebuah aplikasi management menggunakan database.
Jika teman-teman menggunakan query sql yang sama berulang-ulang dalam program aplikasi, maka dapat menggunakan stored procedure untuk menyimpan query tersebut dan panggil saja stored procedure yang telah dibuat tadi jika ingin digunakan. Stored Procedure merupakan kumpulan perintah atau statement SQL yang disimpan di dalam database dengan nama tertentu.Keuntungan penggunaan Stored procedure ini dapat menyembunyikan query sql didalam kode program. Query sql akan ditulis dan dieksekusi disisi server database sehingga dapat meningkatkan kecepatan aplikasi. Dapat di gunakan berulang-ulang dan dapat mengamankan nama tabel database yang digunakan.
Dalam tutorial ini kita akan menggunakan database toko dan satu table bernama produk.
Buka sql server management studio teman-teman, buat database baru bernama toko, buat satu tabel bernama produk seperti gambar dibawah ini.
Insert contoh data dengan menuliskan query sql seperti dibawah ini.
INSERT INTO produk VALUES ('CONERLLO CHOCOLUV 135', 25000, 100); INSERT INTO produk VALUES ('WALLS NINJA JELLY', 25000, 100); INSERT INTO produk VALUES ('RAINBOW PEAK', 25000, 150); INSERT INTO produk VALUES ('PADDLE POP CHOKO KICK', 25000, 150); INSERT INTO produk VALUES ('CONELO DISC VAN', 25000, 150);
Memulai membuat stored procedure, untuk penamaan sebuah stored procedure saran saya tambahkan awalan sp, sp_, stp atau stp_ untuk membedakan sebuah stored procedure dengan nama tabel.
klik kanan pada stored procedures yang berada dalam toko->programmability pilih new stored procedure..
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Maribelajarcoding -- Create date: 12 April 2020 -- Description: Return all data produk -- ============================================= CREATE PROCEDURE stp_getAllProduk AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here SELECT * FROM produk END GO
Keterangan:
Create procedure berguna untuk membuat procedure baru.
stp_getAllProduk merupakan nama procedure.
Set nocount on menyembunyikan pesan jumlah baris yang terpengaruh.
select * from produk merupakan query untuk menampilkan semua data produk.
Pilih execute atau f5 untuk menyimpan stored procedure.
Untuk menjalankan stored procedure tadi, ketikkan exec stp_getAllProduk pada query.
Untuk menghapus stored procedure ketikkan drop proc nama_stored_procedure pada query.
Buat stored procedure baru untuk menyimpan data produk baru.
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Maribelajarcoding -- Create date: 12 April 2020 -- Description: Insert new data produk -- ============================================= CREATE PROCEDURE stp_insertProduk -- Add the parameters for the stored procedure here @nama_barang varchar(50), @harga int, @stock int AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here insert into produk(NAMA_BARANG, HARGA, STOCK) values (@nama_barang, @harga, @stock) END GO
Pilih execute atau f5 untuk menyimpan. @nama_barang, @harga, dan @stock merupakan variabel untuk menyimpan data yang dikirim. Sesuaikan tipe variabel dengan field tabel produk. Untuk menjalankan stp_insertProduk seperti dibawah ini. Isi parameter diurutkan sesuai dengan stored procedure.