Selasa, 17 Januari 2012

searching binary code


SEARCHING BINARY SEARCH

Disusun oleh :
Dian Kuuma Wardani




Teknik Informatika Politeknik Banyuwangi
Jalan Raya Jember KM 13 Labanasem, Kabat, Banyuwangi


KATA PENGANTAR
Puji syukur penulis penjatkan kehadirat Tuhan Yang Maha Esa, atas rahmat-Nya maka penulis dapat menyelesaikan penyusunan makalah yang berjudul “Seaching Binary Search”.
Penulisan makalah adalah merupakan salah satu tugas dan persyaratan untuk menyelesaikan tugas mata Kuliah Logika dan Algoritma di Politeknik Banyuwangi.
Dalam Penulisan makalah ini penulis merasa masih banyak kekurangan-kekurangan baik pada teknis penulisan maupun materi, mengingat akan kemampuan yang dimiliki penulis. Untuk itu kritik dan saran dari semua pihak sangat penulis harapkan demi penyempurnaan pembuatan makalah ini.
Dalam penulisan makalah ini penulis menyampaikan ucapan terima kasih yang tak terhingga kepada pihak-pihak yang membantu dalam menyelesaikan penelitian ini, khususnya kepada Bp. Aulia El Hakim, S.ST selaku dosen mata kuliah Logika dan Algoritma
Akhirnya penulis berharap semoga Tuhan memberikan imbalan yang setimpal pada mereka yang telah memberikan bantuan, dan dapat menjadikan semua bantuan ini sebagai ibadah, Amin Yaa Robbal ‘Alamin. Dan penulis pun berharap agar makalah ini dapat memberikan manfaat bagi pembaca.



Banyuwangi, 04 Desember 2011


Penulis
 






DAFTAR ISI
Halaman Judul………………………………………………………………………
Kata Pengantar………………………………………………………………….......i
Daftar Isi……………………………………………………………………….…...ii

BAB I PENDAHULUAN
1.1              Latar Belakang……………………………………………………...1
1.2              Runusan Masalah…………………………………………………...2
1.3              Tujuan ……………………………………………………...............2
1.4              Manfaat……………………………………………………..............2
BAB II ISI
2.1              Konsep dan Istilah…………………………………………………..3
2.2              Pengertian Binary Search……………………………………….......3
2.3              Algoritma dari Binary search……………………………………….4
2.4              Flowchart dari Binary Search……………………………………….4
2.5              Coding Binary Seacrh dan Running Program………………………6
2.6              Contoh Soal Binary Search…………………………………………11
BAB III PENUTUP
3.1              Kesimpulan…………………………………………………..…….12
3.2              Saran………………………………………….................................12
DAFTAR PUSTAKA

BAB I
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.
Keberadaan bahasa pemograman telah menghadirkan nuansa tersendiri di lingkup dunia kerja, karena pekerjaan kita pada saat ini selalu  mengikuti kemajuan teknologi. Demi menambah kepuasan masyarakat menjadi sisi yang paling ditonjolkan. Hal ini
tentu saja semakin memantapkan posisinya sebagai bahasa penghantar antara manusia yang dapat dipahami, dan dapat dijalankan oleh seorang programmer.. Ia
telah menjadi bagian hidup masyarakat masa kini, bukan hanya sebagai sumber informasi, tetapi juga gaya hidup dan kebudayaan.
Sehingga banyak progamer 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.
Adapun Kelebihan dari Searching dengan metode Binary Sort adalah Untuk Pencarian data yang jumlahnya banyak, waktu pencarian relatif cepat. selain itu beban komputasi juga lebih kecil karena pencarian dilakukan dari depan, belakang, dan tengah. Sehingga metode pencarian dengan menggunakan binary sort banyak digunakan.
Sehingga pada makalah ini kami melmilih metode pencarian dengan Binary sort, karena melihat keunggulan yang dimiliki oleh binary sort. Selain itu ketelitian pencarian binary sort sangat akurat.

1.2 Rumusan Masalah
-          Bagaimana cara mencari data dengan cepat dan ukurat?

1.3 Tujuan
- Mempermudah pekerjaan manusia dalam bidang Informasi.
- Mempermudah pekerjaan manusia dalam bidang Statistik.
- Mempermudah pekerjaan manusia dalam bidang komputerisasi lainya terutama dalam bidang pencarian data.
1.4 Manfaat
- Pekerjaan manusia dalam bidang teknologi jadi lebih mudah, cepat, dan efisien waktu.


BAB II
ISI
2.1 Konsep dan Istilah
            Sebelum belajar binary search kita harus mempelajari istilah yang banyak ditemui dalammateri ini. Seperti misalnya :
-          Internal Search : Algoritma pencarian yang dilakukan dalam main memory computer
-          External search : Algoritma pencarian yang melibatkan external media menambah main memory
-          Key : Sebuah subset dari isi sebuah data yang digunakan untuk perbandingan selama proses pencarian
-          Big-O Nation-Notasi yang digunakan untuk mengindikasikan kenaikan (order of growth) unjuk kerja dari sebuah algoritma searching
2.2 Pengertian Binary Search
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. Sebuah pencarian biner adalah salah satu contoh dari algoritma divide and conquer (atau lebih khusus algoritma decrease and conquer) dan sebuah pencarian dikotomi (lebih rinci di Algoritma pencarian).
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.
Metoda Pencarian Biner ( Binary Search) hanya bisa diterapkan jika data array sudah terurut. pengurutan Array bisa menggunakan jenis sorting descending atau asscending. Kelebihan dari Searching dengan metode Binary Sort adalah Untuk Pencarian data yang jumlahnya banyak, waktu pencarian relatif cepat. selain itu beban komputasi juga lebih kecil karena pencarian dilakukan dari depan, belakang, dan tengah. namun ada pula kekurangannya, yaitu data harus disorting dahulu dan Algoritma lebih rumit, tidak baik untuk data berangkai.
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
2.3 Algoritma dari Binary Search
Proses yang terjadi pada pencarian dengan metode ini adalah sebagai berikut :
  1. Membaca Array data
  2. Apabila Array belum terurut maka array diurutkan terlebih dahulu.
  3. Menentukan data yang akan dicari
  4. Menentukan elemen tengah dari array
  5. Jika nilai elemen tengah sama dengan data yang dicari, maka pencarian berhenti.
  6. Jika elemen tengah tidak sama dengan data yang dicari maka :
    1. Jika nilai elemen tengah > data yang dicari maka pencarian dilakukan pada setengah array pertama.
    2. Jika nilai elemen tengah lebih kecil dari pada data yang dicari maka pencarian dilakukan pada setengah array berikutnya.
2.4 Flowchart dari Binary Search



2.5 Coding Binary Search
#include <stdio.h>
int main()
{
int a[20] = {0};
int n, i, j, temp;
int *beg, *end, *mid, target;
printf(" Masukan banyak data(banyak data jangan sampai data ke 20):\n");
scanf("%d", &n);
if (n >= 20) return 0; // ouch!
printf(" Masukan Nilai data Array:\n" );
for(i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
// sort the loaded array, a must for binary search!
// you can apply qsort or other algorithms here
for(i = 0; i < n-1; i++)
{
for(j = 0; j < n-i-1; j++)
{
if (a[j+1] < a[j])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
printf(" urutan data:");
for(i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
// point to beginning and end of the array
beg = &a[0];
end = &a[n]; // use n = one element past the loaded array!
printf("\n Poin awal %d Poin akhir to %d",beg, end); // test
// mid should point somewhere in the middle of these addresses
mid = beg += n/2;
printf("\n data tengah %d", mid); // test
printf("\n masukan data yang dicari:");
scanf("%d",&target);
// binary search, there is an AND in the middle of while()!!!
while((beg <= end) && (*mid != target))
{
// is the target in lower or upper half?
if (target < *mid)
{
end = mid - 1; // new end
n = n/2;
mid = beg += n/2; // new middle
}
else
{
beg = mid + 1; // new beginning
n = n/2;
mid = beg += n/2; // new middle
}
}
// did you find the target?
if (*mid == target)
{
printf("\n %d data ditemukan!", target);
}
else
{
printf("\n %d not found!", target);
}
getchar(); // trap enter
getchar(); // wait
return 0;
}
Progam setelah running
 

2.6 Contoh Soal Binary Search
Misalnya data yang dicari 17
         0          1          2          3          4                                  5          6          7          8
         3          9          11        12        15        17        23        31        35
         A                                             B                                             C
         Karena 17 > 15 (data tengah), maka: awal = tengah + 1
         0          1          2          3          4          5          6          7          8
         3          9          11        12        15        17        23        31        35
                                                                        A      B                        C
         Karena 17 < 23 (data tengah), maka: akhir = tengah – 1
         0          1          2          3          4          5          6          7          8
         3          9          11        12        15        17        23        31        35
                                                                        A=B=C
         Karena 17 = 17 (data tengah), maka KETEMU!


BAB III
PENUTUP
            Puji syukur penulis sampaikan kepada tuhan Yang MahaEsa, Karena Atas berkatdan rahmatnya kami dapat menyelesaikan makalah ini. Kemudian ucapan terimakasih kamisampaikan kepada kedua orangtua kamiyang senantiasa memberiakan dukungan moral maupun materi. Dan kami juga sampaikan banyak terimahkasih kepada bapak Aulia El Hakim, S.ST selaku Dosen Logika dan Algotirma karena telah memberikan banyak bimbingan pada kami.
            Semoga makalah ini memiliki banyak manfaat bagi para pembaca.
3.1 Kesimpulan
            Adapun kesimpulan yang dapat ditarik dari makalah Searching binary search ini adalah kita dapat mempermudah pekerjaan manusia dalam bidang Informasi, mempermudah pekerjaan manusia dalam bidang Staristik, 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 nilaiekonomi.
3.2 Saran
- Telitilah dalam menghitung binary code
- Telitilah dalam menghitung nilai tengah dari binary code
- Dan yang terpenting teelitilah dalam memasukan bahasa pemograman pada saat mengcompile(ngoding).

DAFTAR PUSTAKA

Posted by Atmaja Dharma, “Binary Search”dharmaatmaja.wordpress.com (June 29, 2009)
Posted by Wildanfaizzan, “Pengertian Binary Search / Pencarian Biner” Sumber  wikipedia.org (March 20, 2010)
Posted by Rachmat Antonius C, S.Kom, “Struktur Data (2) Searching Array” goole.co.id(03 September 2010)
Posted by Boys Cute, “BAB VII Pencarian Data Searching” goole.co.id(09 May 2011)

Posted by Hndsanjaya, “Algoritma Sorting & Searching C++wikipedia.org(4 July 2010 at 22:08)

Posted by Entin@Nanarm, “Searching Sequential and Binary search”goole.co.id(13 August 2009)
Posted by Kazwini13, ”searching-binary-search” http://kazwini13.wordpress.com (22 Desember 2010)
Posted by Vegaseat , “Binary seach” http://www.daniweb.com/softwaredevelopment  ( Jan 24th, 2005)

SEMOGA BERMANFAAT!!!!!!