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; /