Anda di halaman 1dari 17

Nama : Tia Aulia Azahra

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

1. Metode Quick Sort


Algoritma quick sort diperkenalkan pertema kali oleh C.A.R Hoare pada tahun 1960 dan dimuat
sebagai artikel di computer journal 5 april 1962. bentuknya yang sederhana, efisien, dan efektif
dengan cepat membuatnya menjadi algoritma pengurutan (sorting) yang paling banyak digunakan,
terutama dalam bahasa pemograman.
Quick sort dengan membagi elemen tabel hanya dengan memperhatikan posisi dalam elemen
tersebut. Disebut quick sort karena algoritma quick sort mengurutkan dengan sangat cepat.
Algoritma quick sort bekerja menurut prinsip bagi dan pecahkan dengan demikian hal mendasar
dalam pemilihan algoritma quick sort adalah pemilihan elemen dan pembuatan partisi sedemikian
rupa sehingga elemen dengan nilai kecil ada di bagian kiri elemen dengan nilai besar ada pada
bagian kanan.
 Quick Sort ( Pengurutan Berdasarkan Pembagian )
Quick sort merupakan suatu algoritma pengurutan data yang menggunakan tehnik pemecahan data
menjadi partisi-partisi, sehingga metode ini disebut juga dengan nama partition exchange sort, untuk
melakukan pengurutan pertama-tama sebuah elemen (pivot) dipilih dari data kemudian elemen-
elemen dipilih dari data kemudian elemen tersebut diurutkan diatur sedemikian rupa.
 Algoritma quick sort
• Pilih satu elemen sacara acak sebagai pivot yang dipilih
• Pindahkan semua elemen yang lebih kecil ke sebelah kiri pivot dan semua elemen yang lebih
besar kesebelah kanan pivot. Elemen yang nilai nya sama bisa disimpan pada salah satu
elemen.
• Lakukan sort secara rekursif terhadap sub-array sebelah kiri dan kanan pivot.
 Tips pemilihan pivot
• Pivot adalah elemen pertama,elemen terakhir,elemen tengah tabel , agar tersusun rapih lebih
baik elemen tabel tersusun secara acak, tidak terlalu bagus jika elemen table sudah terurut
• Dipilih secara acak dari salah satu elemen tabel.
Kelebihan dan Kekurangan

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 :

• Bagian awal adalah untuk


menampilkan semua data pada array.
• Kemudian data dipindah menjadi
bagian kiri dan kanan (low and high)
sebagai acuan proses pemograman.
• Inputan array yang dimasukkan akan
ditampung untuk di sorting secara
menaik dan akan dilakukan
perulangan pada return.
3. Metode Merge Sort
Merge sort merupakan algoritma pengurutan dalam ilmu komputer yang dirancang untuk memenuhi
kebutuhan pengurutan atas suatu rangkaian data yang tidak memungkinkan untuk ditampung dalam
memori komputer karena jumlahnya yang terlalu besar, Algoritma Merge Sort ini ditemukan oleh John
Von Neumann pada tahun 1945.

 Merge Sort ( Pengurutan Berdasarkan Penguasaan )


• Merge Sort juga menggunakan prinsip devide and conquer, merge sort membagi array menjadi dua
secara terus menerus hingga hanya tersisa satu elemen pada sub-array yang terbentuk. Kemudian
elemen-elemen tersebut diurutkan lalu di gabung secara terus menerus hingga terbentuk array
dengan ukuran yang sama dengan array asal.
• Algoritma pengurutan data merge sort dilakukan dengan menggunakan cara divide and conquer yaitu
membagi dan menaklukkan.
Ada 3 langkah untuk menggunakan cara divide dan conquer yaitu:

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

• Jka bernilai 0 atau 1, maka array sudah terurut


sebaliknya:
Cara kerja Merge Sort • Bagi array yang tidak terurut menjadi 2 sub-array
dimana bagian pertama merupakan setengah (jika
data genap) atau setengah minus 1 (jika data ganjil)
dari seluruh data.
• Urutkan tiap sub-array, jika sub-array tidak cukup
kecil lakukan rekursif langkah 2 terhadap sub-array.
Kelebihan dan Kekurangan

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.

Anda mungkin juga menyukai