SlideShare a Scribd company logo
Pengurutan 
Merge 
Algoritma dan 
Struktur Data 
Kuliahkita - Edwin Lunando
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

Eliminasi gauss
Eliminasi gaussEliminasi gauss
Eliminasi gauss
agung8463
 
Matriks
MatriksMatriks
Matriks
MatriksMatriks
Matriks
putrisagut
 
Pertemuan 11 Tehnik Searching
Pertemuan 11 Tehnik SearchingPertemuan 11 Tehnik Searching
Pertemuan 11 Tehnik Searching
Endang Retnoningsih
 
Pertemuan 10 Tehnik Sorting
Pertemuan 10  Tehnik SortingPertemuan 10  Tehnik Sorting
Pertemuan 10 Tehnik Sorting
Endang Retnoningsih
 
Pengurutan (Sorting)
Pengurutan (Sorting)Pengurutan (Sorting)
Pengurutan (Sorting)
Materi Kuliah Online
 
Pegidiyaartika 1830206108 penjumblahan dan pengurangan dua bilangan bulat
Pegidiyaartika 1830206108 penjumblahan dan pengurangan dua bilangan bulatPegidiyaartika 1830206108 penjumblahan dan pengurangan dua bilangan bulat
Pegidiyaartika 1830206108 penjumblahan dan pengurangan dua bilangan bulat
Islamic State University of Raden Fatah Palembang
 
2 array n-matriks
2 array n-matriks2 array n-matriks
2 array n-matriks
Wandi Parlente
 
Algoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection SortAlgoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection Sort
KuliahKita
 
Presentasi Logika informatika
Presentasi Logika informatikaPresentasi Logika informatika
Presentasi Logika informatika
AndreFirmansyah14
 
Tugas UAS Logika Informatika
Tugas UAS Logika InformatikaTugas UAS Logika Informatika
Tugas UAS Logika Informatika
aldi487682
 
Matriks SMA Kelas 10
Matriks SMA Kelas 10Matriks SMA Kelas 10
Matriks SMA Kelas 10
Amalia Nurfalah
 
Ppt klmpk 6 alj liner
Ppt klmpk 6 alj linerPpt klmpk 6 alj liner
Ppt klmpk 6 alj liner
Fela Aziiza
 
Riskaty miftahul jannah (1730206093) p pt materi matriks
Riskaty miftahul jannah (1730206093) p pt materi matriksRiskaty miftahul jannah (1730206093) p pt materi matriks
Riskaty miftahul jannah (1730206093) p pt materi matriks
riskaty__13
 
6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data
Simon Patabang
 
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanMateri sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Reskidtc
 
ALJABAR LINEAR ELIMINASI GAUSSIAN
ALJABAR LINEAR ELIMINASI GAUSSIANALJABAR LINEAR ELIMINASI GAUSSIAN
ALJABAR LINEAR ELIMINASI GAUSSIAN
Fela Aziiza
 

What's hot (19)

Eliminasi gauss
Eliminasi gaussEliminasi gauss
Eliminasi gauss
 
Matriks
MatriksMatriks
Matriks
 
Matriks
MatriksMatriks
Matriks
 
Pertemuan 11 Tehnik Searching
Pertemuan 11 Tehnik SearchingPertemuan 11 Tehnik Searching
Pertemuan 11 Tehnik Searching
 
Mediaakuuuu
MediaakuuuuMediaakuuuu
Mediaakuuuu
 
Pertemuan 10 Tehnik Sorting
Pertemuan 10  Tehnik SortingPertemuan 10  Tehnik Sorting
Pertemuan 10 Tehnik Sorting
 
Anum
AnumAnum
Anum
 
Pengurutan (Sorting)
Pengurutan (Sorting)Pengurutan (Sorting)
Pengurutan (Sorting)
 
Pegidiyaartika 1830206108 penjumblahan dan pengurangan dua bilangan bulat
Pegidiyaartika 1830206108 penjumblahan dan pengurangan dua bilangan bulatPegidiyaartika 1830206108 penjumblahan dan pengurangan dua bilangan bulat
Pegidiyaartika 1830206108 penjumblahan dan pengurangan dua bilangan bulat
 
2 array n-matriks
2 array n-matriks2 array n-matriks
2 array n-matriks
 
Algoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection SortAlgoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection Sort
 
Presentasi Logika informatika
Presentasi Logika informatikaPresentasi Logika informatika
Presentasi Logika informatika
 
