WELCOME GUYZZZZ...

elektro - kabe hatake

Sabtu, 19 Maret 2011

aplikasi java pilihan untuk pelajar



Melihat perkembangan teknologi yang semakin pesat, tampaknya sangat berpengaruh juga pada perkembangan aplikasi berbasis java. Walaupun sederhana serta bisa dibilang sudah sangat jadul namun aplikasi berbasis java masih lumayan berguna dan masih bertahan hingga saat ini. Tanpa basa basi, kali ini PULSA ingin sedikit berbagi aplikasi java yang berguna bagi para pelajar, berikut penjelasannya dalam beberapa kategori:

1. KAMUS
- PD english Indonesia



PD English-Indonesia merupakan aplikasi berbasis java yang berfungsi untuk translate/kamus dari bahasa Inggris ke bahasa Indonesia dan sebaliknya. Aplikasi ini sangat cocok bagi anda yang masih pelajar atau bagi anda yang berkecipung di dunia sastra. PD English Indonesia ini mampu mentranslate lebih dari 1000 kosa kata. Dan satu lagi kelebihan aplikasi ini di publikasikan secara bebas alias gratis.
Versi : 1.0
Size : 1.5 MB
Type : J2ME
Download : http://www.brothersoft.com/mobile/pd-english-indonesia-download-575.html

2. Kamus lengkap Pro



Satu lagi aplikasi java kategori kamus, Kamus Lengkap Pro. Aplikasi buatan Condensoft ini mempunyai banyak sekali fitur yang tidak dimiliki oleh PD English Indonesia antara lain: dilengkapi dengan cara pengucapan (pronounciation) Inggris dan Indonesia, daftar susunan kata-kata (phrase) Inggris dan Indonesia, daftar kata kerja beraturan (regular verb) dan kata kerja tidak beraturan (irregular verb) mencakup infinitive, simple past, past participle dan juga artinya dalam bahasa Indonesia. Namun anda harus merogoh kocek agak dalam untuk memperoleh aplikasi satu ini, karena aplikasi ini sifatnya berbayar.
Versi : 5.0
Size : 2.4 MB
Type : J2ME
Download : http://www.getjar.com/mobile/35546/kamus-lengkap-pro-for-sony-ericsson-c510/

KALKULATOR
1. SolveMyMatch-Scientific Calculator



Mungkin sebagian dari anda kurang begitu tertarik dengan aplikasi kalkulator karena setiap ponsel pasti sudah tersedia fitur tersebut. Namun tidak ada salahnya jika anda mencoba aplikasi yang satu ini. SolveMyMatch memiliki fitur yang mungkin tidak dimiliki oleh calculator bawaan ponsel anda. Pada aplikasi SolveMymatch ini anda dapat melakukan perhitungan trigonometri, logaritma, faktorial, sudut radian/degre, akar/pangkat dan masih banyak lagi.
Versi : 1.0
Size : 349 kb
Type : J2ME
Download : http://www.getjar.com/mobile/30894/scientific-calculator-for-sony-ericsson-c510/

sumber :http://www.tabloidpulsa.co.id/tips-a-aplikasi/54-tips-a-aplikasi/1336-aplikasi-java-pilihan-untuk-pelajar

samsung galaxy tab vs iPad

Berikut ini adalah perbandingan spesifikasi Samsung Galaxy Tab dengan Apple iPad :


Selasa, 02 November 2010

SISTEM I/O

Sistem I/O terdiri dari :
1.Perangkat Keras I/O
2.Aplikasi Antarmuka I/O
3.Kernel I/O Subsystem
4.Mengubah I/O Request Menjadi Operasi Perangkat Keras
5.Streams
6.Performance
Perangkat Keras I/O terdiri dari :
1.Banyaknya jenis perangkat keras I/O
2.Konsep Umum :
a. Port
b. Bus (Daisy chain atau shared direct access)
c. Controller (host adapter)
3.Perangkat kontrol instruksi I/O
4.Perangkat-perangkat tersebut memiliki alamat, digunakan untuk:
a. Instruksi I/O langsung
b. Memory-mapped I/O
Jenis Perangkat Keras terdiri dari :
1.Perangkat penyimpan data
2.Perangkat penghubung
3.Perangkat antarmuka dengan user
Konsep Umum Sistem I/O ialah :
1.Suatu perangkat berhubungan dengan sistem komputer dengan cara mengirim sinyal melalui suatu kabel atau bahkan melalui udara.
2.Perangkat tersebut berkomunikasi dengan mesin melalui port
3.Struktur komputer yang umum dipakai adalah Daisy Chain

Dalam dunia komputer, BIOS atau Basic Input-Output System, adalah suatu kode software yang ditanam di dalam suatu sistem komputer yang memiliki fungsi utama untuk memberi informasi visual pada saat komputer dinyalakan, memberi akses ke keyboard dan juga memberi akses komunikasi secara low-level diantara komponen hardware, seperti untuk meload sistem operasi dari storage ke RAM. BIOS dapat disebut sebagai miniatur dan suatu sistem operasi yang dikhususkan untuk komunikasi low-level pada hardware. BIOS biasanya ditulis dalam bahasa assembly atau mesin yang mana bahasa ini biasanya spesifik kepada suatu prosesor tertentu.
Istilah BIOS ini pertama kali muncul pada sistem operasi CP/M, sebagian dari dari CP/M diload ketika saat booting dan berhubungan dengan hardware. (Mesin CP/M biasanya memiliki boot loader sederhana di dalam ROM). Sebagian besar dari versi DOS memiliki suatu file yang bernama IBMBIO.COm atau IO.SYS yang bisa dikatakan sebagai analogi dari BIOS disk pada CP/M.
Bagaimana BIOS booting?
BIOS menjalankan flash memory onboard ketika komputer dinyalakan dan dia akan menginisialisasi chipset dan juga subsistem dari memori. Selanjutnya, dia akan mendekompres dirinya sendiri dari flash memory tadi untuk kemudian menuju ke memori utama dan mulai dieksekusi dari sana. Kode PC BIOS biasanya juga berisi semacam diagnosa untuk memastikan kondisi dari komponen hardware yang sifatnya penting, seperti misalnya keyboard, disk drive, I/O ports dan lain sebagainya. BIOS memastikan apakah alat-alat tersebut bisa berfungsi dengan baik dan diinisialisasi dengan benar. Hampir semua implementasi BIOS dapat mengeksekusi suatu program setup melalui CMOS memory. Memori ini menyimpan konfigurasi yang dapat diatur oleh user (seperti time, date dan juga informasi detail mengenai hardisk dan lain sebagainya) dan bisa diakses oleh BIOS.
Pada implementasi BIOS yang modern, seseorang dapat memilih apa yang dibooting pertama kali, seperti CD, hardisk, floppy disk, flash keydrive dan lain sebagainya. Ini sangat berguna ketika Anda ingin menginstall suatu sistem operasi atau juga melakukan booting dari CD-ROM. Bahkan Anda juga bisa melakukan booting dari media USB.
Beberapa sistem BIOS membolehkan user untuk memilih sistem operasi yang ingin diload (misalnya load OS lain dari hardisk yang berbeda dalam satu PC), meskipun cara ini sekarang lebih sering dihandle oleh fase berikutnya atau yang sering dikenal dengan tool boot loader.
BIOS sebagai suatu firmware
BIOS terkadang disebut sebagai firmware karena merupakan bagian integral dari suatu sistem hardware.Sebelum 1990, BIOS berada dalam chip ROM dan tidak bisa diubah. Seiring dengan semakin kompleksnya sistem dan juga kebutuhan akan “bisa diupgrade” maka sekarang BIOS firmware disimpan di dalam EEPROM atau flash memory device yang dapat dengan mudah diupgrade isinya oleh user. Sementara itu, kesalahan dalam proses upgrade dari BIOS akan menyebabkan sistem komputer tidak akan bisa diakses. Untuk mencegah BIOS corruption, maka beberapa motherboard yang baru memiliki backup BIOS (“Dual BIOS” boards). Meskipun demikian, banyak BIOS yang memiliki “boot block” dimana bagian ini adalah bagian dari ROM yang berjalan pada saat pertama kali dan tetap tidak bisa diupdate. Kode dalam boot block ini akan memastikan sisa BIOS block lainnya melalui prosedur checksum, hash dan lain sebagainya, sebelum loncat ke block tersebut. Jika boot block mendeteksi adanya kerusakan atau corruption, maka dia akan melakukan booting melalui floppy disk sehingga user dapat melakukan flashing lagi dengan image yang lebih bagus. Beberapa pembuat hardware seringkali mengeluarkan update BIOS untuk mengupdate dan upgrade produk mereka dan juga menghilangkan bug yang ada.
Firmware pada card adapter
Suatu sistem komputer dapat berisi beberapa chip BIOS. Sebagai tambahan dari boot BIOS yang fungsi utamanya untuk mengakses komponen fundamental dari komputer, maka plug-in adapter card seperti SCSI atau USB hardisk adapter atau network card dapat memiliki BIOS sendiri dan merupakan komplemen atau pengganti dari kode BIOS untuk komponen tersebut.
Untuk mencari ekspansi ROM memori yang sudah dimapping selama proses booting, implementasi BIOS dari PC menscan memori real dari alamat 0xC8000 sampai 0xF0000 dalam batas 2 kilobyte mencari suatu signature 0×55 0xaa, yang mana diikuti dengan suatu byte yang mengindikasikan sejumlah 512 byte block dari expansion memory yang menduduki memori real. BIOS kemudian loncat ke offset setelah size byte, dimana pada titik tersebut kode dari expansion ROM mengambil alih dan menggunakan service BIOS untuk memberikan user sebuah configuration interface, meregister interrupt vector yang digunakan oleh aplikasi setelah booting, atau menampilkan informasi diagnosa.
Pada sistem UNIX, ada suatu utility dimana Anda dapat melakukan dump terhadap software BIOS firmware. Anda bisa dapatkan pada alamat http://www.linuks.mine.nu/ree/
Spesifikasi BIOS boot
Jika expansion ROM ingin merubah cara dari suatu sistem melakukan booting (misalnya saja boot dari jaringan atau SCSI adapter dimana BIOS tidak memiliki drivernya), maka dia dapat menggunakan BIOS Boot Specification (BBS) API untuk meregisterkan kemampuan tambahannya. Sesaat setelah expansion ROM sudah teregister menggunakan BBS API, maka pengguna akan dapat memilih berbagai macam pilihan booting dari user interface BIOS. Hal ini yang menyebabkan mengapa kebanyakan implementasi BIOS yang compliant dengan BBS, tidak akan membolehkan pengguna untuk masuk ke dalam BIOS user interface sampai expansion ROM selesai dalam mengeksekusi dan meregister dirinya sendiri dengan API BBS.

