Anda di halaman 1dari 19

MAKALAH TENTANG

QUICK SORT,MERGE SORT SERTA BINARY SEARCH

NAMA : FAHMIDIN SAID

KELAS/SEMESTER : B/II

NIM : 1801130058

M.K : ALGORITMA DAN PEMOGRAMAN

PEDIDIKAN TEKNIK ELEKTRO

FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN

UNIVERSITAS NUSA CENDANA

KUPANG

2019

1
KATA PENGANTAR

Puji Syukur saya haturkan kehadirat Tuhan Yang Maha Esa,atas berkat dan
rahmat-Nya saya dapat menyelesaikan makalah ini yang berjudul “Quick Sort,Merge
Sort serta Binary Search” dengan baik dan tepat pada waktu yang telah ditentukan.

Tak lupa juga saya ucapkan terima kasih kepada Bapak Dosen yang telah
memberikan tugas ini kepada saya sehingga saya dapat mengetahui pengertian serta
Algoritma dari setiap komponen yang akan dijelaskan,serta ucapan terima kasih juga
untuk teman-teman yang telah mendukung saya dalam pembuatan makalah.Tanpa
bantuan dari teman-teman mungkin makalah ini tidak akan sebaik ini.

Saya juga mengetahui bahwa makalah ini masih jauh dari kata sempurna,oleh
sebab itu saya sangat mengharapkan kritik dan saran dari para pembaca.

Akhir kata,saya memohon maaf apabila dalam makalah ini terdapat kata-kata atau
kalimat yang menyinggung perasaan para pembaca,saya mohon maaf. Karena saya
membuat makalah ini bukan untuk menjatuhkan siapapun,melainkan hanya untuk
menambah Ilmu Pengatahuan.

Semoga makalah ini bermanfaat untuk kita semua.

Kupang,20 Juni 2019

Penulis

2
DAFTAR ISI

KATA PENGANTAR……………………………………………………………….2

DAFTAR ISI…………………………………………………………………………3

BAB I PENDAHULUAN…………………………………………………………...4

1. Latar Belakang………………………………………………………………..4
2. Rumusan Masalah……………………………………………………………..5
3. Tujuan…………………………………………………………………………5

BAB II PEMBAHASAN……………………………………………………………6

A. Pengertian………………………………………………………………………6
a) Quick Sort……………………………………………………………………....6
b) Merge Sort……………………………………………………………………...6
c) Binary Search…………………………………………………………………...8
B. Algoritma dan Contoh Kasus…………………………………………………..8
a. Quick Sort………………………………………………………………………8
b. Merge Sort…………………………………………………………………….12
c. Binary Search……………………………………………………………….....15

BAB III PENUTUP…………………………………………………………………18

1. Kesimpulan…………………………………………………………………….18
2. Saran…………………………………………………………………………...19

DAFTAR PUSTAKA……………………………………………………………….20

3
BAB I

PENDAHULUAN

1. Latar Belakang
Algoritma adalah kumpulan langkah sistematis untuk memperoleh hasil yang
diinginkan.Sebelum sebuah algoritma dijalankan, biasanya ada suatu kondisi awal
(initial state) yang harus dipenuhi. Kemudian,langkah-langkah ini diproses hingga
mencapai suatu kondisi akhir (final state).
Quicksort diperkenalkan pertama kali oleh C.A.R. Hoare pada tahun 1960,
dan dimuat sebagai artikel di Computer Journal 5 pada April 1962. Bentuknya
yang sederhana,efisien dan efektif dengan cepat membuatnya menjadi algoritma
pengurutan (sorting) yang paling banyak digunakan,terutama dalam bahasa
pemrograman. Berbagai penelitian dan pengembangan telah banyak dilakukan
hingga saat ini. Tercatat peneliti seperti
Sedgewick,Bentley,McIlroy,Clement,Flajolet,Vallee,hingga Martinez,membuat
analisis dan implementasi dari quicksort.
Merge sort adalah sort yang dilakukan dengan teknik merge
(menggabungkan) dua buah array kedalam sebuah array yang baru. Algoritma
merge sort membagi tabel menjadi dua tabel yang sama besar. Masing-masing
tabel diurutkan secara rekursif,dan kemudian digabungkan kembali untuk
membentuk tabel yang terurut. Implementasi dasar dari algoritma merge sort
memakai tiga buah tabel,dua untuk menyimpan elemen dari tabel yang telah di
bagi dua dan satu untuk menyimpan elemen yang telah terurut. Namun algoritma
ini dapat juga dilakukan langsung pada dua tabel,sehingga menghemat ruang atau
memori yang dibutuhkan.
Binary Search adalah salah satu algoritma pencarian yang tercepat. Kecepatan
algoritma ini hanya bisa dikalahkan oleh teknik hashing,yang tidak akan dibahas di
sini. Untuk mencari jutaan data,Binary Search hanya butuh O(log N) kali
pembandingan (sekitar 20 kali),sedangkan Linier Search butuh O(N)
pembandingan (sekitar 500.000 kali). Tapi yang harus dicatat di sini,data yang
dicari harus sudah terurut! Algoritma iteratif (contohnya yang menggunakan
perputaran FOR,WHILE,dsb) pada umumnya dapat dengan mudah diubah ke
dalam algoritma rekursif (memanggil dirinya sendiri). Keistimewaan algoritma
iteratif adalah sederhana,cepat,dan menggunakan sedikit memori. Sedangkan pada
kasus seperti menelusuri pohon,algoritma rekursif jelas lebih baik karena lebih

