/
M a t M a t

M a t - PowerPoint Presentation

cheryl-pisano
cheryl-pisano . @cheryl-pisano
Follow
363 views
Uploaded On 2017-09-16

M a t - PPT Presentation

eri K u l i ah S t ruk t ur D a t a T R E E S T RUC T URE S t ru k t ur P o h on Da l am il m u k o m p u t e r t ree a ID: 588257

yang node kiri pohon node yang pohon kiri kanan tersebut tree jika untuk kosong biner data memiliki pada struktur

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "M a t" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

M

ateri Kuliah - Struktur Data

TREE STRUCTURE (Struktur Pohon)

Dalam ilmu komputer, tree adalah sebuah struktur data yang secara bentuk menyerupai sebuahpohon, yang terdiri dari serangkaian node (simpul) yang saling berhubungan. Node-node tersebut dihubungkan oleh sebuah vektor. Setiap node dapat memiliki 0 atau lebih node anak (child). Sebuah node yang memiliki node anak disebut node induk (parent). Sebuah node anak hanya memiliki satu node induk. Sesuai konvensi ilmu komputer, tree bertumbuh ke bawah, tidak seperti pohon di dunia nyata yang tumbuh ke atas. Dengan demikian node anak akan digambarkan berada di bawah node induknya.

Node yang berada di pangkal tree disebut node root (akar), sedangkan node yang berada palingujung pada piramida tree disebut node leaf (daun).

Ilustrasi Tree:

Binary Tree (Pohon Biner)

Dalam mata kuliah struktur data, secara khusus akan dipelajari mengenai pohon biner. Pohonbiner adalah sebuah tree yang pada masing-masing simpulnya hanya dapat memiliki maksimum 2 (dua)simpul anak. Tidak boleh lebih. Pada pohon biner, umumnya kedua node anak disebut dengan

posisinya, yaitu kiri dan kanan.

Beberapa istilah pada pohon biner:

Size (ukuran): jumlah total node yang terdapat pada pohon biner tersebut.

Depth (kedalaman): panjang jalur yang menghubungkan sebuah node sampai ke node anaknyayang paling ujung (leaf). Depth biasa juga disebut height.

1Slide2

M

ateri Kuliah - Struktur D

ataFull Binary Tree (Pohon Biner

Penuh) adalah pohon biner yang setiap nodenya pasti memiliki 0 atau 2node anak.Perfect Binary Tree (Pohon Biner Sempurna) adalah pohon biner yang semua node leafnya berada padakedalaman yang sama dari node root. Juga disebut sebagai Complete Binary Tree (Pohon BinerLengkap)Almost Complete Binary Tree (Pohon Biner Hampir Lengkap) adalah pohon biner yang setiap nodenyadapat memiliki 0 node anak, atau memiliki kiri, a

tau jika memiliki kanan harus memiliki kiri. Tidak boleh memiliki kanan saja.Ilustrasi Binary Tree:

Implementasi

Implementasi dalam

pemrograman, dalam pokok bahasan ini akan dibicarakan untuk pohonbiner saja. Asumsi awal adalah data yang hendak dimasukkan ke dalam node, bertipe data integer.1. Deklarasi TreeKarena tree tersusun oleh node-node, maka yang perlu kita deklarasikan adalah komponen nodeitu sendiri. Dalam contoh dibawah, akan kita namai Node.

Sebelumnya perlu kita lihat bahwa untuk

mewujudkan implementasi node ke da

lam bahasapemrograman, diperlukan sebuah struktur yang memili

ki susunan ber

ikut ini:2Slide3

M

ateri Kuliah - Struktur D

ataVariabel data digunakan untuk menyimpan ni

lai angka node tersebut, sedangkan kiri dan kanan,bertipe pointer, masing-masing mewakili vektor yang akan menunjuk ke node anak kiri dan kanan.2. Inisialisasi TreeUntuk pertama kali, saat kita akan membuat sebuah pohon biner, asumsi awal adalah pohon itubelum bertumbuh, belum memiliki node sama sekali, sehingga masih kosong. Oleh karena itu perlu kita tambahkan kode berikut pada baris awal fungsi Main:Kita mendeklarasikan sebuah pointer yang akan menunjuk ke akar pohon yang kita buat, dengannama *pohon

. Pointer ini ditujukan untuk menunjuk struktur bertipe Node, yang telah dibuat padabagian 1. Karena pohon tersebut sama sekali belum

memiliki node, maka point

er *pohon ditunjukkan keNUL

L.3. Menambahkan Node Pada TreeKarena pohon yang kita buat merupakan sebuah pohon biner, maka untuk menambahkan sebuahnode, secara otomatis penambahan tersebut mengikuti aturan penambahan node pada pohon biner:1.Jika pohon kosong, maka node baru ditempatkan sebagai akar pohon.2.Jika pohon tidak kosong, maka dimulai dari node akar, dilakukan proses pengecekan berikut:a.Jika nilai node

