SlideShare a Scribd company logo
1 of 48
STRUKTUR POHON (2)
Sesi 9
Implementasi Program
• Pohon dapat dibuat dengan menggunakan
linked list secara rekursif.
• Linked list yang digunakan adalah double linked
list non circular
• Data yang pertama kali masuk akan menjadi
node root.
• Data yang lebih kecil dari data node root akan
masuk dan menempati node kiri dari node root,
sedangkan jika lebih besar dari data node root,
akan masuk dan menempati node di sebelah
kanan node root.
Operasi-operasi Tree
• Insert: menambah node ke dalam pohon secara rekursif. Jika
data yang akan dimasukkan lebih besar daripada elemen root,
maka akan diletakkan di node sebelah kanan, sebaliknya jika
lebih kecil maka akan diletakkan di node sebelah kiri. Untuk
data pertama akan menjadi elemen root.
• Find: mencari node di dalam pohon secara rekursif sampai
node tersebut ditemukan dengan menggunakan variable
bantuan ketemu. Syaratnya adalah pohon tidak boleh kosong.
• Traverse: yaitu operasi kunjungan terhadap node-node dalam
pohon dimana masing-masing node akan dikunjungi sekali.
• Count: menghitung jumlah node dalam pohon
• Height : mengetahui kedalaman sebuah pohon
• Find Min dan Find Max : mencari nilai terkecil dan terbesar
pada Tree
• Child : mengetahui anak dari sebuah node (jika punya)
Ilustrasi Insert
Ilustrasi Insert
• 4. insert(left,3)
6
Ekspresi Aritmatika Menggunakan
Pohon Biner
+
*
A
*
/
E
D
C
B
inorder traversal
A / B * C * D + E
Ekspresi infix
preorder traversal
+ * * / A B C D E
Ekspresi prefix
postorder traversal
A B / C * D * E +
Ekspresi postfix
level order traversal
+ * E * D / C A B
7
Antrian Berprioritas (Priority Queues)
• Antrian berprioritas adalah kumpulan dari
kosong atau banyak elemen  setiap elemen
mempunyai prioritas atau nilai
• Berbeda dengan bentuk antrian yang FIFO,
urutan penghapusan dari antrian berprioritas
ditentukan berdasar prioritas elemen
• Elemen dihapus/dikeluarkan dengan menambah
atau mengurangi urutan prioritas daripada
urutan masuk elemen dalam antrian
8
Implementasi Antrian Berprioritas
• Dapat diimplementasikan menggunakan heap
dan leftist trees
• Heap adalah complete binary tree yang
disimpan dengan efisien menggunakan bentuk
array
• Leftist tree adalah struktur data linked yang
disesuaikan untuk penggunaan antrian
berprioritas
9
Max (Min) Tree
• max tree (min tree) adalah pohon yang jumlah
setiap node-nya lebih besar (kecil) atau sama
dengan jumlah anak (children), jika mempunyai
anak
• Node dari max atau min tree dapat mempunyai
lebih dari 2 anak (bisa berupa bukan bentuk
pohon biner)
10
Contoh Max Tree
11
Contoh Min Tree
12
Definisi Heap
• Max heap (min heap) adalah max (min) tree
yang juga sebuah complete binary tree
13
Max Heap dengan 9 Node
14
Min Heap dengan 9 Node
15
Representasi Array dari Heap
• Heap dapat direpresentasikan secara efisien
dengan array.
16
Penyisipan dalam Max Heap
9
8
6
7
7 2 6
5 1 5 • Elemen baru adalah 5
• Selesai?
17
9
8
6
7
7 2 6
5 1 20
•Elemen baru 20
•Selesai?
Penyisipan dalam Max Heap
18
9
8
6
7
2 6
5 1 7
20
• Tukar posisi dengan 7
• Selesai?
Penyisipan dalam Max Heap
19
9
6
7
2 6
5 1 7
8
20
Penyisipan dalam Max Heap
• Tukar posisi dengan 8
• Selesai?
20
6
7
2 6
5 1 7
8
9
20
Penyisipan dalam Max Heap
• Tukar posisi dengan 9
•Selesai?
21
Penghapusan dari Max Heap
• Elemen max pada root
• Apa yang terjadi jika elemen
dihapus?
20
6
7
2 6
5 1 7
15
8
9
22
Penghapusan dari Max Heap
• Setelah elemen max
dihapus.
• Selesai?
6
7
2 6
5 1 7
15
8
9
23
Penghapusan dari Max Heap
• Heap dengan 10 node.
• Sisipkan kembali 8 ke dalam
heap.
6
7
2 6
5 1 7
15
8
9
24
Penghapusan dari Max Heap
• Sisipkan kembali 8 kedalam
heap.
• Selesai?
6
7
2 6
5 1 7
15
9
8
25
Penghapusan dari Max Heap
• Tukar posisi dengan 15
•Selesai?
6
7
2 6
5 1 7
9
15
8
26
Penghapusan dari Max Heap
6
7
2 6
5 1 7
8
15
9
• Tukar posisi dengan 9
• Selesai?
27
Inisialisasi Max Heap
Inisialisasi heap berarti membentuk heap dengan
mengatur bentuk bentuk pohon jika diperlukan
Contoh: input array = [1,2,3,4,5,6,7,8,9,10,11]
28
Inisialisasi Max Heap
Mulai dari posisi array sebelah kanan yang
mempunyai anak.
Index adalah floor(n/2).
29
Inisialisasi Max Heap
30
Inisialisasi Max Heap
31
Inisialisasi Max Heap
32
Inisialisasi Max Heap
33
Inisialisasi Max Heap
Selesai
34
Aplikasi Heap
Sort (heap sort)
Machine scheduling
Huffman codes
35
Pengurutan Heap (Heap Sort)
• Menggunakan kunci elemen sebagai prioritas
Algoritma
• Letakkan elemen yang akan diurutkan dalam
antrian berprioritas (contoh inisiliasi heap)
• Ekstrak (hapus) elemen dari antrian berprioritas
– Jika antrian min priority queue yang digunakan, elemen
diekstrak dengan urutan prioritas naik
– Jika max priority queue yang digunakan, elemen
diekstrak dengan urutan prioritas menurun
36
Contoh Pengurutan Heap
• Setelah diletakkan dalam max priority queue
37
Contoh Pengurutan Heap
• Setelah operasi pertama menghapus max
38
Contoh Pengurutan Heap
• Setelah operasi kedua menghapus max
39
Contoh Pengurutan Heap
• Setelah operasi ketiga menghapus max
40
Contoh Pengurutan Heap
• Setelah operasi keempat menghapus max
41
Contoh Pengurutan Heap
• Setelah operasi kelima menghapus max
42
Permasalahan Penjadwalan Mesin
• m mesin identik
• n tugas yang harus dikerjakan
• Permasalahan penjadwalan mesin adalah
penugasan pekerjaan kepada mesin sehingga
memerlukan waktu seminimum mungkin untuk
menyelesaikan tugas terakhir
43
Contoh Penjadwalan Mesin
• 3 mesin dan 7 tugas
• Waktu tugasnya adalah [6,2,3,5,10,7,14]
• Bagaimana bentuk penjadwalan yang memungkinkan?
• Penjadwalan yang mungkin:
• Algoritma apa yang digunakan untuk bentuk penjadwalan
di atas?
44
Contoh Penjadwalan Mesin
• Berapa waktu untuk menyelesaikan (panjang) jadwal?
 21
45
Penjadwalan LPT & Contoh
• Longest Processing Time (LPT)
• Tugas dijadwalkan dengan urutan turun
14, 10, 7, 6, 5, 3, 2
• Setiap tugas dijadwalkan pada mesin yang selesai
paling cepat
Waktu penyelesaian adalah 16
46
LPT Menggunakan Min Heap
• Min Heap mempunyai waktu penyelesaian untuk
m mesin.
• Inisial waktu penyelesaian adalah 0.
• Untuk menjadwalkan pekerjaan, hapus mesin
dengan waktu penyelesaian minimum dari heap.
• Update waktu penyelesaian untuk mesin yang
dipilih dan masukkan kembali mesin dalam min
heap.
47
Huffman Codes
• Untuk kompresi teks, metode LZW (Lempel-Ziv-Welch)
berdasar pada pengulangan substring dalam teks
• Huffman codes adalah metode kompresi yang
berdasarkan pada frekuensi relatif (contoh jumlah
kemunculan simbol dengan simbol yang berbeda dalam
teks)
• Huffman code adalah salah satu teknik dalam kompresi
data yang menggunakan struktur data pohon biner.
• Hal ini dilakukan dengan tujuan mengurangi
penggunaan diskspace dan lalu lintas jaringan.
Referensi
• adeab.staff.ipb.ac.id/files/2011/12/struktur-data-
pohon.ppt
• http://dpnm.postech.ac.kr/cs233/lecture/lecture9.
ppt
48