4
mudah difahami. Pada prinsipnya,Binary Search adalah membandingkan Key
(angka yang dicari) dengan angka yang berada tepat di tengah-tengah deretan
angka yang sudah terurut. Jika sama,maka itulah yang dicari. Tapi jika tidak
sama,maka deretan data dipecah menjadi dua blok: Blok bawah (kecil) dan blok
atas (kecil). Lalu proses diulangi terhadap blok bawah atau blok atas,tergantung
besarnya Key apakah lebih kecil ataukah lebih besar daripada data yang berada di
tengah-tengah tadi.

2. Rumusan Masalah
 Apa Pengertian dari Quick Sort,Merge Sort dan Binary Search?
 Bagaimanakah Algoritma dari Quick Sort,Merge Sort dan Binary Search?
 Bagaimanakah Contoh Kasus Dari Quick Sort,Merge Sort dan Binary Search?

3. Tujuan
 Untuk mengetahui pengertian Quick Sort,Merge Sort dan Binary Sort
 Untuk mengetahui Algoritma dari Quick Sort,Merge Sort dan Binary Search
 Untuk mengetahui Contoh kasus dari Quick Sort,Merge Sort dan Binary Search

5
BAB II

PEMBAHASAN

A. Pengertian Quick Sort,Merge Sort dan Binary Search


a) Pengertian Quick Sort
Quicksort merupakan Algoritma Sorting yang dikembangkan oleh Tony Hoare
yang,secara kasus rata-rata,membuat pengurutan O(n log n) untuk
mengurutkan n item. Algoritma ini juga dikenal sebagai Partition-Exchange
Sort atau disebut sebagai Sorting Pergantian Pembagi. Pada kasus
terburuknya,algoritma ini membuat perbandingan O(n2),walaupun kejadian seperti
ini sangat langka. Quicksort sering lebih cepat dalam praktiknya dari pada
algoritma O(n log n) yang lainnya. Dan juga,urutan dan referensi lokalisasi
memori quicksort bekerja lebih baik dengan menggunakan cache CPU,jadi
keseluruhan sorting dapat dilakukan hanya dengan ruang tambahan O(log n).
Quicksort merupakan sorting pembanding dan pada implementasi efisien tidak
merupakan algoritma sorting yang stabil.
Algoritma quicksort bekerja menurut prinsip bagi-dan-pecahkan (divide-and-
conquer). Dengan demikian hal mendasar dalam algoritma quicksort adalah
pemilihan poros (pivot) dan pembuatan partisi sedemikian rupa sehingga elemen
dengan nilai kecil ada di bagian kiri poros dan elemen dengan nilai besar ada di
bagian kanan poros.
Berbagai varian dari quicksort pada intinya berupaya untuk mengembangkan
teknik-teknik pembuatan partisi yang efektif untuk berbagai macam masukan.Hal
ini merupakan bahan yang terus dipelajari hingga kini.Ditambah pula dengan
perbaikan dari segi pemrograman sehingga lebih efisien (seperti mengurangi
operasi pembandingan, pertukaran maupun perulangan).
Pada tahun 1998 M.D. McIlroy membuat tulisan berjudul “A Killer Adversary
for Quicksort” yang menguraikan cara untuk membuat susunan data tertentu
(dalam array) hingga operasi pengurutan menggunakan quicksort mendekati
kuadratik O(n2). Cara ini berlaku untuk setiap varian dari quicksort dengan syarat
tertentu.Dikenal juga dengan istilah antiqsort.

b) Pengertian Merge Sort


Merge sort merupakan algoritma pengurutan dalam ilmu komputer yang
dirancang untuk memenuhi kebutuhan pengurutan atas suatu rangkaian data yang

6
tidak memungkinkan untuk ditampung dalam memori komputer karena jumlahnya
yang terlalu besar. Algoritma ini ditemukan oleh John von Neumann pada tahun
1945. (id.wikipedia.org) Algoritma pengurutan data merge sort dilakukan dengan
menggunakan cara divide and conquer yaitu dengan memecah kemudian
menyelesaikan setiap bagian kemudian menggabungkannya kembali. Pertama data
dipecah menjadi 2 bagian dimana bagian pertama merupakan setengah (jika data
genap) atau setengah minus satu (jika data ganjil) dari seluruh data, kemudian
dilakukan pemecahan kembali untuk masing-masing blok sampai hanya terdiri
dari satu data tiap blok.
Setelah itu digabungkan kembali dengan membandingkan pada blok yang sama
apakah data pertama lebih besar daripada data ke-tengah+1, jika ya maka data ke-
tengah+1 dipindah sebagai data pertama,kemudian data ke-pertama sampai ke-
tengah digeser menjadi data ke-dua sampai ke-tengah+1,demikian seterusnya
sampai menjadi satu blok utuh seperti awalnya. Sehingga metode merge sort
merupakan metode yang membutuhkan fungsi rekursi untuk penyelesaiannya.
Algoritma Merge umumnya memiliki satu set pointer p0..n yang menunjuk
suatu posisi di dalam satu set daftar L0..n .Pada awalnya mereka menunjuk item
yang pertama pada setiap daftar. Algoritmanya sebagai berikut:
Selama p0..n masih menunjuk data yang di dalam sebagai pengganti pada
akhirnya:

 Melakukan sesuatu dengan data item yang menunjuk daftar mereka masing-
masing.
 Menemukan pointers points untuk item dengan kunci yang paling rendah;
membantu salah satu pointer untuk item yang berikutnya dalam daftar
Pada umumnya algoritma merge berjalan dalam waktu proposional untuk
penjumlahan pada panjangnya daftar. Algoritma merge beroperasi pada bilangan
besar dalam daftar yang akan segera mengalikan penjumlahan panjangnya daftar
pada saat itu untuk keluaran gambar pointers points yang mana menunjuk pada
item yang paling rendah, yang dapat terpengaruhi dengan suatu heap (tumpukan)
yang didasarkan prioritas antrian dalam O (log n) waktu,untuk O (m log n) waktu
(dimana n adalah bilangan pada daftar yang digabungkan,m adalah penjumlahan
panjangnya daftar,dan lg adalah log basis 2). Ketika menggabungkan panjang m
dua daftar,terdapat suatu perbandingan lompatan yang lebih rendah 2m-1 yang ada
dalam kasus terburuk.
Keluaran data item Merge klasik (satu yang digunakan dalam merge sort)
dengan kunci yang paling rendah pada langkah masing-masing, memberikan
beberapa daftar yang diurutkan,hasil daftar yang diurutkan berisi semua unsur-

7
unsur di dalam daftar input manapun,dan hal itu dilakukan agar waktunya
proporsioal untuk input penjumlahan panjangnya daftar.

c) Pengertian Binary Search


Binary Search adalah algoritma pencarian yang lebih efisien daripada algorima
Sequential Search.Hal ini dikarenakan algoritma ini tidak perlu menjelajahi setiap
elemen dari tabel.Kerugiannya adalah algoritma ini hanya bisa digunakan pada
tabel yang elemennya sudah terurut baik menaik maupun menurun. Binary search,
Pencarian secara biner,digunakan ketika sebuah komputer harus mencari posisi
sebuah simbol dalam daftar urut. Komputer akan mencari simbol dari tengah
daftar sampai data terakhir,dan membandingkannya dengan simbol yang sedang
dicari. Apabila simbol tersebut sudah ditemukan, pencarian pada setengah daftar
sisanya akan dihentikan. Secara umum binary searh adalah sebuah teknik untuk
menemukan nilai tertentu dalam sebuah larik (array) linear,dengan menghilangkan
setengah data pada setiap langkah,dipakai secara luas tetapi tidak secara ekslusif
dalam ilmu komputer. Sebuah pencarian biner mencari nilai tengah
(median),melakukan sebuah pembandingan untuk menentukan apakah nilai yang
dicari ada sebelum atau sesudahnya,kemudian mencari setengah sisanya dengan
cara yang sama. Sebuah algoritma pencarian biner (atau pemilahan biner) adalah
sebuah teknik untuk menemukan nilai tertentu dalam sebuah larik (array) linear,
dengan menghilangkan setengah data pada setiap langkah,dipakai secara luas
tetapi tidak secara ekslusif dalam ilmu komputer. Sebuah pencarian biner mencari
nilai tengah (median),melakukan sebuah pembandingan untuk menentukan apakah
nilai yang dicari ada sebelum atau sesudahnya,kemudian mencari setengah sisanya
dengan cara yang sama.

B. Algoritma dan Contoh Kasus Quick Sort,Merge Sort dan Binary Search
a. Algoritma dan Contoh KasusQuick Sort
1) Algoritma Quick Sort
Quick Sort adalah algoritma pengurutan yang sangat cepat dengan tipe
penyelesaian divide and conquer,sehingga cocok untuk mengurutkan data
dalam jumlah besar. Proses pengurutan Quick Sort adalah sebagai berikut:

8
Proses pengurutan berhenti bila pointer kiri overlap dengan pointer kanan
(langkah 8 di gambar atas),sekaligus membagi (divide) 2 bagian yang akan
diurutkan selanjutnya; yaitu partisi kiri dan kanan.

Gambar: Proses sorting tahap ke-2

9
Proses pengurutan dilakukan sama dengan langkah sebelumnya (rekursif)
dan dilakukan pada partisi kiri dan kanan. Pembagian partisi berhenti bila tiap
partisi hanya menyisakan satu elemen data saja (lihat warna hijau pada langkah
4 di atas).

Gambar: Proses sorting tahap ke-3

Ketika proses pengurutan dilakukan secara rekursif (berulang), maka


menghasilkan partisi hanya satu elemen saja dan kemudian digabung kembali
sehingga terlihat bahwa data telah berurutan. Untuk lebih jelasnya,anda bisa
memahami proses sorting dengan membaca Algoritma Quick Sort di bawah ini:

Gambar: Hasil running Quick Sort

10
Kode Program: Bahasa C++

2) Contoh Kasus Quick Sort


Quick Sort sebenarnya sama seperti Merge sort yaitu menggunakan metode
Divide & Conquer. Prinsip dalam algoritma quicksort sebagai berikut:
Bila elemen dalam array kurang dari jumlah tertentu (biasanya 2),proses
selesai
Ambil sebuah elemen yang berfungsi sebagai poros.
Pisahkan array dalam 2 bagian,sebelah kiri lebih kecil dari poros, sebelah
kanan lebih besar dari poros.
Ulangi proses secara rekursif pada tiap-tiap bagian
Hal penting dari hal algoritma ini adalah: bagaimana memilih poros dengan
tepat dan secara efisien mengatur tiap-tiap elemen sehingga didapat elemen
kecil > poros > elemen besar dalam kondisi (mendekati) seimbang.
Contoh Quick sort dalam gambar :

11
Contoh Pseudocode Quick Sort

Quicksort(A as array,low as int,high as int)

if (low < high)

pivot_location = Partition(A,low,high)

Quicksort(A,low, pivot_location - 1)

Quicksort(A, pivot_location + 1, high)

Partition(A as array, low as int, high as int)

pivot = A[low] leftwall = low for i = low + 1 to high

if (A[i] < pivot)

then leftwall = leftwall + 1 swap(A[i], A[leftwall]) swap(A[low],A[leftwall])

return (leftwall)

b. Algoritma dan Contoh Kasus Merge Sort