baru lebih kecil dari nilai node

yang sedang dicek, maka lihat

ke kiri nodetersebut. Jika kiri node tersebut kosong (belum

memili

ki kiri), maka node baru menjadi kiri node yang sedang dicek. Seandainya kiri node sudah terisi, lakukan kembali pengecekan a dan b terhadap node kiri tersebut. Penge

cekan ini d

ilakukan se

t

er

u

sn

y

a h

i

ng

ga no

d

e baru da

p

at

d

i

t

e

m

pa

t

kan.

b.

J

i

ka

n

i

l

ai

node

baru lebih besar dari nilai node yang sedang dicek, maka lihat ke kanan nodetersebut. Jika kanan node tersebut kosong (belum memiliki kanan), maka node baru menjadi kanan node yang sedang dicek. Seandainya kanan node sudah terisi, lakukan kembali

3Slide4

M

ateri Kuliah - Struktur D

atapengecekan a dan b terhadap node kanan tersebut

. Pengecekan inihingga node baru dapat ditempatkan.dilakukanseterusnyaProses penambahan ini diimplementasikan secara rekursif pada fungsi berikut:Variabel **root menunjukkan node mana yang sedang dicek saat ini, untuk itu saat pemanggilanfungsi ini, variabel **root kita beri nilai pointer yang menunjuk ke node akar, yaitu pohon.Untuk selengkapnya dapat dilihat pada bagian 5, kode program lengkap.4. Membaca dan Menampilkan Node Pada TreeUntuk membaca dan

menampilkan seluruh node yang terdapat pada pohon biner, terdapat 3macam cara, atau yang biasa disebut kunjungan (visit). Semua kun

jungan diawali dengan men

gunjungi akar pohon. Karena proses kunjun

gan ini memerlukan perulangan proses yang sama namun untuk depth (kedalaman) yang berbeda, maka ketiganya diimplementasikan dengan fungsi rekursif.a. Kunjungan Pre-Order.Kunjungan pre-order dilakukan mulai dari akar pohon, dengan urutan:1. Cetak isi (data) node yang sedang dikunjungi2. Kunjungi kiri node tersebut,- J

ika kiri bukan kosong (tidak NULL) mu

lai lagi dari langkah pert

ama, terapkan untuk kiri4Slide5

M

ateri Kuliah - Struktur D

atatersebut.- Jika kiri kosong

(NULL), lanjut ke langkah ketiga.3. Kunjungi kanan node tersebut,• Jika kanan bukan kosong (tidak NULL) mulai lagi dari langkah pertama, terapkan untukkanan tersebut.• Jika kanan kosong (NULL), proses untuk node ini selesai, tuntaskan proses yang samauntuk node yang dikunjungi sebelumnya.b.Kunjungan In-Order.1. Kunjungi kiri node tersebut,- Jika kiri bukan kosong (tidak NULL) mulai lagi dari langkah pertama,

terapkan untuk kiritersebut.- Jika kiri kosong (NULL), lanjut ke langkah kedua.2. Cetak isi (data) node y

ang sedang dikunjungi

3. Kunjungi kanan node tersebut,

- Jika kanan bukan kosong (tidak NULL) mulai lagi dari langkah pertama, terapkan untukkanan tersebut.- Jika kanan kosong (NULL), proses untuk node ini selesai, tuntaskan proses yang samauntuk node yang dikunjungi sebelumnya.5Slide6

M

ateri Kuliah - Struktur D

atac.Kunjungan Post-Order.1.

Kunjungi kiri node tersebut,• Jika kiri bukan kosong (tidak NULL) mulai lagi dari langkah pertama, terapkan untukkiri tersebut.• Jika kiri kosong (NULL), lanjut ke langkah kedua.2. Kunjungi kanan node tersebut,• Jika kanan bukan kosong (tidak NULL) mulai lagi dari langkah pertama, terapkan untukkanan tersebut.• Jika kanan kosong (NULL), lanjut ke langkah ketiga.3. Cetak isi (data) node yang sedang dikunjungi.

Proses untuk node ini selesai, tuntaskan prosesyang sama untuk node yang dikunjungi sebelumnya.Variabel **ro

ot pada setiap fungsi

diatas menunjukkan node mana

yang sedang dikunjungi saatini, untuk itu saat pemanggilan, variabel **root kita beri nilai pointer yang menunjuk ke node akar, yaitupohon.Untuk selengkapnya dapat dilihat pada bagian 5, kode program lengkap.5. Kode Program LengkapBerikut ini kode program keseluruhan, termasuk menu t

ampilan, di mana di dalamnya terdapat

Deklarasi Tree, Inisialisasi T

ree, Penambahan Node, dan Pembacaaan serta Menampilkan Node dengan6Slide7

M

ateri Kuliah - Struktur Data

3 macam kunjungan. Kode ditulis dengan C++ 3.00.

7

Related Contents


Next Show more