More Related Content

What's hot

Algoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanAlgoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanGeorgius Rinaldo
 
Fungsi rekursif, queue, stack
Fungsi rekursif, queue, stackFungsi rekursif, queue, stack
Fungsi rekursif, queue, stackIcha Dicaprio
 
Algoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - AntrianAlgoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - AntrianKuliahKita
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queueRhe Dwi Yuni
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan biedoen
 

What's hot (10)

Algoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanAlgoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukan
 
Fungsi rekursif, queue, stack
Fungsi rekursif, queue, stackFungsi rekursif, queue, stack
Fungsi rekursif, queue, stack
 
Latihan
LatihanLatihan
Latihan
 
Algoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - AntrianAlgoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - Antrian
 
Stack atau tumpukan
Stack atau tumpukanStack atau tumpukan
Stack atau tumpukan
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan
 
Stack
StackStack
Stack
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queue
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan
 
Tugas
TugasTugas
Tugas
 

Similar to Asd sesi tree part2

Similar to Asd sesi tree part2 (20)

Bab xi heap
Bab xi   heapBab xi   heap
Bab xi heap
 
TI-struktur_data-stack_n_queue
TI-struktur_data-stack_n_queueTI-struktur_data-stack_n_queue
TI-struktur_data-stack_n_queue
 
Slide minggu 2 pertemuan 2 (struktur data1)
Slide minggu 2 pertemuan 2 (struktur data1)Slide minggu 2 pertemuan 2 (struktur data1)
Slide minggu 2 pertemuan 2 (struktur data1)
 
Bab 4 stack (tumpukan)
Bab 4 stack (tumpukan)Bab 4 stack (tumpukan)
Bab 4 stack (tumpukan)
 
STACK.pptx
STACK.pptxSTACK.pptx
STACK.pptx
 
Asd sesi searching part 2
Asd sesi searching part 2Asd sesi searching part 2
Asd sesi searching part 2
 
Bab 3 stack (tumpukan)
Bab 3 stack (tumpukan)Bab 3 stack (tumpukan)
Bab 3 stack (tumpukan)
 
Bab 4 stack_tumpukan_
Bab 4 stack_tumpukan_Bab 4 stack_tumpukan_
Bab 4 stack_tumpukan_
 
4 queue2
4 queue24 queue2
4 queue2
 
tugas algoritma
tugas algoritmatugas algoritma
tugas algoritma
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan
 
Ketoprak_PPT ADT Stack dan Queue.pptx
Ketoprak_PPT ADT Stack dan Queue.pptxKetoprak_PPT ADT Stack dan Queue.pptx
Ketoprak_PPT ADT Stack dan Queue.pptx
 
