own. Happy coding!# Matriks Berdimensi Beberapa di C

C - Multi-Dimensional Arrays

Hai teman-teman, para pemrogram masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia matriks berdimensi beberapa di C. Jangan khawatir jika Anda baru belajar programming – saya akan menjadi panduan ramah Anda, dan kita akan mengatasi topik ini secara berangsur-angsur. Pada akhir tutorial ini, Anda akan menjadi ahli dalam menghandle struktur data kuat ini!

Matriks Berdimensi Beberapa di C

mari mulai dari dasar-dasar. Bayangkan Anda memiliki sejumlah kotak, dan di dalam setiap kotak, Anda memiliki lebih banyak kotak lagi. Itu sebenarnya apa arti matriks berdimensi beberapa – cara untuk mengatur data dalam beberapa level atau dimensi.

Dalam C, kita dapat membuat array dengan lebih dari satu dimensi. Tipe yang paling umum adalah 2D (dua-dimensi) dan 3D (tiga-dimensi) array, tetapi secara teoritis, Anda dapat memiliki sebanyak dimensi yang diizinkan oleh 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 sebagai grid atau tabel dengan 3 baris dan 4 kolom.

Array 2D di C

Mari 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 dalam baris itu.

Array 3D di 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 menganggap ini sebagai dua grid 2D yang ditumpuk di atas satu sama lain.

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

Penjumlahan Baris dari Elemen Matriks Berdimensi Beberapa

Sekarang, mari mencoba sesuatu yang sedikit 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 final, mari melakukan perkalian matriks – operasi umum dalam banyak aplikasi saintifik 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 menutup dasar-dasar matriks berdimensi beberapa di C, dari 2D hingga 3D, dan bahkan menangani beberapa aplikasi praktis. Ingat, latihan membuat sempurna, jadi jangan ragu untuk mencoba konsep ini sendiri. Selamat coding!

Credits: Image by storyset