Pengertian Algoritma
Percabangan
Pada
algoritma runtunan telah kita lihat bahwa setiap pernyataan selaludilakukan
bila telah sampai gilirannya. Namun demikian ada kalanya suatu pernyataa natau
perintah hanya bisa dilakukan bila memenuhi suatu kondisi atau persyaratan
tertentu. Algoritma ini kita sebut dengan algoritma seleksi kondisi atau juga percabangan.Contoh.
Misalnya kita ingin menentukan apakah suatu bilangan merupakan bilangan genap
atau ganjil. Algoritmanya dapat kita jabarkan.
1.
Mulai
2.
Masukkan satu bilangan (X)
3.
jika X habis dibagi dua maka lanjut ke
4.
Jika tidaklanjut ke 54.tulis ‘X bilangan genap’. Lanjut ke 6.
5.
tulis ‘X bilangan ganjil’
6.
Selesai
Perhatikan
bahwa ada dua kemungkinan perintah yang akan dikerjakan setelahperintah
ke-3 dikerjakan. Jika X habis dibagi dua maka selanjutnya perintah ke-4 yang
dikerjakan, kemudian melompat ke 6 (perintah 5 tidak dikerjakan). Sebaliknya
jika Xtidak habis dibagi dua perintah selanjutnya melompat ke-5 (perintah 4
tidak dikerjakan) dan kemudian berakhir pada perintah ke-6.
2.Ekspresi
Boolean
Ada
dua komponen utama dalam ekspresi percabangan yaitu kondisi dan pernyataan.
Kondisi adalah syarat dilakukannya sebuah (atau sekelompok) pernyataan, sedangkan
pernyataan dalam konteks iniadalah perintah yang berkaitan dengan suatu
kondisi. Contoh umum pernyataan kondisi-pernyataan :
Algoritma dan Pemrograman
Sebagaimana
contoh sebelumnya dapat dilihat bahwa adakalanya suatuperintah dilakukan jika
kondisi yang mempersyaratkannya telah jelas nilai benarsalahnya. Dalam hal
pemrograman kondisi tersebut harus bisa dinyatakan dalam suatuekspresi boolean.
Ekspresi boolean adalah ekspresi yang hasil ekspresinya bernilaiboolean (true
atau false).EkspresiBoolean dapat diperoleh dengan menggunakan dua jenis
operasi :
1.Operasi
Boolean.
Operasi
boolean adalah operasi yang menggunakan operator booleanseperti
and,
or, not, xor.
Contoh
operasi relasional
1.
z1 ß x and y
2.
z2 ß a=2 or b=10
3.
z3 ß not(x)
4.
z4 ß p+2=4 xor q=0
2.Operasi Relasional (Operasi Perbandingan)
Operasi
relasional adalah operasi yang membandingkan dua buahoperan dengan menggunakan
operator perbandingan (ingat, operatorperbandingan : =, <>, <,≤, >,
≥).
Contoh
operasi relasional
1.
z1 ß x > y
2.
z2 ß a <> 10
3.
z3 ß x + y = 17
4.
z4 ß p div q < r
5.
z5 ß p mod 2 = 0
Hasil
dari operasi perbandingan memiliki dua kemungkinan, yaitu true (benar) atau
false (salah). Oleh karena itu tipe hasil (z1, z2,z3, z4, z5) dari setiap
operasi di atas adalah boolean.
3.Algoritma
Teks dan Flowchart Percabangan
Ada
dua tipe algoritma percabangan yang akan kita bahas berikut ini yaitu:
- kondisi (if-then)
artinya hanya ada satu kondisi
yang menjadi syarat untuk melakukan satu atau satu blok
(sekelompok) pernyataan. Bentuk umum algoritma teks standar
percabangan dengan satu kondisi :
if
<kondisi> then
pernyataan
Jika
<kondisi> bernilai benar maka pernyataan dikerjakan, sedangkan jika
tidak, maka pernyataan tidak dikerjakan dan proses langsung keluar daripercabangan
(begin).
if
A>B then
write
(A)
Ekspresi
di atas menunjukkan bahwa perintah menulis/menampilkan A dikerjakan hanya jika
kondisi A>B bernilai benar. Jika yang terjadi adalah sebaliknya,
tidak ada pernyataan yang dilakukan atau proses langsung keluar dari
percabangan (endif ).Secara flowchart ekspresi itudapat
ditulis seperti berikut.
Perhatikan
bahwa pada kotak belah ketupat memiliki dua cabangarus data, yang satu untuk
kondisi bernilai benar (y, artinya ya), sedang yanglain untuk kondisi bernilai
salah (t, artinya tidak).Jika kondisi bernilai benar(y) maka perintah yang
dikerjakan adalah
write(A)
.
Jika kondisi salah (t)maka arus data langsung menuju ke bawah tanpa mengerjakan
pernyataan apapun.
- kondisi (if-then-else)
artinya ada dua kondisi yang menjadi syaratuntuk dikerjakannya dua jenis
pernyataan. Bentuk umum percabangandengan dua kondisi :
if
<kondisi> then
pernyataan1
else
pernyataan2
Jika
<kondisi> bernilai benar maka pernyataan1 dikerjakan.Sedangkan
jika tidak (<kondisi> bernilai salah), maka pernyataan
yangdikerjakan adalah pernyataan2. Berbeda dengan percabangan satu
kondisi,pada percabangan dua kondisi ada dua pernyataan untuk dua keadaan
kondisi, yaitu untuk <kondisi> yang bernilai benar dan <kondisi>
yang bernilai salah.Contoh algoritma percabangan dua kondisi :
if
A>B then
write
(A)
else
write
(B)
Ekspresi
di atas sedikit berbeda dengan sebelumnya. Perintah menulis/menampilkan A
dikerjakan hanya jika kondisi A>B bernilai benar,sedangkan jika yang terjadi
adalah sebaliknya maka pernyataan yangdilakukan adalah menulis B.Secara
flowchart pernyataan di atas dapatditulis sebagai berikut.
Berikut
ini adalah beberapa contoh lainnya.
a.If x
> 0 then
ket
ß bilangan positif’
b.if
m = n
I
ß m*n
write(i)
c.if bil>=0 then
ket
ß (‘bilangan positif’)
else
ket
ß (‘bilangan negatif’)
d.if m
= n then
I
ß m*n
J
ß m-n
Else
I
ß m/n
J
ß m+n
write(i,j)
4.Percabangan Tersarang
Percabangan
tersarang adalah percabangan di dalam percabangan. Banyak sekalibentuknya,
namun salah satu contohnya adalah sebagai berikut.
If <kondisi1> then
if
<kondisi2> then
Pernyataan1
Else
Pernyataan2
Else
If
<kondisi3>
Pernyataan3
Else
Pernyataan4
Misalnya,
buatlah algoritma untuk menentukan apakah suatu bilangan merupakan bilangan
kelipatan 2 saja, atau kelipatan 5 saja, atau kelipatan 2 dan 5, atau bukan
kelipatan 2 dan 5. Bilangan yang dimaksud merupakan input algoritma.
Algoritma
Kelipatan2 Kelipatan5
Deklarasi
Bil: integer
Ket: string
Deskripsi
read
(bil)
if
bil mod 2 = 0 then
if bil mod 5= 0then
Ket
ß ‘ Kelipatan 2 dan Kelipatan 5’
Else
Ket
ß ‘ Kelipatan 2 tapi Bukan Kelipatan 5’
Else
if
bil mod 5 = 0 then
Ket
ß ‘Bukan Kelipatan 2 tapi Kelipatan 5’
Else
Ket
ß‘Bukan Kelipatan 2 atau 5’)
Write
(Ket)
Di
sini terlihat algoritmanya menjadi sedikit rumit. Kerumitan bertambahkarena
kita harus membuat percabangan dalam percabangan (percabangantersarang). Selain
itu penulisan
Ket
ß ’Tidak cumlaude’ harus ditulis dua kali agartujuan algoritma dapat dicapai.
Dengan demikian penggunaan operator logika dalamhal ini jelas menyederhanakan
algoritma di atas.
6.Percabangan
Tiga Kondisi Atau Lebih
Percabangan
dengan tiga kondisi atau lebih adalah bentuk pengembangan dari dua bentuk
percabangan percabangan yang telah kita bahas sebelumnya. Akan ada banyak
sekali variasinya tetapi secara umum ekspresi percabangannya dapat kita
tuliskan sebagai berikut.
if.
<kondisi1>
then
Pernyataan1
else
if <kondisi2> then
Pernyataan2
else
if <kondisi(n-1)> then
Pernyataan(n)
Else
Pernyataan(n)
Mula-mula
<
kondisi1
>
dicek nilai kebenarannya. Jika benar, maka dikerjakan
pernyataan1
.
Jika salah, maka dicek nilai kebenaran <
kondisi2
>.
Jika <
kondisi2
>benar,maka
dikerjakan
pernyataan2
Jika
tidak algoritma akan mengecek ke kondisi berikutnyadengan cara yang sama dengan
yang sebelumnya. Terakhir, jika semua kondisi bernilaisalah, maka pernyataan
yang dikerjakan adalah Pernyataan (n+1). Bentuk flowchartnya dapat dilihat di
bawah ini.
Pada
algoritma di atas pernyataan1 akan dikerjakan jika <kondisi1> bernilai
benar, jika tidak pemeriksan dilanjutkan ke <kondisi2>. Jika
<kondisi2> bernilai benar maka
pernyataan2
dikerjakan. Jika tidak, pemeriksaan dilanjutkan pada kondisi-kondisi
berikutnya. Pemeriksaan ini terus terhadap semua kondisi yang ada. Jika tidak
ada kondisiyang benar maka pernyataan yang dikerjakan adalah pernyataan(n+1)
Tidak ada komentar:
Posting Komentar