Anda di halaman 1dari 14

LAPORAN PRAKTIKUM 6

ADMINISTRASI BASIS DATA


“Stored Procedure”

DISUSUN OLEH:
NAMA : WIDYA KHARTIKA
NIM : 42520048
KELAS : 2B D4-TKJ

PRODI D-IV TEKNIK KOMPUTER DAN JARINGAN


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI UJUNG PANDANG
2022
1. Tujuan

Setelah menyelesaikan modul ini, anda diharapkan dapat :

1. Membuat/mendefenisikan stored procedure

2. Menjalankan/Memanggil stored procedure

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 yang digunakan dalam stored procedure terdiri dari 3 jenis

- 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 OUT. Parameter ini digunakan untuk mengeluarkan hasil proses

- 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;

B. MEMBUAT STORED PROCEDURE DENGAN PARAMETER IN

 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;

C. MEMBUAT STORED PROCEDURE DENGAN PARAMETER IN DAN OUT

 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;

SELECT SUM(stok_produk) INTO jumlah_stok_produk


FROM produk WHERE id_produk = in_id_produk;
SELECT SUM(jumlah) INTO jumlah_terjual FROM
transaksi_detail WHERE id_produk = in_id_produk;
SET total_produk =
jumlah_stok_produk+jumlah_terjual;
END //
DELIMITER ;

 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;

D. MEMANGGIL STORED PROCEDURE

 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;
/

3. Daftar Alat dan Bahan


1. Personal Komputer 1 Unit
2. Software DBMS (MS. Access, SQL Server, MySQL, Visual Foxpro)

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

2. Buatlah sebuah stored procedure dengan 1 parameter IN, jelaskan tujuan


stored procedure kemudian panggil stored procedure tersebut.
Syntaks

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’

3. Buatlah sebuah stored procedure dengan 2 parameter IN, jelaskan tujuan


stored procedure kemudian panggil stored procedure tersebut.
Syntaks

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

CALL Update_datafilm(2, 200)

Kondisi tabel data_film sebelum diberi prosedure dengan 2 parameter IN

Jumlah stok_film
untuk id_film 2
masih 150

Kondisi tabel data_film setelah diberi prosedure dengan 2 parameter IN

Jumlah stok_film untuk


id_film 2 yang tadinya 150
berubah menjadi 350 sesuai
dengan perintah yang kita
masukkan yaitu stok film
untuk id_film 2
ditambahkan dengan 200
Procedure ini bertujuan untuk mengudpate atau penambahan nilai data yang
ada pada kolom sesuai dengan jumlah yang dimasukan

4. Buatlah sebuah stored procedure dengan 2 parameter IN dan 1 parameter


OUT, jelaskan tujuan stored procedure kemudian panggil stored procedure
tersebut
Syntaks

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);

SELECT jumlah_point INTO jml_poin_awal FROM user WHERE id_akun=id_user;


SELECT SUM(bonus_point) INTO jml_poin_baru FROM data_download WHERE
id_unduh=id_download;

SET total = jml_poin_awal+jml_poin_baru;

END
//
DELIMITER ;
Hasil Uji Coba

CALL Hitung_bonus_point(2, 22, @total);


SELECT @total as Total_Point;
Procedure ini bertujuan untuk menghitung dua nilai kolom pada tabel yang
berbeda yakni pada tabel user dan juga tabel data_download dan tentunya
berdasarkan pada id yang dimasukkan

Anda mungkin juga menyukai