• Tidak ada hasil yang ditemukan

FUNCTION nama Atau FUNCTION nama (formal parameter : Blok Fungsi diawali dengan kata cadangan

N/A
N/A
Protected

Academic year: 2019

Membagikan "FUNCTION nama Atau FUNCTION nama (formal parameter : Blok Fungsi diawali dengan kata cadangan"

Copied!
28
0
0

Teks penuh

(1)

FUNCTION

FUNCTION

Materi

Materi

FUNCTION

FUNCTION

(2)

Fungsi

Fungsi

Blok fungsi hampir sama dengan

dideklarasikan dengan tipenya atau

menunjukkan tipe hasil dari fungsi

Pada bahasa Pascal dikenal beberapa

sqr, succ dan sebagainya.

Fungsi-fungsi tersebut biasanya

Sedangkan function yang akan bicarakan

buat sendiri.

Fungsi

Fungsi

dengan blok prosedur, hanya fungsi harus

atau jenis hasilnya. Tipe deklarasi ini

fungsi.

beberapa fungsi, misalkan : abs, pred, sqrt,

dikenal dengan Built in Function.

bicarakan disini adalah fungsi yang kita

(3)

Berbeda dengan procedure, function

menghasilkan suatu kuantitas.

Hal ini dapat dilihat dari bentuk header

dari kuantitas yang dihasilkan.

Secara umum bentuk header suatu function

FUNCTION nama

Atau

FUNCTION nama (formal parameter :

Blok Fungsi diawali dengan kata cadangan

kata 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

(4)

Contoh 1:

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.

Output :

Nilai X ? 2 Nilai Y ? 3 2 + 3 = 5

(5)

Contoh 2:

Function Hitung(Var A,B,C : Integer): Integer Begin

Output : Nilai X ? 2

X,Y,Z,Hasil : Integer; Begin

Write(‘Nilai X ?’); Readln(X);

Write(“Nilai Y ?’); Readln(Y);

Writeln;

(6)

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;

(7)

PERBEDAAN FUNGSI DENGAN PROSEDUR

1. Pada fungsi, nilai yang dikirimkan balik pada prosedur pada parameter yang nama fungsi tersebut adalah Hitung nama fungsi tersebut. Sehingga nama menampung hasil yang akan dikirimkan

Hitung := A + B;

Nama fungsi yang

PERBEDAAN FUNGSI DENGAN PROSEDUR

balik terdapat pada nama fungsinya (kalau yang dikirimkan secara acuan). Pada contoh, dan nilai yang dikirim balik berada pada nama fungsi ini harus digunakan untuk dikirimkan dari fungsi, sebagai berikut :

yang berisi nilai yang akan dikirimkan

(8)

2. Karena nilai balik berada di nama fungsi langsung digunakan untuk dicetak hasilnya

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

Atau nilai fungsi tersebut dapat juga langsung yang lainnya, sebagai berikut :

Hasil := Hitung(X,Y);

Writeln(X, ‘+’ ,Y, ‘+’ ,Hasil);

Sedang pada prosedur, nama prosedur tersebut yang dapat langsung digunakan adalah parameternya

fungsi tersebut, maka fungsi tersebut dapat hasilnya, sebagai berikut :

langsung dipindahkan ke pengenal variabel

tersebut tidak dapat digunakan langsung, parameternya yang mengandung nilai balik.

(9)

Fungsi

Fungsi Tanpa

Tanpa

Suatu Fungsi yang tanpa menggunakan parameter merupakan nilai yang sudah pasti. Pada Fungsi hasil tersebut tidak dapat diatur dari modul parameter yang dikirimkan.

Contoh :

Program Contoh1; Type

Huruf = String;

Function Garis : Huruf; Begin

Tanpa Parameter

Parameter

parameter berarti nilai balik yang akan dihasilkan Fungsi yang tidak mempunyai parameter, maka modul yang menggunakannya, karena tidak ada

99

Output:

(10)

---Atau dapat juga didefinisikan sebagai suatu sebagai berikut :

Contoh :

Program Contoh2; Const

Garis:=’---‘; Begin

Writeln(Garis); Writeln(‘Pascal’); Writeln(Garis); End.

suatu konstanta dibagian definisi konstanta,

10 10

Output:

(11)

---Parameter

Parameter Dalam

Dalam

Parameter dalam fungsi dapat dikirimkan (By Reference). Penulisan judul Fungsi

pengiriman sevara Nilai adalah tampak sebagai

Function Hitung

Contoh :

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.

Dalam

Dalam Fungsi

Fungsi

secara Nilai (By Value) atau secara Acuan yang menggunakan parameter dengan sebagai berikut :

Hitung(A,B : Integer): Integer;

11 11

Var

Nilai1,Nilai2 :Real; Begin

Write(‘Nilai Pertama ?’);Readln(Nilai1); Write(‘Nilai Kedua ?’); Readln(Nilai2);

(12)

Sedang Penulisan judul Fungsi yang menggunakan secara Acuan adalah dengan menambahkan

Function Hitung(Var A,B : Integer):Integer; Pengiriman parameter dengan secara Acuan

parameter 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 pengiriman menambahkan katan cadangan Var sebagai berikut :

A,B : Integer):Integer;

Acuan akan mengakibatkan perubahan nilai parameter dimodul yang mengirimkannya.

12 12

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

(13)

Fungsi

Fungsi Pangkat

Pangkat

Pascal tidak menyediakan Fungsi untuk perpangkatan yaitu untuk pemangkatan kuadrat. Bila akan melakukan 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;

Pangkat

Pangkat

perpangkatan tinggi, yang ada hanyalah SQR, melakukan perpangkatan lebih dari pangkat 2,

13

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 :

(14)

REKURSIF

Suatu fungsi atau prosedur dalam bahasa Pascal dapat bersifat rekursif. Artinya, fungsi atau prosedur tersebut dapat memanggil dirinya sendiri.

Berikut ini sebuah contoh fungsi dan prosedur yang rekursif.

function

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

(15)

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

15 15

Procedure reverse ( num : integer ); Begin

If num < 10 then write(num) Else begin

Write(num mod 10); Reverse(num div 10); End;

(16)

FUNGSI STANDAR

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

(17)

b) Fungsi standar EXP

