Perkalian Matriks Dalam Bahasa C

Perkalian Matriks Dalam Bahasa C - Matriks merupakan sekumpulan informasi yang setiap individu elemennya  terdefinisi berdasarkan dua buah index. Matriks terdiri atas baris dan kolom. Pada kesempatan kali ini saya akan membahas mengenai perkalian matriks. Sebelumnya kita terlebih dahulu harus mengetahui konsep dari perkalian matriks. Perhatikan gambar dibawah ini.

Perkalian Matriks Dalam Bahasa C
image: idschool

Seperti konsep diatas bahwa di dalam mengalikan dua buah matriks harus sesuai dengan aturan. Seperti contoh diatas adalah perkalian matriks ordo 2 x 2.

Itulah sekilas mengenai konsep perkalian matriks. Di dalam bahasa C kita juga bisa membuat perkalian matriks, namun sebelumnya sobat sebaiknya memahami materi tentang perulangan for dan array 2D karena matriks sangat erat kaitannya dengan materi tersebut.

Silahkan baca:

Setelah sobat memahami perulangan for dan array mari kita lanjutkan ke pembahasan mengenai perkalian matriks dalam bahasa C.

Secara umum rumus di dalam perkalian matriks bahasa c adalah sebagai berikut.

C[i][j]=C[i][j]+A[i][k]*B[k][j];

Sekarang mari kita terapkan ke bahasa pemrograman, let's go.

Langkah pertama buat dulu deklerasi variabel yang di butuhkan seperti matriks A, matriks B, matriks C untuk proses perkaliannya, i,j,k untuk perulangan, brs,dan kol apabila ingin input ordo matriks secara dinamis.

// Deklerasi Variabel
    int A[50][50],B[50][50],C[50][50],i,j,k,brs,kol;

Untuk input baris dan kolom secara manual.

// input baris dan kolom
    printf("Masukkan baris: "); scanf("%d",&brs);
    printf("Masukkan kolom: "); scanf("%d",&kol);

Proses untuk penginputan dan mencetak matriks A.

// Input dan cetak matriks A
    printf("Masukkan elemen matriks A:\n");
    for(i=0; i<brs; i++){
        for(j=0; j<kol; j++){
            printf("A[%d,%d]: ",i,j); scanf("%d",&A[i][j]);
        }
    }
    printf("Cetaks Matriks A:\n");
    for(i=0; i<brs; i++){
        for(j=0; j<kol; j++){
            printf("%d\t",A[i][j]);
        }
        printf("\n");
    }

Untuk proses input dan cetak matriks B sama dengan matriks A cuma yang membedakannya adalah variabel inputannya.

// Input dan cetak matriks B
    printf("Masukkan elemen matriks B:\n");
    for(i=0; i<brs; i++){
        for(j=0; j<kol; j++){
            printf("B[%d,%d]: ",i,j); scanf("%d",&B[i][j]);
        }
    }
    printf("Cetaks Matriks B:\n");
    for(i=0; i<brs; i++){
        for(j=0; j<kol; j++){
            printf("%d\t",B[i][j]);
        }
        printf("\n");
    }

Selanjutnya adalah proses perkalian antara matriks A dan B menggunakan rumus diatas. Disini kita memerlukan tiga nested loop yaitu for pertama untuk i<brs, for kedua untuk j<kol, dan for ketiga untuk k<kol. Variabel k di dalam for ketiga berfungsi untuk memproses perkalian antara baris dan kolom secara berulang.

// Proses perkalian matriks A dan B
    for(i=0; i<brs; i++){
        for(j=0; j<kol; j++){
            C[i][j]=0;
            for(k=0; k<kol; k++){
                C[i][j]=C[i][j]+A[i][k]*B[k][j];
            }
        }
    }

Proses untuk menampilkan hasil perkalian matriks A dan B sama dengan proses menampilkan cetak matriks A dan B.

// Cetak hasil perkalian matriks A dan B
    printf("Hasil perkalian matirks A dan B:\n");
    for(i=0; i<brs; i++){
        for(j=0; j<kol; j++){
            printf("%d\t",C[i][j]);
        }
        printf("\n");
    }

Itulah struktur di dalam program bahasa C untuk menghitung perkalian matriks A dan B sehingga kalau program tersebut ditulis secara lengkapnya akan menjadi program seperti dibawah ini.

#include<stdio.h>
int main()
{
    int A[50][50],B[50][50],C[50][50],i,j,k,brs,kol;
    printf("Masukkan baris: "); scanf("%d",&brs);
    printf("Masukkan kolom: "); scanf("%d",&kol);
    printf("Masukkan elemen matriks A:\n");
    for(i=0; i<brs; i++){
        for(j=0; j<kol; j++){
            printf("A[%d,%d]: ",i,j); scanf("%d",&A[i][j]);
        }
    }
    printf("Cetaks Matriks A:\n");
    for(i=0; i<brs; i++){
        for(j=0; j<kol; j++){
            printf("%d\t",A[i][j]);
        }
        printf("\n");
    }
    printf("Masukkan elemen matriks B:\n");
    for(i=0; i<brs; i++){
        for(j=0; j<kol; j++){
            printf("B[%d,%d]: ",i,j); scanf("%d",&B[i][j]);
        }
    }
    printf("Cetaks Matriks B:\n");
    for(i=0; i<brs; i++){
        for(j=0; j<kol; j++){
            printf("%d\t",B[i][j]);
        }
        printf("\n");
    }
     for(i=0; i<brs; i++){
        for(j=0; j<kol; j++){
            C[i][j]=0;
            for(k=0; k<kol; k++){
                C[i][j]=C[i][j]+A[i][k]*B[k][j];
            }
        }
    }
    printf("Hasil perkalian matirks A dan B:\n");
    for(i=0; i<brs; i++){
        for(j=0; j<kol; j++){
            printf("%d\t",C[i][j]);
        }
        printf("\n");
    }
    return 0;
}

Output dari program diatas adalah:

Perkalian Matriks Dalam Bahasa C

Kode diatas dapat juga di modif sendiri dan membuat beberapa fungsi untuk setiap matriks dan prosesnya sehingga lebih mempermudah dalam memahaminya.

Cukup sekian pembahasan pada kesempatan kali ini, semoga dapat menambah pengetahuan dan bermanfaat, jangan lupa titik koma.

1 Komentar untuk "Perkalian Matriks Dalam Bahasa C"

Bila ada pertanyaan atau masukan, silahkan tinggalkan komentar agan, terima kasih.

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel