Free Ebook Tutorial from Rosihan Ari's Blog

Ebook Javascript | Ebook PHP | Ebook AJAX | Ebook CSS | Ebook FPDF | Ebook Wordpress | Ebook Java SE




Apa Sih Gunanya Function??


December 10th, 2008 | by rosihanari |


Jual kaos

Dalam dunia programming, tentu kita tidak asing lagi dengan istilah function. Bagi para pemula dalam programming, tentu istilah ini merupakan barang baru. Di sini saya akan tunjukkan apa sih function itu? lantas gunanya apa?

Konsep function dalam sebuah program ini sebenarnya mengadopsi pada teknik manusia dalam mengelola kerja. Sebagai contoh, silakan Anda pandang sebuah organisasi. Untuk mengelola organisasi tersebut, tentunya akan lebih mudah apabila dalam organisasi tersebut dibagi beberapa divisi-divisi. Sebut saja misalkan divisi keuangan, yang tugasnya spesifik mengatur uang dan hasilnya berupa laporan keuangan yang harus disampaikan kepada pimpinan. Ada juga divisi research and development, yang tugasnya mengurusin masalah riset dan pengembangan organisasi dan hasilnya berupa advice kepada pimpinan untuk menentukan policy, dsb.

Ketika kita lihat kinerja sebuah organisasi di atas, masing-masing divisi bertanggungjawab penuh terhadap tugasnya, dan ada suatu output yang dihasilkan setiap divisi yang diberikan kepada pimpinan.

Sekarang dari contoh organisasi tersebut, apa manfaatnya membagi kinerja ke dalam divisi-divisi seperti itu? Yap… manfaat pertama adalah memudahkan dalam pengelolaan, karena masing-masing divisi job descriptionnya jelas. Manfaat kedua adalah bila ada kesalahan dalam laporan keuangan misalnya, maka dapat dengan mudah melacak… ooo… ternyata divisi keuangannya yang salah. Kira-kira begitulah…

Kembali ke function, pada prinsipnya peran dan kegunaan function mirip dengan penjelasan di atas. Anggaplah suatu program itu adalah sebuah organisasi. Function ini perannya mirip dengan divisi dalam organisasi. Kita tahu bahwa suatu divisi organisasi itu pada prinsipnya merupakan sub organisasi. Nah… function ini juga merupakan suatu sub program. Tugas yang dilakukan suatu function juga spesifik dan nantinya juga akan menghasilkan suatu output yang akan diolah dalam program utama.

OK… sebagai contoh untuk memudahkan pemahaman, akan saya berikan sebuah function yang berguna untuk menghitung pangkat bilangan bulat non negatif, ab dengan a bilangan riil dan b bilangan bulat non negatif.

Dalam algoritma, kita tahu bahwa untuk menghitung ab ini dapat menggunakan cara seperti ini:

hasil := 1;
for i:=1 to b do
begin
    hasil := hasil * a;
end;

dimana nilai hasil terakhir dari proses di atas adalah nilai ab.

Nah… bagaimana seandainya kita terapkan algoritma di atas untuk mencari hasil dari

(23 – 47)/(85 + 56)

Dari kasus di atas, terdapat 4 kali perhitungan pangkat. Berarti logikanya kita menuliskan algoritma diatas sebanyak 4 kali. Kira-kira program untuk menghitung hasil di atas menjadi seperti berikut ini:

program pangkat;
var hasil, hasil1, hasil2, hasil3, hasil4, jawab : real;
    i : integer;
begin
   { menghitung pangkat 2^3 }

   hasil := 1;
   for i:=1 to 3 do
   begin
      hasil := hasil * 2;
   end;
   hasil1 := hasil;

   { menghitung pangkat 4^7 }

   hasil := 1;
   for i:=1 to 7 do
   begin
      hasil := hasil * 4;
   end;
   hasil2 := hasil;

   { menghitung pangkat 8^5 }

   hasil := 1;
   for i:=1 to 5 do
   begin
      hasil := hasil * 8;
   end;
   hasil3 := hasil;

   { menghitung pangkat 5^6 }

   hasil := 1;
   for i:=1 to 6 do
   begin
      hasil := hasil * 5;
   end;
   hasil3 := hasil;

   { dihitung hasil akhir }

   jawab := (hasil1 - hasil2)/(hasil3 + hasil4)

end.

Masing-masing pangkat dihitung, lalu dioperasikan dan barulah diperoleh hasilnya. Akan tetapi hal ini tentu merupakan pemborosan baris program, karena menulis baris perintah sama yang diulang-ulang. Mm… sungguh merepotkan bukan. OK… sekarang kita adopsi dengan organisasi di atas. Sepertinya untuk menghitung pangkat ini, perlu dibuat divisi khusus yang ngurusin masalah perhitungan pangkat. Selama kita butuh menghitung pangkat, kita tinggal panggil divisi tersebut untuk menghitungnya. Nah… sehingga kita perlu sebuah function pangkat.

program pangkat;
var jawab : real;

function pangkat(a, b : integer) : real;
var i : integer;
    hasil : real;
begin
    hasil := 1;
    for i := 1 to b do
    begin
       hasil := hasil * a;
    end;
    pangkat := hasil;
end;

begin

   jawab := (pangkat(2, 3) - pangkat(4, 7))/(pangkat(8, 5) + pangkat(5, 6));

end.

Woow… menjadi lebih simple kan. Programnya menjadi ramping, dan kelihatan terstruktur. Kita juga dapat dengan mudah mencari kesalahan bila hasilnya tidak sesuai dengan yang diharapkan. OK… demikian penjelasan seputar function, mudah-mudahan ada manfaatnya.


Kata kunci: function - Programming -


 

Komentar Anda ...