Anda di halaman 1dari 11

#include<stdio.

h>
main()
{
int **A,**B,**C,r1,c1,r2,c2,i,j,k;

printf("\nMasukkan matriks ukuran pertama(rowsize colsize) : ");
scanf("%d %d",&r1,&c1);

printf("\nMasukkan matriks ukuran pertama(rowsize colsize) : ");
scanf("%d %d",&r2,&c2);
if(c1 != r2){
printf("\nPerkalian matriks tidak memungkinkan\n");
}else{
//printf("\nUkuran matriks hasil perkalian = %d x %d \n",r1,c2);

A = new int * [r1];
B = new int * [r2];
C = new int * [r1];

for(i=0;i<r1;i++)
{
A[i] = new int[c1];
C[i] = new int[c2]; //C size = r1xc2
}
for(i=0;i<r2;i++)
B[i] = new int[c2];

printf("\nSilahkan memasukan elemen untuk matrik pertama %d x
%d\n",r1,c1);
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
scanf("%d",&A[i][j]);
}

printf("\nSilahkan memasukan elemen untuk matrik kedua %d x
%d\n",r2,c2);
for(i=0;i<r2;i++)
{
for(j=0;j<c2;j++)
scanf("%d",&B[i][j]);
}

printf("\nHasil dari perkalian matriks adalah : \n");
for(i=0;i<r1;i++)
{
for(j=0;j<c2;j++)
{
C[i][j]=0;
for(k=0;k<c1;k++)
{
C[i][j]+=A[i][k]*B[k][j];
}
printf("%d ",C[i][j]);
}
printf("\n");
}

}
}
Diter


Sumber: http://id.shvoong.com/internet-and-technologies/software/2061814-program-untuk-perkalian-matriks-
menggunakan/#ixzz2p55t7L50

1. #include <stdio.h> //pemanggilan header standard input output
2. #include <stdlib.h> //pemanggilan header standard library
3.
4. int main(void) //fungsi utama
5. {
6. float mat_a [2][2], mat_b [2][2], hasil[2][2], detB, mat_b_invers[2][2; //deklarasi
matrik array 2 dimensi
7. int pilih,i,j,k,keluar=1;
8.
9. do{
10. printf("PERHITUNGAN MATRIX\n");
11. printf("[1]penjumlahan\n[2]pengurangan\n[3]perkalian\n[4]pembagian\n[0]keluar\n\n");
12. printf("Masukkan Pilihan= ");
13. scanf("%d",&pilih); //menerima inputan dan menyimpan
14.
15. switch (pilih) //pernyataan berdasarkan variabel inputan dari user
16. {
17. case 1: //kondisi yang dijalankan jika user menginputkan angka 1
18. //input matrix a 2x2
19. for (i=0; i<2; i++) //perulangan untuk baris
20. {
21. for (j=0; j<2; j++) //perulangan untuk kolom
22. { printf("masukkan isi matriks A [%d][%d]
",i,j); //meminta inputan dari user untuk isi dari setiap matrik a
23. scanf("%f",&mat_a[i][j]); //menyimpan data inputan
24. }
25. }
26. printf("\n"); //baris baru
27.
28. //input matrix b 2x2
29. for (i=0; i<2; i++) //perulangan untuk baris
30. {
31. for (j=0; j<2; j++) //perulangan untuk kolom
32. {
33. printf("masukkan isi matriks B [%d][%d] ",i,j); //meminta
inputan dari user untuk isi dari setiap matrik b
34. scanf("%f",&mat_b[i][j]); //menyimpan data inputan
35. }
36. }
37.
38. //pertambahan matrix
39. printf("\n hasil pertambahan \n\n");
40. for (i=0; i<2; i++)
41. {
42. for (j=0; j<2; j++)
43. {
44. hasil[i][j]=mat_a[i][j]+mat_b[i][j]; //menampilkan hasil
pertambahan matrik a dan b
45. }
46. }
47. printf("%2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \t %2.0f\t %2.0f\t
\n",mat_a[0][0],mat_a[0][1], mat_b[0][0], mat_b[0][1], hasil[0][0], hasil[0][1]);
48. printf("\t\t + \t\t\t =\n");
49. printf("%2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \t %2.0f\t %2.0f\t
\n\n\n",mat_a[1][0],mat_a[1][1], mat_b[1][0], mat_b[1][1], hasil[1][0], hasil[1][1]);
50. break;
51.
52. case 2: //kondisi yang dijalankan jika user menginputkan angka 2
53. //input matrix a 2x2
54. for (i=0; i<2; i++)
55. {
56. for (j=0; j<2; j++)
57. {
58. printf("masukkan isi matriks A [%d][%d] ",i,j);
59. scanf("%f",&mat_a[i][j]);
60. }
61. }
62. printf("\n");
63.
64. //input matrix b 2x2
65. for (i=0; i<2; i++)
66. {
67. for (j=0; j<2; j++)
68. {
69. printf("masukkan isi matriks B [%d][%d] ",i,j);
70. scanf("%f",&mat_b[i][j]);
71. }
72. }
73.
74. //pengurangan matrix
75. printf("\n hasil pengurangan \n\n");
76. for (i=0; i<2; i++)
77. {
78. for (j=0; j<2; j++)
79. {
80. hasil[i][j]=mat_a[i][j]-mat_b[i][j]; //menampilkan hasil
pengurangan matrik a dengan b
81. }
82. }
83. printf("%2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \t %2.0f\t %2.0f\t
\n",mat_a[0][0],mat_a[0][1], mat_b[0][0], mat_b[0][1], hasil[0][0], hasil[0][1]);
84. printf("\t\t - \t\t\t =\n");
85. printf("%2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \t %2.0f\t %2.0f\t
\n\n\n",mat_a[1][0],mat_a[1][1], mat_b[1][0], mat_b[1][1], hasil[1][0], hasil[1][1]);
86. break;
87.
88. case 3: //kondisi yang dijalankan jika user menginputkan angka 3
89. //input matrix a 2x2
90. for (i=0; i<2; i++)
91. {
92. for (j=0; j<2; j++)
93. {
94. printf("masukkan isi matriks A [%d][%d] ",i,j);
95. scanf("%f",&mat_a[i][j]);
96. }
97. }
98. printf("\n");
99.
100. //input matrix b 2x2
101. for (i=0; i<2; i++)
102. {
103. for (j=0; j<2; j++)
104. {
105. printf("masukkan isi matriks B [%d][%d] ",i,j);
106. scanf("%f",&mat_b[i][j]);
107. }
108. }
109.
110. //perkalian matrix
111. printf("\n hasil perkalian matrik A dan B \n\n");
112. //proses mencari hasil perkalian matrix
113. for(i=0; i<2; i++)
114. {
115. for (j=0; j<2; j++)
116. {
117. for (k=0; k<2; k++)
118.
119. hasil[i][j]=mat_a[i][k]*mat_b[k][j]+mat_a[k][i]*mat_b[k][j];
120. }
121. }
122.
123. //menampilkan hasil perkalian matrix a dan matrix b
124. //printf("= \n\n");
125. for(i=0;i<2;i++)
126. {
127. for(j=0;j<2;j++)
128. {
129. hasil[i][j]=0;
130.
131. for(k=0;k<2;k++)
132. {
133.
134. hasil[i][j]=hasil[i][j]+mat_a[i][k]*mat_b[k][j];
135. }
136. }
137. }
138. printf("%2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \t %2.0f\t %2.0f\t
\n",mat_a[0][0],mat_a[0][1], mat_b[0][0], mat_b[0][1], hasil[0][0], hasil[0][1]);
139. printf("\t\t x \t\t\t =\n");
140. printf("%2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \t %2.0f\t %2.0f\t
\n\n\n",mat_a[1][0],mat_a[1][1], mat_b[1][0], mat_b[1][1], hasil[1][0], hasil[1][1]);
141. break;
142.
143. case 4: //kondisi yang dijalankan jika user menginputkan angka 4
144. //input matrix a 2x2
145. for (i=0; i<2; i++)
146. {
147. for (j=0; j<2; j++)
148. {
149. printf("masukkan isi matriks A [%d][%d] ",i,j);
150. scanf("%f",&mat_a[i][j]);
151. }
152. }
153. printf("\n");
154.
155.
156. //input matrix b 2x2
157. for (i=0; i<2; i++)
158. {
159. for (j=0; j<2; j++)
160. {
161. printf("masukkan isi matriks B [%d][%d] ",i,j);
162. scanf("%f",&mat_b[i][j]);
163. }
164. }
165.
166. detB = 1/((mat_b[0][0]*mat_b[1][1])-(mat_b[0][1]*mat_b[1][0]));
167. //mencari nilai determinan dari matrik B
168.
169. mat_b_invers[0][0] = detB*mat_b[1][1]; //mencari invers setiap nilai
pada matrik B
170. mat_b_invers[0][1] = detB*(-mat_b[0][1]);
171. mat_b_invers[1][0] = detB*(-mat_b[1][0]);
172. mat_b_invers[1][1] = detB*mat_b[0][0];
173.
174. printf("\nHasil Pembagian:\n\n");
175. for (i=0; i<2; i++)
176. {
177. for (j=0; j<2; j++)
178. {
179. hasil[i][j]=0;
180. for (k=0; k<2; k++)
181. {
182.
hasil[i][j]+=mat_a[i][k]*mat_b_invers[k][j] //mencari hasil pembagian akhir dari matrik
a dan b dengan mengalikan matrik a dengan hasil invers matrik B
183. }
184. }
185. }
186. printf("%2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \t %2.0f\t %2.0f\t
\n",mat_a[0][0],mat_a[0][1], mat_b[0][0], mat_b[0][1], hasil[0][0], hasil[0][1]);
187. printf("\t\t : \t\t\t =\n");
188. printf("%2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \t %2.0f\t %2.0f\t
\n\n\n",mat_a[1][0],mat_a[1][1], mat_b[1][0], mat_b[1][1], hasil[1][0], hasil[1][1]);
189. break;
190. case 0: //jika user menginputkan angka 0
191. keluar=0; //kondisi variabel keluar bernilai 0
192. system("exit"); //mengeluarkan program
193. break;
194. default: //jika user menginputkn angka diluar pilihan
195. printf("Anda menginputkan diluar menu pilihan!!\n\n");
196. break;
197. }
198.
199. }
200. while (keluar==1); //mengulang kondisi diatas jika uaser menginputkan angka 1-
4
201. system("pause"); //menahan eksekusi program
202. return(0); //mengembalikan nlai fungsi utama yang bertipe integer
203. }


/* Program perkalian matriks dua dimensi */
#include "stdio.h"
#include "conio.h"
void main()
{ int A[3][3], B[3][3], C[3][3], i, j, p;
clrscr();
printf("============================== \n");
printf(" Program Perkalian Matrik 3 x 3 \n");
printf("============================== \n \n");

/******* Masukkan matriks A *******/
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
{ printf("input data matrik A[%i][%i] : ",i+1,j+1);
fflush(stdin);scanf("%i",&A[i][j]);
}
}
printf("\n");


/******** Masukkan matriks B ********/
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
{ printf("input data matrik B[%i][%i] : ",i+1,j+1);
fflush(stdin);scanf("%i",&B[i][j]);
}
}

/******** Proses perkalian matriks A dan B ********/
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
{ C[i][j]=0;
for (p=0;p<3;p++)
{
C[i][j]=C[i][j]+(A[i][p]*B[p][j]);
}
}
}

/******** Cetak isi matriks A ********/
printf("\n matrik A\n");
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
printf("%6i",A[i][j]);
printf("\n");
}
printf("\n");

/******** Cetak isi matriks B *******/
printf("\n matrik B\n");
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
printf("%6i",B[i][j]);printf("\n");
}
printf("\n");

/******** Cetak hasil perkalian matriks A dan B *******/
printf("\n matrik perkalian AxB\n");
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
printf("%6i",C[i][j]);
printf("\n");
}
printf("\n\n");
printf("============================\n");
printf("Press ENTER to Exit!");
getch();
}
#include <stdio.h>
#define maks 100
main()
{
int matriks1[maks][maks], matriks2[maks][maks];
int bil, i,j, x, y, a,b;

printf("Masukkan ukuran matriks 1 : ");
scanf("%d %d",&x, &y);

printf("nnMatriks Pertama : n");
for (i=0;i<x;i++){
for (j=0;j<y;j++){
printf("Matriks [%d][%d] : ",i,j);
scanf("%d",&matriks1[i][j]);
}
}

printf("nnMasukkan ukuran matriks 2 : ");
scanf("%d %d",&a, &b);

printf("nnMatriks Kedua : n");
for (i=0;i<a;i++){
for (j=0;j<b;j++){
printf("Matriks [%d][%d] : ",i,j);
scanf("%d",&matriks2[i][j]) ;
}
}
//jumlah_matriks(x,matriks1, matriks2);
kali_matriks(x,a,b, matriks1, matriks2);
getch();
return 0;
}

int kali_matriks(int x, int y, int z, int matriks_1[maks][maks] , int
matriks_2[maks][maks])
{
int i, j, k, matriks_3[maks][maks];
printf("nnPerkalian Matriks : n");
for (i=0;i<x;i++){
for (j=0;j<z;j++){
matriks_3[i][j] = 0;
for (k=0;k<y;k++)
{
matriks_3[i][j] += matriks_1[i][k] * matriks_2[k][j];
}
printf("%d", matriks_3[i][j]);
if (j == (z-1)) printf("n");
else printf(" ");
}
}
}

#include <stdio.h>

int main(){
int baris,kolom,nb,nk;
printf("Jumlah Baris = ");scanf("%d", &nb);
printf("Jumlah Baris = ");scanf("%d", &nk);
int a[nb][nk],b[nb][nk],c[nb][nk];
for(baris=0; baris<nb; baris++){
for(kolom=0; kolom<nk; kolom++){
printf("Masukkan Matriks A(%d,%d) =
",baris,kolom);scanf("%d",&a[baris][kolom]);
}
}
printf("Matriks A = \n");
for(baris=0; baris<nb; baris++){
for(kolom=0; kolom<nk; kolom++){
printf("%d\t",a[baris][kolom]);
}printf("\n");
}
for(baris=0; baris<nb; baris++){
for(kolom=0; kolom<nk; kolom++){
printf("Masukkan Matriks B(%d,%d) =
",baris,kolom);scanf("%d",&b[baris][kolom]);
}
}
printf("Matriks B = \n");
for(baris=0; baris<nb; baris++){
for(kolom=0; kolom<nk; kolom++){
printf("%d\t",b[baris][kolom]);
}printf("\n");
}
//proses perkalian
for(baris=0; baris<nb; baris++){
for(kolom=0; kolom<nk; kolom++){
c[baris][kolom]=0;
for(int x=0; x<nk; x++){

c[baris][kolom]=c[baris][kolom]+a[baris][x]*b[x][kolom];
}
}
}
printf("\n");
printf("Hasil perkalian Matriks A&B = \n");
for(baris=0; baris<nb; baris++){
for(kolom=0; kolom<nk; kolom++){
printf("%d\t",c[baris][kolom]);
}printf("\n");
}

}

Anda mungkin juga menyukai