P. 1
Str data

Str data

|Views: 300|Likes:
Published by Junew Blue

More info:

Published by: Junew Blue on Mar 21, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as TXT, PDF, TXT or read online from Scribd
See more
See less

11/20/2014

pdf

text

original

PENGERTIAN TREE Tree merupakan struktur data non linear.

Struktur data dalam bentuk tree (pohon ) merupakan sebuah struktur data yang secara bentuk menyerupai sebuah pohon, yang terdiri dari serangkaian simpul (node) yang saling berhubungan. Akar (root) adalah simpul yang tidak memiliki superordinat sedangkan Daun (leaf) adalah simpul yang tidak memiliki subordinat. SUPERORDINAT Node Node Node Node DAN SUBORDINAT B merupakan superordinat node D dan node E. D dan E mempunyai superordinat yang sama yaitu node B. B mempunyai subordinat yaitu node D (left child) dan E (right child). D dan node E merupakan subordinat simpul B.

DERAJAT (DEGREE) SEBUAH NODE Degree pada sebuah node menyatakan jumlah subordinat dari node tersebut. Untuk tree yang dicontohkan pada gambar diatas : Node A : degree = 3. Node B : degree = 2. Node C : degree = 0. Node D : degree = 3. Pohon biner (binary tree) Pohon biner adalah sebuah tree yang pada masing-masing simpulnya hanya dapat mem iliki maksimum 2 (dua) simpul anak, tidak boleh lebih. Pada pohon biner, umumnya kedua node anak (child) disebut den gan posisinya, yaitu subordinat kiri (left child) dan subordinat kanan (right child). POHON BINER DENGAN DEPTH 3 Maka pada completely binary tree berlaku: Pada level k jumlah node .. .... .. ...: n = 2^k Untuk tree dengan depth d, maka jumlah node .. . : n = 2^(d+1)-1 Untuk tree dengan depth d, maka jumlah node leaf .......: n = 2^d Untuk tree dengan depth d, maka jumlah node bukan leaf ...: n = (2^d)-1 Bila jumlah node seluruh node = n, maka depth tree adalah...: d = log2(n+1)-1 STRICLY BINARY TREE Stricly Binary Tree adalah pohon biner yang semua node-nya (kecuali simpul leaf) mempunyai lengkap node subordinat kiri dan node subordinat kanan. Jumlah Leaf = 2^n Jumlah Node = 2^n 1 Dimana n = depth FULL BINARY TREE Semua node( kecuali leaf pasti memiliki 2 anak dan tiap subtree memiliki kedalam an yang sama ) COMPLETE BINARY TREE Mirip dengan full binary tree, tetapi tiap subtree boleh memiliki kedalaman yang berbeda dan tiap node (kecuali leaf memiliki 2 anak) BALANCED BINARY TREE Balanced Binary Tree (pohon biner seimbang) atau biasa disebut dengan pohon AVL adalah pohon biner yang ketinggian sub-tree kiri dan sub-tree kanan untuk setiap node superordinat paling banyak selisih 1.

