PENGGUNAAN LOOP
Struktur penggunaan LOOP ini digunakan bila diinginkan minimal iterasi dijalankan satu kali. Dalam struktur ini harus ditambahkan statement EXIT WHEN untuk menghindari eksekusi tak terbatas (infinitif).
Struktur penggunaan LOOP :
LOOP
Statement-statement;
END LOOP
Statement FOR
Statement for tidak memiliki kondsi sehingga perlu didefenisikan indeks minimal dan maksimal sebagai batas iterasi. Umumnya struktur ini digunakan untuk iterasi yang banyaknya sudah diketahui dengan pasti.
Struktur penggunaan FOR :
FOR Var IN [REVERSE] indeks_min .. indeks_max LOOP
statement-statemen;
END LOOP;
Statement WHILE
Struktur ini selalu memeriksa kebenaran kondisi di awal blok iterasi. Bila kondisi bernilai FALSE, maka statemen-statemen dalam blok iterasi tidak akan dieksekusi.
Struktur penggunaan WHILE :
WHILE kondisi LOOP
statemen-statemen;
END LOOP;
Statemen EXIT dan EXIT WHEN
kedua statatemen ini digunakan untuk keluar dari blok iterasi tanpa melanjutkan proses yang sedang dilakukan.
Struktur penggunaan EXIT dan EXIT WHEN
EXIT WHEN kondisi;
atau
IF kondisi THEN
EXIT;
END IF;
CONTOH :
1. Perintah LOOP
Contoh :
Declare
i number(3);
BEGIN
FOR i IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE('Ini angka ' || i );
END LOOP;
END;
/
Outputnya :
2. Perintah FOR ….. LOOP
Contoh 1.
Tanpa inputan :
Declare
BEGIN
FOR i IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE('Ini angka ' || i );
END LOOP;
END;
Outputnya :
Contoh2.
Dengan menggunakan inputan :
Declare
X number(3);
BEGIN
X:=&berapa;
FOR i IN 1..x LOOP
DBMS_OUTPUT.PUT_LINE('Ini angka ' || i );
END LOOP;
END;
Outputnya :
Contoh 3.
Dengan menggunakan Inputan
Declare
x number(3);
BEGIN
X:=&berapa;
FOR i IN 1..x LOOP
if mod(i,2) = 1 then
DBMS_OUTPUT.PUT_LINE('Ini angka ' || i );
else
DBMS_OUTPUT.PUT_LINE('Ini angka ' || ‘i’ );
end if;
END LOOP;
END;
Outputnya :
Contoh 4. Dengan menggunakan Inputan :
Declare
x number(3);
BEGIN
x:=&berapa;
FOR i IN 1..x LOOP
if mod(x,2) = 1 then DBMS_OUTPUT.PUT_LINE('proses'); else
DBMS_OUTPUT.PUT_LINE('lewat' );
end if;
END LOOP;
END;
Outputnya :
Contoh 5. Dengan menggunakan Inputan :
Declare
X number(3);
BEGIN
X:=&berapa;
FOR i IN 1..x LOOP
if mod(i,2) = 1 then
for a in 1..i loop
DBMS_OUTPUT.PUT_LINE(a);
end loop;
else
DBMS_OUTPUT.PUT_LINE('lewat');
end if;
END LOOP;
END;
Outputnya :
Contoh 6. Dengan menggunakan Inputan :
Declare
b number(3);
BEGIN
b:=&berapa;
FOR i IN 1..b LOOP
if mod(i,2) = 1 then
for a in 1..i loop
DBMS_OUTPUT.PUT_LINE(a);
end loop;
end if;
END LOOP;
END;
Outputnya :
3 . Perintah WHILE .... LOOP
Contoh 1. Tanpa inputan :
DECLARE
i NUMBER(3);
hasil NUMBER(5);
BEGIN i:=1;
WHILE i <= 10 LOOP
hasil := i**3;
DBMS_OUTPUT.PUT_LINE(i ||' pangkat 3 = '|| hasil );
i := i + 1;
END LOOP;
END;
Outputnya :
Contoh 2. Tanpa inputan
DECLARE
hasil NUMBER(5);
i NUMBER (3);
BEGIN i:=1;
WHILE i <= 10 LOOP
hasil := i**3;
DBMS_OUTPUT.PUT_LINE(i ||' pangkat 3 = '|| hasil );
i := i + 1;
END LOOP;
END;
Outputnya :
Contoh 3. Tanpa inputan :
DECLARE
i NUMBER(3);
hasil NUMBER(5);
BEGIN
i:=10;
WHILE i <= 10 LOOP
hasil := i**3;
DBMS_OUTPUT.PUT_LINE(i ||' pangkat 3 = '|| hasil );
i := i + 1;
END LOOP;
END;
Outputnya :
Contoh 4. Tanpa inputan
DECLARE
i NUMBER(3);
hasil NUMBER(5);
BEGIN
i:=10;
WHILE i <= 10 LOOP
i := i + 1;
hasil := i**3;
DBMS_OUTPUT.PUT_LINE(i ||' pangkat 3 = '|| hasil );
END LOOP;
END;
Outputnya :
4. PERINTAH LOOP…..EXIT WHEN
Contoh 1.
Tanpa inputan :
DECLARE
total NUMBER(9);
counter NUMBER(6);
BEGIN
total := 0;
counter := 10;
LOOP
total := total + counter;
DBMS_OUTPUT.PUT_LINE(' Total: ' || total);
EXIT WHEN total > 50;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Counter: ' || counter);
END;
Outputnya :
Contoh 2.
Tanpa inputa :
DECLARE
total NUMBER(9);
counter NUMBER(6);
BEGIN
total := 0;
counter := 10;
LOOP
total := total + counter;
EXIT WHEN total > 50;
DBMS_OUTPUT.PUT_LINE(' Total: ' || total);
END LOOP;
DBMS_OUTPUT.PUT_LINE('Counter: ' || counter);
END;
Outputnya :
Thanks You....
Tolong Komentarnya yah.....