Minggu, 24 Oktober 2010

TUTORIAL LOOP

^^ TUTORIAL LOOP ^^

Pengulangan (looping) adalah suatu blok yang memperbolehkan Anda untuk mengulang statemen-statemen dalam sebuah blok PL/SQL. Statemen-statemen yang terdapat dalam sebuah blok pengulangan akan terus dieksekusi selama kondisi yang didefinisikan bernilai benar dan pengulangan baru akan berhenti jika kondisi telah bernilai salah. Secara umum, proses pengulangan yang terjadi di dalam pemrograman dapat digambarkan seperti berikut.

1.1 Menggunakan Simple LOOP

Dalam struktur jenis ini, kita perlu untuk menggunakan statemen EXIT yang berfungsi untuk menghentikan pengulangan. Bagi Anda yang pernah mempelajari bahasa pemrograman lain, maka struktur pengulangan jenis ini identik dengan struktur repeat-until di dalam bahasa Pascal atau struktur do-while di dalam bahasa C/C++ dan Java. Berikut ini bentuk umum dari pembuatan struktur simple loop.

LOOP

Statemen

END LOOP;

Pada bagian ini perlu dideklarasikan sebuah variabel yang diisi dengan nilai sebagai kondisi awal pengulangan. Proses semacam ini dikenal dengan proses inisialisasi nilai. Selanjutnya dalam blok pengulangan perlu juga dideklarasikan kondisi untuk berhenti dari proses pengulangan. Untuk memahami konsep pengulangan jenis ini, tulis kode berikut.

declare

k integer; -- mendeklarasikan variabel k

begin

k := 1;

loop

dbms_output.put_line(‘Baris ke- ’||to_char(k));

k := k + 1; -- nilai k sekarang bertambah 1

exit when k > 5 – jika nilai k=6,

end loop;

end;

Syntak diatas akan menampilkan 5 baris teks yang diikuti dengan indeks dari baris tersebut.

Loop sederhana ini juga digunakan ketika satu set pernyataan yang akan dieksekusi minimal sekali sebelum loop berakhir. Kondisi EXIT harus ditetapkan dalam loop, sebaliknya loop masuk kedalam jumlah tak terbatas iterasi. Ketika kondisi EXIT adalah memenuhi proses keluar dari loop.

Perintah umum untuk menulis Loop ;

   LOOP  
               statements;  
               EXIT; 
    {Atau EXIT WHEN kondisi;
  } 
   END LOOP; 
Ini adalah langkah-langkah penting yang harus diikuti ketika menggunakan Loop :
a.       Menginisialisasinya suatu variabel sebelum tubuh loop,
b.      Kenaikan variabel pada loop,
c.       Gunakan EXIT pernyataan untuk keluar dari loop.
 
1.2  Menggunakan Statemen FOR
Pada struktur jenis ini tidak terdapat adanya kondisi sehingga kita perlu untuk mendefinisikan indeks minimal dan maksimal sebagai batas-batas dari proses pengulangan yang akan dilakukan. Maka dari itu, struktur ini pada umumnya digunakan untuk melakukan pengulangan yang banyaknya sudah diketahui dengan pasti. Berikut ini bentuk umum untuk mendefinisikan.
FOR variabel IN indeks_awal .. indeks_akhir LOOP
         statemen
         ….
END LOOP;
Syntaknya sebagai berikut :
declare
         k  integer;
begin
for k in 1..5 loop
         dbms_output.put_line(‘Baris ke- ’||to_char(k));
end loop;
end;
 
Sebagai contoh lain, di sini kita akan kembali menampilkan semua nama customer yang terdapat pada table customer. Namun, kali ini kita akan menggunakan pengulangan dengan menggunakan struktur FOR. Berikut ini kode yang dimaksud.
declare
         cursor cur is
select nama_customer from customer;
order by nama_customer;
vRec cur%ROWTYPE;
i integer;
n integer;
begin
         select count(*) into n
         from customer;
open cur;
for i in 1..n loop
         fetch cur into vRec;
         dbms_output.put_line(vRec.nama_customer);
end loop;
close cur;
end;
/
Hasil yang akan diberikan oleh kode tersebut akan sama pada saat kita melakukan pengulangan dengan menggunakan struktur simple loop, yaitu seperti yang tampak pada gambar berikut.
TOKO AYU
TOKO KARISNA

TOKO MAHARANI

TOKO MULYA

TOKO SURYA

TOKO WARNA
Procedure successfully completed
 
Keterangan ;
-          select count(*) into n
from customer;
Kode tersebut berguna untuk mengambil banyaknya record yang terdapat pada table customer  dan menyimpannya ke dalam variabel n.
-          for I in 1..n loop
   fetch cur into vRec;
   dbms_output.put_line( vRec.nama_customer);
end loop;
Sedangkan kode di atas berarti melakukan pengulangan mulai dari indeks pertama sampai ke n, yaitu untuk menampilkan semua nama yang telah terkandung dalam cursor cur.
1.3  Menggunakan Struktur WHILE
Struktur jenis ini selalu memeriksa kebenaran kondisinya di bagian awal blok atau badan pengulangan. Dengan demikian apabila kondisi salah, maka statemen yang terdapat di dalam blok tidak akan pernah dieksekusi. Pengulangan jenis ini sebenarnya hamper mirip dengan struktur simple loop. Berikut ini bentuk umum dari struktur WHILE.
WHILE kondisi LOOP
           statemen
              …..
END LOOP;
Untuk mengetahui perbedaan yang ada dengan kedua struktur pengulangan sebelumnya, kita akan menuliskan kembali contoh yang sama seperti di atas, namun di sini kita akan menggunakan struktur WHILE. Adapun kode pembuatannya adalah sebagai berikut.
declare
           k integer;
begin
           k :=1;
           while k<=5 loop
dbms_output.put_line(‘Baris ke- ’||to_char(k));
           k:=k+1;
end loop;
end;
Hasil yang akan diberikan dari kode di atas adalah seperti yang tampak pada gambar di bawah ini.
Baris ke-1
Baris ke-2
Baris ke-3
Baris ke-4
Baris ke-5
Keterangan :
Pada kode di atas mula-mula didefinisikan nilai k dengan 1. Setelah itu dilakukan pengecekan apakah nilai k tersebut lebih kecil atau sama dengan 5? Oleh karena 1 lebiih kecil dari 5, berarti kondisi bernilai benar sehingga akan ditampilkan teks ‘Baris ke-’. Selanjutnya nilai k ditambah 1 dan dilakukan kembali pengecekan. Selama nilai k masih lebih kecil atau sama dengan 5 maka statemen yang ada pada blok pengulangan akan tetap dieksekusi. Pengulangan di atas baru berhenti jika variabel k sudah mencapai nilai 6.
 
 

0 komentar:

Posting Komentar