Minggu, 25 November 2012

Pengurutan Bubble Sort pada Java

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). Di setiap mata kuliah algoritma atau struktur data, pasti ketemu sama algoritma sederhana yang satu ini. Algoritma Bubble Sort adalah algoritma sorting paling sederhana. Kelebihan dari algoritma ini adalah mudah dipahami dan yang paling simpel. Kekurangannya juga banyak sekali, salah satunya ialah proses akan berhenti jika tidak adanya pertukaran dalam satu iterasi. Sesuai dengan namanya, proses pengurutannya mirip seperti gelembung. Terdapat proses pertukaran atau istilah kerennya swapping.

contohnya :

Angka acak : 45,56,70,10,13, 6

"i" disini merupakan angka awal penghitungan jumlah banyaknya angka, dan "j" disini merupakan angka akhir perhitungan jumlah banyaknya angka, jelasnya seperti ini (angka ke0=45, angka ke1=56, angka ke2=70, angka ke3=10, angka ke4=13, angka ke5=6).

i=0                   0<6-1 →T
45, 56, 70, 10, 6, 13
j=5                   5>=0+1→T
If  6<13→T                 →45, 56, 70,10,6, 13
j=4                   4>=0+1→T
if  6<10→T                 →45, 56, 70,6,10, 13
j=3                   3>=0+1→T
if  6<70→T                 →45, 56, 6,70, 10, 13
j=2                   2>=0+1→T
if  6<56→T                 →45, 6, 56,70,10, 13
j=1                   1>=0+1→T
if  6<45→T                 →6, 45, 56,70,10, 13

6, 45, 56,70,10, 13
i=1                   1<6-1→T
j=5                   5>=1+1→T
if  13<10→F               →6, 45, 56, 70, 10, 13
j=4                   4>=1+1→T
if  10<→70T               →6, 45, 56, 10, 70, 13
j=3                   3>=1+1→T
if  10<56 →T              →6, 45, 10, 56, 70, 13
j=2                   2>=1+1→T
if  10<45→T               →6, 10, 45, 56, 70, 13
j=1                   1>=1+1→F

6, 10, 45, 56, 70, 13
i=2                   2<6-1→T
j=5                   5>=2+1→T
if  13<70→T               →6, 10, 45, 56,13,70
j=4                   4>=2+1→T
if  13<56→T               →6, 10, 45,13, 56,70
j=3                   3>=2+1→T
if  13<45→T               →6, 10, 13, 45,56,70
j=2                   2>=2+1→F
Maka Hasilnya : 6, 10, 13, 45,56,70

Sorce coding pada java :

import java.util.Scanner;
public class pengurutan {

    int[] angka=new int[6];
    public pengurutan()
    {
        Scanner input = new Scanner(System.in);
        for(int i=0;i<6;i++)
        {
            System.out.print("Masukkan Angka ke "+(i+1)+" : ");
            angka[i] = input.nextInt();
        }

        tampilkanAngka();
        urutkanAngka();
        tampilkanAngka();

      
    }

    void tampilkanAngka()
    {
        System.out.println("\n--------------------------------");
        for (int i=0;i<6;i++)
        {
            System.out.print(angka[i]+" ");
        }
    }

    void urutkanAngka()
    {
        int tampung;
        for (int i=0;i<angka.length;i++)
        {
            for(int j=0;j<angka.length-(i+1);j++)
            {
                if(angka[j]>angka[j+1])
                {
                    tampung=angka[j];
                    angka[j]=angka[j+1];
                    angka[j+1]=tampung;
                }

            }
          
        }

    }

    public static void main(String[] aksi)
    {
        pengurutan urut = new pengurutan();
    }
}

Copy pastekan coding diatas kedalam notepad lalu jalankan pada cmd, kemudian input angka seperti contoh diatas.
Maka hasilnya akan seperti ini :
 Untuk pengimputan angka, anda bisa menggantinya sesuai keinginan anda...

Semoga bermanfaat...

 

2 komentar: