Percabangan bersyara dengan if then else

30
I. Tujuan Instruksional Khusus : Setelah Menyelesaikan praktek ini mahasiswa dapat : 1. Mengetahui dan menjelaskan tentang struktur algoritma percabangan bersyarat ( if-then-else bertingkat, case ). 2. Membuat algoritma dalam bentuk flowcharts dan pseudocode yang melibatkan permasalahanpermasalahan percabangan bersyarat(if-then-else bertingkat, case)dimana komputer harus melakukan pemilihan untuk menuju ke salah satu cabang berdasarkan kondisi tertentu. 3. Mengimplementasikan algoritma yang telah dibuat ke dalam bahasa pemrograman dengan menggunakan bahasa C. II. Alat dan Bahan - PC minimal 486 - Disket DOS/Start Up Win98 , Program C, dan Data III. Dasar teori Salah satu proses didalam suatu algoritma adalah proses percabangan atau seleksi atau kondisional bertingkat. Dalam algoritma ada beberapa struktur percabangan yang dikenal antara lain : 1. If-Then-Else bertingkat 2. Switch-Case 1. if-then-else bertingkat Struktur diagram alirnya : Meyla Yan Sari Page 1

Transcript of Percabangan bersyara dengan if then else

I. Tujuan Instruksional Khusus :

Setelah Menyelesaikan praktek ini mahasiswa dapat :

1. Mengetahui dan menjelaskan tentang struktur algoritma

percabangan bersyarat ( if-then-else bertingkat,

case ).

2. Membuat algoritma dalam bentuk flowcharts dan

pseudocode yang melibatkan permasalahanpermasalahan

percabangan bersyarat(if-then-else bertingkat,

case)dimana komputer harus melakukan pemilihan untuk

menuju ke salah satu cabang berdasarkan kondisi

tertentu.

3. Mengimplementasikan algoritma yang telah dibuat ke

dalam bahasa pemrograman dengan menggunakan bahasa C.

II. Alat dan Bahan

- PC minimal 486

- Disket DOS/Start Up Win98 , Program C, dan Data

III. Dasar teori

Salah satu proses didalam suatu algoritma adalah proses

percabangan atau seleksi atau

kondisional bertingkat. Dalam algoritma ada beberapa

struktur percabangan yang dikenal antara

lain :

1. If-Then-Else bertingkat

2. Switch-Case

1. if-then-else bertingkat

Struktur diagram alirnya :

Meyla Yan Sari Page 1

Catatan :

KONDISI adalah ungkapan yang digunakan untuk menyatakan

suatu yang disyaratkan

(ungkapan akan bernilai boolean( kondisi true atau false))

2. Struktur Case

Struktur case merupakan struktur yang dirancang khusus

untuk menangani pengambilan

keputusan yang melibatkan sejumlah alternatif.

Struktur diagram alirnya :

Meyla Yan Sari Page 2

Keterangan :

Ungkapan atau ekpresi dapat berupa ungkapan bernilai

integer atau bertipe karakter. Setiap alternatif

(alternatif_1, alternatif_2, alternatif_3…… alternatif_n)

dapat berupa alternatif integer

atau karakter. Setiap proses ( proses_1, proses_2, proses_3

…. Proses_n) dapat berupa proses tunggal atau proses jamak.

Seperti halnya pengujian dalam IF-ELSE, pengujian dalam

CASE juga dimulai dari alternatif_1 . Bila suatu nilai

ungkapan sesuai dengan nilai alternatif, maka proses yang

ada dalam alternative tersebut yang akan dikerjakan dan

diakhiri dengan kata kunci break ( keluar dari kalang

case). Bila nilai ungkapan tidak ada yang cocok dengan

semua nilai alternatif maka proses otherwise yang

dikerjakan.

IV. Langkah Kerja

Meyla Yan Sari Page 3

1. Hidupkan komputer anda !

2. Jalankan Microsoft Visio, dengan cara menekan tombol

Start>Program>MS Office 2000>Microsoft Visio. Selanjutnya

gambarkanlah algoritma dari permasalahan berikut ini dan

simpan dalam satu nama file : Lat04.vsd

3. Jalankan Microsoft Word, dengan cara menekan tombol

Start>Program>MS Office 2000>Microsoft Word. Selanjutnya

tuliskan algoritma dari permasalahan berikut ini dan

simpan dalam satu nama file : Lat04.doc.

4. Buatlah algoritma dengan bentuk flowcharts dan pseudocode

untuk permasalan berikut ini:

a. Diketahui tabel konversi nilai sebagai berikut :

b. Tugas anda adalah membuat algoritmanya untuk

memasukkan nilai angka yang diperoleh mahasiswa dan

memprosesnya sehingga tampil nilai huruf dan

statusnya dari batasan nilai seperti tabel konversi

nilai tersebut.

c. Gunakan perpaduan struktur If-Then-Else

menyelesaikan permasalahan ini.

Meyla Yan Sari Page 4

Algoritma_Nilai

{Menentukan nilai huruf dan statusnya dari nilai

yang diinputkan}

Kamus / Deklarasi

Var nilai: integer

Meyla Yan Sari Page 5

{variabel nilai bertipe integer }

Algoritma (Deskripsi)

Input (nilai)

{ menginputkannilai yang diperoleh mahasiswa }

If (nilai>=80) then

output(“Nilai Huruf : A dan Status : LULUS”)

else if (nilai>=65) then

output(“Nilai Huruf : B dan Status : LULUS”)

else if (nilai>=50) then

output(“Nilai Huruf : C dan Status : LULUS”)

else if (nilai>=30) then

output(“Nilai Huruf : D dan Status : ULANG”)

else

output(“Nilai Huruf : E dan Status : ULANG”)

endif

endif

endif

endif

5. Buatlah algoritma dengan bentuk flowcharts dan pseudocode

untuk permasalan

berikut ini:

a. Diketahui kode hari 1 s/d 7 yang mewakili nama hari Senin

s/d Minggu.

b. Tugas anda adalah membuat algoritmanya untuk memasukkan

kode hari tersebut dan memprosesnya sehingga tampil nama

hari yang sesuai dengan kode harinya.

Meyla Yan Sari Page 6

c. Gunakan struktur If-Then-Else dan struktur Case untuk

menyelesaikan

permasalahan ini.

Algoritma Menentukan_Nama_Hari

{ Menampilkan nama hari berdasarkan kode hari yg

diinputkan }

Kamus

kode : integer

Algoritma

Meyla Yan Sari Page 7

input (kode) {menginputkan bilangan integer ke variable

kode}

If (kode = 1) Then

output (‘Hari : Senin’)

Else If(kode = 2) Then

output(‘Hari : Selasa’)

Else If(kode = 3) Then

output(‘Hari : Rabu’)

Else If(kode = 4) Then

output(‘Hari : Kamis’)

Else If(kode = 5) Then

output(‘Hari : Jumat’)

Else If(kode = 6) Then

output(‘Hari : Sabtu’)

Else

output(‘Hari : Minggu’)

End If

Algoritma Menampilkan_ Hari

Meyla Yan Sari Page 8

{menampilakan hari dari kode angka yang diinputkan}

Deklarasi

Kode_hari : integer

Deskripsi

Input (kode_hari) {memasukkan kode 1 s/d 7

(menentukan nama hari)}

case (kode_hari)

case 1 : write ('Hari Senin')

case 2 : write ('Hari Selasa')

case 3 : write ('Hari Rabu')

case 4 : write ('Hari Kamis')

case 5 : write ('Hari Jumat')

case 6 : write ('Hari Sabtu')

case 7 : write ('Hari Minggu')

otherwise write ('Masukkan kode hari 1 s/d 7')

endcase

6. Buatlah algoritma dengan bentuk flowcharts dan pseudocode

untuk permasalan berikut ini:

a. Diketahui kode bulan 1 s/d 12 yang mewakili nama bulan

Januari s/d Desember.

b. Tugas anda adalah membuat algoritmanya untuk

memasukkan kode bulan tersebut dan memprosesnya

sehingga tampil nama bulan dan jumlah hari dari bulan

tersebut yang sesuai dengan kode bulannya.

c. Gunakan perpaduan struktur If-Then-Else dan struktur

Case untuk menyelesaikan permasalahan ini.

Jawab :

Meyla Yan Sari Page 9

Meyla Yan Sari Page 10

Algoritma Kode_Bulan

{ Menampilkan nama bulan dan jumlah hari berdasarkan kode

bulan yg diinputkan }

Kamus

kode_bln : integer

Algoritma

input (kode_bln) {menginputkan bilangan integer ke

variable kode}

If (kode_bln = 1) Then

write (‘Nama bulan : Januari’)

write (‘Jml hari : 31 Hari’)

Else If(kode_bln = 2) Then

write (‘Nama bulan : Februari’)

write (‘Jml hari : 28 hari’)

Else If(kode_bln = 3) Then

write (‘Nama bulan : Maret’)

write (‘Jml hari : 31 hari’)

Else If(kode_bln = 4) Then

write (‘Nama bulan : April’)

