SlideShare a Scribd company logo
1 of 6
Metode Sorting dan Aplikasinya
Tugas Kuliah Algoritma dan Struktur Data
Siti mutiah nurmala dewi
Manajemen Informatika
Politeknik Negeri Lampung
Bandar Lampung, Lampung
Sitimutiah1510@gmail.com
Abstrak— makalah ini membahas tentang pengurutan
menggunakan lima algoritma yang berbeda, yaitu bubble sort,
selection sort, insertion sort, quick sort, heap sort, merge sort.
Sorting adalah Proses mengurutkan, menyusun/ memindahkan
posisi elemen-elemen/ data dengan tata urut tertentu pada
array. Sedangkan Searching adalah Proses penelusuran/
pencarian posisi elemen-elemen / data pada array.[1]
Kata kunci—alogoritma, sorting, searching, bubble sort,
selection sort, insertion sort, quick sort, heap sort.
1.PENDAHULUAN
1.1 LATAR BELAKANG
Sort adalah proses pengurutan data yang sebelumnya disusun
secara acak sehingga menjadi tersusun secara teratur menurut
suatu aturan tertentu.
[3]
Pada umumnya terdapat 2 jenis pengurutan :
• Ascending (Naik)
• Descending (Turun)
Contoh pengurutan data :
• Data Acak : 5 6 8 1 3 25 10
• Terurut
Ascending : 1 3 5 6 8 10 25
• Terurut
Descending : 25 10 8 6 5 3 1
1.2 TUJUAN PENULISAN
• Menerapkan algoritma bubble sort, selection sort,
merge sort, quick sort, insertion sort, dan heap sort.
• Menguji dan membandingkan bubble sort, selection
sort, merge sort, quick sort, insertion sort, dan heap
sort.
2.PEMBAHASAN
1.1 BUBBLE SORT
• Metode pengurutan buble sort/ gelembung, prosedur
atau algorimatnya adalah sbb: -
a. pengecekan dimulai dari data ke-1 sampai dengan
data ke-n. -
b. bandingkan data ke-n dengan data sebelumnya (n-
1),jika lebih kecil maka tukar bilangan tersebut
dengan data yang ada didepanya satu persatu (n-1,n-
2,n-3,..dst).
c. lakukan langkah ke 2 sampai mendapatkan urutan
yang maksimal.
Berikut ini contoh pembuatan sebuah program
pengurutandata atau sorting dengan metode bubble sort kita
akan memasukan 15 data yang init
data[15]={8,1,45,2,5,2,9,6,12,7,8,6,10,11,44};
yang tidak berurutan. pemrogramanya, serta akan di hitung
berapa banyak proses pertukaran posisi data, dan berapa
banyak proses perbandingan data. contoh codingnya adalah
sebagai berikut :
ContohProgramMetode Bubble Sort
int tmp,TK, FB:
void main () {
int Data[15]:{8,1,45,2,5,2,9,6,12,7,8,6,10,11,44};
cout<<">>> Sorting dengan Metode Bubble <<<n’’;
cout<<"_______________________________________n":
cout<<"nnData sebelum di Urutkan >> ";
for (int i=0: i<15; i--) {
cout<Data[i]<<" ";
}
for (int h=0; h<15; h++){
for (int i=0; i<15; i--) {
FB++;
if (Data[i] > Data[i+1]){
tmp=Data[i];
Data[i]=Data[i+1];
Data[i+1]=tmp;
TK--;
}
}
} cout<<endl<<endl;
cout<<"Data Sesudah di Urutkan >> ";
for (int j=0; j<15; j++)
{ cout<<Data[j]<<" ";
}
cout<<"nnJumlah Proses Pertukaran = "<<TK;
cout<<"nnJumlah Proses Perbandingan = "<<FB; getch();
}
Maka hasilnya 
1.2 MetodeSelectionSort.
• Metode pengurutan selection sort,prosedur atau
algorimatnya adalah sbb : -
a. pengecekan dimulai dari data ke -1 sampai
dengan data ke – n.
b. tentukan bilangan dengan index terkecil dari
data bilangan tersebut.
c. tukar bilangan dengan index terkecil tersebut
dengan bilangan pertama (I= 1)dari bilangan
tersebut.
d. lakukanlah langkah 2 dan 3 untuk bilangan
berikut (I=I+1)sampai dapatkan urutan yang
optimal.
Contoh selection sort :
Proses 1
Proses 2 :
Procedure Selection
Procedure Asc_Selection;
Var pos ,k: byte;
Begin
For i:= 1 to jmldata-1 do
Begin
Pos:=i;
For j:= i+1 to jmldata do
If data[j] < data[pos] then pos:=j;
If i <> pos then tukardata(data[i],data[pos]);
end;
1.3 INSERTION SORT
Pengurutan dilakukan dengan caramembandingkan data
ke-I (dimana I dimulai dari data ke-2 sampai dengan data
terakhir) dengan data berikutnya. Jika ditemukan data yang
lebih kecil maka data tersebut disisipkan ke depan sesuai
posisi yang seharusnya.
Conto insertion sort :
Proses 1 :
Proses 2 :
Prosedur Insert Sort
procedure asc_insert;
var temp,k:integer;
begin
For i := 2 to jmldata do
Begin
Temp :=data[i];
j := i-1;
while (data[j] > temp) and (j>0) do
begin
data[j+1] := data[j];
dec(j);
end;
data[j+1]:=temp;
end;
end;
1.4 HEAP SORT
Membandingkan suatu elemen (disebut pivot) dengan elemen
yang lain dan menyusunnya sedemikian rupa sehingga
elemen- elemen lain yang lebih kecil daripada pivot tersebut
terletak di sebelah kirinya dan elemen-elemen lain yang lebih
besar daripada pivot tersebut terletak di sebelah kanannya.
Sehingga dengan demikian telah terbntuk dua sublist, yang
terletak di sebelah kiri dan kanan dari pivot. Lalu pada sublist
kiri dan sublist kanan kita anggap sebuah list baru dan kita
kerjakan proses yang sama seperti sebelumnya. Demikian
seterusnya sampai tidak terdapat sublist lagi. Sehingga
didalamnya telah terjadi proses Rekursif.
Contoh quick sort
Proses 1 :
Proses 2 :
Procedure quick sort
Procedure Asc_Quick(L,R : Integer);
Var i, j,k:integer;
Begin
If L<R then
Begin
i := L; j := R+1;
repeat
repeat inc(i) until data[i] >= data[1];
repeat dec(j) until data[j] <= data[1];
if i < j then tukardata (data[i], data[j]);
until i > j;
tukardata (data[1], data[j]);
Asc_Quick(L,j-1);
Asc_Quick(j+1,R);
End;
for k:=1 to jmldata do
write(data[k],' ');writeln;
End;
1.4 Heapsort
Heapsort dilakukan dengan cara membangun struktur data
heap dan kemudian menerapkan langkah menghapus node
heap. Pada awalnya, kondisi heap kosong. Kemudian, node
heap di-insert satu per satu.
Cara alternatif adalah, menampung data yang akan
diurutkan dalam array, kemudian node pada bagian root di
hapus. Jika heap adalah minimal heap, maka data pada root
adalah data terkecil.
Contoh Heapsort
P S C K M L A X E
0 1 2 3 4 5 6 7 8
Konversi array menjadi Heap. Tentukan node parent
yang terakhir dalam array, yaitu (heapsize – 2)/2. Pada contoh
di atas, node K adalah parent terakhir. Kemudian, lakukan
FilterDown dari indeks parent terakhir s/d indeks 0. Pada
contoh di atas, dari indeks 3, 2, 1, kemudian 0.
ARRAY TO HEAP
Tree tersebut adalah Binary Tree namun belum
merupakan minimal heap yang benar. Kemudian terapkan
FilterDown pada node dimana parent terakhir berada,
yaitu K
LAKUKAN FILTER DOWN
Setelah FilterDown selesai untuk node K, lanjutkan proses
yang sama untuk indek 2 yaitu node C.
Setelah FilterDown selesai untuk node C, lanjutkan proses
yang sama untuk indek 1 yaitu node S.
Hasil: Sebuah Heap terbentuk! Selanjutnya, remove node A
menggunakan algoritma menghapus node dalam Heap.
Remove Node darii Heap
• Remove selalu dimulai dari root karena node root
adalah node dengan nilai terkecil
• Masalahnya adalah bagaimana melakukan adjustment
agar binary tree tetap menjadi minimal head
• Algoritma: Remove node root dan ganti node tersebut
dengan node pada posisi paling akhir. Kemudian
fungsi FilterDown dipanggil untuk
• memeriksa dari root sd node leaf agar setiap node
masih memenuhi syarat heap.
Node C ditukar dengan node A, ukuran array diasumsikan
berkurang 1 yaitu dari indeks 0 sd 7. Kemudian, tentukan
indeks parent terakhir, dan ulangi proses .
C E L K M S P X A
0 1 2 3 4 5 6 7 8
Hasil Akhir
Data yang terurut descending order
X S P M L K E C A
0 1 2 3 4 5 6 7 8
1.5 Merge Sort
Metode pengurutan merge sort adalah metode pengurutan
lanjut, sama dengan metode Quick Sort. Metode ini juga
menggunakan konsep devide and conquer yang membagi data
S dalam dua kelompok yaitu S1 dan S2 yang tidak beririsan
(disjoint). Proses pembagian data dilakukan secara rekursif
sampai data tidak dapat dibagi lagi atau dengan kata lain data
dalam sub bagian menjadi tunggal. Setelah data tidak dapat
dibagi lagi, proses penggabungan (merging) dilakukan antara
sub-sub bagian dengan memperhatikan urutan data yang
diinginkan (ascending/kecil ke besar atau descending/besar ke
kecil). Proses penggabungan ini dilakukan sampai semua data
tergabung dan
terurut sesuai urutan yang diiginkan. Kompleksitas algoritma
merge sort.
Ilustrasi dari algoritma merge sort adalah sebagai berikut:
Algoritma mergesort(S,C)
Input: n elemen dari data S dan comparator C
Output: data S terurut berdasarkan C
if S.size()>1
(S1,S2) ← partisi(S,n/2)
mergesort(S1,C)
mergesort(S2,C)
S ← merge(S1,S2)
Fungsi merge berfungsi untuk menggabungkan hasil
pengurutan dari sub
bagian S1 dan S2 berdasarkan urutan tertentu (ascending atau
descending
order). Kompleksitas proses penggabungan ini (merging)
adalah O(n).
1. DAFTAR PUSTAKA
• https://www.academia.edu/6608552/Tugas-
makalah-struktur-data
• eprints.unsri.ac.id/2644/2/Jurnal_Infotel_2_-
_Akatel_SP.pdf
• sumarna.staff.gunadarma.ac.id/Downloads/files/3
1662/8.+Sorting.pdf
• Remove selalu dimulai dari root karena node root
adalah node dengan nilai terkecil
• Masalahnya adalah bagaimana melakukan adjustment
agar binary tree tetap menjadi minimal head
• Algoritma: Remove node root dan ganti node tersebut
dengan node pada posisi paling akhir. Kemudian
fungsi FilterDown dipanggil untuk
• memeriksa dari root sd node leaf agar setiap node
masih memenuhi syarat heap.
Node C ditukar dengan node A, ukuran array diasumsikan
berkurang 1 yaitu dari indeks 0 sd 7. Kemudian, tentukan
indeks parent terakhir, dan ulangi proses .
C E L K M S P X A
0 1 2 3 4 5 6 7 8
Hasil Akhir
Data yang terurut descending order
X S P M L K E C A
0 1 2 3 4 5 6 7 8
1.5 Merge Sort
Metode pengurutan merge sort adalah metode pengurutan
lanjut, sama dengan metode Quick Sort. Metode ini juga
menggunakan konsep devide and conquer yang membagi data
S dalam dua kelompok yaitu S1 dan S2 yang tidak beririsan
(disjoint). Proses pembagian data dilakukan secara rekursif
sampai data tidak dapat dibagi lagi atau dengan kata lain data
dalam sub bagian menjadi tunggal. Setelah data tidak dapat
dibagi lagi, proses penggabungan (merging) dilakukan antara
sub-sub bagian dengan memperhatikan urutan data yang
diinginkan (ascending/kecil ke besar atau descending/besar ke
kecil). Proses penggabungan ini dilakukan sampai semua data
tergabung dan
terurut sesuai urutan yang diiginkan. Kompleksitas algoritma
merge sort.
Ilustrasi dari algoritma merge sort adalah sebagai berikut:
Algoritma mergesort(S,C)
Input: n elemen dari data S dan comparator C
Output: data S terurut berdasarkan C
if S.size()>1
(S1,S2) ← partisi(S,n/2)
mergesort(S1,C)
mergesort(S2,C)
S ← merge(S1,S2)
Fungsi merge berfungsi untuk menggabungkan hasil
pengurutan dari sub
bagian S1 dan S2 berdasarkan urutan tertentu (ascending atau
descending
order). Kompleksitas proses penggabungan ini (merging)
adalah O(n).
1. DAFTAR PUSTAKA
• https://www.academia.edu/6608552/Tugas-
makalah-struktur-data
• eprints.unsri.ac.id/2644/2/Jurnal_Infotel_2_-
_Akatel_SP.pdf
• sumarna.staff.gunadarma.ac.id/Downloads/files/3
1662/8.+Sorting.pdf

