Anda di halaman 1dari 26

LAPORAN MODUL 7

PRAKTIKUM BASIS DATA

Disusun untuk Memenuhi Matakuliah Praktikum Basis Data


Yang Dibimbing oleh
Triyanna Widiyaningtyas, S.T, M.T

Disusun Oleh:
ADITYA RAHMAN (160535611825)
FENTYKA AYU ROSYANI PUTRI (160535611811)
RADITHA ULFAH (150535602259)

S1 TI OFF A 2016

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI TEKNIK INFORMATIKA
APRIL 2017
MODUL 7
STORED PROCEDURE
1. TUJUAN
 Memahami konsep dasar stored procedure, kelebihan dan kekuranganya.
 Memahami implementasi stored procedure di dalam basis data.
 Mampu menyelesaikan operasi – operasi data spesifik dengan memanfaatkan stored
procedure

2. DASAR TEORI
Stored Procedure
Stored Procedure adalah sebuah prosedur layaknya subprogram (subrutin) di dalam bahasa
pemrograman reguler yang tersimpan di dalam katalog basis data.

Beberapa kelebihan yang ditawarkan stored procedure antara lain : mengingkatakan


performa, mereduksi trafik jaringan, reusable, dan meningkatkan kontrol sekuriti.

Di balik kelebihan tersebut, stored procedure juga memiliki kekurangan. Di antaranya adalah
berpotensi meningkatkan beban server dan penulisnaya tidak mudah (memerlukan
pengetahuan yang spesifik).

Contoh sintaks stored procedure :

Untuk memanggil sotred preocedure, digunakan perintah CALL (beberapa DBMS ada
yang menggunakan EXECUTE).

Dalam Implementasinya, penggunaan stored procedure sering melibatkan


parameter. Di MySQL, parameter stored procedure dibedakan menjadi tiga
mode : IN, OUT, dan INOUT.
IN

Parameter yang merupakan mode default ini mengindikasikan bahwa sebuah


parameter dapat di-pass ke dalam stored procedure tetapi nilainya tidak dapat
diubah (dari dalam stored procedure).

OUT

Mode ini mengindikasikan bahwa stored procedure dapat mengubah parameter


dan mengirimkan kembali ke program pemanggil

INOUT

Mode ini pada dasarnya merupakan kombinasi dari mode IN dan OUT. Sintaks
pendefinisan parameter diperlihatkan sebagai berikut :

Stored procedure dapat mencerminkan beragam operasi data, misalnya seleksi,


penambahan, pengubahan, penghapusan, dan juga operasi – oprasi DDL. Seperti
halnya procedure di dalam bahasa pemrograman, stored procedure juga dapat
melibatkan variabel, pernyataan kondisional, dan pengulangan.

Keuntungan menggunakan Stored Procedure :

1. Stored Procedure lebih fleksibel karena ada parameter didalamnya.


2. Proses dilakukan di Database Server sehingga lebih cepat, aplikasi cukup
memanggil stored procedure dan mengirim parameter yang diperlukan.
3. Untuk membagi beban resource yang terpakai saat aplikasi di jalankan.
Jika semua query dijalankan pada aplikasi/client (Front End) maka
resource yang terpakai pada client tersebut akan besar, oleh karena itu
perintah query tersebut dibuat pada stored procedure (eksekusi pada
server).
4. Untuk mempermudah maintain aplikasi. Apabila ada proses query yang
sama dan berulang, dengan stored procedure akan lebih simple dalam
proses pembuatan aplikasi.
5. Mendukung ANSI model terhadap database. Ansi model adalah sebuah
model database yang memodelkan penglihatan user terhadap database
menjadi 3 komponen yaitu user view, logical view dan fisikal view.
6. Stored procedure mencegah terjadinya SQL injection.
3. LATIHAN
3.1. Latihan 1 Stored Procedure
3.1.1. Langkah-langkah
1. Klik database yang telah dibuat pada modul sebelumnya, yakni database
“modul 6”.
2. Ketikkan pernyataan pembuatan stored procedure getMhs() untuk
menampilkan semua data mahasiswa.
3. Klik go dan akan muncul syntax error yang berisi “already exists”.
4. Eksekusi Query tersebut dengan memanggil procedure
getMhs().
3.1.2. Query
CALL getmhs()

