Sabtu, 01 Mei 2010

Fungsi

1. Algoritma pendeklarasian fungsi

Fungsi (Function) adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian). Pada fungsi, tipe data harus dideklarasikan. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Tipe tersebut ditulis pada akhir deklarasi fungsi yang didahului dengan titik koma, sebagai berikut:

Function identifier(daftar-parameter): type;

Contoh :

Function Faktorial(Var Fak, Hasil : integer) : integer;

a. Fungsi tanpa parameter

Suatu fungsi tanpa menggunakan parameter berarti nilai balik yang akan dihasilkannya merupakan nilai yang sudah pasti.

b. Parameter dalam fungsi

Parameter dalam fungsi dapat dikirimkan secara nilai (by value) atau secara acuan (by reference).

Contoh penulisan :

Function Hitung (A, B : integer) : integer;

c. Fungsi memanggil dirinya sendiri

Fungsi juga dapat memanggil dirinya sendiri. Proses fungsi memanggil dirinya sendiri juga merupakan proses rekursi (recursion).

d. Fungsi memanggil fungsi yang lain

Suatu fungsi dapat juga memanggil fungsi yang lain. Fungsi yang dipanggil letaknya harus berada di atas fungsi yag memanggil.

2. Contoh program untuk pemanggilan fungsi

a. Contoh penggunaan fungsi

Function Hitung(Var A,B : integer): integer;

Begin

Hitung := A + B;

End;

Var

X, Y : integer;

Begin

Write(’Nilai X ? ’); readln(X);

Write(’Nilai Y ? ’); readln(Y);

Writeln;

Writeln(X,’ + ’,Y,’ = ’, Hitung(X,Y));

End.

b. Contoh fungsi memanggil fungsi yang lain

Fuction Fungsi2(Y: integer) : integer;

Begin

Fungsi2 := Y * 2;

End;

Function Fungsi1(X: integer) : integer;

Begin

Fungsi2(X) + 5;

End;

Begin

Writeln(Fungsi1(3));

End.

3. Algoritma pendeklarasian prosedur

Prosedur (Procedure) adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian) dan tipe data tidak perlu dideklarasikan. Prosedur dipanggil dan digunakan di dalam blok program yang lainnya dengan menyebutkan judul prosedurnya.

Prosedur banyak digunakan pada program terstruktur, karena:

- Merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumit menjadi program-program bagian yang lebih sederhana dalam bentuk prosedur-prosedur.

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

a. Parameter dalam prosedur

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

b. Prosedur memanggil dirinya sendiri

Prosedur memanggil dirinya sendiri merupakan suatu prosedur yang memanggil atau menggunakan prosedur itu juga. Proses dari suatu program bagian yang memanggil dirinya sendiri dikenal dengan istilah recursion. Walaupun proses ini merupakan algorithm yang baik, tetapi membutuhkan banyak memori, karena setiap kali program bagian dipanggil oleh dirinya sendiri, sejumlah ruang memori tambahan dibutuhkan.

c. Prosedur memanggil prosedur yang lain

Di dalam suatu prosedur dapat memanggil prosedur yang lainnya.

4. Contoh program untuk pemanggilan prosedur

a. Contoh penggunaan prosedur

Procedure Garis;

Begin

Writeln(‘----------------------------------------‘);

End;

Begin

Garis;

Writeln(‘Rekayasa Perangkat Lunak”);

Garis;

End.

b. Contoh prosedur memanggil dirinya sendiri

Var

I : integer;

Procedure Rekursi;

Begin

Writeln(“Rekayasa Perangkat Lunak’);

I := I + 1;

If I <>

Rekursi

End.

Begin

I := 1;

Rekursi;

End.

c. Contoh prosedur memanggil prosedur yang lain

Procedure Pro1(X1 : integer);

Begin

Writeln(‘Nilai X = ‘, X1,’ ada di prosedur Pro1’);

End;

Procedure Pro2(X2 : integer);

Begin

Writeln(‘Nilai X = ‘, X2,’ ada di prosedur Pro2);

Pro1(X2);

End;

Var

X : integer;

Begin

X := 5;

Pro2(X);

End.

1. Perhitungan matematika menghitung rumus luas segitiga dengan menggunakan prosedur :

uses crt;

var

a, t : integer;

procedure segitiga;

begin

write ('Masukkan alas : '); readln (a);

write ('Masukkan tinggi : '); readln (t);

luas := a * t;

write ('Luas segitiga adalah ', luas);

end;

begin

segitiga;

readln;

end.

2. Perhitungan matematika (2 bilangan) :

program Prosedur;

uses crt;

var

Bil_1, Bil_2, Hasil : integer;

procedure Awal;

begin

Writeln('Latihan Pascal 2 : Prosedur dan Fungsi');

Writeln('--------------------------------------');

Writeln;

Writeln('Nama : ____________________');

Writeln('NIS : __________');

Writeln;

end;

procedure Baca_Data;

begin

Write('Masukkan bilangan pertama : ');

Readln(Bil_1);

Write('Masukkan bilangan kedua : ');

Readln(Bil_2);

Writeln;

end;

procedure Kali(A,B : integer);

var

I : integer;

begin

Hasil := 0;

for I := 1 to B do Hasil := Hasil + A;

end;

procedure Kalikan(A,B : integer; var C : integer);

var

I : integer;

begin

C := 0;

for I := 1 to B do C := C + A;

end;

begin

ClrScr;

Awal;

Baca_Data;

Kali(Bil_1, Bil_2);

Writeln(Bil_1:3,' x ',Bil_2:3,' = ',Hasil:5);

Kalikan(Bil_1, Bil_2, Hasil);

Writeln(Bil_1:3,' x ',Bil_2:3,' = ',Hasil:5);

Writeln;

Write('Tekan Enter...');

Readln;

end.