1. Tim Pengajar KU1102 - Institut Teknologi Sumatera
PENGANTAR KOMPUTER & SOFTWARE 2
MATRIX
2. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
PRE TEST
• Jelaskan apa yang dimaksud dengan array?
• Bagaimana cara menuliskan array?
• Bagaimana mengakses sebuah array?
3. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
TUJUAN PERKULIAHAN
• Mahasiswa memahami matriks dan
representasinya sebagai array of array
• Mahasiswa dapat menggunakan notasi
pendefinisian dan pengacuan matriks dengan
benar
• Mahasiswa dapat melakukan beberapa operasi
dasar terkait matriks
• Mahasiswa dapat membuat program dengan
menggunakan matriks
4. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
DEFINISI MATRIKS
• Sekumpulan informasi yang setiap individu
elemennya terdefinisi berdasarkan dua buah
indeks (yang biasanya dikonotasikan dengan
baris dan kolom)
• Setiap elemen matriks dapat diakses secara
langsung jika kedua indeks diketahui.
• Setiap elemen matriks mempunyai type yang
homogen
• Indeks baris dan kolom harus bertype yang
mempunyai keterurutan
(suksesor/predesesor), misalnya integer.
5. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
DEFINISI MATRIKS
• Matriks adalah struktur data statik (ukurannya
ditentukan dari awal)
• Matriks adalah struktur data dengan memori
internal. Struktur ini praktis untuk dipakai tetapi
memakan memori!
• Matriks integer 100 x 100 memakan 10000 x
tempat penyimpanan integer.
6. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
DEFINISI MATRIKS
• Untuk keperluan ini, sering kali memori
dipesan berlebihan untuk kemudian dipakai
sebagian saja
7. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
CONTOH 1
MatUkur
• Indeks (i, j) merepresentasikan suatu titik
koordinat
• Elemen matriks merepresentasikan hasil
pengukuran pada suatu titik koordinat
tertentu
• Indeks baris : 1 s.d. 5, indeks kolom : 1 s.d. 5
• Elemen matriks ber-type real
8. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
CONTOH 2
MatSat
• Merupakan matriks satuan, yaitu matriks
dengan elemen bernilai hanya 0 atau 1
• Indeks baris : 1 s.d. 4; indeks kolom 1 s.d. 4
• Elemen matriks ber-type integer
1 2 3 4
1 1 0 0 0
2 0 1 0 0
3 0 0 1 0
4 0 0 0 1
9. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
CONTOH 3
MatSurvey:
• Setiap elemen matriks merepresentasikan
hasil pengukuran <temperatur, kecepatan
angin> pada titik koordinat (i, j)
10. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
CONTOH PEMAKAIAN
• Operasi “biasa” matriks dalam matematika :
penjumlahan, perkalian, menentukan
determinan, menginvers sebuah matriks,
transpose, dll.
• Sistem persamaan linier dan operational
research
• Persoalan algoritmik: untuk menyimpan
informasi yang cirinya ditentukan oleh 2
dimensi (diterjemahkan dalam baris dan
kolom).
• Contoh: cell pada sebuah spreadsheet,
ruangan gedung bertingkat
11. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
IMPLEMENTASI
• Memori matriks diimplementasikan sebagai
array 2 dimensi
• Suatu elemen matriks diakses dengan indeks
baris dan kolom bertype integer
• Elemen matriks dideklarasikan memiliki type
yang sama (homogen)
• Cara deklarasi:
<type-elmt> <namamatriks>[<#baris>]
[<#kolom>];
12. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
IMPLEMENTASI
• Contoh:
int MatSatuan [10][10];
• Matriks bernama MatSatuan dengan setiap
elemen bertype integer, dengan banyaknya
baris = 10 dan banyaknya kolom = 10; dengan
alamat setiap elemen diakses melalui indeks
baris 0 s.d. 9 dan indeks kolom 0 s.d. 9.
13. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
DEKLARASI
tinggi[0][0] = 90;
tinggi[0][1] = 85;
tinggi[0][2] = 75;
tinggi[0][3] = 72;
tinggi[1][0] = 70;
tinggi[1][1] = 76;
....
tinggi[2][3] = 83;
int nilai[3][4] = {
{90,85,75,72},
{70,76,82,90},
{80,82,87,83}
};
Cara 1 Cara 2
14. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
MENGAKSES MATRIKS
cout << M1[4][0]; // akan tercetak: 21
int x = M1[0][0] * M1[3][3]; // x bernilai 19
M1[1][1] = 8; // Elemen brs. 1, kol. 1 menjadi 8
M1[0][5] ?? // tidak terdefinisi!
0 1 2 3 4
0 1 2 3 4 5
1 6 7 8 9 10
2 11 12 13 14 15
3 16 17 18 19 20
4 21 22 23 24 25
15. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
OPERASI MATRIKS
• Mendeklarasikan dan mendefinisikan isi
matriks
• Menuliskan isi matriks ke layar
• Operasi 1 matriks:
▪ Menghitung total semua elemen matriks
▪ Mengalikan isi matriks dengan sebuah
konstanta
▪ Transpose matriks
• Operasi 2 matriks:
▪ Menambahkan dua matriks
▪ Mengalikan dua matriks
16. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
CONTOH SOAL
• Diketahui matriks sebagai berikut.
• Implementasikan dalam bahasa C+
+
• Cetaklah semua nilai yang ada pada
matriks tersebut.
0 1 2 3
0 90 85 75 72
1 70 76 82 90
2 80 82 87 83
17. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
CONTOH SOAL - SOLUSI
#include <iostream>
using namespace std;
int main(){
int i,j;
int nilai[3][4] = {
{90,85,75,72},
{70,76,82,90},
{80,82,87,83}
};
for(i=0; i<3; i++){
for(j=0; j<4; j++){
cout << nilai[i][j] << " ";
}
cout << "n";
}
}
18. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
LATIHAN 1
• Diketahui matriks sebagai
berikut.
• Implementasikan dalam
bahasa C++
• Setiap elemen matriks
dikalikan dengan suatu
konstanta, misal x.
• Cetaklah semua hasil
perkalian tersebut.
0 1 2 3
0 90 85 75 72
1 70 76 82 90
2 80 82 87 83
19. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
LATIHAN 1 - SOLUSI
#include <iostream>
using namespace std;
int main(){
int i, j, x;
int nilai[3][4] = { {90,85,75,72},
{70,76,82,90},
{80,82,87,83} };
cout << "Inputkan x : ";
cin >> x;
for(i=0; i<3; i++){
for(j=0; j<4; j++){
nilai[i][j] = x * nilai[i][j];
cout << nilai[i][j] << " ";
}
cout << "n";
}
}
20. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
LATIHAN 2
• Dideklarasikan 2 buah matriks, misalnya M dan
MTranspose
• MTranspose menampung hasil transpose dari M
• Ukuran baris efektif M = ukuran kolom efektif
MTranspose
• Ukuran kolom efektif M = ukuran baris efektif
Mtranspose
• Mtranspose[i][j] = M[j][i]
21. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
SOLUSI - LATIHAN 2
#include <iostream>
using namespace std;
int main () {
.....
for (i=0; i<3; i++) {
for (j=0; j<4; j++) {
MTranspose[i][j] = M[j][i]; //
transpose
}
}
....
}
22. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
LATIHAN 3
• Deklarasi 3 matriks, misal M1, M2, dan MHasil
• 2 matriks M1 dan M2 bisa dijumlahkan jika
dimensinya sama, yaitu:
• Ukuran baris efektif M1 = ukuran baris efektif
M2
• Ukuran kolom efektif M1 = ukuran kolom efektif
M2
• Hasil ditampung di MHasil:
MHasil[i][j] = M1[i][j] + M2[i][j]
23. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
LATIHAN 3
• Deklarasi 3 matriks, misal M1, M2, dan MHasil
• 2 matriks M1 dan M2 bisa dijumlahkan jika
dimensinya sama, yaitu:
• Ukuran baris efektif M1 = ukuran baris efektif
M2
• Ukuran kolom efektif M1 = ukuran kolom efektif
M2
• Hasil ditampung di MHasil:
MHasil[i][j] = M1[i][j] + M2[i][j]
24. KU1102/Pengantar Komputer dan Software
INSTITUT TEKNOLOGI SUMATERA
SOLUSI - LATIHAN 3
#include <iostream>
using namespace std;
int main () {
.....
for (i=0; i<3; i++) {
for (j=0; j<4; j++) {
MHasil[i][j] = M1[i][j] + M2[i][j]; //
penjumlahan
}
}
....
}