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

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

Perulangan Rekursif dan Perulangan Iteratif

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

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

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

Karena relasi rekurens menyatakan definisi barisan secara rekursif, maka kondisi awal merupakan langkah basis pada definisi rekursif tersebut.

Design and Analysis Algorithm

Algoritma Pemrograman

Algoritma Pemrograman

Solusi Rekursif pada Persoalan Menara Hanoi

Algoritma Pemrograman

BAB II PROSES REKURSI DAN ITERASI

Alat Peraga Menara Hanoi untuk Pembelajaran Pola Bilangan. Oleh: Tim Unit Media Alat Peraga Matematika

Pertemuan 4 Diagram Alur / Flowchart

I Putu Gede Darmawan

BAB V Tujuan 5.1 Rekursi Dasar

Design and Analysis of Algorithm

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016

Design and Analysis of Algorithm

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

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

FUNGSI. setiap elemen di dalam himpunan A mempunyai pasangan tepat satu elemen di himpunan B.

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-5 Rekursif

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

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

A. TUJUAN PEMBELAJARAN

ALGORITHM. 8 Algoritma dengan C++ Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.com

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

Catatan Kuliah STRUKTUR DATA BAB III REKURSIF

Sesi/Perkuliahan ke: VII

Teori Algoritma. Algoritma Perulangan

CHAPTER 8. Advanced Counting Techniques

PERTEMUAN 7 REVIEW (QUIZ)

Recursion, Algoritma, Struktur Data. Recursion. Erick Pranata. Edisi I

Dasar Komputer & Pemrograman 2A

Fungsi Rekursif. Bentuk umum fungsi rekursif.

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

Recursion, Algoritma, Struktur Data. Recursion. Erick Pranata. Edisi II

5.3 RECURSIVE DEFINITIONS AND STRUCTURAL INDUCTION

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

BAB I PENDAHULUAN. penggunaan penalaran logika, dan abstraksi, matematika berkembang dari

5.3 RECURSIVE DEFINITIONS AND STRUCTURAL INDUCTION

Berbagai Solusi Pemecahan Masalah Tower of Hanoi dan Representasi Grafnya

Aplikasi Pohon Pencarian Biner Seimbang sebagai Memo Table Dynamic Programming

ALGORITMA PERULANGAN

menunjukkan tipe hasil dari fungsi. sqr, succ dan sebagainya. buat sendiri.

Algoritma Pemrograman

Perulangan. Bentuk Proses. 1. Perulangan For positif contoh 1 : perulangan positif untuk satu statement :

Kata kunci: definisi, relasi rekursi linier berkoefisien konstan, solusi relasi rekurensi, dan solusi homogen & partikelir

Pertemuan 3 Prosedur dan Fungsi

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

NAMA : KELAS : LEMBAR AKTIVITAS SISWA BARISAN DAN DERET 1. Beda Barisan Aritmatika. b =.. RUMUS SUKU KE N: King s Learning Be Smart Without Limits

1) Perhatikan bentuk di bawah: U 1 U 2 U 3 U 4 U n 2, 5, 8, 11, dengan: U 3 = suku

Rekursif/ Iterasi/ Pengulangan

ALGORITHM. 2 Analysis Algorithm. Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.com

Algoritma,Flowchart, Konsep

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

Algoritma Pemrograman

Soal Ujian Akhir Semester Pendek TA. 2006/2007 D3-Manajemen Informatika

Aplikasi Rekursif dalam Analisis Sintaks Program

PROSES PENJUALAN BUKU

Algoritma dan Pemrograman Array

Perulangan Muh. Izzuddin Mahali, M.Cs. Pertemuan 3. Algoritma dan Struktur Data. PT. Elektronika FT UNY

Materi ke-4 Praktikum Algoritma dan Pemrograman kelas Matematika PEMROGRAMAN MODULAR

Penyelesaian Masalah Josephus Sederhana dalam Bentuk Eksplisit

Penyelesaian Barisan Rekursif dengan Kompleksitas Logaritmik Menggunakan Pemangkatan Matriks

ALGORITMA PEMOGRAMAN SEMESTER GENAP 2017/2018

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

Algoritma Pemrograman

Implementasi Pemrograman Dinamis dalam Pencarian Solusi Permainan Menara Hanoi

Algoritma Perulangan. Kuliah algoritma dan pemrograman

Fungsi Rekursif PEMROGRAMAN DASAR. Dr. Eng. Herman Tolle, ST., MT. Sistem Informasi PTIIK UB Semester Ganjil 2014/2015

BAB III PENGENALAN STRUKTUR BAHASA PASCAL. Kompetensi Dasar : 1. Mahasiswa mengenal dan memahami struktur bahasa Pascal

Problem A. Turnamen Panco

TINJAUAN MATA KULIAH... MODUL 1: LOGIKA MATEMATIKA 1.1 Kegiatan Belajar 1: Latihan Rangkuman Tes Formatif

PROCEDURE DAN FUNCTION

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

BAB VII ALGORITMA DIVIDE AND CONQUER

PROSEDUR DAN FUNGSI. Altien Jonathan Rindengan, S.Si., M.Kom

Subprogram. Definisi

Refreshing Materi Kuliah Semester Pendek 2010/2011. Logika dan Algoritma. Heri Sismoro, M.Kom.

B A H A N A J A R STRUKTUR DATA Disusun Oleh:

SATUAN ACARA PERKULIAHAN MATA KULIAH LOGIKA DAN ALGORITMA (MI/D3) KODE: IT SKS: 3 SKS. Kemampuan Akhir Yang Diharapkan

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Problem A Divisible compfest1.c / compfest1.cpp / compfest1.pas Runtime-limit: 0.5 detik Memory-limit: 64 MB

PENDEKATAN MASALAH TOWER OF HANOI DENGAN ALGORITMA DIVIDE AND CONQUER

Chapter 5 Choice. repeatedly if tanda 2 on label: lakukan proses potong 2 if tanda 3 on label: lakukan proses potong 3 until switched off program 5.

Solusi Soal Seleksi Olimpiade Tingkat Kabupaten / Kota 2010 Tim Olimpiade Komputer Indonesia 2011 versi 2, 28 Mei 2010

2.3 Algoritma Tidak Berhubungan dengan Bahasa Pemrograman Tertentu

Algoritma Pemrograman

Contoh 1: Akan dicetak angka 1 sampai 10 dengan menggunakan perulangan for

LEMBAR AKTIVITAS SISWA INDUKSI MATEMATIKA

Function. Pertemuan 7 Jurusan Sistem Informasi Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Gunadarma 2015

Algoritma Pemrograman

STRATEGI DIVIDE AND CONQUER

Relasi Rekursi. Matematika Informatika 4. Onggo

Algoritma Pemrograman

Algoritma Pemrograman

BAB 1 PENDAHULUAN. Pada Bab ini anda akan mempelajari

TIPE DATA DAN OPERASI I/O

Transkripsi:

ALGORITHM 3 Rekursif Algorithm Dahlia Widhyaestoeti, S.Kom dahlia.widhyaestoeti@gmail.com dahlia74march.wordpress.com

Rekursif adalah salah satu metode dalam dunia matematika dimana definisi sebuah fungsi mengandung fungsi itu sendiri. Dalam dunia pemrograman, rekursi diimplementasikan dalam sebuah fungsi yang memanggil dirinya sendiri

Contoh fungsi rekursif misalnya adalah fungsi pangkat, faktorial, dan barisan fibonacci.

Fungsi Pangkat Dalam fungsi pangkat xy, kita tahu bahwa semua bilangan selain 0, jika dipangkatkan dengan 0 nilainya sama dengan 1. Jika x dipangkatkan dengan y, dengan y lebih dari 0, maka hasilnya sama dengan x dikalikan dengan x dipangkatkan y 1.

Fungsi Pangkat Jika dituliskan dalam notasi matematika definisinya adalah sebagai berikut: X y = 1, Jika y = 0 X y = X x X y-1, jika y > 0 Kita lihat di atas pada definisi y > 0, bentuk pemangkatan muncul kembali di sisi kanan. Itulah yang disebut rekursif.

Fungsi Pangkat Definisi rekursif selalu dimulai dengan kasus penyetop, penghenti, atau kasus dasar dari suatu permasalahan, dalam hal ini terjadi ketika nilai y = 0. Definisi rekursif yang lebih kompleks mengandung inti dari permasalahan yang akan dipecahkan, namun lebih sederhana. Dalam hal ini yang tadinya x dipangkatkan dengan y, kini bentuk pemangkatan menjadi lebih sederhana, yaitu y 1. Hal ini dimaksudkan untuk menggiring masalah kompleks ke kasus dasar atau penyetop rekursinya.

Fungsi Pangkat Untuk x = 10 dan y = 0, hasil dari x y adalah 1. Untuk x = 10 dan y = 3, hasilnya dapat digambarkan sebagai berikut:

Contoh Lain Fungsi Pangkat Mari kita lihat contoh rekursif yang jauh lebih sederhana, Masalah yang akan dipecahkan adalah memotong roti tawar tipis-tipis sampai habis. Jika masalah ini akan dipecahkan secara rekursif, maka solusinya adalah: 1. Jika roti sudah habis atau potongannya sudah paling tipis, pemotongan roti selesai 2. Jika roti masih bisa dipotong, potong tipis dari tepi roti tersebut, lalu lakukan prosedur 1 dan 2 untuk sisa potongannya.

Contoh Program Faktorial program faktorial; uses wincrt; var faktor :real; i,n :integer; begin write('masukkan bilangan n =');readln(n); faktor:=1; for i:= 2 to n do {Menghitung n faktorial} faktor:=faktor*i; writeln(n,' Faktorial = ',faktor:0:0); end.

Hasil Program Faktorial Masukan Bilangan n = 3 3 Faktorial 6 Masukan Bilangan n = 2 2 Faktorial 1

Faktorial Fungsi menghitung bilangan Faktorial dengan cara rekursif : 0! = 1 N! = N x (N-1)! Untuk N>0 Buatlah flowchart untuk fungsi faktorial berikut : Definisikan N adalah jumlah bilangan yang akan diinputkan Jika N = 0 maka variabel Faktorial = 1 Jika N 0, maka variabel Faktorial = N * Faktorial(N-1)

Ilustrasi Fungsi Faktorial dengan proses rekursif : Faktorial Faktorial(6) = 6 * Faktorial(5) Faktorial(5) = 5 * Faktorial(4) Faktorial(4) = 4 * Faktorial(3) Faktorial(3) = 3 * Faktorial(2) Faktorial(2) = 2 * Faktorial(1) Faktorial(1) = 1 * Faktorial(0) Nilai Awal

Barisan Fibonacci Bilangan Fibonacci bisa didefinisikan berdasar deret integer tak terhingga sebagai berikut : 1 1 2 3 5 8 12 13 21 34 55 89... Dari deret diatas bisa dilihat bahwa bilangan ke N (N>2) dalam deret bisa dicari dari 2(dua) bilangan sebelumnya yang terdekat dengan bilangan ke Nm yaitu bilangan ke (N-1) dan bilangan ke (N-2). Sehingga jika FIBO(N) menunjukan bilangan Fibonacci suku ke N, maka FIBO(N) bisa dihitung berdasar hubungan rekurens : FIBO(N) = FIBO(N-1) + FIBO(N-2)

Ilustrasi Fungsi FIBO dengan proses rekursif : Barisan Fibonacci Karena FIBO(N) ditentukan oleh 2 nilai yang berbeda dengan argumen yang lebih kecil, maka untuk mencari bilangan Fibonacci diperlukan 2 nilai awal, yaitu : FIBO(1) = 1 dan FIBO(2) 2. FIBO(6) = FIBO(5) + FIBO(4) FIBO(5) = FIBO(4) + FIBO(3) FIBO(4) = FIBO(3) + FIBO(2) Nilai Awal FIBO(3) = FIBO(2) + FIBO(1) Nilai Awal Nilai Awal

Menyusun Permutasi Contoh lain dari proses rekursif adalah menyusun semua permutasi yang mungkin dari sekelompok karakter. Contoh : Jika kita mempunyai 3 buah karakter A, B dan C, maka semua permutasi yang mungkin dari ketiga karakter tersebut adalah : A B C A C B B A C B C A C A B C B A Secara umum, banyaknya permutasi dari N buah karakter adalah N Faktorial. Dalam contoh tersebut N = 3, sehingga banyaknya permutasi adalah 3! = 6

Menyusun Permutasi Proses penyusunan permutasinya bisa dijelaskan berikut : Cetak elemen ke-1, dan cetak permutasi elemen ke-2 sampai ke N (permutasi dengan N-1 elemen). Cetak elemen ke-2, dan cetak permutasi elemen ke-1, elemen ke 3 sampai ke N(permutasi dengan N-1 elemen). Cetak elemen ke-3, dan cetak permutasi elemen ke-1, elemen ke-2, elemen ke-4 sampai ke N(permutasi dengan N-1 elemen). Dan seterusnya, sampai langkah terakhir adalah cetak elemen ke N, dan cetak permutasi elemen ke 1 sampai elemen ke (N-1) (permutasi dengan N-1 elemen). Contoh N = 3, maka : Cetak 'A' dan cetak permutasi ('B', 'C') Cetak 'B' dan cetak permutasi ('A', 'C') Cetak 'C' dan cetak permutasi ('A', 'B')

Legenda Menara Hanoi (oleh Edouard Lucas abad 19) Seorang biarawan memiliki 3 menara. Diharuskan memindahkan 64 piringan emas. Diameter piringan tersebut tersusun dari ukuran kecil ke besar. Biarawan berusaha memindahkan semua piringan dari menara pertama ke menara ketiga tetapi harus melalui menara kedua sebagai menara tampungan. Kondisi: Piringan tersebut hanya bisa dipindahkan satu-satu. Piringan yang besar tidak bisa diletakkan di atas piringan yang lebih kecil. Ternyata : mungkin akan memakan waktu sangat lama (sampai dunia kiamat). Secara teori, diperlukan 2 64-1 perpindahan. Jika kita salah memindahkan, maka jumlah perpindahan akan lebih banyak lagi. Jika satu perpindahan butuh 1 detik, maka total waktu yang dibutuhkan lebih dari 500 juta tahun!!.

Menara Hanoi

Menara Hanoi Untuk memindahkan n piringan dari tiang 1 ke tiang 3: 1. Pindahkan (n-1) piringan dari tiang 1 ke tiang 2 2. Pindahkan 1 piringan (terbesar) dari tiang 1 ke tian 3 3. Pindahkan (n-1) piringan dari tiang 2 ke tiang 3 H(n) : untuk memindahkan n piringan 1. H(n-1) pemindahan 2. 1 pemindahan total ada 2H(n-1) + 1 3. H(n-1) pemindahan

Menara Hanoi Rumus : H(n) = 2 H(n 1) + 1 Algoritma: Jika n==1, pindahkan pringan dari A ke C Jika tidak: Pindahkan n-1 piringan dari A ke B menggunakan C sebagai tampungan Pindahkan n-1 piringan dari B ke C menggunakan A sebagai tampungan