SlideShare a Scribd company logo
Pengurutan 
Merge 
Algoritma dan 
Struktur Data 
Georgius Rinaldo 
dodo@kuliahkita.com
Pendahuluan 
Merge sort adalah metode pengurutan yang dilakukan 
dengan memecah penampung elemen tepat menjadi 2 
sampai tersisa hanya menjadi 1 partisi, kemudian 
mengiterasi dengan membandingkan dan 
menggabungkan secara berulang.
Proses - Memecah 
6 5 3 1 8 7 2 4 
6 5 3 1 8 7 2 4 
6 5 3 1 8 7 2 4 
6 5 3 1 8 7 2 4
Proses - Membandingkan 
Bandingkan satu per satu elemen yang sudah dipecah 
6 5 3 1 8 7 2 4
Proses - Tukar 
Tukar posisi elemen jika posisi tidak benar. 
Jika posisi sudah benar, maka lewati dan lanjut ke elemen 
berikutnya 
5 6 3 1 8 7 2 4
Proses - Bandingkan Lagi 
Lanjutkan ke dua elemen berikutnya untuk dibandingkan 
5 6 3 1 8 7 2 4
Proses - Tukar Lagi 
Tukar kembali 
5 6 1 3 8 7 2 4
Proses - Iterasi Selesai 
Setelah selesai, gabungkan elemen-elemen yang telah 
terurut tadi sehingga membentuk tabel-tabel baru seperti 
di gambar berikut 
5 6 1 3 7 8 2 4 
5 6 1 3 7 8 2 4
Proses - Perbandingan Kembali 
Bandingkan: 
● elemen pertama pada tabel pertama dengan elemen pertama pada tabel kedua dan 
sebaliknya secara bergantian 
● bandingkan elemen terakhir yang belum dimasukkan ke tabel baru (5) dengan 
elemen lainya 
5 6 1 3 7 8 2 4 
1 3
Proses - Perbandingan Kembali 
Bandingkan: 
● Pada tabel kedua sudah habis 
● bandingkan elemen terakhir yang belum dimasukkan ke tabel baru (5) dengan 
elemen lainya (6) yang tersisa 
5 6 1 3 7 8 2 4 
1 3 5 6
Hasil Iterasi 
Tabel yang baru yang siap dibandingkan dengan proses 
yang sama 
5 6 1 3 7 8 2 4 
1 3 5 6 2 4 7 8
Perbandingan Tabel Baru 
Lakukan perbandingan seperti sebelumnya 
1 3 5 6 2 4 7 8 
1 2 3 4 5 6 7 8
Pseudocode dengan List 
function mergeSort(Input m: list) → list 
if length(m) ≤ 1 
→ m 
var list left, right, result 
var integer middle = length(m) / 2 
for each x in m up to middle 
begin 
add x to left 
end 
for each x in m after middle 
begin 
add x to right 
end 
left = mergeSort(left) 
right = mergeSort(right) 
result = merge(left, right) 
→ result 
function merge(Input: left list,Input right: list) → list 
list result 
while (length(left) > 0 or length(right) > 0) do 
begin 
if (length(left) > 0 and length(right) > 0) 
if first(left) ≤ first(right) 
append first(left) to result 
left = rest(left) 
else 
append first(right) to result 
right = rest(right) 
else if length(left) > 0 
append first(left) to result 
left = rest(left) 
else if length(right) > 0 
append first(right) to result 
right = rest(right) 
end 
→ result
Kode C++ 
template <class M> 
void myMerge( M arr[], int lb, int mid, int ub ) { 
int i, j; 
int size1 = mid - lb + 1; 
int size2 = ub - mid; 
M* tmpArray1 = new M[size1]; 
M* tmpArray2 = new M[size2]; 
for( i=0; i<size1; i++ ) { 
tmpArray1[i] = arr[lb + i]; 
} 
for( j=0; j<size2; j++ ) { 
tmpArray2[j] = arr[mid + 1 + j]; 
} 
i = 0; j = i; 
… // lanjut ke slide berikutnya
Kode C++ - lanjutan 
for( int k=lb; k<=ub; k++ ) { 
if (i == size1) { // Kalau range array pertama lebih kecil 
arr[k] = tmpArray2[j]; 
j++; 
} else if (j == size2) { // Kalau range array kedua lebih kecil 
arr[k] = tmpArray1[i]; 
i++; 
} else if ( tmpArray1[i] < tmpArray2[j] ) { 
arr[k] = tmpArray1[i]; 
i++; 
} else { 
arr[k] = tmpArray2[j]; 
j++; 
} 
} 
delete[] tmpArray1; // 
delete[] tmpArray2; // Bersihkan alokasi arraynya 
}
Kode C++ - lanjutan 2 
void mergeSort( int arr[], int lb, int ub ) { 
if (ub - lb > 1) { 
int mid = (lb + ub) / 2; 
mergeSort(arr, lb, mid); 
mergeSort(arr, mid + 1, ub); 
myMerge(arr, lb, mid, ub); 
} else { 
if (arr[ub] < arr[lb]) { 
int tmp = arr[ub]; 
arr[ub] = arr[lb]; 
arr[lb] = tmp; 
} 
} 
} 
// ==================== akhir dari prosedur ====================
Kode C++ - lanjutan 3 (main) 
#include <iostream> 
using namespace std; 
int main() { 
int numbers[] = { 8, 40, 1, 5, 0, 9, 6, 4, 3, -1, 5 }; 
mergeSort(numbers, 0, 10); 
for (int i=0; i<10; i++) { 
cout << numbers[i]; 
cout << “ | “; 
} 
}
Kompleksitas 
Worst Case O(n log n) 
Best Case O(n) 
Average Case O(n log n)

More Related Content

What's hot

Buku struktur data Sorting
Buku struktur data SortingBuku struktur data Sorting
Buku struktur data Sorting
BintangWijaya5
 
Matematika diskrit Aplikasi Graf / Graf
Matematika diskrit  Aplikasi Graf / GrafMatematika diskrit  Aplikasi Graf / Graf
Matematika diskrit Aplikasi Graf / Graf
Siti Khotijah
 
Makalah Algoritma kruskal
Makalah Algoritma kruskalMakalah Algoritma kruskal
Makalah Algoritma kruskal
zaenal mustofa
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorial
Siti Khotijah
 
Java (Netbeans) - Looping - Object Oriented Programming
Java (Netbeans) - Looping - Object Oriented ProgrammingJava (Netbeans) - Looping - Object Oriented Programming
Java (Netbeans) - Looping - Object Oriented ProgrammingMelina Krisnawati
 
7 Metode Pencarian Data Array
7 Metode Pencarian Data Array7 Metode Pencarian Data Array
7 Metode Pencarian Data Array
Simon Patabang
 
Intermediate code kode antara
Intermediate code   kode antaraIntermediate code   kode antara
Intermediate code kode antara
Gunawan Manalu
 
Matematika Diskrit - 09 graf - 05
Matematika Diskrit - 09 graf - 05Matematika Diskrit - 09 graf - 05
Matematika Diskrit - 09 graf - 05
KuliahKita
 
6 Materi Kuliah Normalisasi Tabel Database
6 Materi Kuliah Normalisasi Tabel Database6 Materi Kuliah Normalisasi Tabel Database
6 Materi Kuliah Normalisasi Tabel Database
Simon Patabang
 
Analisis Leksikal - P4
Analisis Leksikal - P4Analisis Leksikal - P4
Analisis Leksikal - P4
ahmad haidaroh
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
Siti Khotijah
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomata
Banta Cut
 
Testing&implementasi 4
Testing&implementasi 4Testing&implementasi 4
Testing&implementasi 4
aiiniR
 
6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data
Simon Patabang
 
Sistem berkas dan keamana data
Sistem berkas dan keamana dataSistem berkas dan keamana data
Sistem berkas dan keamana data
David Rigan
 
Teori graph rinaldi munir
Teori graph   rinaldi munirTeori graph   rinaldi munir
Teori graph rinaldi munir
esa_esa
 
Laporan Basis Data (DDL)
Laporan Basis Data (DDL)Laporan Basis Data (DDL)
Laporan Basis Data (DDL)
dhini eka
 

What's hot (20)

Buku struktur data Sorting
Buku struktur data SortingBuku struktur data Sorting
Buku struktur data Sorting
 
Matematika diskrit Aplikasi Graf / Graf
Matematika diskrit  Aplikasi Graf / GrafMatematika diskrit  Aplikasi Graf / Graf
Matematika diskrit Aplikasi Graf / Graf
 
Makalah Algoritma kruskal
Makalah Algoritma kruskalMakalah Algoritma kruskal
Makalah Algoritma kruskal
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorial
 
Java (Netbeans) - Looping - Object Oriented Programming
Java (Netbeans) - Looping - Object Oriented ProgrammingJava (Netbeans) - Looping - Object Oriented Programming
Java (Netbeans) - Looping - Object Oriented Programming
 
7 Metode Pencarian Data Array
7 Metode Pencarian Data Array7 Metode Pencarian Data Array
7 Metode Pencarian Data Array
 
Intermediate code kode antara
Intermediate code   kode antaraIntermediate code   kode antara
Intermediate code kode antara
 
Matematika Diskrit - 09 graf - 05
Matematika Diskrit - 09 graf - 05Matematika Diskrit - 09 graf - 05
Matematika Diskrit - 09 graf - 05
 
6 Materi Kuliah Normalisasi Tabel Database
6 Materi Kuliah Normalisasi Tabel Database6 Materi Kuliah Normalisasi Tabel Database
6 Materi Kuliah Normalisasi Tabel Database
 
Analisis Leksikal - P4
Analisis Leksikal - P4Analisis Leksikal - P4
Analisis Leksikal - P4
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
 
Jaringan hebb
Jaringan hebbJaringan hebb
Jaringan hebb
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomata
 
Testing&implementasi 4
Testing&implementasi 4Testing&implementasi 4
Testing&implementasi 4
 
6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data
 
Sistem berkas dan keamana data
Sistem berkas dan keamana dataSistem berkas dan keamana data
Sistem berkas dan keamana data
 
Sorting ppt
Sorting ppt Sorting ppt
Sorting ppt
 
Teori graph rinaldi munir
Teori graph   rinaldi munirTeori graph   rinaldi munir
Teori graph rinaldi munir
 
Laporan Basis Data (DDL)
Laporan Basis Data (DDL)Laporan Basis Data (DDL)
Laporan Basis Data (DDL)
 
pemetaan erd
pemetaan erdpemetaan erd
pemetaan erd
 

Similar to Algoritma dan Struktur Data - Merge Sort

Algoritma dna Struktur Data - Pengurutan Merge
Algoritma dna Struktur Data - Pengurutan MergeAlgoritma dna Struktur Data - Pengurutan Merge
Algoritma dna Struktur Data - Pengurutan Merge
Georgius Rinaldo
 
Tugas selamat riady algoritma
Tugas selamat riady algoritmaTugas selamat riady algoritma
Tugas selamat riady algoritma
Selamatriady
 
Menyelesaikan sistem persamaan linear dengan operasi baris elementer
Menyelesaikan sistem persamaan linear dengan operasi baris elementerMenyelesaikan sistem persamaan linear dengan operasi baris elementer
Menyelesaikan sistem persamaan linear dengan operasi baris elementer
Ana Sugiyarti
 
Algoritma dan Struktur Data - Insertion Sort
Algoritma dan Struktur Data - Insertion SortAlgoritma dan Struktur Data - Insertion Sort
Algoritma dan Struktur Data - Insertion Sort
KuliahKita
 
Algoritma dan Struktur Data - pengurutan insertion
Algoritma dan Struktur Data - pengurutan insertionAlgoritma dan Struktur Data - pengurutan insertion
Algoritma dan Struktur Data - pengurutan insertion
Georgius Rinaldo
 
kiki andriani , 5 metode sorting
kiki andriani , 5 metode sortingkiki andriani , 5 metode sorting
kiki andriani , 5 metode sorting
kiki andriani
 
Calculus 2 pertemuan 4
Calculus 2 pertemuan 4Calculus 2 pertemuan 4
Calculus 2 pertemuan 4
Amalia Indrawati Gunawan
 
Makalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleksMakalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleks
Nila Aulia
 
Analisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingAnalisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingDea Rokhmatun Iradewa
 
tugas algoritma
tugas algoritmatugas algoritma
tugas algoritma
SITI MUTIAH NURMALA DEWI
 
