Mengirimkan Array sebagai Argumen Fungsi dalam C
Halo teman-teman, super bintang pemrograman masa depan! ? Hari ini, kita akan mengemban perjalanan menarik melalui dunia array dan fungsi dalam C. Sebagai guru ilmu komputer yang ramah di lingkungan sekitar Anda, saya di sini untuk mengarahkan Anda dalam petualangan ini langkah demi langkah. Jadi, siapkan tas virtual Anda, dan mari kita masuk ke dalam!
Memahami Array dan Fungsi
Sebelum kita melompat ke pengiriman array ke fungsi, mari kita segarkan ingatan tentang apa itu array dan fungsi.
Apa Itu Array?
Pertimbangkan array sebagai baris lemari di koridor sekolah. Setiap lemari (elemen) memiliki nomor (indeks) dan dapat menyimpan sesuatu di dalamnya. Dalam C, kita menggunakan array untuk menyimpan banyak item yang sama jenis dalam variabel tunggal.
Apa Itu Fungsi?
Fungsi seperti mini-program dalam program utama kita. Itu adalah set instruksi yang melakukan tugas tertentu. Pertimbangkan itu seperti kartu resep dalam buku masak – Anda dapat menggunakannya jika Anda perlu melakukan tugas tersebut.
Sekarang kita telah mengetahui dasar-dasar, mari kita jelajahi bagaimana kita dapat menggabungkan dua konsep ini!
Mengirimkan Array sebagai Argumen Fungsi
Dalam C, kita dapat mengirimkan array ke fungsi dalam berbagai cara. Mari kita lihat masing-masing metode satu per satu.
1. Mengirimkan Array dengan Metode Call by Value
Dalam C, saat kita mengirimkan array ke fungsi, kita sebenarnya mengirimkan alamat elemen pertama array. Ini berarti bahwa setiap perubahan yang dibuat ke array di dalam fungsi akan mempengaruhi array asli.
Mari kita lihat contoh:
#include <stdio.h>
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int myArray[] = {1, 2, 3, 4, 5};
int size = sizeof(myArray) / sizeof(myArray[0]);
printf("Array asli: ");
printArray(myArray, size);
return 0;
}
Dalam contoh ini, kita mengirimkan myArray
ke fungsi printArray
. Meskipun tampak seperti kita mengirimkan seluruh array, kita sebenarnya mengirimkan pointer ke elemen pertama.
Output:
Array asli: 1 2 3 4 5
2. Mengirimkan Array dengan Call by Reference
Dalam C, array selalu dikirimkan dengan referensi. Ini berarti bahwa saat Anda mengirimkan array ke fungsi, Anda sebenarnya mengirimkan pointer ke elemen pertama array.
Mari kita lihat contoh di mana kita memodifikasi array di dalam fungsi:
#include <stdio.h>
void doubleElements(int arr[], int size) {
for (int i = 0; i < size; i++) {
arr[i] *= 2;
}
}
int main() {
int myArray[] = {1, 2, 3, 4, 5};
int size = sizeof(myArray) / sizeof(myArray[0]);
printf("Array asli: ");
for (int i = 0; i < size; i++) {
printf("%d ", myArray[i]);
}
printf("\n");
doubleElements(myArray, size);
printf("Array yang dimodifikasi: ");
for (int i = 0; i < size; i++) {
printf("%d ", myArray[i]);
}
printf("\n");
return 0;
}
Dalam contoh ini, fungsi doubleElements
memodifikasi array asli dengan menggandakan setiap elemen.
Output:
Array asli: 1 2 3 4 5
Array yang dimodifikasi: 2 4 6 8 10
3. Mengirimkan Array 2D ke Fungsi
Sekarang, mari kita naik tingkat dan bicara tentang pengiriman array 2D ke fungsi. Itu seperti menyerahkan seluruh lembar kerja bukannya hanya satu baris!
Ini contohnya:
#include <stdio.h>
void print2DArray(int rows, int cols, int arr[rows][cols]) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
int main() {
int myArray[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
printf("Array 2D saya:\n");
print2DArray(3, 3, myArray);
return 0;
}
Dalam contoh ini, kita mengirimkan array 2D ke fungsi print2DArray
. Perhatikan bagaimana kita menspesifikasikan dimensi di parameter fungsi.
Output:
Array 2D saya:
1 2 3
4 5 6
7 8 9
4. Fungsi untuk Membandingkan Panjang String
Terakhir tapi bukan paling kurang, mari kita lihat bagaimana kita dapat mengirimkan string (yang secara esensial adalah array karakter) ke fungsi. Kita akan membuat fungsi yang membandingkan panjang dua string.
#include <stdio.h>
#include <string.h>
int compareStringLengths(char str1[], char str2[]) {
int len1 = strlen(str1);
int len2 = strlen(str2);
if (len1 > len2) return 1;
if (len1 < len2) return -1;
return 0;
}
int main() {
char string1[] = "Hello";
char string2[] = "World!";
int result = compareStringLengths(string1, string2);
if (result > 0) {
printf("%s lebih panjang daripada %s\n", string1, string2);
} else if (result < 0) {
printf("%s lebih panjang daripada %s\n", string2, string1);
} else {
printf("%s dan %s memiliki panjang yang sama\n", string1, string2);
}
return 0;
}
Dalam contoh ini, kita mengirimkan dua string ke fungsi compareStringLengths
, yang mengembalikan 1 jika string pertama lebih panjang, -1 jika string kedua lebih panjang, dan 0 jika mereka memiliki panjang yang sama.
Output:
World! lebih panjang daripada Hello
Kesimpulan
Selamat! Anda telah meningkatkan keterampilan pemrograman C Anda dengan belajar bagaimana mengirimkan array ke fungsi. Ingat, latihan membuat sempurna, jadi jangan ragu untuk mencoba konsep ini dalam program Anda sendiri.
Berikut adalah tabel referensi cepat dari metode yang kita pelajari:
Metode | Deskripsi |
---|---|
Mengirimkan Array dengan Call by Value | Mengirimkan alamat elemen pertama |
Mengirimkan Array dengan Call by Reference | Selalu dikirimkan dengan referensi dalam C |
Mengirimkan Array 2D | Memerlukan menspesifikasikan dimensi di parameter fungsi |
Mengirimkan Strings | Dapat digunakan untuk memanipulasi atau membandingkan strings |
Tetap coding, tetap belajar, dan terutama, tetap bersenang-senang! ??
Credits: Image by storyset