Percabangan bersyara dengan if then else
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
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