2. Time complexity : berapa lama waktu yang diperlukan, 3. Space complexity : berapa banyak memori yang diperlukan,
4. Optimality : apakah metode tersebut menjamin menemukan solusi yang terbaik jika terdapat beberapa solusi berbeda.
2.3 Algoritma Pencarian Linear
Algoritma Pencarian Linear Linear Search adalah algoritma yang digunakan untuk mencari nilai pada sebuah array atau daftar nilai dengan cara memeriksa satu per satu
[9]. Linear Search atau yang juga dikenal sebagai Sequential Search Pencarian Beruntun bekerja dengan memeriksa setiap elemen dari sebuah list sampai sebuah
kecocokan ditemukan. Pencarian Linear tidak membutuhkan pengurutan data terlebih dahulu.
Kelebihan dari algoritma Linear Search antara lain: 1.
2. Algoritma pencarian sekuensial ini cocok untuk pencarian nilai tertentu pada
sekumpulan data terurut maupun tidak.
3. Keunggulan algoritma ini adalah dalam mencari sebuah nilai dari sekumpulan
kecil data. Termasuk algoritma yang sederhana dan cepat karena tidak memerlukan
proses persiapan data misalnya: pengurutan.
Sedangkan kelemahan algoritma Linear Search adalah bahwa dalam kasus terburuk nilai tidak ditemukan, pembandingan nilai dilakukan sebanyak jumlah data
dalam kumpulan nilai. Dengan demikian, proses pencarian akan bertambah lambat secara linear dengan bertambahnya banyaknya jumlah data.
2.3.1 Karakteristik Algoritma Pencarian Linear
Karakteristik algoritma Pencarian Linear
1.
Pencarian dapat dilakukan di struktur data apapun yang dapat diakses secara sekuensial misalnya array, linked list, sementara sebagian algoritma lain
yaitu:
UNIVERSITAS SUMATERA UTARA
kadang hanya bisa digunakan pada struktur data yang bisa diakses secara random misalnya binary search
2.
Data tidak harus terurut
3.
Worst case dan expected cost untuk pencarian linear adalah On
2.3.2 Cara Kerja Algoritma Pencarian Linear
Algoritma pencarian linear 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, jikan tidak i ⇽ i + 1
5. Jika ketemu maka i adalah indeks dari data yang dicari, jika tidak data tidak ditemuka n.
2.3.3 Pseudocode Algoritma Pencarian Linear
Pseudocode algoritma Pencarian Linear adalah: ketemu false
{belum ketemu } n 1
{ mulai dari elemen pertama } while n ukuran and not ketemu do
if array[n] = kunci then { dibandingkan }
ketemu true { data ketemu }
i n { pada posisi ke-i, posisi disimpan }
endif else n n+1
{ cek data berikutnya } endwhile
if ketemu then pencarianLinier I { data ketemu pada posisi ke-i }
else pencarianLinier -1 { data tidak ketemu }
endif end
2.3.4 Kompleksitas Algoritma Pencarian Linear
Jika linear search dimulai dari kiri, maka posisi berawal dari elemen ke-1 dan membandingkannya sampai ketemu. Kemungkinan terbaik best case dari algoritma
ini adalah jika data yang dicari terletak di indeks array terdepan elemen array
UNIVERSITAS SUMATERA UTARA
pertama sehingga waktu yang dibutuhkan untuk pencarian data sangat sebentar minimal. Kemungkinan terburuk worst case adalah jika data yang dicari terletak di
indeks array terakhir elemen array terakhir sehingga waktu yang dibutuhkan untuk pencarian data sangat lama maksimal. Kompleksitas dari algoritma ini sebanyak n
pebandingan untuk kasus terburuk data tidak ditemukan atau berada di posisi terakhir. Bila rata-rata posisi data ada ditengah, maka kompleksitas menjadi 12 n.
Penelitian yang dilakukan Sabdifha, 2010 menggunakan algoritma Depth-First Search pada permainan Word Scramble. Kotak-kotak pada papan permainan
direpresentasikan sebagai simpul sehingga setiap kotak akan memiliki indeks. Program akan mengacak huruf dengan menggunakan frekuensi dari Hidden Markov
Models HMM untuk selanjutnya kotak tersebut akan diisi dengan huruf acak. Selanjutnya komputer akan mencari kata yang dapat dibentuk dari huruf-huruf
tersebut sebagai jawaban yang valid dengan menggunakan algoritma DFS. Kemudian permainan oleh user pemain. Pemain diberi waktu untuk menebak kata yang dapat
dibentuk dari huruf-huruf yang ada pada papan permainan sebanyak mungkin. Jawaban pemain akan dicocokkan dengan jawaban valid dari komputer. Jika jawaban
pemain benar maka pemain akan memperoleh nilai berdasarkan jumlah huruf dari kata-kata yang diperolehnya.
Permainan akan berakhir ketika waktu habis.
2.4 Pengacakan Huruf