Ada 4 macam tipe kontrol statement pada Oracle PL/SQL, yaitu:
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 yakni sintak dasar dari IF THEN Statement:
IF condition THEN statement; END IF;
Contoh Program #1
Di bawah ini yakni teladan IF THEN Statement dalam kegiatan 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 yakni '||c); END; /
Output #1
Output dari kegiatan diatas akan menghasilkan output menyerupai dibawah ini:
Nilai C kurang dari 10 Nilai C yakni 5 PL/SQL procedure successfully completed.
Contoh Program #2
Pada teladan kegiatan #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 honor = honor + 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 yakni sintak dasar dari IF THEN ELSE Statement:
IF condition THEN statement; ELSE statement; END IF;
Contoh Program
Di bawah ini yakni teladan IFT THEN ELSE Statement dalam kegiatan 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 yakni '||c); END;
Output
Nilai C kurang dari 10 Nilai C yakni 5 PL/SQL procedure successfully completed.
IF THEN ELSIF Statement
Sintak DasarDi bawah ini yakni sintak dasar dari IF THEN ELSIF Statement
IF(ekspresi boolean 1)THEN Statement1; -- statement1 dijalankan apabila lisan boolean 1 bernilai true ELSIF(ekspresi boolean 2) THEN Statement2; -- statement2 dijalankan apabila lisan boolean 2 bernilai true ELSIF(ekspresi boolean 3) THEN Statement3; -- statement3 dijalankan apabila eskpresi boolean 3 bernilai true ELSE Statement4; -- statement4 akan dijalankan kalau tidak ada bernilai true END IF;
Contoh Program
Di bawah ini yakni teladan IF THEN ELSIF dalam kegiatan PL/SQL:
DECLARE a number(3) := 100; BEGIN IF ( a = 10 ) THEN dbms_output.put_line('Nilai a yakni 10' ); ELSIF ( a = 20 ) THEN dbms_output.put_line('Nilai a yakni 20' ); ELSIF ( a = 30 ) THEN dbms_output.put_line('Nilai a yakni 30' ); ELSE dbms_output.put_line('Tidak ada nilai yang sesuai'); END IF; dbms_output.put_line('Nilai a yakni : '|| a ); END; /
Output:
Program PL/SQL diatas akan mengeluarkan output di bawah ini:
Tidak ada nilai yang sesuai Nilai yakni : 100
Nested IF Stetement
Sintak DasarDi bawah ini yakni sintak dasar dari IF Bersarang (Nested IF Statement):
IF(ekspresi boolean 1)THEN -- statement akan dijalankan kalau lisan boolean 1 TRUE IF(ekspresi boolean 2) THEN -- statement akan dijalankan kalau lisan boolean 2 TRUE statement2; END IF; ELSE -- statement akan dijalankan kalau lisan boolean 1 FALSE else-statements; END IF;
Contoh Program
DECLARE a number(3) := 100; b number(3) := 200; BEGIN IF( a = 100 ) THEN -- kalau kondisi diatas bernilai true, maka akan dicek kondisi dibawah IF( b = 200 ) THEN -- kalau kondisi bernilai true, maka akan menampilkan output DBMS_OUTPUT.PUT_LINE('Nilai a yakni 100 dan b yakni 200' ); END IF; END IF; DBMS_OUTPUT.PUT_LINE('Nilai a yakni : ' || a ); DBMS_OUTPUT.PUT_LINE('Nilai b yakni : ' || b ); END; /
Output:
Nilai a yakni 100 dan b yakni 200 Nilai a yakni : 100 Nilai b yakni : 200 PL/SQL procedure successfully completed.
CASE Statement
Sintak DasarDi bawah ini yakni 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 menyerupai pada kedua teladan kegiatan di bawah ini:
Contoh Progam #1
Di bawah ini yakni teladan CASE Stetement dalam kegiatan 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.