SlideShare a Scribd company logo
1 of 13
STRUKTUR DATA DAN ALGORITMA
MERGE SORT
Oleh :
1. Chusnul Khotimah (13030214002)
2. Hidayatul Ula (13030214006)
3. Novalia Rachmaniar Ningrum S (13030214021)
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS NEGERI SURABAYA
2014
KATA PENGANTAR
Puji syukur kami penjatkan kehadirat Allah SWT, yang atas rahmat-Nya
sehingga kami dapat menyelesaikan penyusunan makalah yang berjudul “Merge
Sort”. Penulisan makalah ini merupakan salah satu tugas yang diberikan dalam mata
kuliah Struktur Data dan Algoritma di Universitas Negeri Surabaya.
Dalam Penulisan makalah ini kami merasa masih banyak kekurangan baik
pada teknis penulisan maupun materi, mengingat akan kemampuan yang kami miliki.
Untuk itu, kritik dan saran dari semua pihak sangat kami harapkan demi
penyempurnaan pembuatan makalah ini.
Dalam penulisan makalah ini penulis menyampaikan ucapan terima kasih
yang sebesar-besarnya kepada pihak-pihak yang membantu dalam menyelesaikan
makalah ini, khususnya kepada Dosen kami yang telah memberikan tugas dan
petunjuk kepada kami, sehingga kami dapat menyelesaikan tugas ini.
Surabaya, 12 Desember 2014
Penyusun
BAB I
PENDAHULUAN
1.1. Latar Belakang
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.
Algoritma pengurutan data merge sort dilakukan dengan menggunakan cara
divide and conquer yaitu dengan memecah kemudian menyelesaikan setiap bagian
kemudian menggabungkannya kembali. Pertama data dipecah menjadi 2 bagian
dimana bagian pertama merupakan setengah (jika data genap) atau setengah minus
satu (jika data ganjil) dari seluruh data, kemudian dilakukan pemecahan kembali
untuk masing-masing blok sampai hanya terdiri dari satu data tiap blok.
Setelah itu digabungkan kembali dengan membandingkan pada blok yang
sama apakah data pertama lebih besar daripada data ke-tengah+1, jika ya maka data
ke-tengah+1 dipindah sebagai data pertama, kemudian data ke-pertama sampai ke-
tengah digeser menjadi data ke-dua sampai ke-tengah+1, demikian seterusnya
sampai menjadi satu blok utuh seperti awalnya. Sehingga metode merge sort
merupakan metode yang membutuhkan fungsi rekursi untuk penyelesaiannya.
1. 2.Rumusan Masalah
Bagaimana penjelasan tentang algoritma Merge Sort dan penerapannya?
1. 3. Tujuan Penulisan
Memahami algoritma Merge Sort dan penerapannya
BAB II
PEMBAHASAN
2. 1. Algoritma
Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah
yang aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung
dengan angka arab. Anda dikatakan algorist jika Anda menghitung menggunakan
angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya
kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata
tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far
Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat
menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-
Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration
and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar”
(Algebra). Perubahan kata dari algorism menjadi algorithm muncul karena
kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah
menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa,
maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode
perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya.
Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.
“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang
disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam
algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan
bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi
urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan
algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan
memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan.
Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah,
pastilah algoritma tersebut bukanlah algoritma yang baik.
Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui
seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama
pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil
(hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu
memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.
Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal
yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang
benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk
mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap
orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar
memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam
kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk
menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun
algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian,
carilah algoritma yang paling efisien dan cepat.
2. 1. 1. Algoritma Sorting
Dalam Ilmu Komputer, Algoritma Sorting merupakan algoritma yang
menempatkan elemen list pada urutan tertentu. Urutan yang paling sering digunakan
ialah urutan numerikal dan urutan lexicographical. Sorting yang efisien sangat
dibutuhkan untuk mengoptimisasi penggunaan dari algoritma lain seperti pencarian
dan penggabungan yang membutuhkan list terurut untuk berjalan dengan sempurna,
yang juga sering digunakan untuk Canonicalisisasi data dan menghasilkan output
yang dapat dibaca manusia. Untuk lebih lanjutnya, output harus melengkapi dua
syarat ini:
1. Output merupakan urutan yang tidak menurut (nondecreasing), setiap elemen
tidak lebih kecil dari elemen sebelumnya menurut dari urutan keseluruhan
yang diinginkan.
2. Output merupakan permutasi (pengurutan kembali) dari inputan yang
diberikan.
2.1. 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 juga menggunakan prinsip divide and conquer. Merge sort membagi
array menjadi dua secara terus menerus hingga hanya tersisa satu elemen pada sub-
array yang terbentuk. Kemudian elemen-elemen tersebut di urutkan lalu di gabung
secara terus menerus hingga terbentuk array dengan ukuran yang sama dengan array
asal.
Algoritma pengurutan data merge sort dilakukan dengan menggunakan cara
divide and conquer. Sebuah algoritma divide and conquer (selanjutnya disebut
dengan D&C) memiliki tiga langkah, yaitu:
1. Divide (Membagi): pada langkah ini kita memecahkan masalah atau data ke
dalam bentuk yang sama, tetapi dalam ukuran yang lebih kecil. Pemecahan
langkah biasanya dilakukan dengan menggunakan algoritma rekursif, sampai
ukuran data menjadi sangat kecil dan dapat diselesaikan dengan algoritma
sederhana.
2. Conquer (Menaklukkan): dalam langkah ini kita mencoba menyelesaikan
masalah atau data yang telah dipecahkan pada langkah pertama, dengan
menggunakan algoritma sederhana.
3. Combine (Menggabungkan): setelah menjalankan langkah conquer, tentunya
kita harus menggabungkan kembali hasil dari masing-masing pecahan yang
ada, untuk mendapatkan hasil akhir kalkulasi. Langkah combine mencoba
mencapai hal tersebut.
2.1.1. Tahapan Merge Sort
2.2.2. Algoritma Merge Sort
Secara konseptual, untuk sebuah array berukuran n, Merge Sort bekerja sebagai
berikut:
1. Jika bernilai 0 atau 1, maka array sudah terurut. Sebaliknya:
2. Bagi array yang tidak terurut menjadi dua subarray, dimana bagian pertama
merupakan setengah (jika data genap) atau setengah minus satu (jika data
ganjil) dari seluruh data.
3. Urutkan setiap sub-array. Jika sub-array tidak cukup kecil, lakukan rekursif
langkah 2 terhadap sub-array.
4. Menggabungkan dua sub-array kembali menjadi satu array yang terurut
Pseudocode Merge Sort
input : Array
output : Array yang terurut
algoritma :
1. if length(m) _ 1 then
2. return m
3. else
4. tengah = length(m) div 2
5. for x = m to tengah do
6. add x to kiri
7. end for
8. for x = m after tengah do
9. add x to kanan
10. end for
11. while length(kiri) > 0 and length(kanan) >
0 do
12. if first(kiri) _ first(kanan) then
13. Append first(kiri) to hasil
14. kiri = rest(kiri)
15. else
16. append first(kanan) to hasil
17. kanan = rest(kanan)
18. end if
19. end while
20. if length(kiri) > 0 then
21. append rest(kiri) to hasil
22. end if
23. if length(kanan) > 0 then
24. append rest(kanan) to hasil
25. end if
26. return hasi
2.2.3. Kompleksitas Merge Sort
Merge sort memiliki kasus terburuk dan kasus rata-rata. Kasus terburuk
adalah saat tiap 2 lemen dibandingkan selalu dilakukan pertukaran. Bila waktu yang
diperlukan untuk melakukan merge sort adalah T(n) maka untuk saat rekursif waktu
yang dihabiskan adalah T(n) = 2T(n/2) + n. T (n/2) adalah waktu yang diperlukan
untuk merge setengah dari ukuran list, dan ditambah n sebagai langkah dari
penggabungan list. Kompleksitas waktu terburuk dan rata-rata dari merge sort adalah
O(n log n). Merge Sort akan selalu membagi dua tiap sub-arraynya, sehingga
kompleksitas dari algoritma Merge Sort berlaku untuk semua kasus (Worst Case =
Best Case = Average Case).
2.2.4. Implementasi Program Merge Sort
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace programmergesort
{
class Program
{
static void Main(string[] args)
{
int[] data;
int[] temp;
Console.WriteLine("PROGRAM MERGE SORT");
Console.WriteLine(" Oleh Kelompok 2 ");
Console.WriteLine("-------------------");
Console.Write("masukan jumlah bilangan : ");
int jumlah_bilangan =
int.Parse(Console.ReadLine());
data = new int[jumlah_bilangan];
temp = new int[jumlah_bilangan];
for (int i = 0; i < jumlah_bilangan; i++)
{
Console.Write("masukan bilangan ke-{0} =
", i + 1);
data[i] = int.Parse(Console.ReadLine());
}
//lakukan pemecahan
devide(data, temp, 0, jumlah_bilangan - 1);
Console.WriteLine("nBilangan terurut : n");
for (int i = 0; i < jumlah_bilangan; i++)
{
Console.Write("{0} ", data[i]);
}
Console.ReadLine();
}
public static void devide(int[] data, int[] temp,
int awal, int akhir)
{
if (awal < akhir)
{
int mid = (akhir + awal) / 2;
devide(data, temp, awal, mid);
devide(data, temp, mid + 1, akhir);
combine(data, temp, awal, mid, akhir);
}
}
public static void combine(int[] data, int[]
temp, int awal, int mid, int akhir)
{
int kiri1 = awal;
int kanan1 = mid;
int kiri2 = mid + 1;
int kanan2 = akhir;
int i = awal;
while (kiri1 <= kanan1 && kiri2 <= kanan2)
{
if (data[kiri1] <= data[kiri2])
{
temp[i] = data[kiri1];
kiri1++;
}
else
{
temp[i] = data[kiri2];
kiri2++;
}
i++;
}
while (kiri1 <= kanan1)
{
temp[i] = data[kiri1];
kiri1++;
i++;
}
while (kiri2 <= kanan2)
{
temp[i] = data[kiri2];
i++;
kiri2++;
}
int j = awal;
while (j <= akhir)
{
data[j] = temp[j];
j++;
}
}
}
}
BAB 3
KESIMPULAN
Merge sort adalah sort yang dilakukan dengan teknik merge
(menggabungkan) dua buah array kedalam sebuah array yang baru. Algoritma
merge sort membagi tabel menjadi dua tabel yang sama besar. Masing-masing
tabel diurutkan secara rekursif, dan kemudian digabungkan kembali untuk
membentuk tabel yang terurut. Implementasi dasar dari algoritma merge sort
memakai tiga buah tabel, dua untuk menyimpan elemen dari tabel yang telah
di bagi dua dan satu untuk menyimpan elemen yang telah terurut. Namun
algoritma ini dapat juga dilakukan langsung pada dua tabel, sehingga
menghemat ruang atau memori yang dibutuhkan.
.
DAFTAR PUSTAKA
http://adeirmasuriany.blogspot.com/2013/05/analisis-algoritma-makalah-merge-
sort.html
http://elista.akprind.ac.id/upload/files/3828_BAB_06_PENGURUTAN_DATA-
SORTING.pdf
https://andikafisma.wordpress.com/algoritma-divide-and-conquer/
http://staff.uny.ac.id/sites/default/files/130681033/LAPORAN%20PENELITIAN%2
0RBT.pdf
http://elib.unikom.ac.id/files/disk1/534/jbptunikompp-gdl-mochhilama-26700-4-
bab1-bab5.pdf
http://digilib.its.ac.id/public/ITS-Undergraduate-20108-Chapter1-2366226.pdf
https://s3.amazonaws.com/0103.static.prezi.com/export/2014/12/06/54861e7f32f559
61/merge-sort-hcvlhynb5pkm.zip
http://totosuharto.wordpress.com/2008/06/24/belajar-pemrograman/
Saputra, Y.E.A. 2013. Buku Pintar Pemrograman C#.Yogyakarta: MediaKom

More Related Content

What's hot

MEMBANGUN APLIKASI PERPUSTAKAAN ONLINE BERBASIS DESKTOP DAN MOBILE ANDROID ST...
MEMBANGUN APLIKASI PERPUSTAKAAN ONLINE BERBASIS DESKTOP DAN MOBILE ANDROID ST...MEMBANGUN APLIKASI PERPUSTAKAAN ONLINE BERBASIS DESKTOP DAN MOBILE ANDROID ST...
MEMBANGUN APLIKASI PERPUSTAKAAN ONLINE BERBASIS DESKTOP DAN MOBILE ANDROID ST...Uofa_Unsada
 
Pertemuan 1 Data dan Struktur Data
Pertemuan 1 Data dan Struktur DataPertemuan 1 Data dan Struktur Data
Pertemuan 1 Data dan Struktur DataEndang Retnoningsih
 
PPT Jaringan Komputer
PPT Jaringan KomputerPPT Jaringan Komputer
PPT Jaringan KomputerFaksi
 
Makalah Kegunaan Matematika Diskrit pada Teknik Informatika
Makalah Kegunaan Matematika Diskrit pada Teknik InformatikaMakalah Kegunaan Matematika Diskrit pada Teknik Informatika
Makalah Kegunaan Matematika Diskrit pada Teknik Informatikasaid zulhelmi
 
Proposisi Logika Informatika
Proposisi Logika InformatikaProposisi Logika Informatika
Proposisi Logika InformatikaDeviGayatri
 
Sistem input output
Sistem input outputSistem input output
Sistem input outputKruduk Bisa
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)zachrison htg
 
Jurnal jaringan komputer
Jurnal jaringan komputerJurnal jaringan komputer
Jurnal jaringan komputerApink Iketeru
 
Materi Data Mining - C4.5
Materi Data Mining - C4.5Materi Data Mining - C4.5
Materi Data Mining - C4.5dedidarwis
 
presentasi sistem komputer.ppt
presentasi sistem komputer.pptpresentasi sistem komputer.ppt
presentasi sistem komputer.pptSandiMiho
 
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLLaporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLShofura Kamal
 
Array searching sorting_pert_11,12,13,14,15
Array searching sorting_pert_11,12,13,14,15Array searching sorting_pert_11,12,13,14,15
Array searching sorting_pert_11,12,13,14,15doudomblogspot
 
Pertemuan 9 Representasi Pengetahuan
Pertemuan 9 Representasi PengetahuanPertemuan 9 Representasi Pengetahuan
Pertemuan 9 Representasi PengetahuanEndang Retnoningsih
 
Mata Kuliah Basis Data
Mata Kuliah Basis DataMata Kuliah Basis Data
Mata Kuliah Basis DataMr. Nugraha
 

What's hot (20)

MEMBANGUN APLIKASI PERPUSTAKAAN ONLINE BERBASIS DESKTOP DAN MOBILE ANDROID ST...
MEMBANGUN APLIKASI PERPUSTAKAAN ONLINE BERBASIS DESKTOP DAN MOBILE ANDROID ST...MEMBANGUN APLIKASI PERPUSTAKAAN ONLINE BERBASIS DESKTOP DAN MOBILE ANDROID ST...
MEMBANGUN APLIKASI PERPUSTAKAAN ONLINE BERBASIS DESKTOP DAN MOBILE ANDROID ST...
 
Makalah array
Makalah arrayMakalah array
Makalah array
 
Pertemuan 1 Data dan Struktur Data
Pertemuan 1 Data dan Struktur DataPertemuan 1 Data dan Struktur Data
Pertemuan 1 Data dan Struktur Data
 
Algoritma brute force
Algoritma brute forceAlgoritma brute force
Algoritma brute force
 
Makalah shell sort
Makalah shell sortMakalah shell sort
Makalah shell sort
 
PPT Jaringan Komputer
PPT Jaringan KomputerPPT Jaringan Komputer
PPT Jaringan Komputer
 
Makalah Kegunaan Matematika Diskrit pada Teknik Informatika
Makalah Kegunaan Matematika Diskrit pada Teknik InformatikaMakalah Kegunaan Matematika Diskrit pada Teknik Informatika
Makalah Kegunaan Matematika Diskrit pada Teknik Informatika
 
Proposisi Logika Informatika
Proposisi Logika InformatikaProposisi Logika Informatika
Proposisi Logika Informatika
 
Sistem input output
Sistem input outputSistem input output
Sistem input output
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)
 
Jurnal jaringan komputer
Jurnal jaringan komputerJurnal jaringan komputer
Jurnal jaringan komputer
 
Materi Data Mining - C4.5
Materi Data Mining - C4.5Materi Data Mining - C4.5
Materi Data Mining - C4.5
 
presentasi sistem komputer.ppt
presentasi sistem komputer.pptpresentasi sistem komputer.ppt
presentasi sistem komputer.ppt
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLLaporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
 
Array searching sorting_pert_11,12,13,14,15
Array searching sorting_pert_11,12,13,14,15Array searching sorting_pert_11,12,13,14,15
Array searching sorting_pert_11,12,13,14,15
 
Algoritma Pemrograman - Variabel, Konstanta & Tipe Data
Algoritma Pemrograman - Variabel, Konstanta & Tipe DataAlgoritma Pemrograman - Variabel, Konstanta & Tipe Data
Algoritma Pemrograman - Variabel, Konstanta & Tipe Data
 
Pertemuan 9 Representasi Pengetahuan
Pertemuan 9 Representasi PengetahuanPertemuan 9 Representasi Pengetahuan
Pertemuan 9 Representasi Pengetahuan
 
Brainware
BrainwareBrainware
Brainware
 
Mata Kuliah Basis Data
Mata Kuliah Basis DataMata Kuliah Basis Data
Mata Kuliah Basis Data
 

