Algoritma Pencarian Linear Analisis Dan Implementasi Algoritma Linear Search Pada Permainan Word Scramble

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