DISUSUN OLEH:
NAMA : WIDYA KHARTIKA
NIM : 42520048
KELAS : 2B D4-TKJ
2. Dasar teori
Stored procedure adalah sekumpulan perintah SQL yang disusun dalam sebuah procedure (mirip
pemrograman biasa) yang mempunyai nama dan kegunaan tertentu.Keuntungan penggunaan store
procedure :
a. Memaketkan sekumpulan perintah SQL dalam sebuah objek. Hal ini akan mengurangi trafik jaringan.
b. Jika terjadi perubahan aturan bisnis, bisa dilakukan di server sehingga akan mempengaruhi semua
client.
Stored procedure memiliki kemampuan menerima parameter input, melakukan pengolahan terhadap
parameter input tersebut lalu menampilkannya. Stored Procedures dapat memiliki parameter input
ataupun tidak memiliki parameter. Parameter pada stored procedures dapat berupa input, output maupun
gabungan input dan output. Stored procedures mampu menangani pesan kesalahan yaitu dengan
Exception Handling. Stored Procedures dapat berdiri sendiri, digunakan bersama dengan stored
procedures lainnya maupun digunakan dengan Stored Functions.
- Parameter IN, parameter ini digunakan hanya untuk input saja. Jika parameter ini diubah nilainya di
dalam stored procedure, maka tidak akan mempengaruhi nilai variabelnya setelah stored procedure.
Parameter ini boleh dari variabel atau nilai langsung
- Parameter IN-OUT. Gabungan IN dan OUT. Dapat mengirim dan menerima variabel. Parameter ini
hanya boleh menggunakan variable
A. MEMBUAT STORED PROCEDURE
MySQL
DELIMITER //
CREATE PROCEDURE GetProduct()
BEGIN
SELECT * FROM produk;
END //
DELIMITER ;
ORACLE
CREATE OR REPLACE PROCEDURE GetProduct
IS
BEGIN
FOR row IN(SELECT * FROM tbl_produk)
LOOP
DBMS_OUTPUT.PUT_LINE(row.harga);
END LOOP;
END;
MySQL
DELIMITER //
CREATE PROCEDURE GetSpesificProduct (IN id INT)
BEGIN
SELECT * FROM produk WHERE id_produk=id;
END //
DELIMITER ;
ORACLE
CREATE OR REPLACE PROCEDURE
GetSpesificProduct(in_id_produk IN
tbl_produk.id_produk%TYPE)
IS
BEGIN
FOR row IN(SELECT * FROM tbl_produk WHERE id_produk =
in_id_produk)
LOOP
DBMS_OUTPUT.PUT_LINE(row.nama_produk || ' - ' ||
row.harga);
END LOOP;
END;
MySQL
DELIMITER //
CREATE OR REPLACE PROCEDURE totalbarang(IN in_id_produk
INT(11), OUT total_produk DECIMAL)
BEGIN
DECLARE jumlah_stok_produk DECIMAL;
DECLARE jumlah_terjual DECIMAL;
ORACLE
CREATE OR REPLACE PROCEDURE totalbarang(in_id_produk IN
tbl_produk.id_produk%TYPE, total_produk OUT DECIMAL)
IS
jumlah_stok_produk DECIMAL;
jumlah_terjual DECIMAL;
BEGIN
SELECT SUM(stok_produk) INTO jumlah_stok_produk
FROM tbl_produk WHERE id_produk = in_id_produk;
SELECT SUM(jumlah) INTO jumlah_terjual FROM
tbl_transaksi_detail WHERE id_produk = in_id_produk;
total_produk := jumlah_stok_produk+jumlah_terjual;
END;
MySQL
CALL getproduct();
CALL getspesificproduct(1)
CALL totalbarang(1, @total);
SELECT @total;
SQL Server
SET SERVEROUT ON;
EXECUTE GetProduct();
EXECUTE GetSpesificProduct(1);
DECLARE
total_produk DECIMAL;
BEGIN
totalbarang(1, total_produk);
DBMS_OUTPUT.PUT_LINE('total semua : ' ||
total_produk);
END;
/
4. Keselamatan Kerja
1. Sebelum melakukan langkah percobaan, pastikan kabel power terhubung ke Power Supply.
2. Matikan komputer setelah praktikum selesai.
5. Langkah Kerja
MYSQL
1. Buatlah sebuah stored procedure tanpa parameter, jelaskan tujuan stored procedure kemudian panggil
stored procedure tersebut.
2. Buatlah sebuah stored procedure dengan 1 parameter IN, jelaskan tujuan stored procedure kemudian
panggil stored procedure tersebut.
3. Buatlah sebuah stored procedure dengan 2 parameter IN, jelaskan tujuan stored procedure kemudian
panggil stored procedure tersebut.
4. Buatlah sebuah stored procedure dengan 2 parameter IN dan 1 parameter OUT, jelaskan tujuan stored
procedure kemudian panggil stored procedure tersebut
ORACLE
5. Buatlah sebuah stored procedure tanpa parameter, jelaskan tujuan stored procedure kemudian panggil
stored procedure tersebut.
6. Buatlah sebuah stored procedure dengan 1 parameter IN, jelaskan tujuan stored procedure kemudian
panggil stored procedure tersebut.
7. Buatlah sebuah stored procedure dengan 2 parameter IN, jelaskan tujuan stored procedure kemudian
panggil stored procedure tersebut.
8. Buatlah sebuah stored procedure dengan 2 parameter IN dan 1 parameter OUT, jelaskan tujuan stored
procedure kemudian panggil stored procedure tersebut
---------------------------------------------------------------------
1. Menggunakan MYSQL
- Buatlah sebuah stored procedure tanpa parameter, jelaskan tujuan stored
procedure kemudian panggil stored procedure tersebut.
Syntaks
DELIMITER //
CREATE PROCEDURE Cek_Tabel_User()
BEGIN
SELECT * FROM user;
END
//
DELIMITER ;
Hasil Uji Coba
CALL Cek_Tabel_User()
Tujuan dari stored procedure di atas yaitu untuk menampilkan semua isi data
pada tabel user yang ada pada database situs_nonton_film_widi
DELIMITER //
CREATE PROCEDURE ambilsatudatadownload1(IN id_unduh INT)
BEGIN
SELECT * FROM data_download WHERE id_unduh=id_download;
END
//
DELIMITER ;
Hasil Uji Coba
CALL ambilsatudatadownload1(22)
Procedure ini bertujuan untuk memanggil atau menampilkan data download
film yang ada pada user ‘2’
DELIMITER //
CREATE PROCEDURE Update_datafilm(IN id_movie INT(11), IN tambah_film
INT(11))
BEGIN
UPDATE data_film SET stok_film=stok_film+tambah_film
WHERE id_movie=id_film;
END
//
DELIMITER ;
Hasil Uji Coba
Jumlah stok_film
untuk id_film 2
masih 150
DELIMITER //
CREATE PROCEDURE Hitung_bonus_point(IN id_akun INT(11), IN id_unduh INT(11), OUT
total INT(11))
BEGIN
DECLARE jml_poin_awal INT(11);
DECLARE jml_poin_baru INT(11);
END
//
DELIMITER ;
Hasil Uji Coba