Pengertian Algoritma Pengurutan

dokumen-dokumen yang mirip
Pengkajian Algoritma Pengurutan-Tanpa-Pembandingan Counting Sort dan Radix Sort

BAB 2 LANDASAN TEORI

PERTEMUAN 10 METODE DEVIDE AND CONQUER

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

PERTEMUAN 10 METODE DEVIDE AND CONQUER

ALGORITMA PENGURUTAN & PENCARIAN

SORTING (PENGURUTAN DATA)

STRUKTUR DATA SORTING ARRAY

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

BAB II TINJAUAN PUSTAKA

METODE DEVIDE AND CONQUER

Modul 8 SORTING (PENGURUTAN)

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

STRUKTUR DATA (3) sorting array. M.Cs

BAB 8 SORTING DAN SEARCHING

7. SORTING DAN SEARCHING

Algoritma Sorting. Ahmad Kamsyakawuni, S.Si, M.Kom. Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember

SORTING. Brigida Arie Minartiningtyas, M.Kom

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

BAB 2 LANDASAN TEORI

SORTING (Pengurutan)

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

Pengurutan (Sorting) Algoritma Pemrograman

Algoritma dan Pemrograman Sorting (Pengurutan) IS1313. Oleh: Eddy Prasetyo N

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh :

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

Gambar 13.1 Ilustrasi proses algoritma sorting

Outline STRUKTUR DATA. VII. Sorting

SORTING (BAGIAN II) Proses kelima

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI

Algoritma Bubble Sort dan Quick Sort

Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting)

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Algoritma dan Struktur Data. Searching dan Sorting

Pengurutan (Sorting) Keuntungan Data Terurut. Pengurutan Terbagi Dua Kelompok:

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 12 & 13

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

Algoritma dan Struktur Data

Analisis Algoritma. Jimmy Tirtawangsa. Universitas Telkom 2014

MODUL IV PENCARIAN DAN PENGURUTAN

STRATEGI DIVIDE AND CONQUER

Modul Praktikum Algoritma dan Struktur Data

BAB VI Pengurutan (Sorting)

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

Kompleksitas Algoritma Sorting yang Populer Dipakai

: Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Sorting. Quick Sort

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

DATA SORTING. Altien Jonathan Rindengan, S.Si, M.Kom

BAB VI SORTIR ATAU PENGURUTAN

BAB V SORT. Proses penukaran tidak dapat langsung dilakukan dengan cara : nilai[1] = nilai[2]; nilai[2] = nilai[1];

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

Heap Tree dan Kegunaannya dalam Heap Sort

BAB I PENDAHULUAN.

Sorting Algorithms. Divide and Conquer

SEARCHING & SORTING. Pendahuluan

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Kompleksitas Algoritma Dalam Algoritma Pengurutan

Sorting Algorithms. Definisi

BAB VII ALGORITMA DIVIDE AND CONQUER

Jurnal Mahajana Informasi, Vol.1 No 2, 2016 e-issn: SIMULASI PENGURUTAN DATA DENGAN ALGORITMA HEAP SORT

ARRAY STATIS. Type namatype_array = array [1..maks_array] of tipedata. nama_var_array : namatype_array {indeks array dari 1 sampai maksimum array}

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

PENGURUTAN DATA 2.1 Definisi Pengurutan 2.2 Metode-metode Pengurutan

PENGURUTAN (SORTING) 1. Introduction 2. Bubble Sort 3. Selection Sort 4. Insertion Sort

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

Analisis Kecepatan Sorting Dengan Notasi Big O

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

Sorting Algorithms. Buble Sort

Array (Tabel) bagian 2

BAB VI SEARCHING (PENCARIAN)

BAB V SORTING (PENGURUTAN) INTERNAL

Pengurutan pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Algoritma Heap Sort. Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung

HEAP. Heap dan Operasinya. Oleh Andri Heryandi

Alpro & Strukdat 1 C++ (Sorting) Dwiny Meidelfi, M.Cs

Algoritma Sorting (Selection Insertion)

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3)

