implementasi optimum perkalian matrik berantai berbasis

12
246 IMPLEMENTASI OPTIMUM PERKALIAN MATRIK BERANTAI BERBASIS KOMPUTER Marsani Asfi 1 1) Program Studi Sistem Informasi, STMIK Catur Insan Cendekia(CIC),Jalan Kesambi No. 202, Kota Cirebon-Jawa Barat 45134; [email protected] Abstrak. Dalam perhitungan komputasi seringkali memanfaatkan operasi perkalian matriks. Jenis perkalian matrik yang dilakukan melibatkan perkalian yang berantai. Operasi perkalian matriks yang berantai sifat operasi perkaliannya adalah asosiatif, dimana urutan operasi yang dilakukan dapat diubah-ubah dengan bebas dan tetap tanpa mempengaruhi hasil akhir operasi. Pilihan urutan perkalian matriks berantai yang berbeda akan membutuhkan jumlah perkalian (usaha) yang berbeda pula. Oleh karena itu, diperlukan urutan perkalian matriks yang tepat, sehinggapenyelesaian perkalian matriks berantai tersebut dapat lebih cepat dan efisien. Artikel ini akan membahas implementasi dalam menentukan urutan perkalian matrik secara berantai dengan penggunaan algoritma dynamic programming dalam mencari solusi optimum urutan perkalian.Dynamic Programmingmerupakan salah satu teknik perancangan algoritma yang dikembangkan untuk menyelesaikan permasalahan yang sangat kompleks dengan memecah permasalahan tersebut menjadi banyak sub-permasalahan.Hasil akhir dari implementasi ini adalah suatu aplikasi komputer yang dapat digunakan untuk menentukan urutan perkalian matrik yang efisien secara otomatis. Aplikasi juga dilengkapi dengan perhitunganlangkahefektif dari pemilihan urutan perkalian. Kata Kunci. matrik, perkalian, dynamic programming, optimum, matrik berantai Abstract. In computational calculations it often uses matrix multiplication operations. The type of matrix chain multiplication operations that are chain properties of multiplication operations are associative, where the sequence of operations performed can be changed freely and permanently without affecting the final outcome of the operation. The choice of

Upload: others

Post on 03-Oct-2021

10 views

Category:

Documents


0 download

TRANSCRIPT

No. 202, Kota Cirebon-Jawa Barat 45134; [email protected]
Abstrak. Dalam perhitungan komputasi seringkali memanfaatkan
operasi perkalian matriks. Jenis perkalian matrik yang dilakukan
melibatkan perkalian yang berantai. Operasi perkalian matriks yang
berantai sifat operasi perkaliannya adalah asosiatif, dimana urutan
operasi yang dilakukan dapat diubah-ubah dengan bebas dan tetap tanpa
mempengaruhi hasil akhir operasi. Pilihan urutan perkalian matriks
berantai yang berbeda akan membutuhkan jumlah perkalian (usaha)
yang berbeda pula. Oleh karena itu, diperlukan urutan perkalian matriks
yang tepat, sehinggapenyelesaian perkalian matriks berantai tersebut
dapat lebih cepat dan efisien. Artikel ini akan membahas implementasi
dalam menentukan urutan perkalian matrik secara berantai dengan
penggunaan algoritma dynamic programming dalam mencari solusi
optimum urutan perkalian.Dynamic Programmingmerupakan salah satu
teknik perancangan algoritma yang dikembangkan untuk menyelesaikan
permasalahan yang sangat kompleks dengan memecah permasalahan
tersebut menjadi banyak sub-permasalahan.Hasil akhir dari
implementasi ini adalah suatu aplikasi komputer yang dapat digunakan
untuk menentukan urutan perkalian matrik yang efisien secara otomatis.
Aplikasi juga dilengkapi dengan perhitunganlangkahefektif dari
pemilihan urutan perkalian.
berantai
operations. The type of matrix chain multiplication operations that are
chain properties of multiplication operations are associative, where the
sequence of operations performed can be changed freely and permanently
without affecting the final outcome of the operation. The choice of
247
amounts of multiplication (effort). Therefore, the right matrix
multiplication sequence is needed, so that the completion of the chain
matrix multiplication can be faster and more efficient. This paper will
discuss the implementation of determining the sequence of matrix
multiplication sequentially with the use of dynamic programming
algorithms in finding the optimum solution for the multiplication
sequence. Dynamic Programming used in this article because it is one of
the algorithm design techniques in solving very complex problems
through problem solving approaches into many sub-solutions. The final
result of this implementation is a computer application that can be used
to determine the order of multiplication of efficient matrices automatically
and also equipped with the calculation of the effective steps of
multiplication sequence selection.
matrices
Dalam perkalian matrik operasi perkalian yang dilakukan antar matrik adalah
operasi perkalian yang bersifat asosiatif. Urutan perkalian antar matrik yang
satu dengan yang lainnya dapat diubah dengan bebas dan tidak akan
mempengaruhi hasil akhir operasi perkalian tersebut. Selain itu, syarat utama
perkalian antar matrik adalah jumlah kolom pada matrik pertama harus sama
dengan jumlah baris pada matriks kedua. Proses perkalian untuk beberapa
matrik merupakan perkalian yang bersifat berantai atau Matrix Chain
Multification.
Walaupun dalam urutan proses perkalian matrik yang satu dengan yang lain
bebas, penentuan urutan proses perkalian ini seringkali tidak efektif dan
memakan waktu lama. Dalam komputasi perkalian matrik, terjadi perkalian
integer dengan urut-urutan proses perkalian matrik yang berbeda akan
menghasilkan proses komputasi yang berbeda juga, cenderung lama dan
tidak efektif. Oleh karena itu, diperlukan suatu mekanisme komputasi yang
dapat digunakan untuk menentukan urutan perkalian matrik yang optimal
dari beberapa pemilihan urutan perkalian yang ada.
Metode Matrix Chain Multiplication(MCM), dapat digunakan untuk
menyelesaikan permasalahan dalam penentuan urutan rantai perkalian pada
248
beberapa matrik. Biaya komputasi yang akan dihasilkan adalah yang paling
optimum.
dibahas oleh Virnawati et. al.(2008) dan Pradana, S.A., (2012)yang membahas
tentang evaluasi kinerja algoritma MCM dan implementasinya dalam bahasa
java, serta beberapa pengujian secara analitis matematika untuk mendapatkan
solusi optimal dari perkalian matrik berantai.
Dalam artikel ini akan dipaparkan terkait implementasi dari metode MCM
dengan menggunakan bahasa pemrograman VB.Net. Aplikasi komputer yang
dibuat dapat digunakan untuk menentukan urutan perkalian matrik yang
efisien secara otomatis. Aplikasi juga dilengkapi dengan perhitungan langkah
efektif dari pemilihan urutan perkalian.
2. Tinjauan Teori
2.1. Dynamic Programming
memecahkan masalah-masalah berdasarkan hasil dari urutan pemilihan.
Dynamic Programming membagi masalah menjadi bagian-bagian yang lebih
kecil dan sederhana. Masalah-masalah yang dibagi-bagi kedalam masalah
yang sederhana selanjutnya diselesaikan. Hasil dari submasalah akan
digabungkan dengan submasalah lainnya untuk mendapatkan solusi global
dari masalah(Horowitz & Sahmi, 1979).
Ilustrasi algoritma Matrix Chain Multification(MCM) ini, misal diketahui 4
buah matrik (A,B,C dan D) dengan dimensi sebagai berikut :
a. Matrik A, dengan dimensi matrik 301
b. Matrik B, dengan dimensi matrik 140
c. Matrik C, dengan dimensi matrik 4010
d. Matrik D, dengan dimensi matrik 1025
Jika dilakukan perkalian matrik maka kemungkinan-kemungkinan
kombinasi perkalian yang muncul antara lain :
249
Dalam komputasi urut-urutan tersebut walaupun tidak mempengaruhi hasil
perkalian yang diperoleh, tapi dalam penentuan urutan perkalian akan
menghasilkan tahapan komputasi yang berbeda. Sebagai contoh, urutan
perkalian ((A.B).(C.D)) akan menghasilkan (A.B), 1200 perkalian dan (C.D),
10000 perkalian, sedangkan untuk (AB)(CD) memerlukan 30000 perkalian.
Jadi total perkalian yang diperlukan adalah 41200 langkah perkalian. Begitu
juga untuk penentuan urutan lainnya.
Untuk mendapatkan urutan perkalian yang optimal digunakanlah MCM.
Algoritma MCM dapat dikerjakan dengan 3 cara yaitu iterative (bottom up),
memorized, dan rekursif (top down). Berikut algoritma MCM :
Matrix-Chain-Order(p)
2. for i ←1 to n
3. do m[i, i] ←0
4. for l ←2 to n dimana l adalah panjang rantai.
5. do for i ←1 to n − l + 1
6. do j ←i + l − 1
7. m[i, j] ←∞
8. for k ←i to j − 1
9. do q ←m[i, k] + m[k + 1, j] + pi−1pkpj
10. if q < m[i, j]
11. then m[i, j] ←q
12. s[i, j] ←k
13 return m and s
Solusi minimum dari perkalian berantai diselesaikan dengan ketentuan
berikut :
250
[, ] = { 0 , =
≤<{[, ] + [ + 1, ] + −1 ∗ ∗ }, < (1)
3. Analisa dan Implementasi
Persoalan perkalian matriks berantai adalah dengan langkah-langkah berikut
(Cormen, et.al. 2001) : 1. Inisialisasi Dimensi Matrik, pada tahapan ini matrik dengan dimensi tertentu
disusun dalam bentuk array yang menyimpan nilai dimensinya. Sebagai contoh matrik pada bagian 2.2, disusun dalam array =
{30,1,40,10,25}. Array p ini dijadikan sebagai inisialisasi awal bersama
dengan ukuran dari indeks array p tersebut yaitu bernilai 5. 2. Rekursif Untuk Mencari Nilai Optimal, di tahapan ini dilakukan proses
rekursif untuk menentukan nilai minimal dari proses perkalian skalar.
M[i,j] sebagai array dengan indeks i dan j yang digunakan untuk
menghitung Ai,j =Ai . Ai+1 ... Aj. Proses rekursif dari m[i,j] dilakukan
dengan, ketentuan :
251
a. Jika nilai i=j maka [, ] = [, ] = 0. b. Jika nilai i < j, dengan asumsi optimal split ada dinilai k dengan i ≤k<j,
maka nilai m[i,j] ditentukan berdasarkan persamaan 1, yaitu : [, ] = [, ] + [ + 1, ] + −1 ∗ ∗ . Proses berlanjut terus
secara rekursif sampai nilai k berada i ≤ k < .
c. Nilai m[i,j] yang terpilih adalah nilai [, ]yang minimal. d. Nilai k yang menghasilkan [, ] minimal disimpan dalam array s,
dengan ketentuan [, ] = . 3. Hitung Nilai Optimal, di tahapan ini dihitung masing-masing nilai
komputasi yang optimal. 4. Susun Perkalian Berantai yang Optimal, di tahapan ini urutan perkalian
matrik berantai akan dibentuk berdasarkan nilai dari array s.
Ilustrasi analisa terlihat dalam Diagram 1.
Diagram 1. MindMap analisa MCM untuk perkalian 4 matriks
3.2. Implementasi Implementasi Perkalian matrik berantai ini menggunakan bahasa
pemrograman Visual Basic.Net (VB.Net).
252
4.1. Hasil Implementasi
Gambar 3.Tampilan Implementasi
Implementasi perangkat lunak seperti pada gambar 3 terdiri dari tiga bagian
utama, yaitu :
1. Nilai Masukkan Dimensi Matrik, bagian ini digunakan sebagai inputan
matrik yang akan digunakan sebagai perkalian berantai. Sebagai contoh
seperti matrik pada bagian 2.2.
a. Matrik A, dimensi matrik 30x1. Dimensi inputan adalah 30 dan 1
b. Matrik B, dimensi matrik 1x40. Dimensi inputan adalah 40
c. Matrik C, dimensi matrik 40x10. Dimensi inputan adalah 40
d. Matrik D, dimensi matrik 10x25. Dimensi inputan adalah 10 dan 25
2. Proses untuk mendapatkan keluaran optimal serta urutan perkalian
berantai yang optimal. Tombol PROSES berisi perintah sebagai berikut
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Dim size As Integer
Dim pesan As String
arr(i) = CInt(strArr(i))
& " Urutan Optimalnya adalah =" &sm
Untuk modul MCM, seperti berikut ini :
Function matOrder(ByVal array() As Integer, ByVal n As Integer) As Integer
Dim i, j, q, k, length, minMul(n, n) As Integer
Dim bracket(n, n) As Integer
For i = 1 To n
minMul(i, i) = 0
For i = 1 To n - length '+ 1
j = i + length - 1
254
minMul(i, j) = q
bracket(i, j) = k
MCM.
Sub print(ByVal s(,) As Integer, ByVal i As Integer, ByVal j As Integer,
ByRef name As Char)
Dim nama As Integer
If i = j Then
'sm = sm & "A" & i
print(s, s(i, j) + 1, j, name)
sm = sm & ")"
End If
End Sub
matrik secara berantai.
Matrik Dimensi Matrik
A=30x1
B =1x40
C=40x10
D=10x25
15,10,25,50,10,20 19500 ((A(B(CD)))E)
Dari tabel 1, terlihat bahwa pengujian aplikasi untuk beberapa matrik telah
berhasil dilakukan dan menghasilkan nilai dan urutan perkalian berantai
matrik yang optimal.
Aplikasi nyata dari penggunaan algoritma perkalian matrix berantai ini sering
digunakan dalam proses perhitungan komputasi yang kompleks yang
melibatkan matrik dengan dimensi yang cukup besar. Optimasi perhitungan
yang tepat diharapkan dapat meningkatkan proses atau kinerja perhitungan,
sehingga hasil yang didapat dalam penggunaannya dapat lebih hemat
memori dan komplesitas yang lebih optimal.2\s
5. Simpulan
hasil perhitungan optimal dari perkalian matrik berantai untuk beberapa
contoh matrik.
optimal dari perkalian matrik berantai.
Daftar Pustaka
Cormen, Thomas H; Leiserson, Charles E; Rivest, Ronald L; Stein, Clifford (2001).
"15.2: Matrix-chain multiplication". Introduction to Algorithms. Second Edition.
MIT Press and McGraw-Hill. pp. 331–338. ISBN 978-0-262-03293-3.
Horowitz & Sahmi, (1979). Fundamental of Computer Algorithms. Mc-Graw Hill,
New York
Strategi Algoritma.
(http://informatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2012-
2019
Virnawati, F., Putri, J. U., & Ernastuti, E. (2008, August). Evaluasi Kinerja
Algoritma Perkalian Matriks Berantai Dengan Teknik Dynamic Programming.
In Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen
(KOMMIT 2008). Gunadarma University.