Praktikum Algoritma
dan Struktur Data
Blok Percabangan : IF, NESTED IF, dan SWITCH
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.
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
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(){
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 ; }
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(){
else {
cout << "Maaf, Anda Belum mendapat Diskon.." << 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.
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; }
MULAI
YA
NILAI > 80 Grade = A
TIDAK
YA
NILAI > 75 Grade = B+
TIDAK
YA
NILAI > 70 Grade = B
TIDAK
Grade = C
TAMPILKAN
GRADE
AKHIR
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;
return 0;
}
Hasil eksekusi program setelah dilakukan kompilasi dapat dilihat pada gambar 4.6
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;
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;
/* 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;
}
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;
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;
}
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