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