Anda di halaman 1dari 15

MODUL PERKULIAHAN

Praktikum Algoritma
dan Struktur Data
Blok Percabangan : IF, NESTED IF, dan SWITCH

Fakultas : Ilmu Komputer Tatap Muka Kode Mata Kuliah : W4119004

Program Studi : Teknik Informatika


04 Disusun Oleh : Chaerul Anhar Tanof, S.Kom,MMSI

Asbtrak Tujuan
Sesi ini membahas mengenai blok percabangan mahasiswa mampu memahami konsep
dalam sebuah program. Blok percabangan akan percabangan dan dapat
membuat program menentukan tindakan sesuai mengimplementasikan percabangan
dengan kondisi yang diberikan, sehingga program menggunakan IF, NESTED IF dan SWITCH
dapat menangani kondisi dan menjalankan fungsi
logis true / false untuk menentukan alur program.
PERCABANGAN

1. Blok Percabangan

Percabangan atau penyeleksian merupakan sebuah struktur dasar algoritma yang digunakan
untuk memecahkan persoalan dan mengambil keputusan atau decision dari sejumlah statemen
yang ada. Statemen yang terdapat dalam sebuah blok percabangan akan dieksekusi jika kondisi
yang didefinisikan terpenuhi atau bernilai benar, artinya jika kondisi dari statemen tersebut tidak
terpenuhi atau bernilai salah, maka statemen tersebut tidak akan dijalankan oleh program. Untuk
"mengajarkan" program agar dapat melakukan pilihan, maka kita dapat menggunakan blok
percabangan. Blok percabangan akan membuat program "berpikir" dan menentukan tindakan
sesuai dengan logika atau kondisi yang diberikan.

2 Blok percabangan menggunakan IF

Blok percabangan IF, merupakan pernyataan kondisi yang digunakan untuk mengambil
keputusan dan eksekusi stamen berdasarkan suatu kondisi. Pernyataan ini terdiri dari dua bentuk
yakni IF dan IF-ELSE-IF. Dimana struktur IF digunakan untuk penyeleksaian kondisi tunggal
sedangkan struktur IF-ELSE-IF digunakan untuk penyeleksian lebih dari satu pernyataan kondisi.
Pada saat CPU menjalankan program, jika ditemukan struktur percabangan if maka CPU
akan memeriksa kebenaran dari kondisi eksprersi yang disebutkan. Jika kondisinya bernilai benar
(true) maka perintah yang ada di dalamnya akan dijalankan, namun jika kondisinya bernilai salah
(false) maka CPU akan memeriksa pernyataan kondisi lainnya (else if, jika ada). Hal ini dilakukan
berulang-ulang dari setiap pernyataan kondisi yang ada pada program hingga ditemukan kondisi
yang bernilai benar. Jika tidak ditemukan kondisi yang bernilai benar, maka perintah yang ada
dalam blok pernyataan kondisi else yang akan dijalankan. Namun, jika pertanyaan kondisi
else tidak ditemukan juga pada program, maka pernyataan kondisi if secara keseluruhan akan
diabaikan dan program tidak mengekekusi perintah apapun di dalam strament if.

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
2 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
2.1 IF Tunggal

Blok pernyataan dengan kondisi IF digunakan untuk menyeleksi suatu kondisi tunggal.
Artinya, statemen pada kondisi tersebut akan dilaksanakan jika dan hanya jika persyaratan
kondisi yang disebutkan terpenuhi, jika tidak terpenuhi, maka program tidak memberikan hasil
apa-apa. atau lebih sederhananya dapat dikatakan, jika kondisi bernilai benar maka perintah
dalam kondisi tersebut akan dikerjakan, namun jika tidak memenuhi syarat maka kondisi akan
diabaikan. Perthatikan ilustrasi pada gambar 4.1

Gambar 4.1 Ilustrasi flowchart kondisi IF tungal

Pada alur tersebut dapat kita lihat, bahwa hanya terdapat satu kondisi yakni, pengecekan
nilai total belanja > 1 juta. Jika total belanja lebih besar dari 1 juta, program menjalankan perintah
untuk menampilkan pesan "Selamat, anda dapat hadiah !”. Namun, untuk nilai belanja dibawah
1 Juta, program akan mengabaikan perintah tersebut dan hanya menampilkan “Terima Kasih”

