0% menganggap dokumen ini bermanfaat (0 suara)
66 tayangan12 halaman

Modul Pemrograman PL SQL (TM11) - PLSQL Part 2

Modul ini membahas tentang penggunaan kondisi dan perulangan pada PL/SQL meliputi pernyataan while loop, for loop, dan perintah exit dan goto. Contoh kode mendemonstrasikan penggunaan operator matematika dan relasional dalam mengevaluasi kondisi."

Diunggah oleh

Irfan Wahyudi
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
66 tayangan12 halaman

Modul Pemrograman PL SQL (TM11) - PLSQL Part 2

Modul ini membahas tentang penggunaan kondisi dan perulangan pada PL/SQL meliputi pernyataan while loop, for loop, dan perintah exit dan goto. Contoh kode mendemonstrasikan penggunaan operator matematika dan relasional dalam mengevaluasi kondisi."

Diunggah oleh

Irfan Wahyudi
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 12

MODUL PERKULIAHAN

Pemrograman
PL/SQL
PL / SQL – Part 2 (Kondisi)

Fakultas Program Studi TatapMuka Kode MK DisusunOleh

11
Ilmu Komputer Sistem Informasi F061700016 Dian Wirawan, S.Kom, M.Kom

Abstract Kompetensi
Membahas tentang PL/SQL pada Mahasiwa dapat mengetahui dasar dari
OracleExpress Edition. PL/SQL, membantu mahasiswa
memahami proses dari PL/SQL pada
Oracle Express Edition.
Lanjutan Kondisi Pada PL/SQL
Pernyataan While – Loop

Perintah WHILE-LOOP akan terus melakukan iterasi (memproses baris perintah secara
berulang) selama KONDISI bernilai TRUE. Bentuk umum dari pernyataan LOOP
sebagai berikut:

WHILE kondisiLOOP

//Barisperintah
END LOOP;

Contoh:
DECLARE
x number;
BEGIN
x := 0;
WHILE x <= 5 LOOP
x := x + 1;
dbms_output.put_line('Hasil looping ke- '||x);
END LOOP;
END;

Selain dapat digunakan pada perintah LOOP, perintah EXIT ini juga dapat digunakan
pada WHILE-LOOP untuk menambahkan kondisi tertentu. Namun perintah EXIT ini
hanya bias digunakan dalam loop saja.

Contoh:

DECLARE
vno number;
BEGIN
vno:=1;
WHILE vno<= 10 LOOP
insert into coba(no) values vno;
EXIT WHEN vno = 10;
vno:=vno+1;
END LOOP;
END;

Pernyataan For – Loop

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


2 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
Struktur pengulangan For digunakan untuk menghasilkan pengulangan sejumlah kali
tanpa penggunaan kondisi apapun. Stuktur ini menyebabkan aksi diulangi sejumlah
beberapa kali (tertentu). Bentuk umum struktur for ada dua macam yaitu : menaik
(ascending) atau menurun (descending). Sintaksnya sebagai berikut :

FOR counter IN [REVERSE] i_terendah ..i_teratasLOOP


Barisperintah
END LOOP;

Perintah FOR-LOOP melakukan iterasi selama nilai COUNTER berada dalam range
nilaii_terendah dan i_teratas. Pada FOR-LOOP, counter tidak perlu dideklarasikan.
Penggunaan kata kunci RESERVE akan menyebabkan nilai counter dimulai dari
i_teratas ke i_terendah. Dua titik antara i_terendah dan i_teratas merupakan operator
rentang nilai.i_terendah maupun i_terkecil bias berupa nilai integer atau pun variabel
yang bernilai integer yang sudah dideklarasikan sebelumnya. i_upper harus lebih besar
dari i_lower dan jika tidak maka iterasi tidak akan dilakukan.
Contoh:
BEGIN
FOR vno IN 1..10 LOOP
insert into coba(no) values vno;
dbms_output.put_line('Hasil looping ke- '||x);
END LOOP;
END;

BEGIN
FOR vno IN REVERSE 1..10 LOOP
insert into coba(no) values vno;
dbms_output.put_line('Hasil looping ke- '||x);
END LOOP;
END;

Hal ini juga berlaku untuk nested loop.


Contoh :
<<main>>
DECLARE
ctr INTEGER;
...
BEGIN
<<outer>>
FOR step IN 1..25 LOOP
FOR step IN 1..10 LOOP
...
IF outer.step> 15 THEN
...
END IF;
END LOOP;

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


3 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
END LOOP outer;
END main;

