Anda di halaman 1dari 13

KONDISI (DECISION 2)

MODUL PERKULIAHAN

ALGORITMA
DAN
PEMROGRAMAN

Penyelesaian Masalah Dengan Kondisi


If, If-Else, Switch Case (bersarang)

Tatap Muka
Fakultas : Ilmu Komputer Kode Mata Kuliah : W4119003

Program Studi : Teknik Informatika 07 Disusun Oleh : Umniy Salamah, ST., MMSI
ABSTRAK TUJUAN
Decision 2 digunakan untuk memilih salah satu Diharapkan dapat :
alternatif jawaban yang tepat dari pilihan yang ada. Penjelasan tentang dasar memuat
Pada decision 2 ini lebih ditekankan penggunaan program memakai sintak (IF, IF ELSE,
operator logika serta if bersarang. SWITCH CASE) bersarang.

2019 Nama Mata Kuliah


2 Umniy Salamah, ST., MMSI (085211010000)
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
Decision digunakan untuk memilih salah satu alternatif jawaban yang tepat dari pilihan yang
ada. Penyeleksian kondisi dapat diibaratkan sebagai katup atau kran yang mengatur jalannya
air. Bila katup terbuka maka air akan mengalir dan sebaliknya bila katup tertutup air tidak akan
mengalir atau akan mengalir melalui tempat lain. Fungsi penyeleksian kondisi penting artinya
dalam penyusunan bahasa C, terutama untuk program yang kompleks.

1.1. DECISION MENGGUNAKAN OPERATOR LOGIKA

Jika operator hubungan membandingkan antara dua buah operand, maka operator logika
digunakan untuk menbandingkan logika hasil dari operator-operator hubungan.
Operator logika ada tiga macam, yaitu :
. && : Logika AND (DAN)
. || : Logika OR (ATAU)
. ! : Logika NOT (INGKARAN)

Listing Program 1. Contoh Program Struktur Kondisi IF Untuk Memeriksa Suatu Kondisi
menggunakan && (dan)
/* Program Contoh penerapan struktur kondisi if */

#include<stdio.h>

#include<conio.h>

main()

clrscr();

int a,b,c,max;

printf("Entry bil 1 : ");scanf("%i",&a);

printf("Entry bil 2 : ");scanf("%i",&b);

printf("Entry bil 3 : ");scanf("%i",&c);

if((a>b)&&(a>c))

2019 Nama Mata Kuliah


3 Umniy Salamah, ST., MMSI (085211010000)
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
max=a;

if((b>a)&&(b>c))

max=b;

if((c>a)&&(c>b))

max=c;

printf("Bil terbesar : %i\n",max);

if(max>0)

printf("Bil tsb adalah bil positif\n");

if(max<0)

printf("Bil tsb adalah bil negatif");

getch();

Logika program :
printf("Entry bil 1 : ");scanf("%i",&a);

printf("Entry bil 2 : ");scanf("%i",&b);

printf("Entry bil 3 : ");scanf("%i",&c);

Untuk penggalan program diatas, 3 buah nilai dinput untuk nilai bilangan bulat.

if((a>b)&&(a>c))

max=a;

if((b>a)&&(b>c))

max=b;

if((c>a)&&(c>b))

max=c;

printf("Bil terbesar : %i\n",max);

Sedangkan untuk logika && terdapat pada penggalan program dibawah ini,
if((a>b)&&(a>c))max=a; untuk mencari nilai terbesar apakah didapat pada variabel a.

2019 Nama Mata Kuliah


4 Umniy Salamah, ST., MMSI (085211010000)
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
jika tidak maka dibaca sintak berikutnya yaitu, if((b>a)&&(b>c)) max=b; untuk mencari
nilai terbesar apakah didapat pada variabel b. jika tidak maka dibaca sintak berikutnya yaitu
if((c>a)&&(c>b))max=c;untuk mencari nilai terbesar apakah didapat pada variabel c.
Jika sudah menemukan nilai max yang dicari maka akan tercetak bil terbesar dari nilai max itu.

if(max>=0)

printf("Bil tsb adalah bil positif\n");

if(max<0)

printf("Bil tsb adalah bil negatif");

getch();

Jika max lebih besar sama dengan 0 (nol) maka cetak Bil tsb adalah bil positif.
Jika max lebih kecil dari 0 (nol) maka cetak Bil tsb adalah bil negatif.

Listing Program 2. Contoh Program Struktur Kondisi IF Untuk Memeriksa Suatu Kondisi
menggunakan || (atau)

/* Program Contoh penerapan struktur kondisi if */

#include<stdio.h>

#include<conio.h>

main()

clrscr();

int a,b,c,max;

printf("Entry UTS : ");scanf("%i",&a);

printf("Entry UAS : ");scanf("%i",&b);

printf("Entry KUIS : ");scanf("%i",&c);

if((a<50)||(b<50)||(c<50))