ratna mustika sari
ratna mustika sariratna mustika sari
ratna mustika sari
ratna mustika sari
 
Algoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection SortAlgoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection Sort
KuliahKita
 
Algoritma Divide and Conquer (Sorting & Searching)
Algoritma Divide and Conquer (Sorting & Searching)Algoritma Divide and Conquer (Sorting & Searching)
Algoritma Divide and Conquer (Sorting & Searching)
Ajeng Savitri
 
Algoritma dan Struktur Data - pengurutan selection
Algoritma dan Struktur Data - pengurutan selectionAlgoritma dan Struktur Data - pengurutan selection
Algoritma dan Struktur Data - pengurutan selection
Georgius Rinaldo
 
Bab 2 sorting array (1)
Bab 2 sorting array (1)Bab 2 sorting array (1)
Bab 2 sorting array (1)
Fahuda E
 
Risetoperasi 3-linear-programming-metode-simplex
Risetoperasi 3-linear-programming-metode-simplexRisetoperasi 3-linear-programming-metode-simplex
Risetoperasi 3-linear-programming-metode-simplex
Koran Bekas
 

Similar to Algoritma dan Struktur Data - Merge Sort (20)

Algoritma dna Struktur Data - Pengurutan Merge
Algoritma dna Struktur Data - Pengurutan MergeAlgoritma dna Struktur Data - Pengurutan Merge
Algoritma dna Struktur Data - Pengurutan Merge
 
Tugas selamat riady algoritma
Tugas selamat riady algoritmaTugas selamat riady algoritma
Tugas selamat riady algoritma
 
Menyelesaikan sistem persamaan linear dengan operasi baris elementer
Menyelesaikan sistem persamaan linear dengan operasi baris elementerMenyelesaikan sistem persamaan linear dengan operasi baris elementer
Menyelesaikan sistem persamaan linear dengan operasi baris elementer
 
Algoritma dan Struktur Data - Insertion Sort
Algoritma dan Struktur Data - Insertion SortAlgoritma dan Struktur Data - Insertion Sort
Algoritma dan Struktur Data - Insertion Sort
 
Algoritma dan Struktur Data - pengurutan insertion
Algoritma dan Struktur Data - pengurutan insertionAlgoritma dan Struktur Data - pengurutan insertion
Algoritma dan Struktur Data - pengurutan insertion
 
kiki andriani , 5 metode sorting
kiki andriani , 5 metode sortingkiki andriani , 5 metode sorting
kiki andriani , 5 metode sorting
 
Calculus 2 pertemuan 4
Calculus 2 pertemuan 4Calculus 2 pertemuan 4
Calculus 2 pertemuan 4
 
Pengurutan (Sorting)
Pengurutan (Sorting)Pengurutan (Sorting)
Pengurutan (Sorting)
 
Makalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleksMakalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleks
 
Analisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingAnalisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah Sorting
 
207 p10
207 p10207 p10
207 p10
 
Jeni Intro2 Bab06 Algoritma Sorting
Jeni Intro2 Bab06 Algoritma SortingJeni Intro2 Bab06 Algoritma Sorting
Jeni Intro2 Bab06 Algoritma Sorting
 
tugas algoritma
tugas algoritmatugas algoritma
tugas algoritma
 
ratna mustika sari
ratna mustika sariratna mustika sari
ratna mustika sari
 
Pengurutan (sorting )
Pengurutan (sorting )Pengurutan (sorting )
Pengurutan (sorting )
 
Algoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection SortAlgoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection Sort
 
Algoritma Divide and Conquer (Sorting & Searching)
Algoritma Divide and Conquer (Sorting & Searching)Algoritma Divide and Conquer (Sorting & Searching)
Algoritma Divide and Conquer (Sorting & Searching)
 
Algoritma dan Struktur Data - pengurutan selection
Algoritma dan Struktur Data - pengurutan selectionAlgoritma dan Struktur Data - pengurutan selection
Algoritma dan Struktur Data - pengurutan selection
 
Bab 2 sorting array (1)
Bab 2 sorting array (1)Bab 2 sorting array (1)
Bab 2 sorting array (1)
 
Risetoperasi 3-linear-programming-metode-simplex
Risetoperasi 3-linear-programming-metode-simplexRisetoperasi 3-linear-programming-metode-simplex
Risetoperasi 3-linear-programming-metode-simplex
 

More from KuliahKita

CSS Eksperimen - 05-2 Popup Menu
CSS Eksperimen - 05-2 Popup MenuCSS Eksperimen - 05-2 Popup Menu
CSS Eksperimen - 05-2 Popup Menu
KuliahKita
 
CSS Eksperimen - 05-1 Popup Konfirmasi
CSS Eksperimen - 05-1 Popup KonfirmasiCSS Eksperimen - 05-1 Popup Konfirmasi
CSS Eksperimen - 05-1 Popup Konfirmasi
KuliahKita
 
CSS Eksperimen - 04-4 Elemen Sliding Door
CSS Eksperimen - 04-4 Elemen Sliding DoorCSS Eksperimen - 04-4 Elemen Sliding Door
CSS Eksperimen - 04-4 Elemen Sliding Door
KuliahKita
 
CSS Eksperimen - 04-3 Elemen Card Flip
CSS Eksperimen - 04-3 Elemen Card FlipCSS Eksperimen - 04-3 Elemen Card Flip
CSS Eksperimen - 04-3 Elemen Card Flip
KuliahKita
 
CSS Eksperimen - 04-2 accordion
CSS Eksperimen - 04-2 accordionCSS Eksperimen - 04-2 accordion
CSS Eksperimen - 04-2 accordion
KuliahKita
 
CSS Eksperimen - 04-1 informasi tab
CSS Eksperimen - 04-1 informasi tabCSS Eksperimen - 04-1 informasi tab
CSS Eksperimen - 04-1 informasi tab
KuliahKita
 
CSS Eksperimen - 03-3 Slide Side Menu
CSS Eksperimen - 03-3 Slide Side MenuCSS Eksperimen - 03-3 Slide Side Menu
CSS Eksperimen - 03-3 Slide Side Menu
KuliahKita
 
CSS Eksperimen - 03-2 Breadcrumb
CSS Eksperimen - 03-2 BreadcrumbCSS Eksperimen - 03-2 Breadcrumb
CSS Eksperimen - 03-2 Breadcrumb
KuliahKita
 
CSS Eksperimen - 03-1 navigasi dasar
CSS Eksperimen - 03-1 navigasi dasarCSS Eksperimen - 03-1 navigasi dasar
CSS Eksperimen - 03-1 navigasi dasar
KuliahKita
 
CSS Eksperimen - 02-2 Flexbox Grid
CSS Eksperimen - 02-2 Flexbox GridCSS Eksperimen - 02-2 Flexbox Grid
CSS Eksperimen - 02-2 Flexbox Grid
KuliahKita
 
Eksperimen CSS - 02-1 grid layout
Eksperimen CSS - 02-1 grid layoutEksperimen CSS - 02-1 grid layout
Eksperimen CSS - 02-1 grid layout
KuliahKita
 
Eksperimen CSS - 01 Pendahuluan
Eksperimen CSS - 01 PendahuluanEksperimen CSS - 01 Pendahuluan
Eksperimen CSS - 01 Pendahuluan
KuliahKita
 
07 equity research (bagian 2)
07 equity research (bagian 2)07 equity research (bagian 2)
07 equity research (bagian 2)
KuliahKita
 
Pasar Saham - 32 Discounted Cash Flow (DCF)
Pasar Saham - 32 Discounted Cash Flow (DCF)Pasar Saham - 32 Discounted Cash Flow (DCF)
Pasar Saham - 32 Discounted Cash Flow (DCF)
KuliahKita
 
Pasar Saham - Equity Research (bagian 1)
Pasar Saham - Equity Research (bagian 1)Pasar Saham - Equity Research (bagian 1)
Pasar Saham - Equity Research (bagian 1)
KuliahKita
 
Pasar Saham - 30 Investment Due Dilligence
Pasar Saham - 30 Investment Due DilligencePasar Saham - 30 Investment Due Dilligence
Pasar Saham - 30 Investment Due Dilligence
KuliahKita
 
Pasar Saham - 29 Financial Ratio 03
Pasar Saham - 29 Financial Ratio 03Pasar Saham - 29 Financial Ratio 03
Pasar Saham - 29 Financial Ratio 03
KuliahKita
 
Pasar Saham - 28 Financial Ratio 02
Pasar Saham - 28 Financial Ratio 02Pasar Saham - 28 Financial Ratio 02
Pasar Saham - 28 Financial Ratio 02
KuliahKita
 
Pasar Saham -27 financial ratio 01
Pasar Saham -27 financial ratio  01Pasar Saham -27 financial ratio  01
Pasar Saham -27 financial ratio 01
KuliahKita
 
Pasar Saham - 26 Cash Flow Statement
Pasar Saham - 26 Cash Flow StatementPasar Saham - 26 Cash Flow Statement
Pasar Saham - 26 Cash Flow Statement
KuliahKita
 

More from KuliahKita (20)

CSS Eksperimen - 05-2 Popup Menu
CSS Eksperimen - 05-2 Popup MenuCSS Eksperimen - 05-2 Popup Menu
CSS Eksperimen - 05-2 Popup Menu
 
CSS Eksperimen - 05-1 Popup Konfirmasi
CSS Eksperimen - 05-1 Popup KonfirmasiCSS Eksperimen - 05-1 Popup Konfirmasi
CSS Eksperimen - 05-1 Popup Konfirmasi
 
CSS Eksperimen - 04-4 Elemen Sliding Door
CSS Eksperimen - 04-4 Elemen Sliding DoorCSS Eksperimen - 04-4 Elemen Sliding Door
CSS Eksperimen - 04-4 Elemen Sliding Door
 
CSS Eksperimen - 04-3 Elemen Card Flip
CSS Eksperimen - 04-3 Elemen Card FlipCSS Eksperimen - 04-3 Elemen Card Flip
CSS Eksperimen - 04-3 Elemen Card Flip
 
CSS Eksperimen - 04-2 accordion
CSS Eksperimen - 04-2 accordionCSS Eksperimen - 04-2 accordion
CSS Eksperimen - 04-2 accordion
 
CSS Eksperimen - 04-1 informasi tab
CSS Eksperimen - 04-1 informasi tabCSS Eksperimen - 04-1 informasi tab
CSS Eksperimen - 04-1 informasi tab
 
CSS Eksperimen - 03-3 Slide Side Menu
CSS Eksperimen - 03-3 Slide Side MenuCSS Eksperimen - 03-3 Slide Side Menu
CSS Eksperimen - 03-3 Slide Side Menu
 
CSS Eksperimen - 03-2 Breadcrumb
CSS Eksperimen - 03-2 BreadcrumbCSS Eksperimen - 03-2 Breadcrumb
CSS Eksperimen - 03-2 Breadcrumb
 
CSS Eksperimen - 03-1 navigasi dasar
CSS Eksperimen - 03-1 navigasi dasarCSS Eksperimen - 03-1 navigasi dasar
CSS Eksperimen - 03-1 navigasi dasar
 
CSS Eksperimen - 02-2 Flexbox Grid
CSS Eksperimen - 02-2 Flexbox GridCSS Eksperimen - 02-2 Flexbox Grid
CSS Eksperimen - 02-2 Flexbox Grid
 
Eksperimen CSS - 02-1 grid layout
Eksperimen CSS - 02-1 grid layoutEksperimen CSS - 02-1 grid layout
Eksperimen CSS - 02-1 grid layout
 
Eksperimen CSS - 01 Pendahuluan
Eksperimen CSS - 01 PendahuluanEksperimen CSS - 01 Pendahuluan
Eksperimen CSS - 01 Pendahuluan
 
07 equity research (bagian 2)
07 equity research (bagian 2)07 equity research (bagian 2)
07 equity research (bagian 2)
 
Pasar Saham - 32 Discounted Cash Flow (DCF)
Pasar Saham - 32 Discounted Cash Flow (DCF)Pasar Saham - 32 Discounted Cash Flow (DCF)
Pasar Saham - 32 Discounted Cash Flow (DCF)
 
Pasar Saham - Equity Research (bagian 1)
Pasar Saham - Equity Research (bagian 1)Pasar Saham - Equity Research (bagian 1)
Pasar Saham - Equity Research (bagian 1)
 
Pasar Saham - 30 Investment Due Dilligence
Pasar Saham - 30 Investment Due DilligencePasar Saham - 30 Investment Due Dilligence
Pasar Saham - 30 Investment Due Dilligence
 
Pasar Saham - 29 Financial Ratio 03
Pasar Saham - 29 Financial Ratio 03Pasar Saham - 29 Financial Ratio 03
Pasar Saham - 29 Financial Ratio 03
 
Pasar Saham - 28 Financial Ratio 02
Pasar Saham - 28 Financial Ratio 02Pasar Saham - 28 Financial Ratio 02
Pasar Saham - 28 Financial Ratio 02
 
Pasar Saham -27 financial ratio 01
Pasar Saham -27 financial ratio  01Pasar Saham -27 financial ratio  01
Pasar Saham -27 financial ratio 01
 
Pasar Saham - 26 Cash Flow Statement
Pasar Saham - 26 Cash Flow StatementPasar Saham - 26 Cash Flow Statement
Pasar Saham - 26 Cash Flow Statement
 

Recently uploaded

SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASASURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
AnandhaAdkhaM1
 
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptxRANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
muhammadiswahyudi12
 
Studi Kasus Pantai Kelan Provinsi Bali.pdf
Studi Kasus Pantai Kelan Provinsi Bali.pdfStudi Kasus Pantai Kelan Provinsi Bali.pdf
Studi Kasus Pantai Kelan Provinsi Bali.pdf
novia73231
 
Tugas 01 Penjelasan Cara Melakukan Gasifikasi.pdf
Tugas 01 Penjelasan Cara Melakukan Gasifikasi.pdfTugas 01 Penjelasan Cara Melakukan Gasifikasi.pdf
Tugas 01 Penjelasan Cara Melakukan Gasifikasi.pdf
nimrodnapitu
 
Matematika diskrit: metode pohon/trees.ppt
Matematika diskrit: metode pohon/trees.pptMatematika diskrit: metode pohon/trees.ppt
Matematika diskrit: metode pohon/trees.ppt
AzrilAld
 
Daftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdfDaftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdf
Tsabitpattipeilohy
 
COOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong dCOOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong d
delphijean1
 
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdfTUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
jayakartalumajang1
 

Recently uploaded (8)

SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASASURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
 
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptxRANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
 
Studi Kasus Pantai Kelan Provinsi Bali.pdf
Studi Kasus Pantai Kelan Provinsi Bali.pdfStudi Kasus Pantai Kelan Provinsi Bali.pdf
Studi Kasus Pantai Kelan Provinsi Bali.pdf
 
Tugas 01 Penjelasan Cara Melakukan Gasifikasi.pdf
Tugas 01 Penjelasan Cara Melakukan Gasifikasi.pdfTugas 01 Penjelasan Cara Melakukan Gasifikasi.pdf
Tugas 01 Penjelasan Cara Melakukan Gasifikasi.pdf
 
Matematika diskrit: metode pohon/trees.ppt
Matematika diskrit: metode pohon/trees.pptMatematika diskrit: metode pohon/trees.ppt
Matematika diskrit: metode pohon/trees.ppt
 
Daftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdfDaftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdf
 
COOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong dCOOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong d
 
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdfTUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
 

Algoritma dan Struktur Data - Merge Sort

  • 1. Pengurutan Merge Algoritma dan Struktur Data Georgius Rinaldo dodo@kuliahkita.com
  • 2. Pendahuluan Merge sort adalah metode pengurutan yang dilakukan dengan memecah penampung elemen tepat menjadi 2 sampai tersisa hanya menjadi 1 partisi, kemudian mengiterasi dengan membandingkan dan menggabungkan secara berulang.
  • 3. Proses - Memecah 6 5 3 1 8 7 2 4 6 5 3 1 8 7 2 4 6 5 3 1 8 7 2 4 6 5 3 1 8 7 2 4
  • 4. Proses - Membandingkan Bandingkan satu per satu elemen yang sudah dipecah 6 5 3 1 8 7 2 4
  • 5. Proses - Tukar Tukar posisi elemen jika posisi tidak benar. Jika posisi sudah benar, maka lewati dan lanjut ke elemen berikutnya 5 6 3 1 8 7 2 4
  • 6. Proses - Bandingkan Lagi Lanjutkan ke dua elemen berikutnya untuk dibandingkan 5 6 3 1 8 7 2 4
  • 7. Proses - Tukar Lagi Tukar kembali 5 6 1 3 8 7 2 4
  • 8. Proses - Iterasi Selesai Setelah selesai, gabungkan elemen-elemen yang telah terurut tadi sehingga membentuk tabel-tabel baru seperti di gambar berikut 5 6 1 3 7 8 2 4 5 6 1 3 7 8 2 4
  • 9. Proses - Perbandingan Kembali Bandingkan: ● elemen pertama pada tabel pertama dengan elemen pertama pada tabel kedua dan sebaliknya secara bergantian ● bandingkan elemen terakhir yang belum dimasukkan ke tabel baru (5) dengan elemen lainya 5 6 1 3 7 8 2 4 1 3
  • 10. Proses - Perbandingan Kembali Bandingkan: ● Pada tabel kedua sudah habis ● bandingkan elemen terakhir yang belum dimasukkan ke tabel baru (5) dengan elemen lainya (6) yang tersisa 5 6 1 3 7 8 2 4 1 3 5 6
  • 11. Hasil Iterasi Tabel yang baru yang siap dibandingkan dengan proses yang sama 5 6 1 3 7 8 2 4 1 3 5 6 2 4 7 8
  • 12. Perbandingan Tabel Baru Lakukan perbandingan seperti sebelumnya 1 3 5 6 2 4 7 8 1 2 3 4 5 6 7 8
  • 13. Pseudocode dengan List function mergeSort(Input m: list) → list if length(m) ≤ 1 → m var list left, right, result var integer middle = length(m) / 2 for each x in m up to middle begin add x to left end for each x in m after middle begin add x to right end left = mergeSort(left) right = mergeSort(right) result = merge(left, right) → result function merge(Input: left list,Input right: list) → list list result while (length(left) > 0 or length(right) > 0) do begin if (length(left) > 0 and length(right) > 0) if first(left) ≤ first(right) append first(left) to result left = rest(left) else append first(right) to result right = rest(right) else if length(left) > 0 append first(left) to result left = rest(left) else if length(right) > 0 append first(right) to result right = rest(right) end → result
  • 14. Kode C++ template <class M> void myMerge( M arr[], int lb, int mid, int ub ) { int i, j; int size1 = mid - lb + 1; int size2 = ub - mid; M* tmpArray1 = new M[size1]; M* tmpArray2 = new M[size2]; for( i=0; i<size1; i++ ) { tmpArray1[i] = arr[lb + i]; } for( j=0; j<size2; j++ ) { tmpArray2[j] = arr[mid + 1 + j]; } i = 0; j = i; … // lanjut ke slide berikutnya
  • 15. Kode C++ - lanjutan for( int k=lb; k<=ub; k++ ) { if (i == size1) { // Kalau range array pertama lebih kecil arr[k] = tmpArray2[j]; j++; } else if (j == size2) { // Kalau range array kedua lebih kecil arr[k] = tmpArray1[i]; i++; } else if ( tmpArray1[i] < tmpArray2[j] ) { arr[k] = tmpArray1[i]; i++; } else { arr[k] = tmpArray2[j]; j++; } } delete[] tmpArray1; // delete[] tmpArray2; // Bersihkan alokasi arraynya }
  • 16. Kode C++ - lanjutan 2 void mergeSort( int arr[], int lb, int ub ) { if (ub - lb > 1) { int mid = (lb + ub) / 2; mergeSort(arr, lb, mid); mergeSort(arr, mid + 1, ub); myMerge(arr, lb, mid, ub); } else { if (arr[ub] < arr[lb]) { int tmp = arr[ub]; arr[ub] = arr[lb]; arr[lb] = tmp; } } } // ==================== akhir dari prosedur ====================
  • 17. Kode C++ - lanjutan 3 (main) #include <iostream> using namespace std; int main() { int numbers[] = { 8, 40, 1, 5, 0, 9, 6, 4, 3, -1, 5 }; mergeSort(numbers, 0, 10); for (int i=0; i<10; i++) { cout << numbers[i]; cout << “ | “; } }
  • 18. Kompleksitas Worst Case O(n log n) Best Case O(n) Average Case O(n log n)