1. Pencarian Berurutan (Sequential Searching)
Pencarian Berurutan (Sequential Searching) merupakan metode yang paling mudah, tetapi juga paling tidak efisien. Metode ini berjalan lebih lambat dibandingkan metode-metode lainnya, tetapi metode ini merupakan metode yang paling mungkin diterapkan pada larik yang belum terurutkan.
Algoritma (pseudocode)

Program
bool ketemu;
i=0;
ketemu=0;
while(i<10 || !ketemu)
{
if (cari==larik[i])
{
ketemu=1;
posisi=i;
}
i++;
}
2. Pencarian pada Larik Terurut
Proses pencarian dilakukan dengan membandingkan elemen pertama, jika larik terurut naik (ascending), maka pencarian akan diterukan sepanjang data yang dicari masih lebih kecil dari elemen yang ada pada larik. Jika elemen larik sudah lebih besar maka pencarian bisa dihentikan, karena pasti data yang dicari tidak ada.
Algoritma (pseudocode)

Program
bool ketemu;
i=0;
ketemu=0;
do
{
if (cari==larik[i])
{
ketemu=1;
posisi=i;
}
i++;
}while((i<10) || (!ketemu) || (cari<larik[i]));
3. Pencarian Biner
Metode pencarian biner hanya dapat digunakan pada larik yang sudah terurut. Cara kerja metode pencarian binner sebagai berikut:
| 1 | 5 | 6 | 10 | 11 | 12 | 32 | 34 | 56 | 99 |
|---|---|---|----|----|----|----|----|----|----|
Misalkan kita akan mencari posisi dari 56. Pertama larik diatas kita bagi menjadi 2 sub larik yaitu:
| 1 | 5 | 6 | 10 | 11 | | 12 | 32 | 34 | 56 | 99 |
|-------------|---|---|----|----|---|-------------|----|----|----|----|
| Sub larik 1 | | | | | | Sub larik 2 | | | | |
Kemudian jika data 56 dibandingkan dengan elemen terakhir pada sub larik 1 (yang bernilai 11). Jika data tersebut (56) lebih kecil dari elemen terakhir pada sub larik 1 (11), maka data akan dicari di sublarik 1. Ternyata tidak, maka data akan dicari di sub larik 2 dan sub larik 1 tidak perlu dihiraukan lagi. Proses diatas diulang lagi yaitu sub larik 2 dibagi dua lagi, sehingga menghasilkan sub larik sbb:
| 12 | 32 | 34 | | 56 | 99 |
|---------------|----|----|---|---------------|----|
| Sub larik 2.1 | | | | sub larik 2.2 | |
Kita bandingkan data (56) dengan elemen terakhir sub larik 2.1 (yaitu 34). Ternyata data 56 Lebih besar dari elemen terakhir sub larik 2.1 (34), maka data yang akan dicari ada disub larik 2.2. Terakhir sub larik 2.2 perlu dipecah lagi hasilnya sbb:

Demikian dengan 4 interasi kita sudah dapat menemukan data yang kita cari.
Algoritma (pseudocode)

Program
bool ketemu;
int atas, tengah, bawah;
ketemu=0; bawah=0; atas=10;
while((bawah<atas) || !ketemu)
{
tengah=(atas+bawah)/2;
if(cari < larik[tengah])
atas=tengah-1;
else if (cari > larik[tengah])
bawah=tengah+1;
else if (cari == larik[tengah])
{
ketemu=1;
posisi=tengah;
bawah=atas+1;
}
}
Sumber
Mata kuliah Struktur Data. STMIK EL Rahma Yogyakarta.
Disusun oleh Eko Riswanto