Bubble Sort

Pengurutan (Sorting) selanjutnya yaitu Bubble Sort. bubble sendiri memiliki arti Gelembung. gelembung sabun yang sering dimainin saat masih kecil :D… loh loh koq ke gelembung sabun :D, yap metode ini analoginya sama ketika  bermain gelembung udara dimana gelembung tersebut akan terapung ke atas dengan cepat jika berat jenisnya lebih kecil dibandingkan jika gelembungnya besar krn berat jenisnya lebih besar sehingga untuk terapung ke atas agak lebih lama. jadi ayoo kita main gelembung sabun sambil ngoding hehe 😀

Adapun Algoritma Bubble Sort sebagai berikut:

metode ini akan melakukan pengurutan(Sorting) dimana data posisi saat ini lebih besar daripada posisi sebelahnya maka data tersebut akan ditukar. contoh data : 12 8.  data ke-1 = 12 dan data ke-2= 8, data ke-2 lebih kecil daripada data ke-1 maka akan dilakukan penukaran sehingga menjadi 8 12

ilustrasinya sebagai berikut:

Data Awal: 12  6  3  18  1

—– Bubble Sort ——–

Proses Iterasi ke 1

12  6  3  18  1     -> 6  12  3  18  1  (tukar nilai 12 dengan 6)
12  3  18  16  ->  12  18  1  (tukar nilai 12 dengan 3)
6  3  12  18  1    -> 6  3  12  18  1  (tidak ada nilai yang ditukar)
6  3  12  18  1    -> 6  3  12  1  18  (tukar nilai 18 dengan 1)
Proses Iterasi ke 2
6  3  12  1    18    -> 3  6  12  1  18 (tukar nilai 6 dengan 3)
6  12  1   18    -> 3  6  12  1  18 (tidak ada nilai yang ditukar)
3  6  12   1   18   -> 3  6  1   12  18 (tukar nilai 12 dengan 1)
Proses Iterasi ke 3
3  6  1  12  18     -> 3  6  1  12  18 (tidak ada nilai yang ditukar)
6   12  18     -> 3  1  6  12  18 (tukar nilai 6 dengan 1)
Proses Iterasi ke 4
3  1  6  12  18      -> 1  3  6  12  18(tukar nilai 3 dengan 1) (sudah Terurut)

 

adapun codenya sebagai berikut:

/*
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package arrayinjava;

import java.util.Scanner;

/**
 *
 * @author Riki Afriansyah
 */
public class Bubblesort {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        int nilai;
        int[] A = new int[5];
        
        Scanner in = new Scanner(System.in); 
        
         // mengisi data ke array A
        for( int i = 0; i <A.length; i++ ){
            System.out.print("Input Nilai A[" + i + "]: ");
            A[i] = in.nextInt ();
        }
        System.out.println("Sorting menggunakan Bubble Sort");
        System.out.print("Data Awal: ");
        for( int i = 0; i <A.length; i++ ){
            System.out.print(A[i]+" ");
        }
        System.out.println();
        System.out.println("----- Bubble Sort --------");
        Bublesort(A);
    }
    
    
    public static void Bublesort(int T[]){
        for(int i= T.length - 1;i>0;i--){
              System.out.println("Proses Iterasi ke " +(-(i-T.length)));
            for (int j=0;j<i;j++){
                if(T[j]>T[j+1]){
                    int temp = T[j];
                    T[j]=T[j+1];
                    T[j+1]=temp;
                    
                }             
                    //Tampilkan nilai
                    for(int l=0;l<T.length;l++){
                        System.out.print(T[l]+" ");
                    }
                    System.out.println();
            }
        }
  
    }

    
}