You are on page 1of 7

SORTING

SELECTION SORT Data akan ditukar setelah data dibandingkan terlebih dahulu (yang ditukar indeknya). Intinya selection sort mencari letak data terbesar terbesar atau terkecil kemudian data terbesar tersebut ditukar dengan data ke-1. Metode seleksi melakukan pengurutan dengan cara mencari data yang terkecil kemudian menukarkannya dengan data yang digunakan sebagai acuan atau sering dinamakan pivot. Proses pengurutan dengan metode seleksi dapat dijelaskan sebagai berikut : Langkah pertama dicari data terkecil dari data pertama sampai data terakhir. Kemudian data terkecil ditukar dengan data pertama. Dengan demikian, data pertama sekarang mempunyai nilai paling kecil dibanding data yang lain. Langkah kedua, data terkecil kita cari mulai dari data kedua sampai terakhir. Data terkecil yang kita peroleh ditukar dengan data kedua dan demikian seterusnya sampai semua elemen dalam keadaan terurutkan. Kelebihan dan Kelemahan Selection Sort yaitu: 1. Kompleksitas selection sort relatif lebih kecil 2. Mudah menggabungkannya kembali, tetapi sulit membagi masalah 3. Membutuhkan method tambahan.

INSERTION SORT (Metode Penyisipan langsung) Adalah pengurutan data dimana jika data dimasukkan maka data tersebut langsung diurutkan. insertion sort membandingkan elemen elemen data yang berdekatan (berjarak satu posisi). Proses pengurutan dengan metode Insertion sort dapat dijelaskan sebagai berikut : Data dicek satu per satu mulai dari yang kedua sampai dengan yang terakhir. Apabila ditemukan data yang lebih kecil daripada data sebelumnya, maka data tersebut disisipkan pada posisi yang sesuai. Akan lebih mudah apabila membayangkan pengurutan kartu. Pertama-tama anda meletakkan kartu-kartu tersebut di atas meja, kemudian melihatnya dari kiri ke kanan. Apabila kartu di sebelah kanan lebih kecil daripada kartu di sebelah kiri, maka ambil kartu tersebut dan sisipkan di tempat yang sesuai.

Kelebihan 1. Sederhana dalam penerapannya. 2. Mangkus dalam data yang kecil. 3. Jika list sudah terurut atau sebagian terurut maka Insertion Sort akan lebih cepat dibandingkan dengan Quicksort. 4. Mangkus dalam data yang sebagian sudah terurut. 5. Lebih mangkus dibanding Bubble Sort dan Selection Sort. 6. Loop dalam pada Inserion Sort sangat cepat, sehingga membuatnya salah satu algoritma pengurutan tercepat pada jumlah elemen yang sedikit. 7. Stabil.

Kekurangan 1. 2. 3. Banyaknya operasi yang diperlukan dalam mencari posisi yang tepat untuk elemen larik. Untuk larik yang jumlahnya besar ini tidak praktis. Jika list terurut terbalik sehingga setiap eksekusi dari perintah harus memindai dan mengganti seluruh bagian sebelum menyisipkan elemen berikutnya. 4. Membutuhkan waktu O(n2) pada data yang tidak terurut, sehingga tidak cocok dalam pengurutan elemen dalam jumlah besar.

BUBLE SORT Bubble Sort (metode gelembung) adalah metode/algoritma pengurutan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat

menggelembung ke posisinya yang tepat.

Kelebihan Bubble Sort Metode Buble Sort merupakan metode yang paling simple Metode Buble Sort mudah dipahami algoritmanya

Kelemahan Bubble Sort Meskipun simpel metode Bubble sort merupakan metode pengurutan yang paling tidak efisien. Kelemahan buble sort adalah pada saat mengurutkan data yang sangat besar akan mengalami kelambatan luar biasa, atau dengan kata lain kinerja memburuk cukup signifikan ketika data yang diolah jika data cukup banyak. Kelemahan lain adalah jumlah pengulangan akan tetap sama jumlahnya walaupun data sesungguhnya sudah cukup terurut. Hal ini disebabkan setiap data dibandingkan dengan setiap data yang lain untuk menentukan posisinya. Dengan kata lain misalkan data sudah urut tetapi proses masih maka data akan dibandingkan terus sampai proses selesai. Algoritma Bubble Sort

SHELL SORT Metode ini dikembangkan oleh Donald L. Shell pada tahun 1959. Dalam metode ini jarak antara dua elemen yang dibandingkan dan ditukarkan tertentu. Secara singkat metode ini dijelaskan sebagai berikut. Pada langkah pertama, kita ambil elemen pertama dan kita bandingkan dengan elemen pada jarak tertentu dari elemen pertama tersebut. Kemudian elemen kedua kita bandingkan dengan elemen lain dengan jarak yang sama seperti diatas. Demikian seterusnya sampai seluruh elemen dibandingkan. Pada langkah kedua proses diulang dengan langkah yang lebih kecil, pada langkah ketiga jarak tersebut diperkecil lagi seluruh proses dihentikan jika jarak sudah sama dengan satu. Kelebihan Shell Sort : 1. Algoritma ini sangat rapat dan mudah untuk diimplementasikan. 2. Operasi pertukarannya hanya dilakukan sekali saja. 3. Waktu pengurutan dapat lebih ditekan. 4. Mudah menggabungkannya kembali. 5. Kompleksitas selection sort relatif lebih kecil.

Kekurangan 1. Membutuhkan method tambahan. 2. Sulit untuk membagi masalah. QUICK SORT Metode ini dikembangkan oleh C.A.R Hoare. Implementasi sederhana adalah implementasi yang memerlukan tambahan penyimpanan (untuk menyimpan list kiri dan kanan). Pada dasarnya prinsip kerjanya adalah membagi atau memartisi sekumpulan data menjadi dua bagian sedemikian rupa sehingga elemen ke-i berada tepat pada posisisnya, dimana semua elemen yang nilainya lebih kecil daripada elemen ke-i akan terletak disebelah kirinya, sedangkan yang mempunyai nilai lebih besar berada disebelah kanannyaProses Sorting :

Beberapa hal yang membuat Quick Sort unggul:


Secara umum memiliki kompleksitas O(n log n). Algoritmanya sederhana dan mudah diterapkan pada berbagai bahasa pemrograman dan arsitektur mesin secara efisien.

Dalam prakteknya adalah yang tercepat dari berbagai algoritma pengurutan dengan perbandingan, seperti merge sort dan heap sort.

Bekerja dengan baik pada berbagai jenis input data (seperti angka dan karakter). Tidak semua data dibandingkan, jika sudah terurut maka proses akan berhenti

Namun terdapat pula kelemahan Quick Sort:

Sedikit kesalahan dalam penulisan program membuatnya bekerja tidak beraturan (hasilnya tidak benar atau tidak pernah selesai).

Memiliki ketergantungan terhadap data yang dimasukkan, yang dalam kasus terburuk memiliki kompleksitas O(n2).

Secara umum bersifat tidak stable, yaitu mengubah urutan input dalam hasil akhirnya (dalam hal inputnya bernilai sama).

Pada penerapan secara rekursif (memanggil dirinya sendiri) bila terjadi kasus terburuk dapat menghabiskan stack dan memacetkan program.

SEARCHING

LINEAR SEARCH Pencarian linear merupakan algoritma pencarian yang paling sederhana yaitu Untuk setiap elemen di list, jika elemen itu cocok, hentikan pencarian (ketemu), jika tidak cocok, lihat elemen berikutnya, hingga akhir list. Jika akhir list dicapai dan tidak ada yang cocok, berarti elemen tidak ditemukan. algoritma ini menggunakan strategi langsung yaitu membandingkan dengan data yang dicari. Data tidak harus terurut. Kelemahan : Algoritma pencarian data Linear Search tidak mangkus (tidak efisien dan efektif) jika diterapkan pada data yang sangat besar. Contohnya, untuk mencari data sebanyak 4.294.967.296 (4 milyar) memiliki rata-rata perbandingan sebanyak 2 milyar,

SEQUENTIAL SEARCHING Adalah suatu teknik pencarian data dalam array ( 1 dimensi ) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu. Dalam sequential search ini daya selalu ditemukan tetapi dilihat dimana data tersebut berada. Kelebihan/ Kemungkinan terbaik (best case) adalah jika data yang dicari terletak di indeks array terdepan (elemen array pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat sebentar (minimal). Algoritmanya juga sederhana.Selain itu, sumber data tidak perlu diurut terlebih dahulu sebelum dilakukan pencarian. Kelemahan/ Kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data sangat lama (maksimal). Selain itu beban komputasi akan meningkat jika dilakukan pencarian pada sumber data yang cukup banyak.

BINARY SEARCH Binary search adalah algoritma pencarian untuk data yang terurut. Metode ini termasuk cepat. Pencarian dilakukan dengan cara menebak apakah data yang dicari berada ditengah-tengah data, kemudian membandingkan data yang dicari dengan data yang ada ditengah. Bila data yang ditengah sama dengan data yang dicari, berarti data ditemukan. Namun, bila data yang ditengah lebih besar dari data yang dicari, maka dapat dipastikan bahwa data yang dicari kemungkinan berada disebelah kiri dari data tengah dan data disebelah kanan data tengah dapat diabai. Upper bound dari bagian data kiri yang baru adalah indeks dari data tengah itu sendiri. Sebaliknya, bila data yang ditengah lebih kecil dari data yang dicari, maka dapat dipastikan bahwa data yang dicari kemungkinan besar berada disebelah kanan dari data tengah. Lower bound dari data disebelah kanan dari data tengah adalah indeks dari data tengah itu sendiri ditambah 1. Demikian seterusnya. Kelebihan dari Searching dengan metode Binary Search adalah Untuk Pencarian data yang jumlahnya banyak, waktu pencarian relatif cepat dan beban komputasi juga lebih kecil karena pencarian dilakukan dari depan, belakang, dan tengah. namun ada pula kekurangannya, yaitu data harus disorting dahulu dan Algoritma lebih rumit, tidak baik untuk data berangkai.

You might also like