Anda di halaman 1dari 6

TUGAS 3 PEMROGRAMAN SQL

Virdiyansyah D Abdillah 141051048

Teknik Informatika
INSTITUT SAINS & TEKNOLOGI
YOGYAKARTA
2017

• Carilah contoh perulangan (for, while) dan percabangan (if, case) dijelaskan fungsi dan
contohnya!
• For (Membuat perulangan dengan menggunakan 'for')
postgres=# create function perintah() returns void as $$
postgres$# declare
postgres$# i int;
postgres$# begin
postgres$# for i in 1..5 loop
postgres$# raise notice'perulangan ke-%',i;
postgres$# end loop;
postgres$# end;
postgres$# $$
postgres-# language plpgsql;
CREATE FUNCTION

Cara memanggilnya :
postgres=# select perintah();
NOTICE: perulangan ke-1
NOTICE: perulangan ke-2
NOTICE: perulangan ke-3
NOTICE: perulangan ke-4
NOTICE: perulangan ke-5
perintah
---------
(1 row)

• While (Membuat perulangan dengan menggunakan 'while')


postgres=# create function perintah2() returns void as $$
postgres$# declare
postgres$# i int;
postgres$# begin
postgres$# i:=0;
postgres$# while(i<=5) loop
postgres$# raise notice'perulangan ke-%',i;
postgres$# i:=i+1;
postgres$# end loop;
postgres$# end;
postgres$# $$
postgres-# language plpgsql;
CREATE FUNCTION

Cara menjalankanya:
postgres=# select perintah2();
NOTICE: perulangan ke-0
NOTICE: perulangan ke-1
NOTICE: perulangan ke-2
NOTICE: perulangan ke-3
NOTICE: perulangan ke-4
NOTICE: perulangan ke-5
perintah2
---------

(1 row)

• If (Membuat suatu fungsi pengkondisian menggunakan 'if')

postgres=# create function perintah3() returns void as


postgres-# $$
postgres$# declare
postgres$# nim char(9);
postgres$# point int;
postgres$# grade char(1);
postgres$# begin
postgres$# nim:='141051048';
postgres$# point:=90;
postgres$# if point<=100 and point>-80 then grade='A';
postgres$# elseif point<80 and point>=60 then grade='B';
postgres$# elseif point<20 and point>=40 then grade='C';
postgres$# else grade='E';
postgres$# end if;
postgres$# raise notice'nim : %',nim;
postgres$# raise notice'point :%',point;
postgres$# raise notice'grade : %',grade;
postgres$# end;
postgres$# $$
postgres-# language plpgsql;
CREATE FUNCTION

cara menjalankannya:
postgres=# select perintah3();
NOTICE: nim : 141051048
NOTICE: point :90
NOTICE: grade : A
perintah3
---------

(1 row)

• Case (Membuat suatu function dengan menggunakan case)

CREATE FUNCTION dis(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$$

• Trigger before, after dan instead of!


- Before
CREATE OR REPLACE TRIGGER name_changes_trigger
BEFORE DELETE OR INSERT OR UPDATE
ON mahasiswa
FOR EACH ROW
DECLARE

BEGIN

IF length(:new.npm) < 7 THEN


raise_application_error(-20015, 'Panjang NPM tidak boleh kurang dari 7
digit');
END IF;

DBMS_OUTPUT.put_line ('Nama Lama: ' || :OLD.nama);


DBMS_OUTPUT.put_line ('Nama Baru: ' || :NEW.nama);
END;

-After
CREATE OR REPLACE TRIGGER NANO.name_changes_trigger_2
AFTER UPDATE ON NANO.MAHASISWA FOR EACH ROW
DECLARE
BEGIN
IF length(:new.npm) < 7 THENraise_application_error(-1231, 'Panjang NPM
tidak boleh kurang dari 7 digit');
END IF;
DBMS_OUTPUT.put_line ('Nama Lama: ' || :OLD.nama);
DBMS_OUTPUT.put_line ('Nama Baru: ' || :NEW.nama);
END;
=> SET serveroutput on;
=> UPDATE mahasiswa SET nama = 'Melki' WHERE nim = '12345';

Nama Lama: Yoncex


Nama Baru: Melki

1 row updated.

Anda mungkin juga menyukai