Input Device
Adalah alat yang digunakan untuk menerima input dari luar sistem, dan dapat berupa signal input atau maintenance input. Di dalam sistem komputer, signal input berupa data yang dimasukkan ke dalam sistem komputer, sedangkan maintenance input berupa program yang digunakan untuk mengolah data yang dimasukkan. Dengan demikian, alat input selain digunakan untuk memasukkan data juga untuk memasukkan program.
Beberapa alat input mempunyai fungsi ganda, yaitu disamping sebagai alat input juga berfungsi sebagai alat output sekaligus. Alat yang demikian disebut sebagai terminal. Terminal dapat dihubungkan ke sistem komputer dengan menggunakan kabel langsung atau lewat alat komunikasi. Terminal dapat digolongkan menjadi non intelligent terminal, smart terminal, dan intelligent terminal.Non intelligent terminal hanya berfungsi sebagai alat memasukkan input dan penampil output, dan tidak bisa diprogram karena tidak mempunyai alat pemroses. Peralatan seperti ini juga disebut sebagai dumb terminal. Smart terminal mempunyai alat pemroses dan memori di dalamnya sehingga input yang terlanjur dimasukkan dapat dikoreksi kembali. Walaupun demikian, terminal jenis ini tidak dapat diprogram oleh pemakai, kecuali oleh pabrik pembuatnya. Sedangkan intelligent terminal dapat diprogram oleh pemakai.
Peralatan yang hanya berfungsi sebagai alat input dapat digolongkan menjadi alat input langsung dan tidak langsung. Alat input langsung yaitu input yang dimasukkan langsung diproses oleh alat pemroses, sedangkan alat input tidak langsung melalui media tertentu sebelum suatu input diproses oleh alat pemroses. Alat input langsung dapat berupa papan ketik (keyboard), pointing device (misalnya mouse, touch screen, light pen, digitizer graphics tablet), scanner (misalnya magnetic ink character recognition, optical data reader atau optical character recognition reader), sensor (misalnya digitizing camera), voice recognizer (misalnya microphone).
Sedangkan alat input tidak langsung misalnya keypunch yang dilakukan melalui media punched card (kartu plong), key-to-tape yang merekam data ke media berbentuk pita (tape) sebelum diproses oleh alat pemroses, dan key-to-disk yang merekam data ke media magnetic disk (misalnya disket atau harddisk) sebelum diproses lebih lanjut.

