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