SlideShare une entreprise Scribd logo
1  sur  13
REKURSIF

Algoritma dan Pemrograman II

       Wilis Kaswidjanti
 Informatika UPN “Veteran” Yk
             2007



         wilis k - IFUPN"V"Yk
Algoritma dan Pemrograman II


                    REKURSIF

• Rekursif merupakan alat/cara untuk
  memecahkan masalah dalam suatu fungsi atau
  procedure yang memanggil dirinya sendiri.

• Definisi menurut Niclaus Wirth :
  “ An object is said be recursive if it partially consist
    or is defines in terms of itself”


• perhitungan matematika ( contoh fungsi
  factorial dan bilangan Fibonacci)
                      wilis k - IFUPN"V"Yk
Algoritma dan Pemrograman II


                    Faktorial
• Fungsi factorial dari bilangan bulat positif n
  didefinisikan sebagai berikut:
     n!= n.(n-1)! , jika n>1
     n!= 1        , jika n=0, 1

• contoh :
     3!= 3. 2!
     3!= 3. 2. 1!
     3!= 3. 2. 1
     3!= 6

                    wilis k - IFUPN"V"Yk
Algoritma dan Pemrograman II
    Kita dapat menuliskan fungsi penghitung factorial
                  seperti dibawah ini
1.   int Faktorial(int n)
2. {
3.     if ((n == 0) || (n == 1 ))
4.          return (1);
5.     else
6.          return (n * Faktorial(n-1));
7. }
•    Pada baris 3 dari fungsi diatas,
     nilai n dicek sama dengan 0 atau 1,
     jika ya, maka fungsi mengembalikan nilai 1 {baris 4},
     jika tidak, fungsi mengembalikan nilai n * Faktorial (n -1)
       {baris 6}
•    disinilah letak proses rekursif itu, perhatikan fungsi
     factorial ini memanggil dirinya sendiri tetapi dengan
     parameter (n-1)      wilis k - IFUPN"V"Yk
Algoritma dan Pemrograman II


            Bilangan Fibonacci

• Fungsi lain yang dapat diubah ke bentuk
  rekursif adalah perhitungan Fibonacci.
  Bilangan Fibonacci dapat didefinisikan sebagai
  berikut:
      fn = fn-1 + fn-2 untuk n > 2
      f1 = 1
      f2 = 1
  Berikut ini adalah barisan bilangan Fibonacci
  mulai dari n=1
      1 1 2 3 wilis k - IFUPN"V"Yk 21 34
                        5 8 13
Algoritma dan Pemrograman II


 Algoritma Fibonacci yang dipakai
Function Fibonacci(input n:integer)  integer
Deklarasi Lokal
  {tidak ada}
Deskripsi
  If (n ==1 || n==2) Then
     return (l)
  Else
     return (Fibonacci(n-1)+Fibonacci(n-2))
  Endif




                  wilis k - IFUPN"V"Yk
Algoritma dan Pemrograman II

               Contoh

• Untuk ukuran n= 4, proses perhitungan
  Fibonacci dapat dilakukan sebagai
  berikut:
     f4 = f3+f2
     f4 = (f2+f1) + f2
     f4 = (1+1) +1
     f4 = 3

                wilis k - IFUPN"V"Yk
Algoritma dan Pemrograman II


                   Kombinasi
Function Kombinasi (input n, r : integer)  real
Deklarasi
 If (n < r) Then
  return (0)
 Else
  return (Faktorial(n)/Faktorial(r)*Faktorial(n-r))
 Endif




                    wilis k - IFUPN"V"Yk
Algoritma dan Pemrograman II


                 Permutasi
Function Permutasi (input n, r : integer)  real
Deklarasi
    {tidak ada}
 Deskripsi
    If (n< r) Then
           return (0)
    Else
           return (Faktorial(n) / Faktorial(n-r))
    Endif




                  wilis k - IFUPN"V"Yk
Algoritma dan Pemrograman II


              Latihan
1. Buat program untuk menghitung deret
   S = 1+2+3+4+5+...+n menggunakan
   function rekursi
2. Buat program untuk menghitung deret
   S = 2+4+6+8+10+...+2n menggunakan
   function rekursi



               wilis k - IFUPN"V"Yk
No.1 deret S=1+2+3+4+5+…+n
Function S(input n:integer)  integer
Deklarasi Lokal
  {tidak ada}
Deskripsi
  If (n==1) Then
     return (l)
  Else
     return (n + S(n-1))
  Endif


               wilis k - IFUPN"V"Yk
No.2 deret S=2+4+6+8+10+…+2n
Function S(input n:integer)  integer
Deklarasi Lokal
  {tidak ada}
Deskripsi
  If (n==1) Then
     return (2)
  Else
     return (2*n + S(n-1))
  Endif


               wilis k - IFUPN"V"Yk
No. 1 dalam bhs C++ (lengkap)
#include<iostream.h>
int S(int n);
main()
{
  int n;
  cout << “Masukkan n = “; cin >> n;
  cout << “Deret S=1+2+3+4+5+...+n n”;
  cout << “Jumlah deret S = “ << S(n);
}
int S(int n)
{
      if (n == 1)
        return (1);
      else
        return (n + S(n-1));
}
                     wilis k - IFUPN"V"Yk

Contenu connexe

Tendances

Persamaandifferensial
PersamaandifferensialPersamaandifferensial
Persamaandifferensial
Meiky Ayah
 
Pertemuan 02 teori dasar himpunan
Pertemuan 02   teori dasar himpunanPertemuan 02   teori dasar himpunan
Pertemuan 02 teori dasar himpunan
Fajar Istiqomah
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi Boolean
Fahrul Razi
 
Akar akar persamaan non linier
Akar akar persamaan non linierAkar akar persamaan non linier
Akar akar persamaan non linier
Alen Pepa
 

Tendances (20)

Persamaandifferensial
PersamaandifferensialPersamaandifferensial
Persamaandifferensial
 
Makalah persamaan differensial
Makalah persamaan differensialMakalah persamaan differensial
Makalah persamaan differensial
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
 
Logika dasr
Logika dasrLogika dasr
Logika dasr
 
Pertemuan 02 teori dasar himpunan
Pertemuan 02   teori dasar himpunanPertemuan 02   teori dasar himpunan
Pertemuan 02 teori dasar himpunan
 
Analisis Real (Barisan Bilangan Real) Latihan bagian 2.3
Analisis Real (Barisan Bilangan Real) Latihan bagian 2.3Analisis Real (Barisan Bilangan Real) Latihan bagian 2.3
Analisis Real (Barisan Bilangan Real) Latihan bagian 2.3
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi Boolean
 
Matematika Diskrit matriks relasi-dan_fungsi
Matematika Diskrit  matriks relasi-dan_fungsiMatematika Diskrit  matriks relasi-dan_fungsi
Matematika Diskrit matriks relasi-dan_fungsi
 
Metode interpolasi linier
Metode  interpolasi linierMetode  interpolasi linier
Metode interpolasi linier
 
Transformasi Linear ( Aljabar Linear Elementer )
Transformasi Linear ( Aljabar Linear Elementer )Transformasi Linear ( Aljabar Linear Elementer )
Transformasi Linear ( Aljabar Linear Elementer )
 
Pertemuan 10 Kunjungan Pada Pohon Biner
Pertemuan 10 Kunjungan Pada Pohon BinerPertemuan 10 Kunjungan Pada Pohon Biner
Pertemuan 10 Kunjungan Pada Pohon Biner
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
 
Relasi Rekurensi
Relasi RekurensiRelasi Rekurensi
Relasi Rekurensi
 
Akar akar persamaan non linier
Akar akar persamaan non linierAkar akar persamaan non linier
Akar akar persamaan non linier
 
