Kondisi Pada PL/SQL :
- IF-THEN
Rangkaian perintah-perintah dieksekusi hanya jika kondisi adalah true.Bentuk Umum :
IF condition THEN
sequence_of_statements
END IF;
- IF-THEN-ELSE
Rangkaian perintah-perintah dalam klausa ELSE dieksekusi hanya jika kondisi bernilai false atau nullBentuk Umum :
IF condition THEN
sequence_of_statements1
ELSE
sequence_of_statements2
END IF;
- IF-THEN-ELSIF
Jika kondisi pertama bernilai false atau null, klause ELSIF akan menguji kondisi lainnya.Bentuk Umum :
IF condition1 THEN
sequence_of_statements1
ELSIF condition2 THEN
sequence_of_statements2
ELSE
sequence_of_statements3
END IF;
- CASE
Seperti halnya perintah IF, perintah CASE menyeleksi satu rangkaian perintah-perintah untuk dieksekusi.
Bentuk Umum :
[< >]CASE selector
WHEN expression1 THEN sequence_of_statements1;
WHEN expression2 THEN sequence_of_statements2;
...
WHEN expressionN THEN sequence_of_statementsN;
[ELSE sequence_of_statementsN+1;]
END CASE [label_name];
Contoh Kondisi pada PL/SQL :
//program membaca angka genap atau ganjil
set serveroutput on
set verify off
declare
bil integer :=&bil;
begin
if mod (bil,2) = 0 then
dbms_output.put_line (bil || 'adalah bilangan genap');
else
dbms_output.put_line (bil || 'adalah bilangan ganjil');
end if;
end;
/
bil bernilai integer, output yang akan dikeluarkan dbms adalah 'hasil bilangan genap atau ganjil' dan proses perhitungannya jika (bilangan mod 2) = 0
bil adalah nilai yang telah dimasukkan sehingga akan memproses 2 mod 2 = 0
2 MOD 2 = 0 berarti 2 adalah bilangan genap.
3 MOD 2 = 0 berarti 3 adalah bilangan ganjil.
LOOP
statement1;
...
EXIT [WHEN condition];
END LOOP;
FOR counter IN [REVERSE]
lower_bound..upper_bound LOOP
statement1;
statement2;
...
END LOOP;
WHILE condition
statement1;
statement2;
...
END LOOP;
Contoh Looping pada PL/SQL :
DECLARE
J INTEGER;
BEGIN
J:=0;
LOOP
J:=J+1;
DBMS_OUTPUT.PUT_LINE ('TestLooping');
EXIT WHEN J=10;
END LOOP;
END;
/
set serveroutput on
declare
x varchar2(20);
begin
x := tulis_teks;
dbms_output.put_line(x);
end;
/
Macam-Macam Looping pada PL/SQL :
- Basic Loops
Hampir sama logikanya dengan DO-WHILE pada Bahasa Prosedural yang lain, contohnya pada bahasa C.Bentuk Umum :
LOOP
statement1;
...
EXIT [WHEN condition];
END LOOP;
- For Loops
Logikanya sama dengan FOR pada Bahasa Prosedural yang lain, contohnya pada bahasa C.Bentuk Umum :
FOR counter IN [REVERSE]
lower_bound..upper_bound LOOP
statement1;
statement2;
...
END LOOP;
- While Loops
Kita menggunakan WHILE LOOPS ketika kita ingin mengecek terlebih dahulu kondisi yang ada, baru kemudian lakukan looping sampai syaratnya tidak terpenuhi.Bentuk Umum :
WHILE condition
statement1;
statement2;
...
END LOOP;
Contoh Looping pada PL/SQL :
DECLARE
J INTEGER;
BEGIN
J:=0;
LOOP
J:=J+1;
DBMS_OUTPUT.PUT_LINE ('TestLooping');
EXIT WHEN J=10;
END LOOP;
END;
/
Macam-Macam Array pada PL/SQL :
- Associative array
yaitu jenis array yang bersifat temporer, pencarian elemen menggunakan index key yang dapat berupa string maupun angka.
- Nested table
yaitu jenis array yang menggunakan angka terurut dalam pencarian elemennya, namun jumlah elemen tidak dideklarasikan.
- Varray
yaitu jenis array yang menggunakan angka terurut dalam pencarian elemennya dan mendeklarasikan jumlah elemennya.
Procedure,
yaitu sebuah blok PL/SQL yang dapat berdiri sendiri serta dikompilasi untuk selanjutnya masuk ke dalam skema database.
Contoh program sederhana menggunakan procedure :
set serveroutput on
create or replace procedure hitung_luas_segitiga AS
alas NUMBER(5);
tinggi NUMBER(5);
luas NUMBER(10);
begin
alas := 3;
tinggi := 6;
luas := (alas*tinggi)/2;
dbms_output.put_line ('Luas=' || luas);
end;
/
..................
execute hitung_luas_segitiga;
Function,
yaitu suatu blok PL/SQL yang memiliki konsep sama dengan procedure, hanya saja pada function terdapat pengembalian nilai (return value).
Contoh program sederhana menggunakan function :set serveroutput on
declare
x varchar2(20);
begin
x := tulis_teks;
dbms_output.put_line(x);
end;
/
0 komentar