• Tidak ada hasil yang ditemukan

Logika dan Algoritma Job 4

N/A
N/A
Protected

Academic year: 2018

Membagikan "Logika dan Algoritma Job 4"

Copied!
21
0
0

Teks penuh

(1)

LAPORAN PRAKTIKUM

PERCABANGAN BERSYARAT

( IF-THEN-ELSE BERTINGKAT, CASE )

Oleh:

Dwi Wuri Mud’mainah (3.34.13.1.06)

(2)

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

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

Bentuk pseudocode if-then-else bertingkat

If (kondisi 1) then Proses 1

Else If (kondisi 2) then Proses 2

Else If (kondisi 3) then Proses 3

………..

Else If (kondisi n) then Proses n

(3)

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 :

Bentuk pseudocode struktur CASE

Case (ungkapan)

case Alternatif_1:proses_1 case Alternatif_2:proses_2

Translasi struktur CASE ke bahasa Pascal

(4)

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

(5)

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

PROGRAM NILAI_MAHASISWA DEKLARASI

nilai : integer

Nilai huruf ,Ket : char

DESKRIPSI

If (80 ≤ nilai ≤ 100) then Nilai huruf ← A

Ket ← lulus

Else If (65 ≤ nilai ≤ 80) then Nilai huruf ← B

Ket ← lulus

Else If (50 ≤ nilai ≤ 65) Nilai huruf ← C

Ket ← lulus Else If (30 ≤ nilai ≤ 50)

Nilai huruf ← D Ket ← ulang Else

Nilai huruf ← E Ket ← ulang Endif

(6)

5. Buatlah algoritma dengan bentuk flowcharts dan pseudocode untuk permasalan berikut ini:

(7)

b. Tugas anda adalah membuat algoritmanya untuk memasukkan kode hari tersebut dan memprosesnya sehingga tampil nama hari yang sesuai dengan kode harinya.

Angka : integer Hari : string

DESKRIPSI

Input (angka) if (angka=1) then write (‘Hari Senin’) else

if (angka=2) then write (‘Hari Selasa’) else

if (angka=6) then write (‘Hari Sabtu’) else

write (‘Hari Minggu’)

(8)
(9)

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.

(10)
(11)

- Pseudocode

PROGRAM KODE_BULAN

DEKLARASI

Kode : interger Bulan : string

DESKRIPSI Input (kode) If (kode=1) then

(12)

Write (‘Bulan September’) Else if (kode=10) then Write (‘Bulan Oktober’) Else if (kode=11) then Write (‘Bulan November’) Else if (kode=12) then Write (‘Bulan Desember’) Else

Write (‘Kode anda salah’) Endif Case 2 : ‘jml_hari = 28/29 hari’ Case 3 : ‘jml_hari = 31 hari’ Case 11: ‘jml_hari = 30 hari Case 12: ‘jml_hari = 31 hari’ Otherwise

‘Kode anda salah’ Endcase

7. Cobalah anda implementasikan permasalahan nomor 4, 5, dan 6 ke dalam bentuk program dengan menggunakan bahasa pemrograman C.

- Nomor 4

(13)

main() {

float nilai; char a,b,c,d,e;

printf("Masukkan Nilai= "); scanf("%f",&nilai);

if(nilai>=80 && nilai<=100) { printf("Nilai= A"); }

else if(nilai>=65 && nilai<80) { printf("Nilai= B"); }

else if(nilai>=50 && nilai<65) { printf("Nilai= C"); }

else if(nilai>=30 && nilai<50) { printf("Nilai= D"); }

else if(nilai<=30) { printf("Nilai= E"); } else

{ printf("Nilai yang dimasukkan salah!"); } getch();

printf("Masukkan kode hari 1..7 = "); scanf("%d", &angka);

if (angka==1) {

printf("Hari Senin"); }

else if (angka==2) {

printf("Hari Selasa"); }

(14)

}

else if (angka==5) {

printf("Hari Jum'at"); }

else if (angka==6) {

printf("Hari Sabtu"); }

else if (angka==7) {

printf("Hari Minggu"); }

else {

printf("Kode Anda Salah!!"); }

printf("Masukkan angka bulan 1..12 = "); scanf("%d", &kode);

if (kode==1)

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

{printf("Bulan Februari");} else if (kode==3)

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

(15)

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

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

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

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

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

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

{printf("Bulan November");} else if (kode==12)

{printf("Bulan Desember");} else

{printf("kode bulan salah!!");} switch(kode)

{

case 1:

printf("\nJumlah hari adalah 31"); break;

case 2:

printf("\nJumlah hari adalah 28"); break;

case 3:

printf("\nJumlah hari adalah 31"); break;

case 4:

printf("\nJumlah hari adalah 30"); break;

(16)

case 7:

printf("\nJumlah hari adalah 31"); break;

case 8:

printf("\nJumlah hari adalah 31"); break;

case 9:

printf("\nJumlah hari adalah 30"); break;

case 10:

printf("\nJumlah hari adalah 31"); break;

case 11:

printf("\nJumlah hari adalah 30"); break;

case 12:

printf("\nJumlah hari adalah 31"); break;

default:

printf("\nKode Anda Salah!!"); }

getch(); }

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.

(17)

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

VI. Jawaban

1. Operasi_Matematika ←algoritma

{program menjumlahkan atau mengurangkan atau mengalikan atau membagikan bilangan yang anda masukkan}

deklarasi

operasi : char bil1,bil2 : integer hasil : real

deskripsi

input(tanda) input(bil1,bil2)

input ('rumus matematikanya = ',bil1,' ',tanda,' ',bil2)

case tanda

case '+'← hasil ← bil1+bil2 case '-'← hasil ← bil1-bil2 case '*'← hasil ← bil1*bil2 case ':'← hasil ← (bil1/bil2)

otherwise hasil ← 0 endcase

(18)

X : interger DESKRIPSI Input (X) Modulus x%2 If (modulus=0) then

Write (‘x adalah bilangan genap’) Else

Write (‘x adalah bilangan ganjil’) Endif

Pada contoh di atas mula-mula program masukkan nilai x. Setelah itu x dibagi 2. Apabila tidak ada sisa hasil bagi, atau sisa hasil bagi adalah 0 maka program akan menulis ‘x adalah bilangan genap’. Sebaliknya apabila terdapat sisa hasil bagi maka program akan menulis ‘x adalah bilangan ganjil’.

3. hari←judul algoritma

{menentukan nama hari jika anda memasukkan angka 1-7}

deklarasi

x : integer hari : string

algoritma

writeln('program menentukan hari') input(x)

hari ←( ’tidak valid') endcase

writeln(’ ’,x,’berarti hari’,hari) output (selesai)

(19)

akan menulis ‘ senin’. Begitu seterusnya.apabila nilai x tidak sesuai dengan semua alternative maka program akn menulis ‘hari tidak valid’.

4. contoh :

Judul ( Header )

Algoritma Nilai_kelulusan{ Judul algoritma }

{Menentukan lulus tidaknya dari nilai yang dimasukkan kedalam nilai yang dimasukkan dari keyboard }

Kamus (Deklarasi) Var nilai: integer

{menentukan tipe variabel berupa bilangan bulat (integer)} Algoritma ( Deskripsi )

input (nilai) {menerima masukan bilangan nilai}

if else nilai >= 80 then nilai huruf “A” status lulus {operasi kondisional dari permasalahan}

else if nilai >= 65 then nilai huruf “B” status lulus {operasi kondisional dari permasalahan}

else if nilai >= 50 then nilai huruf “C” status lulus {operasi kondisional dari permasalahan}

else if nilai >= 30 then nilai huruf “D” status Ulang {operasi kondisional dari permasalahan}

else if nilai >= 0 then nilai huruf “E” status ulang {operasi kondisional dari permasalahan}

else if nilai>100 then “nilai yang dimasukkan masukan salah” endif

... endif

output (status) {hasil keluaran berupa pernyataan status}

(20)

Var nilai: integer

{menentukan tipe variabel berupa bilangan bulat (integer)} Algoritma ( Deskripsi )

input (nilai) {menerima masukan bilangan nilai} case nilai OF

100: “nilai huruf “A” status lulus” 99: “nilai huruf “A” status lulus” 98: “nilai huruf “A” status lulus” …

N: : “nilai huruf “A” status lulus”

80: “nilai huruf “B” status lulus” 79: “nilai huruf “B” status lulus” 78: “nilai huruf “B” status lulus” …

N: “nilai huruf “B” status lulus” N: “nilai huruf “C” status lulus” N: “nilai huruf “E” status ulang” N: “nilai huruf “F” status ulang”

otherwise nilai>100 then “nilai yang dimasukkan masukan salah” endcase

output (status) {hasil keluaran berupa pernyataan status}

5. Setiap algoritma akan selalu terdiri atas 3 bagian : • Judul (header)

• Kamus atau deklarasi • Algoritma atau Deskripsi

Pseudocode & flowchart adalah salah satu tool standart yang digunakan untuk menuliskan suatu algoritma. Dalam penulisan pseudocode yang perlu diperhatikan adalah masalah strukturdari pseudocode dimana diletakkan header pendefinisian pengenal dan penulisan aksi yang dikerjakannya haruslah ditempatkan pada bagian struktur tersebut dengan benar.

(21)

• If_Then • If-Then-Else • nested if • case

Referensi

Dokumen terkait