MODUL PERKULIAHAN
ALGORITMA
DAN
PEMROGRAMAN
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.
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;
if((a>b)&&(a>c))
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.
if((a>b)&&(a>c))
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.
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();
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.
1.2. 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;
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.
#include <stdio.h>
main()
int nilai;
char huruf;
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.
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 :
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.
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.