Professional Documents
Culture Documents
n m m m m
n
n
n
a a a a
a a a a
a a a a
a a a a
. 3 . 2 . 1 .
. 3 3 . 3 2 . 3 1 . 3
. 2 3 . 2 2 . 2 1 . 2
. 1 3 . 1 2 . 1 1 . 1
...
: ... : : :
...
...
...
=
1 . 1
a elemen matriks pada baris 1, kolom 1
=
2 . 1
a elemen matriks pada baris 1, kolom 2
=
3 . 1
a elemen matriks pada baris 1, kolom 3
.
.
.
=
n m
a
.
elemen matriks pada baris m, kolom n
Contoh :
B =
(
7 6 1
4 5 2
Ordo matriks B adalah B
2 x 3
=
3 . 1
a - 4
=
2 . 2
a 6
2.2 Jenis Jenis Matriks
1. Matriks Baris
adalah matriks yang hanya memiliki satu baris
Contoh : A = [ 2 3 0 7 ]
2. Matriks Kolom
adalah matriks yang hanya memiliki satu kolom
Contoh : C =
(
(
(
(
7
0
1
2
3. Matriks Persegi
adalah matriks yang jumlah baris dan kolomnya sama.
Contoh : A =
(
(
(
(
10 5 3 7
6 0 9 5
4 6 8 1
3 5 0 2
Diagonal samping Diagonal utama
4. Matriks Identitas
adalah matriks persegi yang elemen-elemen pada diagonal utamanya 1, sedangkan
semua elemen yang lainnya nol.
Contoh :
A =
(
1 0
0 1
B =
(
(
(
1 0 0
0 1 0
0 0 1
5. Matriks Segitiga Atas
adalah matriks persegi yang elemen-elemen dibawah diagonal utamanya nol.
Contoh :
A =
(
(
(
5 0 0
4 1 0
1 3 2
6. Matriks Segitga Bawah
adalah matriks persegi yang elemen-elemen diatas diagonal utamanya nol.
Contoh :
B =
(
(
(
5 2 3
0 1 9
0 0 2
7. Matriks Nol
adalah matriks yang semua elemennya nol.
Contoh :
C =
(
0 0 0
0 0 0
2.3 Operasi pada Matriks
1. Penjumlahan Matriks
Penjumlahan matriks hanya dapat dilakukan terhadap matriks-matriks yang
mempunyai ukuran (orde) yang sama. Jika A=(a
ij
) dan B=(b
ij
) adalah matriks-
matriks berukuran sama, maka A+B adalah suatu matriks C=(c
ij
) dimana (c
ij
) =
(a
ij
) +(b
ij
) atau [A]+[B] = [C] mempunyai ukuran yang sama dan elemennya (c
ij
)
= (a
ij
) +(b
ij
)
Contoh :
A= B= C= maka
A+B = + =
A+C = +
A+C tidak terdefinisi (tidak dapat dicari hasilnya) karena matriks A dan B
mempunyai ukuran yang tidak sama.
2. Pengurangan Matriks
Sama seperti pada penjumlahan matriks, pengurangan matriks hanya dapat
dilakukan pada matriks-matriks yang mempunyai ukuran yang sama. Jika
ukurannya berlainan maka matriks hasil tidak terdefinisikan.
Contoh :
A= B= maka
A-B = - =
3. Perkalian Matriks
Beberapa hal yang perlu diperhatikan :
1. Perkalian matriks dengan matriks umumnya tidak komutatif.
2. Syarat perkalian adalah jumlah banyaknya kolom pertama matriks sama dengan
jumlah banyaknya baris matriks kedua.
3. Jika matriks A berukuran mxp dan matriks pxn maka perkalian A*B adalah suatu
matriks C=(c
ij
) berukuran mxn dimana
c
ij
= a
i1
b
1j
+ a
i2
b
2j
+
a
i3
b
3j
+ .+ a
ip
b
pj
3 1
4 2
0 2
1 3
3 1
4 2
0 2
1 3
3+0 1+2
4+1 2+3
3 3
5 5
1 0 2
1 0 5
3 1
4 2
1 0 2
1 0 5
3 4
4 5
0 2
3 4
3 4
4 5
0 2
3 4
3-0 4-2
4-3 5-4
3 2
1 1
Contoh : 1) A= dan B= maka
A x B= * = =
2) A = dan B = maka
A x B = =
Beberapa Hukum Perkalian Matriks :
1. Hukum Distributif, A*(B+C) = AB + AC
2. Hukum Assosiatif, A*(B*C) = (A*B)*C
3. Tidak Komutatif, A*B = B*A
4. Jika A*B = 0, maka beberapa kemungkinan
(i) A=0 dan B=0
(ii) A=0 atau B=0
(iii) A=0 dan B=0
5. Bila A*B = A*C, belum tentu B = C
3 2 1
3
1
3 2 1
3
1
(3*3) + (2*1) + (1*0) 11
3 2 1
1 2 1
3
1
(3*3) + (2*1) + (1*0)
(1*3) + (2*1) + (1*0)
11
5
BAB III
PERANCANGAN SISTEM DAN IMPLEMENTASI
3.1 Flowchart Aplikasi
Berdasarkan rumusan masalah, dalam pembuatan Aplikasi Perhitungan Matriks ini
memiliki algoritma agar nantinya aplikasi ini sesuai dengan yang diharapkan berikut ini
adalah algoritma dari Aplikasi Perhitungan Matriks tersebut.
Mulai
Tampilkan Menu
Perhitungan
Matriks
Pilih 1
Penjumlahan ?
Baca pilihan
Baca Matriks A
dan Matriks B
Tampilkan
hasil
penjumlahan
Matriks
Pilih 2
Pengurangan ?
Baca Matriks A
dan Matriks B
Tampilkan
hasil
pengurangan
Matriks
Stop
Ya Ya
Tidak
Tidak
Pilih 3 Perkalian
?
Baca Matriks A
dan Matriks B
Tampilkan
hasil
perkalian
Matriks
Pilih 4
Determinan ?
Baca
Matriks A
det =
(A[1][1]*A[2][2]*A[3][3])+
(A[1][2]*A[2][3]*A[3][1])+
(A[1][3]*A[2][1]*A[3][2])-
(A[1][3]*A[2][2]*A[3][1])-
(A[1][1]*A[2][3]*A[3][2])-
(A[1][2]*A[2][1]*A[3][3]);
Tampilkan
hasil
determinan
Matriks
Tidak
Tidak
Ya Ya
For (x=1;x<=3;x++)
For (y=1;y<=3;y++)
C[x][y] = A[x][y]
+ B[x][y];
For (x=1;x<=3;x++)
For (y=1;y<=3;y++)
C[x][y] = A[x][y]
- B[x][y];
For (j=1;j<=3;j++)
For (l=1;l<=3;l++)
C[j][l] = 0;
For (k=1;k<=3;k++)
C[j][l] +=
A[j][k] *
B[k][l];
Tampilkan
tidak memilih
apapun
3.2 Rancangan Aplikasi
Pada bagian ini dilakukan bagaimana memebuat sebuah rancangan Aplikasi
Perhitungan Matriks menggunakan console yang nantinya user atau pengguna aplikasi
dapat mengerti dan paham dalam menggunakan Aplikasi Perhitungan Matriks. Dan
berikut adalah merupakan tampilan Aplikasi Perhitungan Matriks :
1. Tampilan Awal Aplikasi
Gambar 3.1 Tampilan Awal Aplikasi
Penjelasan :
Pada tampilan ini merupakan tampilan Awal dari Aplikasi Perhitungan Matriks, dimana
pada menu ini terdapat beberapa menu perhitungan yaitu diantaranya : Menu
Penjumlahan, Menu Pengurangan, Menu Perkalian, dan Menu Determinan Matriks. Pada
tampilan ini juga ada Pilihan yaitu yang berfungsi untuk memilih dari menu menu
perhitungan di atasnya.
2. Tampilan memilih Menu
Gambar 3.2 Tampilan Memilih Menu
Penjelasan :
Pada tampilan memilih menu di atas adalah ketika user atau pengguna sudah
memasukkan angka pada Pilihan sesuai dengan pilihan menu perhitungan di atas, misal
pada tampilan di atas memilih menu 1 yaitu Menu Perhitungan Penjumlahan Matriks
maka otomatis akan langusung muncul keterangan bahwa sudah memilih Menu
Perhitungan Penjumlahan Matriks. Setelah itu kita akan langsung diminta untuk
menginputkan Matriks.
3. Tampilan tidak memilih Menu apapun
Gambar 3.3 Tampilan Tidak Memilih Menu
Penjelasan :
Tampilan di atas adalah merupakan tampilan ketika user atau pengguna tidak melakukan
pilihan apapun. Yang artinya ketika pada menu sudah terdapat 4 pilihan menu, namun
user atau pengguna tidak menginputkan angka 4 atau tidak memilih menu apapun.
4. Tampilan menginputkan Matriks
Gambar 3.4 Tampilan Input Matriks
Penjelasan :
Pada tampilan menginputkan Matriks di atas user diminta untuk menginputkan Matriks
setelah kita memilih salah satu dari pilihan menu perhitungan. Pertama kali pengguna
akan diminta untuk menginputkan Matriks A setelah itu Matriks B. Dimana Matriks A
sendiri adalah Matriks ordo 3X3. Karena pada aplikasi ini pada proses perhitungan
penjumlahan hanya khusus untuk Matriks berordo 3X3. Apabila sudah menginputkan
Matriks A, maka user atau pengguna akan diminta lagi untuk memasukkan Matriks B
dengan cara yang sama seperti pada saat menginputkan Matriks A.
5. Tampilan hasil inputan Matriks A dan Matriks B, serta hasil Perhitungan
Gambar 3.5 Tampilan Hasil Perhitungan
Penjelasan :
Pada saat pengguna sudah menginputkan Matriks A dan Matriks B, maka proses
selanjutnya adalah perhitungan. Dimana pada contoh di atas adalah memilih menu
penjumlahan, sehingga setelah kita menginputkan Matriks A dan Matriks B akan
langsung diproses untuk penjumlahannya. Begitu juga untuk menu menu yang lain.
6. Tampilan memilih ulangi
Gambar 3.6 Tampilan Memilih Ulangi
Penjelasan :
Pada tampilan menu ulangi di atas adalah merupakan menu yang digunakan untuk
mengulangi proses perhitungan atau keluar dari aplikasi. Jika kita memilih angka 1 maka
kita akan kembali ke menu awal untuk melakukan perhitungan, namun jika mengetik
angka 0 maka akan langsung keluar dari progam aplikasi.
7. Tampilan menginputkan ordo baris dan kolom untuk Perhitungan Perkalian
Gambar 3.7 Tampilan Input Ordo Baris dan Kolom untuk Perkalian Matriks
Penjelasan :
Pada tampilan di atas adalah merupakan tampilan ketika kita memilih sendiri ordo berapa
yang akan kita masukkan, khusus untuk menu perhitungan perkalian. Dimana ketika
pengguna memilih menu perkalian maka pengguna akan diminta untuk memasukkan
ordo baris dan ordo kolom sesuai dengan keinginan kita sebelum dilakukan proses
perkalian matriks. Karena perhitungan perkalian Matriks bisa dilakukan berbeda ordo
tanpa harus mempunyai ordo yang sama.
8. Tampilan PERINGATAN, karena memasukkan huruf tidak angka
Gambar 3.8 Tampilan Peringatan
Penjelasan :
Pada tampilan peringatan di atas adalah apabila kita salah atau kita memasukkan huruf
dengan sengaja pada saat menginputkan, maka akan langsung muncul peringatan bahwa
inputan harus berupa angka. Karena dalam program aplikasi ini adalah hanya
menginputkan angka angka saja.
BAB IV
KESIMPULAN DAN SARAN
4.1 Kesimpulan
Dari hasil pembuatan dan pengujian Aplikasi Perhitungan Matriks :
1. Aplikasi Perhitungan Matriks berjalan sesuai dengan sistem dan fungsinya.
2. Dapat mempermudah dalam proses operasi Matriks, mulai dari penjumlahan,
pengurangan, perkalian, dan determinan Matriks.
4.2 Saran
Adapun saran yang bisa diberikan untuk pengembangan Aplikasi Perhitungan Matriks
kedepan adalah :
1. Dapat menerapkanny pada Program Aplikasi Perhitungan Matriks Berbasis GUI.
2. Proses pengoperasian Matriks lebih dilengkapi lagi.
3. Bisa ditambahkan cara cara pada proses output hasil operasi Matriks.
LAMPIRAN
#include <iostream>
using namespace std;
int main () {
typedef float Matriks [100] [100];
Matriks A, B, C;
int barisA, kolomA, barisB, kolomB, j, k, l, pilihan, ulang, x, y;
float det;
ulang = 1;
cout << " ============================================" << endl;
cout << " || APLIKASI PERHITUNGAN MATRIKS ||" << endl;
cout << " ============================================" << endl
<< endl << endl;
do {
cout << "# PILIHAN PERHITUNGAN MATRIKS #" << endl;
cout << "-------------------------------" << endl;
cout << "1. Penjumlahan (Matriks Ordo 3X3)" << endl;
cout << "2. Pengurangan (Matriks Ordo 3X3)" << endl;
cout << "3. Perkalian" << endl;
cout << "4. Determinan (Matriks Ordo 3x3)" << endl << endl;
cout << "Pilihan >> ";
cin >> pilihan;
while (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
cout << "PERINGATAN : Inputan harus berupa angka!" << endl <<
endl;
cout << "Pilihan >> ";
cin >> pilihan;
}
cout << endl;
switch(pilihan) {
case 1:
cout << "Anda Memilih Menu Perhitungan Penjumlahan Matriks" <<
endl;
cout << "Input Matriks A :" << endl;
for (x=1; x<=3; x++) {
for (y=1; y<=3; y++) {
cout<< " A [" << x << "][" << y << "] = ";
cin >> A [x][y];
while (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
cout << "PERINGATAN : Inputan harus
berupa angka!" << endl << endl;
cout<< " A [" << x << "][" << y << "] =
";
cin >> A [x][y];
}
}
}
system("cls");
Source Code Aplikasi Perhitungan Matriks
cout << "Input Matriks B :" << endl;
for (x=1; x<=3; x++) {
for (y=1; y<=3; y++) {
cout << " B [" << x << "][" << y << "] = ";
cin >> B [x][y];
while (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
cout << "PERINGATAN : Inputan harus
berupa angka!" << endl << endl;
cout << " B [" << x << "][" << y << "] =
";
cin >> B [x][y];
}
}
}
system("cls");
cout << "Matriks A : " << endl << endl;
for(x=1; x<=3; x++) {
for(y=1; y<=3 ;y++) {
cout << " " << A [x][y] << " ";
}
cout << endl << endl;
}
cout << "Matriks B : " << endl << endl;
for(x=1; x<=3; x++) {
for(y=1; y<=3 ;y++) {
cout << " " << B [x][y] << " ";
}
cout << endl << endl;
}
for (x=1; x<=3; x++) {
for (y=1; y<=3; y++) {
C [x][y] = A[x][y] + B[x][y];
}
}
cout << "Hasil Penjumlahan Matriks A dan Matriks B :" << endl
<< endl;
for (x=1; x<=3; x++) {
for (y=1; y<=3; y++) {
cout << " " << C [x][y] << " ";
}
cout << endl << endl;
}
break;
case 2:
cout << "Anda Memilih Menu Perhitungan Pengurangan Matriks" <<
endl;
cout << "Input Matriks A :" << endl;
for (x=1; x<=3; x++) {
for (y=1; y<=3; y++) {
cout<< " A [" << x << "][" << y << "] = ";
cin >> A [x][y];
while (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
cout << "PERINGATAN : Inputan harus
berupa angka!" << endl << endl;
cout<< " A [" << x << "][" << y << "] =
";
cin >> A [x][y];
}
}
}
system("cls");
cout << "Input Matriks B :" << endl;
for (x=1; x<=3; x++) {
for (y=1; y<=3; y++) {
cout << " B [" << x << "][" << y << "] = ";
cin >> B [x][y];
while (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
cout << "PERINGATAN : Inputan harus
berupa angka!" << endl << endl;
cout << " B [" << x << "][" << y << "] =
";
cin >> B [x][y];
}
}
}
system("cls");
cout << "Matriks A : " << endl << endl;
for(x=1; x<=3; x++) {
for(y=1; y<=3 ;y++) {
cout << " " << A [x][y] << " ";
}
cout << endl << endl;
}
cout << "Matriks B : " << endl << endl;
for(x=1; x<=3; x++) {
for(y=1; y<=3 ;y++) {
cout << " " << B [x][y] << " ";
}
cout << endl << endl;
}
for (x=1; x<=3; x++) {
for (y=1; y<=3; y++) {
C [x][y] = A[x][y] - B[x][y];
}
}
cout << "Hasil Pengurangan Matriks A dan Matriks B :" << endl
<< endl;
for (x=1; x<=3; x++) {
for (y=1; y<=3; y++) {
cout << " " << C [x][y] << " ";
}
cout << endl << endl;
}
break;
case 3:
cout << "Anda Memilih Menu Perhitungan Perkalian Matriks" <<
endl;
cout << "Masukkan Ordo Baris Matriks A >> ";
cin >> barisA;
while (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
cout << "PERINGATAN : Inputan harus berupa angka!" <<
endl << endl;
cout << "Masukkan Ordo Baris Matriks A >> ";
cin >> barisA;
}
cout << "Masukkan Ordo Kolom Matriks A >> ";
cin >> kolomA;
while (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
cout << "PERINGATAN : Inputan harus berupa angka!" <<
endl << endl;
cout << "Masukkan Ordo Kolom Matriks A >> ";
cin >> kolomA;
}
cout << endl << "Input Matriks A : " << endl;
for (j=1; j<=barisA; j++) {
for (k=1; k<=kolomA; k++) {
cout<< " A [" << j << "][" << k << "] = ";
cin >> A [j][k];
while (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
cout << "PERINGATAN : Inputan harus
berupa angka!" << endl << endl;
cout<< " A [" << j << "][" << k << "] =
";
cin >> A [j][k];
}
}
}
system("cls");
cout << "Masukkan Ordo Baris Matriks B >> ";
cin >> barisB;
while (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
cout << "PERINGATAN : Inputan harus berupa angka!" <<
endl << endl;
cout << "Masukkan Ordo Baris Matriks B >> ";
cin >> barisB;
}
cout << "Masukkan Ordo Kolom Matriks B >> ";
cin >> kolomB;
while (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
cout << "PERINGATAN : Inputan harus berupa angka!" <<
endl << endl;
cout << "Masukkan Ordo Kolom Matriks B >> ";
cin >> kolomB;
}
cout << endl << "Input Matriks B : " << endl;
for (k=1; k<=barisB; k++) {
for (l=1; l<=kolomB; l++) {
cout << " B [" << k << "][" << l << "] = ";
cin >> B [k][l];
while (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
cout << "PERINGATAN : Inputan harus
berupa angka!" << endl << endl;
cout << " B [" << k << "][" << l << "] =
";
cin >> B [k][l];
}
}
}
system("cls");
cout << "Matriks A : " << endl << endl;
for(j=1; j<=barisA; j++) {
for(k=1; k<=kolomA ;k++) {
cout << " " << A [j][k] << " ";
}
cout << endl << endl;
}
cout << "Matriks B : " << endl << endl;
for(k=1; k<=barisB; k++) {
for(l=1; l<=kolomB ;l++) {
cout << " " << B [k][l] << " ";
}
cout << endl << endl;
}
for (j=1; j<=barisA; j++) {
for (l=1; l<=kolomB; l++) {
C[j][l] = 0;
for(k=1; k<=kolomA; k++) {
C[j][l] = C[j][l] + A[j][k] * B[k][l];
}
}
}
cout << "Hasil Perkalian Matriks A dan Matriks B :" << endl <<
endl;
for (j=1; j<=barisA; j++) {
for (l=1; l<=kolomB; l++) {
cout << " " << C [j][l] << " ";
}
cout << endl << endl;
}
break;
case 4:
cout << "Anda Memilih Menu Perhitungan Determinan Matriks" <<
endl;
cout << "Input Matriks A :" << endl;
for (x=1; x<=3; x++) {
for (y=1; y<=3; y++) {
cout<< " A [" << x << "][" << y << "] = ";
cin >> A [x][y];
while (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
cout << "PERINGATAN : Inputan harus
berupa angka!" << endl << endl;
cout<< " A [" << x << "][" << y << "] =
";
cin >> A [x][y];
}
}
}
det = (A[1][1]*A[2][2]*A[3][3]) + (A[1][2]*A[2][3]*A[3][1]) +
(A[1][3]*A[2][1]*A[3][2]) -
(A[1][3]*A[2][2]*A[3][1]) - (A[1][1]*A[2][3]*A[3][2]) -
(A[1][2]*A[2][1]*A[3][3]);
system("cls");
cout << "Matriks A : " << endl << endl;
for(x=1; x<=3; x++) {
for(y=1; y<=3 ;y++) {
cout << " " << A [x][y] << " ";
}
cout << endl << endl;
}
cout << endl;
cout << "Determinan Matriks A = " << det << endl << endl;
break;
default:
cout << "Anda tidak memilih menu apapun" << endl;
}
cout << "\nUlangi/Keluar ? [1/0] >> ";
cin >> ulang;
while (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
cout << "PERINGATAN : Inputan harus berupa angka!" <<
endl << endl;
cout << "\nUlangi/Keluar ? [1/0] >> ";
cin >> ulang;
}
system("cls");
} while(ulang == 1);
system("close");
return 0;
}