Anda di halaman 1dari 16

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/294051110

Analisis Kecepatan Structur Data Linked List dan Tree

Research · February 2016


DOI: 10.13140/RG.2.1.1243.8801

CITATIONS READS

0 4,173

1 author:

Pradana Setialana
Universitas Gadjah Mada
2 PUBLICATIONS   0 CITATIONS   

SEE PROFILE

All content following this page was uploaded by Pradana Setialana on 12 February 2016.

The user has requested enhancement of the downloaded file.


ANALISIS KECEPATAN STRUKTUR DATA LINKED LIST DAN TREE
Pradana Setialana

Pendidikan Teknik Informatika - Universitas Negeri Yogyakarta


pradana.setialana@gmail.com

Abstract

Binary search trees are better at displaying data, find data, update data and delete data than a circular double
linked list which is only good in entering data. But the low level of complexity of the program double circular
linked list is its own advantages of the binary search tree that has a high level of program complexity.
Keywords: binary search tree, circular double linked list, efficient data structures, fast run time, difference
between tree and linked list.

1. Pendahuluan secara lebih efektif. Pada praktiknya sebuah


struktur data memiliki elemen yang digunakan
Struktur data merupakan cara menyimpan, untuk saling menyimpan rujukan antara satu dengan
menyusun dan mengatur data dalam computer lainnya sehingga membentuk sebuah daftar abstrak,
secara efisien, Ada berbagai macam struktur data tiap-tiap elemen yang terdapat pada daftar abstrak
yang masing-masing memiliki kelebihan dan ini seringkali disebut sebagai node. karena
kekurangan tersendiri. Dari berbagai macam strukur mekanisme rujukan yang saling terkait inilah
data yang ada, struktur data linked list dan tree disebut sebagai daftar berantai (linked list).
hampir memiliki banyak kemiripan. Akan tetapi Sedangkan circular double linked list sendiri
terdapat juga perbedaan yang membuat strukut data merupakan jenis linked list dimana rujukan pada
tersebut memiliki dan kelebihan tersendiri. node terakhir akan merujuk pada node pertama, dan
rujukan pada node pertama akan merujuk pada
1.2 Linked List node terakhir bila yang digunakan sebagai dasar
implementasi adalah daftar bertaut ganda (circular
Linked list atau senarai berantai yang double linked list [1]. Penjelasan mengenai linked
digunakan untuk menyimpan sejumlah objek data list terdapat pada Figure 1 dan circular double
biasanya secara terurut sehingga memungkinkan linked list pada Figure 2.
penambahan, pengurangan, dan pencarian atas
elemen data yang tersimpan dalam daftar dilakukan

Fig. 1. Setiap node yang terdiri atas dua elemen, data integer, dan elemen rujukan ke node berikutnya

Fig. 2. Node terakhir menyimpan rujukan pada node pertama

1.3 Tree umum dari binary tree adalah binary search tree.
Binary search tree memiliki sifat-sifat yaitu subtree
Tree adalah adalah suatu struktur data yang
sebelah kiri memiliki nilai yang lebih rendah
digunakan secara luas yang menyerupai struktur
daripada node kunci. Sedangkan subtree sebelah
pohon dengan sejumlah simpul yang terhubung.
kanan memiliki nilai yang lebih tinggi daripada
Sedangkan pohon biner (binary tree) adalah sebuah
node kunci [2].
pohon struktur data dimana setiap simpul memiliki
paling banyak dua anak. Secara khusus anaknya
dinamakan kiri dan kanan. Penggunaan secara
2. Metodologi Incel Core i5 430M, RAM 2 GB, ATI Mobiliti
Radeon HD 5470 dengan VRAM 512 MB.
Metodologi penilitian untuk menganalisis Terdapat dua kondisi daya listrik notebook yaitu
persamaan, perbedaan, dan keefisien linked list dan kondisi power saver (menggunakan kemampuan
tree adalah processor sedikit) dan kondisi high performance –
Intel Turbo Bost (Menggunakan kemampuan penuh
1. Membandingkan cara kerja masing-masing processor). Untuk setiap kondisi daya listrik
fungsi berdasarkan flowchart terdapat 2 percobaan. Hasil dari penghitungan
dalam millisecond. Sehingga untuk waktu eksekusi
2. Membandingkan komplektifitas setiap dibawah millisecond yaitu dalam hitungan
program. nanosecond maka akan tercetak 0 ms.

3. Menganalisis hasil running program dan 3. Penelitian


waktu eksekusi pada kedua program
Pembandingkan setiap struktur data
Masing-masing program dapat menyimpan berdasarkan setiap method yang memiliki fungsi
data mahasiswa yang berisi nim, nama, jurusan dan yang sama. Perbandingan dilakukan dengan
ipk dalam bentuk program circular double linked membandingkan flowchart dan waktu eksekusi
list dan tree. Untuk menguji penggunaan memori setiap fungsi.
dan kecepatan eksekusi dilkakukan kondisi yang 3.1 Memasukan Data
sama untuk setiap fungsi pada circular double
linked list dan binary search tree. Data untuk Pada tahap ini akan dilakukukan analisis dari
menguji merupakan data mahasiswa yang kedua program mengenai cara, metode, kerumitan
berjumlah 6969 data berupa NIM, Nama, Jurusan serta keefektifitasan program. Pada Figure 3
dan IPK. Data tersebut diambil dari Siakad UNY terdapat flowchart dari method insertFirst dan
yang diberikan pada matakuliah Basis Data dengan insertLast dari circular double linked list.
format file text (.txt). Media pengujian adalah Sedangkan pada Figure 4 terdapat method insert
notebook Acer 4745G dengan spesifikasi processor dari binary search tree.

mulai

mulai

isEmpty() first ß newNode

isEmpty() Y last ß newNode

T
last.setNext(newNode)
newNode.setNext(first) newNode.setPrev(last)
first.setPrev(newNode)
last.setNext(newNode)
newNode.setNext(last)

first ß newNode last ß newNode

first.setPrev(newNode)
first.setPrev(last) newNode.setNext(first)

selesai selesai

Fig. 4. Flowchart insertFirst (kiri) dan insertLast (kanan) pada circular double linked list
mulai

root ß null Y root ß newNode

current ß root

true T selesai

parent ß current

nim.compareTo(current.
Y current ß current.leftChild
nimMahasiswa)<0

current ß null Y parent.leftChild ß newNode

T
return

current ß current.rightChild current ß null T

parent.rightChild ß newNode

Fig. 5. Flowchart insert pada binary search tree


Dari perbandingan dua flowchart tersebut akan langsung disambungkan membentuk linked
terlihat bahwa method insert pada binary search list tanpa diurutkan terlebih dahulu. Sedangkan
tree lebih kompleks. Hal ini terlihat dengan adanya pada binary search tree setiap data masuk akan
pengurutan data pada setiap data. Data yang masuk diurutkan sesuai dengan nimMahasiswa. Ini terlihat
dengan nimMahasiswa yang lebih rendah daripada pada syntax nim.compareTo(current.nimMahasiswa
node kunci akan diletakan pada subtree sebelah )<0. Dilihat dari flowchart tersebut maka
kanan, sementara data dengan nimMahasiswa lebih kemungkinan waktu eksekusi dari binary tree lebih
tinggi akan diletakan pada sebelah kanan. lambat. Untuk membuktikan bias dilihat di tabel
Sementara pada circular double linked list data pengujian pada Tabel 1. Dari hasil tabel tersebut
masuk tidak langsung diurutkan. Hal ini bias diambil kesimpulan bahwa kecepatan
menyebabkan method insert pada circular double memasukan data pada circular double linked list
linked list hanya sederhana dan tidak sekompleks lebih cepat dari binary search tree. Hal ini
method insert pada binary search tree. Pada Figure disebabkan karena pada binary tree data yang
4 terdapat syntax newNode.setNext(first); masuk diurutkan terlebih dahulu. Sedangkan pada
first.setPrev(newNode); last.setNext(newNode); circular double tidak diurutkan.
yang menunjukan bahwa setiap data yang masuk

Kondisi Daya Percobaan Circular Double Linked List Binary Search Tree
Power Saver Percobaan 1 113 ms 168 ms
Percobaan 2 115 ms 128 ms
High Performance Percobaan 1 56 ms 64 ms
Percobaan 2 54 ms 66 ms
Tabel 1. Perbandingan waktu eksekusi memasukan data

3.2 Menampilkan Data


Circular double linked list memiliki untuk binary search tree untuk menampilkan data
beberapa cara untuk menampilkan data yaitu yaitu dengan cara traversal yaitu preoder, inorder
menampilkan data pertama, data terakhir, dan postorder. Untuk menjelaskan perbedannya
menampilkan semua data dari belakang dan yaitu dengan flowchart yang ada pada Figure 6 dan
menampilkan semua data dari belakang. Tetrapi Figure 7. Pada Figure 6 terdapat flowchart
untuk membandingkan dengan menampilkan data menampilkan semua data dari depan untuk circular
pada binary search tree hanya digunakan double linked list. Pada Figure 7 terdapat flowchart
menampilkan semua data dari depan. Sedangkan traversal untuk binary search tree.
mulai

!isEmpty() Y indek ß first

indek.getDataMahasiswa() Y
indek ß indek.getNext()

T Indek<>last.getNext()

"Tidak ada
data"

selesai

Fig. 6. Method get_all. Menampilkan semua data dari depan pada circular double linked list
mulai
mulai

localRoot.displayNode() inOrder(localRoot.leftChild)
localRoot <> null Y preOrder(localRoot.leftChild) localRoot <> null Y localRoot.displayNode()
preOrder(localRoot.rightChild) inOrder(localRoot.rightChild)

T T

selesai selesai

mulai

postOrder(localRoot.leftChild)
localRoot <> null Y postOrder(localRoot.rightChild)
localRoot.displayNode()

selesai

Fig. 7. preOrder (kiri atas), inOrder (kanan atas), postOrder (bawah)

Dari flowchart tersebut dapat diambil membutuhkan memory yang besar dan alur kerja
kesimpulan bahwa untuk menampilkan data pada yang lebih rumit. Untuk membandingkan kecepatan
circular double linked list hanya dengan menggeser waktu eksekusi dari kedua program yaitu dengan
pointer indek ke node berikutnya kemudian menampilkan data sejumlah 6969 data mahasiswa
menampilkan node tersebut. Sehingga alur kerjanya yang sama dengan data yang dimasukan pada
cukup sederhana. Sedangkan pada binary search method insert. Tabel perbandingan waktu eksekusi
tree untuk menampilkan data secara traversal program ada pada Tabel 2.
menggunakan rekrusif. Hal ini tentunya

Kondisi Daya Percobaan Circular Double Linked List Binary Search Tree
get_all preOrder inOreder postOrder Rata-rata
Power Saver Percobaan 1 647 ms 601 ms 541 ms 564 ms 568 ms
Percobaan 2 561 ms 601 ms 463 ms 429 ms 497 ms
High Performance Percobaan 1 347 ms 504 ms 410 ms 502 ms 472 ms
Percobaan 2 454 ms 502 ms 380 ms 318 ms 400 ms
Tabel 2. Perbandingan waktu eksekusi menampilkan data
3.3 Mencari Data search tree menyimpan data secara urut karena pada
awal memasukan data, setiap data dibandingkan
Pada tahap ini kedua program akan diuji
terlebih dahulu mana data yang memiliki nilai yang
perbandingan dari masing-masing program.
lebih tinggi atau rendah. Seperti dalam Figure 8 dan
Circular double linked list memiliki kelemahan
Figure 9, dalam kasus ini adalah data mahasiswa
pada tahap ini yaitu data yang ada disimpan tidak
sehingga pencarian dilakukan berdasarkan
urut karena urutan data hanya berdasarkan dari
nimMahasiswa. Pada Figure 8 tersebut, terlihat
urutan memasukan data. Data yang terurut akan
bahwa metode pencarian data sama dengan linear
memiliki kecepatan pencarian yang lebih cepa
search. Yaitu pencarian data secara beruntun
daripada data yang tidak terurut. Sedangkan binary
dengan membandingkan setiap node. Setiap String nim tidak cocok. Pembandingan String nim tersebut
getNim pada node indeks di bandingkan dengan akan terus berlangsung hingga indeks kembali ke
String cari. Indeks tersebut adalah node yang node terakhir.
berubah ke node berikutnya jika pada node tersebut

mulai

indeks ß first
cek ß true

indeks.getNim().compareTo(cari) <> 0 T cek ß true

"data
ditemukan : "

"data tidak
indeks.getNext() ß first Y
ditemukan"

indeks.getDataMahasiswa()
T

cek ß false

indeks ß indeks.getNext() selesai

Fig. 8. Flowchart method getData untuk mencari data pada circular double linked list
mulai

current ß root

current.nimMahasiswa.com
T selesai
pareTo(key)<>0

key.compareTo(current.ni
Y current ß current.leftChild
mMahasiswa)<0

current ß current.rightChild

current ß null Y return null

return current

Fig. 9. Flowchart method find(String key) untuk mencari data pada binary search tree

Flowchart pada Figure 8 merupakan dari compareTo = 0 yang menandakan bahwa data
flowchart untuk mencari data pada circular double ditemukan. Hal ini tentunya menggunakan waktu
linked list. Pada flowchart tersebut diketahui bahwa terlalu lama karena data yang berupa String tersebut
untuk mencari data, circular double linked list harus harus dibandingkan satu persatu hingga sejumlah
membandingkan setiap nimMahasiswa hingga nilai data yang ada yaitu 6969 data. Berbeda dengan
binary search tree yang terdapat pada Figure 8. akan dilakukan pada subtree sebelah kanan. Hal ini
Karena data pada binary search tree sudah terurut menyebabkan tidak semua data dibandingkan
dan tersusun maka cara mencari data hanya dengan sehingga memungkinkan pencarian lebih cepat.
membandingkan dengan node current. Jadi jika Untuk lebih jelasnya terdapat tabel uji waktu
data yang dicari memiliki nilai lebih rendah eksekusi program pada Tabel 3. Waktu yang
daripada current maka pencarian akan beralih ke menunjukan 0 ms berarti bahwa waktu eksekusi
subtree sebelah kiri, tetapi jika data yang dicari kurang dari millisecond yaitu berkisar nanosecond.
lebih tinggi daripada node current maka pencarian

Kondisi Daya Percobaan Circular Double Linked List Binary Search Tree
Power Saver Percobaan 1 2 ms 0 ms
Percobaan 2 4 ms 0 ms
High Performance Percobaan 1 3 ms 0 ms
Percobaan 2 2 ms 0 ms
Tabel 3. Perbandingan waktu eksekusi mencari data
3.4 Mengupdate Data berdasarkan nimMahasiswa kemudian jika data
tersebut ditemukan maka data namaMahasiswa,
Pada dasarnya metode mengupdate data
jurusanMahasiswa dan ipkMahasiswa dapat
hampir sama dengan mencari data. Hanya saja
dirubah. Sehingga alur update data juga tidak jauh
ketika data ditemukan maka data tersebut kemudian
berbeda dengan alur pencarian. Seperti pada Figure
dirubah ataupun ditambahkan. Tahap untuk update
10 dan Figure 11.
data yaitu dengan mencari data yang ingin diupdate
mulai

indeks ß first
cek ß true

indeks.getNim().compareTo(cari) <> 0 T cek ß true

indeks.setUpdate(nama, jurusan, ipk)

"data tidak
indeks.getNext() ß first
ditemukan"

"Data berhasil
di update "

cek ß false
indeks.getDataMahasiswa()

indeks ß indeks.getNext()

selesai

Fig. 10. Flowchart method updateData untuk mengupdate data pada circular double linked list
mulai

current ß root

current.nimMahasiswa.com
T selesai
pareTo(key)<>0

key.compareTo(current.ni
Y current ß current.leftChild
mMahasiswa)<0

current ß current.rightChild

"Data tidak
current ß null Y
ditemukan"

current.namaMahasiswa ß nama
current.jurusanMahasiswa ß jurusan
current.ipkMahasiswa ß ipk

Fig. 11. Flowchart method update untuk mengupdate data pada binary search tree
Pada flowchart tersebut dapat dilihat kemungkinan hasil waktu eksekusi dari kedua
bahwa untuk mencari data yang akan diupdate program tidak akan berbeda jauh dari hasil waktu
menggunakan cara yang sama dengan yang eksekusi program. Untuk lebih detailnya mengenai
digunakan pada method mencari. Dari Figure 10 waktu eksekusi dapat dilihat pada Tabel 4.
dan Figure 11 tersebut dapat dilihat bahwa
Kondisi Daya Percobaan Circular Double Linked List Binary Search Tree
Power Saver Percobaan 1 2 ms 0 ms
Percobaan 2 3 ms 0 ms
High Performance Percobaan 1 1 ms 0 ms
Percobaan 2 2 ms 0 ms
Tabel 4. Perbandingan waktu eksekusi update data
3.5 Menghapus Data indeks.getNext().setPrev (indeks.getPrev()).
Sedangkan untuk menghapus node pada binary
Cara untuk menghapus data dari kedua
search tree lebih rumit dan lebih kompleks daripada
program adalah dengan mencari terlebih dahulu
circular double linked list. Hal ini karena posisi
data yang ingin dihapus. Jika data tersebut
node dalam binary tree harus urut dan sesuai
ditemukan maka data tersebut akan dihapus. Untuk
struktur binary search tree. Ketika terjadi
menghapus data pada circular double linked list
penghapusan node, maka posisi node yang dihapus
adalah dengan menyambungkan node sebelum dan
tersebut harus digantikan oleh node dimana node
setelah node yang akan dihapus (Figure 12). Syntax
tersebut sesuai dengan struktur dari binary search
untuk menyambungkan adalah
tree. Untuk lebih jelasnya dapat dilihat pada Figure
indeks.getPrev().setNext (indeks.getNext()) dan
13.

mulai

indeks ß first
cek ß true

indeks.getNim().compareTo(cari) <> 0 T cek ß true Y indeks ß first Y removeFirst()

Y
T
"data berhasil
di delete"

"data tidak
indeks.getNext() ß first Y
ditemukan"
indeks.getPrev().setNext
indeks <> first && (indeks.getNext())
Y
indeks <> last indeks.getNext().setPrev
(indeks.getPrev())

T
T
cek ß false

"data berhasil
removeLast();
T di delete"

indeks ß
indeks.getNext()

"data berhasil
di delete"

selesai

Fig. 12. Flowchar menghapus data pada circular double linked list.
mulai

current ß root
parent ß root
isLeftChild ß true

current.leftChild ß null & A


current.nimMahasiswa.compareTo(key) <> 0 T T
current.rightChild ß null

Y
Y

parent ß current

current ß root Y root ß null

isLeftChild ß true T
key.compareTo(current.nimMahasiswa)<0 Y
current ß current.leftChild

isLeftChildß true Y parent.leftChild ß null

T
isLeftChild ß false
current ß current.rightChild

parent.rightChild ß null

current ß null Y return false

B
T

Fig. 13.1 Flowchart fungsi untuk menghapus data pada binary search tree
A

successor ß
current.rightChild ß null T current.leftChild ß null T
getSuccessor(current)

Y Y

parent.leftChild ß
current ß root Y root ß null isLeftChild Y current ß root Y root ß successor
current.rightChild

T T
T

parent.leftChild ß parent.rightChild ß
isLeftChild Y
current.leftChild current.rightChild parent.leftChild ß
isLeftChild Y
successor

T
T

parent.rightChild ß
parent.rightChild ß successor
current.leftChild

B
return true successor.leftChild ß current.leftChild

selesai

Fig. 13.2 Flowchart fungsi untuk menghapus data pada binary search tree

Penghupusan node pada binary search tree 2. Mengganti nilai node yang akan dihapus
sangat komplek dan lebih rumit daripada dengan nilai minimum yang ditemukan
penghapusan node pada circular double linked list. tersebut (Figure 15)
Pada binary search tree erdapat berbagai macam
3. Hapus node dengan nilai minimum
kondisi node yang akan dihapus yaitu ketika node
tersebut (Figure 16)
tersebut merupakan leaf atau tidak mempunyai
anak, node tersebut memiliki 1 anak di kanan, node Untuk memahami tahapan menghapus node
tersebut memiliki 1 anak di kiri dan node tersebut yang memiliki dua anak tersebut dapat dilihat
memiliki 2 anak. Terdapat tiga tahap untuk pada Figure 14, Figure 15 dan Figure 16 yang
menghapus node yang memiliki 2 anak [3]. mensimulasukan penghapusan node 12.
1. Cari nilai minimum node pada subtree
sebelah kanan (Figure 14)
Fig. 14. Nilai minum dari subtree sebelah kanan adalah 19

Fig. 15. Nilai pada node 12 dirubah menjadi 19

Fig. 16. Node 19 pada subtree 21 dihapus


Kerumitan dari penghapusan node pada binary dibalik kerumitan tersebut binary search tree masih
search tree ini merupakan kelemahan dibandingkan unggul dalam waktu eksekusi program. Untuk
dengan cirucal double linked list. Akan tetapi membuktikannya dapat dilihat pada Tabel 5.
Kondisi Daya Percobaan Circular Double Linked List Binary Search Tree
Power Saver Percobaan 1 3 ms 0 ms
Percobaan 2 2 ms 0 ms
High Performance Percobaan 1 1 ms 0 ms
Percobaan 2 1 ms 0 ms
Tabel 5. Perbandingan waktu eksekusi menghapus node

4. Hasil Penelitian
berubah. Sedangkan perbedaanya adalah linked list
Dari berbagai perbandingan dalam penelitian
merupakan strukur data linear sedangkan binary
tersebut dapat diketahui perbedaan, persamaan serta
search tree merupakan strukur data hirarkis [4].
kelebihan dan kekurangan dari struktur data circular
Hasil dari waktu eksekusi program pada Tabel 6
double linked list dan binary search tree. Persamaan
digunakan untuk analisis serta mengambil
dari tree dan linked list adalah sama-sama struktur
kesimpulan mengenai struktur data circular double
data dinamis yaitu jumlah komponennya dapat
linked list dan binary search tree.
Percobaan Fungsi Circular Double Linked List Binary Search Tree
Percobaan 1 – Memasukan Data 113 ms 168 ms
Power Saver Menampilkan Data 647 ms 568 ms
Mencari Data 2 ms 0 ms
Update Data 2 ms 0 ms
Delete Data 3 ms 0 ms
Percobaan 2 – Memasukan Data 115 ms 128 ms
Power Saver Menampilkan Data 561 ms 497 ms
Mencari Data 4 ms 0 ms
Update Data 3 ms 0 ms
Delete Data 2 ms 0 ms
Percobaan 1 – High Memasukan Data 56 ms 64 ms
Performance Menampilkan Data 347 ms 472 ms
Mencari Data 3 ms 0 ms
Update Data 1 ms 0 ms
Delete Data 1 ms 0 ms
Percobaan 2 – High Memasukan Data 54 ms 66 ms
Performance Menampilkan Data 454 ms 400 ms
Mencari Data 2 ms 0 ms
Update Data 2 ms 0 ms
Delete Data 1 ms 0 ms
Tabel 6. Perbandingan waktu eksekusi program untuk semua fungsi.

Dari Tabel 6 tersebut maka dapat dianalisis : 2. Fungsi menampilkan data – Waktu
eksekusi rata-rata untuk traversal pada
1. Fungsi memasukan data – Waktu eksekusi binary search tree lebih cepat daripada
pada binary search tree lebih lama waktu eksekusi fungsi menampilkan data
daripada circular double linked list. Ini dari depan pada circular double linked list.
dikarena data yang masuk pada binary Hal ini dikarenakan binary search tree
search tree langsung diurutkan dan disusun menggunakan rekrusif untuk menampilkan
sesuai struktur tree sedangkan untuk data. Tetapi penggunaan rekrusif
circular double linked list data yang masuk menyebabkan memory yang lebih besar
langsung ditempatkan dalam node-node dan sulit untuk dipahami [5].
yang tersambung begitu saja sesuai urutan
memasukan data. Tetapi fungsi 3. Fungsi mencari data – Waktu eksekusi
memasukan file pada binary tree lebih binary search tree lebih cepat daripada
rumit daripada circular double linked list circular double linked list bahkan
(Figure 5). kecepatan eksekusi kurang dari hitungan
millisecond (nanosecond) sehingga pada 5. Fungsi menghapus data – Sama dengan
ujicoba selalu menampilkan nilai 0 ms. Ini mengupdate, waktu eksekusi binary search
disebabkan karena dalam proses mencari tree lebih cepat dari circular double linked
data yang dicari tidak dibandingkan satu list karena fungsi ini menggunakan fungsi
persatu dengan setiap node. Sedangkan yang sama dari mencari. Hanya saja fungsi
pada circular double linked list data delete pada binary search tree sangat rumit
dibandingkan satu persatu hingga waktu dikarenakan ketika node dihapus jangan
yang digunakan lebih lama. sampai mengubah struktur dan urutan dari
binary search tree sehingga terganti
4. Fungsi mengupdate data – Waktu eksekusi pergantian posisi pada node. Tetapi walau
binary search tree lebih cepat daripada tingkat kerumitan dari fungsi menghapus
circular double linked list karena fungsi node tinggi tetapi waktu eksekusi tetap
dari update sendiri sama dengan mencari. lebih cepat daripada binary search tree.
Jika data yang akan diupdate ditemukan
maka akan dilakukan perubahan pada data Untuk lebih jelasnya mengenai analisis terdapat
itu. pada Tabel 7.

Fungsi Circular Double Linked List Binary Search Tree


Memasukan Data Eksekusi lebih cepat Eksekusi lebih lambat
Eksekusi cepat, menggunakan memori
Menampilkan Data Eksekusi lambat
lebih besar
Mencari Data Eksekusi lambat Eksekusi cepat
Update Data Eksekusi lambat Eksekusi cepat
Eksekusi cepat, alur fungsi kompleks dan
Delete Data Eksekusi lambat
sulit dipahami

Tabel 7. Analisis circular double linked list dan binary search tree.

5. Kesimpulan 6. Referensi

Dari hasil penelitian tersebut maka dapat [1] Wikipedia. “Daftar Bertaut”. http:// id.wikipedia.org/wiki
/Daftar_bertaut (diakses tanggal 27 Desember 2011)
diambil kesimpulan bahwa pengujian kecepatan
waktu eksekusi bergantung pada spesifikasi
[2] Wikipedia. “Pohon Biner”. http://id.wikipedia.org/ wiki/
komputer yang digunakan. Semakin tinggi Pohon_biner (diakses tanggal 27 Desember 2011)
spesifikasi komputer maka waktu eksekusi akan
semakin cepat. Dalam konteks ini data yang [3] Algolist. “Binary Search Tree Removing Node”.
diujikan adalah data mahasiswa yang terdiri dari http://www.algolist.net/Data_structures/ Binary_search
nim, nama, jurusan serta ipk yang memiliki tipe _tree / Removal. (diakses tanggal 28 Desember 2011)
data String. Untuk waktu eksekusi, binary tree
[4] Nusinau. “Dianita Struktur Data”. http:// www.nusinau
lebih unggul daripada circular double linked list .com/ dianita-struktur-data/ (diakses tanggal 28 Desember
dari menampilkan data, mencari data, update data 2011)
dan delete data. Sedangkan untuk memasukan data,
circular double linked list lebih cepat. Dilihat dari [5] Unikom. “Recrusive”. http://elib.unikom.ac.id/files/
alur fungsi dan kerumitan program maka binary disk1/392/jbptunikompp-gdl-dianaeffen-19571-9-
pertemua-9.pdf (diakses tanggal 28 Desember 2011)
search tree lebih kompleks dan lebih rumit daripada
circular double linked list.

View publication stats

Anda mungkin juga menyukai