LAPORAN ALGORITMA DAN STRUKTUR DATA II (2)

LAPORAN PRAKTIKUM
ALGORITMA DAN STRUKTUR DATA II
MODUL
HEAP

Disusun Oleh :
Syukur Jaya Mendrofa
201501072
Kelas: C

Dosen Pengampu :
Oskar Ika Adi Nugroho, ST., MT

JURUSAN SISTEM INFORMASI
SEKOLAH TINGGI ILMU KOMPUTER “YOS SUDARSO”
PURWOKERTO
2017

BAB I
DASAR TEORI
1.


Pengertian Heap
Pohon heap adalah struktur data yang berbentuk pohon yang memenuhi sifat-sifat

heap yaitu jika B adalah anak dari A, maka nilai yang tersimpan di simpul A lebih besar
atau sama dengan nilai yang tersimpan di simpul B. Hal ini mengakibatkan elemen dengan
nilai terbesar selalu berada pada posisi akar, dan heap ini disebut max heap. (Bila
perbandingannya diterbalikkan yaitu elemen terkecilnya selalu berada di simpul akar, heap
ini

disebut

adalah

min

heap).

Karena


itulah,

heap

biasa

dipakai

untuk

mengimplementasikan priority queue.
Operasi-operasi yang digunakan untuk heap adalah :


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.

2.

Jenis-jenis Heap
1.

Binary heap : Binary heap adalah heap yang dibuat dengan menggunakan pohon
biner.

2.


Binomial heap : Binomial heap adalah heap yang dibuat dengan menggunakan
pohon binomial. Pohon binomial bila didefinisikan secara rekursif adalah:


Sebuah pohon binomial dengan tinggi 0 adalah simpul tunggal.



Sebuah pohon binomial dengan tinggi k mempunyai sebuah simpul akar yang
anak-anaknya adalah akar-akar pohonpohon binomial dengan tinggi k-1,k- 2,
…,2,1,0.



Fibonacci heap adalah kumpulan pohon yang membentuk minimum heap.
Pohon dalam struktur data ini tidak memiliki bentuk yang tertentu dan pada
kasus yang ekstrim heap ini memiliki semua elemen dalam pohon yang
berbeda atau sebuah pohon tunggal dengan tinggi n. Keunggulan dari

Fibonacci heap adalah ketika menggabungkan heap cukup dengan

menggabungkan dua list pohon.

BAB II
LISTING PROGRAM

Hasil Output Program :

Analisa Program


Program ini menggunakan STL (Standard Template Library) dan program ini juga



merupakan program untuk mengurutkan data.
#include => #include adalah suatu perintah yang digunakan untuk
mengatur compiler agar membaca berkas header yang disertakan dibelakang kata




include yakni dalam program ini saat pelaksanaan kompilasi.
#include merupakan
STL (Standard Template Library) yang



digunakan untuk memanipulasi data.
#include => merupakan STL (Standard Template Library) sebuah
container vector menyimpan dan mengelola objek-objeknya di dalam sebuah array
dinamis. Karena array adalah sebuah struktur data akses acak, elemen – elemen
sebuah vector dapat diakses secara acak. Nama file header yang memuat kelas
vector adalah vector. Jadi, untuk menggunakan container vector di dalam program,



program harus mencantumkan pernyataan #include .
using namespace std; => menyatakan kepada compiler bahwa program
menggunakan

namespace


bernama

std;

namespace

fungsinya

untuk

mengelompokkan elemen-elemen ke dalam sebuah nama. std adalah nama bawaan
yang digunakan pada semua pustaka standar C++. Contohnya untuk menampilkan




keluaran berupa cout, endl.
int main() => merupakan awal dari fungsi utama.
{ => awal tubuh dari fungsi utama

int mynts[ ] = { 20, 30, 40, 25, 15 }; => merupakan variable array dinamis yang



akan di kelola dalam container vector.
cout untuk menampilkan (Isi dari Heap
20, 30, 40, 25, 15) pada output program.



vector v(mynts, mynts + 5); => merupakan STL (Standard Template Library)
sebuah container vector menyimpan dan mengelola objek-objeknya di dalam





sebuah array dinamis.
cout masuk new line.
make_heap(v.begin(), v.end()); => merupakan template.

cout