function (fungsi)susi22.staff.gunadarma.ac.id/downloads/files/27508/... · web viewblok fungsi...

25
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

Upload: lydien

Post on 14-Jun-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

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

Page 2: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

End.2. Function Hitung(Var A,B,C : Integer): Integer;

Output : Begin

A:=A+2; Nilai X ? 2B:=B+2; Nilai Y ? 3C:=A+B;Hitung:=C; 4 + 5 = 9

End.

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

Page 3: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

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

Page 4: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

Function Garis : Huruf; --------

Page 5: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

BeginGaris := ‘-----------‘;

End;

BeginWriteln(Garis);Writeln(‘Pascal’);Writeln(Garis);

End.Atau dapat juga didefinisikan sebagai suatu konstanta dibagian definisi konstanta, sebagai berikut :

Contoh :Program Contoh2; Output :

ConstGaris:=’---------‘; ---------

Begin PascalWriteln(Garis); ---------Writeln(‘Pascal’);Writeln(Garis);

End.

Parameter Dalam FungsiParameter 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.

Page 6: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

Function Terbesar(X,Y:Real):Real; Output :Begin

If X>Y then Nilai Pertama ? 12,356Terbesar :=X Nilai Kedua ? 55.182

Else Nilai Terbesar adalah 55,182Terbesar :=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.

Page 7: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

Contoh :Program Contoh3:Function Hitung(Var A,B,C : Integer):Integer; Output :Begin

Hitung :=A+B; Nilai X ? 2C :=A*B; Nilai Y ? 3

End.2 + 3 = 5

Var 2 * 3 = 6X,Y,Z : Integer;

BeginWrite(‘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.

Page 8: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

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;

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

1.500 pangkat 3 adalah 3.375

Fungsi Memanggil Dirinya SendiriSuatu Fungsi dapat juga memanggil dirinya sendiri atau disebut dengan Recursion

Page 9: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

Contoh :Program Contoh5;Function Faktorial(Nilai :Integer):Real;Begin

If Nilai = 0 ThenFaktorial := 1

ElseFaktorial := 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 ? 55 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.

Page 10: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

Contoh : Output :Function Fungsi2(Y:Integer):Integer; 11Begin

Fungsi2 := Y*2; Didapat dari :End;

Fungsi1 := Fungsi2(X) + 5Function Fungsi1(X:Integer):Integer; Fungsi1 := Y * 2+5Begin Maka untuk Nilai Fungsi(3) adalah

3 * 2 + 5 = 11Fungsi1 := Fungsi2(X)+5;

End;

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

Page 11: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

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.75Nilai mutlaknya = 25.75

2. Fungsi Standar EXPBentuk 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;BeginWrite(‘Nilai yang akan dieksponentialkan ?’);Readln(X);Writeln(‘Nilai Eksponentialnya = ‘,Exp(X):9:5);

End.

Output :

Page 12: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

Nilai yang akan dieksponentialkan ? 7.5Nilai Eksponentialnya = 1808.04241

Page 13: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

3. Fungsi Standar LNBentuk 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;

BeginWrite(‘Nilai yang akan di Ln ?’);Readln(X);Writeln(‘Nilai Ln = ‘,Ln(X):9:2);

End.

Output :Nilai yang akan di Ln ? 100Nilai Ln = 4.61

4. Fungsi Standar INTBentuk 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;

Page 14: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

BeginWrite(‘Nilai yang akan dibulatkan ?’); Readln(X);Writeln(‘Nilai pembulatannya = ‘,Int(X):9:2);

End.

Output :Nilai yang akan dibulatkan ? 9.99Nilai pembulatannya = 9.00

5. Fungsi Standar FRACBentuk 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;BeginWrite(‘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

Page 15: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

6. Fungsi Standar SQRBentuk 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 ? 5Nilai kuadratnya = 25.00

7. Fungsi Standar SQRTBentuk 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

Page 16: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

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 ? 30Panjang 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 CHRBentuk 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) ? 66Karakter kode ASCII ini adalah : B

Page 17: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

2. Fungsi Standar ORDBentuk 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 ? BB adalah kode ASCII : 66

3. Fungsi Standar ROUNDBentuk 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;BeginWriteln(’10 dibagi 3 hasil pembulatan terdekat adalah ‘,Round(10/3));

Page 18: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya

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

4. Fungsi Standar TRUNCBentuk 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;BeginWriteln(’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 320 dibagi 3 hasil pembulatan ke bawah adalah 6

Page 19: FUNCTION (FUNGSI)susi22.staff.gunadarma.ac.id/Downloads/files/27508/... · Web viewBlok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya