Selasa, 15 November 2016

Percabangan pada C++


AKADEMI KOMUNITAS NEGERI KAJEN

Percabangan pada C++

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();
}

Tidak ada komentar:

Posting Komentar