Minggu, 19 Juni 2016

Bubble sort


Algoritma adalah urutan serangkaian langkah-langkah logis, terperinci dan tepat pada penyelesaian masalah yang disusun secara sistematis. Masalah-masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah ada kondisi awal yang harus dipenuhi sebelum menjalankan suatu algoritma.  Mari kita masuk ke bagian pengurutan (sorting).
Sorting
Dalam perancangan dan menganalisis pemrograman, ada beberapa metode umum yang wajib dipelajari seorang programmer dalam melatih pola pikir algoritmanya yakni, Algoritma Sorting. Pada Algoritma Sorting terdapat banyak metode. Beberapa metode yang saya ketahui adalah: Bubble Sort, Selection Sort, Insertion Sort, Merge Sort dan masih banyak lagi. 
Salah satu bagian penting dari struktur data adalah proses pengurutan data-data itu sendiri. Data terkadang akan berada dalam bentuk yang tidak berpola ataupun dengan pola tertentu yang tidak kita inginkan, namun dalam penggunaanya, kita akan selalu ingin menggunakan data-data tersebut dalam bentuk yang rapi atau berpola sesuai dengan yang kita inginkan. Maka dari itu proses sorting adalah proses yang sangat penting dalam struktur data, terlebih untuk pengurutan data yang bertipe numerik ataupun karakter.
Sorting adalah proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu ataupun secara acak, sehingga menjadi tersusun secara teratur menurut aturan tertentu.
Pada umumnya ada 2 macam pengurutan, yaitu:
  Pengurutan secara ascending (urut naik).
  Pengurutan secara descending (urut turun).
Metode sorting ini sangat berguna sekali untuk mengurutkan suatu data. Contohnya :
v  Mengurutkan nama-nama dibuku telepon
v  Mengurutkan kata-kata dalam suatu kamus
v  Mengurutkan file-file dalam sebuah directory
v  Mengurutkan indeks sebuah buku
v  Mengurutkan data mutasi dalam sebuah rekening tabungan
v  Mengurutkan CD di toko musik.
Pada bagian ini kita hanya akan membahas tentang Pengurutan Gelembung (Bubble sort):
Bubble Sort
Metode ini merupakan metode yang paling sederhana dan paling tidak efisien, karena memerlukan waktu yang relatif lebih lama dibandingkan dengan metode-metode yang lainnya. Konsep dasar dari Bubble sort ialah membandingkan elemen yang sekarang degan elemen yang berikutnya, jika elemen sekarang lebih besar (>) dibanding elemen berikutnya (untuk ascending), maka dilakukan proses penukaran. Proses sorting dapat dimulai dari data awal atau data akhir.
Contoh dari proses Sorting dengan menggunakan metode Bubble Sort :






Nah, begitulah prosesnya. Selanjutnya mari kita lanjutkan ke codingannya :

v  Proses Ascending
package tugas_alpro;
import java.util.Arrays;
public class ascending {
              public static void main(String[] args) {
                     //     Variable
                     int[] bilangan = {22, 10, 15, 3, 8, 2};
                    
                     //     Tampilkan bilangan
                     System.out.println("Bilangan sebelum di sorting Bubble Sort : "+Arrays.toString(bilangan));
                    
                     //     Proses Bubble Sort
                     System.out.println("\nProses Bubble Sort secara Ascending:");
                     for(int a = 0; a < bilangan.length; a++) {
                           //     Tampilkan proses
                           System.out.println("Proses "+(a+1));
                           for(int b = 0; b < bilangan.length-1; b++) { if(bilangan[b] > bilangan[b+1]) {
                                         //     proses pertukaran bilangan
                                         int temp = bilangan[b];
                                         bilangan[b] = bilangan[b+1];
                                         bilangan[b+1] = temp;
                                  }
                                 
                                  //     Tampilkan proses pertukaran
                                  System.out.println(Arrays.toString(bilangan));
                           }
                           System.out.println();
                     }
                    
                     //     Tampilkan hasil akhir
                     System.out.println("Hasil akhir setelah di sorting: "+Arrays.toString(bilangan));
              }

}


v  Result



v  Descending
package tugas_alpro;
import java.util.Arrays;
public class descending {

public static void main(String[] args) {
//     Variable
int[] bilangan = {22, 10, 15, 3, 8, 2};
                    
//     Tampilkan bilangan
System.out.println("Bilangan sebelum di sorting Bubble Sort : "+Arrays.toString(bilangan));
         
              //     Proses Bubble Sort
          System.out.println("\nProses Bubble Sort secara Descending:");
for(int a = 0; a < bilangan.length; a++) {
//     Tampilkan proses
System.out.println("Proses "+(a+1));
for(int b = 0; b < bilangan.length-1; b++) {
                           if(bilangan[b] < bilangan[b+1]) {
              //     proses pertukaranbilangan
int temp = bilangan[b];
       bilangan[b] = bilangan[b+1];
       bilangan[b+1] = temp;
       }
                                 
       //     Tampilkan proses
                           System.out.println(Arrays.toString(bilangan));
                           }
                           System.out.println();
                     }
                    
                     //     Tampilkan hasil akhir
                     System.out.println("Hasil akhir setelah di sorting: "+Arrays.toString(bilangan));
              }
       }
v  Result










Tidak ada komentar:

Posting Komentar