Pemanggilan Algoritma String Matching on Ordered Alphabet

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

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 SMUA_Fragments extends Fragment { 19. Nullable Universitas Sumatera Utara 20. Button btneksekusi; 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.smua_fragments, container, false; 29. btneksekusi = Buttonv.findViewByIdR.id.buttonCarismua; 30. lv2 = ListViewv.findViewByIdR.id.listing; 31. cari = EditTextv.findViewByIdR.id.Caritbm; 32. list_data = new ArrayList; 33. btneksekusi.setOnClickListenernew View.OnClickListener { 34. Override 35. public void onClickView view { 36. pat = cari.getText.toString; 37. DatabaseHelper helper = new DatabaseHelperSMUA_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. SMUA c = new SMUA; 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.makeTextSMUA_Fragments.this.getContext, Masukan Kata Yang Di Cari, Toast.LENGTH_LONG.show; } 53. if pat.length = Fisika.length { 54. ketemu = c.SMOApat.toUpperCase, pat.length, Fisika.toUpperCase, Fisika.length; 55. if ketemu == 1 { 56. urutan++; 57. map = new HashMap; 58. map.puturutan, Integer.toStringurutan; 59. map.putFisika, Integer.toStringurutan + . + Fisika; 60. map.putArti, Arti; 61. list_data.addmap; 62. i += 1; 63. } 64. } 65. } while cursor.moveToNext; 66. } 67. long t2 = System.currentTimeMillis - t; 68. if i == 0 { Universitas Sumatera Utara 69. Toast.makeTextSMUA_Fragments.this.getContext, Kata tidak ditemukan Running Time : + t2 + ms, Toast.LENGTH_SHORT.show; 70. } else { 71. ListAdapter adapt = new SimpleAdapterSMUA_Fragments.this.getContext, list_data, R.layout.list_row, new String[]{Fisika, Arti}, 72. new int[]{R.id.fsk, R.id.arti}; 73. lv2.setAdapteradapt; 74. Toast.makeTextSMUA_Fragments.this.getContext, Running Time : + t2 + ms, Toast.LENGTH_LONG.show; 75. } 76. catch Exception e { 77. Toast.makeTextSMUA_Fragments.this.getContext, e.getMessage, Toast.LENGTH_SHORT.show; 78. } 79. } 80. }; 81. return v; 82. } 83. private class SMUA { 84. int i, ip, j, jp, k, p; 85. public void nextMaximalSuffixString x, int m, int i, int j, int k, int p { 86. char a, b; 87. while j + k m { 88. a = x.charAti + k; 89. b = x.charAtj + k; 90. if a == b 91. if k == p { 92. j += p; 93. k = 1; 94. } else 95. ++k; 96. else if a b { 97. j += k; 98. k = 1; 99. p = j - i; 100. } else { 101. i = j; 102. ++j; 103. k = p = 1; 104. } 105. } 106. } 107. public int SMOAString x, int m, String y, int n { 108. ip = -1; 109. i = j = jp = 0; 110. k = p = 1; 111. while j = n - m { 112. while i + j n i m x.charAti == y.charAti + j 113. ++i; 114. if i == 0 { 115. ++j; 116. ip = -1; 117. jp = 0; 118. k = p = 1; Universitas Sumatera Utara 119. } else { 120. if i = m return 1; 121. System.out.printlnj; 122. nextMaximalSuffixy + j, i + 1, ip, jp, k, p; 123. if ip 0 || ip p java.util.Arrays.equalsy + j.substring0, ip + 1.toCharArray, y + j + p.substring0, ip + 1.toCharArray { 124. j += p; 125. i -= p; 126. if i 0 127. i = 0; 128. else { 129. ip = -1; 130. jp = 0; 131. k = p = 1; 132. } 133. } else { 134. j += Math.maxip + 1, Math.mini - ip - 1, jp + 1 + 1; 135. i = jp = 0; 136. ip = -1; 137. k = p = 1; 138. } 139. } 140. } 141. return 0; 142. } 143. } 144. }

5. Pemanggilan Halaman Algoritma Pencarian