SlideShare a Scribd company logo
Desain dan Analisis Algoritma:
Sorting
1
NUR GHANIAVIYANTO RAMADHAN, S.KOM., M.KOM
MARYONA SEPTIARA, S.PD., M.KOM
Sorting
Sorting didefinisikan sebagai pengurutan sejumlah data berdasarkan nilai kunci
tertentu. Pengurutan dapat dilakukan dari nilai terkecil ke nilai terbesar
(ascending) atau sebaliknya (descending).
Metode Sorting
ü Bubble sort
ü Selection sort
ü Insertion sort
ü Quick Sort
ü Merge sort
3
Bubble Sort
Ø Konsep dari ide dasarnya adalah seperti “gelembung air” untuk
elemen struktur data yang semestinya berada pada posisi awal.
Ø Cara kerjanya adalah dengan berulang-ulang melakukan traversal
(proses looping) terhadap elemen-elemen struktur data yang
belum diurutkan.
Ø Di dalam traversal tersebut, nilai dari dua elemen struktur data
dibandingkan. Jika ternyata urutannya tidak sesuai dengan
“pesanan”, maka dilakukan pertukaran (swap).
4
Contoh Bubble Sort
5
8 3 4 1 6
Looping pertama
8 3 4 1 6
8 3 4 1 6
8 3 1 4 6
8 1 3 4 6
1 8 3 4 6
swap
swap
swap
Contoh Bubble Sort
6
8 3 4 1 6
Looping kedua
1 8 3 4 6
1 8 3 4 6
1 8 3 4 6
1 3 8 4 6
swap
Contoh Bubble Sort
7
8 3 4 1 6
Looping ketiga
1 3 8 4 6
1 3 8 4 6
1 3 4 8 6
swap
Contoh Bubble Sort
8
8 3 4 1 6
Looping keempat
1 3 4 8 6
1 3 4 6 8
swap
Algoritma Bubble Sort
9
1. Lakukan traversal untuk membandingkan dua elemen
berdekatan. Traversal ini dilakukan dari belakang.
2. Jika elemen pada TN-1 > TN , maka lakukan pertukaran
(swap). Jika tidak, lanjutkan ke proses traversal
berikutnya sampai bertemu dengan bagian struktur data
yang telah diurutkan.
3. Ulangi langkah di atas untuk struktur data yang tersisa.
Program Bubble Sort
10
void bubbleSort(vector<int>& myArr){
for(int index = 0; index < myArr.size()-1; index++){
bool swapped = false;
for(int temp = myArr.size()-2; temp >= index; temp--){
if(myArr[temp] > myArr[temp+1]){
swap(myArr[temp+1], myArr[temp]);
swapped = true;
}
}
if(swapped == false){
break;
}
}
}
Kompleksitas Bubble Sort
Bubble sort tergolong algoritma yang paling tidak efisien di antara algoritma sorting dengan
kompleksitas O(n2).
Selection Sort
Ø Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen
struktur data.
Ø Untuk sorting ascending (menaik), elemen yang paling kecil di antara elemen-elemen yang
belum urut, disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks
yang disimpan tersebut dengan elemen yang paling depan yang belum urut.
Ø Sebaliknya, untuk sorting descending (menurun), elemen yang paling besar yang disimpan
indeksnya kemudian ditukar.
Contoh Selection Sort
34 42 4 16 21 9 13 34 42 4 16 21 9 13
4 42 34 16 21 9 13
4 9 34 16 21 42 13
4 9 13 16 21 42 34
4 9 13 16 21 42 34
4 9 13 16 21 42 34
4 9 13 16 21 34 42
Algoritma Selection Sort
1. Temukan nilai yang paling minimum (atau sesuai keinginan) di
dalam struktur data. Jika ascending, maka yang harus ditemukan
adalah nilai yang paling minimum. Jika descending, maka temukan
nilai yang paling maksimum.
2. Tukar nilai tersebut dengan nilai pada posisi pertama di bagian
struktur data yang belum diurutkan.
3. Ulangi langkah di atas untuk bagian struktur data yang tersisa.
Program Selection Sort
void selectionSort(vector<int>& myArr){
for(int index = 0; index < myArr.size()-1; index++){
int smallest = index;
for(int temp = index+1; temp < myArr.size(); temp++){
// figuring out the smallest number in the sub-array(starts after current index)
if(myArr[smallest] > myArr[temp]){
smallest = temp;
}
}
swap(myArr[smallest], myArr[index]);
}
}
Kompleksitas Selection Sort
Kompleksitas selection sort sama dengan buble sort, yaitu O(n2).
Insertion Sort
Cara kerjanya pertama dilakukan iterasi, dimana di setiap iterasi insertion sort
memindahkan nilai elemen, kemudian menyisipkannya berulang-ulang sampai
ke tempat yang tepat.
Begitu seterusnya dilakukan. Dari proses iterasi, seperti biasa, terbentuklah
bagian yang telah di-sorting dan bagian yang belum.
Contoh Insertion Sort
40 2 1 43 3 65 0 -1 58 3 42 4
2 40 1 43 3 65 0 -1 58 3 42 4
1 2 40 43 3 65 0 -1 58 3 42 4
40
Contoh Insertion Sort
1 2 3 40 43 65 0 -1 58 3 42 4
1 2 40 43 3 65 0 -1 58 3 42 4
1 2 3 40 43 65 0 -1 58 3 42 4
Contoh Insertion Sort
1 2 3 40 43 65 0 -1 58 3 42 4
1 2 3 40 43 65
0 -1 58 3 42 4
1 2 3 40 43 65
0 58 3 42 4
1 2 3 40 43 65
0
-1
Contoh Insertion Sort
1 2 3 40 43 65
0 58 3 42 4
1 2 3 40 43 65
0
-1
1 2 3 40 43 65
0 58 42 4
1 2 3 3 43 65
0
-1 58
40 43 65
1 2 3 40 43 65
0 42 4
1 2 3 3 43 65
0
-1 58
40 43 65
1 2 3 40 43 65
0 42
1 2 3 3 43 65
0
-1 58
4 43 65
42 58
40 43 65
Program Insertion Sort
void insertionSort(vector<int>& myArr){
for(int index = 0; index < myArr.size()-1; index++){
for(int temp = index+1; temp < myArr.size(); temp++){
if(myArr[index] > myArr[temp]){
swap(myArr[index], myArr[temp]);
}
}
}
}
Kompleksitas Insertion Sort
Kompleksitas insertion sort O(n2).

