fbpx

Algoritma dan Pemrogaman : Identifier dan Parameter

Lingkup Identifier

Lingkup identifier meliputi bagian-bagian program dimana sebuah identifier masih bisa diakses.

Lingkup idenfier meliputi:

  1. Lokal
  2. Global

Lokal Identifier

Identifier lokal adalah identifier yang dideklarasikan di dalam fungsi/prosedur, termasuk parameter. Lokal identifer ini hanya berlaku di dalam fungsi/prosedur tersebut.

Global Identifier

Identifier global adalah identifier yang dideklarasikan di luar fungsi/prosedur. Ruang lingkupnya meliputi seluruh program setelah dideklarasikan. Disarankan tidak banyak menggunakan identifier global karena:

  1. Jika program semakin besar, kecenderungan error semakin besar
  2. Sulit melacak bila terjadi kesalahan
  3. Setiap fungsi dapat mengubah nilai variabel tersebut sehingga sulit terjaga nilainya.

Contoh Jangkauan

program jangkauan;
var x,y:integer;
function fungsi1(x:real):real;
var y:real;
begin
  ...
end;
procedure pro;
var x,y,z:integer;
begin
  ...
end;
var a,b:integer;
begin
  ...
end.

Dari contoh di atas, terdapat beberapa identifier, berikut penjelasannya:

  1. Identifier x,y setelah judul program memiliki jangkauan sampai akhir program. Artinya, identifier ini berlaku di dalam subprogram juga. (identifier global)
  2. Identifier a,b sebelum blok begin dan end di program utama memiliki jangkauan mulai awal identifier ini dideklarasikan hingga berakhirnya program. (identifier global)
  3. Identifier y pada fungsi fungsi1 memiliki jangkauan hanya dalam fungsi tersebut saja (identifier lokal)
  4. Identifier x,y,z pada prosedur pro memiliki jangkauan hanya dalam prosedur tersebut saja (identifier lokal)

Parameter

Jenis Parameter

  1. Formal : parameter dimana fungsi/prosedur dideklarasikan
  2. Aktual : parameter dimana fungsi/prosedur digunakan

Transfer Parameter

  1. By-Value : yang dikirim ke modul lain atau ke program utama adalah nilai datanya
  2. By Location/By Reference : yang di transfer ke modul lain atau program utama adalah alamat memorinya.

Contoh Transfer Parameter

program transfer1;
uses crt;
procedure tukar(x,y:integer);
var z:integer;
begin
    z:=x; x:=y; y:=z;
end;

var a,b:integer;
begin
    clrscr;
    a:=2; b:=9;
    tukar(a,b);
    writeln('a = ',a,' b = ',b);
    readln;
end.

Pada contoh di atas output yang dihasilkan tidak merubah nilai a dan b. Karena transfer parameter yang digunakan adalah by value bukan by reference. Sehingga nilai yang dikirim ke program utama akan sama.

program transfer2;
uses crt;
procedure tukar(var x,y:integer);
var z:integer;
begin
    z:=x; x:=y; y:=z;
end;

var a,b:integer;
begin
    clrscr;
    a:=2; b:=9;
    tukar(a,b);
    writeln('a = ',a,' b = ',b);
    readln;
end.

Berbeda dengan contoh sebelumnya, program ini menggunakan transfer parameter by reference sehingga nilai a dan b akan bertukar, a = 9 dan b = 2. Proses pertukaran ini terjadi di subprogram prosedur dengan menggunakan variabel tambahan “z” untuk menyimpan nilai sementara.


Materi Lengkap

Silakan baca juga beberapa artikel menarik kami tentang Subprogram, daftar lengkapnya adalah sebagai berikut.


Tonton juga video pilihan dari kami berikut ini

Bagikan ke teman-teman Anda

Contact Us

How to whitelist website on AdBlocker?

How to whitelist website on AdBlocker?

  1. 1 Click on the AdBlock Plus icon on the top right corner of your browser
  2. 2 Click on "Enabled on this site" from the AdBlock Plus option
  3. 3 Refresh the page and start browsing the site
error: Content is protected !!
Up