Cara Menggunakan Array 2 Dimensi dalam Bahasa C untuk Pemula

Layar komputer menampilkan kode array 2 dimensi dalam bahasa C

Array 2 dimensi dalam bahasa C menyimpan elemen dalam baris dan kolom, seperti tabel. Setiap elemen diakses dengan dua indeks: indeks baris dan indeks kolom. Contoh kode berikut menunjukkan cara mendeklarasikan, menginisialisasi, mengakses, dan memproses array 2 dimensi.

Deklarasi dan Inisialisasi Array 2 Dimensi

Deklarasi menentukan tipe data, nama variabel, serta ukuran baris dan kolom. Sintaksnya: tipe_data nama_array[baris][kolom];. Contoh: int matriks[3][4]; membuat array dengan 3 baris dan 4 kolom.

Nilai awal bisa diberikan saat deklarasi di dalam kurung kurawal, baik per baris maupun sekaligus. Contoh:

int matriks[2][3] = {{1, 2, 3}, {4, 5, 6}};

Elemen yang tidak diisi otomatis bernilai nol. Ukuran baris dan kolom harus berupa konstanta atau variabel yang nilainya diketahui saat kompilasi.

Mengakses Elemen Array 2 Dimensi

Setiap elemen diakses dengan dua indeks: matriks[baris][kolom]. Indeks dimulai dari 0. Contoh: matriks[0][1] mengakses elemen baris pertama kolom kedua (nilai 2 pada contoh di atas).

Nilai elemen bisa diubah dengan assignment: matriks[1][2] = 10;. Untuk menampilkan seluruh elemen, gunakan nested loop. Contoh:

for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 3; j++) {
        printf("%d ", matriks[i][j]);
    }
    printf("n");
}

Pastikan indeks tidak melebihi batas agar tidak terjadi perilaku tak terdefinisi. Gunakan loop dengan kondisi yang tepat.

Contoh Program: Menjumlahkan Dua Matriks

Array 2 dimensi sering dipakai untuk operasi matriks. Berikut program sederhana untuk menjumlahkan dua matriks berukuran 2×2:

#include <stdio.h>

int main() {
    int a[2][2] = {{1, 2}, {3, 4}};
    int b[2][2] = {{5, 6}, {7, 8}};
    int hasil[2][2];

    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 2; j++) {
            hasil[i][j] = a[i][j] + b[i][j];
        }
    }

    printf("Hasil penjumlahan matriks:n");
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 2; j++) {
            printf("%d ", hasil[i][j]);
        }
        printf("n");
    }
    return 0;
}

Program ini menjumlahkan elemen per elemen dengan nested loop lalu menampilkan hasilnya. Kamu bisa mengembangkan kode ini untuk perkalian matriks atau transpose.

Array 2 Dimensi dan Fungsi

Saat mengirim array 2 dimensi ke fungsi, tentukan ukuran kolom pada parameter. Contoh: void tampilkan(int arr[][3], int baris). Ukuran baris bisa menjadi parameter terpisah.

void tampilkan(int arr[][3], int baris) {
    for (int i = 0; i < baris; i++) {
        for (int j = 0; j < 3; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("n");
    }
}

Pemanggilan: tampilkan(matriks, 2);. Array decay menjadi pointer, sehingga ukuran kolom harus diketahui.

Penggunaan array 2 dimensi yang rapi memudahkan debugging. Baca juga tips praktis menulis kode C yang rapi untuk pemula agar kodemu lebih terorganisir.

Kesalahan Umum dan Tips

  • Lupa menginisialisasi array sebelum digunakan.
  • Mengakses indeks di luar batas (misal: baris 5 padahal hanya 3).
  • Salah urutan indeks (baris dan kolom tertukar).
  • Tidak mendeklarasikan ukuran kolom saat mengirim ke fungsi.
  • Menggunakan variabel non-konstan untuk ukuran array di C standar (C99 ke atas mendukung VLA, tapi hati-hati).

Gunakan #define untuk ukuran agar mudah diubah. Contoh: #define BARIS 3 dan #define KOLOM 4.

Jika kamu ingin memperdalam debugging saat bekerja dengan array, lihat dasar-dasar debugging di bahasa C.

Ringkasan

Array 2 dimensi menyimpan data tabular. Deklarasikan dengan ukuran baris dan kolom, inisialisasi dengan kurung kurawal, akses dengan dua indeks, dan gunakan nested loop untuk memproses. Saat mengirim ke fungsi, tentukan ukuran kolom. Periksa batas indeks untuk menghindari kesalahan umum.

Pertanyaan yang Sering Diajukan

Bagaimana cara mendeklarasikan array 2 dimensi dengan ukuran yang ditentukan pengguna?

Di C99 ke atas, kamu bisa menggunakan variabel length array (VLA), misalnya int baris = 3; int kolom = 4; int arr[baris][kolom];. Namun, VLA tidak didukung di semua compiler dan tidak bisa diinisialisasi saat deklarasi. Untuk portabilitas, gunakan ukuran konstan atau alokasi dinamis dengan malloc.

Apa perbedaan array 2 dimensi dan array of pointer?

Array 2 dimensi menyimpan elemen secara kontigu dalam memori, sedangkan array of pointer menyimpan pointer ke baris-baris yang terpisah. Array 2 dimensi lebih efisien untuk data tabel, tetapi ukuran kolom harus tetap. Array of pointer lebih fleksibel untuk baris dengan panjang berbeda.

Bisakah saya mengembalikan array 2 dimensi dari fungsi?

Tidak secara langsung. Kamu bisa mengembalikan pointer ke array, tetapi harus mengelola memori dengan hati-hati. Alternatifnya, gunakan parameter output atau alokasi dinamis. Untuk pemula, disarankan menggunakan array statis atau struktur.

Jika kamu tertarik mempelajari bahasa pemrograman lain seperti Ruby on Rails, ada tips cepat belajar Ruby on Rails untuk pemula yang bisa menjadi referensi. Dalam pengembangan antarmuka pengguna, penting juga memahami cara membuat empty state yang mengarahkan pengguna agar aplikasimu lebih ramah.

Untuk berita terbaru seputar teknologi dan pemrograman, kunjungi indowarta. Situs ini menyajikan informasi berdasarkan fakta dengan sumber penulis berpengalaman, sehingga kamu bisa mengikuti perkembangan dunia teknologi dengan lebih percaya diri.