#include <iostream>
using namespace std;

int main(){

cout << "=== Program cek diskon ===" << endl;


int total_belanja;

cout << "Masukan total belanja: ";


cin >> total_belanja;

if(total_belanja > 10000000){


cout << "Selamat, anda mendapat hadiah" << endl;
}

cout << "Terima Kasih" << endl;


return 0;
}

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
3 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
2.2 IF - ELSE

Blok percabangan kondisi IF – ELSE digunakan untuk kondisi yang memiliki mininal dua
pernyataan. Jika kondisi yang diperiksa memenuhi syarat maka pernyataan pertama yang akan
dieksekusi, namun jika kondisi yang diperiksa tidak memenuhi syarat atau bernilai salah, maka
perintah pada pernyataan kedua yang akan di eksekusi. Berikut bentuk umum format IF-ELSE

if (kondisi) {
statemen jika kondisi terpenuhi ; }
else {
statemen jika kondisi tidak terpenuhi ; }

Perhatikan ilustrasinya pada gambar 4.2

IF
ELSE

Gambar 4.2 Ilustrasi flowchart kondisi IF-ELSE

Pada ilustrasi di gambar 4.2, program memiliki pernyataan kondisi cek total bayar > 1 juta.
Jika total bayar lebih besar dari 1 juta, maka program menyimpan nilai diskon 10% , kemudian
mengurangi total bayar dengan nilai diskon 10% dari total bayar. Sedangkan, jika total bayar
kurang dari 1 juta, maka program menampilkan pesan “Maaf anda belum mendapatkan diskon”
dan tidak melakukan pengurangan nilai total bayar. Pesan yang berada di blok abu-abu akan tetap
ditampilkan diluar hasil kondisi. karena keduanya bukan bagian dari blok kondisi if/else.

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
4 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Berikut contoh program IF-ELSE sesuai dengan algotirma flowchart di gambar 4.2

#include <iostream>
using namespace std;

int main(){

cout << "=== Program cek belanja ===" << endl;


int total_belanja;

cout << "Masukan total belanja: ";


cin >> total_belanja;

if(total_belanja > 1000000){


cout << "Selamat! ada mendapat Diskon 10%" << endl;
total_belanja = total_belanja - (total_belanja * 10/100);
}

else {
cout << "Maaf, Anda Belum mendapat Diskon.." << endl ;
}

cout << "total bayar : " << total_belanja << endl;


cout << "terima kasih " << endl;

return 0;
}

Hasil eksekusi program setelah dikompilasi dapat dilihat pada gambar 4.3 dan 4.4
Pada gambar 4.3, ketika nilai belanja memenuhi syarat dari kondisi IF maka, total bayar yang
ditampilkan sudah dipotong diskon 10%. Sedangkan pada gambar 4.4 dapat dilihat jika kondisi
tidak terpenuhi, maka yang ditampilkan t total bayar tanpa dikurangi diskon. Lalu pesan “terima
kasih” tetap ditampilkan, meskipun kondisi statement nya tidak sesuai. Karena pesan terima kasih
berada diluar blok kondisi if ataupun else.

Gambar 4.3 statement if terpenuhi Gambar 4.4 statemen if tidak terpenuhi

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
5 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
2.3 IF – ELSE IF (Majemuk)

Blok percabangan kondisi jenis ini merupakan perluasan dari struktur yang memiliki lebih
dari dua pernyataan kondisi. Jika kondisi satu tidak terpenuhi, maka akan dicek ke kondisi kedua,
ketiga dan seterusnya, dan jika seluruh kondisi tidak terpenuhi maka yang akan dijalankan adalah
perintah pada pernyataan else. Struktur dari blok percabangan ini adalah sebagai berikut :

if (kondisi1) {
statemen_jika_kondisi1_terpenuhi;
}
else if (kondisi2) {
statemen_jika_kondisi2_terpenuhi;
}
else if (kondisi3){
statemen_jika_kondisi3_terpenuhi;
}
....
else { statemen_jika_semua_kondisi_tidak_terpenuhi; }

Ilustrasi algoritmanya sebagaimana pada gambar 4.5

