0% menganggap dokumen ini bermanfaat (0 suara)
207 tayangan16 halaman

Laporan 7-Stored Procedure

Laporan praktikum basis data membahas konsep dan implementasi stored procedure di MySQL. Terdapat penjelasan teori tentang stored procedure dan contoh-contoh penggunaannya seperti parameter input, output, dan input output serta variabel dan percabangan. Dilaporkan hasil pendefinisian stored procedure untuk menghitung jumlah matakuliah dan sks, menambah data, serta memodifikasi data dosen.

Diunggah oleh

Retno Indah R
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
207 tayangan16 halaman

Laporan 7-Stored Procedure

Laporan praktikum basis data membahas konsep dan implementasi stored procedure di MySQL. Terdapat penjelasan teori tentang stored procedure dan contoh-contoh penggunaannya seperti parameter input, output, dan input output serta variabel dan percabangan. Dilaporkan hasil pendefinisian stored procedure untuk menghitung jumlah matakuliah dan sks, menambah data, serta memodifikasi data dosen.

Diunggah oleh

Retno Indah R
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 16

LAPORAN

PRAKTIKUM BASIS DATA

MODUL VII

STORED PROCEDURE
Dilaksanakan tanggal 7 November 2009
Asisten Praktikum
M. Jafar S.

KELOMPOK 1:
1. RETNO INDAH R (208533414723/OFF.B)
2. HARWI PENDA H. (208533414717/OFF.B)

JURUSAN TEKNIK ELEKTRO


FAKULTAS TEKNIK
UNIVERSITAS NEGERI MALANG
November, 2009

STORED PROCEDURE

A. TUJUAN
1. Memahami konsep dasar stored procedure, kelebihan dan kekurangannya.
2. Memahami implementasi stored procedure di dalam bas is data.
3. Mampu

menyelesaikan

operasi-operasi

data

spesifik

dengan

memanfaatkan stored procedure.


B. DASAR TEORI
1. Stored Procedure
Stored procedure adalah prosedur (seperti subprogram dalam bahasa
pemrograman) yang disimpan di dalam database.
MySQL mendukung dua jenis rutin (subprogram):
a. stored procedure yang dapat dipanggil,
b. fungsi yang menghasilkan nilai yang dapat dipakai dalam statemen SQL lain.
Dengan adanya Stored Procedure, maka program SQL :
dapat digunakan kapanpun
lebih cepat dan efisien karena bersifat Server Side
mudah dibuat dan dirawat karena kecil tapi Power Full
Dapat digunakan kapanpun
Seperti halnya pembuatan prosedur pada C++ / Pascal / Java atau pemrograman yang
lain, apabila pembuatan program bersifat modular (dibuat kecil untuk setiap
maksud/tujuan), akan lebih baik apabila pemrograman tesebut menggunakan banyak
prosedur. Dengan dibuat terpisah, kapanpun diinginkan, hanya tinggal memanggil
program tersebut.
Lebih cepat dan efisien
Untuk program yang besar, pembuatan program Server Side, terasa lebih mudah
dibandingkan Client Side. Dengan Server Side, program lebih bersifat Netral terhadap
semua aplikasi. Disisi Programer, ia tidak perlu mengetahui terlalu mendalam terhadap
suatu program aplikasi seperti VB, Delphi, Java , C++ Builder, PHP, ASP, J2ME,
WAP, SMS dsb. karena tugastugas tersebut sebenarnya dapat dilakukan oleh Server
(dalam hal ini SQL Server) VB, Delphi, Java , C++ Builder PHP, ASP, J2ME, WAP,
SMS dsb tersebut hanyalah User interface/tampilan belaka, yang hanya berfungsi
untuk menampilkan data, memasukkan data, serta memberikan parameter-parameter
yang dibutuhkan oleh server untuk menghapus , mengubah, skeduling, backup dan
sebagainya. Sedangkan program yang sesungguhnya berada pada Server tersebut.
Stored procedure adalah sebuah prosedur (layaknya subprogram

(subrutin) di dalam bahasa pemrograman regular) yang

tersimpan di dalam

katalog basis data. Seperti halnya fungsi tersimpan juga digunakan untuk meringkas
perintah SQL, namun dalam prosedur tersimpan dapat diringkas beberapa statement
atau perintah SQL. Stored procedure (prosedur tersimpan) tidak harus mengembalikan
nilai seperti yang terjadi pada function procedure.
Beberapa kelebihan yang ditawarkan stored procedure antara lain:
a. meningkatkan performa
b. mereduksi trafik jaringan
c. reusable , dan
d. meningkatkan kontrol sekuriti.
Di balik kelebihan-kelebihannya, stored procedure juga memiliki
kekurangan, di antaranya:
a. berpotensi meningkatkan beban server
b. penulisannya tidak mudah (memerlukan pengetahuan spesifik).
Sintaks stored procedure diperlihatkan sebagai berikut:
CREATE PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body

Untuk memanggil stored procedure, digunakan perintah CALL (beberapa


DBMS ada yang menggunakan EXECUTE).
CALL sp_name

Dalam implementasi nyata, penggunaan stored procedure sering


melibatkan parameter. Di MySQL, parameter stored procedure dibedakan menjadi tiga
mode: IN, OUT, dan INOUT.
a. IN (Passing by Value)
Parameter yang merupakan mode default ini mengindikasikan bahwa sebuah
parameter dapat di-pass ke stored procedure tetapi nilainya tidak dapat diubah (dari
dalam stored procedure). Variabel parameter hanya dapat digunakan untuk
menerima input.
b. OUT (Passing by Reference)
Mode ini mengindikasikan bahwa stored procedure dapat mengubah parameter dan
mengirimkan kembali ke program pemanggil. Mode ini menandakan bahwa
variabel parameter hanya dapat digunakan untuk menyimpan hasil output.

c. INOUT

Mode ini pada dasarnya merupakan kombinasi dari mode IN dan mode OUT.
Variabel parameter dapat menerima input dan juga dapat digunakan untuk
menyimpan hasil output.
Sintaks pendefinisian parameter diperlihatkan sebagai berikut:
MODE param_nama param_type(param size)
Stored Procedure dapat mencerminkan beragam operasi data, misalnya seleksi,
penambahan, pengubahan, penghapusan, dan juga operasi-operasi DDL.
Seperti halnya prosedur di bahasa pemrograman, stored procedure juga dapat melibatkan
variabel, pernyataan kondisisonal, dan pengulangan.

Mengapa Strored Procedure


Dengan stored procedure eksekusi menjadi cepat. Tidak ada kompilasi. Peningkatan
kecepatan datang dari reduksi lalu-lintas jaringan. Jika ada pekerjaan pengecekan berulang,
looping, multiple statement, dikerjakan dengan pemanggilan tunggal ke prosedur yang
telah disimpan ke server.
Stored procedure adalah komponen. Andaikan aplikasi kemudian ditulis dalam
bahasa berbeda, tidak ada masalah, karena logika berada didalam database bukan dalam
aplikasi.
Stored procedure adalah portable. Stored procedure ditulis dalam SQL, Anda bisa
jalankan pada setiap platform dimana MySQL dijalankan disitu.
Delimiter adalah karakter atau string yang memberi tahu MySQL bahwa kita telah
selesai menulis statemen SQL. Sebelumnya, delimiter selalu semicolon (tanda ;). Hal ini
diperlukan karena stored procedure terdiri atas sejumlah statemen, dan setiap statemen
harus diakhiri dengan semicolon.
Parameter
1. Tanpa parameter
CREATE PROCEDURE p5
() ...
2. Satu parameter input
CREATE PROCEDURE p5
([IN] nama tipe-data) ...
3. Satu parameter output
CREATE PROCEDURE p5
(OUT nama tipe-data) ...
4. Satu parameter untuk input dan
output
CREATE PROCEDURE p5
(INOUT nama tipe-data) ...

Gabungan Statemen
diapit dengan blok begin ... end
CREATE PROCEDURE p7 ()
BEGIN
SET @a = 2;
SET @b = 10;
SELECT nama, @a * jumlah FROM
barang WHERE jumlah >= @b;
END; //

Variabel
dideklarasikan dengan statemen DECLARE
CREATE PROCEDURE p8 ()
BEGIN
DECLARE a INT;
DECLARE b INT;
SET a = 2;
SET b = 10;
SELECT nama, a * jumlah FROM barang WHERE jumlah >= b;
END; //

