Rabu, 14 Januari 2015

ALGORITMA SORTING & IMPLEMENTASI DI JAVA


Haii sobat bloger.. sekarang saya akan megulas tentang 3 macam Algoritma sorting..
dan meng-implementasikannya..
Apa sih sorting itu? Awalnya saya juga binggung maksud dari sorting atau pengurutan. Setelah browsing-browsing dan dapat materi diperkuliahan akhirnya saya tau apa yang dimaksud dengan sorting itu....
Sorting adalah proses menyusun elemen – elemen dengan tata urut tertentu dan proses tersebut terimplementasi dalam bermacam aplikasi. Kita ambil contoh pada aplikasi perbankan. Aplikasi tersebut mampu menampilkan daftar account yang aktif. Hampir seluruh pengguna pada sistem akan memilih tampilan daftar berurutan secara ascending demi kenyamanan dalam penelusuran data.
Dalam artian sorting digunakan untuk mengurutkan sesuatu ( misalnya : kata, buku telepon , dll ). Sorting yang kita terapkan menggunakan tipe data array agar pemahaman serta pengimplementasiannya lebih mudah. Pada umumnya terdapat dua jenis pengurutan :
- Ascending (Naik).
- Descending (Turun).

Contoh :
Data  : Array [1..6] of Byte = (22, 10, 15, 3, 8, 2);
Data Acak : 22 10 15 3 8 2
Terurut Ascending : 2 3 8 10 15 22
Terurut Descending : 22 15 10 8 3 2

Untuk melakukan proses pengurutan tersebut dapat digunakan berbagai macam cara/metode:
Saya akan bahas tentang 3 metode yaitu : Insertion sort, Quick sort, dan Linear search.

1. INSERTION SORT
Insertion sort adalah contoh dari algoritma yang dapat melakukan pengurutan data secar tepat,cepat dan akurat.Prinsip dasar dari Insertion sort adalah mengurutkan data yang acak baik dari nilai terbesar ke yang kecil maupun sebaliknya dari yang terkecil ke yang terbesar dengan cara mencari nilai yang diinginkan dan ditukar dengan tempat yang paling kiri atau kanan sesuai dengan perintah sort.
Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua bagian, yang belum diurutkan (meja pertama), dan yang telah diurutkan (meja kedua). Elemen pertama yang diambil dari bagian array yang belum diurutkan dan kemudian diletakkan pada posisinya sesuai dengan bagian lain dari array yang telah diurutkan. langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum diurutkan. Pola dari Insertion Sort menggurutkan n atau 2 elemen dari terdepan dst. Untuk lengkapnya disini.

Pengertian:
Sorting = Pengurutan
Sorted = Terurut menurut kaidah / aturan tertentu
Data pada umumnya disajikan dalam bentuk sorted.

Contoh :
Nama di buku telephone
Kata-kata dalam kamus
File-file di dalam sebuah directory
Indeks sebuah buku
Data mutasi rekening tabungan
CD di toko music

Bayangkan jika diatas tidak terurut….! OMEGATT !

Gambar untuk Insertion Sort:



Insertion Sort :Algoritma

(algoritma ditulis dengan menggunakan bahasa java)
Ini contohnya:

public static void insertionSort (int[] a)
{

for (int ii = 1; ii < a.length; ii++) {

pengambilan elemen pertama dalam unsorted list
int jj = ii;

while (( jj > 0) && (a[jj] < a[jj - 1]))
{
Menyisipkan ke dalam sorted list
int temp = a[jj];
a[jj] = a[jj - 1];
a[jj - 1] = temp;
jj--;
}}
Algoritma Insertion Sort - ascending
Untuk pengurutan secara descending,hanya perlu mengganti pada baris ke 4 dengan perintah sebagai berikut :
while (( jj > 0) && (a[jj] > a[jj – 1]))


2.QUICK SORT
Quick Sort adalah algoritma yang dijalankan sebagai akibat dari terlalu banyaknyadaftar yang diurutkan, dengan menghasilkan lebih banyak daftar yang diurutkan sebagai output. Algoritma merge ini disesuaikan untuk mesin drive tape. Penggunaannya dalam akses memori acak besar yang terkait telah menurun, karena banyak aplikasi algoritma merge yang mempunyai alternatif lebih cepat ketika kamu memiliki akses memori acak yang menjaga semua data. Hal ini disebabkan algoritma ini membutuhkan setidaknya ruang atau memori dua kali lebih besar karena dilakukan secara rekursif dan memakai dua tabel.
Untuk lebih lengkapnya kalian bisa buka disini.

Gambar untuk Quick sort:



 Contoh kodingnya:


ini hasilnya:



3. LINEAR SEARCH
Algoritma ini mencari elemen berdasarkan suatu kunci (key), yang berupa angka atau karakter yang diinginkan. Cara kerjanya dengan mencocokkan tiap-tiap elemen dengan kunci tersebut. Bila ditemukan, maka method akan mengembalikan indeks dari elemen itu, sedangkan bila tidak ditemukan, maka method akan mengembalikan balikan nilai integer -1.
Lebih lengkapnya baca disini.

Ini gambarnya:



Ini contoh nya:

import javax.swing.*;
public class LinearSearch{
     public static void main(String[]args){
 
    int[]data={30,20,50,70,10,60,20};
    boolean a=false;
    String input=JOptionPane.showInputDialog("Data yang dicari");
    int cari=Integer.parseInt(input);
     
    for(int i=0;i<data.length;i++){
       if(data[i]==cari){
        System.out.println(cari+" merupakan data ke : "+(i+1));
        a=true;
                }
    }
    if(a!=true){
        System.out.println("Maaf "+cari+" tidak ditemukan");
        }
    System.exit(0);
    }
}

OUPUTnya seperti ini:



Nahhh.. itu dia tentang 3 algoritma sorting yang bisa saya jelaskan.. semoga bermanfaat yaa.. ^.^




1 komentar: