MODUL PERKULIAHAN
W152100002 –
Algoritma Dan
Pemrograman
Penyelesaian Masalah Dengan
Kondisi If, If-Else, Switch Case
(bersarang)
Abstrak Sub-CPMK
07
Umniy Salamah, ST., MMSI
Fakultas Ilmu Komputer Teknik Informatika
Penyelesaian Masalah Dengan Kondisi If, If-Else,
Switch Case (bersarang)
1. NESTED 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;
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;
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)
Contoh 1
Jawab :
Bahasa Alami
1. Mulai
2. Siapkan 4 Variabel a, b, c, max tipe data integer
3. Masukkan 3 angka berbeda taruh di variable a, b, c
4. Jika a lebih besar dari b dan a lebih besar dari c
maka max sama dengan a,
5. Jika b lebih besar dari a dan b lebih besar dari c
maka max sama dengan b,
6. Jika c lebih besar dari a dan c lebih besar dari b
maka max sama dengan c
Pseudocode
1. Begin
2. a, b, c, max = integer
3. input a, b, c
4. If a > b and a > c , max = a
5. If b > a and b > c , max = b
6. If c > a and c > b , max = c
7. Print max
8. If max > 0 print “bilangan positif”
9. If max < 0 print “bilangan negatif”
10. Selesai
#include<stdio.h>
#include<conio.h>
main()
clrscr();
int a,b,c,max;
if((a>b)&&(a>c))
max=a;
if((b>a)&&(b>c))
max=b;
if((c>a)&&(c>b))
max=c;
if(max>0)
if(max<0)
getch();
Logika program :
printf("Entry bil 1 : ");scanf("%i",&a);
Untuk penggalan program diatas, 3 buah nilai dinput untuk nilai bilangan bulat.
max=a;
if((b>a)&&(b>c))
max=b;
if((c>a)&&(c>b))
max=c;
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. 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)
if(max<0)
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)
#include<stdio.h>
#include<conio.h>
main()
clrscr();
int a,b,c,max;
if((a<50)||(b<50)||(c<50))
getch();
Logika program :
printf("Entry UTS : ");scanf("%i",&a);
Untuk penggalan program diatas didapat untuk pengintputan nilai UTS, UAS dan KUIS.
if((a<50)||(b<50)||(c<50))
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.
#include <stdio.h>
int nilai;
char huruf;
huruf=’A’;
else
huruf=’B’;
else
huruf=’C’;
else
huruf=’D’;
else
huruf=’E’;
Penjelasan program :
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.
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.
Case konstanta1 :
pernyataan1;
break;
Case konstanta2 :
pernyataan2;
break;
Case konstanta3 :
Pernyataan3;
break;
...
Case Konstanta_n :
Pernyataan_n ;
Break;
Default :
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 pernyataan ke n
dapat 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.
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";
default : {
cout<< "Kode yang anda pilih tidak ada" ; break;
}
return 0;
}
}
Latihan
1. Buat flowchart dari contoh program switch case bersarang listing program 4.