MULAI

YA
NILAI > 80 Grade = A

TIDAK

YA
NILAI > 75 Grade = B+

TIDAK

YA
NILAI > 70 Grade = B

TIDAK

Grade = C

TAMPILKAN
GRADE

AKHIR

Gambar 4.5 Ilustrasi flowchart kondisi IF-ELSE-IF

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
6 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Berikut contoh program dari percabangan IF-ELSE-IF sesuai algoritma pada gambar 4.5

#include <iostream>
using namespace std;

int main(){

int nilai;
string grade;

cout << "=== Program Grade Nilai ===" << endl;


cout << "Inputkan nilai akhir anda: ";
cin >> nilai;

// menggunakan percabangan if/esle/if


if (nilai >= 80 ) {
grade = "A";
} else if (nilai >= 75) {
grade = "B+";
} else if (nilai >= 70) {
grade = "B";
} else if (nilai >= 65) {
grade = "C+";
} else {
grade = "C";
}

cout << "Grade anda: " << grade << endl;

return 0;
}

Hasil eksekusi program setelah dilakukan kompilasi dapat dilihat pada gambar 4.6

Gambar 4.6 hasil eksekusi progam if-else-if

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
7 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
2.4 Blok percabangan bersarang (Nested IF)

Bahasa pemrograman C++ seperti bahasa pemgoraman lainnya, memungkinkan kita untuk
membuat pernyataan IF di dalam pernyataan IF, atau blok percabangan di dalam suatu blok
kondisi percabangan. Hal ini disebut dengan percabangan bersarang atau nested if. Kondisi ini
memungkinkan kita untuk membuat tahapan penyeleksian kondisi yang berlipat-lipat. Nested if
merupakan pernyataan if berada didalam pernyataan if yang lainnya. struktur penulisan
pernyataan nested if adalah sebagai berikut :

if (kondisi1) {5
statemen_jika_kondisi1_terpenuhi;
}
else if (kondisi 2) {
if (kondisi 1 dalam kondisi 2) {
statemen_jika_kondisi_terpenuhi;
}
else if (kondisi 2 dalam kondisi 2) {
statemen_jika_kondisi_terpenuhi;
}
else {
statemen_jika kondisi 1 dalam kondisi 2 tidak terpenuhi;
}
}
else { statemen_jika kondisi 2 tidak terpenuhi;

Contoh kasus 1 : Komisi agen penjualan


Suatu perusahaan akan memberikan komisi kepada sales agent atas target pencapain target
harian dengan ketentuan sebagai berikut:
• Bila sales agent dapat menjual barang mencapai setidaknya 300.000, diberikan uang
jasa sebesar 15.000 ditambah dengan komisi 5% dari penjualan yang diperoleh.
• Bila sales agent dapat menjual barang lemcapai lebih dari 300.000, diberikan uang jasa
sebesar 30.000 ditambah dengan komisi Rp. 10% dari penjualan yang diperoleh.
• Namun, bila sales agent dapat menjual barang hingga mencapai diatas dari 500.000,
maka diberikan uang jasa sebesar 50.000 ditambah dengan komisi Rp. 15% dari
penjualan yang diperoleh.

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
8 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Contoh program untuk case tersebut :

#include<iostream>
using namespace std;

int main()
{
float penjualan, jasa, komisi, total;
cout << "Pendapatan Hari ini Rp. :";
cin >> penjualan;

// jika penjualan mencapai 300 ribu


if (penjualan >= 0 && penjualan <= 300000) {
jasa = 15000;
komisi = 0.05 * penjualan;
}
// jika penjualan tidak sama dengan 300 ribu (kondisi 2)
else {
// nested if
// jika penjualan tidak lebih dari 500 ribu
if(penjualan >= 0 && penjualan <= 500000){
jasa = 30000;
komisi = 0.10 * penjualan;
}
// kondisi false, pendapatan lebih dari 500 ribu
else if ( penjualan > 500000){
jasa = 50000;
komisi = 0.15 * penjualan;
}
else {
jasa = 0;
komisi = 0;
}
}

/* menghitung total */
total = komisi + jasa;
cout << "Uang Jasa Rp. " << jasa << endl;
cout << "Uang Komisi Rp. " << komisi << endl;
cout << "============================="<<endl;
cout << "Total komisi harian Rp. "<< total <<endl;

return 0;
}

Hasil eksekusi program setelah di compile

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
9 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Contoh kasus 2 : kodifikasi penjualan buku
Sebuah toko buku menjual beberapa buah buku dengan ketentuan sebagai berikut :
• Jika kode buku A1, maka judul bukunya adalah "Aljabar Linear" dengan harga buku
190.000, jika memasukan kode member G, maka harga buku menjadi 175.000. selain
kode member G, harga buku menjadi normal 190.000.
• Jika kode buku B2, maka judulnya adalah "Dasar Pemrograman" dengan harga buku
135.000. jika memasukan kode member G, maka harga buku menjadi 115.000, jika
kode member yang dimasukan M, maka harga buku menjadi 125.000. selain kode
member G dan M, harga buku menjadi normal, 135.000
• Jika user tidak menginput kode buku selain A1 dan B1, maka akan dicetak “salah
memasukan kode buku”

#include <iostream>
using namespace std;

int main( ){
string kode, kodeMember, namaBuku;
long harga=0;

cout<<"Masukan Kode Buku : ";


cin>>kode;
cout<<"Masukan Kode Member : ";
cin>>kodeMember;
if (kode == "A1") {
namaBuku = "Aljabar Linear";
if (kodeMember=="G" || kodeMember =="g"){
harga=175000;
} else {
harga = 190000;
}
} else if (kode=="B2") {
namaBuku = "Dasar Pemrograman";
if (kodeMember=="G"){
harga=115000;
} else if (kodeMember=="M"){
harga = 125000;
}else {
harga = 135000;
}
} else {
cout<<"Salah Kode Buku"<<endl;
}
cout<< "----------------------"<< endl;
cout<< "Judul Buku : "<< namaBuku << endl;
cout<< "Harga Buku : "<< harga << endl;
return 0;
}

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
10 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
3 Blok percabangan menggunakan SWITCH

switch adalah merupakan salah satu pernyataan yang termasuk dalam fungsi percabangan,
sama seperti dengan IF. Statemen switch ini akan memilih pilihan yang paling sesuai dengan
ekspresi kondisi yang disebutkan dalam konstansta switch atau case. Pada umumnya switch tidak
jauh berbeda dengan fungsi percabangan IF, yang membedakannya adalah : jika pada fungsi if,
kita mengevaluasi kebenaran dari sebuah ekspresi, seperti operasi logika, relasi dan perbandingan
yang menghasilkan nilai benar atau salah baru kemudian akan dijalankan statemen yang ada pada
kondisi yang bernilai benar, sedangkan switch dikhususkan untuk penyeleksian ekspresi
berdasarkan nilai. Dalam pernyataan switch, penyeleksian dilakukan dengan memeriksa kondisi
nilai dari suatu variabel yang bertipe integer, char atau enum dan menemukan kesamaan nilai
yang dicari dengan salah satu case yang ada di dalam pernyataan switch.
switch tidak disarankan untuk penyelesaian pilihan yang melibatkan jangkauan nilai, akan
tetapi banyak digunakan pada pilihan berupa konstanta misalnya untuk membuat pilihan menu
pada program. Struktur dari switch adalah sebagai berikut :

switch (nilai_yang_dibandingkan) {
case nilai_1:
blok_pernyataan1;
break;
case nilai_2:
blok_pernyataan2;
break;
...
default:
blok_pernyataan_n;
}

Cara kerjanya:
• switch akan mengevaluasi nilai kunci dan apabila isinya sama dengan nilai_1, maka blok
pernyataan 1 akan dijalankan sampai menemukan break untuk keluar dari blok switch.
• Bila nilai kunci tidak sama isinya dengan nilai_1, maka akan dicocokkan lagi dengan
nilai_2. dan apabila isinya sama dengan nilai_2, maka blok pernyataan 2 akan dijalankan
sampai menemukan break untuk keluar dari blok switch.
• Namun, apabila isi pilihan tidak sesuai dengan nilai_1, nilai_2 dan seterusnya maka secara
otomatis yang dijalankan adalah blok pernyataan default.

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
11 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Contoh program sederhana, menentukan hari berdasarkan input angka 1-7
Perhatikan script berikut untuk gambaran mengunakan switch

#include <iostream>
using namespace std;

int main() {
int bil;
int angka;
cout<<"Masukkan sebuah angka (1 .. 7): ";
cin>>angka;

switch (angka) {
case 1:
cout<<"Hari ke - "<<angka<<"adalah AHAD";
break;
case 2:
cout<<"Hari ke - "<<angka<<" adalah SENIN";
break;
case 3:
cout<<"Hari ke - "<<angka<<" adalah SELASA";
break;
case 4:
cout<<"Hari ke - "<<angka<<" adalah RABU";
break;
case 5:
cout<<"Hari ke - "<<angka<<" adalah KAMIS";
break;
case 6:
cout<<"Hari ke - "<<angka<<" adalah JUMAT";
break;
case 7:
cout<<"Hari ke - "<<angka<<" adalah SABTU";
break;

default:
cout<<"Kode hari tidak terdaftar, masukan 1 - 7 ";
}

return 0;
}

Hasil eksekusi setelah di compile :

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
12 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Switch banyak digunakan untuk membuat menu. Berikut adalah contoh program implementasi
menu yang berisi berbagai program perhitungan matematika sederhana.

#include<iostream.>
using namespace std;

main () {
int pilih;
cout<< " Pilih ruang bangunan geometris :"<<endl;
cout<< endl;
cout<< " 1. Bangun Segitiga "<<endl;
cout<< " 2. Bangun Lingkaran "<<endl;
cout<< " 3. Bangun Persegi Empat "<<endl;
cout<< endl;
cout<<"================================================="<<endl;
cout<< endl << endl;
cout<<" >> Silahkan Pilih : ";
cin >> pilih;
cout << endl;
switch (pilih){

case 1 :
cout<<" !Rumus Luas Segitiga Adalah 1/2 x Alas x Tinggi "<<endl<<endl;
double A,T,Rumus;
cout<<" Input Alasnya = ";
cin>>A;
cout<<" Input Tingginya = ";
cin>>T;
Rumus = A*T/2;
cout<<endl;
cout<<" Maka Hasilnya = "<<Rumus<<" Cm Persegi "<<endl;
break;

case 2 :
cout<<" !Rumus Luas Lingkaran Adalah (V= 22/7 ) x Jari-Jari x Jari-Jari "<<endl<<endl;
double R;
cout<<" Input Jari-Jarinya = ";
cin>>R;
cout<<endl;
cout<<" Maka Hasilnya = "<<R*R*22/7<<" Cm Persegi "<<endl;
break;

case 3 :
cout<<" !Rumus Luas Persegi Empat Adalah Sisi x Sisi "<<endl<<endl;
double S;
cout<<" Input Sisinya = ";
cin>>S;
cout<<endl;
cout<<" Maka Hasilnya = "<<S*S<<" Cm Persegi "<<endl;
break;

default:
cout<<" [ Pilihan Diluar Jangkauan ] "<<endl;
}
return 0;
}

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
13 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Jika dijalankan, maka hasilnya menjadi seperti berikut :

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
14 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
DAFTAR PUSTAKA
1. FourtMark Allen Weiss, Fourth Edition Data Structures and Algorithm Analysis in C++, Pearson, 2014.
2. Kjell Backman, Structured Programmming with c++, 2012.
3. Budi R, Pemrograman C++, Informatika, Bandung, 2010.
4. Sjukani M, Algoritma: Algoritma dan Struktur Data 1 dengan C, C++ dan Java Edisi 6. Jakarta, Mitra
Wacana Med, 2010.
5. Andri Kristanto, Algoritma & Pemrograman dengan C++ Edisi 2, Graha Ilmu, Yogyakarta, 2009.
6. Ahmad Muhardian, Memahami 6 Macam Bentuk Blok Percabangan pada C++
https://www.petanikode.com/cpp-percabangan/. Diakses 20 Maret 2020 jam 17.00
7. http://www.c4learn.com/cplusplus/cpp-if-statement/. Diakses 20 Maret 2020 jam 15.25

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
15 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id

Anda mungkin juga menyukai