Tugas UAS Logika Informatika
Tugas UAS Logika InformatikaTugas UAS Logika Informatika
Tugas UAS Logika Informatika
 
Matriks SMA Kelas 10
Matriks SMA Kelas 10Matriks SMA Kelas 10
Matriks SMA Kelas 10
 
Ppt klmpk 6 alj liner
Ppt klmpk 6 alj linerPpt klmpk 6 alj liner
Ppt klmpk 6 alj liner
 
Riskaty miftahul jannah (1730206093) p pt materi matriks
Riskaty miftahul jannah (1730206093) p pt materi matriksRiskaty miftahul jannah (1730206093) p pt materi matriks
Riskaty miftahul jannah (1730206093) p pt materi matriks
 
6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data
 
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanMateri sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
 
ALJABAR LINEAR ELIMINASI GAUSSIAN
ALJABAR LINEAR ELIMINASI GAUSSIANALJABAR LINEAR ELIMINASI GAUSSIAN
ALJABAR LINEAR ELIMINASI GAUSSIAN
 

Similar to Algoritma dna Struktur Data - Pengurutan Merge

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
 
Makalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleksMakalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleks
Nila Aulia
 
Calculus 2 pertemuan 4
Calculus 2 pertemuan 4Calculus 2 pertemuan 4
Calculus 2 pertemuan 4
Amalia Indrawati Gunawan
 
kiki andriani , 5 metode sorting
kiki andriani , 5 metode sortingkiki andriani , 5 metode sorting
kiki andriani , 5 metode sorting
kiki andriani
 
Analisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingAnalisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingDea Rokhmatun Iradewa
 
ratna mustika sari
ratna mustika sariratna mustika sari
ratna mustika sari
ratna mustika sari
 
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
 
Rifal Zulma Hendri (2220201009).ppt
Rifal Zulma Hendri (2220201009).pptRifal Zulma Hendri (2220201009).ppt
Rifal Zulma Hendri (2220201009).ppt
FaldoPku
 
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
 
tugas algoritma
tugas algoritmatugas algoritma
tugas algoritma
SITI MUTIAH NURMALA DEWI
 
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
 
Algoritma dan Struktur Data - Bubble Sort
Algoritma dan Struktur Data - Bubble SortAlgoritma dan Struktur Data - Bubble Sort
Algoritma dan Struktur Data - Bubble Sort
KuliahKita
 
Algoritma dan Struktur Data - pengurutan bubble
Algoritma dan Struktur Data - pengurutan bubbleAlgoritma dan Struktur Data - pengurutan bubble
Algoritma dan Struktur Data - pengurutan bubble
Georgius Rinaldo
 
-SIMPLEX.pdf
-SIMPLEX.pdf-SIMPLEX.pdf
-SIMPLEX.pdf
RidhoRidho69
 
Materi_SORTING(PENGURUTAN).ppt
Materi_SORTING(PENGURUTAN).pptMateri_SORTING(PENGURUTAN).ppt
Materi_SORTING(PENGURUTAN).ppt
angelyaningsih
 
Materi_SORTING(PENGURUTAN).ppt
Materi_SORTING(PENGURUTAN).pptMateri_SORTING(PENGURUTAN).ppt
Materi_SORTING(PENGURUTAN).ppt
angelyaningsih
 

Similar to Algoritma dna Struktur Data - Pengurutan Merge (20)

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
 
Makalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleksMakalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleks
 
Calculus 2 pertemuan 4
Calculus 2 pertemuan 4Calculus 2 pertemuan 4
Calculus 2 pertemuan 4
 
kiki andriani , 5 metode sorting
kiki andriani , 5 metode sortingkiki andriani , 5 metode sorting
kiki andriani , 5 metode sorting
 
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
 
Pengurutan (sorting )
Pengurutan (sorting )Pengurutan (sorting )
Pengurutan (sorting )
 
Jeni Intro2 Bab06 Algoritma Sorting
Jeni Intro2 Bab06 Algoritma SortingJeni Intro2 Bab06 Algoritma Sorting
Jeni Intro2 Bab06 Algoritma Sorting
 
ratna mustika sari
ratna mustika sariratna mustika sari
ratna mustika sari
 
Algoritma dan Struktur Data - pengurutan selection
Algoritma dan Struktur Data - pengurutan selectionAlgoritma dan Struktur Data - pengurutan selection
Algoritma dan Struktur Data - pengurutan selection
 
Rifal Zulma Hendri (2220201009).ppt
Rifal Zulma Hendri (2220201009).pptRifal Zulma Hendri (2220201009).ppt
Rifal Zulma Hendri (2220201009).ppt
 
Algoritma Divide and Conquer (Sorting & Searching)
Algoritma Divide and Conquer (Sorting & Searching)Algoritma Divide and Conquer (Sorting & Searching)
Algoritma Divide and Conquer (Sorting & Searching)
 
tugas algoritma
tugas algoritmatugas algoritma
tugas algoritma
 
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
 
Algoritma dan Struktur Data - Bubble Sort
Algoritma dan Struktur Data - Bubble SortAlgoritma dan Struktur Data - Bubble Sort
Algoritma dan Struktur Data - Bubble Sort
 
Algoritma dan Struktur Data - pengurutan bubble
Algoritma dan Struktur Data - pengurutan bubbleAlgoritma dan Struktur Data - pengurutan bubble
Algoritma dan Struktur Data - pengurutan bubble
 
-SIMPLEX.pdf
-SIMPLEX.pdf-SIMPLEX.pdf
-SIMPLEX.pdf
 
Materi_SORTING(PENGURUTAN).ppt
Materi_SORTING(PENGURUTAN).pptMateri_SORTING(PENGURUTAN).ppt
Materi_SORTING(PENGURUTAN).ppt
 
Materi_SORTING(PENGURUTAN).ppt
Materi_SORTING(PENGURUTAN).pptMateri_SORTING(PENGURUTAN).ppt
Materi_SORTING(PENGURUTAN).ppt
 

More from Georgius Rinaldo

Algoritma dan Struktur Data - methods
Algoritma dan Struktur Data - methodsAlgoritma dan Struktur Data - methods
Algoritma dan Struktur Data - methods
Georgius Rinaldo
 
Algoritma dan Struktur Data - Struktur Data
Algoritma dan Struktur Data - Struktur DataAlgoritma dan Struktur Data - Struktur Data
Algoritma dan Struktur Data - Struktur Data
Georgius Rinaldo
 
Algoritma dan Struktur Data - constructor dan destructor
Algoritma dan Struktur Data - constructor dan destructorAlgoritma dan Struktur Data - constructor dan destructor
Algoritma dan Struktur Data - constructor dan destructor
Georgius Rinaldo
 
Algoritma dan Struktur Data - object
Algoritma dan Struktur Data - objectAlgoritma dan Struktur Data - object
Algoritma dan Struktur Data - object
Georgius Rinaldo
 
Algoritma dan Struktur Data - adt
Algoritma dan Struktur Data - adtAlgoritma dan Struktur Data - adt
Algoritma dan Struktur Data - adt
Georgius Rinaldo
 
Algoritma dan Struktur Data - pohon biner
Algoritma dan Struktur Data - pohon binerAlgoritma dan Struktur Data - pohon biner
Algoritma dan Struktur Data - pohon biner
Georgius Rinaldo
 
Algoritma dan Struktur Data - pengenalan pohon
Algoritma dan Struktur Data - pengenalan pohonAlgoritma dan Struktur Data - pengenalan pohon
Algoritma dan Struktur Data - pengenalan pohon
Georgius Rinaldo
 
Algoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrianAlgoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrian
Georgius Rinaldo
 
Algoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanAlgoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukan
Georgius Rinaldo
 
Algoritma dan Struktur Data - pencarian biner
Algoritma dan Struktur Data - pencarian binerAlgoritma dan Struktur Data - pencarian biner
Algoritma dan Struktur Data - pencarian biner
Georgius Rinaldo
 
Algoritma dan Strukutr Data - rekursi
Algoritma dan Strukutr Data - rekursiAlgoritma dan Strukutr Data - rekursi
Algoritma dan Strukutr Data - rekursi
Georgius Rinaldo
 
Algoritma dan Struktur Data - set
Algoritma dan Struktur Data - setAlgoritma dan Struktur Data - set
Algoritma dan Struktur Data - set
Georgius Rinaldo
 
Algoritma dan Struktur Data - list
Algoritma dan Struktur Data - listAlgoritma dan Struktur Data - list
Algoritma dan Struktur Data - list
Georgius Rinaldo
 
Algoritma dan Struktur Data - Larik
Algoritma dan Struktur Data - LarikAlgoritma dan Struktur Data - Larik
Algoritma dan Struktur Data - Larik
Georgius Rinaldo
 
Algoritma dan Struktur Data - operasi file
Algoritma dan Struktur Data - operasi fileAlgoritma dan Struktur Data - operasi file
Algoritma dan Struktur Data - operasi file
Georgius Rinaldo
 
Algoritma dan Struktur Data - tipe data compound
Algoritma dan Struktur Data - tipe data compoundAlgoritma dan Struktur Data - tipe data compound
Algoritma dan Struktur Data - tipe data compound
Georgius Rinaldo
 
Algoritma dan Struktur Data - fungsi dan prosedur c++
Algoritma dan Struktur Data -  fungsi dan prosedur c++Algoritma dan Struktur Data -  fungsi dan prosedur c++
Algoritma dan Struktur Data - fungsi dan prosedur c++
Georgius Rinaldo
 
Algoritma dan Struktur Data - loop pada c++
Algoritma dan Struktur Data -  loop pada c++Algoritma dan Struktur Data -  loop pada c++
Algoritma dan Struktur Data - loop pada c++
Georgius Rinaldo
 
Algoritma dan Struktur Data - sintaks c++
Algoritma dan Struktur Data - sintaks c++Algoritma dan Struktur Data - sintaks c++
Algoritma dan Struktur Data - sintaks c++
Georgius Rinaldo
 
Algoritma dan Struktur Data - Input/Output dan Kondisi
Algoritma dan Struktur Data - Input/Output dan KondisiAlgoritma dan Struktur Data - Input/Output dan Kondisi
Algoritma dan Struktur Data - Input/Output dan Kondisi
Georgius Rinaldo
 

More from Georgius Rinaldo (20)

Algoritma dan Struktur Data - methods
Algoritma dan Struktur Data - methodsAlgoritma dan Struktur Data - methods
Algoritma dan Struktur Data - methods
 
Algoritma dan Struktur Data - Struktur Data
Algoritma dan Struktur Data - Struktur DataAlgoritma dan Struktur Data - Struktur Data
Algoritma dan Struktur Data - Struktur Data
 
Algoritma dan Struktur Data - constructor dan destructor
Algoritma dan Struktur Data - constructor dan destructorAlgoritma dan Struktur Data - constructor dan destructor
Algoritma dan Struktur Data - constructor dan destructor
 
Algoritma dan Struktur Data - object
Algoritma dan Struktur Data - objectAlgoritma dan Struktur Data - object
Algoritma dan Struktur Data - object
 
Algoritma dan Struktur Data - adt
Algoritma dan Struktur Data - adtAlgoritma dan Struktur Data - adt
Algoritma dan Struktur Data - adt
 
Algoritma dan Struktur Data - pohon biner
Algoritma dan Struktur Data - pohon binerAlgoritma dan Struktur Data - pohon biner
Algoritma dan Struktur Data - pohon biner
 
Algoritma dan Struktur Data - pengenalan pohon
Algoritma dan Struktur Data - pengenalan pohonAlgoritma dan Struktur Data - pengenalan pohon
Algoritma dan Struktur Data - pengenalan pohon
 
Algoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrianAlgoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrian
 
Algoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanAlgoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukan
 
Algoritma dan Struktur Data - pencarian biner
Algoritma dan Struktur Data - pencarian binerAlgoritma dan Struktur Data - pencarian biner
Algoritma dan Struktur Data - pencarian biner
 
Algoritma dan Strukutr Data - rekursi
Algoritma dan Strukutr Data - rekursiAlgoritma dan Strukutr Data - rekursi
Algoritma dan Strukutr Data - rekursi
 
Algoritma dan Struktur Data - set
Algoritma dan Struktur Data - setAlgoritma dan Struktur Data - set
Algoritma dan Struktur Data - set
 
Algoritma dan Struktur Data - list
Algoritma dan Struktur Data - listAlgoritma dan Struktur Data - list
Algoritma dan Struktur Data - list
 
Algoritma dan Struktur Data - Larik
Algoritma dan Struktur Data - LarikAlgoritma dan Struktur Data - Larik
Algoritma dan Struktur Data - Larik
 
Algoritma dan Struktur Data - operasi file
Algoritma dan Struktur Data - operasi fileAlgoritma dan Struktur Data - operasi file
Algoritma dan Struktur Data - operasi file
 
