Kali ini saya akan membahas mengenai kondisi dan perulangan dalam PL/SQL, untuk lebih lanjutnya perhatikan ulasan materi kondisi dan perulangan di bawah ini yang telah saya rangkum dari berbagai sumber. Semoga bermanfaat ^_^
Soal
1. Sebutkan dan jelaskan macam-macam kondisi dan perulangan
pada PL/SQL!!
Jawab:
Kondisi
Umumnya kondisi pada PL/SQL adalah struktur yang terdiri dari
perintah-perintah IF dan CASE. Terdapat tiga bentuk perintah-perintah IF, yaitu:
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;
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;
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. 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;
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.
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];
[<>]
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
Sekumpulan perintah untuk melakukan perulangan dari suatu
blok statement yang terdapat di dalam blok statement loop. Berikut ini
merupakan macam-macam bentuk perulangan:
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;
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;
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 dijalankanTanda titik dua (..) bertindak sebagai operator jangkauan.
Bentuk umum :
FOR counter IN [REVERSE] lower_bound..higher_bound LOOP
sequence_of_statements
END LOOP;
FOR counter IN [REVERSE] lower_bound..higher_bound LOOP
sequence_of_statements
END LOOP;
2. Berikan satu contoh kondisi dan perulangan!!
Jawab:
Contoh program kondisi:
// program membaca angka genap atau ganjil
set serveroutput on
set verify off
declare
bil number(10);
begin
bil := &bil;
if mod (bil, 2) = 0 then
dbms_output.put_line (bil||' adalah bilangan genap');
else
dbms_output.put_line (bil||' adalah bilangan ganjil');
end if;
end;
/
Contoh program perulangan:
set serveroutput on
DECLARE
J INTEGER;
BEGIN
J := 0;
LOOP
J := J+1;
DBMS_OUTPUT.PUT_LINE('Test Looping');
EXIT WHEN J = 10;
END LOOP;
END;
/
Tidak ada komentar :
Posting Komentar