Friday, November 6, 2009

Fungsi Dalam Algoritama : (Definisi, Deklarasi, Parameter, Nilai Balik, Rekursif Dan Pola Fungsi)

Fungsi di dalam algoritma dan bahasa pemrograman bekerjsama yakni bab yang tidak bisa dipisahkan, bahkan hampir semua bahasa pemrograman tingkat tinggi melibatkan fungsi di dalam kaidah struktur kode bahasa yang digunakan nya.

Fungsi keberadaannya mempunyai tugas yang sangat signifikan alasannya yakni sanggup mempersingkat penulisan agenda dan sanggup meningkatkan kualitas struktur agenda sehingga lebih modular serta gampang dipahami.

Saya yakin bila anda pertama kali mempelajari algoritma, dan anda dikenalkan dengan materi algoritma wacana fungsi, maka anda akan dibentuk bingung, pasalnya memang fungsi untuk orang awam sulit sekali dipahami, tapi bekerjsama bila sudah sanggup dipahami fungsi itu tidaklah sesulit apa yang dibayangkan.

dan bahasa pemrograman bekerjsama yakni bab yang tidak bisa dipisahkan Fungsi dalam algoritama : (Definisi, deklarasi, parameter, nilai balik, rekursif dan contoh fungsi)


Di artikel kali ini saya akan menjelaskan secara terperinci mengenai algoritma pemrograman fungsi. apa yang akan saja jelaskan meliputi, definisi fungsi, deklarasi fungsi, parameter, nilai balik, rekursif funsi dan contoh fungsi.

Definisi atau pengertian Fungsi

Fungsi adalah sebuah blok kode agenda yang melaksanakan operasi khusus yang sudah didefinisikan dan mengembalikan hasil yang telah diproses, dengan adanya fungsi agenda lebih kelihatan rapi, gampang dipahami dan lebih terstruktur, alasannya yakni dengan adanya blog fungsi maka saat di dalam agenda secara keseluruhan ternyata ada proses yang serupa lebih dari satu dengan blok fungsi yang sudah dibuat, tidak perlu menciptakan ulang, cukup menggunakan blok fungsi tersebut dengan cara memanggil nama fungsi tersebut tanpa harus menulis kode kembali.

Deklarasi Fungsi dalam algoritma

Deklarasi fungsi dalam algoritma yakni aturan penulisan kode algoritma untuk blok fungsi, deklarasi fungsi dalam algoritma biasanya sangat tergantung sekali dengan pendekatan bahasa pemrograman yang akan mengkonversinya, untuk pendekatan ke dalam bahasa pemrograman pascal deklarasi fungsi biasanya dimulai dengan kata Function sebagai berikut:

Function NamaFungsi (input : deklarasi parameter, bila ada) à Tipe data
{Spesifikasi fungsi, berisi klarifikasi wacana apa yang dilakukan  dan dikembalikan oleh fungsi .}
DEKLARASI{semua nama yang digunakan di dalam fungsi dan hanya berlaku lokal di dalam mekanisme didefinisikan di sini}
ALGORITMA{badan fungsi, berisi urutan arahan yang menghasilkan nilai yang akan dikembalikan oleh fungsi}
Return  ekspresi {pengembalikan nilai yang dihasilkan fungsi}


NamaFungsi bisa diadaptasi pada umumnya diberi nama sesuai dengan kegunaan dari blok fungsi itu sendiri,  sedangkan yang ada di dalam kurung itu yakni parameter, fungsi harus mengembalikan sebuah nilai dari pengolahan data atau proses fungsi, perintahnya biasanya diletakan di simpulan baris fungsi, kode perintahnya yakni Return.....

Aturan penulisan nama fungsi
Nama fungsi mempunyai aturan penulisan khusus, sebagai berikut:

  • Tidak boleh di awalai oleh angka
  • Tidak boleh mengandung spasi
  • Tidak boleh menggunakan keyword dari bahasa pemrograman yang digunakan


Parameter Fungsi dalam algoritma

Parameter fungsi yakni variable yang dilewatkan ke dalam fungsi, saat fungsi dibentuk parameter sifatnya opsional, boleh ada atau pun boleh tidak digunakan, pertimbangannya adalah, bila variable-variable yang dilibatkan di dalam fngsi sifatnya dinamic atau bisa diubah-ubah atau berbeda-beda maka parameter wajib dilibatkan, namun bila sebaliknya tidak perlu melibatkan variable di dalam fungsi tersebut.

Dalam algoritma fungsi penulisan parameter biasanya di dalam kurung sesudah nama fungsi, dengan perintah input: deklarasi varameter, menyerupai terlihat pada cuilan kode fungsi di bawah ini:

Function NamaFungsi (input : deklarasi parameter, bila ada) : Tipe data.........endfunction 

Kode yang berwarna merah di atas itu disebut parameter, parameter yang dimasukan yakni nama variable dan tipe datanya, bisa lebih dari satu atau dikosongkan saja.

Nilai balik fungsi dalam algoritma

Nilai balik fungsi yakni return value atau nilai yang diperoleh dari proses yang dijalankan oleh fungsi itu sendiri,  tipe data nilai balik fungsi sesuai dengan yang didefinisikan oleh fungsi itu sendiri, bila tipe datanya integer maka nilai baliknya juga harus integer, bila tipe datanya string maka nilai balik yang dikembalikan juga harus berformat string.

Karena fungsi mempunyai nilai balik, maka saat nama blog fungsi tersebut di panggil di dalam struktur agenda bisa kita anggap itu yakni sebuah nilai bukan rangkaian struktur perintah program. sama halnya saat kita ingin memproses angka atau kata, alasannya yakni sebuah nilai maka saat dipanggil fungsi tersebut harus dilibatkan untuk sebuah proses perhitungan atau dicetak.

Fungsi harus dipanggil untuk dijalankan oleh program

Ketika struktur kode agenda dibaca oleh komputer, dan di dalam struktur agenda tersebut terdapat blok-blok fungsi, maka blok fungsi tersebut hanya akan dibaca saja dan tidak akan diproses, blok fungsi gres akan diproses saat ada kode agenda yang memanggil fungsi tersebut.

Untuk memproses blok fungsi maka fungsi tersebut harus di panggil di dalam struktur agenda dengan cara menulis nama dan juga parameternya.

Misalkan saja di dalam struktur agenda kita sudah menciptakan funsi sebagai berikut:
Function jumlahkan(var a,b,c,d,e... integer) : integer
.....
.....
reurn ......

Fungsi diatas namanya yakni jumlahkan yang mengembalikan sebuah nilai dalam bentuk integer, blok fungsi di atas saat dibaca oleh agenda maka hanya sekedar akan dibaca saja tidak akan dihukum atau diproses, nah biar fungsi tersebut diproses maka nama fungsi tersebut perlu dipanggil di dalam struktur program.

Misalkan saja hasil dari fungsi tersebut ingin kita cetak ke layar maka kita harus memanggil fungsi tersebut untuk dicetak

writeln('Totalnya adalah:', jumlahkan(10,5)); 

Kode yang berwarna merah di atas yakni contoh dari pemanggilan nama fungsi.

atau

.......
Jumlah ß jumlah + jumlahkan(5,5)........
Kode agenda di atas juga sebagai salah satu contoh pemanggilan fungsi, alasannya yakni fungsi mengembalikan sebuah nilai dan nilai yang dikembalikan dari contoh fungsi diatas yakni integer maka kita bisa memanggil fungsi tersebut di dalam proses perhitungan menyerupai di atas.

Fungsi Rekursif

Fungsi rekursif yakni Fungsi yang memanggil dirinya sendiri atau pemanggilan fungsi yang bersangkutan di dalam struktur fungsi itu sendiri, misalkan anda mempunyai fungsi jumlahkan, nah di struktur fungsi jumlahkan yang anda buat anda memanggil fungsi jumlahkan.

