Percabangan pada bahasa
pemrograman khususnya bahasa C++, terdapat 2 metode. 1. If- else 2.
Switch-case Percabangan digunakan dalam program untuk menyatakan
beberapa kondisi. Umumnya kondisi jika benar, dan jika salah. ...
Percabangan pada bahasa pemrograman khususnya bahasa C++, terdapat 2 metode.
1. If- else
2. Switch-case
Percabangan digunakan dalam program untuk menyatakan beberapa kondisi.
Umumnya kondisi jika benar, dan jika salah.
Jadi dalam kondisi yang berbeda-beda ini terdapat perintah yang berbeda-beda.
Untuk lebih jelasnya bisa dilihat penjelasan di bawah ini.
If – Else
Pernyataan
Percabangan If-Else digunakan untuk memecahkan persoalan untuk
mengambil suatu keputusan diantara sekian pernyataan yang ada. Untuk
keperluan pengambilan keputusan, Borland C++ menyediakan beberapa
perintah antara lain:
1. Pernyataan If-Else
Bentuk umum dari pernyataan If-Else
if(kondisi)
{
statement 1;
}
else
{
statement 2;
}
Ket :
Kondisi
adalah pernyataan relasi yang akan diuji kebenarannya. Kondisi bisa
berbentuk pernyataan relasi tunggal maupun pernyataan relasi majemuk
yang dihunbungkan dengan operator logika.
Statement adalah satu atau lebih perintah yang akan dikerjakan jika kondisi bernilai benar.
Kesimpulan:
Pernyataan
if mempunyai pengertian, “Jika kondisi bernilai benar, maka statement 1
akan dikerjakan dan jika tidak memenuhi syarat maka akan mengerjakan
statement 2″.
Source Code :
# include <iostream.h>
# include <conio.h>
main ()
{
int bil;
clrscr();
cout <<"Masukkan bilangan : "; cin >>bil;
if(bil%2) //Jika bil habis dibagi 2, maka
{
cout <<"Bilangan GENAP";
}
else //Jika bil tidak habis dibagi 2, maka
{
cout <<"Bilangan GANJIL";
}
getch();
}
2. Pernyataan If-Else Multi Kondisi
Kondisi
yang diperiksa di dalam perintah if bisa berupa kumpulan operasi yang
dihubungkan dengan satu atau lebih operator logika.
Bentuk umum If-Else Multi Kondisi.
if(kondisi1 &&/|| kondisi2 …….dst)
{
statement;
}
…..dst
Ket:
Kondisi
1, kondisi 2, dst adalah beberapa pernyataan relasi yang akan diuji
kebenarannya. Hasil akhir dari seluruh kondisi inilah yang akan
menentukan apakah blok statement akan dikerjaka atau tidak.
Operator
“&&” digunakan untuk menghubungkan dua relasi dengan logika
AND. Hasil akhir akan bernilai benar apabila kedua kondisi benar. Dan
bernilai salah apabila kedua kondisi atau salah satu kondisi bernilai
salah.
Operator “||” digunakan untuk menghubungkan dua relasi
dengan logika OR. Hasil akhir akan bernilai benar apabila kedua kondisi
benar atau salah satunya benar. Dan bernilai salah apabila kedua
kondisi bernilai salah.
Source code :
# include <iostream.h>
# include <conio.h>
main()
{
int nilai;
float bobot;
char huruf;
char ket;
clrscr();
cout <<"\n**************************************";
cout <<"\n* Perhitungan Indeks Prestasi (IP) *";
cout <<"\n**************************************";
cout <<"\n";
cout <<"\nMasukkan nilai Anda ! : "; cin >>nilai;
/*Untuk
If-Else Multi Kondisi(kondisi1 & kondisi2), maka diperlukan
operator LOGIKA && untuk relasi AND, dan operator LOGIKA ||
untuk relasi OR*/
if ((nilai>=80)&&(nilai<=100))
{
ket = 'A';
bobot = 4.00;
}
else if ((nilai>=71)&&(nilai<=79))
{
ket = 'B+';
bobot = 3.50;
}
else if ((nilai>=65)&&(nilai<=70))
{
ket = 'B';
bobot = 3.00;
}
else if ((nilai>=61)&&(nilai<=64))
{
ket = 'C+';
bobot = 2.50;
}
else if ((nilai>=56)&&(nilai<=60))
{
ket = 'C';
bobot = 2.00;
}
else if ((nilai>=40)&&(nilai<=55))
{
ket = 'D';
bobot = 1.00;
}
else
{
ket = 'E';
bobot = 0.00;
}
cout <<"\n\n";
cout <<"\n================";
cout <<"\n= NILAI ANDA =";
cout <<"\n================";
cout <<"\n";
cout <<"\nAngka = " <
cout <<"\nHuruf = " <
cout <<"\nBobot = " <
getch();
}
3. Pernyataan Nested If-Else
Percabangan
If-Else secara Nested merupakan sebuah struktur percabangan bisa saja
berada di dalam struktur percabangan yang lain, demikian terus tanpa
batas, disesuaikan dengan persoalan yang dihadapi. Diproses atau
tidaknya percabangan yang berada di bagian dalam ditentukan oleh
diproses-tidaknya percabangan bagian luar.
Nested if merupakan pernyataan if berada didalam pernyataan if yang lainnya. Bentuk penulisan pernyataan Nested if adalah :
if(kondisi 1)
{
if(kondisi 1-1)
{
statement 1.1;
}
else
{
statement 1.2;
}
}
else
{
if(kondisi 2-1)
{
statement 2.1;
}
else
{
statement 2.2;
}
}
Kesimpulan:
Pernyatan Nested If-Else memiliki pengertian,
“Jika
kondisi 1 bernilai benar, dan jika kondisi 1-1 bernilai benar, maka
akan mengerjakan statement 1.1″ Apabila kondisi 1-1 bernilai salah,
maka akan mengerjakan statement 1.2″.
“Jika kondisi 1 bernilai
salah, dan jika kondisi 2-1 bernilai benar, maka akan mengerjakan
statement 2.1″ Apabila kondisi 2-1 bernilai salah, maka akan
mengerjakan statement 2.2″.
Source code :
# include <iostream.h>
# include <conio.h>
main ()
{
int bil;
clrscr();
cout <<"Masukkan bilangan [1-100]: "; cin >>bil;
if(bil<50)
{
if(bil%2) //Jika bil habis dibagi 2, maka
{
cout <<"Bilangan < 50?";
cout <<"Bilangan GENAP";
}
else //Jika bil tidak habis dibagi 2, maka
{
cout <<"Bilangan < 50";
cout <<"Bilangan GANJIL";
}
}
else
{
if(bil%2)
{
cout <<"Bilangan >= 50";
cout <<"Bilangan GENAP";
}
else
{
cout <<"Bilangan >= 50";
cout <<"Bilangan GANJIL";
}
}
getch();
}
Switch Case
Bentuk
dari Switch-case merupakan pernyataan yang dirancangan khusus untuk
menangani pengambilan keputusan yang melibatkan sejumlah atau banyak
alternatif penyelesaian. Pernyataan switch – case ini memiliki kegunaan
sama seperti if – else bertingkat.
Kontruksi If-Else yang
bertingkat-tingkat seringkali membingungkan pembacaan alur program.
Bahasa C++ menyediakan intruksi Switch
untuk memudahkan pembacaan
alur program bercabang yang sangat banyak. meskipun Switch didesain
untuk mengganti If-Else, akan tetapi Switch memiliki batasan:
Data yang diperiksa haruslah bertipe Integer (int) atau Karakter (char).
Range data yang diperiksa bernilai 0 s/d 255.
Bentuk penulisan perintah ini sebagai berikut :
switch (value)
{
case constanta 1 : statement 1;
break;
case constanta 2 : statement 2;
break;
…..
…..etc
default : statement x;
}
Ket:
Constanta 1, constanta 2, dst adalah yang akan dicocokkan dengan isi value.
Statement
adalah pernyataan yang akan di kerjakan jika value (bertipe Integer
atau Karakter) cocok dengan salah satu data dari constanta 1 ,
constanta 2 atau yang lainnya.
break adalah perintah untuk
mengakhiri statement. Apabila tidak ada break, komputer akan
mengeksekusi intruksi yang berada di bawahnya walaupun berada di case
yang berbeda.
default, bersifat optional. dieksekusi jika value tidak cocok dengan salah satu constanta yang tersedia.
Kesimpulan:
Setiap
cabang akan dijalankan jika syarat nilai konstanta tersebut dipenuhi
dan default akan dijalankan jika semua cabang diatasnya tidak
terpenuhi.
Pernyataan break menunjukan bahwa perintah siap keluar
dari switch. Jika pernyataan ini tidak ada, maka program akan
diteruskan kecabang – cabang yang lainnya.
source code:
# include <iostream.h>
# include <conio.h>
main()
{
int pil;
clrscr();
cout <<"Masukkan Bilangan [1-10] : "; cin >>pil;
switch(pil){ // pil merupakan variabel atau ekspresi yg akan diuji
case 1 : // nilai 1 & seterusnya adalah data yang akan di cocokkan dengan variabel
// statement akan dikerjakan apabila nilai sesuai dengan variabel
cout <<"\tSATU"; // \t merupakan tanda tabulasi
cout <<"\nBILANGAN GANJIL";
break; // perintah untuk mengakhiri suatu statement
case 2 :
cout <<"\tDUA";
cout <<"\nBILANGAN GENAP";
break;
case 3 :
cout <<"\tTIGA";
cout <<"\nBILANGAN GANJIL";
break;
case 4 :
cout <<"\tEMPAT";
cout <<"\nBILANGAN GENAP";
break;
case 5 :
cout <<"\tLIMA";
cout <<"\nBILANGAN GANJIL";
break;
case 6 :
cout <<"\tENAM";
cout <<"\nBILANGAN GENAP";
break;
case 7 :
cout <<"\tTUJUH";
cout <<"\nBILANGAN GANJIL";
break;
case 8 :
cout <<"\tDELAPAN";
cout <<"\nBILANGAN GENAP";
break;
case 9 :
cout <<"\tSEMBILAN";
cout <<"\nBILANGAN GANJIL";
break;
case 10 :
cout <<"\tSEPULUH";
cout <<"\nBILANGAN GENAP";
break;
default : //perintah ini akan dieksekusi apabila variabel yang diinputkan tidak sesuai dengan nilai yang tersedia
cout <<"\nAngka Melebihi 10?";
}
getch();
}