Kondisi & Perulangan pada PL/SQL

12 Apr

Kondisi Pada PL/SQL umumnya sama dengan bahasa pemrograman lain seperti pascal & bahasa C.

* Kondisi pada PL/SQL

Umumnya kondisi pada PLSQL adalah struktur yang terdiri dari perintah-perintah IF dan CASE. Terdapat tiga bentuk perintah-perintah IF: IF-THEN, IF-THEN-ELSE, dan IF-THEN-ELSIF.

a. Perintah IF-THEN

Rangkaian perintah-perintah dieksekusi hanya jika kondisi adalah true. Jika kondisi bernilai false atau null, perintah IF tidak melakukan apa-apa. Dalam salah satu kasus, kontrol berlalu kepada perintah selanjutnya.

Bentuk umum :
IF condition THEN
sequence_of_statements
END IF;

b. Perintah IF-THEN-ELSE

Rangkaian perintah-perintah dalam klausa ELSE dieksekusi hanya jika kondisi bernilai false atau null. Jadi, klausa ELSE memastikan bahwa rangkaian perintah-perintah tersebut dieksekusi.

Bentuk umum :
IF condition THEN
sequence_of_statements1
ELSE
sequence_of_statements2
END IF;

c. Perintah IF-THEN-ELSIF

Jika kondisi pertama bernilai false atau null, klausa ELSIF akan menguji kondisi lainnya. Perintah IF dapat memiliki sejumlah klausa ELSIF; klausa final ELSE bersifat opsional (bisa digunakan atau tidak). Kondisi-kondisi dievaluasi satu demi satu dari atas ke bawah. Jika suatu kondisi bernilai true, rangkaian perintah-perintah yang ada di dalamnya dieksekusi dan kontrol akan menuju ke perintah selanjutnya. Jika seluruh kondisi bernilai false atau null, maka rangkaian perintah-perintah di dalam klausa ELSE yang akan dieksekusi.

Bentuk umum :
IF condition1 THEN
sequence_of_statements1
ELSIF condition2 THEN
sequence_of_statements2
ELSE
sequence_of_statements3
END IF;

d. Perintah CASE

Seperti halnya perintah IF, perintah CASE menyeleksi satu rangkaian perintah-perintah untuk dieksekusi. Namun, untuk menyeleksi rangkain perintah-perintah tersebut, perintah CASE menggunakan penyeleksi, bukannya menggunakan banyak ekspresi-ekspresi Boolean.

  1. 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];

* Perulangan pada PL/SQL

Sekumpulan perintah untuk melakukan perulangan dari suatu blok statement yang terdapat di dalam blok statement loop. Bentuk paling sederhana dari perintah LOOP adalah loop dasar (tak berhingga), yang mengapit rangkaian perintah-perintah diantara kata-kata kunci LOOP dan END LOOP, seperti berikut ini:

a. LOOP

Dengan setiap perulangan dari setiap putaran, rangkaian perintah-perintah dieksekusi, lalu kontrol mulai lagi menuju ke awal putaran.

Bentuk umum :
LOOP
sequence_of_statements

END LOOP;

b. WHILE-LOOP

Sebelum setiap perulangan dari loop, kondisi dievaluasi. Jika kondisi true, rangkaian perintah-perintah dieksekusi, kemudian kontrol kembali ke awal loop. Jika kondisi false atau null, loop diabaikan dan kontrol menuju ke perintah selanjutnya.

Bentuk umum :
WHILE condition LOOP
sequence_of_statements
END LOOP;

c. FOR-LOOP

Jumlah perulangan melalui loop WHILE tidak diketahui sampai loop berakhir, namun jumlah perulangan melalui loop FOR telah diketahui sebelum loop dijalankan. Loop-loop FOR berulang sejumlah jangkauan integer tertentu. Jangkauan ini adalah bagian dari iteration scheme, yang diapit oleh kata-kata kunci FOR dan LOOP. Tanda titik dua (..) bertindak sebagai operator jangkauan. Sintaksnya adalah sebagai berikut:

  1. Bentuk umum :
    FOR counter IN [REVERSE] lower_bound..higher_bound LOOP
    sequence_of_statements
    END LOOP;
    Jangkauan dievaluasi ketika loop FOR pertama kali dijalankan dan tidak pernah dievaluasi ulang.

CONTOH PERULANGAN :

DECLARE
TYPE DateList IS TABLE OF DATE INDEX BY BINARY_INTEGER;
dates DateList;
k CONSTANT INTEGER := 5;
BEGIN
FOR j IN 1..3 LOOP
dates(j*k) := SYSDATE;
END LOOP;
END;

 

1. Contoh perintah perulangan :
DECLARE
TYPE DateList IS TABLE OF DATE INDEX BY BINARY_INTEGER;
dates DateList;
k CONSTANT INTEGER := 5;
BEGIN
FOR j IN 1..3 LOOP
dates(j*k) := SYSDATE;
END LOOP;
END;

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: