F U N C T I O N (F U N G S
I)
Blok
Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan
dengan tipenya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi.
Bentuk
Umum :
Function
Identifier(daftar-parameter):type;
Contoh
:
Function Faktorial(Var Fak,Hasil :
Integer):Integer;
Function Pangkat(X,Y : Real):Real;
Blok
Fungsi diawali dengan kata cadangan Begin dan diakhiri dengan kata cadangan End
dan titik koma.
Contoh
:
1.
Function Hitung(Var A,B : Integer):Integer; Output :
Begin
Hitung :=A+B; Nilai
X ? 2
End; Nilai
Y ? 3
Var 2
+ 3 = 5
X,Y : Integer;
Begin
Write(‘Nilai X ?’);
Readln(X);
Write(‘Nilai Y ?’);
Readln(Y);
Writeln;
Writeln(X,’+’,Y, ‘=’,Hitung(X,Y));
End.
2.
Function Hitung(Var A,B,C : Integer): Integer; Output :
Begin
A:=A+2; Nilai
X ? 2
B:=B+2; Nilai
Y ? 3
C:=A+B;
Hitung:=C; 4
+ 5 = 9
End.
Var
X,Y,Z,Hasil : Integer;
Begin
Write(‘Nilai X ?’);
Readln(X);
Write(“Nilai Y ?’);
Readln(Y);
Writeln;
Hasil :=Hitung(X,Y,Z);
Writeln(X,’+’,Y, ‘=’,Hasil);
End.
- Perbedaan Fungsi
dengan Prosedur adalah :
1.
Pada fungsi, nilai yang dikirimkan nalik terdapat pada
nama Fungsinya (kalau pada prosedur pada Parameter yang dikirimkan secara
acuan). Pada contoh, nama Fungsi tersebut adalah Hitung dan nilai yang dikirim
balik berada pada nama Fungsi tersebut. Sehingga nama Fungsi ini harus
digunakan untuk menampung hahsil yang akan dikirimkan dari Fungsi sebagai berikut
:
Hitung := A+B;
Nama Fungsi yang berisi nilai yang akan dikirimkan
2.
Karena nilai balik berada di nama Fungsi tersebut,
maka Fungsi tersebut dapat langsung digunakan untuk dicetak hasil sebagai
berikut :
Writeln(X,’+’,Y, ‘=’, Hitung(X,Y);
Nama Fungsi yang langsung digunakan untuk
ditampilkan hasilnya
Atau Nilai Fungsi tersebut
dapat juga langsung dipindahkan ke pengenal Variabel yang lainnya, sebagai
berikut :
Hasil := Hitung(X,Y);
Writeln(X, ‘+’ ,Y, ‘=’, Hasil);
Sedang pada Prosedur, nama Prosedur tersebut tidak dapat digunakan
langsung, yang dapat langsung digunakan adalah parameternya yang langsung
mengandung nilai balik.
- Fungsi Tanpa Parameter
Suatu
Fungsi yang tanpa menggunakan parameter berarti nilai balik yang akan
dihasilkan merupakan nilai yang sudah pasti. Pada Fungsi yang tidak mempunyai
parameter, maka hsail tersebut tidak dapat diatur dari modul yang
menggunakannya, karena tidak ada parameter yang dikirimkan.
Contoh
:
Program
Contoh1; Output
:
Type --------
Huruf
= String; Pascal
Function
Garis : Huruf; --------
Begin
Garis := ‘-----------‘;
End;
Begin
Writeln(Garis);
Writeln(‘Pascal’);
Writeln(Garis);
End.
Atau
dapat juga didefinisikan sebagai suatu konstanta dibagian definisi konstanta,
sebagai berikut :
Contoh
:
Program
Contoh2; Output
:
Const
Garis:=’---------‘; ---------
Begin Pascal
Writeln(Garis); ---------
Writeln(‘Pascal’);
Writeln(Garis);
End.
·
Parameter Dalam Fungsi
Parameter dalam fungsi dapat dikirimkan secara
Nilai (By Value) atau secara Acuan (By Reference). Penulisan judul Fungsi yang
menggunakan parameter dengan pengiriman sevara Nilai adalah tampak sebagai
berikut :
Function Hitung(A,B : Integer): Integer;
Contoh
:
Suatu
Fungsi yang akan menghasilkan nilai terbesar dari 2 buah Nilai Real.
Function Terbesar(X,Y:Real):Real; Output :
Begin
If X>Y then Nilai Pertama ? 12,356
Terbesar :=X Nilai Kedua ? 55.182
Else Nilai
Terbesar adalah 55,182
Terbesar :=Y;
End;
Var
Nilai1,Nilai2 :Real;
Begin
Write(‘Nilai Pertama ?’);Readln(Nilai1);
Write(‘Nilai Kedua ?’);
Readln(Nilai2);
Writeln(‘Nilai Terbesar adalah’
,Terbesar(Nilai1,Nilai2):9:3);
End.
Sedang
Penulisan judul Fungsi yang menggunakan parameter dengan pengiriman secara
Acuan adalah dengan menambahkan katan cadangan Var sebagai berikut :
Function Hitung(Var A,B :
Integer):Integer;
Pengiriman
parameter dengan secara Acuan akan mengakibatkan perubahan nilai parameter di
Fungsi juga merubah nilai parameter dimodul yang mengirimkannya.
Contoh
:
Program
Contoh3:
Function
Hitung(Var A,B,C : Integer):Integer; Output
:
Begin
Hitung :=A+B; Nilai X ? 2
C :=A*B; Nilai
Y ? 3
End.
2
+ 3 = 5
Var 2
* 3 = 6
X,Y,Z : Integer;
Begin
Write(‘Nilai X ?’);
Readln(X);
Write(‘Nilai Y?’);
Readln(Y);
Writeln;
Writeln(X,’+’,Y, ‘=’,Hitung(X,Y,Z);
Writeln(X,’*’,Y, ‘=’,Z);
End.
·
Fungsi Pangkat
Pascal tidak menyediakan Fungsi untuk perpangkatan
tinggi, yang ada hanyalah SQR, yaitu untuk pemangkatan kuadrat. Bila akan
melakukan perpangkatan lebih dari pangkat 2, maka harus dibuat program
tersendiri.
Contoh
:
Program
Contoh4;
Function
PangkatI(X:Real; Y:Integer):Real;
Var
Pangkat :=1;
For I := 1 to Y do
Pangkat := Pangkat * X;
PangkatI := Pangkat;
End;
Var
A: Real;
B : Integer;
Begin
Write(‘Nilai akan dipangkatkan ?’);
Readln(A);
Write(‘Dipangkatkan dengan ?’);
Readln(B);
Writeln(A:9:3, ‘Pangkat’ ,B,
‘adalah’,PangkatI(A,B):9:3);
End.
Output
:
Nilai
akan dipangkatkan ? 1.5
Dipangkatkan
dengan ? 3
1.500 pangkat 3 adalah 3.375
·
Fungsi Memanggil Dirinya Sendiri
Suatu Fungsi dapat juga memanggil dirinya sendiri atau disebut dengan
Recursion
Contoh :
Program Contoh5;
Function Faktorial(Nilai :Integer):Real;
Begin
If Nilai = 0 Then
Faktorial := 1
Else
Faktorial := Nilai *
Faktorial(Nilai-1);
End;
Var
N:=Integer;
Begin
Write(‘Berapa Faktorial ?’);
Readln(N);
Writeln(N,’Faktorial =
‘,Faktorial(N):9:0);
End.
Output :
Berapa Faktorial ? 5
5 Faktorial = 120
·
Fungsi Memanggil Fungsi Yang Lain
Suatu Fungsi dapat juga memanggil Fungsi
yang lainnya. Fungsi yang dipanggil letaknya harus berada diatas Fungsi yang
memanggil.
Contoh
: Output
:
Function
Fungsi2(Y:Integer):Integer; 11
Begin
Fungsi2 := Y*2; Didapat dari :
End;
Fungsi1 := Fungsi2(X) + 5
Function
Fungsi1(X:Integer):Integer; Fungsi1
:= Y * 2+5
Begin Maka untuk Nilai Fungsi(3)
adalah
3 * 2 + 5 = 11
Fungsi1 := Fungsi2(X)+5;
End;
Begin
Writeln(Fungsi1(3));
End.
·
Fungsi Standar
Dalam Pascal disediakan beberapa Fungsi
Standar yang telah didefinisikan dan tidak perlu dibuat kembali oleh pemakai,
diantaranya adalah :
~ Fungsi
Standar Arithtmatika
Digunakan
untuk operasi-operasi Arithmatika diantaranya adalah :
1.
Fungsi Standar ABS
Bentuk Umum : ABS(X);
Digunakan untuk memutlakkan suatu nilai yang ditunjukkan oleh argumen X.
Argumen X dapat berupa tipe Real atau Integer dan hasil dari Fungsi ini akan
sama dengan tipe argumennya. Memutlakkan suatu nilai berarti nilai negatif
dipositifkan dan nilai positif tetap positif.
Contoh :
Program Mutlak;
Var
X : Real;
Begin
Write(‘Nilai yang akan dimutlakkan
?’);Readln(X);
Writeln(‘Nilai Mutlaknya =’,Abs(X):9:2);
End.
Output :
Nilai yang akan dimutlakkan ? –25.75
Nilai mutlaknya = 25.75
2.
Fungsi Standar EXP
Bentuk Umum : EXP(X:Real):Real;
Digunukan untuk menghitung nilai pangkat dari bilangan e (bilangan
alam), yaitu sebesar ex .
Argumen X dapat berbentuk tipe Real atau Integer dan hasil dari Fungsinya
adalah Real.
Contoh :
Program Misal;
Var
X : Real;
Begin
Write(‘Nilai yang akan
dieksponentialkan ?’);Readln(X);
Writeln(‘Nilai Eksponentialnya =
‘,Exp(X):9:5);
End.
Output :
Nilai yang akan dieksponentialkan ? 7.5
Nilai Eksponentialnya = 1808.04241
3.
Fungsi Standar LN
Bentuk Umum : Ln(X:Real):Real;
Digunakan untuk menghitung nilai Algorithma alam (Natural Logarithm)
dari nilai X. Argumen X dapat berbentuk tipe Real atau Integer dan hasil dari
Fungsinya adaah Real.
Contoh :
Program Misal2;
Var
X : Real;
Begin
Write(‘Nilai yang akan
di Ln ?’);Readln(X);
Writeln(‘Nilai Ln =
‘,Ln(X):9:2);
End.
Output :
Nilai yang akan di Ln ? 100
Nilai Ln = 4.61
4.
Fungsi Standar INT
Bentuk Umum : Int(X:Real):Real;
Digunakan untuk menghasilkan nilai Integer dari X. Hasil dari Fungsi
adalah tipe Real. Hasil dari Fungsi adalah Tipe Real dengan nilai ya ng berupa
pembulatan ke bawah (nilai pecahan dibuang) dari nilai X.
Contoh :
Program Misal3;
Var
X : Real;
Begin
Write(‘Nilai yang akan
dibulatkan ?’); Readln(X);
Writeln(‘Nilai
pembulatannya = ‘,Int(X):9:2);
End.
Output :
Nilai yang akan dibulatkan ? 9.99
Nilai pembulatannya = 9.00
5.
Fungsi Standar FRAC
Bentuk Umum : Frac(X:Real):Real;
Digunakan untuk mendapatkan nilai pecahan dari Argumen X. Argumen X
dapat berbentuk tipe Real maupun Integer dan hasil dari Fungsinya adalah Real.
Contoh :
Program Misal4;
Var
X : Real;
Begin
Write(‘Nilai yang akan diambil
pecahannya ?’);Readln(X);
Writeln(‘Nilai pecahannya =
‘,Frac(X):6:5);
End.
Output :
Nilai yang akan diambil pecahannya ? 9.99
Nilai pecahannya = 0.99000
6.
Fungsi Standar SQR
Bentuk Umum : SQR(X);
Digunakan untuk menghitung nilai pangkat kuadrat dari argumen X. Argumen X dapat berbentuk tipe Real atau
Integer dan hasil Fungsinya akan sama dengan tipe argumennya.
Contoh :
Program Misal5;
Var
X : Real;
Begin
Write(‘Nilai yang akan
dikuadratkan ?’); Readln(X);
Writeln(‘Nilai
kuadratnya =’, SQR(X):9:2);
End.
Output :
Nilai yang akan dikuadratkan ? 5
Nilai kuadratnya = 25.00
7.
Fungsi Standar SQRT
Bentuk Umum : SQRT(X:Real):Real;
Digunakan untuk menghitung nilai akar dari argumen X. Argumen X dapat
berbentuk tipe Real atau Integer dan hasil dari Fungsinya adalah Real.
Contoh :
Program Misal6;
Var
A,B,C : Real;
Begin
Write(‘Panjang Sisi
Tegak ?’);Readln(A);
Write(‘Panjang Sisi
Datar ?’); Readln(B);
C := SQRT(SQR(A) +
SQR(B));
Writeln(‘Panjang Sisi
Miring = ‘,C:9:2);
End.
Output :
Panjang Sisi Tegak ? 30
Panjang Sisi Datar ?40
Panjang Sisi Miring = 50.00
~ Fungsi
Standar Transfer
Digunakan untuk merubah suatu nilai ke bentuk
nilai yang lain. Fungsi-fungsi standar
transfer yang tersedia, yaitu Fungsi Standar Chr, Ord, Round dan Trunc
1.
Fungsi Standar CHR
Bentuk Umum : Chr(X:Byte):Char;
Digunakan untuk merubah nilai dari Byte X ke bentuk karakter yang sesuai
dengan kode ASCII nya.
Contoh :
Program Misal7;
Var
X : Byte;
Begin
Write(‘Nilai kode ASCII
(0-255) ?; Readln(X);
Writeln(‘Karakter kode
ASCII ini adalah : ‘, Chr(X));
End.
Output :
Nilai kode ASCII (0-255) ? 66
Karakter kode ASCII ini adalah :
B
- Fungsi Standar ORD
Bentuk Umum
: Ord(X):Longint;
Digunakan
untuk merubah nilai X ke bentuk nilai Longint yang sesuai dengan kode ASCIInya.
Contoh
:
Program
Misal8;
Var
Karakter : Char;
Begin
‘Write(‘Karakter ?’);
Readln(Karakter);
Writeln(Karakter,’adalah kode ASCII :
‘,Ord(Karakter));
End.
Output
:
Karakter
? B
B
adalah kode ASCII : 66
- Fungsi Standar ROUND
Bentuk
Umum : Round(X:Real):Longint;
Digunakan
untuk membulatkan nilai dari Real X ke nilai Longint yang terdekat. Bila nilai
pecahan sama dengan taua lebih besar dari 0.5 akan dibulatkan ke atas, sedang
bila nilai pecahan lebih kecil dari 0.5 akan dibulatkan ke bawah.
Contoh
:
Program
Misal9;
Begin
Writeln(’10 dibagi 3 hasil
pembulatan terdekat adalah ‘,Round(10/3));
Writeln(’20 dibagi 3 hasil
pembulatan terdekat adalah ‘,Round(20/3);
End.
Output
:
10 dibagi 3 hasil pembulatan terdekat adalah 3
20 dibagi 3 hasil pembulatan terdekat adalah 6
- Fungsi Standar TRUNC
Bentuk
Umum : Trunc(X:Real):Longint;
Digunakan
untuk membulatkan nilai Real X ke nilai Longint terkecil atau dengan kata lain
membulatkan ke bawah.
Contoh
:
Program
Misal10;
Begin
Writeln(’10 dibagi 3 hasil
pembulatan ke bawah adalah ‘,Trunc(10/3));
Writeln(’20 dibagi 3 hasil
pembulatan ke bawah adalah ‘,Trunc(20/3));
End.
Output
:
10
dibagi 3 hasil pembulatan ke bawah adalah 3
20
dibagi 3 hasil pembulatan ke bawah adalah 6
Comments
Post a Comment