Bab 9 tree
Bab 9 treeBab 9 tree
Bab 9 tree
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
 
Struktur affif
Struktur affifStruktur affif
Struktur affif
 
Queue antrian
Queue antrian Queue antrian
Queue antrian
 
Queue antrian
Queue antrian Queue antrian
Queue antrian
 
Algoritma Decision Tree - ID3
Algoritma Decision Tree - ID3Algoritma Decision Tree - ID3
Algoritma Decision Tree - ID3
 
STACK .pdf
STACK .pdfSTACK .pdf
STACK .pdf
 
Stack_Queue.pdf
Stack_Queue.pdfStack_Queue.pdf
Stack_Queue.pdf
 

More from BintangWijaya5

Buku struktur data Sorting
Buku struktur data SortingBuku struktur data Sorting
Buku struktur data SortingBintangWijaya5
 
Asd sesi sorting part2
Asd sesi sorting part2Asd sesi sorting part2
Asd sesi sorting part2BintangWijaya5
 
Asd sesi sorting part1
Asd sesi sorting part1Asd sesi sorting part1
Asd sesi sorting part1BintangWijaya5
 
Asd sesi searching part1
Asd sesi searching part1Asd sesi searching part1
Asd sesi searching part1BintangWijaya5
 
Buku struktur data pages-111-122
Buku struktur data pages-111-122Buku struktur data pages-111-122
Buku struktur data pages-111-122BintangWijaya5
 

More from BintangWijaya5 (7)

Materi Searching
Materi Searching Materi Searching
Materi Searching
 
Buku struktur data Sorting
Buku struktur data SortingBuku struktur data Sorting
Buku struktur data Sorting
 
Asd sesi sorting part2
Asd sesi sorting part2Asd sesi sorting part2
Asd sesi sorting part2
 
Asd sesi sorting part1
Asd sesi sorting part1Asd sesi sorting part1
Asd sesi sorting part1
 
Asd sesi searching part1
Asd sesi searching part1Asd sesi searching part1
Asd sesi searching part1
 
Asd sesi tree part1
Asd sesi tree part1Asd sesi tree part1
Asd sesi tree part1
 
Buku struktur data pages-111-122
Buku struktur data pages-111-122Buku struktur data pages-111-122
Buku struktur data pages-111-122
 

Recently uploaded

Pengukuran Topografi menggunakan GPS Geodetik
Pengukuran Topografi menggunakan GPS GeodetikPengukuran Topografi menggunakan GPS Geodetik
Pengukuran Topografi menggunakan GPS Geodetikzulmushawir2
 
Metode_Sampling bahan galian mineral.pptx
Metode_Sampling bahan galian mineral.pptxMetode_Sampling bahan galian mineral.pptx
Metode_Sampling bahan galian mineral.pptxHeriGeologist
 
Perencanaan Pelabuhan perikanan id.pptx
Perencanaan Pelabuhan perikanan  id.pptxPerencanaan Pelabuhan perikanan  id.pptx
Perencanaan Pelabuhan perikanan id.pptxNadhifMuhammad5
 
PROSEDUR DALAM MELAKUKAN PERHITUNGAN PEKERJAAN PINTU.pptx
PROSEDUR DALAM MELAKUKAN PERHITUNGAN PEKERJAAN PINTU.pptxPROSEDUR DALAM MELAKUKAN PERHITUNGAN PEKERJAAN PINTU.pptx
PROSEDUR DALAM MELAKUKAN PERHITUNGAN PEKERJAAN PINTU.pptxadista7
 
STRUKTUR KONSTRUKSI BANGUNAN TINGGI -.pptx
STRUKTUR KONSTRUKSI BANGUNAN TINGGI -.pptxSTRUKTUR KONSTRUKSI BANGUNAN TINGGI -.pptx
STRUKTUR KONSTRUKSI BANGUNAN TINGGI -.pptxanggawatmaja
 