1) Algoritma Merge Sort
Merge sort merupakan sebuah algoritma yang digunakan untuk melakukan
sebuah pengurutan dalam imlu computer yang dirancang untuk mengurutkan
suatu urutan data atau rangkaian data yang tidak memungkinkan bisa untuk
ditampung didalam sebuah memori dalam komputer karena jumlahnya yang
tinggi dan terlalu besar. Algoritma merge sort ditemukan oleh John von
Neumann tahun 1945.
Algoritma pengurutan ini dilakukan dengan cara memecah data kemudian
menyelesaikan setiap bagian data kemudian data tersebut digabungkan kembali.
hal Pertama yang dilakukan adalah data dipecah menjadi 2 bagian,pertama
bagian ini merupakan setengah genap(jika datanya adalah genap) atau setengah
minus satu (jika datanya adalah ganjil) dari seluruh data yang ada.
Kemudian dipecah kembali untuk masing-masing blok tadi sampai terdiri
dari satu data tiap blok.
Kemudian digabungkan kembali dengan cara membandingkan pada bagian
blok yang sama,apakah data pertama itu lebih besar dari pada data ke-tengah+1,
jika iya maka data yang ke-tengah+1 dipindah sebagai data yang
pertama,kemudian data pertama sampai tengah digeser menjadi data kedua
sampai ketengah+1.

12
Demikian seterusnya sampai selesai menjadi suatu blok sedia kala. Sehingga
didalam sebuah metode merge sort itu merupakan metode yang menggunakan
fungsi rekursi untuk melakukan suatu penyelesaiannya.
Contoh penerapan merge sort.
Data sumber yang akan diurutkan adalah sebagai berikut:

langkah pertama kita bagi menjadi 3 bagian susunan elemen data yaitu 4
dengan 7,1 dengan 2 dan 9 dengan 5.

kemudian kita bandingan elemen pertama yaitu 4 dan 7. Karena 4 sudah lebih
kecil dari 7 maka posisi tetap.

kemudian bandingkan elemen data ke 2 yaitu angka 1 dan 2. Karena angka 1


lebih kecil dari 2 maka posisi tetap.

kemudian bandingkan elemen data ke 3 yaitu angka 9 dan 5. Karena angka 5


lebih kecil dari 9 maka posisi 9 ditukar dengan angka 5.

langkah selanjutnya adalah kita bandingkan angka pertama pada elemen


pertama dengan elemen 2 dan elemen 3 pertama kita bandingkan angka 4
dengan element 2 yaitu 1.

13
cek angka 4 dan 1. Lebh besar mana angka 4 dibandingkan dengan angka 1.
Karena angka 1 lebih kecil dari angka 4 maka angka 1 akan menempati posisi
baru di elemen pertama.

kemudian bandingkan angka 4 dengan 2. Cek lebih kecil mana antara angka 4
dan 2.

karena angka 2 lebih kecil dari 4 maka angka 2 ke elemen baru di posisi ke 2

kemudian bandingkan angka 4 dengan elemen ke 3 yaitu 5.

cek lebih kecil mana angka 4 dengan angka 5. Karena angka 4 lebih kecil dari 5
maka angka 4 menempati posisi ke 3.

lanjut ke urutan angka ke 2 pada elemen pertama yaitu angka 7. Bandingkan


angka 7 dan 5.Lebih kecil mana antara angka 7 dan 5.

karena angka 5 lebih kecil dari 7 maka angka 5 menempati posisi ke 4.

14
lanjut ... bandingkan angka 7 dengan angka 9. Lebih kecil mana antara angka 7
dan 9

karena angka 7 lebih kecil dari 9 maka angka 7 menempati urutan ke 5.

karena angka 9 adalah angka terakhir maka angka 9 menempati posisi ke 6


pengurutan dengan merge telah selesai.

c. Algoritma dan Contoh Kasus Binary Search


1) Algoritma Binary Search
Penerapan terbanyak dari pencarian biner adalah untuk mencari sebuah nilai
tertentu dalam sebuah list terurut. Jika dibayangkan,pencarian biner dapat
dilihat sebagai sebuah permainan tebak-tebakan,kita menebak sebuah
bilangan,atau nomor tempat,dari daftar (list) nilai. Pencarian diawali dengan
memeriksa nilai yang ada pada posisi tengah list; oleh karena nilai-nilainya
terurut,kita mengetahui apakah nilai terletak sebelum atau sesudah nilai yang di
tengah tersebut,dan pencarian selanjutnya dilakukan terhadap setengah bagian
dengan cara yang sama. Berikut ini adalah pseudocode sederhana yang
menentukan indeks (posisi) dari nilai yang diberikan dalam sebuah list berurut,
a berada antara left dan right . Karena pemanggilan fungsi di samping adalah
rekursif ekor,fungsi tersebut dapat dituliskan sebagai sebuah pengulangan
(loop),hasilnya adalah algoritma in-place. Pada kedua kasus,algoritma akan
berakhir karena pada setiap pemanggilan rekursif atau pengulangan,jangkauan
indeks right dikurang left akan selalu mengecil, dan akhirnya pasti akan
menjadi negatif. Pencarian biner adalah sebuah algoritma logaritmik dan
bekerja dalam waktu O(log n). Secara khusus,1 + log2N pengulangan yang
diperlukan untuk menghasilkan jawaban. Hal ini dianggap lebih cepat
dibandingkan sebuah pencarian linear. Pencarian biner dapat

15
diimplementasikan dengan rekursi atau iterasi,seperti yang terlihat di atas,
walaupun pada kebanyakan bahasa pemrograman akan lebih elegan bila
dinyatakan secara rekursif. Pada intinya,algoritma ini menggunakan prinsip
divide and conquer,dimana sebuah masalah atau tujuan diselesaikan dengan
cara mempartisi masalah menjadi bagian yang lebih kecil. Algoritma ini
membagi sebuah tabel menjadi dua dan memproses satu bagian dari tabel itu
saja. Algoritma ini bekerja dengan cara memilih record dengan indeks tengah
dari tabel dan membandingkannya dengan record yang hendak dicari. Jika
record tersebut lebih rendah atau lebih tinggi,maka tabel tersebut dibagi dua dan
bagian tabel yang bersesuaian akan diproses kembali secara rekursif.
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. 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). Syarat utama untuk pencarian biner adalah data di dalam
tabel harus sudah terurut, misalkan terurut menaik.
 Konsep langkah binary search
Contoh :
a) Mencari bilangan 4 dari bilangan 1,2,3,4,5,6,7
 Mencari titik tengah dari bilangan 1,2,3,4,5,6,7
 Nilai titik tengah dari bilangan 1,2,3,4,5,6,7 adalah 4,maka nilai yang
dicari bisa langsung di temukan dan proses di hentikan.
b) Mencari bilangan 6 dari bilangan 1,2,3,4,5,6,7
 Mencari nilai titik tengah dari bilangan yang tersedia yaitu
1,2,3,4,5,6,7
 Nilai titik tengahnya adalah 4
 Dari nilai yang dicari (6) apakah sama,kurang dari,atau lebih dari,dari
nilai titik tengah
 Karena nilai yang di cari adalah 6,yaitu lebih dari dari nilai titik tengah
(4) maka proses dilanjutkan kekanan/keatas yaitu mencari titik tengah
dari 5,6,7
 Dari bilangan 5,6,7 nilai titik tengahnya adalah 6,maka bilangan yang
dicari ditemukan dan proses dihentikan
 Apabila nilai yang dicari belum ditemukan maka proses akan
dilanjutkan sampai bilngan tersebut sudah dicari titik tengahnya semua
kemudian proses berhenti.

ALGORITMA PENCARIAN BINER (BINARY SEARCH)

Pencarian Biner (Binary Search) pada array yang sudah terurut

16
Pencarian Biner (Binary Search) dilakukan untuk :
 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.
 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).
 Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah
terurut, misalkan terurut menaik.

ALGORITMA

