Pengimplementasian Rekursif dalam

advertisement
Pengimplementasian Rekursif dalam Menentukan
Determinan dan Hasil Perkalian Matriks
Kristianto Karim - 13514075
Program Studi Teknik Informatika
Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia
[email protected]
Abstrak— Di dalam tulisan ini akan dibahas mengenai
penerapan rekursif dalam perhitungan determinan dan
perkalian antara dua matriks. Rekursif adalah seuatu yang
berulang dan di dalam pengulangannya mengandung dirinya
sendiri. Dalam tulisan ini akan dibahas dua penerapan
algoritma rekursif yaitu dalam mencari determinan matriks
dan matriks hasil perkalian dua matriks serta
implementasinya.
Kata kunci—determinan matriks, implementasi rekursif,
matriks, perkalian matriks, rekursif.
I. LATAR BELAKANG
Pada kehidupan sehari – hari banyak hal yang terjadi
berulang – ulang. Tetapi proses tersebut pada suatu saat
akan berhenti. Bahasa matematika dari proses berulang
tersebut adalah rekursif. Jadi segala sesuatu dalam
kehidupan ini, berlangsung, berulang terus – menerus
sampai kegiatan tersebut mencapai suatu saat yang kita
sebut sebagai basis. Sebagai contoh, kehidupan kuliah
kita, kita akan terus kuliah terus – menerus, sampai suatu
saat kita mencapai suatu saat dimana kita tidak kuliah lagi
yaitu lulus ( atau mungkin DO ).
Hal yang berulang itu kemudian diteliti oleh para ahli
dan digeneralisasi. Kemudian hal tersebut disebut
rekursif, dan mereka menerapkan rekursif dalam
penyelesaian masalah dibidang apapun. Salah satu bidang
yang digunakan yaitu programming dan matematika.
Sumber :
https://www.google.co.id/imgres?imgurl=http://logos.c
s.uic.edu/examples%252520and%252520notes/notes/Java
/Recursion/RecursionScreenshot.png&imgrefurl=http://lo
gos.cs.uic.edu/examples%2520and%2520notes/notes/Java
/Recursion/Recursion.htm&h=1024&w=1280&tbnid=kd
YXa0nidGe6OM:&docid=FDkoJS5Yvp6t2M&ei=3IZm
VtfXAtHmuQTX146QBw&tbm=isch&ved=0ahUKEwjX
taz63svJAhVRc44KHderA3IQMwg1KAYwBg
atau melukis tangan orang yang sedang melukis tangan
orang yang sedang melukis
Menghitung determinan dan hasil dari perkalian
matriks akanlah sangat merepotkan jika kita menghitung
secara manual terus menerus. Oleh karena itu, kita
mengimplementasikannya ke dalam sebuah program
secara rekursif untuk memudahkan penyelesaian
persoalan matriks.
II. DASAR TEORI
A. Rekursif
Rekursif adalah sesuatu yang memiliki sifat
pengulangan yang di dalam pengulangan itu mengandung
definisi dari dirinya sendiri. Contohnya : membuka kotak
dialog pada windows yang membuka kotak dialog
Makalah IF2120 Matematika Diskrit – Sem. I Tahun 2015/2016
Sumber :
https://www.google.co.id/search?q=recursive+painting
&biw=1517&bih=665&tbm=isch&imgil=elnpVMBrIGJy
BM%253A%253BXnYN2Ep1obS5bM%253Bhttp%2525
3A%25252F%25252Fwww.superbwallpapers.com%2525
2Fdigital-art%25252Frecursive-painting9137%25252F&source=iu&pf=m&fir=elnpVMBrIGJyB
M%253A%252CXnYN2Ep1obS5bM%252C_&usg=__1
_4qPEDjCRPsA6_JXj1S9tr80SU%3D
Menara Hanoi merupakan teka – teki matematika
dengan peraturan
1.
2.
3.
Hanya satu cakram yang boleh dipindahkan
dalam sekali perpindahan
Pengambilan cakram harus dari paling atas
Cakram yang lebih kecil harus diatas cakram
yang lebih besar
Berikut algoritma rekursif untuk menara hanoi
Kondisi dimana rekursif berlangsung disebut rekurens.
Dalam suatu rekurens akan selalu ada
1. Basis : sebagai titik di mana rekursif itu berakhir(
Jika tidak ada maka tidak akan berhenti ).
2. Rekurens : sebagai bagian yang berulang terus –
menerus dengan memanggil dirinya sendiri disertai
inkremen atau dekremen untuk mencapai basisnya.
Contoh rekurens dalam matematika :
𝑓 𝑥 = 𝑓 𝑥 − 1 + 𝑓 𝑥 −2 ,𝑥 ≥ 2
𝑓 0 = 1
𝑓 1 = 2
Sumber :
https://rusdyana.files.wordpress.com/2009/11/asd1
.jpg
Misalnya ingin dicari nilai dari 𝑓 5 maka fungsi akan
berekursif sampai mencapai 𝑓 0 dan 𝑓 1 seperti :
𝑓 5 =𝑓 4 + 𝑓 3
𝑓 5 =𝑓 3 + 𝑓 2 + 𝑓 2 + 𝑓 1
𝑓 5 =𝑓 2 + 𝑓 1 + 𝑓 1 + 𝑓 0 + 𝑓 1 + 𝑓 0
+ 𝑓 1
𝑓 5 = 𝑓 1 + 𝑓(0) + 𝑓 1 + 𝑓 1 + 𝑓 0 + 𝑓 1
+ 𝑓 0 + 𝑓 1
𝑓 5 = 5𝑓 1 + 3𝑓(0)
Jika dituliskan maka algoritmanya adalah
If ( N == 1) then
Pindahkan cakram dari tiang asal ke tujuan
Else
Menara(N-1,asal,tujuan,bantu)
Pindahkan cakram ke n dari asal ke tujuan
Menara(N-1,bantu,asal,tujuan)
Sehingga
𝑓 5 = 2 + 1 + 2 + 2 + 1 + 2 + 1 + 2 = 13
Contoh lain rekursif dalam matematika yaitu :
1. Menara Hanoi
2.
Faktorial
Rekursif dalam factorial yaitu
𝑛! = 𝑛 𝑛 − 1 𝑛 − 2 . .1
3.
Rasio emas
𝜙 = 1+
1
𝜙
B. Matriks
Matriks merupakan kumpulan bilangan, simbol atau
ekspresi yang disusun berdasarkan baris dan kolom.
Isi dari suatu matriks disebut elemen matriks.
Contoh matriks
1 3 0 2
2 4 6 7
5 9 1 8
Jenis – jenis matriks :
1. Matriks Persegi
Matriks yang jumlah baris dan kolomnya sama.
Sumber
:
https://www.google.co.id/imgres?imgurl=https://ri
sdatinambunan.files.wordpress.com/2012/06/10_ri
ng_hanoi.jpg&imgrefurl=https://risdatinambunan.
wordpress.com/2012/06/22/menarahanoi/&h=300&w=400&tbnid=FVeJjCs_TAP65M
:&docid=rHFlOtci1uLJiM&ei=FwtnVvHAHoOdu
QSqr5WYAw&tbm=isch&ved=0ahUKEwixqP2H
3czJAhWDTo4KHapXBTMQMwgmKAswCw
Makalah IF2120 Matematika Diskrit – Sem. I Tahun 2015/2016
2.
Matriks Diagonal
Matriks yang semua elemennya nol kecuali elemen
diagonalnya
Matriks diagonal :
𝑎 0 0
0 𝑏 0
0 0 𝑐
Dimana a, b, c dapat diisi apa saja kecuali nol.
𝑚
𝐻𝑖𝑗 =
3.
Matriks Segitiga
Matriks segitiga terdiri dari 2 yaitu :
1. Matriks segitiga atas
2.
4.
Dengan m adalah jumlah kolom matriks I atau jumlah
baris matriks II, i adalah jumlah baris matriks I dan j
adalah jumlah kolom matriks II.
Jadi ukuran matriks hasil perkalian yaitu baris dari
matriks I dan kolom dari matriks II.
Contohnya :
1 2
5 2 9
.
4 3
6 7 8
(1 ∗ 5 + 2 ∗ 6) (1 ∗ 2 + 2 ∗ 7) (1 ∗ 9 + 2 ∗ 8)
=
(4 ∗ 5 + 3 ∗ 6) (4 ∗ 2 + 3 ∗ 7) (4 ∗ 9 + 3 ∗ 8)
Matriks segitiga bawah
Matriks Simetris
Misalkan ada matriks A,
adalah matriks simetris.
Contohnya :
𝑎 𝑏
𝑏 𝑑
𝑒 𝑕
jika A = AT maka A
𝑒
𝑕
𝑢
D. Minor dan Kofaktor
Minor adalah matriks yang elemennya merupakan
determinan dari matriks selain baris dan kolom minor itu
sendiri.
Misalkan ada matriks A
𝑎 𝑑 𝑖
A= 𝑏 𝑒 𝑕
𝑐 𝑓 𝑔
Matriks minornya adalah
𝑒 𝑕
det
det
𝑓 𝑔
𝑑 𝑖
𝑀𝐴 = det
det
𝑓 𝑔
𝑑 𝑖
det
det
𝑒 𝑕
Operasi dasar pada matriks mencakup :
1. Penjumlahan matriks ( baris dan kolom kedua
matriks harus sama )
𝑒 𝑕
𝑎+𝑒 𝑏+𝑕
𝑎 𝑏
+
=
𝑓 𝑔
𝑐+𝑓 𝑑+𝑔
𝑐 𝑑
2.
Pengurangan matriks ( baris dan kolom kedua
matriks harus sama )
𝑒 𝑕
𝑎−𝑒 𝑏−𝑕
𝑎 𝑏
−
=
𝑓
𝑔
𝑐−𝑓 𝑑−𝑔
𝑐 𝑑
3.
Perkalian dengan skalar
𝑎 𝑏
𝑘𝑎
𝑘.
=
𝑐 𝑑
𝑘𝑐
4.
𝑘𝑏
𝑘𝑑
Transpose
𝑎
𝑏
𝑐
𝑓
𝑒
𝑑
𝑔
𝑕
𝑖
𝑇
𝑎𝑖𝑘 . 𝑏𝑘𝑗
𝑘=1
𝑎
= 𝑓
𝑔
𝑏
𝑒
𝑕
𝑐
𝑑
𝑖
C. Perkalian Matriks dengan Matriks
Matriks bisa dikalikan dengan matriks dengan syarat,
jumlah kolom matriks I harus sama dengan jumlah baris
kolom kedua.
Perkalian antara dua matriks dilakukan dengan
peraturan sebagai berikut :
Misalkan ada
𝑀𝑖𝑥𝑚 . 𝑀𝑚𝑥𝑗 = 𝑀𝑖𝑥𝑗
𝑏 𝑕
𝑐 𝑔
𝑎 𝑖
𝑐 𝑔
𝑎 𝑖
𝑏 𝑕
𝑏
𝑐
𝑎
det
𝑐
𝑎
det
𝑏
det
𝑒
𝑓
𝑑
𝑓
𝑑
𝑒
Sedangkan kofaktor adalah matriks yang elemennya
sama dengan minor tetapi ada perbedaan tanda pada
beberapa elemennya. Elemen dari kofaktor dapat dihitung
dengan menggunakan rumus
𝐶𝑖𝑗 = −1 (𝑖+𝑗 ) 𝑀𝑖𝑗
E. Determinan Matriks
Determinan adalah sesuatu yang berfungsi untuk
menghubungkan bilangan riil dengan matriks persegi.
𝑎 𝑑
Misalkan matriks 𝐴2𝑥2 =
maka
𝑏 𝑐
𝑑𝑒𝑡𝐴 = 𝑎𝑐 − 𝑏𝑑
Untuk matriks dengan jumlah baris dan kolom diatas 2,
determinannya dapat dicari dengan cara :
Misal ada matriks A
𝑎11 𝑎12 𝑎13 … 𝑎1𝑗
𝑎21 𝑎22 𝑎23 … 𝑎2𝑗
𝐴 = 𝑎31 𝑎32 𝑎33 … 𝑎3𝑗
⋮
⋮
⋮
…
⋮
𝑎𝑖1 𝑎𝑖2 𝑎𝑖3 … 𝑎𝑖𝑗
Dengan minor dan kofaktor
Maka elemen matriks hasil perkalian didapatkan
dengan :
Makalah IF2120 Matematika Diskrit – Sem. I Tahun 2015/2016
𝑀11
𝑀21
𝑀𝐴 = 𝑀31
⋮
𝑀𝑖1
𝑀12
𝑀22
𝑀32
⋮
𝑀𝑖2
𝑀13
𝑀23
𝑀33
⋮
𝑀𝑖3
𝑀11
−𝑀12
…
…
…
…
…
𝑀1𝑗
𝑀2𝑗
𝑀3𝑗
⋮
𝑀𝑖𝑗
𝐶𝐴
−𝑀21
=
…
𝑀22
𝑀31
⋮
−1 𝑖+1 𝑀𝑖1
…
−𝑀32
⋮
−1 𝑖+2 𝑀𝑖2
…
…
…
terjadi pergantian baris oleh penunjuk i atau di set
mengikuti kolom jika terjadi pergantian kolom oleh
penunjuk j.
Berikut implementasinya dalam bahasa C :
−1
1+𝑗
𝑀1𝑗
−1
2+𝑗
𝑀2𝑗
−1
3+𝑗
𝑀3𝑗
⋮
−1
𝑖+𝑗
𝑀𝑖𝑗
Maka
𝑗
det 𝐴 =
𝑎1𝑘 𝐶1𝑘
𝑘=1
Determinan juga dapat dicari dengan cara lain yaitu
melakukan operasi barisan elementer sampai didapatkan
suatu matriks segitiga atas kemudian determinannya di
hitung dengan mengalikan seluruh elemen di diagonalnya
kemudian dikali dengan (-1)i dimana i adalah jumlah baris
yang ditukar pada saat operasi barisan elementer.
Misalkan ada matriks A
𝑎 𝑕 𝑖 𝑝
𝑏 𝑔 𝑗 𝑜
𝐴=
𝑐 𝑓 𝑘 𝑛
𝑑 𝑒 𝑙 𝑚
Setelah di OBE
𝑎′ 𝑕′ 𝑖′ 𝑝′
𝐴′ = 0 𝑔′ 𝑗′ 𝑜′
0 0 𝑘′ 𝑛′
0 0 0 𝑚′
Maka
det 𝐴′ = 𝑎′ ∗ 𝑔′ ∗ 𝑘 ′ ∗ 𝑚′
dan
det 𝐴 = −1 𝑖 det⁡
(𝐴′)
A. III. IMPLEMENTASI
A. Perkalian Matriks
Seperti yang kita lihat di Bab sebelumnya yaitu bahwa
perkalian adalah suatu proses penambahan yang berulang
– ulang dan berhenti ketika semua elemen matriks hasil
perkalian berisi.
Perkalian matriks memanfaatkan 3 penunjuk yang
memiliki fungsi masing masing, pada program yang
diimplementasikan, digunakan 3 penunjuk ( kita misalkan
i, j, k ). Penunjuk i berfungsi untuk pergantian baris agar
baris dari matriks hasil perkalian dapat diproses
semuanya, penunjuk j fungsinya hampir sama dengan i
tetapi yang ditunjuk oleh j adalah kolomnya, dan yang
terakhir yaitu penunjuk k yang berfungsi dalam proses
perkalian matriksnya, penunjuk k berinkremen secara
kolom pada matriks 1 dan berinkremen secara baris pada
matriks 2, dan akan selalu di set mengikuti baris jika
Sumber :
https://www.google.co.id/url?sa=t&rct=j&q=&esrc=s&
source=web&cd=6&cad=rja&uact=8&ved=0ahUKEwjV
ps2i2MvJAhVOVY4KHVO_BZYQFgg9MAU&url=http
%3A%2F%2Fwww.sanfoundry.com%2Fc-programmatrix-multiplication-usingrecursion%2F&usg=AFQjCNHY6y3ptsT2I6E4gsy4hK29OOILw&sig2=5MikxWGV2DgVI2i
7mWPfbg
Prosedur rekursif dari implementasi perkalian matriks
di atas menggunakan basis yaitu saat penunjuk i nilainya
lebih besar sama dengan baris matriks 1 yang artinya
adalah semua elemen telah dihitung hasil perkaliannya (
indeks baris terakhir adalah ( B1-1 ) karena array pada
bahasa pemograman C dimulai dari indeks 0 ). Sedangkan
bagian rekurensnya secara berulang memproses matriks c
( matriks hasil perkalian ).
B. Determinan Matriks
Di bab sebelumnya di bagian determinan telah
dijelaskan bahwa untuk mencari determinan dari suatu
matriks yang ordonya lebih besar dari 2x2 diperlukan
determinan dari sub – matriksnya ( minor ). Untuk
matriks yang lebih besar ordonya maka akan sangat
merepotkan untuk melakukan perhitungan manualnya,
program.
Implementasi rekursif dalam menghitung determinan
suatu matriks persegi yaitu dengan membuat suatu fungsi
rekursif yang basisnya adalah determinan matriks berordo
2x2 dan bagian rekursennya yaitu menentukan nilai
minornya yang akan direkursif sampai sub – matriks 2x2).
Makalah IF2120 Matematika Diskrit – Sem. I Tahun 2015/2016
Kemudian dilanjutkan dikali dengan (-1)(i+j) untuk
mendapat kofaktornya dan diakumulasi dengan jumlah
sebelumnya.
Berikut implementasinya dalam bahasa C :
PERNYATAAN
Dengan ini saya menyatakan bahwa makalah yang saya
tulis ini adalah tulisan saya sendiri, bukan saduran, atau
terjemahan dari makalah orang lain, dan bukan plagiasi.
Bandung, 8 Desember 2015
Kristianto Karim – 13514075
Sumber :
https://www.google.co.id/url?sa=t&rct=j&q=&esrc=s&
source=web&cd=3&cad=rja&uact=8&ved=0ahUKEwiI2
9mBiszJAhVBT44KHRSqA7sQFggmMAI&url=https%3
A%2F%2Fgist.github.com%2F4037974&usg=AFQjCNE
nrL0NM0pUVojAk21dMwTYyFU8HA&sig2=PZ6nxeLz
k4uj0obCP9GnFQ&bvm=bv.109332125,d.c2E
V. KESIMPULAN
Rekurens sangat banyak aplikasinya dalam kehidupan
untuk menyelesaikan permasalahan salah satunya
permasalahan matematika, dan akan lebih mudah dan
efisien lagi jika dapat diimplementasikan ke dalam
program.
DAFTAR PUSTAKA
Munir,rinaldi.”Diktat Kuliah IF2120 Matematika Diskrit”, edisi
keempat,Program Studi Teknik Informatika STEI ITB,2006.
http://informatika.stei.itb.ac.id/~rinaldi.munir/Matdis/20132014/Makalah2013/MakalahIF2120-2013-051.pdf
Waktu akses : 08 Desember 2015, 00.00 WIB
http://rumus-matematika.com/materi-matriks-lengkap-dan-contohnya/
Waktu akses : 08 Desember 2015, 02.30 WIB
http://paulbourke.net/miscellaneous/determinant/
Waktu akses : 08 Desember 2015, 03.00 WIB
Abstract Data Type Matriks Algoritma Struktur Data
http://www.sanfoundry.com/c-program-matrix-multiplication-usingrecursion/
Waktu akses : 08 Desember 2015, 23.00 WIB
http://www.sourcecodesworld.com/source/show.asp?ScriptID=1054
Waktu akses : 09 Desember 2015, 00.30 WIB
Makalah IF2120 Matematika Diskrit – Sem. I Tahun 2015/2016
Download