Percabangan pada Java
A. Operasi Percabagangan
Salah satu kelebihan komputer dibandingkan dengan
manusia adalah kemampuannya untuk melakukan istruksi berulang kali tanpa
mengenal lelah dan bosan.
Pada algoritma runtunan telah kita lihat bahwa setiap pernyataan selalu
dilakukan bila telah sampai gilirannya. Namun demikian ada kalanya suatu
pernyataan atau perintah hanya bisa dilakukan bila memenuhi suatu kondisi atau
persyaratan tertentu. Algoritma ini kita sebut dengan algoritma seleksi kondisi
atau juga percabangan.
Percabangan yang dimaksud adalah suatu pemilihan statemen yang akan
dieksekusi dimana pemilihan tersebut didasarkan atas kondisi tertentu.
Pada C++ jenis struktur yang digunakan untuk mengimplementasikan suatu
percabangan ada dua yaitu: struktur if dan struktur switch.
Statemen yang terdapat dalam sebuah blok percabangan akan
dieksekusi jika kondisi yang didefinisikan terpenuhi (bernilai benar) Artinya
jika kondisi tidak terpenuhi (bernilai salah) maka statemen tersebut tidak ikut
dieksekusi atau akan diabaikan oleh compiler.
B. Proses Percabangan
Proses percabangan akan menyebabkan satu atau beberapa perintah
diproses atau sebaliknya satu atau beberapa perintah tidak diproses, tergantung
dari hasil kondisi yang diseleksi.
Ø
Mengenal Struktur Percabangan Pada bahasa C
1. Statement if
Statement if adalah salah satu statement yang
digunakan untuk penyeleksian kondisi. Statement if ini mempunyai beberapa
variasi bentuk, yaitu :
a. Bentuk if
Tunggal
Bentuk umum :
if (kondisi)
statement ;
Bentuk ini menunjukkan jika kondisi yang diseleksi
benar ( bernilai logika 1 ) maka statement yang mengikutinya akan diproses.
Sebaliknya jika kondisi yang diseleksi salah ( bernilai logika 0 ) maka
statement berikutnya tidak akan diproses. Bentuk if harus diikuti dengan kondisi
yang diapit oleh tanda kurung biasa, sedangkan statement dapat berupa statement
tunggal atau statement jamak (compound statement). Statement jamak harus
diapit oleh tanda kurung kurawal.
if (x<0)
x = -x;
Kondisi yang digunakan sebagai pengujian dapat berupa ekspresi yang
lebih kompleks, dengan syarat ekspresi tersebut menghasilkan sebuah nilai
tunggal.
Contoh :
if (scanf("%d", &n) !=1)
printf("jenis input yang diberikan salah \n");
/* Contoh proram menggunakan statement if */
main()
{
int usia;
clrscr();
printf("Berapakah usia anda? : ");
scanf("%d", &usia);
if(usia>=40)
{
printf("\nWah...... anda sudah cukup tua");
printf("\nJangan makan makanan yang mengandung kolestrol
tinggi");
printf("\nTidak baik untuk kesehatan");
}
}
Jika program dijalankan, outputnya adalah :
Berapakah usia anda?
20
Perhatikan contoh program di atas. Statement yang
mengikuti if adalah statement jamak, maka diapit oleh tanda
kurung kurawal dansetiap satu baris statement diakhiri dengan tanda titik koma
( ; ).
b. Bentuk if – else
Bentuk umum :
if (kondisi)
statement;
else
statement;
Statement setelah if atau setelah else dapat berupa statement
kosong, statement tunggal, atau statement jamak. Apabila statement yang
mengikuti if atau else berupa statement jamak maka
statement tersebut harus diapit oleh tanda kurung kurawal dan setiap baris
statement diakhiri tanda titik koma. Bentuk diatas akan memproses statement
setelah if jika
kondisi yang diseleksi benar dan jika salah maka yang diproses adalah statement
setelah else.
/* Contoh proram menggunakan statement if-else dengan kondisi jamak*/
main()
{
char jawab;
printf("\nAnda mau ikut? ");
jawab=getche();
if(jawab==‘Y’ || jawab==‘y’)
printf("\nCepat ganti pakaian");
else
printf("\nTolong jaga rumah");
}
Jika program dijalankan, outputnya adalah :
Anda mau ikut?
y
Cepat ganti pakaian
Statement if-else dapat ditulis dengan dua buah statement if tunggal.
c. Bentuk if -
else - if - ... else
Bentuk umum :
if (kondisi1)
statement;
else if (kondisi2)
statement;
else if (kondisi3)
statement;
::
else
statement;
Penyeleksian akan dilakukan mulai dari kondisi
yang pertama (kondisi1), jika benar maka statement yang mengikutinya akan diproses
dan penyeleksian dihentikan (kondisi yang lain tidak akan diseleksi). Jika
kondisi yang pertama (kondisi1) salah maka penyeleksian dilakukan pada kondisi
berikutnya (kondisi2). Jika kondisi2 benar maka statement yang mengikutinya
akan diproses dan penyeleksian dihentikan. Apabila salah maka akan diseleksi kondisi
berikutnya.
/* Contoh proram menggunakan statement if-else-if */
main()
{
float angka;
char jawab;
clrscr();
printf("\nMasukkan nilai angka (0-100) ");
scanf("%f",&angka);
if(angka<50)
huruf=‘E’;
else if(angka>=50 && angka<60)
huruf=‘D’;
else if(angka>=60 && angka<70)
huruf=‘C’;
else if(angka>=70 && angka<85)
huruf=‘B’;
else
huruf=‘A’;
printf("\nNilai Huruf : %c", huruf);
}
Jika program dijalankan, outputnya adalah :
Masukkan nilai angka (0-100)
60
Nilai Huruf : C
d. Bentuk if Bersarang (nested if)
Bentuk umum :
if (kondisi1)
if (kondisi2)
:
if (kondisi-n)
statement;
else
statement;
:
else
statement;
else
statement;
Kondisi yang diseleksi pertama kali adalah kondisi
yang paling luar (kondisi1). Jika kondisi1 salah maka yang diproses adalah
statement setelah else yang terluar (pasangan dari if yang bersangkutan). Jika else tidak ditulis maka penyeleksian dihentikan. Jika kondisi1 benar maka
penyeleksian dilanjutkan pada kondisi2, jika kondisi2 salah maka yang diproses
adalah statement setelah else pasangan dari kondisi2. Jika else tidak ditulis maka penyeleksian
dihentikan.
Demikian seterusnya proses penyeleksian tetap
dilanjutkan apabila kondisi sebelumnya bernilai benar. Bentuk dari statement
nested-if ini merupakan bentuk yang cukup membingungkan, terutama apabila
jumlah else tidak sama dengan jumlah if.
Perhatikan penggalan program berikut ini.
if(n>0)
if(n%2 == 0)
printf("positif dan genap\n");
else
printf("positif dan ganjil");
else pada contoh di atas merupakan
pasangan dari if yang
terdekat, yaitu if(n%2==0) Jika else dimaksudkan untuk pasangan if(n>0), maka dapat digunakan tanda kurung kurawal, seperti pada contoh
berikut.
if(n>0)
{
if(n%2 == 0)
printf("positif dan genap\n");
}
else
printf("tidak positif");
Kondisi
dari statement if
dapat berupa variabel atau kondisi jamak
(dengan menggunakan operator logika).
OPERATOR ?
Operator ? dapat digunakan sebagai pengganti
bentuk statement if - else. Operator ini juga disebut dengan nama ternary
operator , karena operator ini menggunakan tiga buah ungkapan (ternary
expression).
Bentuk umum :
(ungkapan1) ? ungkapan2 : ungkapan3
Jika ungkapan1 benar, maka ungkapan2 yang akan digunakan sebagai hasil
dari operator ini. Sebaliknya jika ungkapan1 bernilai salah maka ungkapan3 yang
akan digunakan sebagai hasilnya. Ungkapan dapat berupa suatu fungsi.
Contoh :
#include <stdio.h>
main()
{
int x;
printf("Masukkan nilai suatu integer ? ");
scanf("%d",&x);
(x % 2 == 0) ? printf("Nilai genap\n") : printf("Nilai
ganjil\n");
}
Jika program dijalankan :
Masukkan nilai suatu integer ? 10
Nilai genap
2. Statement switch
Statement switch merupakan salah satu statement
yang digunakan untuk penyeleksian kondisi. Statement switch dapat berbentuk
statement switch tunggal atau statement switch bersarang (nested switch).
a. Statement switch Tunggal
Bentuk umum :
switch(kondisi)
{
case konstanta1:
statement-statement;
break;
case konstanta2:
statement-statement;
break;
:
default:
statement-statement;
}
Statement switch akan menyeleksi
kondisi yang diberikan kemudian membandingkan hasilnya dengan
konstanta-konstanta yang ada dicase. Apabila hasil dari kondisi sama dengan nilai dari konstanta tertentu,
misalnya konstanta2, maka yang akan diproses adalah statement yang ada pada
case konstanta2 sampai ditemui statement break. Jika semua konstanta yang
dibandingkan tidak ada yang sama, maka yang diproses adalah statement yang
berada di default. Bentuk default ini sifatnya optional.
/* Contoh proram menggunakan statement switch*/
main()
{
int bil;
printf("\nKetikkan bilangan bulat antara 1 sampai dengan 3
");
scanf("%d",&bil);
switch(bil)
{
case 1:
printf("\nAnda mengetikkan satu");
break;
case 2:
printf("\nAnda mengetikkan dua");
break;
case 3:
printf("\nAnda mengetikkan tiga");
break;
default :
printf("\nAnda mengetikkan bilangan yang salah");
}
}
b. Statement
switch bersarang (nested switch)
Statement switch bersarang adalah statement switch
yang berada didalam statement switch yang lainnya.
Tidak ada komentar:
Posting Komentar