Anda di halaman 1dari 24

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 :

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.
Meyla Yan Sari

Page 1

Struktur diagram alirnya :

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
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 :

Meyla Yan Sari

Page 2

b.

Tugas anda adalah membuat algoritmanya untuk memasukkan nilai angka


yang diperoleh mahasiswa dan memprosesnya sehingga tampil nilai huruf dan

c.

statusnya dari batasan nilai seperti tabel konversi nilai tersebut.


Gunakan perpaduan struktur If-Then-Else menyelesaikan permasalahan ini.

Meyla Yan Sari

Page 3

Algoritma_Nilai
{Menentukan nilai huruf dan statusnya dari nilai yang diinputkan}
Kamus / Deklarasi
Var nilai: integer
{variabel nilai bertipe integer }
Algoritma (Deskripsi)
Input (nilai)
{ menginputkannilai yang diperoleh mahasiswa }
If (nilai>=80) then
output(Nilai Huruf : A dan Status : LULUS)
Meyla Yan Sari

Page 4

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.
c. Gunakan struktur If-Then-Else dan struktur Case untuk menyelesaikan
permasalahan ini.

Meyla Yan Sari

Page 5

Algoritma Menentukan_Nama_Hari
{ Menampilkan nama hari berdasarkan kode hari yg diinputkan }
Kamus
kode : integer
Algoritma
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
Meyla Yan Sari

Page 6

output(Hari : Jumat)
Else If(kode = 6) Then
output(Hari : Sabtu)
Else
output(Hari : Minggu)
End If

Algoritma Menampilkan_ Hari


{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.

Meyla Yan Sari

Page 7

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


permasalahan ini.
Jawab :

Meyla Yan Sari

Page 8

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)
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)
Meyla Yan Sari

Page 9

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_Bulan
{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)
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.

Meyla Yan Sari

Page 10

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{
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.");
Meyla Yan Sari

Page 11

}
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.");
}
}

#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 masukkan salah");
}
}

Implementasi nomor 6
#include <stdio.h>
main()
{
Meyla Yan Sari

Page 12

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");
}
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 13

#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;
case 11 :
printf("Bulan November, banyaknya 31 hari");
break;
default:
printf("Bulan Desember, banyaknya 30 hari");
}
}
Meyla Yan Sari

Page 14

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 ifthen-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.
5. Berikanlah kesimpulan dari praktik yang anda lakukan di jobsheet keempat ini .

Meyla Yan Sari

Page 15

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 16

VII.

Daftar Pustaka
Jobsheet Algo 04.pdf
Handoko, S. 2011. BUKU AJAR LOGIKA & ALGORITMA.pdf. Semarang: Politeknik
Negeri Semarang.

Meyla Yan Sari

Page 17

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);
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;
Meyla Yan Sari

Page 18

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!");
}
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.

Meyla Yan Sari

Page 19

#include <conio.h>
void main()
{
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 20

#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;
default:
printf("Tidak tersedia");
}
Meyla Yan Sari

Page 21

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;
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");
Meyla Yan Sari

Page 22

}
}

#include <stdio.h>
void main()
{
int nilai;
printf("Masukan nilai : ");
scanf("%i",&nilai);
printf("\n");
switch(nilai)
{
case 80:
printf("lulus dengan Nilai A");
break;
case 60:
printf("lulus dengan Nilai B");
break;
default:
printf("lulus dengan Nilai C");
}
}

Meyla Yan Sari

Page 23

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 24