FjRAR Official Blog!

Rabu, 07 Januari 2015

Pengertian Selection Sort dan Looping pada Java

19.56 Posted by Unknown , No comments
SELECTION SORT
Pengertian dari selection sort adalah mencari elemen yang tepat untuk diletakkan di posisi yang telah diketahui, dan meletakkannya di posisi tersebut setelah data tersebut ditemukan,
Selection Sort Membandingkan elemen yang sekarang dengan elemen yang berikutnya sampai dengan elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang
maka dicatat posisinya dan kemudian ditukar.
Pengurutan data dalam struktur data sangat penting untuk data yang beripe data numerik ataupun karakter.Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut turun) Pengurutan (Sorting) adalah proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu.

Contoh:
Data Acak    : 5 6 8 1 3 25 10
Ascending    : 1 3 5 6 8 10 25
Descending    : 25 10 8 6 5 3 1
Konsep Selection Sort Algoritma pengurutan sederhana salah satunya adalah Selection Sort. Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen struktur data. Untuk sorting ascending (menaik),
elemen yang paling kecil di antara elemen-elemen yang belum urut,  disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks yang disimpan tersebut dengan elemen yang paling depan yang belum urut. Sebaliknya, untuk sorting descending (menurun), elemen yang paling besar yang disimpan indeksnya kemudian ditukar.
Selection Sort diakui karena kesederhanaan algoritmanya dan performanya lebih bagus daripada algoritma lain yang lebih rumit dalam situasi tertentu. Algoritma ini bekerja sebagai berikut:
1. Mencari nilai minimum (jika ascending) atau maksimum (jika descending) dalam sebuah list
2. Menukarkan nilai ini dengan elemen pertama list
3. Mengulangi langkah di atas untuk sisa list dengan dimulai pada posisi kedua. Secara efisien kita membagi list menjadi dua bagian yaitu bagian yang sudah diurutkan, yang didapat dengan membangun dari kiri ke kanan dan dilakukan pada saat awal, dan bagian list yang elemennya akan diurutkan.
Simulasi Selection Sort Untuk lebih jelasnya, perhatikanlah simulasi Selection Sort Ascending berikut dengan menggunakan larik
    5 1 43 27 6 18 33
Dalam satu kali, ditentukan elemen yang paling kecil di dalam bagian list yang belum urut
. Elemen yang paling kecil ini, diwarnai merah . Untuk bagian larik yang telah diurutkan diberi warna kuning. 
0

5
1
43
27
6
18
33
1

1
5
43
27
6
18
33
2

1
5
43
27
6
18
33
3

1
5
6
27
43
18
33
4

1
5
6
18
43
27
33
5

1
5
6
18
27
43
33
6

1
5
6
18
27
33
43




Kompleksitas Selection Sort Algoritma di dalam Selection Sort terdiri dari kalang bersarang. Dimana kalang tingkat pertama (disebut pass) berlangsung N-1 kali. Di dalam kalang kedua, dicari elemen dengan nilai terkecil. Jika didapat, indeks yang didapat ditimpakan ke variabel min. Lalu dilakukan proses penukaran Begitu seterusnya untuk setiap Pass. Pass sendiri makin berkurang hingga nilainya menjadi semakin kecil.
Stabilitas Selection Sort Selection Sort ini pada dasarnya merupakan algoritma sorting yang tidak stabil, namun dapat diubah menjadi stabil pada kasus tertentu
Algoritma sorting yang stabil akan  mampu memanfaatkan  relatifitas antar record melalui definisi di tiap-tiap keys yang dimiliki oleh record tersebut. Misalkan ada dua record R dan S dengan key yang sama dan dengan ketentuan R muncul sebelum S, maka pada hasil output akan muncul R sebelum S.
Namun ketika terdapat elemen yang sama (tidak dapat dibedakan) pada umumnya terdapat pada tipe data integer,stabilitas akan kembali di utamakan. 



Perulangan ( looping ) Pada Java

Perulangan adalah melakukan perintah yang ada di dalam blok perulangan tersebut secara berulang - ulang sesuai dengan nilai yang ditentukan atau sampai mencapai sebuah batas tertentu dari sebuah perulangan tersebut.

1. While

Perulangan while bekerja dengan cara apa bila kondisi while itu terpenuhi atau bernilai true maka perulangan tersebut akan terus dilakukan sapai bernilai false.

Contoh :

  1. package looping;  
  2.   
  3. /** 
  4.  * 
  5.  * @author Jin Toples 
  6.  */  
  7. public class Looping {  
  8.   
  9.     /** 
  10.      * @param args the command line arguments 
  11.      */  
  12.     public static void main(String[] args) {  
  13.         int i=1;  
  14.         while (i <= 5){  
  15.             System.out.println(i);  
  16.             i++;  
  17.         }  
  18.     }  
  19. }  

Perhatikan script di atas ada "i++" itu adalah INCEREMENT ia akan menambah 1 nilai i secara terus menerus. ada juga yang di sebut DECREMENT, contoh : i-- maka ia akan mengurangi 1 nilai i tersebut secara terus menerus. Decrement di atas digunakan untuk menambahkan nilai "i" agar mencapai nilai "5" dan kemudian keluar perulangan. jika kita tidak memberikan decrement maka perulangan tersebut tidak akan berheti - henti ( Infinity looping ).

2. Do...While

Do-while seperti while tetapi jika do-while minimal melakukan satu kali pekerjaan yang ada di dalam blok do-while tersebut. do-while akan mengulang terus sampai while bernilai flase.

Contoh :

  1. package looping;  
  2.   
  3.   
  4. /** 
  5.  
  6.  * 
  7.  * @author Jin Toples 
  8.  */  
  9. public class Looping {  
  10.   
  11.   
  12.     /** 
  13.  
  14.      * @param args the command line arguments 
  15.      */  
  16.     public static void main(String[] args) {  
  17.         int i=1;  
  18.         do {  
  19.             System.out.println(i);  
  20.             i++;  
  21.         }while(i>=5);  
  22.     }  
  23. }  

Jika anda coba script di atas maka akan mengasilkan "1" karna meskipun while bernilai false ia akan tetap melakukan pekerjaan satu kali, karna pengecekan berada di bagian bawah blok program.

3. For

For adalah perulangan yang jumlah perulangannya sudah ditentukan sebelumnya, dengan kata lain perulangan blok dalam for sudah ditetukan sebelumnya.

Contoh :

  1. package looping;  
  2.   
  3.   
  4. /** 
  5.  
  6.  * 
  7.  * @author Jin Toples 
  8.  */  
  9. public class Looping {  
  10.   
  11.   
  12.     /** 
  13.  
  14.      * @param args the command line arguments 
  15.      */  
  16.     public static void main(String[] args) {  
  17.         for(int i=1; i<=5; i++){  
  18.             System.out.println(i);  
  19.         }  
  20.     }  
  21. }  

Penulisan for lebih singkat kara definisi variabel bisa dilakukan di dalam for tersebut. sehingga ia lebih sedikit dalam script yang digunakan dibandingkan dengan while dan do-while.

0 komentar:

Posting Komentar