Jumat, 04 Mei 2012

Perkalian Matriks Pada C++

Berikut adalah contoh untuk melakukan perkalian matriks pada C++ : 

#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
void main()
{
            int MatA[3][3],MatB[3][3],X[3][3],a,b,c;
            clrscr();
            cout<<"Program perkalian dua buah matriks\n";
            cout<<"Silahkan input matriks A : \n";
            for(a=0; a<3; a++)
            {
                        for(b=0; b<3; b++)
                        {
                                    cout<<"Elemen ke "<<(a+1)<<","<<(b+1)<<" : ";
                                    cin>>MatA[a][b];
                        }
            }

            cout<<"\nMatrik A : \n";
            for(a=0; a<3; a++)
            {
                        for(b=0; b<3; b++)
                        {
                                    cout<<setw(4)<<MatA[a][b];
                        }
                        cout<<endl;
            }
            cout<<endl;
            cout<<"Silahkan input matrik B : \n";
            for(a=0; a<3; a++)
            {
                        for(b=0; b<3; b++)
                        {
                                    cout<<"Elemen ke "<<(a+1)<<","<<(b+1)<<" : ";
                                    cin>>MatB[a][b];
                        }
            }
            cout<<"\nMatrik B : \n";
            for(a=0; a<3; a++)
            {
                        for(b=0; b<3; b++)
                        {
                                    cout<<setw(4)<<MatB[a][b];
                        }
                        cout<<endl;
            }
            for(a=0; a<3; a++)
            {
                        for(b=0; b<3; b++)
                        {
                                    X[a][b]=0;
                                    for (c=0; c<3; c++)
                                    {
                                                X[a][b] += MatA[a][c] * MatB[c][b];
                                    }
                        }
            }
            cout<<"\nHasil perkaliannya adalah : \n";
            for(a=0; a<3; a++)
            {
                        for(b=0; b<3; b++)
                        {
                                    cout<<setw(4)<<X[a][b];
                        }
                        cout<<endl;
            }
            cout<<endl;
            getch();
}#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
void main()
{
            int MatA[3][3],MatB[3][3],X[3][3],a,b,c;
            clrscr();
            cout<<"Program perkalian dua buah matriks\n";
            cout<<"Silahkan input matriks A : \n";
            for(a=0; a<3; a++)
            {
                        for(b=0; b<3; b++)
                        {
                                    cout<<"Elemen ke "<<(a+1)<<","<<(b+1)<<" : ";
                                    cin>>MatA[a][b];
                        }
            }
            cout<<"\nMatrik A : \n";
            for(a=0; a<3; a++)
            {
                        for(b=0; b<3; b++)
                        {
                                    cout<<setw(4)<<MatA[a][b];
                        }
                        cout<<endl;
            }
            cout<<endl;
            cout<<"Silahkan input matrik B : \n";
            for(a=0; a<3; a++)
            {
                        for(b=0; b<3; b++)
                        {
                                    cout<<"Elemen ke "<<(a+1)<<","<<(b+1)<<" : ";
                                    cin>>MatB[a][b];
                        }
            }
            cout<<"\nMatrik B : \n";
            for(a=0; a<3; a++)
            {
                        for(b=0; b<3; b++)
                        {
                                    cout<<setw(4)<<MatB[a][b];
                        }
                        cout<<endl;
            }
            for(a=0; a<3; a++)
            {
                        for(b=0; b<3; b++)
                        {
                                    X[a][b]=0;
                                    for (c=0; c<3; c++)
                                    {
                                                X[a][b] += MatA[a][c] * MatB[c][b];
                                    }
                        }
            }
            cout<<"\nHasil perkaliannya adalah : \n";
            for(a=0; a<3; a++)
            {
                        for(b=0; b<3; b++)
                        {
                                    cout<<setw(4)<<X[a][b];
                        }
                        cout<<endl;
            }
            cout<<endl;
            getch();
}

hasil outputnya akan menjadi seperti ini :


8 komentar:

  1. makasih gan... sangat bermanfaaat...

    BalasHapus
  2. mo nanya ni bro, kalo matriknya dengan ordo bebas gemana ya, q masih bingung nich, makasih sebelumnya, mohon bantuannnya?

    BalasHapus
  3. ko perkalian itu elemennya berubah gitu kenapa gan ?

    BalasHapus
    Balasan
    1. karena sistem perkalian matrik itu kolom matrik ke 1 x baris matrik ke 2

      Mantap gan, sekedar tambahan aja, untuk versi ini
      kita bisa tentukan sendiri kolom dan barisnya saat entri data
      C++ PERKALIAN DUA MATRIK DIMENSI BANYAK

      Hapus
  4. Xab += matAC....
    Maksudnya + sebelum = di proses perkalian matrik ini apa mas?

    BalasHapus
  5. Xab += matAC....
    Maksudnya + sebelum = di proses perkalian matrik ini apa mas?

    BalasHapus
  6. Xab += matAC....
    Maksudnya + sebelum = di proses perkalian matrik ini apa mas?

    BalasHapus