Metode Devide
dan Conquer
Febriyanno Suryana, MM,M.Kom www.suryagsc.wordpress.com
Pendahuluan
Devide and Qonquer adalah metode pemecahan masalah yang bekerja dengan
membagi masalah/problem menjadi beberapa sub-masalah/sub-problem yang lebih kecil, kemudian menyhelesaikan masing-masing sub-masalah secara
independen dan akhirnya menggabungkan solusi masing-masing sub masalah sehingga menjadi solusi masalah semula.
Masalah
sub masalah 1
Sub solusi 1
Solusi
masalah
Dengan pembagian masalah yang lebih sederhana tentu lebih mudah
diselesaikan dibandingkan dengan masalah yang rumit.
Algoritma devide and conquer menawarkan penyederhanaan masalah
dengan pendekatan 3 langkah masalah:
pembagian masalah menjadi sekecil mungkin
penyelesaian masalah-masalah yang dikecilkan
penggabungan solusi untuk mendapatkan solusi optimal secara
Pengurutan (Sorting)
proses mengatur sekumpulan obyek/data menurut
urutan atau susunan tertentu.
Urutan obyek/data tersebut dapat menaik (ascending)
atau menurun (desencending).
Data yang diurutkan dapat berupa data bertipe dasar
atau data bertipe struktur
Data yang sudah terurut memiliki keuntungan yaitu
Metode Pengurutan
Algoritma pengurutan / sorting bermacam-macam dan setiap
algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam algoritma pengurutan:
1. Selection Sort (Metode
Seleksi)
Tehnik pengurutan dengan cara pemilihan elemen
Prinsip Kerja dari Teknik Selection Sort ini adalah :
1. Pengecekan dimulai dari data ke-1 sampai data ke-n.
2. Tentukan bilangan dengan indeks terkecil dari data bilangan tersebut. 3. Tukar bilangan dengan indeks terkecil tersebut dengan bilangan
pertama (I=1) dari data bilangan tersebut.
Contoh Metode Seleksi
Contoh : 22 10 15 3 8 2 Iterasi I :
1 2 3 4 5 6
Langkah 1: 22 10 15 3 8 2 Langkah 2: indeks terkecil adalah 6 → 2
Langkah 3: tukar indeks 1 dengan 6
2 10 15 3 8 22
Algoritma metode seleksi
langkah 0 : Baca vector yang akan diurutkan (dalam
program utama)
langkah 1 : Kerjakan langkah 2 sampai 4 untuk i = 1
sampai N -1
langkah 2 : Tentukan awal = i , kerjakan langkah 3
untuk j = i +1 sampai N
langkah 3 : (Mencari data terkecil)
Tes : apakah A[awal] > A[j], jika ya maka ubah awal = j
langkah 4 : Tukarkan nilai A[awal] dengan A[i]
2. Metode Bubble Sort
Teknik yang diinspirasi oleh gelembung sabun yang berada
dipermukaan air. Karena berat jenis gelembung lebih ringan dari pada air, maka gelembung akan naik keatas.
(benda yang berat akan terbenam, benda ringan terapung).
Elemen data yang paling kecil diapungkan “diangkat keatas” melalui proses pertukaran.
Bubble Sort mengurutkan data dengan cara membandingkan
Prinsip Kerja Bubble Sort
Pengecekan dimulai dari data ke-1 sampai data ke-n
Bandingkan data ke-n dengan data sebelumnya (n-1).
Jika lebih kecil maka pindahkan data tersebut dengan
data yang ada di depannya satu per satu (n-1, n-2, n-3, dst).
Jika lebih besar maka tidak terjadi pemindahan.
Ulangi langkah 2 dan 3 sampai diperoleh sort yang
Analogi
Larik dengan urut menaik, elemen larik yang berharga
paling kecil ‘diapungkan’, artinya diangkat ke atas (atau ke ujung kiri larik) melalui proses pertukaran.
Proses pengapungan ini dilakukan sebanyak N-1 langkah
dengan N adalah ukuran larik.
Pada akhir setiap langkah ke-I, larik L[1..N] akan
terdiri atas dua bagian yaitu bagian yang sudah terurut, yaitu L[1..I] dan bagian yang belum terurut L[I+1..N]. Setelah langkah terakhir, diperoleh larik
Contoh : 22 10 15 3 8 2
Iterasi I :
Langkah 1 : 2 8 Langkah 2 : 2 3 8 Langkah 3 : 2 15 3 8 Langkah 4 : 2 10 15 3 8 Langkah 5 : 2 22 10 15 3 8
3. Metode Quick Sort
Sort dengan iterasi secara urut dari posisi elemen 1,
Prinsip Kerja Quick Sort
Tentukan lower bound (batas bawah) dan upper bound
(batas atas).
Bandingkan lower bound (LB) dengan upper bound (UB).
Jika LB > UB maka tukarkan (cari operasi perbandingan
optimal / terkecil).
Jika LB =< UB maka next UB dan LB
Ulangi langkah di atas sampai diperoleh sort yang
Contoh : 22 10 15 3 8 2
Iterasi I : 1 2 3 4 5 6
Langkah 1: 22 10 15 3 8 2
LB UB Langkah 2: 2 10 15 3 8 22
Iterasi II :
Langkah 1: 2 10 15 3 8 22 LB UB Langkah 2: 2 8 15 3 10 22
4. Metode Insertion Sort
Algoritma ini dianalogikan seperti mengurutkan kartu,
selembar demi selembar kartu diambil dan disisipkan
(insert) ke tempat yang seharusnya.
Pengurutan dimulai dari data ke-2 sampai dengan data
terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya.
Pada penyisipan elemen, maka elemen-elemen lain
Prinsip Kerja Insertion Sort
Pengecekan mulai data ke-1 sampai data ke-n
Bandingkan data ke-I (I=data ke-2 s/d ke-n)
Bandingkan data ke-I tersebut dengan data sebelumnya
(I-1). Jika lebih kecil maka data tersebut dapat disisipkan ke data awal sesuai dengan posisi yang seharusnya.
Lakukan langkah ke-2 dan ke-3 sampai didapatkan
Analogi
mengurutkan satu set kartu dari kartu yang bernilai paling kecil hingga
yang paling besar.
Seluruh kartu diletakkan pada meja, kita sebut meja pertama, disusun
dari kiri ke kanan dan atas ke bawah.
Kemudian pada meja kedua tempat meletakkan kartu yang diurutkan.
Ambil kartu pertama yang terletak pada pojok kiri atas meja pertama dan
letakkan pada meja kedua.
Ambil kartu kedua dari meja pertama, bandingkan dengan kartu yang
berada pada meja kedua, kemudian letakkan pada urutan yang sesuai setelah perbandingan.
Proses tersebut akan berlangsung hingga seluruh kartu pada meja
Contoh : 22 10 15 3 8 2
Iterasi I : 1 2 3 4 5 6
Langkah 1: 22 10 15 3 8 2 Langkah 2: 10 22 15 3 8 2
Langkah 3: 10 22 15 3 8 2 Langkah 4: 10 15 22 3 10 2
5. Metode Merge Sort
Merge sort adalah algoritma yang digunakan untuk
Prinsip Kerja Merge Sort
Kelompokkan deret bilangan ke dalam 2 bagian, 4
bagian, 8 bagian, dst. (2n).
Urutkan secara langsung bilangan dalam kelompok
tersebut.
Lakukan langkah di atas untuk urutan bilangan yang lain
Contoh : 22 10 15 3 8 2
Iterasi I : 1 2 3 4 5 6
Langkah 1: 22 10 15 3 8 2 Langkah 2: 10 22 3 15 2 8
Iterasi II :
Langkah 1: 10 22 3 15 2 8 Langkah 2: 3 10 15 22 2 8
Iterasi III :