Similar to MERGE SORT ALGORITMA

BERPIKIR KOMPUTESIONAL 3.ppt
BERPIKIR KOMPUTESIONAL 3.pptBERPIKIR KOMPUTESIONAL 3.ppt
BERPIKIR KOMPUTESIONAL 3.pptAgusPurwadi20
 
Makalah Algoritma DAA 1
Makalah Algoritma DAA 1Makalah Algoritma DAA 1
Makalah Algoritma DAA 1asep lufian
 
Micro teaching konsep logika algoritma
Micro teaching konsep logika algoritmaMicro teaching konsep logika algoritma
Micro teaching konsep logika algoritmaApriyanto_apo
 
Dasar pemrograman
Dasar pemrogramanDasar pemrograman
Dasar pemrogramanUNTUNGSG
 
BERPIKIR KOMPUTASIONAL.pptx
BERPIKIR KOMPUTASIONAL.pptxBERPIKIR KOMPUTASIONAL.pptx
BERPIKIR KOMPUTASIONAL.pptxSMAN8BandaAceh
 
Sejarah Algoritma
Sejarah Algoritma Sejarah Algoritma
Sejarah Algoritma casnadi
 
Pertemuan 1 - Algoritma - Tri Lux
Pertemuan 1 - Algoritma - Tri LuxPertemuan 1 - Algoritma - Tri Lux
Pertemuan 1 - Algoritma - Tri Luxtri lux
 
5 patricia penerapan kombinasi sistem aljabar gondran
5 patricia   penerapan kombinasi sistem aljabar gondran5 patricia   penerapan kombinasi sistem aljabar gondran
5 patricia penerapan kombinasi sistem aljabar gondrankomangteja
 
Analisis Algoritma - Strategi Algoritma Brute Force
Analisis Algoritma - Strategi Algoritma Brute ForceAnalisis Algoritma - Strategi Algoritma Brute Force
Analisis Algoritma - Strategi Algoritma Brute ForceAdam Mukharil Bachtiar
 
Buku struktur data Sorting
Buku struktur data SortingBuku struktur data Sorting
Buku struktur data SortingBintangWijaya5
 
Diktat kuliah Algoritma dan Pemograman
Diktat kuliah Algoritma dan PemogramanDiktat kuliah Algoritma dan Pemograman
Diktat kuliah Algoritma dan PemogramanPisca Prasetyo
 
Algoritma pemrograman
Algoritma pemrogramanAlgoritma pemrograman
Algoritma pemrogramanFebri Fazain
 
Paper Metode Sorting
Paper Metode SortingPaper Metode Sorting
Paper Metode SortingNurul Habibah
 
Desain dan analisis algoritma
Desain dan analisis algoritmaDesain dan analisis algoritma
Desain dan analisis algoritmaDiki Rosandy
 

Similar to MERGE SORT ALGORITMA (20)

BERPIKIR KOMPUTESIONAL 3.ppt
BERPIKIR KOMPUTESIONAL 3.pptBERPIKIR KOMPUTESIONAL 3.ppt
BERPIKIR KOMPUTESIONAL 3.ppt
 
Makalah Algoritma DAA 1
Makalah Algoritma DAA 1Makalah Algoritma DAA 1
Makalah Algoritma DAA 1
 
Micro teaching konsep logika algoritma
Micro teaching konsep logika algoritmaMicro teaching konsep logika algoritma
Micro teaching konsep logika algoritma
 
Sorting insert binary
Sorting insert binarySorting insert binary
Sorting insert binary
 
Tajuk 1 pengenalan
Tajuk 1 pengenalanTajuk 1 pengenalan
Tajuk 1 pengenalan
 
Analisis algoritma
Analisis algoritmaAnalisis algoritma
Analisis algoritma
 
Dasar pemrograman
Dasar pemrogramanDasar pemrograman
Dasar pemrograman
 
Program
ProgramProgram
Program
 
BERPIKIR KOMPUTASIONAL.pptx
BERPIKIR KOMPUTASIONAL.pptxBERPIKIR KOMPUTASIONAL.pptx
BERPIKIR KOMPUTASIONAL.pptx
 
Sejarah Algoritma
Sejarah Algoritma Sejarah Algoritma
Sejarah Algoritma
 
Pertemuan 1 - Algoritma - Tri Lux
Pertemuan 1 - Algoritma - Tri LuxPertemuan 1 - Algoritma - Tri Lux
Pertemuan 1 - Algoritma - Tri Lux
 
Siti rohmatul khoiriah
Siti rohmatul khoiriahSiti rohmatul khoiriah
Siti rohmatul khoiriah
 
5 patricia penerapan kombinasi sistem aljabar gondran
5 patricia   penerapan kombinasi sistem aljabar gondran5 patricia   penerapan kombinasi sistem aljabar gondran
5 patricia penerapan kombinasi sistem aljabar gondran
 
Analisis Algoritma - Strategi Algoritma Brute Force
Analisis Algoritma - Strategi Algoritma Brute ForceAnalisis Algoritma - Strategi Algoritma Brute Force
Analisis Algoritma - Strategi Algoritma Brute Force
 
Buku struktur data Sorting
Buku struktur data SortingBuku struktur data Sorting
Buku struktur data Sorting
 
Diktat kuliah Algoritma dan Pemograman
Diktat kuliah Algoritma dan PemogramanDiktat kuliah Algoritma dan Pemograman
Diktat kuliah Algoritma dan Pemograman
 
Bab i pendahuluan
Bab i pendahuluanBab i pendahuluan
Bab i pendahuluan
 
Algoritma pemrograman
Algoritma pemrogramanAlgoritma pemrograman
Algoritma pemrograman
 
Paper Metode Sorting
Paper Metode SortingPaper Metode Sorting
Paper Metode Sorting
 
Desain dan analisis algoritma
Desain dan analisis algoritmaDesain dan analisis algoritma
Desain dan analisis algoritma
 

Recently uploaded

Materi Bimbingan Manasik Haji Tarwiyah.pptx
Materi Bimbingan Manasik Haji Tarwiyah.pptxMateri Bimbingan Manasik Haji Tarwiyah.pptx
Materi Bimbingan Manasik Haji Tarwiyah.pptxc9fhbm7gzj
 
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024budimoko2
 
04-Gemelli.- kehamilan ganda- duo atau triplet
04-Gemelli.- kehamilan ganda- duo atau triplet04-Gemelli.- kehamilan ganda- duo atau triplet
04-Gemelli.- kehamilan ganda- duo atau tripletMelianaJayasaputra
 
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptxIPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptxErikaPuspita10
 
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxJurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxBambang440423
 
Aksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru PenggerakAksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru Penggeraksupriadi611
 
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdfShintaNovianti1
 
Karakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaKarakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaNadia Putri Ayu
 
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfAKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfTaqdirAlfiandi1
 
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...
PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...Kanaidi ken
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASKurniawan Dirham
 
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptxPrakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptxSyaimarChandra1
 
alat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptxalat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptxRioNahak1
 
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...Kanaidi ken
 
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdfHARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdfkustiyantidew94
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMmulyadia43
 
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxPPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxnerow98
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfCloverash1
 
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdfLAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdfChrodtianTian
 
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxPPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxalalfardilah
 

Recently uploaded (20)

Materi Bimbingan Manasik Haji Tarwiyah.pptx
Materi Bimbingan Manasik Haji Tarwiyah.pptxMateri Bimbingan Manasik Haji Tarwiyah.pptx
Materi Bimbingan Manasik Haji Tarwiyah.pptx
 
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
 
04-Gemelli.- kehamilan ganda- duo atau triplet
04-Gemelli.- kehamilan ganda- duo atau triplet04-Gemelli.- kehamilan ganda- duo atau triplet
04-Gemelli.- kehamilan ganda- duo atau triplet
 
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptxIPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
 
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxJurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
 
Aksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru PenggerakAksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru Penggerak
 
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
 
Karakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaKarakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional Dunia
 
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfAKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
 
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...
PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
 
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptxPrakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
 
alat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptxalat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptx
 
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
 
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdfHARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
 
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxPPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdf
 
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdfLAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
 
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxPPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
 