a. Latihan
1) Stored Procedure
DELIMITER //
CREATE PROCEDURE getMahasiswa()
Dalam stored procedure juga
menggunakan perintah CREATE untuk
BEGIN
menciptakan stored procedure.
/* Ini baris komentar */
Sebelum membuat sebuah stored
SELECT * FROM mahasiswa;
procedure, kita harus mengganti karakter
END //
pemroses terlebih dahulu atau yang disebut
DELIMITER ;
juga dengan DELIMITER. Karakter
delimiter adalah sebuah karakter yang dipergunakan pada MySQL untuk
memproses perintah ketika menemui karakter pemroses (titik koma ; sebagai
default). Hal ini bertujuan agar MySQL tidak segera memproses perintah ketika
menemui ; tetapi akan memproses perintah ketika menemui karakter lain yang
dipergunakan. Hal ini disebabkan dalam pembuatan stored procedure sering
mempergunakan karakter ; (titik koma). Untuk mengganti karakter yang dipakai
sebagai delimiter dipergunakan perintah DELIMITER, pada praktikum kali ini
karakter // (double slash) digunakan sebagai karakter delimiter.
Pernyataan di antara BEGIN dan END merupakan badan (body) stored
Script pembuatan stored procedure
procedure. Perintah DELIMITER di akhir baris digunakan untuk mengembalikan
delimiter ke karakter semula.

Cara mengeksekusi script dari pembuatan stored procedure.


Memanggil stored
procedure yang telah
selesai dibuat.

Menampilkan
informasi mengenai
status stored procedure

Menampilkan
informasi pembuatan
stored procedure

Menghapus stored
procedure yang telah
dibuat.

2) Parameter IN

Hasil pemanggilan stored procedure


getMhsBySemester untuk mendapatkan semua
data matakuliah di semester 3 dengan cara
menspesifikasikan argumennya.

Contoh penggunaaan
parameter IN dimana
variabel parameter hanya
dapat digunakan untuk
menerima input.
Contoh penggunaaan parameter IN lebih
dari satu.
Jika dalam pembuatan stored procedure
mengabaikan argumen, DBMS akan
merespon pesan kesalahan.

VARIABEL

Contoh penggunaaan variabel global dan


hasil pemanggilan stored procedure dengan
menggunakan variabel.

PENAMBAHAN DATA
Stored procedure untuk
menambahkan data di tabel jurusan.
Body Stored Procedure

Tabel jurusan sebelum


mengalami penambahan data.

Mengeksekusi procedure
addJurusan.sql

Tampilan tabel jurusan setelah


perintah CALL addJurusan(TG,
Teknik Geodesi,9);

3) Parameter OUT

Parameter OUT analog dengan


passing by reference. Dengan
demikian, parameter ini nilainya
bisa diubah oleh stored procedure.

4) Parameter INOUT

Parameter INOUT dapat mengirimkan parameter ke stored procedure


dan mendapatkan nilai kembalian yang baru.
Pada countBySex.sql penggunaan INOUT secara gabungan, namun
perlu me-SET variabel sebelum melakukan CALL countBySex(@var);
Pada countBySex2.sql penggunaan INOUT secara terpisah, untuk
melihat hasilnya cukup mengetik CALL countBySex2(L,@total); =>
mengakses cukup dengan menambahkan jenis_kelamin dan variabel
pada argumen.
5) Percabangan dan Pengulangan
Pernyataan Do While (perulangan)

Pernyataan IF

Penggunaan pernyataan-pernyataan
pencabangan ataupun pengulangan di
dalam stored procedure merupakan
tindakan yang legal. Dengan
demikian, kita bisa menghasilkan suatu
prosedur yang kompleks.

C. HASIL DAN PEMBAHASAN *


1. Definisikan stored procedure untuk mendapatkan banyaknya matakuliah dan
jumlah total sks dengan melibatkan dua buah parameter OUT. (point 20)

2. Definisikan stored procedure untuk penambahan data ambil_mk.


Skenarionya, penambahan dapat dilakukan jika dan hanya jika nilai nim

eksis di tabel mahasiswa dan nilai kode_mk eksis di tabel matakuliah.


Apabila operasi berhasil, kembalikan status OK; sebaliknya jika gagal,
kembalikan pesan Operasi Gagal. ( Point: 40)

3. Definisikan stored procedure untuk memodifikasi data dosen apabila


eksis dan melakukan penambahan jika belum eksis. Jadi, masukan dari
argumen dapat digunakan untuk penambahan ataupun modifikasi data.
(Point: 50)

D. KESIMPULAN

E. DAFTAR PUSTAKA
Amri, Choirul. 2003. TUTORIAL SQL. (sumber : http://www.choirulamri.or.id).
Di akses on-line tanggal 27 Oktober 2009.
Kadir, Abdul. 2002. PENUNTUN PRAKTIS BELAJAR SQL. Yogyakarta :
ANDI
Priyanto, Rahmat. 2007. BELAJAR SENDIRI MENGUASAI MYSQL. Jakarta :
ELEX MEDIA KOMPUTINDO

Anda mungkin juga menyukai