Menyampaikan Array sebagai Argumen Fungsi dalam C

Hai teman, super bintang coding masa depan! ? Hari ini, kita akan mengemban perjalanan yang menarik melalui dunia array dan fungsi dalam C. Sebagai guru ilmu komputer yang ramah di lingkungan sekitar Anda, saya disini untuk mengarahkan Anda melalui petualangan ini secara langkah demi langkah. Jadi, ambil tas virtual Anda, dan mari kita masuk ke dalamnya!

C - Passing Arrays to Function

Memahami Array dan Fungsi

Sebelum kita melompat ke penyerahan 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 dengan jenis yang sama dalam variabel tunggal.

Apa Itu Fungsi?

Sebuah fungsi seperti halnya mini-program dalam program utama kita. Itu adalah set instruksi yang melakukan tugas tertentu. Pertimbangkan itu seperti kartu resep dalam buku resep – Anda bisa menggunakannya ketika Anda perlu melakukan tugas tertentu itu.

Sekarang kita telah mengetahui dasar-dasar, mari kita eksplor bagaimana kita dapat menggabungkan kedua konsep ini!

Menyampaikan Array sebagai Argumen Fungsi

Dalam C, kita dapat menyampaikan array ke fungsi dengan cara yang berbeda. Mari kita lihat masing-masing metode satu per satu.

1. Menyampaikan Array dengan Metode Call by Value

Dalam C, saat kita menyampaikan array ke fungsi, kita sebenarnya menyampaikan alamat elemen pertama array. Ini berarti bahwa setiap perubahan yang dilakukan pada 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 menyampaikan myArray ke fungsi printArray. Meskipun tampak seperti kita menyampaikan keseluruhan array, kita sebenarnya menyampaikan pointer ke elemen pertama.

Output:

Array asli: 1 2 3 4 5

2. Menyampaikan Array dengan Call by Reference

Dalam C, array selalu disampaikan dengan referensi. Ini berarti bahwa saat Anda menyampaikan array ke fungsi, Anda sebenarnya menyampaikan 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. Menyampaikan Array Dua Dimensi ke Fungsi

Sekarang, mari kita tingkatkan dan bicarakan tentang penyerahan array 2D ke fungsi. Itu seperti menyerahkan seluruh lembar kerja instead dari 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 menyampaikan array 2D ke fungsi print2DArray. Catatan 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

Akhirnya, mari kita lihat bagaimana kita dapat menyampaikan 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 menyampaikan 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 menyampaikan array ke fungsi. Ingat, latihan membuat sempurna, jadi jangan ragu untuk mencoba konsep ini dalam program Anda sendiri.

Berikut adalah tabel rujukan cepat dari metode yang kita pelajari:

Metode Deskripsi
Menyampaikan Array dengan Call by Value Menyampaikan alamat elemen pertama
Menyampaikan Array dengan Call by Reference Selalu menyampaikan referensi dalam C
Menyampaikan Array 2D Memerlukan menspesifikasikan dimensi di parameter fungsi
Menyampaikan Strings Dapat digunakan untuk memanipulasi atau membandingkan strings

Terus coding, terus belajar, dan yang paling penting, terus bersenang-senang! ??

Credits: Image by storyset