BAB 5

Penyelesaian untuk BAB 5 bisa di buka dan di pelajari di link berikut ini:
https://drive.google.com/file/d/0B0OKvNaOD24tQzF6Z3NlQkY3TDQ/view?usp=sharing

DIKTAT

Untuk materi dan soal-soal diktat bisa cek di link berikut:
https://drive.google.com/file/d/0B0OKvNaOD24tMGlOREduMS16Q00/view?usp=sharing

BAB 6

untuk hasil kerja diktat BAB 6 silakan kunnjungi halaman berikut:
https://drive.google.com/file/d/0B0OKvNaOD24tWDMydFJFQUlEMm8/view?usp=sharing

BAB 4

untuk penyelesaian kasus BAB 4 bisa di lihat di link di bawah ini:
https://drive.google.com/file/d/0B0OKvNaOD24tV3B4Ml9yWmk2OW8/view?usp=sharing


KASUS 5.8

Buatlah algoritma iteratif dan rekursif untuk menghitung gcd dari dua bilangan bulat positif.
Analisis :

Jika n ¹ 0 dan m integer non negatif, kita dapat menulis m = q.n + r untuk suatu integer non negatif q dan r dengan 0 £ r < n.

1. Rekursif
#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int gcd(int c, int d){
int r;
while (d>0){
r=c%d;
c=d;
d=r;
}
}

int main(int argc, char** argv) {
int a, b;
cout<<"masukan angka : ";cin>>a;
cout<<"masukan angka lagi : ";cin>>b;
cout<<"hasil gcd = "<<gcd(a,b)<<endl;
return 0;
}



2. iteratif
#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;

int gcd(int c, int d)
{
if (d==0) return (c);
if (c<d) return (gcd(d,c));
return (gcd(c-d,d));
}

int main(int argc, char** argv) {
int a, b;
cout<<"masukan angka : ";cin>>a;
cout<<"masukan angka lagi : ";cin>>b;
cout<<"hasil gcd : "<<gcd(a,b)<<endl;

return 0;

}


Tampilan
keeduanya memiliki tampian output yang sama



KASUS 5.6

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.

Menggunakan C++

#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int fibonacci(int n){
if (n==1 || n==2)return(1);
else return(fibonacci(n-1)+fibonacci(n-2));
}
int main(int argc, char** argv) {
int i,n;
cout<<"Masukan Batas Suku =";cin>>n;
for(i=1;i<=n;i++)
cout<<fibonacci(i)<<",";
return 0;
}
Tampilan
Menggunakan Raptor
nah untuk kasus 5.8 bisa kunjungi blog partner di:
http://keronskl.blogspot.co.id/2016/04/kasus-58.html
juga untuk referensi teman-teman bisa juga kunjungi partner yang satu ini juga:
http://pengantarprogram.blogspot.co.id/search/label/KASUS%205.1-5.8?=6

selamat bekerja dan berkaryaa ^^

KASUS 5.5

Pertanyaan :
Fungsi faktorial rekursif untuk mencari nilai n!
Menggunakan C++#include <iostream>#include <string>
using namespace std;void factorial(int n,int x,int hasil){ if(x>n){ cout<<"Factorial "<<n<<" adalah "<<hasil<<endl; }else{ hasil=hasil*x; x=x+1; factorial(n,x,hasil);}}
int main() { int hasil; int n; int x; cout<<"Masukan nilai factorial : "; cin>>n; x=1; hasil=1; factorial(n,x,hasil); return 0;}

Tampilan
Raptor

KASUS 5.4

Pertanyaan:
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)
#include <iostream>
#include <math.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int kali(int m, int n){
int i,hasil=0;
for(i=1;i<=abs(n);i++)
hasil+=m;
if (n<0)return(-hasil); else return (hasil);
}
int main(int argc, char** argv) {
int a,b;
cout<<"Masukan Nilai 1 =";cin>>a;
cout<<"Masukan Nilai 2 =";cin>>b;
cout<<"Hasil Perkalian ="<<kali(a,b);
return 0;
}
 Tampilan
Menggunakan Raptor