Selasa, 01 November 2011

fungsi rekursif

1. Apa perbedaan fungsi Rekursif dengan Fungsi Iteratif?
2. Buat algoritma untuk menghitung deret S = 2+4+6+8+10+…+2n menggunakan function rekursi
3. Buatlah fungsi program untuk menghitung faktorial dengan menggunakan fungsi rekursif dan fungsi biasa(iteratif)
Jawab :
11. Perbedaan :
2- Iteratif menggunakan FOR, WHILE, DO-WHILE sedangkan rekursif hanya menggunakan IF.
3- Iteratif dapat berjalan pada program yang terdiri dari prosedur (Tidak terdapat fungsi) sedangkan rekursif merupakan fungsi.
12. Function S(input n:integer)  integer
2Deskripsi
3    If (n==1) Then
4    return (2)
5    Else
6    return (2*n + S(n-1))
7    Endif
013. Faktorial rekursif
02int Faktorial(int n)
03{
04      if ((n == 0) || (n == 1 ))
05          return (1);
06      else
07          return (n * Faktorial(n-1));
08}
09 
10  Faktorial iteratif
11int fact_it (int n)
12{
13    int temp;
14    temp = 1;
15if (n < 0)
16    return 0;
17else if (n == 0)
18    return 1;
19else if (n == 1)
20    return 1;
21Else
22    for (int i=2; i<=n; ++i)
23    temp = temp * i;
24    return (temp);
25}
Jawaban pretest kategori 1
1. Apa perbedaan fungsi Rekursif dengan Fungsi Iteratif?
2. Buat algoritma untuk menghitung deret S = 1+2+3+4+5+…+n menggunakan function rekursi
3. Buatlah fungsi program dengan menggunakan fungsi biasa(iteratif) dan fungsi rekursif untuk menampilkan jumlah nilai fibonacci
Jawab :
11. Persamaan :
2Persamaan
3- Sama-sama merupakan bentuk perulangan.
4- Dilakukan pengecekan kondisi terlebih dahulu sebelum mengulang.
12. Algoritma :
2Function S(input n:integer)  integer
3Deskripsi
4        If (n==1) Then
5        return (1)
6        Else
7        return (n + S(n-1))
8        Endif
013. Fibonaci rekursif :
02int fibonacci(int n){
03    if((n==1)||(n==2)){return 1;}
04    else {
05        return (fibonacci(n-1)+fibonacci(n-2));
06    }
07    }
08 
09   Fibonaci iteratif :
10int fibonacci(int n)
11{
12  int u = 0;
13  int v = 1;
14  int i, t;
15 
16  for(int i = 2; i <= n; i++)
17  {
18    t = u + v;
19    u = v;
20    v = t;
21  }
22  return v;
23}
Jawaban Postest
  1. Buatlah program dalam bentuk class yang mempunyai bentuk rekursif untuk menghitung dengan rumus fungsi :
  1. permutasi
  2. kombinasi
Gunakan fungsi rekursif faktorial!
  1. Buatlah program untuk menampilkan deret fibonacci dan jumlah nilai fibonacci dalam bentuk rekursif, buat dengan class!
Jawab :
1. Permutasi, kombinasi
#include <cstdlib>
#include <iostream>
using namespace std;
class soal1{
public:
soal1();
int faktorial(int);
int kombinasi(int,int);
int permutasi(int,int);
private:
int n,r;
};
soal1::soal1(){
cout<<"nilai n:";cin>>n;
cout<<"nilai r:";cin>>r;
cout<<"Kombinasi : "<<kombinasi(n,r);
cout<<endl<<"Permutasi : "<<permutasi(n,r);
}
int soal1::faktorial(int n)
{
if ((n == 0) || (n == 1 ))
return (1);
else
return (n * faktorial(n-1));
}
int soal1::kombinasi(int n,int r){
if(n<r){return 0;}
else return (faktorial(n)/faktorial(r)*faktorial(n-r));
}
int soal1::permutasi(int n, int r){
if(n<r){return 0;}
else return (faktorial(n) / faktorial(n-r));
}
int main(int argc, char** argv) {
soal1 a;
return 0;
}
//deret fibonacci dan paeke
#include <cstdlib>
#include <iostream>
using namespace std;
class soal2{
public:
soal2();
int fibonacci(int);
int deret();
private:
int f;
};
soal2::soal2(){
cout<<"masukkan batas suku deret :";
cin>>f;
}
int soal2::fibonacci(int n){
if((n==1)||(n==2)){return 1;}
else {
return (fibonacci(n-1)+fibonacci(n-2));
}
}
int soal2::deret(){
for(int i=1;i<=f;i++){
cout<<fibonacci(i)<<" ";
}
cout<<endl<<"jumlah nilai fibonacci dari "<<f<<" :"<<fibonacci(f);
}
int main(int argc, char** argv) {
soal2 a;
a.deret();
return 0;
}

Minggu, 23 Oktober 2011

Belajar Membuat Flowchart

 Buatlah Flowchart dari Pseudocode berikut ini :
a. Masukkan kode barang
b. Masukkan harga barang
c. Masukkan jumlah barang
d. Hitung bayar = harga * jumlah barang
e. Jika bayar >= 100.000 maka mendapat discount 10%, jika < 100.000 tidak mendapat discount
f. Total bayar = bayar - discount
g. Cetak total bayar

Kamis, 06 Oktober 2011

kebaikan datangnya dari Allah


Apapun kebaikan yang terjadi padamu,(asalnya) dari Allah,
Dan apapun yang buruk menimpa dirimu, (asalnya) dari dirimu
(QS An Nissa : 79)
Kejadian ini terjadi sekitar satu tahun yang lalu, ketika saya harus berangkat  ke kota Jogjakarta untuk melaksanakan perjalanan dinas. Saat itu aku baru lulus SMK dan sama sekali tidak mengerti wilayah Jogjakarta.
Dengan berbekal uang seadanya dan alamat kantor yang dituju, aku berangkat jam 5 pagi menggunakan Travel. Sepanjang perjalanan aku memikirkan dimana aku harus tinggal, dengan siapa, apa yang harus aku kerjakan, bagaimana bertemu dengan pimpinan dan lain-lain.
Aku baru ingat, ada teman SMP ku yang sedang melanjutkan studi di jogja. Aku memutuskan untuk menghubunginya meminta bantuan agar aku bisa ikut beristirahat di tempatnya. Dengan senang hati ia mau membantuku, dan juga mengantarkan ku ke alamat kantor yang aku tuju.
Sesampainya di jogja dan beristirahat sejenak, aku menyampaikan tujuanku datang ke jogja untuk mengikuti pelatihan selama kurang lebih 1 bulan. Dan aku belum tahu dimana tempat pelatihannya.Ternyata ia tahu lokasi kantor yang aku tuju, esok hari nya ia mengantarkanku. Kami berjalan sekitar setengah jam menyusuri jalan, melewati kampus. Dia hanya bisa mengantar sampai depan kampus tempat ia belajar, dan ia menunjukkan arah menuju kantor yang aku tuju.
Aku sampai di kantor pukul 08.30wib, terlambat setengah jam dari jam masuk kerja. Beruntung pimpinan memaklumi ku.  Setelah berkenalan, aku langsung mengikuti pelatihan. Aku belum pernah mempelajari materi pelatihan di bangku SMP maupun SMK. Dan aku punya waktu satu bulan untuk mempelajari materi tersebut.
Hari cepat berlalu dan berganti petang, aku pulang ke kost temanku. Aku menangis, aku merasa tidak mampu mengikuti pelatihan itu, ada penyesalan dalam hatiku. Tetapi temanku berusaha meyakinkanku bahwa aku pasti bisa melaluinya. Dengan catatan aku harus sabar menghadapinya. Dan aku juga menyampaikan padanya, bahwa aku tidak mungkin terus-menerus menginap di tempatnya. Aku merasa tidak enak dengan teman-temannya meskipun dia tidak keberatan membantuku.
Keesokan harinya, aku lebih memantapkan hati mengikuti pelatihan. Aku berbincang-bincang dengan marketing  yang kebetulan sedang makan siang denganku, mbak Aisah namanya. Aku sampaikan kendala ku, subhanallah dia menawari aku untuk tinggal di rumahnya. Karena ia tinggal sendiri, sedangkan suaminya berdinas di luar kota. Dengan senang hati aku menerima tawaran itu. Sore hari aku langsung ikut ke rumahnya.
Aku merasa lebih aman tinggal bersama mbak Is, meskipun jarak ke kantor cukup jauh. Setiap hari kami berboncengan menuju kantor. Sesekali ketika hari libur, aku di ajak jalan-jalan melihat kota Jogjakarta. Dia tak hanya baik tapi juga penyayang.
Tak terasa satu bulan berlalu, aku harus  kembali ke Purwokerto. Belum puas rasanya berkeliling kota Jogjakarta.  Sedih rasanya harus berpisah dengan mbak Is, orang yang selama di sana membantuku. Sampai sekarang aku masih mengenang saat-saat aku disana. Mengenang kabaikan-kebaikan mereka.
Aku baru menyadari, Allah selalu bersama kita baik dalam keadaan suka maupun duka. Menolong kita ketika menghadapi kesulitan. Dan kadang Allah mengirimkan pertolongan dengan hal yang tidak di sangk-sangka. Ketika kita berbuat baik kepada orang lain, Allah akan membalas  dengan berlipat-lipat kebaikan kepada kita, meskipun dengan dcara yang berbeda. Selama ini aku hanya mendengar dari cerita-cerita orang lain, dan kini aku telah mengalaminya sendiri. Jangan takut berbuat baik, karena setiap hal yang kita perbuat, baik maupun buruk Allah pasti kan membalasnya….