Modul 3 kongruensi
Modul 3   kongruensiModul 3   kongruensi
Modul 3 kongruensi
 
Deret taylor and mac laurin
Deret taylor and mac laurinDeret taylor and mac laurin
Deret taylor and mac laurin
 
Ruang Hasil kali Dalam ( Aljabar Linear Elementer )
Ruang Hasil kali Dalam ( Aljabar Linear Elementer )Ruang Hasil kali Dalam ( Aljabar Linear Elementer )
Ruang Hasil kali Dalam ( Aljabar Linear Elementer )
 
Modul persamaan diferensial 1
Modul persamaan diferensial 1Modul persamaan diferensial 1
Modul persamaan diferensial 1
 
Contoh Soal Relasi Biner
Contoh Soal Relasi BinerContoh Soal Relasi Biner
Contoh Soal Relasi Biner
 
Relasi rekursi (2) : Menentukan solusi relasi Rekursi Linier Homogen Berkoefi...
Relasi rekursi (2) : Menentukan solusi relasi Rekursi Linier Homogen Berkoefi...Relasi rekursi (2) : Menentukan solusi relasi Rekursi Linier Homogen Berkoefi...
Relasi rekursi (2) : Menentukan solusi relasi Rekursi Linier Homogen Berkoefi...
 

Similaire à 4 rekursi (12)

6 rekursif induksi matematik.pdf
6 rekursif  induksi matematik.pdf6 rekursif  induksi matematik.pdf
6 rekursif induksi matematik.pdf
 
Tistrukdat9
Tistrukdat9Tistrukdat9
Tistrukdat9
 
Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliah
 
8 Rekursif
8 Rekursif8 Rekursif
8 Rekursif
 
Rekursi dan relasi rekurens
Rekursi dan relasi rekurensRekursi dan relasi rekurens
Rekursi dan relasi rekurens
 
13_Rekursif.pptx
13_Rekursif.pptx13_Rekursif.pptx
13_Rekursif.pptx
 
Referensi Materi Algoritma Brute Force Bagian 1
Referensi Materi Algoritma Brute Force Bagian 1Referensi Materi Algoritma Brute Force Bagian 1
Referensi Materi Algoritma Brute Force Bagian 1
 
Subrutin_Fungsi.pptx
Subrutin_Fungsi.pptxSubrutin_Fungsi.pptx
Subrutin_Fungsi.pptx
 
09 pd fungsi rekursif
09 pd fungsi rekursif09 pd fungsi rekursif
09 pd fungsi rekursif
 
Recursive pertemuan 5
Recursive pertemuan 5Recursive pertemuan 5
Recursive pertemuan 5
 
Bab 8 rekursif
Bab 8 rekursifBab 8 rekursif
Bab 8 rekursif
 
Algoritma Brute Force 12345678901112.ppt
Algoritma Brute Force 12345678901112.pptAlgoritma Brute Force 12345678901112.ppt
Algoritma Brute Force 12345678901112.ppt
 

4 rekursi

  • 1. REKURSIF Algoritma dan Pemrograman II Wilis Kaswidjanti Informatika UPN “Veteran” Yk 2007 wilis k - IFUPN"V"Yk
  • 2. Algoritma dan Pemrograman II REKURSIF • Rekursif merupakan alat/cara untuk memecahkan masalah dalam suatu fungsi atau procedure yang memanggil dirinya sendiri. • Definisi menurut Niclaus Wirth : “ An object is said be recursive if it partially consist or is defines in terms of itself” • perhitungan matematika ( contoh fungsi factorial dan bilangan Fibonacci) wilis k - IFUPN"V"Yk
  • 3. Algoritma dan Pemrograman II Faktorial • Fungsi factorial dari bilangan bulat positif n didefinisikan sebagai berikut: n!= n.(n-1)! , jika n>1 n!= 1 , jika n=0, 1 • contoh : 3!= 3. 2! 3!= 3. 2. 1! 3!= 3. 2. 1 3!= 6 wilis k - IFUPN"V"Yk
  • 4. Algoritma dan Pemrograman II Kita dapat menuliskan fungsi penghitung factorial seperti dibawah ini 1. int Faktorial(int n) 2. { 3. if ((n == 0) || (n == 1 )) 4. return (1); 5. else 6. return (n * Faktorial(n-1)); 7. } • Pada baris 3 dari fungsi diatas, nilai n dicek sama dengan 0 atau 1, jika ya, maka fungsi mengembalikan nilai 1 {baris 4}, jika tidak, fungsi mengembalikan nilai n * Faktorial (n -1) {baris 6} • disinilah letak proses rekursif itu, perhatikan fungsi factorial ini memanggil dirinya sendiri tetapi dengan parameter (n-1) wilis k - IFUPN"V"Yk
  • 5. Algoritma dan Pemrograman II Bilangan Fibonacci • Fungsi lain yang dapat diubah ke bentuk rekursif adalah perhitungan Fibonacci. Bilangan Fibonacci dapat didefinisikan sebagai berikut: fn = fn-1 + fn-2 untuk n > 2 f1 = 1 f2 = 1 Berikut ini adalah barisan bilangan Fibonacci mulai dari n=1 1 1 2 3 wilis k - IFUPN"V"Yk 21 34 5 8 13
  • 6. Algoritma dan Pemrograman II Algoritma Fibonacci yang dipakai Function Fibonacci(input n:integer)  integer Deklarasi Lokal {tidak ada} Deskripsi If (n ==1 || n==2) Then return (l) Else return (Fibonacci(n-1)+Fibonacci(n-2)) Endif wilis k - IFUPN"V"Yk
  • 7. Algoritma dan Pemrograman II Contoh • Untuk ukuran n= 4, proses perhitungan Fibonacci dapat dilakukan sebagai berikut: f4 = f3+f2 f4 = (f2+f1) + f2 f4 = (1+1) +1 f4 = 3 wilis k - IFUPN"V"Yk
  • 8. Algoritma dan Pemrograman II Kombinasi Function Kombinasi (input n, r : integer)  real Deklarasi If (n < r) Then return (0) Else return (Faktorial(n)/Faktorial(r)*Faktorial(n-r)) Endif wilis k - IFUPN"V"Yk
  • 9. Algoritma dan Pemrograman II Permutasi Function Permutasi (input n, r : integer)  real Deklarasi {tidak ada} Deskripsi If (n< r) Then return (0) Else return (Faktorial(n) / Faktorial(n-r)) Endif wilis k - IFUPN"V"Yk
  • 10. Algoritma dan Pemrograman II Latihan 1. Buat program untuk menghitung deret S = 1+2+3+4+5+...+n menggunakan function rekursi 2. Buat program untuk menghitung deret S = 2+4+6+8+10+...+2n menggunakan function rekursi wilis k - IFUPN"V"Yk
  • 11. No.1 deret S=1+2+3+4+5+…+n Function S(input n:integer)  integer Deklarasi Lokal {tidak ada} Deskripsi If (n==1) Then return (l) Else return (n + S(n-1)) Endif wilis k - IFUPN"V"Yk
  • 12. No.2 deret S=2+4+6+8+10+…+2n Function S(input n:integer)  integer Deklarasi Lokal {tidak ada} Deskripsi If (n==1) Then return (2) Else return (2*n + S(n-1)) Endif wilis k - IFUPN"V"Yk
  • 13. No. 1 dalam bhs C++ (lengkap) #include<iostream.h> int S(int n); main() { int n; cout << “Masukkan n = “; cin >> n; cout << “Deret S=1+2+3+4+5+...+n n”; cout << “Jumlah deret S = “ << S(n); } int S(int n) { if (n == 1) return (1); else return (n + S(n-1)); } wilis k - IFUPN"V"Yk