Output Device
Adalah perangkat keras komputer yang berfungsi untuk menampilkan keluaran sebagai hasil pengolahan data. Output yang dihasilkan dari pemroses dapat digolongkan menjadi empat bentuk, yaitu tulisan (huruf, angka, simbol khusus), image (dalam bentuk grafik atau gambar), suara, dan bentuk lain yang dapat dibaca oleh mesin (machine-readable form). Tiga golongan pertama adalah output yang dapat digunakan langsung oleh manusia, sedangkan golongan terakhir biasanya digunakan sebagai input untuk proses selanjutnya dari komputer. Peralatan output dapat berupa :
• Hard-copy device, yaitu alat yang digunakan untuk mencetak tulisan dan image pada media keras seperti kertas atau film. Sifatnya permanen dan lebih portable (dapat dilepas dari alat outputnya dan dapat dibawa ke mana-mana). Alat yang umum digunakan untuk ini adalah printer, plotter, dan alat microfilm.
• Soft-copy device, yaitu alat yang digunakan untuk menampilkan tulisan dan image pada media lunak yang berupa sinyal elektronik. Misalnya video display, flat panel, dan speaker.
• Drive device atau driver, yaitu alat yang digunakan untuk merekam simbol dalam bentuk yang hanya dapat dibaca oleh mesin pada media seperti magnetic disk atau magnetic tape. Alat ini berfungsi ganda, sebagai alat output dan juga sebagai alat input menggunakan media magnetic disk misalnya adalah disk drive, dan yang menggunakan media magnetic tape adalah tape drive


REFERENSI :
http://habeahan.wordpress.com/2008/04/25/mengenal-bios-basic-input-output-system/
http://free.vlsm.org/v06/Kuliah/SistemOperasi/2003/49/produk/transparan/s7.pdf

PROSESOR PENTIUM GENERASI PERTAMA DAN KEDUA

Prosesor Pentium generasi pertama, yang memiliki nama kode i586, P5, atau 80586 memiliki kecepatan 60 MHz dan 66 MHz. Prosesor ini dipaketkan pada paket Pin-Grid Array 273-pin yang ditancapkan pada Socket-4. Prosesor ini dibangun dengan menggunakan teknik manufaktur Bipolar CMOS 800. Karena ada 3100000 tabung vakum di dalamnya (sekarang digantikan fungsinya oleh transistor yang berukuran sepermiliar meter), prosesor ini pun terlihat besar karena untuk menetralisir panas yang dihasilkan diperlukan komponen tambahan. Akibatnya, prosesor ini hanya tersedia sebentar saja di pasaran. Prosesor ini pun menggunakan tegangan operasi yang sangat besar 5 volt, yang menyebabkannya ia boros daya (hingga 16 Watt), dan juga panas yang berlebih.
Menyadari kelemahan Pentium generasi pertama, Intel pun merevisi Pentium dengan meluncurkan Pentium generasi selanjutnya (yang memiliki nama kode P54C), pada tanggal 7 Maret 1994. Prosesor baru ini diperkenalkan pada frekuensi 90 MHz, 75 MHz, 100 MHz. Selanjutnya dirilis pula seri dengan kecepatan 120 MHz, 133 MHz, 150 MHz, 166 MHz, dan yang tercepat 200 MHz. Berbeda dengan prosesor Pentium Generasi awal, prosesor ini dibangun dengan menggunakan teknologi manufaktur Bipolar CMOS 600 nanometer, mengikuti beberapa saingannya dari Motorola dan IBM. Versi yang lebih baru (120 MHz ke atas) bahkan dibuat dengan menggunakan teknologi manufaktur 350 nanometer, sehingga dapat menampung 3300000 transistor. Dengan menggunakan teknologi manufaktur yang lebih canggih, Pentium pun lebih ramping dan lebih hemat daya (frekuensi 200 MHz hanya memakan 15.5 Watt).
Prosesor ini dipaketkan dengan menggunakan paket Staggered Pin-Grid Array (SPGA) 296-pin yang tentu saja tidak kompatibel dengan prosesor generasi sebelumnya. Satu-satunya cara yang digunakan oleh pengguna untuk melakukan upgrading dari prosesor generasi pertama ke generasi kedua adalah dengan melakukan penggantian motherboard.

Referensi : Organisasi Dan Arsitektur Komputer, Eviana Puspaningrum, Universitas Negeri Malang

