"Om Swastiastu"
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.
"Om Santhi, Santhi, Santhi, Om"
trimakasih bang atas program perkalian metriksnya......
bang, saya minta ya programnya
bli tiang ngidih programne nah,,
anggon tugas,
suksma
bang, kok gak bisa di jalankan ya?
kesalahan ada pada gotoxy...
gimana?
@untuk anonim terakhir: HAH?? setelah anda berkata demikian,, saya langsung coba Compile dan Run.. TAPI tidak ada masalah kok,, setelah di Compile Success,, hanya ada tanda bahwa,, "Answer is declared but never used" gitu aja..
hmmmm,, kalau mungkin pada syntax anda gotoxy nya keliru,, coba diliat , apa yang membuat error,, sudahkah anda mengisi tanda titik koma ( ; ) pada akhir gotoxy?? atau yang lain..
bang minta cara perkalian matriksnya yang simple az donx....bsa gag...terlalu banyak itu....
bang fungsi define apa sama int answer??
mohon jawabannya...
define berfungsi untuk mengatur ValueMax kalau nilai maximal nya 25..
int answer?? sepertinya saya kelebihan membuat variabel..hehe
thanks..
izin sedot gan,,
tangkiu
mas, kok waktu di run malah error yaa,, programnya looping terus..
gan... lw boleh tanya,, syntax di atas ada flowchartnya gaggg... lw ad minta kasih lihat dong... makasih...
saya mau tanya,
kenapa pake tapi gak ada printf dan scanf nya...
trims.........
Mas Swastiastu, kalau saya langsung copy paste ke borland kok error ya? apa ada cara yang mudah? saya agak teledor kalau harus ketik satu per satu...
Bli..
Ada contoh program perkalian matriks dengan konstruktor gak??
saya punya program untuk perkalian matriks dengan ordo terserah, itu juga hasil eksperimen waktu dapet project dari dosen di ITS