Kamus
Const N : integer = 8 { misalkan jumlah elemen array maksimum = 8 }
Type A = array [ 1 ..... N ] ofinteger
Cari, BatasAtas, BatasBawah, Tengah : Integer
Ketemu : boolean
ALGORITMA
Input (cari) { meminta nilai data yang akan dicari}
BatasAtas  1 { indeks array dimulai dari 1 }
BatasBawah  N
Ketemu  False
While (BatasAtas < BatasBawah) and (not ketemu) do
Tengah  (BatasAtas + BatasBawah) div 2
If A [Tengah] = cari then
Ketemu true
Else
If ( A [Tengah] < cari ) then { cari di bagian kanan }
BatasAtas  Tengah + 1
Else
BatasBawah  Tengah – 1 { cari di bagian kiri }
Endif
Endif
EndWhile
If (ketemu) then
Output ( ‘Data berada di index nomor’, Tengah )
Else Output ( ‘Data tidak ditemukan’ )
Endif

17
BAB III

PENUTUP

1. Kesimpulan
Berdasarkan pembahasan di atas maka dapat di simpulkan :

Quick sort adalah algoritma sorting yang berdasarkan pembandingan dengan


metode divide-and-conqueror. Algoritma quick sort mengurutkan dengan sangat
cepat,namun algoritma ini sangat komplex dan diproses secara rekursif. Sangat
memungkinkan untuk menulis algoritma yang lebih cepat untuk beberapa kasus
khusus,namun untuk kasus umum,sampai saat ini tidak ada yang lebih cepat
dibandingkan algoritma quick sort.
Quick sort merupakan algoritma yang mempartisi banyaknya data yang
dimasukan untuk mempercepat proses. Dimana inputan yang dimasukan adalah n
buah masukan. Algoritma ini memiliki kompleksitas saat kondisi teburuk (worst
case) Tn=O(n2) dan kondisi terbaik (best case) Tn= O(n 2log n).
Beberapa hal yang membuat quick sort unggul:

 Secara umum memiliki kompleksitas O(n log n).


 Algoritmanya sederhana dan mudah diterapkan pada berbagai bahasa
pemrograman dan arsitektur mesin secara efisien.
 Dalam prakteknya adalah yang tercepat dari berbagai algoritma pengurutan
dengan perbandingan,seperti merge sort dan heap sort.
 Melakukan proses langsung pada input (in-place) dengan sedikit tambahan
memori.
 Bekerja dengan baik pada berbagai jenis input data (seperti angka dan karakter).
Namun terdapat pula kelemahan quick sort:
 Sedikit kesalahan dalam penulisan program membuatnya bekerja tidak
beraturan (hasilnya tidak benar atau tidak pernah selesai).
 Memiliki ketergantungan terhadap data yang dimasukkan,yang dalam kasus
terburuk memiliki kompleksitas O(n2).
 Secara umum bersifat tidak stable,yaitu mengubah urutan input dalam hasil
akhirnya (dalam hal inputnya bernilai sama).
 Pada penerapan secara rekursif (memanggil dirinya sendiri) bila terjadi kasus
terburuk dapat menghabiskan stack dan memacetkan program.

18
Merge Sort adalah metode pengurutan data dengan cara data dibagi menjadi
subkumpulan – subkumpulan yang kemudian subkumpulan tersebut diurutkan
secara terpisah,dan kemudian digabungkan kembali dengan metode merging.
Binary Search adalah salah satu algoritma pencarian yang tercepat. Sebuah
algoritma pencarian biner (atau pemilahan biner) adalah sebuah teknik untuk
menemukan nilai tertentu dalam sebuah larik (array) linear,dengan menghilangkan
setengah data pada setiap langkah,dipakai secara luas tetapi tidak secara ekslusif
dalam ilmu komputer. Sebuah pencarian biner mencari nilai tengah
(median),melakukan sebuah pembandingan untuk menentukan apakah nilai yang
dicari ada sebelum atau sesudahnya,kemudian mencari setengah sisanya dengan
cara yang sama. Binary search,Pencarian secara biner,digunakan ketika sebuah
komputer harus mencari posisi sebuah simbol dalam daftar urut. Komputer akan
mencari simbol dari tengah daftar sampai data terakhir,dan membandingkannya
dengan simbol yang sedang dicari. Apabila simbol tersebut sudah
ditemukan,pencarian pada setengah daftar sisanya akan dihentikan.

2. Saran
Dari makalah ini,saya sebagai penulis mengharapkan agar para pembaca dapat
memanfaatkan Ilmu Pengetahuan yang terdapat dalam makalah ini dan
mempergunakan makalah ini sebaiknya dan semoga makalah ini bermanfaat untuk
kita semua.

19

Anda mungkin juga menyukai