SEJARAH PENTIUM INTEL

Pentium adalah generasi kelima dari arsitektur prosesor mikro x86 buatan Intel Corporation, yang desainnya dibuat oleh Vinod Dham. Pentium merupakan penerus dari jajaran prosesor 486, dan mulai dijual ke pasaran pertama kali pada tanggal 22 Maret 1993. Nama asli (kode) Pentium adalah 80586 atau i586, untuk mengikuti penamaan generasi sebelumnya.
Pentium merupakan prosesor pertama dari Intel yang menggunakan arsitektur superskalar, sehingga walaupun Pentium merupakan prosesor yang bersifatCISC, Pentium dapat bekerja seperti layaknya prosesor RISC, meskipun pada saat itu belum ada aplikasi yang mampu mengutilisasinya.
Intel beberapa kali melakukan revisi prosesor Pentium miliknya, yakni dikarenakan ada kesalahan dalam operasi pembagian terhadap bilangan floating pointyang tenar dengan sebutan Floating Point Division Bug. Selain karena kesalahan tersebut, Intel juga pernah merevisi Pentium karena ada masalah pada panas dan penurunan tegangan, serta pengubahan proses manufaktur prosesor.

Referensi : ORGANISASI DAN ARSITEKTUR KOMPUTER, Eviana Puspaningrum, Universitas Negeri Malang

CENTRAL PROCESSING UNIT (CPU)

Bagian ini berfungsi sebagai pemegang kendali dari jalannya kegiatan komputer, dan dikarenakan itu, CPU juga disebut sebagai otak dari komputer. Selain dari pada itu, CPU juga berfungsi sebagai tempat untuk melakukan berbagai pengolahan data. Pekerjaan pengolahan data diantaranya: mencatat, melihat, membaca, membandingkan, menghitung, mengingat, mengurutkan maupun membandingkan.
CPU juga disebut sebagai microprocessor. Dimana untuk bekerja microprocessor dipengaruhi oleh kapasitas pemrosesan Bit-nya dan juga frekwensi kerjanya. Kapasitas bit untuk Microprocessor ada 8 bit, 16 bit, 32 bit dan 64 bit. Kemampuan CPU dilihat dari bit-nya, bila suatu processor berkapasitas pemrosesan 8 bit, dapat diartikan bahwa pemrosesan tersebut memiliki 8 pintu masuk untuk menerima bit-bit instruksi. Dengan demikian, processor 16 bit, dapat memproses kira-kira 2 kali lebih cepat dari yang 8 bit.

Faktor lain yang mempengaruhi kecepatan kerja microprocessor adalah frekwensi kerja komputer. Ada CPU yang mempunyai frekwensi 4.77 Mhz (mega hertz = juta hertz), 8 Mhz, 16 Mhz, 40 Mhz, 50 Mhz dan lain sebagainya. Semakin tinggi frekuensi yang dimilikinya, semakin tinggi pula kecepatan memprosesnya.

Komponen CPU terbagi menjadi beberapa macam, yaitu sebagai berikut.
• Unit kontrol yang mampu mengatur jalannya program. Komponen ini sudah pasti terdapat dalam semua CPU.CPU bertugas mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi-fungsi operasinya. termasuk dalam tanggung jawab unit kontrol adalah mengambil intruksi-intruksi dari memori utama dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU. Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output. Dengan demikian tugas dari unit kendali ini adalah:
o Mengatur dan mengendalikan alat-alat input dan output.
o Mengambil instruksi-instruksi dari memori utama.
o Mengambil data dari memori utama (jika diperlukan) untuk diproses.
o Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU.
o Menyimpan hasil proses ke memori utama.
• Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan/atau instruksi yang sedang diproses. Memori ini bersifat sementara, biasanya di gunakan untuk menyimpan data saat di olah ataupun data untuk pengolahan selanjutnya. Secara analogi, register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika.
• ALU unit yang bertugas untuk melakukan operasi aritmetika dan operasi logika berdasar instruksi yang ditentukan. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmatika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder.
Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan (¹ ), kurang dari (<), kurang atau sama dengan (£ ), lebih besar dari (>), dan lebih besar atau sama dengan (³ ).
• CPU Interconnections adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register-register dan juga dengan bus-bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan /keluaran.

Sumber:
Unit pengolah pusat
http://id.wikipedia.org/wiki/Unit_Pengolah_Pusat
Kosep dasar komputer
http://kuliah.dinus.ac.id/edi-nur/intro1-cad.html

Sabtu, 29 Mei 2010

Algoritma 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. Berikut ini adalah pseudocode sederhana yang menentukan indeks (posisi) dari nilai yang diberikan dalam sebuah list berurut, a berada antara left dan right :
function binarySearch(a, value, left, right)
if right < left
return not found
mid := floor((right-left)/2)+left
if a[mid] = value
return mid
if value < a[mid]
return binarySearch(a, value, left, mid-1)
else
return binarySearch(a, value, mid+1, right)
Karena pemanggilan fungsi di atas adalah rekursif ekor, fungsi tersebut dapat dituliskan sebagai sebuah pengulangan (loop), hasilnya adalah algoritma in-place:
function binarySearch(a, value, left, right)
while left ≤ right
mid := floor((right-left)/2)+left
if a[mid] = value
return mid
if value < a[mid]
right := mid-1
else
left := mid+1
return not found
Pada kedua kasus, algoritma akan berakhir karena paa 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 diimplementasikan dengan rekursi atau iterasi, seperti yang terlihat di atas, walaupun pada kebanyakan bahasa pemrograman akan lebih elegan bila dinyatakan secara rekursif.

Sebuah contoh aksi pencarian biner adalah sebuah permainan tebak-tebakan dimana seorang pemain harus menebak sebuah bilangan bulat positif yang dipilih oleh pemain lain di antara 1 dan N, dengan memanfaatkan jawaban pertanyaan berupa ya dan tidak. Misalnya N adalah 16 dan angka yang dipilih adalah 11, permainan dapat berjalan sebagai berikut.
• Apakah angka lebih besar dari 8? (Ya)
• Apakah angka lebih besar dari 12? (Tidak)
• Apakah angka lebih besar dari 10? (Ya)
• Apakah angkat lebih besar dari 11? (Tidak)
Sehingga, angka tersebut pasti 11. Pada setiap langkah, kita memilih sebuah angka yang tepat berada di tengah-tengah jangkauan nilai-nilai yang mungkin. Sebagai contoh, saat kita mengetahui angka tersebut lebih besar dari 8, tetapi lebih kecil atau sama dengan 12, kita mengetahui untuk memilih angka di tengah-tengah jangkauan [9, 12] (pada kasus ini 10 adalah yang optimal).
Paling banyak ada log2 Npertanyaan yang dibutuhkan untuk mendapatkan angka tersebut, karena setiap pertanyaan menghilangkan setengah dari ruang pencarian. Sebagai catatan bahwa dibutuhkan kurang dari satu pertanyaan (iterasi) untuk algoritma umum, karena angka tersebut dibatasi oleh sebuah jangkauan tertentu.
Walaupun angka yang kita tebak sangat banyak, pada kasus tidak ada batas atas N, kita masih dapat menemukan angka paling banyak dalam 2 [ log2 K] langkah (dimana k adalah angka yang dipilih (yang tidak diketahui)), caranya adalah dengan pertama-tama menemukan sebuah batas atas dengan melipatduakannya. Sebaai contoh, jika angka tersebut adalah 11, kita dapat menggunakan urutan tebakan sebagai berikut untuk menemukannya:
• Apakah angka lebih besar dari 1? (Ya)
• Apakah angka lebih besar dari 2? (Ya)
• Apakah angka lebih besar dari 4? (Ya)
• Apakah angka lebih besar dari 8? (Ya)
• Apakah angka lebih besar dari 16? (Tidak, N=16, lakukan seperti di atas)
(Kita mengetahui angka tersebut lebih besar dari 8)
• Apakah angka lebih besar dari 12? (Tidak)
• Apakah angka lebih besar dari 10? (Ya)
• Apakah angka lebih besar dari 11? (Tidak)
Satu penerapan sederhan, pada sistem kendali revisi, dimungkinkan memanfaatkan sebuah pencarian biner untuk melihat pada revisi mana sebuah cuplikan isi ditambahkan ke sebuah file. Dengan mudah kita lakukan sebuah pencarian biner terhadap seluruh history versi; jika isi tidak ada dalam suatu versi, suatu saat kemudian pasti akan muncul, dan jika ada pasti muncul di versi tersebut atau versi berikutnya. Cara ini lebih cepat dibandingkan dengan memeriksa setiap perbedaan antar versi.

sumber : http://id.wikipedia.org/wiki/Pencarian_biner