MERGE SORT ALGORITMA

  • 1. STRUKTUR DATA DAN ALGORITMA MERGE SORT Oleh : 1. Chusnul Khotimah (13030214002) 2. Hidayatul Ula (13030214006) 3. Novalia Rachmaniar Ningrum S (13030214021) JURUSAN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS NEGERI SURABAYA 2014
  • 2. KATA PENGANTAR Puji syukur kami penjatkan kehadirat Allah SWT, yang atas rahmat-Nya sehingga kami dapat menyelesaikan penyusunan makalah yang berjudul “Merge Sort”. Penulisan makalah ini merupakan salah satu tugas yang diberikan dalam mata kuliah Struktur Data dan Algoritma di Universitas Negeri Surabaya. Dalam Penulisan makalah ini kami merasa masih banyak kekurangan baik pada teknis penulisan maupun materi, mengingat akan kemampuan yang kami miliki. Untuk itu, kritik dan saran dari semua pihak sangat kami harapkan demi penyempurnaan pembuatan makalah ini. Dalam penulisan makalah ini penulis menyampaikan ucapan terima kasih yang sebesar-besarnya kepada pihak-pihak yang membantu dalam menyelesaikan makalah ini, khususnya kepada Dosen kami yang telah memberikan tugas dan petunjuk kepada kami, sehingga kami dapat menyelesaikan tugas ini. Surabaya, 12 Desember 2014 Penyusun
  • 3. BAB I PENDAHULUAN 1.1. Latar Belakang 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. Algoritma pengurutan data merge sort dilakukan dengan menggunakan cara divide and conquer yaitu dengan memecah kemudian menyelesaikan setiap bagian kemudian menggabungkannya kembali. Pertama data dipecah menjadi 2 bagian dimana bagian pertama merupakan setengah (jika data genap) atau setengah minus satu (jika data ganjil) dari seluruh data, kemudian dilakukan pemecahan kembali untuk masing-masing blok sampai hanya terdiri dari satu data tiap blok. Setelah itu digabungkan kembali dengan membandingkan pada blok yang sama apakah data pertama lebih besar daripada data ke-tengah+1, jika ya maka data ke-tengah+1 dipindah sebagai data pertama, kemudian data ke-pertama sampai ke- tengah digeser menjadi data ke-dua sampai ke-tengah+1, demikian seterusnya sampai menjadi satu blok utuh seperti awalnya. Sehingga metode merge sort merupakan metode yang membutuhkan fungsi rekursi untuk penyelesaiannya. 1. 2.Rumusan Masalah Bagaimana penjelasan tentang algoritma Merge Sort dan penerapannya? 1. 3. Tujuan Penulisan Memahami algoritma Merge Sort dan penerapannya
  • 4. BAB II PEMBAHASAN 2. 1. Algoritma Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal- Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma. “Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan
  • 5. algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik. Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya. Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat. 2. 1. 1. Algoritma Sorting Dalam Ilmu Komputer, Algoritma Sorting merupakan algoritma yang menempatkan elemen list pada urutan tertentu. Urutan yang paling sering digunakan ialah urutan numerikal dan urutan lexicographical. Sorting yang efisien sangat dibutuhkan untuk mengoptimisasi penggunaan dari algoritma lain seperti pencarian dan penggabungan yang membutuhkan list terurut untuk berjalan dengan sempurna, yang juga sering digunakan untuk Canonicalisisasi data dan menghasilkan output
  • 6. yang dapat dibaca manusia. Untuk lebih lanjutnya, output harus melengkapi dua syarat ini: 1. Output merupakan urutan yang tidak menurut (nondecreasing), setiap elemen tidak lebih kecil dari elemen sebelumnya menurut dari urutan keseluruhan yang diinginkan. 2. Output merupakan permutasi (pengurutan kembali) dari inputan yang diberikan. 2.1. 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 juga menggunakan prinsip divide and conquer. Merge sort membagi array menjadi dua secara terus menerus hingga hanya tersisa satu elemen pada sub- array yang terbentuk. Kemudian elemen-elemen tersebut di urutkan lalu di gabung secara terus menerus hingga terbentuk array dengan ukuran yang sama dengan array asal. Algoritma pengurutan data merge sort dilakukan dengan menggunakan cara divide and conquer. Sebuah algoritma divide and conquer (selanjutnya disebut dengan D&C) memiliki tiga langkah, yaitu: 1. Divide (Membagi): pada langkah ini kita memecahkan masalah atau data ke dalam bentuk yang sama, tetapi dalam ukuran yang lebih kecil. Pemecahan langkah biasanya dilakukan dengan menggunakan algoritma rekursif, sampai ukuran data menjadi sangat kecil dan dapat diselesaikan dengan algoritma sederhana. 2. Conquer (Menaklukkan): dalam langkah ini kita mencoba menyelesaikan masalah atau data yang telah dipecahkan pada langkah pertama, dengan menggunakan algoritma sederhana.
  • 7. 3. Combine (Menggabungkan): setelah menjalankan langkah conquer, tentunya kita harus menggabungkan kembali hasil dari masing-masing pecahan yang ada, untuk mendapatkan hasil akhir kalkulasi. Langkah combine mencoba mencapai hal tersebut. 2.1.1. Tahapan Merge Sort 2.2.2. Algoritma Merge Sort Secara konseptual, untuk sebuah array berukuran n, Merge Sort bekerja sebagai berikut: 1. Jika bernilai 0 atau 1, maka array sudah terurut. Sebaliknya:
  • 8. 2. Bagi array yang tidak terurut menjadi dua subarray, dimana bagian pertama merupakan setengah (jika data genap) atau setengah minus satu (jika data ganjil) dari seluruh data. 3. Urutkan setiap sub-array. Jika sub-array tidak cukup kecil, lakukan rekursif langkah 2 terhadap sub-array. 4. Menggabungkan dua sub-array kembali menjadi satu array yang terurut Pseudocode Merge Sort input : Array output : Array yang terurut algoritma : 1. if length(m) _ 1 then 2. return m 3. else 4. tengah = length(m) div 2 5. for x = m to tengah do 6. add x to kiri 7. end for 8. for x = m after tengah do 9. add x to kanan 10. end for 11. while length(kiri) > 0 and length(kanan) > 0 do 12. if first(kiri) _ first(kanan) then 13. Append first(kiri) to hasil 14. kiri = rest(kiri) 15. else 16. append first(kanan) to hasil 17. kanan = rest(kanan) 18. end if 19. end while 20. if length(kiri) > 0 then
  • 9. 21. append rest(kiri) to hasil 22. end if 23. if length(kanan) > 0 then 24. append rest(kanan) to hasil 25. end if 26. return hasi 2.2.3. Kompleksitas Merge Sort Merge sort memiliki kasus terburuk dan kasus rata-rata. Kasus terburuk adalah saat tiap 2 lemen dibandingkan selalu dilakukan pertukaran. Bila waktu yang diperlukan untuk melakukan merge sort adalah T(n) maka untuk saat rekursif waktu yang dihabiskan adalah T(n) = 2T(n/2) + n. T (n/2) adalah waktu yang diperlukan untuk merge setengah dari ukuran list, dan ditambah n sebagai langkah dari penggabungan list. Kompleksitas waktu terburuk dan rata-rata dari merge sort adalah O(n log n). Merge Sort akan selalu membagi dua tiap sub-arraynya, sehingga kompleksitas dari algoritma Merge Sort berlaku untuk semua kasus (Worst Case = Best Case = Average Case). 2.2.4. Implementasi Program Merge Sort using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace programmergesort { class Program { static void Main(string[] args) { int[] data; int[] temp; Console.WriteLine("PROGRAM MERGE SORT"); Console.WriteLine(" Oleh Kelompok 2 "); Console.WriteLine("-------------------"); Console.Write("masukan jumlah bilangan : "); int jumlah_bilangan = int.Parse(Console.ReadLine()); data = new int[jumlah_bilangan];
  • 10. temp = new int[jumlah_bilangan]; for (int i = 0; i < jumlah_bilangan; i++) { Console.Write("masukan bilangan ke-{0} = ", i + 1); data[i] = int.Parse(Console.ReadLine()); } //lakukan pemecahan devide(data, temp, 0, jumlah_bilangan - 1); Console.WriteLine("nBilangan terurut : n"); for (int i = 0; i < jumlah_bilangan; i++) { Console.Write("{0} ", data[i]); } Console.ReadLine(); } public static void devide(int[] data, int[] temp, int awal, int akhir) { if (awal < akhir) { int mid = (akhir + awal) / 2; devide(data, temp, awal, mid); devide(data, temp, mid + 1, akhir); combine(data, temp, awal, mid, akhir); } } public static void combine(int[] data, int[] temp, int awal, int mid, int akhir) { int kiri1 = awal; int kanan1 = mid; int kiri2 = mid + 1; int kanan2 = akhir; int i = awal; while (kiri1 <= kanan1 && kiri2 <= kanan2) { if (data[kiri1] <= data[kiri2]) { temp[i] = data[kiri1]; kiri1++;
  • 11. } else { temp[i] = data[kiri2]; kiri2++; } i++; } while (kiri1 <= kanan1) { temp[i] = data[kiri1]; kiri1++; i++; } while (kiri2 <= kanan2) { temp[i] = data[kiri2]; i++; kiri2++; } int j = awal; while (j <= akhir) { data[j] = temp[j]; j++; } } } }
  • 12. BAB 3 KESIMPULAN Merge sort adalah sort yang dilakukan dengan teknik merge (menggabungkan) dua buah array kedalam sebuah array yang baru. Algoritma merge sort membagi tabel menjadi dua tabel yang sama besar. Masing-masing tabel diurutkan secara rekursif, dan kemudian digabungkan kembali untuk membentuk tabel yang terurut. Implementasi dasar dari algoritma merge sort memakai tiga buah tabel, dua untuk menyimpan elemen dari tabel yang telah di bagi dua dan satu untuk menyimpan elemen yang telah terurut. Namun algoritma ini dapat juga dilakukan langsung pada dua tabel, sehingga menghemat ruang atau memori yang dibutuhkan. .