Metode Devide and Conquer
Metode Devide dan Conquer 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.
sub masalah 1 Sub solusi 1 Solusi masalah Masalah
Sub masalah 2 sub solusi 2 Sub-masalah 3 Sub solusi 3
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 keseluruhan. Bentuk Umum Metode D dan C
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 mempercepat proses pencarian data. Metode Pengurutan
Algoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam algoritma pengurutan:
Metode Selection Sort
Metode Buble Sort
Metode Merge Sort
Metode Quick Sort
Metode Insertion
1. Selection Sort (Metode Seleksi)
Tehnik pengurutan dengan cara pemilihan elemen dengan memilih elemen data terkecil untuk kemudian dibandingkan dan ditukarkan dengan elemen pada data awal, dan seterusnya sampai dengan seluruh elemen sehingga akan menghasilkan pola data yang telah disort.
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.
4. Lakukan langkah ke-2 dan 3 untuk bilangan berikutnya (I=I+1) sampai didapatkan urutan yang optimal. 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
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.
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 optimal 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 Iterasi II : Ulangi langkah di atas untuk bilangan dengan indeks berikutnya sampai diperoleh sort yang optimal.
3. Metode Quick Sort
Sort dengan iterasi secara urut dari posisi elemen 1, ke- 2 dan seterusnya. Tukarkan setiap elemen pada posisi tersebut dengan elemen lain yang nilainya memang seharusnya berada pada posisi tersebut. 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 optimal.
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 akan bergeser ke belakang 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 urutan yang optimal. 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
Lanjutkan iterasi sampai diperoleh sort yang optimal
5. Metode Merge Sort
Merge sort adalah algoritma yang digunakan untuk menyusun list yang diberikan dengan cara membagi list yang diberikan menjadi dua bagian yang lebih kecil. Kedua list yang baru ini kemudian akan disusun secara terpisah. Setelah kedua buah list tersusun, maka akan dibentuk list baru yang merupakan hasil penggabungan dua buah list sebelumnya Prinsip Kerja Merge Sort
Kelompokkan deret bilangan ke dalam 2 bagian, 4 n bagian, 8 bagian, dst. (2 ).
Urutkan secara langsung bilangan dalam kelompok tersebut.
Lakukan langkah di atas untuk urutan bilangan yang lain sampai didapatkan urutan yang optimal.
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 :