Algoritma dan Struktur Data

Slides:



Advertisements
Presentasi serupa
REKURSIF.
Advertisements

Pertemuan 4 ALGORITMA REKURSIF Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009.
Fungsi Konsep Pemrograman.
Subprogram Program kecil yang melakukan tugas tertentu dan merupakan bagian dari program secara keseluruhan Keuntungan : Mudah dikodekan Mudah dipahami.
Suksesor bilangan asli adalah bilangan asli
Algoritma dan Struktur Data
Fungsi, Parameter, Rekursi Daniel Riano Kaparang Book reference: Jogiyanto. Konsep Dasar Pemrograman Bahasa C. Andi Star. Yogyakarta Kristanto Andri.
REKURSIF.
MATERI 9 FUNGSI REKURSIF.
1 Ruli Manurung & Ade AzuratFasilkom UI - IKI /2008 – Ganjil – Minggu 4 Dasar-dasar Rekursif.
Rekursif Yuliana Setiowati.
Desain dan Analisis Algoritma
Pertemuan 2 INDUKSI MATEMATIKA & FUNGSI REKURSIF
Struktur Data & Algoritma Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) ‏ 1 Fasilkom UI SUR – HMM – AAFasilkom UI - IKI20100/ IKI80110P.
Modul 1- Review Java.
Pertemuan 4 ALGORITMA REKURSIF
REKURSIF Matakuliah : T0974 / Algoritma dan Metode Object Oriented Programming I Tahun : 2008 Versi : 1/0.
Pemrograman Terstruktur
Subprogram Minggu V – VI
Fungsi Rekursif.
Fungsi Rekursif Dasar Pemrograman.
sebuah fungsi yang memanggil dirinya sendiri
Sumber Kepustakaan : indryz.lecture.ub.ac.id/.../analisa-efisiensi- algoritm... 1  Fungsi yang memanggil dirinya sendiri  Sebuah fungsi f juga merupakan.
LOGIKA DAN ALGORITMA - PERTEMUAN 8 - REKURSI.
STRUKTUR DATA recursive function.
STRUKTUR PEMILIHAN (KONTROL PROGRAM) Minggu III - 40 menit
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Design and Analysis Algorithm
Algoritma dan Struktur Data
INF-301 FEB 2006 Univ. INDONUSA Esa Unggul PERTEMUAN V Tujuan Instruksional Umum : Permutasi & Kombinasi Tujuan Instruksional Khusus : Mahasiswa dapat.
PERTEMUAN VI Macam-macam Algoritma : Algoritma Rekursif ;
STRUKTUR DATA (10) recursive function
Bina Nusantara Mata kuliah:K0144/ Matematika Diskrit Tahun:2008 FUNGSI REKURSIF Pertemuan 10:
Etika Bisnis dan Profesi Disusun oleh : Silvester Dian Handy Permana, S.T., M.T.I. Fakultas Telematika, Universitas Trilogi Pertemuan 13 : Proses Pembentukan.
Rekursif Rizki Muliono,M.Kom.
Pertemuan 1 Rekursi jual [Valdo] Lunatik Chubby Stylus.
DIG1G3 Implementasi Struktur Data
Pernyataan Pertemuan 3 Season 1
Struktur Program TEE 2103 Algoritma dan Pemrograman
Algoritma rekursif dan relasi rekurensi
Algoritme dan Pemrograman
REKURSIF Learning Outcomes Pada akhir pertemuan ini, mahasiswa mampu:
Mata kuliah :K0362/ Matematika Diskrit Tahun :2008
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
Algoritma dan Struktur Data
Fungsi TEE 2103 Algoritma & Pemrograman Dosen: Abdillah, MIT
Fungsi Rekursif Algoritma dan Pemrograman II Teknik Informatika
Algoritme dan Pemrograman
REKURSI Struktur data.
Method (Metode).
FUNGSI REKURSIF Pertemuan 8 ASWAR R..
Algoritma dan Struktur Data 1 pertemuan 10
Algoritma dan Pemrograman Subrutin (Function)
FUNGSI.
FUNGSI.
Algoritma dan Pemrograman Rekursif
~ PERTEMUAN 8 STRUKTUR REKURSIF ~
Rekursif- studi kasus.
Recursive function.
STRUKTUR DATA (10) recursive function
PART 7 TEKNIK REKURSIF DOSEN : AHMAD APANDI, ST.
Algoritma Rekursif.
Subprogram QBasic Ihsan Jatnika.
Algoritma Rekursif Alpro-2.
Rekursif By Serdiwansyah N. A..
Analisa algoritma rekursif
ALPRO Analisa Rekurens
Tim ALPRO Teknik Informatika
Rekursif Yuliana Setiowati. Rekursif Proses yang memanggil dirinya sendiri. Merupakan suatu fungsi atau prosedur Terdapat suatu kondisi untuk berhenti.
Transcript presentasi:

Algoritma dan Struktur Data Pertemuan 3 : Rekursif Disusun oleh : Silvester Dian Handy Permana, S.T., M.T.I. Fakultas Telematika, Universitas Trilogi

Outline Dasar-dasar Rekursif  Apa itu recursion/rekursif?  Aturan Rekursif  Induksi Matematik

Apa itu Rekursif? Method yang memanggil dirinya sendiri baik secara langsung maupun secara tidak langsung. f(0) = 0; f(x) = 2 f(x-1) + x2 f(1) = 2; f(2) = 6; f(3) = 21; f(4) = 58 fib(n) = fib(n - 1) + fib(n - 2)‏

Coding Example public static int f (int x) { if (x == 0) return 0; return 2 * f (x - 1) + x * x; }

Method/Fungsi Recursion Fungsi yang memanggil dirinya, secara langsung atau lewat fungsi lain, disebut fungsi rekursif Proses pemanggilan diri itu disebut rekursi (recursion). Contoh: Memangkatkan bilangan real tak nol dengan suatu pangkat bilangan bulat

Contoh /**Menghitung pangkat sebuah bilangan real (versi rekursif). @param x bilangan yang dipangkatkan (x != 0)‏ @param n pangkatnya **/ public static double pangkatRekursif (double x, int n) { if (n == 0) { return 1.0; } else if (n > 0) { return (x * pangkatRekursif (x, n - 1)); } else { return (1 / pangkatRekursif (x, -n)); }

Berapa nilai pangkat 4-2?

Algoritme Rekursif Ciri masalah yang dapat diselesaikan secara rekursif adalah masalah itu dapat di-reduksi menjadi satu atau lebih masalah-masalah serupa yang lebih kecil Secara umum, algoritme rekursif selalu mengandung dua macam kasus: kasus induksi: satu atau lebih kasus yang pemecahan masalahnya dilakukan dengan menyelesaikan masalah serupa yang lebih sederhana (yaitu menggunakan recursive calls)‏ kasus dasar atau kasus penyetop (base case): satu atau lebih kasus yang sudah sederhana sehingga pemecahan masalahnya tidak perlu lagi menggunakan recursive-calls.

Algoritme Rekursif Supaya tidak terjadi rekursi yang tak terhingga, setiap langkah rekursif haruslah mengarah ke kasus penyetop (base case).

Aturan Rekursif Punya kasus dasar Kasus yang sangat sederhana yang dapat memproses input tanpa perlu melakukan rekursif (memanggil method) lagi Rekursif mengarah ke kasus dasar “You gotta believe”. Asumsikan rekursif bekerja benar. Pada proses pemanggilan rekursif, asumsikan bahwa pemanggilan rekursif (untuk problem yang lebih kecil) adalah benar. Aturan penggabungan: Hindari duplikasi pemanggilan rekursif untuk sub-problem yang sama.

Kesalahan Umum Base case terlalu kompleks Progress tidak menuju base case Duplikasi proses untuk nilai input yang sama dalam recursive call yang terpisah. Tidak efisien.

Detil Program Pastikan dalam rekursif program anda ada base case. Gunakan method “driver” yang public (method rekursif dibuat private)‏ Aturan Rekursif : Memiliki base case Membuat progress menuju ke base case Asumsikan bahwa panggilan rekursif bekerja dengan baik. Hindari menghitung sebuah penyelesaian dua kali.

Faktorial def faktorial(n): return n if n == 1 else n * faktorial(n - 1) faktorial(5) -> 5 * faktorial(4) -> 5 * (4 * faktorial(3)) -> 5 * (4 * (3 * faktorial(2))) -> 5 * (4 * (3 * (2 * faktorial(1)))) -> 5 * (4 * (3 * (2 * 1))) -> 5 * (4 * (3 * 2)) -> 5 * (4 * 6) -> 5 * 24 -> 120

Fungsi Rekursif dan Iterasi def faktorial_iterasi(n): hasil = 1 for i in range(1, n + 1): hasil = hasil * i return hasil

Fungsi Rekursif dan Iterasi Dalam menghitung nilai faktorial menggunakan iterasi, kita meningkatkan nilai hasil terus menerus, sampai mendapatkan jawaban yang tepat. Yang perlu kita pastikan benar pada fungsi ini adalah berapa kali kita harus meningkatkan nilai hasil. Jika jumlah peningkatan salah, maka hasil akhir yang didapatkan juga akan salah. Pendekatan iteratif berbeda dengan rekursif dalam hal ini: jika pendekatan rekursif memecah-mecah masalah untuk kemudian menyelesaikan masalah sedikit demi sedikit, pendekatan iteratif justru langsung mencoba menyelesaikan masalah, tanpa memecah-mecahkan masalah tersebut menjadi lebih kecil terlebih dahulu. Untungnya, baik teknik iterasi maupun rekursi sama-sama memiliki tingkat ekspresi yang sama: segala hal yang dapat diselesaikan dengan itearsi akan dapat diselesaikan dengan rekursif. 

QA