Array Multidimensi dalam C

Halo teman-teman, para programer masa depan! Hari ini, kita akan memulai perjalanan yang menarik ke dunia array multidimensi dalam C. Jangan khawatir jika Anda baru dalam programming - saya akan menjadi panduan yang ramah bagi Anda, dan kita akan menangani topik ini secara bertahap. Pada akhir tutorial ini, Anda akan menjadi ahli dalam menghandle struktur data kuat ini!

C - Multi-Dimensional Arrays

Array Multidimensi dalam C

mari mulai dari dasar. Bayangkan Anda memiliki banyak kotak, dan di dalam setiap kotak, Anda memiliki lebih banyak kotak lagi. Itu sebenarnya apa yang dimaksudkan oleh array multidimensi - suatu cara untuk mengorganisir data dalam beberapa tingkatan atau dimensi.

Dalam C, kita dapat membuat array dengan lebih dari satu dimensi. Jenis yang paling umum adalah 2D (dua dimensi) dan 3D (tiga dimensi) array, tapi secara teoritis, Anda bisa memiliki sebanyak dimensi yang Anda inginkan sesuai dengan memori komputer Anda!

Ini adalah cara sederhana untuk mendeklarasikan array 2D:

int matrix[3][4];

Ini akan membuat array 2D bernama matrix dengan 3 baris dan 4 kolom. Bayangkan ini seperti grid atau tabel dengan 3 baris dan 4 kolom.

Array Dua Dimensi dalam C

Ayo masuk lebih mendalam ke array 2D dengan contoh praktis. Bayangkan Anda membuat papan permainan sederhana untuk tic-tac-toe:

#include <stdio.h>

int main() {
char board[3][3] = {
{'_', '_', '_'},
{'_', '_', '_'},
{'_', '_', '_'}
};

// Cetak papan
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
printf("%c ", board[i][j]);
}
printf("\n");
}

return 0;
}

Dalam contoh ini, kita membuat papan 3x3 untuk tic-tac-toe. Setiap sel diinisialisasi dengan garis bawah '_' untuk mewakili ruang kosong. Kemudian kita gunakan loop bersarang untuk mencetak papan.

Loop luar for(int i = 0; i < 3; i++) mengulang setiap baris, sedangkan loop dalam for(int j = 0; j < 3; j++) mengulang setiap kolom di baris itu.

Array Tiga Dimensi dalam C

Sekarang, mari tingkatkan dan jelajahi array 3D. Bayangkan Anda mendesain dunia permainan 3D sederhana:

#include <stdio.h>

int main() {
int gameWorld[2][3][4] = {
{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}},
{{13, 14, 15, 16}, {17, 18, 19, 20}, {21, 22, 23, 24}}
};

// Cetak dunia permainan
for(int i = 0; i < 2; i++) {
printf("Level %d:\n", i+1);
for(int j = 0; j < 3; j++) {
for(int k = 0; k < 4; k++) {
printf("%2d ", gameWorld[i][j][k]);
}
printf("\n");
}
printf("\n");
}

return 0;
}

Di sini, kita membuat array 3D gameWorld dengan 2 level, setiap level memiliki 3 baris dan 4 kolom. Anda dapat membayangkan ini sebagai dua grid 2D yang ditumpuk satu di atas yang lain.

Kita gunakan tiga loop bersarang untuk mencetak dunia 3D ini. Loop paling luar mengulang setiap level, loop tengah mengulang setiap baris di level itu, dan loop dalam mengulang setiap kolom di baris itu.

Penjumlahan Baris Array Multidimensi

Sekarang, mari mencoba sesuatu yang lebih praktis. Kita akan menghitung jumlah setiap baris dalam array 2D:

#include <stdio.h>

int main() {
int grades[3][4] = {
{85, 92, 78, 88},
{91, 87, 93, 89},
{76, 82, 95, 90}
};

printf("Student  Math  Science  English  History  Total\n");
printf("----------------------------------------------\n");

for(int i = 0; i < 3; i++) {
int sum = 0;
printf("%7d", i+1);
for(int j = 0; j < 4; j++) {
printf("%8d", grades[i][j]);
sum += grades[i][j];
}
printf("%8d\n", sum);
}

return 0;
}

Dalam contoh ini, kita memiliki array 2D grades yang mewakili nilai 3 siswa dalam 4 mata pelajaran. Kita menghitung jumlah nilai untuk setiap siswa (baris) dan mencetaknya bersama dengan nilai individual.

Perkalian Matriks

Untuk aksi terakhir, mari melakukan perkalian matriks - operasi umum dalam banyak aplikasi ilmiah dan teknik:

#include <stdio.h>

int main() {
int matA[2][3] = {{1, 2, 3}, {4, 5, 6}};
int matB[3][2] = {{7, 8}, {9, 10}, {11, 12}};
int result[2][2] = {{0, 0}, {0, 0}};

// Melakukan perkalian matriks
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 2; j++) {
for(int k = 0; k < 3; k++) {
result[i][j] += matA[i][k] * matB[k][j];
}
}
}

// Cetak hasil
printf("Hasil perkalian matriks:\n");
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 2; j++) {
printf("%d ", result[i][j]);
}
printf("\n");
}

return 0;
}

Di sini, kita mengalikan dua matriks matA (2x3) dan matB (3x2) untuk mendapatkan matriks result (2x2). Tiga loop bersarang melakukan operasi perkalian: loop luar dan tengah mengulang setiap elemen matriks hasil, sedangkan loop dalam menghitung nilai untuk elemen itu.

Dan itu saja! Kita telah meliputi dasar-dasar array multidimensi dalam C, dari 2D ke 3D, dan bahkan menangani beberapa aplikasi praktis. Ingat, latihan membuat ahli, jadi jangan ragu untuk mencoba konsep ini sendiri. Selamat coding!

Credits: Image by storyset