PERKALIAN MATRIKS
PROGRAM
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
int A[1000][1000],B[1000][1000],C[1000][1000],i,j,k, barisa, koloma, barisb, kolomb, barisc, kolomc, loop;
void hitung();
void matrika();
void matrikb();
void cek();
void ulang();
int main()
{
do
{
matrika();
matrikb();
cek();
ulang();
}while (loop!=0);
}
void matrika()
{
cout<<"masukkan ordo matriks A :"<<endl;
cout<<"jumlah baris : ";
cin>>barisa;
cout<<"jumlah kolom : ";
cin>>koloma;
//masukkan matrix A
cout<<"Silahkan input matrik A : \n";
for(i=0;i<barisa;i++)
{
for(j=0;j<koloma;j++)
{
cout<<"Elemen ke "<<(i+1)<<","<<(j+1)<<" : ";
cin>>A[i][j];
}
}
//cetak matrix A
cout<<"\nMatrik A : \n";;
for(i=0;i<barisa;i++)
{
for(j=0;j<koloma;j++)
{
cout<<setw(4)<<A[i][j];
}
cout<<endl;
}
cout<<endl;
}
void matrikb()
{
//masukkan matriks B
cout<<"masukkan ordo matriks B :"<<endl;
cout<<"jumlah baris : ";
cin>>barisb;
cout<<"jumlah kolom : ";
cin>>kolomb;
cout<<"Silahkan input matrik B : \n";
for(i=0;i<barisb;i++)
{
for(j=0;j<kolomb;j++)
{
cout<<"Elemen ke "<<(i+1)<<","<<(j+1)<<" : ";
cin>>B[i][j];
}
}
//cetak matrix B
cout<<"\nMatrik B : \n";
for(i=0;i<barisb;i++)
{
for(j=0;j<kolomb;j++)
{
cout<<setw(4)<<B[i][j];
}
cout<<endl;
}
}
void hitung()
{
//Operasi Perkalian
for (i=0;i<barisa;i++)
{
for (j=0;j<kolomb;j++)
{
C[i][j]=0;
for (k=0;k< barisb;k++)
{
C[i][j]+= A[i][k]*B[k][j];
}
}
}
//Menampilkan hasil
cout<<"\nMatrik C, Hasil : \n";
for(i=0;i<barisa;i++)
{
for(j=0;j<kolomb;j++)
{
cout<<setw(4)<<C[i][j];
}
cout<<endl;
}
cout<<endl;
getche();
}
void ulang()
{
int status, l;
char pilih;
do
{
cout<<"anda ingin memakai program ini lagi (y/n)?";
cin>>pilih;
switch (pilih)
{
case 'Y' : status=1; loop=1; l=0; break;
case 'y' : status=1; loop=1; l=0; break;
case 'N' : status=0; l=0; cout<<"exit"<<endl; getche(); exit(0); break;
case 'n' : status=0; l=0; cout<<"exit"<<endl; getche(); exit(0); break;
default : cout<<"ketik y untuk ulangi program, n untuk tutup program (tidak case sensitif)"<<endl;
}
}while(l!=0);
}
void cek()
{
if (koloma==barisb)
{
hitung();
}
if (koloma!=barisb)
{
cout<<"operasi perkalian tidak bisa dilakukan. Anda salah memasukkan ordo matrik."<<endl;
getche();
}
}