More Related Content

What's hot

Bab 2 sorting array (1)
Bab 2 sorting array (1)Bab 2 sorting array (1)
Bab 2 sorting array (1)Fahuda E
 
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanMateri sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanReskidtc
 
Sd pertemuan 3 & 4 (edited)
Sd   pertemuan 3 & 4 (edited)Sd   pertemuan 3 & 4 (edited)
Sd pertemuan 3 & 4 (edited)biedoen
 
6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data6 Algoritma Pengurutan Data
6 Algoritma Pengurutan DataSimon Patabang
 
Tugas1
Tugas1Tugas1
Tugas1Av Ri
 
9 10 - sort-pengurutan-data
9 10 - sort-pengurutan-data9 10 - sort-pengurutan-data
9 10 - sort-pengurutan-dataWandi Parlente
 
Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung Median
Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung MedianLaporan Praktikum Algoritma Pemrograman Modul V-Menghitung Median
Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung MedianShofura Kamal
 
Modul struktur data_affif
Modul struktur data_affifModul struktur data_affif
Modul struktur data_affifSejahtera Affif
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13Ekha Cahya Nugraha
 
Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadaniaTugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadaniaMutia Rahmadania
 
Paper Metode Sorting
Paper Metode SortingPaper Metode Sorting
Paper Metode SortingNurul Habibah
 
