-
Notifications
You must be signed in to change notification settings - Fork 0
/
Matriks.cpp
134 lines (111 loc) · 4.28 KB
/
Matriks.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <iostream>
using namespace std;
const int MAX_ROWS = 10;
const int MAX_COLS = 10;
// Fungsi untuk menginput matriks
void inputMatrix(int matrix[][MAX_COLS], int numRows, int numCols) {
cout << "Masukkan elemen matriks:" << endl;
for (int i = 0; i < numRows; ++i) {
for (int j = 0; j < numCols; ++j) {
cin >> matrix[i][j];
}
}
}
// Fungsi untuk menampilkan matriks
void printMatrix(int matrix[][MAX_COLS], int numRows, int numCols) {
for (int i = 0; i < numRows; ++i) {
for (int j = 0; j < numCols; ++j) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
}
// Fungsi untuk mengurangkan dua matriks
void subtractMatrix(int A[][MAX_COLS], int B[][MAX_COLS], int C[][MAX_COLS], int numRows, int numCols) {
for (int i = 0; i < numRows; ++i) {
for (int j = 0; j < numCols; ++j) {
C[i][j] = A[i][j] - B[i][j];
}
}
}
// Fungsi untuk mengalikan dua matriks
void multiplyMatrix(int A[][MAX_COLS], int B[][MAX_COLS], int C[][MAX_COLS], int numRowsA, int numColsA, int numColsB) {
for (int i = 0; i < numRowsA; ++i) {
for (int j = 0; j < numColsB; ++j) {
C[i][j] = 0;
for (int k = 0; k < numColsA; ++k) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
}
// Fungsi untuk menjumlahkan dua matriks
void addMatrix(int A[][MAX_COLS], int B[][MAX_COLS], int C[][MAX_COLS], int numRows, int numCols) {
for (int i = 0; i < numRows; ++i) {
for (int j = 0; j < numCols; ++j) {
C[i][j] = A[i][j] + B[i][j];
}
}
}
// Fungsi untuk membagi dua matriks
void divideMatrix(int A[][MAX_COLS], int B[][MAX_COLS], int C[][MAX_COLS], int numRows, int numCols) {
for (int i = 0; i < numRows; ++i) {
for (int j = 0; j < numCols; ++j) {
if (B[i][j] == 0) {
cout << "Operasi pembagian tidak bisa dilakukan karena matriks B memiliki elemen 0." << endl;
return;
}
C[i][j] = A[i][j] / B[i][j];
}
}
}
int main() {
int matrixA[MAX_ROWS][MAX_COLS];
int matrixB[MAX_ROWS][MAX_COLS];
int result[MAX_ROWS][MAX_COLS];
int numRowsA, numColsA, numRowsB, numColsB;
cout << "Masukkan jumlah baris matriks A: ";
cin >> numRowsA;
cout << "Masukkan jumlah kolom matriks A: ";
cin >> numColsA;
cout << "Masukkan jumlah baris matriks B: ";
cin >> numRowsB;
cout << "Masukkan jumlah kolom matriks B: ";
cin >> numColsB;
if (numColsA != numRowsB) {
cout << "Operasi perkalian matriks tidak bisa dilakukan karena jumlah kolom matriks A tidak sama dengan jumlah baris matriks B." << endl;
return 1;
}
if (numRowsA > MAX_ROWS || numColsA > MAX_COLS || numRowsB > MAX_ROWS || numColsB > MAX_COLS) {
cout << "Ukuran matriks terlalu besar. Maksimum " << MAX_ROWS << " baris dan " << MAX_COLS << " kolom." << endl;
return 1;
}
cout << "Masukkan elemen matriks A:" << endl;
inputMatrix(matrixA, numRowsA, numColsA);
cout << "Masukkan elemen matriks B:" << endl;
inputMatrix(matrixB, numRowsB, numColsB);
// Operasi pengurangan matriks
if (numRowsA == numRowsB && numColsA == numColsB) {
subtractMatrix(matrixA, matrixB, result, numRowsA, numColsA);
cout << "Hasil pengurangan matriks A dan B:" << endl;
printMatrix(result, numRowsA, numColsA);
} else {
cout << "Operasi pengurangan matriks tidak bisa dilakukan karena ukuran matriks tidak sesuai." << endl;
}
if (numRowsA == numRowsB && numColsA == numColsB) {
addMatrix(matrixA, matrixB, result, numRowsA, numColsA);
cout << "Hasil penjumlahan matriks A dan B:" << endl;
printMatrix(result, numRowsA, numColsA);
} else {
cout << "Operasi penjumlahan matriks tidak bisa dilakukan karena ukuran matriks tidak sesuai." << endl;
}
// Pembagian matriks
divideMatrix(matrixA, matrixB, result, numRowsA, numColsA);
cout << "Hasil pembagian matriks A dan B:" << endl;
printMatrix(result, numRowsA, numColsA);
// Operasi perkalian matriks
multiplyMatrix(matrixA, matrixB, result, numRowsA, numColsA, numColsB);
cout << "Hasil perkalian matriks A dan B:" << endl;
printMatrix(result, numRowsA, numColsB);
return 0;
}