Pemrograman
PL/SQL
Percabangan
04
Abstract Kompetensi
Memahami dan mengerti Mahasiswa mampu memahami
mengenai Percabangan yang tidak dan mengerti mengenai
lain adalah sebuah pemilihan. Percabangan.
PENDAHULUAN
Percabangan adalah sebuah pemilihan yang didasarkan atas kondisi tertentu. Sebuah atau
beberapa statemen yang terdapat pada badan percabangan hanya akan dieksekusi jika kondisi
yang didefinisikan bernilai TRUE. Sebaliknya jika kondisi tersebut bernilai FALSE, badan
percabangan tidak akan pernah dieksekusi karena semua kondisi yang terdapat pada badan
percabangan selalu diperiksa pada saat awal. Oracle sebuah badan percabangan secara umum
dibedakan menjadi 3 struktur, yaitu :
IF kondisi THEN
Statemen_1;
END IF;
Contoh 1 :
Buatlah sebuah blok PL/SQL yang dapat menentukan sebuah bilangan bulat apakah termasuk ke
dalam bilangan genap atau tidak. Jika ya, tampilkanlah bilangan tersebut dan diikuti dengan teks
ADALAH BILANGAN GENAP.
Jawaban :
SQL> DECLARE
3 BEGIN
2018 Pemrograman Basis Data & SQL Pusat Bahan Ajar dan eLearning
2 Sabar Rudiarto, M.Kom http://www.mercubuana.ac.id
4 IF MOD(BIL, 2) = 0 THEN
5 DBMS_OUTPUT.PUT_LINE (TO_CHAR(BIL) ||
7 END IF;
8 END;
9 /
Pada sintak diatas terdapat adanya function MOD yang mengembalikan nilai sisa bagi dari proses
pembagian bilangan BIL bagi 2. Jika sisa baginya sama dengan 0, artinya BIL habis dibagi 2 yang
berarti pula bahwa bilangan tersebut merupakan bilangan genap. Karena 80 habis dibagi 2,
statemen-statemen yang terdapat pada badan percabangan akan dieksekusi.
Sebaliknya jika bilangan 80 diganti dengan 39 yang mempunyai sisa 1 jika dibagi 2, maka
program tidak dapat memasuki badan percabangan dan statemen-statemen yang ada sudah
tentu tidak akan dieksekusi.
Contoh 2 :
SQL> DECLARE
3 BEGIN
5 DBMS_OUTPUT.PUT_LINE (TO_CHAR(BIL) ||
2018 Pemrograman Basis Data & SQL Pusat Bahan Ajar dan eLearning
3 Sabar Rudiarto, M.Kom http://www.mercubuana.ac.id
7 END IF;
8 END;
9 /
Contoh 3 :
Buatlah sebuah blok PL/SQL yang dapat menentukan suatu bilangan bulat apakah termasuk ke
dalam bilangan positip atau bukan.
SQL> DECLARE
3 BEGIN
5 DBMS_OUTPUT.PUT_LINE (TO_CHAR(BIL) ||
7 END IF;
8 END;
9 /
2018 Pemrograman Basis Data & SQL Pusat Bahan Ajar dan eLearning
4 Sabar Rudiarto, M.Kom http://www.mercubuana.ac.id
IF kondisi THEN
Statemen_1;
ELSE
Statemen_2;
…
Sintak diatas berarti bahwa program akan mengeksekusi Statemen_1 jika kondisi terpenuhi,
END
tetapi jika tidak IF;
terpenuhi maka yang akan dieksekusi adalah statemen_2.
Contoh 1 :
Buatlah sebuah blok PL/SQL yang dapat menentukan bilangan bulat apakah termasuk bilangan
genap atau bilangan ganjil. Kemudian tampilkan bilangan tersebut dengan diikuti teks ADALAH
BILANGAN GENAP (jika bilangan tersebut habis dibagi 2) dan jika (tidak habis dibagi 2 ) maka teks
yang ditampilkan ADALAH BILANGAN GANJIL.
Jawab :
SQL> DECLARE
2 BIL INTEGER := 3;
3 BEGIN
5 DBMS_OUTPUT.PUT_LINE (TO_CHAR(BIL)||
7 ELSE
8 DBMS_OUTPUT.PUT_LINE (TO_CHAR(BIL)||
2018 Pemrograman Basis Data & SQL Pusat Bahan Ajar dan eLearning
5 Sabar Rudiarto, M.Kom http://www.mercubuana.ac.id
9 'ADALAH BILANGAN GANJIL');
10 END IF;
11 END;
12 /
Contoh 2 :
Buatlah sebuah blok PL/SQL yang dapat menentukan bilangan terbesar dari dua buah bilangan
bulat.
Jawab :
DECLARE
BIL1 INTEGER;
BIL2 INTEGER;
BEGIN
BIL1 := 24;
BIL2:= 100;
‘ adalah ‘ || TO_CHAR(BIL1));
ELSE
2018 Pemrograman Basis Data & SQL Pusat Bahan Ajar dan eLearning
6 Sabar Rudiarto, M.Kom http://www.mercubuana.ac.id
TO_CHAR(BIL1) || ‘ dan ‘ || TO_CHAR(BIL2) ||
‘ adalah ‘ || TO_CHAR(BIL2));
END IF;
END;
Meskipun memberikan hasil yang benar, namun jika dilihat dari segi algoritmik, sintak di atas
masih belum efisien karena masih terdapat adanya pengulangan penulisan pada setiap kondisi
yang didefinisikan. Coba disederhanakan....
DECLARE
STR VARCHAR(50);
BEGIN
ELSE
END IF;
END;
2018 Pemrograman Basis Data & SQL Pusat Bahan Ajar dan eLearning
7 Sabar Rudiarto, M.Kom http://www.mercubuana.ac.id
3. Struktur Tiga Kondisi atau Lebih
Sintak umum untuk pembuatan badan percabangan yang mempunyai tiga kondisi atau lebih
dapat anda lihat seperti berikut :
IF kondisi_1 THEN
Statemen_1;
Statemen_2;
ELSE
Statemen_3;
Contoh 1 :
SQL> DECLARE
2 X INTEGER;
3 BEGIN
4 X := -25;
5 IF X >0 THEN
2018 Pemrograman Basis Data & SQL Pusat Bahan Ajar dan eLearning
8 Sabar Rudiarto, M.Kom http://www.mercubuana.ac.id
7 ELSIF X = 0 THEN
9 ELSE
11 END IF;
12 END;
13 /
Pada sintak diatas, nilai X yang didefinisikan adalah -25. Mula-mula akan diperiksa kondisi X > 0.
Karena -25 tidak lebih besar dari 0, maka dilakukan pengecekan terhadap kondisi berikutnya
yaitu X = o. Oleh karena -25 juga tidak sama dengan 0, statemen yang dieksekusi adalah
statemen yang ‘tidak’ didasarkan atas dua kondisi tersebut.
Contoh 2 :
Buatlah sebuah blok PL/SQL untuk menentukan nama hari dari nomor/indeks hari yang
diberikan.
Jawab :
SQL> DECLARE
2 K INTEGER := 2;
4 BEGIN
2018 Pemrograman Basis Data & SQL Pusat Bahan Ajar dan eLearning
9 Sabar Rudiarto, M.Kom http://www.mercubuana.ac.id
5 IF K = 1 THEN
6 HARI := 'MINGGU';
7 ELSIF K = 2 THEN
8 HARI := 'SENIN';
9 ELSIF K = 3 THEN
10 HARI := 'SELASA';
11 ELSIF K = 4 THEN
12 HARI := 'RABU';
13 ELSIF K = 5 THEN
14 HARI := 'KAMIS';
15 ELSIF K = 6 THEN
16 HARI := 'JUMAT';
17 ELSE
18 HARI := 'SABTU';
19 END IF;
22 END;
23 /
2018 Pemrograman Basis Data & SQL Pusat Bahan Ajar dan eLearning
10 Sabar Rudiarto, M.Kom http://www.mercubuana.ac.id
LATIHAN :
1. Buatlah sebuah blok PL/SQL yang dapat memberikan indeks/nomor urut bulan jika yang
dimasukkan adalah nama bulannya. Misalnya, kita masukkan nama bulan MARET, yang akan
dihasilkan dari blok PL/SQL tersebut adalah teks ‘Bulan Maret adalah bulan ke-3’.
2. Buatlah sebuah blok PL/SQL yang dapat menentukan nilai indeks (A, B, C, D atau E) dari nilai
ujian (masih berbentuk angka) yang dilakukan oleh mahasiswa di sebuah PTN. Ketentuan
adalah sebagai berikut:
Nilai Indeks Nilai Angka
A Nilai >= 80
B 70 <= nilai < 60
C 55 <= nilai < 70
D 40 <= nilai < 55
E Nilai < 40
Daftar Pustaka
- Oracle. 2006. Oracle 10 g Express Edition Help System.
- Oracle Database 11G. Sept-2009 PL/SQL FUNDAMENTAL
- Heryanto, Imam; Raharjo, Budi. April-2003. Pemrograman PL/SQL ORACLE.
Penerbit: Informatika.
2018 Pemrograman Basis Data & SQL Pusat Bahan Ajar dan eLearning
11 Sabar Rudiarto, M.Kom http://www.mercubuana.ac.id