3.1.3. Printscreen
3.2. Latihan 2 Parameter IN
Stored procedure dengan satu buah parameter IN
3.2.1 Langkah-langkah
1. Klik database yang telah dibuat pada modul sebelumnya, yakni database
“modul 6”.
2. Ketikkan pernyataan pembuatan stored procedure getMkBySemester
untuk mendapatkan semua data matakuliah di semester tertentu..
3. Klik go dan akan muncul syntax error yang berisi “already exists”.
4. Eksekusi Query tersebut dengan memanggil procedure
getMkBySemester(3);.
3.2.2 Query
CALL getMkBySemester(3)

3.2.3 Printscreen

Stored procedure dengan dua buah parameter IN


3.2.4 Langkah-langkah
1. Klik database yang telah dibuat pada modul sebelumnya, yakni database
“modul 6”.
2. Ketikkan pernyataan pembuatan stored procedure getMkBySemSks
untuk mendapatkan semua data matakuliah di semester dan sks tertentu..
3. Klik go dan akan muncul syntax error yang berisi “already exists”.
4. Eksekusi Query tersebut dengan memanggil procedure
getMkBySem,Sks(3,2);.
3.2.5 Query
CALL getMkBySem,Sks(3,2)
3.2.6 Printscreen

Variabel
3.2.7 Langkah-langkah
1. Klik database yang telah dibuat pada modul sebelumnya, yakni database
“modul 6”.
2. Ketikkan pernyataan SQL dengan menggunakan perintah SET dan notasi
@ untuk mendeklarasikan variabel bernama smt dan diinisialisasi
dengan nilai 3 serta untuk memeriksa nilai variabel gunakan perintah
select.
3. Eksekusi Query pernyataan SQL.
4. Ketikan variabel yang telah dideklarasikan untuk operasi – operasi lain,
misalnya sebagai argumen stored procedure.
5. Eksekusi Query pernyataan SQL.
3.2.8 Query
SELECT @Smt
3.2.9 Printscreen
Penambahan Data
3.2.10 Langkah-langkah
1. Klik database yang telah dibuat pada modul sebelumnya, yakni database
“modul 6”.
2. Ketikkan pernyataan pembuatan stored procedure untuk menambah
data pada tabel Dosen.
3. Klik go dan akan muncul syntax error yang berisi “already exists”.
4. Eksekusi Query tersebut dengan memanggil AddDosen dengan mengisi
data yang ingin ditambahkan..
5. Lakukkan pengecekan data pada tabel dosen.
3.2.11 Query
SELECT*FROM dosen
3.2.12 Printscreen
3.3. Lathian 3 Parameter OUT
3.3.1. Langkah-langkah
1. Klik database yang telah dibuat pada modul sebelumnya, yakni database
“modul 6”.
2. Ketikkan pernyataan pembuatan stored procedure untuk
menjumlahkan data dosen pada tabel Dosen .
3. Klik go dan akan muncul syntax error yang berisi “already exists”.
4. Eksekusi Query tersebut dengan memanggil JumlahDosen dan
menggunakan perintah SELECT untuk menampilkan nilai darihasil
penjumlahan.
3.3.2. Query
SELECT @jumlah_dosen
3.3.3. Printscreen

3.4. Latihan 4 Parameter INOUT


3.4.1. Langkah-langkah
1. Klik database yang telah dibuat pada modul sebelumnya, yakni database
“modul 6”.
2. Ketikkan pernyataan pembuatan stored procedure untuk menghitung
nilai data pada pada sks.
3. Klik go dan akan muncul syntax error yang berisi “already exists”.
4. Eksekusi Query tersebut dengan memanggil CountBySks serta
menggunakan perintah SET dan notasi @ untuk mendeklarasikan
variabel bernama sks dan diinisialisasi dengan nilai 2 dan perintah
SELECT untuk menampilkan nilai dari hasil penjumlahan.
3.4.2. Query
select @sks
3.4.3. Printscreen

