Anda di halaman 1dari 73

ANALISIS DAN IMPLEMENTASI ALGORITMA LINEAR SEARCH

PADA PERMAINAN WORD SCRAMBLE

SKRIPSI

AMMAHLI FAKAR TARIGAN


071401071

PROGRAM STUDI S1 ILMU KOMPUTER


DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2012

UNIVERSITAS SUMATERA UTARA


ANALISIS DAN IMPLEMENTASI ALGORITMA LINEAR SEARCH
PADA PERMAINAN WORD SCRAMBLE

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana
Komputer

AMMAHLI FAKAR TARIGAN


071401071

PROGRAM STUDI S1 ILMU KOMPUTER


DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2012

UNIVERSITAS SUMATERA UTARA


PERSETUJUAN

Judul : ANALISIS DAN IMPLEMENTASI ALGORITMA


LINEAR SEARCH PADA PERMAINAN WORD
SCRAMBLE
Kategori : SKRIPSI
Nama : AMMAHLI FAKAR TARIGAN
Nomor Induk Mahasiswa : 071401071
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA
UTARA

Diluluskan di
Medan, 24 Mei 2012

Komisi Pembimbing :

Pembimbing II, Pembimbing I,

M. Andri Budiman, ST, MCompSc, MEM Dr. Poltak Sihombing, M.Kom


NIP. 197510082008011001 NIP. 196203171991031001

Program Studi S1 Ilmu Komputer


Ketua,

Dr. Poltak Sihombing, M.Kom


NIP. 196203171991031001

UNIVERSITAS SUMATERA UTARA


PERNYATAAN

ANALISIS DAN IMPLEMENTASI ALGORITMA LINEAR SEARCH


PADA PERMAINAN WORD SCRAMBLE

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 13 April 2012

Ammahli Fakar Tarigan


071401071

UNIVERSITAS SUMATERA UTARA


PENGHARGAAN

Alhamdulillahirabbil’alamin penulis ucapkan kepada Allah SWT yang telah


melimpahkan rahmat dan karunia-Nya sehingga skripsi ini berhasil diselesaikan dalam
waktu yang telah ditetapkan.

Skripsi ini merupakan salah satu syarat yang wajib diselesaikan guna meraih
gelar Sarjana Komputer pada jurusan S1 Ilmu Komputer Universitas Sumatera Utara.
Adapun judul yang diangkat penulis dalam skripsi ini adalah Analisis dan
Implementasi Algoritma Linear Search pada Permainan Word Scramble. Tidak dapat
dipungkiri bahwa dalam penyelesaian skripsi ini tidak luput dari campur tangan
banyak pihak yang telah memberikan bantuan dan motivasi bagi penulis. Maka, dalam
kesempatan ini, penulis mengucapkan terima kasih kepada:

1. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Jurusan S1 Ilmu Komputer
serta pembimbing I dan Bapak M. Andri Budiman, S.T., M.Comp.Sc., M.E.M
selaku pembimbing II yang telah memberikan panduan dan penuh kepercayaan
kepada penulis untuk menyelesaikan skripsi ini.

2. Ibu Dian Rachmawati, S.Si, M.Kom dan Bapak Dahlan Sitompul M.Eng selaku
dosen penguji yang telah memberikan panduan ringkas, padat dan profesional
kepada penulis guna menyempurnakan skripsi ini.

3. Sekretaris Jurusan S1 Ilmu Komputer Ibu Maya Silvi Lydia, B.Sc., M.Sc., Dekan
dan Pembantu Dekan Fakultas MIPA beserta para pegawai/staf S1 Ilmu
Komputer.

4. Keluarga tercinta, Ayahanda Drs. H. Enda Tarigan dan Ibunda Dra. Hj. Nilva
Yenisda, Ammamiarihta, Ammazizzaky Tarigan, dan Ammanawwara yang selalu
memberikan doa, dukungan, perhatian, kasih sayang yang tulus, pengorbanan
yang tidak ternilai harganya serta dukungan moril maupun materiil selama
kehidupan penulis.

5. Dely Utari, S.Kom yang selalu memberikan doa, perhatian, kasih sayang, motivasi
dan semangat yang luar biasa bagi penulis.

6. Teman-teman setim Istiqlal FC khususnya Fatih, Wahyu, Safri, Hanafi, Febrian


dan Faisal, yang selama ini telah berbagi semangat dan canda tawa dengan
penulis, serta sahabat-sahabat lain yang pernah mengisi perjalanan hidup penulis
yang tidak dapat disebutkan satu per satu.

7. Teman-teman seperjuangan, mahasiswa S1 Ilmu Komputer stambuk 2007


khususnya Jenita Heptani, Fitri Rahayu, dan Yoga Nugraha yang telah banyak
berbagi ilmu, memberikan bantuan, saran, kritikan, semangat, inspirasi, dukungan
serta mewarnai kenangan selama masa kuliah yang tak akan terlupakan bagi
penulis.

UNIVERSITAS SUMATERA UTARA


8. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat
penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini.
Semoga Allah SWT memberikan limpahan karunia kepada semua pihak yang
telah memberikan bantuan, perhatian serta kerja samanya kepada penulis dalam
menyelesaikan tugas akhir ini.

Penulis menyadari bahwa dalam penyelesaian skripsi ini masih jauh dari
sempurna. Untuk itu penulis sangat mengharapkan kritik dan saran yang membangun
guna penyempurnaan di masa mendatang.

Akhirnya penulis berharap semoga skripsi ini dapat bermanfaat bagi pribadi
penulis, keluarga, masyarakat, organisasi dan negara.

Medan, 13 April 2012

Penulis

UNIVERSITAS SUMATERA UTARA


ABSTRAK

Permainan adalah salah satu solusi alternatif untuk pembelajaran murid. Tidak sedikit
murid yang merasa bosan ketika belajar sehingga dapat menghambat proses belajar
mengajar. Permainan dapat membantu dan menyemangati banyak murid untuk dapat
terus menjaga ketertarikan mereka untuk belajar. Word Scramble termasuk salah satu
jenis permainan kata yang dapat menambah wawasan kosakata Bahasa Inggris.
Permainan ini menuntut kemampuan berpikir pemain untuk mencari kosakata yang
bisa disusun dari huruf acak di papan permainan. Huruf-huruf yang diperoleh harus
terhubung langsung secara horizontal, vertikal, atau diagonal. Kata tebakan pemain
diperiksa oleh komputer apakah kata tersebut terdapat di dalam kamus yang sudah
ditentukan dengan menggunakan algoritma pencarian Linear Search. Penelusuran
dimulai dengan membandingkan kata tebakan dengan kata pada indeks pertama di
dalam kamus yang berbentuk array. Apabila kedua kata tersebut sama, maka data
telah ditemukan dan jawaban pemain benar. Jika tidak, penelusuran dilakukan pada
kata pada indeks selanjutnya hingga ditemukan jawaban yang benar. Algoritma Linear
Search dapat diimplementasikan pada permainan ini untuk mencocokkan jawaban dan
tidak perlu dilakukan pengurutan data sehingga penelusuran dapat langsung
dilakukan.

Kata Kunci : Scramble, Permainan, Pengacakan, Pencarian, Linear Search

UNIVERSITAS SUMATERA UTARA


ANALYSIS AND IMPLEMENTATION OF BRUTE FORCE ALGORITHM
ON WORD SCRAMBLE GAME

ABSTRACT

Game is one of the alternative solutions for student learning. Not a few students feel
bored when learning that can hinder the learning process. Games can help and
encourage more students to be able to maintain their interest in learning. Word
Scramble is one kind of word game that can add insight into the English vocabulary.
This game requires player’s thinking ability to find the word that can be composed
from the letters results of randomization on the game’s board. The letters must be
directly connected horizontally, vertically, or diagonally. Player’s guess word is
checked by the computer whether the word is found in the dictionary that has been
determined by using Linear Search Algorithm. Search begins by comparing the guess
word with the first word at the first index in the dictionary. If those two words are
equals, the data have been found and the player answers correctly. If not, search
performed on the next word at the next index until the correct answer is found. Linear
Search algorithm can be implemented in this game to match the answers and doesn’t
need to sort the data so the searches can be performed directly.

Keyword : Scramble, Game, Randomization, Searching, Linear Search

UNIVERSITAS SUMATERA UTARA


DAFTAR ISI

Halaman

Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel x
Daftar Gambar xi

Bab 1 Pendahuluan 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 2
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 4

Bab 2 Landasan Teori 5


2.1 Algoritma 5
2.2 Algoritma Pencarian 6
2.3 Algoritma Pencarian Linear 7
2.3.1 Karakteristik Algoritma Pencarian Linear 7
2.3.2 Cara Kerja Algoritma Pencarian Linear 8
2.3.3 Pseudocode Algoritma Pencarian Linear 8
2.3.4 Kompleksitas Algoritma Pencarian Linear 8
2.4 Pengacakan Huruf 9
2.5 Word Scramble 11
2.5.1 Aturan Permainan Word Scramble 11
2.6 Penilaian Kualitas Aplikasi 12

Bab 3 Analisis dan Perancangan 13


3.1 Analisis Sistem 13
3.1.1 Analisis Permainan 13
3.1.2 Analisis Algoritma 14
3.1.2.1 Flowchart Alur Permainan 21
3.1.2.2 Flowchart HurufAcak() 21
3.1.2.3 Flowchart HurufTerpilih() 23
3.1.2.4 Flowchart Ketetanggaan() 24
3.1.2.5 Flowchart KataBaru() 25
3.1.2.6 Flowchart PeriksaKata() 25
3.1.2.7 Flowchart SudahKetemu() 27

UNIVERSITAS SUMATERA UTARA


3.1.2.8 Flowchart CariKata() 28
3.1.2.9 Flowchart Nilai() 29
3.2 Perancangan Sistem 30
3.2.1 Perancangan Aplikasi Permainan 30
3.2.2 Perancangan Antarmuka 31

Bab 4 Implementasi dan Pengujian 35


4.1 Implementasi Sistem 35
4.1.1 Spesifikasi Perangkat Lunak 35
4.1.2 Spesifikasi Perangkat Keras 35
4.1.3 Implementasi Rancangan Fungsi 36
4.1.4 Implementasi Rancangan Antarmuka 36
4.1.4.1 Tampilan Utama 36
4.1.4.2 Tampilan Arena Permainan 37
4.1.4.3 Tampilan Aturan Permainan 38
4.1.4.4 Tampilan Tentang Permainan 39
4.2 Pengujian Aplikasi 39
4.2.1 Pengujian Integrasi Aplikasi 40
4.2.1.1 Proses pada Tampilan Utama 40
4.2.1.2 Proses pada Tampilan Arena Permainan 41
4.2.1.3 Proses pada Tampilan Aturan Permainan 41
4.2.1.4 Proses pada Tampilan Tentang Permainan 42
4.2.2 Pengujian Responden 42
4.2.2.1 Aspek Antarmuka Aplikasi 42
4.2.2.2 Aspek Penggunaan Aplikasi 44
4.2.2.3 Aspek Penilaian Aplikasi 45

Bab 5 Kesimpulan dan Saran 47


5.1 Kesimpulan 47
5.2 Saran 48

Daftar Pustaka 49

LAMPIRAN A: LISTING PROGRAM


LAMPIRAN B: HASIL KUISIONER

UNIVERSITAS SUMATERA UTARA


DAFTAR TABEL

Halaman

2.1 Daftar Nilai Frekuensi Huruf yang Akan Diacak 10


3.1 Hasil Daftar Nilai 14
4.1 Hasil Evaluasi Proses pada Tampilan Utama 40
4.2 Hasil Evaluasi Proses pada Tampilan Arena Permainan 41
4.3 Hasil Evaluasi Proses pada Tampilan Aturan Permainan 41
4.4 Hasil Evaluasi Proses pada Tampilan Tentang Permainan 42
4.5 Hasil Kuisioner Aspek Antarmuka Aplikasi 43
4.6 Hasil Kuisioner Aspek Penggunaan Aplikasi 44
4.7 Hasil Kuisioner Aspek Penilaian Aplikasi 45

UNIVERSITAS SUMATERA UTARA


DAFTAR GAMBAR

Halaman

2.1 Papan Permainan Word Scramble 12


3.1 Langkah 1 19
3.2 Langkah 3 20
3.3 Flowchart Alur Permainan 21
3.4 Flowchart HurufAcak() 22
3.5 Flowchart HurufTerpilih() 23
3.6 Flowchart Ketetanggaan 24
3.7 Flowchart KataBaru() 25
3.8 Flowchart PeriksaKata() 26
3.9 Flowchart Flowchart SudahKetemu() 27
3.10 Flowchart CariKata() 28
3.11 Flowchart Nilai() 29
3.12 Flowchart Aplikasi 30
3.13 Frame Menu 31
3.14 Frame Arena Permainan 32
3.15 Frame Aturan Permainan 33
3.16 Frame Tentang Permainan 34
4.1 Tampilan Utama 36
4.2 Tampilan Arena Permainan 37
4.3 Tampilan Arena Permainan Ketika Permainan Sedang Berlangsung 37
4.4 Tampilan Arena Permainan Ketika Permainan Selesai 38
4.5 Tampilan Aturan Permainan 38
4.6 Tampilan Tentang Permainan 39

UNIVERSITAS SUMATERA UTARA


ABSTRAK

Permainan adalah salah satu solusi alternatif untuk pembelajaran murid. Tidak sedikit
murid yang merasa bosan ketika belajar sehingga dapat menghambat proses belajar
mengajar. Permainan dapat membantu dan menyemangati banyak murid untuk dapat
terus menjaga ketertarikan mereka untuk belajar. Word Scramble termasuk salah satu
jenis permainan kata yang dapat menambah wawasan kosakata Bahasa Inggris.
Permainan ini menuntut kemampuan berpikir pemain untuk mencari kosakata yang
bisa disusun dari huruf acak di papan permainan. Huruf-huruf yang diperoleh harus
terhubung langsung secara horizontal, vertikal, atau diagonal. Kata tebakan pemain
diperiksa oleh komputer apakah kata tersebut terdapat di dalam kamus yang sudah
ditentukan dengan menggunakan algoritma pencarian Linear Search. Penelusuran
dimulai dengan membandingkan kata tebakan dengan kata pada indeks pertama di
dalam kamus yang berbentuk array. Apabila kedua kata tersebut sama, maka data
telah ditemukan dan jawaban pemain benar. Jika tidak, penelusuran dilakukan pada
kata pada indeks selanjutnya hingga ditemukan jawaban yang benar. Algoritma Linear
Search dapat diimplementasikan pada permainan ini untuk mencocokkan jawaban dan
tidak perlu dilakukan pengurutan data sehingga penelusuran dapat langsung
dilakukan.

Kata Kunci : Scramble, Permainan, Pengacakan, Pencarian, Linear Search

UNIVERSITAS SUMATERA UTARA


ANALYSIS AND IMPLEMENTATION OF BRUTE FORCE ALGORITHM
ON WORD SCRAMBLE GAME

ABSTRACT

Game is one of the alternative solutions for student learning. Not a few students feel
bored when learning that can hinder the learning process. Games can help and
encourage more students to be able to maintain their interest in learning. Word
Scramble is one kind of word game that can add insight into the English vocabulary.
This game requires player’s thinking ability to find the word that can be composed
from the letters results of randomization on the game’s board. The letters must be
directly connected horizontally, vertically, or diagonally. Player’s guess word is
checked by the computer whether the word is found in the dictionary that has been
determined by using Linear Search Algorithm. Search begins by comparing the guess
word with the first word at the first index in the dictionary. If those two words are
equals, the data have been found and the player answers correctly. If not, search
performed on the next word at the next index until the correct answer is found. Linear
Search algorithm can be implemented in this game to match the answers and doesn’t
need to sort the data so the searches can be performed directly.

Keyword : Scramble, Game, Randomization, Searching, Linear Search

UNIVERSITAS SUMATERA UTARA


BAB 1

PENDAHULUAN

1.1 Latar Belakang

Permainan atau sering disebut dengan game merupakan suatu sarana hiburan yang
diminati dan dimainkan oleh banyak orang baik dari kalangan anak-anak, remaja
maupun orang dewasa. Permainan juga dapat berguna untuk melatih dan mengasah
kemampuan berpikir seseorang.

Permainan adalah salah satu solusi alternatif untuk pembelajaran murid. Tidak
sedikit murid yang merasa bosan ketika belajar sehingga dapat menghambat proses
belajar mengajar. Faktanya permainan dapat membantu dan menyemangati banyak
murid untuk dapat terus menjaga ketertarikan mereka untuk belajar. Saat ini, terdapat
berbagai macam permainan yang bertujuan untuk menambah wawasan kosakata
Bahasa Inggris, salah satunya adalah word game (permainan kata).

Dari sekian banyak macam jenis permainan kata yang ada, Word Scramble
termasuk salah satu jenis permainan kata yang populer. Permainan Word Scramble
diawali dengan pengacakan huruf oleh komputer, kemudian pemain mencari kosakata
yang bisa disusun dari huruf acak tersebut. Huruf-huruf tersebut harus terhubung
secara vertikal, horizontal atau diagonal pada papan permainan.

Pada permainan ini terdapat beberapa permasalahan seperti pengacakan huruf


pada papan permainan agar pola pengacakannya dapat mempermudah pemain untuk
menemukan lebih banyak kata, pencocokan jawaban pemain oleh komputer dengan
kata pada kamus, tampilan antarmuka aplikasi permainan, dan sistem penilaian untuk
setiap kata yang ditemukan oleh pemain berdasarkan jumlah huruf pada kata tersebut.

UNIVERSITAS SUMATERA UTARA


Oleh karena itu, penulis mengangkat judul “Analisis dan Implementasi Algoritma
Linear Search pada Permainan Word Scramble” untuk mencari tahu apakah algoritma
Linear Search dapat diimplementasikan pada permainan Word Scramble.

1.2 Rumusan Masalah

Permasalahan yang akan diteliti dan diuraikan disini adalah:


1. Bagaimana mengimplementasikan algoritma Linear Search pada permainan
Word Scramble.
2. Bagaimana komputer dapat melakukan pencarian kata pada kamus yang sesuai
dengan jawaban pemain dengan menggunakan algoritma Linear Search.

1.3 Batasan Masalah

Batasan masalah pada tugas akhir ini adalah:


1. Papan permainan berukuran 4x4.
2. Huruf diacak berdasarkan frekuensi huruf yang paling sering muncul dalam
Bahasa Inggris.
3. Pencarian jawaban yang valid menggunakan algoritma Linear Search.
4. Kata-kata yang akan ditebak disimpan dalam kamus dengan format .txt.
5. Kata-kata dalam kamus tidak dapat dimodifikasi.
6. Permainan ini bersifat single player.
7. Pembangunan permainan ini menggunakan aplikasi Adobe Flash CS5 dan
ActionScript 3.

1.4 Tujuan Penelitian

Tujuan penelitian ini adalah sebagai berikut:


1. Menerapkan algoritma Linear Search pada proses pencarian kata yang
diperoleh pemain dengan kata dalam kamus.
2. Membuat sebuah permainan komputer dimana pemain ditugaskan untuk
mencari kosakata Bahasa Inggris pada papan permainan yang berisi huruf-
huruf yang tersusun secara acak.

UNIVERSITAS SUMATERA UTARA


1.5 Manfaat Penelitian

Manfaat dari tugas akhir ini adalah sebagai berikut:


1. Mengimplementasikan algoritma Linear Search dalam permainan Word
Scramble.
2. Mengasah kemampuan pemain dalam intuisi bermain, khususnya pada
permainan kata.

1.6 Metodologi Penelitian

Metodologi penelitian yang akan digunakan adalah:


1. Studi Pustaka
Pada tahap ini dilakukan studi pustaka yaitu mengumpulkan bahan referensi dari
buku, artikel, jurnal, makalah, maupun internet mengenai penerapan algoritma
Linear Search pada permainan Word Scramble.
2. Pengumpulan Data
Pada tahap ini dilakukan pengumpulkan data yang berupa kosakata Bahasa Inggris
yang akan disimpan dalam basis data.
3. Analisis Masalah
Pada tahap ini akan dilakukan analisis terhadap cara bermain Word Scramble dan
bagaimana solusi penyelesaiannya dengan menerapkan algoritma Linear Search
dalam bentuk flowchart.
4. Implementasi Sistem
Pada tahap ini hasil analisis dari solusi penyelesaian pada permainan Word
Scramble diterapkan dalam source code dan perancangan aplikasinya sehingga
menghasilkan bentuk antarmuka yang mudah digunakan oleh pemain.
5. Pengujian Sistem
Pada tahap ini aplikasi permainan Word Scramble akan diuji untuk memastikan
semuanya telah bekerja sesuai dengan tujuan yang diinginkan.
6. Penulisan Skripsi
Pada tahap ini seluruh kegiatan dari awal hingga akhir penelitian akan dituliskan
ke dalam format penulisan tugas akhir dengan disertai kesimpulan akhir.

UNIVERSITAS SUMATERA UTARA


1.7 Sistematika Penulisan

Sistematika penulisan dari skripsi ini terdiri dari beberapa bagian utama sebagai
berikut:

BAB 1: PENDAHULUAN
Bab ini akan menjelaskan mengenai latar belakang pemilihan judul skripsi
”Analisis dan Implementasi Algoritma Linear Search pada Permainan Word
Scramble”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat
penelitian, metode penelitian, dan sistematika penulisan.

BAB 2: LANDASAN TEORI


Bab ini akan membahas teori-teori yang berkaitan dengan algoritma
pencarian, algoritma Linear Search, pengacakan huruf, dan permainan Word
Scramble.

BAB 3: ANALISIS DAN PERANCANGAN PERANGKAT LUNAK


Bab ini akan membahas mengenai analisis kebutuhan sistem yang meliputi
analisis permainan, analisis algoritma, dan perancangan sistem.

BAB 4: IMPLEMENTASI DAN PENGUJIAN


Bab ini menjelaskan prasyarat dan syarat yang harus dipenuhi agar perangkat
lunak yang dikembangkan dapat dijalankan secara baik serta pengujian
terhadap perangkat lunak tersebut.

BAB 5: KESIMPULAN DAN SARAN


Bab ini memuat kesimpulan dari uraian bab-bab sebelumnya dan hasil
penelitian yang diperoleh. Bab ini juga memuat saran yang diharapkan dapat
bermanfaat untuk pengembangan selanjutnya.

UNIVERSITAS SUMATERA UTARA


BAB 2

LANDASAN TEORI

2.1 Algoritma

Algoritma berasal dari nama ilmuwan muslim dari Uzbekistan, Abu Ja’far
Muhammad bin Musa Al-Khuwarizmi (780-846M). Pada awalnya kata algoritma
adalah istilah yang merujuk kepada aturan-aturan aritmetika untuk menyelesaikan
persoalan dengan menggunakan bilangan numerik arab. Pada abad ke-18, istilah ini
berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah
yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan. Pemecahan
sebuah masalah pada hakikatnya adalah menemukan langkah-langkah tertentu yang
jika dijalankan efeknya akan memecahkan masalah tersebut [7].

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang


disusun secara sistematis dan logis. Kata logis merupakan kata kunci dalam algoritma.
Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai
salah atau benar [8].

Ada beberapa tipe masalah algoritma, antara lain [2]:


1. Pengurutan
Masalah pengurutan berhubungan dengan bagaimana mengurutkan kembali
unsur-unsur dari suatu daftar yang diberikan.
2. Pencarian
Masalah pencarian berhubungan dengan bagaimana menemukan suatu nilai
yang disebut kunci pencarian (search key) dalam suatu himpunan (set).

UNIVERSITAS SUMATERA UTARA


3. Pemrosesan String
Salah satu masalahnya yaitu mencari kata tertentu dalam teks yang disebut
pencocokan string.
4. Masalah Grafik
Dalam algoritma, masalah grafik mencakup graph traversal algorithms dan
shortest-path algorithms.
5. Masalah Kombinatoris
Prespektik abstrak, masalah traveling salesman, dan masalah pewarnaan grafik
merupakan contoh dari masalah kombinatorik.
6. Masalah Geometris
Masalah ini berhubungan dengan objek geometris, seperti titik, garis, dan
poligon.
7. Masalah Numerik
Algoritma ini banyak dikembangkan pada masalah yang mencakup objek
matematis yang bersifat menyelesaikan persamaan dan sistem persamaan,
menghitung integral tertentu, dan mengevaluasi sebuah fungsi.

2.2 Algoritma Pencarian

Pengertian string menurut Dictionary of Algorithms and Data Structures, National


Institute of Standards and Technology (NIST) adalah susunan dari karakter-karakter
(angka, alfabet atau karakter yang lain) dan biasanya direpresentasikan sebagai
struktur data array. String dapat berupa kata, frase, atau kalimat [9].

Algoritma pencarian adalah algoritma untuk mencari nilai dalam struktur data
[9]. Pencocokan string merupakan bagian penting dari sebuah proses pencarian string
(string searching) dalam sebuah dokumen. Hasil dari pencarian sebuah string dalam
dokumen tergantung dari teknik atau cara pencocokan string yang digunakan.

Untuk mengukur performansi metode pencarian, terdapat empat kriteria yang


dapat digunakan [1] :
1. Completeness : apakah metode tersebut menjamin penemuan solusi jika
solusinya memang ada,

UNIVERSITAS SUMATERA UTARA


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. Algoritma pencarian sekuensial ini cocok untuk pencarian nilai tertentu pada
sekumpulan data terurut maupun tidak.
2. Keunggulan algoritma ini adalah dalam mencari sebuah nilai dari sekumpulan
kecil data.
3. 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 yaitu:


1. Pencarian dapat dilakukan di struktur data apapun yang dapat diakses secara
sekuensial (misalnya array, linked list), sementara sebagian algoritma lain

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 O(n)

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
ditemukan.

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 1/2 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

Proses ini berfungsi sebagai pengacak huruf yang akan keluar di setiap kotak pada
papan permainan. Huruf-huruf pada setiap kotak diacak sedemikian rupa agar huruf
acak yang diperoleh adalah huruf-huruf yang memiliki frekuensi kemunculan yang
tinggi, sehingga lebih mudah untuk mendapatkan campuran yang baik antara vokal
dan konsonan. Oleh karena itu, dibutuhkan suatu daftar frekuensi huruf yang paling
sering muncul dalam bahasa Inggris.

Frase mnemonik “ETAOIN SHRDLU” sering digunakan untuk mengingat 12


buah huruf yang paling sering muncul di dalam teks Bahasa Inggris [4].

UNIVERSITAS SUMATERA UTARA


Tabel 2.1 Daftar Nilai Frekuensi Huruf yang Akan Diacak

No. Huruf Frekuensi Inisialisasi


1 E 12.702% 12
2 T 9.056% 9
3 A 8.167% 8
4 O 7.507% 7
5 I 6.966% 7
6 N 6.749% 6
7 S 6.327% 6
8 H 6.094% 6
9 R 5.987% 6
10 D 4.253% 4
11 L 4.025% 4
12 C 2.782% 3
13 U 2.758% 3
14 M 2.406% 2
15 W 2.360% 2
16 F 2.228% 2
17 G 2.015% 2
18 Y 1.974% 2
19 P 1.929% 2
20 B 1.492% 1
21 V 0.978% 1
22 K 0.772% 1
23 J 0.153% 1
24 X 0.150% 1
25 Q 0.0`5% 1
26 Z 0.074% 1
(Robert Lewand, 2000)

Menurut table di atas, jumlah seluruh inisialisasinya adalah 100, maka dapat
didefinisikan sebuah array dengan interval 0 sampai 99 seperti ini:
alfabet[0] = [0-7] (Huruf A memiliki nilai frekuensi 0 sampai 7)
alfabet[1] = [8] (Huruf B memiliki nilai frekuensi 8)
...
alfabet[24] = [97-98] (Huruf Y memiliki nilai frekuensi 97 sampai 98)
alfabet[25] = [99] (Huruf Z memiliki nilai frekuensi 99)

Kemudian saat proses generalisasi angka acak frekuensi pada interval 0 hingga
99, program hanya mencari dalam interval array dan mendapatkan huruf yang
terdapat pada interval tersebut.
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"]

UNIVERSITAS SUMATERA UTARA


frek ← random()*99

if 0<= frek and frek <=7 then


begin
alfabet[0]
end

2.5 Word Scramble

Scramble merupakan pengembangan dari permainan scrabble yang sangat inspiratif.


Pola permainannya yang menjadi inspirasi dalam mengerjakan tugas akhir ini.
Permainan ini dimulai dengan mengacak huruf dengan tingkat frekuensi yang
berbeda-beda untuk diisi pada papan berukuran 4x4 kotak, masing-masing kotak diisi
dengan huruf berbeda atau sama tergantung nilai acak yang diperoleh. Selanjutnya
pemain harus mencari kata yang bisa dibentuk dari huruf yang sudah terisi pada
papan. Pemain akan diberikan waktu untuk menebak dan harus mencari kata sebanyak
mungkin. Pemain akan mendapatkan nilai sesuai dengan jumlah huruf pada setiap kata
valid yang berhasil ditebak.

2.5.1 Aturan Permainan Word Scramble

Aturan permainan Word Scramble secara umum adalah sebagai berikut:


1. Pemain mencari kata sebanyak-banyaknya dari huruf acak yang terdapat pada
papan permainan. Huruf-huruf tersebut harus terhubung secara vertikal,
horizontal atau diagonal.
2. Setiap kotak hanya bisa digunakan satu kali dalam satu kata.
3. Jawaban minimal terdiri dari tiga huruf.
4. Permainan berakhir ketika waktu habis.
5. Nilai yang didapat berdasarkan panjang kata yang diperoleh.

UNIVERSITAS SUMATERA UTARA


M F R V

C A V R

D E G A

E E N A

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 = (f/N) * I kb ........................................ ................................................. (2.1)


P total = ∑ P k / n ........................................ ................................................. (2.2)

Dimana:
Pk = persentase untuk k kondisi dalam hal tidak baik, kurang baik, baik,
dan sangat baik
f = total respon dalam k kondisi
N = jumlah responden
I kb = interpretasi k kondisi terbesar (dalam hal ini tidak baik 25%, kurang
baik 50%, baik 75%, dan sangat baik 100%)
P total = persentase untuk jumlah keseluruhan persentase pertanyaan
n = banyak pertanyaan

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 nilai(kata) 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 O(80325).

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 : String(kamus)
kata ← isi_kamus.split()
Tampilan()
Papan(30,50,huruf_mendatar,huruf_menurun,uk_tombol)
MulaiWaktu(waktu)
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 ← random()*99

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 ← Button(e.target)
if not tombol_terakhir then
begin
KataBaru(b.label)
end
else if Ketetanggaan (b,tombol_terakhir)) then
begin
TambahTebakan(b.label)
end
else
begin
KataBaru(b.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_sesudah(tombol_sesudah + 3))
var kolom_sesudah ← (tombol_sesudah(tombol_sesudah + 3))
var baris_sebelum ← (tombol_sebelum(tombol_sebelum + 3))
var kolom_sebelum ← (tombol_sebelum(tombol_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 SudahKetemu(kata_tebakan) then
begin
var indeks_kata:Number ← CariKata(kata_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.

FACE
M F R V Tambah

C A V R
Hapus
D E G A

E E N A

W O R D

S C R A M B L E

Gambar 3.1 Langkah 1

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.

Kata Baru Ditemukan!


M F R V Tambah Total nilai : 3

C A V R Hapus

D E G A Daftar Kata :

E E N A FACE

W O R D

S C R A M B L E

Gambar 3.2 Langkah 3

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

waktu_sisa = 120

HurufAcak ()

HurufTerpilih ()

TambahKata ()

waktu_sisa Tidak

=0?

Ya

“Waktu habis !”

End

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 = random(99)

Ya Tidak Ya
alfabet[1] frek = 8-9 ? frek = 0-7 ? alfabet[0]

Tidak

Ya Tidak Ya
alfabet[2] frek = 10-14 ? frek = 15-17 ? alfabet[3]

A Tidak A

Ya Tidak Ya
alfabet[5] frek = 29-30 ? frek = 18-28 ? alfabet[4]

Tidak

Ya Tidak Ya
alfabet[6] frek = 31-32 ? frek = 33-35 ? alfabet[7]

A Tidak A

Ya Tidak Ya
alfabet[9] frek = 43 ? frek = 36-42 ? alfabet[8]

Tidak

Ya Tidak Ya
alfabet[10] frek = 44 ? frek = 45-49 ? alfabet[11]

Tidak

Ya Tidak Ya
alfabet[13] frek = 53-59 ? frek = 50-52 ? alfabet[12]

Tidak

Ya Tidak Ya
alfabet[14] frek = 60-66 ? frek = 67-69 ? alfabet[15]

A Tidak A

Ya Tidak Ya
alfabet[17] frek = 71-77 ? frek = 70 ? alfabet[16]

Tidak

Ya Tidak Ya
alfabet[18] frek = 78-83 ? frek = 84-90 ? alfabet[19]

A Tidak A

Ya Tidak Ya
alfabet[21] frek = 94 ? frek = 91-93 ? alfabet[20]

Tidak

Ya Tidak Ya
alfabet[22] frek = 95 ? frek = 96 ? alfabet[23]

Tidak

Tidak Ya
A End alfabet[25] frek = 97-98 ? alfabet[24]

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 Ya
KataBaru()
= null ?

Tidak

Ketetanggaan (b, Tidak


Ya
kata_tebakan = kata_tebakan + huruf tombol_terakhir) =
true ?

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

kolom_sebelum – Ya
baris_sebelum – Ya
kolom_sesudah <= 1
baris_sesudah <= 1 ?
?

Tidak
Tidak

Ketetanggaan = false

End Ketetanggaan = true

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=
Tidak
tombol.length i=i+1
?

Ya

kata_tebakan = huruf

End

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, panjang_kata,
SudahKetemu, indeks_kata,
CariKata, kata_ketemu

kata_tebakan.length < Ya
KataBaru = “ “
panjang_kata ?

“ Minimal 3 huruf !”
Tidak

SudahKetemu Ya
KataBaru = “ “
(kata_tebakan) = true ?

“ Kata sudah
Tidak
dimasukkan”

indeks_kata =
CariKata(kata_tebakan)

Ya Tidak
kata_ketemu = push(kata_tebakan) indeks_kata > -1 ? KataBaru = “ “

“ Kata tidak ada


KataBaru = “ “
dalam kamus !”

Nilai ()

“ Kata baru telah


End
ditemukan !”

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 i=i+1

Tidak

a= i=
Tidak
kata_ketemu[i] kata_ketemu.length
? ?

Ya Ya

SudahKetemu = true SudahKetemu = false

End

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

kata, huruf, i,
Kata, CariKata

i=0

i=i+1

Kata = kata[i]
Tidak

huruf = Tidak
i = kata.length ?
kata[i] ?

Ya Ya

CariKata = i CariKata = -1

End

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

nilai_total = 0

i=0

i=i+1

Kata = kata_ketemu[i]

Tidak

nilai_total = nilai_total + nilai[Kata.length]

i=
daftar_kata = daftar_kata + Kata
kata_ketemu.length ?

Ya

“Total Nilai : nilai_total”


End
“Daftar Kata : daftar_kata”

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

Perancangan sistem yang akan dibahas meliputi perancangan aplikasi permainan dan
perancangan antarmuka.

3.2.1 Perancangan Aplikasi Permainan

Perancangan aplikasi permainan merupakan perancangan interaksi yang dapat


dilakukan pemain terhadap aplikasi permainan yang dibangun. Aplikasi akan dimulai
dengan menampilkan frame Menu yang tersedia tombol pilihan Mulai, Aturan,
Tentang dan Keluar. Setiap tombol akan memberikan tampilan pada frame-frame
berikutnya. Aplikasi akan berhenti jika pengguna memilih tombol Keluar. Berikut ini
adalah proses yang terjadi pada aplikasi permainan Word Scramble yang dapat dilihat
pada Gambar 3.11.
Start

Tampilkan
Frame Menu

Tampilkan
Ya Pilih tombol
Frame Arena Pilih tombol Kembali
Mulai ?
Permainan

Tidak
Bermain Word Scramble
Tampilkan
Pilih tombol Ya Frame Aturan
Aturan ?
Permainan
Permainan berakhir
Tidak

Pilih tombol Kembali Tampilkan


Pilih tombol Ya Frame Tentang
Tentang ?
Permainan

Tidak

Pilih tombol
Keluar

End

UNIVERSITAS SUMATERA UTARA


Gambar 3.12 Flowchart Aplikasi

3.2.2 Perancangan Antarmuka

Perancangan antarmuka aplikasi permainan Word Scramble ini terdiri dari beberapa
frame, yaitu frame Menu, frame Arena Permainan, frame Aturan Permainan, dan
frame Tentang Permainan. Berikut ini adalah rancangan antarmuka frame- frame
tersebut.

1. Frame Menu
Frame Menu merupakan frame yang pertama kali ditampilkan pada saat
aplikasi dijalankan. Frame ini berisikan menu yang dapat dipilih oleh
pengguna yaitu Mulai, Aturan, Tentang dan Keluar. Rancangan antarmuka
frame ini dapat dilihat pada Gambar 3.12.

1
W O R D

S C R A M B L E

5 3 4

Gambar 3.13 Frame Menu

Keterangan :
1. Word Scramble merupakan judul aplikasi yang dirancang dengan
menggunakan komponen Graphic.

UNIVERSITAS SUMATERA UTARA


2. Mulai merupakan tombol yang berfungsi untuk menampilkan frame
Arena Permainan yang dirancang dengan menggunakan komponen
Button.
3. Aturan merupakan tombol yang berfungsi untuk menampilkan frame
Aturan Permainan yang dirancang dengan menggunakan komponen
Button.
4. Tentang merupakan tombol yang berfungsi untuk menampilkan frame
Tentang Permainan yang dirancang dengan menggunakan komponen
Button.
5. Keluar merupakan tombol yang berfungsi untuk keluar dari aplikasi yang
dirancang dengan menggunakan komponen Button.

2. Frame Arena Permainan


Frame arena permainan merupakan frame yang digunakan untuk bermain
Word Scramble. Rancangan antarmuka frame ini dapat dilihat pada Gambar
3.13.

7
2 3
6
4

1 W O R D

S C R A M B L E

Gambar 3.14 Frame Arena Permainan


Keterangan :
1. Word Scramble merupakan judul aplikasi yang dirancang dengan
menggunakan komponen Graphic.

UNIVERSITAS SUMATERA UTARA


2. Papan merupakan komponen Button yang berfungsi untuk menampilkan
huruf acak yang akan ditebak.
3. Tambah merupakan komponen Button yang berfungsi untuk memeriksa
jawaban pemain apakah benar atau tidak.
4. Hapus merupakan komponen Button yang berfungsi untuk menghapus
jawaban sebelum diperiksa.
5. Kembali merupakan komponen Button yang berfungsi untuk kembali ke
frame Menu jika waktu sudah habis.
6. Hasil Nilai merupakan komponen Text Area yang berfungsi menampilkan
nilai dan semua jawaban benar yang diperoleh pemain.
7. Status Kata merupakan komponen Movie Clip yang berfungsi
menampilkan huruf yang dipilih.
8. Status Waktu merupakan komponen Movie Clip yang berfungsi
menampilkan jumlah waktu yang tersisa untuk menebak jawaban.

3. Frame Aturan Permainan


Frame aturan permainan merupakan frame yang berisikan peraturan sekaligus
cara bermain sehingga dapat memberikan informasi kepada pengguna tentang
permainan Word Scramble. Rancangan antarmuka frame ini dapat dilihat pada
Gambar 3.14.

1
W O R D
3
S C R A M B L E

Gambar 3.15 Frame Aturan Permainan

UNIVERSITAS SUMATERA UTARA


Keterangan :
1. Word Scramble merupakan judul aplikasi yang dirancang dengan
menggunakan komponen Graphic.
2. Komponen Static Text yang berfungsi untuk menampilkan aturan dan cara
bermain Word Scramble.
3. Kembali merupakan komponen Button yang berfungsi untuk kembali ke
frame awal.

4. Frame Tentang Permainan


Frame tentang permainan merupakan frame yang berisikan informasi
mengenai profil penulis. Rancangan antarmuka frame ini dapat dilihat pada
Gambar 3.15.

1
W O R D
3
S C R A M B L E

Gambar 3.16 Frame Tentang Permainan

Keterangan :
1. Word Scramble merupakan judul aplikasi yang dirancang dengan
menggunakan komponen Graphic.
2. Komponen Static Text yang berfungsi untuk menampilkan informasi
mengenai profil penulis.
3. Kembali merupakan komponen Button yang berfungsi untuk kembali ke
frame awal.

UNIVERSITAS SUMATERA UTARA


BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi Sistem

Tahap implementasi dilakukan sesuai dengan analisis dan perancangan sistem pada
bab sebelumnya. Implementasi aplikasi permainan Word Scramble meliputi
kebutuhan perangkat lunak dan perangkat keras untuk dapat membangun permainan
dengan optimal. Pada tahap ini seluruh spesifikasi dari aplikasi yang dirancang akan
diterjemahkan ke dalam source code dan rancangan antarmuka sehingga
menghasilkan sebuah aplikasi.

4.1.1 Spesifikasi Perangkat Lunak

Perangkat lunak yang digunakan dalam pembuatan permainan Word Scramble ini
adalah Adobe Flash CS5 dengan menggunakan ActionScript 3.0. Penggunaan
ActionScript 3.0 sebagai external class bertujuan agar pemrograman menjadi lebih
teroraganisir karena source code dan animasi tidak berada dalam satu timeline.
Aplikasi ini dibangun pada sistem operasi Windows 7 Home Premium.

4.1.2 Spesifikasi Perangkat Keras

Pada pengimplementasian aplikasi permainan Word Scramble, penulis menggunakan


sebuah laptop yang mempunyai spesifikasi perangkat keras sebagai berikut:
1. Prosesor Intel Core i3
2. Memory RAM 4 GB.
3. Hard Disk 320 GB.
4. Monitor 14.1” dengan resolusi layar 1366 x 768 pixel.

UNIVERSITAS SUMATERA UTARA


4.1.3 Implementasi Rancangan Fungsi

Implementasi rancangan fungsi merupakan hasil transformasi dari proses perancangan


fungsi algoritma yang telah dijelaskan pada flowchart di bab sebelumnya menjadi
source code dalam aplikasi. Hasil list program dapat dilihat pada lampiran A.

4.1.4 Implementasi Rancangan Antarmuka

Berikut ini akan diperlihatkan tampilan antarmuka dari aplikasi permainan Word
Scramble.

4.1.4.1 Tampilan Utama

Tampilan utama dari aplikasi permainan Word Scramble ini dapat dilihat pada
Gambar 4.1. Gambar tersebut memperlihatkan tampilan daftar menu yang dapat
dipilih oleh pemain. Pada tampilan ini, pemain dapat memilih tombol Mulai yang
menampilkan Arena Permainan. Jika pemain memilih tombol Aturan, maka akan
ditampilkan Tampilan Aturan Permainan yang berisi peraturan dan cara bermain
permainan Word Scramble. Jika pemain memilih Tentang Permainan, maka akan
ditampilkan mengenai penulis. Jika pemain memilih Keluar, maka pemain akan keluar
dari aplikasi permainan ini. Tampilan Utama dapat dilihat pada Gambar 4.1 berikut.

Gambar 4.1 Tampilan Utama

UNIVERSITAS SUMATERA UTARA


4.1.4.2 Tampilan Arena Permainan

Tampilan arena permainan Word Scramble pada Gambar 4.2 memperlihatkan arena
permainan ketika permainan baru dimulai. Gambar 4.3 memperlihatkan arena
permainan ketika permainan sedang berlangsung.

Gambar 4.2 Tampilan Arena Permainan

Gambar 4.3 Tampilan Arena Permainan Ketika Permainan Sedang Berlangsung

UNIVERSITAS SUMATERA UTARA


Gambar 4.4 menampilkan arena permainan ketika permainan berakhir yaitu
dengan menunjukkan pesan bahwa waktu telah habis, tombol Kembali, Total Nilai
dan Daftar Kata yang diperoleh Pemain.

Gambar 4.4 Tampilan Arena Permainan Ketika Permainan Selesai

4.1.4.3 Tampilan Aturan Permainan

Pada tampilan ini, akan ditampilkan peraturan permainan Word Scramble yang
ditetapkan pada aplikasi sekaligus cara bermainnya dan tombol Kembali. Berikut ini
adalah Tampilan Aturan Permainan yang dapat dilihat pada Gambar 4.5.

Gambar 4.5 Tampilan Aturan Permainan

UNIVERSITAS SUMATERA UTARA


4.1.4.4 Tampilan Tentang Permainan

Pada tampilan ini, akan ditampilkan informasi mengenai penulis. Berikut ini adalah
Tampilan Permainan yang dapat dilihat pada Gambar 4.6.

Gambar 4.6 Tampilan Tentang Permainan

4.2 Pengujian Aplikasi

Pada tahap pengujian ini akan dievaluasi apakah aplikasi yang dibangun sesuai
dengan tujuan yang diharapkan atau tidak. Pengujian ini dilakukan untuk menemukan
kelemahan yang ada pada aplikasi dan mendemonstrasikan fungsi-fungsinya apakah
telah bekerja sesuai dengan spesifikasi, kebutuhan serta kinerjanya. Pengujian yang
akan dilakukan pada aplikasi ini adalah pengujian integrasi aplikasi dan pengujian
responden.

Metode yang digunakan pada pengujian ini adalah Black Box. Dengan Black
Box, pengujian hanya dilakukan pada representasi sistem yang terlihat tanpa perlu
mengetahui bagaimana cara kerja sistem tersebut. Teknik yang digunakan dalam
pengujian Black Box antara lain:
1. Menguji fungsi-fungsi khusus dari perangkat lunak yang dirancang.

UNIVERSITAS SUMATERA UTARA


2. Kebenaran perangkat lunak yang diuji hanya dilihat berdasarkan keluaran yang
dihasilkan dari data atau kondisi masukan yang diberikan untuk fungsi yang
ada tanpa melihat bagaimana proses untuk mendapatkan keluaran tersebut.
3. Dari keluaran yang dihasilkan, kemampuan program dalam memenuhi
kebutuhan pemakai dapat diukur dan dapat diketahui kesalahan-kesalahannya.

4.2.1 Pengujian Integrasi Aplikasi

Pengujian integrasi dilakukan terhadap sistem dan subsistem lengkap beserta


komponen-komponen penyusunnya yang terintegrasi. Pengujian integrasi ini akan
dilakukan pada satu platform yaitu Windows untuk memastikan keadaan aplikasi pada
sistem operasi itu dapat bekerja dengan baik. Berikut ini adalah pengujian integrasi
aplikasi pada tiap proses pada platform Windows.

4.2.1.1 Proses pada Tampilan Utama

Berikut adalah hasil evaluasi proses pada Tampilan Utama pada platform Windows
yang dapat dilihat pada Tabel 4.1.

Tabel 4.1 Hasil Evaluasi Proses pada Tampilan Utama


No. Sasaran Pengujian Output Status
1. Uji tampilan aplikasi Tampilan Utama menampilkan Baik
ketika dieksekusi tombol Mulai, tombol Aturan,
tombol Tentang dan tombol Keluar
2. Uji pemilihan tombol Tampilan Arena Permainan Baik
Mulai ditampilkan
3. Uji pemilihan tombol Tampilan Aturan Permainan Baik
Aturan ditampilkan
4. Uji pemilihan tombol Tampilan Tentang pembuat Baik
Tentang aplikasi permainan ditampilkan
5. Uji pemilihan tombol Aplikasi berhenti dan pemain Baik
Keluar keluar dari aplikasi

UNIVERSITAS SUMATERA UTARA


4.2.1.2 Proses pada Tampilan Arena Permainan

Berikut adalah hasil evaluasi proses pada tampilan Arena Permainan pada platform
Windows yang dapat dilihat pada Tabel 4.2.

Tabel 4.2 Hasil Evaluasi Proses pada Tampilan Arena Permainan


No. Sasaran Pengujian Output Status
1. Uji tampilan Arena Arena Permainan menampilkan Baik
Permainan Papan Word Scramble, Status Kata,
Status Waktu, Hasil Nilai, tombol
Tambah, tombol Hapus, dan tombol
Kembali.
2. Uji tampilan Papan Papan Word Scramble Baik
Word Scramble menampilkan huruf acak
berdasarkan nilai frekuensi yang
terpilih
3. Uji tampilan Status Huruf yang telah dipilih Baik
Kata ditampilkan
4. Uji tampilan Status Sisa waktu ditampilkan Baik
Waktu
5. Uji tampilan Nilai Nilai yang diperoleh sesuai dengan Baik
kata yang ditemukan
6. Uji pemilihan tombol Jawaban diperiksa apakah terdapat Baik
Tambah dalam kamus atau tidak
7. Uji pemilihan tombol Pemain membatalkan jawabannya Baik
Hapus untuk memulai jawaban yang baru
8. Uji pemilihan tombol Tampilan Utama ditampilkan Baik
Kembali

4.2.1.3 Proses pada Tampilan Aturan Permainan

Berikut adalah hasil evaluasi proses pada tampilan Aturan Permainan pada platform
Windows yang dapat dilihat pada Tabel 4.3.
Tabel 4.3 Hasil Evaluasi Proses pada Tampilan Aturan Permainan
No. Sasaran Pengujian Output Status
1. Uji tampilan Aturan Tampilan Aturan Permainan Baik
Permainan menampilkan informasi
mengenai peraturan permainan,
cara bermain dan tombol Kembali
2. Uji pemilihan tombol Tampilan Utama ditampilkan Baik
Kembali

UNIVERSITAS SUMATERA UTARA


4.2.1.4 Proses pada Tampilan Tentang Permainan

Berikut adalah hasil evaluasi proses pada tampilan Tentang permainan pada platform
Windows yang dapat dilihat pada Tabel 4.4.

Tabel 4.4 Hasil Evaluasi Proses pada Tampilan Tentang Permainan


No. Sasaran Pengujian Output Status
1. Uji tampilan Tentang Tampilan Tentang Permainan Baik
Permainan menampilkan informasi
mengenai pembuat aplikasi dan
tombol Kembali
2. Uji pemilihan tombol Tampilan Utama ditampilkan Baik
Kembali

4.2.2 Pengujian Responden

Untuk mengevaluasi aspek antarmuka, penggunaan, dan penilaian, penulis melakukan


pengujian kepada pengguna dengan metode kuisioner. Pengguna (responden)
berjumlah 20 orang. Pada kuisoner ini terdapat penilaian untuk setiap pertanyaan yang
terbagi menjadi empat golongan, yaitu Tidak Baik (TB), Kurang Baik (KB), Baik (B),
dan Sangat Baik (SB). Jika digolongkan dalam bentuk persentase, maka 0-25%
diinterpretasikan dalam kategori Tidak Baik, 26-50% diinterpretasikan dalam kategori
Kurang Baik, 51-75% diinterpretasikan dalam kategori Baik, dan 76-100%
diinterpretasikan dalam kategori Sangat Baik. Hasil kuisioner dapat dilihat pada
lampiran B.

4.2.2.1 Aspek Antarmuka Aplikasi

Pengujian pada antarmuka aplikasi bertujuan untuk mencari tahu seberapa baik
rancangan antarmuka aplikasi bagi pengguna. Hasil evaluasi aspek antarmuka yang
diperoleh dapat dilihat pada Tabel 4.5.

UNIVERSITAS SUMATERA UTARA


Tabel 4.5 Hasil Kuisioner Aspek Antarmuka Aplikasi

Hasil Penilaian
No. Sasaran Pertanyaan Sangat Kurang Tidak
Baik
Baik Baik Baik
1. Ketepatan warna background 4 16 0 0
Ketepatan warna, posisi dan ukuran
2. 3 17 0 0
tulisan
Ketepatan warna, posisi dan ukuran
3. 7 13 0 0
tombol
4. Efek suara 7 9 4 0

Dengan menggunakan rumus (2.1) dan (2.2) dapat dihitung persentase untuk
aspek antarmuka sebagai berikut:

1. Ketepatan warna background


P sangat baik + P baik + P kurang baik + P tidak baik = (4/20)*100% + (16/20)*75% +
(0/20)*50% + (0/20)*25%
= 80 %
2. Ketepatan warna, posisi, dan ukuran tulisan
P sangat baik + P baik + P kurang baik + P tidak baik = (3/20)*100% + (17/20)*75% +
(0/20)*50% + (0/20)*25%
= 78,75%
3. Ketepatan warna, posisi dan ukuran tombol
P sangat baik + P baik + P kurang baik + P tidak baik = (7/20)*100% + (13/20)*75% +
(0/20)*50% + (0/20)*25%
= 83,75%
4. Efek Suara
P sangat baik + P baik + P kurang baik + P tidak baik = (7/20)*100% + (9/20)*75% +
(4/20)*50% + (0/20)*25%
= 78,75%
5. Total Keseluruhan
P total = (80% + 78,75% + 83,75% + 78,75%) / 4 = 80.31%

UNIVERSITAS SUMATERA UTARA


Dari perhitungan tersebut dapat diperoleh, persentase untuk aspek antarmuka
sebesar 80.31% atau diinterpresentasikan sangat baik.

4.2.2.2 Aspek Penggunaan Aplikasi

Pengujian pada aspek ini bertujuan untuk mengevaluasi tingkat kesulitan pengguna
dalam menjalankan aplikasi. Dari pengujian ini akan didapati apakah pengguna
memahami aturan permainan dan fungsi-fungsi dari menu yang ada. Hasil pengujian
dari kuisioner terhadap penggunaan aplikasi permainan Word Scramble ini dapat
dilihat pada Tabel 4.6.

Tabel 4.6 Hasil Kuisioner Aspek Penggunaan Aplikasi


Hasil Penilaian
No. Sasaran Pertanyaan Sangat Kurang Tidak
Baik
Baik Baik Baik
1. Pemahaman fungsi tiap tombol 6 13 1 0
Pemahaman aturan dan cara
2. 3 13 4 0
bermain
3. Kemudahan menjalankan aplikasi 9 10 1 0
4. Kemudahan penggunaan mouse 11 9 0 0

Dengan menggunakan rumus (2.1) dan (2.2) dapat dihitung persentase untuk
aspek
pengguna sebagai berikut:

1. Pemahaman fungsi tiap tombol


P sangat baik + P baik + P kurang baik + P tidak baik = (6/20)*100% + (13/20)*75% +
(1/20)*50% + (0/20)*25%
= 81,25%
2. Pemahaman aturan dan cara bermain
P sangat baik + P baik + P kurang baik + P tidak baik = (6/20)*100% + (13/20)*75% +
(4/20)*50% + (0/20)*25%
= 88,75%

UNIVERSITAS SUMATERA UTARA


3. Kemudahan menjalankan aplikasi
P sangat baik + P baik + P kurang baik + P tidak baik = (9/20)*100% + (10/20)*75% +
(1/20)*50% + (0/20)*25%
= 85%
4. Kemudahan penggunaan mouse
P sangat baik + P baik + P kurang baik + P tidak baik = (11/20)*100% + (9/20)*75% +
(0/20)*50% + (0/20)*25%
= 88,75%
5. Total Keseluruhan
P total = (81,25% + 88,75% + 85% + 88,75%) / 4 = 85,94%

Dari perhitungan tersebut dapat diperoleh, persentase untuk aspek penggunaan


aplikasi sebesar 85,94% atau diinterpresentasikan sangat baik.

4.2.2.3 Aspek Penilaian Aplikasi

Penilaian terhadap aspek penilaian secara keseluruhan bertujuan untuk mengetahui


seberapa jauh rasa kepuasan pengguna sehingga dapat diketahui apakah aplikasi ini
sudah mencapai tujuan yang diharapkan atau tidak. Hasil kuisioner yang diperoleh
untuk pengujian terhadap aspek permainan dapat dilihat pada Tabel 4.7.

Tabel 4.7 Hasil Kuisioner Aspek Penilaian Aplikasi


Hasil Penilaian
No. Sasaran Pertanyaan Sangat Kurang Tidak
Baik
Baik Baik Baik
1. Nilai edukasi dari aplikasi 15 4 1 0
2. Tingkat kesulitan soal 7 12 1 0
3. Ketertarikan terhadap permainan 7 12 1 0
4. Aturan dan cara bermain yang
8 9 3 0
telah ditentukan

Dengan menggunakan rumus (2.1) dan (2.2) dapat dihitung persentase untuk
aspek pengguna sebagai berikut:

UNIVERSITAS SUMATERA UTARA


1. Nilai edukasi dari aplikasi
P sangat baik + P baik + P kurang baik + P tidak baik = (15/20)*100% + (4/20)*75% +
(1/20)*50% + (0/20)*25%
= 90%
2. Tingkat kesulitan soal
P sangat baik + P baik + P kurang baik + P tidak baik = (7/20)*100% + (12/20)*75% +
(1/20)*50% + (0/20)*25%
= 82,5%
3. Ketertarikan terhadap permainan
P sangat baik + P baik + P kurang baik + P tidak baik = (7/20)*100% + (12/20)*75% +
(1/20)*50% + (0/20)*25%
= 82,5%
4. Aturan dan cara bermain yang telah ditentukan
P sangat baik + P baik + P kurang baik + P tidak baik = (8/20)*100% + (9/20)*75% +
(3/20)*50% + (0/20)*25%
= 85%

5. Total Keseluruhan
P total = (90% + 82,5% + 82,5% + 85%) / 4 = 85%

Dari perhitungan tersebut dapat diperoleh, persentase untuk aspek penilaian


aplikasi sebesar 85% atau diinterpresentasikan sangat baik.

UNIVERSITAS SUMATERA UTARA


BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan pembahasan dan evaluasi dari bab-bab terdahulu, maka diperoleh


kesimpulan sebagai berikut:

1. Algoritma Linear Search dapat diimplementasikan sebagai algoritma


pencarian untuk mencocokkan jawaban pemain dengan kata-kata yang ada
pada kamus pada permainan Word Scramble dengan melakukan penelusuran
dari kata pertama hingga kata terakhir pada kamus sampai ditemukan kata
yang sesuai.

2. Pengacakan huruf pada papan permainan dilakukan berdasarkan daftar


frekuensi huruf yang paling sering muncul dalam Bahasa Inggris untuk
mendapatkan kombinasi huruf konsonan dan vokal yang baik sehingga dapat
dirangkai menjadi sebuah kata.

3. Aplikasi permainan Word Scramble yang dibangun mendapatkan penilaian


yang cukup memuaskan dari pengguna dengan penilaian terhadap aspek
antarmuka aplikasi 80,31%, aspek penggunaan aplikasi 85,94%, dan aspek
penilaian aplikasi 85%.

UNIVERSITAS SUMATERA UTARA


5.2 Saran

Berikut ini adalah saran-saran yang dapat dipertimbangkan dalam pengembangan


penelitian ini:

1. Menambahkan kecerdasan buatan dalam permainan Word Scramble.

2. Mengimplementasikan permainan Word Scramble dengan menggunakan


bahasa pemrograman lain seperti PHP, J2ME, atau Java sehingga dapat
menghasilkan aplikasi permainan handphone atau web-based.

3. Aplikasi permainan Word Scramble ini memiliki kekurangan pada kriteria


efek suara yang mendapatkan persentase 78,75%. Untuk itu, aplikasi ini
perlu dikembangkan dengan menambahkan efek suara yang lain selama
permainan berlangsung dan saat pesan pemenang ditampilkan.

4. Menambahkan database untuk menyimpan skor yang diperoleh pemain.

UNIVERSITAS SUMATERA UTARA


DAFTAR PUSTAKA

[1] Coppin, Ben. 2004. Artificial Intelligence Illuminated. United States of


America: Jones and Bartlett.

[2] Levitin, Anany. 2007. Introduction to The Design And Analysis of Algorithms
Second Edition. Villanova University : Pearson Addison Wesley.
[3] Lewand, Robert E. 2000. Cryptological Mathematics. USA: The Mathematical
Association of America.

[4] Munir, Rinaldi. 2006. Kriptografi. Bandung: Informatika.

[5] Purwanto, Eko B. 2008. Perancangan dan Analisis Algoritma. Yogyakarta:


Graha Ilmu.

[6] Sabdifha, Noswa. 2010. Perancangan Dan Pembuatan Aplikasi Word Game
Scramble Pada Board Dua Dimensi. Skripsi. Surabaya: Institut Teknologi
Sepuluh Nopember.

[7] Wahid, Fathul. 2004. Dasar-Dasar Algoritma dan Pemrograman. Yogyakarta:


Andi.

[8] Zarlis, Muhammad dan Handrizal. 2007. Algoritma dan Pemrograman: Teori
dan Praktik Dalam Pascal. Medan: USU Press.

[9] Dictionary of Algorithms and Data Structures. National Institute of Standards


and Technology. http://www.nist.gov/dads/. Diakses tanggal 1 Maret 2012.

[10] More Words. http://www.morewords.com/. Diakses tanggal 1 Maret 2012.

[11] Rodger, Jim. 2003. Searching Arrays : Algorithm and Efficiency.


http://research.cs.queensu.ca/home/cisc121/2006s/webnotes/search.html#Linea
rSearch. Diakses tanggal 12 April 2012.

UNIVERSITAS SUMATERA UTARA


LAMPIRAN A : LISTING PROGRAM

1. WordScramble.as

package {
import flash.display.MovieClip;
import flash.media.Sound;
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.TextFormat;
import flash.utils.Timer;
import flash.events.*;
import fl.controls.TextArea;
import fl.controls.TextInput;
import fl.controls.Button;
import fl.controls.Label;
import fl.events.ComponentEvent;
import flash.system.fscommand;

public class WordScramble extends MovieClip {


private static const kamus:String = "kamus.txt";
private static const panjang_kata:Number = 3;
private static const huruf_menurun:Number = 4;
private static const huruf_mendatar:Number = 4;
private static const uk_tombol:Number = 50;
private static const waktu:Number = 121;
private static const nilai:Array = [null,0,0,2,3,5,6,8,9]

private var loader:URLLoader;


private var alfabet:Array;
private var kata:Array;
private var kata_ketemu:Array;
private var masukan:TextInput;
private var tombol:Array;
private var kata_tebakan:String;
private var status_kata:Label;
private var tombol_terakhir:Button;
private var tambah_tombol:Button;
private var hapus_tombol:Button;
private var tombol_kembali:Button;
private var hasil_nilai:TextArea;
private var daftar_kata:Array;
private var status_waktu:Label;
private var t:Timer;

public function WordScramble() {


stop();
kata_tebakan = new String();
kata_ketemu = new Array();
}

private function Kamus() {


LoadKamus(kamus);
}

UNIVERSITAS SUMATERA UTARA


private function LoadKamus(path:String):void {
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE,LoadKamus2);
loader.load(new URLRequest(path));
}

private function LoadKamus2(e:Event):void {


var isi_kamus:String = String(e.target.data);

kata = isi_kamus.split(String.fromCharCode(13,10));
trace("Kamus" + kamus.length);
Tampilan();

Papan(30,50,huruf_mendatar,huruf_menurun,uk_tombol);
MulaiWaktu(waktu);
}

private function Tampilan(){


var kata:Object = new TextFormat();
kata.font = "Georgia";
kata.size = 16;
kata.color = 0xFFFF00;
status_kata = new Label();
status_kata.autoSize = "left";
status_kata.move(440,20);
status_kata.setStyle("textFormat",kata);
status_kata.text = "";
addChild(status_kata);

tambah_tombol = new Button();


tambah_tombol.move(290,50);
tambah_tombol.setSize(175 / 2, 30);
tambah_tombol.setStyle("textFormat",kata);
tambah_tombol.label = "Tambah";

tambah_tombol.addEventListener(MouseEvent.CLICK,TambahKata);
addChild(tambah_tombol);

hapus_tombol = new Button();


hapus_tombol.move(290,100);
hapus_tombol.setSize(175 / 2, 30);
hapus_tombol.setStyle("textFormat",kata);
hapus_tombol.label = "Hapus";

hapus_tombol.addEventListener(MouseEvent.CLICK,HapusKata);
addChild(hapus_tombol);

hasil_nilai = new TextArea();


hasil_nilai.x = 440;
hasil_nilai.y = 50;
hasil_nilai.setSize(175,255);
hasil_nilai.editable = false;
addChild(hasil_nilai);

status_waktu = new Label();


status_waktu.move(30,255);
status_waktu.setSize(200,50);
status_waktu.setStyle("textFormat",kata);
status_waktu.text = " ";
addChild(status_waktu);

UNIVERSITAS SUMATERA UTARA


}

private function
Papan(startX:Number,startY:Number,total_baris:Number,total_kolom:Numb
er,uk_tombol:Number):void {
var kata:Object = new TextFormat();
kata.font = "Cooper Black";
kata.size = 18;
kata.color = 0xFFFF00;
tombol = new Array();
var kolom:uint;
var baris:uint;
for(baris = 0; baris < total_baris; baris++) {

for(kolom = 0; kolom < total_kolom; kolom++)


{
var b:Button = new Button();
b.x = startX + (kolom*uk_tombol);
b.y = startY + (baris*uk_tombol);
b.addEventListener(MouseEvent.CLICK,
HurufTerpilih);
b.label = HurufAcak();
trace("huruf " + b.label);
b.setSize(uk_tombol,uk_tombol);
b.setStyle("textFormat",kata);
b.name = "buttonRow"+baris+"Col"+kolom;
addChild(b);
tombol.push(b);
}
}
}

private function HurufAcak():String {


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"];
var frek:int =(Math.random()*99);

if(0<=frek && frek<=7){trace(frek);return


alfabet[0].toString();}
if(frek==8){trace(frek);return
alfabet[1].toString();}
if(frek >= 9 && frek<=11){trace(frek);return
alfabet[2].toString();}
if(frek >= 12 && frek<=15){trace(frek);return
alfabet[3].toString();}
if(frek >= 16 && frek<=27){trace(frek);return
alfabet[4].toString();}
if(frek>=28 && frek<=29){trace(frek);return
alfabet[5].toString();}
if(frek>=30 && frek<=31){trace(frek);return
alfabet[6].toString();}
if(frek >=32 && frek<=37){trace(frek);return
alfabet[7].toString();}
if(frek >=38 && frek<=44){trace(frek);return
alfabet[8].toString();}
if(frek==45){trace(frek);return
alfabet[9].toString();}

UNIVERSITAS SUMATERA UTARA


if(frek==46){trace(frek);return
alfabet[10].toString();}
if(frek >= 47 && frek<=50){trace(frek);return
alfabet[11].toString();}
if(frek >= 51 && frek<=52){trace(frek);return
alfabet[12].toString();}
if(frek >= 53 && frek<=58){trace(frek);return
alfabet[13].toString();}
if(frek >= 59 && frek<=65){trace(frek);return
alfabet[14].toString();}
if(frek >= 66 && frek<=67){trace(frek);return
alfabet[15].toString();}
if(frek==68){trace(frek);return
alfabet[16].toString();}
if(frek >=69 && frek<=74){trace(frek);return
alfabet[17].toString();}
if(frek >=75 && frek<=80){trace(frek);return
alfabet[18].toString();}
if(frek >= 81 && frek<=89){trace(frek);return
alfabet[19].toString();}
if(frek >= 90 && frek<=92){trace(frek);return
alfabet[20].toString();}
if(frek==93){trace(frek);return
alfabet[21].toString();}
if(frek >=94 && frek<=95){trace(frek);return
alfabet[22].toString();}
if(frek==96){trace(frek);return
alfabet[23].toString();}
if(frek>=97 && frek<=98){trace(frek);return
alfabet[24].toString();}
if(frek==99){trace(frek);return
alfabet[25].toString();}
return alfabet.toString();
}

private function HurufTerpilih(e:MouseEvent):void {


var b:Button = Button(e.target);
trace("Pilihan: " + b.label);

if(!tombol_terakhir) {
KataBaru(b.label);
}
else if(Ketetanggaan(b,tombol_terakhir)) {
TambahTebakan(b.label);
}
else {
KataBaru(b.label);
}
tombol_terakhir = b;
b.enabled = false;
}

private function TambahTebakan(huruf:String):void {


kata_tebakan += huruf;
status_kata.text = kata_tebakan;
trace("Tambahan: " + kata_tebakan);
}

private function KataBaru(huruf:String):void {


trace("Mulai kata baru");

UNIVERSITAS SUMATERA UTARA


var i:uint;
for(i = 0; i<tombol.length; i++) {
tombol[i].enabled = true;
}
kata_tebakan = huruf;
status_kata.text = huruf;
}

private function
Ketetanggaan(tombol_sebelum:Button,tombol_sesudah:Button):Boolean {
var baris_sesudah:Number =
Number(tombol_sesudah.name.charAt(tombol_sesudah.name.indexOf("Row")
+ 3));
var kolom_sesudah:Number =
Number(tombol_sesudah.name.charAt(tombol_sesudah.name.indexOf("Col")
+ 3));
var baris_sebelum:Number =
Number(tombol_sebelum.name.charAt(tombol_sebelum.name.indexOf("Row")
+ 3));
var kolom_sebelum:Number =
Number(tombol_sebelum.name.charAt(tombol_sebelum.name.indexOf("Col")
+ 3));

return ((Math.abs(baris_sebelum - baris_sesudah) <=


1) &&
(Math.abs(kolom_sebelum -
kolom_sesudah) <= 1));
}

private function TambahKata(e:MouseEvent):void {


if(kata_tebakan.length < panjang_kata) {
KataBaru("");
status_kata.text = "Minimal " + panjang_kata
+ " huruf!";
}
else if(!SudahKetemu(kata_tebakan)) {
var indeks_kata:Number =
CariKata(kata_tebakan.toLowerCase());
if(indeks_kata > -1) {
kata_ketemu.push(kata_tebakan);
KataBaru("");
Nilai();
status_kata.text = "Kata baru
ditemukan!"
}
else {
KataBaru("");

status_kata.text = "Kata tidak ada


dalam kamus!"
}
}
else {
KataBaru("");
status_kata.text = "Kata sudah dimasukkan."
}
}

private function HapusKata(e:MouseEvent):void {


KataBaru("");

UNIVERSITAS SUMATERA UTARA


}

private function SudahKetemu(a:String):Boolean {


var i:uint;
for(i = 0; i<kata_ketemu.length; i++) {
if(a == kata_ketemu[i]) return true;
}
return false;
}

private function CariKata(huruf:String):Number {


var i:uint = 0
for(i=0; i<kata.length; i++) {
var Kata:String = kata[i];
if(huruf == kata[i]) {
return i;
}
}
return -1;
}

private function Nilai():void {


var daftar_kata = new Array();
var nilai_total:Number = 0;
var i:uint;
for(i=0; i<kata_ketemu.length; i++) {
var Kata:String = kata_ketemu[i];
nilai_total += nilai[Kata.length];
daftar_kata += Kata + "\n";
}
hasil_nilai.text = "Total Nilai: " + nilai_total +
"\n" + "\n" + "Daftar Kata: " + "\n" + daftar_kata;
}

private function MulaiWaktu(total_waktu:Number):void {


t = new Timer(1000, total_waktu);
t.addEventListener(TimerEvent.TIMER,hitung_waktu);

t.addEventListener(TimerEvent.TIMER_COMPLETE,waktu_habis);
t.start();
}

private function hitung_waktu(e:TimerEvent):void {


var waktu_sisa:Number = waktu -
e.target.currentCount;
status_waktu.text = "Sisa waktu: " +
String(waktu_sisa);
}
private function waktu_habis(e:TimerEvent):void {
status_waktu.text = "Waktu habis!";
var i:uint;
for(i=0; i<tombol.length; i++) {
tombol[i].enabled = false;
}
tambah_tombol.enabled = false;
hapus_tombol.enabled = false;
var kata:Object = new TextFormat();
kata.font = "Georgia";
kata.size = 16;
kata.color = 0xFFFF00;

UNIVERSITAS SUMATERA UTARA


tombol_kembali = new Button();
tombol_kembali.move(290,150);
tombol_kembali.setSize(175 / 2, 30);
tombol_kembali.setStyle("textFormat",kata);
tombol_kembali.label = "Kembali";

tombol_kembali.addEventListener(MouseEvent.CLICK,Kembali);
addChild(tombol_kembali);
status_kata.text = "";
}

private function Kembali(e:MouseEvent):void {


var i:uint;
for(i=0; i<tombol.length; i++) {
tombol[i].enabled = false;
removeChild(tombol[i]);
tombol[i]=null;
}
removeChild(status_kata);
removeChild(tambah_tombol);
removeChild(hapus_tombol);
removeChild(hasil_nilai);
removeChild(status_waktu);
removeChild(tombol_kembali);
kata_ketemu=[];
gotoAndStop(5);
}
}
}

UNIVERSITAS SUMATERA UTARA


LAMPIRAN B : HASIL KUISIONER

Tabel Hasil Kuisioner Untuk Aspek Antarmuka dan Penggunaan Aplikasi


Antarmuka Penggunaan
No Nama TTD
1 2 3 4 5 1 2 3 4
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.

Keterangan :
A = Sangat Baik
B = Baik
C = Kurang Baik
D = Tidak Baik

UNIVERSITAS SUMATERA UTARA


Tabel Hasil Kuisioner untuk Aspek Penilaian Aplikasi
Penilaian
No Nama TTD
1 2 3 4 5
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.

Keterangan :
A = Sangat Baik
B = Baik
C = Kurang Baik
D = Tidak Baik

UNIVERSITAS SUMATERA UTARA


I. Kriteria Aplikasi

Penilaian
No. Kriteria
SB B KB TB

1. Ketepatan warna background 4 16 0 0


2. Ketepatan warna, posisi dan ukuran tulisan 3 17 0 0
3. Ketepatan warna, posisi dan ukuran tombol 7 13 0 0
4. Efek suara 7 9 4 0
1. Pemahaman fungsi tiap tombol 6 13 1 0
2. Pemahaman aturan dan cara bermain 3 13 4 0
3. Kemudahan menjalankan aplikasi 9 10 1 0
4. Kemudahan penggunaan mouse 11 9 0 0
1. Nilai edukasi dari aplikasi 15 4 1 0
2. Tingkat kesulitan soal 7 12 1 0
3. Ketertarikan terhadap permainan 7 12 1 0
4. Aturan dan cara bermain yang telah ditentukan 8 9 3 0

Keterangan:
SB : Sangat Baik
B : Baik
KB : Kurang Baik
TB : Tidak Baik

UNIVERSITAS SUMATERA UTARA

Anda mungkin juga menyukai