Buku struktur data Sorting
Buku struktur data SortingBuku struktur data Sorting
Buku struktur data SortingBintangWijaya5
 

What's hot (19)

Makalah shell sort
Makalah shell sortMakalah shell sort
Makalah shell sort
 
Sorting ppt
Sorting ppt Sorting ppt
Sorting ppt
 
Bab 2 sorting array (1)
Bab 2 sorting array (1)Bab 2 sorting array (1)
Bab 2 sorting array (1)
 
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanMateri sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
 
Sd pertemuan 3 & 4 (edited)
Sd   pertemuan 3 & 4 (edited)Sd   pertemuan 3 & 4 (edited)
Sd pertemuan 3 & 4 (edited)
 
6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data
 
Tugas1
Tugas1Tugas1
Tugas1
 
Pengurutan (Sorting)
Pengurutan (Sorting)Pengurutan (Sorting)
Pengurutan (Sorting)
 
9 10 - sort-pengurutan-data
9 10 - sort-pengurutan-data9 10 - sort-pengurutan-data
9 10 - sort-pengurutan-data
 
Algoritma sorting
Algoritma sortingAlgoritma sorting
Algoritma sorting
 
Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung Median
Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung MedianLaporan Praktikum Algoritma Pemrograman Modul V-Menghitung Median
Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung Median
 
Modul struktur data_affif
Modul struktur data_affifModul struktur data_affif
Modul struktur data_affif
 
Manual r
Manual rManual r
Manual r
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
 
Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadaniaTugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadania
 
Siti rohmatul khoiriah
Siti rohmatul khoiriahSiti rohmatul khoiriah
Siti rohmatul khoiriah
 
Paper Metode Sorting
Paper Metode SortingPaper Metode Sorting
Paper Metode Sorting
 
Buku struktur data Sorting
Buku struktur data SortingBuku struktur data Sorting
Buku struktur data Sorting
 
Modul 4 pbo
Modul 4 pboModul 4 pbo
Modul 4 pbo
 

Viewers also liked (16)

Siti mutiah nurmala dewi
Siti mutiah nurmala dewiSiti mutiah nurmala dewi
Siti mutiah nurmala dewi
 
Ankush_Gupta
Ankush_GuptaAnkush_Gupta
Ankush_Gupta
 
Strategic management 2
Strategic management 2Strategic management 2
Strategic management 2
 
Siti mutiah nurmala dewi
Siti mutiah nurmala dewiSiti mutiah nurmala dewi
Siti mutiah nurmala dewi
 
Untitled Presentation
Untitled PresentationUntitled Presentation
Untitled Presentation
 
Yoki
YokiYoki
Yoki
 
Decom
DecomDecom
Decom
 
Siti Mutiah Nurmala Dewi
Siti Mutiah Nurmala DewiSiti Mutiah Nurmala Dewi
Siti Mutiah Nurmala Dewi
 
French cuisine PPT
French cuisine PPTFrench cuisine PPT
French cuisine PPT
 
Succession rois et regimes
Succession rois et regimesSuccession rois et regimes
Succession rois et regimes
 
Unmanned airplane system
Unmanned airplane systemUnmanned airplane system
Unmanned airplane system
 
Full page fax print
Full page fax printFull page fax print
Full page fax print
 
Lesson template
Lesson templateLesson template
Lesson template
 