Pembuatan sebuah node. PROSES INISIALISASI ? Inisialisasi adalah pemberian nilai awal pada suatu variabel atau kondisi yang dapat digunakan sebagai ciri suatu kondisi. 6. maksudnya adalah menempatkan n ode baru tersebut menjadi subordinat sebuah node baik pada cabang kiri (pointer left) maupun pada cabang kanan (point er right). Ditanyakan berapa nomor node superordinat node tersebut ? Jawab : Dengan menggunakan matematika maka akan diperoleh : 2n + 1=75 2n =75-1 2n =74 n =74/2 n = 37 Operasi pada pohon biner Operasi pada binary tree merupakan satu rangkaian proses yang dapat dibagi menja di beberapa bagian operasi (fungsi) seperti: 1. Pembuatan node akar. Misal dengan : int A[16]. Pointer P digunakan khusus menunjuk node yang baru dibuat. Pointer Q dan R digunakan sebagai pointer pembantu. PEMBUATAN SEBUAH NODE MENJADIKAN SEBUAH NODE SEBAGAI NODE AKAR SUATU TREE INSERT SEBUAH NODE KE TREE YANG SUDAH ADA Menambahkan sebuah node baru kedalam sebuah tree. Ada dua macam proses insert yang akan dibahas dalam materi ini.PENOMORAN NODE POHON BINER Penomoran node binary tree dapat diilustrasikan seperti pada gambar berikut ini: Untuk depth=d maka perlu dipersiapkan array satu dimensi minimal 2^(d+1). CONTOH SOAL : Pada sebuah binary tree. salah satu node memiliki nomor = 75. atau instert level per level. 4. Contoh untuk d=3 perlu dipersiapkan minimal 2^4=16 elemen. P=NULL. Pembacaan atau penelusuran binary tree. Inisisalisasi. Penambahan (insert) node baru kedalam sebuah tree. Root = NULL. 5. STRUKTUR NODE ? ? ? ? Pointer Root digunakan khusus menunjuk node akar . ? Insert urut nomor node. ? Instruksi dasar untuk inisisalisasi. . 3. 2. Pointer-pointer yang lain dapat ditambahkan bilamana diperlukan. Penghapusan (delete) node dari sebuah tree.

Jika ada. Susun algoritma untuk : Memeriksa apakah node dengan nomor 50 ada terdapat dalam tree tersebut. cetak perkataan ADA . Insert pada nomor node tertentu Insert level per level dengan cara lain Disini dibutuhkan struktur node sebagai berikut : Perkembangan insert node per-node dan tanda-tanda atau ciri-ciri yang menyataka n kondisi terakhir dapat digambarkan sebagai berikut. untuk mencatat alamat node-node. INSERT URUT NOMOR NODE. Tersedia pointer P. Node root ditunjuk oleh pointer root. Sebagai contoh. Membaca binary tree MEMBACA BINARY TREE LEVEL PER LEVEL URUT NOMOR NODE Untuk tree pada Gambar (1) Gambar (2) Gambar (3) Gambar (4) Akan tercetak A B C D E F G H I J K L M N O P Q A B C D E G I J K N A B C E F G J K M N A B C E J K Untuk keperluan algoritma. ? Atau untuk menginsert node baru tersebut menjadi subordinat kanan maka instruksinya cukup dengan : Root->Right=P. ATAU INSTERT LEVEL PER LEVEL ? Ilustrasi insert node ? Untuk selanjutnya ilustrasi diatas akan disenderhanakan menjadi seperti berikut ini: ? Jika persoalannya hanya menginsert node B sebagai subordinat kiri node A maka instruksinya cukup dengan : Root->Left=P. untuk binary tree yang diilustrasikan dengan Gambar (4). Jumlah node dan kedalaman level tidak diketahui. Operasi ini terbagi menjadi 3 bentuk : 1. a) b) Kunjungan secara Preorder (Depth First Order) Cetak isi simpul yang dikunjungi (simpul akar) Kunjungi cabang kiri . jika tidak ada maka cetak TIDAK ADA . dan R yang dapat me nujuk alamat sebuah node. Struktur node sama seperti yang dicontohkan dalam bab materi ini.? Instert pada nomor node tertentu. Q. dapat digunakan bila diperlukan. maka diperlukan sebuah array (diberi nama Q) kerena d igunakan sebagai queue (antrian) bertipe pointer node. maka alamat node-nodenya tersimpan dalam array pointer seperti digambarkan pada gambar dibaw ah ini. Program dibagi menjadi tiga tahap yaitu : Kunjungan pada pohon biner Kunjungan pohon biner merupakan salah satu operasi yang sering dilakukan pada su atu pohon biner tepat satu kali ( binary tree traversal ). Membaca dan mencari sebuah node dengan nomor tertentu Sudah ada sebuah binary tree.

