Anda di halaman 1dari 12

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

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

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

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

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

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

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 tersebut


S 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

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

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

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

Anda mungkin juga menyukai