Perbedaan Antara Panggilan dengan Nilai dan Panggilan dengan Referensi

Perbedaan Kunci - Panggilan dengan Nilai vs Panggilan dengan Referensi
 

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

ISI

1. Ikhtisar dan Perbedaan Utama
2. Apa itu Call by Value
3. Apa itu Panggilan dengan Referensi
4. Kesamaan Antara Panggilan dengan Nilai dan Panggilan dengan Referensi
5. Perbandingan Berdampingan - Panggilan dengan Nilai vs Panggilan dengan Referensi dalam Bentuk Tabular
6. Ringkasan

Apa itu Call by Value?

Dalam panggilan berdasarkan nilai, salinan variabel dilewatkan ke fungsi. Fungsi dapat mengubah nilai yang disalin tetapi tidak mengubah nilai aslinya. Konsep ini dapat dengan mudah dipahami dengan menukar program dua angka. Lihat program C di bawah ini yang ditulis menggunakan lingkungan Code Blocks.

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 tersebut ditukar. Saat mencetak nilai 'x' dan 'y' di dalam fungsi swap itu, output akan memberikan 30 untuk 'x' dan 20 untuk 'y'. Ketika eksekusi fungsi swap selesai, kontrol kembali ke fungsi utama. Saat mencetak nilai 'a' dan 'b', pada fungsi utama, hasilnya akan menjadi nilai asli. Mereka adalah 20 untuk 'a' dan 30 untuk 'b'. Perubahan yang dibuat menggunakan fungsi swap tidak tercermin dalam program utama.

Gambar 02: Output dari Program Swapping

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

Apa itu Call By Reference?

Dalam metode ini, alamat variabel dikirim ke fungsi. Lihat program C di bawah ini yang ditulis menggunakan lingkungan Code Blocks.

Gambar 03: Menukar dua Angka menggunakan Pointer

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

Gambar 04: Output dari Program Swapping menggunakan Pointer

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

Apa Kesamaan Antara Call By Value dan Call By Reference?

  • Kedua metode ini digunakan untuk memanggil fungsi / metode.

Apa Perbedaan Antara Call By Value dan Call By Reference?

Call By Value vs Call By Reference

Dalam panggilan berdasarkan nilai, salinan variabel dilewatkan ke fungsi sehingga perubahan yang dibuat di dalam fungsi, tidak akan mengubah nilai asli. Dalam panggilan dengan referensi, alamat variabel dilewatkan ke fungsi, jadi perubahan yang dibuat untuk variabel di dalam fungsi, akan mengubah nilai asli.
 Modifikasi Nilai
Dalam panggilan berdasarkan nilai, nilai asli tidak berubah. Dalam panggilan dengan referensi, nilai-nilai asli berubah.

Ringkasan - Panggilan dengan Nilai vs Panggilan dengan Referensi

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

Unduh Versi PDF dari Panggilan dengan Nilai vs Panggilan dengan Referensi

Anda dapat mengunduh versi PDF dari artikel ini dan menggunakannya untuk tujuan offline sesuai catatan kutipan. Silakan unduh versi PDF di sini Perbedaan Antara Panggilan dengan Nilai dan Panggilan dengan Referensi

Referensi:

1.Jaiswal, Haresh. "11 Panggilan dengan Nilai vs Panggilan dengan Referensi." Youtube, YouTube, 24 Desember 2015. Tersedia di sini