(Prosedur/Procedure)
by
Aminudin
Prosedur
• Prosedur sering kita dengar dalam kehidupan
sehari-hari, bahkan dalam setiap pekerjaan atau
aktivitas.
DEKLARASI
{semua nama yang dipakai di dalam prosedur dan hanya
berlaku lokal di dalam prosedur}
DESKRIPSI
{badan prosedur, berisi urutan instruksi}
Pendeklarasian parameter di dalam prosedur
bukanlah suatu keharusan (boleh ada/tidak).
Contoh 1: Menghitung luas segitiga
Buatlah prosedur yang membaca panjang alas dan tinggi
segitiga,menghitung luas segitiga denga rumus luas=(alas
x tinggi)/2, dan mencetak luas segitiga tersebut.
Penyelesaian
procedure HitungLuasSegitiga
{ Menghitung luas segitiga dengan rumus L = (alas x
tinggi)/2 }
{ K.Awal : sembarang }
{ K.Akhir : luas segitiga tercetak }
DEKLARASI
alas : real { panjang alas segitiga, dalam cm }
tinggi: real { tinggi segitiga, dalam cm }
luas : real { luas segitiga, dalam cm }
DESKRIPSI
read(alas,tinggi)
luas (alas x tinggi) / 2
write(luas)
2. Pemanggilan Prosedur
• Prosedur bukan program berdiri sendiri prosedur tidak dapat
dieksekusi secara langsung.
• Instruksi-instruksi di dalam prosedur baru dapat dilaksanakan
apabila prosedur itu diakses.
• Prosedur diakses dengan cara memanggil namanya dari program
pemanggil (misalnya dari program utama atau dari modul program
lainnya). Jika prosedur tanpa parameter maka pemanggilannya
cukup dengan namanya saja
NamaProsedur
Algoritma Segitiga
{ Menghitung luas N buah segitiga }
DEKLARASI
i, N : integer
procedure HitungLuasSegitiga
{ Menghitung luas segitiga denga rumus L = (alas x tinggi)/2}
DESKRIPSI
read(N) { tentukan banyaknya segitiga}
for 1 to N do
HitungLuasSegitiga
endfor
3. Nama Global, Nama Lokal dan Lingkup
procedure HitungLuasSegitiga
{ Menghitung luas segitiga dengan rumus L = (alas x tinggi)/2 }
{ K.Awal : sembarang }
{ K.Akhir : luas segitiga tercetak }
DEKLARASI
luas : real { luas segitiga dalam cm }
DESKRIPSI
luas (alas x tinggi) / 2
write(luas)
Jika disatukan dengan program utama maka,
Algoritma segitiga
{ Menghitung luas N buah segitiga }
DEKLARASI
i, N : integer
alas, tinggi : real {alas dan tinggi segitiga, dalam cm}
procedure HitungLuasSegitiga
{ Menghitung luas segitiga dengan rumus L = (alas x tinggi)/2 }
DESKRIPSI
read(N) { tentukan banyaknya segitiga}
for 1 to N do
read (alas, tinggi)
HitungLuasSegitiga
endfor
4. Parameter
Parameter adalah nama-nama peubah yang dideklarasikan pada
bagian header prosedur.
Kebanyakan program memerlukan pertukaran data/informasi
antara prosedur dan titik dimana ia dipanggil.
DEKLARASI
luas : real { luas segitiga, dalam cm }
DESKRIPSI
luas (alas x tinggi) / 2
write(luas)
Program utama
Algoritma segitiga
{ Menghitung luas N buah segitiga }
DEKLARASI
i, N : integer
alas, tinggi : real {alas dan tinggi segitiga, dalam cm}
procedure HitungLuasSegitiga(input alas,tinggi : real)
{ Menghitung luas segitiga dengan rumus L = (alas x tinggi)/2 }
DESKRIPSI
read(N) { tentukan banyaknya segitiga}
for 1 to N do
read (alas, tinggi)
HitungLuasSegitiga(alas,tinggi)
endfor
Karena yang dipentingkan adalah nilainya, maka
nama parameter aktual boleh beda dengan
nama parameter formal yang bersesuaian asal
tipenya sama
Algoritma segitiga
{ Menghitung luas N buah segitiga }
DEKLARASI
i, N : integer
a, t : real {alas dan tinggi segitiga, dalam cm}
procedure HitungLuasSegitiga(input alas,tinggi : real)
{ Menghitung luas segitiga dengan rumus L = (alas x
tinggi)/2 }
DESKRIPSI
read(N) { tentukan banyaknya segitiga}
for 1 to N do
read (a, t)
HitungLuasSegitiga(a,t)
endfor
4.2 Parameter Keluaran
1. Prosedur mungkin menghasilkan satu atau lebih keluaran
yang akan digunakan oleh program pemanggil. Jika ini
kasusnya maka, nilai keluaran tersebut ditampung di dalam
parameter keluaran.
2. Ketika prosedur yang mengandung parameter keluaran
dipanggil, maka nama parameter aktual akan menggantikan
nama parameter formal yang bersesuaian di dalam
prosedur. Selanjutnya nama parameter aktual akan
digunakan selama pelaksanaan prosedur ini
3. Parameter aktual dideklarasikan di dalam header prosedur,
tetapi parameter keluaran harus dideklarasikan dengan
kata kunci output.
Contoh:
procedure HitungLuasSegitiga(input alas,tinggi : real,
output Luas:real)
{ Menghitung luas segitiga dengan rumus L = (alas x
tinggi)/2 }
{ K.Awal : sembarang }
{ K.Akhir : luas berisi luas segitiga }
DEKLARASI
{tidak ada}
DESKRIPSI
Luas (alas x tinggi) / 2
program utama
Algoritma segitiga
{ Menghitung luas N buah segitiga }
DEKLARASI
i, N : integer
a, t, L : real {alas, tinggi dan Luas segitiga dalam cm}
procedure HitungLuasSegitiga(input alas,tinggi : real,
output luas:real)
{ Menghitung luas segitiga dengan rumus L = (alas x
tinggi)/2 }
DESKRIPSI
read(N) { tentukan banyaknya segitiga}
for 1 to N do
read (alas, tinggi)
HitungLuasSegitiga(a,t, L)
Write(L)
Endfor
Contoh:
Ketika prosedur HitungLuasSegitiga dipanggil maka nilai
parameter aktual a dan t diisikan ke dalam parameter
formal alas dan tinggi sedangkan nama parameter aktual L
menggantikan nama parameter formal luas.
HitungLuasSegitiga(a,t,10)
HitungLuasSegitiga(a,t,10*a)
Terima Kasih