MAKALAH STRUKTUR DATA HEAP SORT. Disusun Oleh :

dokumen-dokumen yang mirip
Penerapan Struktur Data Pohon dalam Implementasi Algoritma Heapsort dan Tinjauan Kompleksitas Waktunya

HEAP. Heap dan Operasinya. Oleh Andri Heryandi

Heap Tree dan Kegunaannya dalam Heap Sort

Algoritma Heap Sort. Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

Sorting (Bubble Sort)

PENGURUTAN (SORTING) 1. Overview

(Binary) Heap. Binary tree yang menyimpan pasangan prioritas (atau prioritas elemen) pada node Property Heap :

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

Penerapan Pohon Dalam Heap Sort

SORTING (Pengurutan)

Jurnal Mahajana Informasi, Vol.1 No 2, 2016 e-issn: SIMULASI PENGURUTAN DATA DENGAN ALGORITMA HEAP SORT

STRUKTUR DATA SORTING ARRAY

STRUKTUR DATA (3) sorting array. M.Cs

IKI 20100: Struktur Data & Algoritma

Gambar 13.1 Ilustrasi proses algoritma sorting

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3)

Laporan makalah ini berjudul Queue (Antrian), laporan ini diharapkan dapat menjadi literatur bagi proses belajar mengajar dalam perkuliahan, terutama

Algoritma dan Pemrograman Sorting (Pengurutan) IS1313. Oleh: Eddy Prasetyo N

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1

Everybody in this country should learn how to program a computer because it teaches you how to think. Steve Jobs

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

ANALISIS ALGORITMA BINARY SEARCH

Praktikum 8. Pengurutan (Sorting) Bubble Sort, Shell Sort

Powered by icomit.wordpress.com

APLIKASI SIMULASI PENGURUTAN DATA MENGGUNAKAN ALGORITMA HEAP SORT

A. TUJUAN PEMBELAJARAN

Algoritma Bubble Sort dan Quick Sort

Outline STRUKTUR DATA. VII. Sorting

Algoritma dan Struktur Data. Linear & Binary Search Tree

Algoritma Sorting. Ahmad Kamsyakawuni, S.Si, M.Kom. Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember

Array ARRAY BERDIMENSI SATU. Representasi (Pemetaan) di memori. Lihat gambar dibawah ini, nilai data A (18) dismpan mulai dari alamat 1136 di memori.

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

BAB VI Pengurutan (Sorting)

BAB V SORT. Proses penukaran tidak dapat langsung dilakukan dengan cara : nilai[1] = nilai[2]; nilai[2] = nilai[1];

Algoritme dan Pemrograman

Gambar 1. Langkah-langkah pengurutan metode Insertion Sort (1)

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI

ALGORITMA PENGURUTAN & PENCARIAN

Analisis Kecepatan Sorting Dengan Notasi Big O

Modul Praktikum Algoritma dan Struktur Data

Algoritma dan Struktur Data. Binary Tree & Binary Search Tree (BST)

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

ANALISIS KOMPLEKSITAS ALGORITMA UNTUK BERBAGAI MACAM METODE PENCARIAN NILAI (SEARCHING) DAN PENGURUTAN NILAI (SORTING) PADA TABEL

Politeknik Elektronika Negeri Surabaya

Tree (Struktur Data) Nisa ul Hafidhoh, MT

Algoritme dan Pemrograman

Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA Searching ( Pencarian ) Modul III

ALGORITMA DAN STRUKTUR DATA

12/26/2011 ILKOM IPB 1. Algoritme dan Pemrograman. Sorting. Data untuk sorting. Contoh. Algoritme #1: BUBBLE SORT.

Penerapan Divide and Conquer dalam Membandingkan Alur Proses 2 Source Code

Pengertian Algoritma Pengurutan

A. TUJUAN PEMBELAJARAN

Kompleksitas Algoritma Sorting yang Populer Dipakai

METODE AVL TREE UNTUK PENYEIMBANGAN TINGGI BINARY TREE

MODUL PRAKTIKUM STRUKTUR DATA

Agar lebih mudah mengerti, cobalah untuk melakukan hal-hal berikut ini: 1. Bacalah terlebih dahulu ide dasar dari masing-masing algoritma.

Modul 8 SORTING (PENGURUTAN)

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh :

Sorting. Pertemuan ke 14.

SORTING DENGAN ALGORITMA DIVIDE AND CONQUER

Algoritma dan Struktur Data. Searching dan Sorting

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

Sorting Algorithms. Divide and Conquer

Algoritma Sorting (Selection Insertion)

Sequential Search (Linear Search)

STRUKTUR POHON & KUNJUNGAN POHON BINER

Politeknik Elektronika Negeri Surabaya

Struktur Data dan Algoritma

Kompleksitas Algoritma dari Algoritma Pembentukan pohon Huffman Code Sederhana

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

BAB I PENDAHULUAN.

Perbandingan Algoritma Pengurutan Merge Sort, Quick Sort dan Heap Sort Dilihat dari Kompleksitasnya

Praktikum 9. Pengurutan (Sorting) Quick Sort, Merge Sort

7. SORTING DAN SEARCHING

IT234 Algoritma dan Struktur Data. Tree

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Struktur Data & Algoritma

Algoritme dan Pemrograman

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II

Politeknik Elektronika Negeri Surabaya

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : VOL. 6 NO. 1 Maret 2013

BAB 8 SORTING DAN SEARCHING

Pengenalan Array. Array Satu Dimensi

METODE DEVIDE AND CONQUER

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

Algoritma dan Struktur Data

Binary Search Tree (BST)

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

Struktur Data Tree/Pohon dalam Bahasa Java

TREE STRUCTURE (Struktur Pohon)

Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut

Algoritma dan Struktur Data. Click to edit Master subtitle style Konsep Tree

Transkripsi:

MAKALAH STRUKTUR DATA HEAP SORT Disusun Oleh : 1. Dana Ananda N. 1515015003 2. Hanif Aulia 1515015012 3. Hartini Indriani 1515015025 4. Rizki Afriani 1515015033 5. Ade Widyatama Dian B. 1515015042 JURUSAN TEKNIK INFORMATIKA Up. FAKULTAS TEKNOLOGI INFORMASI DAN KOMUNIKASI UNIVERSITAS MULAWARMAN 2016 DAFTAR ISI 1

KATA PENGANTAR... i DAFTAR ISI... ii BAB I. PENDAHULUAN 1.1 Latar Belakang... 1 1.2 Rumusan Masalah... 1 1.3 Tujuan Penulisan... 1 BAB II. PEMBAHASAN 2.1 Definisi Heap Sort... 2 2.2 Ilustrasi Heap Sort... 3 2.3 Algoritma Heap Sort... 5 2.4 Source Code... 6 2.5 Screen Capture Program... 11 BAB III. PENUTUP 3.1 Kesimpulan... 12 3.2 Saran... 12 DAFTAR PUSTAKA... iii 2

BAB I PENDAHULUAN 1.1 Latar Belakang Untuk memecahkan masalah pengurutan dalam membangun suatu program aplikasi, dibutuhkan algoritma pengurutan. Di dalam bidang Teknik Informatika terdapat banyak sekali jenis-jenis algoritma pengurutan yang dapat digunakan untuk memecahkan masalah pengurutan. Pengurutan data (data sorting) merupakan bagian dari pengolahan data informasi. Dari data-data yang telah didapat, ada kalanya data tersebut harus diurutkan terlebih dahulu berdasarkan aturan yang lebih dulu ditentukan. Berdasarkan nilai maupun alphabet misalnya. Metode-metode pengurutan data pun ada berbagai jenis. Mulai dari binary sort, insertion sort, merge sort, heap sort dll. Penggunaan metode mana yang akan dipakai nantinya tergantung dari jenis maupun kuantitas data yang diolah. Heap sort, algoritma pengurutan, merupakan salah satu metode pengurutan yang sering digunakan. Melalui jurnal ini akan dibahas teknik pencarian ini beserta kelebihan dan kekurangannya. Oleh karena itu, teknik untuk memilih algoritma pengurutan yang tepat, sesuai dengan kebutuhan, dan mangkus sangat diperlukan karena masing-masing algoritma pengurutan memiliki karakteristik yang berbedabeda. Heap sort merupakan salah satu contoh algoritma pengurutan yang memiliki kompleksitas waktu asimptotik terbaik serta menerapkan teknik yang unik/khas di dalam memecahkan masalah pengurutan, yaitu dengan menggunakan heap tree. 1.2 Rumusan Masalah Dari latar belakang diatas, maka terdapat rumusan masalah sebagai berikut : 1. Apa yang di maksud dengan heap sort? 2. Bagaimana ilustrasi dari metode pengurutan Heap Sort? 3. Bagaimana implementasi dalam program menggunakan Heap Sort? 1.3 Tujuan Masalah Adapun tujuan makalah sebagai berikut : 1. Menjelaskan pengertian dari heap sort. 2. Mendeskripsikan ilustrasi dari metode pengurutan Heap sort. 3. Menjelaskan implementasi dalam program menggunakan Heap Sort. BAB II 1