2. Bp. Suwardi-MATERI RAKOR DITJEN PLANOLOGI DAN TL.pptx
2. Bp. Suwardi-MATERI RAKOR DITJEN PLANOLOGI DAN TL.pptx2. Bp. Suwardi-MATERI RAKOR DITJEN PLANOLOGI DAN TL.pptx
2. Bp. Suwardi-MATERI RAKOR DITJEN PLANOLOGI DAN TL.pptxRahmanTaufiq4
 
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptxarisvanrush
 

Recently uploaded (15)

Pengukuran Topografi menggunakan GPS Geodetik
Pengukuran Topografi menggunakan GPS GeodetikPengukuran Topografi menggunakan GPS Geodetik
Pengukuran Topografi menggunakan GPS Geodetik
 
Metode_Sampling bahan galian mineral.pptx
Metode_Sampling bahan galian mineral.pptxMetode_Sampling bahan galian mineral.pptx
Metode_Sampling bahan galian mineral.pptx
 
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
 
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai PenuhObat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
 
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
 
Perencanaan Pelabuhan perikanan id.pptx
Perencanaan Pelabuhan perikanan  id.pptxPerencanaan Pelabuhan perikanan  id.pptx
Perencanaan Pelabuhan perikanan id.pptx
 
Klinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di Depok
Klinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di DepokKlinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di Depok
Klinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di Depok
 
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
 
Obat Aborsi jakarta WA 082223109953 Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953  Jual Obat Aborsi Cytotec Asli Di jakartaObat Aborsi jakarta WA 082223109953  Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953 Jual Obat Aborsi Cytotec Asli Di jakarta
 
Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...
Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...
Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...
 
PROSEDUR DALAM MELAKUKAN PERHITUNGAN PEKERJAAN PINTU.pptx
PROSEDUR DALAM MELAKUKAN PERHITUNGAN PEKERJAAN PINTU.pptxPROSEDUR DALAM MELAKUKAN PERHITUNGAN PEKERJAAN PINTU.pptx
PROSEDUR DALAM MELAKUKAN PERHITUNGAN PEKERJAAN PINTU.pptx
 
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
 
STRUKTUR KONSTRUKSI BANGUNAN TINGGI -.pptx
STRUKTUR KONSTRUKSI BANGUNAN TINGGI -.pptxSTRUKTUR KONSTRUKSI BANGUNAN TINGGI -.pptx
STRUKTUR KONSTRUKSI BANGUNAN TINGGI -.pptx
 
2. Bp. Suwardi-MATERI RAKOR DITJEN PLANOLOGI DAN TL.pptx
2. Bp. Suwardi-MATERI RAKOR DITJEN PLANOLOGI DAN TL.pptx2. Bp. Suwardi-MATERI RAKOR DITJEN PLANOLOGI DAN TL.pptx
2. Bp. Suwardi-MATERI RAKOR DITJEN PLANOLOGI DAN TL.pptx
 
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
 

Asd sesi tree part2

  • 2. Implementasi Program • Pohon dapat dibuat dengan menggunakan linked list secara rekursif. • Linked list yang digunakan adalah double linked list non circular • Data yang pertama kali masuk akan menjadi node root. • Data yang lebih kecil dari data node root akan masuk dan menempati node kiri dari node root, sedangkan jika lebih besar dari data node root, akan masuk dan menempati node di sebelah kanan node root.
  • 3. Operasi-operasi Tree • Insert: menambah node ke dalam pohon secara rekursif. Jika data yang akan dimasukkan lebih besar daripada elemen root, maka akan diletakkan di node sebelah kanan, sebaliknya jika lebih kecil maka akan diletakkan di node sebelah kiri. Untuk data pertama akan menjadi elemen root. • Find: mencari node di dalam pohon secara rekursif sampai node tersebut ditemukan dengan menggunakan variable bantuan ketemu. Syaratnya adalah pohon tidak boleh kosong. • Traverse: yaitu operasi kunjungan terhadap node-node dalam pohon dimana masing-masing node akan dikunjungi sekali. • Count: menghitung jumlah node dalam pohon • Height : mengetahui kedalaman sebuah pohon • Find Min dan Find Max : mencari nilai terkecil dan terbesar pada Tree • Child : mengetahui anak dari sebuah node (jika punya)
  • 5. Ilustrasi Insert • 4. insert(left,3)
  • 6. 6 Ekspresi Aritmatika Menggunakan Pohon Biner + * A * / E D C B inorder traversal A / B * C * D + E Ekspresi infix preorder traversal + * * / A B C D E Ekspresi prefix postorder traversal A B / C * D * E + Ekspresi postfix level order traversal + * E * D / C A B
  • 7. 7 Antrian Berprioritas (Priority Queues) • Antrian berprioritas adalah kumpulan dari kosong atau banyak elemen  setiap elemen mempunyai prioritas atau nilai • Berbeda dengan bentuk antrian yang FIFO, urutan penghapusan dari antrian berprioritas ditentukan berdasar prioritas elemen • Elemen dihapus/dikeluarkan dengan menambah atau mengurangi urutan prioritas daripada urutan masuk elemen dalam antrian
  • 8. 8 Implementasi Antrian Berprioritas • Dapat diimplementasikan menggunakan heap dan leftist trees • Heap adalah complete binary tree yang disimpan dengan efisien menggunakan bentuk array • Leftist tree adalah struktur data linked yang disesuaikan untuk penggunaan antrian berprioritas
  • 9. 9 Max (Min) Tree • max tree (min tree) adalah pohon yang jumlah setiap node-nya lebih besar (kecil) atau sama dengan jumlah anak (children), jika mempunyai anak • Node dari max atau min tree dapat mempunyai lebih dari 2 anak (bisa berupa bukan bentuk pohon biner)
  • 12. 12 Definisi Heap • Max heap (min heap) adalah max (min) tree yang juga sebuah complete binary tree
  • 15. 15 Representasi Array dari Heap • Heap dapat direpresentasikan secara efisien dengan array.
  • 16. 16 Penyisipan dalam Max Heap 9 8 6 7 7 2 6 5 1 5 • Elemen baru adalah 5 • Selesai?
  • 17. 17 9 8 6 7 7 2 6 5 1 20 •Elemen baru 20 •Selesai? Penyisipan dalam Max Heap
  • 18. 18 9 8 6 7 2 6 5 1 7 20 • Tukar posisi dengan 7 • Selesai? Penyisipan dalam Max Heap
  • 19. 19 9 6 7 2 6 5 1 7 8 20 Penyisipan dalam Max Heap • Tukar posisi dengan 8 • Selesai?
  • 20. 20 6 7 2 6 5 1 7 8 9 20 Penyisipan dalam Max Heap • Tukar posisi dengan 9 •Selesai?
  • 21. 21 Penghapusan dari Max Heap • Elemen max pada root • Apa yang terjadi jika elemen dihapus? 20 6 7 2 6 5 1 7 15 8 9
  • 22. 22 Penghapusan dari Max Heap • Setelah elemen max dihapus. • Selesai? 6 7 2 6 5 1 7 15 8 9
  • 23. 23 Penghapusan dari Max Heap • Heap dengan 10 node. • Sisipkan kembali 8 ke dalam heap. 6 7 2 6 5 1 7 15 8 9
  • 24. 24 Penghapusan dari Max Heap • Sisipkan kembali 8 kedalam heap. • Selesai? 6 7 2 6 5 1 7 15 9 8
  • 25. 25 Penghapusan dari Max Heap • Tukar posisi dengan 15 •Selesai? 6 7 2 6 5 1 7 9 15 8
  • 26. 26 Penghapusan dari Max Heap 6 7 2 6 5 1 7 8 15 9 • Tukar posisi dengan 9 • Selesai?
  • 27. 27 Inisialisasi Max Heap Inisialisasi heap berarti membentuk heap dengan mengatur bentuk bentuk pohon jika diperlukan Contoh: input array = [1,2,3,4,5,6,7,8,9,10,11]
  • 28. 28 Inisialisasi Max Heap Mulai dari posisi array sebelah kanan yang mempunyai anak. Index adalah floor(n/2).
  • 34. 34 Aplikasi Heap Sort (heap sort) Machine scheduling Huffman codes
  • 35. 35 Pengurutan Heap (Heap Sort) • Menggunakan kunci elemen sebagai prioritas Algoritma • Letakkan elemen yang akan diurutkan dalam antrian berprioritas (contoh inisiliasi heap) • Ekstrak (hapus) elemen dari antrian berprioritas – Jika antrian min priority queue yang digunakan, elemen diekstrak dengan urutan prioritas naik – Jika max priority queue yang digunakan, elemen diekstrak dengan urutan prioritas menurun
  • 36. 36 Contoh Pengurutan Heap • Setelah diletakkan dalam max priority queue
  • 37. 37 Contoh Pengurutan Heap • Setelah operasi pertama menghapus max
  • 38. 38 Contoh Pengurutan Heap • Setelah operasi kedua menghapus max
  • 39. 39 Contoh Pengurutan Heap • Setelah operasi ketiga menghapus max
  • 40. 40 Contoh Pengurutan Heap • Setelah operasi keempat menghapus max
  • 41. 41 Contoh Pengurutan Heap • Setelah operasi kelima menghapus max
  • 42. 42 Permasalahan Penjadwalan Mesin • m mesin identik • n tugas yang harus dikerjakan • Permasalahan penjadwalan mesin adalah penugasan pekerjaan kepada mesin sehingga memerlukan waktu seminimum mungkin untuk menyelesaikan tugas terakhir
  • 43. 43 Contoh Penjadwalan Mesin • 3 mesin dan 7 tugas • Waktu tugasnya adalah [6,2,3,5,10,7,14] • Bagaimana bentuk penjadwalan yang memungkinkan? • Penjadwalan yang mungkin: • Algoritma apa yang digunakan untuk bentuk penjadwalan di atas?
  • 44. 44 Contoh Penjadwalan Mesin • Berapa waktu untuk menyelesaikan (panjang) jadwal?  21
  • 45. 45 Penjadwalan LPT & Contoh • Longest Processing Time (LPT) • Tugas dijadwalkan dengan urutan turun 14, 10, 7, 6, 5, 3, 2 • Setiap tugas dijadwalkan pada mesin yang selesai paling cepat Waktu penyelesaian adalah 16
  • 46. 46 LPT Menggunakan Min Heap • Min Heap mempunyai waktu penyelesaian untuk m mesin. • Inisial waktu penyelesaian adalah 0. • Untuk menjadwalkan pekerjaan, hapus mesin dengan waktu penyelesaian minimum dari heap. • Update waktu penyelesaian untuk mesin yang dipilih dan masukkan kembali mesin dalam min heap.
  • 47. 47 Huffman Codes • Untuk kompresi teks, metode LZW (Lempel-Ziv-Welch) berdasar pada pengulangan substring dalam teks • Huffman codes adalah metode kompresi yang berdasarkan pada frekuensi relatif (contoh jumlah kemunculan simbol dengan simbol yang berbeda dalam teks) • Huffman code adalah salah satu teknik dalam kompresi data yang menggunakan struktur data pohon biner. • Hal ini dilakukan dengan tujuan mengurangi penggunaan diskspace dan lalu lintas jaringan.

Editor's Notes

  1. Bagian ini akan difokuskan pada pemaparan tentang heap