0% menganggap dokumen ini bermanfaat (0 suara)
190 tayangan18 halaman

10 - Menggunakan Stored Procedures Dan Function Di MySQL

Dokumen tersebut membahas penggunaan stored procedures dan function di MySQL. Ia menjelaskan definisi, keuntungan, contoh pembentukan, dan penggunaan stored procedures dan function untuk mengolah data seperti menghitung, memfilter, dan mengembalikan nilai. Contoh kode mendemonstrasikan penggunaan variabel, kondisi IF-ELSE, dan CASE dalam mengolah data secara prosedural di database.

Diunggah oleh

tharissast 03
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPT, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
190 tayangan18 halaman

10 - Menggunakan Stored Procedures Dan Function Di MySQL

Dokumen tersebut membahas penggunaan stored procedures dan function di MySQL. Ia menjelaskan definisi, keuntungan, contoh pembentukan, dan penggunaan stored procedures dan function untuk mengolah data seperti menghitung, memfilter, dan mengembalikan nilai. Contoh kode mendemonstrasikan penggunaan variabel, kondisi IF-ELSE, dan CASE dalam mengolah data secara prosedural di database.

Diunggah oleh

tharissast 03
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPT, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 18

Kelas XII-RPL SMKN 4 Bandung

Materi Basis Data Semester Genap


Menggunakan stored procedures/Function
di mysql
PENDAHULUAN
 Stored procedure/Function merupakan
kumpulan perintah SQL atau statement yang
diberi nama dan disimpan di server database
MySQL.
 SP biasanya berisi perintah-perintah umum
yang berhubungan dengan database, baik
perintah DDL maupun DML
KEUNTUNGAN MENGGUNAKAN SP

 Lebih cepat, karena kumpulan perintah


query dijalankan langsung di server
 Menghilangkan duplikasi proses,
pemeliharaan yang mudah
 Meningkatkan keamanan database, aplikasi
yang memanggil SP tidak perlu mengetahui
isi di dalamnya
PEMBAGIAN SP (STORED
PROCEDURES)
 Function : memiliki suatu nilai yang
dikembalikan (di return)
 Procedure : tidak memiliki nilai yang
dikembalikan. Procedure pada umumnya
hanya berisi kumpulan proses yang tidak
menghasilkan value, biasanya hanya
menampilkan saja.
Bentuk Umum Procedure :
CREATE PROCEDURE sp_name
([proc_parameter[…..]])
[characteristic …] routine_body
Keterangan :
 sp_nama : routine yg akan dibuat
 proc_parameter : Parameter SP, yaitu :
1. In : parameter yang digunakan sebagai masukan
2. Out : parameter yang digunakan sebagai
keluaran
3. InOut : parameter yang digunakan sbg masukan
sekaligus keluaran.
Contoh Sederhana :
Menampilkan “Hello World!”
 DELIMITER $$
 CREATE PROCEDURE hello()
 BEGIN
 SELECT "Hello World!";
 END$$
 DELIMITER ;
Keterangan :
 DELIMITER = adalah untuk memberi tahu kepada
mysql soal delimiter yang digunakan, secara default
menggunakan ; jadi bila ada tanda ; mysql akan
mengartikan akhir dari statement, pada contoh di atas
delimeter yang digunakan $$ jadi akhir statementnya
adalah $$
 Delimiter adalah karakter atau string yang memberi
tahu MySQL bahwa kita telah selesai menulis
statemen SQL. Ini diperlukan karena stored procedure
dapat terdiri atas sejumlah statement, dan setiap
statemen harus diakhiri dengan semicolon.
Contoh 1 Procedure :
 Procedure untuk menghitung jumlah pasien :
DELIMITER $$
CREATE PROCEDURE jmlh_pasien()
BEGIN
SELECT COUNT(*) FROM pasien;
END$$
DELIMITER ;
Contoh 2 Procedure :
 Procedure untuk menghitung jumlah item