More Related Content

PPTX
belajar algoritma
PDF
Analisis Algoritma Pada Masalah Sorting
PPTX
Sorting ppt
DOCX
Siti rohmatul khoiriah
PDF
Struktur data chapter_12
PPT
Bab 2 sorting_array
DOCX
ratna mustika sari
DOC
Tugas Algoritma Mutia rahmadania
belajar algoritma
Analisis Algoritma Pada Masalah Sorting
Sorting ppt
Siti rohmatul khoiriah
Struktur data chapter_12
Bab 2 sorting_array
ratna mustika sari
Tugas Algoritma Mutia rahmadania

Similar to desain dan analisis algoritma - Sorting.pdf (20)

DOC
Tugas Algoritma Mutia rahmadania
PPTX
Asd sesi sorting part1
PPTX
Algoritma sorting
DOCX
Metode sorting dan aplikasinya2
PPTX
Struktur_Data_Pertemuan_4.pptx
PPT
Bab 2 sorting array
DOC
kiki andriani , 5 metode sorting
PDF
11 12 -pengurutan dan-pencarian
PPTX
Tugas kelompok 6
PPTX
SD pert 6 sorting.pptx
PPT
Algoritma dan Pemrograman Cp. 6 Sorting (ralat).ppt
PPTX
Materi Bahasa Pemrograman C SORTING/ARRAY.pptx
PPTX
Kelompok 6
DOC
tugas algoritma
PPTX
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
PPT
Bab 2 sorting array (1)
PPTX
Pertemuan viii Sorting
PDF
Buku struktur data Sorting
DOC
Algoritma Sorting
PPT
Materi_SORTING(PENGURUTAN).ppt
Tugas Algoritma Mutia rahmadania
Asd sesi sorting part1
Algoritma sorting
Metode sorting dan aplikasinya2
Struktur_Data_Pertemuan_4.pptx
Bab 2 sorting array
kiki andriani , 5 metode sorting
11 12 -pengurutan dan-pencarian
Tugas kelompok 6
SD pert 6 sorting.pptx
Algoritma dan Pemrograman Cp. 6 Sorting (ralat).ppt
Materi Bahasa Pemrograman C SORTING/ARRAY.pptx
Kelompok 6
tugas algoritma
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Bab 2 sorting array (1)
Pertemuan viii Sorting
Buku struktur data Sorting
Algoritma Sorting
Materi_SORTING(PENGURUTAN).ppt
Ad

More from septiara5 (20)

PPTX
Introduction to Relational Model and SQL- SCD.pptx
PPTX
basic concept and definition- sistem basis data.pptx
PPTX
pendidikan karakter____Pertemuan 3 - Victim Vs Creator Mindset-RSC (1).pptx
PPTX
pendidikan karakter____Pengenalan MK Pembentukan Karakter (1).pptx
PDF
pendidikan karakter__02 - Personality-SCD (1).pdf
PDF
Slide ADT-modularity and data abstraction.pdf
PPTX
MK STD Materi Graph ver Final by FSV 2020-HUI.pptx
PDF
Detail Multi Linked List 1-N__Detail Multi Linked List 1-N.pdf
PPTX
Graf - Teori Dasar-HUI - Basic Theory.pptx
PPTX
Graf-Representasi Graf-HUI_Representation graf-HUI.pptx
PPTX
Graf - Penelusuran Graf-HUI-Graf-Graf.pptx
PDF
2. Software Testing Life Cycle - Siklus Hidup Pengujian Perangkat Lunak.pdf
PDF
1.PENGUJIAN PERANGKAT LUNAK - SOFTWARE TESTING.pdf
PDF
5.Pengujian Black box-Black box testing.pdf
PDF
4.Test Case-Test Case-Test Case-Test Case.pdf
PDF
3.Dasar dan Prinsip Testing-Basic Testing and Principles.pdf
PDF
Software Testing Life Cycle-Software Testing Life Cycle.pdf
PDF
pendahuluan-PENGUJIAN_PERANGKAT_LUNAK.pdf
PPTX
06 Review Data Anomalies and Functional Dependencies.pptx
PDF
01__Introduction _to_Database_konsep dasar.pdf
Introduction to Relational Model and SQL- SCD.pptx
basic concept and definition- sistem basis data.pptx
pendidikan karakter____Pertemuan 3 - Victim Vs Creator Mindset-RSC (1).pptx
pendidikan karakter____Pengenalan MK Pembentukan Karakter (1).pptx
pendidikan karakter__02 - Personality-SCD (1).pdf
Slide ADT-modularity and data abstraction.pdf
MK STD Materi Graph ver Final by FSV 2020-HUI.pptx
Detail Multi Linked List 1-N__Detail Multi Linked List 1-N.pdf
Graf - Teori Dasar-HUI - Basic Theory.pptx
Graf-Representasi Graf-HUI_Representation graf-HUI.pptx
Graf - Penelusuran Graf-HUI-Graf-Graf.pptx
2. Software Testing Life Cycle - Siklus Hidup Pengujian Perangkat Lunak.pdf
1.PENGUJIAN PERANGKAT LUNAK - SOFTWARE TESTING.pdf
5.Pengujian Black box-Black box testing.pdf
4.Test Case-Test Case-Test Case-Test Case.pdf
3.Dasar dan Prinsip Testing-Basic Testing and Principles.pdf
Software Testing Life Cycle-Software Testing Life Cycle.pdf
pendahuluan-PENGUJIAN_PERANGKAT_LUNAK.pdf
06 Review Data Anomalies and Functional Dependencies.pptx
01__Introduction _to_Database_konsep dasar.pdf
Ad

Recently uploaded (20)

PPTX
PPT Mitigasi Banjir dnajsndj;asjdkaskldhjkash
PPT
hand-tools-service-special-tools-alat-ukur.ppt
PPT
electronic fuel injection for automotive sectors
PPTX
20240805-ppt-pendahuluan-temef-dan-manikin.pptx
PPTX
BNI_Kontrak 1_Pemahaman Kontrak, SSUK, SSKK, Kelengkapan Dokumen PK.pptx
PPT
variabel valve timing intelligence untuk xenia
PPTX
02 SEL ELEKTROKIMIA 1.pptx kimia fisika 1
PDF
chapter 1 Smith and Van ness thermodynamics
PPTX
7-presentasi-pk-metrologi-141030010022-conversion-gate01.pptx
PPTX
Pengenalan SPALDT_SPALDS_Karanganyar.pptx
PPTX
4. PENERAPAN PENGELOLAAN SUMBER DAYA MANUSIA.pptx
PPTX
Ilmu Geologi pertambangan dan peran dalam industri.pptx
PPTX
2013materistudiumgeneralkabsndiunsri-130318044328-phpapp01.pptx
PDF
07. Mekanisme Penyusunan RKM_Sanimas 2024 (Tahap 2).pptx.pdf
PPTX
TOPOLOGI JARINGAN STAR TEKNIK INFORMATIKA
PPTX
Aalat Pelindung Diri_Keselamatan_Bengkel Otomotif_SMK
PPTX
PEMBUATAN PANEL TRAINER DAN PROTOTYPE UNTUK PENINGKATAN KOMPETENSI TENTANG S...
PPTX
KETERAMPILAN KADER - Copy TAHUN 2024.pptx
PPTX
SISTEM_INFORMASI_GEOGRAFIS_unlocked.pptx
PDF
MAINKAN GAME KESUKAN KALIAN DI TANGKI 4D DI JAMIN WD DAN CLIAM BONUSNYA
PPT Mitigasi Banjir dnajsndj;asjdkaskldhjkash
hand-tools-service-special-tools-alat-ukur.ppt
electronic fuel injection for automotive sectors
20240805-ppt-pendahuluan-temef-dan-manikin.pptx
BNI_Kontrak 1_Pemahaman Kontrak, SSUK, SSKK, Kelengkapan Dokumen PK.pptx
variabel valve timing intelligence untuk xenia
02 SEL ELEKTROKIMIA 1.pptx kimia fisika 1
chapter 1 Smith and Van ness thermodynamics
7-presentasi-pk-metrologi-141030010022-conversion-gate01.pptx
Pengenalan SPALDT_SPALDS_Karanganyar.pptx
4. PENERAPAN PENGELOLAAN SUMBER DAYA MANUSIA.pptx
Ilmu Geologi pertambangan dan peran dalam industri.pptx
2013materistudiumgeneralkabsndiunsri-130318044328-phpapp01.pptx
07. Mekanisme Penyusunan RKM_Sanimas 2024 (Tahap 2).pptx.pdf
TOPOLOGI JARINGAN STAR TEKNIK INFORMATIKA
Aalat Pelindung Diri_Keselamatan_Bengkel Otomotif_SMK
PEMBUATAN PANEL TRAINER DAN PROTOTYPE UNTUK PENINGKATAN KOMPETENSI TENTANG S...
KETERAMPILAN KADER - Copy TAHUN 2024.pptx
SISTEM_INFORMASI_GEOGRAFIS_unlocked.pptx
MAINKAN GAME KESUKAN KALIAN DI TANGKI 4D DI JAMIN WD DAN CLIAM BONUSNYA

