Upload
zombie-black
View
21.080
Download
1
Embed Size (px)
Citation preview
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