Modifikasi
Mendapatkan jumlah mahasiswa yang jenis kelaminya adalah L.
3.4.4. Langkah-langkah
1. Klik database yang telah dibuat pada modul sebelumnya, yakni database
“modul 6”.
2. Ketikkan pernyataan pembuatan stored procedure untuk mendapatkan
jumlah mahasiswa yang jenis kelaminya adalah L.
3. Klik go dan akan muncul syntax error yang berisi “already exists”.
4. Eksekusi Query tersebut dengan memanggil CountByGender dan
perintah SELECT untuk menampilkan nilai dari hasil penjumlahan.
3.4.5. Query
select @sks
3.4.6. Printscreen

3.5. Latihan 5 Percabangan dan Pengulangan

Penggunaan dari pernyataan IF di dalam stored procedure.


3.5.1. Langkah-langkah
1. Klik database yang telah dibuat pada modul sebelumnya, yakni database
“modul 6”.
2. Ketikkan pernyataan pembuatan stored procedure untuk mendapatkan
jumlah mahasiswa yang jenis kelaminya adalah L.
3. Klik go dan akan muncul syntax error yang berisi “already exists”.
4. Eksekusi Query tersebut dengan memanggil CountByGender dan perintah
SELECT untuk menampilkan nilai dari hasil penjumlahan.
5.
3.5.2. Query
CALL DemoIF(7)
3.5.3. Printscreen

Penggunaan perulangan atau LOOPING pada stored procedure.

3.5.4. Langkah-langkah
6. Klik database yang telah dibuat pada modul sebelumnya, yakni database
“modul 6”.
7. Ketikkan pernyataan pembuatan stored procedure untuk mendapatkan
jumlah mahasiswa yang jenis kelaminya adalah L.
8. Klik go dan akan muncul syntax error yang berisi “already exists”.
9. Eksekusi Query tersebut dengan memanggil CountByGender dan perintah
SELECT untuk menampilkan nilai dari hasil penjumlahan.
10.
3.5.5. Query
CALL DemoIF(7)
3.5.6. Printscreen
6. TUGAS PRAKTIKUM
4.1 Tugas Praktikum 1
Definisikan Procedure untuk mendapatkan jumlah matakuliah yang diambil oleh
dosen terdaftar.

4.1.1 Query
call JumlahMk()
4.1.2 Printscreen

4.1.3 Analisis
Dalam program ini masih menggunakan tabel yang sama dengan tabel-
tabel pada Latihan. Untuk mendapatkan jumlah matakuliah yang diambil oleh
dosen terdaftar pada program diatas menggunakan sebuah Procedure
bernama JumlahMK, dimana dalam procedure ini terdapat query dengan
perintah SELECT COUNT untuk menghitung suatu data pada kolom kd_mk
di tabel matakuliah. Hasil perhitungan tersebut ditampung dalam kolom baru
bernama jumlah dengan menggunakan perintah AS. Dalam program ini perlu
adanya relasi antara tabel matakuliah dengan tabel dosen, untuk
menggabungkan tabel matakuliah dan tabel dosen agar saling berhubungan
kami menggunakan perintah INNER JOIN dosen ON
matakuliah.kode_dos = dosen.kode_dos; yang berarti akan menampilkan
data-data yang mempunyai nilai sama antara field kode_dos pada tabel
matakuliah dan field kode_dos pada tabel dosen yang artinya data tersebut
berelasi. Setelah procedure dibuat maka tekan GO dan akan muncul ERROR
yang berisi bahwa procedure tersebut Already Exists yang berarti sudah
terbuat. Untuk memanggil procedure yang telah dibuat yakni JumlahMK
maka diperlukan perintah CALL.

4.2 Tugas Praktikum 2


Definisikan stored procedure untuk mengetahui apakah nim sembarang mahasiswa
sedang mengambil matakuliah atau tidak. Jika sedang mengambil, set status “ADA’,
dan jika tidak mengambil, set status “TIDAK ADA”.

