Logika dan Algoritma Job 2

21
LAPORAN PRAKTIKUM PSEUDOCODE Oleh: Dwi Wuri Mud’mainah (3.34.13.1.06) IK-1B PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK ELEKTRO

Transcript of Logika dan Algoritma Job 2

LAPORAN PRAKTIKUM

PSEUDOCODE

Oleh:

Dwi Wuri Mud’mainah (3.34.13.1.06)

IK-1B

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI SEMARANG

2013

I. TUJUAN

1. Mengetahui dan menjelaskan struktur algoritma dengan

pseudocode.

2. Membuat algoritma berupa pseudocode, yang melibatkan

permasalahan-permasalahan sederhana.

II. ALAT DAN BAHAN

PC minimal P-3 400 Mhz

Min Win98, Microsoft Word

III. DASAR TEORI

1. Pendahuluan

Algoritma berisi langkah-langkah penyelesaian

suatu permasalahan yang akan diselesaikan dengan

suatu bahasa pemrograman. Langkah-langkah tersebut dapat

ditulis dalam notasi apapun, asalkan mudah dibaca dan

dimengerti, karena memang tidak ada notasi baku dalam

penulisan algoritma. Tiap orang dapat membuat aturan

penulisan dan notasi algoritma sendiri. Agar notasi

algoritma mudah ditranslasi ke dalam notasi bahasa

pemrograman, maka sebaiknya notasi algoritma tersebut

berkoresponden dengan notasi bahasa pemrograman secara

umum.

Aturan Penulisan Algoritma

Dwi Wuri Mud’mainah Page |

Setiap Algoritma akan selalu terdiri dari tiga

bagian yaitu :

Judul (Header)

Kamus ( Deklarasi )

Algoritma ( Deskripsi )

Pada setiap bagian tersebut apabila akan dituliskan

komentar mengenai setiap bagian tersebut dituliskan

diantara tanda kurung kurawal contoh { Komentar }.

Notasi algoritmis yang dituliskan diantara tanda ini

tidak akan dieksekusi oleh program.

Judul / Header

{ Merupakan bagian yang berisi judul dari suatu

permasalahan yang diselesaikan berikut komentar

mengenai Algoritma seperti cara kerja algoritma,

Kondisi awal dan kondisi akhir dari algoritma }

Kamus / Deklarasi

{ Pada bagian ini, didefinisikan nama konstanta,

nama variable, nama prosedur dan nama fungsi yang

akan dilibatkan dalam Algoritma}

Algoritma / Deskripsi

Dwi Wuri Mud’mainah Page |

{ Pada bagian ini langkah-langkah penyelesaian

masalah dituliskan. Semua teks yang dituliskan tidak

diantara tanda kurung kurawal akan dianggap

sebagai notasi algoritma yang akan berpengaruh

terhadap kebenaran Algoritma }

Contoh :

Judul (Header)

Judul adalah bagian teks algoritma yang digunakan

sebagai tempat mendefinisikan nama dengan menentukan

apakah teks tersebut adalah program, prosedur,

fungsi. Setelah judul disarankan untuk menuliskan

spesifikasi singkat dari teks algoritma tersebut.

Nama algoritma sebaiknya singkat namun cukup

menggambarkan apa yang akan dilakukan oleh algoritma

tersebut.

Contoh :

Algoritma Luas_Kubus ← {Judul Algoritma}

{ Menghitung luas kubus untuk ukuran sisi yang

dibaca dari piranti masukan lalu mencetak hasilnya

kepiranti keluaran } ← { Spesifikasi Algoritma }

Dwi Wuri Mud’mainah Page |

Catatan :

Untuk memisahkan antara kata dalam judul algoritma

menggunakan tanda “_” bukanlah suatu keharusan.

Anda dapat menuliskan LuasKubus atau Luas_Kubus.

Tetapi sebaiknya anda tidak menggunakan spasi

“ “ untuk memisahkan antara kata di dalam

nama algoritma.

Judul algoritma bersifat opsional, artinya boleh

dituliskan, boleh juga tidak dituliskan.

Kamus (Deklarasi)

Kamus adalah bagian teks algoritma sebagai tempat

untuk mendefinisikan :

Nama type

Nama konstanta

Nama variabel

Nama fungsi

Nama prosedur

Semua nama tersebut baru dapat dipakai di

dalam algoritma jika dan hanya jika telah

Dwi Wuri Mud’mainah Page |

didefinisikan terlebih dahulu didalam bagian kamus.

Penulisan sekumpulan nama dalam kamus sebaiknya

dikelompokkan menurut jenis nama tersebut.

Nama variabel belum terdefinisi nilainya ketika

didefinisikan. Pendefinisian nama konstanta sekaligus

memberikan harga konstanta tersebut, pendefinisian nama

fungsi dilakukan sekaligus dengan domain / range serta

spesifikasinya. Pendefinisian nama prosedur sekaligus

dengan pendefinisian parameter (jika ada) dan

spesifikasi prosedur (kondisi awal “Initial State”, Kondisi

akhir “ Final State” dan proses yang dilakukan).

Contoh :

Kamus{Nama type, hanya untuk type yang bukan type dasar}type jam : <hh,mm,ss :integer> {Type jam terdiri dari

3 masukan yaitu{Nama konstanta, harus menyebutkan type dan

nilai }constant phi : real = 3,14159constant nama : string = “Alex”constant benar : boolean = true{Nama Informasi, menyebutkan type}x,y : integer {suatu nilai yang bertype bilanganNMax : real {nilai maksimum yang bertype bilanganNama : string {suatu nilai yang merupakan kumpulanP : point {suatu nilai pada bidang kartesian}Cari : Boolean {suatu nilai logika}

Algoritma (Deskripsi)

Dwi Wuri Mud’mainah Page |

Algoritma / deskripsi adalah bagian inti dari suatu

algoritma yang berisi instruksi atau pemanggilan aksi

yang telah didefinisikan. Komponen teks algoritma dalam

pemrograman procedural dapat berupa :

Instruksi dasar seperti input/output, assignment

Squence (runtutan)

Analisa kasus / percabangan

Perulangan

Setiap langkah algoritma dibaca dari “atas” ke

“bawah”. Urutan deskripsi penulisan menentukan urutan

langkah pelaksanaan perintah.

Contoh :

Algoritma ( Deskripsi )input (intC,intD) {menerima masukan 2 bilangan intC

dan intD}if intC > intD then {operasi kondisional}intMaks ← intC {intMaks di assignment oleh nilaiElseintMaks ← intD {intMaks di assignment oleh nilaioutput (intMaks) {hasil keluaran berupa bilangan

Catatan :

Untuk kata-kata input, output, if then else, output akan

dipelajari lebih mendalam dalam

Dwi Wuri Mud’mainah Page |

Jobsheet-jobsheet selanjutnya.

Contoh lengkap algoritma dalam bentuk pseudocode :

Judul ( Header )Algoritma maks_C_D { Judul algoritma }{Menentukan nilai terbesar dari dua buah bilangan

bulat, dimana nilai intC dan intD dimasukkan dariKamus (Deklarasi)Var intMaks, intC, intD : integer

{menentukan tipe variabel berupa bilangan bulatAlgoritma ( Deskripsi )

input (intC,intD) {menerima masukan 2 bilangan intCif intC > intD then {operasi kondisional}intMaks ← intC {intMaks di assignment oleh nilaiElseintMaks ← intD {intMaks di assignment oleh nilaioutput (intMaks) {hasil keluaran berupa bilangan

IV. LANGKAH KERJA

1. Hidupkan komputer anda !

2. Jalankan Microsoft Word, dengan cara menekan tombol

StartProgramMS Office

2007Microsoft Word. Selanjutnya tuliskan algoritma dari

permasalahan berikut ini :

3. Buatlah algoritma dengan bentuk penulisan pseudocode

untuk proses menghitung luas lingkaran pada bagian

lembar Microsoft Word, kemudian simpan hasil kerja

anda ke dalam hardisk atau disket data dengan nama

Dwi Wuri Mud’mainah Page |

file : Pseudocode

Algoritma Luas_Lingkaran

{ Menghitung luas lingkaran dengan menginputkan jari_jari dan

menampilkan hasilnya }

Kamus

Var jari_jari,luas : integer

Var phi = 3.14 : const float

Algoritma

input (jari_jari) {menginputkan nilai integer untuk variable

jari_jari}

luas phi * jari_jari * jari_jari {menghitung luas dengan←

mengkalikan phi dan jari_jari}

output (luas) {mencetak luas}

4. Buatlah algoritma dengan bentuk penulisan

pseudocode untuk proses menghitung keliling lingkaran

pada bagian lembar berikutnya dari program Microsoft

Word, kemudian simpan hasil kerja anda ke dalam hardisk

atau disket data anda dengan nama file yang sama

seperti langkah ketiga.

Algoritma Keliling_Lingkaran

{ Menghitung keliling lingkaran dengan menginputkan diameter

dan menampilkan hasilnya }

Kamus

Dwi Wuri Mud’mainah Page |

Var diameter,keliling : float

Var phi = 3.14 : const float

Algoritma

input (diameter) {menginputkan nilai untuk variable diameter}

keliling phi * diameter {menghitung keliling dengan←

mengkalikan phi dan diameter}

output (keliling) {mencetak keliling}

5. Buatlah algoritma dengan bentuk penulisan pseudocode

untuk proses menghitung luas segitiga pada bagian

lembar berikutnya dari program Microsoft Word, kemudian

simpan hasil kerja anda ke dalam hardisk atau disket

data anda dengan nama file yang sama seperti langkah

ketiga.

Algoritma Luas_Segitiga

{ Menghitung luas segitiga dengan meninputkan alas dan tinggi,

kemudian mengkalikan bilangan tersebut, dan menampilkan

hasil. }

Kamus

Var alas, tinggi, luas : integer

Algoritma

input (alas, tinggi) {menginputkan nilai untuk variable alas dan

tinggi}

luas alas * tinggi / 2 {menghitung luas dengan mengkalikan←

alas dan tinggi kemudian dibagi 2}

Dwi Wuri Mud’mainah Page | 10

output (luas) {mencetak luas}

6. Diketahui suatu permasalahan sebagai berikut :

Analisis masalah :

Luas = √ S * (S – sisiA) * (S - sisiB ) * (S – sisiC )

dengan S = 0.5 * (sisiA+sisiB+sisiC)

Tugas anda :

Tuliskan algoritma tersebut dalam bentuk flowcharts dan

pseudocode.

Flowchart :

Pseudocode :

Algoritma Luas_Segitiga

{ Menghitung luas segitiga dengan menginputkan sisi-sisinya}

Kamus

Dwi Wuri Mud’mainah Page | 11

sisiA

sisiC

sisiB

luas, a, b, c : integer

Algoritma

Input (a,b,c) {menginput nilai a,b,c}

S 0.5 x (a+b+c)←

luas sqrt(S x(S-a)x(S-b)x(S-c))←

output (luas)

7. Cobalah anda implementasikan permasalahan nomor 3, 4,

5, dan 6 ke dalam bentuk program dengan menggunakan

bahasa pemrograman Pascal.

Nomor 3#include <stdio.h>main(){

float luas,phi,jari_jari;phi = 3.14;printf("Masukan nilai jari-jari : ");scanf("%f",&jari_jari);luas = phi * (jari_jari * jari_jari);printf("\n");printf("Dengan jari-jari %f, maka luas lingkaran :

%f",jari_jari,luas);}

Nomor 4#include <stdio.h>main(){

float k,d,phi;

phi = 3.14;printf("Masukan nilai diameter : ");scanf("%f",&d);printf("\n");k = phi * d;printf("Dengan diameter %f, maka keliling lingkaran :

Dwi Wuri Mud’mainah Page | 12

%f",d,k);}

Nomor 5#include <stdio.h>main(){

int l,a,t;

printf("Masukan nilai alas : ");scanf("%d",&a);printf("\n");printf("Masukan nilai tinggi : ");scanf("%d",&t);printf("\n");l = a * t/2;printf("Alas : %d\nTinggi : %d\nLuas : %d",a,t,l);

}

Nomor 6#include <stdio.h>#include <math.h>main(){

int a, b, c, S, luas;printf("Masukan nilai Sisi A : ");scanf("%d", &a);printf("\n");printf("Masukan nilai Sisi B : ");scanf("%d", &b);

printf("\n");printf("Masukan nilai Sisi C : ");scanf("%d", &c);S = 0.5 * (a + b + c);luas = sqrt(S * (S-a) * (S-b) * (S-c));printf("\n Luas segitiga : %d", luas);

}

V. PERTANYAAN / SOAL

1. Apakah kelebihan dan kekurangan dalam penuliskan

Dwi Wuri Mud’mainah Page | 13

algoritma dari suatu permasalahan dengan menggunakan

flowcharts dan pseudocode.

Flowchart.

Kelebihan :

Mudah dibaca, karena menggunakan visualisasi.

Kekurangan :

Membutuhkan banyak tempat

Harus menghafalkan arti dari lambang – lambang

flowchart

Pseudocode.

Kelebihan :

Tidak butuh banyak tempat.

Hampir sama dengan bahasa pemrogramman, jadi lebih

mudah untuk konversinya

Kekurangan :

Sulit dipahami untuk orang yang baru mengenal

bahasa pemrogramman.

2. Buatlah algoritma dengan bentuk penulisan pseudocode

untuk proses yang menerima sebuah bilangan, men-

decrement bilangan tersebut, dan menampilkan hasil

operasi!

Algoritma decrement

Dwi Wuri Mud’mainah Page | 14

{Menginputkan nilai awal dan men decrement dengan

mengurangi satu – satu daru angka tersebut sampai

nol.}

Kamus

a : integer {suatu nilai yang berupa bilangan

bulat (integer) }

b = 0 : const integer

Algoritma

input (a){memberikan nilai untuk variable a.}

Do {mulai melakukan proses pengulangan}

Output(a){mencetakkan a}

a-- {mengurangi nilai a}

while a >= b {Berhenti sampai nilai a = b}

3. Buatlah algoritma dengan bentuk penulisan pseudocode

untuk proses yang menerima dua buah bilangan,

menjumlahkan kedua bilangan tersebut, lalu hasil

penjumlahannya dikuadratkan, dan hasil peng-kuadratan

ditampilkan!

Algoritma penjumlah_dua_bilangan

{Menginputkan dua bilangan, kemudian menjumlahkan,

dan mengkuadratkan hasil dari penjumlahan

tersebut.}

Kamus

Dwi Wuri Mud’mainah Page | 15

a, b : integer

Algoritma

input (a,b)

hasil ← a + b

hasil ← sqr(hasil)

output (hasil)

4. Buatlah algoritma dengan bentuk penulisan pseudocode

untuk proses yang menerima tiga buah bilangan dan

menampilkan hasil perkalian dari ketiga bilangan

tersebut!

Algoritma perkalian_tiga_bilangan

{Menginputkan tiga bilangan, kemudian mengkalikan

tiga bilangan tersebut, menampilkan hasilnya.}

Kamus

a, b, c : integer

Algoritma

input (a,b,c)

hasil ← a * b * c

output (hasil)

5. Gambarlah sebuah flowchart yang menerima lima buah

bilangan dan menampilkan rata- rata dari kelima

Dwi Wuri Mud’mainah Page | 16

bilangan tersebut!

6. Cobalah anda implementasikan permasalahan nomor 2, 3,

4, dan 5 ke dalam bentuk program dengan menggunakan

bahasa pemrograman Pascal/C.

Implementasi I – Decreament

Source code :

Tampilan program :

Dwi Wuri Mud’mainah Page | 17

Implementasi II – Menjumlahkan dan mengkuadratkan dua

bilangan

Source code :

Tampilan program :

Implementasi III – Perkalian tiga bilangan

Source code :

Dwi Wuri Mud’mainah Page | 18

Tampilan program :

Implementasi IV – Rata – rata lima bilangan

Source code :

Dwi Wuri Mud’mainah Page | 19

Tampilan program :

7. Berikanlah kesimpulan dari praktik yang anda lakukan

di jobsheet ketiga ini

Dwi Wuri Mud’mainah Page | 20

Dengan membuat algoritma menggunakan pseudocode,

semakin mudah untuk diterjemahkan ke bahasa

pemrogramman, karena pseudocode lebih seperti kode

pemrograman yang asli. Sehingga mudah dikonversi.

VI. PENUTUP

Dengan mempelajari jobsheet ini, saya menjadi paham bagaimana

membuat pseudocode, dan bagaimana memecahkan suatu masalah dan

diterapkan pada pseudocode.

VII. DAFTAR PUSTAKA

VIII. LAMPIRAN

Halaman | 21