Selasa, 17 April 2012

REKURSIF


contoh fungsi rekursif

#include<stdio.h>

void rekursi(int n);

main()

{ int x=3;

rekursi(x);

/* Pemanggilan Fungsi */

}

void rekursi(int n) { static int j=0;

if(n<=0) return;

printf("rekursi ke-%d\n",++j); rekursi(n-1);

/* Kondisi Perhentian pemanggilan fungsi kembali */

/* Pemanggilan fungsi rekursi di dalam fungsi rekursi */

}



Program Fibonacci dengan Rekursif

#include <stdio.h>

int fibo(int n);

int main () {

int x;

printf("Menampilkan deret Fibonacci\n"); printf("Batas suku bilangan ke : "); scanf("%d", &x);

printf(“Deret ke %d = %d”, x, fibo(x)); printf("\n\nDeret fibonacci : \n");

for(int i=1; i<=x; i++)

printf("%d ",fibo(i)); /* Pemanggilan deret Fibonacci sebanyak x kali */

return 0;

}

int fibo(int n) {

if (n==1) return 1;

else if(n==2) return 1;

else

return fibo(n-2)+ fibo(n-1);

}

Hasil Running:

Menampilkan deret Fibonacci Batas suku bilangan ke : 5 Deret ke 5 = 5

Deret fibonacci : 1 1 2 3 5

Penjelasan program:

Deret fibonacci mempunyai nilai suku-suku bilangan berikut:

0, 1, 1, 2, 3, 5, 8, 13, 21, ............

96


Ciri khusus deret ini adalah tiap-tiap suku adalah hasil penjumlahan dari nilai dua suku sebelumnya. Misalnya adalah nilai suku ke dua adalah penjumlahan nilai suku ke 0 (bernilai 0) dengan suku ke 1 (bernilai 1) jadi nilai suku ke 2 adalah sama dengan 1 (0 + 1). Nilai suku ke tiga adalah nilai suku ke dua ditambah nilai suku ke satu. Misalnya untuk mencari bilangan fibonacci ke- 5, maka urutan pengerjaannya adalah sebagai berikut:

fibo(5)

fibo(3)
 fibo(4)

fibo(1)
 fibo(2)
 fibo(2)

fibo(1)

fibo(3)

fibo(2)

Dari diagram terlihat bahwa untuk mendapatkan deret ke 5 dari deret fibonacci maka fungsi fibo(4) dihitung satu kali, fungsi fibo(3) dihitung dua kali, fungsi fibo(2) dihitung tiga kali dan fungsi fibo(1) dihitung dua kali. Hal ini menyebabkan proses lebih lama dan juga sumber daya yang dibutuhkan untuk menangani proses ini lebih banyak.

Listing Program 11.4 Program Fibonacci dengan Iteratif

#include <stdio.h>

int fibo(int n);

int main () {

int x;

printf("Menampilkan deret Fibonacci\n"); printf("Batas suku bilangan ke : "); scanf("%d", &x);

printf(“Deret ke %d = %d”, x, fibo(x)); printf("\n\nDeret fibonacci : \n");

for(int i=1; i<=x; i++)

printf("%d ",fibo(i)); /* Pemanggilan deret Fibonacci sebanyak x kali */

return 0;

}

int fibo(int n) {

int fb1, fb2, fn, i; if (n==1) return 1; if(n==2) return 1; fb1=1; fb2=1;

for (i=3; i<=n; i++) { fn = fb1 + fb2;

fb2= fb1; fb1= fn;

}

return fn;

}

97


Hasil Running:

Menampilkan deret Fibonacci Batas suku bilangan ke : 5 Deret ke 5 = 5

Deret fibonacci : 1 1 2 3 5

Penjelasan Program:

Dari listing program 11.4, terlihat bahwa setiap kali akan menghitung suku ke-n, maka nilai-nilai suku sebelumnya akan digunakan kembali, yaitu nilai dari n-1(variabel fb1) dan nilai dari n-2(variabel fb2). Pertama dihitung nilai dari deret ke-n, kemudian nilai dari deret n-1 diberikan kepada deret n-2, dan nilai dari deret n diberikan kepada deret n-1.



Referensi:

Deitel & Deitel, C How to Program 3rd Edition , Prentice Hall, New Jersey, 2001

Jogiyanto, Konsep Dasar Pemrograman Bahasa C , Andi Offset, Yogyakarta, 1993

Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C , Salemba Teknika, Jakarta, 2004

Perhitungan Pom Bensin Dalam C++

Berikut codingnya:
#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

class bensin{
      private:
             
              double pilihan;
              double uang,liter,a,i,j,k,b,c;
      public:
      double hasil(){
      cout<<"1.pertamax"<<endl<<"2.premium"<<endl<<"3.solar"<<endl<<endl<<"silahkan pilih : "<<endl<<endl;
      cin>>pilihan;
      if(pilihan==1){
                    
                         
                    cout<<"masukan jumlah uang anda :"<<endl;
                    cin>>uang;
                    a=uang/7000;
                    cout<<"pertamax yang anda dapat : " <<a<<endl;system("PAUSE");
                    for( i=0.1;i<=a;i=i+0.0001)
                    cout<<i<<endl;
                    cout<<"pertamax yang anda dapat : " <<a<<endl;
                  
                    }
      else if(pilihan==2){
          
                        cout<<"masukan jumlah uang anda :"<<endl;
                    cin>>uang;
                    b=uang/4500;
                    cout<<"bensin yang anda dapat : " <<b<<endl;system("PAUSE");
                    for( j=0.1;j<=b;j=j+0.0001)
                    cout<<j<<endl;
                    cout<<"bensin yang anda dapat : " <<b<<endl;
                         }
      else if(pilihan==3){
                          cout<<"masukan jumlah uang anda :"<<endl;
                          cin>>uang;
                          c=uang/4200;
                          cout<<"solar yang anda dapat : " <<c<<endl;system("PAUSE");
                          for( k=0.1;k<=c;k=k+0.0001)
                          cout<<k<<endl;
                          cout<<"solar yang anda dapat : " <<c<<endl;}
      else cout<<"pilihan salah"<<endl;
      }};
     
