Latihan soal C++ di Duniailkom kali ini akan membahas cara membuat program penambahan matriks 2×2. Materi ini menguji pemahaman seputar proses input/input, operator aritmatika, cara penggunaan array dan konsep perulangan (looping).
Soal Penambahan Matriks 2×2
Buatlah kode program C++ untuk penambahan matriks 2×2. Agar lebih menantang, buat dalam 2 versi:
- Matriks di buat dari dalam kode program
- 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++ Penambahan Matriks 2x2 ## ========================================== Matriks A: 5 10 15 20 Matriks B: 11 22 33 44 Matriks A + Matriks B: 16 32 48 64
Berikut contoh tampilan akhir yang diinginkan (matriks di input oleh user) :
## Program C++ Penambahan Matriks 2x2 ## ========================================== Input Matriks A ------------------- Baris 1, kolom 1 = 10 Baris 1, kolom 2 = 20 Baris 2, kolom 1 = 30 Baris 2, kolom 2 = 40 Input Matriks B ------------------- Baris 1, kolom 1 = 75 Baris 1, kolom 2 = 90 Baris 2, kolom 1 = 20 Baris 2, kolom 2 = 45 Matriks A: 10 20 30 40 Matriks B: 75 90 20 45 Matriks A + Matriks B: 85 110 50 85
Tips Membuat Kode Program Penambahan Matriks 2 x 2
Soal ini melatih pemahaman tentang array 2 dimensi dan perulangan bersarang (nested loop). Berikut tutorial pendahuluan yang bisa diikuti:
- Pengertian Variabel dalam Bahasa C++
- Tipe Data Array Bahasa C++
- Perulangan FOR Bahasa C++
- Cara Membuat Array 2 Dimensi
- Cara Membuat Matriks 2×2
Mengutip wikipedia, matriks adalah susunan bilangan, simbol, atau ekspresi yang disusun dalam baris dan kolom sehingga membentuk suatu bangun persegi.
Kita perlu perulangan bersarang (nested loop) dalam kode program ini. Baik untuk proses input dan proses menampilkan nilai matriks. Operasi penambahan matriks dilakukan dengan menjumlahkan komponen-komponennya yang seletak, misalnya baris 1 kolom 1 di matriksA + baris 1 kolom 1 di matriksB.
Silahkan coba rancang sebentar kode programnya.
Kode Program C++ Penambahan Matriks 2 x 2 (statis)
Berikut salah satu solusi dari soal membuat penambahan 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++ Penambahan Matriks 2x2 ##" << endl; cout << "==========================================" << endl; cout << endl; int matriksA[2][2], matriksB[2][2], i, j; // isi elemen matriksA matriksA[0][0] = 5; matriksA[0][1] = 10; matriksA[1][0] = 15; matriksA[1][1] = 20; // isi elemen matriksB matriksB[0][0] = 11; matriksB[0][1] = 22; matriksB[1][0] = 33; matriksB[1][1] = 44; // 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; // hasil matriksA + matriksB cout << "Matriks A + Matriks B: " << endl; for(i = 0; i < 2 ; i++){ for(j = 0; j < 2; j++){ cout << setw(3) << matriksA[i][j] + matriksB[i][j]<< " "; } cout << endl; } return 0; }
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 4 variabel: matriksA, matriksB, i dan j.
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 i dan j sendiri 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 dab 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 penambahan matriksA + matriksB dilakukan oleh perulangan for di baris 48-53. Ini juga dilakukan dengan nested loop. Dalam setiap iterasi, jumlahkan element array dengan perintah cout << setw(3) << matriksA[i][j] + matriksB[i][j]<< " "
.
Kode Program C++ Penambahan Matriks 2 x 2 (dinamis)
Berikut salah satu solusi dari soal membuat penambahan 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++ Penambahan Matriks 2x2 ##" << endl; cout << "==========================================" << endl; cout << endl; int matriksA[2][2], matriksB[2][2], i, j; // 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 elemen 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 elemen matriksA 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; // hasil penambahan matriksA + matriksB cout << "Matriks A + Matriks B: " << endl; for(i = 0; i < 2 ; i++){ for(j = 0; j < 2; j++){ cout << setw(3) << matriksA[i][j] + matriksB[i][j]<< " "; } cout << endl; } return 0; }
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 penambahan matriks 2×2 dalam bahasa C++.
Latihan ini masih punya berbagai variasi lain, misalnya membuat perkalian matriks, atau penambahan matriks 3×3. Kode programnya akan kita bahas dalam latihan terpisah.