SORTing ALGORITMA

advertisement
SORTING ALGORITMA
Bubble Sort
JANUARY 14, 2016
DWI SETIYA NINGSIH // 210 315 7 025
D3 PJJ TI 2015
Kata Pengantar
Puji syukur saya panjatkan ke hadirat Allah Subhanahu wata΄ala, karena berkat rahmatNya dan karunia-Nya saya dapat menyelesaikan makalah ini yang membahas tentang
Algoritma dan Pemograman. Tanpa pertolongan NYA mungkin saya tidak akan sanggup
menyelesaikan tugas makalah ini. Shalawat dan salam semoga terlimpah curahkan
kepada baginda tercinta yakni Nabi Muhammad SAW.
Makalah ini disusun untuk memenuhi tugas mata kuliah
“Algoritma dan Pemograman”
Makalah ini masih jauh dari sempurna, oleh karena itu saya mengharapkan kritik dan
saran yang bersifat membangun demi kesempurnaan makalah ini.
Semoga makalah ini memberikan informasi bagi masyarakat dan bermanfaat untuk
pengembangan ilmu pengetahuan bagi kita semua.
Jombang, 14 Januari 2016
Dwi Setiya Ningsih
1|Page
Ucapan Terima Kasih
Penyusunan Makalah ini tidak akan berjalan dengan baik dan lancar tanpa
bantuan dari pihak yang terlibat. Untuk itu saya mengucapkan terima kasih kepada
semua pihak yang telah terlibat dalam penyusunan laporan ini yaitu :
1. Orang tua dan saudara tercinta yang telah memberikan do’a, kasih sayang,
semangat, nasihat dan nafkah yang tak bisa penulis balas semua kasih
sayangnya.
2. Ibu Desy sebagai Dosen Pengampu.
3. Rekan mahasiswa yang telah banyak membantu dan memberi dukungan baik
material maupun spiritual demi terselesaikannya laporan ini.
2|Page
Daftar Isi
Kata Pengantar ............................................................................................ Error! Bookmark not defined.
Ucapan Terima Kasih ................................................................................. Error! Bookmark not defined.
Daftar Isi ....................................................................................................... Error! Bookmark not defined.
Daftar Gambar & Tabel .............................................................................. Error! Bookmark not defined.
Bab I .............................................................................................................. Error! Bookmark not defined.
Pendahuluan ................................................................................................ Error! Bookmark not defined.
1.1 Latar Belakang ................................................................................. Error! Bookmark not defined.
1.2 Rumusan Masalah............................................................................ Error! Bookmark not defined.
1.3 Tujuan Penulisan .............................................................................. Error! Bookmark not defined.
Bab II ............................................................................................................. Error! Bookmark not defined.
Pembahasan ................................................................................................ Error! Bookmark not defined.
2.1 Definisi Bubble Sort (Metode Gelembung) ................................... Error! Bookmark not defined.
2.2 Metode Bubble Sort.......................................................................... Error! Bookmark not defined.
2.2.1 Proses Pengurutan ................................................................... Error! Bookmark not defined.
2.3 Contoh Kasus .................................................................................... Error! Bookmark not defined.
2.4 Kelemahan & Kelebihan .................................................................. Error! Bookmark not defined.
Bab III ............................................................................................................ Error! Bookmark not defined.
Penutup......................................................................................................... Error! Bookmark not defined.
3.1 Kesimpulan ........................................................................................ Error! Bookmark not defined.
3.2 Saran .................................................................................................. Error! Bookmark not defined.
Daftar Pustaka ............................................................................................. Error! Bookmark not defined.
Lampiran ....................................................................................................... Error! Bookmark not defined.
3|Page
Daftar Gambar & Tabel
Gambar 2.1 data asli array ........................................................................................... 7
Gambar 2.2 membandingkan data ke-1 dan ke-2 ........................................................ 8
Gambar 2.3 membandingkan data ke-2 dan ke-3 ........................................................ 8
Gambar 2.4 membandingkan data ke-3 dan ke-4 ........................................................ 8
Gambar 2.5 data terakhir merupakan yang nilainya paling besar................................. 9
Gambar 2.6 membandingkan kembali data ke-2 dan ke-3 ......................................... 10
Gambar 2.7 urutan data/elemen array setelah diurutkan ........................................... 10
Gambar 2.8 tampilan akhir setelah diurutkan ............................................................. 10
Tabel 1.1 Proses Pengurutan Looping Pertama ......................................................... 11
Tabel 1.2 Proses Pengurutan Looping Kedua ............................................................ 11
Tabel 1.3 Proses Pengurutan Looping Ketiga ............................................................ 12
4|Page
Bab I
Pendahuluan
1.1 Latar Belakang
Sorting bias didefinisikan sebagai suatu pengurutan data yang sebelumnya
disusun secara acak, sehigga menjadi tersusun secara teratur menurut aturan
tertentu. Sorting yang kita terapkan menggunakan data array agar pemahan serta
pengimplementasiannya
menjadi
lebih
mudah.
Pada umumnya metode yang digunakan untuk sorting adalah :
1. Buble\Exchange sort
2. Selection sort
3. Shell Sort
4. Quick sort
1.2 Rumusan Masalah
1. Apakah definisi dari Bubble Sort?
2. Bagaimana langkah kerja bubble sort?
3. Bagaimana contoh kasus bubble sort?
4. Apa saja kelebihan & kekurangan bubble sort?
1.3 Tujuan Penulisan
Makalah ini disusun dengan tujuan sebagai sarana untuk mengikuti
pesatnya perkembangan teknologi komputer di masa sekarang ini, salah satunya
di dunia pemrograman yang sekarang semakin banyak diminati. selain itu, tujuan
disusunnya makalah ini adalah untuk memenuhi tugas individual mata kuliah Logika
dan Algoritma Pemrograman.
5|Page
Bab II
Pembahasan
2.1 Definisi Bubble Sort (Metode Gelembung)
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.
2.2 Metode Bubble Sort
Algoritma bubble sort adalah salah satu algoritma pengurutan yang paling
simple, baik dalam hal pengertian maupun penerapannya. 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 yang berdekatan. Berikut ini adalah gambaran dari
algoritma bubble sort.
6|Page
Misalkan kita mempunyai sebuah array dengan elemen-elemen “12 3 45
15 7”. Proses yang akan terjadi apabila digunakan algoritma bubble sort adalah
sebagai berikut:
2.2.1 Proses Pengurutan
Untuk mengurutkan bilangan diperlukan variabel array untuk menampung
semua bilangan yang akan diurutkan. Proses pengurutan dilakukan dengan
membandingkan semua elemen array satu per satu. Dibawah ini terlampir contoh
array berisi sederet bilangan yang belum diurutkan.
Gambar 2.1 data asli array
Dimetode bubble sort, proses pengurutan dimulai dengan membandingkan
elemen pertama untuk mendapatkan angka terbesar. Lalu angka tersebut
ditempatkan pada elemen terakhir.
Sebagai langkah awal, isi elemen pertama dibandingkan dengan elemen
ke-2. Jika isi elemen ke-2 lebih kecil dari elemen pertama, maka isi kedua elemen
tersebut ditukar. Sehingga isi array berubah menjadi :
7|Page
Gambar 2.2 membandingkan data ke-1 dan ke-2
Lalu elemen ke-2 dibandingkan dengan elemen ke-3. jika isi elemen ke-3
lebih besar, maka isi kedua elemen tersebut tidak ditukar.
Gambar 2.3 membandingkan data ke-2 dan ke-3
Perbandingan selanjutnya dilakukan terhadap elemen ke-3 dengan ke-4.
Karena elemen ke-4 lebih kecil, maka isi kedua elemen tersebut ditukar. Sehingga
isi array sebelumnya berubah menjadi :
Gambar 2.4 membandingkan data ke-3 dan ke-4
Proses perbandingan seperti diatas dilakukan secara berulang sampai
pada elemen terakhir. Sehingga pada akhirnya akan dihasilkan bilangan terbesar
8|Page
yang ditempatkan pada posisi elemen terakhir. Dibawah ini kondisi array setelah
perbandingan elemen terakhir.
Gambar 2.5 data terakhir merupakan yang nilainya paling besar
Proses diatas hanya mencari bilangan terbesar pertama. Ulangi proses tersebut
untuk mencari bilangan terbesar lainnya setelah bilangan terbesar pertama tadi.
Namun proses perbandingan hanya dilakukan mulai dari elemen pertama sampai
elemen ke-(n-a)[1] dalam contoh ini adalah elemen ke-4.
Isi elemen pertama dibandingkan dengan elemen ke-2. Karena isi elemen
ke-2 lebih besar, maka isi kedua elemen tersebut tidak ditukar.
Kemudian elemen ke-2, dibandingkan dengan elemen ke-3. Karena
elemen ke-3 lebih kecil, maka isi kedua elemen tersebut ditukar sehingga isi array
menjadi :
9|Page
Gambar 2.6 membandingkan kembali data ke-2 dan ke-3
Lanjutkan proses diatas sampai pada elemen ke-4. Hasilnya isi array
menjadi ;
Gambar 2.7 urutan data/elemen array setelah diurutkan
Kini isi elemen ke-7 dan ke-8 sudah urut berdasarkan bilangan kecil ke
besar. Namun elemen lainnya belum terurut. Untuk itu ulangi proses diatas,
namun elemen yang dibandingkan hanya sampai pada elemen ke-6 saja. Setelah
itu, proses perbadingan diulangi lagi sampai elemen terakhir yang dibandingkan
yaitu elemen ke-2. Hasil akhirnya menjadi :
Gambar 2.8 tampilan akhir setelah diurutkan
10 | P a g e
2.3 Contoh Kasus
Terdapat sebuah array A yang menampung data yang belum terurut: [80,
13, 72, -5]. Maka langkah penyelesaian untuk mendapatkan data yang yang
terurut menaik (ascending) dengan menggunakan bubble sort adalah
sebagai berikut:
1. Langkah 1
Index Elemen yang Dibandingkan Ditukar? Hasil Sementara
i=4
A[4] < A[3] ? (-5 < 72)
Ya
80, 13, -5, 72
i=3
A[3] < A[2] ? (-5 < 13)
Ya
80, -5, 13, 72
i=2
A[2] < A[1] ? (-5 < 80)
Ya
-5, 80, 13, 72
Tabel 1.1 Proses Pengurutan Looping Pertama
2. Langkah 2
Index Elemen yang Dibandingkan Ditukar? Hasil Sementara
i=4
A[4] < A[3] ? (72 < 13)
Tidak
-5, 80, 13, 72
i=3
A[3] < A[2] ? (13 < 80)
Ya
-5, 13, 80, 72
Tabel 1.2 Proses Pengurutan Looping Kedua
3. Langkah 3
Index Elemen yang Dibandingkan Ditukar? Hasil Sementara
11 | P a g e
i=4
A[4] < A[3] ? (72 < 80)
Ya
-5, 13, 72, 80
Tabel 1.3 Proses Pengurutan Looping Ketiga
2.4 Kelemahan & Kelebihan
Kelebihan Bubble Sort

Metode Buble Sort merupakan metode yang paling simpel

Metode Buble Sort mudah dipahami algoritmanya
Kelemahan Bubble Sort
Meskipun
simpel
metode
Bubble
sort
merupakan
metode
pengurutanyang 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.
12 | P a g e
Bab III
Penutup
3.1 Kesimpulan
Algoritma bubble sort memang bukanlah algoritma pengurutan yang
efisien, mengingat banyaknya operasi pertukaran yang mungkin dilakukan. Jika
data yang diurutkan banyak, maka algoritma ini akan memakan waktu untuk
menyelesaikannya. Namun algoritma ini merupakan salah satu agoritma yang
sederhana dan mudah dipelajari.
3.2 Saran
Meski tergolong algoritma sederhana, Bubble sort pantas untuk
dipelajari sebagai dasar dari bab sorting algoritma.
13 | P a g e
Daftar Pustaka
http://buublesort.blogspot.co.id/
http://3.bp.blogspot.com/-_JdG2A5PiA4/UYLCGelWAI/AAAAAAAAADE/Vue49pshp2g/s1600/InsertionSort.gif
http://kael9001.blogspot.co.id/2013/02/bubble-sort.html
14 | P a g e
Lampiran
[1] [n-1] :
Pada loop algoritma bubble sort (bab II sub-bab 2.2) terdapat 4 buah
loop utama (langkah 1 - langkah 4). Empat buah loop utama tersebut didapat dari
banyaknya data (n) yang ada pada array A dikurangi 1 (5 - 1 = 4). Di dalam setiap loop
utama tersebut terdapat loop anak sejumlah banyaknya data pada array A dikurangi 1,
dan jumlahnya terus berkurang sejalan dengan bertambahnya loop utama. intinya,
untuk menyelesaikan masalah pengurutan dengan bubble sort di atas, diperlukan 2
buah loop yang bertingkat. Loop utama digunakan untuk menentukan jumlah langkah
yang dilakukan, sedangkan loop anakan digunakan untuk proses pengapungan yang
terjadi pada setiap langkah loop utama. Di dalam loop anakan tersebut harus ada
proses perbandingan nilai, sehingga jika nilai yang dibandingkan lebih kecil atau lebih
besar, maka bisa dilakukan proses pertukaran.
15 | P a g e
Download