4.2.1 Query
call AmbilGak(‘102’,@keadaan);
call AmbilGak(‘105’,@keadaan);
4.2.2 Printscreen
4.2.3 Analisis
Dalam program ini masih menggunakan tabel yang sama dengan
tabel-tabel pada Latihan. Untuk mengetahui apakah nim sembarang
mahasiswa sedang mengambil matakuliah atau tidak pada program diatas
menggunakan sebuah Procedure bernama AmbilGak, dimana dalam
procedure ini terdapat parameter IN untuk menginputkan suatau data dalam
hal ini adalah data suatu nim dan OUT sebagai keluaran dari hasil pekerjaan
procedur serta terdapat pula query dengan perintah SELECT COUNT untuk
menghitung suatu data pada kolom nim di tabel ambil_mk. Hasil perhitungan
tersebut ditampung dalam kolom baru bernama keadaan yang merupakan
hasil pekerjaan dari procedur. Namun untuk menampilkan apakah nim
tersebut sedang mengambil dan tidak mengambil matakuliah kami
menggunaka pernyataan IF,yang mana jika keadaan=0 maka tampilkan
keadaan=TIDAK ADA selain itu(ELSE) maka tampilkan keadaan=ADA.
Untuk memanggil procedure yang telah dibuat yakni AmbilGak maka
diperlukan perintah CALL.
4.3 Tugas Praktikum 3
Definisikan procedure untuk mengetahui apakah sebuah nilai dari parameter
procedure bernilai genap ataukah ganjil.

4.3.1 Query
call GanjilGenap(‘32’,@keadaan);
call GanjilGenap(‘55’,@keadaan);
4.3.2 Printscreen
4.3.3 Analisis
Dalam program ini masih menggunakan tabel yang sama dengan
tabel-tabel pada Latihan. Untuk mengetahui apakah sebuah nilai dari
parameter procedure bernilai genap ataukah ganjil pada program diatas
menggunakan sebuah Procedure bernama GanjilGenap, dimana dalam
procedure ini terdapat parameter IN untuk menginputkan suatau data
bernama masukkan dan OUT sebagai keluaran dari hasil pekerjaan procedur
bernama keadaan serta perintah SET bahwa data yang ada pada masukkan =
data yang ada pada keadaan dan terdapat pula perintah SELECT pada
keadaan data habis dibagi 2 maka data akan ditampung pada keadaan dan
menggunakan pernyataan IF yang menyatakan jika keadaan=1 maka
tampilkan keadaan=GANJIL selain itu(ELSE) maka tampilkan
keadaan=GENAP. Untuk memanggil procedure yang telah dibuat yakni
GanjilGenap maka diperlukan perintah CALL.
7. TUGAS RUMAH
Tabel Buku

Tabel Penulis

Tabel detail_buku
4.4 Tugas Rumah 1
Definisikan Store prosedure untuk mengetahui apakah suatu buku tersedia atau
tidak. Jika Tersedia, set status "BUKU TERSEDIA" , jika tidak Tersedia set status
“BUKU SEDANG KOSONG”.

4.4.1 Query
call SetatusBuku(‘196’,@setatus);
call SetatusBuku(‘155’,@setatus);
4.4.2 Printscreen
4.4.3 Analisis
Dalam program ini membuat 3 tabel baru yakni tabel Buku, Penulis,
dan ambil_buku yang datanya seperti pada modul7. Untuk mengetahui
mengetahui apakah suatu buku tersedia atau tidak pada program diatas
menggunakan sebuah Procedure bernama SetatusBuku, dimana dalam
procedure ini terdapat parameter IN untuk menginputkan suatau data
bernama idbuk dan OUT sebagai keluaran dari hasil pekerjaan procedur
bernama setatus serta perintah SET bahwa data yang ada pada idbuk = data
yang ada pada setatus serta terdapat pula query dengan perintah SELECT
COUNT untuk menghitung suatu data pada kolom id_buk di tabel Buku.
Hasil perhitungan tersebut ditampung dalam kolom baru bernama setatus
yang merupakan hasil pekerjaan dari procedur. Namun untuk menampilkan
apakah buku tersebut sedang Tersedia atau tidak Tersedia kami
menggunakan pernyataan IF,yang mana jika keadaan=0 maka tampilkan
keadaan=BUKU SEDANG KOSONG selain itu(ELSE) maka tampilkan
keadaan=BUKU TERSEDIA. Untuk memanggil procedure yang telah dibuat
yakni SetatusBuku maka diperlukan perintah CALL

4.5 Tugas Rumah 2


