SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
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).

Contenu connexe

Similaire à desain dan analisis algoritma - Sorting.pdf

Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadaniaTugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadania
Mutia Rahmadania
 
11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian
Wandi Parlente
 
Bab 2 sorting array (1)
Bab 2 sorting array (1)Bab 2 sorting array (1)
Bab 2 sorting array (1)
Fahuda E
 

Similaire à desain dan analisis algoritma - Sorting.pdf (20)

Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadaniaTugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadania
 
Asd sesi sorting part1
Asd sesi sorting part1Asd sesi sorting part1
Asd sesi sorting part1
 
Algoritma sorting
Algoritma sortingAlgoritma sorting
Algoritma sorting
 
Metode sorting dan aplikasinya2
Metode sorting dan aplikasinya2Metode sorting dan aplikasinya2
Metode sorting dan aplikasinya2
 
Struktur_Data_Pertemuan_4.pptx
Struktur_Data_Pertemuan_4.pptxStruktur_Data_Pertemuan_4.pptx
Struktur_Data_Pertemuan_4.pptx
 
Bab 2 sorting array
Bab 2 sorting arrayBab 2 sorting array
Bab 2 sorting array
 
kiki andriani , 5 metode sorting
kiki andriani , 5 metode sortingkiki andriani , 5 metode sorting
kiki andriani , 5 metode sorting
 
11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian
 
Tugas kelompok 6
Tugas kelompok 6Tugas kelompok 6
Tugas kelompok 6
 
SD pert 6 sorting.pptx
SD pert 6 sorting.pptxSD pert 6 sorting.pptx
SD pert 6 sorting.pptx
 
Algoritma dan Pemrograman Cp. 6 Sorting (ralat).ppt
Algoritma dan Pemrograman Cp. 6 Sorting (ralat).pptAlgoritma dan Pemrograman Cp. 6 Sorting (ralat).ppt
Algoritma dan Pemrograman Cp. 6 Sorting (ralat).ppt
 
Kelompok 6
Kelompok 6Kelompok 6
Kelompok 6
 
tugas algoritma
tugas algoritmatugas algoritma
tugas algoritma
 
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanMateri sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
 
Bab 2 sorting array (1)
Bab 2 sorting array (1)Bab 2 sorting array (1)
Bab 2 sorting array (1)
 
Pertemuan viii Sorting
Pertemuan viii SortingPertemuan viii Sorting
Pertemuan viii Sorting
 
Buku struktur data Sorting
Buku struktur data SortingBuku struktur data Sorting
Buku struktur data Sorting
 
Algoritma Sorting
Algoritma SortingAlgoritma Sorting
Algoritma Sorting
 
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
 

Plus de septiara5

Plus de septiara5 (13)

TECHNOPRENEURSHIP Ekosistem Ekonomi Digital
TECHNOPRENEURSHIP Ekosistem Ekonomi DigitalTECHNOPRENEURSHIP Ekosistem Ekonomi Digital
TECHNOPRENEURSHIP Ekosistem Ekonomi Digital
 
Manajemen Proyek Perangkat Lunak__12.pptx
Manajemen Proyek Perangkat Lunak__12.pptxManajemen Proyek Perangkat Lunak__12.pptx
Manajemen Proyek Perangkat Lunak__12.pptx
 
Manajemen Proyek Perangkat Lunak _13.pptx
Manajemen Proyek Perangkat Lunak _13.pptxManajemen Proyek Perangkat Lunak _13.pptx
Manajemen Proyek Perangkat Lunak _13.pptx
 
1. Desain dan analisis algoritma__ pengantar algoritma.pdf
1. Desain dan analisis algoritma__ pengantar algoritma.pdf1. Desain dan analisis algoritma__ pengantar algoritma.pdf
1. Desain dan analisis algoritma__ pengantar algoritma.pdf
 
kecerdasan komputasi_ It dalam era revolusi industri 4.0, dan society 5.0
kecerdasan komputasi_ It dalam era revolusi industri 4.0, dan society 5.0kecerdasan komputasi_ It dalam era revolusi industri 4.0, dan society 5.0
kecerdasan komputasi_ It dalam era revolusi industri 4.0, dan society 5.0
 
Manajemen layanan teknologi informasi__Tata kelola
Manajemen layanan teknologi informasi__Tata kelolaManajemen layanan teknologi informasi__Tata kelola
Manajemen layanan teknologi informasi__Tata kelola
 
Technopreneurship__part 3__macam-macam E-commerce
Technopreneurship__part 3__macam-macam E-commerceTechnopreneurship__part 3__macam-macam E-commerce
Technopreneurship__part 3__macam-macam E-commerce
 
Technopreneurship__part 2__Business adoption of digital technologie
Technopreneurship__part 2__Business adoption of digital technologieTechnopreneurship__part 2__Business adoption of digital technologie
Technopreneurship__part 2__Business adoption of digital technologie
 
Web Service dan service oriented architecture
Web Service dan service oriented architectureWeb Service dan service oriented architecture
Web Service dan service oriented architecture
 
Konsep dasar information technology service management
Konsep dasar information technology service managementKonsep dasar information technology service management
Konsep dasar information technology service management
 
pertemuan 1__Desain dan analisis algoritma
pertemuan 1__Desain dan analisis algoritmapertemuan 1__Desain dan analisis algoritma
pertemuan 1__Desain dan analisis algoritma
 
Technopreneurship__part 1__ konsep Technopreneurship.pptx
Technopreneurship__part 1__ konsep Technopreneurship.pptxTechnopreneurship__part 1__ konsep Technopreneurship.pptx
Technopreneurship__part 1__ konsep Technopreneurship.pptx
 
MLTI_1.Konsep dasar it service management.ppt
MLTI_1.Konsep dasar it service management.pptMLTI_1.Konsep dasar it service management.ppt
MLTI_1.Konsep dasar it service management.ppt
 

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]); } } } }