Akhmad Jamalul Lail - 221910201103

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

3 Kondisi (if, if-else, switch)

3.1 Tujuan Praktikum


- Menjelaskan tentang operator kondisi (operator relasi dan logika).
- Menjelaskan penggunaan pernyataan if, if – else, dan if dalam if (nested if).
- Menjelaskan tentang pernyataan switch.

3.2 Landasan Teori


Untuk keperluan pengambilan keputusan, C menyediakan beberapa jenis
pernyataan, berupa :
a. Pernyataan If
b. Pernyataan If-else, dan
c. Pernyataan Switch
Pernyataan-pernyataan tersebut memerlukan suatu kondisi, sebagai basis dalam
pengambilan keputusan. Kondisi umum yang dipakai berupa keadaan benar dan
salah.

3.2.1 Operator Relasi


Operator relasi biasa dipakai untuk membandingkan dua buah nilai.
Hasil pembandingan berupa keadaan benar atau salah. Keseluruhan operator
relasi pada C ditunjukkan pada Tabel 3.1.
Tabel 3.1. Operasi relasi
Operator Makna
> Lebih dari
>= Lebih dari atau sama dengan
< Kurang dari
<= Kurang dari atau sama dengan
== Sama dengan
!= Tidak sama dengan

3.2.2 Operator Logika


Operator logika biasa dipakai untuk menghubungkan ekspresi relasi.
Keseluruhan operator logika ditunjukkan pada tabel 3.2.
Tabel 3.2. Operator logika
Operator Makna
&& dan (AND)
!! or (OR)

18 Buku Petunjuk Praktikum


Algoritma dan Pemrograman
! Tidak (NOT)
Bentuk pemakaian operator && dan || adalah :
operand1 operator operand2

3.2.3 Pernyataan If
Pernyataan if mempunyai bentuk umum :
if (kondisi )
pernyataan;
Bentuk ini menyatakan :
- Jika kondisi yang diseleksi adalah benar (bernilai logika = 1), maka
pernyataan yang mengikutinya akan diproses.
- Sebaliknya, jika kondisi yang diseleksi adalah tidak benar (bernilailogika
= 0), maka pernyataan yang mengikutinya tidak akan diproses.
- Mengenai kodisi harus ditulis diantara tanda kurung, sedangkan
pernyataan dapat berupa sebuah pernyataan tunggal, pernyataan
majemuk atau pernyataan kosong.
Diagram alir dapat dilihat seperti gambar 3.1.

3.2.4 Pernyataan If-else


Pernyataan if-else memiliki bentuk :
if (kondisi)
pernyataan-1;
else
pernyataan-2;
Diagram alir dapat dilihat seperti gambar 3.2.

19 Buku Petunjuk Praktikum


Algoritma dan Pemrograman
Arti dari pernyataan if-else :
- Jika kondisi benar, maka pernyataan-1 dijalankan.
- Sedangkan bila kondisi bernilai salah, maka pernyataaan-2 yang dijalankan.

Masing-masing pernyataan-1 dan pernyataan-2 dapat berupa sebuah


pernyataan tunggal, pernyataan majemuk ataupun pernyataan kosong. Contoh
penggunaan pernyataan if-else adalah untuk menyeleksi nilai suatu bilangan
pembagi. Jika nilai bilangan pembagi adalah nol, maka hasil pembagian
dengannilai nol akan mendapatkan hasil tak berhingga. Jikaditemui nilai
pembaginya nol, maka proses pembagian tidak akan dilakukan.

3.2.5 Pernyataan If di dalam if


Di dalam suatu pernyataan if (atau if-else) bisa saja terdapat
pernyataan if (atau if-else) yang lain. Bentuk seperti ini dinamakan sebagai
nested if. Secara umum, bentuk dari pernyataan ini adalah sebagai berikut :

if (kondisi-1)
if (kondisi-2)
if(kondisi-n)
pernyataan;
else
pernyataan;
else
pernyataan;
else
pernyataan;
Kondisi yang akan diseleksi pertama kali adalah kondisi yang terluar
(kondisi-1). Jika kondisi-1 bernilai salah, maka statement else yang terluar
(pasangan if yang bersangkutan) yang akan diproses. Jika else (pasangannya
tsb) tidak ditulis, maka penyeleksian kondisi akan dihentikan.
Jika kondisi-1 bernilai benar, maka kondisi berikutnya yang lebih
dalam (kondisi-2) akan diseleksi. Jika kondisi-2 bernilai salah, maka
statement else pasangan dari if yang bersangkutan yang akan diproses. Jika
else (untuk kondisi-2) tidak ditulis, maka penyeleksian kondisi akan
dihentikan.
Dengan cara yang sama, penyeleksian kondisi akan dilakukan sampai
dengan kondisi-n, jika kondisi-kondisi sebelumnya bernilai benar.

3.2.6 Pernyataan Else-if


Contoh implementasi nested if ini misalnya pembuatan sebuah
program kalkulator sederhana. User memberikan masukan dengan format :

20 Buku Petunjuk Praktikum


Algoritma dan Pemrograman
operand1 operator operand2
Jenis operasi yang dikenakan bergantung pada jenis operator yang
dimasukkan oleh user. Oleh karena itu program akan mengecek apakah
operator berupa tanda ‘*’, ‘/’, ‘+’, ataukah tanda ‘-‘ .
- Jika operator berupa tanda ‘*’ maka operand1 akan dikalikan dengan
operand2.
- Jika operator berupa tanda ‘/’ maka operand1 akan dibagi dengan
operand2.
- Jika operator berupa tanda ‘+’ maka operand1 akan dijumlahkan dengan
operand2.
- ika operator berupa tanda ‘-’ maka operand1 akan dikurangi dengan
operand2.
- Kalau operator yang dimasukkan bukan merupakan salah satu dari jenis
operator di atas, maka ekspresi tersebut tidak akan diproses, dan user
akan mendapatkan pesan berupa : “Invalid operator !”

3.2.7 Pernyataan Switch


Pernyataan switch merupakan pernyataan yang dirancang khusus untuk
menangani pengambilan keputusan yang melibatkan sejumlah alternatif,
misalnya untuk menggantikan pernyataan if bertingkat. Bentuk umum
pernyataan switch adalah :
switch (ekspresi)
{
case konstanta-1:
pernyataan-1;
break;
case konstanta-2:
case konstanta-n:
pernyataan-n;
break;
default:
break;
}
Dengan ekspresi dapat berupa ekspresi bertipe integer atau bertipe karakter.
Demikian juga konstanta-1, konstanta-2, …, konstanta-n dapat berupa
konstanta integer atau karakter. Setiap pernyataan-i (pernyataan-1, … ,
pernyataan-n) dapat berupa pernyataan tunggal ataupun pernyataan jamak.
Dalam hal ini urutan penulisan pernyataan case tidak berpengaruh. Proses
penyeleksian berlangsung sebagai berikut :
- Pengujian pada switch akan dimulai dari konstanta-1. Kalau nilai
konstanta-1 cocok dengan ekspresi maka pernyataan-1 dijalankan. Kata
kunci break harus disertakan di bagian akhir setiap pernyataan case,

21 Buku Petunjuk Praktikum


Algoritma dan Pemrograman
yang akan mengarahkan eksekusi ke akhir switch.
- Kalau ternyata pernyataan-1 tidak sama dengan nilai ekspresi, pengujian
dilanjutkan pada konstanta-2, dan berikutnya serupa dengan pengujian
pada konstanta-1.
- Jika sampai pada pengujian case yang terakhir ternyata tidak ada
kecocokan, maka pernyataan yang mengikuti kata kunci default yang
akan dieksekusi. Kata kunci default ini bersifat opsional.
- Tanda kurung kurawal tutup (}) menandakan akhir dari proses
penyeleksian kondisi case.

3.3 Alat-alat dan Komponen


- Komputer / Laptop
- Software program Dev C++
- Bolpoin
- Kertas

3.4 Prosedur Percobaan


3.4.1 Kegiatan 1 (Pemakaian if – else untuk mengecek hasil modulus)
#include<stdio.h>
main()
{
int bil1,bil2,sisa;
printf("Masukkan bilangan pertama: ");
scanf("%d",&bil1);
printf("Masukkan bilangan kedua: ");
scanf("%d",&bil2);
sisa= bil1%bil2;
printf("\n");
if (sisa==0)
printf("%d habis dibagi dengan %d\n\n", bil1,bil2);
else
printf("%d tidak habis dibagi dengan %d\n\n", bil1,bil2);
}
}

3.4.2 Mengkategorikan karakter masukan


#include<stdio.h>
main()
{
char karakter;
printf("Masukkan sebuah karakter: ");
scanf("%c",&karakter);

22 Buku Petunjuk Praktikum


Algoritma dan Pemrograman
if ((karakter >= 'a' && karakter <= 'z') || (karakter >= 'A' &&
karakter <= 'Z'))
printf("%c adalah karakter alphabet \n", karakter);
else
if (karakter >= '0' && karakter <= '9')
printf("%c adalah bilangan\n", karakter);
else
printf("%c adalah karakter khusus\n", karakter);
}
}
}

3.4.3 Membuat Program


- Buatlah sebuah program untuk menghitung jumlah konsumsi bahanbakar
suatu mobil, dengan input kilometer awal dan akhir perjalanan, isiawal
dan akhir tangki dalam liter. Sedangkan output program mencetak jarak
tempuh, jumlah konsumsi, dan konsumsi per kilometer.
- Buatlah sebuah program untuk mencetak bilangan terbesar dari 5 buah
bilangan yang dimasukkan oleh user, dengan cara membandingkan
bilangan sebelumnya dengan bilangan berikutnya. Misalnya bilangan
tersebut A, B, C, D, dan E. Maka A dan B diperbandingkan. Jika A
lebih besar dari B maka A dibandingkan dengan C, jika A lebih besar dari
C maka A dibandingkan dengan D, demikian seterusnya sampai didapat
nilai yang terbesar.
- Buatlah program untuk mengetahui karakter yang diinputkan, apakah
huruf Besar, huruf kecil, spasi, digit, atau yang lainnya !
Input : Masukkan karakter : A
Output : karakter yang diinputkan adalah huruf besar
- Buatlah program untuk mempermudah pembayaran di suatu bioskop!
Tabel 3.3 Program pembayaran
Jenis No Judul Harga
1. Jalan Sepi Rp7500
Horor 2. Rumah Sepi Rp6000
3. Rumah Hantu Rp4000
1. I Love You Rp5000
Romantic 2. Now and Forever Rp3000
3. My Girl Rp2500
Output :
a. Buatlah tampilan menu
b. Baru pilih horor atau romantic
c. Hitung total harga : Total Harga Rp 8500,-

23 Buku Petunjuk Praktikum


