Kelas : TIF-20B
Npm : 20552011140
Matkul : Algoritma
Tugas :
Carilah 3 metode sorting lainnya dan tuliskan dalam bentuk
power point beserta source code (codingannya), cara dan
analisis tiap-tiap metode sorting yang ada.
Algoritma Pengurutan/Sorting
Sorting :
• Pengertian algoritma sorting adalah kumpulan langkah sistematis atau secara berurutan untuk
memperoleh hasil yang diinginkan. Salah satu contoh dari algoritma untuk langkah ini adalah sorting
(pengurutan) sejumlah data berdasarkan nilai tertentu. Pengurutan dapat dilakukan dari nilai terkecil
ke nilai terbesar atau ( ascending) ke nilai (descending).
• Pengurutan data dalam struktur data sangatlah penting untuk data yang bertipe data numerik atau
karakter.
• Pengurutan (sorting) adalah proses menyusun kembali data yang sebelumnya telah disusun dengan
suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu.
Ada dua macam urutan yang biasa digunakan dalam proses pengurutan yaitu :
• Urutan naik/terbesar ( ascending ) yaitu dari data yang mempunyai nilai paling kecil sampai paling
besar contohnya : 1 5 8 12 17 22 30
• Urutan turun/kecil ( descending ) yaitu data yang mempunyai nilai paling besar sampai paling kecil
contohnya : 24 19 15 9 7 3 1.
You can delete this slide when you’re done editing the presentation.
Metode Pengurutan / Sorting
1. Metode Quick Sort
2. Metode Shell Sort
3. Metode Merge Sort
Kelebihan : Kekurangan :
● Secara umum memiliki kompleksitas ● sedikit kesalahan dalam penulisan program
o(n log n). membuatnya bekerja tidak beraturan (hasilnya
● Algoritmanya sederhana dan mudah tidak benar atau tidak pernah selesai).
diterapkan pada berbagai bahasa ● Memiliki ketergantungan tehadap data yang
pemograman . dimasukkan yang ada dalam kasus.
● Bekerja dengan baik pada berbagai jenis ● Secara umum bersifat tidak stable, yaitu
input data. mengubah urutan input dalam hasil akhirnya
● Melakukan proses langsung pada input(in- (dalam hal inputnya bernilai sama)
place) dengan sedikit tambahan memori ● Pada penerapanya secara rekursif (memanggil
● Dalam prakteknya adalah tercepat dari dirinya sendiri) bila terjadi kasus terburuk dapat
berbagai algoritma pengurutan dengan menghabiskan stack dan memacetkan program.
perbandingan
Contoh Quick Sort
Hasil Code Quick Sort Penjelasan :
• Intinya pada line ke 4-8 artinya adalah sebuah fungsi yang akan
digunakan untuk menampilkan semua data yang ada di dalam array.
• Pada line 10-30 artinya proses sorting akan terjadi dimana kita akan
memilih pivot diujung list, dan membandingkan setiap angka dari
sebelah kiri dan kanan dimana, jika angka lebih kecil dari pivot maka
ia akan ditempatkan disebelah kiri dan jika lebih besar maka akan
ditempatkan disebelah kanan, lalu kita me return pivot (angkapaling
kanan sebagai acuan proses selanjutnya).
• Pada line 32-42 ada fungsi yang bernama recursiv pertama kita akan
melakukan proses pivot jika angka masih belum ter sorting secara
ascending, maka kita harus terus menjalankan fungsinya hingga
semua angka terurut sempurna.
• Pada line 47-52 kita menyiapkan array untuk menampung inputan dari
user dengan inputan banyak array yang akan di sorting.
• Pada line 56-60 kita menginputkan seluruh data mulai dari array [0]
hingga array ke n.
• Dan terakhir pada line 61-63 disini tinggal kita menjalankan fungsi
quick sort dan menampilkannya menggunakan fungsi yang telah
dibuat sebelumnya dan akan dilakukan perulangan pada return
2. Metode Shell Sort
Algoritma Shell Sort ini dikembangkan oleh Donal L. Shell pada tahun 1959, sehingga sering disebut
dengan metode Shell Sort , metode ini mengurutkan data dengan cara membandingkan sautu data
dengan cara membandingkan suatu data dengan data lain yang memiliki jarak tertentu, kemudian
dilakukan penukaran bila diperlukan.
Pengertian:
Shell Sort ( Pertambahan Menurun )
Adalah salah satu algoritma dalam melakukan aorting, atau pengurutan data angka, tehniknya dengan
melakukan perbandingan angka dengan jarak tertentu, jarak disini diartikan jarak posisi antara 2
bilangan yang ingin dibandingkan
Proses pengurutannya
1. Untuk Jarak (N/2) + 1:
• Data pertama (i=0) dibandingkan dengan data dengan jarak (N/2)+1. apabila data pertama lebih besar dari data ke
(N/2)+1 tersebut maka kedua data tersebut ditukar.
• Kemudian data kedua (i=1) dibandingkan dengan jarak yang sama yaitu (N/2)+1)= elemen ke-(i+N/2)+1, demikian
seterusnya sampai seluruh data dibandingkan sehingga semua data ke-I selalu lebih kecil dari pada data ke-
(i+N/2)+1.
Contohnya
2.Ulangi langkah-langkah diatas untuk jarak = (N/4)+1 kemudian lakukan pembandingan dan pengurutan sehingga
semua data ke-i lebih kecil dari pada data ke-(i+N/4)+1.
Contonya
3. Ulangi langkah-langkah di atas untuk jarak = (N/8)+1 kemudian lakukan pembandingan dan pengurutan
sehingga semua data ke-i lebih kecil dari pada data ke-(i+N/8)+1.
Contohnya
Kelebihan dan Kekurangan
Kelebihan : Kekurangan :
● Algoritma ini sangat rapat dan mudah ● Membutuhkan method tambahan
untuk di implementasikan ● Sulit untuk membagi masalah
● Operasi pertukarannya hanya dilakukan
sekali saja
● Waktu pengurutan dapat lebih ditekan
● Mudah menggabungkannya kembali
● Kompleksitas selection sort relatif lebih
kecil.
Contoh Shell Sort
Hasil Code Shell Sort Penjelasan :
1. Divide (membagi) : pada langkah ini kita memecahkan masalah atau data ke dalam bentuk yang sama,
tetapi dalam ukuran yang lebih kecil. Pemecahan langkah biasanya dilakukan dengan menggunakan
algoritma rekursif, sampai ukuran data menjadi sangat kecil dan dapat diselesaikan dengan algoritma
sederhana.
2. Conquer (menaklukkan) : dalam langkah ini kita mencoba menyelesaikan masalah atau data yang telah
dipecahkan pada langkah pertama, dengan menggunakan algoritma sederhana.
3. Combine (menggabungkan) : setelah menjalankan langkah conquer tentunya kita harus menggabungkan
kembali hasil dari masing-masing pecahan yang ada untuk medapatkan hasil akhir kalkulasi
Kelebihan : Kekurangan :
• dibanding dengan algoritma • Terlalu banyak menggunakan ruang
lainnya merge sort termasuk memori
algoritma yang sangat efisien • Membutuhkan lebih banyak ruang dari
penggunaannya sebab setiap pada jenis sorting lainnya.
list selalu dibagi menjadi list • Jika data sudah tersorting sejak awal,
yang lebih kecil, kemudian maka ia akan tetap melakukan sorting dari
digabungkan lagi sehingga tidak awal
perlu melakukan banyak • Performa buruk untuk list dengan index
perbandingan. sedikit dibanding algoritma sorting lainnya.
• Cocok untuk sorting data yang
biasanya diakses secara
sequentially (berurutan).
• Cocok untuk sorting akses
datanya lambat.
Contoh Merge Sort
Hasil Code Merge Sort Penjelasan :
• Menggunakan Perulangan for bersarang
untuk mengambil input data array 2D.
• Menggunakan while untuk mencetak
anggota array 2D.
• Menggunakan metode merge sort untuk
mengurutkan array 2D Yang telah
dimasukkan.