Algoritma dan Struktur Data - tipe data compound
Algoritma dan Struktur Data - tipe data compoundAlgoritma dan Struktur Data - tipe data compound
Algoritma dan Struktur Data - tipe data compound
 
Algoritma dan Struktur Data - fungsi dan prosedur c++
Algoritma dan Struktur Data -  fungsi dan prosedur c++Algoritma dan Struktur Data -  fungsi dan prosedur c++
Algoritma dan Struktur Data - fungsi dan prosedur c++
 
Algoritma dan Struktur Data - loop pada c++
Algoritma dan Struktur Data -  loop pada c++Algoritma dan Struktur Data -  loop pada c++
Algoritma dan Struktur Data - loop pada c++
 
Algoritma dan Struktur Data - sintaks c++
Algoritma dan Struktur Data - sintaks c++Algoritma dan Struktur Data - sintaks c++
Algoritma dan Struktur Data - sintaks c++
 
Algoritma dan Struktur Data - Input/Output dan Kondisi
Algoritma dan Struktur Data - Input/Output dan KondisiAlgoritma dan Struktur Data - Input/Output dan Kondisi
Algoritma dan Struktur Data - Input/Output dan Kondisi
 

Recently uploaded

PROYEK PEMBANGUNAN TRANSMISI 150 KV PLN
PROYEK PEMBANGUNAN TRANSMISI 150 KV  PLNPROYEK PEMBANGUNAN TRANSMISI 150 KV  PLN
PROYEK PEMBANGUNAN TRANSMISI 150 KV PLN
tejakusuma17
 
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptxBAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
ssuser5e48eb
 
Paparan Pengawasan Bangunan Gedung.pptx
Paparan  Pengawasan Bangunan Gedung.pptxPaparan  Pengawasan Bangunan Gedung.pptx
Paparan Pengawasan Bangunan Gedung.pptx
RifkiAbrar2
 
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdfPROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
afifsalim12
 
1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
ymikhael4
 
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdfANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
narayafiryal8
 
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdfDAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
benediktusmaksy
 
Sistem Proteksi Jawa Bali untuk gardu induk
Sistem Proteksi Jawa Bali untuk gardu indukSistem Proteksi Jawa Bali untuk gardu induk
Sistem Proteksi Jawa Bali untuk gardu induk
ssuser0b6eb8
 
Perencanaan Anggaran Biaya dan penjadwalan
Perencanaan Anggaran Biaya dan penjadwalanPerencanaan Anggaran Biaya dan penjadwalan
Perencanaan Anggaran Biaya dan penjadwalan
MarvinPatrick1
 

Recently uploaded (9)

PROYEK PEMBANGUNAN TRANSMISI 150 KV PLN
PROYEK PEMBANGUNAN TRANSMISI 150 KV  PLNPROYEK PEMBANGUNAN TRANSMISI 150 KV  PLN
PROYEK PEMBANGUNAN TRANSMISI 150 KV PLN
 
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptxBAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
BAHAN KULIUAH BAHAN TAMBAHAN MAKANANTM 03.pptx
 
Paparan Pengawasan Bangunan Gedung.pptx
Paparan  Pengawasan Bangunan Gedung.pptxPaparan  Pengawasan Bangunan Gedung.pptx
Paparan Pengawasan Bangunan Gedung.pptx
 
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdfPROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
PROGRAM PERCEPATAN PENINGKATAN TATA GUNA AIR IRIGASI 2024.pdf
 
1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
1 - Metode Pelaksanaan Pondasi Tiang Pancang-1.pptx
 
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdfANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdf
 
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdfDAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
DAMPAK POLUSI UDARA TERHADAP KESEHATAN MASYARAKAT.pdf
 
Sistem Proteksi Jawa Bali untuk gardu induk
Sistem Proteksi Jawa Bali untuk gardu indukSistem Proteksi Jawa Bali untuk gardu induk
Sistem Proteksi Jawa Bali untuk gardu induk
 
Perencanaan Anggaran Biaya dan penjadwalan
Perencanaan Anggaran Biaya dan penjadwalanPerencanaan Anggaran Biaya dan penjadwalan
Perencanaan Anggaran Biaya dan penjadwalan
 

Algoritma dna Struktur Data - Pengurutan Merge

  • 1. Pengurutan Merge Algoritma dan Struktur Data Kuliahkita - Edwin Lunando
  • 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)