PERTEMUAN VI Macam-macam Algoritma : Algoritma Rekursif ; merupakan algoritma yang mengandung prosedur rekursif. Rekursif adalah cara memecahkan masalah yang besar dengan menggunakan teknik bagi dan temukan.
Contoh : Menentukan harga faktorial . n ! Didefinisikan sebagai berikut : n! = 1, untuk n = 0 n! = n(n-1)(n-2)…2.1, untuk n ≥ 1 n! = n(n-1)!, untuk n ≥ 1 Sehingga : 5! = 5.4! = 5.4.3! = 5.4.3.2! = 5.4.3.2.1! = 5.4.3.2.1.0! = 5.4.3.2.1.1 = 120
Perhatikan contoh diatas ! 0! = 1 dapat digunakan sebagai nilai awal untuk mencari n! Jadi : 1! = 1.0! = 1 2! = 2.1! = 2 3! = 3.2! = 6 4! = 4.3! = 24 5! = 5.4! = 120
Algoritma Euclides merupakan algoritma tertua yang bertujuan mencari faktor persekutuan terbesar dari dua bilangan bulat. Misalkan m dan n adalah bilangan-bilangan bulat yang keduanya tidak sama dengan nol. Pembagi persekutuan dari m dan n adalah bilangan bulat yang membagi baik m maupun n.
Faktor persekutuan terbesar ditulis : FPB(m,n) Contoh : Cari FPB ( 30, 105 ) Jawab : Pembagi positip dari 30 adalah 1, 2, 3, 5, 6, 10, 15, 30 Pembagi positip dari 105 adalah 1, 3, 5, 7, 15, 21, 35, 105 Persekutuan pembagi 30 dan 105 adalah 1, 3, 5, 15 Jadi FPB( 30, 105 ) adalah 15
Langkah-langkah Algoritma. Bandingkan apakah m<n, kalau ya ke 3 kalau tidak ke 2 Tukar posisi m dengan n Bagi m dengan n (m,n), dengan sisa s atau bagi n dengan m (n,m), dengan sisa s Ganti m dengan n dan n dengan s, atau n dengan m dan m dengan s 5. Kembali ke langkah 3 sampai sisa 0 6. FPB (m,n) didapat
Contoh : Cari FPB ( 30, 105 ) jawab : FPB(105, 30) 105 = 30.3 + 15 ganti 105 dengan 30 dan 30 dengan 15 sehingga FPB(105,30) menjadi FPB(30,15) 30 = 15.2 + 0 ganti 30 dengan 15 dan 15 dengan 0 sehingga FPB(30,15) menjadi FPB(15,0) Jadi FPB(105,30) = 15
Tugas : 1. Buatlah coding dalam c++ tentang aplikasi algoritma rekursif. 2. Buatlah coding dalam c++ tentaang aplikasi algoritma Euclides.