Disusun Oleh:
Febi Nurhayati, 20110190
Iffah Nurlatifah, 20110188
yang diklasifikasikan sebagai exchange sort melakukan pembandingan antar data, dan melakukan pertukaran apabila urutan yang
didapat belum sesuai. Contohnya adalah : Bubble sort, Cocktail sort, Comb sort, Gnome sort, Quicksort.
2. Selection Sort
Prinsip utama algoritma dalam klasifikasi ini, adalah mencari elemen yang tepat untuk diletakkan di posisi yang telah diketahui, dan
meletakkannya di posisi tersebut setelah data tersebut ditemukan. Algoritma yang dapat diklasifikasikan ke dalam kategori ini adalah :
3. Insertion Sort
Algoritma pengurutan yang diklasifikasikan ke dalam kategori ini mencari tempat yang tepat untuk suatu elemen data yang telah
diketahui ke dalam subkumpulan data yang telah terurut, kemudian melakukan penyisipan (insertion) data di tempat yang tepat tersebut.
Contohnya adalah :
Insertion sort, Shell sort, Tree sort, Library sort, Patience sorting
4. Merge Sort
Dalam algoritma ini kumpulan data dibagi menjadi subkumpulan subkumpulan yang kemudian subkumpulan
tersebut diurutkan secara terpisah, dan kemudian digabungkan kembali dengan metode merging. Dalam
kenyataannya algoritma ini melakukan metode pengurutan merge sort juga untuk mengurutkan subkumpulan data
tersebut, atau dengan kata lain, pengurutan dilakukan secara rekursif. Contohnya adalah : Merge sort.
5. Non-Comparison Sort
Sesuai namanya dalam proses pengurutan data yang dilakukan algoritma ini tidak terdapat pembandingan
antardata, data diurutkan sesuai dengan pigeon hole principle. Dalam kenyataanya seringkali algoritma non-
comparison sort yang digunakan tidak murni tanpa pembandingan, yang dilakukan dengan menggunakan algoritma-
algoritma pengurutan cepat lainnya untuk mengurutkan subkumpulan-subkumpulan datanya. Contohnya adalah :
Radix sort, Bucket sort, Counting sort, Pigeonhole sort, Tally sort.
Bubble Sort
Bubble Sort mengurutkan data dengan cara membandingkan
elemen sekarang dengan elemen berikutnya.
Jika elemen sekarang lebih besar dari elemen berikutnya
maka kedua elemen tersebut ditukar, jika pengurutan
ascending.
Jika elemen sekarang lebih kecil dari elemen berikutnya,
maka kedua elemen tersebut ditukar, jika pengurutan
descending
Ketika satu proses telah selesai, maka bubble sort akan
mengulangi proses, demikian seterusnya.
Kapan berhentinya? Bubble sort berhenti jika seluruh array
telah diperiksa dan tidak ada pertukaran lagi yang bisa
dilakukan, serta tercapai perurutan yang telah diinginkan.
Selection Sort
Merupakan kombinasi antara sorting dan searching,
Selection sort adalah algoritma pengurutan yang
sederhana namun sangat efisien dalam penggunaanya,
juga memiliki penulisan code yang simpel.
• Untuk setiap proses, akan dicari elemen-elemen
yang belum diurutkan yang memiliki nilai terkecil
atau terbesar 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]), pada putaran kedua
akan dicari data kedua terkecil, dan akan
ditempatkan di indeks kedua (data[1]).
• Selama proses, pembandingan dan pengubahan
hanya dilakukan pada indeks pembanding saja,
pertukaran data secara fisik terjadi pada akhir
proses.
Insertion Sort
selembar demi selembar kartu diambil
dan disisipkan (insert) ke tempat yang
seharusnya.
• Pengurutan dimulai dari data ke-2 sampai
dengan data terakhir, jika ditemukan
data yang lebih kecil, maka akan
ditempatkan (diinsert) diposisi yang
seharusnya.
• Pada penyisipan elemen, maka elemen-
elemen lain akan bergeser ke belakang
Implementasi Bubble Sort
Contoh script dengan phyton Output dari hasil penerapan bubble sort di samping
def bs(list):
iterasi = 0
for j in range (len(list)-1):
for i in range(len(list)-1-j):
if list[i]>list[i+1]:
list[i],list[i+1]=list[i+1],list[i]
iterasi+=1
print(iterasi, list)
list = [9,17,2,42,1,7,3,4,67]
print('Data yang akan di sort :', list )
print('Bubble Sort :')
bs(list)
Implementasi Selection Sort
Contoh script dengan phyton Output dari hasil penerapan selection sort di samping
def ss(list):
iterasi = 0
for i in range(len(list)-1):
minimal = i
for j in range(i+1,len(list)):
if list[j] < list[minimal]:
minimal = j
iterasi += 1
list[minimal],list[i]=list[i], list[minimal]
print(iterasi, list)
list=[98,6,33,11,57,33,44,55,29,76,60,81]
print('Data yang akan di sort :', list )
print('Selection Sort :')
ss(list)
Implementasi Insertion Sort
Contoh script dengan phyton Output dari hasil insertion sort di samping
def insertion(list):
for j in range(len(list)-1,-1,-1):
value = list[j]
hole = j
while hole <(len(list)-1) and
list[hole+1]>list[hole]:
list[hole] = list[hole+1]
hole = hole+1
list[hole] = value
print(list)
list = [2,54,38,76,23,56,84,90]
print("Data yang akan di sort", list)
print("Insertion Sort :")
insertion(list)
Terima Kasih