Apa perbedaan antara argumen dan parameter?

718

Ketika berbicara secara verbal tentang metode, saya tidak pernah yakin apakah akan menggunakan argumen kata atau parameter atau sesuatu yang lain. Bagaimana pun orang lain tahu apa yang saya maksud, tetapi apa yang benar, dan apa sejarah istilah itu?

Saya seorang programmer C #, tetapi saya juga bertanya-tanya apakah orang menggunakan istilah yang berbeda dalam bahasa yang berbeda.

Sebagai catatan saya belajar sendiri tanpa latar belakang dalam Ilmu Komputer. (Tolong jangan suruh saya membaca Code Complete karena saya meminta ini untuk kepentingan orang lain yang belum memiliki buku Steve McConnell yang luar biasa.)

Ringkasan

Konsensus umum tampaknya bahwa boleh saja menggunakan istilah-istilah ini secara bergantian dalam lingkungan tim. Kecuali mungkin ketika Anda mendefinisikan terminologi yang tepat; maka Anda juga dapat menggunakan " argumen / parameter formal " dan " argumen / parameter aktual " untuk membuat ambigu.

rohancragg
sumber
9
Saya menggunakannya secara bergantian .. belum ada yang menertawakan saya .. 'fungsi ini memiliki 4 argumen .. fungsi ini membutuhkan 4 parameter.' terdengar sama.
Gishu
54
Tidak apa-apa untuk menggunakannya secara bergantian kecuali ketika Anda mencoba menggambarkan bagaimana parameter bekerja dan bagaimana argumen diloloskan, dll. Pada saat itu terminologi yang tepat (yang terkadang merepotkan untuk diekspresikan) berguna.
Jon Skeet
2
Setidaknya ada dua versi non-tertutup, bahasa-agnostik dari pertanyaan ini: stackoverflow.com/questions/3176310/… dan stackoverflow.com/questions/427653/arguments-or-parameters . Ada juga versi C # lain dari pertanyaan ini; Saya telah meminta penggabungan.
Pops
1
Senang bahwa Anda menyebutkan Steve McConnell. Saya mengetahui tentang satu orang lagi yang mengetahui keahlian perangkat lunak bersama dengan Robert C. Martin.
RBT
3
Saya pikir terlepas dari apakah Anda berada di lingkungan formal atau tidak, Anda harus berusaha untuk menggunakan istilah yang benar. Saya pikir ini cukup sederhana. Saat Anda memanggil metode, Anda menyampaikan argumen. Ketika Anda mendefinisikan metode, Anda mendefinisikan parameter yang akan mengambil argumen dari panggilan metode / fungsi. argumen - variabel independen yang terkait dengan fungsi dan menentukan nilai fungsi. parameter - batas atau batas yang mendefinisikan ruang lingkup proses atau aktivitas tertentu.
jsquaredz

Jawaban:

906

Parameter adalah variabel dalam definisi metode. Ketika suatu metode dipanggil, argumennya adalah data yang Anda masukkan ke dalam parameter metode.

public void MyMethod(string myParam) { }

...

string myArg1 = "this is my argument";
myClass.MyMethod(myArg1);
Torbjörn Hansson
sumber
196
Mnemonic aliterasi yang dapat membantu: Argumen Aktual. ;)
thSoft
8
Jawabannya menyebutkan bahwa "Parameter adalah variabel dalam definisi metode" tetapi mungkin lebih baik untuk mengatakan "deklarasi metode" [jika seseorang membuat perbedaan antara 'deklarasi' dan 'definisi']
nandan
110
"Anda menentukan parameter, dan Anda membuat argumen."
Greg M. Krsak
5
parameter => ketika kita mendefinisikan fungsi, argumen => ketika kita memanggil metode itu. (BENARKAN AKU JIKA SAYA SALAH.)
Prageeth godage
7
Parameter adalah Nama. Argumen adalah Nilai.
Aziz Alto
327

Parameter adalah variabel dalam deklarasi fungsi.

Argumen adalah nilai aktual dari variabel ini yang diteruskan ke fungsi.

Rinat Abdullin
sumber
7
Bahasa-bahasa ini biasanya merujuk pada daftar argumen / parameter yang diteruskan ke metode sebagai *argsatau ARGVtidak *params:-)
karatedog
6
*paramsakan menjadi nama variabel yang dimaksudkan untuk menyimpan nama-nama parameter (mungkin digunakan untuk introspeksi).
trss
6
@ Karatedog Dan itu benar-benar sejalan dengan perbedaan ini, sebenarnya. Parameter dinamai pada waktu deklarasi, argumen hanya diketahui pada waktu panggilan. Sintaks *argsmenyatakan parameter args yang nilainya daftar (nama dan jenis dikenal pada waktu deklarasi) dari argumen (yang jumlahnya hanya diketahui pada waktu panggilan).
Emil Lundberg
72

Sudah ada entri Wikipedia pada subjek (lihat Parameter ) yang mendefinisikan dan membedakan istilah parameter dan argumen . Singkatnya, parameter adalah bagian dari fungsi / prosedur / metode tanda tangan dan argumen adalah nilai aktual yang diberikan saat run-time dan / atau situs panggilan untuk parameter.

Artikel Wikipedia juga menyatakan bahwa kedua istilah tersebut sering digunakan secara sinonim (terutama ketika berargumentasi tentang kode secara tidak resmi):

Meskipun parameter juga sering disebut sebagai argumen, argumen lebih tepat dianggap sebagai nilai aktual atau referensi yang ditetapkan ke variabel parameter ketika subrutin dipanggil pada saat runtime.

Diberikan contoh fungsi berikut dalam C yang menambahkan dua bilangan bulat, xdan yakan disebut sebagai parameternya:

int add(int x, int y) {
    return x + y;
}

Di situs panggilan yang menggunakan add, seperti contoh yang ditunjukkan di bawah, 123 dan 456 akan disebut sebagai argumen panggilan.

int result = add(123, 456);

Juga, beberapa spesifikasi bahasa (atau dokumentasi formal) memilih untuk menggunakan parameter atau argumen secara eksklusif dan menggunakan kata sifat seperti formal dan aktual sebagai gantinya untuk membedakan antara kedua kasus. Sebagai contoh, dokumentasi C / C ++ sering merujuk ke parameter fungsi sebagai argumen formal dan argumen panggilan fungsi sebagai argumen aktual . Sebagai contoh, lihat “ Argumen Resmi dan Aktual ” di Referensi Bahasa Visual C ++ .

Atif Aziz
sumber
+1 untuk menjelaskan bagaimana mereka biasa digunakan serta definisi formal mereka, dan juga untuk menyebutkan penggunaan umum argumen / parameter "formal" dan "aktual" untuk membedakannya tanpa ambiguitas.
Siput mekanik
Ini adalah penjelasan yang bagus tetapi hampir mustahil untuk dipahami dibandingkan dengan kesederhanaan konsep. Parameter adalah apa yang diterima, argumen adalah apa yang disebut. Ini adalah jalan satu arah.
ihodonald
69

Sederhana:

  • P ARAMETER → P LACEHOLDER (Ini berarti placeholder milik penamaan fungsi dan digunakan dalam badan fungsi)
  • A RGUMENT → A CTUAL VALUE (Ini berarti nilai aktual yang dilewati oleh pemanggilan fungsi)
Duc Filan
sumber
3
Kait memori yang bagus
Tanckom
29

Parameter adalah variabel dalam deklarasi fungsi.

Argumen adalah nilai aktual dari variabel ini yang diteruskan ke fungsi. masukkan deskripsi gambar di sini

pengguna6864832
sumber
16

Penggunaan parameter istilah dan argumen telah disalahgunakan agak di antara programmer dan bahkan penulis. Saat berurusan dengan metode, parameter istilah digunakan untuk mengidentifikasi placeholder dalam tanda tangan metode, sedangkan argumen istilah adalah nilai aktual yang Anda sampaikan ke metode.

MCSD Cerfification Toolkit (Ujian 70-483) Pemrograman dalam C # , edisi pertama, Wrox, 2013

Skenario kasus dunia nyata

// Define a method with two parameters
int Sum(int num1, int num2)
{
   return num1 + num2;
}

// Call the method using two arguments
var ret = Sum(2, 3);
ZenLulz
sumber
10

Dalam mengedit, saya sering menunda bagaimana orang lupa: bahasa struktur didasarkan pada bahasa alami.

Dalam Bahasa Inggris

"Parameter" adalah placeholder. Mereka mengatur format respons, dalam bahasa lisan. Menurut definisi, ini adalah bagian dari panggilan, membatasi respons.

"Argumen" adalah posisi yang sedang dipertimbangkan. Anda berdebat pendapat Anda: Anda mempertimbangkan argumen.

Perbedaan utama

Peran tematis dari argumen adalah agen. Peran tematik parameter adalah penerima.

Interaksi

Pikirkan argumen sebagai bagian pria, menjadikan parameter bagian wanita. Argumen masuk ke dalam parameter.

Pemakaian

Parameter biasanya digunakan dalam definisi. Argumen biasanya digunakan dalam doa.

Pertanyaan

Selesaikan kalimat agar kurang disonan.

(A) Berbicara tentang definisi:

  1. Argumen apa yang akan digunakan []?
  2. Apa [] yang akan parameter ini []?

(B) Berbicara tentang permohonan:

  1. Parameter apa yang akan Anda gunakan, []?
  2. Apa [] yang akan [] parameter ini?

Jawaban

(SEBUAH)

  1. pada / di / terhadap / dengan parameter ini
  2. argumen ... ambil

(B)

  1. dan apa beberapa contoh argumen
  2. argumen ... digunakan pada / di / terhadap / dengan

Tumpang tindih

Seperti yang dapat Anda bayangkan, setelah menjawab: dalam bahasa lisan, kata-kata ini terkadang akan menghasilkan respons yang identik!

Jadi, sebagai aturan:

  • Biasanya jika seseorang menginginkan informasi parameter, mereka ingin tahu lebih banyak tentang tipe, nama variabel, dll. Mereka mungkin menjadi bingung jika Anda hanya memberikan contoh argumen.

    • Biasanya jika seseorang menginginkan informasi argumen, mereka ingin tahu nilai apa yang Anda berikan ke suatu fungsi atau parameternya.
Wolfpack'08
sumber
8

Contoh ini mungkin membantu.

int main () {
   int x = 5; 
   int y = 4;

   sum(x, y); // **x and y are arguments**
}

int sum(int one, int two) { // **one and two are parameters**
   return one + two;
}
Saurabh Rana
sumber
8

Ingatlah selalu bahwa: - Argumen dilewatkan saat parameter diterima.

HEMANT GIRI
sumber
8

The parameter dari fungsi / metode menjelaskan kepada Anda nilai-nilai yang menggunakan untuk menghitung hasilnya.

The argumen dari fungsi adalah nilai-nilai ditugaskan untuk parameter ini selama panggilan tertentu fungsi / metode.

Johan
sumber
7

Atau mungkin lebih sederhana untuk diingat seperti ini, jika ada argumen opsional untuk suatu metode:

public void Method(string parameter = "argument") 
{

}

parameteradalah parameter, nilainya, "argument"adalah argumennya :)

nawfal
sumber
7

Katakanlah Anda seorang maskapai. Anda membangun pesawat terbang. Anda memasang kursi di dalamnya. Kemudian, Anda mengisi pesawat dengan penumpang dan mengirimkannya ke suatu tempat. Para penumpang (atau lebih tepatnya, beberapa versi yang diubah untuk sementara waktu) turun. Hari berikutnya, Anda menggunakan kembali pesawat yang sama, dan kursi yang sama, tetapi dengan penumpang yang berbeda saat ini.

Pesawat adalah fungsi Anda.

Parameternya adalah kursi.

Argumennya adalah penumpang yang masuk kursi itu.

XML
sumber
7

Parameter dan Argumen

Semua istilah berbeda yang berkaitan dengan parameter dan argumen dapat membingungkan. Namun, jika Anda menyimpan beberapa poin sederhana dalam pikiran, Anda akan dapat dengan mudah menangani persyaratan ini.

  1. The parameter formal untuk fungsi tercantum dalam deklarasi fungsi dan digunakan dalam tubuh definisi fungsi. Parameter formal (dalam bentuk apa pun) adalah semacam blank atau placeholder yang diisi dengan sesuatu ketika fungsi dipanggil.
  2. Sebuah argumen adalah sesuatu yang digunakan untuk mengisi parameter formal. Saat Anda menulis panggilan fungsi, argumen terdaftar dalam tanda kurung setelah nama fungsi. Ketika pemanggilan fungsi dieksekusi, argumen dicolokkan untuk parameter formal.
  3. Istilah call-by-value dan call-by-reference merujuk pada mekanisme yang digunakan dalam proses plugging-in. Dalam metode panggilan demi nilai, hanya nilai argumen yang digunakan. Dalam mekanisme panggilan-oleh-nilai ini, parameter formal adalah variabel lokal yang diinisialisasi ke nilai argumen yang sesuai. Dalam mekanisme panggilan-oleh-referensi argumen adalah variabel dan seluruh variabel digunakan. Dalam mekanisme panggilan-oleh-referensi variabel argumen diganti untuk parameter formal sehingga setiap perubahan yang dibuat untuk parameter formal sebenarnya dibuat untuk variabel argumen.

Sumber: Absolute C ++, Walter Savitch

Itu adalah,

masukkan deskripsi gambar di sini

snr
sumber
6

Persyaratannya agak dapat dipertukarkan. Perbedaan dijelaskan dalam jawaban lainnya lebih tepat dinyatakan dengan istilah parameter formal untuk nama yang digunakan di dalam tubuh fungsi dan parameter untuk nilai yang disediakan di situs panggilan ( argumen resmi dan argumen juga umum).

Juga perhatikan bahwa, dalam matematika, argumen istilah jauh lebih umum dan parameter biasanya berarti sesuatu yang sangat berbeda (meskipun parameter dalam persamaan parametrik pada dasarnya adalah argumen untuk dua atau lebih fungsi).

Marcelo Cantos
sumber
Tetapi sekali lagi istilah argumen juga kelebihan beban, setidaknya dalam analisis yang kompleks.
Siput mekanik
1
Saya memiliki parameter dengan anggapan bahwa mereka dapat dipertukarkan. ;)
Wildcard
5

Argumen adalah instantiasi parameter.

Paul Richter
sumber
4
Ini penjelasan yang saya berikan oleh programmer lain dulu, dan saya pikir itu sangat jelas dan ringkas. Saya mempostingnya di sini karena alasan itu.
Paul Richter
4

Iya! Parameter dan Argumen memiliki arti yang berbeda, yang dapat dengan mudah dijelaskan sebagai berikut:

Parameter Fungsi adalah nama yang tercantum dalam definisi fungsi.

Argumen Fungsi adalah nilai riil yang diteruskan ke (dan diterima oleh) fungsi.

anoNewb
sumber
4

Penjelasan Sederhana tanpa kode

"Parameter" adalah hal yang sangat umum, luas, tetapi "argumen: adalah hal yang sangat spesifik dan konkret. Ini paling baik digambarkan melalui contoh sehari-hari:

Contoh 1: Mesin Penjual Otomatis - Uang adalah parameternya, $ 2,00 adalah argumennya

Sebagian besar mesin mengambil input dan mengembalikan output. Misalnya mesin penjual otomatis mengambil input: uang, dan pengembalian: minuman bersoda sebagai hasilnya. Dalam kasus khusus itu, ia menerima sebagai parameter: uang.

Lalu apa argumennya? Nah jika saya memasukkan $ 2.00 ke mesin, maka argumennya adalah: $ 2.00 - itu adalah input yang sangat spesifik yang digunakan.

Contoh 2: Mobil - Bensin adalah parameternya

Mari kita pertimbangkan sebuah mobil: mereka menerima bensin (bensin tanpa timbal) sebagai input. Dapat dikatakan bahwa mesin ini menerima parameter tipe: bensin. Argumennya akan menjadi input tepat dan konkret yang saya masukkan ke mobil saya. misalnya dalam kasus saya, argumennya adalah: 40 liter bensin / bensin tanpa timbal.

Contoh 3 - Elaborasi tentang Argumen

Argumen adalah contoh input tertentu dan spesifik. Misalkan mesin saya mengambil seseorang sebagai input dan mengubahnya menjadi seseorang yang bukan pembohong.

Lalu apa argumennya? Argumennya adalah orang tertentu yang benar-benar dimasukkan ke dalam mesin. mis. jika Colin Powell dimasukkan ke dalam mesin maka argumennya adalah Colin Powell.

Jadi parameternya adalah seseorang sebagai konsep abstrak, tetapi argumennya akan selalu berupa orang tertentu dengan nama tertentu yang dimasukkan ke dalam mesin. Argumennya spesifik dan konkret.

Itulah bedanya. Sederhana.

Bingung?

Posting komentar dan saya akan memperbaiki penjelasannya.

BKSpurgeon
sumber
3

Atau bahkan lebih sederhana ...

Argumen masuk!

Parameter keluar!

jpillora
sumber
3

Keduanya tidak memiliki banyak perbedaan dalam penggunaan dalam C, kedua istilah tersebut digunakan dalam praktik. Sebagian besar argumen sering digunakan dengan fungsi. Nilai yang diteruskan dengan pernyataan pemanggilan fungsi disebut argumen, Dan parameternya adalah variabel yang menyalin nilai dalam definisi fungsi (disebut sebagai parameter formal).

int main ()
{
   /* local variable definition */
   int a = 100;
   int b = 200;
   int ret;

   /* calling a function to get max value */
   ret = max(a, b);

   printf( "Max value is : %d\n", ret );

   return 0;
}

/* function returning the max between two numbers */
int max(int num1, int num2) 
{
   /* local variable declaration */
   int result;

   if (num1 > num2)
      result = num1;
   else
      result = num2;

   return result; 
}

Dalam kode di atas num1dan num2merupakan parameter formal dan adan bmerupakan argumen aktual.

Bevin Sunth
sumber
3

Tutorial Java Oracle mendefinisikan perbedaan ini sebagai berikut: "Parameter mengacu pada daftar variabel dalam deklarasi metode. Argumen adalah nilai aktual yang dilewatkan ketika metode dipanggil. Ketika Anda memanggil suatu metode, argumen yang digunakan harus cocok dengan parameter deklarasi itu. dalam jenis dan urutan. "

Diskusi lebih rinci tentang parameter dan argumen: https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html

J. Clarke
sumber
3

Secara logika, kita sebenarnya membicarakan hal yang sama. Tetapi saya pikir metafora sederhana akan sangat membantu untuk menyelesaikan dilema ini.

Jika metafora dapat disebut berbagai titik koneksi, kita dapat menyamakannya dengan menghubungkan titik-titik di dinding. Dalam hal ini kita dapat mempertimbangkan parameter dan argumen sebagai berikut;

Parameter adalah soket plug-point yang dapat mengambil berbagai bentuk berbeda. Tetapi hanya beberapa jenis colokan yang cocok untuk mereka.
Argumen akan menjadi colokan aktual yang akan dicolokkan ke colokan / soket untuk mengaktifkan peralatan tertentu.

Nuwan Jayawardene
sumber
3

Parameter adalah variabel dalam definisi fungsi.
Argumen adalah nilai parameter

<?php

    /* define function */
    function myFunction($parameter1, $parameter2)
    {
        echo "This is value of paramater 1: {$parameter1} <br />";
        echo "This is value of paramater 2: {$parameter2} <br />";
    }

    /* call function with arguments*/
    myFunction(1, 2);

?>
antelove
sumber
3

Secara umum, parameter istilah dan argumen digunakan secara bergantian untuk berarti informasi yang diteruskan ke suatu fungsi.

Namun, dari perspektif fungsi:

  • Sebuah parameter adalah variabel yang tercantum di dalam kurung dalam definisi fungsi.
  • Sebuah argumen adalah nilai yang dikirimkan ke fungsi ketika dipanggil.
Tiago Martins Peres 李大仁
sumber
2

Ketika kita membuat metode (fungsi) di Jawa, metode seperti ini ..

data-type name of the method (data-type variable-name)

Dalam tanda kurung, ini adalah parameter, dan ketika kita memanggil metode (fungsi) kita melewatkan nilai parameter ini, yang disebut argumen.

Summra Umair
sumber
2

Menurut buku Alabahari Joseph, "C # in a Nutshell" (C # 7.0, hlm. 49):

static void Foo (int x)
{
    x = x + 1; // When you're talking in context of this method x is parameter
    Console.WriteLine (x);
}
static void Main()
{
    Foo (8); // an argument of 8. 
             // When you're talking from the outer scope point of view
}

Dalam beberapa bahasa manusia (afaik Italia, Rusia) sinonim banyak digunakan untuk istilah-istilah ini.

  • parameter = parameter formal
  • argumen = parameter aktual

Di universitas saya, profesor menggunakan kedua jenis nama itu.

burzhuy
sumber
0

Parameter adalah variabel yang diterima oleh suatu fungsi. Karena itu mereka terlihat dalam deklarasi fungsi. Mereka berisi nama variabel dengan tipe data mereka. Argumen adalah nilai aktual yang diteruskan ke fungsi lain. Itulah sebabnya kita bisa melihatnya dalam pemanggilan fungsi. Mereka hanya nilai tanpa tipe data mereka

shreesh katti
sumber
0

Parameter formal untuk suatu fungsi tercantum dalam deklarasi fungsi dan digunakan di badan definisi fungsi. Parameter formal (dalam bentuk apa pun) adalah semacam blank atau placeholder yang diisi dengan sesuatu ketika fungsi dipanggil.

Sebuah argumen adalah sesuatu yang digunakan untuk mengisi parameter formal. Saat Anda menulis panggilan fungsi, argumen terdaftar dalam tanda kurung setelah nama fungsi. Ketika pemanggilan fungsi dieksekusi, argumen dicolokkan untuk parameter formal.

Istilah call-by-value dan call-by-reference merujuk pada mekanisme yang digunakan dalam proses plugging-in. Dalam metode panggilan demi nilai, hanya nilai argumen yang digunakan. Dalam mekanisme panggilan-oleh-nilai ini, parameter formal adalah variabel lokal yang diinisialisasi ke nilai argumen yang sesuai. Dalam mekanisme panggilan-oleh-referensi argumen adalah variabel dan seluruh variabel digunakan. Dalam mekanisme panggilan-oleh-referensi variabel argumen diganti untuk parameter formal sehingga setiap perubahan yang dibuat untuk parameter formal sebenarnya dibuat untuk variabel argumen.

Mahm00d
sumber
0

Parameter adalah variabel yang digunakan untuk menyimpan data yang dilewatkan ke fungsi untuk fungsi yang akan digunakan. Argumen adalah data aktual yang diteruskan ke fungsi saat dipanggil:

// x and y are parameters in this function declaration
function add(x, y) {
  // function body
  var sum = x + y;
  return sum; // return statement
}

// 1 and 2 are passed into the function as arguments
var sum = add(1, 2);
Rejaul Karim
sumber
0

Saya memikirkannya dan menyadari jawaban saya sebelumnya salah. Ini definisi yang jauh lebih baik

{ Bayangkan sekotak telur: Satu pak sosis tautan: Dan pelayan } Ini mewakili unsur-unsur dari Fungsi yang diperlukan untuk persiapan yang disebut: (gunakan nama apa pun: Katakanlah Memasak adalah nama fungsi saya).

Pembantu adalah metode.

(Anda harus __call_ atau meminta metode ini untuk membuat sarapan) (Tindakan membuat sarapan adalah Fungsi yang disebut Memasak ) _

Telur dan sosis adalah Parameter:

(karena jumlah telur dan jumlah sosis yang ingin Anda makan adalah __variable_.) _

Keputusan Anda adalah Argumen:

Ini mewakili __Value_ jumlah telur yang dipilih dan / atau sosis yang Anda Memasak ._

{ Mnemonic }

"Ketika Anda memanggil pelayan dan memintanya untuk membuat sarapan, dia __argues_ dengan Anda tentang berapa banyak telur dan sosis yang harus Anda makan. Dia khawatir tentang kolesterol Anda" __

(Jadi, argumen adalah nilai untuk kombinasi Parameter yang telah Anda deklarasikan dan putuskan untuk diteruskan ke Fungsi Anda)

marcusjetson
sumber