Function pada pascal
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 ;
Blok fungsi juga diawali dengan kata cadangan Begin dan di akhiri dengan kata cadangan End dan titik koma.
Perbedaan fungsi dengan prosedur adalah :
- Pada fungsi, nilai yang dikirimkan balik terdapat pada nama fungsinya ( kalau pada prosedur pada parameter yang dikirimkan secara acuan).
- Karena nilai balik berada di nama fungsi tersebut, maka fungsi tersebut dapat langsung digunakan untuk dicetak hasilnya. Atau nilai fungsi tersebut dapat juga langsung dipindahkan ke pengenal variable yang lainnya.
- Pada prosedur, nama prosedur tidak dapat digunakan lagsung, yang dapat langsung digunakan adalah parameternya yang mengandung nilai balik.
1. Fungsi Tanpa Parameter
Fungsi yang tanpa parameter berarti nilai balik yang akan dihasilkan merupakan nilai yang sudah pasti. Karena tidak menggunakan parameter, maka hasil fungsi tersebut tidak dapat diatur dari modul yang menggunakannya, karena tidak ada parameter yang dikirimkan. Fungsi tanpa parameter jarang dipergunakan.
Contoh program :
Type Huruf = string [6] ;
Function Garis : Huruf ;
Begin
Garis : = ‘======’ ;
End ;
Begin
Writeln (Garis) ; Writeln (‘Pascal’) ; Writeln (Garis) ;
End.
Function
Algoritma & Pemrogram 2A
Output program :
======
Pascal
======
Keterangan program :
Fungsi “Garis” hanya menghasilkan nilai yang sudah pasti yaitu : “======”.
2. Parameter Dalam Fungsi
Parameter dalam fungsi dapat dikirimkan secara nilai atau secara acuan.
Contoh penulisan parameter dengan pengiriman secara nilai :
Function Hitung (A, B : integer ) : integer ;
Contoh program :
Function Terbesar(X, Y : real ) : real ;
Begin
If X > Y Then
Terbesar : = X
Else
Terbesar : = 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.
Output program :
Nilai pertama = 12.356
Nilai kedua = 55.182
Nilai terbesar adalah = 55.182
Penulisan judul fungsi yang menggunakan parameter dengan pengiriman secara acuan adalah dengan menambahkan kata cadangan var.
Contoh penulisan :
Function Hitung ( Var A, B : integer ) : integer ;
Pengiriman parameter secara acuan akan mengakibatkan perubahan nilai parameter di fungsi juga merubah nilai parameter di modul yang mengirimkannya. Fungsi yang menggunakan pengiriman parameter secara acuan ini mirip dengan prosedur, yaitu parameter yang dikirmkan secara acuan tersebut dapat di manfaatkan sebagai hasil balik.
3. Fungsi Pangkat
Pascal tidak menyediakan fungsi untuk perpangkatan tinggi, yang ada hanya fungsi standar Sqr, yaitu pemngkatan kuadrat saja. Bila akan melakukan perpangkatan lebih dari pangkat dua, maka harus dibuat program tersendiri.
1.4 Fungsi Memanggil Dirinya Sendiri
Proses fungsi memanggil dirinya sendiri juga merupakan proses recursion.
Contoh program :
Function Faktorial (Nilai : integer ) : real ;
Begin
If Nilai = 0 Then
Faktorial : = 1
Else
Faktorial : = Nilai * Faktorial (Nilai – 1 ) ;
End ;
Var
N : integer ;
Begin
Write (‘Berapa factorial ?’) ;
Readln (N) ;
Writeln (N, ‘faktorial =’, Faktorial(N) : 9 : 0 ) ;
End.
Output program :
Berapa factorial ? 5
5 faktorial = bbbbbb120
ket : b = blank
5 Fungsi Memanggil Fungsi Yang Lain
Fungsi yang di panggil letaknya harus berada di atas fungsi yang memanggilnya.
Contoh program :
Function Fungsi2 (Y : integer) : integer ;
Begin
Fungsi2 : = Y * 2 ;
End ;
Function Fungsi1 ( X : integer ) : integer ;
Begin
Fungsi1 : = Fungsi2 (X) + 5 ;
End ;
Begin
Writeln (Fungsi1(3)) ;
End.
6. Acuan Forward Pada Fungsi
Fungsi dapat dideklarasikan terpisah dengan bloknya. Deklarasi fungsi yang terpisah dengan blok fungsinya dipergunakan kata cadangan Forward dan blok fungsinya juga di deklarasikan ulang, tetapi tidak perlu menyebutkan parameternya.
7. Fungsi Tersarang
Merupakan fungsi yang letaknya berada di dalam fungsi yang lainnya.
Contoh program :
Function Fungsi1 (X : integer ) : integer ;
Function Fungsi2 ( Y : integer ) : integer ;
Begin
Fungsi2 : = Y * 2 ;
End ;
Begin
Fungsi1 : = Fungsi2 (X) + 5 ;
End ;
Begin
Writeln (Fungsi1 (3)) ;
End.
Bentuk umum :
FUNCTION identifier (daftar parameter) : type ;
Blok fungsi juga diawali dengan kata cadangan Begin dan di akhiri dengan kata cadangan End dan titik koma.
Perbedaan fungsi dengan prosedur adalah :
- Pada fungsi, nilai yang dikirimkan balik terdapat pada nama fungsinya ( kalau pada prosedur pada parameter yang dikirimkan secara acuan).
- Karena nilai balik berada di nama fungsi tersebut, maka fungsi tersebut dapat langsung digunakan untuk dicetak hasilnya. Atau nilai fungsi tersebut dapat juga langsung dipindahkan ke pengenal variable yang lainnya.
- Pada prosedur, nama prosedur tidak dapat digunakan lagsung, yang dapat langsung digunakan adalah parameternya yang mengandung nilai balik.
1. Fungsi Tanpa Parameter
Fungsi yang tanpa parameter berarti nilai balik yang akan dihasilkan merupakan nilai yang sudah pasti. Karena tidak menggunakan parameter, maka hasil fungsi tersebut tidak dapat diatur dari modul yang menggunakannya, karena tidak ada parameter yang dikirimkan. Fungsi tanpa parameter jarang dipergunakan.
Contoh program :
Type Huruf = string [6] ;
Function Garis : Huruf ;
Begin
Garis : = ‘======’ ;
End ;
Begin
Writeln (Garis) ; Writeln (‘Pascal’) ; Writeln (Garis) ;
End.
Function
Algoritma & Pemrogram 2A
Output program :
======
Pascal
======
Keterangan program :
Fungsi “Garis” hanya menghasilkan nilai yang sudah pasti yaitu : “======”.
2. Parameter Dalam Fungsi
Parameter dalam fungsi dapat dikirimkan secara nilai atau secara acuan.
Contoh penulisan parameter dengan pengiriman secara nilai :
Function Hitung (A, B : integer ) : integer ;
Contoh program :
Function Terbesar(X, Y : real ) : real ;
Begin
If X > Y Then
Terbesar : = X
Else
Terbesar : = 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.
Output program :
Nilai pertama = 12.356
Nilai kedua = 55.182
Nilai terbesar adalah = 55.182
Penulisan judul fungsi yang menggunakan parameter dengan pengiriman secara acuan adalah dengan menambahkan kata cadangan var.
Contoh penulisan :
Function Hitung ( Var A, B : integer ) : integer ;
Pengiriman parameter secara acuan akan mengakibatkan perubahan nilai parameter di fungsi juga merubah nilai parameter di modul yang mengirimkannya. Fungsi yang menggunakan pengiriman parameter secara acuan ini mirip dengan prosedur, yaitu parameter yang dikirmkan secara acuan tersebut dapat di manfaatkan sebagai hasil balik.
3. Fungsi Pangkat
Pascal tidak menyediakan fungsi untuk perpangkatan tinggi, yang ada hanya fungsi standar Sqr, yaitu pemngkatan kuadrat saja. Bila akan melakukan perpangkatan lebih dari pangkat dua, maka harus dibuat program tersendiri.
1.4 Fungsi Memanggil Dirinya Sendiri
Proses fungsi memanggil dirinya sendiri juga merupakan proses recursion.
Contoh program :
Function Faktorial (Nilai : integer ) : real ;
Begin
If Nilai = 0 Then
Faktorial : = 1
Else
Faktorial : = Nilai * Faktorial (Nilai – 1 ) ;
End ;
Var
N : integer ;
Begin
Write (‘Berapa factorial ?’) ;
Readln (N) ;
Writeln (N, ‘faktorial =’, Faktorial(N) : 9 : 0 ) ;
End.
Output program :
Berapa factorial ? 5
5 faktorial = bbbbbb120
ket : b = blank
5 Fungsi Memanggil Fungsi Yang Lain
Fungsi yang di panggil letaknya harus berada di atas fungsi yang memanggilnya.
Contoh program :
Function Fungsi2 (Y : integer) : integer ;
Begin
Fungsi2 : = Y * 2 ;
End ;
Function Fungsi1 ( X : integer ) : integer ;
Begin
Fungsi1 : = Fungsi2 (X) + 5 ;
End ;
Begin
Writeln (Fungsi1(3)) ;
End.
6. Acuan Forward Pada Fungsi
Fungsi dapat dideklarasikan terpisah dengan bloknya. Deklarasi fungsi yang terpisah dengan blok fungsinya dipergunakan kata cadangan Forward dan blok fungsinya juga di deklarasikan ulang, tetapi tidak perlu menyebutkan parameternya.
7. Fungsi Tersarang
Merupakan fungsi yang letaknya berada di dalam fungsi yang lainnya.
Contoh program :
Function Fungsi1 (X : integer ) : integer ;
Function Fungsi2 ( Y : integer ) : integer ;
Begin
Fungsi2 : = Y * 2 ;
End ;
Begin
Fungsi1 : = Fungsi2 (X) + 5 ;
End ;
Begin
Writeln (Fungsi1 (3)) ;
End.
0 komentar:
Posting Komentar