Anda di halaman 1dari 8

BAB III

STORED PROCEDURE

3.1 Tujuan Praktikum
Adapun tujuan dari pratikum stored procedure adalah sebagai berikut :
1. Mengetahui dan memahami kaidah-kaidah dalam penggunaan stored
procedure.
2. Mngetahui dan memahami pernyataan-pernyataan yang digunakan
dalam stored procedure.
3. Mengetahui batasan-batasan penggunaan stored procedure.

3.2 Tinjauan Pustaka
3.2.1 Konsep dasar Stored Procedure
Stored procedure merupakan fasilitas baru dari MySQL versi 5.0. Stored
procedure merupakan sekumpulan SQL yang disimpan ke dalam server MySQL.
Keuntungan menggunakan stored procedure adalah klien MySQL tidak perlu
menuliskan perintah SQL ke server namun hanya perlu memanggil procedure
yang sudah disimpan di server (jika tersedia). Perbedaan antara procedure dan
function pada MySQL, hampir mirip dengan procedure dan function pada bahasa
pemrograman. Function mengembalikan suatu nilai skalar dan dapat dipanggil di
dalam statement procedure atau function lain. Procedure dipanggil melalui
perintah CALL dan dapat mengembalikan nilai melalui variabel output.
Stored Procedure adalah suatu prosedur (seperti subprogram dalam bahasa
pemrograman) yang disimpan di dalam database. Secara umum stored procedure
disebut dengan rutin (routine). Mysql juga mendukung dua jenis rutin
(subprogram), yakni:
a. Stored procedure yang dapat dipanggil,
b. Fungsi yang menghasilkan nilai yang dapat dipakai dalam
statement SQL lain.


3.2.2 Manfaat Stored pocedure ini adalah :
1. Meningkatkan kinerja karena mengurangi pengiriman kode dari klien ke
server, disebabkan karena modul berada pada server.
2. Meningkatkan keamanan karena pengaksesan data tertentu ditangani
dalam server, tidak melalui pengaksesan secara langsung oleh klien.
3. Meningkatkan konsistensi data saat sejumlah aplikasi memanggil prosedur
tersimpan yang sama.
4. Untuk meningkatkan security, misalkan sebuah aplikasi yang login dengan
user abcd tidak dapat mengakses tabel-tabel tertentu secara langsung
tetapi harus melalui stored procedure, dengan cara ini akan meningkatkan
ke-valid-tan data

3.2.3 Menciptakan Stored Procedure
Stored procedure diciptakan melalui pernyataan CREATE PROCEDURE,
berikut merupakan kaidah dasar penciptaan stored procedure :


Kode program 3.1 sintaks pembuatan stored procedure
Keterangan :
a. param_pros menyatakan definisi untuk parameter prosedur tersimpan.
b. bagian_kode menyatakan pernyataan-pernyataan sql.
c. Setiap parameter secara opsional dapat diawali dengan IN, OUT, atau
INOUT. IN berarti parameter sebagai masukan bagi prosedur, OUT berarti
parameter sebagai keluaran dari prosedur, INOUT berarti parameter sebagi
masukan dan sekaligus keluaran prosedur. Namun secara bawaan
parameter dianggap IN jika tidak disebutkan sebagai IN, OUT, atau
INOUT-nya.

3.2.4 Menjalankan Stored Procedure
Untuk dapat menjalankan stored procedure, maka digunakan pernyataan
CALL. Berikut merupakan kaidahnya :
CREATE PROCEDURE nama_procedure ([param_pros[...]])
Bagian_kode



3.2.5 Menghapus Stored Procedure
Untuk dapat menghapus suatu stored procedure maka dapat menggunakan
pernyataan DROP PROCEDURE. Berikut merupakan kaidah untuk pernyataan
penghapusan stored procedure :


Kode program 3.3 sintaks sintaks menghapus stored procedure

Keterangan :
a. Bagian IF EXISTS bersifat opsional, yang mana jika pernyataan
tersebut tidak disertakan maka tidak akan menimbulkan kesalahan
walaupun nama procedure yang ditulis tidak pernah diciptakan.

3.2.6 Perintah-perintah Stored Procedure
Terkait dengan pembuatan stored procedure atau routine. Terdapat
beberapa perintah yang harus dipahami, yakni :
a. Pernyataan BEGIN...END
Pada bagian kode pada saat penciptaan stored procedure dapat terdiri
dari satu atau beberapa pernyataan. Bila terdapat beberapa pernyataan
maka pernyataan tersebut harus diletakkan dalam sebuah
BEGIN...END. BEGIN...END disini digunakan untuk mewakili
pernyataan majemuk (sebuah pernyataan yang tersusun dari sejumlah
pernyataan).
b. Pernyataan DECLARE
Pernyataan ini digunakan untuk mendefinisikan variabel, kondisi,
penangan dan kursor yang bersifat lokal bagi routine atau stored
procedure. Secara umum pernyataan ini harus berada diantara
BEGIN....END dan keberadaannya harus sebelum pernyataan-
pernyataan yang lain. Berikut merupaka kaidah pernyataan declare :

CALL nama_procedure ([parameter[....]])
DROP PROCEDURE [IF EXISTS] nama_procedure
Kode program 3.2 sintaks menjalankan stored procedure


Kode program 3.4 sintaks pernyataan DECLARE
Keterangan :
Tipe pada kaidah diatas menyatakan tipe data untuk variabel
nama_var dan DEFAULT nilai digunakan untuk memberikan nilai
awal bagi variabel yang bersangkutan.
c. Pernyataan SET
Pernyataan ini digunakan untuk memberikan nilai ke variabel, dengan
kaidah sebagai berikut :

Kode program 3.5 sintaks pernyataan SET

Keterangan :
Sebuah pernyataan SET dapat digunakan untuk mengisi sejumlah
variabel dengan nilainya masing-masing.
d. Pernyataan SELECT....INTO
Pernyataan ini digunakan untuk memberikan hasil dari pernyataan
SELECT ke dalam suatu variabel.Kaidahnya adalah :


Kode program 3.6 sintaks pernyataan SELECT.....INTO

Keterangan :
Ekspresi_tabel dapat berupa pernyataan seperti FROM nama_tabel
ataupun pernyataan yang lebih kompleks yang melibatkan klausa
WHERE.
3.2.7 Konstruksi Pengatur Aliran Eksekusi
Untuk keperluan pengaturan aliran eksekusi di dalam stored procedure,
MySQL menyediakan berbagai konstruksi yang terkait dengan pengambilan
keputusan dan pengulangan. Implementasinya berupa perintah IF, CASE, LOOP
ITERATE, REPEAT, WHILE dan LEAVE. Berikut merupakan kaidah dari
masing-masing pernyataan konstruksi :
DECLARE nama_var [.......] tipe [DEFAULT nilai]
SET nama_var = ekspr[,nama_var=ekspr]
SELECT nama_kolom [......]
INTO nama_var[.....] ekspresi_tabel
a. Pernyataan IF
Pernyataan ini berguna untuk melakukan pengambilan keputusan
berupa pemilihan eksekusi yang didasarkan pada suatu keadaan,
berikut merupakan sintaks kaidahnya :




Kode program 3.7 sintaks pernyataan IF
Keterangan :
Pernyataan setelah THEN akan dieksekusi hanya jika kondisi di depan
THEN bernilai benar. Bagian ELSE IF digunakan untuk memeriksa
kembali jika kondisi sebelumnya bernilai salah.
b. Penyataan CASE
Pernyataan ini merupakan pernyataan alternatif untuk pernyataan IF
dengan kondisi yang bertingkat. Bentuk kaidahnya yakni :









Kode program 3.8 sintaks pernyataan CASE

Keterangan :
Penyeleksian akan dilakukan dimulai dari pernyataan WHEN teratas.
Jika kondisi tersebut benar (TRUE) maka pernyataan yang terletak
IF kondisi THEN daftar_pernyataan
[ELSE IF kondisi THEN daftar_pernyataan]
[ELSE daftar_pernyataan]
END IF
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list]...
[ELSE statement_list]
END CASE
Atau
CASE c
WHEN search_condition THEN statement_list
[WHEN search_condition THEN
statement_list]...
[ELSE statement_list]
END CASE

setelah THEN akan dieksekusi kemudian akan menuju END CASE.
Namun jika pernyataan WHEN tersebut tidak memenuhi kondisi,
maka WHEN berikutnya aka diperiksa. Bagian ELSE akan dieksekusi
jika tidak ada kondisi pernyataan WHEN yang cocok.
c. Pernyataan LEAVE
Pernyataan ini digunakan untuk keluar dari suatu konstruksi yang
memiliki suatu label. Berikut merupakan contoh kaidahnya :



Kode program 3.9 sintaks pernyataan LEAVE

d. Pernyataan LOOP
Pernyataan ini berguna untuk melakukan perulangan, berikut
merupakan contoh kaidahnya :




Kode program 3.10 sintaks pernyataal LOOP

Keterangan :
Kondisi yang berada diantara pernyataan LOOP dan END LOOP akan
terus dieksekusi hingga muncul suatu pernyataan untuk keluar
pengulangan, pernyataan yang digunakan untuk keluar pengulangan
merupakan pernyataan LEAVE.
e. Pernyataan REPEAT
Pernyataan ini digunakan untuk melakukan pengulangan sama halnya
seperti pernyataan REPEAT. Berikut merupakan sintaks kaidah
pernyataan REPEAT :


............
LEAVE label;
..........

[awal_label] LOOP
Statement_list
END LOOP [akhir_label]




Kode program 3.1 sintaks pembuatan stored procedure

Keterangan :
Pada pernyataan REPEAT ini, statement_list akan dieksekusi terus
menerus sampai kondisi_pengulangan bernilai benar (TRUE).
f. Pernyataan WHILE
Pernyataan ini digunakan untuk melakukan pengulangan terhadap
sejumlah pernyataan. Berikut merupakan kaidah penulisan sintaks
pernyataan WHILE :


Kode program 3.1 sintaks pembuatan stored procedure

Keterangan :
Tidak seperti pernyataan LOOP dan REPEAT, WHILE aka
melakukan pengujian kondisi_pengulangan terlebih dahulu. Selama
kondisi tersebut bernilai benar, maka bagian statemenr list akan
dieksekusi secara terus menerus.
g. Pernyataan ITERATE
Penggunaan pernyataan ini hanya berada dalam konstruksi LOOP,
REPEAT dan WHILE. Keguaan pernyataan ITERATE ini digunakan
untuk mengulang kembali.



Kode program 3.1 sintaks pembuatan stored procedure


[awal_label] REPEAT
Statement_list
UNTIL kondisi_pengulangan
END REPEAT [akhir_label]
[awal_label] WHILE kondisi_pengulangan DO
Statement_list
END WHILE[akhir_label]
............
ITERATE label;
..........

3.2.8 Batasan STORED PROCEDURE
Terdapat pernyataan-pernyataan yang tidak boleh digunakan untuk stored
procedure, yakni :
a. CHECK TABLES
b. LOCK TABLES dan UNLOCK TABLES
c. LOAD DATA dan LOAD TABLE
d. OPTIMIZE TABLE

Anda mungkin juga menyukai