Faktorial dengan prosedur

Kita sudah pernah menggunakan prosedur tanpa parameter. Pada saat itu parameter memang tidak dibutuhkan dalam prosedur tersebut. Prosedur tersebut akan selalu menghasilkan sesuatu yang benar-benar sama. Sekarang bayangkan sebuah prosedur yang bisa bertindak sesuai dengan keadaan, sehingga prosedur membutuhkan informasi untuk menentukan tindakannya. Cara untuk mengirimkan informasi ke dalam prosedur adalah dengan menggunakan parameter. Contoh prosedur dengan parameter adalah sebagai berikut:

program HitungFaktorial5;
{$APPTYPE CONSOLE}
var
  n:integer;
  procedure HitungFaktorial(bilangan:integer);
  var n:integer;
      faktorial:Extended;
  begin
    faktorial:=1;
    if (bilangan<>0) then
    begin
      n:=1;
      repeat
        faktorial:=faktorial*n;
        n:=n+1;
      until (n>bilangan);
    end;  
    Write('Faktorial dari ',bilangan);
    Writeln(' adalah ',faktorial);
  end;
begin
  Write('Masukkan sebuah bilangan: ');
  Readln(n);
  HitungFaktorial(n);
  Writeln('Tekan Enter');
  Readln;
end.

Prosedur HitungFaktorial memiliki parameter bilangan. Di dalam prosedur tersebut, bilangan digunakan sebagai informasi yang dikirim dari pemanggilnya. Pada proses pemanggilannya, ekspresi yang diberikan kepada prosedur tersebut adalah n. Oleh prosedur, n akan diterjemahkan sebagai bilangan.

Perhatikan pula bahwa di dalam prosedur HitungFaktorial terdapat variabel n. variabel ini merupakan variabel yang berbeda dengan variabel n milik program utama.

Cobalah untuk menambahkan baris pada program utama sebagai berikut:

begin
  Write('Masukkan sebuah bilangan: ');
  Readln(n);
  HitungFaktorial(n); 
  Writeln(n); 
  Writeln('Tekan Enter');
  Readln;
end.

Saat program dijalankan, tampilannya adalah sebagai berikut:

Masukkan sebuah bilangan: 45
Faktorial dari 45 adalah  1.19622220865480E+0056
45
Tekan Enter

Prosedur HitungFaktorial melakukan perubahan terhadap variabel n, akan tetapi setelah pemanggilan terhadap prosedur tersebut, ternyata isi variabel n tetap sama. Hal ini menunjukkan bahwa variabel n milik prosedur berbeda dengan variabel n milik program utama.

Variabel n milik program utama disebut sebagai variabel global. Sedangkan variabel n milik prosedur disebut variabel lokal. Jika prosedur tersebut tidak memiliki variabel n, maka perubahan terhadap n diterapkan kepada variabel global. Akan tetapi jika sebuah prosedur memiliki variabel yang namanya sama dengan nama variabel global, maka perubahan terhadap variabel dengan nama tersebut akan diterapkan kepada variabel lokal.

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.