· Matriks adalah susunan bilangan dalam suatu perseg i panjang yang diatur berdasarkan baris dan kolom.
· Ordo atau ukuran dari suatu matriks adalah banyak baris dan kolom dari suatu matriks
· Susunan horizontal disebut deng an baris
· Susunan vertical disebut dengan kolom
TRANSPOSE (Baris à Kolom)
Transpose Matriks A adalah sebuah matriks baru yang disusun dengan cara menuliskan baris pertama matriks A menjadi kolom pertama matriks baru, baris kedua matriks A menjadi kolom kedua matriks baru, dan seterusnya. Tra nspose matriks A dinotasikan dengan AT. Jika matriks A berordo m x n, maka AT berordo n x m.
KESAMAAN DUA MATRIKS
Matriks A dan matrik B dikatakan sama (A = B), jika dan hanya jika :
- Ordo kedua matriks sama
- Semua elemen yang seletak (bersesuaian) mempunyai nilai yang sama
Perkalian matriks
Perkalian Matrik dengan Skalar
Apabila A adalah sebuah matriks berordo m x n dan k adalah suatu bilangan real, maka kA adalah matriks baru berordo m x n yang diperoleh dari hasil perkalian k dengan elemen elemen matriks A
Perkalian Dua Matriks
Matriks A dapat dikalian dengan matriks B jika banyak kolom matriks A sama dengan banyak baris matriks B. Dengan kata lain Apabila A adalah matriks berordo m x n dan matriks B berordo n x p, hasil perkalian matriks A dengan matriks B adalah matriks baru (missal matriks C) yang berordo m x p. Hasil perkalian matriks A dengan matriks B yang sepadan diperoleh dengan cara mengalikan masing masing baris matriks A dengan masing masing kolom matriks B, kemudian menjumlahkannya.
Sifat Perkalian dua Matriks atau lebih yang sepadan
- Perkalian matriks pada umumnya tidak komutatif
A. B ≠ B. A (kecuali untuk matrik matrik khusus)
- Perkalian matriks bersifat asosiatif
(A. B) C = A. (B. C)
- Perkalian matriks bersifat distributif
Distributif Kiri : A. (B + C) = A.B + A. C
Distributif Kanan : (B + C). A = B. A + C. A
- Dalam perkalian matriks yang hanya memuat matriks-matriks persegi dengan ordo yang sama, terdapat sebuah matrik identitas, yaitu matrik satuan I, yang bersifat : I . A = A . I
- Jika A . B = O, belum tentu A = O atau B = O
Jika A. B = A. C, belum tentu B = C
- Jika p dan q adalah bilangan bilangan real, serta A dan B adalah matrik matriks, maka berlaku hubungan
(pA) (qB) = (pq) (A.B)
- Jika At dan Bt berturut-turut adalah transpose dari matriks A dan matriks B maka :
(A. B)t = Bt. At
bentuk algoritma
- Deklarasikan variable i untuk iterasi, j untuk iterasi, k untuk iterasi, bar_a untuk jumlah baris pada matriks A, kol_a untuk jumlah kolom pada matriks A, bar_b untuk jumlah baris pada matriks B, kol_b untuk jumlah kolom pada matriks B, mat_a dengan tipe array of integer untuk menampung nilai matriks A, mat_b dengan tipe array of integer untuk menampung nilai matriks B, mat_c dengan tipe array of integer untuk menampung hasil perkalian kedua matriks.
- Masukkan jumlah baris pada matriks A lalu nyatakan ke variable bar_a, jumlah kolom pada matriks A lalu nyatakan ke variable kol_a, jumlah baris pada matriks B lalu nyatakan ke variable bar_b, serta jumlah kolom pada matriks B lalu nyatakan ke variable kol_b.
- Bila nilai pada bar_a tidak sama dengan nilai pada kol_b atau nilai pada kol_a tidak sama dengan nilai pada bar_b maka cetak “Kolom A = Baris B & Baris A = Kolom B!!!” dan kembali ke langkah 2, namun bila tidak maka lakukan langkah 4 s/d 41.
- Cetak “ Nilai matriks A ” untuk membedakan nilai yang akan dimasukkan adalah nilai pada matriks A, bukan nilai pada matriks B.
- Isi variable i dengan 0.
- Selama nilai pada i kurang dari jumlah baris pada matriks A lakukan langkah 7 s/d 11.
- Isi variable j dengan 0.
- Selama j kurang dari jumlah kolom pada matriks A lakukan langkah 9 s/d 10.
- Masukkan nilai matriks pada indeks ke-i ke-j dan nyatakan ke mat_a[i][j].
- Tambahkan nilai pada variable j dengan 1.
- Tambahkan nilai pada variabel i dengan 1.
- Cetak “ Nilai matriks B ” untuk membedakan nilai yang akan dimasukkan adalah nilai pada matriks B, bukan nilai pada matriks A.
- Isi variable j dengan 0.
- Selama nilai pada j kurang dari jumlah baris pada matriks B lakukan langkah 15 s/d 19.
- Isi variable k dengan 0.
- Selama k kurang dari jumlah kolom pada matriks B lakukan langkah 17 s/d 18.
- Masukkan nilai matriks pada indeks ke-j ke-k dan nyatakan ke mat_b[j][k].
- Tambahkan nilai pada variable k dengan 1.
- Tambahkan nilai pada variabel j dengan 1.
- Isi variabel i dengan 0.
- Selama i kurang dari jumlah baris pada matriks A lakukan langkah 22 s/d 30.
- Isi variabel k dengan 0.
- Selama nilai pada k kurang dari jumlah kolom pada matriks B lakukan langkah 24 s/d 29.
- Isi mat_c pada indeks ke-i ke-k dengan 0.
- Isi j dengan 0.
- Selama j kurang dari jumlah baris pada matriks B lakukan langkah 27 s/d 28.
- Tambahkan nilai pada matriks_c indeks ke-i ke-k dengan hasil kali dari nilai padamat_a pada indeks ke-i ke-j dengan nilai pada mat_b pada indeks ke-j ke-k kemudian nyatakan ke mat_c pada indeks ke-j ke-k.
- Tambahkan nilai pada j dengan 1.
- Tambahkan nilai pada k dengan 1.
- Tambahkan nilai pada i dengan 1
- Isi i dengan 0.
- Selama nilai i kurang dari jumlah baris pada matriks A lakukan langkah 33 s/d 37.
- Isi k dengan 0.
- Selama nilai k kurang dari jumlah kolom pada matriks B lakukan langkah 35 s/d 36.
- Cetak nilai pada mat_c indeks ke-i ke-k.
- Tambahkan nilai pada variabel k dengan 1.
- Tambahkan nilai pada variabel i dengan 1.
- Tanya apakah user masih ingin mengalikan dua buah matriks.
- Bila jawabannya iya, maka kembali ke langkah ke-2.
- Bila jawabannya tidak, maka program dapat langsung diakhiri.
- Namun jika bukan keduanya, tanyalah kembali (kembali ke langkah 38).
for (j = 1; j <= kolom_matriks_b; j++) {
for (i = 1; i <= baris_matriks_a; i++) {
for (k = 1; k <= kolom_matriks_a;k++) {
c[i][j] = c[i][j] + (a[i][k] * b[k][j]);
}
}
}
Sumber : nggiehsoe.wordpress.com