4. percabangan.doc
DESCRIPTION
MATERI PEMROGRAMAN BASIS DATA " PERCABANGAN"TRANSCRIPT
Document
4. PERCABANGAN
4.1 Pendahuluan
Pada dunia pemrograman yang dimaksud dengan percabangan
tidak lain adalah sebuah pemilihan yang didasarkan atas kondisi
tertentu. Sebuah atau beberapa statemen yang terdapat pada
badan percabangan hanya akan dieksekusi jika kondisi yang
didefiniskan 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.
Pada PL/SQL yang terdapat dalam Oracle sebuah badan
percabangan secara umum dibedakan menjadi 3 buah struktur,
yaitu struktur percabangan yang hanya mempunyai satu kondisi,
dua kondisi, dan struktur yang mempunyai tiga kondisi atau lebih.
4.2 Struktur Satu Kondisi
Dalam struktur percabangan yang hanya mempunyai satu
kondisi ini jika kondisi tidak terpenuhi atau bernilai FALSE,
badan percabangan tidak akan pernah dimasuki. Sintak umum
untuk pembuatan sebuah struktur percabangan dengan satu
kondisi ini adalah :
IF Kondisi THEN
Statmen_I;
........
END IF;
Untuk lebih memahami konsep percabangan jenis ini, coba
perhatikan contoh-contoh blok PL/SQL berikut :
Contoh 1
Buatlah sebuah blok PLSQL yang dapat menentukan sebuah
bilangan bulat apakah termasuk ke dalam bilangan genap atau
tidak, jika ya, tampilkan lah bilangan tersebut dan diikuti dengan
teks ADALAH BILANGAN GENAP. Sintaks Jawaban untuk kasus di
atas adalah sebagai berikut :
Pada layar SQL*Plus akan tampak hasil seperti
pada gambar berikut.
Pada sintak di atas terdapat adanya function MOD yang
mengembalikan nilai sisa bagi dari proses pembagian
bilangan BIL dibagi 2. Jika sisa baginya sama dengan 0,
artinya BIL habis dibagi 2 yang berarti pula bahwa
bilangan tersebut merupakan bilangan genap. Karena
80 habis jika 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 program tidak dapat
memasuki badan percabangan dan statemen-statemen
yang ada pun sudah tentu tidak akan dieksekusi.
Sebagai bukti dari pernyataan ini, coba perhatikan hasil
blok PL/SQL di atas dengan nilai BIL 39 berikut ini.
Jika Anda lihat, sintak di atas tidak
memberikan hasil apa-apa karena kondisi yang
ada tidak dapat terpenuhi atau bernilai FALSE.
Contoh 2
Buatlah sebuah PL/SQL yang dapat menentukan suatu
bilangan bulat apakah termasuk bilangan positif atau bukan.
Sintak jawaban untuk kasus di atas adalah sebagai berikut.
Pada layar SQL*Plus akan terlihat hasil seperti
pada gambar berikut.
4.3 Struktur Dua Kondisi
Setelah mengetahui struktur percabangan
dengan satu kondisi, Anda harus mempelajari
struktur percabangan yang mempunyai dua
buah kondisi. Pada struktur percabangan ini
statemen- statemen yang akan dieksekusi
adalah statemen yang didasarkan pada kondisi
yang nilainya TRUE. Artinya, tidak mungkin
terdapat dua kondisi yang keduanya bernilai
TRUE.
Pada Oracle, sintak umum untuk pembuatan badan
percabangan yang mempunyai dua buah kondisi adalah
sebagai berikut.
Sintak di atas berarti bahwa program akan mengeksekusi
Statemen_l jika kondisi terpenuhi, tetapi jika tidak terpenuhi,
yang akan dieksekusi adalah Statemen_2. Untuk lebih
memahami konsep percabangan dengan dua buah kondisi ini,
coba Anda perhatikan contoh-contoh berikut ini.
Contoh 1
Buatlah sebuah blok PL/SQL yang dapat
menentukan bilangan bulat apakah termasuk
bilangan genap atau ganjil. Kemudian tampilkan
bilangan tersebut dengan diikuti teks ADALAH
BILANGAN GENAP jika bilangan tersebut habis
dibagi 2 dan jika tidak teks yang ditampilkan
ADALAH BILANGAN GANJIL. Sintak jawaban untuk
kasus ini adalah sebagai berikut:
Pada layar SQL*Plus akan tampak hasil seperti
ditunjukkan oleh gambar berikut:
Sintak di atas menunjukkan bahwa kondisi
pertama, yaitu MOD(BIL, 2) = 0 bernilai FALSE
karena bilangan 3 tidak habis dibagi 2. Oleh
karena itu, kondisi yang bernilai TRUE adalah
kondisi kedua yaitu kondisi 'selain' dari kondisi
pertama sehingga statemen yang dieksekusi
pun adalah statemen yang didasarkan atas
nilai dari kondisi dua tersebut,
Contoh 2
Buatlah sebuah blok PL/SQL yang dapat
menentukan bilangan terbesar dari dua buah
bilangan bulat. Sintak jawaban dari kasus ini
adalah seperti terlihat berikut ini.
Pada layar SQL*Plus akan tampak hasil seperti
ditunjukkan gambar berikut.
Meskipun memberikan hasil yang benar,
namun jika dilihat dari segi algoritmik, sintak
di atas masih belum efesien karena masih
terdapat adanya pengulangan penulisan pada
setiap kondisi yang didefinisikan. Sekarang
coba Anda sederhanakan sintak tersebut
dengan menggunakan sintak di bawah ini.
Perhatikan hasil yang tampak pada layar
SQL*Plus, sama bukan? Sebagai orang yang
berkecimpung dalam dunia pemrograman
komputer, Anda harus selalu memperhatikan
hal-hal seperti ini.
4.4 Struktur Tiga Kondisi atau Lebih
Sebenarnya struktur percabangan ini mempunyai
konsep yang sama dengan struktur percabangan
dengan dua kondisi, hanya saja di sini lebih
kompleks karena kondisi yang diperiksa menjadi
lebih banyak. Konsep yang terdapat pada struktur
percabangan jenis ini juga tidak berbeda dengan
konsep percabangan yang ada pada bahasa-
bahasa pemrograman prosedural lainnya.
Sintak umum untuk pembuatan badan
percabangan yans mempunyai tiga kondisi atau
lebih ini dapat Anda lihat di bawah ini.
Sintak di atas menunjukkan bahwa mula-mula dilakukan
pengecekan nilai terhadap kondisM. Jika kondisM bernilai TRUE.
statemenj yang akan dieksekusi. Tetapi jika tidak, akan dilakukan
pengecekan terhadap kondisi_2. Jika kondisi_2 bernilai TRUE,
statemen_2 yang akan dieksekusi, tetapi jika kondisi_2 juga masih
bernilai FALSE, berarti yang akan dieksekusi adalah statemen_3- Ini
adalah gambaran dari struktur percabangan yang hanya mempunyai
tiga kondisi, tetapi mungkin Anda bertanya bagaimana jika kondisi
yang akan diperiksa banyaknya lebih dari tiga. Hal ini sama, hanya
saja Anda harus mendefinisikan setiap kondisi tersebut sampai
tidak ada lagi kondisi yang harus diperiksa. Seperti biasa, untuk
lebih memahami konsep struktur percabangan jenis ini cobalah
perhatikan baik-baik contoh-contoh kasus berikut ini.
Contoh 1
Buatlah sebuah blok PL/SQL yang dapat
menentukan sebuah bilangan bulat apakah
termasuk bilangan positif, negatif, atau nol.
Sintak jawaban untuk kasus tersebut dapat
Anda lihat berikut ini.
Pada layar SQL*Plus akan tampak hasil seperti ditunjukkan
gambar berikut.
Pada contoh di atas nilai X yang didefinisikan
adalah -25. Mula-mula akan diperiksa kondisi
X > 0. Karena -25 tidak lebih besar dari 0, akan
dilakukan pengecekan terhadap kondisi
berikutnya yaitu X = 0. 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 yang dapat
menentukan akar-akar dari sebuah persamaan
kuadrat. Persamaan kuadrat yang dimaksud
adalah ax + bx + c. Sintak jawaban dari kasus
2
ini adalah seperti terlihat di bawah ini.
Pada layar SQL*Plus akan tampak hasil
seperti ditunjukkan sambar berikut.
Contoh 3
Buatlah sebuah blok PL/SQL untuk
menentukan nama hari dari nomor/indeks
hari yang diberikan. Sintak jawaban untuk
kasus di atas adalah seperti tertulis berikut ini.
Pada layar PL/SQL akan tampak hasil seperti
ditunjukkan gambar berikut.
4.5 Soal Latihan
1.
Buatlah sebuah blok PL/SQL yang dapat memberikan
indeks/nomor urut bulan jika yang dimasukkan
adalah nama bulannya. Misalnya, kita memasukkan
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 di
Bandung. Ketentuannya adalah sebagai berikut.
3.
Dalam pelajaran matematika dipelajari tentang koordinat sebuah titik P(x, y)
dimana titik tersebut terletak pada suatu kuadran tertentu. Buatlah blok PL/SQL
yang dapat menentukan kuadran dari titik yang dimasukkan. Keterangan untuk
penentuan kuadran dari suatu titik P(x, y) di dalam bidang kartesian adalah sebagai
berikut.
Sebagai catatan jika x dan y bernilai O, titik tersebut tidak terdapat pada kuadran
manapun melainkan berada di garis sumbu koordinat, yaitu P(0,0).