1
Makalah Sistem Berkas
Binary Search
Disusun oleh:
Nama: Alifian Odi Mahendra (2015-31-165) Reski Yuli Defrianto (2015-31-228) Hendy Augustama (2015-31-032) Anita Oktavianti (2015-31-039) Ubed Sihombing (2015-31-094) Andini Prisilya Rasyid (2015-31-014) Inggrit Ivana Rumagit (2015-31-231)
Kelas: E
SEKOLAH TINGGI TEKNIK – PLN JAKARTA
2
DAFTAR ISI
BAB 1PENDAHULUAN ... 3
1.1 Latar Belakang ... 3
1.2 Rumusan Masalah ... 4
1.3 Batasan Masalah ... 4
1.4 Tujuan ... 4
1.5 Manfaat ... 4
BAB 2PEMBAHASAN ... 5
2.1 Konsep ... 5
2.2 Algoritma dari Binary search ... 9
2.3 Contoh Studi Kasus ... 9
2.4 Program ... 10
2.5 Output Program ... 16
BAB 3PENUTUP ... 19
3.1 Kesimpulan ... 19
3.2 Saran ... 19
3
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Seiring dengan berkembangnya Teknologi Informasi, yang membutuhkan kecepatan dan ketepatan dalam berbagai aspek kehidupan. Kita dituntut untuk bergerak cepat dalam segala hal, termasuk juga dalam bidang komunikasi informasi. Salah satunya dalam bidang statistic yang meliputi pencarian data. Sehingga banyak programer yang membuat program yang mempermudah kerja dalam bidang statistika dan informasi, yakni dalam hal pencarian data. Dari program pencarian data terdapat algoritma-algoritma yang digunakan untuk mencari sebuah data, salah satunya adalah binary search.
4
1.2 Rumusan Masalah
a) Bagaimana cara mencari data dengan cepat dan ukurat?
1.3 Batasan Masalah
Pada makalah ini akan dibahas mengenai salah satu metode pencarian, yaitu Binary Search. Pada sesi ini hanya akan membahas mengenai:
a) Pengertian/konsep binary search b) Algoritma binary search
c) Contoh study kasus
d) Contoh program binary search
1.4 Tujuan
a) Mempermudah pekerjaan manusia dalam bidang Informasi. b) Mempermudah pekerjaan manusia dalam bidang Statistik.
c) Mempermudah pekerjaan manusia dalam bidang komputerisasi lainya terutama dalam bidang pencarian data.
1.5 Manfaat
5
BAB 2
PEMBAHASAN
2.1 Konsep
Pengertian
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. 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.
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.
6 Metoda Pencarian Biner (Binary Search) hanya bisa diterapkan jika data array sudah terurut. Pengurutan Array bisa menggunakan jenis sorting descending atau asscending.
Keunggulan
Keunggulan utama dari algoritma binary search adalah kompleksitas algoritmanya yang lebih kecil daripada kompleksitas algoritma sequential search. Hal ini menyebabkan waktu yang dibutuhkan algoritma binary search dalam mencari sebuah record dalam sebuah table, lebih kecil daripada waktu yang dibutuhkan algoritma
sequential search.
Kelemahan
Data harus disorting dahulu dan algoritma lebih rumit, tidak baik untuk data berantai. algoritma ini hanya bisa digunakan pada tabel yang elemennya sudah terurut baik menaik maupun menurun.
Fungsi
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
7 Prinsip dari pencarian biner dapat dijelaskan sebagai berikut :
Data diambil dari posisi 1 sampai posisi akhir N
Kemudian cari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2 Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah
sama atau lebih kecil, atau lebih besar?
Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah posisi
Untuk lebih jelasnya, perhatikan contoh pada sekumpulan data berikut:
Data yang dimasukan:
12 15 57 8 37 2 25 5
1 2 3 3 5 6 7 8
Data yang telah terurut secara ascending:
2 5 8 12 15 25 37 57
1 2 3 3 5 6 7 8
Kasus 1 : cari = 12
Probe pertama : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 8) div 2 = 4
8
9
2.2 Algoritma dari Binary search
Algoritma pencarian biner dapat dituliskan sebagai berikut : 1 L ← 0
2 R ← N - 1 3 ketemu ← false
4 Selama (L <= R) dan (tidak ketemu) kerjakan baris 5 sampai dengan 8 5 m ← (L + R) / 2
83
6 Jika (Data[m] = x) maka ketemu ← true 7 Jika (x < Data[m]) maka R ← m – 1 8 Jika (x > Data[m]) maka L ← m + 1
9 Jika (ketemu) maka m adalah indeks dari data yang dicari, jika tidak data tidak ditemukan
2.3 Contoh Studi Kasus
10
2.4 Program
package binary_search;
import javax.swing.*;
public class Binary_Search {
public static int[] data = null;
public static int awal, tengah, akhir, temp, count;
public static void main(String[] args)
{
// Input tiap nilai dan simpan ke array
data = new int[jumlah];
for(int x = 0; x < data.length; x++)
{
data[x]=Integer.parseInt(JOptionPane.showInputDialog
("Masukan Angka:"));
}
11
// Menampilkan Data setelah di sorting
System.out.println();
input2=JOptionPane.showInputDialog("Masukan Data yang
dicari:");
int cari=Integer.parseInt(input2);
12 System.out.println();
boolean temu = false;
awal = 0;
area.append(iterasi+" \t");
area.append(awal+" \t");
area.append(akhir+" \t");
area.append(tengah+" \t");
area.append(data[tengah]+"\n");
temu = true;
break;
}
// nilai < cari
else if(data[tengah] < cari)
{
13 area.append(awal+" \t");
area.append(akhir+" \t");
area.append(tengah+" \t");
area.append(data[tengah]+"\n");
awal = tengah + 1;
}
// nilai > cari
else if(data[tengah] > cari)
{
area.append(iterasi+" \t");
area.append(awal+" \t");
area.append(akhir+" \t");
area.append(tengah+" \t");
area.append(data[tengah]+"\n");
// batasan untuk worst case
if(count == 3)
break;
}
JOptionPane.showMessageDialog(null,area,"Binary
14 // Output
if(temu == true){
area.append("\nData "+cari+" ditemukan
pada index ke-"+tengah+"\n"+
area.append("\nData "+cari+" tidak
ditemukan");
// Sorting Ascending
public static void sorting()
15 else
{
if(data[x] < data[y])
{
temp = data[y];
data[y] = data[x];
data[x] = temp;
}
}
}
}
}
16
2.5 Output Program
Apabila data yang dicari ditemukan:
18
19
BAB 3
PENUTUP
3.1 Kesimpulan
Kesimpulan yang dapat ditarik dari makalah binary search ini yaitu Algoritma pencarian biner digunakan untuk mencari data pada sekumpulan data atau rekaman yang sudah dalam keadaan terurut.
Selain itu kita dapat mempermudah pekerjaan manusia dalam bidang Informasi, mempermudah dalam bidang Statistik, mempermudah pekerjaan manusia dalam bidang komputerisasi lainya terutama dalam bidang pencarian data.
Dengan binary search ini kita dapat mempermudah pekerjaan manusia di dalam hal mencari sebuah data. Sehingga dapat menciptakan suatu progam yang bermanfaat dan memiliki nilai ekonomi.
3.2 Saran
a. Teliti dalam menghitung binary code
b. Teliti dalam menghitung nilai tengah dari binary code
c. Teliti dalam memasukan bahasa pemograman pada saat
20
DAFTAR PUSTAKA
http://diankuusuma.blogspot.com/2012/01/v-behaviorurldefaultvmlo.html http://ekawirawanptn.blogspot.com/2010/05/algoritma-binary-search.html
http://kabehatake.blogspot.com/2010/05/algoritma-binary-search.html http://aloen-pop.blogspot.com/2009/06/binary-searching.html