FUNCTION -...

28
FUNCTION FUNCTION Materi Materi FUNCTION FUNCTION Materi Materi 5 5

Transcript of FUNCTION -...

Page 1: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

FUNCTION FUNCTION

MateriMateri

FUNCTION FUNCTION

MateriMateri 55

Page 2: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 3: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 4: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 5: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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.

Page 6: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 7: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 8: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 9: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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-----------

Page 10: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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-----------

Page 11: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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.

Page 12: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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.

Page 13: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 14: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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.

Page 15: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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;

Page 16: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 17: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 18: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 19: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 20: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 21: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 22: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 23: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 24: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 25: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 26: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 27: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

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

Page 28: FUNCTION - lisetyo.staff.gunadarma.ac.idlisetyo.staff.gunadarma.ac.id/Downloads/files/47912/FUNCTION.pdf · Parameter Dalam Parameter dalam fungsi dapat dikirimkan (By Reference).

TERIMAKASIHTERIMAKASIH

Lilis Setyowati

2828