function -...
Post on 10-Mar-2019
231 Views
Preview:
TRANSCRIPT
FUNCTION FUNCTION
MateriMateri
FUNCTION FUNCTION
MateriMateri 55
FungsiFungsi
• Blok fungsi hampir sama dengandideklarasikan dengan tipenya ataumenunjukkan tipe hasil dari fungsi
• Pada bahasa Pascal dikenal beberapasqr, succ dan sebagainya.
• Fungsi-fungsi tersebut biasanyaSedangkan function yang akan bicarakanbuat sendiri.
FungsiFungsi
dengan blok prosedur, hanya fungsi harusatau jenis hasilnya. Tipe deklarasi ini
fungsi.
beberapa fungsi, misalkan : abs, pred, sqrt,
dikenal dengan Built in Function.bicarakan disini adalah fungsi yang kita
22
Berbeda dengan procedure, functionmenghasilkan suatu kuantitas.
Hal ini dapat dilihat dari bentuk headerdari kuantitas yang dihasilkan.
Secara umum bentuk header suatu function
FUNCTION nama
Atau
FUNCTION nama (formal parameter :
Blok Fungsi diawali dengan kata cadangankata cadangan End dan titik koma.
function merupakan modul program yang
header-nya yang menyebutkan jenis data
function adalah :
nama : jenis hasil;
Atau
(formal parameter : jenis ) : jenis_hasil;
cadangan Begin dan diakhiri dengan
33
Contoh 1:Function Hitung(Var A,B : Integer):Integer;
BeginHitung :=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.
Output :
Nilai X ? 2Nilai Y ? 32 + 3 = 5
44
Contoh 2:
Function Hitung(Var A,B,C : Integer): Integer
Begin
A:=A+2;B:=B+2;C:=A+B;
Hitung:=C;
End.
Output :Nilai X ? 2Nilai Y ? 34 + 5 = 9
Integer;
55
VarX,Y,Z,Hasil : Integer;
BeginWrite(‘Nilai X ?’);Readln(X);Write(“Nilai Y ?’);Readln(Y);Writeln;Hasil :=Hitung(X,Y,Z);Writeln(X,’+’,Y, ‘=’,Hasil);
End.
Contoh :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.
A,B : integer): integer;
66
PERBEDAAN FUNGSI DENGAN PROSEDUR
1. Pada fungsi, nilai yang dikirimkan balikpada prosedur pada parameter yangnama fungsi tersebut adalah Hitungnama fungsi tersebut. Sehingga namamenampung hasil yang akan dikirimkan
Hitung := A + B; Nama fungsi yang
PERBEDAAN FUNGSI DENGAN PROSEDUR
balik terdapat pada nama fungsinya (kalauyang dikirimkan secara acuan). Pada contoh,
dan nilai yang dikirim balik berada padanama fungsi ini harus digunakan untuk
dikirimkan dari fungsi, sebagai berikut :
yang berisi nilai yang akan dikirimkan
77
2. Karena nilai balik berada di nama fungsilangsung digunakan untuk dicetak hasilnya
Writeln(X, ‘+’ ,Y, ‘=‘ ,Hitung(X,Y));
Atau nilai fungsi tersebut dapat juga langsungyang lainnya, sebagai berikut :
Hasil := Hitung(X,Y);
Writeln(X, ‘+’ ,Y, ‘+’ ,Hasil);
Sedang pada prosedur, nama prosedur tersebutyang dapat langsung digunakan adalah parameternya
fungsi tersebut, maka fungsi tersebut dapathasilnya, sebagai berikut :
langsung dipindahkan ke pengenal variabel
tersebut tidak dapat digunakan langsung,parameternya yang mengandung nilai balik.
88
Nama fungsi yang langsung digunakanuntuk ditampilkan hasilnya
FungsiFungsi TanpaTanpaSuatu Fungsi yang tanpa menggunakan parametermerupakan nilai yang sudah pasti. Pada Fungsihasil tersebut tidak dapat diatur dari modulparameter yang dikirimkan.Contoh :Program Contoh1;TypeHuruf = String;Function Garis : Huruf;Begin
Garis := ‘-----------‘;End;Begin
Writeln(Garis);Writeln(‘Pascal’);Writeln(Garis);
End.
TanpaTanpa ParameterParameterparameter berarti nilai balik yang akan dihasilkanFungsi yang tidak mempunyai parameter, maka
modul yang menggunakannya, karena tidak ada
99
Output:
-----------Pascal-----------
Atau dapat juga didefinisikan sebagai suatusebagai berikut :
Contoh :
Program Contoh2;
Const
Garis:=’---------‘;
Begin
Writeln(Garis);
Writeln(‘Pascal’);
Writeln(Garis);
End.
suatu konstanta dibagian definisi konstanta,
1010
Output:
-----------Pascal-----------
Parameter Parameter DalamDalamParameter dalam fungsi dapat dikirimkan(By Reference). Penulisan judul Fungsipengiriman sevara Nilai adalah tampak sebagai
Function HitungContoh :
Suatu Fungsi yang akan menghasilkan nilai terbesar dari 2
buah Nilai Real.
Function Terbesar(X,Y:Real):Real;
Begin
If X>Y then
Terbesar :=X
Else
Terbesar :=Y;
End;
Var
Begin
End.
DalamDalam FungsiFungsisecara Nilai (By Value) atau secara Acuan
yang menggunakan parameter dengansebagai berikut :
Hitung(A,B : Integer): Integer;
1111
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 menggunakansecara Acuan adalah dengan menambahkan
Function Hitung(Var A,B : Integer):Integer;
Pengiriman parameter dengan secara Acuanparameter di Fungsi juga merubah nilai parameter
Contoh :
Program Contoh3:
Function Hitung(Var A,B,C : Integer):Integer;
Begin
Hitung :=A+B;
C :=A*B;
End.
Var
Begin
End.
menggunakan parameter dengan pengirimanmenambahkan katan cadangan Var sebagai berikut :
A,B : Integer):Integer;
Acuan akan mengakibatkan perubahan nilaiparameter dimodul yang mengirimkannya.
1212
Var
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.
FungsiFungsi PangkatPangkatPascal tidak menyediakan Fungsi untuk perpangkatanyaitu untuk pemangkatan kuadrat. Bila akan melakukanmaka harus dibuat program tersendiri.Contoh :Program Contoh4;
Function PangkatI(X:Real; Y:Integer):Real;
VarPangkat :=1;For I := 1 to Y do
Pangkat := Pangkat * X;PangkatI := Pangkat;
End;
PangkatPangkatperpangkatan tinggi, yang ada hanyalah SQR,
melakukan perpangkatan lebih dari pangkat 2,
1313
VarA: Real;B : Integer;
BeginWrite(‘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.5Dipangkatkan dengan ? 31.500 pangkat 3 adalah 3.375
REKURSIFSuatu fungsi atau prosedur dalambahasa Pascal dapat bersifatrekursif. Artinya, fungsi atauprosedur tersebut dapatmemanggil dirinya sendiri.
Berikut ini sebuah contoh fungsidan prosedur yang rekursif.
function
begin
if
end
Var
N
Begin
Write(‘
Readln
Writeln
End
REKURSIF
1414
function faktorial (nilai : integer) : integer;
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.
Bilangan Fibonanci:
F (0) = 0
F (1) = 1
F (n) = F ( n-1 ) + F (n-2); untuk n >1
Function fibonacci ( n : integer ) : integer;
Begin
If n = 0 then fibonacci := 0
Else
If n := 1 then fibonacci := 1
Else fibonacci := fibonacci (n-1) + fibonacci (n-2);
End;
2);
1515
Procedure reverse ( num : integer );
Begin
If num < 10 then write(num)
Else begin
Write(num mod 10);
Reverse(num div 10);
End;
End;
FUNGSI STANDAR1. Fungsi Standar Aritmatika
a) Fungsi standar ABS
Bentuk umum : ABS(x);
Digunakan untuk memutlakkan suatu nilai
Contoh :
Begin
X:=-2.3;
Write(Nilai X = ,X, Nilai mutlaknya =
End.
FUNGSI STANDAR
nilai yang ditunjukkan oleh argumen x.
= ,Abs(X):3:1);
1616
b) Fungsi standar EXP
Bentuk Umum : EXP(x:):real;
Digunakan untuk menghitung nilai pangkatHasilnya berupa nilai real.
c) Fungsi standar LN
Bentuk umum : LN(x):real;
Digunakan untuk menghitung nilai logaritmaHasilnya berupa nilai real.
pangkat dari bilangan e yaitu sebesar ex.
logaritma alam (natural logarithm) dari nilai x.
1717
d) Fungsi standar INTBentuk umum : INT(x:real):real;Digunakan untuk menghasilkan nilai integerdengan nilai yang berupa pembulatan ke bawahContoh :Begin
X:=9.99; Write(‘Nilai yang akan dibulatkan = ‘ ,X); Writeln(‘Nilai pembulatannya = ‘,Int(X):3:2);
End. Hasil :
Nilai yang akan dibulatkan = 9.99 Nilai pembulatannya = 9.00
integer dari x. hasil dari fungsi adalah tipe realbawah (nilai pecahan dibuang) dari nilai x.
= ‘ ,X); (X):3:2);
1818
e) Fungsi standar FRAC
Bentuk umum : FRAC(x:):real;
Digunakan untuk mendapatkan nilai pecahanbernilai real maupun integer dan hasil dari
Contoh :
Begin
X:=9.99;
Write(‘Nilai X = ‘,X, ‘Nilai pecahannya
End.
Hasilnya : Nilai X = 9.99 Nilai pecahannya
pecahan dari argumen x. Argumen x dapatdari fungsi adalah real.
= ‘,Frac(X):4:3);
pecahannya = 0.990
1919
f) Fungsi standar SQRBentuk umum : SQR(x);Digunakan untuk menghitung nilai pangkat kuadrat dariReal atau Integer dan hasil Fungsinya akan sama denganContoh : Program Misal5;Var
X : Real;Begin
Write(‘Nilai yang akan dikuadratkan ?’); ReadlnWriteln(‘Nilai kuadratnya =’, SQR(X):9:2);
End.
Output :Nilai yang akan dikuadratkan ? 5Nilai kuadratnya = 25.00
dari argumen X. Argumen X dapat berbentuk tipedengan tipe argumennya.
Readln(X);
2020
g) Fungsi standar SQRTBentuk umum : SQRT(x) : real;Digunakan untuk menghitung nilai akar dari argumenatau 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.
argumen X. Argumen X dapat berbentuk tipe Real.
(A);(B);
2121
Output :Panjang Sisi Tegak ? 30Panjang Sisi Datar ?40Panjang Sisi Miring = 50.00
2. Fungsi Standar TransferDigunakan untuk merubah suatu nilai ke bentuk nilaitersedia, yaitu Fungsi Standar Chr, Ord, Round dan Trunca) Fungsi Standar CHRBentuk Umum : Chr(X:Byte):Char;Digunakan untuk merubah nilai dari Byte X ke bentukContoh :Program Misal7;Var
X : Byte;Begin
Write(‘Nilai kode ASCII (0-255) ?; Readln(X);Writeln(‘Karakter kode ASCII ini adalah : ‘,
End.Output :Nilai kode ASCII (0-255) ? 66Karakter kode ASCII ini adalah : B
nilai yang lain. Fungsi-fungsi standar transfer yangTrunc.
bentuk karakter yang sesuai dengan kode ASCII nya.
(X);: ‘, Chr(X));
2222
b) Fungsi Standar ORDBentuk Umum : Ord(X):Longint;Digunakan untuk merubah nilai X ke bentuk nilaiContoh :Program Misal8;Var
Karakter : Char;Begin
‘Write(‘Karakter ?’);Readln(Karakter);Writeln(Karakter,’adalah kode ASCII : ‘,Ord(Karakter
End.
Output :Karakter ? BB adalah kode ASCII : 66
nilai Longint yang sesuai dengan kode ASCIInya.
Karakter));
2323
c) Fungsi Standar ROUND
Bentuk Umum : Round(X:Real):Longint;
Digunakan untuk membulatkan nilai dari Realpecahan sama dengan taua lebih besar dari 0pecahan lebih kecil dari 0.5 akan dibulatkan ke
Contoh :
Program Misal9;
Begin
Writeln(’10 dibagi 3 hasil pembulatan terdekat
Writeln(’20 dibagi 3 hasil pembulatan terdekat
End.
Output :
10 dibagi 3 hasil pembulatan terdekat adalah
20 dibagi 3 hasil pembulatan terdekat adalah
Real X ke nilai Longint yang terdekat. Bila nilai0.5 akan dibulatkan ke atas, sedang bila nilaike bawah.
terdekat adalah ‘,Round(10/3));
terdekat adalah ‘,Round(20/3);
3
6 2424
d) Fungsi Standar TRUNC
Bentuk Umum : Trunc(X:Real):Longint;
Digunakan untuk membulatkan nilai Real X kemembulatkan ke bawah.
Contoh :
Program Misal10;
Begin
Writeln(’10 dibagi 3 hasil pembulatan ke bawah
Writeln(’20 dibagi 3 hasil pembulatan ke bawah
End.
Output :
10 dibagi 3 hasil pembulatan ke bawah adalah
20 dibagi 3 hasil pembulatan ke bawah adalah
ke nilai Longint terkecil atau dengan kata lain
bawah adalah ‘,Trunc(10/3));
bawah adalah ‘,Trunc(20/3));
adalah 3
adalah 62525
3. Fungsi Standar Lainnya
Fungsi standar yang tidak termasuk dalam
a) Fungsi standar Random
Bentuk umum : Random [(range :word)];
Digunakan untuk menghasilkan angka randomsama dengan nol dan lebih kecil dari satufungsi ini adalah real, bila range disebutkan
b) Fungsi standar SizeOf
Bentuk umum : SizeOf(x):word;
Digunakan untuk menunjukkan besarnya bytehasilnya berupa nilai word.
kelompok pembagian di atas :
random berkisar dari nilai lebih besar atausatu. Bila range tidak disebutkan, hasil dari
disebutkan, hasilnya adalah word.
byte yang digunakan oleh suatu variabel x,
2626
c) Fungsi standar UPCASE
Bentuk umum : UpCase(Ch:char):char;
Digunakan untuk merubah argumen suatumenjadi bentuk karakter huruf besar (upper
suatu karakter yang ditunjukkan oleh Ch(upper case).
2727
TERIMAKASIHTERIMAKASIH
Lilis Setyowati
2828
top related