SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Mais procurados

Aljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritAljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritriyana fairuz kholisa
 
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1BAIDILAH Baidilah
 
Matematika Diskrit Relasi Rekursif
Matematika Diskrit Relasi RekursifMatematika Diskrit Relasi Rekursif
Matematika Diskrit Relasi RekursifAyuk Wulandari
 
Metode numerik persamaan non linier
Metode numerik persamaan non linierMetode numerik persamaan non linier
Metode numerik persamaan non linierIzhan Nassuha
 
Modul 8 - Jaringan Syaraf Tiruan (JST)
Modul 8 - Jaringan Syaraf Tiruan (JST)Modul 8 - Jaringan Syaraf Tiruan (JST)
Modul 8 - Jaringan Syaraf Tiruan (JST)ahmad haidaroh
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi GraphZaldy Eka Putra
 
Pengantar metode numerik
Pengantar metode numerikPengantar metode numerik
Pengantar metode numerikputra_andy
 
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 - 01KuliahKita
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanFahrul Razi
 
aritmatika komputer
aritmatika komputeraritmatika komputer
aritmatika komputerdewi2093
 
Metode pencarian heuristik
Metode pencarian heuristikMetode pencarian heuristik
Metode pencarian heuristikBaguss Chandrass
 
Penyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapPenyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapCheria Asyifa
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03KuliahKita
 
Perbedaan sistem linear dan non linear
Perbedaan sistem linear dan non linearPerbedaan sistem linear dan non linear
Perbedaan sistem linear dan non linearElGazzaYantPratama
 
Algoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendekAlgoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendekLaili Wahyunita
 

Mais procurados (20)

Aljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritAljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskrit
 
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
 
Regula falsi
Regula falsiRegula falsi
Regula falsi
 
Jawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihanJawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihan
 
Matematika Diskrit Relasi Rekursif
Matematika Diskrit Relasi RekursifMatematika Diskrit Relasi Rekursif
Matematika Diskrit Relasi Rekursif
 
Metode numerik persamaan non linier
Metode numerik persamaan non linierMetode numerik persamaan non linier
Metode numerik persamaan non linier
 
Modul 8 - Jaringan Syaraf Tiruan (JST)
Modul 8 - Jaringan Syaraf Tiruan (JST)Modul 8 - Jaringan Syaraf Tiruan (JST)
Modul 8 - Jaringan Syaraf Tiruan (JST)
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi Graph
 
Pengantar metode numerik
Pengantar metode numerikPengantar metode numerik
Pengantar metode numerik
 
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
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi Boolean
 
Bab 4 aljabar boolean
Bab 4 aljabar booleanBab 4 aljabar boolean
Bab 4 aljabar boolean
 
Graf Pohon
Graf PohonGraf Pohon
Graf Pohon
 
aritmatika komputer
aritmatika komputeraritmatika komputer
aritmatika komputer
 
Interpolasi Newton
Interpolasi  NewtonInterpolasi  Newton
Interpolasi Newton
 
Metode pencarian heuristik
Metode pencarian heuristikMetode pencarian heuristik
Metode pencarian heuristik
 
Penyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapPenyederhanaan Karnaugh Map
Penyederhanaan Karnaugh Map
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03
 
Perbedaan sistem linear dan non linear
Perbedaan sistem linear dan non linearPerbedaan sistem linear dan non linear
Perbedaan sistem linear dan non linear
 
Algoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendekAlgoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendek
 

Semelhante a REKURSI

6 rekursif induksi matematik.pdf
6 rekursif  induksi matematik.pdf6 rekursif  induksi matematik.pdf
6 rekursif induksi matematik.pdfNestyoRizky
 
Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahBraga Rezpect
 
Rekursi dan relasi rekurens
Rekursi dan relasi rekurensRekursi dan relasi rekurens
Rekursi dan relasi rekurensLeonardo024
 
13_Rekursif.pptx
13_Rekursif.pptx13_Rekursif.pptx
13_Rekursif.pptxSapaFilut
 
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 1DEDEALAMSYAHSPd
 
Subrutin_Fungsi.pptx
Subrutin_Fungsi.pptxSubrutin_Fungsi.pptx
Subrutin_Fungsi.pptxAriesAgetia1
 
09 pd fungsi rekursif
09 pd fungsi rekursif09 pd fungsi rekursif
09 pd fungsi rekursifSofi Orient
 
Recursive pertemuan 5
Recursive pertemuan 5Recursive pertemuan 5
Recursive pertemuan 5Basiroh M.Kom
 
Algoritma Brute Force 12345678901112.ppt
Algoritma Brute Force 12345678901112.pptAlgoritma Brute Force 12345678901112.ppt
Algoritma Brute Force 12345678901112.pptELDONIMOSUL1
 

Semelhante a REKURSI (11)

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
 
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
 

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