Advertisement
agusbd

perkalian matriks ./xagusart

Nov 23rd, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.91 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <conio.h>
  4. using namespace std;
  5.  
  6. //bismillah sebelum koding
  7. //Xagusart 23 nov 2016
  8. //coders newbie
  9.  
  10. int main()
  11. {
  12.     // 3 buah array multidimensi, A & B untuk menampung nilai matriks yang akan dikalikan. nah C menampung ahsil kali.
  13.     int A[10][10];//[10][10] artinya bisa mengalikan 2 matriks paling banyak ukuran 10x10
  14.     int B[10][10];
  15.     int C[10][10];
  16.  
  17.     int barisA,kolomA,barisB,kolomB;
  18.     cout<<"perkalian 2 buah matriks."<<endl;
  19.     //buat matriksnya, input baris kolom.baris A harus sama dengan kolom B agar bisa dikalikan.
  20.     cout<<"masukan jumlah baris matriks A : ";cin>>barisA;
  21.     cout<<"masukan jumlah kolom matriks A : ";cin>>kolomA;
  22.     cout<<"masukan jumlah baris matriks A : ";cin>>barisB;
  23.     cout<<"masukan jumlah kolom matriks A : ";cin>>kolomB;
  24.     cout<<endl<<endl;
  25.  
  26.     //baris A harus sama dengan kolom B
  27.     while(barisA!=kolomB)
  28.     {
  29.         cout<<"jumlah baris A harus sama dengan jumlah kolom B agar bisa dikalikan."<<endl<<endl;
  30.         cout<<"masukan jumlah baris matriks A : ";cin>>barisA;
  31.         cout<<"masukan jumlah kolom matriks A : ";cin>>kolomA;
  32.         cout<<"masukan jumlah baris matriks B : ";cin>>barisB;
  33.         cout<<"masukan jumlah kolom matriks B : ";cin>>kolomB;
  34.     }
  35.  
  36.  
  37.     cout<<"Input Matriks A :"<<endl<<endl;
  38.     for(int a=0;a<barisA;a++)
  39.     {
  40.  
  41.         for(int b=0;b<kolomA;b++)
  42.         {
  43.             cout<<"A["<<a<<"]["<<b<<"]= ";
  44.             cin>>A[a][b];
  45.         }
  46.     }
  47.     cout<<"matriks A : ";
  48.      for(int a=0;a<barisA;a++)
  49.     {
  50.         if(a==0)
  51.             cout<<" | ";
  52.         for(int b=0;b<kolomA;b++)
  53.         {  if(a>0&&b==0)
  54.             cout<<setw(15)<<" | "<<A[a][b];
  55.             else
  56.             cout<<A[a][b];
  57.             if(b<barisA)
  58.                 cout<<"\t";
  59.         }
  60.         cout<< " | ";
  61.         cout<<endl;
  62.     }
  63.     cout<<endl;
  64.      cout<<"Input Matriks B :"<<endl<<endl;
  65.     for(int a=0;a<barisB;a++)
  66.     {
  67.  
  68.         for(int b=0;b<kolomB;b++)
  69.         {
  70.             cout<<"B["<<a<<"]["<<b<<"]= ";
  71.             cin>>B[a][b];
  72.         }
  73.  
  74.  
  75.     }
  76.     cout<<"matriks B : ";
  77.      for(int a=0;a<barisB;a++)
  78.     {
  79.         if(a==0)
  80.             cout<<" | ";
  81.         for(int b=0;b<kolomB;b++)
  82.         {  if(a>0&&b==0)
  83.             cout<<setw(15)<<" | "<<B[a][b];
  84.             else
  85.             cout<<B[a][b];
  86.             if(b!=barisA-1)
  87.                 cout<<"\t";
  88.         }
  89.         cout<< " | ";
  90.         cout<<endl;
  91.     }
  92.  
  93.     //isi nilai matrik C jadi 0 disetiap element nya
  94.     for(int i =0;i<2;i++)
  95.     {
  96.         for(int j =0;j<2;j++)
  97.         {
  98.             C[i][j]=0;
  99.         }
  100.     }
  101.  
  102.  
  103.  
  104.  
  105.     /*
  106.     bantuan nya buat looping for perkalian matriks A*B kemudian dimasukan ke C.
  107.     matriksnya 2x2 supaya mudah.
  108.  
  109.     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])|
  110.        |[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])|
  111.  
  112.  
  113.     C[0][0]= A[0][0]*B[0][0])+(A[0][1]*B[1][0]
  114.     C[0][1]= A[0][0]*B[0][1])+(A[0][1]*B[1][1]
  115.     C[1][0]= A[1][0]*B[0][0])+(A[1][1]*B[1][0]
  116.     C[1][1]= A[1][0]*B[0][1])+(A[1][1]*B[1][1]
  117.   */
  118.  
  119.  
  120.     //perkalian matriks AxBtaruh di C
  121.     for(int i =0;i<barisA;i++)
  122.     {
  123.         for(int j =0;j<kolomB;j++)
  124.         {
  125.             for(int k=0;k<kolomA;k++)
  126.             {
  127.                 C[i][j]+= A[i][k]*B[k][j];
  128.             }
  129.         }
  130.     }
  131.  
  132.     cout<<endl;
  133.  
  134.     cout<<"matriks A X B : ";//output hasil kali
  135.      for(int a=0;a<barisA;a++)
  136.     {
  137.         if(a==0)
  138.             cout<<" | ";
  139.         for(int b=0;b<kolomB;b++)
  140.         {  if(a>0&&b==0)
  141.             cout<<setw(19)<<" | "<<C[a][b];
  142.             else
  143.             cout<<C[a][b];
  144.             if(b!=barisA-1)
  145.                 cout<<"\t";
  146.         }
  147.         cout<< " | ";
  148.         cout<<endl;
  149.     }
  150.  
  151.     getch();
  152.  
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement