Katenzo

royanrodiana.blogspot.com

Katenzo

royanrodiana.blogspot.com

Katenzo

royanrodiana.blogspot.com

Katenzo

royanrodiana.blogspot.com

Katenzo

royanrodiana.blogspot.com

Tampilkan postingan dengan label Array Multidimensi. Tampilkan semua postingan
Tampilkan postingan dengan label Array Multidimensi. Tampilkan semua postingan

Kamis, 25 April 2013

PERHITUNGAN MATRIX

         Dalam kegiatan kali ini kita akan membuat sebuah program menggunakan bahasa c untuk menghitung penjumlahan, pengurangan, perkalian, pembagian dua buah matrix ordo 2 dalam bilangan yang dapat diinputkan oleh user.

Disamping ini merupakan video tutorialnya :


Output yang akan dihasilkan :


Source code :

#include <stdio.h>
#include <stdlib.h>
float varA[2][2],varB[2][2],varC[2][2];
int x,y,z;
 //Buat fungsi menu untuk tampilan pemilihan menu
void menu(){
  printf("\n[1] PENJUMLAHAN");    
  printf("\n[2] PENGURANGAN");
  printf("\n[3] PERKALIAN");  
  printf("\n[4] PEMBAGIAN");
  printf("\n[0] KELUAR");
}

//buat fungsi untuk memasukan nilai matrix
void masukkan(){
  int i,j;
  printf("===========Bilangan Matrix A=========\n\n");
  for (i=0; i<2; i++){
    for (j=0; j<2; j++){
    printf("Bilangan Matrix A [%d][%d] : ",i, j);
       //buat inputan user menggunakan fungsi scanf
    scanf("%f",&varA[i][j]);
    }
  }
  printf("\n===========Bilangan Matrix B=========\n\n");
  for (i=0; i<2; i++){
    for (j=0; j<2; j++){
    printf("Bilangan Matrix B [%d][%d] : ",i, j);
       //buat inputan user menggunakan fungsi scanf
    scanf("%f",&varB[i][j]);
    }
  }
}

//buat fungsi untuk menampilkan yang akan dipanggil pada fungsi
//lain seperti penjumlahan
void tampilkan(char opr){
  for (x=0; x<2; x++){
    for (y=0; y<2; y++){
      printf("%2.0f ",varA[x][y]);
    }
    if(x==0) printf("\t%c\t",opr);
    else printf("\t\t");
    for (y=0; y<2; y++){
      printf("%2.0f ",varB[x][y]);
    }
    printf("\n");
  }
  
}
//buat fungsi untuk penjumlahan
void jumlah(){
  masukkan(); //pemanggilan fungsi masukan
  tampilkan('+'); //pemanggilan fungsi untuk menampilkan
  printf("Hasil Penjumlahan:\n");
  for (x=0; x<2; x++){
    for (y=0; y<2; y++){
      printf("%2.0f ",varA[x][y]+varB[x][y]);
    }
    printf("\n");
  }
}

//buat fungsi untuk pengurangan
void kurang(){
  masukkan(); //pemanggilan fungsi masukan
  tampilkan('-'); //pemanggilan fungsi untuk menampilkan
  printf("Hasil Pengurangan:\n");
    for (x=0; x<2; x++){
    for (y=0; y<2; y++){
              //buat rumus penguranganya
      printf("%2.0f ",varA[x][y]-varB[x][y]);
    }
    printf("\n");
  }
}
//buat fungsi perkalian
void kali(){
  masukkan();
  tampilkan('x');
  printf("Hasil Perkalian:\n");
  for (x=0; x<2; x++){
    for (y=0; y<2; y++){
      varC[x][y]=0;
      for (z=0; z<2; z++){
                //buat rumus untuk perkalian
        varC[x][y]+=varA[x][z]*varB[z][y];
             
      }
      printf("%2.0f ",varC[x][y]);
    }
    printf("\n");
  }
}
//buat fungsi pembagian
void bagi(){
  float deterB,temp,vrBinvers[2][2];
  masukkan();
  tampilkan(':');

  deterB = 1/((varB[0][0]*varB[1][1])-(varB[0][1]*varB[1][0]));
  vrBinvers[0][0] = deterB*varB[1][1];
  vrBinvers[0][1] = deterB*(-varB[0][1]);
  vrBinvers[1][0] = deterB*(-varB[1][0]);
  vrBinvers[1][1] = deterB*varB[0][0];

  for (x=0; x<2; x++){
    for (y=0; y<2; y++){
      printf("%2.0f ",varA[x][y]);
    }
    if(x==0) printf("\tx\t");
    else printf("\t \t");
    for (y=0; y<2; y++){
      printf("%6.2f ",vrBinvers[x][y]);
    }
    printf("\n");
  }

  printf("Hasil Pembagian:\n");
  for (x=0; x<2; x++){
    for (y=0; y<2; y++){
      varC[x][y]=0;
      for (z=0; z<2; z++){
        varC[x][y]+=varA[x][z]*vrBinvers[z][y];
      }
      printf("%6.2f ",varC[x][y]);
    }
    printf("\n");
  }
}

//fungsi utama program
int main(void){
  int selesai=1,pilih;
  printf("\n================================================\n");
  printf("=========         PROGRAM C            =========\n");
  printf("=========    PERHITUNGAN MATRIKS       =========\n");
  printf("=========       Royan Rodiana          =========\n");
  printf("================================================\n\n");
  while(selesai==1){
    menu();
    printf("\nMasukkan pilihan >");
           scanf("%d",&pilih);
    switch(pilih){
      case 0 : selesai=0; break;
      case 1 : jumlah(); break;
      case 2 : kurang(); break;
      case 3 : kali(); break;
      case 4 : bagi(); break;
      
                //buat defaultnya jika memilih menu selain diatas ada peringatan dan sistem terhenti
      default :  printf("Maaf nomor yang anda masukan tidak ada di list \n silahkan ulangi !!!\n\n");
                system("pause");
                return 0;
                break;
    }
  }
  system("pause");
  return 0;
}