Jumat, 12 April 2013

Kasus 5.8 iteratif dan rekursif untuk menghitung gcd dari dua bilangan bulat positif.



Buatlah algoritma iteratif dan rekursif untuk menghitung gcd dari dua bilangan bulat positif.
Analisis :
Jika n tidak sama demgan 0 dan m integer non negatif, kita dapat menulis m = q.n + r untuk suatu integer non negatif q dan r dengan 0 lebih kurang sama dengan r < n. 

Flowchartnya :










Kasus 5.6. Fibonanci



Diberikan deret Fibonacci sebagai berikut :
1, 1, 2, 3, 5, 8, …
Buatlah fungsi yang menghitung suku ke-n dari deret Fibonacci dengan menggunakan cara rekursif.
Analisis :
Suku ke-n dari deret Fibonacci diperoleh dengan rumus :
fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)
dengan nilai awal untuk n=1 dan n=2 berharga 1. 

flowchartnya :




Kasus 5.5. Buatlah fungsi faktorial secara rekursif untuk mencari n!.



Buatlah fungsi faktorial secara rekursif untuk mencari n!.
Analisis :
Kasus penyetop (= nilai awal) n = 0 atau n = 1 yaitu bernilai konstan 1
Kasus rekursif :
n * faktorial (n-1)

Flowchartnya  :






Kasus 5.4.Buatlah fungsi perkalian 2 bilangan bulat dengan menggunakan operator penjumlahan.



Buatlah fungsi perkalian 2 bilangan bulat dengan menggunakan operator penjumlahan.
Analisis :
Misalkan a dikalikan b (input)
Proses :
a x b = a + a + a + … + a (sebanyak b kali)

Flowchart :





Kasus 5.3. Dengan menggunakan fungsi ln dan exp, buatlah fungsi untuk menghasilkan nilai xy



Dengan menggunakan fungsi ln dan exp, buatlah fungsi untuk menghasilkan nilai xy
Analisis :
Dengan menggunakan sifat logaritma :
ln(xy) = y*ln(x)
exp(ln(xy)) = exp(y*ln(x))
xy = exp(y*ln(x)) 

Flowchartnya  :




Kasus 5.2. Buatlah fungsi yang menentukan nilai terbesar dari 2 bilangan bulat.

Buatlah fungsi yang menentukan nilai terbesar dari 2 bilangan bulat.

Flowchartnya :