Array ARRAY BERDIMENSI SATU. Representasi (Pemetaan) di memori. Lihat gambar dibawah ini, nilai data A (18) dismpan mulai dari alamat 1136 di memori.

BAB 2 SORTING (PENGURUTAN)

Nama : Suseno Rudiansyah NPM : Kelas : X2T Prodi : Teknik Informatika Tugas : Kuis Algoritma 2

ANALISIS ALGORITMA BINARY SEARCH

Powered by icomit.wordpress.com

Penerapan Pohon Dalam Heap Sort

Data Structure SORTING. Chapter 11. Dahlia Widhyaestoeti, S.Kom

PERTEMUAN 15 REVEW/QUIZ

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

Algoritma dan Pemrograman Array/Tabel[2] Oleh: Eddy Prasetyo N

ANALISIS PERBANDINGAN METODE ALGORITMA QUICK SORT DAN MERGE SORT DALAM PENGURUTAN DATA TERHADAP JUMLAH LANGKAH DAN WAKTU

Sorting. Pertemuan ke 14.

Algoritma Divide and Conquer (Bagian 2)

Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya

Transkripsi:

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 jenis sorting : Ascending (naik) & Descending (turun)

Klasifikasi AlgoritmaPengurutan (sorting) 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. Selection Sort mencari elemen yang tepat t untuk diletakkan di posisi yang telah diketahui, dan meletakkannya di posisi tersebut setelah data tersebut ditemukan. Contohnya :Selection sort, Heapsort, Smoothsort, Strand sort

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. Merge Sort data dibagi i menjadi subkumpulan-subkumpulan l yang kemudian subkumpulan tersebut diurutkan secara terpisah, dan kemudian digabungkan kembali dengan metode merging. algoritma ini melakukan metode pengurutan merge sort juga untuk mengurutkan subkumpulandata tersebut, atau dengan kata lain, pengurutan dilakukan secara rekursif. Contohnya adalah : Merge sort.

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 Ide dasar dari metode Radix sort ini adalah mengkategorikan data-data menjadi sub kumpulan subkumpulan data sesuai dengan nilai radix-nya, mengkonkatenasinya, k kemudian mengkategorikannya kembali berdasar nilai radix lainnya.

Implementasi Radix Sort Contoh implementasi yang akan dilakukan adalah implementasi pada bilangan bulat positif menggunakan salah satu algoritma pengurutan radix sort. Contohnya adalah pengurutan sebuah kumpulan data bilangan bulat dengan jumlah digit maksimal 3

Pertama kali, data dibagi-bagi sesuai dengan digit terkanan :

Hasil pengkategorian tersebut lalu digabung kembali dengan metode konkatenasi menjadi : Kemudian pengkategorian dilakukan 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 langkah ketiga, atau langkah terakhir pada contoh ini adalah pengkategorian kembali berdasar digit yang terkiri, atau yang paling signifikan ifik

Yang kemudian dikonkatenasi lagi menjadi Yang merupakan hasil akhir dari metode Yang merupakan hasil akhir dari metode pengurutan ini. Di mana data telah terurut dengan metode radix sort.

Algoritma dan Kompleksitas Waktu Radix Sort Implementasi dari algoritma tersebut dibuat menggunakan bahasa Pascal, yang direalisasikan dengan menggunakan queue sebagai representasi tiap kategori radix untuk pengkategorian. 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 : integer; 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 { i i i li i K R di } {--- inisialisasi KatRadix ---} for i:=0 to 9 do InitQueue (KatRadix[i]); {--- dikategorikan ---} for i:=1 to n do 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 dilakukan pertukaran. o Langkah 2 dan 3 dilakukan lagi terhadap elemen kedua dan ketiga, seterusnya sampai ke ujung elemen o Bila sudah sampai ke ujung dilakukan lagi ke awal sampai tidak ada terjadi lagi pertukaran elemen. o Bila tidak ada pertukaran elemen lagi, maka list elemen sudah terurut.

Algoritma Bubble Sort Setiap pasangan data: x[j] dengan x[j-1], untuk semua i=1,...,n-1 harus memenuhi keterurutan, yaitu x[j] > x[j-1]. Apabila bl tidak memenuhi maka posisi kedua data harus ditukar. Untuk pemrograman konvensional maka pemeriksaan-pemeriksaan pasangan tersebut harus dilakukan satu demi satu, misalnya oleh bubble-sort dilakukan dari kanan ke kiri serta di dalam sejumlah iterasi.

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

Loop-for tersebut akan menggeser bilangan terkecil ke posisi i. 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 hasil pengeseran yang dilakukan k setiap loop sebelumnya. 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 data ke-2 karena data pertama pasti sudah paling kecil.

Pengurutan Berhenti Di Sini Tidak ada penukaran karena 10<15 Pengurutan berhenti di sini

Pengurutan berhenti di sini Keuntungan lain dari algoritma ini adalah dapat dijalankan dengan cukup cepat dan efisien untuk mengurutkan list yang urutannya sudah hampir benar. Selain kasus terbaik tersebut, komleksitas untuk algoritma ini adalah O(n²). Karenanya algoritma ini termasuk sangat tidak efisien untuk dilakukan, apalagi jika pengurutan dilakukan terhadap elemen yang banyak jumlahnya. Biasanya bubble sort digunakan untuk mengenalkan konsep dari sorting algoritma pada pendidikan komputer karena idenya yang cukup sederhana.

METODE SORTING 3. SELECTION SORT

PENDAHULUAN Metode selection sort merupakan perbaikan dari metode bubble sort dengan mengurangi jumlah perbandingan. 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. 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.

Selection Sort merupakan kombinasi antara sorting dan searching. 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.

Tehnik pengurutan dgn cara pemilihan elemen atau proses kerja ejadgnmemilih elemen ee e data terkecil ec utk kemudian dibandingkan & ditukarkan k dgn elemen pd ddata awal, dst s/d seluruh elemen shg akan menghasilkan pola data yg telah disort. Kelebihan dan kekurangan Selection Sort: Kompleksitas selection sort relatif lebih kecil. Mudah menggabungkannya kembali, tetapi sulit membagi masalah. Membutuhkan method tambahan. Kondisi awal: Unsorted list = data Sorted list = kosong Ambil yang terbaik (select) dari unsorted list, tambahkan di belakang sorted list. Lakukan k terus sampai unsorted list habis.

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 -1 0 1 2 3 3 4 40 42 43 58 65 0 1 2 3 3 4 40 42 43 58 65

METODE SORTING 4. INSERTION SORT

Insertion Sort Prinsip dasar Insertion adalah secara berulang- ulang menyisipkan i / memasukan setiap elemen. ke dlm posisinya / tempatnya yg benar. Mirip dengan cara orang mengurutkan kartu, 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 i elemen, maka elemen-elemen lain akan bergeser ke belakang

Insertion Sort Kondisi awal: Unsorted list = data Sorted list = kosong Ambil sembarang elemen dari unsorted list, sisipkan (insert) pada posisi yang benar dalam sorted list. Lakukan k terus sampai unsorted list habis. Bayangkan anda mengurutkan kartu.

Insertion sort: Contoh 40 2 1 43 3 65 0-1 58 3 42 4 2 40 1 43 3 65 0-1 58 3 42 4 1 2 40 43 3 65 0-1 58 3 42 4

Insertion sort: Contoh (lanj.) 1 2 40 43 3 65 0-1 58 3 42 4 1 2 3 40 43 65 0-1 58 3 42 4 1 2 3 40 43 65 0-1 58 3 42 4

Insertion sort: Contoh (lanj.) 1 2 3 40 43 65 0-1 58 3 42 4 0 1 2 3 40 43 65-1 58 3 42 4-1 0 10 21 32 40 3 43 40 65 43 65 58 3 42 4

Insertion sort: Contoh (lanj.) -1 0 10 21 32 40 3 43 40 65 43 58 65 3 42 4-1 0 10 21 32 40 3 43 3 65 43 40 58 43 65 58 65 42 4-1 0 10 21 32 40 3 43 3 65 43 40 42 65 43 58 65 4-1 0 10 21 32 40 3 43 3 65 43 4 42 40 65 43 42 58 43 65 58 65

METODE SORTING 5. QUICK SORT

METODE QUICK SORT Qick sort banyak digunakan utk proses sorting,karena: merupakan proses sorting yang umum digunakan mudah untuk diimplementasikan Prosesnya sangat cepat Aturan Quick Sort: Select Pertama kita pilih elemen yang ditengah sebagai pivot, misalkan X. Partition kemudian semua elemen tersebut disusun dengan menempatkan X pada posisi j sedemikian rupa sehingga elemen disebelah kiri1 lebih < X dan elemen sebelah kanan > X. Rekursif Kemudian proses diulang untuk bagian kiri dan kanan elemen X dengan cara yg sama dengan langkah 1 sampai kondisi terurut

ALGORITMA QUICK SORT algoritma quicksort deskripsi x data[(l+r) div 2] I L J R while ( I < = J ) do while (data[i] < x ) do inc( I ) endwhile while ( data[j] > x ) do dec( J ) endwhile If ( I < = J ) then tukar(data[i],data[j]) d [j]) inc( I ) Dec( J ) endif endwhile If ( L < J ) then quicksort(larikpixel, L, J ) If ( I < R ) then quicksort(larikpixel, I, R )

METODE SORTING 6. HEAP SORT

METODE HEAP SORT Adalah binary tree dengan menggunakan kunci, dimana mempunyai aturan-aturan sebagai berikut : untuk mengisikan heap dimulai dari level 1 sampai ke level dibawahnya, bila dalam level yang sama semua kunci heap belum terisi maka tidak boleh mengisi dibawahnya. heap dlm kondisi terurut apabila left child < parent dan right child > parent penambahan kunci diletakkan pada posisi terakhir dari level dan disebelah kanan child yg terakhir, kemudian diurutkan dengan cara upheap Bila menghapus heap dgn mengambil kunci pada parent di level 1 kemudian digantikan posisi kunci terakhir, selanjutnya disort kembali metode downheap

HEAP REPRESENTATION Array Left_child(i) = 2i Right_chilrd = 2i +1 Parent = j div 2

HEAP SORT Metode Upheap: bandingkan kunci terakhir dengan parentnya apabila parent < kunci maka lakukan pertukaran. ulangi langkah 1 dengan membandingkan dengan parent selanjutnya sampai posisi parent di level 1 selesai dibandingkan Metode Downheap: bandingkan parent dengan leftchild dan rightchild apabila parent < leftchild atau rightchild maka lakukan pertukaran. ulangi langkah 1 dengan membandingkan dengan leftchild dan rightchild pada posisi level dibawahnya sampai posisi di level terakhir selesai dibandingkan.

DAFTAR PUSTAKA DF Alfatwa, ER Syah P, FM Ahsan, Implementasi Algoritma Radix Sort dalam Berbagai Kasus Bilangan Dibandingkan Algoritma Pengurutan yang lain. Bandung. 2005. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Introduction To Algorithms, McGraw- Hill. 1990. Handbook UI, Algoritma-algoritma ago apengurutan guua internal http://ranau.cs.ui.ac.id/sda/archive/1998/handout/handout24.h tml Tanggal akses : 29 Desember 2007 pukul 04.00 GMT +7 Wikipedia, (2007). Wikipedia, the free encyclopedia. http://en.wikipedia.org/wiki/counting_sort Tanggal akses : 29 Desember 2007 pukul 04.00 GMT +7 Wikipedia, (2007). Wikipedia, the free encyclopedia. http://en.wikipedia.org/wiki/sorting_algorithm p// p / g g Tanggal akses : 29 Desember 2007 pukul 04.00 GMT +7 Wikipedia, (2007). Wikipedia, the free encyclopedia. http://en.wikipedia.org/wiki/radix_sort Tanggal akses : 29 Desember 2007 pukul 04.00 00 GMT +7