METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam...

21
METODE DEVIDE AND CONQUER Pengurutan (Sorting). proses mangatur 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: 1. Metode Selection Sort 2. Metode Buble Sort 3. Metode Merge Sort 4. Metode Quick Sort 5. Metode Insertion Hal yg mempengaruhi Kecepatan Algoritma Sorting adalah Jumlah Operasi Perbandingan & Jumlah OperasiPemindahan Data 1. Selection Sort (Metode Seleksi). Tehnik pengurutan dengan cara pemilihan elemen dgn memilih elemen data terkecil utk kemudian dibandingkan & ditukarkan dgn elemen pd data awal, dst s/d seluruh elemen shg akan menghasilkan pola data yg telah disort. Merupakan kombinasi antara sorting dan searching Untuk setiap proses, akan dicari elemen-elemen yang belum diurutkan yang memiliki nilai terkecil atau terbesar akan dipertukarkan ke posisi yang tepat di dalam array. Misalnya untuk putaran pertama, akan dicari data dengan nilai terkecil dan data ini akan ditempatkan di indeks terkecil (data[0]), pada putaran kedua akan dicari data kedua terkecil, dan akan ditempatkan di indeks kedua (data[1]).

Transcript of METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam...

Page 1: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

METODE DEVIDE AND CONQUER

Pengurutan (Sorting). proses mangatur 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 PengurutanAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam algoritma pengurutan:

1. Metode Selection Sort2. Metode Buble Sort3. Metode Merge Sort4. Metode Quick Sort5. Metode Insertion

Hal yg mempengaruhi Kecepatan Algoritma Sorting adalah Jumlah Operasi Perbandingan & Jumlah OperasiPemindahan Data

1. Selection Sort (Metode Seleksi).Tehnik pengurutan dengan cara pemilihan elemen dgn memilih elemen data terkecil utk kemudian dibandingkan & ditukarkan dgn elemen pd data awal, dst s/d seluruh elemen shg akan menghasilkan pola data yg telah disort.

• Merupakan kombinasi antara sorting dan searching• Untuk setiap proses, akan dicari elemen-elemen yang belum diurutkan yang memiliki

nilai terkecil atau terbesar akan dipertukarkan ke posisi yang tepat di dalam array.• Misalnya untuk putaran pertama, akan dicari data dengan nilai terkecil dan data ini

akan ditempatkan di indeks terkecil (data[0]), pada putaran kedua akan dicari data kedua terkecil, dan akan ditempatkan di indeks kedua (data[1]).

ALGORITMA SELECTION SORT.1. Pengecekan dimulai data ke-1 sampai dengan data ke-n2. Tentukan bilangan dengan Index terkecil dari data bilangan tersebut3. Tukar bilangan dengan Index terkecil tersebut dengan bilangan pertama ( I = 1 ) dari

data bilangan tersebut4. Lakukan langkah 2 dan 3 untuk bilangan berikutnya ( I= I+1 ) sampai didapatkan

urutan yg optimal

29271087621

2. data pertama ditukar dengan elemen yang paling kecil.

1. memilih elemen terkecil, membandingkan dan menukarkan dengan dengan data awal yang bernilai lebih besar.

Page 2: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

Ilustrasi Algoritma Selection Sort

PENULISAN ALGORITMA KE DALAM PROGRAM

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)

29271087621123456 Set Index awal = 1Index terkecil = 4 8Tukar index 1dengan 4

82710297621123456 Set Index awal = 2index terkecil = 3 10Tukar index 2 dengan 3

81027297621123456

Set Index awal = 4index terkecil = 6 27Tukar index 4 dengan 6

81021297627123456

Set Index awal = 3index terkecil = 6 21Tukar index 3 dengan 6

Set Index awal = 5index terkecil = 6 29Tukar index 5 dengan 6

81021277629123456

Index awal = 6 SelesaiData sudah terurut secara ascending

81021272976123456

Page 3: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

Tes : apakah A[awal] > A[j], jika ya maka ubah awal = j- langkah 4 : Tukarkan nilai A[awal] dengan A[i]- langkah 5 : selesai

program pascal;uses crt;

VAR Data : array[1..10] of integer; i,j,n,bantu : integer;

BEGIN clrscr; Writeln('Masukkan data anda !');writeln; Write('jumlah data anda ? ');readln(n); writeln('Mulai memasukan data ');

for i:=1 to n do begin Write('Data ke-',i,' = '); readln(data[i]); end;

for i:=1 to N-1 do for j := i+1 to N do begin if data[i] > data[j] then begin Bantu := data[i]; data[i] := data[j]; data[j] := Bantu; end; end;

for i:=1 to n do write('(',data[i],'),');

readln;end.Hasil programMasukkan data anda !

jumlah data anda ? 5Mulai memasukan dataData ke-1 = 4Data ke-2 = 6Data ke-3 = 2Data ke-4 = 8Data ke-5 = 5(2),(4),(5),(6),(8),

2. Metode Bubble Sort (Gelembung)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.

Page 4: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

Bubble Sort mengurutkan data dengan cara membandingkan elemen sekarang dengan elemen berikutnya

Algoritma Bubble Sort1. Pengecekan mulai dari data ke-1 sampai data ke-n2. Bandingkan data ke-n dengan data sebelumnya (n-1)3. Jika lebih kecil maka pindahkan bilangan tersebut dengan bilangan yg ada didepannya