contoh struktur fungsi rekursif

function jumlahkan(var a,b : integer) : integer
....
jumlahkan(10,5)
....
endfunction

Bisa dilihat di struktur algoritma di atas bahwa fungsi jumlahkan di panggil di dalam struktur fungsi jumlahkan. itu yang disebut sebagai rekursif atau fungsi yang memanggil dirinya sendiri.

Contoh Kasus Struktur algoritma yang melibatkan fungsi

Untuk lebih memahami fungsi maka saya sajikan contoh kasus  struktur algoritma untuk menghitung luas persegi panjang dengan fungsi dan tanpa fungsi:

A. Algoritma Menghitung persegi panjang tanpa Fungsi


algoritma hitung_persegi_panjang;

DEKLARASI
panjang : integer
lebar : integer
luas : integer

ALGORITMA:
lebar ß 5
panjang ß 10
luas ß panjang * lebar 

write(luas)


B. Algoritma menghitung persegi panjang menggunakan fungsi

algoritma hitung_persegi_panjang
DEKLARASI
var panjang. lebar : integer

ALGORITMA:
write ('masukan panjang : '); readln(panjang);
write ('masukan lebar : ');readln(lebar);

writeln(hitung_luas(panjang,lebar));

writeln(hitung_luas(10,5));
writeln(hitung_luas(97,50));


function hitung_luas(var P,L:integer) : integer
var luas : integer
luas ß P * L

return luas;
endfunction.



Algoritma di atas hanya contoh sederhana saja, bisa kita bandingkan kedua struktur algoritma di atas, algortma yang menggunakan fungsi jauh lebih efektif alasannya yakni saat kita ingin memproses perhitungan persegi panjang yang nilai panjang dan lebarnya diinput oleh pengguna maka kita tinggal panggil saja perintah hitung_luas(panjang, lebar) dimana variable panjang dan lebar sudah diisi oleh pengguna melalui perintah readln.

Dan saat kita ingin menghitung kembali perhitungan luas persegi panjang dengan panjang dan lebar dengan nilai lainnya, maka kita tidak perlu menciptakan struktur porgram perhitungan yang gres cukup lakukan saja pemanggilan fungsi
hitung_luas(10,5) ini bila ingin menghitung persegi panjang dengan panjang 10 dan lebar 5
hitung_luas(97,50) ini bila angka yang ingin dihitung panjangnya 97 dan lebarnya 50.  

Bayangkan bila tidak menggunakan fungsi, maka saat kita ingin menghitung pesegi panjang dengan nilai berbeda maka kita harus menulis ulang struktur serupa sehingga agenda akan semakin panjang.

Sekali lagi contoh di atas hanya contoh kasus sederhana saja sehingga panjangnya agenda tidak bisa dijadikan acuan, namun bila kasus yang dipecahkan sangat kompleks penggunaan fungsi benar-benar sangat bermanfaat dan sangat efektif, contoh di atas hanyalah sebagai materi biar anda bisa memahami wacana fungsi.

Lho kenapa kode perintah algoritma di atas berbeda dengann yang saya pelajari?

Bisa saja saat anda membaca algoritma di atas strukturnnya berbeda dengan apa yang sedang anda pelajari, perlu anda ketahui bahwa perintah algoritma sangat tergantung sekali dengan pendekatan bahasa pemrograman yang ingin anda kembangkan, algoritma di atas menggunakan bahasa pemrograman pascal, bila yang sedang anda pelajari yakni bahasa C++ atau java, maka kode perintah algoritmanya akan sedikit berbeda.

Yang harus anda perhatikan yakni kebijaksanaan cara berfikirnya, bila anda bisa menguasai kebijaksanaan cara berfikir yang di uraikan di struktur algoritma maka akan dengan gampang anda mengkonversi ke algoritma sesuai dengan pendekatan bahasa pemrograman yang anda pelajari.