Perbedaan antara panggilan berdasarkan nilai dan panggilan dengan referensi

Perbedaan antara panggilan berdasarkan nilai dan panggilan dengan referensi

Perbedaan Kunci - Panggilan berdasarkan Nilai vs Panggilan dengan Referensi
 

Banyak bahasa pemrograman menggunakan fungsi. Fungsi adalah serangkaian pernyataan untuk melakukan tugas tertentu. Kode utama dapat dibagi menjadi beberapa fungsi dan memanggilnya. Ada dua cara untuk memanggil fungsi seperti panggilan demi nilai dan panggilan dengan referensi. Dalam metode panggilan dengan nilai, salinan variabel diteruskan ke fungsi. Jika ada perubahan nilai fungsi, itu tidak mengubah nilai asli. Dalam panggilan dengan referensi, perubahan variabel di dalam fungsi mencerminkan nilai asli. Itu perbedaan utama Antara panggilan demi nilai dan panggilan dengan referensi adalah itu, Dalam panggilan berdasarkan nilai, salinan variabel diteruskan ke fungsi dan dalam panggilan dengan referensi, alamat variabel diteruskan ke fungsi.  Artikel ini membahas perbedaan antara panggilan berdasarkan nilai dan panggilan dengan referensi.

ISI

1. Ikhtisar dan Perbedaan Utama
2. Apa yang disebut Nilai
3. Apa yang disebut dengan referensi
4. Kesamaan antara panggilan dengan nilai dan panggilan dengan referensi
5. Perbandingan berdampingan - panggilan dengan nilai vs panggilan dengan referensi dalam bentuk tabel
6. Ringkasan

Apa yang disebut Nilai?

Dalam panggilan berdasarkan nilai, salinan variabel diteruskan ke fungsi. Fungsi dapat mengubah nilai yang disalin tetapi tidak mengubah nilai asli. Konsep ini dapat dengan mudah dipahami dengan bertukar program dua angka.  Rujuk program C di bawah ini yang ditulis menggunakan Lingkungan Blok Kode.

Gambar 01: Program untuk menukar dua angka

Menurut program yang diberikan di bawah ini, variabel 'A' memiliki nilai 20 dan variabel 'B' memiliki nilai 30.  Saat memanggil fungsi swap (a, b), kedua nilai ini diteruskan ke fungsi swap. Dalam fungsi swap, 'a' disalin ke 'x' dan 'b' disalin ke 'y'. Sekarang, 'x' memiliki nilai 20 dan 'y' memiliki nilai 30.  Menggunakan variabel temp, kedua nilai itu ditukar. Saat mencetak nilai 'x' dan 'y' di dalam fungsi swap itu, output akan memberikan 30 untuk 'x' dan 20 untuk 'y'. Saat eksekusi fungsi swap selesai, kontrol kembali ke fungsi utama. Saat mencetak nilai 'a' dan 'b', dalam fungsi utama, hasilnya akan menjadi nilai asli. Mereka 20 untuk 'A' dan 30 untuk 'B'.  Perubahan yang dibuat menggunakan fungsi swap tidak mencerminkan dalam program utama.

Gambar 02: Output dari program pertukaran

'x' dan 'y' di dalam fungsi swap memiliki nilai bertukar yang 30 dan 20 tetapi nilai -nilai tersebut tidak dapat digunakan dalam program utama. Meskipun 'x' dan 'y' memiliki nilai bertukar, mereka adalah variabel lokal untuk bertukar fungsi dan tidak dapat diakses oleh fungsi utama. Untuk menghindari masalah ini, panggilan dengan referensi dapat digunakan.

Apa yang disebut dengan referensi?

Dalam metode ini, alamat variabel dikirim ke fungsi. Rujuk program C di bawah ini yang ditulis menggunakan Lingkungan Blok Kode.

Gambar 03: Pertukaran dua angka menggunakan pointer

Menurut contoh yang diberikan di bawah ini, nilai 'A' adalah 20 dan nilai 'B' adalah 30. Alih -alih memberikan salinan 'A' dan 'B', programmer dapat mengirim alamat 'A' dan 'B' menggunakan fungsi, swap (& a, & b).

Gambar 04: Output dari program pertukaran menggunakan pointer

Di swap, fungsi harus menggunakan pointer karena alamat disahkan dan alamat tersebut harus dipegang oleh pointer. Di dalam fungsi, alamat 'a' disalin ke 'x' dan alamat 'b' disalin ke 'y'. Menggunakan variabel temp, 'x' dan 'y' nilai ditukar. Dalam panggilan ini dengan metode referensi, perubahan di dalam fungsi swap tercermin dalam program utama. Mencetak nilai 'a' dan 'b' di utama akan memberikan nilai yang ditukar. Sekarang output dari 'A' adalah 30 dan 'B' adalah 20. Karena fungsi mengambil alamat variabel, perubahan yang dibuat di dalam fungsi mempengaruhi nilai asli.

Apa kesamaan antara panggilan dengan nilai dan panggilan dengan referensi?

  • Kedua metode ini digunakan untuk memanggil fungsi/metode.

Apa perbedaan antara panggilan demi nilai dan panggilan dengan referensi?

Panggilan dengan nilai vs panggilan dengan referensi

Dalam panggilan berdasarkan nilai, salinan variabel diteruskan ke fungsi sehingga perubahan yang dibuat di dalam fungsi, tidak akan memodifikasi nilai asli. Dalam panggilan dengan referensi, alamat variabel diteruskan ke fungsi, sehingga perubahan yang dibuat untuk variabel di dalam fungsi, akan memodifikasi nilai asli.
 Modifikasi Nilai
Dalam panggilan berdasarkan nilai, nilai aslinya tidak berubah. Dalam panggilan dengan referensi, nilai asli berubah.

Ringkasan - Panggilan dengan nilai vs panggilan dengan referensi

Panggilan demi nilai dan panggilan dengan referensi adalah metode memanggil fungsi. Perbedaan antara panggilan berdasarkan nilai dan panggilan dengan referensi adalah bahwa dalam panggilan dengan nilai salinan variabel diteruskan ke fungsi dan dalam panggilan dengan referensi, alamat variabel diteruskan ke fungsi.  Menggunakan panggilan dengan nilai atau panggilan dengan referensi tergantung pada tugas yang harus dilakukan.

Unduh versi PDF Call by Value vs Call dengan referensi

Anda dapat mengunduh versi PDF artikel ini dan menggunakannya untuk tujuan offline sesuai catatan kutipan. Silakan unduh versi pdf di sini perbedaan antara panggilan demi nilai dan panggilan dengan referensi

Referensi:

1.Jaiswal, Haresh . “11 Panggilan berdasarkan Nilai vs Panggilan dengan Referensi." Youtube, YouTube, 24 Des. 2015. Tersedia disini