Penulisan algoritma dengan pseudocode

22
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 Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu : Judul (Header) Kamus ( Deklarasi ) Algoritma ( Deskripsi ) Pseudocode Page 1

Transcript of Penulisan algoritma dengan pseudocode

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

Setiap Algoritma akan selalu terdiri dari tiga

bagian yaitu :

Judul (Header)

Kamus ( Deklarasi )

Algoritma ( Deskripsi )

Pseudocode Page 1

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

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

Pseudocode Page 2

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 }

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)

Pseudocode Page 3

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

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}

Pseudocode Page 4

type jam : <hh,mm,ss :integer> {Type jam terdiri

dari 3 masukan yaitu

“hh” sebagai jam. “mm” sebagai menit dan “ss”

sebagai detik}

{Nama konstanta, harus menyebutkan type dan nilai }

constant phi : real = 3,14159

constant nama : string = “Alex”

constant benar : boolean = true

{Nama Informasi, menyebutkan type}

x,y : integer {suatu nilai yang bertype bilangan

bulat}

NMax : real {nilai maksimum yang bertype bilangan

real}

Nama : string {suatu nilai yang merupakan kumpulan

character}

P : point {suatu nilai pada bidang kartesian}

Cari : Boolean {suatu nilai logika}

Algoritma (Deskripsi)

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

Pseudocode Page 5

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 nilai

intC}

Else

intMaks ← intD {intMaks di assignment oleh nilai

intD}

output (intMaks) {hasil keluaran berupa bilangan

intMaks}

Catatan :

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

akan dipelajari lebih mendalam dalam Jobsheet-

jobsheet selanjutnya.

Contoh lengkap algoritma dalam bentuk pseudocode :

Judul ( Header )

Pseudocode Page 6

Algoritma maks_C_D { Judul algoritma }

{Menentukan nilai terbesar dari dua buah bilangan

bulat, dimana nilai intC dan intD dimasukkan dari

keyboard }

Kamus (Deklarasi)

Var intMaks, intC, intD : integer

{menentukan tipe variabel berupa bilangan bulat

(integer)}

Algoritma ( Deskripsi )

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

dan intD}

if intC > intD then {operasi kondisional}

intMaks ← intC {intMaks di assignment oleh nilai

intC}

Else

intMaks ← intD {intMaks di assignment oleh nilai

intD}

output (intMaks) {hasil keluaran berupa bilangan

intMaks}

IV. Langkah Kerja

1. Hidupkan komputer anda !

2. Jalankan Microsoft Word, dengan cara menekan tombol

Start > Program > MS Office 2007 > Microsoft Word.

Selanjutnya tuliskan algoritma dari permasalahan

berikut ini :

Pseudocode Page 7

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

file : Pseudocode

Algoritma Luas_Lingkaran

{ Menghitung luas lingkaran dengan menginputkan

jari2 dan menampilkan hasilnya }

Kamus

jari2,luas : integer

phi = 3.14 : const float

Algoritma

input (jari2) {menginputkan nilai integer untuk

variable jari2}

luas ← phi * jari2* jari2 {menghitung luas dengan

mengkalikan phi dan jari2}

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 Kll Lingkaran

Pseudocode Page 8

{ Menghitung keliling lingkaran dengan menginputkan

diameter dan menampilkan hasilnya }

Kamus

diameter,keliling : float

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

alas, tinggi, luas : integer

Algoritma

input (alas, tinggi) {menginputkan nilai untuk

variable alas dan tinggi}

Pseudocode Page 9

luas ← alas * tinggi * 0.5{menghitung luas dengan

mengkalikan alas dan tinggi dan 0.5}

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 L_Segitiga

{ Menghitung luas segitiga dengan menginputkan sisi-

sisinya}

Pseudocode Page 10

Kamus

L, 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 (L)

7. Cobalah anda implementasikan permasalahan nomor 3,

4, 5, dan 6 ke dalam bentuk program dengan

menggunakan bahasa pemrograman C.

Inplementasi nomor 3 :

Menghitung luas lingkaran

#include <stdio.h>

void main()

{

float L,phi,jari2;

phi = 3.14;

printf("Masukan nilai jari2: ");

scanf("%f\n",&jari2);

L= phi * (jari2 * jari2);

printf("Dengan jari-jari %f, maka luas

lingkaran : %f", jari2,L);

Pseudocode Page 11

}

Hasil eksekusi :

Implementasi nomor 4 :

Menghitung keliling lingkaran

#include <stdio.h>

void main()

{

float Kll,d,phi;

phi = 3.14;

printf("Masukan nilai diameter : ");

scanf("%f",&d);

Kll= phi * d;

printf("Dengan diameter %f, maka keliling

lingkaran : %f",d,Kll);

}

Hasil Eksekusi :

Implementasi nomor 5 :

Menghitung luas segitiga

#include <stdio.h>

void main()

{

Pseudocode Page 12

int L,a,t;

printf("Masukan nilai alas : ");

scanf("%d",&a);

printf("\nMasukan nilai tinggi : ");

scanf("%d",&t);

L = a * t/2;

printf("\nAlas : %d\nTinggi : %d\nLuas :

%d",a,t,L);

}

Hasil eksekusi :

Implementasi nomor 6 :

Menghitung luas segitiga dengan s

#include <stdio.h>

#include <math.h>

void main()

{

int a, b, c, S, L;

printf("Masukan nilai Sisi A : ");

scanf("%d", &a);

printf("\nMasukan nilai Sisi B : ");

scanf("%d", &b);

printf("\nMasukan nilai Sisi C : ");

scanf("%d", &c);

S = 0.5 * (a + b + c);

Pseudocode Page 13

L= sqrt(S * (S-a) * (S-b) * (S-c));

printf("\n Luas segitiga : %d", L);

}

Hasil eksekusi :

V. PERTANYAAN / SOAL

1. Apakah kelebihan dan kekurangan dalam penuliskan

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 :

Pseudocode Page 14

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

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

Pseudocode Page 15

Algoritma jumlah_dua_bil

{Menginputkan dua bilangan, kemudian menjumlahkan,

dan mengkuadratkan hasil dari penjumlahan tersebut.}

Kamus

c, d : integer

Algoritma

input (c,d)

hasil ← c + d

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_bil

{Menginputkan tiga bilangan, kemudian mengkalikan

tiga bilangan tersebut, menampilkan hasilnya.}

Kamus

x, y, z : integer

Algoritma

input (x, y, z)

hasil ← x*y*z

output (hasil)

Pseudocode Page 16

5. Gambarlah sebuah flowchart yang menerima lima buah

bilangan dan menampilkan rata- rata dari kelima

bilangan tersebut!

6. Cobalah anda implementasikan permasalahan nomor 2,

3, 4, dan 5 ke dalam bentuk program dengan

menggunakan bahasa pemrograman C.

Implementasi nomor 2 :

Mendrecement sebuah bilangan

#include <stdio.h>

Main ()

#include <stdio.h>

main ()

{

int a;

const int b=0;

printf ("masukkan sebuah bilangan=");

scanf ("%d",&a);

do

{

printf ("%d\n",a);

a--;

}

while (a>=b);

}

Pseudocode Page 17

Implementasi nomor 3 :

Menjumlahkan dan mengkuadratkan dua bilangan

#include <stdio.h>

main ()

{

int a,b,hasil;

printf ("masukkan bilangan pertama=");

scanf ("%d",&a);

printf ("masukkan bilangan kedua=");

scanf ("%d",&b);

hasil=a+b;

hasil=hasil*hasil;

printf ("\kuadrat dari penjumlahan kedua

bilangan tersebut adalah=%d",hasil);

}

Implementasi nomor 4 :

Perkalian 3 bilangan

#include <stdio.h>

main()

{

int a,b,c,hasil;

Pseudocode Page 18

printf("Masukkan nilai A : ");

scanf("%d", &a);

printf("\n");

printf("Masukkan nilai B : ");

scanf("%d", &b);

printf("\n");

printf("Masukkan nilai C : ");

scanf("%d", &c);

printf("\n");

hasil = a*b*c;

printf("hasil dari a x b x c = %d",hasil);

}

Implementasi nomor 5 :

Rata-rata 5 bilangan

#include <stdio.h>

main()

{

int a,b,c,d,e;

float hasil;

printf("Masukkan nilai A : ");

scanf("%d", &a);

printf("\nMasukkan nilai B : ");

scanf("%d", &b);

printf("\nMasukkan nilai C : ");

Pseudocode Page 19

scanf("%d", &c);

printf("\nMasukkan nilai D : ");

scanf("%d", &d);

printf("\nMasukkan nilai E : ");

scanf("%d", &e);

hasil = (a+b+c+d+e) / 5;

printf("hasil rata-rata dari kelima bilangan

tersebut adalah %f",hasil);

}

7. Berikanlah kesimpulan dari praktik yang anda lakukan

di jobsheet kedua ini

Dengan membuat algoritma dalam bentuk pseudocode,

semakin mudah untuk diterjemahkan ke bahasa

pemrogramman, karena pseudocode lebih seperti kode

pemrograman yang asli. Sehingga mudah dikonversi.

Pseudocode Page 20

VI. PENUTUP

Dengan mempelajari jobsheet ini, saya menjadi paham

bagaimana membuat pseudocode, dan bagaimana memecahkan

suatu masalah dan diterapkan pada pseudocode.

Pseudocode Page 21

VII. Daftar Pustaka

Handoko, M. Kom. Jobsheet praktikum ke dua.

Pseudocode Page 22