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 :