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.
Tantangan
MudahBuat 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
value1yang mewakili angka pertama - Sebuah bilangan bulat
value2yang mewakili angka kedua - Sebuah bilangan bulat
value3yang mewakili angka ketiga
Programmu harus:
- Membuat fungsi bernama
tripleValuesyang menerima tiga parameter bilangan bulat secara referensi - Di dalam fungsi, kalikan setiap parameter dengan 3
- Di fungsi main, baca ketiga nilai input dan simpan ke dalam variabel
- Cetak nilai asli sebelum memanggil fungsi
- Panggil fungsi
tripleValuesdengan ketiga variabel tersebut - 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;
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Pointer dan Memori
Apa Itu Pointer?Operator Address-OfOperator DereferencePointer NullPointer dan ArrayMemori Dinamis dengan 'new'Membebaskan Memori dengan 'delete'Rangkuman: Latihan Pointer2Vektor (array Dinamis)
Memperkenalkan std::vectorMembuat VektorMenambahkan ElemenMengakses ElemenUkuran VektorIterasi dengan for loopFor loop Berbasis RentangMenghapus ElemenRangkuman: Operasi VektorLatihan sendiri: Compiler C++ online