Bentuk Umum : EXP(x:):real;

Digunakan untuk menghitung nilai pangkat Hasilnya berupa nilai real.

c) Fungsi standar LN Bentuk umum : LN(x):real;

Digunakan untuk menghitung nilai logaritma Hasilnya berupa nilai real.

pangkat dari bilangan e yaitu sebesar ex.

logaritma alam (natural logarithm) dari nilai x.

(18)

d) Fungsi standar INT

Bentuk umum : INT(x:real):real;

Digunakan untuk menghasilkan nilai integer dengan nilai yang berupa pembulatan ke bawah Contoh :

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 real bawah (nilai pecahan dibuang) dari nilai x.

= ‘ ,X); (X):3:2);

(19)

e) Fungsi standar FRAC

Bentuk umum : FRAC(x:):real;

Digunakan untuk mendapatkan nilai pecahan bernilai 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 dapat dari fungsi adalah real.

= ‘,Frac(X):4:3);

pecahannya = 0.990

(20)

f) Fungsi standar SQR Bentuk umum : SQR(x);

Digunakan untuk menghitung nilai pangkat kuadrat dari Real atau Integer dan hasil Fungsinya akan sama dengan Contoh :

Program Misal5; Var

X : Real; Begin

Write(‘Nilai yang akan dikuadratkan ?’); Readln Writeln(‘Nilai kuadratnya =’, SQR(X):9:2);

End.

Output :

Nilai yang akan dikuadratkan ? 5 Nilai kuadratnya = 25.00

dari argumen X. Argumen X dapat berbentuk tipe dengan tipe argumennya.

Readln(X);

(21)

g) Fungsi standar SQRT Bentuk umum : SQRT(x) : real;

Digunakan untuk menghitung nilai akar dari argumen 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.

argumen X. Argumen X dapat berbentuk tipe Real .

(A); (B);

21 21

Output :

Panjang Sisi Tegak ? 30 Panjang Sisi Datar ?40

(22)

2. Fungsi Standar Transfer

Digunakan untuk merubah suatu nilai ke bentuk nilai tersedia, yaitu Fungsi Standar Chr, Ord, Round dan Trunc a) Fungsi Standar CHR

Bentuk Umum : Chr(X:Byte):Char;

Digunakan untuk merubah nilai dari Byte X ke bentuk Contoh :

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) ? 66

Karakter kode ASCII ini adalah : B

nilai yang lain. Fungsi-fungsi standar transfer yang Trunc.

bentuk karakter yang sesuai dengan kode ASCII nya.

(X);

: ‘, Chr(X));

(23)

b) Fungsi Standar ORD

Bentuk Umum : Ord(X):Longint;

Digunakan untuk merubah nilai X ke bentuk nilai 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

nilai Longint yang sesuai dengan kode ASCIInya.

Karakter));

(24)

c) Fungsi Standar ROUND

Bentuk Umum : Round(X:Real):Longint;

Digunakan untuk membulatkan nilai dari Real pecahan sama dengan taua lebih besar dari 0 pecahan 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 nilai 0.5 akan dibulatkan ke atas, sedang bila nilai ke bawah.

terdekat adalah ‘,Round(10/3)); terdekat adalah ‘,Round(20/3);

3

(25)

d) Fungsi Standar TRUNC

Bentuk Umum : Trunc(X:Real):Longint;

Digunakan untuk membulatkan nilai Real X ke membulatkan 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 6

(26)

3. Fungsi Standar Lainnya

Fungsi standar yang tidak termasuk dalam a) Fungsi standar Random

Bentuk umum : Random [(range :word)];

Digunakan untuk menghasilkan angka random sama dengan nol dan lebih kecil dari satu

fungsi ini adalah real, bila range disebutkan

b) Fungsi standar SizeOf

Bentuk umum : SizeOf(x):word;

Digunakan untuk menunjukkan besarnya byte hasilnya berupa nilai word.

kelompok pembagian di atas :

random berkisar dari nilai lebih besar atau satu. Bila range tidak disebutkan, hasil dari disebutkan, hasilnya adalah word.

byte yang digunakan oleh suatu variabel x,

(27)

c) Fungsi standar UPCASE

Bentuk umum : UpCase(Ch:char):char;

Digunakan untuk merubah argumen suatu

menjadi bentuk karakter huruf besar (upper(upper case).suatu karakter yang ditunjukkan oleh Ch

(28)

TERIMAKASIH

TERIMAKASIH

Lilis Setyowati

Referensi

Dokumen terkait

vprašanje o fizičnem izgledu prodajalca in njegovem vplivu na nakup pisarniškega pohištva je 4% anketiranih odgovorilo, da ima to zelo velik pomen, 6% jih je mnenja, da je to

Namun demikian, kinerja pemanas air tenaga surya ini dapat juga dibandingkan dengan hasil pengujian Tirtoatmodjo dan Handoyo (1999) menggunakan kolektor tembaga dengan

Kegiatan pembelajaran remedial dengan pemanfaatan tutor sebayamelalui belajar kelompok untuk menjawab pertanyaan yang diberikan guru terkait materi kondisi geologi

Dengan asumsi bahwa tujuan keberhasilan reforestasi adalah indeks unsur hara mikro linier terhadap umur tanaman sampai mencapai kondisi hutan alam, dan terdapat hubungan yang

Laju petumbuhan penduduk kabupaten Sukamara adalah yang tertinggi dibandingkan Kabupaten-Kabupaten lainnya, yaitu sebesar 4.01 persen, sedang yang terendah di

Perbedaan penting lainnya antara JIT dengan TOC adalah kerusakan suku cadang atau komponen pada suatu titik proses produksi dapat menghentikan sebuah sistem JIT, tetapi karena

Minggu ini fokus pelaku pasar tertuju atas data CPI yang menjadi syarat kedua jika FFR akan naik serta Minute Meeting FOMC untuk mengeta- hui perkembangan terbaru ekonomi AS

Hasil penelitian dapat disimpulkan: Dosis asap cair berbahan baku tangkai pelepah kelapa sawit 6%- 12 % v/v dapat digunakan sebagai bahan penggumpal lateks karena dapat