Perhitungan Matriks Ordo 3x3 bahasa C++

loading...

Perhitungan Matriks Ordo 3x3 bahasa C++

Holla Mina-san ! Pada postingan kali ini saya akan membagikan source code program yang dapat melakukan Perhitungan Matriks yang dapat melakukan Penjumlahan Perkalian serta Transpose Matriks.

Program ini sewaktu dijalankan akan meminta input dari user yang dapat memilih salah satu operasi matriks sesuai judul pada postingan kali ini.silahkan dilihat-lihat.


Source Code C++
#include <stdio.h>
#include <math.h>
#define NbarisMaks 20
#define NkolomMaks 20
typedef int MatriksInt [NbarisMaks+1] [NkolomMaks+1];
MatriksInt A;
MatriksInt B;
MatriksInt C;
MatriksInt D;
void BacaMatriks1(MatriksInt A, int Nbar, int Nkol);
void BacaMatriks2(MatriksInt B, int Nbar, int Nkol);
void penjumlahan(MatriksInt A,MatriksInt B,int Nbar,int Nkol,MatriksInt C);
void perkalian(MatriksInt A,MatriksInt B,int Nbar,int Nkol,MatriksInt C);
void transpose(MatriksInt A,MatriksInt B,int Nbar,int Nkol);
int main()
{
  int p,q; //indeks baris & kolom
 int x,y,matriks;
 matriks :
 printf("Masukkan Baris dan Kolom Matriks : \n");
 printf("Jumlah baris : "); scanf("%d",&p);
 printf("Jumlah kolom : "); scanf("%d",&q);
 printf("\n");
 printf("Pilihan Operasi Matriks : \n\n");
 printf("1.Penjumlahan Matriks\n2.Perkalian Matriks\n3.Transpose Matriks\n\n");
 printf("Operasi yang dipilih : ");
 scanf("%d",&x);
 printf("\n");
 switch(x){
  case 1 : {
     BacaMatriks1(A,p,q);
     BacaMatriks2(B,p,q);
     penjumlahan(A,B,p,q,C);break;
  }
  case 2 : {
     BacaMatriks1(A,p,q);
     BacaMatriks2(B,p,q);
     perkalian(A,B,p,q,C);break;
  }
  case 3 : {
     BacaMatriks1(A,p,q);
     BacaMatriks2(B,p,q);
     transpose(A,B,p,q);break;
  }
 }
 printf("Mau Melakukan Operasi yang lain ?\n");
 printf("1.YA\n2.Tidak\n");
 printf("Pilihannya : ");
 scanf("%d",&y);
 printf("\n");
 switch(y)
 {
  case 1 : goto matriks;break;
  case 2 : break;
 }
 return 0;
}
void BacaMatriks1(MatriksInt A, int Nbar, int Nkol)
{
 int i,j;
 printf("Memasukkan nilai Matriks A\n\n");
 for(i=1;i<=Nbar;i++){
  for(j=1;j<=Nkol;j++)
  {
      printf("ketikkan elemen A[%d][%d] : ",i,j);
   scanf("%d",&A[i][j]);
    }
 }
 printf("\n");
 printf("Matriks A : \n");
 for(i=1;i<=Nbar;i++){
  for(j=1;j<=Nkol;j++)
  {
   printf("\t %3d",A[i][j]);
  }   printf("\n");  }
 printf("\n");
}
void BacaMatriks2(MatriksInt B, int Nbar, int Nkol)
{
 int i,j;
 printf("Memasukkan nilai Matriks B\n\n");
 for(i=1;i<=Nbar;i++){
  for(j=1;j<=Nkol;j++)
  {
      printf("ketikkan elemen B[%d][%d] : ",i,j);
   scanf("%d",&B[i][j]);
    }
 }
 printf("\n");
 printf("Matriks B : \n");
 for(i=1;i<=Nbar;i++){
  for(j=1;j<=Nkol;j++)
  {
   printf("\t %3d",B[i][j]);
  }   printf("\n");  }
 printf("\n");
}
void penjumlahan(MatriksInt A,MatriksInt B,int Nbar,int Nkol,MatriksInt C)
{
  int i,j;
 for(i=1;i<=Nbar;i++){
  for(j=1;j<=Nkol;j++)
  {
   C[i][j]=A[i][j]+B[i][j];
  }
 }
 printf("Hasil penjumlahan Matriks A dan B\n\n");
 printf("Matriks C : \n");
 for(i=1;i<=Nbar;i++){
  for(j=1;j<=Nkol;j++)
  {
   printf("\t %3d",C[i][j]);
  }
  printf("\n");
 }  printf("Hasil Transpose Matriks C\n\n");
 printf("Matriks TC : \n");
 for(j=1;j<=Nkol;j++){
  for(i=1;i<=Nbar;i++){
   printf("\t %3d",C[i][j]);
  }
  printf("\n");
 }
 printf("\n");
}
void perkalian(MatriksInt A,MatriksInt B,int Nbar,int Nkol,MatriksInt D)
{
 int i,j,k;
 for(i=1;i<=Nbar;i++){
  for(j=1;j<=Nkol;j++)
  {
   D[i][j]=0;
   for(k=1;k<=Nbar;k++)
   {
    D[i][j]+=A[i][k]*B[k][j];
   }
  }
 }
 printf("Hasil perkalian Matriks A dan B\n\n");
 printf("Matriks D : \n");
 for(i=1;i<=Nbar;i++){
  for(j=1;j<=Nkol;j++)
  {
   printf("\t %3d",D[i][j]);
  }
  printf("\n");
 }
 printf("Hasil Transpose Matriks D\n\n");
 printf("Matriks TD : \n");
 for(j=1;j<=Nkol;j++){
  for(i=1;i<=Nbar;i++){
   printf("\t %3d",D[i][j]);
  }
  printf("\n");
 }
 printf("\n");
}
void transpose(MatriksInt A,MatriksInt B,int Nbar,int Nkol)
{
  int i,j;
  printf("Hasil Transpose Matriks A\n\n");
  printf("Matriks TA : \n");
  for(j=1;j<=Nkol;j++){
   for(i=1;i<=Nbar;i++){
    printf("\t %3d",A[i][j]);
   }
   printf("\n");
  }
  printf("\n");   printf("Hasil Transpose Matriks B\n\n");
  printf("Matriks TB : \n");
  for(j=1;j<=Nkol;j++){
  for(i=1;i<=Nbar;i++){
   printf("\t %3d",B[i][j]);
   }
   printf("\n");
  } }


Mari kita bahas source code nya

#include <stdio.h>
#include <math.h>
Pertama kali yang kita jumpai adalah #inlcude , #inlcude merupakan pemanggilan library atau file header.File Header adalah file yang berisi deklarasi untuk berbagai fungsi yang dibutuhkan oleh program  jika kalian belum mengetahui tentang file header kalian dapat pergi ke halaman dibawah ini
baca disini Apa itu File Header ?
#define NbarisMaks 20
#define NkolomMaks 20
typedef int MatriksInt [NbarisMaks+1] [NkolomMaks+1];
MatriksInt A;
MatriksInt B;
MatriksInt C;
MatriksInt D;
void BacaMatriks1(MatriksInt A, int Nbar, int Nkol);
void BacaMatriks2(MatriksInt B, int Nbar, int Nkol);
void penjumlahan(MatriksInt A,MatriksInt B,int Nbar,int Nkol,MatriksInt C);
void perkalian(MatriksInt A,MatriksInt B,int Nbar,int Nkol,MatriksInt C);
void transpose(MatriksInt A,MatriksInt B,int Nbar,int Nkol);
Pada bagian ini merupakan pendefinisian awal , diharapkan kalian mengerti dasar dari bahasa pemrograman C++,selanjutnya salah satu void BacaMatriks1(MatriksInt A, int Nbar, int Nkol); dibuat prototype untuk memanggil prosedure yang tersedia dibawah
int p,q; 
int x,y,matriks;
Bagian ini tempat di deklarasinya variable beserta type data untuk melakukan proses input maupun output , pada program kali ini p,q digunakan untuk menentukan baris dan kolom didalam program nantinya
printf("Masukkan Baris dan Kolom Matriks : \n");
printf("Jumlah baris : "); scanf("%d",&p);
printf("Jumlah kolom : "); scanf("%d",&q);
printf("\n");
printf("Pilihan Operasi Matriks : \n\n");
printf("1.Penjumlahan Matriks\n2.Perkalian Matriks\n3.Transpose Matriks\n\n");
printf("Operasi yang dipilih : ");
Sampailah kita pada bagian dimana output yang keluar pertama kali saat program dijalankan
scanf("%d",&x);
 printf("\n");
 switch(x){
  case 1 : {
     BacaMatriks1(A,p,q);
     BacaMatriks2(B,p,q);
     penjumlahan(A,B,p,q,C);break;
  }
  case 2 : {
     BacaMatriks1(A,p,q);
     BacaMatriks2(B,p,q);
     perkalian(A,B,p,q,C);break;
  }
  case 3 : {
     BacaMatriks1(A,p,q);
     BacaMatriks2(B,p,q);
     transpose(A,B,p,q);break;
  }
 }
Didalam program ini saya memakai switch case sebagai pemilihan menu , sesuai dengan isinya case pertama untuk melakukan penjumlahan dan seterusnya.Oh iya pada program ini user akan memilih terlebih dahulu apa yang ingin program ini lakukan itulah kenapa BacaMatriks1(A,p,q); BacaMatriks2(B,p,q); berada didalam setiap case.
void BacaMatriks1(MatriksInt A, int Nbar, int Nkol)
{
 int i,j;
 printf("Memasukkan nilai Matriks A\n\n");
 for(i=1;i<=Nbar;i++){
  for(j=1;j<=Nkol;j++)
  {
      printf("ketikkan elemen A[%d][%d] : ",i,j);
   scanf("%d",&A[i][j]);
    }
 }
 printf("\n");
 printf("Matriks A : \n");
 for(i=1;i<=Nbar;i++){
  for(j=1;j<=Nkol;j++)
  {
   printf("\t %3d",A[i][j]);
  }   printf("\n");  }
 printf("\n");
}
Kita sampai pada prosedur bacamatriks yang pertama tidak ada yang spesial , seperti menginput matriks seperti biasanya pada bacamatriks2 juga sama.
void perkalian(MatriksInt A,MatriksInt B,int Nbar,int Nkol,MatriksInt D)
{
 int i,j,k;
 for(i=1;i<=Nbar;i++){
  for(j=1;j<=Nkol;j++)
  {
   D[i][j]=0;
   for(k=1;k<=Nbar;k++)
   {
    D[i][j]+=A[i][k]*B[k][j];
   }
  }
 }
 printf("Hasil perkalian Matriks A dan B\n\n");
 printf("Matriks D : \n");
 for(i=1;i<=Nbar;i++){
  for(j=1;j<=Nkol;j++)
  {
   printf("\t %3d",D[i][j]);
  }
  printf("\n");
 }
 printf("Hasil Transpose Matriks D\n\n");
 printf("Matriks TD : \n");
 for(j=1;j<=Nkol;j++){
  for(i=1;i<=Nbar;i++){
   printf("\t %3d",D[i][j]);
  }
  printf("\n");
 }
 printf("\n");
}
Yang terakhir kita ambil salah satu prosedur pengoperasiannya ya ,Lihat baik baik untuk matriks perkalian kita memelurkan for sekali lagi ingat ini perkalian matriks bukan bilangan biasa.

Hasil setelah dijalankan menggunakan cmd

Itulah tadi yang dapat saya sampaikan tentang Perhitungan Matriks Ordo 3x3 bahasa C++.Jika ada pertanyaan sampaikan dikolom komentar.Semoga dapat bermanfaat.

Previous
Next Post »
Thanks for your comment