algoritma - prosedur dan fungsi

Post on 24-May-2015

21.076 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PROSEDUR PROSEDUR DAN DAN

FUNGSIFUNGSI

Mengapa menggunakan Mengapa menggunakan prosedur dan fungsi?prosedur dan fungsi?

1.1. Memecah program yang rumit dan Memecah program yang rumit dan besar menjadi program-program yang besar menjadi program-program yang lebih sederhana.lebih sederhana.

2.2. Untuk aktivitas yang dilakukan lebih Untuk aktivitas yang dilakukan lebih dari satu kali / sering dilakukan dari satu kali / sering dilakukan berulang-ulang.berulang-ulang.

PROSEDURPROSEDUR

AlgoritmaAlgoritma

DeklarasiDeklarasi

DeskripsiDeskripsi

ProcedureProcedure

DeklarasiDeklarasi

DeskripsiDeskripsi

Algoritma ABCDAlgoritma ABCD

DeklarasiDeklarasi

A,B,C,D, Temp : integerA,B,C,D, Temp : integer

DeskripsiDeskripsi

…… ……

Temp ATemp A

A BA B

B TempB Temp

if C > D thenif C > D then

Temp CTemp C

C DC D

D TempD Temp

endifendif

endalgoendalgo

PPRROOSSEEDDUURR

Algoritma ABCDAlgoritma ABCD

DeklarasiDeklarasi

A,B,C,D, Temp : integerA,B,C,D, Temp : integer

DeskripsiDeskripsi

Tukar(A,B)Tukar(A,B)

if C >Dif C >D

Tukar (C,D)Tukar (C,D)

endalgoendalgo

Procedure Tukar (input/output P,Q : integer)Procedure Tukar (input/output P,Q : integer)

DeklarasiDeklarasi

Temp : integerTemp : integer

DeskripsiDeskripsi

Temp PTemp P

P QP Q

Q TempQ Temp

PROSEDURPROSEDURParameter dalam prosedurParameter dalam prosedur

Nilai didalam suatu modul sifatnya Nilai didalam suatu modul sifatnya lokal, artinya hanya dapat digunakan lokal, artinya hanya dapat digunakan pada modul atau unit program yang pada modul atau unit program yang bersangkutan saja, tidak dapat bersangkutan saja, tidak dapat digunakan pada modul atau unit digunakan pada modul atau unit program yang lainnya.program yang lainnya.

PROSEDURPROSEDURParameter dalam prosedurParameter dalam prosedur

Algoritma XXXAlgoritma XXX

DeklarasiDeklarasi

Procedure Hitung(input x,output y)Procedure Hitung(input x,output y)

DeklarasiDeklarasi

varvar

x,y : integerx,y : integer

DeskripsiDeskripsi

write (‘masukan nilai x? ‘,x)write (‘masukan nilai x? ‘,x)

y x*xy x*x

write (‘nilai y : ‘,y)write (‘nilai y : ‘,y)

DeskripsiDeskripsi

Hitung(x,y)Hitung(x,y)

EndalgoEndalgo

Pada contoh diatas variabel x dan y Pada contoh diatas variabel x dan y sifatnya adalah lokal untuk prosedur sifatnya adalah lokal untuk prosedur Hitung, yang artinya hanya dapat Hitung, yang artinya hanya dapat digunakan pada modul tersebut saja. digunakan pada modul tersebut saja. Pada modul yang lain, variabel tersebut Pada modul yang lain, variabel tersebut tidak dapat digunakan.bila digunakan tidak dapat digunakan.bila digunakan akan salah.akan salah.

PROSEDURPROSEDURParameter dalam prosedurParameter dalam prosedur

PROSEDURPROSEDURParameter dalam program yg salahParameter dalam program yg salah

Algoritma XXXAlgoritma XXX

DeklarasiDeklarasi

Procedure Hitung(input x,output y)Procedure Hitung(input x,output y)

DeklarasiDeklarasi

varvar

x,y : integerx,y : integer

DeskripsiDeskripsi

write (‘masukan nilai x? ‘,x)write (‘masukan nilai x? ‘,x)

y x*xy x*x

write (‘nilai y : ‘,y)write (‘nilai y : ‘,y)

DeskripsiDeskripsi

y 5y 5

Hitung(x,y)Hitung(x,y)

EndalgoEndalgo

Contoh program diatas adalah program yang salah karena modul utama/program utama menggunakan variabel lokal disuatu modul prosedur

Bila program ini dikompilasi, akan dideteksi kesalahan oleh kompiler, karena variabel y yang sifatnya lokal diprosedur.

Error yang muncul pada program pascal : error 31:unknown identifier

PROSEDURPROSEDURParameter dalam program yg salahParameter dalam program yg salah

Supaya nilai-nilai variabel dapat digunakan di modul yang lainnya yang membutuhkannya, maka dapat dilakukan dengan beberapa cara yaitu:

1. Dibuat bersifat global, harus dideklarasikan diatas modul yang menggunakannya

PROSEDURPROSEDURParameter dalam program yg benarParameter dalam program yg benar

PROSEDURPROSEDURParameter dalam program yg benarParameter dalam program yg benar

Algoritma XXXAlgoritma XXX

DeklarasiDeklarasi

Procedure satuProcedure satu

DeklarasiDeklarasi

DeskripsiDeskripsi

Var a,b : integrVar a,b : integr

Procedure duaProcedure dua

DeklarasiDeklarasi

DeskripsiDeskripsi

DeskripsiDeskripsi

…… ……....

EndalgoEndalgo

Pada contoh program diatas variabel a dan b bersifat global untuk prosedur dua dan untuk modul utama, tetapi tidak bersifat global untuk prosedur satu

PROSEDURPROSEDURParameter dalam program yg benarParameter dalam program yg benar

PROSEDURPROSEDURParameter dalam program yg benarParameter dalam program yg benar

Algoritma XXXAlgoritma XXX

DeklarasiDeklarasi

Var a,b : integrVar a,b : integr

Procedure satuProcedure satu

DeklarasiDeklarasi

DeskripsiDeskripsi

Procedure duaProcedure dua

DeklarasiDeklarasi

DeskripsiDeskripsi

DeskripsiDeskripsi

…… ……....

EndalgoEndalgo

PROSEDURPROSEDURParameter dalam program yg benarParameter dalam program yg benar

Pada contoh program diatas variabel a dan b bersifat global untuk prosedur dua ,untuk modul utama, dan untuk prosedur satu

2. Dikirimkan sebagai parameter ke modul yang membutuhkannya

PROSEDURPROSEDURParameter dalam program yg benarParameter dalam program yg benar

PROSEDURPROSEDURParameter dalam program yg benarParameter dalam program yg benar

Procedure XXX (input x,y : integer)Procedure XXX (input x,y : integer)

DeklarasiDeklarasi

DeskripsiDeskripsi

x x+1x x+1

y y+1y y+1

Write(x)Write(x)

Write(y)Write(y)

{program utama}{program utama}

Deklarasi Deklarasi

a,b : integera,b : integer

DeskripsiDeskripsi

XXX(4,10)XXX(4,10)

read(a,b)read(a,b)

XXX(a,b)XXX(a,b)

Translasi notasi algoritmik kedalam Translasi notasi algoritmik kedalam bahasa pascalbahasa pascal

Procedure namaprosedurProcedure namaprosedur

DeklarasiDeklarasi

…………

…………

DeskripsiDeskripsi

Procedure namaprosedur; namaprosedur;

Begin

End;

Cara memanggil prosedur: namaprosedur

FUNGSIFUNGSI

Fungsi sama halnya dengan prosedur Fungsi sama halnya dengan prosedur akan tetapi fungsi harus dideklarasikan akan tetapi fungsi harus dideklarasikan dengan tipenya.dengan tipenya.

Tipe tersebut ditulis pada akhir deklarasi Tipe tersebut ditulis pada akhir deklarasi fungsifungsi

FUNGSIFUNGSI

Function F(input x:real) realFunction F(input x:real) real

DeklarasiDeklarasi

y:realy:real

DeskripsiDeskripsi

y 2*x*x + 5*x-8y 2*x*x + 5*x-8

Return yReturn y

{program utama}{program utama}

DeskripsiDeskripsi

F(5)F(5)

write(‘jadi total adalah : ‘,y)write(‘jadi total adalah : ‘,y)

FUNGSIFUNGSI

Function F(input x:real) realFunction F(input x:real) real

DeklarasiDeklarasi

y:realy:real

DeskripsiDeskripsi

y 2*x*x + 5*x-8y 2*x*x + 5*x-8

Return yReturn y

{program utama}{program utama}

DeklarasiDeklarasi

a:reala:real

DeskripsiDeskripsi

write(‘masukan nilai x: ’,a)write(‘masukan nilai x: ’,a)

write(‘jadi total adalah : ‘,F(a))write(‘jadi total adalah : ‘,F(a))

endalgoendalgo

top related