desain dan analisis algoritma - Sorting.pdf

  • 1. Desain dan Analisis Algoritma: Sorting 1 NUR GHANIAVIYANTO RAMADHAN, S.KOM., M.KOM MARYONA SEPTIARA, S.PD., M.KOM
  • 2. Sorting Sorting didefinisikan sebagai pengurutan sejumlah data berdasarkan nilai kunci tertentu. Pengurutan dapat dilakukan dari nilai terkecil ke nilai terbesar (ascending) atau sebaliknya (descending).
  • 3. Metode Sorting ü Bubble sort ü Selection sort ü Insertion sort ü Quick Sort ü Merge sort 3
  • 4. Bubble Sort Ø Konsep dari ide dasarnya adalah seperti “gelembung air” untuk elemen struktur data yang semestinya berada pada posisi awal. Ø Cara kerjanya adalah dengan berulang-ulang melakukan traversal (proses looping) terhadap elemen-elemen struktur data yang belum diurutkan. Ø Di dalam traversal tersebut, nilai dari dua elemen struktur data dibandingkan. Jika ternyata urutannya tidak sesuai dengan “pesanan”, maka dilakukan pertukaran (swap). 4
  • 5. Contoh Bubble Sort 5 8 3 4 1 6 Looping pertama 8 3 4 1 6 8 3 4 1 6 8 3 1 4 6 8 1 3 4 6 1 8 3 4 6 swap swap swap
  • 6. Contoh Bubble Sort 6 8 3 4 1 6 Looping kedua 1 8 3 4 6 1 8 3 4 6 1 8 3 4 6 1 3 8 4 6 swap
  • 7. Contoh Bubble Sort 7 8 3 4 1 6 Looping ketiga 1 3 8 4 6 1 3 8 4 6 1 3 4 8 6 swap
  • 8. Contoh Bubble Sort 8 8 3 4 1 6 Looping keempat 1 3 4 8 6 1 3 4 6 8 swap
  • 9. Algoritma Bubble Sort 9 1. Lakukan traversal untuk membandingkan dua elemen berdekatan. Traversal ini dilakukan dari belakang. 2. Jika elemen pada TN-1 > TN , maka lakukan pertukaran (swap). Jika tidak, lanjutkan ke proses traversal berikutnya sampai bertemu dengan bagian struktur data yang telah diurutkan. 3. Ulangi langkah di atas untuk struktur data yang tersisa.
  • 10. Program Bubble Sort 10 void bubbleSort(vector<int>& myArr){ for(int index = 0; index < myArr.size()-1; index++){ bool swapped = false; for(int temp = myArr.size()-2; temp >= index; temp--){ if(myArr[temp] > myArr[temp+1]){ swap(myArr[temp+1], myArr[temp]); swapped = true; } } if(swapped == false){ break; } } }
  • 11. Kompleksitas Bubble Sort Bubble sort tergolong algoritma yang paling tidak efisien di antara algoritma sorting dengan kompleksitas O(n2).
  • 12. Selection Sort Ø Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen struktur data. Ø Untuk sorting ascending (menaik), elemen yang paling kecil di antara elemen-elemen yang belum urut, disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks yang disimpan tersebut dengan elemen yang paling depan yang belum urut. Ø Sebaliknya, untuk sorting descending (menurun), elemen yang paling besar yang disimpan indeksnya kemudian ditukar.
  • 13. Contoh Selection Sort 34 42 4 16 21 9 13 34 42 4 16 21 9 13 4 42 34 16 21 9 13 4 9 34 16 21 42 13 4 9 13 16 21 42 34 4 9 13 16 21 42 34 4 9 13 16 21 42 34 4 9 13 16 21 34 42
  • 14. Algoritma Selection Sort 1. Temukan nilai yang paling minimum (atau sesuai keinginan) di dalam struktur data. Jika ascending, maka yang harus ditemukan adalah nilai yang paling minimum. Jika descending, maka temukan nilai yang paling maksimum. 2. Tukar nilai tersebut dengan nilai pada posisi pertama di bagian struktur data yang belum diurutkan. 3. Ulangi langkah di atas untuk bagian struktur data yang tersisa.
  • 15. Program Selection Sort void selectionSort(vector<int>& myArr){ for(int index = 0; index < myArr.size()-1; index++){ int smallest = index; for(int temp = index+1; temp < myArr.size(); temp++){ // figuring out the smallest number in the sub-array(starts after current index) if(myArr[smallest] > myArr[temp]){ smallest = temp; } } swap(myArr[smallest], myArr[index]); } }
  • 16. Kompleksitas Selection Sort Kompleksitas selection sort sama dengan buble sort, yaitu O(n2).
  • 17. Insertion Sort Cara kerjanya pertama dilakukan iterasi, dimana di setiap iterasi insertion sort memindahkan nilai elemen, kemudian menyisipkannya berulang-ulang sampai ke tempat yang tepat. Begitu seterusnya dilakukan. Dari proses iterasi, seperti biasa, terbentuklah bagian yang telah di-sorting dan bagian yang belum.
  • 18. Contoh Insertion Sort 40 2 1 43 3 65 0 -1 58 3 42 4 2 40 1 43 3 65 0 -1 58 3 42 4 1 2 40 43 3 65 0 -1 58 3 42 4 40
  • 19. Contoh Insertion Sort 1 2 3 40 43 65 0 -1 58 3 42 4 1 2 40 43 3 65 0 -1 58 3 42 4 1 2 3 40 43 65 0 -1 58 3 42 4
  • 20. Contoh Insertion Sort 1 2 3 40 43 65 0 -1 58 3 42 4 1 2 3 40 43 65 0 -1 58 3 42 4 1 2 3 40 43 65 0 58 3 42 4 1 2 3 40 43 65 0 -1
  • 21. Contoh Insertion Sort 1 2 3 40 43 65 0 58 3 42 4 1 2 3 40 43 65 0 -1 1 2 3 40 43 65 0 58 42 4 1 2 3 3 43 65 0 -1 58 40 43 65 1 2 3 40 43 65 0 42 4 1 2 3 3 43 65 0 -1 58 40 43 65 1 2 3 40 43 65 0 42 1 2 3 3 43 65 0 -1 58 4 43 65 42 58 40 43 65
  • 22. Program Insertion Sort void insertionSort(vector<int>& myArr){ for(int index = 0; index < myArr.size()-1; index++){ for(int temp = index+1; temp < myArr.size(); temp++){ if(myArr[index] > myArr[temp]){ swap(myArr[index], myArr[temp]); } } } }