Page 119 - PEMROGRAMAN DASAR MENGGUNAKAN C
P. 119

6.9.1.  Menggunakan Metode Gelembung (Bubble Sort)

                      Menurut  sumber  yang  ada,  ide  pembentukan  metode  ini  diinspirasi  oleh  adanya
                      pengapungan gelembung sabun yang terdapat pada permukaan air. Kita semua tahu
                      bahwa berat jenis dari gelembung sabun lebih kecil daripada berat jenis air sehingga
                      menyebabkan gelembung sabun tersebut selalu terapung ke atas permukaan. Sekarang
                      perhatikan  sebuah  batu  yang  tenggelam  di  dalam  air,  hal  ini  tentu  disebabkan  oleh
                      karena  berat  jenis  batulebih  besar  daripada  berat  jenis  air.  Fenomena  tersebut
                      menunjukkan  bahwa  zat  yang  lebih  ringan  akan  dilempar  ke  atas  (diapungkan),
                      sedangkan benda yang lebih berat akan dilempar ke bawah (ditenggelamkan).

                      Ide ‘pengapungan’ di atas kemudian digunakan untuk membentuk algoritma pengurutan
                      data, yaitu dengan melempar elemen array terkecil ke bagian ujung kiri array (dijadikan
                      sebagai  elemen  pertama).  Proses  tersebut  tentunya  dilakukan  dengan  melakukan
                      pertukaran antara elemen array.

                      Sebagai  contoh,  apabila  kita  mempunyai  sebuah  array  (misalnya  dengan  nama  A)
                      dengan 5 buah elemen sebagai berikut.

                         40      4      30      8       7
                       A[0]  A[1]  A[2]  A[3]  A[4]

                      Dalam metode ini, terdapat beberapa tahapan untuk membuat elemen-elemen di atas
                      menjadi terurut secara menaik. Adapun tahapan tersebut adalah sebagai berikut.

                                                                                               Tahapan-1
                      Mulai dari elemen terakhir (A[4]) sampai elemen kedua (A[1]), lakukan perbandingan
                      nilai  antara  A[x] dengan  A[x-1] (dimana  x mewakili  indeks  yang  sedang  aktif).
                      Apabila  A[x] lebih  kecil  maka  lakukan  pertukaran  dengan  A[x-1].  Untuk  kasus  di
                      atas, elemen array akan berubah menjadi seperti di bawah ini.

                         4      40      7       30      8
                       A[0]  A[1]  A[2]  A[3]  A[4]

                                                                                               Tahapan-2
                      Mulai dari A[4] sampai A[2], lakukan kembali perbandingan nilai seperti pada
                      tahapan-1 sehingga sekarang array di atas akan terlihat seperti di bawah ini.

                         4       7      40      8       30
                       A[0]  A[1]  A[2]  A[3]  A[4]

                                                                                               Tahapan-3
                      Mulai dari A[4] sampai A[3], lakukan kembali perbandingan nilai seperti pada
                      tahapan-1. Proses pada tahapan ini akan memberikan hasil seperti di bawah ini.

                         4       7      8       40      30
                       A[0]  A[1]  A[2]  A[3]  A[4]

                                                                                               Tahapan-4
                      Tahapan ini adalah tahapan terakhir dimana kita akan melakukan perbandingan elemen
                      terakhir  (A[4])  dengan  elemen  terakhir-1  (A[3]).  Apabila  A[4] lebih  kecil,  maka
   114   115   116   117   118   119   120   121   122   123   124