MODUL V PERCABANGAN
Percabangan digunakan untuk memecahkan persoalan untuk mengambil suatu keputusan diantara sekian pernyataan yang ada.
Pernyataan
if
Pernyataan if e pu yai pe gertia , Jika ko disi ber ilai be ar, aka peri tah aka dikerjakan dan jika tidak e e uhi syarat aka aka diabaika . Dari pe gertia tersebut dapat dilihat dari diagram alir berikut:
Bentuk Umum dari pernyataan if:
if (kondisi) { // pernyataan }
Contoh Program:
/**
* --- * Program5-1.cpp :
* --- **/
#include <iostream.h> #include <conio.h>
void main() { if (true) {
cout << "Perintah ini akan dijalankan\n"; Kondisi
Perintah
T
} 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.
/**
* --- * Program5-2.cpp :
* contoh penggunakan if
* ---
cout << "Besarnya potongan Rp. " << potongan << endl; jum_bayar = tot_beli - potongan;
cout << "Jumlah yang harus dibayarkan Rp . " << jum_bayar;
Hasil Eksekusi:
Total pembelian Rp. 70000 Besarnya potongan Rp. 14000
Jumlah yang harus dibayarkan Rp . 56000
Pernyataan
if - else
Pernyataan if e pu yai pe gertia , Jika ko disi ber ilai be ar, aka perintah-1 akan dikerjakan dan jika tidak memenuhi syarat maka akan mengerjakan perintah-2 . Dari pengertian tersebut dapat dilihat dari diagram alir berikut:
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.
Kondisi
Perintah-1 Perintah-2 T
/**
* --- * Program5-3.cpp :
* contoh penggunakan if-else
* --- **/
#include <iostream.h> #include <conio.h>
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
Pernyataan Nested
if
Nested if merupakan pernyataan if yang berada di dalam pernyataan if yang lain. Bentuk penulisan pernyataan nested if adalah:
// perintah
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.
/**
* --- * Program5-4.cpp :
* contoh penggunakan nested if
} 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
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.
if (kondisi1) { // perintah 1 } else if (kondisi2) { // perintah 2 } else {
Berikut ini adalah penyederhanaan dari kasus sebelumnya dengan menggunakan if-else majemuk.
/**
* --- * Program5-5.cpp :
* contoh penggunakan if-else majemuk * --- **/
#include <iostream.h> #include <conio.h>
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;
Pernyataan
switch - case
Pernyataan switch – case memiliki kegunaan yang sama seperti if – else bertingkat, tetapi untuk memeriksa data yang bertipe karakter atau integer. Bentuk penulisannya seperti berikut:
switch (ekspresi) { case kontanta-1: // pernyataan 1 break;
case konstanta-2: // perintah 2 break;
default:
// perintah }
Contoh Program:
/**
* --- * Program5-5.cpp :
* contoh penggunakan switch-case
* --- **/
#include <iostream.h> #include <conio.h>
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:
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 Program:
/**
* --- * Program5-5.cpp :
* contoh penggunakan switch-case
* --- **/
#include <iostream.h> #include <conio.h>
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
Tugas
Perusahaan DINGIN DAMAI, memberikan Honor tetap kepada karyawan kontraknya sebesar Rp.500.000,- per bulan, ditambah tunjangan sebagai berikut:
Tunjangan Jabatan
Golongan Persentase
1 5%
2 10%
3 15%
Tunjangan Pendidikan
Kode Pendidikan Persentase
1 SMU 2,5%
2 D3 5%
3 S1 7,5%
Honor Lembur
Jumlah jam kerja normal sebanyak 8 jam. Honor lembur diberikan jika jumlah jam kerja lebih dari 8 jam. Kelebihan jam kerja tersebut dikalikan dengan honor lembur per jam sebesar Rp. Rp. 2.500,- untuk setiap kelebihan jam kerja per hari.
Layar Masukan
Program Hitung Honor Karyawan Kontrak PT. DINGIN DAMAI
Nama Karyawan : ... Golongan : ... Pendidikan (1/2/3) : ... Jumlah Jam kerja : ...
Layar Keluaran
Karyawan yang bernama : .... Honor yang diterima