Matakuliah: T0034 / Perancangan & Analisis Algoritma Tahun: 2008 Pertemuan 9 DIVIDE AND CONQUER (1)

Slides:



Advertisements
Presentasi serupa
Pencarian ( Searching)
Advertisements

Sorting (Pengurutan).
ARRAY 1 DIMENSI #10 STIKOM Searching Pengantar Manfaat Inisialisasi
Sorting Algorithms Dr. Anto Satriyo Nugroho, M.Eng
PENGURUTAN ( SORTING ) Fajrizal.
MATERI 9 FUNGSI REKURSIF.
Algoritma Divide and Conquer
Bahan Kuliah IF3051 Strategi Algoritma Oleh: Rinaldi Munir
Meningkatkan kemampuan quick sort
Pertemuan 2 INDUKSI MATEMATIKA & FUNGSI REKURSIF
PENCARIAN (SEARCHING)
Sulidar Fitri, M.Sc Lab Meeting 13 Maret 2014
Algoritma dan Struktur Data
PERTEMUAN 1 Pendahuluan Materi - Endra Rahmawati, S.Kom -
Source: Sorting Algorithms source:
Bab 2 – b PERINTAH 2 B Percabangan. PERCABANGAN Tidak setiap baris program akan dikerjakan Hanya yang memenuhi syarat (kondisi) Syarat terdiri dari operand-operand,
Algoritma dan Struktur Data
Divide and Conquer Analisa Algoritma.
Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming
Matakuliah: T0034 / Perancangan & Analisis Algoritma Tahun: 2008 Pertemuan 1 PENGENALAN PERANCANGAN & ANALISIS ALGORITMA.
Metode Perancangan Program
Matakuliah : T0034 / Perancangan & Analisis Algoritma
Pertemuan 23 BRANCH AND BOUND (1)
Pertemuan 24 BRANCH AND BOUND (2)
Pengurutan (Sorting) Diperlukan untuk mempercepat pencaharian suatu target dalam suatu daftar (list). Jenis Pengurutan:  Ascending Pengurutan dilakukan.
Sorting 2007/2008 – Ganjil – Minggu 5.
Pertemuan 3 ALGORITMA & FUNGSI KOMPLEKSITAS
SORTING Matakuliah : T0974 / Algoritma dan Metode Object Oriented Programming I Tahun : 2008 Versi : 1/0.
1 Nama Kelompok : Doddy Setiawan Moh. Abdul Latief Yosep Pangky ALGORITMA MERGE SORT.
Pertemuan 7 PRIORITY QUEUE & HEAP
1 Pertemuan 9 DIVIDE And CONQUER Matakuliah: T0034/Perancangan & Analisis Algoritma Tahun: 2005 Versi: R1/0.
Pertemuan 5 STACK & QUEUE
INF-301 FEB 2006 Univ. INDONUSA Esa Unggul PERTEMUAN V Tujuan Instruksional Umum : Permutasi & Kombinasi Tujuan Instruksional Khusus : Mahasiswa dapat.
Pertemuan 10 DIVIDE And CONQUER Lanjutan ….
Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming
Pertemuan 4 ANALISIS KOMPLEKSITAS ALGORITMA
Algoritma Divide and Conquer (Bagian 1) Wahyul Wahidah Maulida, ST., M.Eng.
12-CRS-0106 REVISED 8 FEB 2013 CSG523/ Desain dan Analisis Algoritma Divide and Conquer Intelligence, Computing, Multimedia (ICM)
Algoritma dan Pemrograman – Pertemuan 3 & 4 Sorting (Pengurutan)
Materi Kuliah 1. Pertemuan ke : 1 Pengenalan Komputer dan Pemrograman
Pertemuan 22 BACKTRACKING
MATERI PERKULIAHAN ANALISIS ALGORITMA
KUG1A3 Algoritma& Pemrograman
LANJUTAN DARI SHORTING
Bahan Kuliah IF2211 Strategi Algoritma Oleh: Rinaldi Munir
Algoritma dan Struktur Data
Pertemuan 10 SORTING.
Struktur Data Prio Handoko, S. Kom., M.T.I.
Pertemuan 25 MERANCANG ALGORITMA DENGAN KOMPLEKSITAS TERTENTU
PENGURUTAN (SORTING) Pengurutan adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Urutan objek tersebut dapat dilakukan secara.
Pertemuan 13 DYNAMIC PROGRAMMING : FIBONACCI SEQUENCE PROBLEM
Pertemuan 20 GRAPH COLORING
PENCARIAN INTERPOLASI
Algoritma dan Struktur Data
Metode pemecahan masalah
Modul 6 : Analisis Algoritma dan Struktur Data
Array Buat algoritma untuk mencari nilai terbesar dari 5 nilai mahasiswa yang diinputkan dengan array.
Nama : Siti Hajar Unit : B Nim : No.Hp : 0852 – 2000 – 3786.
Dasar – dasar Pemrograman
Bubble sort.
Algoritma sorting.
Pertemuan 18 CODE OPTIMIZATION
SORTING ARRAY SESI 2.
Algoritma Divide and Conquer
Algoritma Divide and Conquer
Algoritma Divide and Conquer
Algoritme dan Pemrograman
Algoritma Divide and Conquer
Sorting Dasar Pemrograman
Pengurutan (sorting).
Transcript presentasi:

Matakuliah: T0034 / Perancangan & Analisis Algoritma Tahun: 2008 Pertemuan 9 DIVIDE AND CONQUER (1)

Bina Nusantara DIVIDE AND CONQUER Membagi masalah itu menjadi sejumlah masalah yang lebih kecil. Logikanya : masalah yang lebih sederhana lebih mudah diselesaikan dibandingkan masalah yang rumit. Pembagian masalah menjadi sub-masalah terjadi terus menerus secara rekursif hingga masalah tidak dapat dibagi lagi (sampai pada bentuk terkecil). Setelah semua sub-masalah selesai dipecahkan, solusi- solusi dari sub-masalah akan digabungkan kembali untuk menghasilkan solusi dari problem lengkap. [buku utama, bab 5.1]

Bina Nusantara KASUS DIVIDE AND CONQUER Tidak semua kasus bisa dipecahkan dengan teknik Divide and Conquer (DaC) Kasus yang terkenal dengan pemecahan secara DaC adalah : –Pengurutan data (sorting) –Pencarian data (searching)

Bina Nusantara MERGE SORT Mengurutkan sederetan bilangan dengan cara : –Bagi array A menjadi array A1 dan A2 (masing-masing berisi setengah dari A). –Bagi array A1 menjadi array A11 dan A12; bagi array A2 menjadi array A21 dan A22; dan seterusnya (lakukan secara rekursif sampai didapatkan sebuah array yang panjangnya hanya nol atau satu elemen). Masing-masing array diurutkan. Array yang panjangnya hanya 1 elemen ini tentu tidak perlu diurutkan lagi karena sudah otomatis terurut. –Gabungkan hasilnya. [buku utama, bab 5.2.5]

Bina Nusantara PSEUDOCODE MERGE SORT 1 module MergeSort(M) 2 if length(M)<=1 then 3 result=M 4 else 5 iMiddle=length(M) div 2 6 for i=1 to iMiddle do 7 add M[i] to LeftTemp 8 end for 9 for i=(iMiddle+1) to length(M) do 10 add M[i] to RightTemp 11 end for 12 LeftResult=MergeSort(LeftTemp) 13 RightResult=MergeSort(RightTemp) 14 result=Merge2(LeftResult,RightResult) 15 end if 16 end module 1 module Merge2(L,R) 2 Lcnt=1 3 Rcnt=1 4 HasilTemp 5 while (Lcnt<=length(L)) or (Rcnt<=length(R)) do 6 if (Lcnt<=length(L)) and (Rcnt<=length(R)) then 7 if L[Lcnt]<R[Rcont] then 8 add L[Lcnt] to HasilTemp 9 Lcnt=Lcnt+1 10 else 11 add R[Rcnt] to HasilTemp 12 Rcnt=Rcnt+1 13 end if 14 else if Rcnt>length(R) then 15 add L[Lcnt] to HasilTemp 16 Lcnt=Lcnt+1 17 else if Lcnt>length(L) then 18 add R[Rcnt] to HasilTemp 19 Rcnt=Rcnt+1 20 end if 21 end while 22 result=HasilTemp 23 end module [buku utama, pseudocode 5.4]

Bina Nusantara ILUSTRASI MERGE SORT [buku utama, ilustrasi 5.5] Pelajari ilustrasi 5.4 tentang cara kerja Merge Sort langkah per langkah.

Bina Nusantara QUICK SORT Mengurutkan sederetan bilangan dengan cara : –Pilih sebuah nilai tengah yang disebut pivot. Nilai pivot ini bisa ditentukan dengan berbagai cara, salah satunya adalah dengan mengambil nilai paling depan dari array. –Pisahkan array menjadi 3 bagian (array less, equal dan more) untuk diproses secara rekursif. Array less berisi semua elemen yang lebih kecil dari pivot. Array equal berisi elemen yang bernilai sama. Array more berisi semua elemen yang bernilai lebih besar. –Urutkan array less dan array more secara rekursif. –Gabungkan hasilnya. [buku utama, bab 5.2.6]

Bina Nusantara PSEUDOCODE QUICK SORT 1 module QuickSort(Q) 2 if length(Q)<=1 then 3 result=Q 4 else 5 select a pivot value from Q 6 for i=1 to length(Q) do 7 if Q[i]<pivot then 8 add Q[i] to QtempLess 9 else if Q[i]=pivot then 10 add Q[i] to QtempEqual 11 else if Q[i]>pivot then 12 add Q[i] to QtempMore 13 end if 14 end for 15 QresultLess=QuickSort(QtempLess) 16 QresultMore=QuickSort(QtempMore) 17 result=QresultLess,QtempEqual,QresultMore 18 end if 19 end module [buku utama, pseudocode 5.5]

Bina Nusantara ILUSTRASI QUICK SORT [buku utama, ilustrasi 5.6] Pelajari bab tentang cara kerja Quick Sort langkah per langkah.

Bina Nusantara PEMILIHAN PIVOT Nilai di posisi paling depan Nilai di posisi tengah Nilai di posisi paling belakang Nilai tengah (median) dari 3 nilai (posisi paling depan, posisi tengah dan posisi paling belakang) –Mengapa digunakan nilai median bukannya nilai rata- rata? Nilai random

Bina Nusantara VARIASI ALGORITMA QUICK SORT Algoritma Quick Sort yang dijelaskan di sini adalah algoritma dasar Banyak versi lain dari algoritma Quick Sort yang merupakan penyempurnaan dari algoritma dasar ini.

Bina Nusantara LATIHAN Jelaskan langkah-langkah mengurutkan bilangan 34, 15, 23, 9, 41, 26, 39, 11, 7, 28 dengan Merge Sort! Jelaskan langkah-langkah mengurutkan bilangan 34, 15, 23, 9, 41, 26, 39, 11, 7, 28 dengan Quick Sort! Jelaskan keunggulan dan kelemahan masing- masing teknik pemilihan pivot!

Bina Nusantara REVIEW Apa yang sudah dipahami? Apa yang akan dibahas selanjutnya?