Menu
CoddyTech

Pass by Reference

Termasuk bagian Logika dan Alur dalam perjalanan C++ di Coddy. Pelajaran 41 dari 56.

Saat kamu meneruskan argumen ke fungsi, C++ biasanya membuat salinan nilainya. Artinya, perubahan di dalam fungsi tidak memengaruhi variabel asli. Pass by reference mengubah perilaku ini dengan memungkinkan fungsi bekerja langsung dengan variabel asli.

Untuk meneruskan dengan referensi, tambahkan simbol & setelah tipe parameter dalam deklarasi fungsi:

void doubleValue(int& number) {
    number = number * 2;  // Mengubah variabel asli
}

Saat kamu memanggil fungsi ini, setiap perubahan pada parameter di dalam fungsi akan langsung mengubah variabel asli yang diteruskan. Hal ini sangat berguna saat kamu ingin fungsi mengubah argumennya atau saat bekerja dengan object besar yang tidak efisien jika disalin.

Pass by reference menghilangkan overhead penyalinan data, sehingga programmu berjalan lebih cepat dan menggunakan memori dengan lebih efisien, terutama saat menggunakan struktur data kompleks seperti vector atau map.

challenge icon

Tantangan

Mudah

Buat fungsi yang menunjukkan pass by reference dengan mengubah variabel secara langsung melalui parameter fungsi. Tantangan ini akan menguji pemahamanmu tentang cara simbol & memungkinkan fungsi bekerja dengan variabel asli, bukan salinannya.

Input berikut akan diberikan:

  • Sebuah bilangan bulat value1 yang mewakili angka pertama
  • Sebuah bilangan bulat value2 yang mewakili angka kedua
  • Sebuah bilangan bulat value3 yang mewakili angka ketiga

Programmu harus:

  1. Membuat fungsi bernama tripleValues yang menerima tiga parameter bilangan bulat secara referensi
  2. Di dalam fungsi, kalikan setiap parameter dengan 3
  3. Di fungsi main, baca ketiga nilai input dan simpan ke dalam variabel
  4. Cetak nilai asli sebelum memanggil fungsi
  5. Panggil fungsi tripleValues dengan ketiga variabel tersebut
  6. Cetak nilai yang telah diubah setelah pemanggilan fungsi untuk menunjukkan bahwa nilainya berubah

Gunakan format output persis seperti berikut:

Sebelum pemanggilan fungsi:

Original values: [value1] [value2] [value3]

Setelah pemanggilan fungsi:

Tripled values: [new_value1] [new_value2] [new_value3]

Signature fungsi harus menggunakan simbol & setelah setiap tipe parameter untuk menunjukkan pass by reference: void tripleValues(int& a, int& b, int& c). Dengan begitu, fungsi dapat langsung mengubah variabel asli yang diberikan kepadanya, sehingga menunjukkan perbedaan utama antara pass by value dan pass by reference. Variabel di main akan berubah secara permanen setelah pemanggilan fungsi, membuktikan bahwa fungsi bekerja dengan lokasi memori asli, bukan salinannya.

Coba sendiri

#include <iostream>
using namespace std;

// TODO: Buat fungsi tripleValues di sini

int main() {
    // Baca nilai input
    int value1, value2, value3;
    cin >> value1 >> value2 >> value3;
    
    // Cetak nilai awal
    cout << "Original values: " << value1 << " " << value2 << " " << value3 << endl;
    
    // TODO: Panggil fungsi tripleValues di sini
    
    // Cetak nilai yang telah diubah
    cout << "Tripled values: " << value1 << " " << value2 << " " << value3 << endl;
    
    return 0;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C++ online