Anda di halaman 1dari 16

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(daftarparameter!:type"
#ontoh :
Function Faktorial($ar Fak,%asil : Integer!:Integer"
Function &angkat(',( : )eal!:)eal"
Blok Fungsi dia*ali dengan kata cadangan Begin dan diakhiri dengan kata
cadangan +nd dan titik koma.
#ontoh :
,. Function %itung($ar -,B : Integer!:Integer" .utput :
Begin
%itung :/-0B" 1ilai ' 2 3
+nd" 1ilai ( 2 4
$ar 3 0 4 / 5
',( : Integer"
Begin
6rite(71ilai ' 28!"
)eadln('!"
6rite(71ilai ( 28!"
)eadln((!"
6riteln"
6riteln(',808,(, 7/8,%itung(',(!!"
+nd.
3. Function %itung($ar -,B,# : Integer!: Integer" .utput :
Begin
-:/-03" 1ilai ' 2 3
B:/B03" 1ilai ( 2 4
#:/-0B"
%itung:/#" 9 0 5 / :
+nd.
$ar
',(,;,%asil : Integer"
Begin
6rite(71ilai ' 28!"
)eadln('!"
6rite(<1ilai ( 28!"
)eadln((!"
6riteln"
%asil :/%itung(',(,;!"
6riteln(',808,(, 7/8,%asil!"
+nd.
Perbedaan Fungsi dengan Prosedur adalah :
,. &ada fungsi, nilai yang dikirimkan nalik terdapat pada nama Fungsinya
(kalau pada prosedur pada &arameter yang dikirimkan secara acuan!.
&ada contoh, nama Fungsi tersebut adalah %itung dan nilai yang
dikirim balik berada pada nama Fungsi tersebut. =ehingga nama
Fungsi ini harus digunakan untuk menampung hahsil yang akan
dikirimkan dari Fungsi sebagai berikut :
%itung :/ -0B"
Nama Fungsi yang berisi nilai yang akan dikirimkan
3. >arena nilai balik berada di nama Fungsi tersebut, maka Fungsi
tersebut dapat langsung digunakan untuk dicetak hasil sebagai berikut :
6riteln(',808,(, 7/8, %itung(',(!"
Nama Fungsi yang langsung digunakan untuk ditamilkan hasilnya
-tau 1ilai Fungsi tersebut dapat juga langsung dipindahkan ke
pengenal $ariabel yang lainnya, sebagai berikut :
%asil :/ %itung(',(!"
6riteln(', 708 ,(, 7/8, %asil!"
=edang pada &rosedur, nama &rosedur tersebut tidak dapat digunakan
langsung, yang dapat langsung digunakan adalah parameternya yang
langsung mengandung nilai balik.
Fungsi Tana Parameter
=uatu Fungsi yang tanpa menggunakan parameter berarti nilai balik yang
akan dihasilkan merupakan nilai yang sudah pasti. &ada Fungsi yang tidak
mempunyai parameter, maka hsail tersebut tidak dapat diatur dari modul
yang menggunakannya, karena tidak ada parameter yang dikirimkan.
#ontoh :
&rogram #ontoh," .utput :
Type
%uruf / =tring" &ascal
Function ?aris : %uruf"
Begin
?aris :/ 77"
+nd"
Begin
6riteln(?aris!"
6riteln(7&ascal8!"
6riteln(?aris!"
+nd.
-tau dapat juga didefinisikan sebagai suatu konstanta dibagian definisi konstanta,
sebagai berikut :
#ontoh :
&rogram #ontoh3" .utput :
#onst
?aris:/87"
Begin &ascal
6riteln(?aris!"
6riteln(7&ascal8!"
6riteln(?aris!"
+nd.
Parameter !alam Fungsi
&arameter dalam fungsi dapat dikirimkan secara 1ilai (By $alue! atau secara
-cuan (By )eference!. &enulisan judul Fungsi yang menggunakan parameter
dengan pengiriman se@ara 1ilai adalah tampak sebagai berikut :
Function %itung(-,B : Integer!: Integer"
#ontoh :
=uatu Fungsi yang akan menghasilkan nilai terbesar dari 3 buah 1ilai )eal.
Function Terbesar(',(:)eal!:)eal" .utput :
Begin
If 'A( then 1ilai &ertama 2 ,3,45B
Terbesar :/' 1ilai >edua 2 55.,C3
+lse 1ilai Terbesar adalah 55,,C3
Terbesar :/("
+nd"
$ar
1ilai,,1ilai3 :)eal"
Begin
6rite(71ilai &ertama 28!")eadln(1ilai,!"
6rite(71ilai >edua 28!" )eadln(1ilai3!"
6riteln(71ilai Terbesar adalah8 ,Terbesar(1ilai,,1ilai3!:::4!"
+nd.
=edang &enulisan judul Fungsi yang menggunakan parameter dengan pengiriman
secara -cuan adalah dengan menambahkan katan cadangan $ar sebagai berikut :
Function %itung($ar -,B : Integer!:Integer"
&engiriman parameter dengan secara -cuan akan mengakibatkan perubahan nilai
parameter di Fungsi juga merubah nilai parameter dimodul yang mengirimkannya.
#ontoh :
&rogram #ontoh4:
Function %itung($ar -,B,# : Integer!:Integer" .utput :
Begin
%itung :/-0B" 1ilai ' 2 3
# :/-DB" 1ilai ( 2 4
+nd.
3 0 4 / 5
$ar 3 D 4 / B
',(,; : Integer"
Begin
6rite(71ilai ' 28!"
)eadln('!"
6rite(71ilai (28!"
)eadln((!"
6riteln"
6riteln(',808,(, 7/8,%itung(',(,;!"
6riteln(',8D8,(, 7/8,;!"
+nd.
Fungsi Pangkat
&ascal tidak menyediakan Fungsi untuk perpangkatan tinggi, yang ada
hanyalah =E), yaitu untuk pemangkatan kuadrat. Bila akan melakukan
perpangkatan lebih dari pangkat 3, maka harus dibuat program tersendiri.
#ontoh :
&rogram #ontoh9"
Function &angkatI(':)eal" (:Integer!:)eal"
$ar
&angkat :/,"
For I :/ , to ( do
&angkat :/ &angkat D '"
&angkatI :/ &angkat"
+nd"
$ar
-: )eal"
B : Integer"
Begin
6rite(71ilai akan dipangkatkan 28!"
)eadln(-!"
6rite(7Fipangkatkan dengan 28!"
)eadln(B!"
6riteln(-:::4, 7&angkat8 ,B, 7adalah8,&angkatI(-,B!:::4!"
+nd.
.utput :
1ilai akan dipangkatkan 2 ,.5
Fipangkatkan dengan 2 4
,.5GG pangkat 4 adalah 4.4H5
Fungsi "emanggil !irinya Sendiri
=uatu Fungsi dapat juga memanggil dirinya sendiri atau disebut dengan
)ecursion
#ontoh :
&rogram #ontoh5"
Function Faktorial(1ilai :Integer!:)eal"
Begin
If 1ilai / G Then
Faktorial :/ ,
+lse
Faktorial :/ 1ilai D Faktorial(1ilai,!"
+nd"
$ar
1:/Integer"
Begin
6rite(7Berapa Faktorial 28!"
)eadln(1!"
6riteln(1,8Faktorial / 7,Faktorial(1!:::G!"
+nd.
.utput :
Berapa Faktorial 2 5
5 Faktorial / ,3G
Fungsi "emanggil Fungsi #ang $ain
=uatu Fungsi dapat juga memanggil Fungsi yang lainnya. Fungsi yang
dipanggil letaknya harus berada diatas Fungsi yang memanggil.
#ontoh : .utput :
Function Fungsi3((:Integer!:Integer" ,,
Begin
Fungsi3 :/ (D3" Fidapat dari :
+nd"
Fungsi, :/ Fungsi3('! 0 5
Function Fungsi,(':Integer!:Integer" Fungsi, :/ ( D 305
Begin Iaka untuk 1ilai Fungsi(4! adalah
4 D 3 0 5 / ,,
Fungsi, :/ Fungsi3('!05"
+nd"
Begin
6riteln(Fungsi,(4!!"
+nd.
Fungsi Standar
Falam &ascal disediakan beberapa Fungsi =tandar yang telah didefinisikan
dan tidak perlu dibuat kembali oleh pemakai, diantaranya adalah :
J Fungsi Standar %rithtmatika
Figunakan untuk operasioperasi -rithmatika diantaranya adalah :
&' Fungsi Standar %(S
Bentuk Umum : -B=('!"
Figunakan untuk memutlakkan suatu nilai yang ditunjukkan oleh argumen
'. -rgumen ' dapat berupa tipe )eal atau Integer dan hasil dari Fungsi ini
akan sama dengan tipe argumennya. Iemutlakkan suatu nilai berarti nilai
negatif dipositifkan dan nilai positif tetap positif.
#ontoh :
&rogram Iutlak"
$ar
' : )eal"
Begin
6rite(71ilai yang akan dimutlakkan 28!")eadln('!"
6riteln(71ilai Iutlaknya /8,-bs('!:::3!"
+nd.
.utput :
1ilai yang akan dimutlakkan 2 K35.H5
1ilai mutlaknya / 35.H5
)' Fungsi Standar *+P
Bentuk Umum : +'&(':)eal!:)eal"
Figunukan untuk menghitung nilai pangkat dari bilangan e (bilangan alam!,
yaitu sebesar e
L
. -rgumen ' dapat berbentuk tipe )eal atau Integer dan
hasil dari Fungsinya adalah )eal.
#ontoh :
&rogram Iisal"
$ar
' : )eal"
Begin
6rite(71ilai yang akan dieksponentialkan 28!")eadln('!"
6riteln(71ilai +ksponentialnya / 7,+Lp('!:::5!"
+nd.
.utput :
1ilai yang akan dieksponentialkan 2 H.5
1ilai +ksponentialnya / ,CGC.G939,
,' Fungsi Standar $N
Bentuk Umum : Mn(':)eal!:)eal"
Figunakan untuk menghitung nilai -lgorithma alam (1atural Mogarithm!
dari nilai '. -rgumen ' dapat berbentuk tipe )eal atau Integer dan hasil
dari Fungsinya adaah )eal.
#ontoh :
&rogram Iisal3"
$ar
' : )eal"
Begin
6rite(71ilai yang akan di Mn 28!")eadln('!"
6riteln(71ilai Mn / 7,Mn('!:::3!"
+nd.
.utput :
1ilai yang akan di Mn 2 ,GG
1ilai Mn/ 9.B,
-' Fungsi Standar INT
Bentuk Umum : Int(':)eal!:)eal"
Figunakan untuk menghasilkan nilai Integer dari '. %asil dari Fungsi
adalah tipe )eal. %asil dari Fungsi adalah Tipe )eal dengan nilai ya ng
berupa pembulatan ke ba*ah (nilai pecahan dibuang! dari nilai '.
#ontoh :
&rogram Iisal4"
$ar
' : )eal"
Begin
6rite(71ilai yang akan dibulatkan 28!" )eadln('!"
6riteln(71ilai pembulatannya / 7,Int('!:::3!"
+nd.
.utput :
1ilai yang akan dibulatkan 2 :.::
1ilai pembulatannya / :.GG

.' Fungsi Standar F/%C
Bentuk Umum : Frac(':)eal!:)eal"
Figunakan untuk mendapatkan nilai pecahan dari -rgumen '. -rgumen '
dapat berbentuk tipe )eal maupun Integer dan hasil dari Fungsinya adalah
)eal.
#ontoh :
&rogram Iisal9"
$ar
' : )eal"
Begin
6rite(71ilai yang akan diambil pecahannya 28!")eadln('!"
6riteln(71ilai pecahannya / 7,Frac('!:B:5!"
+nd.
.utput :
1ilai yang akan diambil pecahannya 2 :.::
1ilai pecahannya / G.::GGG
0' Fungsi Standar S1/
Bentuk Umum : =E)('!"
Figunakan untuk menghitung nilai pangkat kuadrat dari argumen '.
-rgumen ' dapat berbentuk tipe )eal atau Integer dan hasil Fungsinya
akan sama dengan tipe argumennya.
#ontoh :
&rogram Iisal5"
$ar
' : )eal"
Begin
6rite(71ilai yang akan dikuadratkan 28!" )eadln('!"
6riteln(71ilai kuadratnya /8, =E)('!:::3!"
+nd.
.utput :
1ilai yang akan dikuadratkan 2 5
1ilai kuadratnya / 35.GG
2' Fungsi Standar S1/T
Bentuk Umum : =E)T(':)eal!:)eal"
Figunakan untuk menghitung nilai akar dari argumen '. -rgumen ' dapat
berbentuk tipe )eal atau Integer dan hasil dari Fungsinya adalah )eal.
#ontoh :
&rogram IisalB"
$ar
-,B,# : )eal"
Begin
6rite(7&anjang =isi Tegak 28!")eadln(-!"
6rite(7&anjang =isi Fatar 28!" )eadln(B!"
# :/ =E)T(=E)(-! 0 =E)(B!!"
6riteln(7&anjang =isi Iiring / 7,#:::3!"
+nd.
.utput :
&anjang =isi Tegak 2 4G
&anjang =isi Fatar 29G
&anjang =isi Iiring / 5G.GG
J Fungsi Standar Trans3er
Figunakan untuk merubah suatu nilai ke bentuk nilai yang lain. Fungsifungsi
standar transfer yang tersedia, yaitu Fungsi =tandar #hr, .rd, )ound dan Trunc
&' Fungsi Standar C4/
Bentuk Umum : #hr(':Byte!:#har"
Figunakan untuk merubah nilai dari Byte ' ke bentuk karakter yang sesuai
dengan kode -=#II nya.
#ontoh :
&rogram IisalH"
$ar
' : Byte"
Begin
6rite(71ilai kode -=#II (G355! 2" )eadln('!"
6riteln(7>arakter kode -=#II ini adalah : 7, #hr('!!"
+nd.
.utput :
1ilai kode -=#II (G355! 2 BB
>arakter kode -=#II ini adalah : B
)' Fungsi Standar O/!
Bentuk Umum : .rd('!:Mongint"
Figunakan untuk merubah nilai ' ke bentuk nilai Mongint yang sesuai
dengan kode -=#IInya.
#ontoh :
&rogram IisalC"
$ar
>arakter : #har"
Begin
76rite(7>arakter 28!"
)eadln(>arakter!"
6riteln(>arakter,8adalah kode -=#II : 7,.rd(>arakter!!"
+nd.
.utput :
>arakter 2 B
B adalah kode -=#II : BB
,' Fungsi Standar /OUN!
Bentuk Umum : )ound(':)eal!:Mongint"
Figunakan untuk membulatkan nilai dari )eal ' ke nilai Mongint yang
terdekat. Bila nilai pecahan sama dengan taua lebih besar dari G.5 akan
dibulatkan ke atas, sedang bila nilai pecahan lebih kecil dari G.5 akan
dibulatkan ke ba*ah.
#ontoh :
&rogram Iisal:"
Begin
6riteln(8,G dibagi 4 hasil pembulatan terdekat adalah 7,)ound(,GN4!!"
6riteln(83G dibagi 4 hasil pembulatan terdekat adalah 7,)ound(3GN4!"
+nd.
.utput :
,G dibagi 4 hasil pembulatan terdekat adalah 4
3G dibagi 4 hasil pembulatan terdekat adalah B
-' Fungsi Standar T/UNC
Bentuk Umum : Trunc(':)eal!:Mongint"
Figunakan untuk membulatkan nilai )eal ' ke nilai Mongint terkecil atau
dengan kata lain membulatkan ke ba*ah.
#ontoh :
&rogram Iisal,G"
Begin
6riteln(8,G dibagi 4 hasil pembulatan ke ba*ah adalah 7,Trunc(,GN4!!"
6riteln(83G dibagi 4 hasil pembulatan ke ba*ah adalah 7,Trunc(3GN4!!"
+nd.
.utput :
,G dibagi 4 hasil pembulatan ke ba*ah adalah 4
3G dibagi 4 hasil pembulatan ke ba*ah adalah B

Anda mungkin juga menyukai