perkalian matrik ordo bebas

jika pada umumnya blog hanya menampilkan perkalian matrik pada ordo tertentu saja ,, seperti ordo 3x3 dan 3x3 atau 2x3 dan 3x2,, tapi untuk program yang saya buat kali itu bisa menghitung ordo matrik bebas dengan ordo matriknya kita tentukan sendiri,, sesuai keingginnan anda saja .. bisa 3x1 dan 1x2 atau berapapun yang anda ingginkan ,, tapi pada program ini saya membatasi untuk ordo matriknya maksimal hanya matrik A 10x10 dan matrik B 10x10 saja,,

seperti yang kita ketahui bahwa syarat umum untuk perkalian matrik adalah kolom matrik A = baris matrik B .. dan untuk penentuan hasil perkalian matriknya adalah baris matrik A dan kolom matrik B. .  untuk lebih jelasnya dapat melihat coding di bawah ini. .

Coding >>
#include<iostream.h>
#include<conio.h>
void line()
{
cout<<"-------------------------------------------------------------------------\n";
}
void banner()
{
cout<<"                               PROGRAM C++ "<<endl;
cout<<"                             PERKALIAN MATRIK"<<endl;
cout<<"                          UNIVERSITAS PAKUAN BOGOR"<<endl;
cout<<"                        Creative By : 0651 13 047\n";
cout<<"========================================================================="<<endl;
}

void main()
{
int a[10][10],b[10][10];
float c[10][10];
int bs,km,bu,ku,ba,ka, i;
sang:
clrscr();
banner();
cout<<"Matrik A "<<endl;
cout<<"baris : "; cin>>bu;
cout<<"kolom : "; cin>>ku;
cout<<"Ordo Matrik A "<<bu<<"x"<<ku<<endl;
line();
for(bs=0;bs<bu;bs++)
    {
    for(km=0;km<ku;km++)
        {
        cout<<"baris "<<(bs+1)<<" kolom "<<(km+1)<<" = ";
        cin>>a[bs][km];
        }  cout<<endl;
    }

cout<<"Matrik B "<<endl;
cout<<"baris : "; cin>>ba;
cout<<"kolom : "; cin>>ka;
cout<<"Ordo Matrik B "<<ba<<"x"<<ka<<endl;
line();
for(bs=0;bs<ba;bs++)
    {
    for(km=0;km<ka;km++)
        {
        cout<<"baris "<<(bs+1)<<" kolom "<<(km+1)<<" = ";
        cin>>b[bs][km];
        } cout<<endl;
    }
getch();
clrscr();
banner();
cout<<" HASIL PERKALIAN 2 BUAH MATRIK "<<endl;
cout<<"MARTIK A "<<bu<<"x"<<ku<<" dan MATRIK B "<<ba<<"x"<<ka<<endl;
line();
if (bu == ba && ku == ka)
{
for(bs=0;bs<bu;bs++)
    {
    for(km=0;km<ka;km++)
        {
        c[bs][km]=0;
        for(i=0;i<bu;i++)
            {
             c[bs][km]=c[bs][km]+(a[bs][i]*b[i][km]);
            }
        }
    }
cout<<"Matrik A\t\tMatrik B\t\tPerkalian\n";
line();
for(bs=0;bs<bu;bs++)
    {
    for(km=0;km<ka;km++)
        cout<<a[bs][km]<<" ";
    {
    for(km=0;km<3;km++)
        cout<<"\t";
    {
    for(km=0;km<ka;km++)
        cout<<b[bs][km]<<" ";
    {
    for(km=0;km<3;km++)
        cout<<"\t";
    {
    for(km=0;km<ka;km++)
        {
        cout<<c[bs][km]<<" ";
        }
    }
    cout<<endl;

    }

    }

    }

    }

}
else if (ku == ba && bu > ka  )
{
//perhitungan perkalian matrik
for(bs=0;bs<bu;bs++)
    {
    for(km=0;km<ka;km++)
        {
        c[bs][km]=0;
        for(i=0;i<bu;i++)
            {
             c[bs][km]=c[bs][km]+(a[bs][i]*b[i][km]);
            }
        }
    }

cout<<"Matrik A "<<endl;
for(bs=0;bs<bu;bs++)
    {
    for(km=0;km<ku;km++)
        {
        cout<<a[bs][km]<<" ";
        }  cout<<endl;
    }
cout<<"Matrik B"<<endl;
for(bs=0;bs<ba;bs++)
    {
    for(km=0;km<ka;km++)
        {
        cout<<b[bs][km];
        }  cout<<endl;
    }
cout<<"Perkalian "<<endl;
for(bs=0;bs<bu;bs++)
    {
    for(km=0;km<ka;km++)
        {
        cout<<c[bs][km]<<" ";
        }  cout<<endl;
    }
}
else if (ku == ba && ka > bu  )
{
//perhitungan perkalian matrik
for(bs=0;bs<bu;bs++)
    {
    for(km=0;km<ka;km++)
        {
        c[bs][km]=0;
        for(i=0;i<ba;i++)
            {
             c[bs][km]=c[bs][km]+(a[bs][i]*b[i][km]);
            }
        }
    }

cout<<"Matrik A "<<endl;
for(bs=0;bs<bu;bs++)
    {
    for(km=0;km<ku;km++)
        {
        cout<<a[bs][km]<<" ";
        }  cout<<endl;
    }
cout<<"Matrik B"<<endl;
for(bs=0;bs<ba;bs++)
    {
    for(km=0;km<ka;km++)
        {
        cout<<b[bs][km]<<" ";
        }  cout<<endl;
    }
cout<<"Perkalian "<<endl;
for(bs=0;bs<bu;bs++)
    {
    for(km=0;km<ka;km++)
        {
        cout<<c[bs][km]<<" ";
        }  cout<<endl;
    }
}
else if (ku == ba && bu == ka  )
{
//perhitungan perkalian matrik
for(bs=0;bs<bu;bs++)
    {
    for(km=0;km<ka;km++)
        {
        c[bs][km]=0;
        for(i=0;i<ku;i++)
            {
             c[bs][km]=c[bs][km]+(a[bs][i]*b[i][km]);
            }
        }
    }

cout<<"Matrik A "<<endl;
for(bs=0;bs<bu;bs++)
    {
    for(km=0;km<ku;km++)
        {
        cout<<a[bs][km]<<" ";
        }  cout<<endl;
    }
cout<<"Matrik B"<<endl;
for(bs=0;bs<ba;bs++)
    {
    for(km=0;km<ka;km++)
        {
        cout<<b[bs][km]<<" ";
        }  cout<<endl;
    }
cout<<"Perkalian "<<endl;
for(bs=0;bs<bu;bs++)
    {
    for(km=0;km<ka;km++)
        {
        cout<<c[bs][km]<<" ";
        }  cout<<endl;
    }
}
else
{
cout<<"kolom matrik a\n";
cout<<"tidak sama dengan \n";
cout<<"baris matrik b\n";
}
getch();
goto sang;
}

Compiler >>

Perkalian matrik A 2x3 dan matrik B 3x2

Output matrik A(2x3) , matrik B(3x2), dan hasil perkalian(2x2)
Compiler Turbo C++ 

untuk logika perkalian mungkin hampir sudah mengetahui semua,, jika terdapat kritik atau saran yang membangun bisa langsung komentar saja . .
see you next time. .

No comments:

Post a Comment