Fungsi

Program permutasi telah menunjukkan bahwa prosedur bisa menyederhanakan pekerjaan. Akan tetapi cara tersebut masih terasa kurang sesuai dengan perhitungan matematika yang lumrah. Kita harus memanggil sebuah prosedur dan menyimpan hasil perhitungannya dalam sebuah variabel sementara. Setelah itu kita lakukan lagi perhitungan yang melibatkan variabel-variabel sementara tersebut. Alangkah lebih mudah jika ada subprogram yang bisa secara langsung dianggap sebagai ekspresi.

Prosedur yang bisa dianggap sebagai ekspresi di dalam Delphi disebut dengan fungsi (function). Perbedaan utama antara prosedur dan fungsi adalah digantinya kata procedure menjadi function, serta adanya tipe data hasil dari fungsi tersebut. Disamping itu, proses di dalam fungsi harus mengisi variabel yang disebut dengan result.

Bagian kepala dari fungsi adalah sebagai berikut:

function NamaFungsi(paramater):TipeData;

Seperti halnya prosedur, parameter pada fungsi bersifat opsional.

Contoh program menghitung permutasi dengan fungsi:

program Permutasi2;
{$APPTYPE CONSOLE}
var
  n,r,k:integer;
  Hasil:Extended;
  function Faktorial(bil:integer):Extended;
  var n:integer;
  begin
    result:=1;
    if (bil<>0) then
    begin
      n:=1;
      repeat
        result:=result*n;
        n:=n+1;
      until (n>bil);
    end;
  end;

begin
  Write('Masukkan jumlah unsur (n): ');
  Readln(n);
  Write('Masukkan jumlah pengambilan (r): ');
  Readln(r);
  Write('Masukkan jumlah unsur sama (k): ');
  Readln(k);
  Hasil:=  Faktorial(n)/
      (Faktorial(n-r)*Faktorial(k));
  Writeln('Hasil permutasinya adalah: ',Hasil:0:0);
  Writeln('Tekan Enter');
  Readln;
end.

Dengan menggunakan fungsi, kita tidak lagi membutuhkan variabel sementara. Disamping itu penyusunan ekspresinya menjadi terasa lebih alami.

Apakah Anda menyukai post ini? Mengapa tidak memberikan komentar di bawah dan melanjutkan perbincangan, atau berlangganan my feed dan dapatkan artikel semacam ini yang dikirm secara otomatis feed reader Anda.
Harap diperhatikan bahwa komentar atau pertanyaan yang disampaikan haruslah sesuai dengan topik yang sedang dibahas. Komentar atau pertanyaan yang tidak sesuai dengan topik akan kami hapus :!:

Tinggalkan komentar

Sebelum membuat komentar, pastikan Anda telah membaca komentar-komentar sebelumnya. Jangan membuat pertanyaan yang telah ditanyakan. Perhatikan pula link-link dalam artikel. Lihatlah link tersebut sebelum membuat pertanyaan, karena mungkin penjelasan dari pertanyaan Anda telah di jawab dalam link tersebut.

Komentar yang tidak mengikuti aturan ini akan dihapus!

(wajib)

(wajib)


Time limit is exhausted. Please reload the CAPTCHA.