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

dokumen-dokumen yang mirip
Perulangan Rekursif dan Perulangan Iteratif

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

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

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

Algoritma Pemrograman 2B (Pemrograman C++)

MODUL V PERULANGAN. Perulangan digunakan untuk menjalankan satu atau lebih perintah secara berulang selama kondisi tertentu.

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

Fungsi Rekursif. Bentuk umum fungsi rekursif.

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

I Putu Gede Darmawan

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-5 Rekursif

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

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

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

PERTEMUAN 7 REVIEW (QUIZ)

BAB V Tujuan 5.1 Rekursi Dasar

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2016

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

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

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

MODUL 5 PERULANGAN (LOOPING)

STRUKTUR DASAR ALGORITMA DAN PEMROGRAMAN STMIK AMIKOM YOGYAKARTA

MODUL. Perulangan (Looping) Modul Praktikum C++ Pemrograman Dasar. Semester Genap 2017/2018

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

SUB PROGRAM (FUNGSI)

Selection / Pemilihan PEMILIHAN

Algoritma dan Pemrograman. Pertemuan Ke-7 Statement Pengendalian 2

LAPORAN PRAKTIKUM RESMI QUEUE

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-7 Pencarian (Searching) 2

MODUL ALGORITMA DAN PEMROGRAMAN. STMIK AMIKOM Yogyakarta. Rajif Agung Yunmar, S.Kom., M.Cs.

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

PERTEMUAN X. Gbr.1 Konsep program dibagi menjadi sejumlah modul. void main() { fungsi a();

A. TUJUAN PEMBELAJARAN

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

PRAKTIKUM PEMROGRAMAN KOMPUTER MODUL II PERCABANGAN. Bahasa Pemrograman : C / C++

MODUL 1 Alur Seleksi dengan C++

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

VI. FUNGSI. Fungsi Main ( ) Fungsi a ( ) Fungsi b ( ) Fungsi c ( ) Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( ) Bentuk umumnya :

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK AMIKOM YOGYAKARTA

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

PENGENALAN BAHASA C DAN C++

Struktur Kontrol. Contoh, Akan tercetak x is 100 jika nilai yang disimpan pada variable x adalah 100:

Tutorial 08 Pertemuan 12

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

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

VARIABEL & TIPE DATA PEMROGRAMAN C++

PEMROGRAMAN TERSTRUKTUR PERTEMUAN VI KOMPONEN KOMPONEN PEMROGRAMAN TERSTRUKTUR

Apakah Anda sering kesulitan untuk

Penerapan Relasi Rekursif dan Matriks dalam Partisi Bilangan Bulat

BAB 6 FUNGSI TUJUAN PRAKTIKUM

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

Tipe Data dan Variabel

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB

MODUL I PENGENALAN IDE C++, ALGORITMA DAN PEMROGRAMAN

Algoritma Pemrograman

Proses Perulangan (Looping) DASAR PROGRAMMING 1

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

OPERASI SELEKSI PEMROGRAMAN C++

MODUL 1 PENGENALAN PROGRAM C++ DAN PERNYATAAN MASUKAN-KELUARAN

PENGENALAN C++ Bab 1

Pertemuan 06. Dasar Pemrograman Komputer [TKL-4002] 2010

Identifier dan Tipe Data

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

MODUL. Fungsi (Function) Modul Praktikum C++ Dasar Pemrograman Komputer JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK

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

Method. Pemrograman Dasar Sistem Informasi PTIIK Herman Tolle

Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN

Fungsi 1. Ekohariadi FT Unesa

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

Tipe Data, Variabel, Input/Output

Memilih bilangan yang nilainya terbesar atau terkecil dari dua buah bilangan yang ada

Fungsi. Fungsi. Dasar Komputer & Pemrograman 1. dipecah Sub Program. Program. Dasar Komputer & Pemrograman TC22052 Kartika Firdausy - UAD

Algoritma dan Pemrograman. Pertemuan Ke-5 Input dan Output

DPK UNIVERSITAS BRAWIJAYA MALANG

LAPORAN PRAKTIKUM I. Oleh:

PERULANGAN (LOOP) PERNYATAAN WHILE

Algoritme dan Pemrograman

Gedung bisa diibaratkan sebagai fungsi main() sedangkan bagian yang lebih kecil merupakan fungsi yang menyelesaikan tugas tertentu.

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA Searching ( Pencarian ) Modul III

Subprogram (dalam Bahasa C++ + Flowchart)

8.1 FUNGSI, DEKLARASI DAN DEFINISI NYA

ALGORITMA (2) Mengupas Kentang

PROSEDUR DAN FUNGSI (PROCEDURE & FUNCTION)

Algoritma Pemrograman

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama).

