Anda di halaman 1dari 19

Algoritma Sorting

Algoritma Basic Sorting


Outline
• Bubble Sort
• Insertion sort
• Selection Sort
Masalah Sorting (Pengurutan)
• Algoritma sorting: algoritma yang meletakkan elemen-elemen yang ada
pada suatu list dengan urutan tertentu.
• Definisi algoritma sorting:
• Input: sederet n angka <a1, a2, …, an>
• Output: permutasi (reordering) <a1’, a2’, …, an’> dari deretan input sedemikian hingga
a1’≤ a2’≤ … ≤ an’.
• Input biasanya berupa array/larik dengan n elemen, tetapi bisa juga
direpresentasikan sebagai linked list.
• Syarat output:
• Non-decreasing order.
• Permutasi dari elemen-elemen input.
Mengapa Sorting ?
• Sorting sering dianggap sebagai masalah fundamental dalam studi
tentang algoritma.
• Aplikasi memerlukan pengurutan informasi.
• Algoritma sering menggunakan sorting sebagai subroutine.
• Terdapat banyak algoritma sorting.
Bubble Sort
• Bubble Sort merupakan teknik pengurutan data yang
membandingkan setiap elemen data dengan seluruh elemen di
dekatnya dan melakukan penukaran jika memenuhi kriteria tertentu
Contoh
• 6,5,4,3,2,1
Langkah-Langkah
1. Akses masing-masing index di dalam array dimulai dari index ke-1
sampai dengan panjang array
2. Akses nilai untuk mengurutkan data dengan panjang yang dimulai
dengan index ke-0 sampai dengan array.length-1
3. Apabila nilai yang ada di dalam index sebelumnya lebih besar
daripada sesudahnya maka akan lakukan swap
4. Lakukan langkah 3 sampai data terurut
Algoritma
void AlgoritmaBubbleSort(int arr[])
for i1 to N
for j=0 to N-1
if (arr[j] > arr[j+1])
Lakukan Swap
Eksekusi
nilai 5 4 3 2 1
indek 0 1 2 3 4

i j if(arrNilai[j]>arrNilai[j+1]) Hasil
0 If(arrNilai[0] > arrNilai[1]) 45321
5 > 4  true  swap
1 if(ArrNilai[1] > arrNilai [2]) 43521
1 5 > 3 trueswap
2 If(arrNilai[2] > arrNilai[3]) 43251
5 > 2 true  swap
3 If(arrNilai[3] > arrNilai[4]) 43215
5 > 1 true  swap
2 0
1
2
3
Insertion Sort
• Insertion sort atau metode seleksi merupakan suatu metode yang
melakukan pengurutan dengan menyisipkan data yang belum terurut
ke dalam bagian data yang sudah terurut
Algoritma Insertion Sort
• Analogi Insertion Sort dengan menggunakan Kartu
• Anggaplah kita ingin mengurutkan satu set kartu dari kartu yang bernilai
paling kecil hingga yang paling besar.
• Dimulai dengan posisi tangan kosong, dan semua kartu berada diatas meja. Dan
anggaplah kita akan menyusun kartu ke tangan kiri kita.
• mengambil kartu pertama dari meja dan meletakannya ke tangan kiri.
• Mengambil kartu kedua dan membandingkannya dengan kartu yang sudah ada di tangan
kiri.
• Jika kartu yang diambil dari meja memenuhi syarat perbandingan, maka kartu tersebut
akan diletakan didepan kartu yang dibandingkan, serta kartu yang lain yang telah
dibandingkan akan bergeser mundur (ke belakang).
Contoh Insertion Sort
• 7,6,5,4,3,2,1
Langkah-langkah Algoritma Insertion Sort
1. Lakukan pengaksesan index untuk mendapatkan nilai di dalam array
di mana dimulai dari 1 sampai dengan panjang elemen array
2. Lakukan pengaksesan nilai di dalam array mulai dari panjang sama
dengan nilai i sampai dengan n >0 dengan i--
3. Lakukan proses perbandingan antara index sesudahnya dengan
sebelumnya, jika nilai sesudahnya ternyata lebih besar daripada
nilai sebelumnya maka akan dilakukan swap (pertukaran)
Algoritma Insertion Sort
public int[] InsertionSort(int[] input)
for i1 to N
for j=i to >0
if (arr[j] < arr[j-1])
Lakukan Swap

return input;

• Best case: sudah terurut: O(n) perbandingan, O(1) swap.


• Worst case: O(n2) perbandingan dan swap.
• Average case: O(n2) perbandingan dan swap.
Latihan
• Dari algoritma insertion sort yang telah dikerjakan, sekarang buat
hasil rincian eksekusinya secara detail apabila nilai yang disimpan di
dalam array adalah {10,9,8,7,6}
Selection Sort
• Algoritma Selection sort memilih elemen maksimum/minimum array,
lalu menempatkan elemen maksimum/minimum itu pada awal atau
akhir array (tergantung pada urutannya ascending/descending).
Selanjutnya elemen tersebut tidak disertakan pada proses
selanjutnya. Karena setiap kali selection sort harus membandingkan
elemen-elemen data, algoritma ini termasuk dalam comparison-
based sorting.
Algoritma Selection Sort
• One of the simplest sorting algorithms
• Merupakan kombinasi antara sorting dan searching
• Untuk setiap proses, akan dicari elemen-elemen yang belum diurutkan yang memiliki
nilai terkecil (Ascending) atau terbesar (Descending) akan dipertukarkan ke posisi
yang tepat di dalam array.
• Misalnya untuk putaran pertama, akan dicari data dengan nilai terkecil dan data ini
akan ditempatkan di indeks terkecil (data[0])/ data pertama, pada putaran kedua
akan dicari data kedua terkecil, dan akan ditempatkan di indeks kedua (data[1])/ data
kedua atau selanjutnya.
• Selama proses, pembandingan dan pengubahan hanya
dilakukan pada indeks pembanding saja, pertukaran data secara fisik terjadi
pada akhir proses. 
Contoh Selection Sort
• [6,5,3,1,8,7,2,4]
Pseudecode Selection Sort
public int[] hitungSelectionSort(int[] input)
int temp;
for(int i0 to N)
for(int j=i+1; to N)
min = i;
if(arr[j] < arr[min])
min = j;
SWAP

Anda mungkin juga menyukai