Anda di halaman 1dari 24

Mata Kuliah Desain Algoritma 2

Merge Sort

Joko Iskandar, M.Kom.


Capaian Pembelajaran
 Mahasiswa mampu memahami
Sorting pada Java
 Mahasiswa mampu membedakan
macam-macam Sorting pada Java
 Mahasiswa mampu
mengimplementasikan Sorting
pada Java
Pengantar Sorting
Pengertian

Proses menyusun elemen-elemen dengan tata urut Misalnya mengurutkan data


tertentu dan proses tersebut terimplementasi mahasiswa, data pengguna,
dalam bermacam aplikasi pembeli, nasabah dan lain lain

Sorting yang kita terapkan menggunakan tipe data


array agar pemahaman serta pengimplementasiannya
lebih mudah

Data Acak : 22 10 15 3 8 2
Terurut Ascending : 2 3 8 10 15 22
Terurut Descending : 22 15 10 8 3 2
3
Macam-macam Sorting
 Buble Sort
 Selection Sort
 Insertion Sort
 Shell Sort
 Merge Sort
 Quick Sort

4
MERGE SORT
 Merge sort merupakan algoritma pengurutan dalam ilmu
komputer yang dirancang untuk memenuhi kebutuhan
pengurutan atas suatu rangkaian data yang tidak
memungkinkan untuk ditampung dalam memori komputer
karena jumlahnya yang terlalu besar. 

Algoritma ini ditemukan oleh John von Neumann pada
tahun 1945.

 Merge sort atau pengurutan secara menggabungkan suatu


data. Sesuai dari katanya yaitu merge berarti data akan
digabungkan agar menjadi terurut.

5
Konsep Algoritma Merge Sort

6
Penjelasan:
Contoh penerapan atas sebuah larik/array dengan data yang akan diurutkan
{6,3,5,1,8,2,4,7} ditunjukkan pada gambar 1. Pertama kali larik tersebut dibagi menjadi dua
bagian, {6,3,5,1} dan {8,2,4,7}. Larik {6,3,5,1} dibagi menjadi dua bagian yaitu, {6,3} dan
{5,1}. Larik {6,3} dibagi menjadi dua bagian yaitu, {6} dan {3}. Selanjutnya karena {6} dan {3}
sudah tidak bisa dibagi lagi maka di merge dan diurutkan menjadi {3,6}. Larik {5,1} dibagi
menjadi dua bagian yaitu, {5} dan {1}. Selanjutnya {5} dan {1} dilakukan merge dan
diurutkan menjadi {1,5}. Larik {3,6} dan {1,5} dimerge dan diurutkan menjadi {1,3,5,6}.

Larik {8,2,4,7} dibagi menjadi dua bagian yaitu, {8,2} dan {4,7}. Larik {8,2} dibagi menjadi
dua bagian yaitu, {8} dan {2}. Selanjutnya {8} dan {2} di merge dan diurutkan menjadi {2,8}.
Larik {4,7} dibagi menjadi dua bagian yaitu, {4} dan {7}. Selanjutnya {4} dan {7} dilakukan
merge dan diurutkan menjadi {4,7}. Larik {2,8} dan {4,7} dimerge dan diurutkan menjadi
{2,4,7,8}. Larik {1,3,5,6} dan larik {2,4,7,8} dimerge dan diurutkan menjadi {1,2,3,4,5,6,7,8}.

7
Langkah / Ilustrasi:
Data sumber yang akan diurutkan adalah sebagai berikut:

Bagaimana selanjutnya?
8
Langkah pertama kita bagi menjadi 3 bagian
susunan elemen data yaitu 4 dengan 7, 1
dengan 2 dan 9 dengan 5.

9
Kemudian kita bandingan elemen pertama
yaitu 4 dan 7. karena 4 sudah lebih kecil dari 7
maka posisi tetap.

10
Kemudian bandingkan elemen data ke 2 yaitu
angka 1 dan 2. karena angka 1 lebih kecil dari
2 maka posisi tetap.

11
Kemudian bandingkan elemen data ke 3 yaitu
angka 9 dan 5. karena angka 5 lebih kecil dari
9 maka posisi 9 ditukar dengan angka 5.

12
Langkah selanjutnya adalah kita bandingkan
angka pertama pada elemen pertama dengan
elemen 2 dan elemen 3 pertama kita
bandingkan angka 4 dengan element 2 yaitu 1.

13
Cek angka 4 dan 1. lebh besar mana angka 4
dibandingkan dengan angka 1. karena angka 1
lebih kecil dari angka 4 maka angka 1 akan
menempati posisi baru di elemen pertama.

14
kemudian bandingkan angka 4 dengan 2. cek
lebih kecil mana antara angka 4 dan 2?

karena angka 2 lebih kecil dari 4 maka angka 2 ke


elemen baru di posisi ke 2

15
kemudian bandingkan angka 4 dengan elemen
ke 3 yaitu 5

cek lebih kecil mana angka 4 dengan angka 5. karena


angka 4 lebih kecil dari 5 maka angka 4 menempati
posisi ke 3.

16
lanjut ke urutan angka ke 2 pada elemen
pertama yaitu angka 7. bandingkan angka 7
dan 5. lebih kecil mana antara angka 7 dan 5

karena angka 5 lebih kecil dari 7 maka angka 5


menempati posisi ke 4.

17
lanjut ... bandingkan angka 7 dengan angka 9.
lebih kecil mana antara angka 7 dan 9?

karena angka 7 lebih kecil dari 9 maka angka 7


menempati urutan ke 5.

karena angka 9 adalah angka terakhir maka angka 9


menempati posisi ke 6

pengurutan dengan merge telah selesai.


18
Kelebihan dan Kekurangan
Kelebihan Merge Sort
 Dibanding dengan algoritma lain, merge sort ini termasuk algoritma yang sangat
efisien dalam penggunaannya sebab setiap list selalu dibagi bagi menjadi list
yang lebih kecil, kemudian digabungkan lagi sehingga tidak perlu melakukan
banyak perbandingan.
 Cocok untuk sorting akses datanya lambat misalnya tape drive atau hard disk.
 Cocok untuk sorting data yang biasanya diakses secara sequentially
(berurutan), misalnya linked list, tape drive, dan hard disk.

Kekurangan Merge Sort


 Kekurangan Merge Sort yaitu terlalu banyak menggunakan ruang pada memori.
 Merge Sort membutuhkan lebih banyak ruang daripada jenis sorting lainnya.

19
Implementasi dalam Java
Latihan 41 : Merge sort secara ascending dengan data int

20
Output:

21
Kompleksitas Merge Sort

22
TUGAS INDIVIDU

Buatlah latihan 41 menjadi


merge sort secara descending
dengan data yang sama!!!

23
Thanks!

24

Anda mungkin juga menyukai