Selain dapat digunakan pada perintah LOOP, perintah EXIT ini juga dapat digunakan
pada FOR-LOOP untuk menambahkan kondisi tertentu. Namun perintah EXIT ini hanya
bias digunakan dalam loop saja.

Contoh:

BEGIN

FOR j IN 1..10 LOOP


FETCH c1 INTO mhs_rec;
EXIT WHEN c1%NOTFOUND;
...
END LOOP;
END;

BEGIN
<<outer>>
FOR i IN 1..5 LOOP
...
FOR j IN 1..10 LOOP
FETCH c1 INTO mhs_rec;
EXIT outer WHEN c1%NOTFOUND; -- exit both
FOR loops
...
END LOOP;
END LOOP outer;
-- control passes here
END;

Perintah GOTO
Perintah ini digunakan untuk mengarahkan proses kebaris yang ditandai dengan label
tertentu. Bentuk umum pemakaian perintah ini adalah:

GOTO nama_label;

Untukmemberikan label padasuatubaristertentu, gunakan format penamaan label


sepertiberikutini:

<<nama_label>>

Penggunaanperintah GOTO dalamjumlah yang banyakakanmenyebabkansuatublok PL/SQL


menjaditidakterstruktur. Karenaitusebaiknyapenggunaan GOTO inidihindari.

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


4 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
Contoh:

DECLARE

x number;
BEGIN
x := 0;
LOOP
x := x + 1;
IF x = 5 THEN
GOTO EndOfLoop;
END IF;
END LOOP;
<<EndOfLoop>>dbms_output.put_line('Hasil looping
: '||x);
END;

Contoh:
create or replace procedure coba

(v_nimmahasiswa.nim %type) is

cursor mhs_cur is
select nim, nama, alamat
from mahasiswa
where nim=v_nim;

mhs_recmhs_cur%rowtype;
begin
open mhs_cur;

<<iterasi>>
fetch mhs _cur into mhs _rec;

if mhs _cur%notfound then


gotolbl_end;
end if;

dbms_output.put_line(mhs _rec.nama_pegawai||' '||


mhs_rec.alamat||' '|| mhs_rec.gaji);

gotoiterasi;

Dengan adanya perintah “gotoiterasi”, proses berikutnya menuju baris “<<iterasi>>”


yang berada beberapa sebelum baris goto tersebut. Selanjutnya, perintah-perintah
yang mengikutinya akan diproses sesuai dengan urutannya (sekuensial). Sedangkan

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


5 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
perintah “<<lbl_end>>” menentukan proses berikutnya adalah baris “<<lbl_end>>” yang
berada setelah perintah goto tersebut.
Namun demikian, pada saat menggunakan perintah goto harus diperhatikan hal-
hal berikut:

 Perintah goto tidak boleh menuju label yang berada dalam perintah IF, LOOP,
blok lain dan blok yang menjadi sub bloknya.
 Sebuah label harus diikuti oleh paling tidak sebuah perintah eksekusi PL/SQL.
Kata atau reserved word seperti END, END IF dan END LOOP tidak termasuk
sebagai perintah eksekusi. Tetapi NULL termasuk perintah eksekusi.

Contoh Praktek.

a) Operator Matematika.

Dibawah ini adalah table operator matematika serta contoh PL/SQL nya.

Operator Description Example


+ Adds two operands A + B will give 15
- Subtracts second operand from the first A - B will give 5
* Multiplies both operands A * B will give 50
/ Divides numerator by de-numerator A / B will give 2
Exponentiation operator, raises one operand to the
** A ** B will give 100000
power of other

Sample

BEGIN
dbms_output.put_line(10+5);
dbms_output.put_line(10-5);
dbms_output.put_line(10*5);
dbms_output.put_line(10/5);
dbms_output.put_line(10**5);
END;
/

Result
15
5
50
2
100000

PL/SQL procedure successfully completed.

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


6 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
b) PL/SQL – Relational Operator

Operasi relational adalah operator yang membandingkan 2 ekspresi atau nilai yang
memiliki hasil benar atau salah atau yang disebut Boolean. Berikut adalah table
operator Relational.

Operator Description Example

Memberikan nilai True jika kedua nilai bernilai


= benar atau dan False jika salah satunya (A = B) is not true.
salah.
Memberikan nilai False jika value kiri lebih
> (A > B) is not true.
besar dari value kanan.
Memberikan nilai True jika value kiri lebih
< (A < B) is true.
kecil dari value kanan.
Memberikan nilai False jika value kiri lebih
>= (A >= B) is not true.
besar atau sama dengan dari value kanan.
Memberikan nilai True jika value kiri lebih
<= (A <= B) is true.
kecil atau sama dengan dari value kanan.

Contoh

DECLARE
a number (2) := 21;
b number (2) := 10;
BEGIN
IF (a = b) then
dbms_output.put_line('Line 1 - a is equal to b');
ELSE
dbms_output.put_line('Line 1 - a is not equal to b');
END IF;

IF (a < b) then
dbms_output.put_line('Line 2 - a is less than b');
ELSE
dbms_output.put_line('Line 2 - a is not less than b');
END IF;

IF ( a> b ) THEN
dbms_output.put_line('Line 3 - a is greater than b');
ELSE
dbms_output.put_line('Line 3 - a is not greater than b');

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


7 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
END IF;

-- Lets change value of a and b


a := 5;
b := 20;
IF ( a<= b ) THEN
dbms_output.put_line('Line 4 - a is either equal or less than b');
END IF;

IF ( b>= a ) THEN
dbms_output.put_line('Line 5 - b is either equal or greater than a');
END IF;

IF ( a<> b ) THEN
dbms_output.put_line('Line 6 - a is not equal to b');
ELSE
dbms_output.put_line('Line 6 - a is equal to b');
END IF;

END;
/

Hasil nya

c) PL/SQL – Comparison Operator

Operator perbandingan digunakan untuk membandingkan suatu ekspresi dengan


ekspresi lain. Hasil perbandingan tersebut selalu memiliki hasil TRUE, FALSE atau
NULL.

Operator Description

LIKE Operator Like mebandingkan tipe data karakter.

BETWEEN Operator Between digunakan untuk mengatur range value.

IN Operator IN digunakan untuk menggabungkan dari beberapa variable

Operator IsNull mengembalikan nilai Boolean. Memberikan nilai


IS NULL
TRUE jika result yang diberikan NULL dan FALSE jika tidak NULL.

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


8 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
LIKE Operator:
DECLARE
PROCEDURE compare (value varchar2, pattern varchar2 ) is
BEGIN
IF value LIKE pattern THEN
dbms_output.put_line ('True');
ELSE
dbms_output.put_line ('False');
END IF;
END;

BEGIN
compare('Zara Ali', 'Z%A_i');
compare('Nuha Ali', 'Z%A_i');
END;
/

Hasil

True
False

PL/SQL procedure successfully completed.

BETWEEN Operator:
Contoh

DECLARE
x number(2) := 10;
BEGIN
IF (x between 5 and 20) THEN
dbms_output.put_line('True');
ELSE
dbms_output.put_line('False');
END IF;

IF (x BETWEEN 5 AND 10) THEN


dbms_output.put_line('True');
ELSE
dbms_output.put_line('False');
END IF;

IF (x BETWEEN 11 AND 20) THEN


dbms_output.put_line('True');
ELSE
dbms_output.put_line('False');
END IF;
END;
/

Result

True
True
False

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


9 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
PL/SQL procedure successfully completed.

IN and IS NULL Operators:


The following program shows the usage of IN and IS NULL operators:

DECLARE
letter varchar2(1) := 'm';
BEGIN
IF (letter in ('a', 'b', 'c')) THEN
dbms_output.put_line('True');
ELSE
dbms_output.put_line('False');
END IF;

IF (letter in ('m', 'n', 'o')) THEN


dbms_output.put_line('True');
ELSE
dbms_output.put_line('False');
END IF;

IF (letter is null) THEN


dbms_output.put_line('True');
ELSE
dbms_output.put_line('False');
END IF;
END;
/

Hasilnya

False
True
False

PL/SQL procedure successfully completed.

PL/SQL – Condition

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


10 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
Contoh :
DECLARE
aboolean := true;
bboolean := false;
BEGIN
IF (a AND b) THEN
dbms_output.put_line('Line 1 - Condition is true');
END IF;
IF (a OR b) THEN
dbms_output.put_line('Line 2 - Condition is true');
END IF;
IF (NOT a) THEN
dbms_output.put_line('Line 3 - a is not true');
ELSE
dbms_output.put_line('Line 3 - a is true');
END IF;
IF (NOT b) THEN
dbms_output.put_line('Line 4 - b is not true');
ELSE
dbms_output.put_line('Line 4 - b is true');
END IF;
END;
/

Result

Line 2 - Condition is true


Line 3 - a is true
Line 4 - b is not true

PL/SQL procedure successfully completed.

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


11 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
DaftarPustaka
Oracle.com 2016. Oracle 10 g Express Edition Documentation.
http://www.oracle.com/pls/xe102/homepage.

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


12 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id

Anda mungkin juga menyukai