Anda di halaman 1dari 12

Struktur Data

QUEUE
- Queue (Antrian) adalah suatu bentuk khusus dari List Linier dengan operasi penyisipan
(insertion) hanya diperbolehkan pada salah satu sisi, yang disebut sisi belakang (REAR),
dan operasi penghapusan (deletion) hanya diperbolehkan pada sisi yang lainnya.

- Queue merupakan kumpulan data dengan penambahan data hanya melalui satu sisi, yaitu
belakang (tail) dan penghapusan data hanya melalui sisi depan (head).

- Berbeda dengan stack yang bersifat LIFO maka queue bersifat FIFO (First In First Out),
yaitu data yang pertama masuk akan keluar terlebih dahulu dan data yang terakhir masuk
akan keluar terakhir.

Hal yang perlu diingat :


1. Queue disebut juga antrian dimana data masuk di satu sisi dan keluar di sisi yang lain.
2. Queue bersifat FIFO (First In First Out).

- Queue (antrian) adalah salah satu list linier dari struktur data yang beroperasi dengan cara
First In First Out (FIFO) yaitu elemen pertama yang masuk merupakan elemen yang
pertama keluar. Data-data di dalam antrian dapat bertipe integer, real, record dalam
bentuk sederhana atau terstruktur. Queue dilakukan dengan cara penyisipan di satu ujung,
sedang penghapusan di ujung lain. Ujung penyisipan biasa disebut rear/tail, sedang ujung
penghapusa disebut front/head. 

- Sebuah queue dalam program setidaknya harus mengandung tiga variabel, yakni:


head untuk penanda bagian depan antrian, tail unttuk penanda bagian belakang antrian,
dan array data untuk menyimpan data-data yang dimasukkan ke dalam queue tersebut.

- Pada queue ada operasi – operasi dasar, yaitu: prosedur create untuk membuat queue
baru yang kosog, fungsi IsEmpty untuk mengecek queue tersebut kosong atau tidak,
fungsi IsFull untuk mengecek queue tersebut penuh atau tidak, prosedur EnQueue untuk
memasukkan data kedalam queue, prosedur DeQueue untuk mengeluarkan sebuah
elemen pada posisi head dari queue, fungsi clear untuk menghapus elemen queue, dan
prosedur tampil untuk menampilakn elemen yang ada pada queue.

- Ada beberapa queue, yaitu: queue dengan linear array yaitu queue yang dibuat seakan-
akan merupakan suatu garis lurus dengan satu pintu masuk dan satu pintu keluar, queue
dengan circular array yaitu queue yang dibuat seakan-akan merupakan sebuah lingkaran
dengan titik awal (head) dan titik akhir (tail) saling bersebelahan jika array tersebut masih
kosong, dan queue dengan linked-list.
- Elemen yang pertama kali masuk ke dalam queue disebut elemen depan (front/head of
queue), sedangkan elemen yang terakhir kali masuk ke queue disebut elemen belakang
(rear/tail of queue).

- Perbedaan antara stack dan queue terdapat pada aturan penambahan dan penghapusan
elemen.

- Pada stack, operasi penambahan dan penghapusan elemen dilakukan di satu ujung.
Elemen yang terakhir kali dimasukkan akan berada paling dekat dengan ujung atau
dianggap paling atas sehingga pada operasi penghapusan, elemen teratas tersebut akan
dihapus paling awal, sifat demikian dikenal dengan LIFO.
- Pada queue, operasi tersebut dilakukan di tempat yang berbeda. Penambahan elemen
selalu dilakukan melalui salah satu ujung, menempati posisi di belakang elemen‐elemen
yang sudah masuk sebelumnya atau menjadi elemen paling belakang. Sedangkan
penghapusan elemen dilakukan di ujung yang berbeda, yaitu pada posisi elemen yang
masuk paling awal atau elemen terdepan. Sifat yang demikian dikenal dengan FIFO.

- Operasi-operasi queue:
1). Enqueue (menginputkan data pada queue) -> memasukkan 1 elemen ke dalam queue.
2). Dequeue (mengambil data dari queue) -> mengambil 1 elemen dari Queue, operasi ini
sering disebut juga SERVE. Hal ini dilakukan dengan cara memindahkan semua elemen
satu langkah ke posisi di depannya, sehingga otomatis elemen yang paling depan akan
tertimpa dengan elemen yang terletak dibelakangnya.
3). isEmpty (mengecek apakah antrian kosong -> mengecek apakah queue masih kosong
atau sudah berisi data. Hal ini dilakukan dengan mengecek apakah tail bernilai nol atau
tidak, jika ya maka kosong.

4). isFull (mengecek apakah antrian penuh)


5). Clear (membersihkan seluruh isi antrian) -> menghapus semua elemen dalam queue
dengan jalan mengeluarkan semua elemen tersebut satu per satu sampai kosong dengan
memanfaatkan procedure DeQueue.
6). Print (mencetak seluruh isi antrian)
7). Create -> Procedure create berguna untuk menciptakan queue yang baru dan kosong
yaitu dengan cara memberikan nilai awal (head) dan nilai akhir (tail) dengan nol (0).
Nol menunjukan bahwa queue masih kosong.

- Implementasi Queue dengan Linear Array


Disebut juga queue dengan model fisik, yaitu bagian depan queue selalu menempati
posisi pertama array. Di bawah ini diperlihatkan suatu queue yang akan menempati N
elemen array memori, serta cara pengurangan (delete) dan penambahan (added) elemen
pada queue tersebut. 

- Implementasi Queue dengan Circular Array


Salah satu variasi array adalah array melingkar (circular array), artinya array dapat
diakses mulai dari sembarang indeks (indeks awal) ke arah indeks terakhir (maksimum
array), lalu memutar ke indeks pertama hingga kembali ke indeks awal. Circular array
adalah array yang dibuat seakan‐akan merupakan sebuah lingkaran dengan titik awal dan
titik akhir saling bersebelahan jika array tersebut masih kosong. Jumlah data yang dapat
ditampung oleh array ini adalah besarnya ukuran array dikurangi 1.
- Penerapan Queue
Queue merupakan kakas dasar penyelesaian masalah-masalah besar. Penggunaan Queue
yang utama adalah untuk simulasi fenomena antrian di dunia nyata, serta fenomena
antrian di pengolahan data.
1. Pada Pembelian Tiket
Dalam kehidupan sehari-hari kita bisa dapati melalui penerapan pembelian tiket kereta
api, tiket pesawat, tiket kapal laut, pembayaran tiket tol, pembayaran listrik, pembayaran
air, dan lain sebagainya. Saat mengantri di loket untuk membeli tiket. Istilah yang cukup
sering dipakai seseorang masuk dalam sebuah antrian adalah enqueue. Dalam suatu
antrian, yang datang terlebih dahulu akan dilayani lebih dahulu. Istilah yang sering
dipakai bila seseorang keluar dari antrian adalah dequeue. Walaupun berbeda
implementasi, tapi pada prinsipnya sama saja. Aplikasi dalam pembelian tiket kereta api:
a.         Enqueue       : Seseorang membeli tiket melalui tempat pembayaran tiket yang
disediakan.
b.        Dequeue       : Setelah membeli tiket, langsung menuju tempat penungguan kereta,
dengan sebelumnya petugas memeriksa cek tiket tersebut.
c.         Clear            : Pembeli tiket tersebut telah terhapus dari antrian karena sudah
melewati pembayaran administrasi tersebut.
d.        IsEmpty       : Petugas tiket Kereta melihat tidak ada lagi yang ingin membeli tiket
kereta.
e.         IsFull            : Petugas Tiket Kereta melihat masih ada pembeli tiket kereta.

2. Pada Aplikasi Download Manager IDM


Queue juga dipakai sebagai salah satu fitur dari Internet Download Manager atau yang
biasa disebut dengan IDM. Fitur ini sangat membantu bagi para pecinta download. Fitur
ini akan membantu pengguna untuk mendownload file yang anda pilih satu-persatu, jadi
sebanyak apapun anda mendownload, tetapi akan tetap dibuat antrian atau istilahnya
queueing. Sistem yang diterapkan dalam fitur ini adalah pada saat download file, maka
IDM akan mendownload satu per satu, hingga download file selesai maka baru akan
secara otomatis mendownload file berikutnya.
3. Antrian Mobil
Ketika sebuah mobil datang, dari belakang akan menuju kedepan dari antrian. Setelah
mobil mendapatkan karcis tol, antrian yang berada didepan akan maju. Pada saat
menempatkan data pada ujung (tail) dari queue disebut dengan enqueue. Pada saat
memindahkan data dari kepala (head) sebuah queue disebut dengan dequeue.

4. Pada Aplikasi Download Manager IDM


Queue juga dipakai sebagai salah satu fitur dari Internet Download Manager atau yang
biasa disebut dengan IDM. Fitur ini sangat membantu bagi para pecinta download. Fitur
ini akan membantu pengguna untuk mendownload file yang anda pilih satu-persatu, jadi
sebanyak apapun anda mendownload, tetapi akan tetap dibuat antrian atau istilahnya
queueing. Sistem yang diterapkan dalam fitur ini adalah pada saat download file, maka
IDM akan mendownload satu per satu, hingga download file selesai maka baru akan
secara otomatis mendownload file berikutnya.

5. Printer Sharing
Pada suatu jaringan terdapat beberapa aplikasi yang dapat membantu kita untuk
mempermudah pekerjaan kita untuk melakukan cetak hanya dengan menggunakan 1
printer yang dapat dipakai oleh banyak orang yaitu dengan cara printer sharing. Aplikasi
ini menggunakan cara kerja queue atau juga disebut dengan antrian, untuk mencetak
suatu document yang hanya menggunakan 1 printer yang dapat diakses oleh orang
banyak, penggunaan queue diperlukan untuk mengatur sistem jaringan agar tidak terjadi
error, dengan cara siapa yang terlebih dahulu mencetak suatu dokumen, dia akan dilayani
terlebih dahulu untuk mencetak dokumen dan jika ada seseorang yang ingin mencetak
dokumen dia akan dimasukan kedalam antirian dan menunggu untuk dapat mencetak
sebuah document.

6. Sistem Produksi
Dalam sistem produksi terdapat banyak sekali aplikasi antrian, misalnya pada mesin
pengisi (filling) botol minuman otomatis di pabrik. Mesin ini digunakan agar
mempermudah pekerjaan, meminimalisir waktu, dan masih banyak lagi manfaat lainnya.
Cara kerja dari mesin filling otomatis ini yaitu :
1.      Beberapa botol disiapkan pada tempatnya.
2.      Kemudian mesin akan mengisi air kedalam botol sesuai dengan posisinya.
3.      Botol yang diletakkan paling depan akan diisi oleh mesin paling awal, setelah botol
paling depan terisi baru akan berjalan ke botol yang dibelakangnya, dan seterusnya.
Prinsip queue atau antrian digunakan dalam mesin ini, karena FIFO (First In First Out).
Jadi botol yang paling awal/depan sampai pada pengisi air, maka botol itu juga yang akan
pertama keluar/diisi.
LINKED LIST

- Linked List adalah suatu cara untuk menyimpan data dengan struktur sehingga
programmer dapat secara otomatis menciptakan suatu tempat baru untuk menyimpan data
kapan saja diperlukan. Linked list dikenal juga dengan sebutan senarai berantai adalah
stuktur data yang terdiri dari urutan record data dimana setiap record memiliki field yang
menyimpan alamat/referensi dari record selanjutnya (dalam urutan). Elemen data yang
dihubungkan dengan link pada linked list disebut Node.
- Biasanya dalam suatu linked list, terdapat istilah head dan tail .
1. Head adalah elemen yang berada pada posisi pertama dalam suatu linked list
2. Tail adalah elemen yang berada pada posisi terakhir dalam suatu linked list.
- Jenis Linked List (yang akan dipelajari) adalah :
1. Single Linked List -> Single Linked List merupakan suatu linked list yang hanya
memiliki satu variabel pointer saja. Dimana pointer tersebut menunjuk ke node
selanjutnya. Biasanya field pada tail menunjuk ke NULL.
2. Double Linked List -> Double Linked List merupakan suatu linked list yang memiliki
dua variabel pointer yaitu pointer yang menunjuk ke node selanjutnya dan pointer yang
menunjuk ke node sebelumnya. Setiap head dan tailnya juga menunjuk ke NULL.
3. Circular Linked List -> Circular Linked List merupakan suatu linked list dimana tail
(node terakhir) menunjuk ke head (node pertama). Jadi tidak ada pointer yang menunjuk
NULL. Ada 2 jenis Circular Linked List, yaitu : 1. Circular Single Linked List & 2.
Circular Double Linked List
4. Multiple Linked List -> Multiple Linked List merupakan suatu linked list yang
memiliki lebih dari 2 buat variabel pointer.
- Proses Dasar Linked List
1. Proses Inisialisasi
2. Membuat simpul baru
3. Membuat simpul awal
4. Menambah simpul baru ke dalam Linked List (INSERT)
5. Menghapus sebuah simpul dari Linked List (DELETE)
ARRAY
- Array atau dalam bahasa indonesia disebut larik, merupakan salah satu teknik
menyimpan kumpulan data dalam memori dengan cara meletakkannya secara berdekatan.
Tujuannya agar beberapa item data dari jenis yang sama berada di satu tempat dan
memudahkan ketika hendak dilakukan operasi pada data.
- Array adalah kumpulan item data yang disimpan di lokasi memori yang berdekatan.