( sebelumnya ) satu persatu (n-1,n-2,n-3,....dst)4. Jika lebih besar maka tidak terjadi pemindahan 5. Ulangi langkah 2 dan 3 s/d sort 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 L[1..N] yang terurut menaik.

25271087621123456

Langkah 1: Index ke n = 6 sampai ke 2.Index 62176Index (n-1) = 582176Index = 48102176Index = 3827102176Index =

282527102176

82527102176123456

Langkah 2: Index ke n = 6 sampai ke 3Index 62176Index (n-1) = 5102176Index = 410272176Index = 31025272176

81025272176123456

Langkah 3: Index ke n = 6 sampai ke 4.Index 62176Index (n-1) = 5212776Index = 421252776

Page 5: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

Contoh 2 :

Contoh 3 :

81021252776123456

Langkah 4: Index ke n = 6 sampai ke 5.Index 62776Index (n-1) = 5252776

81021252776123456

Langkah 5: Index ke n = 6 .Index 62776

81021252776123456

Elemen sudah urut dan proses sorting selesai

Page 6: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

Bubble Sort Disebut juga dengan metode Penukaran (Exchange Sort), yaitu metoda yang mendasarkan pada penukaran elemen untuk mencapai keadaan urut yang diinginkan.Algoritma Metode gelembung :

- langkah 0 : Baca vector yang akan diurutkan (dalam program utama)- langkah 1 : Kerjakan langkah 2 untuk i = 1 sampai N-1- langkah 2 : Kerjakan langkah 3 untuk j = 1 sampai N- i- langkah 3 : Tes apakah A[j] > A[j +1] ? Jika ya, tukarkan nilai kedua elemen ini- langkah 4 : Selesai

Contoh Program Buble Sort

program pascal;uses crt;

VAR Data : array[1..10] of integer; i,j,n,bantu : integer;

BEGIN clrscr; Writeln('Masukkan data anda !');writeln; Write('jumlah data anda ? ');readln(n); writeln('Mulai memasukan data ');

for i:=1 to n do begin Write('Data ke-',i,' = '); readln(data[i]); end; for i:=1 to N-1 do for j := 1 to N-i do begin

if data[j] > data[j+1] then begin Bantu := data[j]; data[j] := data[j+1]; data[j+1] := Bantu; end; end;

for i:=1 to n do write('(',data[i],'),');

readln;end.Hasil :Masukkan data anda !

Page 7: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

jumlah data anda ? 5Mulai memasukan dataData ke-1 = 5Data ke-2 = 3Data ke-3 = 6Data ke-4 = 2Data ke-5 = 3(2),(3),(3),(5),(6),3. Metode INSERTION SORT (Sisip)

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

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 pertama telah diletakkan berurutan pada meja kedua.

Contoh :Jika sudah terurut 3,6,9, dan selanjutnya belum terurut 5,7,2,....5 akan disisipkan di antara 3 dan 6, sehingga menjadi 3,5,6,9.7 akan disisipkan di antara 6 dan 9, sehingga menjadi 3,5,6,7,9.2 akan disisipkan sebelum 3, sehingga menjadi 2,3,5,6,7,9.

Contoh :

Page 8: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

METODE DEVIDE AND CONQUERDevide 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 masalahSub masalah 2 sub solusi 2Sub-masalah 3 Sub solusi 3

Algortima 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.

tipe algoritma yang mengimplementasikan/kategori D&C antara lain merge sort

4. Metode Merge SortMerge 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

Konsep :1). Array yang belum terurut, dibagi menjadi separuh

– Proses diulang terus sampai ditemukan bagian terkecil2). Hasil dari setiap proses digabungkan :

– membandingkan elemen pertama dari setiap bagian– hapus elemen terkecil dan letakan pada hasil– Ulangi semua proses sampai semua elemen terurut

3 9 4 1 5 2

List diatas dibagi menjadi dua bagian:

list 1: | list 2:3 9 4 | 1 5 2

Kedua list yang baru disusun sendiri-sendiri menjadi:

list 1: | list 2:3 4 9 | 1 2 5

Setelah itu dubentuk list baru yang merupakan gabungan kedua list tadi:

List baru:1list 1: | list 2:

Page 9: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

3 4 9 | 2 5List baru:1 2list 1: | list 2:3 4 9 | 5List baru:1 2 3list 1: | list 2:4 9 | 5List baru:1 2 3 4list 1: | list 2:9 | 5List baru:1 2 3 4 5list 1: | list 2:9 | kosongList baru:1 2 3 4 5 9list 1: | list 2:kosong | kosong

Dan akhirnya akan didapat list yang sudah tersusun:

List:1 2 3 4 5 9

Contoh 2Contoh : data berikut ini akan diurutkan

1). Divide/membagi data yang tidak terurut menjadi dua bagian2). Ulangi sampai setiap array hanya memiliki sebuah data3). Lakukan merge untuk memperoleh data terurut

1).

2).

3).

Page 10: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

4).

5).

6).

7).

8).

Page 11: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

9).

10).

11).

12).

13).

Page 12: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

14).

15).

16).

17).

Page 13: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

18).

19).

20).

21).

22).

Page 14: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

23).

24).

25).

26).

Page 15: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

27).

28).

29).

30).

Page 16: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

31).

32).

33).

34).

35).

Page 17: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

36).

37).

38).

39).

Page 18: METODE DEVIDE AND CONQUER - JKW Blog | … · Web viewAlgoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam

5. Metode QUICK SORT