Uploaded by Abdul Rozak

Struktur Kontrol Kondisi PL/SQL

advertisement
ABDUL ROZAK
41518110085
1. Struktur Satu Kondisi
Contoh Pertama:
SET SERVEROUTPUT ON
DECLARE
BIL INTEGER := 80;
-- 80 adalah contoh bilangan yang
dicek
BEGIN
END;
/
IF MOD(BIL, 2) = 0 THEN
DBMS_OUTPUT.PUT_LINE (TO_CHAR(BIL) ||
'ADALAH BILANGAN GENAP');
END IF;
Contoh Kedua:
SET SERVEROUTPUT ON
DECLARE
BIL INTEGER := 39;
BEGIN
IF MOD (BIL,2) = 0 THEN
DBMS_OUTPUT.PUT_LINE (TO_CHAR(BIL) ||
'ADALAH BILANGAN GENAP');
END IF;
END;
/
Contoh Ketiga:
DECLARE
BIL INTEGER := 12;
BEGIN
IF BIL > 0 THEN
DBMS_OUTPUT.PUT_LINE (TO_CHAR(BIL) ||
'ADALAH BILANGAN POSITIP’);
END IF;
END;
/
2. Struktur Dua Kondisi
Contoh Pertama:
SET SERVEROUTPUT ON
DECLARE
BIL INTEGER := 3;
BEGIN
IF MOD (BIL,2) = 0 THEN
DBMS_OUTPUT.PUT_LINE (TO_CHAR(BIL)||
'ADALAH BULANGAN GENAP');
ELSE
DBMS_OUTPUT.PUT_LINE (TO_CHAR(BIL)||
'ADALAH BILANGAN GANJIL');
END IF;
END;
/
Contoh Kedua:
DECLARE
BIL1 INTEGER;
BIL2 INTEGER;
BEGIN
BIL1 := 24;
BIL2:= 100;
IF BIL1 > BIL2 THEN
DBMS_OUTPUT.PUT_LINE (‘Bilangan terbesar dari ‘ ||
TO_CHAR(BIL1) || ‘ dan ‘ || TO_CHAR(BIL2) ||
‘ adalah ‘ || TO_CHAR(BIL1));
ELSE
DBMS_OUTPUT.PUT_LINE (‘Bilangan terbesar dari ‘ ||
TO_CHAR(BIL1) || ‘ dan ‘ || TO_CHAR(BIL2) ||
‘ adalah ‘ || TO_CHAR(BIL2));
END IF;
END;
/
Contoh Ketiga:
DECLARE
BIL1 INTEGER := 24;
BIL2 INTEGER := 100;
STR VARCHAR(50);
BEGIN
STR := ‘Bilangan terbesar dari ‘ || TO_CHAR(BIL1) || ‘ dan ‘ ||
TO_CHAR(BIL2) || ‘ adalah ‘;
IF BIL1 > BIL2 THEN
DBMS_OUTPUT.PUT_LINE (STR || TO_CHAR(BIL1));
ELSE
DBMS_OUTPUT.PUT_LINE (STR || TO_CHAR(BIL2));
END IF;
END;
/
3. Struktur Tiga Kondisi atau Lebih
Contoh Pertama:
SET SERVEROUTPUT ON
DECLARE
X
INTEGER;
BEGIN
X
:=
-25;
IF X >0 THEN
DBMS_OUTPUT.PUT_LINE (TO_CHAR(X) || 'ADALAH BILANGAN
POSITIF');
ELSIF X = 0 THEN
DBMS_OUTPUT.PUT_LINE ('BILANGAN NOL');
ELSE
DBMS_OUTPUT.PUT_LINE (TO_CHAR(X) || 'ADALAH BILANGAN
NEGATIF');
END IF;
END;
/
Contoh Kedua:
SET SERVEROUTPUT ON
DECLARE
K
INTEGER
:= 2;
HARI VARCHAR2 (6);
BEGIN
IF K = 1 THEN
HARI := 'MINGGU';
ELSIF K = 2 THEN
HARI := 'SENIN';
ELSIF K = 3 THEN
HARI := 'SELASA';
ELSIF K = 4 THEN
HARI := 'RABU';
ELSIF K = 5 THEN
HARI := 'KAMIS';
ELSIF K = 6 THEN
HARI := 'JUMAT';
ELSE
HARI := 'SABTU';
END IF;
DBMS_OUTPUT.PUT_LINE ('Hari ke-' || TO_CHAR (K) ||
' Adalah ' || INITCAP (HARI));
END;
/
4. Struktur Case
DECLARE
nilai char(1) :='A';
BEGIN
case
when nilai='A' then dbms_output.put_line('Sempurna');
when nilai='B' then dbms_output.put_line('Sangat Baik');
when nilai='C' then dbms_output.put_line('Baik');
when nilai='D' then dbms_output.put_line('Cukup');
when nilai='E' then dbms_output.put_line('Coba Kuliah
Lagi..');
else dbms_output.put_line('Gagal');
end case;
end;
/
LATIHAN
1.
Buatlah sebuah blok PL/SQL yang dapat memberikan indeks/nomor urut bulan jika
yang dimasukkan adalah nama bulannya. Misalnya, kita masukkan nama bulan
MARET, yang akan dihasilkan dari blok PL/SQL tersebut adalah teks ‘Bulan Maret
adalah bulan ke-3’.
Jawab:
SET SERVEROUTPUT ON
DECLARE
K
INTEGER;
BULAN VARCHAR2 (8) := ‘MARET’;
BEGIN
IF BULAN = ‘JANUARI’ THEN
K := 1;
ELSIF BULAN = ‘FEBRUARI’ THEN
K := 2;
ELSIF BULAN = ‘MARET’ THEN
K := 3;
ELSIF BULAN = ‘APRIL’ THEN
K := 4;
ELSIF BULAN = ‘MEI’ THEN
K := 5;
ELSIF BULAN = ‘JUNI’ THEN
K := 6;
ELSIF BULAN = ‘JULI’ THEN
K := 7;
ELSIF BULAN = ‘AGUSTUS’ THEN
K := 8;
ELSIF BULAN = ‘SEMPTEMBER’ THEN
K := 9;
ELSIF BULAN = ‘OKTOBER’ THEN
K := 10;
ELSIF BULAN = ‘NOVEMBER’ THEN
K := 11;
ELSIF BULAN = ‘DESEMBER’ THEN
K := 12;
ELSE
K := 0;
END IF;
DBMS_OUTPUT.PUT_LINE ('Bulan' || INITCAP (BULAN)
' adalah bulan ke- ' || TO_CHAR (K));
||
END;
/
2.
Buatlah sebuah blok PL/SQL yang dapat menentukan nilai indeks (A, B, C, D atau E) dari
nilai ujian (masih berbentuk angka) yang dilakukan oleh mahasiswa di sebuah PTN. Ketentuan
adalah sebagai berikut:
Nilai Indeks Nilai Angka
A
Nilai >= 80
B
70 <= nilai < 60
C
55 <= nilai < 70
D
40 <= nilai < 55
E
Nilai < 40
Jawab:
SET SERVEROUTPUT ON
DECLARE
K
INTEGER
:= 70;
PREDIKAT VARCHAR2 (1);
BEGIN
IF K >= 80 THEN
PREDIKAT := 'A';
ELSIF K <= 70 AND K > 60 THEN
PREDIKAT := 'B';
ELSIF K <= 60 AND K >= 55 THEN
PREDIKAT := 'C';
ELSIF K < 55 AND K >= 40 THEN
PREDIKAT := 'D';
ELSIF K < 40 THEN
PREDIKAT := 'E';
ELSE
HARI := 'EMPTY';
END IF;
DBMS_OUTPUT.PUT_LINE ('Nilai indeks ' || INITCAP
(PREDIKAT));
END;
/
Download