Dalam ilmu komputer, pencarian linear adalah sebuah algoritme pencarian, juga dikenal sebagai pencarian sekuensial, yang cocok untuk mencari sebuah nilai tertentu pada sebuah himpunan data.

Algoritma ini beroperasi dengan memeriksa setiap elemen dari sebuah list sampai sebuah kecocokan ditemukan. Pencarian linear bekerja dalam O(n). Jika data terdistribusi secara acak, rata-rata ada n/2 pembandingan akan dilakukan. Kasus terbaik adalah ketika nilai yang dicari adalah elemen pertama dari list, kasus ini hanya memerlukan 1 pembandingan. Kasus terburuk adalah ketika nilai yang dicari tidak ada dalam list, yang memerlukan n pembadingan.

Modul List pada pustaka standard OCaml mendefinisikan sebuah fungsi "mem" yang mengembalikan nilai true jika elemen yang diberikan berada dalam list atau false jika tidak. Fungsi ini dinyatakan sebagai berikut:

let rec mem x = function
    [] -> false
  | h:: t -> h=x || mem x t

Pencarian linear dapat diimplementasikan secara matematika dengan pencocokan pola:

Mem[x_, {___, x_, ___}]:= True
Mem[_, _]:= False

Pencarian linear dapat digunakan untuk mencari sebuah list tak berurut. Pencarian biner adalah pencarian yang lebih efisien yang dapat digunakan untuk mencari sebuah list berurut.

Jika diperlukan beberapa kali pencarian, disarankan untuk menggunakan struktur data yang lebih efisien. Satu pendekatan adalah dengan mengurutkan terlebih dahulu kemudian gunakan pencarian biner untuk setiap pencarian. Cara lain yang lazim adalah membuat sebuah tabel hash dan dilakukan pencariaan hash.

Referensi

sunting
  • Donald Knuth. The Art of Computer Programming, Volume 3: Sorting and Searching, Third Edition. Addison-Wesley, 1997. ISBN 0-201-89685-0. Section 6.1: Sequential Searching, pp. 396–408.

📚 Artikel Terkait di Wikipedia

HashMicro

HashMicro adalah perusahaan perangkat lunak enterprise multinasional yang populer di Asia Pasifik, dengan spesialisasi pada sistem Enterprise Resource

Struktur data

ISBN 978-0-7645-7490-0. "1.5 Applications of a Hash Table". University of Regina - CS210 Lab: Hash Table. Diarsipkan dari asli tanggal 2020-03-25. Diakses

Lusiana Lu

besarnya nama HashMicro, saat ini Lusiana memilih untuk terjun dan memimpin secara langsung pengembangan sistem dan manajemen bisnis di HashMicro. Melalui

Java

komentar. */ package fibsandlies; import java.util.Map; import java.util.HashMap; /** * Ini adalah contoh komentar Javadoc; Javadoc dapat mengkompilasi

VirusTotal

sedang berjalan di sistem operasi. VirusTotal menyimpan nama dan berbagai hash untuk setiap berkas yang dianalisis. Berkas yang telah dianalisis dapat diidentifikasi

Bcrypt

bahkan dengan meningkatnya daya komputasi. Fungsi bcrypt merupakan algoritma hash password dasar untuk OpenBSD dan sistem lain termasuk beberapa distribusi

Rufus (perangkat lunak)

untuk membaca hash MD5, SHA-1 dan SHA-256 dari program terkini. Aplikasi portabel "Rufus source code". GitHub. Diakses tanggal 2016-07-17. "List of languages

Larik

data koleksi lainnya seperti senarai berantai, tumpukan, antrean, dan tabel hash. Kelebihan larik: Pengaksesan seketika: Pengaksesan unsur berdasarkan indeks