C++ Array Parameter: Menguasai Cara Mengirim dan Menerima Array sebagai Parameter Fungsi
Dalam pemrograman C++, array merupakan struktur data yang vital. Seringkali, kita perlu mengirim atau menerima array sebagai parameter dalam sebuah fungsi. Pemahaman mengenai cara kerja array parameter sangatlah penting untuk membangun program yang efisien dan terstruktur.
1. Mengapa Menggunakan Array Parameter?
- Modularitas: Memisahkan tugas-tugas kompleks ke dalam fungsi-fungsi yang lebih kecil.
- Reusability: Fungsi dengan array parameter dapat digunakan kembali untuk berbagai jenis data.
- Efisiensi: Meminimalisasi duplikasi kode dengan menggunakan fungsi yang sama untuk mengolah array.
2. Cara Mengirim Array sebagai Parameter Fungsi
C++ tidak mendukung pengiriman array secara langsung sebagai parameter. Sebagai gantinya, kita menggunakan pointer untuk merepresentasikan alamat awal array.
Sintaks:
void fungsi(int arr[], int ukuran);
arr[]
: Parameter array yang akan diterima oleh fungsi.ukuran
: Parameter integer yang mendefinisikan ukuran array.
Contoh:
#include
void cetakArray(int arr[], int ukuran) {
for (int i = 0; i < ukuran; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
}
int main() {
int angka[] = {1, 2, 3, 4, 5};
int ukuran = sizeof(angka) / sizeof(angka[0]);
cetakArray(angka, ukuran);
return 0;
}
Penjelasan:
- Fungsi
cetakArray
menerima arrayarr
dan ukurannya. - Dalam
main()
, arrayangka
dikirim sebagai parameter. - Fungsi
cetakArray
mencetak isi array.
3. Modifikasi Array di Dalam Fungsi
Penting untuk diingat bahwa modifikasi array di dalam fungsi akan mempengaruhi array asli. Hal ini karena pointer menunjuk ke alamat memori yang sama.
Contoh:
#include
void tambahSatu(int arr[], int ukuran) {
for (int i = 0; i < ukuran; i++) {
arr[i]++;
}
}
int main() {
int angka[] = {1, 2, 3, 4, 5};
int ukuran = sizeof(angka) / sizeof(angka[0]);
tambahSatu(angka, ukuran);
for (int i = 0; i < ukuran; i++) {
std::cout << angka[i] << " ";
}
std::cout << std::endl;
return 0;
}
Penjelasan:
- Fungsi
tambahSatu
menambahkan 1 ke setiap elemen array. - Array
angka
dimain()
dimodifikasi secara langsung.
4. Menggunakan Array Parameter dengan Fungsi sizeof
sizeof
tidak bisa digunakan secara langsung untuk mendapatkan ukuran array yang dikirim sebagai parameter. Hal ini karena parameter array sebenarnya adalah pointer, bukan array.
Contoh:
#include
void fungsi(int arr[], int ukuran) {
// sizeof(arr) akan mengembalikan ukuran pointer, bukan array.
std::cout << "Ukuran array: " << ukuran << std::endl;
}
int main() {
int angka[] = {1, 2, 3, 4, 5};
int ukuran = sizeof(angka) / sizeof(angka[0]);
fungsi(angka, ukuran);
return 0;
}
5. Mengirim Array sebagai Parameter Konstan
Untuk mencegah modifikasi array di dalam fungsi, kita dapat menggunakan konstanta pada parameter.
Sintaks:
void fungsi(const int arr[], int ukuran);
Contoh:
#include
void cetakArray(const int arr[], int ukuran) {
for (int i = 0; i < ukuran; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
}
int main() {
int angka[] = {1, 2, 3, 4, 5};
int ukuran = sizeof(angka) / sizeof(angka[0]);
cetakArray(angka, ukuran);
return 0;
}
Penjelasan:
- Fungsi
cetakArray
tidak dapat memodifikasi arrayarr
karenaconst
pada parameter.
6. Menggunakan Referensi
Alternatif lain untuk mengirimkan array sebagai parameter adalah menggunakan referensi. Referensi memungkinkan fungsi untuk mengakses dan memodifikasi array asli tanpa menyalinnya.
Sintaks:
void fungsi(int& arr[], int ukuran);
Contoh:
#include
void tambahSatu(int& arr[], int ukuran) {
for (int i = 0; i < ukuran; i++) {
arr[i]++;
}
}
int main() {
int angka[] = {1, 2, 3, 4, 5};
int ukuran = sizeof(angka) / sizeof(angka[0]);
tambahSatu(angka, ukuran);
for (int i = 0; i < ukuran; i++) {
std::cout << angka[i] << " ";
}
std::cout << std::endl;
return 0;
}
Penjelasan:
- Fungsi
tambahSatu
menerima referensi ke arrayarr
. - Modifikasi pada
arr
di dalam fungsi akan mempengaruhi array asli.
7. Kesimpulan
Memahami cara mengirim dan menerima array sebagai parameter fungsi adalah keterampilan penting dalam pemrograman C++. Dengan menggunakan pointer, konstanta, dan referensi, Anda dapat mengelola array secara efisien dan terstruktur dalam program Anda.