Parameter yang nilainya dikosongkan pada pemanggil namun diisi saat memanggil program disebut

Parameter adalah nama – nama peubah yang dideklarasikan pada bagian header procedure. Kebanyakan program memerlukan pertukaran data atau informasi antara Procedure dan titik dimana ia dipanggil. Penggunaan Parameter menawarkan mekanisme pertukaran informasi tersebut. Pada item data ditransfer antara parameter actual dan parameter formal yang bersesuaian. Parameter actual adalah parameter yang disertakan pada waktu pemanggilan procedure, sedangkan parameter formal adalah parameter yang dideklarasikan di dalam bagian header procedure itu sendiri. Ketika procedure dipanggil, parameter actual menggantikan parameter formal. Tiap – tiap parameter actual berpasangan dengan parameter formal yang bersesuaian. Pendeklarasian parameter di dalam procedure bukanlah keharusan dengan kata lain parameter boleh ada atau tidak ada.

Procedure bukan program yang berdiri sendiri, jadi tidak dapat dieksekusi secara langsung. Ini berarti, instruksi – instruksi di dalam procedure baru dapat dilaksanakan hanya bila procedure tersebut diakses. Cara mengakses procedure yaitu dengan memanggil namanya dari program utama. Ketika nama procedure dipanggil, kendali program berpindah secara otomatis ke procedure tersebut. Seluruh instruksi di dalam badan procedure dilaksanakan, maka kendali program berpindah secara otomatis kembali ke instruksi sesudah pemanggilan procedure.
Agar nama Procedure dikenali oleh program utama, maka di dalam program utama harus mendeklarasikan prototype Procedure tersebut. Prototype Procedur hanya berisi bagian header Procedure.

Aturan – aturan yang harus diperhatikan dalam korespondensi satu – satu antara parameter actual dan parameter formal adalah : • Jumlah parameter actual pada pemanggilan procedure harus sama dengan jumlah parameter formal pada deklarasi procedurenya. • Tiap parameter actual harus bertipe sama dengan tipe parameter formal yang bersesuaian.

• Tiap parameter actual harus diekspresikan dengan cara yang taat asas dengan parameter formal yang bersesuaian, bergantung pada jenis parameter formal.

Ada tiga jenis parameter formal yang disertakan di dalam procedure, yaitu : 1. Parameter masukan(input) adalah parameter yang nilainya berlaku sebagai masukkan untuk procedure 2. Parameter keluaran(output) adalah parameter yang menampung keluaran yang dihasilkan oleh procedure.

3. Parameter masukkan dan keluaran(input dan output) adalah parameter yang berfungsi sebagai masukkan sekaligus keluaran bagi procedure tersebut.

Pada saat pemanggilan, parameter harus sesuai dengan parameter formalnya.

  • Parameter input harus terdefinisi nilainya
  • Parameter output tidak perlu didefinisikan nilainya
  • Parameter input/output harus merupakan variable yang terdefinisi nilainya

Contoh Algoritma Parameter Masukan(input)

Pascal Algoritma
program tuarnilai;

uses crt;

var x,y: integer;

procedure tukar(a,b:integer);

var c:integer;

begin

c:=b;

b:=a;

a:=c;

end;

begin

x:=1;

y:=2;

tukar(x,y);

writeln(x :’,x,’y :’,y);

readln;

end.

program tuarnilai

Kamus

x,y:integer;

procedure tukar(input a,b:integer)

Algoritma

x←1

y←2

tukar(x,y)

Output(x :’,x,’y :’,y)

procedure tukar(input a,b:integer)

Kamus

c:integer

Algoritma

c←b

b←a

a←c

Contoh Algoritma Parameter Keluaran(output)

Pascal Algoritma
program tuarnilai;

uses crt;

var x,y: integer;

procedure tukar(var a,b:integer);

var c:integer;

begin

c:=b;

b:=a;

a:=c;

end;

begin

x:=1;

y:=2;

tukar(x,y);

writeln(x :’,x,’y :’,y);

readln;

end.

program tuarnilai

Kamus

x,y:integer;

procedure tukar(output a,b:integer)

Algoritma

x←1

y←2

tukar(x,y)

Output(x :’,x,’y :’,y)

procedure tukar(output a,b:integer)

Kamus

c:integer

Algoritma

c←b

b←a

a←c

Contoh Algoritma Parameter Masukan dan Keluaran(input dan output)

Pascal Algoritma
program tuarnilai;

uses crt;

var x,y: integer;

procedure tukar(a,b:integer; var c:integer);

begin

c:=b;

b:=a;

a:=c;

end;

begin

x:=1;

y:=2;

tukar(x,y);

writeln(x :’,x,’y :’,y);

readln;

end.

program tuarnilai

Kamus

x,y:integer;

procedure tukar(input a,b:integer; output c integer)

Algoritma

x←1

y←2

tukar(x,y)

Output(x :’,x,’y :’,y)

procedure tukar(input a,b:integer; output c integer)

Algoritma

c←b

b←a

a←c

2.  Function

Sama halnya dengan Procedure, function diakses dengan memanggil namanya. Fungsi juga dapat mengandung daftar parameter formal. Parameter pada fungsi yang selalu digunakan hanya parameter masukkan. Parameter Masukkan pada fungsi berarti parameter tersebut merupakan masukkan yang digunakan oleh fungsi tersebut untuk menghasilkan nilai. Fungsi diakses dengan cara memanggil namanya dari program utama, diikuti dengan daftar parameter actual. Blok pada function hampir sama dengan blok pada procedure, hanya pada function harus dideklarasikan dengan tipe dari function tersebut yang merupakan tipe hasil dari function itu sendiri. Sehingga dikatakan function dapat mengembalikan nilai. Karena fungsi mengembalikan nilai, maka nilai tersebut dapat diperlakukan dengan dua cara, yaitu : 1. Nilai yang dikembalikan oleh fungsi ditampung di dalam sebuah peubah yang bertipe sama dengan fungsi.

2. Nilai yang dikembalikan oleh fungsi dapat langsung dimanipulasi.

Contoh Algoritma Fungsi dalam Pemanggilan

Cara Pemanggilan Fungsi Pascal Algoritma C
Assignment a:=fungsi(x,y); a←fungsi(x,y) a=fungsi(x,y);
Output/Write Write(fungsi(x,y)); Output(fungsi(x,y)) cout<<”fungsi(xy)”;

Perbedaan function dan procedure dalam pemanggilan:

  • Nilai yang dikirimkan balik terdapat pada nama fungsinya. Kalau pada prosedur parameter yang dikirimkan secara acuan.
  • Karena nilai balik berada di nama fungsi, maka fungsi tersebut dapat langsung digunakan untuk dicetak hasilnya.
  • Atau bias juga dipindahkan ke pengenal variable lainnya. Hasil:=Hitung(X,Y);

WriteLn(Hasil);

Soal

1.Buatlah program pascal yang dapat menghitung luas segitiga menggunakan procedure dengan parameter input dan output!

program aritha_pascal;

uses crt;

procedure inputan(alas: integer; tinggi:integer; var luas:real);

begin

write(‘masukkan nilai alas : ‘); readln(alas);

write(‘masukkan nilai tinggi : ‘); readln(tinggi);

luas:= alas*tinggi/2;

end;

var a,t:integer;

luas : real;

begin

writeln(‘-======Program Procedure Luas segitiga======-‘);

writeln;

inputan(a,t,luas);

write(‘luas segitiga adalah : ‘, luas:0:2);

end.

2.Buatlah program pascal yang dapat menghitung luas segitiga dengan menggunakan pemanggilan yang nilainya langsung dicetak sebagai berikut:

  1. alas dan tingginya 5 dan 3
  2. alas dan tingginya 2 dan 7
  3. alas dan tingginya 4 dan 6

program DenganFunction;

uses crt; function luas(alas,tinggi : integer):single;

begin

clrscr; luas := 0.5 * alas * tinggi;

end;;

var p, l : integer; begin alas := 5; tinggi := 3;

writeln(‘Luas Segitiga = ‘,luas(alas,tinggi));

alas := 2; tinggi := 7;

writeln(‘Luas Segitiga = ‘,luas(alas,tinggi));

alas := 4; tinggi := 6; writeln(‘Luas Segitiga = ‘,luas(alas,tinggi));

readln;

end.

Parameter yang nilainya dikosongkan pada pemanggil namun diisi saat memanggil program disebut

Jika anda diperintahkan untuk memasak masakan tertentu tentu saja anda tidak akan mendengar semua cara memasaknya kecuali anda baru belajar memasak. Kita bisa menyederhanakan perintah memasak dengan mengajarkan atau memberitahukannya terlebih dahulu pada orang yang akan beri perintah. Kita cukup katakan, "masaklah makanan A". Kita perlu menyebut langkah-langkah seperti memotong sayur, menyalakan kompor, menambahkan bumbu dan lain-lain; karena orang yang kita beri perintah sudah paham langkah-langkahnya. Dalam pemrograman, kita juga bisa menyederhanakan sekumpulan perintah atau statement menjadi sebuah prosedur atau fungsi. Prosedur dan fungsi disebut juga subprogram. subprogram bisa digunakan dengan memanggilnya di program utama atau prosedur lainnya. Prosedur bisa digunakan berkali-kali sehingga penulisan program akan jadi lebih singkat dibandingkan dengan meletakkan semua statement/pernyataan dalam kode program. write, readln, dll; adalah contoh prosedur yang sudah ada dalam pascal. Selain menggunakan prosedur yang ada, kita bisa membuat prosedur buatan kita sendiri. Berikut ini adalah contoh prosedur sederhana dan pemanggilannya.

program prosedurku; uses crt; procedure tuliskata(s :string); begin write('Katakan ', s); end; begin clrscr; tuliskata('hai'); readln; end.

Parameter yang nilainya dikosongkan pada pemanggil namun diisi saat memanggil program disebut

Subprogram bisa memiliki "parameter" atau bisa juga tidak memiliki parameter. Pada contoh di atas parameternya adalah s. Berdasarkan letaknya, parameter prosedur dan fungsi bisa terbagi 2 yaitu :
  1. Parameter Formal (formal parameter) : Parameter yang dideklarasikan dibagian blok fungsi.
  2. Parameter Aktual(actual parameter) : Parameter yang sebenarnya / parameter yang dilewatkan saat fungsi dipanggil.
Parameter formal kode program di atas adalah "s" dengan tipe data string. Pada pemanggilan fungsi "tulis kata" parameter diganti dengan kata "hai" yang akan disimpan sebagai nilai parameter yang digunakan dalam fungsi. 
Prosedur tidak memiliki nilai kembalian, berbeda dengan function yang punya nilai yang dikembalikan di tempat pemanggilannya.
program fungsiku; uses crt; var i: integer; function tuliskata( s :string): integer; begin write(s); tuliskata:=length (s); end; begin clrscr; i:=tuliskata('hai '); write(i); readln; end.

Parameter yang nilainya dikosongkan pada pemanggil namun diisi saat memanggil program disebut


Kode program di atas menggunakan fungsi yang bernama tuliskata. Function / fungsi di atas mengembalikan panjang "parameter s" yang memiliki tipe data string ke variabel i.Berdasarkan nilai atau data yang disimpan dalam parameter, parameter dibagi 2, yaitu :
  1. PARAMETER  PASS BY VALUE : Parameter yang diberikan ke fungsi adalah ‘Nilainya’, tidak pernah menspesifikasikan variabelnya. Bila ada perubahan pada parameter formal, tidak akan mempengaruhi nilai pada parameter actual.
  2. PARAMETER  PASS BY REFERENCEMemanipulasi nilai dari dalam fungsi. Setiap perubahan terhadap parameter formal akan memepengaruhi nilai pada parameter aktual. Parameter formal diberi symbol ‘&’. Cara ini adalah cara efektif yang memungkinkan sebuah fungsi mengembalikan lebih dari satu nilai.

jika parameter formal atau parameter yang terdapat pada subprogram menggunakan var, maka parameter tersebut disebut pass by reference. Jika tidak ada kata var maka itu disebut pass by value. Parameter tanpa var akan menyalin nilai variabel sehingga nilai variabel tidak akan berubah jika nilai parameter diubah dalam function atau procedure.

Program subprogram; uses crt; var a, b:integer; //parameter pass by value procedure tukar(x, y : integer); var tmp:integer; begin tmp:=x; x:=y; y:=tmp; end; //program utama begin clrscr; a:=1; b:=2; tukar(a, b); writeln('a : ', a); writeln('b : ', b); readln; end.

Parameter yang nilainya dikosongkan pada pemanggil namun diisi saat memanggil program disebut

Bandingkan hasilnya dengan contoh di bawah ini!


Program subprogram; uses crt; var a, b:integer; //parameter pass by reference procedure tukar(var x:integer; var y : integer); var tmp:integer; begin tmp:=x; x:=y; y:=tmp; end; //program utama begin clrscr; a:=1; b:=2; tukar(a, b); writeln('a : ', a); writeln('b : ', b); readln; end.

Parameter yang nilainya dikosongkan pada pemanggil namun diisi saat memanggil program disebut


Parameter yang menggunakan var akan menyalin alamat variabel, dan perubahan terhadap parameter tersebut akan mengubah nilai variabel . Btw, variabel tmp pada kode program di atas disebut sebagai variabel lokal, karena penggunaannya hanya sebatas untuk function atau procedure yang ditempatinya.