Senin, 11 Juni 2012

MAR (Memory Address Register) & MDR (Memory Data Register)


Pernah mengalami pertanyaan ujian tentang apa itu MAR dan MDR? Apa fungsi dan hubungannya?
Berikut kita coba bahas tengtang MAR.
Apa itu MAR?
MAR (Memory Address Register) ataw register penunjuk alamat memori, merupakan register yang menampung alamat data atau instruksi pada main memory yang akan di akses,baik itu yang akan diambil (dibaca) maupun yang akan diletakan (disimpan/ditulis).
Register ini berisi alamat dari data dan dihubungkan pada bus alamat, sehingga dapat menspesifikasikan alamat di dalam memori untuk operasi baca atau simpan/tulis. Alamat dari main memory (tempat data berada), diletakan di MAR dan dikirimkan ke main memory melalui address bus. Selama komputer bekerja, alamat dalam pencacah program ditahan (latched) pada MAR. Setelah itu MAR akan mengirimkan alamat ke dalam RAM dan operasi membaca dilaksanakan.

Apakah fungsi dari MAR?
MAR berfungsi sebagai komponen yang diperintahkan oleh IR dan Control Unit untuk mencari dan menampung alamat data serta instruksi dalam sebuah Main Memory.

Sebutkan spesifikasi dari MAR?
1.      Memuat alamat dari lokasi memori yang akan diakses (baca/tulis)
2.      Jumlah bit MAR menentukan jumlah maksimum dari memori fisik yang dapat dipasang dalam suatu komputer.
3.      Jika MAR terdiri dari n bit berarti alamat memori yang valid adalah 0 hingga 2n – 1

Bagaimana cara meningkatkan kinerja MAR?
Dengan memperbesar kapasitas memory. Namun tidak secara langsung akan berpengaruh pada kinerja MAR. Dengan kapasitas memory bertambah besar, maka ada dua hal yang terjadi:
1.      Peningkatan jumlah bit alamat dari data atau instruksi di dalam MAR
2.      Pelebaran alamat dari instruksi
Dengan demikian, ketika memory di perbesar maka MAR akan lebih leluasa memanfaatkan kapasitas dari memory yang telah di upgrade tadi. Sehingga akan banyak alamat memory yang bisa dialamati dan banyak data atau instruksi yang bisa diakses.

Gambarkan hubungan MAR dengan MDR?

Apa itu MDR?
MDR (Memory Address Register) ataw juga bisa di sebut MBR (Memory Buffer Register) adalah memori untuk menampung data/instruksi hasil pengiriman dari memori utama/menampung data yang akan direkam kememori utama hasil pengolahan CPU.
MBR berperan dalam proses pengaksesan memori yaitu dalam proses read/write dari atau ke memori.

Bagaimana proses Read MDR atau MBR dari memori?
1.      Taruh alamat memori yang akan dibaca (dalam unsigned(range 0 hingga 2n binary) ke MAR 2 – 1).
2.      Kirim READ signal melalui READ control line.
3.      Decode isi MAR sehingga diperoleh nilai x dan y (nilai MAR tidak berubah).
4.      Taruh isi alamat yang ditunjuk ke dalam MBR.

Bagaimana proses Write MDR atau MBR ke Memori?
1.      Taruh alamat memori yang akan ditulisi (dalam unsigned binary) ke MAR (range 0 hingga 2n – 1).
2.      Taruh data yang akan ditulis ke MBR.
3.      Kirim signal WRITE melalui WRITE control line.
4.      Decode isi MAR sehingga diperoleh nilai x dan y (nilai MAR tidak berubah).
5.      Copy-kan isi MBR ke memori (isi MBR tidak berubah).

Proses aliran data pada siklus pengambilannya!

1.      Pada saat siklus pengambilan (fetch cycle), instruksi dibaca dari memori.
2.      PC berisi alamat instruksi berikutnya yang akan diambil.
3.      Alamat ini akan dipindahkan ke MAR dan ditaruh di bus alamat.
4.      Unit kontrol meminta pembacaan memori dan hasilnya disimpan di bus data dan disalin ke MBR dan kemudian dipindahkan ke IR.
5.      PC naik nilainya 1, sebagai persiapan untuk pengambilan selanjutnya.
6.      Siklus selesai, unit kontrol memeriksa isi IR untuk menentukan apakah IR berisi operand specifier yang menggunakan pengalamatan tak langsung.

Proses aliran data pada siklus tak langsung!

1.      N bit paling kanan pada MBR, yang berisi referensi alamat, dipindahkan ke MAR.
2.      Unit kontrol meminta pembacaan memori, agar mendapatkan alamat operand yang diinginkan ke dalam MBR.
3.      Siklus pengambilan dan siklus tak langsung cukup sederhana dan dapat diramalkan.
4.      Siklus instruksi (instruction cycle) mengambil banyak bentuk karena bentuk bergantung pada bermacam-macam instruksi mesin yang terdapat di dalam IR.
5.      Siklus meliputi pemindahan data di antara register-register, pembacaan atau penulisan dari memori atau I/O, dan atau penggunaan ALU.

Proses aliran data pada siklus interupsi!

1.      Isi PC saat itu harus disimpan sehingga CPU dapat melanjutkan aktivitas normal setelah terjadinya interrupt.
2.      Cara : Isi PC dipindahkan ke MBR untuk kemudian dituliskan ke dalam memori.
3.      Lokasi memori khusus yang dicadangkan untuk keperluan ini dimuatkan ke MAR dari unit kontrol.
4.      Lokasi ini berupa stack pointer.
5.      PC dimuatkan dengan alamat rutin interrupt.
6.      Akibatnya, siklus instruksi berikutnya akan mulai mengambil instruksi yang sesuai.

Selasa, 05 Juni 2012

RAID

Raid adalah singkatan dari Redundant Array of the Inexpensive Disk, pada awalnya Raid digunakan untuk Sistem Komputer guna melakukan proses mirroring dan striping. Mode striping ini biasanya dikenal dengan sebutan Raid 0, tujuannya menggabung dua buah hard disk sehingga dikenali operating sistem sebagai satu drive yang merupakan penjumlahan 2 kapasitas dari dua hard disk yang di set untuk Raid 0, membawa keuntungan untuk mempercepat proses Read dan write dibanding single hard disk dengan spesifikasi yang sama. pada Miroring atau Raid 1 berguna untuk mengutamakan security pada enterprise user bahkan data sensitif user daripada peforma, namun kecepatan Read meningkat karena dapat membaca data yang sama secara bersamaan, raid 1 ini membutuhkan minimmal dua buah hard disk.
Pada saat di mana PC belum secanggih sekarang, untuk dapat melakukan raid Anda masih perlu card pci tambahan, karena chipset motherboard jaman dahulu tidak mendukung fungsi raid, jadi untuk dapat menikmati teknologi Raid jaman dahulu, selain membutuhkan 2 HDD, Anda juga harus membeli PCI card (total budget yang harus dikeluarkan jadi lebih mahal) . Namun sekarang anda tidak perlu khawatir karena chipset sudah semakin maju pesat sehingga fungsi Raid pun dapat dimasukan pada single chipset I/O. bahkan Anda sudah dapat menikmati teknologi raid ini pada Notebook. Notebook Workstation dan gaming based umumnya mendukung teknologi Raid karena sesuai dengan kebutuhannya akan high performance.

                     Raid 1
Saat ini Teknologi Raid banyak sekali digunakan oleh PC Enthusiast dan workstation dalam meningkatkan Performance Rig nya. Hal ini wajar saja, karena komponen PC sudah semakin maju dan canggih, namun komponen terlambat pada sebuah PC adalah hard disk atau sering disebut paling bottleneck, walaupun Anda menggunakan 10.000 rpm HDD tetap saja tidak dapat mengimbangi kecepatan komunikasi chipset dengan memory utama. Walaupun begitu, storage sudah dibuat sedemikian rupa ke arah Flash based yang sekarang disebut solid state disk (SSD) yang memiliki kecepatan jauh melebihi mekanik dari kepingan HDD. Terlebih lagi jika SSD yang sudah Flash based ini buat dalam bentuk Raid 0 tentunya akan semakin cepat. untuk mengetahui lebih jelasnya Anda dapat melanjutkan Artikel ini dengan Video Review kami tentang Raid dan komparasi HDD vs SSD dua-dua nya pada raid 0.


Konsep Raid
Konsep-konsep dalam teknik RAID merupakan teknik dasar untuk membentuk pemrosesan RAID itu sendiri. Beberapa konsep yang akan dijabarkan di sini digunakan. Namun seluruh konsep ini tidak selalu digunakan pada tiap tingkatan RAID tertentu. Tapi, ada juga yang menggunakan lebih dari satu konsep, karena setiap tingkatan pada RAID menggunakan teknik pemrosesan yang berbeda-beda.
1. Striping
Dalam konsep striping, data akan dibagi menjadi dua bagian atau lebih, yang kemudian hasil pembagian data akan ditulis/dibaca pada masing-masing hardisk secara pararel. Dengan adanya pembagian data tersebut, maka akan meningkatkan aliran input dan output data sehingga performa data transfer meningkat pesat.
2. Mirroring
Pada konsep mirrorin,seluruh data pada sebuah hardisk dapat diduplikatkan ke beberapa hardisk lainnya secara real time.
3. Duplexing
Mirip dengan konsep mirroring, duplexing merupakan pengembangan dari konsep mirroring. Pada duplexing tidak hanya hardisk saja yang bias dibuat duplikatnya, namun juga dapat mereplikasi RAID controller yang mengontrol masing-masing hardisk.
4. Humming Code ECC
Humming Code ECC berguna untuk mengoreksi berbagai kesalahan pada data.
5. Parity
Parity adalah alternative lain dari konsep mirroring taupun duplexing. Walau kegunaannya sama-sama untuk penyelamatan data, namun konsep parity lebih maju daripada mirroring,

Manfaat Raid
Manfaat penggunaan RAID memang beragam, tergantung dari penggunaan tingkatan RAID yang akan digunakan baik untuk konfigurasi RAID tunggal maupun konfigurasi gabungan.
1.      Keamanan Data Tingkat Tinggi
Dengan menggunakan teknik redundansi, sebagian besar tingkatan level RAID akan memberikan perlindungan pada data yang tersimpan di dalam penyimpan informasi beberapa perangkat lain/array.
2.  Toleransi Kesalahan
Pada fault tolerance, implementasi teknik RAID yang mencakup redundansi data dapat memberikan keandalan subsistem penyimpanan secara keseluruhan, yang jauh lebih baik daripada yang dapat dicapai oleh sebuah hardisk.
3. Peningkatan Ketersediaan
Ketersediaan akses data yang dapat diberikan pada teknik RAID itu sendiri, karena mungkin terjadi beberapa kesalahan yang mengakibatkan akses data menjadi lambat sehingga loading data menjadi lama.
4.  Peningkatan Kapasitas yang terintegrasi
Dengan dikonfigurasikannya teknik RAID pada beberapa hardisk yang akan kita gunakan.
5.  Perbaikan Kinerja
Melalui teknik RAID, perbaikan kinerja hardisk dapat dicapai

Raid Levels

1. RAID O.
Arti : Keseluruhan harddisk yang dimiliki akan berfungsi sebagai tempat penyimpanan data. dengan kata lain data yang kita simpan kedalam harddisk akan di stripping keseluruh harddisk anggota dari RAID 0 tersebut.
Contoh : 4 Harddisk SCSI berkapasistas 72GB per Disk di configure dengan RAID 0 maka total harddisk yang dapat dijadikan penyimpanan data adalah keseluruhannya ( 4 x 72 GB)
Kelebihan : Dengan RAID 0, kapasistas harddisk yang dimiliki untuk penyimpanan data adalah total dari keseluruhan harddisk yang dimiliki, tanpa ada pengurangan
Kekurangan : Jika salah satu harddisk fails dalam RAID 0, maka data akan hilang tanpa ada penggantinya.

2. RAID 1
Arti : Harddisk dalam RAID 1 dapat diartikan sebagai mirroring, karena setengah dari jumlah Harddisk yang diposisikan sebagai RAID 1 digunakan sebagai mirror. Dengan kata lain bahwa hanya setengah dari kapasitas Harddisk keseluruhan yang dapat digunakan sebagai penyimpanan data, setengah lagi hanya berfungsi sebagai mirror
Contoh : 4 Harddisk SCSI berkapasitas 72GB di configure dengan RAID 1, maka hanya 2 Harddisk (2 x 72 GB) yang dapat digunakan sebagai penyimpanan data, dan 2 harddisk lagi (2 x 72GB) lagi digunakan sebagai Mirror dari data tersebut.
Kelebihan : Jika salah satu Harddisk yang berfungsi sebagai penyimpanan data fails/bermasalah, maka harddisk mirror akan secara otomatis menggantikan fungsinya sampai harddisk yang fails tersebut di ganti dengan yang baru, tanpa penurunan performance dari keseluruhan harddisk.
Kekurangan : RAID 1 bisa dikatakan MAHAL, karena hanya setengah dari jumlah harddisk yang dimiliki yang dapat dijadikan tempat penyimpanan data.

3. RAID 1+0

Arti : Harddisk yang di configure dalam RAID 1+0 bisa dikatakan di striping dan di mirror, dengan kata lain data yang kita simpan dalam harddisk akan di stripping ke anggota dari RAID 1+0 tersebut dan juga setengah dari jumlah harddisk yang ada akan di mirror.
Contoh : 4 harddisk SCSI berkapasitas 72GB di configure dengan RAID 1+0 maka kapasitas yang dapat di gunakan untuk penyimpanan data adalah 2 x 72 GB dan data yang disimpan akan di stripping atau dibagikan diantara kedua harddisk tersebut. sisa 2 harddisk lagi berdungsi sebagai mirror.
Kelebihan : bisa dikatakan sama dengan RAID 1 hanya performance dari baca tulis harddisk meningkat dibanding RAID 1
Kekurangan : MAHAL juga seperti RAID 1

4. RAID level 2

 Merupakan pengorganisasian dengan error correction code (ECC). Seperti pada memory dimana pendeteksian mengalami error mengunakan paritas bit.
 Sebagai contoh, misalnya misalnya setiap byte data, memiliki paritas bit yang bersesuaian yang mempresentasikan jumlah bit "1" didalm byte data tersebut dimana paritas bit = 0 jika bit genap atau paritas bit = 1 jika bit ganjil. Jadi, jika salah satu bit pada salah satu data berubah dan tidak sesuai dengan paritas bit yang tersimpan. Dengan demikian, apabila terjadi kegagalan pada salah satu disk, data dapat dibentuk kembali dengan membaca error correction bit pada disk lain. Kelebihannya antara lain kehandalan yang bagus karena dapat membentuk kembali data yang rusak dengan ECC tadi, dan jumlah bit redundancy yang diperlukan lebih sedikit jika dibandingkan dengan level 1 (mirroring).
 Kelemahannya antara lain prlu adanya perhitungan paritas bit, sehingga menulis atau perubahan data memerlukan waktu yang lebih lama dibandingkan dengan yang tanpa menggunakan paritas bit, level ini memerlukan disk khusus untuk penerapannya yang harganya cukup mahal.

5.  RAID level 3.

 Merupakan pengorganisasian dengan paritas bit yang interleaved. Pengorganisasian ini hamper sama dengan RAID level 2, perbedaanya adalah pada level 3 ini hanya memerlukan sebuah disk redudan, berapapun kumpulan disknya, hal ini dapt dilakukan karena disk controller dapat memeriksa apakah sebuah sector itu dibaca dengan benar atau tidak (mengalami kerusakan atau tidak). Jadi tidak menggunakan ECC, melainkan hanya membutuhakan sebuah bit paritas untuk sekumpulan bit yang mempuntai sekumpulan bit yang mempunyai posisi yang sama pada setiap dis yang berisi data. Selain itu juga menggunakan data striping dan mengakses disk-disk secara parallel.
Kelebihannya antara lain kehandalan (rehabilitas) bagus, akses data lebih cepat karena pembacaan tiap bit dilakukan pada beberapa disk (parlel), hanya butuh 1 disk redudan yang tentunya lebih menguntungkan dengan level 1 dan 2.
kelemahannya antara lain perlu adanya perhitungan dan penulisan parity bit akibatnya performannya lebih rendah dibandingkan yang menggunakan paritas.

6.  RAID level 4.

Merupakan pengorganisasian dengan paritas blok interleaved, yaitu mengunakan striping data pada level blok, menyimpan sebuah parits blok pada sebuah disk yang terpisah untuk setiap blok data pada disk-disk lain yang bersesuaian. Jka sebuah disk gagal. Blok paritas tersebut dapat digunakan untuk membentuk kembali blok-blok data pada disk yang bisa lebih cepat karena bisa parlel dan kehandalannya juga bagus karena adanya paritas blok. Kelemahannya antara lain akses perblok seperti biasa penggunaan 1 disk., bahkan untuk penulisan ke 1 blok memerlukan 4 pengaksesan untuk membaca ke disk data yag bersangkutan dan paritas disk, dan 2 lagi untuk penulisan ke 2 disk itu pula (read-modify-read)

7. RAID 5

Arti : Dalam RAID 5 ada pembatasan minimal harddisk yang digunakan, yaitu 4 harddisk, kenapa ? karena dalam sistem RAID 5 ada pembagian data dan parity.
Contoh : 4 harddisk berkapasitas 72GB akan di configure dengan RAID 5, maka 3 x 72 GB akan berfungsi sebagai penyimpanan data dan 1 x 72 GB menjadi parity.
Kelebihan : Jika salah satu dari harddisk tersebut fails, fungsi harddisk masih berfungsi.
Kekurangan : performance akan menurun jika harddisk fails.

8. RAID 6

Arti : Dalam RAID 6 juga ada pembatasan minimal harddisk yaitu 5 harddisk. 3 diantaranya akan di jadikan data dan 2 lagi sebagai parity.
Contoh : 5 harddisk berkapasitas 72GB akan di configure sebagai RAID 6, maka 3 x 72 GB akan berfungsi sebagai penyimpanan data dan 2 x 72GB menjadi parity.
Kelebihan : dalam RAID 6 maksimal harddisk fails dalam waktu yang bersamaan adalah 2 harddisk. jadi jika 2 harddisk didalam RAID 6 fails, fungsi harddisk masih berjalan.
Kekurangan : performance akan menurun jika ada harddisk fails.
Sebenarnya masih ada beberapa level raid yang lain namun yang wajib diketahui hanya ada 8 raid.

Bagi yang ingin tau bagaimanakah tekhnologi Raid bekerja silahkan liat link video dibawah ini:
 http://www.youtube.com/watch?feature=player_embedded&v=bW4Wz6C3B_8

Sekian untuk penjelasan tentang Raid dari yang saya ketahui mudah-mudahan bermanfaat buat teman-teman blogger dan untuk teman-teman yang mau menambahkan tentang Raid ditunggu koreksinya......

Senin, 14 Mei 2012

Macam - Macam Kabel Internal Memory

1.SATA Cable



Serial ATA ini dirancang untuk menggantikan yang lama ATA (AT Attachment) standar (juga dikenal sebagai EIDE). Hal ini dapat menggunakan perintah tingkat rendah yang sama, namun serial ATA host-adapter dan perangkat berkomunikasi melalui kecepatan tinggi kabel serial lebih dari dua pasang konduktor. Sebaliknya, paralel ATA (yang redesignation untuk warisan spesifikasi ATA) yang digunakan 16 data konduktor masing-masing beroperasi pada kecepatan yang jauh lebih rendah.

SATA memilki beberapa keunggulan dibandingkan yang lebih dibanding paralel ATA (PATA) yaitu mengurangi kabel-massal dan biaya (dikurangi dari 80 kabel ke tujuh), lebih cepat dan lebih efisien transfer data, dan hot swapping.

Seperti tahun 2009, SATA telah menggantikan sebagian besar paralel ATA di semua konsumen pengiriman PC. PATA tetap dalam industri dan aplikasi tertanam tergantung pada penyimpanan CompactFlash meskipun standar penyimpanan CFast baru akan didasarkan pada SATA.

2. PATA CABLE



Parallel ATA (PATA) adalah sebuah penyambung perangkat penyimpanan seperti hard disk, solid-state drive, floppy drive, dan CD-ROM drive kedalam komputer. Standar dikelola oleh komite X3/INCITS [1]. Menggunakan AT Attachment yang mendasari dan AT Attachment Packet Interface (ATA / ATAPI) standar.

Parallel ATA hanya memungkinkan panjang kabel hingga 18 di (457 mm). Karena batas panjang sebagai komputer internal storage interface. Pada awal tahun 2007, hal itu sebagian besar telah digantikan oleh Serial ATA (SATA) dalam sistem baru.

3.Floppy Drive Data Cable



Kabel data ini merupakan kabel data hanya untuk Floppy drive. Kabel ini memiliki 34 pin. Dari segi fisik, kabelnya mirip dengan kabel PATA, bedanya pada umumnya kabel data floppy drive terdapat bagian yang disobek.

Minggu, 12 Februari 2012

SEARCHING


SEARCHING


Dalam kehidupan sehari-hari sebenarnya kita sering melakukan pencarian data.
Sebagai contoh, jika kita menggunakan Kamus untuk mencari kata-kata dalam Bahasa
Inggris yang belum diketahui terjemahannya dalam Bahasa Indonesia. Contoh lain saat
kita menggunakan buku telepon untuk mencari nomor telepon teman atau kenalan dan
masih banyak contoh yang lain.
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.
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 pengingat komputer sedangakan
pada pencarian eksternal, tidak semua rekaman yang diketahui berada dalam pengingat
komputer, tetapi ada sejumlah rekaman yang tersimpan dalam penyimpan luar misalnya
pita atau cakram magnetis. Selain itu metode pencarian data juga dapat dikelompokka menjadi pencarian
statis (static searching) dan pencarian dinamis (dynamic searching). Pada pencarian
statis, banyaknya rekaman yang diketahui dianggap tetap, pada pencarian dinamis,
banyaknya rekaman yang diketahui bisa berubah-ubah yang disebabkan oleh
penambahan atau penghapusan suatu rekaman.
Ada dua macam teknik pencarian yaitu pencarian sekuensial dan pencarian biner.
Perbedaan dari dua teknik ini terletak pada keadaan data. Pencarian sekuensial
digunakan apabila data dalam keadaan acak atau tidak terurut. Sebaliknya, pencarian
biner digunakan pada data yang sudah dalam keadaan urut.

Dalam ilmu komputer, sebuah algoritma pencarian dijelaskan secara luas adalah sebuah algoritma yang menerima masukan berupa sebuah masalah dan menghasilkan sebuah solusi untuk masalah tersebut, yang biasanya didapat dari evaluasi beberapa kemungkinan solusi.
w  Sebagian besar algoritma yang dipelajari oleh ilmuwan komputer adalah algoritma pencarian.
w  Himpunan semua kemungkinan solusi dari sebuah masalah disebut ruang pencarian.
Metode pencarian data dalam suatu array, baik pada array yang sudah berurut maupuin yang belum terurut dan metode pencarian yang akan digunakan adalah :
1.    Sequential search
2.    Binary search
3.    Tree search

1.    SEQUENTIAL SEARCH
Pencarian berurutan sering disebut pencarian linear merupakan metode pencarian
yang paling sederhana. Pencarian berurutan menggunakan prinsip sebagai berikut :
data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari sampai data
tersebut ditemukan atau tidak ditemukan.
Pada dasarnya, pencarian ini hanya melakukan pengulangan dari 1 sampai
dengan jumlah data. Pada setiap pengulangan, dibandingkan data ke-i dengan yang
dicari. Apabila sama, berarti data telah ditemukan. Sebaliknya apabila sampai akhir
pengulangan tidak ada data yang sama, berarti data tidak ada. Pada kasus yang paling
buruk, untuk N elemen data harus dilakukan pencarian sebanyak N kali pula.
Algoritma pencarian berurutan dapat dituliskan sebagai berikut :
1.     i 0
2.     ketemu false
3.     Selama (tidak ketemu) dan (i <= N) kerjakan baris 4
4.    Jika (Data[i] = x) maka ketemu true, jika tidak i i + 1
5.     Jika (ketemu) maka i adalah indeks dari data yang dicari, jika tidak data tidak
ditemukan
Di bawah ini merupakan fungsi untuk mencari data menggunakan pencarian
sekuensial.
int SequentialSearch(int x)
{
int i = 0;
bool ketemu = false;
while ((!ketemu) && (i < Max)){
if(Data[i] == x)
ketemu = true;
else
i++;
}
if(ketemu)
return i;
else
return -1;
}
Fungsi diatas akan mengembalikan indeks dari data yang dicari. Apabila data
tidak ditemukan maka fungsi diatas akan mengembalikan nilai –1.


2.    BINARY SEARCH
Yaitu memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang sangatbesarukurannya.
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 table harus sudah terurut, misalkan terurut menaik.
Salah satu syarat agar pencarian biner dapat dilakukan adalah data sudah dalam
keadaan urut. Dengan kata lain, apabila data belum dalam keadaan urut, pencarian biner
tidak dapat dilakukan. Dalam kehidupan sehari-hari, sebenarnya kita juga sering
menggunakan pencarian biner. Misalnya saat ingin mencari suatu kata dalam kamus
Prinsip dari pencarian biner dapat dijelaskan sebagai berikut : mula-mula diambil
posisi awal 0 dan posisi akhir = N - 1, kemudian dicari posisi data tengah dengan rumus
(posisi awal + posisi akhir) / 2. Kemudian data yang dicari dibandingkan dengan data
tengah. Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama
dengan posisi tengah –1. Jika lebih besar, porses dilakukan kembali tetapi posisi awal
dianggap sama dengan posisi tengah + 1. Demikian seterusnya sampai data tengah
sama dengan yang dicari.
Untuk lebih jelasnya perhatikan contoh berikut. Misalnya ingin mencari data 17
35
 
31
 
23
 
20
 
17
 
15
 
12
 
11
 
9
 
3

 
pada sekumpulan data berikut :
3 9 11 12 15 17 20 23 31 35
Awal                                 tengah                                        akhir
Mula-mula dicari data tengah, dengan rumus (0 + 9) / 2 = 4. Berarti data tengah
adalah data ke-4, yaitu 15. Data yang dicari, yaitu 17, dibandingkan dengan data tengah
ini. Karena 17 > 15, berarti proses dilanjutkan tetapi kali ini posisi awal dianggap sama
35
 
31
 
23
 
20
 
17
 
15
 
12
 
11
 
9
 
3
 
dengan posisi tengah + 1 atau 5.
                                                                                                            
                                                   Awal           tengah           akhir

