Function, Prosedur, Parameter
Menuliskan beberapa potongan kode yang dapat digunakan kembali disebut fungsi. Potongan-potongan komposisi diwujudkan dalam bentuk fungsi. Fungsi hanya berjalan jika mereka dipanggil. Secara algoritmik, sebuah fungsi akan menerima suatu harga yang diberikan lewat parameter formal bertype tertentu (jika ada) dan menghasilkan suatu nilai sesuai dengan domain yang didefinisikan dalam spesifikasi fungsi.
Karakteristik Fungsi:
- Memiliki nama Memiliki parameter ( bisa jadi 0 atau lebih)
- Memiliki docstring/spesifikasi fungsi (opsional tetapi sangat direkomendasikan)
- Memiliki badan fungsi Mengembalikan sesuatu (bisa jadi mengembalikan sesuatu yang kosong)
Pendefinisian fungsi:
function NAMAF (<list-parameter-input>) ® <type hasil>
Fungsi Terdefinisi
Fungsi terdefinisi adalah fungsi yang sudah diberikan oleh sistem dan
tinggal dipakai (dipanggil). Fungsi
terdefinisi selalu diberikan daftar dan spesifikasinya (domain + range).
Jenis fungsi terdefinisi:
1. Fungsi terdefinisi untuk Melakukan Konversi Tipe:
Contoh:
function RealToInteger (x : real) ® integer
{ Mengkonversi harga x yang bertype real menjadi harga lain yang betype integer dengan pemotongan, yaitu menghilangkan bagian di belakang titik desimalnya}
function IntToReal (i : integer) ® real
{ Mengkonversi harga i yang bertype integer menjadi harga ekivalen yang betype real }
2. Fungsi-fungsi terdefinisi untuk seleksi terhadap sebuah string:
Contoh:
function AWAL (S : string) ® string
{ Menghasilkan sisa string S tanpa karakter terakhir }
function AKHIR (S : string) ® string
{ Menghasilkan sisa string S tanpa karakter pertama }
function FIRSTCHAR (S : string { tidak kosong } ) ® character
{ Menghasilkan karakter pertama string S }
function LASTCHAR (S : string { tidak kosong } ) ® character
{ Menghasilkan karakter terakhir string S }
3. Fungsi-fungsi untuk memperoleh informasi tentang sebuah string:
Contoh:
function LONG (S : string) ® integer
{ Menghasilkan panjang string S}
function IsKOSONG (S : string) ® boolean
{Menghasilkan true jika S adalah string kosong }
4. Fungsi suksesor dan predesesor untuk integer:
Contoh:
function Succe (x : integer) ® integer
{ Menghasilkan suksesor x, x+1 }
{ Contoh: Succe(0) = 1
Succe(-1) = 0
Succe(5) = 6 }
function Pred (x : integer) ® integer
{ Menghasilkan predesesor x, x – 1 }
{ Contoh: Pred(-1) = -2
Pred(3) = 2 }
5. Fungsi dengan tidak ada kembalian/tidak ada return:
(Akan dijelaskan di bab prosedur)
Contoh:
procedure foo() {}
6. Fungsi dengan kembalian(fungsi):
Contoh:
function foo()
return 1;
Apa itu Prosedur?
Prosedur atau procedure adalah sederetan instruksi algoritmik yang diberi nama, dan akan menghasilkan efek neto yang terdefinisi. Prosedur menyatakan suatu aksi dalam konsep algoritma yang dibicarakan pada cerita “Mengupas kentang”.
Pendifinisian peosedur:
procedure NAMAPROSEDUR ( [list nama parameter formal : type])
Jenis prosedur:
1. Prosedur tanpa parameter
Contoh:
procedure hitung_saldo() {}
2. Prosedur berparameter
Contoh:
procedure hitung_saldo(saldo_awal, saldo_akhir, bunga : integer) {}
((saldo_awal, saldo_akhir, bunga : integer) adalah parameter)
Apa itu Parameter?
Parameter adalah sebutan untuk nilai inputan fungsi pada saat fungsi itu di definisikan.
Nama parameter yang dituliskan pada definisi/spesifikasi prosedur disebut sebagai parameter formal. Sedangkan parameter yang dituliskan pada pemanggilan prosedur disebut sebagai parameter aktual.
Parameter Formal
Parameter formal adalah nama-nama variabel (list nama) yang dipakai dalam mendefinisikan prosedur, dan membuat prosedur tersebut dapat dieksekusi dengan nama-nama yang berbeda ketika dipanggil. Parameter formal adalah list nama yang akan dipakai pada prosedur, yang nantinya akan diasosiasikan terhadap nama variabel lain pada saat pemanggilan. Sesuai dengan ketentuan nilainya, ada tiga type parameter formal:
1. parameter input, yaitu parameter yang diperlukan prosedur sebagai masukan untuk melakukan aksi yang efektif.
Contoh:
procedure LuasSegitiga(alas, tinggi: real)
((alas, tinggi: real) adalah parameternya)
2. parameter output, yaitu parameter yang nilainya akan dihasilkan oleh prosedur. Hasil nilai akan disimpan pada nama parameter Output ini.
Contoh:
procedure LuasSegitiga(input alas, tinggi: real)
((input alas, tinggi: real) adalah parameternya)
3. parameter input/output, yaitu parameter yang nilainya diperlukan prosedur sebagai masukan untuk melakukan aksi, dan pada akhir prosedur akan dihasilkan nilai yang baru.
Contoh:
procedure Tukar(input/output a, b: integer)
((input/output a, b: integer) adalah parameternya)
Parameter Aktual
Parameter aktual adalah nama-nama informasi yang dipakai ketika prosedur itu dipakai ("dipanggil"). Parameter aktual dapat berupa nama atau harga, tetapi harus berupa nama jika parameter tersebut adalah parameter output (karena hasilnya akan disimpan dalam nama tersebut).
Contoh:
main()
{
...
c = jumlah(a, b)
...
}
(jumlah(a, b) adalah parameter)
Aturan yang harus diperhatikan:
1. Jumlah parameter aktual pada pemanggilan prosedur harus sama dengan jumlah parameter formal pada deklarasi prosedurnya.
2. Tiap parameter aktual harus bertipe sama dengan tipe parameter formal yang bersesuaian.
3. Tiap parameter aktual harus diekspresikan dalam cara yang taat-asas dengan parameter formal yang bersesuaian, bergantung pada jenis parameter formal.
Perbedaan antara Function dan Prosedur
Prosedur:
1. Nilai yang dikirimkan balik terdapat pada parameter yang dikirim secara acuan
2. Nama prosedur tidak dapat digunakan secara langsung
3. Yang dapat langsung digunakan adalah parameternya yang mengandung nilai balik
4. Tidak memiliki nilai balik
Function:
1. Nilai yang dikirimkan balik terdapat pada nama fungsinya
2. karena nilai balik berada di nama fungsi tersebut, maka fungsi tersebut dapat langsung digunakan untuk dicetak hasilnya
3. Nilai fungsi dapat juga langsung dipindahkan ke pengenal variabel yang lainnya
4. Memiliki nilai balik (return value)
Komentar
Posting Komentar