1. Bubble Sort
a. Pengertian Bubble Sort
Bubble
Sort adalah salah satu algoritma untuk sorting data, atau kata lainnya
mengurutkan data dari yang terbesar ke yang terkecil atau sebaliknya (Ascending
atau Descending).
Bubble sort (metode
gelembung) adalah metode/algoritma pengurutan dengan 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.
Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun
yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan
daripada berat jenis air, maka gelembung sabun selalu terapung ke atas
permukaan. Prinsip di atas dipakai pada pengurutan gelembung. Ide dari algoritma
ini adalah mengulang proses pembandingan antara tiap-tiap elemen array dan
menukarnya apabila urutannya salah. Pembandingan elemen-elemen ini akan terus
diulang hingga tidak perlu dilakukan penukaran lagi. Algoritma
ini termasuk dalam golongan algoritma comparison sort,
karena menggunakan perbandingan dalam operasi antar elemennya. Berikut ini
adalah gambaran dari algoritma bubble sort. Misalkan kita mempunyai sebuah
array dengan. Elemen-elemen “4 2 5 3 9”.
Proses yang akan terjadi apabila digunakan algoritma
bubble sort adalah sebagai berikut.
Pass pertama
(4 2 5 3 9) menjadi
(2 4 5 3 9)
(2 4 5 3 9) menjadi
(2 4 5 3 9)
(2 4 5 3 9) menjadi
(2 4 3 5 9)
(2 4 3 5 9) menjadi
(2 4 3 5 9)
Pass kedua
(2 4 3 5 9) menjadi
(2 4 3 5 9)
(2 4 3 5 9) menjadi (2
3 4 5 9)
(2 3 4 5 9) menjadi
(2 3 4 5 9)
(2 3 4 5 9) menjadi
(2 3 4 5 9)
Pass ketiga
(2 3 4 5 9) menjadi
(2 3 4 5 9)
(2 3 4 5 9) menjadi
(2 3 4 5 9)
(2 3 4 5 9) menjadi
(2 3 4 5 9)
(2 3 4 5 9) menjadi
(2 3 4 5 9)
Dapat dilihat pada
proses di atas, sebenarnya pada pass kedua, langkah kedua, array telah terurut.
Namun algoritma tetap dilanjutkan hingga pass kedua berakhir. Pass ketiga
dilakukan karena definisi terurut dalam algoritma bubblesort adalah tidak ada
satupun penukaran pada suatu pass, sehingga pass ketiga dibutuhkan untuk
memverifikasi keurutan array tersebut.
b. Algoritma Bubble Sort
1.
Membandingkan data ke-i dengan data ke-(i+1) (tepat
bersebelahan). Jika tidak sesuai maka tukar (data ke-i = data ke-(i+1) dan data
ke-(i+1) = data ke-i). Apa maksudnya tidak sesuai? Jika kita menginginkan
algoritme menghasilkan data dengan urutan ascending (A-Z) kondisi tidak sesuai
adalah data ke-i > data ke-i+1, dan sebaliknya untuk urutan descending
(A-Z).
2.
Membandingkan data ke-(i+1) dengan data ke-(i+2). Kita
melakukan pembandingan ini sampai data terakhir. Contoh: 1 dgn 2; 2 dgn 3; 3
dgn 4; 4 dgn 5 … ; n-1 dgn n.
3.
Selesai satu iterasi, adalah jika kita sudah selesai
membandingkan antara (n-1) dgn n. Setelah selesai satu iterasi kita lanjutkan
lagi iterasi berikutnya sesuai dengan aturan ke-1. mulai dari data ke-1 dgn
data ke-2, dst.
4.
Proses akan berhenti jika tidak ada pertukaran dalam
satu iterasi.
Contoh
Kasus Bubble Sort :
Misalkan
kita punya data seperti ini: 6, 4, 3, 2 dan kita ingin mengurutkan data ini
(ascending) dengan menggunakan bubble sort. Berikut ini adalah proses yang
terjadi:
Iterasi
ke-1: 4, 6, 3, 2 :: 4, 3, 6, 2 :: 4, 3, 2, 6 (ada 3 pertukaran)
Iterasi
ke-2: 3, 4, 2, 6 :: 3, 2, 4, 6 :: 3, 2, 4, 6 (ada 2 pertukaran)
Iterasi
ke-3: 2, 3, 4, 6 :: 2, 3, 4, 6 :: 2, 3, 4, 6 (ada 1 pertukaran)
Iterasi
ke-4: 2, 3, 4, 6 :: 2, 3, 4, 6 :: 2, 3, 4, 6 (ada 0 pertukaran) ->
proses selesai
c.
kelebihan dan kekurangan
·
Kelebihan Bubble Sort
§
Merupakan metode yang paling simple
§
Metode yang 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
d.
Flowchart dari Bubble sort

2. Insertion Sort
Pengertian/Konsep Insertion Sort
Insertion Sort
merupakan algoritma sorting, terutama untuk mengurutkan data dengan jumlah
elemen sedikit. Dimana Input berupa deretan angka sejumlah n buah data dan
Output berupa permutasi (pengurutan) sejumlah n angka dari input, dimana
hasilnya berupa data yang sudah terurut secara ascending maupun descending.
Proses yang terjadi pada pengurutan dengan Insertion Sort adalah dimulai dari data ke-2 kemudian disisipkan pada tempat yang sesuai. Data pada posisi pertama dianggap memang sudah benar pada tempatnya.
Ilustrasinya
mirip seperti saat menyisipkan kartu di permainan kartu. Dimulai dengan tangan
kiri yang kosong dan kartunya tertumpuk di meja. Selanjutnya kita ambil satu
persatu kartu di meja dan diletakkan di tangan kiri dengan posisi yang benar
(terurut). Untuk menemukan posisi yang benar, maka kita harus membandingkan
satu persatu kartu yang ada (di tangan kiri) secara berurutan.
Algoritma
Insertion Sort
- Simpan nilai Ti kedalam variabel sementara, dengan i = 1.
- Bandingkan nilainya dengan elemen sebelumnya.
- Jika elemen sebelumnya (Ti-1) lebih besar nilainya daripada Ti, maka tindih nilai Ti dengan nilai Ti-1 tersebut. Decrement i (kurangi nilainya dengan 1).
- Lakukan terus poin ke-tiga, sampai Ti-1 ≤ Ti.
- Jika Ti-1 ≤ Ti terpenuhi, tindih nilai di Ti dengan variabel sementara yang disimpan sebelumnya.
- Ulangi langkah dari poin 1 di atas dengan i di-increment (ditambah satu).
Contoh
Flowchart

Tidak ada komentar:
Posting Komentar