- Dalam strukur data, array termasuk jenis struktur data linier, yaitu struktur dimana
elemen datanya disusun dalam satu dimensi.

- Ketika ingin mengakses data dalam array, kita cukup menghitung posisi setiap elemen,
yaitu dengan menambahkan offset ke nilai awal. Nilai awal adalah lokasi memori elemen
pertama array yang berada pada indeks 0 dan perbedaan antara kedua indeks adalah nilai
offset-nya.
- Karakteristik Array
Apapun karakteristik yang dimiliki oleh struktur data array adalah sebagai berikut:
 Array menggunakan struktur data berbasis indeks yang membantu
mengidentifikasi setiap elemen dalam array dengan mudah menggunakan indeks.
 Jika pengguna ingin menyimpan beberapa nilai dari tipe data yang sama, maka
array dapat digunakan secara efisien.
 Array juga dapat menangani struktur data yang kompleks dengan menyimpan data
dalam array dua dimensi.
 Array juga digunakan untuk mengimplementasikan struktur data lain
seperti stack, queue, heap, hash table, dll.
 Proses pencarian dalam sebuah array dapat dilakukan dengan sangat mudah. 

- Jenis-jenis Array
Berdasarkan dimensinya array dapat dikelompokkan dalam 2 jenis, yaitu: satu-dimensi
(one dimensional array) dan multidimensi (multidimensional array).
 Array satu dimensi, yaitu array yang menyimpan list elemen tunggal. Array
jenis ini merepresentasikan beberapa item data sebagai satu list
 Array multidimensi, yaitu array yang menyimpan list elemen dalam banyak
dimensi. Istilah sederhananya, "array di dalam array". Array jenis ini mewakili
beberapa item data sebagai tabel yang terdiri dari baris dan kolom.
- Fungsi dan Kegunaan Array
Adapun fungsi dan kegunaan array adalah sebagai berikut:
 Digunakan untuk menyelesaikan masalah matriks.
 Membantu dalam menerapkan algoritma sorting.
 Digunakan untuk mengimplementasikan struktur data lain seperti stack, queue, heap,
hash table, dll.
 Array juga dapat digunakan untuk penjadwalan CPU (CPU Scheduling).
 Dapat diterapkan sebagai tabel pencarian di komputer.
 Array dapat digunakan dalam pemrosesan suara di mana setiap sinyal suara adalah
array.

- Operasi-Operasi pada Array


1. Operasi penyisipan (insertion)
Operasi penyisipan ialah upaya memasukkan data ke dalam elemen array. Kita dapat
dengan mudah menyisipkan sebuah nilai pada posisi tertentu dengan menggunakan
operator assignment (umumnya berupa simbol =). Cara ini juga berlaku untuk operasi
penggantian.
2. Operasi pengaksesan (access)
Operasi pengaksesan yaitu upaya mengambil nilai dari elemen dengan posisi indeks
tertentu pada array.
3. Operasi pencarian (searching)
Operasi pencarian ialah upaya menemukan nilai tertentu dalam array. Untuk melakukan
operasi ini kita perlu mengakses semua elemen array dan membandingkannya dengan
nilai yang hendak dicari.
- Kelebihan Menggunakan Array
Adapun kelebihan menggunakan struktur data array di antaranya sebagai berikut:
 Array memungkinkan akses secara acak ke elemen. Hal ini membuat akses
elemen berdasarkan posisi cenderung lebih cepat.
 Array memiliki cache locality yang lebih baik dan membuat kinerja operasi pada
array dapat lebih ngebut. Cache locality adalah kemampuan prosesor untuk
mengakses kumpulan lokasi memori yang sama secara berulang dalam waktu
singkat
 Array mewakili beberapa item data dengan tipe yang sama menggunakan satu
nama. Hal ini membantu dalam memaksimalkan kode. Dengan menulis sepotong
kecil kode, kita dapat menyimpan banyak nilai dalam satu buah array.
 Tidak ada kemungkinan terjadi penambahan alokasi memori. Hal ini dapat
mencegah terjadinya masalah overflow atau kekurangan memori.
 Waktu yang dibutuhkan untuk mengakses elemen array cenderung konstan, yakni
memiliki time complexity O(1).
- Kelemahan Menggunakan Array
Adapun kelemahan atau kekurangan menggunakan struktur data array di antaranya
sebagai berikut:
 Array memiliki ukuran tetap yang berarti kita tidak dapat menambah/menghapus
elemen setelah dibuat. Kita juga tidak dapat mengubah ukurannya secara dinamis.
 Saat menambahkan item ke dalam array, proses penyisipan mengharuskan setiap
elemen dipindahkan dari lokasi aslinya ke slot berikutnya yang tersedia. Cost
yang diperlukan pergeseran akan meningkat secara linier sesuai panjang array.
 Array memiliki fungsionalitas yang terbatas dibandingkan dengan struktur data
lainnya. Array unggul dalam tugas-tugas sederhana. Untuk masalah yang
kompleks, struktur data lain mungkin bisa menjadi solusi yang lebih baik
 Menghapus item dari array akan melibatkan penyalinan setiap elemen
sebelumnya untuk mengisi celah yang ditinggalkan oleh elemen yang dihapus.
Biaya menghapus item dari array sangat mahal karena alasan ini.

SORTING
- Selection Sort (Ascending):
Pengurutan dilakukan dengan memilih elemen terbesar dan menempatkan pada posisinya,
kemudian mencari element terbesar berikutnya dan menempatkan pada tempatnya, dan
seterusnya.

Proses pengurutan dengan menggunakan metode selection sort secara terurut naik adalah
1. Mencari data terkecil dari data pertama sampai data terakhir, kemunian di tukar  
posisinya dengan data pertama.
2. mencari data terkecil dari data kedua sampai data terakhir, kemudian di tukar dengan
posisinya dengan data kedua.
3. mencari data terkecil dari data ketiga sampai data terakhir, kemudian di tukar posisinya
dengan data ketiga
4. dan seterusnya sampai semua data turut naik. apabila terdapat n buah data yang akan di
urutkan, maka membutukan (n – 1) langkah pengurutan, dimana data terakhir yaitu data
ke-n tidak perlu di urutkan karena hanya tinggal satu satunya.
- Bubble Sort
Konsep Buble Sort
Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun yang
berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat
jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas
dipakai pada pengurutan gelembung.
Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan
cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai
bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada
perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-
masing kunci akan dengan lambat menggelembung ke posisinya yang tepat.
- Metode Penyisipan Langsung (Insertion sort)
Data dicek satu per satu mulai dari yang kedua sampai dengan yang terakhir. Apabila
ditemukan data yang lebih kecil daripada data sebelumnya, maka data tersebut disisipkan
pada posisi yang sesuai. Akan lebih mudah apabila membayangkan pengurutan kartu.
Pertama-tama anda meletakkan kartu-kartu tersebut di atas meja, kemudian melihatnya
dari kiri ke kanan. Apabila kartu di sebelah kanan lebih kecil daripada kartu di
sebelahkiri, maka ambil kartu tersebut dan sisipkan di tempat yang sesuai.
- Metode Penggabungan (Merge Sort) 
Metode penggabungan biasanya digunakan pada pengurutan berkas. Prinsip dari
metode penggabungan sebagai berikut : mula-mula diberikan dua kumpulan data yang
sudah dalam keadaan urut. Kedua kumpulan data tersebut harus dijadikan satu table
sehingga dalam keadaan urut.
- Quick Sort
Algoritma ini berdasar pada pola divide-and-conquer. Berbeda dengan merge sort,
algoritma ini hanya mengikuti langkah – langkah sebagai berikut :
1. Divide
Memilah rangkaian data menjadi dua sub-rangkaian A[p…q-1] dan A[q+1…r] dimana
setiap elemen A[p…q-1] adalah kurang dari atau sama dengan A[q] dan setiap elemen
pada A[q+1…r] adalah lebih besar atau sama dengan elemen pada A[q]. A[q] disebut
sebagai elemen pivot. Perhitungan pada elemen q merupakan salah satu bagian dari
prosedur pemisahan.
2. Conquer
Mengurutkan elemen pada sub-rangkaian secara rekursif. Pada algoritma quicksort,
langkah ”kombinasi” tidak di lakukan karena telah terjadi pengurutan elemen – elemen
pada sub-array
- Shell Sort
Merupakan algoritma yang stau jenis dengan insertion sort, dimana pada setiap nilai i
dalam n/i item diurutkan. Pada setiap pergantian nilai, i dikurangi sampai 1 sebagai nilai
terakhir

