sinau-c/content/arrays.md

5.9 KiB

---LESSON_INFO--- Learning Objectives:

  • Memahami konsep array dalam bahasa C
  • Belajar mendeklarasikan dan menginisialisasi array
  • Mengenal cara mengakses elemen array
  • Memahami indeks array dimulai dari nol
  • Mengenal cara menghitung ukuran array
  • Mengenal penggunaan loop untuk mengakses elemen array

Prerequisites:

  • Pemahaman tentang variabel dan tipe data
  • Pemahaman dasar tentang program C

---END_LESSON_INFO---

Array dalam C

Array adalah variabel khusus yang bisa menyimpan lebih dari satu nilai di bawah nama variabel yang sama, diatur dengan indeks. Array sangat berguna ketika Anda perlu menyimpan banyak data dari tipe yang sama.

Mendeklarasikan Array

Untuk mendeklarasikan array dalam C, Anda harus menentukan tipe data dari elemen-elemen array dan jumlah elemen (ukuran) array:

// Sintaks: tipe_data nama_array[ukuran];
int myNumbers[5];

Menginisialisasi Array

Anda bisa menginisialisasi array saat deklarasi atau setelahnya:

Saat deklarasi:

int myNumbers[5] = {10, 20, 30, 40, 50};

Setelah deklarasi:

int myNumbers[5];
myNumbers[0] = 10;
myNumbers[1] = 20;
myNumbers[2] = 30;
myNumbers[3] = 40;
myNumbers[4] = 50;

Mengakses Elemen Array

Array dalam C dimulai dari indeks 0, bukan 1. Jadi, array dengan 5 elemen memiliki indeks dari 0 hingga 4:

int myNumbers[5] = {10, 20, 30, 40, 50};

printf("%d", myNumbers[0]);  // Output: 10
printf("%d", myNumbers[1]);  // Output: 20
printf("%d", myNumbers[4]);  // Output: 50

Mengubah Elemen Array

Anda bisa mengubah nilai elemen array dengan menetapkan nilai baru ke indeks tertentu:

int myNumbers[5] = {10, 20, 30, 40, 50};

myNumbers[0] = 25;  // Mengubah elemen pertama menjadi 25

printf("%d", myNumbers[0]);  // Output: 25

Menghitung Ukuran Array

Anda bisa menggunakan operator sizeof() untuk mengetahui jumlah elemen dalam array:

int myNumbers[5] = {10, 20, 30, 40, 50};

int arraySize = sizeof(myNumbers) / sizeof(myNumbers[0]);

printf("Jumlah elemen dalam array: %d", arraySize);  // Output: 5

Menggunakan Loop dengan Array

Anda bisa menggunakan perulangan untuk mengakses atau mengisi elemen array secara efisien:

Mengisi array dengan loop:

int myNumbers[5];

for (int i = 0; i < 5; i++) {
    myNumbers[i] = i * 10;
}

Mencetak semua elemen array:

int myNumbers[5] = {10, 20, 30, 40, 50};

for (int i = 0; i < 5; i++) {
    printf("%d\\n", myNumbers[i]);
}

Output:

10
20
30
40
50

Contoh Nyata Penggunaan Array

Berikut adalah contoh penggunaan array dalam situasi nyata:

#include <stdio.h>

int main() {
    // Menyimpan nilai ujian dari 5 siswa
    int scores[5] = {85, 92, 78, 96, 88};
    int total = 0;
    int arraySize = sizeof(scores) / sizeof(scores[0]);
    
    printf("Nilai ujian siswa:\\n");
    for (int i = 0; i < arraySize; i++) {
        printf("Siswa %d: %d\\n", i+1, scores[i]);
        total += scores[i];
    }
    
    float average = (float)total / arraySize;
    printf("\\nTotal nilai: %d\\n", total);
    printf("Rata-rata nilai: %.2f\\n", average);
    
    return 0;
}

Output:

Nilai ujian siswa:
Siswa 1: 85
Siswa 2: 92
Siswa 3: 78
Siswa 4: 96
Siswa 5: 88

Total nilai: 439
Rata-rata nilai: 87.80

Array dengan Tipe Data Lain

Array bisa digunakan dengan berbagai tipe data:

// Array float
float prices[3] = {19.99, 25.50, 9.75};

// Array char
char vowels[5] = {'a', 'e', 'i', 'o', 'u'};

// Array double
double measurements[4] = {3.14, 2.71, 1.41, 1.73};

Tips:

  • Pastikan untuk tidak mengakses indeks di luar batas array (buffer overflow)
  • Gunakan sizeof() untuk menghitung jumlah elemen array secara dinamis
  • Gunakan loop untuk mengakses elemen array secara efisien
  • Ingat bahwa indeks array dimulai dari 0, bukan 1

Referensi:

---EXERCISE---

Latihan: Rata-rata Nilai Siswa

Dalam latihan ini, Anda akan menghitung rata-rata nilai dari array nilai siswa menggunakan loop.

Requirements:

  • Gunakan loop untuk menghitung total nilai
  • Hitung rata-rata dari nilai-nilai tersebut
  • Gunakan sizeof() untuk menentukan jumlah elemen array
  • Tampilkan rata-rata dengan dua angka di belakang koma

Expected Output:

Total nilai: 420
Jumlah siswa: 5
Rata-rata nilai: 84.00

Try writing your solution in the code editor below!

---EXPECTED_OUTPUT--- Total nilai: 420 Jumlah siswa: 5 Rata-rata nilai: 84.00 ---END_EXPECTED_OUTPUT---

---INITIAL_CODE--- #include <stdio.h>

int main() { int scores[] = {80, 85, 88, 82, 85};

// TODO: Hitung total nilai menggunakan loop
int total = 0;

// TODO: Hitung jumlah elemen dalam array menggunakan sizeof()
int count = 0;

// TODO: Hitung rata-rata
float average = 0.0;

printf("Total nilai: %d\\n", total);
printf("Jumlah siswa: %d\\n", count);
printf("Rata-rata nilai: %.2f\\n", average);

return 0;

} ---END_INITIAL_CODE---

---SOLUTION_CODE--- #include <stdio.h>

int main() { int scores[] = {80, 85, 88, 82, 85};

// Hitung total nilai menggunakan loop
int total = 0;
int count = sizeof(scores) / sizeof(scores[0]);

for (int i = 0; i < count; i++) {
    total += scores[i];
}

// Hitung rata-rata
float average = (float)total / count;

printf("Total nilai: %d\\n", total);
printf("Jumlah siswa: %d\\n", count);
printf("Rata-rata nilai: %.2f\\n", average);

return 0;

} ---END_SOLUTION_CODE---