Data tengah yang baru didapat dengan rumus (5 + 9) / 2 = 7. Berarti data tengah
yang baru adalah data ke-7, yaitu 23. Data yang dicari yaitu 17 dibandingkan dengan
data tenah ini. Karena 17 < 23, berarti proses dilanjukkan tetapi kali ini posisi akhir
35
 
31
 
23
 
20
 
17
 
15
 
12
 
11
 
9
 
3
 
dianggap sama dengan posisi tengah – 1 atau 6.
                                             a
                                             awal = tengah akhir
Data tengah yang baru didapat dengan rumus (5 + 6) / 2 = 5. Berarti data tengah
yang baru adalah data ke-5, yaitu 17. data yang dicari dibandingkan dengan data tengah
ini dan ternyata sama. Jadi data ditemukan pada indeks ke-5.
Pencarian biner ini akan berakhir jika data ditemukan atau posisi awal lebih besar
daripada posisi akhir. Jika posisi sudah lebih besar daripada posisi akhir berarti data
tidak ditemukan.
Untuk lebih jelasnya perhatikan contoh pencarian data 16 pada data diatas.
Prosesnya hampir sama dengan pencarian data 17. Tetapi setelah posisi awal 5 dan
posisi akhir 6, data tidak ditemukan dan 16 < 17, maka posisi akhir menjadi posisi tengah
35
 
31
 
23
 
20
 
17
 
15
 
12
 
11
 
9
 
3
 
– 1 atau = 4 sedangkan posisi awal = 5.
                                                                                                                       
                                             Awal     akhir
Disini dapat dilihat bahwa posisi awal lebih besar daripada posisi akhir, yang
artinya data tidak ditemukan.
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
6.    6 Jika (Data[m] = x) maka ketemu true
7.    7 Jika (x < Data[m]) maka R m – 1
8.    8 Jika (x > Data[m]) maka L m + 1
9.    9 Jika (ketemu) maka m adalah indeks dari data yang dicari, jika tidak data tidak
10.  ditemukan
int BinarySearch(int x)
{
int L = 0, R = Max-1, m;
bool ketemu = false;
while((L <= R) && (!ketemu))
{
m = (L + R) / 2;
if(Data[m] == x)
ketemu = true;
else if (x < data[m])
R = m - 1;
else
L = m + 1;
}
if(ketemu)
return m;
else
return -1


3.    TREE SEARCH 
Tree Search atau algoritma pencarian pohon adalah jantung dari teknik-teknik pencarian,  algoritma tersebut mencari node dari pohon, terlepas apakah pohon tersebut eksplisit atau implisit  ( dibangkitkan saat pengerjaan ). Prinsip dasarnya adalah sebuah node diambil dari sebuah struktur data, suksesornya diperiksa dan ditambahkan pada struktur data.Dengan memanipulas struktur data, pohondieksplorasidalamurutan yang berbeda-beda, dieksplore dari satu tingkat ketingkat berikutnya ( pencarian Breadth-first )  atau mengunjungi node pucuk terlebih dahulu kemudian lacak balik / backtracking ( pencarian Depth-first ).
Contoh lain dari pencarian pohon antara lain pencarian iteraktive deepening depth== Pencarian uninformed ==
Sebuah algoritma pencarian uninformed adalah algoritma yang tidak mempertimbangkan sifat alami dari permasalahan. Oleh Karena itu algoritma tersebut dapat diimplementasikan secara umum, sehingga dengan implementasi yang  sama dapat digunakan pada lingkup permasalahan yang luas, hal ini berkata bstraksi. Kekurangannya adalah sebagian besar ruang pencarian adalah sangat besar, dan sebuah pencarian uninformed ( khususnya untuk pohon ) membutuhkan banyak waktu walaupun hanya untuk contoh yang kecil. Sehingga untuk mempercepat proses, kadang-kadang hanya pencarian informed yang dapat melakukannya.