Tuesday, August 5, 2014

Implementasi Algoritma Heap Sort dengan Java





Untuk mengimplementasikan algoritma Heap sort pada postingan ane yg ini menggunakan bahasa pemrograman Java, gunakanlah syntax berikut ini :




Pada syntax tersebut terdapat 3 buah metode yaitu heapSort(), build_Max_Heap(), dan max_Heapfy(). Dimana metode heapSort adalah metode utama yang digunakan untuk melakukan sorting nilai pada array angka dengan algoritma Heap Sort, pada baris 10 sampa 33 adalah syntax untuk deklarasi array angka dan memasukkan nilai pada setiap elemen yang dimiliki array angka lalu pada baris 36 metode build_Max_Heap() dipanggil fungsi metode ini adalah membangun sebuah Heap tree agar sesuai dengan kodisi max heap.

Pada baris 86 terdapat for looping dengan kondisi i = (elements - 1)/2 (index tengah) dan selama i lebih besar sama dengan 0 maka nilai i akan berkurang 1. Dan pada baris 89 metode max_Heapfy() dipanggil, fungsi metode max_Heapfy berfungsi untuk menempatkan nilai pada sebuah index diposisi yang benar agar memenuhi kondisi max heap. Pada baris 102 dan 103 terdapat deklarasi variabel left dan right dimana kedua variabel tersebut berisi posisi left dan right child dari node index lalu pada baris 104 terdapat deklarasi variabel largest yang berisi posisi index yang memiliki nilai terbesar yang nantinya nilai tersebut akan dipindahkan ke node index. Dan pada baris 106 sampai 118 terdapat beberapa kondisi if yang berfungsi untuk membandingkan node mana yang memiliki nilai tertinggi di antara node index dan left/right child nodenya lalu pada baris 120 terdapat if yang memiliki kodisi jika largest tidak sama dengan index maka nilai pada node index dan largest bertukar tempat dan metode max_Heapfy() kembali di panggil sampai kondisi max heap terpenuhi. 

Lalu kembali ke metode heapSort() di baris 39 terdapat for looping dengan kondisi i = elements – 1 dan selama i lebih besar dari 0 maka nilai i berkurang 1. Dan pada baris 41 sampai 43 adalah syntax untuk menukar nilai pada index 0 dengan nilai di index i lalu elements dikurangi 1 disini terlihat nilai terbesar pada heap tree di index 0 ditukar posisinya dengan nilai pada index i (index terakhir) disini nilai terbesar sudah berada di index terakhir dan jumlah elements dikurangi 1 karena posisi nilai terbesar sudah berada di posisi yang benar lalu pada baris 46 metode max_Heapfy() dipanggil untuk menempatkan nilai pada index 0 pada posisi yang benar sesuai dengan kondisi max heap. Dan proses ini terus berulang selama i lebih besar dari 0  ini menadakan proses ini akan terus berjalan hingga tersisa 2 index saja yaitu index 0 dan 1. Berikut adalah hasil implementasi algoritma heap sort menggunakan Java :

Sekian postingan dari ane semoga bermanfaat, jika ada keasalahan mohon dikoreksi dan dimaklumi ya gan :Peace:
 

No comments:

Post a Comment