Prosedur SQL
Prosedur SQL
STORED PROCEDURE
1 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
STORED PROCEDURE
2 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
VARIABLE
3 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
JENIS-JENIS VARIABLE
• Variable System
– Dapat diakses dengan menggunakan @@namavar
– Contoh : SELECT @@port
4 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
VARIABLE SYSTEM
5 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
6 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
7 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
STORED PROCEDURE
8 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
STORED PROCEDURE
9 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
CONTOH 1
• Persiapan
– Buat dulu sebuah table untuk menyimpan data log user
10 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
CONTOH 1
11 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
CONTOH 1
12 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
PARAMETER
13 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
PARAMETER
-- PEMBUATAN PROCEDURE
CREATE PROCEDURE tambahkan(IN a int,IN b int, OUT c int)
SET c=a+b;
-- MEMANGGIL PROCEDURE
SET @c=0; -- Deklarasi var c
CALL tambahkan(100,50,@c);
SELECT @c; -- Menghasilkan nilai 150
14 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
SELECT … INTO
CALL AmbilData(@terbesar,@ratarata);
SELECT @terbesar,@ratarata; -- 103.42, 54.3951818181818
15 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
PERCABANGAN
• Pernyataan IF
• Pernyataan CASE
16 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
Pernyataan IF
• Struktur statement
IF Kondisi THEN
statement_list
[ELSEIF Kondisi THEN
statement_list] ...
[ELSE
statement_list]
END IF
17 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
Pernyataan IF
18 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
Pernyataan IF
19 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
Pernyataan CASE
• Struktur statement
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSE statement_list]
END CASE
20 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
Pernyataan CASE
21 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
Pernyataan CASE
22 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
PERULANGAN
• Statement REPEAT
• Statement WHILE
• Statement LOOP
23 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
24 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
• Procedure JumlahDeret
DELIMITER //
DROP PROCEDURE JumlahDeret//
CREATE PROCEDURE JumlahDeret(N int, OUT Hasil Int)
BEGIN
DECLARE ctr int DEFAULT 0;
SET Hasil=0;
REPEAT
SET Hasil=Hasil+ctr;
SET ctr=ctr+1;
UNTIL ctr>N END REPEAT;
END//
25 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
26 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
27 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
• Procedure JumlahDeret2
DELIMITER //
CREATE PROCEDURE JumlahDeret2(N int, OUT Hasil Int)
BEGIN
DECLARE ctr int DEFAULT 0;
SET Hasil=0;
WHILE ctr<=N DO
SET Hasil=Hasil+ctr;
SET ctr=ctr+1;
END WHILE;
END//
28 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
29 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
30 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
• Procedure JumlahDeret3
DELIMITER //
CREATE PROCEDURE JumlahDeret3(N int, OUT Hasil Int)
BEGIN
DECLARE ctr int DEFAULT 0;
SET Hasil=0;
AWAL:
LOOP
SET Hasil=Hasil+ctr;
SET ctr=ctr+1;
IF ctr>N THEN
LEAVE AWAL;
END IF;
END LOOP AWAL;
END//
31 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
32 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
• Procedure JumlahDeret4
DELIMITER //
CREATE PROCEDURE JumlahDeret4(N int, OUT Hasil Int)
BEGIN
DECLARE ctr int DEFAULT 0;
SET Hasil=0;
AWAL:
LOOP
SET Hasil=Hasil+ctr;
SET ctr=ctr+1;
IF ctr<=N THEN
ITERATE AWAL;
END IF;
LEAVE AWAL;
END LOOP AWAL;
33 END// Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
34 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
35 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
36 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
37 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
CALL Transfer(3,2,40,@status);
SELECT @status; -- Rekening 3 Tidak Ditemukan
CALL Transfer(1,5,40,@status);
SELECT @status; -- Rekening 5 Tidak Ditemukan
CALL Transfer(1,2,4000,@status);
SELECT @status; -- Saldo Rekening 1 Tidak Mencukupi
CALL Transfer(1,2,40,@status);
SELECT @status; -- Sukses
SELECT * FROM REKENING; -- Rek 1 : 460, Rek 2 : 90
38 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia