50. builder.setMessageApa anda ingin keluar
?.setCancelablefalse.setPositiveButtonYa, new DialogInterface.OnClickListener {
51. Override
52. public void onClickDialogInterface dialog, int
which { 53.
finish; 54.
} 55.
}.setNegativeButtonTidak, new DialogInterface.OnClickListener {
56. Override
57. public void onClickDialogInterface dialog, int
which { 58.
dialog.cancel; 59.
} 60.
}.show; 61.
return true; 62.
} 63.
return super.onKeyUpkeyCode, event; 64.
} 65.
}
3. Pemanggilan Algoritma Turbo Boyer Moore
1. package com.mardiah.dictionary;
2. import android.database.Cursor;
3. import android.database.sqlite.SQLiteDatabase;
4. import android.os.Bundle;
5. import android.support.annotation.Nullable;
6. import android.support.v4.app.Fragment;
7. import android.view.LayoutInflater;
8. import android.view.View;
9. import android.view.ViewGroup;
10. import android.widget.Button;
11. import android.widget.EditText;
12. import android.widget.ListAdapter;
13. import android.widget.ListView;
14. import android.widget.SimpleAdapter;
15. import android.widget.Toast;
16. import java.util.ArrayList;
17. import java.util.HashMap;
18. public class TBM_Fragments extends Fragment{
19. Nullable
20. Button btncari;
21. ArrayListHashMapString, String list_data;
22. HashMapString, String map;
23. ListView lv2;
24. EditText cari;
25. String pat = , Fisika=, Arti =;
26. Override
27. public View onCreateViewLayoutInflater inflater, ViewGroup
container, Bundle savedInstanceState { 28.
View v = inflater.inflateR.layout.tbm_fragments, container, false;
29. btncari = Buttonv.findViewByIdR.id.buttonCaritbm;
30. list_data = new ArrayList;
31. lv2 = ListViewv.findViewByIdR.id.LvHasil;
32. cari = EditTextv.findViewByIdR.id.Caritbm;
33. btncari.setOnClickListenernew View.OnClickListener {
34. Override
Universitas Sumatera Utara
35. public void onClickView view {
36. pat = cari.getText.toString;
37. DatabaseHelper helper = new
DatabaseHelperTBM_Fragments.this.getContext; 38.
SQLiteDatabase database = helper.getReadableDatabase;
39. Cursor cursor = database.querydb_baru_2, new
String[]{fisika, arti}, null, null, null, null, fisika; 40.
int ketemu = 0, i = 0; 41.
int urutan = 0; 42.
TBM c = new TBMpat.toUpperCase; 43.
try { 44.
list_data.clear; 45.
long t = System.currentTimeMillis; 46.
if cursor = null { 47.
cursor.moveToFirst; 48.
do { 49.
Fisika= cursor.getString0; 50.
Arti = cursor.getString1; 51.
if pat == null{ 52.
Toast.makeTextTBM_Fragments.this.getContext, Masukan Kata Yang Di Cari, Toast.LENGTH_LONG.show;
53. }
54. if pat.length = Fisika.length {
55. ketemu = c.TBMFisika.toUpperCase;
56. if ketemu == 1 {
57. urutan++;
58. map = new HashMap;
59. map.puturutan,
Integer.toStringurutan; 60.
map.putFisika, Integer.toStringurutan + . + Fisika;
61. map.putArti, Arti;
62. list_data.addmap;
63. i += 1;
64. }
65. }
66. } while cursor.moveToNext;
67. }
68. long t2 = System.currentTimeMillis - t;
69. if i == 0 {
70. Toast.makeTextTBM_Fragments.this.getContext,
Kata tidak ditemukan Running Time : + t2 + ms, Toast.LENGTH_SHORT.show;
71. } else {
72. ListAdapter adapt = new
SimpleAdapterTBM_Fragments.this.getContext, list_data, R.layout.list_row, new String[]{Fisika, Arti},
73. new int[]{R.id.fsk, R.id.arti};
74. lv2.setAdapteradapt;
75. Toast.makeTextTBM_Fragments.this.getContext,
Running Time : + t2 + ms, Toast.LENGTH_LONG.show; 76.
} 77.
} 78.
} 79.
; 80.
return v; 81.
} 82.
public class TBM 83.
{
Universitas Sumatera Utara
84. int XSIZE = 256, ASIZE = 256;
85. int bcShift, i, j, shift, u , v, turboShift;
86. int[] bmGs = new int[XSIZE];
87. int[] bmBc = new int[ASIZE];
88. String x;
89. public TBMString pattern{
90. x = pattern;
91. preBmGsx, x.length , bmGs;
92. preBmBcx, x.length , bmBc;
93. }
94. public void suffixesString x, int m, int[] suff{
95. int f, g, i;
96. suff[m - 1] = m;
97. g = m - 1;
98. f = m - 1;
99. fori = m-2; i=0; i--{
100. ifi g suff[i + m - 1 - f] i - g{
101. suff[i] = suff[i + m - 1- f];
102. }
103. else{
104. ifi g{
105. g = i;
106. }
107. f = i;
108. whileg = 0 x.charAtg == x.charAtg +
m - 1 - f{ 109.
g = g - 1; 110.
} 111.
suff[i] = f - g; 112.
} 113.
} 114.
} 115.
public void preBmGsString x, int m, int[] bmGs{ 116.
int i,j; 117.
int[] suff = new int[x.length]; 118.
suffixesx, m, suff; 119.
for i=0; i=m-1; i++{ 120.
bmGs[i] = m; 121.
} 122.
j = 0; 123.
fori=m-1; i=-1; --i{ 124.
ifi == -1 || suff[i] == i+1{ 125.
whilej m-1-i{ 126.
ifbmGs[j] == m{ 127.
bmGs[j] = m-1-i; 128.
} 129.
j = j + 1; 130.
} 131.
} 132.
} 133.
134. fori=0; i=m-2; i++{
135. bmGs[m - 1 - suff[i]] = m - 1 -i;
136. }
137. }
138. public void preBmBcString x, int m, int[] bmBc{
139. int i;
140. fori = 0; i = 255; i++{
141. bmBc[i] = m;
142. }
143. fori = 0; i=m-2; i++{
Universitas Sumatera Utara
144. bmBc[x.charAti] = m - i - 1;
145. }
146. }
147. public int TBMString y{
148. searching
149. int m = x.length, n = y.length;
150. j = u = 0;
151. shift = m;
152. while j=n - m {
153. i = m - 1;
154. while i=0 x.charAti == y.charAti+j{
155. --i;
156. if u = 0 i == m -1 - shift
157. i -= u;
158. }
159. if i 0{
160. System.out.printlnj;
161. return 1;
162. = bmGs[0];
163. u = m - shift;
164. }
165. else {
166. v = m - 1 - i;
167. turboShift = u - v;
168. bcShift = bmBc[y. charAti+j] - m + 1 + i;
169. shift = Math.maxturboShift, bcShift;
170. shift = Math.maxshift, bmGs[i];
171. if shift == bmGs[i]
172. u = Math.minm - shift, v;
173. else {
174. if turboShift bcShift
175. shift = Math.maxshift , u + 1;
176. u = 0;
177. }
178. }
179. j += shift;
180. } return 0;
181. }
182. }
4. Pemanggilan Algoritma String Matching on Ordered Alphabet