Pengertian Algoritma Pengurutan (Sorting)

Pengertian Algoritma Pengurutan (Sorting)

SORTING Pengertian Algoritma Pengurutan (sorting) • Dalam ilmu komputer, algoritma pengurutan adalah • algoritma yang meletakkan elemen-elemen suatu kumpulan data dalam urutan tertentu. Atau • proses pengurutan data yg sebelumnya disusun secara acak sehingga menjadi tersusun secara teratur menurut suatu aturan tertentu. • Yang pada kenyataannya ‘urutan tertentu’ yang umum digunakan adalah secara terurut secara numerikal ataupun secara leksikografi (urutan secara abjad sesuai kamus). • Ada 2 jijenis sorting : Ascen ding (ik)(naik) & Descen ding (turun) Klasifikasi AlgoritmaPengurutan (sorting) y Exchange Sort melakukan pembandingan antar data, dan melakukan pertukaran apabila urutan yang didapat belum sesuai. Contohnya : Bubble sort, Cocktail sort, Comb sort, Gnome sort, Quicksort. y Selection Sort mencari elemen yang tepat untu k dilet akk an di posisi yang telah diketahui, dan meletakkannya di posisi tersebut setelah data tersebut ditemukan. Contohnya :Selection sort, Heapsort, Smoothsort, Strand sort y Insertion Sort 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 sor, Shell sort, Tree sort, Library sort, Patience sorting. y Merge Sort dtdata dibidibagi menjdijadi subkumpu lan-subkumpul an yang kdikemudian subkumpulan tersebut diurutkan secara terpisah, dan kemudian digabungkan kembali dengan metode merging. algoritma ini melakukan metode pengurutan merge sort juga untuk mengurutkbkldkan subkumpulandata terse but, atau dengan klikata lain, pengurutan dilakukan secara rekursif. Contohnya adalah : Merge sort. y Non-Comparison Sort proses pengurutan data yang dilakukan algoritma ini tidak terdapat pembandingan antardata, data diurutkan sesuai dengan pigeon hole principle. Contohnya adalah : Radix sort, Bucket sort, Counting sort, Pigeonhole sort, Tally sort. METODE SORTING 1. RADIX SORT Ide Dasar y Ide dasar dari metode Radix sort ini adalah mengkategorikan data-data menjadi sub kumpulan subkumpulan data sesuai dengan nilai radix-nya, mengkktkonkatenasi nya, kemudi an mengkategorikannya kembali berdasar nilai radix lainnya. Implementasi Radix Sort • Contoh imppyglementasi yang akan dilakukan adalah implementasi pada bilangan bulat positif menggunakan salah satu algoritma pengurutan radidix sort. • Contohnya adalah pengurutan sebuah kumpulan data bilangan bulat dengan jumlah digit maksimal 3 Pertama kali, data dibagi-bagi sesuai dengan digit terkanan : y Hasil pengkategorian tersebut lalu digabung kembali dengan metode konkatenasi menjadi : y Kemudian pengkategorian dilakukan kembali,namun kali ini berdasar digit kedua atau digit tengah, dan jangan lupa bahwa urutan pada tiap subkumpulan data harus sesuai dengan urutan kemunculan pada kumpulan data Yang kemudian dikonkatenasi kembali menjadi Kemudian langgg,gkah ketiga, atau langkah terakhir pada contoh ini adalah pengkategorian kembali berdasar digit yang terkiri, atau yang paling siifikignifikan y Yang kemudian dikonkatenasi lagi menjadi y Yang merupakan hasil akhir dari metode pengurutan ini. Di mana data telah terurut dengan metode radix sort. Algoritma dan Kompleksitas Waktu Radix Sort y Imppglementasi dari algoritma tersebut dibuat menggunakan bahasa Pascal, yang direalisasikan dengan menggunakan queue sebagai representasi tiap ka tegor i radix untktuk pengktkategor ian. y Array A adalah array input, dan array B adalah array A yang sudah terurut. Procedure RadixSort (A : TArray; var B : TArray; d : byte); var KatRadix : array [0..9] of Queue; i, x, ctr : itinteger; pembagi : longword; begin {--- mengkopi A ke B ---} for i:=1 to n do B[i] := A[i]; pembagi := 1; for x:=1 to d do begin {--- iiiliinisialisas i KRdiKatRadix ---} for i:=0 to 9 do InitQueue (KatRadix[i]); {--- dikategorikan ---} for i:=1 to n do Enqueue (KatRadix [(B[i] div pembagi) mod 10], B[i]); B[i] := 0; {--- dikonkat ---} ctr := 0; for i:=0 to 9 do begin while (NOT IsQueueEmpty (KatRadix[i])) do begin ctr := ctr + 1; B[ctr]:=DeQueue (KatRadix [i]); end; end; pembagi := pembagi * 10; end; end; METODE SORTING 2. BUBLE SORT Ide Bubble Sort o Algoritma dimulai dari elemen paling awal. o 2 buah elemen pertama dari list dibandingkan. o Jika elemen pertama lebih besar dari elemen kedua, dilakukan pertukaran. o Langkah 2 dan 3 dilakukan lagi terhadap elemen kedua dan ketigg,a, seterusny a sam pai ke u jun g elemen o Bila sudah sampai ke ujung dilakukan lagi ke awal sampai tidtidkak ada terj jdiadi lliagi pertktukaran elemen. o Bila tidak ada pertukaran elemen lagi, maka list elemen sudah terurut. Algoritma Bubble Sort y Setiap pasangan data: x[j] dengan x[j-1], untuk semua i=1,...,n-1 harus memenuhi keterurutan, yaitu x[j] > x[j-1]. y Apablbila ti da k memenu hi ma ka posisi k ed ua d ata harus ditukar. y UtkUntuk pemrograman kikonvensiona l maka pemeriksaan-pemeriksaan pasangan tersebut harus dilakukan satu demi satu, misalnya oleh bubble-sort dilakukan dari kanan ke kiri serta di dalam sejumlah iterasi. y Pada iterasi ke-i, pemeriksaan tsb. dilakukan pula dalam loop-for sbb. deskripsi adatukar true I 1 While (I<n) and (adatukar) do J 1 Adatukar false While j <= (n-I) do If x[j] > x[j+1] then Adatukar true temp x[j] X[j] x[j+1 ] x[j+1] temp endif j j+1 endwhile i i+1 endwhile y Loop-for tersebbggbgut akan menggeser bilangan terkecil ke posisi i. y Loop-for dilakukan hanya sampai ke i karena pada iterasi ke-i data dalam x[0], x[1], ..., x[I 1] merupakan yang paling kecil dan sudah terurut hilhasil pengeseran yang dilkkdilakukan setiap loop sebelumnya. y Oleh sebab itu iterasi hanya dilakukan untuk harga i=0, 1, ..., n-2 atau sampai tidak terjadi penukaran dalam suatu iterasi. Implementasi Bubble Sort Pada gambar di bawah, pegecekan dimulai dari data yang paling akhir, kemudian di bandingkan dengan data di depannya, jika data di depannya lebih besar maka akan ditukar. Tidak ada penukaran karena 3<8 Pengurutan Berhenti Di Sini •Pada proses kedua, pengecekan dilakukan sampai dengan dat a ke-2 karena ddtata pertama pasti sudah paling kecil. Pengurutan Berhenti Di Sini Tidak ada penukaran karena 10<15 Pengurutan berhenti di sini Pengurutan berhenti di sini y Keuntungggan lain dari algoritma ini adalah da pjgpat dijalankan dengan cukdfkkup cepat dan efisien untuk mengurutk klan list yang urutannya sud dhah hampir benar. y Selain kasus terbaik tersebut, komleksitas untuk algoritma ini adalah O(n²). y Karenanya algoritma ini termasuk sangat tidak efisien untuk dilakukan, apalagi jika pengurutan dilakukan terhadap elemen yang banyak jumlahnya. y Biasanya bubble sort digunakan untuk mengenalkan konsep dari sorting algoritma pada pendidikan komputer karena idenya yang cukup sederhana. METODE SORTING 3. SELECTION SORT PENDAHULUAN y Metode selection sort merupakan perbaikan dari metode bubble sort dengan mengurangi jumlah perbandingan . y Selection sort merupakan metode pengurutan yang mencari nilai data terbesar atau terkecil dan kemudian menempatkannya pada posisi yang sebenarnya, dimulai dari data diposisi 0 hingga data diposisi N-1. y Sedangkan metode insertion sort adalah metode pengurutan yang biasa dipakai oleh pemain kartu dalam mengurutkan kartunya, yaitu menyisipkan kartu dengan nilai yang lebih kecil ke posisi sebelum kartu pembandingnya. y Selection Sort merupakan kombinasi antara sorting dan searching. y 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. y 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]). y Selama proses, pembandingan dan pengubahan hanya dilakukan pada indeks pembanding saja, pertukaran data secara fisik terjadi pada akhir proses. y Tehnik pengurutan dgn cara pemilihan elemen atau proses keejarja dgnmemilih eeelem en data terk ecil utkut keeudamudian diban ding kan & ditu kar kan dgn elemen pddd data awal, dst s/d seluruh elemen shg akan menghasilkan pola data yg telah disort. y Kelebihan dan kekurangan Selection Sort: { Kompleksitas selection sort relatif lebih kecil. { Mudah menggabungkannya kembali, tetapi sulit membagi masalah. { Membutuhkan method tambahan. y Kondisi awal: { Unsorted list = data { Sorted list = kosong y Ambil yang terbaik (select) dari unsorted list, tambahkan di belakang sorted list. y LkkLakukan terus sampai unsortdted litlist hbihabis. Selection sort contoh 40 2 1 43 3 65 0 -1 58 3 42 4 40 2 1 43 3 4 0 -1 58 3 42 65 40 2 1 43 3 4 0 -1 42 3 58 65 40 2 1 3 3 4 0 -1 42 43 58 65 Selection sort: Contoh (lanj.) 40 2 1 3 3 4 0 -1 42 43 58 65 -1 2 1 3 3 4 0 40 42 43 58 65 -1 2 1 3 3 0 4 40 42 43 58 65 -1 2 1 0 3 3 4 40 42 43 58 65 Selection sort: Contoh (lanj.) -1 2 1 0 3 3 4 40 42 43 58 65 -1 0 1 2 3 3 4 40 42 43 58 65 -1 0 1 2 3 3 4 40 42 43 58 65 -1 0 1 2 3 3 4 40 42 43 58 65 -1 0 1 2 3 3 4 40 42 43 58 65 METODE SORTING 4. INSERTION SORT Insertion Sort y Prinsip dasar Insertion adalah secara berulang- ulang menyiikisipkan / memasukan setiap elemen. ke dlm posisinya / tempatnya yg benar. y Mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu diambil dan disisipkan (insert) ke tempat yang seharusnya. y Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya. PdPada penyiiisipan elemen, maka

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    46 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us