OPERASI KONDISI
S1 PTE’18 OFF A
Salah satu permasalahan yang pasti akan dijumpai dalam pembuatan program
adalah suatu percabangan. Percabangan yang dimaksud di sini tidak lain adalah suatu
pemilihan statemen yang akan di eksekusi dimana pemilihan tersebut berdasarkan
kondisi tertentu. Di dalam C++, terdapat 2 jenis struktur blok (blok program) yang
digunakan untuk mengimplementasikan suatu percabangan, yaitu dengan menggunakan
struktur if dan struktur switch. Struktur if sendiri pada artikel ini akan dibagi menjadi 4
yaitu : pernyataan if satu kondisi, pernyataan if dua kondisi / if-else, pernyataan if lebih
dari dua kondisi / if-else majemuk dan pernyataan if bersarang / nested if. Statemen-
statemen yang ada dalam sebuah blok percabangan akan dieksekusi hanya jika kondisi
yang didefinisikan bernilai benar (terpenuhi). Artinya jika kondisi bernilai salah (tidak
terpenuhi), maka statemen-statemen tersebut tidak akan dieksekusi atau akan diabaikan
oleh compiler.
1. Pernyataan If
Penulisan kondisi harus di dalam kurung (……) dan berupa ekspresi boolean
(hasil logika true atau false, dan pernyataan dapat berupa sebuah pernyataan
tunggal, pernyataan majemuk atau pernyataan kosong.
if (kondisi) {
Pernyataan1;
Pernyataan2;
...;
2. Pernyataan If – Else
else
Pernyataan-2;
if (kondisi) {
Pernyataan1;
...;
} else { Pernyataan2;
...;
3. If – Else Bertingkat
i. Nested If
if (kondisi1)
if (kondisi2)
Pernyataan;
Pernyataan;
ii. If – Else If
if (kondisi1) {
Pernyataan...;
...;
else if (kondisi2) {
Pernyataan...;
...;
else { Pernyataan...;
...;
switch (ekspresi) {
case konstanta1:
pernyataan1;
break;
case konstanta2:
pernyataan2;
break;
case konstanta3:
pernyataan3;
break;
...
case konstanta-n:
pernyataan-n;
break;
default:
pernyataan-umum;
Setiap cabang akan dijalankan jika syarat nilai konstanta terpenuhi dan default
akan dijalankan jika semua cabang diatasnya tidak terpenuhi. Pernyataan break
menunjukkan setelah eksekusi pernyataan, maka program akan keluar dari
switch. jika pernyataan ini tidak ada, maka program akan diteruskan ke
cabang-cabang yang lainnya.
Tugas Praktikum (Masalah 1)
HargaTotal=hkp+hmm+hpe;
HTD10=(hkp+hmm+hpe)-((hkp+hmm+hpe)*0.1);
HTD20=(hkp+hmm+hpe)-((hkp+hmm+hpe)*0.2);
HTD30=(hkp+hmm+hpe)-((hkp+hmm+hpe)*0.3);
cout<<"\n\n";
cout<< "=============================================\n";
cout<<"Total Harga = \b"<<HargaTotal;
cout<<"\n";
cout<< "=============================================\n";
cout<< "\n";
cout<< "Harga Setelah Diskon :\n";
if( HargaTotal <75000 )
{
cout<<"Harga Total Anda (Disc.10%) = Rp. \b"<<HTD10;
}
cout<<"\n";
if( HargaTotal >=75000 && HargaTotal <=100000 )
{
cout<<"Harga Total Anda (Disc.20%) = Rp. \b"<<HTD20;
}
cout<<"\n";
if( HargaTotal >100000 )
{
cout<<"Harga Total Anda (Disc.30%) = Rp. \b"<<HTD30;
}
cout<<"\n\n";
cout<< "=============================================\n";
cout<< " \n";
cout<< "**TERIMAKASIH TELAH BERBELANJA DI TOKO KAMI**\n";
cout<< " *** TOKO BERKAH SEJAHTERA *** \n";
cout<< " \n";
cout<< "=============================================\n";
return 0;
}
Output Program :
Flowchart :
Mulai
HargaTotal=hkp+hmm+hpe;
HTD10=(hkp+hmm+hpe)-((hkp+hmm+hpe)*0.1);
HTD20=(hkp+hmm+hpe)-((hkp+hmm+hpe)*0.2);
HTD30=(hkp+hmm+hpe)-((hkp+hmm+hpe)*0.3);
A
A
if(
HargaTotal Ya
<75000 )
HTD10=(hkp+hmm+hpe)-((hkp+hmm+hpe)*0.1);
Tidak
if( HargaTotal
>=75000 &&
HargaTotal Ya
<=100000 )
HTD20=(hkp+hmm+hpe)-((hkp+hmm+hpe)*0.2);
Tidak
if(
HargaTotal Ya
>100000 )
HTD30=(hkp+hmm+hpe)-((hkp+hmm+hpe)*0.3);
Selesai
Penjelasan Program :
Identifikasi Program :
1. Header = #include <iostream>
#include <conio.h>
#include <stdio.h>
2. Fungsi = int main()
3. Tipe data = int , char, dan float
4. Variabel = hkp, hmm, hpe, nama, HTD10, HTD20, HTD30, dan HargaTotal
5. Assignment :
a. HTD10 = (hkp+hmm+hpe)-((hkp+hmm+hpe)*0.1);
b. HTD20 = (hkp+hmm+hpe)-((hkp+hmm+hpe)*0.2);
c. HTD30 = (hkp+hmm+hpe)-((hkp+hmm+hpe)*0.3);
d. HargaTotal = hkp+hmm+hpe
Tugas Praktikum (Masalah 2)
Compiler : CodeBlocks
Script Program :
#include <iostream>
#include <conio.h>
#include <stdio.h>
using namespace std;
int main()
{
int hb1,hb2,hb3;
char nama [30];
float HTK15,HTK20,HTK30,HTP;
cout<< "=============================================\n";
cout<< " \n";
cout<< " *** PT. MAKMUR SUKSES JAYA *** \n";
cout<< " *** KOTA MALANG, JAWA TIMUR *** \n";
cout<< " \n";
cout<< "=============================================\n";
cout<< " \n";
cout<< "==== Nama Kasir ==== : \b"; gets(nama);
cout<< "==== Nama Salesman ==== : \b"; gets(nama);
cout<< " \n\n";
cout<< "Harga Penjualan Barang 1 : \b";
cin>> hb1;
cout<< "Harga Penjualan Barang 2 : \b";
cin>> hb2;
cout<< "Harga Penjualan Barang 3 : \b";
cin>> hb3;
HTP=hb1+hb2+hb3;
HTK15=15000+((HTP)*0.15);
HTK20=30000+((HTP)*0.2);
HTK30=50000+((HTP)*0.3);
cout<<"\n\n";
cout<< "=============================================\n";
cout<<"Total Pendapatan = \b"<<HTP;
cout<<"\n";
cout<< "=============================================\n";
cout<< "\n";
cout<< "=============================================\n";
cout<< " \n";
cout<< " **TERIMAKASIH** \n";
cout<< " *** PT. MAKMUR SUKSES JAYA *** \n";
cout<< " \n";
cout<< "=============================================\n";
return 0;
}
Output Program :
Flowchart : Mulai
HTP=hb1+hb2+hb3;
HTK15=15000+((HTP)*0.15);
HTK20=30000+((HTP)*0.2);
HTK30=50000+((HTP)*0.3);
B
B
if( HTP
<=60000 ) Ya
HTK15=15000+((HTP)*0.15);
Tidak
if( HTP
>60000 && Ya
HTP<10000 )
HTK20=30000+((HTP)*0.2);
Tidak
if( HTP
Ya
>100000 )
HTK30=50000+((HTP)*0.3);
Selesai
Penjelasan Program :
Identifikasi Program :
Compiler : CodeBlocks
Script Program :
#include <iostream>
#include <conio.h>
#include <stdio.h>
using namespace std;
int main()
{
int nmtespa,nmsaintek,nmsoshum;
char nama [30];
float NMTesPA,NMSainTek,NMSosHum,NilaiAkhir;
cout<< "=============================================\n";
cout<< " \n";
cout<< " *** NILAI AKHIR CALON MAHASISWA BARU *** \n";
cout<< " *** UNIVERSITAS NEGERI MALANG *** \n";
cout<< " \n";
cout<< "=============================================\n";
cout<< " \n";
cout<< "Masukkan Nama Mahasiswa : \b"; gets(nama);
cout<< " \n";
cout<< "Nilai Murni Tes Akademik : \b";
cin>> nmtespa;
cout<< "Nilai Murni SainTek : \b";
cin>> nmsaintek;
cout<< "Nilai Murni SosHum : \b";
cin>> nmsoshum;
NMTesPA=nmtespa*0.1;
NMSainTek=nmsaintek*0.45;
NMSosHum=nmsoshum*0.45;
NilaiAkhir=NMTesPA+NMSainTek+NMSosHum;
cout<<"\n";
cout<< "=============================================\n";
cout<<"\n";
cout<<"Mahasiswa yang Bernama = \b"<<nama;
cout<<"\n";
cout<<"Memiliki Nilai Akhir = \b"<<NilaiAkhir;
cout<<"\n";
cout<<"\n";
cout<< "=============================================\n";
cout<< " \n";
int pilihan;
cout<<"Silahkan Masukkan Nomor Jurusan Pilihan Anda (Ex: 1) : \b";
cin>> pilihan;
cout<<"\n";
switch(pilihan){
case 1:
cout<< "=============================================\n";
cout << "\nSelamat! Anda Diterima di Jurusan Geografi\n";
cout<<"\n";
cout<< "=============================================\n";
break;
case 2:
cout<< "=============================================\n";
cout<< "\nSelamat! Anda Diterima di Jurusan Sejarah \n";
cout<<"\n";
cout<< "=============================================\n";
break;
case 3:
cout<< "=============================================\n";
cout<< "\nSelamat! Anda Diterima di Jurusan Fisika \n";
cout<<"\n";
cout<< "=============================================\n";
break;
case 4:
cout<< "=============================================\n";
cout<<"\nSelamat! Anda Diterima di Jurusan Matematika\n";
cout<<"\n";
cout<< "=============================================\n";
break;
default:
cout<<"\n";
cout << "Invalid Number!\nMake sure your input is correct.";
cout<<"\n";
}
return 0;
}
Output Program :
Flowchart :
Mulai
NMTesPA=nmtespa*0.1;
NMSainTek=nmsaintek*0.45;
NMSosHum=nmsoshum*0.45;
NilaiAkhir=NMTesPA+NMSainTek+NMSosHum;
C
C
if( NilaiAkhir Ya
>= 0 )
Tampilkan
1. Jurusan Geografi D
Tidak
Tampilkan
Ya
if( NilaiAkhir 2. Jurusan Sejarah E
>= 31 )
Tidak Tampilkan
Ya
if( NilaiAkhir 3. Jurusan Fisika F
>= 56 )
Tidak Tampilkan
Ya
if( NilaiAkhir 4. Jurusan Matematika G
>= 81 )
Switch(pilihan) Selamat! Anda Diterima di
D
Case 1: Jurusan Geografi
Selesai
Penjelasan Program :
Identifikasi Program :
Compiler : CodeBlocks
Script Program :
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <math.h>
using namespace std;
int main()
{ int pilihan;
cout<< "=============================================\n";
cout<< "=============================================\n\n";
cout<<" *** MENU PERHITUNGAN RUMUS ***\n\n";
cout<< "=============================================\n";
cout<< "=============================================\n\n";
cout<<"1. Rumus Menghitung Luas Permukaan Balok\n";
cout<<"2. Rumus Menghitung Volume Kerucut\n";
cout<<"3. Rumus Menghitung Volume Debit Air\n";
cout<<"4. Rumus Menghitung Tegangan Listrik\n";
cout<<"5. Rumus Menghitung Arus Listrik\n";
cout<<"6. Rumus Menghitung Gelang Warna Resistor\n";
cout<<"7. Rumus Untuk Mengetahui Tahun Kabisat\n";
cout<<"\nSilahkan Masukkan Nomor Pilihan Anda (Ex: 1) : \b";
cin>> pilihan;
cout<<"\n";
switch(pilihan){
case 1:
int p,l,t,r,vol,s,R,i,V,tahun,a,b,c,e,f,g,h,j,k;
cout<< "=============================================\n";
cout<< " \n";
cout<< "*** Rumus Menghitung Luas Permukaan Balok ***\n";
cout<< " \n";
cout<< "=============================================\n\n";
cout<<"Masukkan nilai p (panjang) = \b";
cin>>p;
cout<< " \n";
cout<<"Masukkan nilai l (lebar) = \b";
cin>>l;
cout<< " \n";
cout<<"Masukkan nilai t (tinggi) = \b";
cin>>t;
cout<< " \n";
float Lp;
Lp=(2*p*l)+(2*p*t)+(2*l*t);
cout<<"Nilai Luas permukaan balok adalah = "<<Lp<<endl;
break;
case 2:
cout<< "=============================================\n";
cout<< " \n";
cout<< " *** Rumus Menghitung Volume Kerucut ***\n";
cout<< " \n";
cout<< "=============================================\n\n";
cout<<"Masukan Nilai Jari -Jari = ";
cin>> r;
cout<< " \n";
cout<<"Masukan Nilai tinggi Kerucut = ";
cin>>t ;
cout<< " \n";
float v;
v=3.14/3*r*r*t;
cout<<"Nilai Volume Kerucut Adalah = " <<v;
cout<< " \n";
break;
case 3:
cout<< "=============================================\n";
cout<< " \n";
cout<< " *** Rumus Menghitung Debit Air ***\n";
cout<< " \n";
cout<< "=============================================\n\n";
cout<<"Masukan Nilai Volume = ";
cin>>vol;
cout<< " \n";
cout<<"Masukan Nilai Waktu = ";
cin>>s;
cout<< " \n";
float D;
D=vol/s;
cout<<"Nilai Debit Air Adalah = " <<D;
cout<< " \n";
break;
case 4:
cout<< "=============================================\n";
cout<< " \n";
cout<< " *** Rumus Menghitung Tegangan Listrik ***\n";
cout<< " \n";
cout<< "=============================================\n\n";
cout<<"Masukan Nilai Arus = ";
cin>>i;
cout<< " \n";
cout<<"Masukan Nilai Hambatan = ";
cin>>R;
cout<< " \n";
float Volt;
Volt=i*R;
cout<<"Nilai Tegangan Listrik Adalah = " <<Volt;
cout<< " \n";
break;
case 5:
cout<< "=============================================\n";
cout<< " \n";
cout<< " *** Rumus Menghitung Arus Listrik ***\n";
cout<< " \n";
cout<< "=============================================\n\n";
cout<<"Masukan Nilai Tegangan = ";
cin>>V;
cout<< " \n";
cout<<"Masukan Nilai Hambatan = ";
cin>>R;
cout<< " \n";
float Arus;
Arus=V/R;
cout<<"Nilai Arus Listrik Adalah = " <<Arus;
cout<< " \n";
break;
case 6:
char d;
f=10;
cout<< "=============================================\n";
cout<< " \n";
cout<<"*** Rumus Menghitung Gelang Warna Resistor ***\n";
cout<< " \n";
cout<< "=============================================\n\n";
cout<<" 0 = Hitam \n";
cout<<" 1 = Coklat \n";
cout<<" 2 = Merah \n";
cout<<" 3 = Jingga \n";
cout<<" 4 = Kuning \n";
cout<<" 5 = Hijau \n";
cout<<" 6 = Biru \n";
cout<<" 7 = Ungu \n";
cout<<" 8 = Abu-abu\n";
cout<<" 9 = Putih \n";
cout<<" a = Emas \n";
cout<<" b = Perak \n";
cout<<" c = Tak berwarna \n";
cout<<"==============================\n";
cout<<" Masukkan Kode Gelang 1 = ";
cin>>a;
cout<<" Masukkan Kode Gelang 2 = ";
cin>>b;
cout<<" Masukkan Kode Gelang 3 = ";
cin>>c;
cout<<" Masukkan Kode Gelang 4 = ";
cin>>d;
e = pow(f,c);
g = a*10*e;
h = b*e;
j = g + h;
switch(d)
{
case 'a':
k = 5;
break;
case 'b':
k = 10;
break;
case 'c':
k = 20;
break;
}
cout<<"\n\nNilai Resistor adalah = \b"<<j<<" \bohm \n";
cout<<"\nDengan Nilai toleransi = \b"<<k<<"% \n";
break;
case 7:
cout<< "=============================================\n";
cout<< " \n";
cout<< " *** Rumus Mengetahui Tahun Kabisat ***\n";
cout<< " \n";
cout<< "=============================================\n\n";
cout<<"Silahkan Masukkan Tahun : ";
cin>>tahun;
if(tahun%4!=0)
cout<<"\nBukan Tahun Kabisat\n";
else
if ((tahun%100==0)&&(tahun%400!=0))
cout<<"\nBukan Tahun Kabisat\n";
else
cout<<"\nMerupakan Tahun Kabisat\n";
break;
default:
cout<<"\n";
cout << "Invalid Number!\nMake sure your input is correct.";
cout<<"\n";
}
cout<<"\n\n\n\n\n\n";
main();
return 0;
}
Ulang
Tampilkan Pilihan Menu
Case 1
Masukkan Nilai
Switch
Rumus (pilihan)
Hasil Akhir
Identifikasi Program :
Dalam pembuatan program kita harus memperhatikan coding atau penulisan script
secara baik dan benar, karena jika terdapat kesalahan dalam penulisan maka program akan
error atau tidak dapat dijalankan.
Pada tipe data dari nilai_konstanta pada struktur pernyataan switch-case harus berupa
tipe ordinal, seperti bilangan bulat atau karakter. Selain itu statemen default: pada struktur
switch-case berguna untuk mengeksekusi statemen alternatif, yaitu jika nilai yang kita
masukkan ternyata tidak sesuai dengan nilai-nilai konstanta yang telah didefinisikan.
Sedangkan statemen break pada struktur switch-case digunakan untuk menunjukan bahwa
perintah siap keluar dari struktur switch-case.
Jika pernyataan break tidak ada, maka program akan diteruskan ke pilihan-pilihan
berikutnya. Sehingga setiap pilihan akan di cek dan dijalankan jika syarat nilai konstanta
terpenuhi, termasuk statemen default juga akan dijalankan jika semua cabang diatasnya tidak
memiliki pernyataan break.
Daftar Rujukan
2. http://www.materidosen.com/2017/05/5-macam-operasi-percabangan-c-lengkap.html
3. http://elektro.um.ac.id/wp-content/uploads/2016/04/Dasar-Pemrograman-Modul-3-
Operasi-Kondisi.pdf