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

Tugas tba kelompok 1 kelas b
Tugas tba kelompok 1 kelas bTugas tba kelompok 1 kelas b
Tugas tba kelompok 1 kelas b
Robbie AkaChopa
 
Aljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritAljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskrit
riyana fairuz kholisa
 
BAB 2 : KALIMAT BERKUANTOR
BAB 2 : KALIMAT BERKUANTORBAB 2 : KALIMAT BERKUANTOR
BAB 2 : KALIMAT BERKUANTOR
Mustahal SSi
 
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi boolean
Cliquerz Javaneze
 
Matematika 2 - Slide week 13 - Eigen
Matematika 2 - Slide week 13 - EigenMatematika 2 - Slide week 13 - Eigen
Matematika 2 - Slide week 13 - Eigen
Beny Nugraha
 

Tendances (20)

Tugas tba kelompok 1 kelas b
Tugas tba kelompok 1 kelas bTugas tba kelompok 1 kelas b
Tugas tba kelompok 1 kelas b
 
Fungsi grafik di matlab
Fungsi grafik di matlabFungsi grafik di matlab
Fungsi grafik di matlab
 
Aturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode PembuktianAturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode Pembuktian
 
Aljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritAljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskrit
 
Metode interpolasi linier
Metode  interpolasi linierMetode  interpolasi linier
Metode interpolasi linier
 
BAB 2 : KALIMAT BERKUANTOR
BAB 2 : KALIMAT BERKUANTORBAB 2 : KALIMAT BERKUANTOR
BAB 2 : KALIMAT BERKUANTOR
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
 
Ruang Vektor ( Aljabar Linear Elementer )
Ruang Vektor ( Aljabar Linear Elementer )Ruang Vektor ( Aljabar Linear Elementer )
Ruang Vektor ( Aljabar Linear Elementer )
 
Matematika Diskrit Relasi Rekursif
Matematika Diskrit Relasi RekursifMatematika Diskrit Relasi Rekursif
Matematika Diskrit Relasi Rekursif
 
Penyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapPenyederhanaan Karnaugh Map
Penyederhanaan Karnaugh Map
 
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi boolean
 
Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06
 
Matematika 2 - Slide week 13 - Eigen
Matematika 2 - Slide week 13 - EigenMatematika 2 - Slide week 13 - Eigen
Matematika 2 - Slide week 13 - Eigen
 
Basis dan Dimensi
Basis dan DimensiBasis dan Dimensi
Basis dan Dimensi
 
Matematika Diskrit part 1
Matematika Diskrit part 1Matematika Diskrit part 1
Matematika Diskrit part 1
 
Transformasi Linear ( Aljabar Linear Elementer )
Transformasi Linear ( Aljabar Linear Elementer )Transformasi Linear ( Aljabar Linear Elementer )
Transformasi Linear ( Aljabar Linear Elementer )
 
03 limit dan kekontinuan
03 limit dan kekontinuan03 limit dan kekontinuan
03 limit dan kekontinuan
 
Operasi biner
Operasi binerOperasi biner
Operasi biner
 
Bab 8. Fungsi Transenden ( Kalkulus 1 )
Bab 8. Fungsi Transenden ( Kalkulus 1 )Bab 8. Fungsi Transenden ( Kalkulus 1 )
Bab 8. Fungsi Transenden ( Kalkulus 1 )
 
Relasi Rekurensi
Relasi RekurensiRelasi Rekurensi
Relasi Rekurensi
 

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