STORED PROCEDURE
Sigit Setyowibowo, ST., MMSI
STMIK PPKIA Pradnya Paramita Malang
1
4/8/2020
2
4/8/2020
3
4/8/2020
4
4/8/2020
5
4/8/2020
STORED PROCEDURE
STORED PROCEDURE
• Merupakan sekumpulan sintaks SQL yang tersimpan pada server
• Memiliki beberapa keunggulan
‒ Karena sintaks sql pada stored procedure tersimpan pada server
maka pemanggilan lebih cepat.
‒ Reuseable artinya cukup ditulis sekali dapat digunakan berkali-
kali
‒ Meningkatkan keamanan
6
4/8/2020
STORED PROCEDURE
• beberapa kelemahan dalam penggunaan stored procedure
• Beban kerja server meningkat karena prosedur yang seharusnya
dapat dikerjakan pada aplikasi pemanggil harus dikerjakan pada
server
• Lebih sulit dalam debugging ketika strored procedure yang
dibuat semakin banyak.
7
4/8/2020
CONTOH 1
• Membuat Stored Procedure showAllPegawai() untuk
menampilkan seluruh Pegawai
8
4/8/2020
9
4/8/2020
CONTOH 1
Memanggil stored procedure
CALL showAllPegawai();
Jadi, setiap ingin menampilkan Pegawai kita tidak perlu membuat kode SQL
seperti biasanya. Cukup simpan kode SQL di Stored Procedure dan bisa kita
panggil dan gunakan berulang – ulang
10
4/8/2020
Jika Anda hanya ingin menunjukkan prosedur tersimpan dalam basis data
tertentu, Anda dapat menggunakan klausa WHERE di SHOW PROCEDURE STATUS
seperti yang ditunjukkan dalam pernyataan berikut:
Pernyataan berikut menunjukkan semua prosedur tersimpan yang namanya mengandung kata ALL:
11
4/8/2020
VARIABLE
12
4/8/2020
VARIABLE
13
4/8/2020
Deklarasi variable
Untuk mendeklarasikan suatu variable dalam stored procedure diperlukan suatu
perintah DECLARE. Stuktur dasar dalam mendeklarasikan variable adalah
Deklarasi variable
Sebagai contoh dalam pendeklarasian variable sebagai berikut
14
4/8/2020
Menetapkan variabel
Setelah variabel dideklarasikan, variabel siap digunakan. Untuk menetapkan nilai
variabel, Anda menggunakan pernyataan SET:
Menetapkan variabel
/* Menggunakan tanda = */
DECLARE angka INT DEFAULT 0;
SET angka = 10;
/* Menggunakan tanda := */
DECLARE angka INT DEFAULT 0;
SET angka := 10;
15
4/8/2020
Menetapkan variabel
Selain pernyataan SET, Anda bisa menggunakan pernyataan SELECT INTO untuk
menetapkan hasil Query ke variabel seperti yang ditunjukkan dalam contoh
berikut:
SELECT COUNT(*)
INTO departemenCount
FROM departemen;
Menetapkan variabel
/* Menggunakan perintah SET */
CREATE PROCEDURE tampilAngka()
BEGIN
DECLARE angka INT DEFAULT 0;
SET angka := 10;
SELECT angka;
CREATE DEFINER=`root`@`localhost`
END
PROCEDURE `tampilAngka`()
BEGIN
#Routine body goes here...
Penulisan procedurnya DECLARE angka INT DEFAULT 0;
SET angka := 10;
SELECT angka;
END
16
4/8/2020
Menetapkan variabel
17
4/8/2020
Lingkup variabel
Local variables
Variabel lokal dinyatakan dalam prosedur tersimpan dan hanya valid dalam
blok BEGIN… END di mana mereka dideklarasikan. Variabel lokal dapat
memiliki tipe data SQL apa pun.
Lingkup variabel
Local variables
18
4/8/2020
Lingkup variabel
Local variables
CREATE PROCEDURE my_procedure_Local_Variables()
BEGIN /* mendeklarasikan variabel lokal */
DECLARE a INT DEFAULT 10;
DECLARE b, c INT; /* menggunakan variabel lokal */
SET a = a + 100;
SET b = 2;
SET c = a + b; /*110 2 112*/
Penulisan procedurnya
CREATE DEFINER=`root`@`localhost` PROCEDURE `my_procedure_Local_Variables`()
BEGIN
#Routine body goes here...
DECLARE a INT DEFAULT 10;
DECLARE b, c INT; /* menggunakan variabel lokal */
SET a = a + 100;
SET b = 2;
SET c = a + b;
SELECT a, b, c;
19
4/8/2020
Lingkup variabel
Local variables
CALL my_procedure_Local_Variables();
Lingkup variabel
Variabel pengguna
Variable ini hanya dikenal per koneksi. Jika anda membuat variable dalam
sebuah koneksi database, maka koneksi lain (yang dilakukanoleh anda atau
orang lain) tidak akan mengenal variable tersebut. (SESSION variable)
20
4/8/2020
Lingkup variabel
Variabel pengguna
CALL my_procedure_User_Variables() ;
Lingkup variabel
Variabel pengguna
SET @nama='Shelly';
SET @umur=20;
Shelly, 20
SELECT @nama,@umur;
SET @umur=@umur+1; Shelly, 21
SELECT @nama,@umur;
21
4/8/2020
variabel
SHOW VARIABLES
Latihan Soal 4:
• Buatlah prosedur untuk menampilkan pegawai yang tempat lahirnya surabaya
dengan nama showPegSurabaya
• Buatlah procedur untuk menampilkan pegawai yang gajinya antara 5000 sampai
9000 dengan nama showPegGaji
• Buatlah prosedur identitas yang isinya sebegai berikut:
SET @nama=‘ganti nama anda';
SET @nim= =‘ganti nim anda';
SET @nim= =‘ganti prodi anda';
SELECT @nama,@nim, @prodi;
22