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.
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.
Untuk input baris dan kolom secara manual.
Proses untuk penginputan dan mencetak matriks A.
Untuk proses input dan cetak matriks B sama dengan matriks A cuma yang membedakannya adalah variabel inputannya.
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 untuk menampilkan hasil perkalian matriks A dan B sama dengan proses menampilkan cetak matriks A dan B.
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.
Output dari program diatas adalah:
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.
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;
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);
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");
}
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");
}
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];
}
}
}
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");
}
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;
}
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:
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.
you are welcome
BalasHapus