LATIHAN SOAL (FUNGSI & PROSEDUR)

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

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

MODUL ALGORITMA DAN PEMROGRAMAN. STMIK AMIKOM Yogyakarta. Rajif Agung Yunmar, S.Kom., M.Cs.

Keg. Pembelajaran 5 : Perulangan dalam C++ 1. Tujuan Kegiatan Pembelajaran 2. Uraian Materi while do..while for continue dan break go to

Perulangan, Percabangan, dan Studi Kasus

Algoritma dan Pemrograman. Pertemuan Ke-11 Function

P R E T R EM N 5 STRUKTUR LOOPING

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

ALGORITMA PEMOGRAMAN SEMESTER GENAP 2017/2018

MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PERTEMUAN 1

Looping : break, continue, nested loop

Contoh function 1 : Output : // function example The result is 8 #include <iostream.h>

Transkripsi:

1. Tujuan Instruksional Umum MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA April 1, 2010 BAB 8 REKURSIF a. Mahasiswa dapat melakukan perancangan aplikasi menggunakan algoritma rekursif. b. Mahasiswa mampu melakukan analisis pada algoritma rekursif yang dibuat. c. Mahasiswa mampu mengimplementasikan algoritma rekursif pada sebuah aplikasi secara tepat dan efisien. 2. Tujuan Instruksional Khusus a. Mahasiswa dapat menjelaskan mengenai algoritma rekursif. b. Mahasiswa dapat membuat dan mendeklarasikan Abstraksi Tipe Data rekursif. c. Mahasiswa mampu menerapkan rekursif. Pengertian Algoritma Rekursif Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Fungsi ini akan terus berjalan sampai kondisi berhenti terpenuhi, oleh karena itu dalam sebuah fungsi rekursif perlu terdapat 2 blok penting, yaitu blok yang menjadi titik berhenti dari sebuah proses rekursi dan blok yang memanggil dirinya sendiri. Contoh konsep penggunaan Rekursif Masalah : Memotong Roti tawar tipis-tipis sampai habis Algoritma : 1. Jika roti sudah habis atau potongannya sudah paling tipis maka 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 Fungsi Rekursif a. Fungsi pangkat b. Faktorial c. Fibonancy d. Menara Hanoi S1 Pendidikan Teknik Informatika Teknik Elektro Universitas Negeri Malang Page 1

Fungsi Pangkat Menghitung 10 pangkat n dengan menggunakan konsep rekursif. Secara Notasi pemrograman dapat ditulis : 10 0 = 1..(1 ) 10 n = 10 * 10 n-1...( 2 ) Contoh : 10 3 = 10 * 10 2 10 2 = 10 * 10 1 10 1 = 10 * 10 0 10 0 = 1 Faktorial 0! = 1 N! = N x (N-1)! Untuk N > 0 Secara notasi pemrograman dapat ditulis sebagai : FAKT (0) = 1... (1) FAKT (N) = N * FAKT (N-1)... (2) Contoh : FAKT(5) = 5 * FAKT(4) FAKT(4) = 4 * FAKT(3) FAKT(3) = 3 * FAKT(2) FAKT(2) = 2 * FAKT(1) FAKT(1) = 1 * FAKT(0) Misal : hitung 5!, maka dapat dilakukan secara rekursif dgn cara : 5! = 5 * 4! Secara rekursif nilai dari 4! dapat dihitung kembali dgn 4 * 3!, sehingga 5! Menjadi : 5! = 5 * 4 * 3! Secara rekursif nilai dari 3! dapat dihitung kembali dgn 3 * 2!, sehingga 5! Menjadi : 5! = 5 * 4 * 3 * 2! S1 Pendidikan Teknik Informatika Teknik Elektro Universitas Negeri Malang Page 2

Secara rekursif nilai dari 2! dapat dihitung kembali dgn 2 * 1, sehingga 5! Menjadi : 5! = 5 * 4 * 3 * 2 * 1 = 120. Berikut ini adalah fungsi faktorial rekursif dari sebuah program. Fibonancy Deret Fibonancy : 0,1,1,2,3,5,8,13,... Secara notasi pemrograman dapat ditulis sebagai : Fibo (1) = 0 & Fibo (2) = 1... (1) Fibo (N) = Fibo (N-1) + Fibo (N-2)... (2) Contoh : Fibo(5) = Fibo(4) + Fibo(3) Fibo(4) = Fibo(3) + Fibo(2) Fibo(3) = Fibo(2) + Fibo(1) Latihan 1 Akan dibuat program yang akan menerima sebuah bilangan bulat bil dan mencetak bilangan fibonaci yang ke-bil. Untuk menentukan bilangan fibonacci, dibuat sebuah fungsi dengan nama fibonacci. Ketiklah program berikut : #include <iostream.h> long int fibonacci(int i) { //Mengirimkan bilangan yang ke-i dari barisan bilangan fibonacci. if ((i==2) (i<=1)) { return 0; else { return fibonacci(i-1)+fibonacci(i-2); S1 Pendidikan Teknik Informatika Teknik Elektro Universitas Negeri Malang Page 3

int main() { int bil; char lagi; do{ cout << "Masukkan bilangan : "; cin >> bil; cout << "Fibonacci(" << bil << ") = " << fibonacci(bil); cout << "\ncari lagi (y/t)? "; cin >> lagi; while ((lagi=='y') (lagi=='y')); Latihan 2 Membuat program untuk menghitung sebuah factorial. Ketiklah list program berikut ini : #include <stdio.h> int fact_rec(int n) { if (n < 1) return 0; else if (n = 0) else if (n = 1) else return n * fact_rec(n-1); void main() { int fac; printf("masukkan berapa faktorial : "); scanf("%d",&fac); printf("hasil faktorial dari adalah : %d\n", fact_rec(fac)); S1 Pendidikan Teknik Informatika Teknik Elektro Universitas Negeri Malang Page 4

Tugas 1. Buat program untuk menggambar segitiga sama kaki siku-siku terbalik, segitiga sama kaki siku-siku tidak terbalik, dan segitiga sama kaki (piramid) terbalik. Masing-masing gambar dibuat dengan prosedur segitigasikusamaterbalik, segitigasikusama, dan segitigasamakakiterbalik. Program diselesaikan dengan 3 file. Buat file baru, ketik program berikut, dan simpan dengan nama karakter.h void cetakkarakter(char, int); Buat file baru, ketik program berikut dan beri nama karakter.cpp #include <iostream.h> #include "karakter.h" void cetakkarakter(char cc, int n){ //mencetak karakter cc sebanyak n secara horizontal if (n>0) { cout << cc; cetakkarakter(cc,n-1); S1 Pendidikan Teknik Informatika Teknik Elektro Universitas Negeri Malang Page 5

Buat file baru, ketik program berikut, kompilasi dan jalankan. #include <iostream.h> #include "karakter.h" void segitigasikusamaterbalik(int n){ if (n>0) { cetakkarakter('*',n); cout << "\n"; segitigasikusamaterbalik(n-0); void segitigasikusama(int n){ if (n>0) { segitigasikusama(n-1); cout << "\n"; cetakkarakter('*',n); void segitigasamakakiterbalik(int tinggi, int posisiawal){ if (tinggi>0){ cetakkarakter(' ', posisiawal-1); cetakkarakter('*', 2*tinggi-1); cout << "\n"; segitigasamakakiterbalik(tinggi-1, posisiawal-1); int main() { int n; char lagi; do{ cout << "Masukkan sebuah bilangan : "; cin >> n; cout << "Segitiga Siku-siku sama kaki terbalik\n"; segitigasikusamaterbalik(n); cout << "\nsegitiga Siku-siku sama kaki tegak"; segitigasikusama(n); cout << "\n\nsegitiga sama kaki terbalik\n"; segitigasamakakiterbalik(n,1); cout << "\n\nbuat segitiga lagi(y/t)? "; cin >> lagi; while ((lagi=='y') (lagi=='y')); S1 Pendidikan Teknik Informatika Teknik Elektro Universitas Negeri Malang Page 6

2. Buatlah fungsi untuk membalik suatu bilangan dengan cara rekursif. Sebagai contoh, bilangan 1234 ditampilkan menjadi 4321! (Take Home) S1 Pendidikan Teknik Informatika Teknik Elektro Universitas Negeri Malang Page 7