makalah Algoritma
MAKALAH
FUNCTION AND PROCEDURE
TUGAS MATA KULIAH ALGORITMA DAN PEMROGRAMAN
Dosen Pengampu : Dyah Apriliani, S.Kom., M.Kom
|
D3 TEKNIK KOMPUTER
POLITEKNIK HARAPAN BERSAMA TEGAL
2015
FUNGSI
Fungsi adalah
subprogram yang menerima
data masukan, melakukan beberapa perhitungan
dari data tersebut,
kemudian mengembalikan output berupa sebuah data baru. Dengan kata lain, sebuah fungsi memetakan sebuah
nilai (dalam domain) menjadi nilai
lain (dalam range) dengan operasi/ proses tertentu. Pendeklarasian fungsi
merupakan salah satu
cara memecah persoalan ke dalam
beberapa sub persoalan yang lebih mudah diselesaikan.
Dalam pembuatan sebuah fungsi, pemrogram
harus mendefinisikan:
● Nama
fungsi
● Tipe
data yang dibuat/ dihasilkan oleh fungsi
● Daftar
parameter yang menyatakan data yang diperlukan oleh fungsi
● Satu
atau lebih instruksi yang melakukan perhitungan
Selanjutnya, fungsi
yang sudah didefinisikan dapat
digunakan dalam program utama
maupun dalam fungsi
lainnya dengan cara memanggil nama fungsi dan memberikan parameter yang
diperlukan oleh fungsi tersebut.
Fungsi bekerja
menurut mekanisme pemanggilan-pengembalian (callreturn mechanism). Tahapan dalam mekanisme tersebut
adalah:
1.
Fungsi dipanggil dari program utama maupun fungsi
lainnya
2.
Sekumpulan operasi dalam fungsi dieksekusi
3.
Hasil
eksekusi dikembalikan ke
program utama atau
fungsi lain yang memanggilnya
STRUKTUR UMUM SEBUAH FUNGSI
|
Sedangkan
penulisan dalam bahasa pemprograman C++ adalah sebagai berikut :
|
Dengan
catatan bahwa daftar
parameter boleh kosong
(tidak ada parameter yang
perlu diinputkan pada
saat pemanggilan fungsi).
Jika daftar parameter (disebut
juga parameter formal)
tidak kosong maka
parameter tersebut harus berupa nama
parameter dan tipe datanya.
Dalam sebuah fungsi, instruksi
terakhir harus merupakan perintah untuk mengirimkan nilai/ data keluaran
dari fungsi ke
program utama (bagian
program yang memanggilnya). Nilai
yang dikembalikan oleh
sebuah fungsi dapat
bertipe skalar, record, array, maupun set.
Jika
kita melihat struktur
penulisan fungsi, struktunya
hampir atau bahkan sama dengan
program utama. Pada dasarnya, pemprograman dengan menggunakan C++
adalah pemprograman dengan
struktur fungsi, dimana setiap kode yang dituliskan harus
dalam bentuk fungsi, tak terkecuali program utama. Program utama merupakan
suatu fungsi dengan nama main () yang
tidak memiliki nilai kembali atau nilai kembalinya adalah kosong atau 0. Oleh
karenanya, kita juga
dapat menuliskan program
utama dengan void main() atau dengan
int main(), dengan return value-nya
0.
Saat program pertama dijalankan, kode yang
pertama dieksekusi adalah fungsi main().
Oleh karenanya, setiap program minimal harus memiliki satu fungsi yaitu main(), dimana isi dari fungsi ini
adalah inti dari program.
Parameter
dalam sebuah fungsi
merupakan antarmuka (penghubung) antara fungsi dengan kode
pemanggilnya. Fungsi menerima satu atau beberapa nilai melalui
parameter-parameter yang telah
didefinisikan. Setiap kali
fungsi dipanggil, kode pemanggil
harus menyediakan parameter
yang dibutuhkan oleh fungsi.
Beberapa karakteristik parameter dalam fungsi:
●
Parameter
hanya muncul di
dalam fungsi yang
mendefinisikannya dan tidak dapat
diakses di luar fungsi tersebut.
●
Parameter menyimpan nilai hingga fungsi
dieksekusi.
●
Parameter diinisialisasi setiap kali fungsi
dipanggil oleh program utamamaupun fungsi lainnya.
Setelah didefinisikan, fungsi
dapat dipanggil dari
program utama maupuan dari fungsi
lainnya dengan perintah
|
CONTOH FUNGSI :
|
Pada
contoh di atas,
fungsi luas_segiempat memerlukan
dua parameter inputan, yaitu P dan L yang keduanya bertipe integer.
Kemudian, fungsi ini akan menghitung hasil dengan perkalian nilai P dan L.
Fungsi akan mengembalikan nilai variabel hasil ke kode pemanggil.
Berikut
ini adalah contoh
algoritma program utama/
fungsi lain (selanjutnya disebut
kode pemanggil) yang memanggil fungsi luas_segiempat:
|
Pada
potongan program di
atas didefinisikan tiga
variabel, yaitu panjang, lebar, dan luas. Pemanggilan fungsi luas_segiempat dilakukan dalam tiga
tahap sesuai mekanisme call-return, yaitu:
1.
Kode
pemanggil memberikan (passing)
dua parameter yang
sudah didefinisikan sebagai variabel dalam program tersebut, yaitu
panjang dan lebar.
2.
Fungsi luas_segiempat dijalankan dengan menerima dua
parameter dari kode pemanggil. Secara berurutan,
variabel panjang dikenali sebagai parameter P dan variabel lebar dikenali sebagai parameter L.
Fungsi melakukan perkalian
dan menyimpan hasilnya
dalam variable hasil yang
merupakan parameter output dari fungsi.
3.
Fungsi luas_segiempat mengembalikan nilai
dalam variabel hasil ke kode
pemanggil. Kode pemanggil
akan menyimpannya ke
dalam variabel luas yang
telah didefinisikan, kemudian
menampilkannya ke pemakai.
Perhatikan pula bahwa variabel P, L dan hasil hanya didefinisikan dan digunakan di fungsi
luas_segiempat dan tidak dapat digunakan dalam program utama maupun fungsi
lainnya (variabel lokal).
PROSEDUR
Cara
lain memecah persoalan
pemrograman ke dalam
sub-sub persoalan pemrograman adalah dengan mendeklarasikan prosedur.
Prosedur adalah sederetan instruksi yang diberi nama, dan melakukan tujuan
tertentu. Seperti halnya pada fungsi, prosedur bekerja dengan mekanisme
pemanggilan pengembalian (call-return mechanism), yaitu dengan urutan langkah:
1.
Prosedur
dipanggil oleh kode
pemanggil (program utama
maupun prosedur lainnya)
2.
Sekumpulan operasi yang disimpan dalam prosedur
dieksekusi
3.
Kontrol dikembalikan ke kode pemanggil
Struktur umum deklarasi prosedur adalah
sebagai berikut:
|
Sedangkan
dalam pemprograman bahasa
C++, penulisan procedure seperti berikut :
|
Dengan catatan bahwa nama prosedur dan nama
parameternya harus disebutkan dalam blok
kode pemanggil. Berbeda
dengan fungsi, daftar parameter pada
procedure terbagi menjadi
dua yaitu parameter input
dan parameter output.
Daftar parameter boleh
kosong (tidak ada parameter input maupun
output). Jika parameter
tidak kosong (minimal
ada satu parameter) maka harus
dituliskan nama parameter beserta tipe datanya.
Prosedur
tanpa parameter memanfaatkan
nilai dari variabel
yang terdefinisi dalam kode
program utama/prosedur lain
yang memanggilnya. Prosedur tanpa
parameter ini hanya
dapat dieksekusi jika
nilai dari variable yang
diperlukan dalam prosedur
sudah didefinisikan dalam
kode program utama/ prosedur lain
yang memanggilnya.
Prosedur
dengan parameter dibuat untuk
mengeksekusi sekumpulan
instruksi dengan parameter
yang berbeda-beda. Nama
parameter yang dituliskan pada
definisi / spesifikasi
prosedur disebut dengan parameter
formal. Sedangkan parameter
yang dituliskan pada
pemanggilan prosedur disebut parameter aktual.
Parameter formal
adalah nama-nama variabel
yang dipakai dalam mendefinisikan prosedur,
dan membuat prosedur
tersebut dapat dieksekusi dengan variabel yang berbeda saat
pemanggilan. Terdapat tiga tipe parameter formal:
●
parameter
input, yaitu parameter
yang diperlukan prosedur
sebagai masukan untuk melakukan aksi yang efektif
●
parameter
output, yaitu parameter
yang akan menyimpan nilai
yang dihasilkan oleh prosedur
●
parameter
input/output, yaitu parameter
yang diperlukan prosedur sebagai masukan
untuk melakukan aksi tertentu,
yang pada akhir prosedur akan diisi dengan nilai baru
sebagai hasil eksekusi prosedur
Parameter aktual
adalah variabel /
konstanta yang dipakai
ketika prosedur dipanggil oleh
program utama /
prosedur lain. Parameter
actual dapat berupa variabel
/ konstanta, tapi
parameter output harus
berupa variabel karena akan menyimpan hasil eksekusi prosedur.
Struktur pemanggilan prosedur dari program
utama maupun prosedur lain adalah hanya
dengan menuliskan nama
procedurenya kemudian diikuti daftar parameternya sebagai berikut:
|
Sama halnya dengan fungsi, prosedur dapat
terhubung dengan program utama
maupun prosedur lain
melalui pertukaran parameter.
Bedanya, deklarasi prosedur harus
menyertakan nama dan
tipe data dari
seluruh parameter input dan outputnya.
Contoh
algoritma penghitung luas
segi empat dalam
subbab fungsi dapat diubah
menjadi sebagai berikut (dengan prosedur):
|
Contoh
algoritma penghitung nilai
rata-rata dari dua
buah bilangan inputan dengan
pendeklarasian prosedur:
|
Pola pemanggilan procedure juga mengikuti
aturan yang diterapkan pada function.
Dari algoritma di atas, dapat
dituliskan ke dalam
bahasa pemprograman C++ sebagai berikut:
|
Perbedaan
utama yang terlihat
antara fungsi dan
prosedur adalah bahwa prosedur
tidak perlu mengembalikan
sebuah nilai, sedangkan
fungsi harus selalu mengembalikan
nilai (ditunjukkan dengan
perintah return ... di
akhir blok fungsi).
Selain itu, kode
pemanggil fungsi perlu
mendefinisikan sebuah
variabel untuk menyimpan
nilai yang dikembalikan
oleh fungsi, sedangkan pada
prosedur tidak demikian.
Pengisian variabel dilakukan
oleh prosedur sehingga kode
pemanggil tidak perlu
lagi mempersiapkan sebuah variabel penyimpan hasil eksekusi
prosedur.
Pada
procedure pertama dan
kedua terdapat lambang
“&” setelah penulisan tipe
data pada parameter
procedure. Hal itu
maksudnya adalah variabel tersebut
merupakan parameter input/output, dengan
kata lain akan terjadi pemetaan dua arah antara variabel pada parameter
procedure dengan variabel pada parameter pemanggilan procedure.
Fungsi dan Prosedur yang telah terdefinisi
Selain
dapat membuat sendiri
fungsi atau prosedur
yang diperlukan dalam sebuah
program, bahasa pemrograman
juga sudah menyediakan beberapa
fungsi dan prosedur yang sudah terdefinisi dan dapat langsung digunakan /
dipanggil dalam program. Penggunaan fungsi maupun prosedur yang telah
terdefinisi tersebut dapat mempermudah perancang program menyelesaikan sub
persoalan tertentu.
Beberapa fungsi yang telah
terdefinisi, antara lain:
FUNGSI
|
CONTOH
|
- Fungsi ceil
(untuk membulatkan
keatas
nilai pecahan).
|
var-int ceil(ekspresi float)
|
- Fungsi min/ max
(menentukan nilai
minimal
atau maksimal
dari dua
bilangan)
|
var-int min(3,5)
var-int max(3,5)
|
- Fungsi random
(mendaparkan nilai
secara
|
var-int random(10)
|
acak dari rentang tertentu)
|
|
- Fungsi sin
(memperoleh nilai sinus dari
suatu bilangan)
|
Var-float sin(int)
|
Beberapa prosedur yang telah
terdefinisi, antara lain:
PROSEDUR
|
CONTOH
|
- Prosedur assert
(mengecek error
pada ekspresi
boolean)
|
assert (eks-boolean [,string])
|
- Prosedur arg
(mengembalikan argumen
ke-i dari
program dan
meyimpannya dalam
sebuah string)
|
arg (eks-integer, var-string)
|
- Prosedur date
(menampilkan tanggal sekarang)
date (var-string)
|
date (var-string)
|
- Fungsi time
(menampilkan jam sekarang dengan
format jj:mm:dd)
|
time (var-string)
|
Komentar
Posting Komentar