Jumat, Juni 17, 2011

Contoh Program Perkalian Matriks C++

 

Setelah sebelumnya saya memposting mengenai penjumlahan matriks C++, maka kali ini saya akan memposting mengenai perkalian matriks C++.
Banyak program perkalian C++ yang diposting hanya bisa mengalikan dua buah matriks matriks 2x2 atau matriks 3x3 saja. Lain daripada yang lain, program matriks yang saya buat ini bisa menghitung perkalian matriks berapapun asal tidak lebih dari ordo 5x5.
Sebenarnya mudah saja membuatnya sampai perkalian matriks berordo 100x100, tapi akan sangat sulit menampilkan outputnya.


Baiklah, agar mempersingkat waktu, langsung saja saya berikan syntax perkalian matriks C++ ini. Selamat menikmati.


 #include <iostream.h>
 #include <conio.h>
 #include <stdio.h>

 #define ValueMax 25

 typedef float matriks[ValueMax][ValueMax];

 void main()
 {

 int colA,colB,rowA,rowB,i,j;
 matriks A,B,C;
 int answer;

 do
 {
  clrscr();
  cout<<"\aAnda Memilih Menu Perkalian Matriks\n\n\n";
  cout<<"MATRIKS A : "<<endl<<endl;
  cout<<"Masukkan Jumlah Baris Matriks A : ";
  cin>>rowA;
  cout<<"Masukkan Jumlah Kolom Matriks A : ";
  cin>>colA;
  cout<<endl<<endl;
  cout<<"MATRIKS B : "<<endl<<endl;
  cout<<"Masukkan Jumlah Baris Matriks B : ";
  cin>>rowB;
  cout<<"Masukkan Jumlah Kolom Matriks B : ";
  cin>>colB;
 }
 while (colA!=rowB);

 clrscr();
 cout<<"Masukkan Nilai Matriks A : "<<endl;
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colA;j++)
  {
   cout<<"A["<<i<<","<<j<<"] = ";
   cin>>A[i][j];
  }
 }

 cout<<endl<<endl;
 cout<<"Masukkan Nilai Matriks B : "<<endl;
 for(i=1;i<=rowB;i++)
 {
  for(j=1;j<=colB;j++)
  {
   cout<<"B["<<i<<","<<j<<"] = ";
   cin>>B[i][j];
  }
 }

 clrscr();
 cout<<endl;
 //Proses Perkalian Matriks
 if(colA == 1)
 {
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colB;j++)
  {
    C[i][j] = (A[i][1] * B[1][j]);
  }
 }
 }

 if(colA == 2)
 {
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colB;j++)
  {
    C[i][j] = (A[i][1] * B[1][j] + A[i][2] * B[2][j]);
  }
 }
 }

 if(colA == 3)
 {
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colB;j++)
  {
    C[i][j] = (A[i][1] * B[1][j] + A[i][2] * B[2][j] + A[i][3] * B[3][j]);
  }
 }
 }

 if(colA == 4)
 {
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colB;j++)
  {
    C[i][j] = (A[i][1]*B[1][j] + A[i][2]*B[2][j] + A[i][3]*B[3][j] + A[i][4]*B[4][j]);
  }
 }
 }

 if(colA == 5)
 {
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colB;j++)
  {
    C[i][j] = (A[i][1]*B[1][j] + A[i][2]*B[2][j] + A[i][3]*B[3][j] + A[i][4]*B[4][j] + A[i][5]*B[5][j]);
  }
 }
 }

 clrscr();
 //Output Matriks A
 gotoxy(1,5);
 cout<<"A = ";
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colA;j++)
  {
   gotoxy(2+4*j,2+2*i);
   cout<<A[i][j];
  }
 }

 //Output Matriks B
 gotoxy(1,17);
 cout<<"B = ";
 for(i=1;i<=rowB;i++)
 {
  for(j=1;j<=colB;j++)
  {
   gotoxy(2+4*j,14+2*i);
   cout<<B[i][j];
  }
 }

 //Output Matriks C
 gotoxy(1,30);
 cout<<"C = ";
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colA;j++)
  {
   gotoxy(3+4*j,27+2*i);
   cout<<A[i][j];
  }
 }

 gotoxy(25,30);
 cout<<" X ";
 for(i=1;i<=rowB;i++)
 {
  for(j=1;j<=colB;j++)
  {
   gotoxy(26+4*j,27+2*i);
   cout<<B[i][j];
  }
 }

 gotoxy(43,30);
 cout<<" = ";
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colB;j++)
  {
   gotoxy(45+4*j,27+2*i);
   cout<<C[i][j];
  }
 }

 getch();
}



Oke, itu dia syntax nya. Kalau ada yang gag ngerti dengan syntax itu, bisa tanya sama saya. Silahkan tulis di kotak dibawah jika ingin bertanya.
Semoga berguna untuk kalian semua. Tetap kunjungi IT Programmer untuk berita, info, tips, dan syntax yang menarik lainnya.

1 komentar:

  1. Masih ga ngerti yang output, misal:

    gotoxy(1,5);
    cout<<"A = ";
    for(i=1;i<=rowA;i++)
    {
    for(j=1;j<=colA;j++)
    {
    gotoxy(2+4*j,2+2*i);
    cout<<A[i][j];
    }
    }

    Dapat (1,5), (2+4*j,2+2*i) dari mana?
    Trus maksud dari gotoxy apa gan?
    thx infonya

    BalasHapus