Wednesday, April 25, 2012

Program C menghitung perkalian matrix

Program matrix ini berfungsi untuk menghitung hasil perkalian matrix. User dapat menentukan lebar dan panjang kedua matrix yang akan dikalikan. Sedikit berbeda dengan program perkalian matrix yang biasanya lebar dan panjangnya sama.

Silahkan download applikasinya(file.exe) disini

Source Code :


#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

int main () {
    int r1,c1,r2,c2;
    printf("\t\t\tPROGRAM PERKALIAN MATRIX\n\n");   
    do{//jika kolom matrix1 tidak sama dengan baris matrix2, loop akan dieksekusi
    system("cls");
    printf("masukkan jumlah baris matrix pertama: "); scanf("%d",&r1);
    printf("masukkan jumlah kolom matrix pertama: "); scanf("%d",&c1);
    printf("masukkan jumlah baris matrix kedua  : "); scanf("%d",&r2);
    printf("masukkan jumlah kolom matrix kedua  : "); scanf("%d",&c2);
    if(c1!=r2){printf("data salah!\nperkalian matrix yang diperbolehkan: n kolom matrix1 = n baris matrix2\n");getch();}
    }
    while(c1!=r2);
    int matrix1[r1][c1], matrix2[r2][c2],matrix3[r1][c2],temp1,temp2;
    int a,b,c,d,counter;
    //input matrix pertama
    printf("\nmasukkan elemen2 matrix pertama: \n");
    for(a=0;a<r1;a++){
                      for(b=0;b<c1;b++){printf("elemen ke[%d][%d]= ",a,b); scanf("%d",&matrix1[a][b]);}
                      };
    //input matrix kedua
    printf("\nmasukkan elemen2 matrix kedua: \n");
    for(a=0;a<r2;a++){
                      for(b=0;b<c2;b++){printf("elemen ke[%d][%d]= ",a,b); scanf("%d",&matrix2[a][b]);}
                      };
                     
                     
    //mengeset nilai awal matrix hasil dengan nilai 0                 
    for(b=0;b<r1;b++){
                      for(a=0;a<c2;a++){matrix3[b][a]=0;}                                               
                      }
                     
    //perkalian matrix
    for(a=0,b=0,counter=1;counter<=(r1*c2);b++,counter++){
                              for(c=0;c<c1;c++){matrix3[a][b]=matrix3[a][b]+(matrix1[a][c]*matrix2[c][b]);
                                                    }
                              if(b==(c2-1)){b=-1;a=a+1;}
                                                }
    //menampilkan hasil perkalian                                          
    printf("\n\nHASIL PERKALIAN\n\n");  
    for(b=0;b<r1;b++){
                      for(a=0;a<c2;a++){
                                              printf("%d  ",matrix3[b][a]);}
                                              printf("\n");
                                                               
                      }
   
    system("pause");
    return 0;
}

semoga bermanfaat.

0 comments:

Post a Comment