Meyla Yan Sari Page 11

write (‘Jml hari : 30 hari’)

Else If(kode_bln = 5) Then

write (‘Nama bulan : Mei’)

write (‘Jml hari : 31 hari’)

Else If(kode_bln = 6) Then

write (‘Nama bulan : Juni’)

write (‘Jml hari : 30 hari’)

Else If(kode_bln = 7) Then

write (‘Nama bulan : Juli’)

write (‘Jml hari : 31 hari’)

Else If(kode_bln = 8) Then

write (‘Nama bulan : Agustus’)

write (‘Jml hari : 30 hari’)

Else If(kode_bln = 9) Then

write (‘Nama bulan : September’)

write (‘Jml hari : 31 hari’)

Else If(kode_bln = 10) Then

write (‘Nama bulan : Oktober’)

write (‘Jml hari : 30 hari’)

Else If(kode_bln = 11) Then

write (‘Nama bulan : November’)

write (‘Jml hari : 31 hari’)

Else

write (‘Nama bulan : Desember’)

write (‘Jml hari : 30 hari’)

End If

Algoritma Kode_BulanMeyla Yan Sari Page 12

{menampilkan nama bulan dan jumlah hari berdasarkan kode

bulan yang diinputkan}

Deklarasi

Kode_bulan : integer

Deskripsi

Input (kode_bulan) {memasukkan kode 1 s/d 12}

case (kode_bilan)

case 1 : write (‘Nama bulan : Januari’)

write (‘Jml hari : 31 hari’)

case 2 : write t(‘Nama bulan : Februari’)

write (‘Jml hari : 28 hari’)

case 3 : write (‘Nama bulan : Maret’)

write (‘Jml hari : 31 hari’)

case 4 : write (‘Nama bulan : April’)

write (‘Jml hari : 30 hari’)

case 5 : write (‘Nama bulan : Mei’)

write (‘Jml hari : 31 hari’)

case 6 : write (‘Nama bulan : Juni’)

write (‘Jml hari : 30 hari’)

case 7 : write (‘Nama bulan : Juli’)

write (‘Jml hari : 31 hari’)

case 8 : write (‘Nama bulan : Agustus’)

write (‘Jml hari : 30 hari’)

case 9 : write (‘Nama bulan : September’)

write (‘Jml hari : 31 hari’)

case 10 : write (‘Nama bulan : Oktober’)

write (‘Jml hari : 30 hari’)

case 11 : write t(‘Nama bulan : November’)

Meyla Yan Sari Page 13

write (‘Jml hari : 31 hari’)

case 12 : write (‘Nama bulan : Desember’)

write (‘Jml hari : 30 hari’)

other wise output (‘kode yang anda masukkan salah’)

endcase

7. Cobalah anda implementasikan permasalahan nomor 4, 5, dan

6 ke dalam bentuk program dengan menggunakan bahasa

pemrograman Pascal.

Implementasi nomor 4

#include <stdio.h>void main(){int nilai;printf("Masukan nilai : ");scanf("%d",&nilai);if(nilai >= 80){

printf("\nNilai huruf : A\n");printf("Status : LULUS");

}else if(nilai >= 65){

printf("\nNilai huruf : B\n");printf("Status : LULUS");

}else if(nilai >= 50){

printf("\nNilai huruf : C\n");printf("Status : LULUS");

}else if(nilai >= 30){

printf("\nNilai huruf : D\n");printf("Status : ULANG");

}else{

Meyla Yan Sari Page 14

printf("\nNilai huruf : E\n");printf("Status : ULANG");

}}

Implementasi nomor 5

Menampilkan nama hari

#include <stdio.h>main(){

int kode_hari;printf("Masukan kode hari : ");scanf("%i",&kode_hari);if(kode_hari==1){

printf("\nHari Senin.");}else if(kode_hari==2){

printf("\nHari Selasa.");}else if(kode_hari==3){

printf("\nHari Rabu.");}else if(kode_hari==4){

printf("\nHari Kamis.");}else if(kode_hari==5){

printf("\nHari Jumat.");}else if(kode_hari==6){

printf("\nHari Sabtu.");}else{

printf("\nHari Minggu.");}

}

Meyla Yan Sari Page 15

#include <stdio.h>main (){

int kode;printf ("masukkan kode (1 hingga 7) untuk

menampilkan hari=");scanf ("%d",&kode);switch (kode){

case 1 : printf ("\nhari senin");break;case 2 : printf ("\nhari selasa");break;case 3 : printf ("\nhari rabu");break;case 4 : printf ("\nhari kamis");break;case 5 : printf ("\nhari jumat");break;case 6 : printf ("\nhari sabtu");break;case 7 : printf ("\nhari minggu");break;

default : printf ("\nkode yang anda masukkansalah");

}}

Implementasi nomor 6

#include <stdio.h>main(){int kode;printf("Masukan kode bulan : ");scanf("%i",&kode);if(kode ==1){

printf ("Bulan Januari, 31 hari");}else if(kode ==2){

printf ("Bulan Februari, 28 hari");

Meyla Yan Sari Page 16

}else if(kode ==3){

printf("Bulan Maret, 31 hari");}else if(kode ==4){

printf("Bulan April, 30 hari");}else if(kode ==5){

printf("Bulan Mei, 31 hari");}else if(kode ==6){

printf("Bulan Juni, 30 hari");}else if(kode ==7){

printf("Bulan Juli, 31 hari");}else if(kode ==8){

printf("Bulan Agustus, 30 hari");}else if(kode ==9){

printf("Bulan September, 31 hari");}else if(kode ==10){

printf("Bulan Oktober, 30 hari");}else if(kode ==11){

printf("Bulan November, 31 hari");}else{

printf("Bulan Desember, 30 hari");}}

Meyla Yan Sari Page 17

#include <stdio.h>main(){int kode;printf("Masukan kode bulan : ");scanf("%i",&kode);printf;switch(kode){

case 1 :printf("Bulan Januari banyaknya 31 hari");

break;case 2 :

printf("Bulan Februari, banyaknya 28 hari");break;case 3 :

printf("Bulan Maret, banyaknya 31 hari");break;case 4 :

printf("Bulan April, banyaknya 30 hari");break;case 5 :

printf("Bulan Mei, banyaknya 31 hari");break;case 6 :

printf("Bulan Juni, banyaknya 30 hari");break;case 7 :

printf("Bulan Juli, banyaknya 31 hari");break;case 8 :

printf("Bulan Agustus, banyaknya 30 hari");break;case 9 :

printf("Bulan September, banyaknya 31 hari");break;case 10 :

printf("Bulan Oktober, banyaknya 30 hari");break;

Meyla Yan Sari Page 18

case 11 :printf("Bulan November, banyaknya 31 hari");

break;default:printf("Bulan Desember, banyaknya 30 hari");

}}

V. Pertanyaan Soal

1. Buatlah algoritma dan program yang dapat digunakan untuk

menjumlahkan atau mengalikan atau mengurangkan atau

membagi dua bilangan. (sekali dijalankan hanya mengerjakan

salah satunya). Untuk mempermudah proses tersebut

kendalikan dalam suatu menu utama.

2. Anda sekarang mengetahui struktur if–then-else secara

bertingkat. Coba terangkan jalannya eksekusi algoritma

atau program jika menemui struktur tersebut. Untuk

mempermudah jawaban anda sertakan contoh sederhana dalam

bentuk algoritma dan berikut programnya.

3. Demikian juga untuk struktur Case, coba terangkan jalannya

eksekusi algoritma atau program jika menemui struktur

tersebut. Untuk mempermudah jawaban anda sertakan contoh

sederhana dalam bentuk algoritma dan berikut programnya.

4. Menurut pendapat anda mengapa semua permasalahan

percabangan yang dapat diselesaikan dengan struktur if-

then-else tidak mesti dapat diselesaikan menggunakan

struktur Case ? Jawablah dengan singkat dan jelas. Untuk

mempermudah jawaban anda sertakan contoh sederhana dalam

bentuk algoritma dan berikut programnya.

Meyla Yan Sari Page 19

5. Berikanlah kesimpulan dari praktik yang anda lakukan di

jobsheet keempat ini .

Meyla Yan Sari Page 20

VI. Penutup

Dengan praktikum ini saya bisa mengerti permasalahan mana

yang dapat diselesaikan dengan case atau dengan if then

else bertingat

Meyla Yan Sari Page 21

VII.Daftar Pustaka

Jobsheet Algo 04.pdf

Handoko, S. 2011. BUKU AJAR LOGIKA & ALGORITMA.pdf. Semarang:

Politeknik Negeri Semarang.

Meyla Yan Sari Page 22

VIII.Lampiran

Jawab :

1. Operasi dua bilangan :

#include <stdio.h>#include <conio.h>int jumlah (int a, int b){

int jml;jml=a+b;return (jml);

}

int kurang (int c, int d){

int krg;krg=c-d;return (krg);

}int bagi (int e,int f)

{int bg;bg= e/f;return (bg);

}int kali (int g, int h){

int kl;kl=g*h;return (kl);

}

int main (){int op_bil, a, b;puts ("<<<<<OPERASI BILANGAN>>>>>>");puts ("1. penjumlahan");puts ("2. pengurangan");puts ("3. pembagian");puts ("4. perkalian");printf ("masukkan pilihan anda :)");scanf ("%d",&op_bil);

Meyla Yan Sari Page 23

switch (op_bil){ case 1:

puts ("anda memilih penjumlahan");printf ("masukkan nilai bilangan pertama ");

scanf ("%d",&a);printf ("masukkan nilai bilangan kedua ");

scanf ("%d",&b);printf ("hasil penjumlahannya adalah %d\

n",jumlah (a,b));break;case 2:

puts ("anda memilih pengurangan");printf ("masukkan bilangan pertama "); scanf

("%d",&a);printf ("masukkan bilangan kedua "); scanf

("%d",&b);printf ("hasil pengurangannya adalah %d\n",

kurang(a,b));break;case 3:

puts ("anda memilih pembagian");printf ("masukkan bilangan pertama "); scanf

("%d",&a);printf ("masukkan bilangan kedua "); scanf

("%d",&b);printf ("hasil pembagiannya adalah %d\n",bagi

(a,b));break;case 4:

puts ("anda memilih perkalian");printf ("masukkan bilangan pertama "); scanf

("%d",&a);printf ("masukkan bilangan kedua "); scanf

("%d",&b);printf ("hasil perkaliannya adalah %d\n",kali

(a,b));break;default :

printf ("pilihan yang anda masukkan salah!");}

Meyla Yan Sari Page 24

getch();return 0;}

2. Suatu program yang menggunakan struktur if then else

bertingkat, maka program akan mengeksekusi suatu masukan

dan memberikan nilai benar atau salah dari masukan

tersebut, apabila bernilai benar, maka proses kondisi

dibawahnya tidak dikerjakan, namun apabila bernilai

salah, maka proses akan terus berjalan pada

pengkondisian selanjutnya hingga end proses.

#include <conio.h>void main(){

Meyla Yan Sari Page 25

char makan,minum;printf("Apakah anda sudah makan (Y/N) ? ");makan = getche();printf(\n"Apakah anda sudah minum (Y/N) ? ");minum = getchar();if(makan=='Y' && minum=='Y'){

printf("Anda sudah kenyang dan tidak haus.");}else if(makan=='Y' && minum=='N'){

printf("Anda sudah kenyang tapi haus.");}else if(makan=='N' && minum=='Y'){

printf("Anda lapar tapi tidak haus.");}else{

printf("Anda lapar dan haus.");}

}

3. Program dengan switch case akan mencocokan kondisi

dengan inputan, apabila ada alternatif yang cocok, maka

proses di dalam alternatif tersebut yang akan

dieksekusi.

Meyla Yan Sari Page 26

#include <stdio.h>#include <conio.h>void main(){

int a;printf("Masukkan absen satu hingga tiga : ");scanf("%i",&a);switch(a){

case 1:printf("absen 1 Meyla");

break;case 2:

printf("absen 2 Yan");break;case 3:

printf("absen 3 Sari");break;

Meyla Yan Sari Page 27

default:printf("Tidak tersedia");

}}

4. Karena struktur case tidak dapat menggunakan operator

logika yang bisa di implementasikan pada if then else

bertingkat.

#include <stdio.h>void main(){

int nilai;

Meyla Yan Sari Page 28

printf("Masukan nilai : ");scanf("%i",&nilai);printf("\n");if(nilai>80){

printf("lulus dengan Nilai A");}else if(nilai>60){

printf("lulus dengan Nilai B");}else{

printf("lulus dengan Nilai C");}

}

#include <stdio.h>void main(){

int nilai;printf("Masukan nilai : ");scanf("%i",&nilai);printf("\n");switch(nilai)

Meyla Yan Sari Page 29

{case 80:

printf("lulus dengan Nilai A");break;case 60:

printf("lulus dengan Nilai B");break;default:

printf("lulus dengan Nilai C");}

}

5. Kesimpulan :

If then Else bertingkat : proses penyeleksian dengan

beberapa kondisi. Apabila alternatif pertama bernilai

false, maka akan lanjut ke alternatif berikutnya begitu

seterusnya.

Switch Case : struktur yang dirancang khusus untuk

menangani pengambilan keputusan yang melibatkan

sejumlah alternatif. tidak semua masalah yang bisa

diselesaikan IF then else bisa diselesaikan dengan

Switch Case, karena switch case tidak bisa menggunakan

operator logika.

Meyla Yan Sari Page 30