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
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