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