Anda di halaman 1dari 23

Ridwan, S.

Kom

Dalam program yang kompleks


program panjang.

kode

Sulit dalam memahami program (jalannya


program).

Solusi: memecah program tersebut menjadi


modul-modul sehingga lebih ringkas.

Untuk memecah program yang kompleks,


kita membutuhkan procedure dan function.

Berdasarkan
penjelasan
sebelumnya,
prosedur
atau
fungsi
yaitu
suatu
bagian/modul program yang terpisah dari
program utama, diletakkan dalam blok
tersendiri yang berfungsi sebagai bagian
dari program.

Merupakan penerapan konsep modular,


yaitu memecah program menjadi modulmodul atau subprogram-subprogam yang
lebih sederhana.

Untuk
hal-hal
yang
sering
dilakukan
berulang-ulang, cukup dituliskan sekali saja
dalam prosedur dan dapat dipanggil atau
dipergunakan
sewaktu-waktu
bila
diperlukan.

Merupakan
sub
program
yang
mengembalikan nilai secara langsung.

tidak

Prosedur memiliki struktur yang sama dengan


struktur program, yaitu terdiri dari nama
prosedur,
deklarasi-deklarasi
dan
bagian
deskripsi (statement
atau aksi di dalam
prosedur).

Semua deklarasi di dalam prosedur bersifat lokal


sehingga hanya bisa digunakan oleh prosedur itu
saja, sedangkan deklarasi di dalam program
utama bersifat global sehingga dapat dikenali di
seluruh bagian program.

PROCEDURE
mempunyai
judul_prosedur
sedangkan Program utama tidak.

Untuk tanda berakhirnya Procedure diakhiri


dengan tanda End; sedangkan Program
Utama End.

Penggunaan prosedur selalu diawali dengan kata


Procedure. Struktur umum prosedur adalah

sebagai
berikut :
Procedure Nama_Prosedur (param_formal1:tipe_param1,
param_formal2:tipe_param2,);
{Jika prosedur tidak memiliki parameter, tanda kurung tidak
disertakan}
var
{bagian deklarasi prosedur, sifatnya lokal}
begin
statement-1;
statement-2;

Statement-n;
end;

Struktur blok program utama beserta


prosedur:

Program judul_program;
var
{bagian deklarasi prosedur, sifatnya global}

Procedure Nama_Prosedur;
{Jika prosedur tidak memiliki parameter, tanda kurung tidak disertakan}
var
{bagian deklarasi prosedur, sifatnya lokal}
begin
statement-1;
statement-2;

Statement-n;
end;

{program utama}
begin
Nama_Prosedur;
end.

uses crt;
procedure cetakBintang;
begin
writeln('****');
end;
begin
clrscr;
cetakBintang();
cetakBintang();
cetakBintang();
cetakBintang();
readkey;
end.

uses crt;
procedure Tanya_hitung;
var
X, Y : real;
begin
write ('Nilai X =');
readln (X) ;
Y := X * X;
end;
begin
Tanya_hitung;
writeln ('Nilai Y =', Y);
end.

Bila program dikompilasi, akan dideteksi


kesalahan oleh compiler, karena variable Y
yang sifatnya local di procedure Tanya_hitung
digunakan pada program utama.

Agar nilai-nilai variable dapat digunakan di


modul lainnya yang membutuhkan, maka
dapat dilakukan dengan beberapa cara,
yaitu :
- Dibuat global
- Dikirimkan sebagai parameter ke modul
lainnya.


usescrt;
var
Y:real;
procedureTanya_hitung;
var
X:real;
begin
write('NilaiX=');
readln(X);
Y:=X*X;
end;
begin
clrscr;
Tanya_hitung;
writeln('NilaiY=',Y:2:2);
readkey;
end.

Pengertian hampir sama dengan procedure


(sama-sama sub program / bagian dari
program).

Bedanya:
- Fungsi memiliki tipe data.
- Fungsi memberikan nilai balik, procedure
tidak.
- Harus ada NamaFungsi di dalam tubuh
fungsi, karena
digunakan untuk menyimpan output.
- Penulisannya menggunakan kata Function

Function Nama_Fungsi : tipe_hasil;


var
{bagian deklarasi fungsi, sifatnya lokal}
begin
statement-1;
statement-2;

Statement-n;
Nama_Fungsi:=hasil;
end;

uses crt;
function cetakBintang:string;
begin
cetakBintang:= '****';
end;
begin
clrscr;
writeln(cetakBintang);
writeln(cetakBintang);
writeln(cetakBintang);
writeln(cetakBintang);
readkey;
end.

Suatu variable yang berfungsi sebagai


penampung nilai pada procedure atau
function, yang diberikan oleh pemanggil
procedure atau function.
Contoh:
Procedur
nama_pro(parameter,parameter:tipe_data);
Procedur hitung(angka1,angka2:integer);
Procedur bagi(angka1:integer;
angka2:real);

Parameter yang dikirmkan dari modul utama


ke modul prosedur disebut dengan parameter
nyata (actual parameter) dan parameter yang
ada dan dituliskan pada judul prosedur
disebut dengan parameter formal (formal
parameter).

Proses pengiriman data lewat parameter


nyata ke parameter formal disebut dengan
parameter passing.

Parameter nyata dan parameter formal harus


dengan tipe yang sama.

Pass by Value
Pass by Reference

Parameter yang dikirimkan berupa nilai


(value)nya
saja.
Jadi
apabila
terjadi
pengubahan nilai pada prosedur ataupun
function tidak akan mempengaruhi nilai
pada variabel yang dipassingkan, atau yang
dikirimkan.

usescrt;
vara,b:integer;
procedureubah(a,b:integer);
begin
a:=50;
b:=60;
writeln('Nilaia=',a,',Nilaib=',b);
end;
Begin
clrscr;
a:=10;
b:=20;
ubah(a,b);
writeln;
writeln('a=',a);
writeln('b=',b);
readln;
end.

Parameter yang dikirimkan berupa acuan.


Jadi apabila terjadi pengubahan nilai pada
prosedur
ataupun
function
akan
mempengaruhi nilai pada variabel yang
dipassingkan, atau yang dikirimkan. Kata
kuncinya pemberian tambahan kata var
pada pendeklarasian parameter.

usescrt;
vara,b:integer;
procedureubah(vara,b:integer);
begin
a:=50;
b:=60;
writeln('Nilaia=',a,',Nilaib=',b);
end;
Begin
clrscr;
a:=10;
b:=20;
ubah(a,b);
writeln;
writeln('a=',a);
writeln('b=',b);
readln;
end.

Anda mungkin juga menyukai