Stored Procedure &
Function
Pertemuan 7
Praktikum Manajemen Sistem Basis Data
Praktikum Manajemen Sistem Basis Data
Apa yang akan kita
bahas?
● Pendahuluan
● Procedure & Function
● Tugas
Pendahuluan
Procedure & Function
Praktikum Manajemen Sistem Basis Data
● Merupakan bagian dari Stored Program pada MYSQL
● Procedure dan Function sama sama menyimpan kumpulan statement
SQL yang dapat digunakan secara berulang.
● Perbedaan yang mencolok di antara keduanya ialah :
○ Procedure dapat memberikan nilai kembalian (Opsional)
○ Function harus memberikan nilai kembalian/return
Stored Procedure
Stored Procedure
Praktikum Manajemen Sistem Basis Data
● Kumpulan perintah/prosedur yang dapat kita simpan di dalam
database yang dapat menerima inputan dan memberikan output.
● Dapat dimanfaatkan untuk :
○ Mengeksekusi perintah SQL yang sering digunakan.
○ Menjalankan perintah INSERT, UPDATE, atau DELETE menjadi lebih
singkat.
○ Mengimplementasikan logic bisnis dari suatu aplikasi dalam satu
kesatuan, dll.
Stored Procedure
Praktikum Manajemen Sistem Basis Data
Kita bisa mem-pass parameter ke dalam Procedure,
● IN => Memasukan nilai kedalam Procedure melalui parameter
● OUT => Nilai kembalian(output) dari Procedure
● INOUT => Berperan sebagai nilai masukkan dan keluaran
NOTE : Jika kita tidak menyertakan kata kunci IN pada parameter, maka
secara default variabel tersebut merupakan parameter INPUT.
Stored Procedure
Praktikum Manajemen Sistem Basis Data
Syntax:
CREATE PROCEDURE nama_procedure(param1 data_type, param2 data_type, …)
BEGIN
[Kumpulan perintah SQL]
END;
Call Procedure :
CALL nama_procedure([params]);
Stored Procedure
Praktikum Manajemen Sistem Basis Data
Contoh:
DELIMITER $$
CREATE OR REPLACE PROCEDURE getWriter()
BEGIN
SELECT * FROM penulis;
END $$
DELIMITER ;
Call Procedure : CALL getWriter();
Stored Procedure
Praktikum Manajemen Sistem Basis Data
Contoh:
DELIMITER $$
CREATE OR REPLACE PROCEDURE getMahasiswaByStambuk(tahun INT(4))
BEGIN
SELECT * FROM mahasiswa WHERE stambuk = tahun;
END $$
DELIMITER ;
Call Procedure : CALL getMahasiswaByStambuk(2019);
Stored Procedure
Praktikum Manajemen Sistem Basis Data
Contoh:
DELIMITER $$
CREATE OR REPLACE PROCEDURE insertBuku(IN judul_buku_param VARCHAR(255), IN
id_penulis_param INT, IN tahun_param INT(4), IN bahasa_param VARCHAR(255), OUT
jumlah_buku_output VARCHAR(255))
BEGIN
DECLARE jlh_buku INT;
INSERT INTO buku (judul, id_penulis, tahun, bahasa) VALUES(judul_buku_param,
id_penulis_param, tahun_param, bahasa_param);
SELECT COUNT(*) INTO jlh_buku FROM buku;
SET jumlah_buku_output = CONCATE('Buku berhasil ditambahkan, total buku
sekarang = ', jlh_buku);
END $$
DELIMITER ;
Stored Procedure
Praktikum Manajemen Sistem Basis Data
CALL Procedure :
CALL insertBuku( 'Niat Grinding Malah Glinding: Mobile Legends
Edition', 7, 2023, 'Indonesia', @total_buku);
SELECT @total_buku;
Stored Procedure
Praktikum Manajemen Sistem Basis Data
Contoh:
DELIMITER $$
CREATE PROCEDURE kuadrat(INOUT angka_param int)
BEGIN
SELECT (angka_param * angka_param) into angka_param;
END $$
DELIMITER ;
Call Procedure : SET @angka = 8;
CALL kuadrat(@angka);
SELECT @angka;
Stored Function
Stored Function
Praktikum Manajemen Sistem Basis Data
● Kumpulan perintah/prosedur yang disimpan dan akan mengembalikan
suatu nilai.
● Stored function ini bekerja seperti function mysql (AVG, SUM, MAX, dll)
namun stored function adalah function yang kita definisikan sendiri.
Stored Procedure
Praktikum Manajemen Sistem Basis Data
Syntax:
CREATE FUNCTION nama_function (parameter1 datatype, parameter2 datatype, …)
RETURNS datatype
[NOT] DETERMINISTIC
BEGIN
[Kumpulan Perintah SQL]
RETURN something
END $$
DELIMITER ;
Stored Procedure
Praktikum Manajemen Sistem Basis Data
DETERMINISTIC
The DETERMINISTIC keyword is not necessary in all cases (although if binary
logging is on, leaving it out will throw an error), and is to help the query optimizer
choose a query plan. A deterministic function is one that, given the same
arguments, will always return the same result.
For further information, you can see here STACKOVERFLOW
Stored Procedure
Praktikum Manajemen Sistem Basis Data
Contoh:
DELIMITER $$
CREATE FUNCTION perkalian(a INT, b INT) RETURNS INT
BEGIN
RETURN a*b;
END $$
DELIMITER ;
Call Procedure : SELECT perkalian(4, 2);
Stored Procedure
Praktikum Manajemen Sistem Basis Data
Contoh:
DELIMITER $$
CREATE OR REPLACE FUNCTION usia(id INT) RETURNS INT
BEGIN
DECLARE lahir date; DECLARE sekarang date; DECLARE thn INT;
SET lahir = (SELECT tanggal_lahir FROM penulis WHERE id_penulis=id);
SET sekarang = now();
SET thn = 365;
RETURN DATEDIFF(sekarang, lahir)/thn;
END $$
DELIMITER ;
Call Procedure : SELECT usia(7);
TUGAS
Praktikum Manajemen Sistem Basis Data
Tugas Pertemuan #7 Stored Procedure & Function
Masuk ke mysql lalu buat file log tee untuk merekam semua query di sql anda! click untuk melihat
tutorial. Gunakan bahan ajar kita `sample_buku.sql` untuk mengerjakan tugas ini.
NO 1 :
Perpustakaan tersebut menerapkan aturan bagi yang telat mengembalikan buku, yaitu denda senilai
Rp 2000,-/hari setelah waktu pinjam. Buatlah sebuah Stored Function untuk menghitung denda
tersebut. (Format nama Function => [nimAnda]_denda(id_peminjaman_buku_param INT)).
NOTE : Denda hanya berlaku bagi mahasiswa yang belum mengembalikan buku setelah melewati
waktu pinjam.
Praktikum Manajemen Sistem Basis Data
NO 2:
Buatlah Procedure untuk menampilkan data peminjaman buku yang masuk dalam kategori TELAT
mengembalikan buku. Data yang akan ditampilkan adalah Nim, Nama, Judul Buku, Tanggal Kembali,
Jumlah Denda. (Format nama Procedure => [nimAnda]_listTelat() ).
HINT: Manfaatkan fungsi pada soal pertama yang telah kalian buat untuk menentukan Jumlah Denda.
File yang dikumpul adalah file .txt dari hasil log anda.
Format File : Nama_NIM_Tugas_P7.txt
Deadline : Kamis, 23 Oktober 2023 Pukul 23.59 WIB
Tugas Pertemuan #7 Stored Procedure & Function
TERIMAKASIH
Apakah ada yang ingin
ditanyakan?

#7 - Stored Procedure And Function.pptx

  • 1.
    Stored Procedure & Function Pertemuan7 Praktikum Manajemen Sistem Basis Data
  • 2.
    Praktikum Manajemen SistemBasis Data Apa yang akan kita bahas? ● Pendahuluan ● Procedure & Function ● Tugas
  • 3.
  • 4.
    Procedure & Function PraktikumManajemen Sistem Basis Data ● Merupakan bagian dari Stored Program pada MYSQL ● Procedure dan Function sama sama menyimpan kumpulan statement SQL yang dapat digunakan secara berulang. ● Perbedaan yang mencolok di antara keduanya ialah : ○ Procedure dapat memberikan nilai kembalian (Opsional) ○ Function harus memberikan nilai kembalian/return
  • 5.
  • 6.
    Stored Procedure Praktikum ManajemenSistem Basis Data ● Kumpulan perintah/prosedur yang dapat kita simpan di dalam database yang dapat menerima inputan dan memberikan output. ● Dapat dimanfaatkan untuk : ○ Mengeksekusi perintah SQL yang sering digunakan. ○ Menjalankan perintah INSERT, UPDATE, atau DELETE menjadi lebih singkat. ○ Mengimplementasikan logic bisnis dari suatu aplikasi dalam satu kesatuan, dll.
  • 7.
    Stored Procedure Praktikum ManajemenSistem Basis Data Kita bisa mem-pass parameter ke dalam Procedure, ● IN => Memasukan nilai kedalam Procedure melalui parameter ● OUT => Nilai kembalian(output) dari Procedure ● INOUT => Berperan sebagai nilai masukkan dan keluaran NOTE : Jika kita tidak menyertakan kata kunci IN pada parameter, maka secara default variabel tersebut merupakan parameter INPUT.
  • 8.
    Stored Procedure Praktikum ManajemenSistem Basis Data Syntax: CREATE PROCEDURE nama_procedure(param1 data_type, param2 data_type, …) BEGIN [Kumpulan perintah SQL] END; Call Procedure : CALL nama_procedure([params]);
  • 9.
    Stored Procedure Praktikum ManajemenSistem Basis Data Contoh: DELIMITER $$ CREATE OR REPLACE PROCEDURE getWriter() BEGIN SELECT * FROM penulis; END $$ DELIMITER ; Call Procedure : CALL getWriter();
  • 10.
    Stored Procedure Praktikum ManajemenSistem Basis Data Contoh: DELIMITER $$ CREATE OR REPLACE PROCEDURE getMahasiswaByStambuk(tahun INT(4)) BEGIN SELECT * FROM mahasiswa WHERE stambuk = tahun; END $$ DELIMITER ; Call Procedure : CALL getMahasiswaByStambuk(2019);
  • 11.
    Stored Procedure Praktikum ManajemenSistem Basis Data Contoh: DELIMITER $$ CREATE OR REPLACE PROCEDURE insertBuku(IN judul_buku_param VARCHAR(255), IN id_penulis_param INT, IN tahun_param INT(4), IN bahasa_param VARCHAR(255), OUT jumlah_buku_output VARCHAR(255)) BEGIN DECLARE jlh_buku INT; INSERT INTO buku (judul, id_penulis, tahun, bahasa) VALUES(judul_buku_param, id_penulis_param, tahun_param, bahasa_param); SELECT COUNT(*) INTO jlh_buku FROM buku; SET jumlah_buku_output = CONCATE('Buku berhasil ditambahkan, total buku sekarang = ', jlh_buku); END $$ DELIMITER ;
  • 12.
    Stored Procedure Praktikum ManajemenSistem Basis Data CALL Procedure : CALL insertBuku( 'Niat Grinding Malah Glinding: Mobile Legends Edition', 7, 2023, 'Indonesia', @total_buku); SELECT @total_buku;
  • 13.
    Stored Procedure Praktikum ManajemenSistem Basis Data Contoh: DELIMITER $$ CREATE PROCEDURE kuadrat(INOUT angka_param int) BEGIN SELECT (angka_param * angka_param) into angka_param; END $$ DELIMITER ; Call Procedure : SET @angka = 8; CALL kuadrat(@angka); SELECT @angka;
  • 14.
  • 15.
    Stored Function Praktikum ManajemenSistem Basis Data ● Kumpulan perintah/prosedur yang disimpan dan akan mengembalikan suatu nilai. ● Stored function ini bekerja seperti function mysql (AVG, SUM, MAX, dll) namun stored function adalah function yang kita definisikan sendiri.
  • 16.
    Stored Procedure Praktikum ManajemenSistem Basis Data Syntax: CREATE FUNCTION nama_function (parameter1 datatype, parameter2 datatype, …) RETURNS datatype [NOT] DETERMINISTIC BEGIN [Kumpulan Perintah SQL] RETURN something END $$ DELIMITER ;
  • 17.
    Stored Procedure Praktikum ManajemenSistem Basis Data DETERMINISTIC The DETERMINISTIC keyword is not necessary in all cases (although if binary logging is on, leaving it out will throw an error), and is to help the query optimizer choose a query plan. A deterministic function is one that, given the same arguments, will always return the same result. For further information, you can see here STACKOVERFLOW
  • 18.
    Stored Procedure Praktikum ManajemenSistem Basis Data Contoh: DELIMITER $$ CREATE FUNCTION perkalian(a INT, b INT) RETURNS INT BEGIN RETURN a*b; END $$ DELIMITER ; Call Procedure : SELECT perkalian(4, 2);
  • 19.
    Stored Procedure Praktikum ManajemenSistem Basis Data Contoh: DELIMITER $$ CREATE OR REPLACE FUNCTION usia(id INT) RETURNS INT BEGIN DECLARE lahir date; DECLARE sekarang date; DECLARE thn INT; SET lahir = (SELECT tanggal_lahir FROM penulis WHERE id_penulis=id); SET sekarang = now(); SET thn = 365; RETURN DATEDIFF(sekarang, lahir)/thn; END $$ DELIMITER ; Call Procedure : SELECT usia(7);
  • 20.
  • 21.
    Praktikum Manajemen SistemBasis Data Tugas Pertemuan #7 Stored Procedure & Function Masuk ke mysql lalu buat file log tee untuk merekam semua query di sql anda! click untuk melihat tutorial. Gunakan bahan ajar kita `sample_buku.sql` untuk mengerjakan tugas ini. NO 1 : Perpustakaan tersebut menerapkan aturan bagi yang telat mengembalikan buku, yaitu denda senilai Rp 2000,-/hari setelah waktu pinjam. Buatlah sebuah Stored Function untuk menghitung denda tersebut. (Format nama Function => [nimAnda]_denda(id_peminjaman_buku_param INT)). NOTE : Denda hanya berlaku bagi mahasiswa yang belum mengembalikan buku setelah melewati waktu pinjam.
  • 22.
    Praktikum Manajemen SistemBasis Data NO 2: Buatlah Procedure untuk menampilkan data peminjaman buku yang masuk dalam kategori TELAT mengembalikan buku. Data yang akan ditampilkan adalah Nim, Nama, Judul Buku, Tanggal Kembali, Jumlah Denda. (Format nama Procedure => [nimAnda]_listTelat() ). HINT: Manfaatkan fungsi pada soal pertama yang telah kalian buat untuk menentukan Jumlah Denda. File yang dikumpul adalah file .txt dari hasil log anda. Format File : Nama_NIM_Tugas_P7.txt Deadline : Kamis, 23 Oktober 2023 Pukul 23.59 WIB Tugas Pertemuan #7 Stored Procedure & Function
  • 23.
    TERIMAKASIH Apakah ada yangingin ditanyakan?