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!
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