RESUME2
RESUME2RESUME2
RESUME2
 
ROHAN_BAID_Resume
ROHAN_BAID_ResumeROHAN_BAID_Resume
ROHAN_BAID_Resume
 
FARHAN KANDHRO-CV
FARHAN KANDHRO-CVFARHAN KANDHRO-CV
FARHAN KANDHRO-CV
 

Similar to tugas algoritma

Tugas selamat riady algoritma
Tugas selamat riady algoritmaTugas selamat riady algoritma
Tugas selamat riady algoritmaSelamatriady
 
kiki andriani , 5 metode sorting
kiki andriani , 5 metode sortingkiki andriani , 5 metode sorting
kiki andriani , 5 metode sortingkiki andriani
 
Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadania Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadania Mutia Rahmadania
 
Metode sorting dan aplikasinya2
Metode sorting dan aplikasinya2Metode sorting dan aplikasinya2
Metode sorting dan aplikasinya2maidah .
 
Pengenalan struktur data teknologi informasi.ppt
Pengenalan struktur data teknologi informasi.pptPengenalan struktur data teknologi informasi.ppt
Pengenalan struktur data teknologi informasi.pptsosbudbappeda41
 
introductions struktur data dalam pengembangan
introductions struktur data dalam pengembanganintroductions struktur data dalam pengembangan
introductions struktur data dalam pengembanganssuser89dc1c
 
Pengenalan struktur data Pengenalan struktur data
Pengenalan struktur data Pengenalan struktur dataPengenalan struktur data Pengenalan struktur data
Pengenalan struktur data Pengenalan struktur dataBagusMahardika8
 
Rifal Zulma Hendri (2220201009).ppt
Rifal Zulma Hendri (2220201009).pptRifal Zulma Hendri (2220201009).ppt
Rifal Zulma Hendri (2220201009).pptFaldoPku
 
Tugas kelompok 6
Tugas kelompok 6Tugas kelompok 6
Tugas kelompok 6yusriren
 
Materi_SORTING(PENGURUTAN).ppt
Materi_SORTING(PENGURUTAN).pptMateri_SORTING(PENGURUTAN).ppt
Materi_SORTING(PENGURUTAN).pptangelyaningsih
 

Similar to tugas algoritma (20)

ratna mustika sari
ratna mustika sariratna mustika sari
ratna mustika sari
 
Tugas selamat riady algoritma
Tugas selamat riady algoritmaTugas selamat riady algoritma
Tugas selamat riady algoritma
 
kiki andriani , 5 metode sorting
kiki andriani , 5 metode sortingkiki andriani , 5 metode sorting
kiki andriani , 5 metode sorting
 
Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadania Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadania
 
Metode sorting dan aplikasinya2
Metode sorting dan aplikasinya2Metode sorting dan aplikasinya2
Metode sorting dan aplikasinya2
 
Tugas Algoritma
Tugas AlgoritmaTugas Algoritma
Tugas Algoritma
 
Pengenalan struktur data teknologi informasi.ppt
Pengenalan struktur data teknologi informasi.pptPengenalan struktur data teknologi informasi.ppt
Pengenalan struktur data teknologi informasi.ppt
 
introductions struktur data dalam pengembangan
introductions struktur data dalam pengembanganintroductions struktur data dalam pengembangan
introductions struktur data dalam pengembangan
 
Pengenalan struktur data Pengenalan struktur data
Pengenalan struktur data Pengenalan struktur dataPengenalan struktur data Pengenalan struktur data
Pengenalan struktur data Pengenalan struktur data
 
Ni luh dewi pradnyawati
Ni luh dewi pradnyawatiNi luh dewi pradnyawati
Ni luh dewi pradnyawati
 
Ni luh dewi pradnyawati
Ni luh dewi pradnyawatiNi luh dewi pradnyawati
Ni luh dewi pradnyawati
 
Pertemuan 10 Tehnik Sorting
Pertemuan 10  Tehnik SortingPertemuan 10  Tehnik Sorting
Pertemuan 10 Tehnik Sorting
 
Algoritma sorting
Algoritma sortingAlgoritma sorting
Algoritma sorting
 
Rifal Zulma Hendri (2220201009).ppt
Rifal Zulma Hendri (2220201009).pptRifal Zulma Hendri (2220201009).ppt
Rifal Zulma Hendri (2220201009).ppt
 
Tugas kelompok 6
Tugas kelompok 6Tugas kelompok 6
Tugas kelompok 6
 
Jeni Intro2 Bab06 Algoritma Sorting
Jeni Intro2 Bab06 Algoritma SortingJeni Intro2 Bab06 Algoritma Sorting
Jeni Intro2 Bab06 Algoritma Sorting
 
Pertemuan 11 Tehnik Searching
Pertemuan 11 Tehnik SearchingPertemuan 11 Tehnik Searching
Pertemuan 11 Tehnik Searching
 
Struktur_Data_Pertemuan_4.pptx
Struktur_Data_Pertemuan_4.pptxStruktur_Data_Pertemuan_4.pptx
Struktur_Data_Pertemuan_4.pptx
 
Msw a4 format
Msw a4 formatMsw a4 format
Msw a4 format
 
Materi_SORTING(PENGURUTAN).ppt
Materi_SORTING(PENGURUTAN).pptMateri_SORTING(PENGURUTAN).ppt
Materi_SORTING(PENGURUTAN).ppt
 

tugas algoritma

  • 1. Metode Sorting dan Aplikasinya Tugas Kuliah Algoritma dan Struktur Data Siti mutiah nurmala dewi Manajemen Informatika Politeknik Negeri Lampung Bandar Lampung, Lampung Sitimutiah1510@gmail.com Abstrak— makalah ini membahas tentang pengurutan menggunakan lima algoritma yang berbeda, yaitu bubble sort, selection sort, insertion sort, quick sort, heap sort, merge sort. Sorting adalah Proses mengurutkan, menyusun/ memindahkan posisi elemen-elemen/ data dengan tata urut tertentu pada array. Sedangkan Searching adalah Proses penelusuran/ pencarian posisi elemen-elemen / data pada array.[1] Kata kunci—alogoritma, sorting, searching, bubble sort, selection sort, insertion sort, quick sort, heap sort. 1.PENDAHULUAN 1.1 LATAR BELAKANG Sort adalah proses pengurutan data yang sebelumnya disusun secara acak sehingga menjadi tersusun secara teratur menurut suatu aturan tertentu. [3] Pada umumnya terdapat 2 jenis pengurutan : • Ascending (Naik) • Descending (Turun) Contoh pengurutan data : • Data Acak : 5 6 8 1 3 25 10 • Terurut Ascending : 1 3 5 6 8 10 25 • Terurut Descending : 25 10 8 6 5 3 1 1.2 TUJUAN PENULISAN • Menerapkan algoritma bubble sort, selection sort, merge sort, quick sort, insertion sort, dan heap sort. • Menguji dan membandingkan bubble sort, selection sort, merge sort, quick sort, insertion sort, dan heap sort. 2.PEMBAHASAN 1.1 BUBBLE SORT • Metode pengurutan buble sort/ gelembung, prosedur atau algorimatnya adalah sbb: - a. pengecekan dimulai dari data ke-1 sampai dengan data ke-n. - b. bandingkan data ke-n dengan data sebelumnya (n- 1),jika lebih kecil maka tukar bilangan tersebut dengan data yang ada didepanya satu persatu (n-1,n- 2,n-3,..dst). c. lakukan langkah ke 2 sampai mendapatkan urutan yang maksimal. Berikut ini contoh pembuatan sebuah program pengurutandata atau sorting dengan metode bubble sort kita akan memasukan 15 data yang init data[15]={8,1,45,2,5,2,9,6,12,7,8,6,10,11,44}; yang tidak berurutan. pemrogramanya, serta akan di hitung berapa banyak proses pertukaran posisi data, dan berapa banyak proses perbandingan data. contoh codingnya adalah sebagai berikut : ContohProgramMetode Bubble Sort int tmp,TK, FB: void main () { int Data[15]:{8,1,45,2,5,2,9,6,12,7,8,6,10,11,44}; cout<<">>> Sorting dengan Metode Bubble <<<n’’; cout<<"_______________________________________n": cout<<"nnData sebelum di Urutkan >> "; for (int i=0: i<15; i--) { cout<Data[i]<<" "; } for (int h=0; h<15; h++){ for (int i=0; i<15; i--) { FB++; if (Data[i] > Data[i+1]){ tmp=Data[i]; Data[i]=Data[i+1];
  • 2. Data[i+1]=tmp; TK--; } } } cout<<endl<<endl; cout<<"Data Sesudah di Urutkan >> "; for (int j=0; j<15; j++) { cout<<Data[j]<<" "; } cout<<"nnJumlah Proses Pertukaran = "<<TK; cout<<"nnJumlah Proses Perbandingan = "<<FB; getch(); } Maka hasilnya  1.2 MetodeSelectionSort. • Metode pengurutan selection sort,prosedur atau algorimatnya adalah sbb : - a. pengecekan dimulai dari data ke -1 sampai dengan data ke – n. b. tentukan bilangan dengan index terkecil dari data bilangan tersebut. c. tukar bilangan dengan index terkecil tersebut dengan bilangan pertama (I= 1)dari bilangan tersebut. d. lakukanlah langkah 2 dan 3 untuk bilangan berikut (I=I+1)sampai dapatkan urutan yang optimal. Contoh selection sort : Proses 1 Proses 2 : Procedure Selection Procedure Asc_Selection; Var pos ,k: byte; Begin For i:= 1 to jmldata-1 do Begin Pos:=i; For j:= i+1 to jmldata do If data[j] < data[pos] then pos:=j; If i <> pos then tukardata(data[i],data[pos]); end; 1.3 INSERTION SORT Pengurutan dilakukan dengan caramembandingkan data ke-I (dimana I dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai posisi yang seharusnya. Conto insertion sort : Proses 1 :
  • 3. Proses 2 : Prosedur Insert Sort procedure asc_insert; var temp,k:integer; begin For i := 2 to jmldata do Begin Temp :=data[i]; j := i-1; while (data[j] > temp) and (j>0) do begin data[j+1] := data[j]; dec(j); end; data[j+1]:=temp; end; end; 1.4 HEAP SORT Membandingkan suatu elemen (disebut pivot) dengan elemen yang lain dan menyusunnya sedemikian rupa sehingga elemen- elemen lain yang lebih kecil daripada pivot tersebut terletak di sebelah kirinya dan elemen-elemen lain yang lebih besar daripada pivot tersebut terletak di sebelah kanannya. Sehingga dengan demikian telah terbntuk dua sublist, yang terletak di sebelah kiri dan kanan dari pivot. Lalu pada sublist kiri dan sublist kanan kita anggap sebuah list baru dan kita kerjakan proses yang sama seperti sebelumnya. Demikian seterusnya sampai tidak terdapat sublist lagi. Sehingga didalamnya telah terjadi proses Rekursif. Contoh quick sort Proses 1 : Proses 2 : Procedure quick sort Procedure Asc_Quick(L,R : Integer); Var i, j,k:integer; Begin If L<R then Begin i := L; j := R+1; repeat repeat inc(i) until data[i] >= data[1]; repeat dec(j) until data[j] <= data[1]; if i < j then tukardata (data[i], data[j]); until i > j; tukardata (data[1], data[j]); Asc_Quick(L,j-1); Asc_Quick(j+1,R); End; for k:=1 to jmldata do write(data[k],' ');writeln; End; 1.4 Heapsort
  • 4. Heapsort dilakukan dengan cara membangun struktur data heap dan kemudian menerapkan langkah menghapus node heap. Pada awalnya, kondisi heap kosong. Kemudian, node heap di-insert satu per satu. Cara alternatif adalah, menampung data yang akan diurutkan dalam array, kemudian node pada bagian root di hapus. Jika heap adalah minimal heap, maka data pada root adalah data terkecil. Contoh Heapsort P S C K M L A X E 0 1 2 3 4 5 6 7 8 Konversi array menjadi Heap. Tentukan node parent yang terakhir dalam array, yaitu (heapsize – 2)/2. Pada contoh di atas, node K adalah parent terakhir. Kemudian, lakukan FilterDown dari indeks parent terakhir s/d indeks 0. Pada contoh di atas, dari indeks 3, 2, 1, kemudian 0. ARRAY TO HEAP Tree tersebut adalah Binary Tree namun belum merupakan minimal heap yang benar. Kemudian terapkan FilterDown pada node dimana parent terakhir berada, yaitu K LAKUKAN FILTER DOWN Setelah FilterDown selesai untuk node K, lanjutkan proses yang sama untuk indek 2 yaitu node C. Setelah FilterDown selesai untuk node C, lanjutkan proses yang sama untuk indek 1 yaitu node S. Hasil: Sebuah Heap terbentuk! Selanjutnya, remove node A menggunakan algoritma menghapus node dalam Heap. Remove Node darii Heap
  • 5. • Remove selalu dimulai dari root karena node root adalah node dengan nilai terkecil • Masalahnya adalah bagaimana melakukan adjustment agar binary tree tetap menjadi minimal head • Algoritma: Remove node root dan ganti node tersebut dengan node pada posisi paling akhir. Kemudian fungsi FilterDown dipanggil untuk • memeriksa dari root sd node leaf agar setiap node masih memenuhi syarat heap. Node C ditukar dengan node A, ukuran array diasumsikan berkurang 1 yaitu dari indeks 0 sd 7. Kemudian, tentukan indeks parent terakhir, dan ulangi proses . C E L K M S P X A 0 1 2 3 4 5 6 7 8 Hasil Akhir Data yang terurut descending order X S P M L K E C A 0 1 2 3 4 5 6 7 8 1.5 Merge Sort Metode pengurutan merge sort adalah metode pengurutan lanjut, sama dengan metode Quick Sort. Metode ini juga menggunakan konsep devide and conquer yang membagi data S dalam dua kelompok yaitu S1 dan S2 yang tidak beririsan (disjoint). Proses pembagian data dilakukan secara rekursif sampai data tidak dapat dibagi lagi atau dengan kata lain data dalam sub bagian menjadi tunggal. Setelah data tidak dapat dibagi lagi, proses penggabungan (merging) dilakukan antara sub-sub bagian dengan memperhatikan urutan data yang diinginkan (ascending/kecil ke besar atau descending/besar ke kecil). Proses penggabungan ini dilakukan sampai semua data tergabung dan terurut sesuai urutan yang diiginkan. Kompleksitas algoritma merge sort. Ilustrasi dari algoritma merge sort adalah sebagai berikut: Algoritma mergesort(S,C) Input: n elemen dari data S dan comparator C Output: data S terurut berdasarkan C if S.size()>1 (S1,S2) ← partisi(S,n/2) mergesort(S1,C) mergesort(S2,C) S ← merge(S1,S2) Fungsi merge berfungsi untuk menggabungkan hasil pengurutan dari sub bagian S1 dan S2 berdasarkan urutan tertentu (ascending atau descending order). Kompleksitas proses penggabungan ini (merging) adalah O(n). 1. DAFTAR PUSTAKA • https://www.academia.edu/6608552/Tugas- makalah-struktur-data • eprints.unsri.ac.id/2644/2/Jurnal_Infotel_2_- _Akatel_SP.pdf • sumarna.staff.gunadarma.ac.id/Downloads/files/3 1662/8.+Sorting.pdf
  • 6. • Remove selalu dimulai dari root karena node root adalah node dengan nilai terkecil • Masalahnya adalah bagaimana melakukan adjustment agar binary tree tetap menjadi minimal head • Algoritma: Remove node root dan ganti node tersebut dengan node pada posisi paling akhir. Kemudian fungsi FilterDown dipanggil untuk • memeriksa dari root sd node leaf agar setiap node masih memenuhi syarat heap. Node C ditukar dengan node A, ukuran array diasumsikan berkurang 1 yaitu dari indeks 0 sd 7. Kemudian, tentukan indeks parent terakhir, dan ulangi proses . C E L K M S P X A 0 1 2 3 4 5 6 7 8 Hasil Akhir Data yang terurut descending order X S P M L K E C A 0 1 2 3 4 5 6 7 8 1.5 Merge Sort Metode pengurutan merge sort adalah metode pengurutan lanjut, sama dengan metode Quick Sort. Metode ini juga menggunakan konsep devide and conquer yang membagi data S dalam dua kelompok yaitu S1 dan S2 yang tidak beririsan (disjoint). Proses pembagian data dilakukan secara rekursif sampai data tidak dapat dibagi lagi atau dengan kata lain data dalam sub bagian menjadi tunggal. Setelah data tidak dapat dibagi lagi, proses penggabungan (merging) dilakukan antara sub-sub bagian dengan memperhatikan urutan data yang diinginkan (ascending/kecil ke besar atau descending/besar ke kecil). Proses penggabungan ini dilakukan sampai semua data tergabung dan terurut sesuai urutan yang diiginkan. Kompleksitas algoritma merge sort. Ilustrasi dari algoritma merge sort adalah sebagai berikut: Algoritma mergesort(S,C) Input: n elemen dari data S dan comparator C Output: data S terurut berdasarkan C if S.size()>1 (S1,S2) ← partisi(S,n/2) mergesort(S1,C) mergesort(S2,C) S ← merge(S1,S2) Fungsi merge berfungsi untuk menggabungkan hasil pengurutan dari sub bagian S1 dan S2 berdasarkan urutan tertentu (ascending atau descending order). Kompleksitas proses penggabungan ini (merging) adalah O(n). 1. DAFTAR PUSTAKA • https://www.academia.edu/6608552/Tugas- makalah-struktur-data • eprints.unsri.ac.id/2644/2/Jurnal_Infotel_2_- _Akatel_SP.pdf • sumarna.staff.gunadarma.ac.id/Downloads/files/3 1662/8.+Sorting.pdf