Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- #include <conio.h>
- using namespace std;
- //bismillah sebelum koding
- //Xagusart 23 nov 2016
- //coders newbie
- int main()
- {
- // 3 buah array multidimensi, A & B untuk menampung nilai matriks yang akan dikalikan. nah C menampung ahsil kali.
- int A[10][10];//[10][10] artinya bisa mengalikan 2 matriks paling banyak ukuran 10x10
- int B[10][10];
- int C[10][10];
- int barisA,kolomA,barisB,kolomB;
- cout<<"perkalian 2 buah matriks."<<endl;
- //buat matriksnya, input baris kolom.baris A harus sama dengan kolom B agar bisa dikalikan.
- cout<<"masukan jumlah baris matriks A : ";cin>>barisA;
- cout<<"masukan jumlah kolom matriks A : ";cin>>kolomA;
- cout<<"masukan jumlah baris matriks A : ";cin>>barisB;
- cout<<"masukan jumlah kolom matriks A : ";cin>>kolomB;
- cout<<endl<<endl;
- //baris A harus sama dengan kolom B
- while(barisA!=kolomB)
- {
- cout<<"jumlah baris A harus sama dengan jumlah kolom B agar bisa dikalikan."<<endl<<endl;
- cout<<"masukan jumlah baris matriks A : ";cin>>barisA;
- cout<<"masukan jumlah kolom matriks A : ";cin>>kolomA;
- cout<<"masukan jumlah baris matriks B : ";cin>>barisB;
- cout<<"masukan jumlah kolom matriks B : ";cin>>kolomB;
- }
- cout<<"Input Matriks A :"<<endl<<endl;
- for(int a=0;a<barisA;a++)
- {
- for(int b=0;b<kolomA;b++)
- {
- cout<<"A["<<a<<"]["<<b<<"]= ";
- cin>>A[a][b];
- }
- }
- cout<<"matriks A : ";
- for(int a=0;a<barisA;a++)
- {
- if(a==0)
- cout<<" | ";
- for(int b=0;b<kolomA;b++)
- { if(a>0&&b==0)
- cout<<setw(15)<<" | "<<A[a][b];
- else
- cout<<A[a][b];
- if(b<barisA)
- cout<<"\t";
- }
- cout<< " | ";
- cout<<endl;
- }
- cout<<endl;
- cout<<"Input Matriks B :"<<endl<<endl;
- for(int a=0;a<barisB;a++)
- {
- for(int b=0;b<kolomB;b++)
- {
- cout<<"B["<<a<<"]["<<b<<"]= ";
- cin>>B[a][b];
- }
- }
- cout<<"matriks B : ";
- for(int a=0;a<barisB;a++)
- {
- if(a==0)
- cout<<" | ";
- for(int b=0;b<kolomB;b++)
- { if(a>0&&b==0)
- cout<<setw(15)<<" | "<<B[a][b];
- else
- cout<<B[a][b];
- if(b!=barisA-1)
- cout<<"\t";
- }
- cout<< " | ";
- cout<<endl;
- }
- //isi nilai matrik C jadi 0 disetiap element nya
- for(int i =0;i<2;i++)
- {
- for(int j =0;j<2;j++)
- {
- C[i][j]=0;
- }
- }
- /*
- bantuan nya buat looping for perkalian matriks A*B kemudian dimasukan ke C.
- matriksnya 2x2 supaya mudah.
- A: |[0][0] [0][1]| B: |[0][0] [0][1]| C : | (A[0][0]*B[0][0])+(A[0][1]*B[1][0]) (A[0][0]*B[0][1])+(A[0][1]*B[1][1])|
- |[1][0] [1][1]| |[1][0] [1][1]| | (A[1][0]*B[0][0])+(A[1][1]*B[1][0]) (A[1][0]*B[0][1])+(A[1][1]*B[1][1])|
- C[0][0]= A[0][0]*B[0][0])+(A[0][1]*B[1][0]
- C[0][1]= A[0][0]*B[0][1])+(A[0][1]*B[1][1]
- C[1][0]= A[1][0]*B[0][0])+(A[1][1]*B[1][0]
- C[1][1]= A[1][0]*B[0][1])+(A[1][1]*B[1][1]
- */
- //perkalian matriks AxBtaruh di C
- for(int i =0;i<barisA;i++)
- {
- for(int j =0;j<kolomB;j++)
- {
- for(int k=0;k<kolomA;k++)
- {
- C[i][j]+= A[i][k]*B[k][j];
- }
- }
- }
- cout<<endl;
- cout<<"matriks A X B : ";//output hasil kali
- for(int a=0;a<barisA;a++)
- {
- if(a==0)
- cout<<" | ";
- for(int b=0;b<kolomB;b++)
- { if(a>0&&b==0)
- cout<<setw(19)<<" | "<<C[a][b];
- else
- cout<<C[a][b];
- if(b!=barisA-1)
- cout<<"\t";
- }
- cout<< " | ";
- cout<<endl;
- }
- getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement