Algoritma dan Struktur Data

Slides:



Advertisements
Presentasi serupa
Introduction to Algorithm evaluation Soal Matrikulasi Buka Buku
Advertisements

Desain Dan Analisis Algoritma
Kompleksitas Algoritma
Algoritma dan Struktur Data
Design and Analysis of Algorithm Recursive Algorithm Analysis
Algoritma dan Struktur Data
Fungsi (lanjutan) Pertemuan ke-9 Bahasa C.
Penyeleksian Kondisi Pertemuan ke-4 Bahasa C.
Dasar Pemrograman MODUL 06 PERCABANGAN.
1 Ruli Manurung & Ade AzuratFasilkom UI - IKI /2008 – Ganjil – Minggu 4 Dasar-dasar Rekursif.
Desain dan Analisis Algoritma
Pemrograman Terstruktur
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.
STRUKTUR DATA recursive function.
#include //bagian modul int hitung(x,y) { return(x+y); } //bagian utama main() { int jumlah,a,b; a=8; b=2; jumlah=hitung(a,b); cout
Design and Analysis Algorithm
Algoritma dan Struktur Data
PART 6 Algoritma DOSEN : AHMAD APANDI, ST.
DECISION KONDISI / PEMILIHAN
Algoritma dan Struktur Data
FUNGSI.
PEMROGRAMAN DASAR.
PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS KOMPUTER INDONESIA
Statement Control (if dan switch)
DIG1G3 Implementasi Struktur Data
Struktur Program TEE 2103 Algoritma dan Pemrograman
PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS KOMPUTER INDONESIA
Algoritme dan Pemrograman
Algoritma dan Struktur Data
PERTEMUAN 4 Algoritma & Pemrograman
Apa itu Fungsi? Sebuah fungsi adalah modul program yang mengerjakan tugas atau aktivitas yang spesifik dan mengembalikan sebuah nilai dari tipe tertentu,
Algoritma dan Struktur Data 1 pertemuan 5
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
Pemilihan TEE 2103 Algoritma dan Pemrograman Dosen: Abdillah, MIT
Contoh-contoh Pemecahan Masalah TEE 2103 Algoritma & Pemograman
Algoritme dan Pemrograman
TEL 2112 Dasar Komputer & Pemograman Fungsi
Fungsi TEE 2103 Algoritma & Pemrograman Dosen: Abdillah, MIT
Fungsi Rekursif Algoritma dan Pemrograman II Teknik Informatika
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
Algoritme dan Pemrograman
Mata kuliah : K0144/ Matematika Diskrit Tahun : 2008
PERULANGAN RISMAYUNI.
Kompleksitas Algoritma
PART 6 Algoritma DOSEN : AHMAD APANDI, ST.
Faktor analisa algoritma
Algoritme dan Pemrograman
Fungsi, Parameter & Rekursi
ALGORITMA & STRUKTUR DATA I
Analisis dan Perancangan Algoritma Kuliah 4 : Asymptotic pd Kasus
DASAR BAHASA PEMROGRAMAN
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
Algoritma dan Struktur Data
Mata kuliah : K0144/ Matematika Diskrit Tahun : 2008
Procedure Erfin Gustaman.
~ PERTEMUAN 8 STRUKTUR REKURSIF ~
IT234 ALGORITMA DAN STRUKTUR DATA
TEL 2112 Dasar Komputer & Pemograman Fungsi
Recursive function.
STRUKTUR DATA (10) recursive function
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
SELEKSI ALGORITMA & STRUKTUR DATA I PROGRAM STUDI SISTEM INFORMASI
PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS KOMPUTER INDONESIA
Pertemuan 7 Percabangan dalam bahasa C .:: Erna Sri Hartatik ::.
Sekolah Tinggi Manajemen Informatika Komputer Bani Saleh
Kondisi IF.
Analisa algoritma rekursif
Analisis Algoritma E. Haodudin Nurkifli Teknik Informatika
STRUKTUR KONTROL PERCABANGAN DAN STRUKTUR KONTROL LOMPATAN
Transcript presentasi:

Algoritma dan Struktur Data Pertemuan 6 Pembahasan tugas 3

Pangkat xn , n>=0. Base case adalah jika n bernilai 0 maka jawabannya adalah 1. Recursive casenya adalah : xn = x * xn-1. x * x n-1, n>0 1, n = 0 xn

Implementasikan fungsi pangkat dalam bahasa C dalam bentuk iteratif dan rekursifnya Hitung C(n), Efisiensi waktu algoritma pangkat ada pada kelas apa? Dikumpulkan pada pertemuan kedua sesudah lebaran Tugas dibahas oleh mahasiswa dengan nomor urut mod 10 == 9

Program #include <stdio.h> #include <conio.h> float pangkat(int X, int n); void main() { int A = 4; int B = 3; printf("%d pangkat %d adalah %f", A, B, pangkat(A, B)); getch(); } float pangkat(int X, int n) if (n == 0) return(1); else return(X * pangkat(X, n - 1));

Metrik untuk ukuran input Sesuatu pada input yang jika membesar, maka pemanggilan fungsi rekursif bertambah Pada kasus ini adalah nilai n. Jika n membesar, maka pemanggilan fungsi rekursi bertambah Kompleksitas dinyatakan sebagai fungsi dari n Untuk memahaminya coba gambar pohon rekursifnya.

Salah satu operasi pada recursive casenya Basic operation Salah satu operasi pada recursive casenya Basic operationnya dapat dipilih * yang dilakukan 1 kali untuk setiap pemanggilan fungsi rekursif return(X * pangkat(X, n - 1))

Banyaknya eksekusi basic operation Jika algoritma pangkat dieksekusi dengan input (X, n), maka basic operation dieksekusi satu kali. Namun pada saat eksekusi, algoritma tersebut juga memanggil dirinya sendiri dengan input n-1. Hal ini mengakibatkan pada pemanggilan pangkat(X, n - 1) basic operation dieksekusi lagi. Proses rekursi dilakukan terus selama nilai n > 0. return(X * pangkat(X, n - 1))

Banyaknya eksekusi basic operation Jika C(n) menyatakan banyaknya basic operation dieksekusi untuk input (X, n) dan C(n - 1) menyatakan banyaknya basic operation dieksekusi untuk input (X, n-1), maka hubungan antara C(n) dan C(n - 1) dinyatakan dengan C(n) = C(n - 1) + 1 untuk n > 1 C(0) = 0, base case

Case Apakah ada best case, average case dan worst case? Tidak ada Untuk input n tertentu misal X = berapa saja dan n = 4, banyaknya pemanggilan fungsi rekursif selalu sama. Sehingga tidak ada best case, average case dan worst case

Perhitungan efisiensi waktu Untuk mengetahui efisiensi waktunya kita harus menemukan persamaan langsung (non recursive) dari C(n)

Perhitungan efisiensi waktu Menggunakan metode backward substitution, dicari pola dari C(n) : C(n) = C(n - 1) + 1 C(n) = (C(n - 2) + 1) + 1 = C(n) = C(n - 2) + 2 C(n) = (C(n - 3) + 1) + 2 = C(n) = C(n - 3) + 3 dst Pola atau bentuk umum yang didapatkan adalah C(n) = C(n - i) + i.

Perhitungan efisiensi waktu Nilai initial condition C(0) disubtitusikan ke C(n - i) pada bentuk umum C(n). C(n) = C(n - i) + i C(n) = C(0) + i C(n) = i

Perhitungan efisiensi waktu Subtitusi tersebut mensyaratkan C(n - i) = C(0) atau n – i = 0 i = n nilai i = n disubtitusikan ke bentuk umum C(n) = i sehingga C(n) = n C(n) Є O(n) Apa artinya? Jika untuk menghitung 43 membutuhkan t satuan waktu maka untuk menghitung 46 membutuhkan 2t satuan waktu!