SORTING Dan Searching

10
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)

Transcript of SORTING Dan Searching

Page 1: SORTING Dan Searching

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.

Page 2: SORTING Dan Searching

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.       Banyaknya operasi yang diperlukan dalam mencari posisi yang tepat untuk elemen larik.

2.       Untuk larik yang jumlahnya besar ini tidak praktis.

3.       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.

Page 3: SORTING Dan Searching

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.

Page 4: SORTING Dan Searching

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

Page 5: SORTING Dan Searching

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.

Page 6: SORTING Dan Searching

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.

Page 7: SORTING Dan Searching

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.