barang yang pernah dibeli oleh satu pelanggan
DELIMITER $$
CREATE PROCEDURE jmlitembrg (pelanggan VARCHAR(5))
BEGIN
SELECT SUM(detil_pesan.jumlah)
FROM pesan, detil_pesan
WHERE pesan.id_pesan=detil_pesan.id_pesan
AND pesan.id_pelanggan=pelanggan;
END$$
DELIMITER ;
Contoh 3 Procedure
 Procedure untuk menampilkan daftar pasien yang sudah
berobat.
DELIMITER $$
CREATE PROCEDURE pasien_berobat()
BEGIN
SELECT nomedrec,nama_pasien FROM pasien
WHERE nomedrec IN (SELECT nomedrec FROM
kwitansi);
END$$
DELIMITER ;

24/08/23
Contoh 4 Function
 Function untuk menghitung jumlah produk yang
tersedia (stock) untuk satu produk tertentu.
DELIMITER $$
CREATE FUNCTION jmlstokbrg(produk VARCHAR(5))
RETURNS INT
BEGIN
DECLARE jumlah INT;
SELECT COUNT(*) INTO jumlah FROM produk
WHERE id_produk=produk;
RETURN jumlah;
END$$
DELIMITER ;

 Cara memanggil : SELECT jmlstokbrg('B0004')


Sintaks Dasar SP Yang didukung Oleh
MySQL

 Variabel : digunakan untuk menyimpan suatu


nilai secara sementara di memory
 Seleksi Kondisi : If, If…Else, Case.
 Perulangan : Loop, Repeat, While.
Contoh function hitungumur()
 DELIMITER $$
 CREATE FUNCTION hitungumur (lahir DATE)
 RETURNS INT
 BEGIN
 DECLARE thn_sekarang, thn_lahir INT;
 SET thn_sekarang = YEAR(NOW());
 SET thn_lahir = YEAR (lahir);
 RETURN thn_sekarang - thn_lahir;
 END$$
 DELIMITER ;

 Cara memanggil : SELECT hitungumur('1980-02-01')


Seleksi Kondisi
IF kondisi THEN
perintah-jika-benar;
END IF;

IF kondisi THEN
perintah-jika-benar;
ELSE
perintah-jika-salah;
END IF;

CASE expression
WHEN value THEN
statements
[WHEN value THEN statements ...]
[ELSE statements]
END CASE;
contoh penggunaan perintah IF dalam fungsi
cekPelanggan() :
 DELIMITER $$
 CREATE FUNCTION cekPelanggan (pelanggan VARCHAR(5))
 RETURNS VARCHAR (100)
 BEGIN
 DECLARE jumlah INT;
 SELECT COUNT(id_pesan) INTO jumlah FROM pesan
 WHERE id_pelanggan=pelanggan;
 IF (jumlah > 0) THEN
 RETURN CONCAT("Anda sudah bertransaksi sebanyak ",
 jumlah, " kali");
 ELSE
 RETURN "Anda belum pernah melakukan transaksi";
 END IF;
 END$$
 DELIMITER ;

 Cek : SELECT cekPelanggan('P0002')


Contoh penggunaan case dalam fungsi
getDiskon()
 DELIMITER $$
 CREATE FUNCTION getDiskon(jumlah INT) RETURNS INT(11)
 BEGIN
 DECLARE diskon INT;
 CASE
 WHEN (jumlah >= 100) THEN
 SET diskon = 10;
 WHEN (jumlah >= 50 AND jumlah < 100) THEN
 SET diskon = 5;
 WHEN (jumlah >= 20 AND jumlah < 50) THEN
 SET diskon = 3;
 ELSE SET diskon = 0;
 END CASE;
 RETURN diskon;
 END$$
 DELIMITER ;

 Cara memanggil :SELECT getDiskon('80')


Referensi

 http://www.ilmukomputer.org
 http://www.achmatim.net
 http://www.mysql.com
 http://mysql.phi-integration.com
 http://www.w3schools.com
Terima Kasih…

Anda mungkin juga menyukai