Judul tugas
LAPORAN
PRAKTIKUM BASIS DATA
MODUL VIISTORED PROCEDUREDilaksanakan 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, 2009STORED PROCEDUREA. TUJUAN
1. Memahami konsep dasar stored procedure, kelebihan dan
kekurangannya.
2. Memahami implementasi stored procedure di dalam basis
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
seringmelibatkan 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 ... endCREATE 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. LatihanDELIMITER //
CREATE PROCEDURE getMahasiswa()
BEGIN
/* Ini baris komentar */
SELECT * FROM mahasiswa;
END //
DELIMITER ;
1) Stored Procedure
Dalam stored procedure juga menggunakan perintah CREATE untuk
menciptakan stored procedure.
Sebelum membuat sebuah stored procedure, kita harus mengganti
karakter pemroses terlebih dahulu atau yang disebut 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 BEGINdan ENDmerupakan badan (body)
stored
procedure. Perintah DELIMITERdi akhir baris digunakan untuk
mengembalikan
delimiter ke karakter semula.
Cara mengeksekusi script dari pembuatan stored procedure.
2) Parameter IN
VARIABEL
PENAMBAHAN DATA
3) Parameter OUT
4) Parameter INOUT
5) Percabangan dan Pengulangan
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
Tabel jurusan sebelum mengalami penambahan data.
Tampilan tabel jurusan setelah perintah CALL addJurusan(TG,
Teknik Geodesi,9);
Mengeksekusi procedure addJurusan.sql
Stored procedure untuk menambahkan data di tabel jurusan.
Body Stored Procedure
Contoh penggunaaan variabel global dan hasil pemanggilan stored
procedure dengan menggunakan variabel.
Contoh penggunaaan parameter IN lebih dari satu.
Jika dalam pembuatan stored procedure mengabaikan argumen, DBMS
akan merespon pesan kesalahan.
Contoh penggunaaan parameter IN dimana variabel parameter hanya
dapat digunakan untuk menerima input.
Memanggil stored procedure yang telah selesai dibuat.
Script pembuatan stored procedure
Menampilkan informasi mengenai status stored procedure
Menampilkan informasi pembuatan stored procedure
Menghapus stored procedure yang telah dibuat.
Hasil pemanggilan stored procedure getMhsBySemester untuk
mendapatkan semua data matakuliah di semester 3 dengan cara
menspesifikasikan argumennya.
Parameter OUT analog dengan passing by reference. Dengan
demikian, parameter ini nilainya bisa diubah oleh stored
procedure.
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.
Penggunaan pernyataan-pernyataan pencabangan ataupun pengulangan
di
dalam stored procedure merupakan tindakan yang legal. Dengan
demikian, kita bisa menghasilkan suatu prosedur yang
kompleks.
Pernyataan Do While (perulangan)
Pernyataan IF