BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1
Production Production adalah tahapan membuat asset, pemrograman source code dan
mengintegrasikan dari keduanya. 4.1.1 Asset Gambar Tahapan ini merupakan tahapan membuat dan pengumpulan bahan yang sesuai dengan kebutuhan untuk dijadikan asset. Berikut asset-asset yang digunakan pada game ilmuwan muslim. Tabel 4.1 Assets Game No 1
Asset
Keterangan No
3 4
Image Ilmuwan Muslim Button menu source image Header Image
Score Kuis
10
Berhasil menyelesaikan puzzle
11 Simbol Hint 12
Melanjutkan permainan
13
5 Home Button
pause 14
6 Sound On
Button Option 15
7 Sound Off
8
Keterangan
9 Background / Latar pada game
2
Asset
Back Menu Button
76
Restart permainan
77
4.1.2 Implementasi Algoritma a. Algoritma Linear Congruential Generator Implementasi algoritma Linear Congruential Generator diterapkan pada pengacakan posisi soal pada game kuis. Berikut tampilan source code algoritma Linear Congruential Generator. 1. public void LCG(){ 2.
int [] arraysoal = new int[10];
3.
int zi = 10; //Jumlah Bilangan Acak
4.
int a = Random.Range(1, 50); //Faktor Pengali
5.
int c = 4; //Increment / Penambah
6.
int m = 50; //Modulus (Range Tertinggi)
7.
int z0 = Random.Range(1, 50);; //Nilai Awal
8.
Int a2 = 3; //faktor pengali pengganti
9.
Int hasilLCG;
10.
hasilLCG = z0;
11.
for(int i=0; i
//Mulai Menjalankan Rumus LCG
12.
hasilLCG = (a*hasilLCG + c) %m;
13.
if(i==0){arraysoal[i] = hasilLCG}
14.
else{
15.
for(int j=0; j
16.
if(arraySoal[j]==hasilLCG){
17.
hasilLCG = (a*hasilLCG + a2) %m;
18.
a2 = a2 + j;
19.
j = -1;
20.
}
21. 22. }
}arraySoal[i] = hasilLCG; }
}
Gambar 4.1 Source Code Algoritma Linear Congruential Generator
78
Penjelasan source code algoritma Linear Congruential Generator Tabel 4.2 Penjelasan Algoritma Linear Congruential Generator Baris
Keterangan
Ke 1
Membuat method dengan LCG
2
Membuat arraySoal dengan isi array 10 buah
3
Membuat variabel zi dengan nilai 10
4
Membuat variabel a dengan nilai angka acak dari 1-50
5
Membuat variabel c dengan nilai 4
6
Membuat variabel m dengan nilai 50
7
Membuat variabel z0 dengan nilai 9
8
Membuat variabel a2
9
Membuat variabel hasilLCG
10
Nilai awal hasilLCG sama dengan z0
11
Pengulangan sebanyak 10 kali sesuai dengan jumlah soal
12
Menghitung hasilLCG untuk mendapatkan nomor soal
13
Jika ini iterasi pertama maka masukan ke dalam array [0]
14
Jika bukan iterasi pertama jalankan else
15
Perulangan dengan nilai batas yaitu I dari perulangan sebelumnya
16
Mengecek apakah nilai di dalam array sama dengan hasilLCG
17
Jika ya maka lakukan penghitungan ulang untuk hasilLCG
18
Mengganti nilai faktor pengali cadangan
19
Mengurangi nilai j
21
Jika sudah tidak sama maka masukan hasilLCG kedalam array b. Algoritma A-Star (A*) Implementasi algoritma A* diterapkan untuk menyelesaikan persoalan
puzzle. Dengan menggunakan rumus heuristik, maka pencarian akan lebih cepat dan optimal. Berikut tampilan source code dan penjelasan algoritma A*.
79
1. while (!kelasPuzzle.AStarSolved && SL.Count > 0){ 2.
kelasNode = SL.First ().Value;
3.
SL.RemoveAt (0);
4.
if (_AreNodesSame (kelasNode, kelasPuzzle.goalNode)) {
5.
kelasPuzzle.AStarSolved = true;
6.
break;}
7.
}
8.
Ns = kelasNode.GetSuccessors ();
9.
foreach (ClassNode2 SN in Ns){
10.
SN.heuristik = _HitungHeuristik (SN);
11.
string key = _KeyBuild (SN);
12.
try {
13.
KeyInHist = History.ContainsKey (key);
14.
} catch { Debug.LogError ("ADA ERROR BROH");}
15.
if (KeyInHist){
16.
try {
17.
CostInHistLarger = (History [key].cost > SN.cost);
18.
} catch {Debug.LogError ("ADA ERROR BROH");}
19.
if (CostInHistLarger){
20.
History [key].cost = SN.cost;
21.
SL.Add (SN.heuristik + SN.cost, SN);
22.
try {
23.
LgotLarger = (SL.Count > maxL);
24.
} catch {Debug.LogError ("ADA ERROR BROH");}
25.
if (LgotLarger)
26.
maxL = SL.Count;
27.
}
28.
} else {
29.
SL.Add (SN.heuristik + SN.cost, SN);
30.
History.Add (key, SN);
31.
try {
32.
LgotLarger = (SL.Count > maxL);
33.
} catch {Debug.LogError ("ADA ERROR BROH");}
34.
if (LgotLarger)
35.
maxL = SL.Count;
36. } 37. } 38. }
Gambar 4.2 Source Code Pencarian Algoritma A-Star.
80
Tabel 4.3 menjelaskan source code dari gambar 4.2 Tabel 4.3 Penjelasan Algoritma A-Star Baris ke-
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16 17
18 19 20 21 22 23 24 25 26
Keterangan Melakukan perulangan dengan kondisi: puzzle belum terselesaikan dan isi dalam SortList berjumlah lebih dari 0 Memberikan nilai pada kelasNode dengan nilai pada SortList yang berada pada urutan pertama. Hapus isi nilai SortList pada urutan pertama Jika kelasNode sama dengan goalNode, maka Puzzle telah tersusun/terselesikan. Beri nilai true pada kelasPuzzle.AstarSolved Hentikan perulangan while Mencari Successors/turunan dari kelasNode kemudian masukan pada List
Ns Melakukan perulangan sebanyak isi dari list Ns. Masukan tiap isi nilai dalam list Ns kedalam ClassNode SN. Menghitung nilai heuristik node yang berada dalam SN, dengan memanggil method _HitungHeuristik () Membuat Node yang berupa array menjadi deret string “key” dengan memanggil method _KeyBuild() Menjalankan Try exception handling Jika string key sudah berada pada history maka nilai KeyInHist menjadi true Exception handling catch akan dijalankan jika terjadi error. Jika tidak terjadi error maka kode dalam try yang akan dieksekusi Jika nilai KeyInHist adalah true, maka Menjalankan Try exception handling Mengecek apakah nilai cost dari history.key lebih besar dari SN.cost maka CostInHistLarger (true) atau history.key lebih kecil dari SN.cost maka CostInHistLarger (false) Exception handling catch akan dijalankan jika terjadi error. Jika tidak terjadi error maka kode dalam try yang akan dieksekusi Jika CostInHistLarger bernilai true Update nilai cost dalam History.key dengan nilai cost SN Masukan nilai SN dan juga heuristik+cost kedalam SortList SL Menjalankan Try exception handling Jika jumlah nilai yang berada dalam SortList SL lebih dari maxL maka nilai LgotLager (true) bila tidak maka nilai LgotLager (false) Exception handling catch akan dijalankan jika terjadi error. Jika tidak terjadi error maka kode dalam try yang akan dieksekusi Jika LgotLager bernilai true, maka Nilai maxL sama dengan jumlah isi nilai SortList SL
81
Tabel 4.3 Penjelasan Algoritma A-Star (Lanjutan) Jika nilai KeyInHist adalah false, maka Masukan nilai SN dan juga heuristik+cost kedalam SortList SL Tambahkan SN dan key kedalam List History Menjalankan Try exception handling Jika jumlah nilai yang berada dalam SortList SL lebih dari maxL maka nilai LgotLager (true) bila tidak maka nilai LgotLager (false) Exception handling catch akan dijalankan jika terjadi error. Jika tidak terjadi error maka kode dalam try yang akan dieksekusi Jika LgotLager bernilai true, maka Nilai maxL sama dengan jumlah isi nilai SortList SL
28 29 30 31 32 33 34 35
Berikut source code dari method untuk menghitung heuristik. 1. private int _HitungHeuristik(ClassNode2 Nh){ 2. int he = 0; 3. for (int i = 0; i < kelasPuzzle.puzzleSize; i++) { 4. for (int j = 0; j < kelasPuzzle.puzzleSize; j++) { 5. if (Nh.nodeState [i, j] != 0) { 6. int noTile = Nh.nodeState[i,j]; 7. GetGoalXY(noTile); 8. he = he + Math.Abs(i-goalY) + Math.Abs(j-goalY); 9. } 10. } 11. } 12. return he; 13. }
Gambar 4.3 Source Code Menghitung Heuristik. Tabel 4.4 menjelaskan source code dari gambar 4.3 Tabel 4.4 Penjelasan Source Code Menghitung Heuristik Baris ke1 2 3 4 5 6 7 8 10
Keterangan Method _HitungHeuristik tipe int dengan menerima nilai ClassNode. Memberikan nilai pada variabel he = 0 Melakukan perulangan untuk menentukan x Melakukan perulangan untuk menentukan y (perulangan bersarang) Jika node [x,y] bukan 0, maka set nilai noTile = Nomor Ubin Puzzle berdasarkan nodeState[i,j] Memanggil method GetGoalXY() untuk mencari posisi tujuan dari (noTile) Hitung heuristik dari nomor tile puzzle tersebut Mengembalikan nilai he;
82
4.1.3 Implementasi User Interface Berikut merupakan antarmuka yang ada pada game Ilmuwan Muslim : 1. Tampilan Menu Utama Selang beberapa detik dari splash screen maka akan muncul halaman menu utama. Terdapat 5 button menu dan 3 button untuk setting sound yang tersedia pada menu utama
Gambar 4.4 Antarmuka Menu Utama.. 2. Tampilan Menu Permainan Pada tampilan menu permainan pilih ilmuwan muslim, user dipersilahkan untuk memilih gambar ilmuwan muslim yang akan dimainkan dalam game puzzle. Gambar 4.5 merupakan tampilan dari antarmuka menu permainan
Gambar 4.5 Antarmuka Menu Permainan Pilih Ilmuwan Muslim.
83
3. Tampilan Game Play Puzzle Pada ketika pemain sudah memilih gambar ilmuwan muslim, maka scene yang ditampilkan merupakan scene permainan game puzzle.
Gambar 4.6 Antarmuka Game Play Puzzle. 4. Tampilan Menu Cerita Pada tampilan menu Cerita pilih ilmuwan muslim, user dipersilahkan untuk memilih cerita ilmuwan muslim yang akan dibaca, dan juga terdapat pilihan kuis untuk bermain kuis.
Gambar 4.7 Antarmuka Menu Cerita. 5. Tampilan Cerita Ilmuwan Muslim Gambar 4.8 merupakan tampilan cerita ilmuwan muslim yang telah dipilih.
84
Gambar 4.8 Antarmuka Cerita Ilmuwan Muslim. 6. Tampilan Score Gambar 4.9 merupakan isi dari halaman score yang berisikan informasi score dari game yang telah dimainkan.
Gambar 4.9 Antarmuka Score 4.2
Testing Testing dalam konteks ini dilakukan oleh pihak internal untuk menguji
apakah game sudah layak untuk tahap selanjutnya atau harus mengalami perbaikan. 4.2.1
Formal Details Testing Pengujian Formal Details dilakukan untuk menilai fungsi fitur (features
functional) dan kesulitan atau tantangan permainan (balanced). Untuk menguji
85
kualitas kriteria Internal complete, dapat dilakukan secara bersamaan dengan features functional test, 4.2.1.1 Features Functional Untuk menguji features functional, yaitu melalui playtesting atau memainkan game. a. Uji Halaman Menu Utama Tabel 4.4 merupakan Uji fungsi halaman menu utama. Tabel 4.5 Uji Fungsi Halaman Menu Utama No
Skenario Klik Tombol Puzzle Klik Tombol cerita Klik Tombol Score Klik Tombol tentang Klik Tombol Sound Klik Tombol Musik Klik Tombol exit
1 2 3 4 5 6 7
Hasil Ya Tidak
Keterangan
b. Uji Halaman Game Play Berikut tabel pengujian fungsi halaman game play puzzle. Tabel 4.6 Uji Fungsi Halaman Game Play Puzzle No
Skenario
Hasil Ya
1
Slide Papan Puzzle
2 3
Pengacakan Puzzle Klik Button Solve puzzle
4
Timer
5
Langkah Permainan
Tidak
Berikut tabel pengujian fungsi halaman game play kuis
Keterangan
86
Tabel 4.7 Uji Fungsi Halaman Game Play Kuis No
Skenario
Hasil
1
Pengacakan Soal
2
Next soal setelah terjawab
Ya
3
Klik Button jawaban
4
Timer
Tidak
Keterangan
c. Uji Halaman Pilih Cerita Berikut tabel pengujian fungsi halaman pilih cerita Tabel 4.8 Uji Fungsi Halaman Pilih Cerita No
Skenario
Hasil Ya
1 2
Klik Button Kuis Klik Button All Ilmuwan
3
Klik Button Kategori Ilmuwan
4 5
Ketik Search Ilmuwan Daftar Ilmuwan
Tidak
Keterangan
d. Uji Halaman Cerita Ilmuwan Berikut tabel pengujian fungsi halaman cerita ilmuwan Tabel 4.9 Uji Fungsi Halaman Cerita Ilmuwan No 1 2 3
Skenario Gambar Ilmuwan Nama Ilmuwan Cerita Ilmuwan
Hasil Ya Tidak
Keterangan
e. Uji Halaman Tentang Berikut tabel pengujian fungsi halaman Tentang. Tabel 4.10 Uji Fungsi Halaman Tentang No 1
Skenario Klik Tombol Menu Tentang
Hasil Ya
Tidak
Keterangan
87
f. Uji Halaman Score Tabel berikut merupakan uji fungsi halaman Score Tabel 4.11 Uji Fungsi Halaman Score No
Hasil
Skenario
1
Button Score Puzzle
2
Button Score Size
Ya
3
Button Score Kuis
Tidak
Keterangan
4.2.1.2 Internal Complete internal complete akan melaporkan bug report berupa loophole dan deadend. a. Loophole adalah kerentanan game untuk di hack atau dimanipulasi menggunakan cheat. b. Dead-end yaitu kondisi ketika user tidak dapat melanjutkan permainan disebabkan adanya kesalahan pada game. Tabel 4.12 Uji Internal Complete No
Hasil
Skenario
Ya
Loophole Dead-end
1 2
Tidak
Keterangan
4.2.1.3 Balance Pengujian faktor yang mempengaruhi tingkat keseimbangan challenge permainan agar game memiliki tingkat kesulitan yang beragam. Faktor yang mempengaruhi yaitu algoritma dalam permainan. a.
Pengujian Algoritma A-Star Algoritma
A-Star
digunakan
sebagai
metode
penyelesaian
permasalahan puzzle. Pengujian algoritma akan dihadapkan pada:
88
1.
Node awal (puzzle yang sudah teracak) sebagai kondisi pertama.
2.
Goal node / node tujuan (puzzle yang sudah tersusun) sebagai kondisi akhir.
3.
Berapa langkah dan waktu yang ditempuh untuk menyelesaikan permasalahan puzzle dari node awal menuju node tujuan?
Gambar 4.10 Node Awal Dan Node Tujuan
Gambar 4.11 Penyelesaian Permasalahan Puzzle Berdasarkan Gambar 4.11 dapat dihitung expanded node berjumlah 2 dan akar/child node yang dibuat berjumlah 5. 1.
Algoritma A-Star Pada Puzzle 3x3 Tabel 4.12 hasil pengujian terhadap algoritma A-Star pada game play
puzzle 3x3.
89
Tabel 4.13 Pengujian Algoritma A-Star 3x3 No
Node Awal (Puzzle Teracak)
Berhasil Tersusun Y N
Jumlah Langkah Solusi
Waktu (ms)
Exp. Node
Child Node
1
11
97
16
53
2
25
160
440
1162
3
21
289
643
1683
4
24
519
2062
5398
5
27
970
4170
11803
6
22
121
156
395
7
24
308
1073
2891
8
19
145
280
751
9
22
248
830
2215
10
23
215
736
1960
Keterangan: Tabel 4.13 pengujian algoritma A-Star pada puzzle 3x3 secara lengkap dapat dilihat pada LAMPIRAN A.
90
Dari tabel pengujian 4.13 dapat diketahui nilai efisiensi algoritma AStar untuk menyelesaikan permasalahan puzzle 3x3: 1. Jumlah Langkah Solusi Langkah paling sedikit = 11 langkah Langkah paling banyak = 29 langkah Rata-rata
=
=
= 21 langkah
2. Waktu Nilai waktu tercepat = 97 ms = 0,097 detik Nilai waktu terlama = 1171 ms = 1,171 detik Rata-rata
=
=
= 311,42 ms = 0,33142 detik
=
= 976 exp.node
3. Expanded Node Nilai terkecil = 16 exp.node Nilai terbesar = 4527 exp.node Rata-rata
=
4. Child Node Nilai terkecil = 44 child node Nilai terbesar = 12069 child node Rata-rata
=
=
= 2617 child node
5. Tingkat Keberhasilan
−
× 100% =
× 100% = 100%
Tingkat keberhasilan pencarian solusi masalah puzzle 3x3 dengan algoritma A-Star adalah 100% dari 50 pengujian. Maka dapat dipastikan
91
algoritme A-Star dapat mencari langkah solusi pada permasalahan puzzle dan dapat menyelesaikan dengan waktu yang sangat cepat yaitu dengan ratarata 311,.42 ms atau 0,33142 detik. waktu tempuh untuk pencarian solusi memiliki kecenderungan akan berbanding lurus dengan expanded node dan juga child node yang dibuat. Semakin banyak expanded node dan child node yang dibuat maka akan semakin bertambah pula waktu tempuh pencarian. Berikut gambar diagram algoritma A-Star pada puzzle 3x3. Algoritma A* pada Puzzle 3x3 1200 1100 1000 900
Waktu (ms)
800 700 600 500 400 300 200 100 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Langkah
Gambar 4.12 Diagram Pengujian Puzzle 3x3 (Langkah dan Waktu)
92
Algoritma A* pada Puzzle 3x3 5000 4500
Expanded Node
4000 3500 3000 2500 2000 1500 1000 500 0 0 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 95010001050110011501200
Waktu (ms)
Gambar 4.13 Diagram Pengujian Puzzle 3x3 (Waktu dan Exp.Node)
Algoritma A* pada Puzzle 3x3 12000 11000 10000 9000
Child Node
8000 7000 6000 5000 4000 3000 2000 1000 0 0
500
1000
1500
2000
2500
3000
3500
4000
4500
Expanded Node
Gambar 4.14 Diagram Pengujian Puzzle 3x3 (Exp.Node dan Child Node) 2.
Algoritma A-Star Pada Puzzle 4x4 Pengujian pada puzzle 4x4 akan dibatasi karena pencarian algoritma A-
Star akan menggunakan memori yang terlalu besar (>300mb) seiring dengan bertambahnya data di dalam list. Ketentuan pada puzzle 4x4 sebagai berikut:
5000
93
a. Batas expanded node untuk setiap permasalahan yaitu tidak lebih dari 200.000 expanded node. b. Jika melebihi batas expanded node, maka pencarian algoritma A-Star dinyatakan gagal. Tabel 4.13 hasil pengujian terhadap algoritma A-Star pada game play puzzle 4x4. Tabel 4.14 Pengujian Algoritma A-Star 4x4 No
Node Awal (Puzzle Teracak)
Berhasil Tersusun Y N
Jumlah Langkah Solusi
Waktu (ms)
Exp. Node
Child Node
1
125
84720
202.695
625.042
2
37
2705
7.534
23.161
3
118
76902
187.543
574.110
4
111
68003
172.577
517.606
5
92
55739
138.993
412.580
6
86
45749
116.672
350.109
7
90
48511
122.225
365.735
94
Tabel 4.14 Pengujian Algoritma A-Star 4x4 (Lanjutan) No
Node Awal (Puzzle Teracak)
Berhasil Tersusun Y N
Jumlah Langkah Solusi
Waktu (ms)
Exp. Node
Child Node
8
136
93572
224.362
698.119
9
170
120466
295.223
902.488
10
75
38002
98.196
292.821
Keterangan: Tabel 4.14 pengujian algoritma A-Star pada puzzle 4x4 secara lengkap dapat dilihat pada LAMPIRAN B. Dari tabel pengujian 4.14 dapat diketahui nilai efisiensi algoritma A-Star untuk menyelesaikan permasalahan puzzle 4x4: 1. Jumlah Langkah Solusi Langkah paling sedikit = 18 langkah Langkah paling banyak = 122 langkah Rata-rata
=
=
= 74 langkah
2. Waktu Nilai tercepat = 187 ms = 0,187 detik Nilai terlama = 78065 ms = 73,533 detik Rata-rata
=
=
= 40117, 70 ms = 40,1177 detik
3. Expanded Node Nilai terkecil = 270 exp.node
95
Nilai terbesar = 199.468 exp.node Rata-rata
=
=
.
.
= 102580 exp.node
4. Child Node Nilai terkecil = 843 child node Nilai terbesar = 611.100 child node Rata-rata
=
=
.
.
= 311873 child node
5. Tingkat Keberhasilan
−
× 100% =
× 100% = 68%
Tingkat keberhasilan penyelesaian masalah puzzle 4x4 dengan algoritma A-Star adalah 68% dari 50 pengujian. Tingkat keberhasilan sangat dipengaruhi oleh size/ukuran puzzle 4x4 berjumlah 16 ubin (lebih banyak dari puzzle 3x3 berjumlah 9) dan rumitnya acakan puzzle sehingga algoritma A-Star harus bekerja keras untuk terus melakukan perulangan untuk membuat expanded node dan child node. Semakin lama waktu tempuh proses algoritma A-Star berjalan, maka akan semakin besar pula nilai dari expanded node dan child node yang akan berpengaruh pada memori yang akan digunakan karena data tersebut disimpan di dalam list akan semakin bertambah. Berikut diagram algoritma A-Star pada puzzle 4x4.
96
Algoritma A* pada Puzzle 4x4 80000 70000
Waktu (ms)
60000 50000 40000 30000 20000 10000 0 0
25
50
75
100
125
Langkah
Gambar 4.15 Diagram Pengujian Puzzle 4x4 (Langkah dan Waktu)
Algoritma A* pada Puzzle 4x4 200000 175000
Expanded Node
150000 125000 100000 75000 50000 25000 0 0
10000
20000
30000
40000
50000
60000
70000
Waktu (ms)
Gambar 4.16 Diagram Pengujian Puzzle 4x4 (Waktu dan Exp.Node)
80000
97
Algoritma A* pada Puzzle 4x4 600000
Child Node
500000 400000 300000 200000 100000 0 0
25000
50000
75000
100000
125000
150000
175000
Expanded Node
Gambar 4.17 Diagram Pengujian Puzzle 4x4 (Exp.Node dan Child Node) b.
Pengujian Algoritma Linear Congruential Generator Pengujian akan dilakukan terhadap 50 soal untuk mendapatkan 10 soal
secara acak dan tidak terjadi perulangan nomor soal. Berikut tabel 4.12 hasil pengujian pengacakan algoritma linear congruential generator dan Random Class Unity3D. Tabel 4.15 Pengujian Algoritma LCG dan Random Input ke-
Nomor Soal Hasil Pengacakan
a
c
m
z0
Output LCG
Output Random (Class in Unity3D)
1
11
4
50
2
45
4
50
5
9-3-37-11-25-29-23-7-31-45
15-45-8-35-47-18-11-47-19-18
1
49-9-10-4-34-36-24-37-19-13
48-13-14-44-4-4-12-9-22-26
3
13
4
50
7
45-39-11-47-15-49-41-37-35-9
42-41-9-36-11-15-18-13-25-3
4
40
5
48
4
50
7
34-14-13-4-16-44-17-18-24-19
22-4-34-12-29-13-29-2-32-10
4
50
5
44-16-22-10-34-36-32-40-24-6
9-1-37-17-5-18-39-16-8-28
6
12
4
50
7
38-10-24-42-8-1-4-2-28-40
36-47-47-38-24-32-19-13-4
7
37
4
50
2
28-40-34-12-48-30-14-22-18-20
27-22-12-4-26-30-49-45-1-5
8
9
4
50
5
49-45-9-35-19-25-29-15-39-5
14-13-35-39-27-3-15-18-12-35
9
38
4
50
5
44-26-42-1-4-6-32-20-14-36
44-37-1-47-36-17-43-41-30-8
10
19
4
50
4
30-24-10-44-40-14-20-34-1-4
32-29-10-26-25-32-46-41-7-47
11
49
4
50
3
1-3-4-50-2-5-49-6-48-7
23-33-31-25-10-22-22-13-22-18
12
11
4
50
6
20-24-18-2-26-40-44-38-22-46
77-5-38-49-12-7-21-7-14-8
200000
98
Tabel 4.15 Pengujian Algoritma LCG dan Random (Lanjutan) Input
ke-
Nomor Soal Hasil Pengacakan
a
c
m
z0
Output LCG
13
17
4
50
6
6-7-23-45-19-27-13-25-29-47
36-3-30-20-21-20-1-49-8-44
14
19
4
50
7
37-7-8-6-18-46-28-36-38-26
2-30-37-35-48-28-23-32-16-38
15
2
4
50
7
18-40-34-22-48-50-4-12-28-10
40-29-45-30-42-31-17-34-14-15
16
12
4
50
7
38-10-24-42-8-50-4-2-28-40
48-2-1-37-49-18-32-27-43-14
17
22
4
50
8
20-44-42-38-30-14-32-18-40-34
6-6-41-24-12-18-42-15-5-38
18
44
4
50
7
12-32-33-6-18-46-28-36-38-26
16-21-41-31-6-26-23-25-3-33
19
41
4
50
3
27-11-5-9-23-47-31-25-29-43
18-39-23-13-46-35-1-9-49-17
20
15
4
50
6
49-14-15-29-39-41-19-42-34-18
28-19-35-5-9-14-22-40-20-28
21
42
4
50
1
46-36-16-26-37-8-40-34-32-48
37-43-31-25-32-24-12-4-25-7
22
28
4
50
6
22-20-14-46-42-30-44-36-12-40
21-43-35-32-44-16-25-28-34
23
29
4
50
1
33-11-23-21-13-31-3-41-42-1
26-41-30-6-4-32-8-3-28-3
24
26
4
50
9
38-42-46-50-4-8-12-16-20-24
34-47-44-24-13-41-26-21-37-29
25
36
4
50
8
42-16-30-34-28-12-36-38-4-48
47-8-36-13-30-21-26-37-42-1
26
18
4
50
9
16-42-10-34-43-28-8-48-18-37
18-44-39-7-10-3-39-22-3-40
27
9
4
50
7
17-7-8-26-38-46-18-16-48-36
14-12-7-36-31-9-11-23-36-8
28
9
4
50
1
13-12-43-41-23-11-3-31-33-1
48-13-41-9-18-1-48-13-30-8
29
33
4
50
3
3-4-36-42-40-24-46-22-30-44
39-36-27-2-19-35-45-9-1-17
30
4
4
50
4
20-34-40-14-10-44-30-24-28-4
1-22-23-43-27-10-44-39-24-11
Output LCG
Berhasil
30
Output Random
Output Random (Class in Unity3D)
Berhasil
16
Gagal 0 Gagal 14 *Hasil Output dengan warna hitam: Berhasil *Hasil Output dengan warna merah: Gagal *Hasil Output dengan warna biru menunjukkan terjadinya perulangan nomor soal.
Berdasarkan tabel 4.12 telah dilakukan pengujian terhadap algoritma LCG dan Random (Class yang berada dalam Unity3D) sebanyak 30 kali, dapat diketahui tingkat keberhasilan algoritma LCG dan Random sebagai berikut: LCG =
ℎ
= Random =
× 100%
× 100% = 100%
ℎ
=
× 100% × 100% = 53,3%
99
Pengacakan menggunakan Class Random yang berada di dalam Unity3D memiliki tingkat keberhasilan sebesar 53,3%. Sedangkan pengacakan menggunakan algoritma LCG memiliki tingkat keberhasilan sebesar 100%. Ini menunjukkan bahwa modifikasi pada algoritma LCG berjalan dengan baik dengan output hasil pengacakan berbeda-beda dan seolah-olah tidak terjadi perulangan. Dengan membuat modifikasi berupa event handle, LCG dapat menerima inputan variabel yang beragam. Ketika proses pengacakan terjadi persamaan nomor soal pada periode tertentu maka akan dilakukan update terhadap nilai c kemudian melanjutkan kembali proses pengacakan. Dengan demikian pengacakan algoritma LCG tidak lagi tergantung pada variabel-variabel inputan z0 (bilangan pembangkit awal) maupun a (faktor pengali). 4.2.2 Formal Details Table Berikut tabel formal details yang dibuat berdasarkan hasil uji testing Tabel 4.16 Formal Details Fitur Fitur Change Scene Menu Utama Menu Bermain Puzzle Game Play Puzzle Pathfinding Puzzle Menu Cerita Pilih Ilmuwan
Cerita Game Play Kuis Pengacakan Soal Score Tentang Sound. Musik Game Rule Tabel 4.17 Formal Details Kualitas Kualitas Functional Internal Complete Balance
100
4.3
Beta Pengujian beta dilakukan dengan cara menyebar kuesioner menggunakan
teknik simple random sampling dimana anggota sample dari populasi dilakukan secara acak tanpa memperhatikan strata yang ada dalam populasi. Kuesioner diberikan kepada generasi muda rentang usia 11 tahun sampai 15 tahun. Kuesioner terdiri dari beberapa aspek penilaian yaitu aplikasi yang menarik (fun), kemudahan dalam menjalankan aplikasi game, dan adanya bug report pada feature availability. Sistem penskoran menggunakan skala pengukuran teknik likert, tabel 4.16 adalah skor untuk jawaban kuesioner. Tabel 4.18 Skala Kuesioner Skala jawaban SS S BS TS STS
Keterangan Sangat Setuju Setuju Biasa Saja Tidak Setuju Sangat Tidak Setuju
Nilai 5 4 3 2 1
Sebelum menyelesaikan perhitungan hal yang harus diketahui terlebih dahulu adalah interval (jarak) dan interpretasi persen, agar mengetahui penilaian dengan metode mencari interval skor persen (I). I = 100 / jumlah skor likert 100/5 = 20 Maka interval nya adalah 20. Jarak dari terendah 0% hingga tertinggi 100%. Secara kontinum dapat digambarkan seperti gambar 4.8.
Skor =
Gambar 4.18 Skor Kontinum
101
4.3.1 Fun Pertanyaan yang diajukan kepada responden terkait dengan penilaian aspek aplikasi yang menarik (Fun Criteria). a. Konten aplikasi (Puzzle, Kuis, Cerita) Tabel 4.19 Skala Kuesioner Fun a Kode Jawaban Frekuensi Jawaban Skor Jumlah Skor Interpretasi skor Persentase
SS S BS TS 11 12 14 3 11 * 5 = 55 12 * 4 = 48 14*3 = 42 3 * 2 = 6 151 Skala tertinggi * jml responden = 5 * 40 = 200 151/200 * 100% = 75.5 %
STS -
Berdasarkan hasil persentase nilai di tabel 4.19 dapat disimpulkan bahwa penilaian terhadap layout / konten aplikasi menarik adalah 75.5% (setuju). b. Perpaduan warna tidak mencolok. Tabel 4.20 Skala Kuesioner Fun b Kode Jawaban Frekuensi Jawaban Skor Jumlah Skor Interpretasi skor Persentase
SS S BS TS 7 17 15 1 7*5 = 35 17*4 = 68 15*3 =45 1*2 = 2 150 Skala tertinggi * jml responden = 5 * 40 = 200 150/200 *100 % = 75%
STS -
Berdasarkan hasil persentase nilai di tabel 4.20 dapat disimpulkan bahwa penilaian terhadap perpaduan warna tidak mencolok adalah 75%. c. Menu, window, icon aplikasi menarik. Tabel 4.21 Skala Kuesioner Fun c Kode Jawaban Frekuensi Jawaban Skor Jumlah Skor Interpretasi skor Persentase
SS S BS TS 10 9 17 4 10*5 = 50 9*4 = 36 17*3=51 4*2=8 145 Skala tertinggi * jml responden = 5 * 40 = 200 145/200 *100 % = 72.5%
STS -
102
Berdasarkan hasil persentase nilai di tabel 4.21 dapat disimpulkan bahwa penilaian terhadap menu, window, icon aplikasi menarik adalah 75.5%. d. Audio Tabel 4.22 Skala Kuesioner Fun d Kode Jawaban Frekuensi Jawaban Skor Jumlah Skor Interpretasi skor Persentase
SS S BS TS 6 13 19 2 6*5 = 30 13*4 = 52 19*3=57 2*2=4 143 Skala tertinggi * jml responden = 5 * 40 = 200 143/200 *100 = 71.5%
STS -
Berdasarkan hasil persentase nilai di tabel 4.22 dapat disimpulkan bahwa penilaian terhadap perpaduan material seperti audio, video, dll sudah tepat adalah 70.5% (setuju). Tabel 4.23 Rata-Rata Persentase Dari Pertanyaan Aspek Aplikasi yang Menarik % Rata-rata
Pertanyaan a Pertanyaan b Pertanyaan c Pertanyaan d 75.5 % 75% 72.5% 71.5% (75.5 + 75 +72.5 +71.5) %/4 = 73.6 %
Dari hasil persentase ke empat pertanyaan yang diajukan menghasilkan ratarata sebesar 73.6% (setuju). Dan dapat dikategorikan aplikasi ini menarik untuk dimainkan. Digambarkan dengan garis kontinum pada gambar 4.19
Gambar 4.19 Garis Kontinum Rata-Rata Dari Aspek Aplikasi Menarik 4.3.2 Accessibility Pertanyaan yang diajukan kepada responden terkait dengan penilaian aspek kemudahan dalam pemahaman pengoperasian.
103
a. Kemudahan pengoperasian game Tabel 4.24 Skala Kuesioner Accessibility a Kode Jawaban Frekuensi Jawaban Skor Jumlah Skor Interpretasi skor Persentase
SS S BS TS 14 17 6 3 14*5 = 70 17*4 = 68 6*3 = 18 3*2=6 162 Skala tertinggi * jml responden = 5 * 40 = 200 169/200 *100 = 81%
STS -
Berdasarkan hasil persentase nilai di tabel 4.24 dapat disimpulkan bahwa penilaian terhadap kemudahan dalam pengoperasian aplikasi adalah 81%. b. Kemudahan Pemahaman Game Play Tabel 4.25 Skala Kuesioner Accessibility b Kode Jawaban Frekuensi Jawaban Skor Jumlah Skor Interpretasi skor Persentase
SS S BS TS 9 21 9 1 9*5 = 45 21*4= 84 9*3 = 27 1*2= 2 158 Skala tertinggi * jml responden = 5 * 40 = 200 158/200 *100 = 79%
STS -
Berdasarkan hasil persentase nilai di tabel 4.25 dapat disimpulkan bahwa penilaian terhadap kemudahan dalam pemahaman ketika bermain (Game Play) adalah 79%. Tabel 4.26 Rata-Rata Persentase Dari Pertanyaan Aspek Kemudahan Aplikasi % Rata-rata
Pertanyaan 1 Pertanyaan 2 81 % 79% (81 + 79) % / 2 = 80 %
Dari hasil persentase kedua pertanyaan yang diajukan menghasilkan ratarata sebesar 80%. Dan dapat dikategorikan aplikasi ini mudah untuk dimainkan. Digambarkan dengan garis kontinum pada gambar 4.20
104
Gambar 4.20 Garis Kontinum Rata-Rata Dari Aspek Kemudahan Aplikasi Tabel Formal Details pengujian beta yaitu sebagai berikut. Tabel 4.27 Formal Detail Fitur Kualitas Features Internal Complete Balance Fun Accessibility
4.4 Release Aplikasi yang telah dibuat dan sudah siap untuk disebarluaskan maka akan dapat diunggah ke situs (play store), agar siapa saja dapat dengan mudah mengunduh dan menggunakan aplikasi secara gratis.