1. IF THEN Statement
2. IF THEN ELSE Statement
3. IF THEN ELSIF Statement
4. Nested IF Statement (IF Bersarang)
5. CASE Statement
Kelima kontrol statement diatas akan kita bahas lebih detail di tutorial ini.
IF THEN Statement
Sintak DasarDibawah ini adalah sintak dasar dari IF THEN Statement:
IF condition THEN statement; END IF;
Contoh Program #1
Di bawah ini adalah contoh IF THEN Statement dalam program PL/SQL:
DECLARE
c NUMBER(2) := 5;
BEGIN
IF (c < 10) THEN
DBMS_OUTPUT.PUT_LINE('Nilai C kurang dari 10');
END IF;
DBMS_OUTPUT.PUT_LINE('Nilai C adalah '||c);
END;
/
Output #1
Output dari program diatas akan menghasilkan output seperti dibawah ini:
Nilai C kurang dari 10 Nilai C adalah 5 PL/SQL procedure successfully completed.
Contoh Program #2
Pada contoh program #2, Kita akan menerapkan IF THEN Statement dengan kombinasi query SQL.
DECLARE
id_pegawai pegawai.id%type := 1;
gaji_pegawai pegawai.gaji%type;
BEGIN
SELECT gai
INTO gaji_pegawai
FROM pegawai
WHERE id = id_pegawai;
IF (gaji_pegawai <= 1000000) THEN
UPDATE pegawai
SET gaji = gaji + 100000
WHERE id = id_pegawai;
dbms_output.put_line ('Gaji pegawai berhasil di update');
END IF;
END;
/
Output #2
Gaji pegawai berhasil di update PL/SQL procedure successfully completed.
IF THEN ELSE Statement
Sintak DasarDi bawah ini adalah sintak dasar dari IF THEN ELSE Statement:
IF condition THEN statement; ELSE statement; END IF;
Contoh Program
Di bawah ini adalah contoh IFT THEN ELSE Statement dalam program PL/SQL
DECLARE
c NUMBER(2) := 5;
BEGIN
IF (c < 10) THEN
DBMS_OUTPUT.PUT_LINE('Nilai C kurang dari 10');
ELSE
DBMS_OUTPUT.PUT_LINE('Nilai C lebih dari 10');
END IF;
DBMS_OUTPUT.PUT_LINE('Nilai C adalah '||c);
END;
Output
Nilai C kurang dari 10 Nilai C adalah 5 PL/SQL procedure successfully completed.
IF THEN ELSIF Statement
Sintak DasarDi bawah ini adalah sintak dasar dari IF THEN ELSIF Statement
IF(ekspresi boolean 1)THEN Statement1; -- statement1 dijalankan apabila ekspresi boolean 1 bernilai true ELSIF(ekspresi boolean 2) THEN Statement2; -- statement2 dijalankan apabila ekspresi boolean 2 bernilai true ELSIF(ekspresi boolean 3) THEN Statement3; -- statement3 dijalankan apabila eskpresi boolean 3 bernilai true ELSE Statement4; -- statement4 akan dijalankan jika tidak ada bernilai true END IF;
Contoh Program
Di bawah ini adalah contoh IF THEN ELSIF dalam program PL/SQL:
DECLARE
a number(3) := 100;
BEGIN
IF ( a = 10 ) THEN
dbms_output.put_line('Nilai a adalah 10' );
ELSIF ( a = 20 ) THEN
dbms_output.put_line('Nilai a adalah 20' );
ELSIF ( a = 30 ) THEN
dbms_output.put_line('Nilai a adalah 30' );
ELSE
dbms_output.put_line('Tidak ada nilai yang sesuai');
END IF;
dbms_output.put_line('Nilai a adalah : '|| a );
END;
/
Output:
Program PL/SQL diatas akan mengeluarkan output di bawah ini:
Tidak ada nilai yang sesuai Nilai adalah : 100
Nested IF Stetement
Sintak DasarDi bawah ini adalah sintak dasar dari IF Bersarang (Nested IF Statement):
IF(ekspresi boolean 1)THEN -- statement akan dijalankan jika ekspresi boolean 1 TRUE IF(ekspresi boolean 2) THEN -- statement akan dijalankan jika ekspresi boolean 2 TRUE statement2; END IF; ELSE -- statement akan dijalankan jika ekspresi boolean 1 FALSE else-statements; END IF;
Contoh Program
DECLARE
a number(3) := 100;
b number(3) := 200;
BEGIN
IF( a = 100 ) THEN
-- jika kondisi diatas bernilai true, maka akan dicek kondisi dibawah
IF( b = 200 ) THEN
-- jika kondisi bernilai true, maka akan menampilkan output
DBMS_OUTPUT.PUT_LINE('Nilai a adalah 100 dan b adalah 200' );
END IF;
END IF;
DBMS_OUTPUT.PUT_LINE('Nilai a adalah : ' || a );
DBMS_OUTPUT.PUT_LINE('Nilai b adalah : ' || b );
END;
/
Output:
Nilai a adalah 100 dan b adalah 200 Nilai a adalah : 100 Nilai b adalah : 200 PL/SQL procedure successfully completed.
CASE Statement
Sintak DasarDi bawah ini adalah sintak dasar dari CASE Statement
CASE selector WHEN 'value1' THEN Statement1; WHEN 'value2' THEN Statement2; WHEN 'value3' THEN Statement3; ... ELSE Statement; -- default case END CASE;
Ada 2 bentuk CASE Statement seperti pada kedua contoh program di bawah ini:
Contoh Progam #1
Di bawah ini adalah contoh CASE Stetement dalam program PL/SQL:
DECLARE
nilai CHAR(1) := 'A';
BEGIN
CASE nilai
WHEN 'A' THEN DBMS_OUTPUT.PUT_LINE('Sempurna');
WHEN 'B' THEN DBMS_OUTPUT.PUT_LINE('Sangat Baik');
WHEN 'C' THEN DBMS_OUTPUT.PUT_LINE('Baik');
WHEN 'D' THEN DBMS_OUTPUT.PUT_LINE('Cukup');
WHEN 'F' THEN DBMS_OUTPUT.PUT_LINE('Coba Kuliah lagi..');
ELSE DBMS_OUTPUT.PUT_LINE('Gagal');
END CASE;
END;
/
Output #1:Sempurna PL/SQL procedure successfully completed.
Contoh Program #2
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 = 'F' THEN DBMS_OUTPUT.PUT_LINE('Coba Kuliah lagi..');
ELSE DBMS_OUTPUT.PUT_LINE('Gagal');
END CASE;
END;
/
Output
Sempurna PL/SQL procedure successfully completed.
0 comments:
Post a Comment