Latihan Kode Program C++: Perkalian Matriks 2×2

Latihan soal C++ di Duniailkom kali ini akan membahas cara membuat program perkalian matriks 2×2. Materi ini menguji pemahaman seputar proses input/input, logika matematika, cara penggunaan array dan konsep perulangan (looping).


Soal Perkalian Matriks 2×2

Buatlah kode program C++ untuk perkalian matriks 2×2. Agar lebih menantang, buat dalam 2 versi:

  1. Matriks di buat dari dalam kode program
  2. Matriks di input oleh user

Soal no 1 lebih sederhana karena nilai matriks cukup ditulis langsung ke dalam kode program. Sedangkan untuk soal nomor 2, nilai matriks akan di input oleh user.

Berikut contoh tampilan akhir yang diinginkan (matriks di tulis langsung ke dalam kode program) :

##  Program C++ Perkalian Matriks 2x2  ##
=========================================

Matriks A:
  1   2
  3   4

Matriks B:
  5   6
  7   8

Matriks A * Matriks B:
 19  22
 43  50

Berikut contoh tampilan akhir yang diinginkan (matriks di input oleh user) :

##  Program C++ Perkalian Matriks 2x2  ##
=========================================

  Input Matriks A
-------------------
Baris 1, kolom 1 = 4
Baris 1, kolom 2 = 3
Baris 2, kolom 1 = 2
Baris 2, kolom 2 = 1

  Input Matriks B
-------------------
Baris 1, kolom 1 = 10
Baris 1, kolom 2 = 20
Baris 2, kolom 1 = 30
Baris 2, kolom 2 = 40

Matriks A:
  4   3
  2   1

Matriks B:
 10  20
 30  40

Matriks A * Matriks B:
130 200
 50  80

Tips Membuat Kode Program Perkalian Matriks 2 x 2

Soal ini melatih pemahaman tentang array 2 dimensi dan perulangan bersarang (nested loop). Berikut tutorial pendahuluan yang bisa diikuti:

Mengutip wikipedia, perkalian matriks adalah suatu operasi biner dari dua matriks yang menghasilkan sebuah matriks. Agar dua matriks dapat dikalikan, banyaknya kolom pada matriks pertama harus sama dengan banyaknya baris pada matriks kedua.

Rumus perkalian matriks adalah: kalikan setiap elemen baris pertama di matriks pertama dengan setiap elemen kolom pertama di matriks kedua, lalu jumlahkan hasilnya. Hasil dari perkalian akan menjadi elemen pada baris pertama dan kolom pertama pada matriks hasil. Lanjutkan proses ini untuk semua elemen matriks.

Berikut ilustrasi perkalian matrik 2×2:

Contoh rumus perkalian matriks

Contoh rumus perkalian matriks (sumber gambar: math.libretexts.org)

Untuk membuat kode program C++ perkalian matriks, kita perlu perulangan bersarang (nested loop) untuk proses input dan proses menampilkan nilai matriks. Silahkan coba rancang sebentar kode programnya.


Kode Program C++ Perkalian Matriks 2 x 2 (statis)

Berikut salah satu solusi dari soal membuat perkalian matriks 2×2 dalam bahasa pemrograman C++ (versi statis, matriks ditulis langsung dari dalam kode program):

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
  cout << "##  Program C++ Perkalian Matriks 2x2  ##" << endl;
  cout << "=========================================" << endl;
  cout << endl;

  int matriksA[2][2], matriksB[2][2], matriksHasil[2][2],i, j, k;

  // isi elemen matriksA
  matriksA[0][0] = 1;
  matriksA[0][1] = 2;
  matriksA[1][0] = 3;
  matriksA[1][1] = 4;

  // isi elemen matriksB
  matriksB[0][0] = 5;
  matriksB[0][1] = 6;
  matriksB[1][0] = 7;
  matriksB[1][1] = 8;

  // tampilkan isi matriksA
  cout << "Matriks A: " << endl;
  for(i = 0; i < 2 ; i++){
    for(j = 0; j < 2; j++){
      cout << setw(3) << matriksA[i][j] << " ";
    }
    cout << endl;
  }
  cout << endl;

  // tampilkan isi matriksB
  cout << "Matriks B: " << endl;
  for(i = 0; i < 2 ; i++){
    for(j = 0; j < 2; j++){
      cout << setw(3) << matriksB[i][j] << " ";
    }
    cout << endl;
  }
  cout << endl;

  // proses perhitungan matriksA * matriksB
  for(i = 0; i < 2 ; i++){
    for(j = 0; j < 2; j++){
      for(k = 0; k < 2; k++){
        matriksHasil[i][j] = matriksHasil[i][j] + (matriksA[i][k] * matriksB[k][j]);
      }
    }
  }

  // tampilkan isi matriksHasil
  cout << "Matriks A * Matriks B: " << endl;
  for(i = 0; i < 2 ; i++){
    for(j = 0; j < 2; j++){
      cout << setw(3) << matriksHasil[i][j] << " ";
    }
    cout << endl;
  }

  return 0;
}

Latihan Kode Program CPP - Perkalian Matriks 2×2 (statis)

Selain header #include <iostream>, di awal kode program juga ada perintah #include <iomanip>. Header ini diperlukan karena nantinya saya akan mengakses perintah setw() untuk merapikan tampilan matriks.

Di baris 12 terdapat deklarasi 6 variabel: matriksA, matriksB, matriksHasil, i,  j, dan k.

Variabel matriksA dan MatriksB akan dipakai untuk menampung semua element matriks. Karena kita membuat matriks 2×2, variabel ini diset sebagai array dengan perintah matriksA[2][2] dan matriksB[2][2]. Total, terdapat 4 elemen yang bisa ditampung.

Variabel matriksHasil disiapkan untuk menampung hasil perkalian matriksA dengan MatriksB.

Sedangkan variabel i,  j, dan k disiapkan sebagai variabel counter untuk proses perulangan.

Proses pengisian elemen matriksA dan matriksB dilakukan antara baris 15-24. Harap selalu di ingat bahwa index array mulai dari 0, bukan 1.

Di baris 38-43 terdapat perulangan for untuk menampilkan semua isi elemen matriksA dan MatriksB. Ini adalah perulangan bersarang (nested loop), dimana ada perulangan di dalam perulangan.

Perulangan luar dengan variabel counter i dipakai untuk mengakses baris matriks, dimulai dari i = 1 hingga i < 2. Sedangkan perulangan dalam dengan variabel counter j dipakai untuk mengakses kolom matriks. Hal yang sama juga dilakukan untuk matriksB dengan perulangan for di baris 38-42.

Tambahan perintah setw(3) berguna untuk mengatur tampilan angka matriks rata kiri sebanyak 3 digit.

Operasi perkalian matriksA dengan matriksB dilakukan oleh perulangan for di baris 47-53. Kali ini kita butuh 3 perulangan bersarang dengan variabel counter i, j dan k. Hasil perkalian akan disimpan ke dalam matriksHasil, untuk kemudian ditampilkan di akhir kode program.


Kode Program C++ Perkalian Matriks 2 x 2 (dinamis)

Berikut salah satu solusi dari soal membuat perkalian matriks 2×2 dalam bahasa pemrograman C++ (versi dinamis, nilai elemen matriks akan di input oleh user):

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
  cout << "##  Program C++ Perkalian Matriks 2x2  ##" << endl;
  cout << "=========================================" << endl;
  cout << endl;

  int matriksA[2][2], matriksB[2][2], matriksHasil[2][2],i, j, k;

  // proses input elemen matriksA
  cout << "  Input Matriks A  "<< endl;
  cout << "-------------------"<< endl;
  for(i = 0; i < 2 ; i++){
    for(j = 0; j < 2; j++){
      cout << "Baris " <<i+1<<", kolom "<<j+1<< " = ";
      cin >> matriksA[i][j];
    }
  }
  cout << endl;

  // proses input elemen matriksB
  cout << "  Input Matriks B  "<< endl;
  cout << "-------------------"<< endl;
  for(i = 0; i < 2 ; i++){
    for(j = 0; j < 2; j++){
      cout << "Baris " <<i+1<<", kolom "<<j+1<< " = ";
      cin >> matriksB[i][j];
    }
  }
  cout << endl;

  // tampilkan isi matriksA
  cout << "Matriks A: " << endl;
  for(i = 0; i < 2 ; i++){
    for(j = 0; j < 2; j++){
      cout << setw(3) << matriksA[i][j] << " ";
    }
    cout << endl;
  }
  cout << endl;

  // tampilkan isi matriksB
  cout << "Matriks B: " << endl;
  for(i = 0; i < 2 ; i++){
    for(j = 0; j < 2; j++){
      cout << setw(3) << matriksB[i][j] << " ";
    }
    cout << endl;
  }
  cout << endl;

  // proses perhitungan matriksA * matriksB
  for(i = 0; i < 2 ; i++){
    for(j = 0; j < 2; j++){
      for(k = 0; k < 2; k++){
        matriksHasil[i][j] = matriksHasil[i][j] + (matriksA[i][k] * matriksB[k][j]);
      }
    }
  }

  // tampilkan isi matriksHasil
  cout << "Matriks A * Matriks B: " << endl;
  for(i = 0; i < 2 ; i++){
    for(j = 0; j < 2; j++){
      cout << setw(3) << matriksHasil[i][j] << " ";
    }
    cout << endl;
  }

  return 0;
}

Latihan Kode Program CPP - Perkalian Matriks 2×2 (dinamis)

Untuk versi matriks dinamis, kode programnya sedikit lebih panjang karena kita perlu menambah 2 perulangan for untuk proses input. Selain itu sisa kode program sama seperti di versi statis.


Demikian soal dan jawaban kode program perkalian matriks 2×2 dalam bahasa C++.

Latihan ini masih punya berbagai variasi lain, misalnya membuat pengurangan matriks, atau perkalian matriks 3×3. Kode programnya akan kita bahas dalam latihan terpisah.

Add Comment