printf("anda tidak lulus”);

else printf("anda lulus");

getch();

2019 Nama Mata Kuliah


5 Umniy Salamah, ST., MMSI (085211010000)
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
Logika program :
printf("Entry UTS : ");scanf("%i",&a);

printf(“Entry UAS : “);scanf(“%i”,&b);

printf("Entry KUIS : ");scanf("%i",&c);

Untuk penggalan program diatas didapat untuk pengintputan nilai UTS, UAS dan KUIS.

if((a<50)||(b<50)||(c<50))

printf("anda tidak lulus”);

else printf("anda lulus");

getch();

Jika nilai a kurang dari 50 atau nilai b kurang dari 50 atau c kurang dari 50 maka akan tercetak
anda tidak lulus. Akan tetapi apabila tidak ada nilai yang dibawah 50 maka akan tercetak nilai
anda lulus.

1.2. NESTED IF

STRUKTUR KONDISI IF DALAM IF

Perintah IF dalam IF sering disebut nested-if. Perintah ini mempunyai bentuk umum
sebagai berikut :

If (kondisi1)

If (kondisi2)

Pernyataan1;

Else

Pernyataan2;

Else

Pernyataan3;

2019 Nama Mata Kuliah


6 Umniy Salamah, ST., MMSI (085211010000)
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
Pernyataan If dalam if juga mempunyai bentuk yang majemuk yang sering disebut if
bertingkat. Bentuk umumnya adalah sebagai berikut :

If (kondisi1)

Pernyataan1;

Else if (kondisi2)

Pernyataan2;

Else if (kondisi3)

Pernyataan3;

...

else

pernyataann;

Dalam hal ini jika kondisi 1 benar maka pernyataan1 yang dikerjakan dan apabila kondisi
1 tidak benar maka kondisi2 yang akan dilihat. Dan seterusnya, jika kondisi diatasnya
tidak benar maka kondisi yang terakhir yang akan dikerjakan.

Listing Program 3. Contoh Penerapan Struktur Kondisi IF Dalam IF

#include <stdio.h>

main()

int nilai;

char huruf;

printf (“Masukkan nilai:”);scanf(“%d”,&nilai);

if (nilai>=81 && nilai<=100)

2019 Nama Mata Kuliah


7 Umniy Salamah, ST., MMSI (085211010000)
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
huruf=’A’;

else

if (nilai>=71 && nilai<=81)

huruf=’B’;

else

if (nilai>=61 && nilai<=71)

huruf=’C’;

else

if (nilai>=51 && nilai<=61)

huruf=’D’;

else

huruf=’E’;

printf (“Jadi nilai huruf yang didapat adalah: %c\n”,huruf);

Penjelasan program :

Untuk sintak program berikut didapat

printf (“Masukkan nilai:”);scanf(“%d”,&nilai);

baris program tersebut untuk menginput sebuah nilai.

if (nilai>=81 && nilai<=100)


huruf=’A’;
else
if (nilai>=71 && nilai<=81)
huruf=’B’;
else
if (nilai>=61 && nilai<=71)
huruf=’C’;
else
if (nilai>=51 && nilai<=61)
huruf=’D’;
else
huruf=’E’;
printf (“Jadi nilai huruf yang didapat adalah: %c\n”,huruf);

2019 Nama Mata Kuliah


8 Umniy Salamah, ST., MMSI (085211010000)
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
}

Untuk beberapa baris program diatas, dapat kita lihat logika if dalam if, if (nilai>=81 &&
nilai<=100 huruf = A, artinya jika nilai yang kita input tidak sesuai pada penggalan baris
program tersebut, maka berikutnya membaca baris program setelahnya yaitu if
(nilai>=71 && nilai<=81 huruf = B, artinya jika nilai yang kita input tidak sesuai pada
penggalan baris program tersebut, maka berikutnya membaca baris program setelahnya yaitu
if (nilai>=61 && nilai<=71 huruf = C, artinya jika nilai yang kita input tidak sesuai
pada penggalan baris program tersebut, maka berikutnya membaca baris program setelahnya
yaitu if (nilai>=51 && nilai<=61 huruf = D.
Sedangkan untuk else huruf = E kondisi ini terpenuhi apabila semua kondisi tidak terpenuhi.

printf (“Jadi nilai huruf yang didapat adalah: %c\n”,huruf);

untuk penggalan sebaris program ini untuk mencetak nilai huruf yang didapat apa, sesuai
dengan inputan kemudian diproses dengan kondisi logika if dan akan akan keluar nilai huruf
nya.

1.3. PERINTAH SWITCH CASE BERSARANG

Perintah SWITCH merupakan pernyataan yang dirancang untuk menangani pengambilan


keputusan yang melibatkan sejumlah pilihan alternatif yang diantaranya untuk menggantikan
pernyataan IF bertingkat.
Bentuk umumnya adalah sebagai berikut :

SWITCH (Ekspresi)

Case konstanta1 :

pernyataan1;

break;

Case konstanta2 :

pernyataan2;
2019 Nama Mata Kuliah
9 Umniy Salamah, ST., MMSI (085211010000)
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
break;

Case konstanta3 :

Pernyataan3;

break;

...

Case Konstanta_n :

Pernyataan_n ;

Break;

Default :

Pernyataan_alternatif ; /* apabila semua nilai di

atas tidak terpenuhi */

Ekspresi dapat berupa ungkapan yang bernilai integer atau bertipe karakter. Setiap
konstanta1, konstanta2, konstanta3, konstanta4 sampai dengan konstantan dapat berupa
konstanta integer atau konstanta karakter.
Setiap pernyataan1, pernyataan2, pernyataan3, pernyataan4 sampai pernytaannxdapat
berupa sebuah atau beberapa pernyataan.
Pengujian pada switch akan dimulai dari konstanta1. apabila nilainya cocok dengan
ekspresi maka pernyataan satu akan dijalankan.
Perintah break mnyebabkan eksekusi diarahkan ke akhir switch kalau nilai konstanta satu
tidak sama dengan nilai ekspresi dan kemudian baru diteruskan pengujian dengan
konstanta2 dan seterusnya. Jika sampai pada pengujian akhir tidak ada yang cocok maka
default akan dijalankan.
Jika pernyataan break tidak diikutsertakan pada setiap case maka walaupun konstantanya
cocok denan ekspresi, maka setelah pernyataan pada case tersebut dikerjakan akan
dilanjutkan pada case berikutnya sampai ditemui pernyataan break pada akhir switch.

2019 Nama Mata Kuliah


10 Umniy Salamah, ST., MMSI (085211010000)
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
Listing Program 4. Contoh program switch case bersarang
#include<iostream>
#include<conio.h>

using namespace std;

main()
{
int pil,org,bus;
float Total_Harga;
char yn,ab,cd,pt;
cout<<"Jadwal dan harga tiket keberangkatan BUS" << endl;
cout<<"1. Jakarta - Malang " << endl;
cout<<"2. Yogyakarta - Solo " << endl;
cout<<"Masukan Pilihan anda :"; cin>>pil;
switch (pil)
{
case 1 :
{
cout<<"Anda mau memilih Bus Eksekutif (y/n) ?"; cin>>yn;
case 'y':
{
cout<<"Waktu Keberangkatan"<<endl;
cout<<"a. Pagi "<<endl;
cout<<"b. Malam "<<endl;
cout<<"Pilihan anda a atau b : ";cin>>ab;
case 'a':
{
cout<<"harga per orang = Rp.50"<<endl;
cout<<"Input banyak orang = ";cin>>org;
Total_Harga = org * 50;
cout<<"Total Harga = Rp."<<Total_Harga;
break;
}
case 'b' :
{
cout<<"harga per orang = Rp.75"<<endl;
cout<<"Input banyak orang = ";cin>>org;
Total_Harga = org * 75;
cout<<"Total Harga = Rp."<<Total_Harga;
break;
}
}
case'n' :{
cout<< "Maaf Bus Ekonomi Jakarta-Malang untuk
saat ini belum tersedia";
break;
}
return 0;
}
case 2 :{
2019 Nama Mata Kuliah
11 Umniy Salamah, ST., MMSI (085211010000)
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
cout<<"Anda mau memilih sewa Bus pariwisata
(pilih(p))/tidak(t)) ?"; cin>>pt;
case 'p':{
cout<<"Waktu Keberangkatan"<<endl;
cout<<"c. Pagi "<<endl;
cout<<"d. Malam "<<endl;
cout<<"Pilihan anda c atau d: ";cin>>cd;
case 'c':{
cout<<"harga per paket = Rp.500"<<endl;
cout<<"Input banyak bus = ";cin>>bus;
Total_Harga = bus * 500;
cout<<"Total Harga = Rp."<<Total_Harga;
break;
}
case 'd' :{
cout<<"harga per paket = Rp.750"<<endl;
cout<<"Input banyak bus = ";cin>>bus;
Total_Harga = bus * 750;
cout<<"Total Harga = Rp."<<Total_Harga;
break;
}
}
case't' :{
cout<< "Maaf Jurusan Yogyakarta-Solo untuk saat ini
hanya melayani bus pariwisata";
break;
}
return 0;
}

default : {
cout<< "Kode yang anda pilih tidak ada" ; break;
}
return 0;
}
}

Soal
1. Buat flowchart dari contoh program switch case bersarang listing program 4.

2019 Nama Mata Kuliah


12 Umniy Salamah, ST., MMSI (085211010000)
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
DAFTAR PUSTAKA
1. Kadir, A. (2009). Mudah Menjadi Programmer C++. Yogyakarta: Penerbit Andi.
2. Kadir, A. (2009). Pemrograman C++ Membahas Pemrograman Berorientasi Obyek
Menggunakan Turbo C++ dan Borland C++. Yogyakarta: Penerbit Andi.
3. Suharno Prawirosumarto, Aplikasi Komputer Edisi 3 2012. Jakarta : Mitra Wacana
Media.
4. Muhammad Sholeh, Panduan Belajar Pemrograman Terstruktur Agoritma Dan
Pemrograman C++ 2013, Yogyakarta : Akprind Press

2019 Nama Mata Kuliah


13 Umniy Salamah, ST., MMSI (085211010000)
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id

Anda mungkin juga menyukai