Algoritma dan Pemrograman
3.5 Data Hasil Percobaan
3.5.1 Kegiatan 1
a. Listing Program
#include<stdio.h>
main(){
int bil1,bil2,sisa;
printf("Masukkan bilangan pertama: ");
scanf("%d",&bil1);
printf("Masukkan bilangan kedua: ");
scanf("%d",&bil2);
sisa=bil1%bil2;
printf("\n");
if(sisa==0)
printf("%d habis dibagi dengan
%d\n\n",bil1,bil2);
else
printf("%d tidak habis dibagi dengan
%d\n\n",bil1,bil2);
}

b. Tampilan Gambar

Gambar 3.3 Kegiatan 1

3.5.2 Kegiatan 2
a. Listing Program
#include<stdio.h>
main(){
char karakter;
printf("Masukkan sebuah karakter: ");
scanf("%c",&karakter);
if
((karakter>='a'&&karakter<='z')||(karakter>='A'&&
karakter<='Z'))
printf("%c adalah karakter alphabet\n",karakter);
else
if (karakter>='0'&&karakter<='9')
printf("%c adalah bilangan\n",karakter);
else
printf("%c adalah karakter khusus\n",karakter);
}

24 Buku Petunjuk Praktikum


Algoritma dan Pemrograman
b. Tampilan Gambar

Gambar 3.4 Kegiatan 2

3.5.3 Kegiatan 3
a. Listing Program
#include <stdio.h> ifnya mana??
main(){
float km1, km2, totalkm, konsperkilo,bensin1,
bensin2, totalbensin;
printf("progam menghitung kilometer dan total
bensin\n\n");
printf("Masukan kilometer awal\n");scanf("%f",
&km1);
printf("Masukan kilometer akhir \n");
scanf("%f",&km2);
printf("masukan total bensin awal\n");
scanf("%f",&bensin1);
printf("masukan total bensin akhir\n");
scanf("%f",&bensin2);
totalkm = km2 - km1;
printf("total kilometer yang di lalui = \t %.3f
KM\n", totalkm);
totalbensin = bensin1-bensin2;
printf("bensin yang di gunakan yang di lalui =
\t
%.3f Liter", totalbensin);
konsperkilo = totalbensin / totalkm;
printf("\n");
printf("konsumsi bensin per kilometer = \t %.3f
Liter/Km", konsperkilo);
}

Buku Petunjuk Praktikum


Algoritma dan Pemrograman
b. Tampilan Gambar

Gambar 3.5 Kegiatan 3

3.5.4 Kegiatan 4
a. Listing Program
#include <stdio.h>
int main() { elsenya hapus saja
int A, B, C, D, E;
printf("bilangan A : ");
scanf("%i",&A);
printf("bilangan B : ");
scanf("%i",&B);
printf("bilangan C : ");
scanf("%i",&C);
printf("bilangan D : ");
scanf("%i",&D);
printf("bilangan E : ");
scanf("%i",&E);

if(A > B){


if(A > C)
if(A > D)
if(A > E)
printf("A bilangan terbesar\n");
} else{
printf("A bukan bilangan terbesar\n");
}

if(B > A){


if(B > C)
if(B > D)
if(B > E)
printf("B bilangan terbesar\n");
} else{
printf("B bukan bilangan terbesar\n");
Buku Petunjuk Praktikum
Algoritma dan Pemrograman
}

if(C > A){


if(C > B)
if(C > D)
if(C > E)
printf("C bilangan terbesar\n");
} else{
printf("C bukan bilangan terbesar\n");
}

if(D > A){


if(D > B)
if(D > C)
if(D > E)
printf("D bilangan terbesar\n");
} else{
printf("D bukan bilangan terbesar\n");
}

if(E > A){


if(E > B)
if(E > C)
if(E > D)
printf("E bilangan terbesar\n");
} else{
printf("E bukan bilangan terbesar");
}
}

b. Tampilan Gambar

Gambar 3.6 Kegiatan 4

Buku Petunjuk Praktikum


Algoritma dan Pemrograman
3.5.5 Kegiatan 5
a. Listing Program
#include<stdio.h>
main()
{
char karakter;
printf("Masukkan sebuah karakter = ");
scanf("%c", &karakter);
if(karakter>='a' &&karakter <= 'z')
printf("'c' adalah huruf kecil", karakter);
else if(karakter >='A'&&karakter <= 'Z')
printf("'%c' adalah huruf kapital", karakter );
else if (karakter>= '0'&&karakter <= '9' )
printf("'%c' adalah digit", karakter);
else if(karakter== ' ')
printf("'%c' adalah spasi karakter",karakter);
else
printf("'%c' adalah karakter khusus\n",
karakter);
}
b. Tampilan Gambar

Gambar 3.7 Kegiatan 5


outputnya disesuaikan dengan
3.5.6 Kegiatan 6 yang diminta
a. Listing Program
#include <stdio.h>main()
{
char y; int a,b;printf("\t \n"); pakai switch, jgn
kebanyakan if
printf("\t\tSelamat datang di Bioskop\n");
printf("\tJENIS\t NO\t Judul\t\t Harga\n");
printf("\tHOROR\t:1. Jalan Sepi\t\t Rp 7.500\n");
printf("\t \t 2. Rumah Sepi\t\t Rp 6.000\n");
printf("\t \t 3. Rumah Hantu\t\t Rp 4.000\n");
printf("\tROMANTIC:1. I love you\t\t Rp 5.000\n");
printf("\t \t 2. Now and Forever\t Rp3.000\n");
printf("\t \t 3. MY GIRL\t\t Rp 2.500\n");
printf("\t \n\n\n");
printf("Pilih film yang akan ditonton sesuainomor
dikategori masing- masing\n"); printf("tekan 'y'
untuk lanjut : "); scanf("%c", &y);

Buku Petunjuk Praktikum


Algoritma dan Pemrograman
switch(y)
{
case 'y' :
printf("(0) untuk tidak memilih\n"); printf("Film
Horor : "); scanf("%d", &a);
printf("Film Romantic : "); scanf("%d", &b);
if(a==1 && b==0)

printf("Total biaya : Rp 7.500"); if(a==2 &&b==0)


printf("Total biaya : Rp 6.000"); if(a==3 &&b==0)
printf("Total biaya : Rp 4.000"); if(a==0 &&b==1)
printf("Total biaya : Rp 5.000"); if(a==0 &&b==2)
printf("Total biaya : Rp 3.000"); if(a==0 &&b==3)
printf("Total biaya : Rp 2.500"); if(a==1 &&b==1)
printf("Total biaya : Rp 12.500"); if(a==1 &&b==2)
printf("Total biaya : Rp 10.500"); if(a==1 &&b==3)
printf("Total biaya : Rp 10.000"); if(a==2 &&b==1)
printf("Total biaya : Rp 11.000"); if(a==2 &&b==2)
printf("Total biaya : Rp 9.000"); if(a==2 &&b==3)
printf("Total biaya : Rp 8.500"); if(a==3 &&b==1)
printf("Total biaya : Rp 9.000"); if(a==3 &&b==2)
printf("Total biaya : Rp 7.000"); if(a==3 &&b==3)
printf("Total biaya : Rp 6.500"); break;
}
}

b. Tampilan Gambar

Gambar 3.8 kegiatan 6

Buku Petunjuk Praktikum


Algoritma dan Pemrograman
Buku Petunjuk Praktikum
Algoritma dan Pemrograman
3.6 Analisis Data dan Pembahasan

25 Buku Petunjuk Praktikum


Algoritma dan Pemrograman
26 Buku Petunjuk Praktikum
Algoritma dan Pemrograman
3.7 Kesimpulan

3.8 Lembar Evaluasi


No Kegiatan Keterangan Nilai TTD/tanggal

1 Pre-Test

Pengambilan
2
Data

3 Asistensi

4 Post-Test

27 Buku Petunjuk Praktikum


Algoritma dan Pemrograman

You might also like