• Tidak ada hasil yang ditemukan

LAPORAN ALGORITMA DAN STRUKTUR DATA II (2)

N/A
N/A
Protected

Academic year: 2018

Membagikan "LAPORAN ALGORITMA DAN STRUKTUR DATA II (2)"

Copied!
6
0
0

Teks penuh

(1)

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

(2)

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.

(3)

Fibonacci heap adalah ketika menggabungkan heap cukup dengan menggabungkan dua list pohon.

BAB II

LISTING PROGRAM

(4)

Analisa Program

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

merupakan program untuk mengurutkan data.

 #include <iostream> => #include adalah suatu perintah yang digunakan untuk mengatur compiler agar membaca berkas header yang disertakan dibelakang kata

include yakni dalam program ini <iostream> saat pelaksanaan kompilasi.

 #include <algorithm> merupakan STL (Standard Template Library) yang

digunakan untuk memanipulasi data.

 #include <vector> => 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<vector>.

 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 << "Isi dari Heap 20, 30, 40, 25, 15"; => untuk menampilkan (Isi dari Heap

(5)

 vector<int> v(mynts, mynts + 5); => merupakan STL (Standard Template Library)

sebuah container vector menyimpan dan mengelola objek-objeknya di dalam sebuah array dinamis.

 cout << '\n'; => masuk new line.

 make_heap(v.begin(), v.end()); => merupakan template.

 cout << "Nilai tertinggi dalam heap = " << v.front() << '\n'; => untuk menampilkan

(Nilai tertinggi dalam heap = ) setelah itu menampilkan isi yang telah disimpan pada variable << v.front( ) << lalu masuk new line.

 cout << '\n'; => masuk new line.

 cout << "POP 40\n"; => untuk menampilkan (POP 40) lalu masuk new line.

 pop_heap(v.begin(), v.end()); v.pop_back(); => merupakan template.

 cout << "Nilai tertinggi dalam heap setelah POP = " << v.front() << '\n'; => untuk

menampilkan (Nilai tertinggi dalam heap setelah POP = ) setelah itu menampilkan isi yang telah disimpan pada variable << v.front( ) << lalu masuk new line.

 cout << '\n'; => masuk new line.

 cout << "PUSH 50\n"; => untuk menampilkan (PUSH 50) lalu masuk new line.

 v.push_back(50); push_heap(v.begin(), v.end()); => merupakan template.

 cout << "Nilai tertinggi dalam heap setelah PUSH : " << v.front() << '\n'; ; =>

untuk menampilkan (Nilai tertinggi dalam heap setelah PUSH = ) setelah itu menampilkan isi yang telah disimpan pada variable << v.front( ) << lalu masuk new line.

 sort_heap(v.begin(), v.end()); => merupakan template.

 cout << "final sorted range : "; untuk menampilkan (final sorted range)

 for (unsigned i = 0; i < v.size(); i++) => fungsi pengulangan untuk mengurutkan

data yang telah dimasukkan berdasarkan nilainya.

 cout << ' ' << v[i]; => menampilkan data yang telah di simpan dan diurutkan.

 cout << '\n'; => masuk new line.  cout << '\n'; => masuk new line.

 return 0; => Pernyataan bahwa nilai balik program adalah nol. Nol biasa digunakan

untuk menyatakan bahwa program berhasil melaksanakan tugas yang diembannya.

(6)

BAB III

KESIMPULAN

Referensi

Dokumen terkait

Berdasarkan dari hasil praktikum dan tugas analisa video hash table yang telah saya kerjakan, saya dapat mengambil kesimpulan hashing digunakan sebagai metode untuk

 Di dalam class Hash dibuat sebuah fungsi pada kelompok public yaitu int Hash.. (string key): kemudian fungsi tersebut di deklarasikan kedalam

Buatlah sebuah algoritma mencetak pesan ”bilangan genap” kemudian kalikan bilangan tersebut dengan angka 2 jika bilangan bulat yang dimasukkan dari piranti masukan merupakan bilangan

 Temukan node dengan nilai terbesar pada left subtree node yang dihapus kemudian pindahkan node tersebut untuk menggantikan node yang dihapus or.  Temukan node dengan

Pada matakuliah Algoritma dan Struktur Data II ini, lebih menitik beratkan pada struktur datanya, yaitu membahas macam-macam struktur data baik yang linear maupun yang

 Kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data

Kemudian dari tumpukan data teks tweet tersebut dilakukan pembobotan setiapkata (term) yang kemudian hasil pembobotan tersebut diolah dengan algoritma C4.5 untuk

Mengingat kembali array, struktur, pointer dalam bahasa C 1.1 Pengenalan Struktur Data Struktur data adalah sebuah skema organisasi, seperti struktur dan array, yang diterapkan pada