int main(){
bensin a;
a.hasil();
cout<<endl;

      system("PAUSE");
    return EXIT_SUCCESS;
      }
summber:/cahpienter-ilmuku.blogspot.com/

MENGHITUNG VOLUME BOLA DALAM RAPTOR

Dengan inputan belum ditentukan
Selesai,,,,,, selamat mencoba

A X B Sebannyak B kali... dalam RAPTOR

Berikut Raptornya

Menentukan bilangan fibonaci menggunakan C++

#include <iostream>
#include <string>

using namespace std;
int main()
{
   string raptor_prompt_variable_zzyz;
   int x;
   int a;
   int b;
   int c;
   int i;

   raptor_prompt_variable_zzyz ="Input Number ";
   cout << raptor_prompt_variable_zzyz << endl;
   cin >> x;
   a =0;
   b =1;
   c =1;
   i =1;
   while (!(i>x))
   {
      cout << c << endl;      c =b+a;
      a =b;
      b =c;
      i =i+1;
   }

   return 0;
}

Menentukan akar dalam RAPTOR

REFLEKSI MINGGU KE-7 (ARRAY)

Pada pertemuan ke-7 Array
Apasih Array itu,,,,,???
Array adalah suatu tipe data terstuktur yang berupa sejumlah data sejenis (bertipe
data sama) yang jumlahnya tetap dan diberi suatu nama tertentu. Elemen-elemen array tersusun secara sekuensial di dalam memori sehingga memiliki alamat yang berdekatan. Selain itu Array dapat berupa array 1 dimensi, 2 dimensi, bahkan n-dimensi. Dan juga Elemen-elemen array bertipe data sama tapi bisa bernilai sama atau berbeda-beda.

itulah sedikit pengenalan tentang Array........

suasana dalam kelas.... 

Seperti biasa Bapak Dosen memberi Tugas berkelompok dimana 1 kelompok terdapat 2 kelompok TP untuk mendiskusikan contoh Array dalam kehidupan sehari-hari.

Ini adalah hasil diskusi kami :

Input: passanger membeli tiket kereta api lodaya bisnis jurusan jogja-bandung di stasiun tugu dan mendapatkan tiket yang berisi nomor gerbong bisnis I dan tempat duduk di nomor 2A untuk keberangkatan jam 14.00 di stasiun tugu
Proses: passanger mencari gerbong bisnis I dan mencari nomor tempat duduk di nomor 2A di kereta lodaya bisnis yang hendak berangkat pukul 14.00 di stasiun tugu
Output: passanger menempati gerbong bisnis I dan duduk di kursi nomor 2A di kereta lodaya bisnis tersebut
Kesimpulan: Penumpang mendapatkan nomor tempat duduk di gerbong dan kursi masing-masing sesuai karcis (yang telah ditentukan) di kereta lodaya bisnis yang berangkat pukul 14.00 dari stasiun tugu ke stasiun bandung (jogja ke bandung). Kemudian dia menempati gerbong dan tempat duduk yang sudah ditentukan.
Itu adalah salah satu contoh kasus Array dalam kehidupan sehari-hari.
Kelompok ku :
1.Laela Zuliana : 11018175
2.Rosmalina Kemala : 11018150
3.Pipin Irwandi : 11018162
4.Manik Wijadmicko : 11018152
5.Radhian Prayoga : 11018155
6.Satria A. E : 11018184


sekiannnnnnnnnnn......

CLASS,OVERLOADING (menghitung volume kubus)


#include <cstdlib>
#include <iostream>

using namespace std;
 class Volume{
       friend ostream& operator<<(ostream&, Volume&);
       friend istream& operator>>(istream&, Volume&);
 public:
        Volume();
        void volume_kubus(){
             volume=s*s*s;
             }
 private:
         int s;
         int volume;
         };
 Volume::Volume(){
              cout<<"PROGRAM MENGHITUNG VOLUME KUBUS"<<endl;   
                  }  
 istream& operator>>(istream& in, Volume& masukan){
          cout<<"Masukkan sisi:";
          in>>masukan.s;
          return in;
          }
 ostream& operator<<(ostream& out, Volume& keluaran){
          out<<"sisi kubus:"<<keluaran.s<<endl;
          out<<"Volume Kubus :"<<keluaran.volume<<endl;
          return out;
          }
int main(int argc, char *argv[])
{
    Volume x;
    cin>>x;
    x.volume_kubus();
    cout<<x;
    system("PAUSE");
    return EXIT_SUCCESS;
}

MENENTUKAN NILAI PANGKAT POSITIF MENGGUNAKAN c++ DENGAN FUNGSI REKURSIF

#include <cstdlib>
#include <iostream>

using namespace std;
long pangkat(int x, int y){
if(y==0){
return 1;    
}
else if(y==1){
return x;

          }
else{
return x*pangkat(x,y-1); 
}
}
int main(int argc, char *argv[])

int a,b;
cout<<"Masukkan nilai a:"<<endl;
cin>>a;
cout<<"Masukkan nilai b:"<<endl;
cin>>b;
cout<<"hasil:"<<pangkat(a,b);
system("PAUSE");
return EXIT_SUCCESS;

}