binary tree
Post on 07-Jul-2015
381 Views
Preview:
TRANSCRIPT
PENDAHULUAN Seiring perkembangan zaman kebutuhan akan teknologi dan
tempat untuk menyimpan data secara tepat dan memperkecil waktu yang diperlukan untuk memproses data. Struktur data terbagi menjadi dua, yaitu : struktur data linear dan struktur data non linear.Untuk
informasi yang cepat dan akurat terus meningkat. Komputer sebagai salah satu alat teknologi menjadi hal yang mutlak digunakan. Komputer selain dapat mempercepat dan
masalah-masalah yang kompleks dan memerlukan banyak memori struktur data non linear menjadi pilihan yang tepat untuk digunakan. Tree sebagai salah satu jenis struktur data non linear banyak diterapkan dalam
mempermudah pekerjaan juga dapat digunakan untuk menghitung,
mengingat, serta menyimpan data. Dengan kemampuan komputer, semakin yang masalah banyaknya oleh harus
dimiliki yang
bidang Ilmu komputer.
diselesaikannya semakin besar dan kompleks. Untuk menyelesaikan yang kompleks
Identifikasi Masalah Binary Tree merupakan
masalah-masalah
himpunan simpul terbatas dimana salah satu simpul bisa kosong atau berisi dua pohon yang terpisah yang disebut subtree di kiri dan kanannya. Jumlah maksimum tingkatan dari binary Tree adalah dua, jika ada penambahan dilakukan penelusuran
tersebut diperlukan sebuah algoritma yang efisien. Keefisienan algoritma ditentukan oleh pemilihan struktur data dalam pembangunan algoritma tersebut. Struktur data yang baik haruslah dapat mengalokasikan
1
dari kiri ke kanan yang ditetapkan sebagai subtree. Binary Search Tree adalah
4. Algoritma pada binary tree dan binary search tree yang akan kompleksitasnya dibahas hanya
binary tree dengan sifat bahwa semua left child harus lebih kecil dari pada right child dan Parent nya.Juga semua right child harus lebih besar dari left child serta Parent nya. Batasan Masalah Untuk pembahasan memfokuskan masalah, maka
algoritma operasi pencarian
Maksud dan Tujuan Maksud dan Tujuan yang ingin dicapai dari penulisan tugas akhir ini adalah : 1. Membandingkan kinerja dari struktur binary tree dan
pembahasan diberikan pembatasan sebagai berikut : 1. Hanya membahas
binary search tree dalam hal pencarian data, sehingga
kompleksitas pada dua jenis struktur tree, yaitu binary tree dan binary search tree 2. Jumlah data yang diinputkan dibatasi dari 1-100 data 3. Kompleksitas yang dibahas hanya kompleksitas waktu mengenai
dapat diketahui struktur tree mana untuk yang lebih efisien dalam
digunakan
proses pencarian data. 2. memberikan gambaran secara visual struktur binary tree dan binary datanya manual. search tree yang secara
diinputkan
2
Metodologi Penelitian Metodologi yang digunakan
Struktur data dapat dibedakan menjadi dua jenis, yaitu : struktur data linear (array, stack, dan queue) dan struktur data non linear (tree dan graph). Seringkali struktur data non linear tidak selalu tepat untuk
dalam penyusunan tugas akhir ini adalah studi literatur, yaitu
metodologi penelitian dengan cara membaca berbagai maupun dan membandingkan baik internet buku yang
referensi, media
program-program yang kebutuhan memorinya selalu bertambah selama eksekusi program tersebut. Struktur data non linear menjadi pilihan alternatif, karena struktur data
berhubungan dengan kompleksitas binary tree dan binary search tree.
LANDASAN TEORI STRUKTUR DATA Struktur data merupakan salah satu bahan dasar pembuatan
tersebut dapat mengalokasikan dan mendealokasikan dinamis, kebutuhan dieksekusi yaitu pada variabel sesuai saat secara dengan program dapat
program. Program yang baik hanya dapat dihasilkan dari struktur data yang sesuai dengan kebutuhan
sehingga
mengefisiensikan memori.
penggunaan
aplikasi, karena program yang baik adalah sebuah ketiga program yang TREE Tree merupakan salah satu
memenuhi
karakteristik,
yaitu : efisiensi, kecepatan, dan fleksibilitas.
bentuk struktur data non linear yang menggambarkan hubungan yang
3
bersifat elemen. sebagai
hirarkis Tree
antara
elemen-
Binary tree mempunyai berbagai jenis, yaitu : 1. Full Binary tree Full Binary Tree adalah binary tree yang tiap nodenya (kecuali leaf) memiliki dua child dan tiap subtree harus panjang
bisa
didefinisikan simpul/node
kumpulan
dengan satu elemen khusus yang disebut ROOT dan node lainnya terbagi menjadi himpunan-himpunan yang saling tidak berhubungan satu sama lainnya (subtree) BINARY TREE
mempunyai path yang sama Binary tree adalah tree dengan syarat bahwa tiap node bisa kosong atau maksimal memiliki dua subtree dan kedua subtree harus terpisah. Sesuai dengan definisi tersebut, maka tiap node dalam binary tree hanya boleh memiliki paling banyak dua child.A B D E F C G
Gamba r 2.4. Full
Binary Tree
2. Complete binary Tree Complete Binary Tree
Mirip dengan full binary tree, namun tiap subtree Jenis Binary Tree boleh memiliki panjang
4
path yang berbeda.node (kecuali leaf) memiliki 0 atau 2 child
BINARY SEARCH TREE Binary Search Tree adalah Binary tree dengan sifat bahwa semua left child harus lebih kecil daripada right child dan parentnya.Juga semua right child harus lebih besar dari left child serta parentnya. Binary search
3. Skewed Binary Tree Skewed Binary Tree
Tree dibuat untuk mengatasi kelemahan pada binary tree biasa, yaitu kesulitan dalam pencarian node tertentu dalam binary tree.
adalah binary tree yang semua node nya (kecuali leaf) hanya memiliki satu child.
a ta u
KOMPLEKSITAS ALGORITMA Gambar 2.6. Skewed Binary Tree TREE Kompleksitas merupakan fungsi algoritma f(n) yang
mengukur waktu dan ruang yang
5
digunakan oleh sebuah algoritma menurut ukuran atau banyaknya data yang diinputkan (n). Kompleksitas sebuah algoritma biasanya
kebutuhan waktu rata-rata yang diperlukan Hal yang sering diperhatikan dalam kompleksitas algoritma adalah pada kasus terburuk (worst case), yaitu, keperluan waktu maksimum dari semua masalah dengan ukuran input yang sama.
dinyatakan dalam bentuk notasi Big O, yang memberikan orde dari suatu fungsi untuk n yang besar.
Untuk semua masalah dalam ukuran tertentu terdapat beberapa perbedaan : a. Kompleksitas waktu untuk kasus terburuk kebutuhan (worst waktu case), yaitu
maksimum ]
yang diperlukan b. Kompleksitas waktu untuk kasus terbaik (best case), yaitu
kebutuhan waktu minimum yang diperlukan c. Kompleksitas waktu untuk kasus rata-rata (average case), yaitu PERANCANGAN Diagram Konteks
6
Diagram perangkat lunak
konteks yang
dari
Binary
Tree
adalah
Tree
dibangun
dengan syarat bahwa tiap node hanya boleh memiliki maksimal dua
digambarkan seperti di bawah ini :
subtree dan kedua subtree tersebutS is te m P o h o n B in e r
harus terpisah.Sesuai dengan definisi tersebut maka tiap node ( simpul)
J u m la h P e r b a n d in g a n w a k tu B ila n g a n
dalam binary tree hanya boleh memiliki paling banyak dua child.
U ser
Digram Konteks Sistem Pohon Biner Data yang digunakan adalah data yang berupa bilangan bulat, keluaran yang dihasilkan berupa banyaknya perbandingan waktu yang terjadi untuk menemukan bilangan yang dicari.
Pencarian pada Binary Tree Proses pencarian pada binary Tree dilakukan ke setiap node
sampai ditemukan kunci (X) yang dimaksud. Logika pencarian pada binary Tree adalah sebagai berikut : CariX di binary tree (T,X,ketemu) a. jika kunci di akar (T) sama dengan X, ketemu true jika akar (T) sama dengan nill, ketemu false
Kompleksitas Algoritma Binary Tree
b. jika X tidak sama dengan kunci (T) maka cari X di
7
binary (kiri(T),X,ketemu).
Tree End; Misalkan algoritma
End;
Jika x tidak diketemukan pada (kiri(T)) maka cari X di binary (kanan(T),X,ketemu). Tree
kompleksitas dihitung dari
waktu jumlah
operasi perbandingan (if info (T) = X ), maka banyaknya perbandingan (pada worst case) sebanding dengan
Kompleksitas waktu Asimptotik Dari logika pencarian kunci pada binary tree diatas maka dapat ditulis algoritmanya sebagai berikut : Procedure CariX (T:pohon_biner ; X: info_type ; ketemu : boolean); Begin If T = nil then Ketemu := false Else If info(T) = X then Ketemu := true Else Begin T:= kiri(T); T:= kanan(T);
banyaknya
data
(n).Sehingga
kompleksitas wakti Asimptotiknya dapat ditulis : T(n) = n atau T(n) = O(n)
T(n) = O(n) Algoritma yang waktu pelaksanaannya lanjar.umumnya terdapat pada kasus yang setiap elemen masukkannya dikenai proses yang sama.bila n dijadikan dua kali semula, maka waktu pelaksanaan algoritma juga dua kali semula Kompleksitas Algoritma Binary Search Tree
8
Binary Search Tree adalah binary tree dengan sifat bahwa semua left child harus lebih kecil dari pada right child dan Parent nya.Juga semua right child harus lebih besar dari left child serta Parent nya.
jika akar (T) sama dengan nill, ketemu false b. jika X < kunci (T) maka cari X di binary Tree (kiri(T),X,ketemu). c. jika X > kunci (T) maka cari X di binary Tree
Pencarian pada Binary Tree Proses pencarian pada binary Search Tree dimulai dari akar.Jika bilangan yang dicari (X) tidak sama dengan bilangan di akar, pencarian dilanjutkan di subtree kiri atau di subtree kanan, bergantung apakah bilangan yang dicari (X) lebih besar atau lebih kecil dari bilangan di akar. Logika pencarian pada binary search Tree adalah sebagai berikut : CariX di binary Search tree
(kanan (T),X,ketemu).
Kompleksitas waktu Asimptotik Dari logika pencarian kunci pada binary search tree diatas maka dapat ditulis algoritmanya sebagai berikut : Procedure CariX (T:pohon_biner ; X: info_type ; ketemu : boolean); Begin If T = nil then Ketemu := false Else If T^.isi = X then
(T,X,ketemu) a. jika kunci di akar (T) sama dengan X, ketemu true
9
Ketemu := true Else If x < T^.isi then cariX(T^.kiri, ketemu) else If x >T^.isi then cariX(T^.kanan, ketemu); end; Misalkan algoritma kompleksitas dihitung dari waktu jumlah X, X,
waktunya berjalan lebihlambat dari pertumbuhan n.Algoritma yang termasuk kelompok ini adalah algortma yang memecahkan persoalan besar dengan mentransformasikan menjadi beberapa persoalan yang lebih kecil.fungsi log n hanya meningkat menjadi dua kali semula jika n dinaikkan sebesar n2 kali semula.
Perbandingan
Algoritma
operasi perbandingan (if info (T) = X ), maka kompleksitas
pencarian pada binary tree dan binary search tree Kompleksitas waktu asimptotik dapat digunakan untuk
asimptotiknya: T(n)=O(2 log n)
membandingkan dua buah algoritma untuk diketahui algoritma yang mana yang berkinerja lebih baik.Algoritma pencarian T(n)=O(2 log n) Kompleksitas waktu algoritmik.Berarti laju pertumbuhan mempunyai asimptotiknya pada Binary Tree waktu O(n),
kompleksitas T(n) =
Sedangkan pencarian pada Binary
10
Search Tree kompleksitas waktu asimptotiknya T(n) = O(2log n). Dilihat dari urutan spektrum kompleksitas waktu algoritma, maka algoritma dengan kompleksitas
asimptotik O(2log n) lebih cepat atau memerlukan sedikit untuk waktu yang lebih proses dengan
melakukan
pencarian algoritma
dibandingkan dengan
kompleksitas
asimptotik O(n). Dengan kata lain kinerja
operasi pencarian pada binary Search Tree lebih baik atau lebih cepat dibandingkan operasi pencarian pada Binary Tree.
11
DAFTAR PUSTAKA Jogiyanto, Turbo pascal versi 5.0, Penerbit Andi Offset, Yogyakarta, 1998
Munir, Rinaldi, Struktur Data dan Algoritma Lanjut, Edisi kedua, Laboraturium Perangkat Lunak dan Sistem Informasi Teknik Informatika ITB, 1998
Sanjaya, Dwi, Bertualang dengan struktur Data di Planet Pascal, J&J Learning, Yogyakarta
Santosa, Insap, Struktur data menggunakan Turbo Pascal 6.0, Penerbit Andi Offset, Yoogyakarta, 2000
12
top related