menu
Minggu, 22 Mei 2016
Algoritma dan program perkalian matriks array 2 dimensi
1. Masalah
perkalian matriks
2. percobaan data
3. Analisis
Syarat dua matriks dapat dikalikan adalah ukuran kolom matriks pertama haruslah sama
dengan ukuran baris matriks kedua.
Cara kerja perkalian dua matriks dapat diambarkan sebagai
berikut. Misal matiks A berukuran 2 x 3 dan matriks B berukuran 3 x 1 dan akan menghasilkan
matriks C berukuran 1 x 2. Misalkan pula Am x p dan Bp x n, maka m = 2, p = 3, dan n = 1.
dari dua baris persamaan tersebut kita dapat menemukan suatu pola, yaitu untuk memperoleh
elemen c[i,j] maka suku perkalian dari elemen a dengan baris i dan b dengan kolom j.
Sedangkan
kolom elemen a dan baris elemen b ternyata mempunyai perulangan tersendiri, yaitu k, dengan k
4. Algoritma
procedure kali_matriks(input matriks1,matriks2 : matriks; baris, kolom, barkol : integer;
output mat_kali : matriks)
Deklarasi
i,j,k : integer
Deskripsi
for i <- 1 to baris do
for j <- 1 to kolom do
mat_kali[i,j] <-0;
for k <- 1 to barkol do
mat_kali[i,j] <-mat_kali[i,j] + matriks1[i,k] * matriks2[k,j]
endfor
endfor
endfor
5. program
#include <iostream>
using namespace std;
void baca_matriks (int mat[10][10], int baris, int kolom)
{ int i,j;
for (i=0; i<baris; i++)
for (j=0; j<kolom; j++)
{ cout << "Data [" << i+1 << "," << j+1 << "] : ";
cin >> mat[i][j];
}
}
void proses( int x[10][10],const int matriks1[10][10],const int matriks2[10][10], int baris, int kolom){
for(int i=0;i<baris;i++)
for(int j=0;j<kolom;j++)
{
x[i][j]=0;
for(int k=0;k<kolom;k++)
x[i][j]=x[i][j]+matriks1[i][k]*matriks2[k][j];
}
}
void cetak_matriks (const int A[10][10], int baris, int kolom)
{ int i,j;
for (i=0; i<baris; i++)
{ for (j=0; j<kolom; j++)
cout << A[i][j]<<" ";
cout << endl;
}
}
main() {
int m, n;
int matriks1[10][10], matriks2[10][10];
int x[10][10];
cout << "Banyak baris : ";
cin >> m;
cout << "Banyak kolom : ";
cin >> n;
cout << "Data matriks ke-1\n";
baca_matriks(matriks1,m,n);
cetak_matriks(matriks1,m,n);
cout << "Data matriks ke-2\n";
baca_matriks(matriks2,m,n);
cetak_matriks(matriks2,m,n);
proses(x,matriks1,matriks2,m,n);
cout << "Hasil Perkalian : \n";
cetak_matriks(x,m,n);
}
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar