Penilaian Kualitas Aplikasi Analisis Sistem

Gambar 2.1 Papan Permainan Word Scramble

2.6 Penilaian Kualitas Aplikasi

Untuk menghitung penilaian kualitas dari aplikasi ini dapat dihitung dengan menggunakan rumus 2.1 dan rumus 2.2: P k = fN I kb P ........................................ ................................................. 2.1 total = ∑ P k n ........................................ ................................................. 2.2 Dimana: P k dan sangat baik = persentase untuk k kondisi dalam hal tidak baik, kurang baik, baik, f = total respon dalam k kondisi N = jumlah responden I kb baik 50, baik 75, dan sangat baik 100 = interpretasi k kondisi terbesar dalam hal ini tidak baik 25, kurang P total n = banyak pertanyaan = persentase untuk jumlah keseluruhan persentase pertanyaan M F R V C A V R E D G A E E N A UNIVERSITAS SUMATERA UTARA BAB 3 ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Pada analisis sistem ini akan dilakukan analisis terhadap permainan Word Scramble dan algoritma pencarian Linear Search.

3.1.1 Analisis Permainan

Berikut ini aturan permainan yang telah ditetapkan penulis untuk aplikasi permainan Word Scramble: 6. Pemain mencari kata sebanyak-banyaknya dari huruf acak yang terdapat pada papan permainan. Huruf-huruf tersebut harus terhubung secara vertikal, horizontal atau diagonal. 7. Setiap kotak hanya bisa digunakan satu kali dalam satu kata. 8. Huruf Q selalu berpasangan dengan huruf U Qu. 9. Apabila tebakan pemain benar maka akan mendapatkan nilai dan jika salah tidak akan mendapatkan nilai. 10. Jawaban minimal terdiri dari tiga huruf dan maksimal delapan huruf. 11. Kata yang sudah ditemukan tidak dapat diulangi. 12. Pemain diberikan waktu selama 120 detik untuk menemukan jawaban. 13. Permainan berakhir ketika waktu habis. Kata yang ditemukan oleh pemain mempunyai nilai yang berbeda sesuai dengan jumlah huruf pada setiap kata yang sudah masuk dalam daftar kata yang ditemukan pemain. Daftar nilainya sebagai berikut: UNIVERSITAS SUMATERA UTARA Tabel 3.1 Daftar Nilai Jumlah Huruf Nilai 3 2 4 3 5 5 6 6 7 8 8 9

3.1.2 Analisis Algoritma

Algoritma yang digunakan untuk membangun permainan Word Scramble ini adalah algoritma pencarian. Algoritma ini akan digunakan oleh Komputer untuk mencocokkan antara jawaban pemain dengan kata di dalam kamus. Pada algoritma Linear Search, ada beberapa properti yang perlu dipertimbangkan yaitu data dan nilai. Berikut ini adalah penjabaran properti-properti tersebut: 1. Data Data di dalam permainan Word Scramble ini berbentuk array yang disebut kamus. Array ini berisi kosakata-kosakata bahasa Inggris. Kata- kata tersebut merupakan simpul-simpul solusi dalam proses penelusuran ini. Penelusuran dimulai dari kata pertama indeks 0 sampai kata terakhir indeks n. 2. Nilai Nilai kata yang akan ditelusuri yaitu jawaban pemain. Jika kata yang menjadi jawaban pemain terdapat dalam kamus maka jawaban dianggap benar. Jika menggunakan Linear Search pada proses penelusuran, maka semua simpul akan dibangkitkan tanpa melihat apakah simpul mendekati solusi yang diinginkan atau tidak. Penelusuran nilai kata yang dicari dimulai pada indeks 0. Apabila kata pada indeks tersebut sama dengan kata yang dicari, maka nilai telah ketemu dan jawaban pemain benar. Apabila nilai yang dicari belum ketemu, penelusuran dilanjutkan pada indeks berikutnya. Apabila sampai akhir pemeriksaan tidak ada data yang sama, berarti nilai yang dicari tidak ada dan jawaban pemain salah. UNIVERSITAS SUMATERA UTARA Algoritma Linear Search memeriksa semua posisi dalam array secara berurutan dari indeks 0 sampai n apakah nilaikata yang dicari ada di dalam kamus. Perbandingan karakter yang terjadi diharapkan n, dengan n adalah jumlah kata pada kamus. Kamus pada permainan ini berisikan 80325 kata. Pada kasus yang paling buruk, untuk n elemen data harus dilakukan pencarian sebanyak n kali pula. Maka untuk kasus terburuk, kompleksitas algoritma Linear Search pada permainan ini adalah O80325. Berikut ini adalah pseudocode dari beberapa prosedur dalam permainan Word Scramble. const kamus : kamus.txt panjang_kata : 3 huruf_menurun : 4 huruf_mendatar : 4 uk_tombol : 50 waktu : 121 nilai : Array = [null,0,0,2,3,5,6,8,9] var loader : URLLoader alfabet, kata, kata_ketemu, tombol : Array[] masukan : TextInput kata_tebakan : String status_kata,status_waktu : Label tombol_terakhir,tombol_tambah,tombol_hapus, tombol_kembali : Button hasil_nilai : TextArea t : Timer i : int procedure WordScramble procedure Kamus procedure LoadKamus procedure LoadKamus2 begin isi_kamus : Stringkamus kata ← isi_kamus.split Tampilan Papan30,50,huruf_mendatar,huruf_menurun,uk_tombol MulaiWaktuwaktu end procedure Tampilan procedure Papan procedure HurufAcak begin alfabet = A,B,C,D,E,F,G,H,I,J,K, L,M,N,O,P,QU,R,S,T,U,V, W,X,Y,Z] frek ← random99 UNIVERSITAS SUMATERA UTARA if 0= frek and frek =7 then begin alfabet[0] end else if frek =8 then begin alfabet[1] end else if frek = 9 and frek =11 then begin alfabet[2] end else if frek = 12 and frek =15 then begin alfabet[3] end else if frek = 16 and frek =27 then begin alfabet[4] end else if frek = 28 and frek =29 then begin alfabet[5] end else if frek = 30 and frek =31 then begin alfabet[6] end else if frek = 32 and frek =37 then begin alfabet[7] end else if frek = 38 and frek =44 then begin alfabet[8] end ... else if frek = 99 then begin alfabet[25] end end procedure HurufTerpilih begin b ← Buttone.target if not tombol_terakhir then begin KataBarub.label end else if Ketetanggaan b,tombol_terakhir then begin TambahTebakanb.label end else begin KataBarub.label end tombol_terakhir ← b b.enabled ← false UNIVERSITAS SUMATERA UTARA end procedure TambahTebakan begin kata_tebakan ← kata_tebakan + huruf end procedure KataBaru begin for i ← 0 to tombol.length do begin tombol[i].enabled ← true end kata_tebakan ← huruf end procedure Ketetanggaan var baris_sesudah ← tombol_sesudahtombol_sesudah + 3 var kolom_sesudah ← tombol_sesudahtombol_sesudah + 3 var baris_sebelum ← tombol_sebelumtombol_sebelum + 3 var kolom_sebelum ← tombol_sebelumtombol_sebelum + 3 begin return baris_sebelum - baris_sesudah = 1 and kolom_sebelum - kolom_sesudah = 1 end procedure TambahKata begin if kata_tebakan.length panjang_kata then begin KataBaru end else if not SudahKetemukata_tebakan then begin var indeks_kata:Number ← CariKatakata_tebakan if indeks_kata -1 then begin kata_tebakan ← kata_ketemu KataBaru Nilai end else begin KataBaru end end else begin KataBaru end end procedure HapusKata procedure SudahKetemu begin for i ← 0 to kata_ketemu.length do begin if a = kata_ketemu[i] then return true UNIVERSITAS SUMATERA UTARA end return false end procedure CariKata begin for i ← 0 to kata.length do begin var Kata:String Kata ← kata[i] if huruf = kata[i] then begin return i end end return -1 end procedure Nilai begin var daftar_kata:String nilai_total:Number for i ← 0 to kata_ketemu.length do begin var Kata:String Kata ← kata_ketemu[i] nilai_total ← nilai_total + nilai[Kata.length] daftar_kata ← daftar_kata + Kata + \n end end procedure MulaiWaktu procedure hitung_waktu procedure waktu_habis procedure Kembali end. Berdasarkan pseudocode di atas, pada procedure HurufTerpilih dapat dilihat bahwa huruf-huruf yang dipilih pemain untuk membentuk sebuah kata harus bertetangga secara vertikal, horizontal, atau diagonal. Apabila nilai ketetanggaannya benar maka huruf-huruf tersebut dapat diajukan sebagai jawaban oleh pemain. Panjang kata yang dibentuk pemain juga tidak boleh kurang dari tiga huruf dan tidak melebihi delapan huruf. Selanjutnya kata tersebut akan dicari di dalam kamus. Penelusuran dimulai dari kata awal hingga kata terakhir dalam kamus sampai ditemukan kata yang sesuai. Apabila kata yang dicari telah ditemukan dalam kamus, maka kata tersebut ditambahkan ke dalam daftar kata yang berhasil ditemukan pemain. Pemain memperoleh nilai total dari hasil penjumlahan nilai masing-masing kata yang berhasil diperoleh sesuai dengan jumlah huruf dari setiap kata tersebut. UNIVERSITAS SUMATERA UTARA Penerapan algoritma Linear Search pada permainan Word Scramble dijelaskan dalam beberapa langkah berikut. 1. Langkah 1 Langkah 1 dimulai dengan melihat apakah huruf-huruf yang dipilih pemain memiliki nilai ketetanggaan yang benar. Nilai ketetanggan tersebut bernilai benar apabila huruf-huruf yang dipilih saling terhubung secara vertikal, horizontal, atau diagonal baik ke arah kiri maupun kanan. Jika huruf yang dipilih saling bertetangga, maka pemain dapat mengajukan jawabannya untuk dijadikan sebagai nilai yang akan dicari di dalam kamus. Seperti yang dapat dilihat pada Gambar , huruf F, A, C, dan E saling berhubungan secara secara vertikal, horizontal, dan diagonal sehingga didapat kata FACE sebagai nilai yang akan dicari keberadaannya di dalam kamus. Gambar 3.1 Langkah 1 FACE M F R V C A V R E D G A E E N A W O S R C E B M A L R D Tambah Hapus UNIVERSITAS SUMATERA UTARA 2. Langkah 2 Setelah pemain memasukkan kata tebakannya untuk dicari di dalam kamus, selanjutnya akan diperiksa terlebih dahulu apakah kata tebakannya kurang dari tiga huruf atau lebih dari delapan huruf sebelum dilakukan penelusuran lebih lanjut. Jika kurang dari tiga huruf atau lebih dari delapan huruf, maka kata tersebut tidak dapat dijadikan tebakan dan pemain harus mencari kata lain. Misalkan kata yang dipilih adalah FACE. Kata tersebut terdiri dari empat huruf maka kata tersebut dapat dilanjutkan penelusurannya di dalam kamus. 3. Langkah 3 Selanjutnya, penelusuran kata yang akan dicari di dalam kamus. Penelusuran dimulai dari kata pertama sampai kata terakhir di dalam kamus. Apabila kata atau pola yang dicari ditemukan maka pemain akan mendapatkan nilai yang sesuai dengan jumlah huruf dari kata tebakannya tersebut. Jika kata yang dicari tidak ditemukan, maka pemain harus mencari kata baru yang lain sebagai tebakannya. Berdasarkan Tabel Daftar Nilai, untuk kata FACE yang terdiri dari empat huruf maka pemain mendapatkan nilai 3 tiga. Kata tersebut dimasukkan ke dalam daftar kata yang berhasil ditebak oleh pemain. Pemain dapat melanjutkan permainan sampai waktu yang telah ditentukan habis. Gambar 3.2 Langkah 3 Kata Baru Ditemukan M F R V C A V R E D G A E E N A Tambah Hapus Total nilai : 3 Daftar Kata : FACE W O S R C E B M A L R D UNIVERSITAS SUMATERA UTARA

3.1.2.1 Flowchart Alur Permainan

Langkah-langkah bermain pada permainan Hangman akan digambarkan dengan flowchart berdasarkan peraturan permainan yang telah ditentukan. Gambar 3.3 berikut ini akan menjelaskan mengenai alur permainan Hangman. Start HurufAcak waktu_sisa = 120 HurufTerpilih TambahKata waktu_sisa = 0 ? End Ya Tidak “Waktu habis ” Gambar 3.3 Flowchart Alur Permainan Keterangan: waktu_sisa : jumlah waktu yang diberikan untuk menebak

3.1.2.2 Flowchart HurufAcak

Flowchart ini menggambarkan bagaimana huruf acak yang akan dimasukkan pada papan permainan diperoleh. Penentuan huruf acak didasarkan pada frekuensi huruf acak pada Tabel 2.1 dengan jumlah seluruh frekuensi adalah 100. Gambar 3.4 merupakan flowchart HurufAcak. UNIVERSITAS SUMATERA UTARA Start alfabet[], frek frek = random99 frek = 0-7 ? alfabet[0] frek = 8-9 ? alfabet[1] Ya Tidak Ya alfabet[3] frek = 10-14 ? alfabet[2] Ya Tidak Ya Tidak frek = 15-17 ? alfabet[4] frek = 29-30 ? alfabet[5] Ya Tidak Ya Tidak frek = 18-28 ? alfabet[7] frek = 31-32 ? alfabet[6] Ya Tidak Ya Tidak frek = 33-35 ? alfabet[8] frek = 43 ? alfabet[9] Ya Tidak Ya Tidak frek = 36-42 ? alfabet[11] frek = 44 ? alfabet[10] Ya Tidak Ya Tidak frek = 45-49 ? alfabet[12] frek = 53-59 ? alfabet[13] Ya Tidak Ya Tidak frek = 50-52 ? alfabet[15] frek = 60-66 ? alfabet[14] Ya Tidak Ya Tidak frek = 67-69 ? alfabet[16] frek = 71-77 ? alfabet[17] Ya Tidak Ya Tidak frek = 70 ? alfabet[19] frek = 78-83 ? alfabet[18] Ya Tidak Ya Tidak frek = 84-90 ? alfabet[20] frek = 94 ? alfabet[21] Ya Tidak Ya Tidak frek = 91-93 ? alfabet[23] frek = 95 ? alfabet[22] Ya Tidak Ya Tidak frek = 96 ? alfabet[25] Tidak End alfabet[24] Ya Tidak frek = 97-98 ? A A A A A A A A A Gambar 3.4 Flowchart HurufAcak UNIVERSITAS SUMATERA UTARA Keterangan: frek : nilai acak untuk alfabet alfabet[] : array berisi huruf mulai dari A sampai Z

3.1.2.3 Flowchart HurufTerpilih

HurufTerpilih merupakan fungsi yang berguna untuk memeriksa apakah huruf-huruf yang dipilih Pemain saling bertetangga atau tidak. Apabila nilai ketetanggaan antara huruf yang terakhir dipilih dengan huruf yang sebelumnya telah dipilih adalah benar, maka Pemain dapat melanjutkan tebakannya. Jika nilai ketetanggaannya salah, maka Pemain harus memilih huruf lain yang bertetangga. Gambar 3.6 merupakan flowchart HurufTerpilih. Start b, tombol_terakhir, Ketetanggaan, kata_tebakan, huruf tombol_terakhir = null ? Ketetanggaan b, tombol_terakhir = true ? KataBaru Ya Tidak Tidak kata_tebakan = kata_tebakan + huruf Ya tombol_terakhir = b End Gambar 3.5 Flowchart HurufTerpilih UNIVERSITAS SUMATERA UTARA Keterangan: b : tombol huruf yang dipilih Pemain sesudah tombol_terakhir tombol_terakhir : tombol huruf terakhir yang dipilih Pemain Ketetanggaan : tipe boolean untuk menyatakan ketetanggan antara b dan tombol_terakhir kata_tebakan : kata tebakan Pemain huruf : huruf-huruf yang dipilih Pemain

3.1.2.4 Flowchart Ketetanggaan

Flowchart ini menggambarkan bagaimana menentukan huruf-huruf yang dipilih Pemain saling bertetangga atau tidak. Gambar 3.7 merupakan flowchart Ketetanggaan. Start Ketetanggaan, baris_sebelum, baris_sesudah, kolom_sebelum, kolom sesudah baris_sebelum – baris_sesudah = 1 ? Ya Tidak Tidak Ya End Ketetanggaan = true kolom_sebelum – kolom_sesudah = 1 ? Ketetanggaan = false Gambar 3.6 Flowchart Ketetanggaan Keterangan: baris_sebelum : indeks huruf yang sebelumnya dipilih berdasarkan baris baris_sesudah : indeks huruf yang terakhir dipilih berdasarkan baris kolom_sebelum : indeks huruf yang sebelumnya dipilih berdasarkan kolom kolom_sesudah : indeks huruf yang terakhir dipilih berdasarkan kolom UNIVERSITAS SUMATERA UTARA

3.1.2.5 Flowchart KataBaru

Flowchart ini menggambarkan bagaimana huruf-huruf yang dipilih Pemain dirangkai menjadi sebuah kata. Gambar 3.6 merupakan flowchart KataBaru. Start i, tombol[], kata_tebakan, huruf i = 0 tombol[i] = enabled i = tombol.length ? kata_tebakan = huruf End i = i + 1 Ya Tidak Gambar 3.7 Flowchart KataBaru Keterangan: i : jumlah variabel tombol huruf tombol [] : array berisi tombol-tombol huruf

3.1.2.6 Flowchart PeriksaKata

Flowchart ini menggambarkan bagaimana kata yang telah dirangkai oleh Pemain dijadikan kata tebakan. Gambar 3.7 merupakan flowchart PeriksaKata. UNIVERSITAS SUMATERA UTARA Start kata_tebakan.length panjang_kata ? Nilai KataBaru = “ “ SudahKetemu kata_tebakan = true ? indeks_kata = CariKatakata_tebakan indeks_kata -1 ? KataBaru = “ “ kata_ketemu = pushkata_tebakan KataBaru = “ “ KataBaru = “ “ kata_tebakan, panjang_kata, SudahKetemu, indeks_kata, CariKata, kata_ketemu “ Minimal 3 huruf ” “ Kata baru telah ditemukan ” “ Kata tidak ada dalam kamus ” Ya Tidak Tidak Tidak Ya Ya “ Kata sudah dimasukkan” End Gambar 3.8 Flowchart PeriksaKata Keterangan: panjang_kata : jumlah huruf minimal yang dapat dirangkai menjadi sebuah kata SudahKetemu : tipe boolean untuk menyatakan apakah kata tebakan sudah ditemukan sebelumnya atau belum indeks_kata : indeks dari kata tebakan pada kamus UNIVERSITAS SUMATERA UTARA CariKata : nilai yang menyatakan apakah kata tebakan terdapat dalam kamus kata_ketemu : array yang berisi kata tebakan yang benar

3.1.2.7 Flowchart SudahKetemu

SudahKetemu merupakan fungsi yang berguna untuk memeriksa apakah kata yang dijadikan tebakan telah ditemukan sebelumnya. Gambar 3.8 merupakan flowchart SudahKetemu. Start i, a, kata_ketemu, SudahKetemu i = 0 a = kata_ketemu[i] ? SudahKetemu = true i = kata_ketemu.length ? SudahKetemu = false i = i + 1 End Ya Tidak Ya Tidak Gambar 3.9 Flowchart SudahKetemu Keterangan: i : jumlah variabel pada kata_ketemu a : kata yang sedang diperiksa apakah telah ditemukan sebelumnya UNIVERSITAS SUMATERA UTARA

3.1.2.8 Flowchart CariKata

CariKata merupakan fungsi yang berguna untuk memeriksa apakah kata tebakan Pemain terdapat di dalam kamus. Fungsi inilah yang menggunakan algoritma pencarian untuk menemukan kata di dalam kamus. Gambar 3.9 merupakan flowchart CariKata. Start i = 0 Kata = kata[i] huruf = kata[i] ? CariKata = i i = kata.length ? CariKata = -1 i = i + 1 End kata, huruf, i, Kata, CariKata Ya Ya Tidak Tidak Gambar 3.10 Flowchart CariKata Keterangan: kata : kata dalam kamus i : jumlah kata dalam kamus Kata : variabel dari kata UNIVERSITAS SUMATERA UTARA

3.1.2.9 Flowchart Nilai

Nilai merupakan fungsi yang berguna untuk menghitung jumlah nilai yang diperoleh dari tiap kata yang berhasil ditebak oleh Pemain. Penentuan nilai dari tiap kata ditentukan dari banyaknya huruf yang membentuknya. Gambar 3.10 merupakan flowchart Nilai. Start i, Kata, kata_ketemu, nilai_total, nilai, daftar_kata i = 0 Kata = kata_ketemu[i] nilai_total = nilai_total + nilai[Kata.length] daftar_kata = daftar_kata + Kata i = kata_ketemu.length ? i = i + 1 “Total Nilai : nilai_total” “Daftar Kata : daftar_kata” End Ya Tidak nilai_total = 0 Gambar 3.11 Flowchart Nilai Keterangan: i : jumlah kata yang berhasil ditebak Pemain nilai : nilai berdasarkan banyak huruf tiap kata nilai_total : Total nilai yang diperoleh Pemain daftar_kata : Daftar kata yang berhasil ditebak oleh Pemain UNIVERSITAS SUMATERA UTARA

3.2 Perancangan Sistem