Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
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