INF202: Struktur Data

dokumen-dokumen yang mirip
Rekursif. Rekursif adalah salah satu metode dalam dunia matematika dimana definisi sebuah fungsi mengandung fungsi itu sendiri.

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-5 Rekursif

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 03

Design and Analysis Algorithm

REKURSIF. Arkham Zahri Rakhman, S.Kom., M.Eng. Rev.: Dr. Fazat Nur Azizah

ALGORITHM. 3 Rekursif Algorithm. Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.com

Pemrograman Dasar L A T I H A N M E T H O D / F U N G S I M E T H O D R E K U R S I F

REKURSIF. Dari bahan Dasar Pemrograman oleh: Arkham Zahri Rakhman Rev.: Fazat Nur Azizah

Fungsi Rekursif. Bentuk umum fungsi rekursif.

MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA April 1, 2010 BAB 8 REKURSIF

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2016

BAB V Tujuan 5.1 Rekursi Dasar

Perulangan Rekursif dan Perulangan Iteratif

Algoritma Pemrograman

Spesifikasi: Ukuran: 14x21 cm Tebal: 225 hlm Harga: Rp Terbit pertama: Februari 2005 Sinopsis singkat:

PERTEMUAN 7 REVIEW (QUIZ)

I Putu Gede Darmawan

Algoritma Pemrograman

REVIEW ARRAY. Institut Teknologi Sumatera

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 1 x 3 x 50 Menit Pertemuan : 3

Praktikum 6. Konsep Rekursi Perbandingan Perulangan biasa dan Rekursi Implementasi Rekursi dalam Bahasa C

Algoritma Pemrograman

LATIHAN SOAL (FUNGSI & PROSEDUR)

Algoritma Pemrograman 2B (Pemrograman C++)

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

Design and Analysis of Algorithm

Catatan Kuliah STRUKTUR DATA BAB III REKURSIF

PEMROGRAMAN BERORIENTASI OBJEK

Sedangkan bentuk umum pendefinisian fungsi adalah : Tipe_fungsi nama_fungsi(parameter_fungsi) { statement statement... }

Pertemuan 4 Fungsi Rekursif

PRAKTIKUM 4 PERCABANGAN

Fungsi, Parameter, Rekursi

Rekursif. Proses yang memanggil dirinya sendiri. Merupakan suatu fungsi atau prosedur Terdapat suatu kondisi untuk berhenti.

Apakah Anda sering kesulitan untuk

A. TUJUAN PEMBELAJARAN 1. Memahami mengenai konsep rekursif 2. Mampu memecahkan permasalahan dengan konsep rekursif

Fungsi 2. Ekohariadi FT Unesa

Pengantar Pemrograman

8.1 FUNGSI, DEKLARASI DAN DEFINISI NYA

BAB II PROSES REKURSI DAN ITERASI

KONSEP DASAR. menyusunnya menjadi potongan-potongan mudah untuk ditangani dibanding. conquer.

Bahasa C melengkapi fasilitas modular dengan menggunakan fungsi pada setiap SubProgram. Contoh pembagian program menjadi beberapa subprogram.

Design and Analysis of Algorithms CNH2G3- Week 5 Kompleksitas waktu algoritma rekursif part 2: Metode Karakteristik

Design and Analysis of Algorithm

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

# FOUR LOOPING. JAWABAN 1. #include <stdio.h> #include <conio.h> #define pi void main(){

Tutorial 08 Pertemuan 12

Design and Analysis of Algorithms CNH2G3- Week 4 Kompleksitas waktu algoritma rekursif part 1

A. TUJUAN PEMBELAJARAN

MODUL 10 Fungsi 10.1 Kompetensi 10.2 Alat Dan Bahan: 10.3 Ulasan Teori: Dasar Fungsi Deklarasi Fungsi

Pemgrograman Modular. Keuntungan:

A. TUJUAN PEMBELAJARAN 1. Memahami mengenai konsep rekursif 2. Mampu memecahkan permasalahan dengan konsep rekursif

PENGANTAR KOMPUTER & SOFTWARE II PERCABANGAN

SUB PROGRAM P E N G A N TA R P R O G R A M S T U D I. Institut Teknologi Sumatera

FUNGSI. tipe Tipe nilai yang dihasilkan oleh fungsi. Jika tidak dinyatakan, hasil fungsi dianggap bilangan bulat (int)

Pertemuan 4 Diagram Alur / Flowchart

PENGANTAR KOMPUTER & SOFTWARE II

Subprogram (dalam Bahasa C++ + Flowchart)