TREE
- Binary Tree (Pohon Biner) yaitu pohon yang setiap simpul/node-nya paling banyak
mempunyai dua buah subpohon.
Contoh implementasi :
untuk membuat pohon silsilah keluarga, ungkapan aritmatika yang setiap operatornya
dipasang sebagai simpul pencabangan dan operand-operandnya sebagai subpohon, dll.
Binary tree dapat diimplementasikan dalam C++ dengan menggunakan double
linkedlist.
Tree merupakan struktur hirarkis dari sebuah susunan data. Dalam tree,kita
mempunyai sebuah Root yang nantinya akan menjadi awal dari tree tersebut. Untuk tree,
kita juga membutuhkan struct. Ada banyak jenis-jenis Tree, tapi yang akan kita pelajari
saat ini adalah implementasi dari Binary Tree, yaitu Tree yang hanya memiliki 2 tangan.
- Tree merupakan salah satu bentuk struktur data tidak linear yang menggambarkan
hubungan yang bersifat hirarkis (hubungan one to many) antara elemen-elemen. Tree bisa
didefinisikan sebagai kumpulan simpul/node dengan satu elemen khusus yang disebut
Root dan node lainnya. Tree juga adalah suatu graph yang acyclic, simple, connected
yang tidak mengandung loop.

- Operasi Umum Tree


Ada 3 urutan dasar yang dapat digunakan untuk mengunjungi pohon, yaitu :
1. PreOrder : Cetak isi node yang dikunjungi, kunjungi Left Child, kunjungi Right
Child.
2. InOrder : Kunjungi Left Child, cetak isi node yang dikunjungi, kunjungi Right
Child.
3. PostOrder : Kunjungi Left Child, kunjungi Right Child cetak isi node yang
dikunjungi.
- Istilah pada pohon biner:
1). Pohon biner penuh (Full binary tree) -> Semua simpul (kecuali daun) memiliki 2 anak
dan tiap cabang memiliki panjang ruas yang sama
2). Pohon biner lengkap (Complete binary tree) -> Hampir sama dengan Pohon Biner
Penuh, semua simpul (kecualidaun) memiliki 2 anak tetapi tiap cabang memiliki panjang
ruas berbeda.
3). Pohon biner similer (Dua pohon yang memiliki struktur yang sama tetapi
informasinya berbeda)
4). Pohon biner ekivalent (Dua pohon yang memiliki struktur dan informasi yangsama)
5). Pohom biner miring (Dua pohon yang semua simpulnya mempunyai satu anak /
turunan kecuali daun)

- Pembentukan Tree
Langkah-langkah Pembentukan Binary Tree
1. Siapkan node baru
a. alokasikan memory-nya
b. masukkan info-nya
c. set pointer kiri & kanan = NULL
2. Sisipkan pada posisi yang tepat
 penelusuran  utk menentukan posisi yang tepat; info yang nilainya lebih besar
dari parent akan ditelusuri di sebelah kanan, yang lebih kecil dari parent akan
ditelusuri di sebelah kiri
 penempatan  info yang nilainya lebih dari parent akan ditempatkan di sebelah
kanan, yang lebih kecil di sebelah kiri
SEARCHING

- Binary Searcing adalah metode dengan Prinsip dasarnya adalah melakukan


proses pembagian ruang pencarian secara berulang-ulang sampai data ditemukan
atau sampai ruang pencarian tidak dapat dibagi lagi (berarti ada kemungkinan
data tidak ditemukan). Metode ini Memperkecil jumlah operasi pembandingan
yang harus dilakukan antara data yang dicari dengan data yang ada di dalam tabel,
khususnya untuk jumlah data yang sangat besar ukurannya. Syarat dalam metode
ini adalah Data sudah dalam keadaan terurut (naik) ascending.

- Adapun Cara Kerja Metode Binary Searching dalam Struktur data seperti berikut :
1. kunci akan selalu dibandingkan dengan data yang berada di tengah
(middle)
2. bila sama berarti data ketemu, bila tidak, akan “dilihat” apakah data ada di
sebelah “kiri” (artinya data lebih kecil dari data di tengah) atau di sebelah
“kanan” (artinya data lebih besar dari data di tengah).
3. Bila data ada di sebelah kiri, dilakukan pencarian dengan cara yang sama
(sementara data yang berada di sebelah kanan akan diabaikan).
4. Jadi, setiap kali pencarian, data selalu “dibelah” menjadi dua bagian
(biner), sampai pada “titik tertentu”(bila sama dengan titik tengah,
pencarian tidak dilakukan lagi, bila tidak, lakukan pencarian lagi sampai
pada perbandingan terakhir data juga tidak sama, berarti data tidak
ditemukan pada array).

- Pencarian (searhing) merupakan proses yang sangat penting dalam pengolahan


data. Proses pencarian dasar adalah menemukan nilai(data) tertentu didalam
sekumpulan data yang bertipe sama. Himpunan data-data bertype sama tersebut
dikenal sebagai ruang pencarian. Secara fisik ruang pencarian sederhana
memanfaatkan array. Pencarian data sering juga disebut table look-up atau storage
and retrieval information adalah suatu proses untuk mengumpulkan sejumlah
informasi di dalam pengingat komputer dan kemudian mencari kembali informasi
yang diperlukan secepat mungkin.
- Untuk pengertian yang lebih luas, searching adalah proses mendapatkan (retrieve)
informasi berdasarkan kunci tertentu dari sejumlah informasi yang telah disimpan.
Ruang penyimpanan informasi tersebut juga adalah ruang pencarian, yang
memerlukan ruang data yang lebih kompleks yang memungkinkan pencarian
informasi dengan metoda tertentu dapat dilakukan.
- Algoritma pencarian (searching algorithm) adalah algoritma yang menerima
sebuah argumen kunci dan dengan langkah-langkah tertentu akan mencari
rekaman dengan kunci tersebut. Setelah proses pencarian dilaksanakan, akan
diperoleh salah satu dari dua kemungkinan, yaitu data yang dicari ditemukan
(successful) atau tidak ditemukan (unsuccessful).
- Metode pencarian data dapat dilakukan dengan dua cara yaitu pencarian internal
(internal searching) dan pencarian eksternal (external searching). Pada pencarian
internal, semua rekaman yang diketahui berada dalam media penyimpanan
internal komputer. Sedangkan pada pencarian eksternal, tidak semua rekaman
yang diketahui berada dalam pengingat komputer, tetapi ada sejumlah rekaman
yang tersimpan dalam penyimpan luar misalnya media penyimpanan yang berada
dalam sistem computer lain yang tersambung dalam suatu sistem jaringan.
- Selain itu metode pencarian data juga dapat dikelompokkan menjadi pencarian
statis (static searching) dan pencarian dinamis (dynamic searching). Pada
pencarian statis, banyaknya ruang data yang diketahui dianggap tetap, pada

Anda mungkin juga menyukai