Pages

Saturday, October 23, 2010

PROSEDURAL PENGULANGAN LOOP

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.....