Kamis, 15 Januari 2015

Algoritma Bucket Sort Pada Java

Bucket Sort

Bucket sort adalah algoritma sorting yang mempartisi deret angka menjadi beberapa deret yang kemudian dianalogikan menjadi ember. Algoritma ini akan memilah elemen array n dalam suatu interval [a, b] dibagi menjadi subintervals sama besar m dalam suatu bucket, setiap bucket akan berisikan n/m buah bilangan untuk kemudian bucket yang ada diurutkan dan dibandingkan antar bucket yang ada sehingga menghasilkan suatu proses terurut. 

setiapa angka dalam deret yang akan diurutkan diambil satu per satu dan dimasukkan ke ember yang sudah diurutkan dari ember dengan nilai terkecil. kemudian angka-angka diurutkan dalam masing-masing ember dan akan diambil dimulai dari ember yang paling kecil terlebih dahulu dan jadilah deret angka yang sudah berurutan.

Bucket sort dapat dipakai sebagai perbandingan karna itu bucket sort dianggap sebagai algoritma perbandingan sorting.


Contoh implementasi Bucketsort :


Hasil :




Algoritma Radix Sort Pada Java

Radix Sort

Radix Sorting adalah salah satu algoritma Non-Comparasion Sort (pengurutan tanpa pembandingan) dengan metode sorting yang mana mengatur pengurutan nilai tanpa melakukan beberapa perbandingan pada data yang dimasukkan. Secara harfiah, radix dapat diartikan sebagai posisi dalam angka. Pada sistem desimal, radix adalah digit dalam angka desimal. Seperti contoh, angka “26” mempunyai 2 digit yaitu 2 dan 6. 

Radix sort tidak dapat digunakan pada kasus-kasus tertentu seperti pengurutan bilangan pecahan, bilangan negatif, adanya kompleksitas bit dan word, dan pengurutan pada multiple keys. Radix sort hanya bisa digunakan pada bilangan integer, untuk bilangan pecahan, bisa dilakukan dengan perantara bucket sort atau metode berbasis perbandingan yang lain. Dalam perilakunya yang melihat digit-digit angka sebagai pengontrolnya, Radix Sort dapat dimplementasikan dalam pengurutan bilangan desimal dan bilangan bit.

Implementasi dalam bilangan desimal misalkan terdapat 5 list bilangan dengan angka yang berbeda. Pertama tentukan urutan digit terakhir pada bilangan, dilakukan dari digit terakhir sampai pada digit pertama. Digit yang dicetak merah menunjukkan digit mana yang sedang berjalan dalam proses pengurutan, setelah itu baru bisa dilihat hasilnya.

Contoh implementasi radixsort :

import java.io.BufferedInputStream;
import java.io.*;

public class radix {static void radixsort (int a[], int d)
{
int bmat[][], c[], e=1;
int i, j, k, m, digit, row, col;

bmat = new int [a.length][10];
c    = new int [10];

for (m=1; m<=d; m++){
for (i=0; i<10; i++){
              c[i]=-1;
}
for (i=0; i<a.length; i++){
              digit = (a[i]/e)%10;
             c[digit]++;
             row   = c[digit];
             col   = digit;
             bmat[row][col]=a[i];
}
k=-1;
for (i=0; i<10; i++){
if(c[i]!=-1){
for (j=0; j<=c[i]; j++){
k++;
a[k]=bmat[j][i];
}
}
}
e=e*10;
}
}
public static void main(String[] args) throws Exception{
BufferedReader inp = new BufferedReader(new InputStreamReader(System.in));
System.out.println(“Berapa banyak bilangan untuk di urutkan ?”);
int n =Integer.parseInt(inp.readLine());

int a[]=new int[n];
for (int i=0; i<n; i++)
{
             System.out.println(“Inputkan Nilai “+(i+1)+” : “);
             a[i]=Integer.parseInt(inp.readLine());
}

radixsort (a,3);
             System.out.println(“\n”+”Array Terurut: “);

for (int i=0; i<n; i++)
{
             System.out.print(a[i]+” “);
}
             System.out.println();
}

Hasil :

Algoritma Heap Sort Pada Java



Dalam dunia pemrograman Algoritma Sorting sangat diperlukan untuk mengatasi masalah-masalah yang berkenaan dengan pengurutan data. Sorting adalah proses menyusun elemen – elemen dengan  tata urut  tertentu dan proses tersebut terimplementasi dalam bermacam-macam aplikasi.


Heap Sort

Heapsort adalah metode mengurutkan dengan memanfaatkan sifat yang dimiliki oleh struktur data heap. Heap bekerja dengan menentukan elemen terbesar atau terkecil dari sebuah daftar elemen, dan diletakkan pada akhir atau awal dari daftar tersebut. Heap sendiri adalah sebuah “Binary Search Tree” atau struktur data berbentuk pohon yang memenuhi sifat-sifat heap yaitu jika B adalah anak dari A (parent), maka nilai yang tersimpan di simpul A (parent) lebih besar atau sama dengan nilai yang tersimpan di simpul B.
 

elemen dengan nilai terbesar akan berada pada posisi akar, disebut max heap, sedangkan elemen terkecilnya akan berada di simpul akar, disebut min heap. Untuk mendapatkan nilai max-heap, dibutuhkan sebuah prosedur yang dinamakan MAX-HEAPIFY dengan input array A dan indeks i pada array tersebut.


MAX-HEAPIFY mengasumsikan pohon biner yang memiliki cabang kiri dan kanan; dan memiliki parent berupa max heap, tetapi sebuah array A[i] mungkin bernilai lebih kecil dari anaknya. Prosedur MAX-HEAPIFY menghasilkan semua nilai array A[i] selalu di bawah max-heap sehingga semua subtree yang berakar pada indeks i memenuhi sifat max-heap.

Prosedur MAX-HEAPIFY digunakan untuk mengkonversi array A[1…n] menjadi max heap dimana n adalah A.length. Sedangkan prosedur BUILD-MAX-HEAP melewati semua node pada tree, kemudian menjalankan MAX-HEAPIFY satu per satu. 

Operasi-operasi yang digunakan untuk heap antaralain :
• Delete-max atau delete-min: menghapus simpul akar dari sebuah max- atau minheap.
• Increase-key atau decrease-key : mengubah nilai yang tersimpan di suatu simpul.
• Insert: menambahkan sebuah nilai ke dalam heap.
• Merge: menggabungkan dua heap untuk membentuk sebuah heap baru yang berisi semua elemen        pembentuk heap tersebut.

Daftar algoritma untuk heap sort :
function heapSort(a, count) is
input: sebuah larik tidak terurut a dengan panjang length
(pertama letakkan a dalam max-heap) heapify(a, count)
end := count -1
while end > 0 do
remove ( )
reheapify ( )
end := end – 1

Contoh sourcode implementasi Heapsort dalam java:
 
<!DOCTYPE html>
<html>
    <title>Program Pengurutan menggunakan Metode Heapsort</title>
    <body>
        <?php
            function build_heap(&$array, $i, $t){
                $tmp_var = $array[$i];    
                $j = $i * 2 + 1;

                while ($j <= $t){
                    if($j < $t){        
                        if($array[$j] < $array[$j + 1]){
                            $j = $j + 1;
                        }
                    }
                    if($tmp_var < $array[$j]){
                        $array[$i] = $array[$j];
                        $i = $j;
                        $j = 2 * $i + 1;
                    } else {
                        $j = $t + 1;
                    }
                }
                $array[$i] = $tmp_var;
            }

            function heap_sort(&$array){
                $init = (int)floor((count($array)-1) / 2);

                for($i = $init; $i >= 0; $i--){
                    $count = count($array) - 1;
                    build_heap($array, $i, $count);
                }
                for($i = (count($array) - 1); $i >= 1; $i--){
                    $tmp_var = $array[0];
                    $array [0] = $array [$i];
                    $array [$i] = $tmp_var;
                    build_heap($array, 0, $i - 1);
                }
            }

            $array = array();
            echo '<h3>Element Array Sebelum Terurut :</h3>';
            for($p = 0; $p <= 49; $p++){
                $array[$p] = rand(10,99);
            }
            for($i = 0; $i <= count($array)-1; $i++){
                if($i%10 == 0) echo '<br />';
                echo $array[$i].'&nbsp; &nbsp; &nbsp; &nbsp; ';

            }
            echo '<br /><br />';
            echo '<h3>Element Array Setelah Terurut (Heap Sort):</h3>';
            heap_sort($array);
            for($i = 0; $i <= count($array)-1; $i++){
                if($i%10 == 0) echo '<br />';
                echo $array[$i].'&nbsp; &nbsp; &nbsp; &nbsp; ';
            }

        ?>
    </body>
</html> 

Hasil :

 

Minggu, 11 Januari 2015

Cara Install IDE "Eclipse"

Apa itu Eclipse?
Eclipse adalah sebuah IDE untuk mengembangkan perangkat lunak dan dapat dijalankan disemua platform. Eclipse merupakan IDE favorite dikarenakan gratis dan opensource, jadi setiap orang boleh melihat kode pemrogamannya.

Berikut tutorial menginstall dan membuat source code sederhana menggunakan Eclipse :


1.  pertama-tama yang pasti sudah harus mendownload aplikasinya, setelah mendownload buka          aplikasi installernya.



2.  Pilih Workspace yang akan digunakan, kemudian klik "OK" dan akan muncul jendela awal Eclipse.




3. Langkah selanjutnya menampilkan source code sederhana. yang pertama perlu dibuat adalah project dengan cara klik File - New - Java project.



4. Isikan nama project yang diinginkan pada kolom project name, pilih "Create separate source and output folders". "Klik Finish" untuk membuat folder.



5. Kemudian membuat package. Langkahnya klik File - New - Package, isikan nama dan klik "Finish"



6. Langkah selanjutnya membuat java class. Klik File - New - Project.

    Pilih "Class" untuk type text filtenya lalu klik "Next"




    Beri nama, pilih modifier "Public", pilih flag "Public static void main(String[] args), lalu klik               "Finish"


7. Kemudian masukkan kode program yang ingin dibuat. Contoh sederhana Saya akan menampilkan   "Hello Eclipse!" pada program ini.



8. Langkah terakhir yaitu menjalankan programnya. Klik Run - Run AS - Java Application. Atau melalui keyboard dengan mengetik "Alt+Shift+X,J"



9. Dan berhasil. Hasil compilenya bisa dilihat dibagian bawah. Finish! ^^


Kamis, 08 Januari 2015

Cara Menginstall Notepad ++

Disini saya akan menjelaskan bagaimana caramenginstal IDE (Notepad++). Tapi sebelumya kita harus terlebih dahulu menginstal java.

langkah-langkah untuk menginstal Notepad++:

  1.  Buka file installer Notepad++, pilih bahasa yang ingin digunakan kemudian klik, OK
  2. Klik Next pada paduan instalas, Pilih "I Agree" saat muncul kotak license agreement.

     
     
  3. Pilih lokasi penyimpanan, untuk memilih lokasi klik tombol Browse kemudian klik next
     
  4. Centang komponen yang ingin digunakan, kemudian klik "Install" dan tunggu sampai proses instalasi selesai

  5. Proses instalasi sedang berjalan dan telah selesai, Klik "Finish" dan Notepad++ selesai diinstall


Control Flow Statements (Decision and Looping)

Flow control memungkinkan program menentukan kode mana yang akan dijalankan berdasarkan kondisi-kondisi tertentu. Flow control  mampu memecah aliran eksekusi dengan menggunakan pengambilan keputusan ( decision ) dan perulangan ( loop ), sehingga memungkinkan program untuk dieksekusi secara kondisional dengan blok kode tertentu.

Decision

Decision berarti membagi alur program menjadi 2, dari 1 opsi akan dipecah menjadi 2 opsi. Jenis syntax decision pada Java, antara lain:
    
    IF - ELSE
    Statement akan dikerjakan berdasarkan pada kondisi yang disyaratkan. Jika syarat yang ditentukan bernilai true maka statement pada blok true akan dijalankan tetapi apabila bernilai false maka statement pada blok false yang dijalankan.
Contoh : 

If (Height >=175)
{
            System.out.print (“Tall”);
}
else if (height >160)
{
            System.out.print (“Standard”);
}
Else
{
            System.out.print (“Short”);
}

    
    SWITCH
    Switch memiliki fungsi yang sama dengan if hanya saja switch digunakan untuk membandingkan sesuatu yang variabelnya sama.
Contoh :


{
case 1 : System.out.println(“Nilai = 1); break;
case 2 : System.out.println(“Nilai = 2); break;
case 3 : System.out.println(“Nilai = 3); break;
case 4 : System.out.println(“Nilai = 4); break;
default : System.out.println(“Nilai selain 1, 2, 3, dan 4); break;
  }
 



Looping


Looping intinya mengulang. Menjalankan perintah yang sama berulang-ulang dan akan berhenti apabila syarat yang ditentukan telah dipenuhi. Beberapa cara melakukan looping, yaitu dengan:

    FOR
    Looping for akan selalu berjalan selama kondisi syarat bernilai true dan akan berhenti apabila kondisi syarat bernilai false.
Contoh :

for(int j= 0; j < 5 ; j++)
{
System.out.print(j);
}

   
    WHILE
    Pengulangan yang belum jelas pengulangannya.
Contoh :

int x = 1;
while (x<10)
{ 
            System.out.println(“Perulangan dengan while ke : “ + x); 
             x++; 
}

 
   
    DO WHILE

    Pada do-while pernyataan dijalankan terlebih dahulu kemudian melakukan pemeriksaan kondisi syarat.
Contoh :

int x = 10; do
{
           System.out.printIn(x);
x/=2;
} while (x>1);