Senin, 16 April 2012
Pengulangan dalam PL/SQL
Didalam Oracle ada 3 struktur pengulangan, yaitu :
1. Simple Loop
2. While-Loop
3. For-Loop.
Struktur Pengulangan
1. Simple Loop
Sintaks umum penulisan simple Loop adalah:
LOOP
statemen_1,
…
EXIT WHEN kondisi_1;
END LOOP;
2. While Loop
Sintaks umum penulisan While Loop adalah:
WHILE kodisi_1 LOOP
statemen_1,
...
END LOOP
3. For Loop
Sintaks umum penulisan For Loop adalah:
FOR kodisi_1 LOOP
statemen_1,
...
END LOOP
Contoh Pengulangan
Contoh 1:
Mencetak kalimat 'Sukses dgn Oracle' Sebanyak 10 kali.
= Struktur Simple LOOP =
SET SERVEROUTPUT ON
DECLARE
i integer;
BEGIN
i:=0;
LOOP
i:=i+1;
DBMS_OUTPUT.PUT_LINE('Sukses dgn Oracle');
EXIT WHEN i=10;
END LOOP;
END;
/
= Struktur While LOOP =
SET SERVEROUTPUT ON
DECLARE
i integer;
BEGIN
i:=0;
WHILE (i<=10) LOOP
DBMS_OUTPUT.PUT_LINE('Sukses dgn Oracle');
i:=i+1;
END LOOP;
END;
/
= Struktur FOR LOOP =
SET SERVEROUTPUT ON
DECLARE
i integer;
BEGIN
FOR i IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE('Sukses dgn Oracle');
END LOOP;
END;
/
Perhatikan script-script diatas,
● SERVEROUTPUT : variable system
● DBMS_OUTPUT : package
● PUT_LINE : : procedure
Contoh 2:
Melakukan penjumlahan deret angka (2+4+… +(n+2))
= Struktur Simple LOOP =
SET SERVEROUTPUT ON
DECLARE
jumlah integer;
K integer;
BEGIN
jumlah:=0;
K:=2;
LOOP
JUMLAH:=jumlah+K;
K:=K+2;
EXIT WHEN K>18;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Jumlah 2+4+6..18 adalah :'||JUMLAH);
END;
/
= Struktur While LOOP =
SET SERVEROUTPUT ON
DECLARE
jumlah integer;
K integer;
BEGIN
jumlah:=0;
K:=2;
WHILE (K<=18) LOOP
jumlah:=jumlah+K;
k:=k+2;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Jumlah 2+4+6..18 adalah :'||JUMLAH);
END;
/
= Struktur FOR LOOP =
SET SERVEROUTPUT ON
DECLARE
i integer;
jumlah integer;
K integer;
BEGIN
jumlah:=0;
K:=2;
FOR i IN 1..(18/2) LOOP
jumlah:=jumlah+K;
k:=k+2;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Jumlah 2+4+6..18 adalah :' ||JUMLAH);
END;
/
Contoh 3:
Melakukan penjumlahan deret bilangan ganjil 1+3+5..+11
= Struktur Simple LOOP =
SET SERVEROUTPUT ON
DECLARE
Jumlah integer;
K integer;
BEGIN
jumlah:=0;
K:=1;
LOOP
JUMLAH:=jumlah+K;
K:=K+2;
EXIT WHEN K>11;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Jumlah 1+3+5+7+9+..25 adalah :'||JUMLAH);
END;
/
= Struktur While LOOP =
SET SERVEROUTPUT ON
DECLARE
Jumlah integer;
K integer;
BEGIN
jumlah:=0;
K:=1;
WHILE (K<=11) LOOP
jumlah:=jumlah+K;
k:=k+2;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Jumlah 1+3+5+7+9+..25 adalah :'||JUMLAH);
END;
/
= Struktur For LOOP =
SET SERVEROUTPUT ON
DECLARE
I integer;
jumlah integer;
K integer;
BEGIN
jumlah:=0;
K:=1;
FOR i IN 1..6 LOOP
jumlah:=jumlah+K;
k:=k+2;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Jumlah 1+3+5+7+9+..25 adalah:'||JUMLAH);
END;
/
Contoh 4:
Menjumlahkan sejumlah deret ukur 2+4+16+256
= Struktur Simple LOOP =
SET SERVEROUTPUT ON
DECLARE
jumlah integer;
K integer;
BEGIN
jumlah:=0;
K:=2;
LOOP
JUMLAH:=jumlah+K;
K:=K*k;
EXIT WHEN K>256;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Jumlah 2+4+16+256 adalah :' ||JUMLAH);
END;
/
= Struktur While LOOP =
SET SERVEROUTPUT ON
DECLARE
jumlah integer;
K integer;
BEGIN
jumlah:=0;
K:=2;
WHILE (K<=256) LOOP
JUMLAH:=jumlah+K;
K:=K*k;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Jumlah 2+4+16+256 adalah :' ||JUMLAH);
END;
/
= Struktur FOR LOOP =
SET SERVEROUTPUT ON
DECLARE
I integer;
Jumlah integer;
K integer;
BEGIN
jumlah:=0;
K:=2;
FOR i IN 1..4 LOOP
JUMLAH:=jumlah+K;
K:=K*k;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Jumlah 2+4+16+256 adalah :'||JUMLAH);
END;
/
i:=10;
FOR i IN REVERSE 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(TO_CHAR(i));
End loop;
END;
/
Langganan:
Posting Komentar (Atom)
wuiiihhh mantaapppp,..
BalasHapusTsadis Tsan..
BalasHapus