Definisikan suatu Stored procedure yang berfungsi untuk menambahkan data pada
tabel penulis .

4.5.1 Query
SELECT * FROM Penulis
4.5.2 Printscreen
4.5.3 Analisis
Dalam program ini menggunakan tabel yang sudah dibuat diatas.
Untuk menambahkan data pada tabel penulis pada program diatas
menggunakan sebuah procedure bernama AddPenulis , dimana dalam
procedure ini terdapat parameter IN untuk menginputkan suatau data pada
kolom id-penulis dan nama_penulis. Untuk memasukkan data apa saja kami
menggunakan perintah INSERT INTO kedalam tabel Penulis serta perintah
VALUES merupakan data yang dimasukkan. Untuk memanggil procedure
yang telah dibuat yakni GanjilGenap maka diperlukan perintah CALL
beserta data apa saja yang ingin dimasukkan.

4.6 Tugas Rumah 3


Definisikan Stored Procedure untuk Mengetahui Jumlah buku yang Bergenre
Romance.

4.6.1 Query
SELECT @genre_romance
4.6.2 Printscreen

4.6.3 Analisis
Dalam program ini menggunakan tabel yang sudah dibuat diatas
yakni tabel Buku, Penulis, dan ambil_buku. Untuk Mengetahui Jumlah buku
yang Bergenre Romance di tabel buku pada program diatas menggunakan
sebuah procedure bernama CountByJenis , dimana dalam procedure ini
terdapat parameter IN untuk menginputkan suatau data bernama jenis dan
parameter OUT sebagai keluaran dari hasil pekerjaan procedur . Dalam
procedure ini terdapat query dengan perintah SELECT COUNT untuk
menghitung suatu data pada kolom id_buku pada tabel Buku. Hasil
perhitungan tersebut ditampung pada kolom genre_romance. Untuk
memanggil procedure yang telah dibuat yakni CountByJenis maka diperlukan
perintah CALL beserta data apa saja yang ingin dimasukkan.
4.7 Tugas Rumah 4
Berikan Presentase Pemahaman kalian Pada Modul Kali ini (0-100%) dan
Berikan penjelasam pada bagian yang kalian belum pahami (apabila ada).

Jawaban :

Presentase kami memahami modul ini adalah 60%, ada beberapa bagian di
modul ini yang kami kurang mengerti :
1. Dalam mengerjakan tugas praktikum kami sempat mengalami kesulitan dalam
pembuatan procedure, yakni mengkolaborasikan pernyataan IF dengan
parameter lainnya agar mendapatkan suatu data tertentu.
2. Kami kurang mengerti mengenai materi perulangan pada stored procedure.
3. Kami kurang memahami fungsi INOUT .
4. Kami kurang mengerti penggunaan SET pada pernyataan IF.
8. KESIMPULAN

Stored Procedure adalah sebuah kelompok kode SQL yang di simpan di katalog
database dan dapat di panggil kemudian oleh program. Proses dilakukan di Database
Server sehingga lebih cepat, aplikasi cukup memanggil Stored Procedure dan mengirim
parameter yang diperlukan, namun juga memiliki kerugian salah satunya adalah dapat
mengakibatkan Database server membutuhkan memory dan prosessor lebih tinggi.

Dalam Implementasinya, penggunaan stored procedure sering melibatkan


parameter. Di MySQL, parameter stored procedure dibedakan menjadi tiga
mode : IN, OUT, dan INOUT.

Dalam tugas praktikum dan rumah soal yang diberikan menggunakan operasi-oprasi
yang spesifik, sehingga kita dituntut untuk mampu menyelesaikan soal tersebut dengan
Stored Produce daan menerapkan materi yang sudah kita pelajari pada saat praktikum.
9. RUJUKAN
a. Modul 7 Stored Procedure.
b. Lintas, 2009 “Kegunaan Stored Procedure”,
https://ginageh.wordpress.com/2009/06/08/kegunaan-stored-procedure/, April 2017.
c. Arek Belajar, 2014 “Pengertian Stored Procedure”,
https://arekubl.blogspot.co.id/2014/01/pengertian-stored-procedure.html, April 2017.

Anda mungkin juga menyukai