Pemanggilan Algoritma Turbo Boyer Moore

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