Pohon Biner.

Slides:



Advertisements
Presentasi serupa
STRUKTUR DATA (10) tree manipulation
Advertisements

Binary Trees adalah parent
STRUKTUR DATA (7) single linked list circular
STRUKTUR DATA (8.1) double linked list non circular
Pertemuan 8 STRUKTUR POHON (TREE).
By : Fitroh Amaluddin & Galih Wasis W.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Implementasi Binary Tree
Tree.
Kuliah ke-9 Struktur Data Pohon/Tree (Bab 6)
Tree Yuliana S.
Binary Tree Rangga Juniansyah.
Operasi pada pohon biner
Penelusuran Bab 7 Pohon Biner 219.
LINKED LIST by Yohana N.
Algoritma dan Struktur Data
Binary Search Tree 2007/2008 – Ganjil – Minggu 9.
Tenia Wahyuningrum, S.Kom. MT
4. Pohon (Tree) 4.1. Definisi Rekurens Dari Pohon
STRUKTUR DATA tree manipulation
BINARY TREE Universitas Ahmad Dahlan
1 Pertemuan Tree Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
Algoritma dan Struktur Data
Tree. Tree (Pohon) Dalam dunia nyata, sebuah pohon memiliki : akar, cabang, daun. Dalam dunia komputer, pohon (tree) memiliki 3 (tiga) bagian tersebut.
Bocoran Soal 6.3 & 7.3 NESTED LOOP UTS.
Struktur Data Tree Eka Rahayu S. (2 Agustus 2011).
Binary Tree.
Pohon Seimbang / AVL Tree (Bab 6)
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Menggambar Tree wijanarto.
Defri Kurniawan POHON DAN POHON BINER Defri Kurniawan
TREE STRUCTURE (Struktur Pohon)
STRUKTUR DATA Chapt 6 : TREE Oleh : Yuli Praptomo PHS, S.Kom.
Struktur Data Binary Search Tree (BST)
Pohon dan Pohon Biner Anifuddin Azis.
Manipulasi Tree.
TREE KELOMPOK 7 HUSNATUL WILDA ( ) MISRIANA ( )
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
STRUKTUR DATA Tree (Struktur Pohon).
Tree (POHON).
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
NAMA : SITI HAJAR NIM : UNIT : B NO.HP :0852 –
STRUKTUR DATA 2014 M. Bayu Wibisono.
Linked List INSERT KIRI 6.3 & 7.3 NESTED LOOP.
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Manipulasi Tree.
Tree.
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
Kuliah ke-9 Struktur Data Pohon/Tree (Bab 6)
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
TREE (POHON).
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Algoritma dan Struktur Data
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Penelusuran Binary Tree
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Tree (Pohon).
POHON Pohon (Tree) merupakan graph terhubung tidak berarah dan tidak mengandung circuit. Contoh: (Bukan) (Bukan) (Bukan)
Oleh Shoffin Nahwa Utama, S.Kom
IT234 Algoritma dan Struktur Data
Tree.
IT234 Algoritma dan Struktur Data
Rahmady Liyantanto liyantanto.wordpress.com
Algoritma dan Struktur Data
IT234 Algoritma dan Struktur Data
TREE Oleh : Neny silvia Nurhidayah Afny wilujeng Setyorini
5 11/18/2018.
Review Struktur Data Nisa’ul Hafidhoh, MT.
Transcript presentasi:

Pohon Biner

Definisi BST Binary Search Tree (BST) adalah pohon biner yang berisi elemen sejenis dan unik dengan sifat khusus Seperti contoh sbb : Diketahui sebuah pohon biner dengan akar X serta sub pohon kiri T1 dan sub pohon kanan T2 a. BST Naik berlaku sifat : - Y Є T1 < X < Z Є T2 dimana T1 dan T2 juga BST - Apabila ditelusuri Inorder akan terurut menaik b. BST Turun berlaku sifat : - Y Є T1 > X > Z Є T2 dimana T1 dan T2 juga BST - Apabila ditelusuri Inorder akan terurut menurun X T2 T1

Definisi dan Sifat BST 7 12 3 9 4 6 8 5 Binary Search Tree T1 dan T2 juga berupa Binary Search Tree BST merupakan penjelmaan dari proses Pencarian, karena bentuknya yang teratur (Sorted) Perhatikan gambar tree berikut : 7 12 3 9 4 6 8 5 Binary Search Tree Bukan Binary Search Tree

Contoh BST : Jika input adalah 21 bilangan integer berikut: 8,9,11,15,19,20,21,7,3,2,1,5,6,4,13,14,10,12,17,16,18 8 7 9 3 2 1 5 4 6 11 10 15 13 19 12 14 20 21 17 16 18

Operasi-Operasi BST : Mengosongkan BST (Makenul(T)) Tujuan : Untuk Menciptakan BST pertama sekali atau mengosongkan BST yang sudah terisi (mengosongkan yang sudah terisi tidak dianjurkan, sebab untuk representasi linked list akan membuat node tetap berada dimemori) Mencek apakah BST kosong (Empty(T)) Tujuan : Untuk Mengetahui apakah BST T kosong atau tidak. Suatu fungsi yang menghasilkan nilai True jika BST kosong atau nilai False jika BST tidak kosong. Operasi ini biasa dilakukan sebelum melakukan operasi menghapus, mencari atau menampilkan

Operasi-Operasi BST : Mencari Tree Minimum (Tree_Minimum(T)) Tujuan : Untuk mencari isi node paling minimum. Proses pencarian dilakukan mulai dari root dan berlanjut ke leftchild hingga Null. Hal ini dilakukan, sebab elemen node minimum dijamin paling kiri Mencari Tree Maksimum (Tree_Maksimum(T)) Tujuan : Untuk mencari isi node paling maksimum. Proses pencarian dilakukan mulai dari root dan berlanjut ke rightchild hingga Null. Hal ini dilakukan, sebab elemen node maksimum dijamin paling kanan

Operasi-Operasi BST : Memasukkan data baru ke dalam BST (Insert(x,T)) Tujuan : Suatu operasi untuk memasukkan elemen x ke dalam BST (BST unik, dimana tidak ditemukan 2 atau lebih elemen yang sama). Untuk operasi insert berlaku ketentuan : - Pencarian lokasi untuk node yang akan diinsert selalu dimulai dari root - Jika node yang diinsert lebih kecil dari root , maka insert di daun pada left subtree - Jika node yang diinsert lebih besar dari root , maka insert di daun pada right subtree

Operasi-Operasi BST : 6. Mencari elemen tertentu dalam BST (Search(x,T)) Tujuan : Suatu operasi untuk mencari elemen x apakah ada dalam BST atau tidak. Apabila ada maka fungsi menghasilkan nilai True dan False apabila tidak ada Menghapus elemen tertentu dari BST (Delete(x,T)) Tujuan : Suatu operasi untuk menghapus elemen x dari BST apabila ditemukan. Apabila dilakukan penghapusan, dimungkinkan terjadi perubahan pada BST :

Ketentuan Operasi Delete BST : Jika yang didelete adalah leaf (daun) maka BST tidak berubah Jika yang didelete adalah node yang hanya memiliki satu anak, maka anak tersebut langsung menggantikan posisi dari parent-nya Jika yang didelete adalah node dengan 2 anak (2 subtree), maka node yang diambil menggantikan node yang dihapus adalah : Jika berasal dari left subtree, maka diambil node paling kanan (nilai terbesar) Jika berasal dari right subtree, maka diambil node paling kiri (nilai terkecil)

Operasi-Operasi BST : Menampilkan semua elemen dalam BST (Tampil(T)) Tujuan : Suatu operasi untuk menampilkan semua elemen dimiliki BST. Urutan tampilan elemen dapat disesuaikan dengan operasi penelusuran : Preorder, Inorder atau Postorder

Algoritma Mengosongkan BST void Makenul (BST T) { T = NULL; } Hasil : T null (artinya T menunjuk ke null)

Fungsi Memeriksa apakah BST kosong int Empty(BST T) { if (T== NULL) return 1; else return 0; } Hasil : Return 1 (True) jika T menunjuk ke NULL dan 0 jika T tidak menunjuk ke NULL

Fungsi Mencari Elemen Minimum BST Tree_Minimum (BST T) { if (! Empty (T)) { while (T->Kiri !=NULL) { T = T->Kiri; } return T; } Hasil : 2

Fungsi Mencari Elemen Maksimum BST Tree_Maksimum(BST T) { if (! Empty (T)) { while (T->Kanan !=NULL) { T = T->Kanan; } return T; } Hasil : 13

Fungsi Memasukkan data baru ke BST void Insert( int x, BST T) { if (T ==NULL) (* Jika ditemukan T yang null *) { new(T); (* ciptakan node baru ditunjuk oleh T *) TKiri = NULL; (* Set pointer kiri = null *) TInfo = x; (* Isi data pada node = x *) TKanan = NULL; (* Set pointer kanan = nil *) } else if (x == TInfo) (* x sudah ada dalam T *) printf(‘Error : data tersebut sudah ada *) else if (x < TInfo) Insert(x, TKiri) (*jika x < data yg ditunjuk T, maka sisipkan x ke kiri*) else (* x > Info yang ditunjuk T sisipkan x ke kanan *) Insert(x, TKanan)

Fungsi Mencari Elemen Tertentu int Search (int x, BST T ) { if (T == NULL) Search = 0; else if (x == TData) Search = 1; (* x ditemukan *) else if (x < TData) Search = Search(x, TKiri) (*cari x ke kiri *) else Search= Search(x, TKanan) (* cari secara rekursif ke kanan *) }

Fungsi Menghapus Elemen Tertentu void Delete (int x , BST T) { BST Bantu; if (T == NULL) printf(”Error : %d Tidak Ditemukan ”, x); else if (x < TData) Delete(x, TKiri); (* rekursif ke kiri *) else if (x > TData) Delete(x, TKanan) (*rekursif ke kanan *) else if ((TKiri == NULL) && (TKanan ==NULL)) (*Kasus x adalah daun *) { Bantu = T; (*Tangkap node dengan pointer Bantu *) T = NULL; (*potong T yang menunjuk node berisi x *) free(Bantu) (*deallocate Bantu atau lepaskan node *) }

Fungsi Menghapus Elemen Tertentu else if (TKiri ==NULL) (*x berada pada node dimana kirinya nil *) { Bantu = T; T = TKanan; (* Set T = pointer kanannya *) BantuKanan = NULL; (*memutusnode ke kanannya *) free(Bantu); (*lepaskan node berisi x *) } else if (TKanan == NULL) (*x berada dinode dimana kanannya nil *) T = TKiri ; (* Set T = pointer kirinya *) BantuKiri = NULL; (*memutus node ke kirinya *) free (Bantu); (* lepaskan node yang berisi x *) else TData = DeleteMin(TKanan);

Fungsi Menghapus Elemen Tertentu Int DeleteMin (BST T) { BST Bantu; if (TKiri == NULL) (*ditemukan data terkecil *) { Bantu = T ; (* pegang data terkecil *) DeleteMin = TData; (*Ambil&simpan data terkecil *) T = TKanan; (* Set T = pointer kanannya *) BantuKanan = NULL; (*lepas hubungan node tsb dgn anaknya *) free (Bantu); (*lepaskan node yang berisi data terkecil *) } else DeleteMin = DeleteMin(TKiri); (*rekursif ke kiri *)

Menampilkan semua elemen dalam BST void Tampil(T) { int Pilih; clrscr(); printf(“1. Tampil Secara Preorder \n”); printf(“2. Tampil Secara Inorder \n”); printf(“3. Tampil Secara Postorder \n’); printf(”Silahkan Pilih : ”); scanf(”%d”, &Pilih); if (Pilih == 1) Preorder(T); else if (Pilih == 2) Inorder (T); else Postorder(T); }

Ilustrasi Operasi BST Makenul(T) Insert(7,T) Insert(3,T) Insert(13,T) Delete(17,T) Delete(13,T) Delete(7,T)

Contoh Ilustrasi Operasi BST Makenul(T) : Prosedur ini menghasilkan T sebagai berikut: Insert (7,T) terhadap T sebelumnya (masih null) menghasilkan T yang baru berikut ini:

Contoh Ilustrasi Operasi BST 3. Insert(3, T) terhadap T yang berisi 7 menghasilkan T yang baru berikut ini: 4. Insert(13, T) terhadap T yang berisi 3, 7 menghasilkan T yang baru berikut ini:

Contoh Ilustrasi Operasi BST Insert(17, T) terhadap T menghasilkan T yang baru berikut ini:

Contoh Ilustrasi Operasi BST Insert (2, T) terhadap T yang berisi 3,7,13,17 menghasilkan T yang baru berikut ini:

Contoh Ilustrasi Operasi BST Insert (11, T) terhadap T yang berisi 2,3,7,13,17 menghasilkan T yang baru berikut ini:

Contoh Ilustrasi Operasi BST 8. Insert (5, T) terhadap T yang berisi 2,3,7,11,13,17 menghasilkan T yang baru berikut ini:

Contoh Ilustrasi Operasi BST 9. Delete (17, T) : Perhatikan urutan operasi dan nomor yang ada pada gambar.

Contoh Ilustrasi Operasi BST 10. Delete(13, T) terhadap T di atas dimana 13 berada pada node yang kanannya kosong, sehingga pointer yang menunjuk 13 dialihkan ke node yang berisi 11 dan hubungan 13 dengan 11 diputuskan. Kemudian node yang berisi 13 dibuang dengan perintah free. Proses penghapusannya dilakukan seperti terlihat pada gambar di bawah ini:

Contoh Ilustrasi Operasi BST Sementara hasil setelah hapus 13 adalah sebagai berikut:

Contoh Ilustrasi Operasi BST 11. Delete(7, T) terhadap T yang terakhir dan kebetulan 7 adalah akar dimana kiri dan kanannya tidak kosong. Sesuai dengan algoritma Delete di atas maka pengganti 7 diambil minimum dari sebelah kanan. Di sebelah kanan 7 hanya ada 13 dan sekaligus minimum di sebelah kiri 7. Proses hapus 7 dilakukan dengan menimpa 7 oleh 13 dan node yang berisi 13 dibuang dan hasil akhir diperoleh sebagai berikut: