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
mengingat, serta menyimpan data. Dengan kemampuan komputer, semakin yang masalah banyaknya oleh harus
dimiliki yang
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
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
Maksud dan Tujuan Maksud dan Tujuan yang ingin dicapai dari penulisan tugas akhir ini adalah : 1. Membandingkan kinerja dari struktur binary tree dan
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
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
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
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,
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
Binary Tree
Mirip dengan full binary tree, namun tiap subtree Jenis Binary Tree boleh memiliki panjang
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
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
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
konteks yang
dari
Binary
Tree
adalah
Tree
dibangun
dengan syarat bahwa tiap node hanya boleh memiliki maksimal dua
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
binary (kiri(T),X,ketemu).
End;
Jika x tidak diketemukan pada (kiri(T)) maka cari X di binary (kanan(T),X,ketemu). Tree
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
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
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
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
pencarian pada binary tree dan binary search tree Kompleksitas waktu asimptotik dapat digunakan untuk
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) =
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
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