1
BAB IX OPERASI MATRIK
Matrik merupakan suatu bentuk data tipe larik berdimensi dua. Data-data dalam matrik disusun dalam sejumlah baris dan kolom. Suatu elemen data atau lebih dikenal sebagai entri, menempati pada suatu posisi baris dan kolom tertentu dalam sebuah matrik. Untuk mengidentifikasi posisi entri, ditentukan oleh dua indeks yang menyatakan posisi nomor baris dan nomor kolom. Contoh sebuah matrik adalah sebagai berikut :
A=
2
3
4
5
6
7
Dalam contoh di atas matrik A mempunyai 6 entri, yaitu :
A [1,1] : entri matrik A pada posisi baris ke-1 dan kolom ke-1, bernilai 2 A [1,2] : entri matrik A pada posisi baris ke-1 dan kolom ke-2, bernilai 3 A [1,3] : entri matrik A pada posisi baris ke-1 dan kolom ke-3, bernilai 4 A [2,1] : entri matrik A pada posisi baris ke-2 dan kolom ke-1, bernilai 5 A [2,2] : entri matrik A pada posisi baris ke-2 dan kolom ke-2, bernilai 6 A [2,3] : entri matrik A pada posisi baris ke-2 dan kolom ke-3, bernilai 7
Setiap matrik selalu mempunyai ukuran yang disebut ordo. Ordo adalah menyatakan banyaknya baris dan kolom pada sebuah matrik. Contoh matrik di atas mempunyai 2 baris dan 3 kolom. Notasi untuk menuliskan ordo pada contoh matrik di atas adalah sebagai berikut :
A2x3 Artinya, matrik A berordo 2x3, yaitu mempunyai 2 baris dan 3 kolom
Suatu matrik dapat dioperasikan sebagaimana data skalar apabila memenuhi beberapa kaidah tertentu. Dengan asumsi bahwa matrik-matrik telah berada
2
dalam kondisi sedemikian rupa sehingga operasi-operasi matrik dapat berlaku, maka bab ini akan meninjau beberapa operasi yang lazim dalam matrik.
9.1. Operasi Penjumlahan
Dua buah matrik atau lebih dapat dijumlahkan apabila matrik-matrik tersebut mempunyai ordo yang sama. Misal, terdapat dua buah matrik yaitu A dan B yang elemen-elemennya adalah sebagai berikut :
A=
2
3
4
5
6
7
B=
4
3
2
7
6
5
Jika matrik A dijumlahkan dengan matrik B, maka akan diperoleh hasil sebagai berikut : A+B =
=
=
2
3
4
5
6
7
2+4
3+3
4+2
5+7
6+6
7+5
6
6
6
12
12
12
+
4
3
2
7
6
5
Dalam operasi penjumlahan, ukuran matrik hasil operasi adalah sama dengan matrik yang dioperasikan. Dalam contoh di atas matrik yang dijumlahkan masingmasing mempunyai ordo 2x2 dan hasil penjumlahannya juga mempunyai ordo 2x2. Penjumlahan matrik dilakukan dengan cara menjumlahkan setiap entri matrik pertama dengan entri pada posisi yang sama matrik kedua. Penjumlahan matrik bersifat komulatif, sehingga :
A+B akan sama dengan B+A
3
Mulai
Baca matrik A,B
FOR I = 1 TO CACAH_BARIS
FOR J=1 TO CACAH_KOLOM
Plus [I,J] = A[I,J] + B[I,J]
Next J
Next I
Cetak hasil
Selesai
Gambar 9.1 : Flowchart prosedur penjumlahan dua matrik
Selanjutnya, jika CACAH_BARIS menyatakan banyaknya baris pada matrik A dan B, dan CACAH_KOLOM menyatakan banyaknya kolom pada matrik A, maka algoritma prosedur untuk menjumlahkan dua buah matrik adalah dituliskan sebagai berikut ini. Sedangkan flowchart prosedurnya ditunjukan pada Gambar 9.1.
Masukan dua buah matrik A dan B dengan ukuran yang sama. PLUS adalah matrik hasil penjumlahan dari A dan B. 1. Mulai
4
2. Proses berulang langkah-3 FOR I = 1 TO CACAH_BARIS FOR J = 1 TO CACAH_KOLOM 3. Menjumlahkan semua entri dalam matrik PLUS [I,J] = A[I,J] + B[I,J] 4. Cetak hasil Selesai
9.2. Operasi Perkalian
Ada dua kemungkinan bentuk operasi perkalian dalam matrik, yaitu perkalian matrik dengan suatu skalar dan perkalian matrik dengan matrik. Bagian ini akan membahas tentang perkalian matrik dengan suatu skalar terlebih dahulu, dan kemudian dilanjutkan dengan perkalian dua buah matrik.
9.2.1. Perkalian Matrik dengan Skalar
Operasi ini relatif sederhana dan mudah. Begitupun jika akan diselesaikan dengan program komputer. Matrik hasil operasi perkalian dengan suatu skalar memuat entri matrik yang dioperasikan dikalikan dengan suatu skalar yang menjadi operand-nya. Ukuran matrik hasil operasi perkalian juga tidak akan mengalami perubahan.
Berikut ini diberikan sebuah contoh perkalian matrik dengan suatu skalar. Jika N adalah suatu skalar bernilai 4 dan A adalah sebuah matrik berukuran 3x2 dengan entri sebagai berikut :
A2x3 = 2
4
3
2
4
1
5
Jika matrik A dikalikan dengan N, maka proses perhitungan dan hasil yang diperoleh adalah sebagai berikut :
A3x2x4 =
=
2x4
4x4
3x4
2x4
4x4
1x4
8
16
12
8
16
4
Jika CACAH_BARIS menyatakan banyaknya baris dan CACAH_KOLOM menyatakan banyaknya kolom pada matrik A, maka solusi dalam bentuk algoritma prosedur untuk perkalian matrik dengan suatu skalar adalah dituliskan sebagai berikut ini.
Masukan A matrik yang akan dioperasikan. KALI adalah matrik hasil perkalian dengan suatu skalar. N adalah nilai skalar. 1. Mulai 2. Proses berulang langkah-3 FOR I = 1 TO CACAH_BARIS FOR J = 1 TO CACAH_KOLOM 3. Mengalikan semua entri dengan skalar N KALI [I,J] = N X A[I,J] 4. Cetak hasil 5. Selesai
Flowchart prosedur prosedur untuk perkalian matrik dengan suatu skalar ditunjukan pada Gambar 9.2.
6
Mulai
Baca matrik A,N
FOR I=1 to CACAH_BARIS
FOR J=1 TO CACAH_KOLOM
KALI [I,J] = NxA[I,J]
NEXT J
NEXT I
Cetak hasil
Selesai
Gambar 9.2 : Flowchart prosedur perkalian matrik dengan suatu skalar
9.2.2. Perkalian Dua Matrik
Seandainya terdapat dua buah matrik yaitu A dan B. Jika matrik A akan dikalikan dengan matrik B, maka harus memenuhi sebuah syarat yaitu ukuran kolom pada matrik A harus sama dengan ukuran baris pada matrik B, sebaliknya jika matrik B akan dikalikan dengan matrik A maka ukuran kolom pada matrik B harus sama dengan ukuran baris pada matrik A. Jadi perkalian dua matrik tidak memenuhi sifat komutatif. Jelasnya, hasil operasi perkalian AxB tidak sama dengan hasil operasi perkalian BxA.
7
Berikut ini akan diberikan sebuah contoh perkalian dua matrik. Jika A berukuran MxN, sedangkan B berukuran NxK, maka matrik A memnuhi syarat untuk dapat dikalikan dengan matrik B. Jika KALI menyatakan matrik hasil operasi perkalian AxB, maka matrik KALI akan mempunyai ukuran MxN. Ukuran baris pada matrik A akan menjadi ukuran baris pada matrik KALI, sedangkan ukuran kolom pada matrik B akan menjadi ukuran kolom pada matrik KALI, yaitu sebagai berikut :
AMxN x BNxK = KALIMxN Perlu diperhatikan, bahwa dalam contoh di atas matrik B tidak dapat dikalikan dengan matrik A, karena ukuran kolom matrik B tidak sama dengan ukuran baris pada matrik A. Notasi perkalian dua buah matrik dapat dituliskan sebagai berikut :
KALI [I,J] = KALI [I,J] + A[I,J] x B[K,J]
Dimana, KALI [I,J]
: entri matrik hasil perkalian pada posisi [I,J]
A [I,J]
: entri matrik A pada posisi [I,J]
B [K,J]
: entri matrik B pada posisi [K,J]
I,K
: Indeks baris
J
: Indeks kolom
Jika diketahui dua buah matrik, yaitu A dan B masing-masing berukuran 2x2 seperti berikut :
A2x2 = A11
A12
B2X2 = B11
B12
A21
A22
B21
B22
B
B
B
Jika KALI adalah matrik hasil perkalian matrik A dan B, maka harga masingmasing entri pada matrik KALI adalah dihitung dengan cara sebagai berikut ini :
KALI2X2 =
A11
A12
x
B11
B12
A21
A22
x
B21
B22
8
=
A11 x B11 + A12 x B21
A11 x B12 + A12 x B22
A21 x B11 + A22 x B21
A21 x B12 + A22 x B22
Untuk perkalian dua matrik yang berukuran lebih besar, perhitungannya dilakukan sama dengan di atas. Jika I menyatakan cacah baris pada matrik A dan J menyatakan cacah kolom pada matrik B, maka entri pada KALI[I,J] merupakan jumlah dari hasil perkalian setiap entri pada baris ke I pada matrik A dan kolom ke J pada matrik B.
Dengan asumsi bahwa ukuran matrik memenuhi persyaratan untuk dilakukan operasi perkalian, maka algoritma prosedur perkalian dua matrik adalah dituliskan sebagai berikut ini. Sedangkan flowchart prosedurnya ditunjukkan pada Gambar 9.3.
A dan B adalah matrik yang akan dioperasikan. KALI adalah matrik hasil perkalian A dan B. 1. Mulai 2. Proses berulang langkah-3 s/d lagkah-4 FOR I = 1 TO CACAH_BARIS FOR J = 1 TO CACAH_KOLOM 3. Tentukan harga awal KALI [I,J] = 0,0 4. Hitung perkalian matrik FOR K = 1 TO CACAH_BARIS KALI [I,J] = KALI [I,J] + A[I,K] x B[K,J] 5. Cetak hasil 6. Selesai
Permasalahan lain yang mungkin dihadapi adalah matrik yang akan dikalikan lebih dari dua buah. Jika ditemui permasalahan seperti ini, akan lebih baik jika perkaliannya diselesaikan secara bertahap. Setiap tahap dipergunakan untuk mengalikan dua matrik. Cara ini akan lebih mudah dipahami dan dikerjakan.
9
Mulai
Baca matrik A,B
FOR I = 1 TO CACAH_BARIS
FOR J=1 TO CACAH_KOLOM
KALI [I,J] = 0,0
FOR K=1 TO CACAH_BARIS
KALI [I,J] = KALI [I,J] + A[I K] x B[K J] NEXT K
NEXT J
NEXT I
Cetak hasil
Selesai
Gambar 9.3 : Flowchart prosedur perkalian dua matrik
10
9.4. Matrik Transpose
Matrik putaran / transpose adalah matrik hasil putaran dari suatu matrik tertentu yang menjadi matrik asalnya. Ukuran matrik transpose adalah kebalikan dari matrik asalnya. Untuk menyatakan transpose suatu matrik dinotasikan dengan simbol "T" yang diletakkan pada posisi kanan atas nama matriknya.
Contoh matrik transpose adalah sebagai berikut :
A4X2 = 2
5
3
4
4
3
5
2
3
4
5
5
4
3
maka, AT2x4 = 2
2
Pada contoh di atas terlihat bahwa entri kolom pertama pada matrik A akan menempati baris pertama pada matrik transpose, sedangkan entri kolom kedua pada matrik A akan baris kedua pada matrik transpose. Posisi kolom suatu entri pada matrik A akan menjadi posisi baris pada matrik transpose, sedangkan posisi baris suatu entri menjadi posisi kolom pada matrik transpose. Sehingga pada akhirnya, ukuran kolom matrik A akan menjadi ukuran baris dan ukuran baris akan menjadi ukuran kolom pada matrik transpose. Dalam contoh di atas, perubahan posisi setiap entri pada matrik transpose dihubungkan dengan posisi setiap entri matrik asalnya secara ringkas ditunjukkan pada Tabel 9.1.
11
Tabel 9.1 : Perubahan posisi-posisi entri pada matrik transpose Posisi entri pada matrik awal
Posisi pada matrik transpose
(1,1)
(1,1)
(1,2)
(2,1)
(1,3)
(3,1)
(1,4)
(4,1)
(2,1)
(1,2)
(2,2)
(2,2)
(2,3)
(3,2)
(2,4)
(4,2)
Mulai
Baca matrik A
FOR I = 1 TO CACAH_BARIS
FOR J=1 TO CACAH_KOLOM
Transpose [I,J]] = A[I,J]
NEXT J
NEXT I
Cetak hasil
Selesai
Gambar 9.4 : Flowchart prosedur matrik transpose
12
Untuk memperoleh matrik transpose sebagaimana diterangkan di atas, maka prosedur yang harus dilakukan adalah menukarkan indeks kolom menjadi indeks baris dan indeks baris menjadi indeks kolom. Jika CACAH_BARIS dan CACAH_KOLOM masing-masing menyatakan cacah baris dan cacah kolom pada matrik asal, maka solusi bentuk algoritma prosedur untuk matrik transpose dapat dituliskan di bawah ini. Sedangkan flowchart prosedurnya ditunjukkan pada Gambar 9.4.
A adalah matrik asal yang dioperasikan. TRANPOSE adalah matrik transpose dari A 1. Mulai 2. Proses berulang langkah-3 FOR I = 1 TO CACAH_BARIS FOR J = 1 TO CACAH_KOLOM 3. Hitung matrik transpose TRANSPOSE [I,J] = A[J,I] 4. Cetak hasil 5. Selesai
9.4. Matrik Invers
Dalam kenyataanya, perhitungan invers matrik merupakan salah satu bentuk operasi yang penting. Invers matrik banyak dimanfaatkan untuk penyelasaian masalah, baik sebagai suatu langkah yang langsung menghasilkan harga-harga yang akan dicari, ataupun sebagai bagian dari suatu prosedur penyelesaian yang lebih kompleks. Saat ini telah dikenal beberapa metoda untuk menghitung invers suatu matrik. Salah satunya dapat dijelaskan sebagai berikut ini.
Jika A adalah matrik yang akan dicari inversnya, yaitu matrik bujursangkar berukuran NxN. Matrik A tersebut kemudian disekat menjadi empat bagian. Misal A mempunyai ukuran 4x4, setelah disekat maka masing-masing bagian akan mempunyai ukuran 2x2. Kemudian masing-masing bagian tersebut disekat
13
kembali menjadi 4 bagian, sehingga akan mempunyai ukuran 1x1. Apabila masing-masing bagian diberi nama A11, A12, A21, dan A22, maka invers matrik A adalah dihitung dengan cara mencari invers matrik setiap bagian yang berukuran 1x1 tersebut. Hasilnya, kemudian digunakan untuk menghitung invers pada setiap bagian yang berukuran lebih besar yaitu 2x2. Invers matrik pada setiap bagian adalah dihitung dengan formula sebagai berikut ini : A11_INVERS = A11-1 + A11-1 A12_INVERS = -A11-1
A21_INVERS = -S
A12
S
A21
A11-1
A12
A21
A11-1
A22_INVERS = S
S
= (A22 – A21 A11-1 A12)-1
Keterangan: A11_INVERS : invers matrik bujursangkar A12_INVERS : invers vektor kolom A21_INVERS : invers vektor baris A22_INVERS : skalar AXY
: elemen matrik A pada baris ke-X dan kolom ke-Y
Cara penyelesaian seperti ini dikenal dengan nama metoda persekatan (partitioning method). Secara lebih terinci, algoritma prosedur untuk menghitung invers matrik A dengan metoda persekatan dapat dituliskan sebagai berikut ini.
Masukkan A matrik asal yang dioperasikan. TRANPOSE adalah matrik transpose dari matrik A. 1. Mulai 2. Tentukan A_INVERS [1,1] = 1/KOEFISIEN [1,1] 3. Proses berulang langkah-4 s/d langkah-7
14
FOR ULANG = 1 TO N-1 4. Hitung A22_INVERS Proses Berulang FOR I = 1 TO N Hitung KOEFISIEN21[I]=0,0 FOR J = 1 TO N Hitung KOEFISIEN21[I] = KOEFISIEN21[I]+KOEFISIEN[ULANG+I,J]Xa_invers[j,i] Hitung S = 0,0 Proses berulang FOR I = 1 TO ULANG Hitung S = S+KOEFISIEN21[I]x KOEFISIEN [I,ULANG+1] Hitung S1 = 1/(KOEFISIEN[ULANG+1, ULANG+1] –S) A_INVERS [ULANG+1],ULANG+1] = S1 5. Hitung A21_INVERS FOR I = 1 TO ULANG Hitung A_INVERS[ULANG+1,I] = -KOEFISIEN21[I] x S1 6. Hitung A12_INVERS FOR I = 1 TO ULANG Hitung KOEFISIEN12[I] = 0,0 FOR J = 1 TO ULANG Hitung KOEFISIEN12[I]=KOEFISIEN12[I]+A_INVERS[I,J]xKOEFISIEN[J,ULANG+1] FOR I = 1 TO ULANG Hitung A_INVERS[I,ULANG+1] = -KOEFISIEN12[I] x S1 7. Hitung A11_INVERS
15
FOR I = 1 TO ULANG Hitung FOR J = 1 TO ULANG Hitung A_INVERS[I,J]=A_INVERS[I,J]+KOEFISIEN12[I]xKOEFISIEN21[j]xS1 8. Cetak hasil 9. Selesai
Secara umum, perhitungan invers matrik berukuran NxN dengan metoda persekatan adalah dilakukan dengan membagi elemen-elemen matrik menjadi 4 bagian yang masing-masing mempunyai ukuran KxK, KxL dan LxL, dimana K+L=N. Selanjutnya invers matrik dicari dengan menghitung invers setiap bagian tersebut dimulai dari ukuran 1x1, 2x2 dan seterusnya hingga NxN. Prosedur tersebut akan diulang sebanyak N-1 kali. Sehingga pada akhirnya akan ditemukan matriks inversnya.