Menu
CoddyTech

Meneruskan Array ke Fungsi

Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 29 dari 63.

Saat kamu meneruskan array ke fungsi di C, sesuatu yang menarik terjadi di balik layar. Array itu sendiri sebenarnya tidak disalin ke fungsi. Sebaliknya, yang diteruskan adalah pointer ke elemen pertama dari array.

Artinya, saat kamu menulis parameter fungsi seperti int arr[] atau int *arr, keduanya setara, karena keduanya merepresentasikan pointer ke elemen pertama array. Fungsi menerima alamat memori tempat array dimulai, sehingga fungsi memiliki akses langsung ke data array asli.

void printArray(int arr[], int size) {
    // arr sebenarnya adalah pointer ke elemen pertama
    // Fungsi ini dapat mengakses dan mengubah array asli
}

Karena fungsi bekerja dengan lokasi memori array asli, bukan salinannya, setiap perubahan yang dibuat di dalam fungsi akan memengaruhi array asli. Ini berbeda dari mengirimkan variabel satu per satu, yang akan membuat salinan.

Kamu juga akan melihat bahwa kamu perlu memberikan ukuran array sebagai parameter terpisah karena fungsi tidak dapat menentukan panjang array hanya dari pointer.

challenge icon

Tantangan

Mudah

Tulis program C yang menunjukkan cara meneruskan array ke fungsi dengan membuat fungsi yang memproses data suhu. Programmu harus:

  1. Membuat fungsi bernama analyzeTemperatures yang menerima array integer dan ukurannya sebagai parameter
  2. Di dalam fungsi analyzeTemperatures, menghitung dan mencetak suhu rata-rata dengan tepat 1 angka desimal dalam format: Average temperature: [value]
  3. Di dalam fungsi analyzeTemperatures, mencari dan mencetak suhu tertinggi dalam format: Highest temperature: [value]
  4. Di dalam fungsi analyzeTemperatures, menghitung jumlah suhu yang lebih dari 25 derajat dan mencetak jumlahnya dalam format: Days above 25 degrees: [count]
  5. Di dalam fungsi main, membaca integer n yang menunjukkan jumlah pembacaan suhu
  6. Membaca n nilai suhu dan menyimpannya dalam array integer
  7. Memanggil fungsi analyzeTemperatures, dengan meneruskan array dan ukurannya

Programmu harus memproses data suhu dan menampilkan hasil analisis. Misalnya, jika inputnya adalah:

5
20 28 15 32 26

Outputmu harus:

Average temperature: 24.2
Highest temperature: 32
Days above 25 degrees: 3

Tantangan ini menunjukkan cara array diteruskan ke fungsi sebagai pointer ke elemen pertamanya, sehingga fungsi dapat mengakses dan memproses semua elemen dari array asli tanpa membuat salinan.

Coba sendiri

#include <stdio.h>

// TODO: Buat fungsi analyzeTemperatures di sini

int main() {
    // Baca jumlah pembacaan suhu
    int n;
    scanf("%d", &n);
    
    // Deklarasikan array untuk menyimpan suhu
    int temperatures[n];
    
    // Baca nilai suhu
    for (int i = 0; i < n; i++) {
        scanf("%d", &temperatures[i]);
    }
    
    // TODO: Panggil fungsi analyzeTemperatures di sini
    
    return 0;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C online