Struktur Data v1 v2 v3 v4 v5 v6 e1 e2 e3 e4 e5 v2 e2 v3 v4 e1 e3 Materi VIII GRAPH Andaikan V adalah himpunan vertex/titik/node dan E adalah himpunan edge/garis, maka pasangan V dan E disebut Graph dinyatakan dengan G=(V,E), dimana E < V. v V disebut titik / node (vertex). e E disebut elemen garis (edge). Contoh: v1 v2 v3 v4 v5 v6 e1 e2 e3 e4 e5 v2 e2 v3 v4 e1 e3 V = { , , , , , } e5 E = { , , , , } v1 v6 v5 e4
Struktur Data Materi VIII Graph Bukan Graph Bukan Graph Graph Lintasan : Perjalanan dari satu vertex ke vertex yang lain melalui edge yang menghubungkannya. Contoh: v1 v2 v3 v4 v5 v6 v1 - v2 - v3 - v5 - v6 adalah lintasan v3 – v4 – v1 adalah lintasan Lintasan yang berawal dan berakhir pada vertex yang sama disebut : Lintasan Tetutup / Sirkuit / Cycle v1 - v2 - v3 - v4 - v1 adalah sirkuit
Struktur Data Materi VIII Graph Berarah : Suatu graph dimana edge-edgenya memiliki arah (atau diberi arah). Contoh: v2 v1 v3 v4 v5 v3 – v1 – v2 adalah lintasan v2 – v4 adalah lintasan v5 – v2 bukan lintasan Graph Terhubung : Graph dengan sifat setiap dua vertex terdapat lintasan yang menghubungkannya. Contoh:
Struktur Data Materi VIII Pohon : Graph terhubung tetapi tidak memuat sirkuit / cycle. Contoh: Pohon Bukan Pohon Bukan Pohon Hutan
Struktur Data Materi VIII Pohon Berakar : Pohon dengan sifat salah satu vertexnya diperlakukan secara khusus yang disebut akar / root. Contoh: A B C D E F G H I J A punya 3 anak yaitu B, C, D B punya 1 anak yaitu E C punya 2 anak yaitu F dan G A adalah orang tua dari B, C, D B, C dan D bersaudara Vertex yg tidak punya anak disebut daun E, F, G, J, I adalah daun. Vertex yg punya anak disebut cabang A, B, C, D, H adalah cabang
Struktur Data Materi VIII Pohon Berakar Biner : Pohon berakar dengan sifat setiap vertex memiliki anak maximum 2. Contoh: A Sub tree kiri B adalah anak kiri dari A C adalah anak kanan dari A D adalah anak kiri dari B E adalah anak kiri dari C F adalah anak kanan dari C B tidak memiliki anak kanan Sub tree kanan B C F D E G H L K J I
POHON TELUSUR BINER (PTB) BINARY SEARCH TREE (BST) Struktur Data Materi VIII POHON TELUSUR BINER (PTB) BINARY SEARCH TREE (BST) Pohon Telusur Biner (PTB) : Pohon berakar biner dengan sifat pada setiap node (vertex) menyimpan data yang lebih besar dari semua node pada sub tree kiri tetapi lebih kecil dari semua node pada sub tree kanan. Contoh: 50 30 70 20 40 35 60 90 80
Operasi-operasi pada Pohon Telusur Biner (PTB) : Struktur Data Materi VIII Operasi-operasi pada Pohon Telusur Biner (PTB) : Membuat PTB Berdasarkan urutan data yang diketahui Menyisipkan node baru pada PTB Menelusuri node-node pada PTB Membuat PTB berdasarkan data hasil penelusuran Menghapus node pada PTB
Struktur Data PENYISIPAN NODE PADA PTB Materi VIII PENYISIPAN NODE PADA PTB Setiap node baru yang ditambahkan / disisipkan pasti menjadi daun. Bandingkan node baru dengan node pada akar : - Jika node baru lebih kecil maka bandingkan dengan anak kiri - Jika node baru lebih besar maka bandingkan dengan anak kanan Ulangi sampai ditemukan daun. Contoh: 60 35 80 20 5 30 70 95 75 Sisipkan 65 Sisipkan 40 SILAHKAN DICOBA SENDIRI ….!
Struktur Data Materi VIII Catatan : Jika urutan pemasukan berbeda maka bentuk PTB yang dihasilkan juga berbeda. Latihan : Buatlah PTB untuk data berikut ini : 1) 70 50 35 20 10 90 75 80 30 2) 10 20 30 35 90 50 70 75 80 3) 90 10 80 20 75 30 70 35 50
PENELUSURAN NODE PADA PTB Struktur Data Materi VIII PENELUSURAN NODE PADA PTB Penelusuran pada PTB : Proses menelusuri semua node yang terdapat pada PTB. Ada tiga cara penelusuran, yaitu : A. Preorder (Akar – Kiri – Kanan) B. Inorder (Kiri – Akar – Kanan) C. Postorder (Kiri – Kanan – Akar)
Hasil penelusuran Preorder : Struktur Data Materi VIII A. Preorder : Proses penelusurannya adalah sebagai berikut: 1. Kunjungi akar (Root) 2. Kunjungi anak kiri (sub tree kiri) 3. Kunjungi anak kanan (sub tree kanan) 4. Kerjakan secara rekursif Contoh : Hasil penelusuran Preorder : 50 70 90 60 80 20 30 40 35 50 30 70 20 40 60 90 35 80
Hasil penelusuran Inorder : Struktur Data Materi VIII B. Inorder : Proses penelusurannya adalah sebagai berikut: 1. Kunjungi anak kiri (sub tree kiri) 2. Kunjungi akar (node) 3. Kunjungi anak kanan (sub tree kanan) 4. Kerjakan secara rekursif Contoh : Hasil penelusuran Inorder : 50 70 90 60 80 20 30 40 35 50 30 70 20 40 60 90 35 80
Hasil penelusuran Postorder : Struktur Data Materi VIII C. Postorder : Proses penelusurannya adalah sebagai berikut: 1. Kunjungi anak kiri (sub tree kiri) 2. Kunjungi anak kanan (sub tree kanan) 3. Kunjungi akar (node) 4. Kerjakan secara rekursif Contoh : Hasil penelusuran Postorder : 50 70 90 60 80 20 30 40 35 50 30 70 20 40 60 90 35 80
Struktur Data Materi VIII Aturan 1 : Jika suatu PTB kunjungan secara inorder dan preorder diketahui, maka PTB tersebut dapat ditentukan dengan tunggal sehingga kunjungan secara postorder bisa ditentukan. Contoh : Preorder : 50 30 20 40 35 70 60 90 80 Inorder : 20 30 35 40 50 60 70 80 90 Analisa berdasarkan hasil penelusuran secara preorder : 50 30 20 40 35 70 60 90 80 Root Kiri Kanan 30 20 40 35 70 60 90 80 50 70 90 60 80 20 30 40 35 Kiri Kanan 20 40 35 Node kanan 50 Kiri Kanan Node kiri 50 Kanan Node kiri 30
Struktur Data Materi VIII 50 30 20 40 35 60 90 80 70 70 60 90 80 30 20 Kiri 30 20 40 35 Kanan 60 90 80 70 70 60 90 80 Kanan Root 30 20 40 35 Kiri Kanan 70 Node berikut 60 90 80
Struktur Data Materi VIII Aturan 2 : Jika suatu PTB kunjungan secara inorder dan postorder diketahui, maka PTB tersebut dapat ditentukan dengan tunggal sehingga kunjungan secara preorder bisa ditentukan. Contoh : Postorder : 20 35 40 30 60 80 90 70 50 Inorder : 20 30 35 40 50 60 70 80 90 Analisa berdasarkan hasil penulusuran secara postorder : 20 35 40 30 60 80 90 70 50 Root Kiri Kanan 50 70 90 60 80 20 30 40 35
Struktur Data Materi VIII Aturan 3 : Jika kunjungan secara preorder dan postorder diketahui, ternyata PTB tidak tunggal sehingga sulit ditentukan. Contoh : Preorder : B A Postorder : A B B B Atau A A
Struktur Data Latihan Pembentukan PTB berdasarkan hasil kunjungan Materi VIII Latihan Pembentukan PTB berdasarkan hasil kunjungan Bila diketahui hasil kunjungan adalah sebagai berikut: 1. Preorder : 90 80 70 50 30 10 5 Inorder : 5 10 30 50 70 80 90 Gambarkan bentuk PTB dan tuliskan hasil kunjungan secara Postorder 2. Postorder : 20 10 30 70 80 60 40 Inorder : 10 20 30 40 60 70 80 Gambarkan bentuk PTB dan tuliskan hasil kunjungan secara Preorder
Struktur Data PENGHAPUSAN NODE PADA PTB Materi VIII PENGHAPUSAN NODE PADA PTB Jika node yang dihapus adalah daun, maka node tersebut langsung dihapus Contoh: Hapusnode(35) Hapusnode(60) 50 Hapusnode(20) Hapusnode(70) …. BUKAN DAUN ! 30 70 20 40 60 90 35 80
Struktur Data Materi VIII Jika node yang dihapus memiliki 1 (satu) anak, maka node tersebut digantikan oleh anaknya. Contoh: Hapusnode(40) 50 Hapusnode(90) Hapusnode(70) …. PUNYA 2 ANAK 30 70 40 90 20 60 80 35 85
Struktur Data Materi VIII Jika yang node yg dihapus punya 2 (dua) anak maka node tersebut digantikan oleh pendahulunya (node paling kanan subtree kiri) atau penerusnya (node paling kiri subtree kanan) Misal dipilih untuk menggantikan adalah pendahulunya, prosesnya : - belok kiri satu langkah, lalu belok kanan sejauh mungkin ! Contoh: 80 Hapusnode(60) Hapusnode(90) .. COBA SENDIRI ! 60 90 Hapusnode(80) 20 70 85 100 30 95 40 50
BENTUK- BENTUK POHON BINER Struktur Data Materi VIII BENTUK- BENTUK POHON BINER Pohon Biner Penuh (Full Binary Tree) : pohon biner dengan sifat setiap daun memilki ketinggian sama. Sehingga banyaknya node/simpul untuk tingkat N adalah : 2N – 1 Contoh: Tingkat …………...... 1 .……………. 2 …………..… 3 50 20 30 70 90 40 60 Pohon Biner Penuh Jumlah Node = 7
Struktur Data Materi VIII Pohon Biner Lengkap (Complete Binary Tree) : merupakan pohon biner penuh atau jika ada daun yang tersisa maka diletakkan pada posisi sekiri mungkin. Contoh: Tingkat …………...... 1 .……………. 2 …………..… 3 ……………. 4 50 20 30 70 90 40 60 10 Pohon Biner Lengkap Tingkat 3
a. Pohon Biner Miring ke Kiri b. Pohon Biner Miring ke Kanan Struktur Data Pohon Biner Miring (Skewed Binary Tree) : pohon biner yang jumlah node kiri tidak seimbang dengan jumlah node kanan. Contoh: 60 70 80 90 100 50 40 30 20 10 a. Pohon Biner Miring ke Kiri (Left Skewed) b. Pohon Biner Miring ke Kanan (Right Skewed) Materi VIII