Procedure Dan Function
Procedure Dan Function
Notasi Algoritmik :
Notasi Pascal :
Keterangan :
Dalam bahasa Pascal, pendefinisian prosedur ditulis bersatu di
dalam program utama, kecuali jika direalisasikan sebagai unit.
Prosedur diletakkan dibawah kata var.
Bahasa Pascal memungkinkan prosedur mempunyai parameter
masukan, parameter keluaran, dan parameter masukan/keluaran.
Parameter formal yang bertipe keluaran atau masukan/keluaran
harus diawali dengan kata kunci var, sedangkan untuk parameter
formal yang bertipe masukan tidak diawali dengan kata kunci var.
Argumen parameter aktual dilewatkan ke parameter formal
bertipe masukan sebagai “by value”, sedangkan bila parameter
formalnya bertipe keluaran atau masukan/keluaran, maka
argumen parameter aktual dilewatkan sebagai “By reference”
STRUKTUR PROCEDURE :
Notasi C :
Procedure Luas_Segitiga
{Procedure tanpa parameter)
Deklarasi : {Variabel Lokal}
alas,tinggi,luas: real
Algoritma :
write('Masukan alas segitiga: ')
read(alas)
write('Masukan tinggi segitiga: ')
read(tinggi)
luas (alas*tinggi)/2
write('luas segitiga: ',luas)
Procedure Tukar1 ( input A,B :integer)
{Procedure dengan 2 parameter input)
Deklarasi :
Temp:integer
Algoritma :
Temp A
AB
B Temp
Program Contoh_prosedur;
var
X,Y,maksi:integer;
procedure luas_segitiga;
var
alas,tinggi,luas:real;
begin
write('masukan alas segitiga: ');
readln(alas);
write('masukan tinggi segitiga: ');
readln(tinggi);
luas:=(alas*tinggi)/2;
write('Luas segitiga:',luas);
end;
procedure maksimum(a,b:integer;var maks:integer);
begin
if a>b then
maks:=a
else
maks:=b
end;
procedure tukar2 (var a,b:integer);
var
temp:integer;
begin
temp:=a;
a:=b;
b:=temp;
end;
{Program Utama}
begin
luas_segitiga;
write ('Masukan angka ke-1:');
readln(X);
write ('Masukan angka ke-2:');
readln(Y);
maksimum(X,Y,maksi);
writeln('Angka ke-1:',x,' ','Angka ke-2:',Y,' ','Nilai
maksimum: ',maksi);
tukar1(x,y);
writeln('Angka ke-1 sekarang nilainya:',X);
writeln('Angka ke-2 sekarang nilainya:',Y);
tukar2(x,y);
writeln('Angka ke-1 sekarang nilainya:',X);
writeln('Angka ke-2 sekarang nilainya:',Y);
end.
CONTOH C:
/* Program Contoh Prosedur*/
#include <stdio.h>
void luas_segitiga();
void tukar1 (int a,int b);
void maksimum(int a,int b, int *maks);
void tukar2 (int *a, int *b);
void main()
{ int X,Y,maksi;
luas_segitiga();
printf ("Masukan angka ke-1:");
scanf("%d",&X);
printf ("Masukan angka ke-2:");
scanf("%d",&Y);
maksimum(X,Y,&maksi);
printf("Angka ke-1: %d \n",X," ","Angka ke-2: %d \n",Y," ","Nilai maksimum: %d \n",maksi);
tukar1(X,Y);
printf("Angka ke-1 sekarang nilainya: %d \n",X);
printf("Angka ke-2 sekarang nilainya: %d \n",Y);
tukar2(&X,&Y);
printf("Angka ke-1 sekarang nilainya: %d \n",X);
printf("Angka ke-2 sekarang nilainya: %d \n",Y);
}
void luas_segitiga()
{ float alas,tinggi,luas;
printf("masukan alas segitiga: ");
scanf("%f",&alas);
printf("masukan tinggi segitiga:");
scanf("%f",&tinggi);
luas=(alas*tinggi)/2;
printf("Luas segitiga: %f",luas);
}
void tukar1 (int a,int b)
{
int temp;
temp=a;
a=b;
b=temp;
}
void maksimum(int a,int b, int *maks)
{
if (a>b)
*maks=a;
else
*maks=b;
}
void tukar2 (int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}