Rabu, 08 Maret 2017

Komputasi Jumlah dan Selisih Dua Buah Matriks Menggunakan Bahasa Pemrograman C++


Dua buah matriks yang akan dikenai operasi penjumlahan dan pengurangan haruslah berukuran sama. Dua buah matriks dikatakan memiliki ukuran yang sama jika dan hanya jika jumlah baris matriks pertama sama dengan jumlah baris matriks kedua dan jumlah kolom matriks pertama sama dengan jumlah kolom matriks kedua.

Matriks $\mathbf{A}$ berukuran $3 \times 3$:
\begin{align}
\mathbf{A} = \begin{bmatrix}
a_{11} & a_{12} & a_{13} \\
a_{21} & a_{22} & a_{23} \\
a_{31} & a_{32} & a_{33}
\end{bmatrix} \label{matriksA}
\end{align}
dan matriks $\mathbf{B}$ berukuran $3 \times 3$:
\begin{align}
\mathbf{B} = \begin{bmatrix}
b_{11} & b_{12} & b_{13} \\
b_{21} & b_{22} & b_{23} \\
b_{31} & b_{32} & b_{33}
\end{bmatrix} \label{matriksB}
\end{align}
Jika matriks $\mathbf{C}= \mathbf{A} + \mathbf{B}$ maka elemen-elemen matriks $\mathbf{C}$ dapat dicari dengan cara:
\begin{align}
c_{11} &= a_{11} + b_{11} \notag \\
c_{12} &= a_{12} + b_{12} \notag \\
c_{13} &= a_{13} + b_{13} \notag \\
c_{21} &= a_{21} + b_{21} \notag \\
c_{22} &= a_{22} + b_{22} \label{matriksC} \\
c_{23} &= a_{23} + b_{23} \notag \\
c_{31} &= a_{31} + b_{31} \notag \\
c_{32} &= a_{32} + b_{32} \notag \\
c_{33} &= a_{33} + b_{33} \notag
\end{align}
Jika matriks $\mathbf{D}= \mathbf{A} - \mathbf{B}$ maka elemen-elemen matriks $\mathbf{D}$ dapat dicari dengan cara:
\begin{align}
d_{11} &= a_{11} - b_{11} \notag \\
d_{12} &= a_{12} - b_{12} \notag \\
d_{13} &= a_{13} - b_{13} \notag \\
d_{21} &= a_{21} - b_{21} \notag \\
d_{22} &= a_{22} - b_{22} \label{matriksD} \\
d_{23} &= a_{23} - b_{23} \notag \\
d_{31} &= a_{31} - b_{31} \notag \\
d_{32} &= a_{32} - b_{32} \notag \\
d_{33} &= a_{33} - b_{33} \notag
\end{align}

Dengan menggunakan ($\ref{matriksC}$) dan ($\ref{matriksD}$), kita akan membuat sebuah program untuk mencari jumlah dan selisih dua buah matriks. Karena dalam dunia komputasi, setiap elemen dua buah matriks yang akan dicari jumlah dan selisihnya harus diketahui nilainya maka kita terlebih dahulu beri nilai tiap elemen kedua matriks yang terdapat dalam ($\ref{matriksA}$) dan ($\ref{matriksB}$), yaitu:
\begin{align}
\mathbf{A} &= \begin{bmatrix}
3 & -1 & 4 \\
5 & 0 & 2 \\
8 & 9 & 4
\end{bmatrix} \label{nilaiA} \\
\mathbf{B} &= \begin{bmatrix}
3 & 8 & 1 \\
0 & 4 & -5 \\
-2 & 3 & 3
\end{bmatrix} \label{nilaiB}
\end{align}

Script Dasar


Pada bagian ini, kita akan langsung memasukkan rumus yang ada dalam ($\ref{matriksC}$) dan ($\ref{matriksD}$) ke dalam program dan tanpa menggunakan loop.

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
#include<iostream>
#include<cmath>
using namespace std;

int main()
{
 int A[10][10], B[10][10], C[10][10], D[10][10];
    cout << "\n===============================================";
    cout << "\n             ASRI FISIKA 12 UNHAS              ";
    cout << "\n        JUMLAH DAN SELISIH 2 MATRIKS           ";
    cout << "\n         MAKASSAR, 15 DESEMBER 2016            ";
    cout << "\n===============================================";
    cout << endl;
    // Inisialisasi matriks A
    A[0][0] = 3;
    A[0][1] = -1;
    A[0][2] = 4;
    A[1][0] = 5;
    A[1][1] = 0;
    A[1][2] = 2;
    A[2][0] = 8;
    A[2][1] = 9;
    A[2][2] = 4;
    // Inisialisasi matriks B
    B[0][0] = 3;
    B[0][1] = 8;
    B[0][2] = 1;
    B[1][0] = 0;
    B[1][1] = 4;
    B[1][2] = -5;
    B[2][0] = -2;
    B[2][1] = 3;
    B[2][2] = 3;
    // Proses penjumlahan matriks A dan B
    C[0][0] = A[0][0] + B[0][0];
    C[0][1] = A[0][1] + B[0][1];
    C[0][2] = A[0][2] + B[0][2];
    C[1][0] = A[1][0] + B[1][0];
    C[1][1] = A[1][1] + B[1][1];
    C[1][2] = A[1][2] + B[1][2];
    C[2][0] = A[2][0] + B[2][0];
    C[2][1] = A[2][1] + B[2][1];
    C[2][2] = A[2][2] + B[2][2];
    // Proses pencarian selisih matriks A dan B
    D[0][0] = A[0][0] - B[0][0];
    D[0][1] = A[0][1] - B[0][1];
    D[0][2] = A[0][2] - B[0][2];
    D[1][0] = A[1][0] - B[1][0];
    D[1][1] = A[1][1] - B[1][1];
    D[1][2] = A[1][2] - B[1][2];
    D[2][0] = A[2][0] - B[2][0];
    D[2][1] = A[2][1] - B[2][1];
    D[2][2] = A[2][2] - B[2][2];
    // Menampilkan matriks A
    cout << "\nMatriks A :\n" << endl;
    cout << A[0][0] << "\t" << A[0][1] << "\t" << A[0][2] << endl;
    cout << A[1][0] << "\t" << A[1][1] << "\t" << A[1][2] << endl;
    cout << A[2][0] << "\t" << A[2][1] << "\t" << A[2][2] << endl;
    // Menampilkan matriks B
    cout << "\nMatriks B :\n" << endl;
    cout << B[0][0] << "\t" << B[0][1] << "\t" << B[0][2] << endl;
    cout << B[1][0] << "\t" << B[1][1] << "\t" << B[1][2] << endl;
    cout << B[2][0] << "\t" << B[2][1] << "\t" << B[2][2] << endl;
    // Menampilkan hasil penjumlahan
    cout << "\nJumlah matriks A dan B :\n" << endl;
    cout << C[0][0] << "\t" << C[0][1] << "\t" << C[0][2] << endl;
    cout << C[1][0] << "\t" << C[1][1] << "\t" << C[1][2] << endl;
    cout << C[2][0] << "\t" << C[2][1] << "\t" << C[2][2] << endl;
    // Menampilkan selisih
    cout << "\nSelisih matriks A dan B :\n" << endl;
    cout << D[0][0] << "\t" << D[0][1] << "\t" << D[0][2] << endl;
    cout << D[1][0] << "\t" << D[1][1] << "\t" << D[1][2] << endl;
    cout << D[2][0] << "\t" << D[2][1] << "\t" << D[2][2] << endl;
    cout << endl;
    return 0;
}

Penggunaan Loop dalam Script


Pada script di atas, perhatikanlah kelompok baris berikut:
  1. Baris ke-35 Sampai baris ke-43,
  2. Baris ke-45 sampai baris ke-53,
  3. Baris ke-56 sampai baris ke-58,
  4. Baris ke-61 sampai baris ke-63,
  5. Baris ke-66 sampai baris ke-68,
  6. Baris ke-71 sampai baris ke-73.
Kelompok-kelompok baris di atas memiliki pola sehingga dapat diubah ke dalam bentuk loop.

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
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int A[10][10], B[10][10], C[10][10], D[10][10];
    int i,j,m,n;
    m = 3;
    n = 3;
    cout << "\n===============================================";
    cout << "\n             ASRI FISIKA 12 UNHAS              ";
    cout << "\n        JUMLAH DAN SELISIH 2 MATRIKS           ";
    cout << "\n      PONDOK NURLINA, 18 DESEMBER 2016         ";
    cout << "\n===============================================";
    cout << endl;
    // Inisialisasi matriks A
    A[0][0] = 3;
    A[0][1] = -1;
    A[0][2] = 4;
    A[1][0] = 5;
    A[1][1] = 0;
    A[1][2] = 2;
    A[2][0] = 8;
    A[2][1] = 9;
    A[2][2] = 4;
    // Inisialisasi matriks B
    B[0][0] = 3;
    B[0][1] = 8;
    B[0][2] = 1;
    B[1][0] = 0;
    B[1][1] = 4;
    B[1][2] = -5;
    B[2][0] = -2;
    B[2][1] = 3;
    B[2][2] = 3;
    // Proses penjumlahan matriks A dan B
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        C[i][j] = A[i][j] + B[i][j];
    }
    // Proses pencarian selisih matriks A dan B
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        D[i][j] = A[i][j] - B[i][j];
    }
    // Menampilkan matriks A
    cout << "\nMatriks A :\n" << endl;
    for(i=0;i<m;i++)
    {
        for(j=0; j<n; j++)
        cout << A[i][j] << "\t";
        cout << endl;
    }
    // Menampilkan matriks B
    cout << "\n\nMatriks B :\n" << endl;
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        cout << B[i][j] << "\t";
        cout << endl;
    }
    // Menampilkan hasil penjumlahan
    cout << "\nJumlah matriks A dan B :\n" << endl;
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        cout << C[i][j] << "\t";
        cout << endl;
    }
    // Menampilkan selisih
    cout << "\nSelisih matriks A dan B :\n" << endl;
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        cout << D[i][j] << "\t";
        cout << endl;
    }
    cout << endl;
    return 0;
}

Gambar di bagian atas artikel ini memperlihatkan hasil dari program.

Sekian postingan kali ini. Jika ada yang kurang jelas, silakan bertanya di kolom komentar. Semoga bermanfaat!

Tidak ada komentar: