69 LAMPIRAN A
70 LAMPIRAN. LISTING PROGRAM 1. Listing program untuk membuat papan dan random huruf package robert.simanjuntak; import java.util.arraylist; import java.util.random; import android.graphics.color; import android.os.bundle; import android.os.countdowntimer; import android.view.view; import android.view.view.onclicklistener; import android.view.viewgroup.layoutparams; import android.widget.button; import android.widget.linearlayout; import android.widget.tablelayout; import android.widget.tablerow; import android.widget.textview; public class HalamanpermainanActivity extends Activity implements OnClickListener { int indextextview = 0; int[] pathrecord = new int[100]; int counterpathrecord = 0; TextView textview[] = new TextView[100]; TableLayout table; @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.halamanmain); ViewJawaban = (TextView) findviewbyid(r.id.viewhasiljawab); ViewJawaban.setBackgroundColor(Color.TRANSPARENT); table = (TableLayout) findviewbyid(r.id.papan_table); for (int i = 0; i < 10; i++) { // mencetak jumlah baris TableRow baristabel = new TableRow(this); for (int j = 0; j < 10; j++) { // mencetak jumlah kolom textview[indextextview] = new TextView(this); textview[indextextview].setid(indextextview); textview[indextextview].settag(1); textview[indextextview].setclickable(true); textview[indextextview].setonclicklistener(this); textview[indextextview].settext(string.valueof(i) + String.valueOf(j)); Random random = new Random(); char c = (char) (random.nextint(26) + 'A'); textview[indextextview].settext(string.valueof(c)); textview[indextextview].setbackgroundcolor(color.white); textview[indextextview].settextcolor(color.black); textview[indextextview].setpadding(10, 5, 10, 5); baristabel.addview(textview[indextextview]); TableRow.LayoutParamsparams=(TableRow.LayoutParams)textView[indexTextView].getLayoutParams(); params.setmargins(1, 0, 0, 1); textview[indextextview].setlayoutparams(params); indextextview++; table.addview(baristabel, new TableLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
71 2.Listing Program untuk menu bantu else if (view.getid() == R.id.buttonHelp) { jumlahbantuan--; viewjumlahbantuan.settext(string.valueof(jumlahbantuan)); if (jumlahbantuan <= 0) { buttonhelp.setbackgroundresource(0); buttonhelp.setvisibility(0); buttonhelp.setclickable(false); viewjumlahbantuan.settext("0"); ViewJawaban.setText(""); for (int j = 0; j < textview.length; j++) { if (pathrecord[j]!= -1) { int idviewyangdihapus = pathrecord[j]; textview[idviewyangdihapus].setbackgroundcolor(color.white); textview[idviewyangdihapus].settag(1); pathrecord[j] = -1; Boolean statuscekjawabandatabasekepapan =false; int cekjawabandatabase = 0; do { String text = ""; JSONArray jawabanarray; String jawaban = ""; try { jawabanarray = new JSONArray(kata_dasar.bantu()); for (int i = 0; i < jawabanarray.length(); i++) { JSONObject jsonchildnode = jawabanarray.getjsonobject(i); jawaban = jsonchildnode.optstring("katadasar"); catch (JSONException e) { e.printstacktrace(); String stringpatterndaridatabase = jawaban; for (int i = 0; i < textview.length; i++) { text = text + textview[i].gettext().tostring(); System.out.println("Text : " + text); ArrayList<Integer> jawabanproses = BruteForceKarakter( stringpatterndaridatabase.touppercase(), text); int panjangjawaban = jawabanproses.size(); if (panjangjawaban == stringpatterndaridatabase.length()) { statuscekjawabandatabasekepapan = true; System.out.println("Cocok Posisi : "); for (int i = 0; i < panjangjawaban; i++) { System.out.println(jawabanProses.get(i)); textview[jawabanproses.get(i)].setbackgroundcolor(color.blue); textview[jawabanproses.get(i)].settextcolor(color.white); textview[jawabanproses.get(i)].setclickable(true); textview[jawabanproses.get(i)].settag(0); pathrecord[counterpathrecord] = textview[jawabanproses.get(i)].getid(); System.out.println("set index : " +jawabanproses.get(i) + "id:" +textview[jawabanproses.get(i)].getid() + " Counter : " + counterpathrecord); counterpathrecord++; if (counterpathrecord >= 100) { counterpathrecord = 0;
72 ViewJawaban.setText(ViewJawaban.getText().toString() + textview[jawabanproses.get(i)].gettext()); 3.Listing Program Algoritma Brute Force else { statuscekjawabandatabasekepapan = false; System.out.println("Tidak Cocok"); cekjawabandatabase++; System.out.println("Jumlah Cek : " + cekjawabandatabase); if (cekjawabandatabase >= 20) { randompapan(); statuscekjawabandatabasekepapan = true; while (statuscekjawabandatabasekepapan == false); public static ArrayList BruteForceKarakter( String stringpatterndaridatabase, String text) { char[] textarray = text.tochararray(); char[] patternarray = stringpatterndaridatabase.tochararray(); ArrayList<Integer> daftarposisi = new ArrayList<Integer>(); for (int i = 0; i < patternarray.length; i++) { for (int j = 0; j < textarray.length; j++) { if (patternarray[i] == textarray[j]) { daftarposisi.add(j); textarray[j] = '-'; System.out.println(textArray[j] + "Ditemukan" + "Posisi : " + j); break; return daftarposisi;
73 LAMPIRAN B
74 Nama : Jurusan : Angkatan : Tanda tangan : Judul : Permainan mencari kata berbasis android menggunakan algoritma Brute Force Responden menilai dengan cara men-check list ( ) A. Penilaian aspek antar muka No Penilaian aspek antar muka Sangat baik 1 Desain aplikasi secara umum 2 Desain tombol menu 3 Ukuran dan warna tulisan 4 Audio Baik Cukup Buruk Sangat buruk B. Penilaian aspek pengguna aplikasi No Penilaian aspek pengguna aplikasi Sangat baik 1 Kemudahan menggunakan aplikasi 2 Kemudahan memahami fungsi menu-menu yang ada 3 Ketertarikan terhadap permainan dengan tingkat kesulitan yang diberikan 4 Pemahaman aturan dan cara bermain Baik Cukup Buruk Sangat buruk