Anda di halaman 1dari 7

Algoritma Percabangan

Pada algoritma runtunan telah kita lihat bahwa setiap aksi atau perintah selalu
dilakukan bila telah sampai gilirannya. Namun demikian ada kalanya suatu aksi
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 seperti berikut ini

1. Mulai
2. Masukkan satu bilangan (X)
3. jika X habis dibagi dua maka lanjut ke 4. Jika tidak lanjut ke 5
4. tulis ‘X bilangan genap’. Lanjut ke 6.
5. tulis ‘X bilangan ganjil’
6. Selesai

Perhatikan bahwa ada dua kemungkinan perintah yang akan dikerjakan setelah
perintah 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 X tidak habis dibagi dua perintah selanjutnya melompat ke-5 (perintah 4 tidak
dikerjakan) dan kemudian berakhir pada perintah ke-6.

Ada dua tipe algoritma percabangan yang akan kita bahas berikut ini yaitu

- Satu kondisi (if-then) : artinya hanya ada satu kondisi yang menjadi syarat
untuk melakukan satu atau satu blok (sekelompok) aksi. Bentuk umum
algoritma teks standar percabangan dengan satu kondisi :

if <kondisi> then
aksi

Jika <kondisi> terpenuhi atau bernilai benar maka aksi dikerjakan, sedangkan
jika tidak, maka aksi tidak dikerjakan dan proses langsung keluar dari
percabangan. Perhatikan contoh berikut ini.

if A>B then
write (A)

Ekspresi di atas menunjukkan bahwa perintah menulis / menampilkan A dikerjakan


hanya jika kondisi A>B terpenuhi (bernilai benar). Jika yang terjadi adalah
sebaliknya, tidak ada aksi yang dilakukan atau proses langsung keluar dari
percabangan. Secara flowchart ekspresi itu dapat ditulis seperti berikut.

Ungkapan dalam belah ketupat “A>B?” dapat kita baca “apakah A lebih besar B?”.
Perhatikan bahwa pada belah ketupat tersebut memiliki dua cabang arus data, yang
satu untuk kondisi bernilai benar (y, artinya ya), sedang yang lain 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 aksi apapun.

- Dua kondisi (if-then-else) : artinya ada dua kondisi yang menjadi syarat untuk
dikerjakannya dua jenis aksi. Bentuk umum percabangan dengan dua kondisi :

if <kondisi> then
aksi1
else
aksi2

Jika <kondisi> bernilai benar maka aksi1 dikerjakan. Sedangkan jika tidak
(<kondisi> bernilai salah), maka aksi yang dikerjakan adalah aksi2. Berbeda
dengan percabangan satu kondisi, pada percabangan dua kondisi ada dua aksi
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.
Jika yang terjadi adalah sebaliknya maka aksi yang dilakukan adalah menulis
B. Secara flowchart aksi di atas dapat ditulis sebagai berikut.
Berikut ini adalah beberapa contoh lainnya.

If x > 0 then
ket  ‘bilangan positif’

if m = n
i  m*n
write(i)

if bil>=0 then
ket  (‘bilangan positif’)
else
ket  (‘bilangan negatif’)

if m = n then
i  m*n
j  m-n
else
i  m/n
j  m+n
write(i,j)

Latihan : Cobalah anda buat flowchart dari algoritma di atas!

Studi Kasus

Berikut ini adalah algoritma untuk menentukan apakah suatu bilangan merupakan
bilangan genap atau ganjil. Input algoritma adalah bilangan yang akan ditentukan
jenisnya tersebut.

Identifikasi Masalah

Input : Bilangan

Output : Keterangan “Ganjil” atau “Genap"

Algoritma 2-1

algoritma bilangan_genap_ganjil
deskripsi
read (bil)
ket’ganjil’
if bil mod 2 = 0 then
ket‘genap’
write (ket)

Keterangan : mod (modulus) adalah operator sisa pembagian.

Contoh 5 mod 2 = 1, atau 6 mod 3 = 0

Mula-mula inputkan variabel (bil), misalnya 3. Kemudian (ket) diberi nilai ‘ganjil’.
Kemudian karena kondisi (bil mod 2 = 0) bernilai salah, maka (ket) tidak berubah
dan tetap bernilai ‘ganjil’, sehingga ketika perintah write(ket), output yang muncul
adalah ‘ganjil’. Untuk jelasnya perhatikan tabel penyimpanan data berikut.

Tabel Penyimpanan Data Algoritma 2-1

Perintah bil ket Output

read (bil) 3

ket’ganjil’ ‘ganjil’

if bil mod 2 = 0 then

ket‘genap’

write (ket) ‘ganjil’

Untuk menyelesaikan soal di atas anda juga dapat menggunakan algoritma if-then-
else seperti berikut ini.
Algoritma 2-2

algoritma bilangan_genap_ganjil

deskripsi
read (bil)
if bil mod 2 = 0 then
ket‘genap’
else
ket ’ganjil’
write (ket)

Studi Kasus

Buatlah algoritma menentukan gaji total pegawai. Diketahui pegawai dengan masa
kerja lebih dari 3 tahun mendapat tunjangan sebesar 20% gaji pokok sedang yang
kurang dari itu mendapat tunjangan 10%. Input program adalah masa kerja dan gaji
pokok.

Identifikasi masalah

Input : masa kerja, gaji pokok

Output : gaji total

Algoritma 2-3

algoritma gaji_pegawai

deskripsi
read (mk, gapok)
if mk>3 then
tjg  0.2*gapok
else
tjg  0.1*gapok
gatot  gapok+tjg
write(‘Gaji total ’,gatot)
Flowchart Algoritma 2.6. Flowchart Algoritma 2.7.

Mula-mula dimasukkan data (mk) dan (gapok). Misalnya, masing-masing diberi


nilai 2 dan 1000. Karena (mk>3) bernilai salah, maka perintah yang dikerjakan
adalah (tjg0.1*gapok). Kemudian gapok dan tjg dijumlahkan yang hasilnya
disimpan sebagai gatot. Dengan demikian output yang keluar adalah 1100.

Perhatikan tabel penyimpanan data berikut

Perintah mk gapok tjg gatot Output

read (mk, gapok)


2 1000
if mk>3 then
tjg  0.2*gapok
else 100
tjg  0.1*gapok

gatot  gapok+tjg
2 1000 100 1100

write(gatot)
1100

Jadi keluaran algoritma :

1100

Anda mungkin juga menyukai