PERCABANGAN P E N G E N A L A N P R O G R A M S T U D I T E K N I K I N F O R M AT I K A. Institut Teknologi Sumatera

PENGANTAR KOMPUTER & SOFTWARE II PERCABANGAN

Fungsi 1. Ekohariadi FT Unesa

12/29/2011 ILKOM IPB 1. Algoritme dan Pemrograman. Fungsi. Fungsi. y = f (x) = x m = jumlah ( a, b ) = a + b

A. TUJUAN PEMBELAJARAN 1. Memahami mengenai konsep rekursif 2. Mampu memecahkan permasalahan dengan konsep rekursif

Konsep Dasar Pemrograman Dan Pengenalan C++

A. TUJUAN 1. Memecah program dalam fungsi fungsi yang sederhana. 2. Menjelaskan tentang pemrograman terstruktur.

Pertemuan 10 REKURSI

FUNGSI II. Variabel Statis. Sifat variabel statis: Sintaks: static tipe_data nama_variabel; Contoh: static int angka;

PENGANTAR KOMPUTER & SOFTWARE II. Array (Part II) Tim Pengajar KU Institut Teknologi Sumatera

Program menjadi terstruktur Dapat mengurangi pengulangan kode program. Fungsi dapat diimplementasikan dalam tiga bentuk :

Kurikulum Qt. Chapter 4 Function. Fungsi

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e.

Menggunakan 3 variabel A B C. Ada 6 kemungkinan variasi ketiga buah nilai

MODUL 7 FUNGSI A. Tujuan. B. Petunjuk. C. Dasar Teori

Tipe Data dan Operator. Ekohariadi FT Unesa

Solusi Rekursif pada Persoalan Menara Hanoi

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK AMIKOM YOGYAKARTA

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET BAHASA PEMROGRAMAN Fungsi : Passing Parameter by Value & Semester 3

Algoritma dan Pemrograman. Loop control structures: WHILE. Loop control structures: WHILE Perhatikan potongan program berikut: 12/29/2011

Kisi- kisi UTS- P. Kisi- kisi UTS- T

Alpro & Strukdat 1 C++ (Sub Program) Dwiny Meidelfi, S.Kom., M.Cs.

DISUSUN OLEH BAB II C DAN C++ berikut ini: pilih radio HAL 1

PENGANTAR KOMPUTER & SOFTWARE II. Pengulangan (For) Tim Pengajar KU Institut Teknologi Sumatera

Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart

c. Membeli komputer d. Proses 2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b.

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

ARRAY / LARIK. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

Fungsi Lanjut DASAR PEMROGRAMAN

LAPORAN PRAKTIKUM I. Oleh:

Algoritma Pemrograman 2B (Pemrograman C++)

Pemrograman I Bab V Percabangan. Adam Mukharil Bachtiar, S.Kom. Universitas Komputer Indonesia

Penggunaan Private dan Public dalam C++

PEMROGRAMAN BERORIENTASI OBJEK. Operator. Budhi Irawan, S.Si, M.T

Pertemuan 9: BRANCHING/PERCABANGAN dalam C LOOPING/PERULANGAN/ITERASI dalam C

Struktur Data & Algoritme (Data Structures & Algorithms)

Fungsi 2 DASAR PEMROGRAMAN

PROSEDUR/SUB RUTIN. Algoritma & Pemrograman. Pengampu : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM

Penggunaan Fibonacci dan Josephus Problem dalam Algoritma Enkripsi Transposisi + Substitusi

BAB 6 FUNGSI TUJUAN PRAKTIKUM

Rekursif/ Iterasi/ Pengulangan

ALGORITMA PEMOGRAMAN SEMESTER GENAP 2017/2018

Transkripsi:

Pertemuan 5: INF202: Struktur Data REKURSI Dosen: Wayan Suparta, PhD

REKURSIF Rekursif adalah salah satu metode dalam dunia matematika dimana definisi sebuah fungsi mengandung fungsi itu sendiri. Dalam dunia pemrograman, rekursi diimplementasikan dalam sebuah fungsi atau procedure yang dapat memanggil dirinya sendiri baik langsung maupun tidak langsung. Contoh; Contoh: F( n) Jika y > 0, bentuk pemangkatan muncul kembali di sisi kanan. Itulah yang disebut rekursif. 1 n* F ( n) jika n 0,1 jika n 1

Artinya Iterasi perkataan berulang-ulang peralatan yang lebih efisien jika dibandingkan dengan rekursif tetapi recursion menyediakan solusi yang lebih baik untuk suatu masalah. Jadi: Pada rekursif, metode dapat memanggil dirinya sendiri. Data yang berada dalam metode tersebut seperti argument disimpan sementara ke dalam stack sampai metode pemanggilnya diselesaikan.

Contoh Fungsi Rekursif Misalkan F = faktorial (5) Konsep Faktorial n! = n(n-1)(n-2) Dapat diselesaikan dengan Cara Biasa Rekursif

Faktorial: Cara Biasa int Faktorial(int n) { if (n<0) return -1 ; else if (n>1) { S = 1 ; for(i=2 ;i<=n;i++) S = S * n ; return S ; } else return 1 ; } Faktorial Cara Rekursif int Faktorial (int n) { } if (n<0) return -1 else if (n>1) return (n*faktorial(n-1)) else return 1 ;

Bilangan Fibonacci

Baris dari n=1 Bilangan Fibonacci 1 1 2 3 5 8 13 21 34 55 89. Algoritma (untuk n > 2): f n = f n-1 + f n-2 f 1 = 1 f 2 = 1 Misal: n= 4 f 4 = f 3 +f 2 f 4 = (f 2 +f 1 ) + f 2 f 4 = (1+1) +1 f 4 = 3 int main(){ int n,a,b,f,c; cout<<"masukan banyaknya bilangan: "; cin>>n; a=0; b=1; cout<<"1"; for(c=1;c<=n-1;c++){ f=a+b; a=b; b=f; cout<<" "<<f; } system ("pause"); }

Jadi, fungsi Fibonacci Basis: fib(0) = 0; fib(1) = 1 Rekursif: fib(n) = fib(n 1) + fib(n 2) Ditulis dengan cara lain: fib(n) = n jika n = 0, 1 fib (n 1) + fib (n 2) jika n > 1

int faktorial (int n) { int fak; if (n<=1) { fak=1; } else { fak=n*faktorial(n-1); } return (fak); } Kombinasi

Permutasi int faktorial (int n) { int r, hasil; if (n<r) { hasil=1; } else { hasil = faktorial(n)/faktorial(n-r); //Proses perhitungan permutasi akan dijalankan } return (hasil); }

Flowchart Permutasi dan Kombinasi

Kasus-1: Output deret S =1+2+3+4+5+...+n int n=5,i,bil; for(i=1; i<=n; i++) { bil=i; printf(" %d",bil); } Kasus-2; Output deret S = 2+4+6+8+10+...+2n int n=5,i,bil; for(i=0; i<=n; i++) { bil=2*i; printf(" %d",bil); }

Menara Hanoi

Menara Hanoi Untuk memindahkan n piringan dari tiang A ke tiang B: 1. Pindahkan (n-1) piringan dari tiang A ke tiang C 2. Pindahkan 1 piringan (terbesar) dari tiang A ke tiang C 3. Pindahkan (n-1) piringan dari tiang B ke tiang C H(n) : untuk memindahkan n piringan 1. H(n-1) pemindahan 2. 1 pemindahan total: 2 H(n-1) + 1 3. H(n-1) pemindahan Jika n = 3, maka ada 7 kali pemindahan

Menara Hanoi A B C 4. 1. 5. 2. 6. 3. 7.

CONTOH: #include <stdio.h> #include <iostream> using namespace std; int faktorial (int x); int main() { int n,r, kombinasi; cout<<"program Menghitung Kombinasi (ncr)"<<endl; cout<<"masukkan Nilai n : "; cin>>n; cout<<"masukkan Nilai r : "; cin>>r; kombinasi=faktorial(n)/(faktorial(r)*faktorial(n-r)); cout<<" Kombinasinya adalah: "<<kombinasi; }. Sambungan lihat slide sebelumnya (kombinasi)

LATIHAN 10 A. Buat program yang dapat menampilkan deret Fibonacci hingga mendekati nilai 1000. B. Buatlah sebuah program pemangkatan dengan rekursif. C. Buat sebuah program yang dapat menghitung berapa cara memasang 5 umbul-umbul sepanjang suatu gang yang terdiri dari 2 umbul-umbul merah dan 3 umbul-umbul kuning? D. Buat sebuah program yang dapat menghitung jumlah jabatan tangan antara mereka dalam suatu pertemuan yang dihadiri 15 peserta, jika masing-masing peserta saling berjabat tangan. E. Buat sebuah flowchart dan program yang dapat membalikkan kata, misalnya MALANG GNALAM.

LATIHAN 12 Jika banyak piring ada 5, berapa kali perpindahannya ke B? Realisasikan dalam sebuah program.

LATIHAN 13 Realisasikan dalam sebuah program: a). b).