(. ) T. kunjungan secara InOrder menghasilkan Notasi Infix dan kunjungan PostOrder menghasilkan Notasi Postfix. Dengan kata lain jika suatu elemen dikeluarkan dari antrean. a) b) c) Kunjungan secara Inorder (Symetric Order) Kunjungi cabang kiri Cetak isi simpul yang dikunjungi (simpul akar) Kunjungi cabang kanan Ilustrasi penelusuran inorder : 3. apabila dilakukan kunjungan secara PreOrder.a) AB+BC-* (Gambar.D) .D) e2 = (B. AB. V 2.D.C) e5 = (B. yaitu : +A*BC (Gambar.C. INFIX DAN POSTFIX Pohon Binar yang apabila dikunjungi secara PreOrder akan menghasilkan Notasi Pre fix. maka aka n diperoleh Notasi Prefix dari persamaan-persamaan yang digambarkan tersebut.B.+(. B. APLIKASI POHON BINER NOTASI PREFIX. a) b) c) Kunjungan secara Postorder Kunjungi cabang kiri Kunjungi cabang kanan Cetak isi simpul yang dikunjungi (simpul akar) Ilustrasi penelusuran postorder : KUNJUNGAN LEVEL ORDER Secara singkat kunjungan Level Order ini dapat dijelaskan sebagai berikut : 1. cabang kiri dan cabang kanan s ecara berturut-turut dimasukkan dalam antrean. Dimulai dengan memasukkan Akar kedalam antrean. maka cabang kiri da n kanan dari elemen yang baru saja dikeluarkan dimasukkan kedalam antrean. +(. E : berikut menanyakan Graph G(E. yai tu : ABC*+ (Gambar. 2. Berdasarkan Gambar diatas. Operator : (.c) T. mengandung 5 ruas.a) *+AB-BC (Gambar. Kemudian mengeluarkan Akar tersebut keluar dari antrean. B Graph Contoh Gambar 1.c) Kunjungi cabang kanan Ilustrasi penelusuran preorder : 2. yaitu : e1 = (A. yaitu simpul A.b) ^-*+ABC-DE+FG (Gambar.B) e4 = (C.Operand: A. Pada saat Akar tersebut dikeluarkan dari antrean. akan diperoleh Notasi Postfixnya.b) AB+C*DE-FG+^ (Gambar.V) dengan : mengandung 4 simpul.c) Jika dilakukan kunjungan secara PostOrder. A.

g. B..f adalah Walk bukan Trail (karena ruas b dua kali mun cul).b.. e n-1. Karena setiap ruas dihitung dua kali ketika menentukan derajat suatu Graph.... Ruas semacam ini disebut Gelung atau Self-Loop. F bukan Walk (karena tdk ada ruas yang menghubungkan sim ..D) Gambar dibawah ini menyatakan suatu Multigraph. E. yaitu simpul A.. Sedangkan ruas e5 dan e6 mempuny ai titik ujung yang sama.e2. Banyaknya ruas disebut Panjang Walk..V2.. maka Jumlah Derajat Semua Simpul = 8 Bila Jumlah Derajat Semua Simpul sama dengan Genap.b. yaitu simpul-simpul B dan C.V ) disebut Sub Graph dari G(E.. . Walk dapat ditulis lebih singkat dengan han ya menulis deretan ruas : e1. Walk disebut tertutup bila V1 = Vn. Vn dimana : V1 = simpul awal Vn = simpul akhir. sering disebut juga sebagai Graph sederhana atau simple Graph. ruas e2 pada kedua titik ujungnya adalah simpul yang sama. DERAJAT GRAPH Derajat simpul V. en-1 atau deretan simpul : V1. V2.c... ditulis d(v) adalah banyaknya ruas yang menghubungi v. maka d(e) disebut bobot ata u panjang dari ruas e. Disini simpul menyatakan kota dan label d(e) menyatakan jarak antara dua kota. maka G disebut Subgra ph yang direntang oleh V (Spanning Subgraph). bila E V himpunan bagian dari V. Kedua ruas ini disebut ruas berganda atau ruas sejajar.e3 = (A.d. Vn Disini ruas ei menghubungkan simpul Vi dan Vi+1. Barisan ruas a. Suatu Graph yang tidak mengandung ruas sejajar ataupun self-loop. maka disebut EULER Graph KETERHUBUNGAN Walk atau perjalanan dalam Graph G adalah barisan simpul dan ruas berganti-ganti : V1. Suatu Graph G (E .. maka : Jumlah derajat semua simpul suatu Graph (derajat) = dua kali banyaknya ruas Grap h (Size) Atau dapat dituliskan : Derajat Graph = 2 x S Pada gambar diatas Jumlah Semua Simpul = 4. Contoh : Gambar berikut ini menyajikan hubungan antar kota.V).e1... Khususnya jika setiap Ruas e dari G dikaitkan dengan suatu bilangan non negatif d(e).. Disini. Vn-1.h. himpunan bagian dari E dan Jika E mengandung semua ruas dari E yang titik ujungnya di V .e2. Barisan simpul A... Contoh Sub Graph: Contoh Spanning Sub Graph : GRAPH BERLABEL Graph G disebut berlabel jika ruas dan atau simpulnya dikaitkan dengan suatu bes aran tertentu.

bila dalam hal lain. k adalah Jalur/Path karena menghubungkan A dengan F Ruas a. Matriks Adjacency merupakan matriks simetri. 3 dan 4 2. yaitu (1.A). Barisan simpul A. adalah Cycle. tanpa self-loop didefinisikan sebagai Matriks M berukuran (NXM) sebagai berikut : 1. Bila V himpunan bagian dari V serta A dengan titik ujung anggota A terletak maka dikatakan bahwa D (V . (2. yaitu 1. D. g. V mengandung 4 simpul. Matriks Incidence dari Graph G. yaitu Matriks yang menghubungkan Vertex dengan V ertex. C. Graph yang tidak mengandung Cycle disebut Acyclic. disebut arkus sejajar atau arkus berganda. (4. dalam hal lain.3). Vj)(p>0) 0. di dalam V .pul A ke F).A ) adalah Bila A mengandung semua arkus anggota himpunan bagian dari A.A) dengan : 1. d. bila ada ruas ej berujung di simpul Vi mij = 0. Contoh. Matriks Adjacency didefinisikan sebagai berikut : P. Gambar dibawah ini adalah sebuah Graph Berarah D(V.(2. GRAPH TERARAH (DIRECTED GRAPH / DIGRAPH) Suatu Graph Berarah (Directed Graph) D terdiri atas 2 himpunan : 1) Himpunan V. h. Graph bagian (Subgraph) dari D(V.2) disebut gelung (self-loop). yaitu Matriks yang menghubungkan Vertex dengan E dge.2). Contoh dari acyclic Matriks penyajian graph Misalnya disajikan Graph G dalam Matriks ruas B ukuran (M x 2). maka setiap bar is Matriks menyatakan ruas. Untuk Graph dengan ruas sejajar. bila dalam hal lain.disebut ruas berarah atau arkus. anggotanya disebut simpul. B. sedangkan arkus (2. tanpa ruas sejajar adalah Matriks A berukuran (N x N) yang bersifat : 1 . e. bila ada p buah ruas menghubungkan aij = (Vi. 2) Himpunan A. g. A yang titik ujungnya anggota V . (2.1). b. F adalah Trail bukan Jalur/Path (karena c dua k ali muncul) Barisan ruas a. merupakan himpunan pasangan terurut. a. Vj) aij= 0. E.4) . Contoh dari Graph Acyclic ada lah pohon atau Tree. misalnya baris (4 7) menyatakan ada ruas menghubungkan simpul 4 dan 7. 2.1). A mengandung 7 arkus. C. . Matriks Adjacency dari Graph G. bila ada ruas (Vi. (4.1) muncul lebih dari satu kali.3) dan (2) Arkus (2.

Berbeda dengan cara BFS. GRAPH TAK BERARAH (UNDIRECTED GRAPH) CRITICAL PATH MINIMUM SPANNING TREE Merupakan Spanning Tree yang mempunyai Bobot dan tidak mempunyai arah dengan has il penjumlahan bobotnya adalah minimum. Node.3 dan seterusnya. kemudian melebar pada Adjacent Node dari Node-1 dan diteruskan pada Nod e-2. dengan BFS penelusuran akan diawasi dari Node-1.A ) adalah Graph Bagian yang dibentuk atau direntang oleh V . PENELUSURAN GRAPH 2.maka dikatakan bahwa D (V . Breadth First Search (BFS). .

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->