Algoritma dan Program Mengalikan Matriks

Algoritma:
deklarasi
 i, j, k; int

deskripsi
 for<-- i to baris do
  for<-- j to baris 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]   
   end for
  end for
 end for


Source code:
#include <iostream.h>
#include <conio.h>

void baca(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 kali(const int M1[10][10], const int M2[10][10], int baris, int kolom, int barkol, int hasil[10][10]){
 int i, j, k;
  for (i=0; i<baris; i++)
   for (j=0; j<kolom; j++){
    hasil[i][j]=0;
     for (k=0; k<barkol; k++)
      hasil[i][j]=hasil[i][j] +M1[i][k] *M2[k][j];}
}

void cetak(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;}
}

int main(){
 int a,b,c;
 int M1[10][10], M2[10][10];
 int hasil[10][10];

 cout<<"banyak baris matriks 1 : "; cin>>a;
 cout<<"banyak kolom matriks 2 : "; cin>>b;
 cout<<"banyak kolom matriks 1 atau baris matriks 2 : "; cin>>c;

 cout<<"\nMatriks pertama \n";
 baca(M1, a, c); cout<<endl;
 cetak(M1, a, c);

 cout<<"\nMatriks Kedua \n";
 baca(M2, c, b); cout<<endl;
 cetak(M2, c, b);

 kali(M1, M2, a, b, c, hasil);
 cout<<"\nHasil Perkalian \n";
 cetak(hasil , a, b);

 getch();
}

Penjelasannya:
inti dari program ini terletak di fungsi void kali.....
dan dalam hal mengalikan matriks ini teman-teman harus mengetahui syarat perkalian matriks terlebih dahulu. yaitu jumlah kolom mtriks pertama harus sama dengan jumlah baris matriks ke dua.Jadi dalam hal ini saya belum menggunakan fungsi if, tapi saya langsung menginputkan nya menjadi satu. Dapat teman liat sendiri di
" cout<<"banyak kolom matriks 1 atau baris matriks 2 : "; cin>>c; ".. Ok...

Posting Komentar

0 Komentar