PEMBAHASAN 2.1 Definisi Heap Sort Heap sort adalah sebuah metode sorting (pengurutan) angka pada sebuah array dengan cara menyerupai binary tree, yaitu dengan cara memvisualisasikan sebuah array menjadi sebuah binary tree yang nantinya pada binary tree tersebut nilai pada masing-masing index array akan diurutkan. Pada heap sort terdapat 3 bagian yaitu Node, Edge, dan leaf dimana node itu adalah setiap index yang berada pada array, edge adalah garis yang menghubungkan tiap node dan leaf adalah setiap node yang tidak memiliki child node (node turunan). Selain itu juga ada yang bernama root yaitu node awal pada sebuah heap. Selain itu juga ada yang bernama root yaitu node awal pada sebuah heap, berikut adalah ilustrasi dari bagian yang dimiliki oleh heap : Heap tree terbagi menjadi 2 jenis yaitu Max-Heap dan Min-Heap, dimana max-heap adalah kondisi heap tree yang memiliki nilai tertinggi berada di node root dan setiap child node memiliki nilai yang lebih kecil dari nilai yang dimiliki parent nodenya. Sedangkan pada min-heap adalah kondisi kebalikan dengan max-heap, pada min-heap nilai terkecil berada di node root dan setiap child node memiliki nilai yang lebih besar dari nilai yang dimiliki parent nodenya. Pada metode heap sort jenis heap tree yang digunakan adalah Max-Heap. Dan untuk memvisualisasikan sebuah array menjadi sebuah heap tree adalah dengan cara mencari node root terlebih dahulu yaitu node pertama node 2

pertama sebuah heap tree adalah index pertama di array yaitu index 0 akan tetapi pada heap tree node awal berada di posisi 1 berbeda dengan array yang memiliki index awal yaitu index 0. Setelah node root telah ditemukan maka sekarang tinggal mencari child node dari node root dan child node terbagi menjadi 2 yaitu left child dan right child dan untuk mencari left child, right child, dan parent digunakan rumus sebagai berikut : Left Child: 2i (Contoh : Left child dari 1 adalah 2 x 1 = 2) Right Child : 2i + 1 (Contoh : Right Child dari 1 adalah (2 x 1) + 1 = Parent : i/2 (Contoh : Parent dari 3 adalah 3 / 2 = 1 ) NB : Untuk i adalah posisi node yang ingin dicari left/right childnya atau parent nodenya dan untuk lambing ( ) adalah floor yaitu pembulatan kebawah missal 3 / 2 = 1,5 dibulatkan kebawah menjadi 1. 2.2Ilustrasi Heap Sort Contoh : Kita memiliki sebuah aray A = A B C D dan diproses menggunakan heap sort menggunakan metode descending. Discending adalah proses mengurutkan dari yang terbesar ke yang terkecil. Prosedur BUILD-MAX-HEAP dimulai dari Array [A.length/2] yang merupakan node dengan indeks terbesar yang memiliki anak, sampai berakhir pada node pertama A[1]. Fungsinya untuk memastikan bahwa semua node memiliki anak yang nilainya tidak lebih besar dari node tersebut. Iterasi dilakukan dari node terbesar [A.length/2] ke node terkecil A[1] untuk memastikan bahwa semua subtree dari anak sudah merupakan max-heap. C D 3

Algoritma Heap Sort dimulai dengan prosedur BUILD-MAX-HEAP untuk membangun max-heap pada array yang telah dimasukkan A[1 n] dimana n=a.length. Elemen terbesar array disimpan di akar A[1], dimana A[1] ditetapkan sebagai posisi final, sehingga dapat ditukar dengan A[n]. Apabila node n dari heap dihilangkan dan A.heap-size akan semakin berkurang. Anak dari akar memenuhi ketentuan max-heap. Namn, elemen akar yang baru mungkin tidak memenuhi syarat max-heap. Untuk itu, diperlukan pemenuhan sifat max-heap yang disebut MAX- HEAPIFY(A,1) dimana menghasilkan sebuah max-heap A[1.. n-1]. Algoritma heap sort mengulangi proses untuk max heap n-1 turun hingga heap-size 2. Operasi heap sort setelah baris 1 untuk mencari nilai max-heap Heapify A 4

#include d"stdio.h" B D C #include "conio.h" B C A A void manage(int *, int); void heapsort(int *, int, int); void manage(char *arr, int i) 2.3Algoritma Heap Sort { Langkah : 1. Masukkan jumlah data char 2. tmp; Masukkan data setiap elemen 3. Buat heap tree tmp=arr[i]; 4. Tukarkan elemen ke-1 pada Heap Tree dengan elemen tersebut 5. Simpan elemen terakhir while((i>1)&&(arr[i/2]<tmp)) 6. Hapus jumlah data ( jumlah data -1) 7. Ulangi sampai semua tersimpan { 8. Tampilkan data secara descanding } arr[i]=arr[i/2]; i=i/2; arr[i]=tmp; } void heapsort(char *arr, int i, int size) 2.4Source Code { int tmp,j; tmp=arr[i]; j=i*2; while(j<=size) { if((j<size)&&(arr[j]<arr[j+1])) j++; if(arr[j]<arr[j/2]) 5 break;

arr[j/2]=arr[j]; j=j*2;} arr[j/2]=tmp; } main() { int i,j,size,tmp,k; char arr[20]; printf("\n\t------- Heap sorting method -------\n\n"); printf("enter the number of elements to sort : "); scanf("%d",&size); fflush(stdin); for(i=1; i<=size; i++) { printf("enter %d element : ",i); scanf("%c",&arr[i]);fflush(stdin); manage(arr,i); } j=size; for(i=1; i<=j; i++) { tmp=arr[1]; arr[1]=arr[size]; arr[size]=tmp; size--; } heapsort(arr,1,size); 6

printf("\n\t------- Heap sorted elements -------\n\n"); size=j; for(i=size; i>=1; i--) printf("%c ",arr[i]); getch(); return 0;} 7

2.5Screen Capture Program 8

9

10

BAB III KESIMPULAN DAN SARAN 3.1Kesimpulan Algoritma pengurutan heap sort dapat digunakan untuk menyelesaikan masalahmasalah pengurutan dalam membangun suatu program aplikasi dengan mangkus. Keunggulan algoritma pengurutan heap sort terletak pada kompleksitas waktu asimptotiknya yang sangat baik. Meskipun lebih lambat dari algoritma pengurutan data yang lain, algoritma heap sort memiliki kelebihan ketika menangani data dalam skala yang besar/massive. Karena algoritma ini memiliki kelebihan tidak menggunakan banyak 11

tabel, tetapi hanya satu tabel yang dipakai untuk menyimpan hasil dari pengurutan tersebut. 3.2Saran Kami mengharapkan agar kita semua mampu memahami pengurutan data menggunakan metode Heap Sort dan tanpa merasa bingung mengenai bagaimana cara atau langkah awal pengurutannya. Serta penulis mengharapkan semoga makalah ini menjadi pedoman atau bahkan menambah wawasan dan pengetahuan mahasiswa maupun pembaca pada umumnya. DAFTAR PUSTAKA http://www.cse.iitk.ac.in/users/dsrkg/cs210/applets/sortingii/heapsort/heap.html. Diakses tanggal 2 Maret 2016 pukul 16.30 WITA http://www.cs.ui.ac.id/kuliah/iki10100/1998/handout/handout15.html. Diakses tanggal 2 Maret 2016 pukul 17.00 WITA http://nurfitrianti-23.blogspot.co.id/2012/08/ascending-dan-descending.html Diakses tanggal 2 Maret 2016 pukul 19.00 WITA http://artofartikel.blogspot.co.id/2012/06/heap-sort.html Diakses tanggal 5 Maret 2016 pukul 09.30 WITA 12