Percabangan digunakan untuk memecahkan persoalan untuk mengambil suatu keputusan diantara sekian pernyataan yang ada.

C++ Percabangan
1. Pernyataan if
Pernyataan if mempunyai pengertian, "Jika kondisi bernilai benar, maka perintah akan dikerjakan dan jika tidak memenuhi syarat maka akan diabaikan". Dari pengertian tersebut dapat dilihat dari diagram alir berikut:

Flow Chart if
Bentuk Umum dari pernyataan if:
if (kondisi) {
// pernyataan
}
Contoh Program:
#include <iostream.h>
#include <conio.h>
/**
*bundet.com
*Contoh pernyataan if
*/
void main() {
if (true) {
cout << "Perintah ini akan dijalankan\n";
}
if (!true) {
cout << "Perintah ini TIDAK akan dijalankan\n";
}
if (1+1 == 2 && 100 > 99) {
cout << "Anda benar\n";
}
getch();
}
Pada contoh di atas, perintah akan dijalankan jika kondisi akhir bernilai benar. Berikut ini contoh program untuk menentukan besarnya potongan dari pembelian barang dengan kriteria:
- Tidak ada potongan jika total pembelian kurang dari Rp. 50.000,-
- Jika total pembelian lebih dari atau sama dengan Rp. 50.000,- potongan yang diterima sebesar 20% dari total pembelian.
Contoh lain penggunaan pernyataan if dalam Program Belanja
#include <iostream.h>
#include <conio.h>
/**
*bundet.com
*Contoh penggunakan if dalam program Belanja
*/
void main() {
double tot_beli, potongan = 0, jum_bayar = 0;
cout << "Total pembelian Rp. ";
cin >> tot_beli;
if ( tot_beli >= 50000 ) {
potongan = 0.2 * tot_beli;
}
cout << "Besarnya potongan Rp. " << potongan << endl;
jum_bayar = tot_beli - potongan;
cout << "Jumlah yang harus dibayarkan Rp . " << jum_bayar;
getch();
}
Hasil Eksekusi:
Total pembelian Rp. 70000
Besarnya potongan Rp. 14000
Jumlah yang harus dibayarkan Rp. 56000
2. Pernyataan if - else
Pernyataan if mempunyai pengertian, "Jika kondisi bernilai benar, maka perintah-1 akan dikerjakan dan jika tidak memenuhi syarat maka akan mengerjakan perintah-2". Dari pengertian tersebut dapat dilihat dari diagram alir berikut:

Flow Chart if-else
Bentuk Umum dari pernyataan if-else:
if (kondisi) {
// pernyataan 1
}
else {
// pernyataan 2
}
Berikut ini contoh program untuk menentukan besarnya potongan dari pembelian barang dengan kriteria:
- Jika total pembelian kurang dari Rp. 50.000,- maka potongan yang diterima sebesar 5% dari total pembelian.
- Jika total pembelian lebih dari atau sama dengan Rp. 50.000,- potongan yang diterima sebesar 20% dari total pembelian.
Contoh Program:
#include <iostream.h>
#include <conio.h>
/**
*bundet.com
*Contoh penggunakan if-else
*/
void main() {
double tot_beli, potongan = 0, jum_bayar = 0;
cout << "Total pembelian Rp. ";
cin >> tot_beli;
if ( tot_beli >= 50000 ) {
potongan = 0.2 * tot_beli;
}
else {
potongan = 0.05 * tot_beli;
}
cout << "Besarnya potongan Rp. " << potongan << endl;
jum_bayar = tot_beli - potongan;
cout << "Jumlah yang harus dibayarkan Rp . " << jum_bayar;
getch();
}
Hasil Eksekusi:
Total pembelian Rp. 49000
Besarnya potongan Rp. 2450
Jumlah yang harus dibayarkan Rp. 46550
3. Pernyataan Nested if
Nested if merupakan pernyataan if yang berada di dalam pernyataan if yang lain. Bentuk umum penulisan pernyataan nested if adalah sebagai berikut:
if (kondisi1) {
if (kondisi2) {
// perintah
}
else {
// perintah
}
}
else {
if (kondisi3) {
// perintah
}
else {
// perintah
}
}
Contoh Kasus:
Suatu perusahaan memberikan komisi kepada para salesman dengan ketentuan sebagai berikut:
- Bila salesman dapat menjual barang hingga Rp. 2.000.000, - maka akan diberikan uang jasa sebesar Rp. 500.000,- ditambah dengan uang komisi Rp. 10% dari pendapatan yang diperoleh hari itu.
- Bila salesman dapat menjual barang di atas Rp. 2.000.000, - maka akan diberikan uang jasa sebesar Rp. 500.000,- ditambah dengan uang komisi Rp. 15% dari pendapatan yang diperoleh hari itu.
- Bila salesman dapat menjual barang di atas Rp. 5.000.000, - maka akan diberikan uang jasa sebesar Rp. 1.000.000,- ditambah dengan uang komisi Rp. 20% dari pendapatan yang diperoleh hari itu.
Contoh program:
#include <iostream.h>
#include <conio.h>
/**
*bundet.com
*Contoh penggunakan nested if
*Hitung total pendapatan
*/
void main() {
long pendapatan, jasa = 0, komisi = 0, total = 0;
cout << "Pendapatan hari ini Rp. ";
cin >> pendapatan;
if ( pendapatan > 0 && pendapatan <= 2000000) {
jasa = 500000;
komisi = 0.1 * pendapatan;
}
else {
if ( pendapatan <= 5000000 ) {
jasa = 500000;
komisi = 0.15 * pendapatan;
}
else {
jasa = 1000000;
komisi = 0.2 * pendapatan;
}
}
total = komisi + jasa;
cout << "Uang jasa Rp. " << jasa << endl;
cout << "Uang Komisi Rp. " << komisi << endl;
cout << "------------------------------" << endl;
cout << "Hasil Total Rp. " << total << endl;
getch();
}
Hasil Eksekusi:
Pendapatan hari ini Rp. 3500000
Uang jasa Rp. 500000
Uang Komisi Rp. 524999
------------------------------
Hasil Total Rp. 1024999
4. Pernyataan if-else Majemuk
Bentuk dari if-else majemuk bertingkat sebenarnya mirip dengan nested if. Keuntungan penggunakan if-else bertingkat dibanding dengan nested if adalah bentuk penulisannya yang lebih sederhana. Bentuk umum penulisannya adalah sebagai berikut:
if (kondisi1) {
// perintah 1
}
else if (kondisi2) {
// perintah 2
}
else {
// perintah N
}
Berikut ini adalah penyederhanaan dari contoh kasus program sebelumnya dengan menggunakan if-else majemuk.
#include <iostream.h>
#include <conio.h>
/**
*bundet.com
*Penggunakan if-else majemuk
*Hitung total pendapatan
*/
void main() {
long pendapatan, jasa = 0, komisi = 0, total = 0;
cout << "Pendapatan hari ini Rp. ";
cin >> pendapatan;
if ( pendapatan > 0 && pendapatan <= 2000000) {
jasa = 500000; komisi = 0.1 * pendapatan;
}
else if ( pendapatan <= 5000000 ) {
jasa = 500000; komisi = 0.15 * pendapatan;
}
else {
jasa = 1000000; komisi = 0.2 * pendapatan;
}
total = komisi + jasa;
cout << "Uang jasa Rp. " << jasa << endl;
cout << "Uang Komisi Rp. " << komisi << endl;
cout << "------------------------------" << endl;
cout << "Hasil Total Rp. " << total << endl;
getch();
}
5. Pernyataan switch - case
Pernyataan switch -- case memiliki kegunaan yang sama seperti if -- else bertingkat, tetapi untuk memeriksa data yang bertipe karakter atau integer. Secara umum bentuk penulisannya adalah sebagai berikut:
switch (ekspresi) {
case kontanta-1:
// pernyataan 1 break;
case konstanta-2:
// perintah 2 break;
default:
// perintah
}
Contoh Program:
#include <iostream.h>
#include <conio.h>
/**
*bundet.com
*Penggunakan switch-case
*Menentukan hari
*/
void main() {
int nHari;
cout << "Masukkan No Hari [1..7] : ";
cin >> nHari;
cout << "Ini adalah hari ";
switch (nHari) {
case 1:
cout << "Ahad";
break;
case 2:
cout << "Senin";
break;
case 3:
cout << "Selasa";
break;
case 4:
cout << "Rabu";
break;
case 5:
cout << "Kamis";
break;
case 6:
cout << "Jum'at";
break;
case 7:
cout << "Sabtu";
break;
default:
cout << "Kiamat :))";
}
getch();
}
Hasil Eksekusi:
Masukkan No Hari [1..7] : 5
Ini adalah hari Kamis
Pernyataan break menunjukkan siap keluar dari switch. Jika pernyataan ini tidak ada, maka program akan diteruskan ke cabang-cabang yang lainnya.
Contoh lainnya dalam program menentukan jenis kelamin
#include <iostream.h>
#include <conio.h>
/**
*bundet.com
*Penggunakan switch-case
*Menentukan jenis kelamin
*/
void main() {
char jkl;
cout << "Gender Anda (L/P) : ";
cin >> jkl;
cout << "Anda adalah ";
switch (jkl) {
case 'p':
case 'P':
cout << "Perempuan";
break;
case 'l':
case 'L':
cout << "Laki-laki";
break;
default:
cout << "Complecated";
}
getch();
}
Hasil Eksekusi:
Gender Anda (L/P) : l
Anda adalah Laki-laki
Semoga bermanfaat & selamat belajar!
Sumber:
© STMIK El Rahma Yogyakarta. Disusun Oleh Bp. Eko Riswanto, S.T., M.Cs,