LISTING PROGRAM
1. package com.rickywijaya.kamusistilahpsikologi; 2. import java.util.ArrayList;
3. import java.util.HashMap; 4. import java.util.List; 5. import android.app.Activity; 6. import android.content.Context; 7. import android.content.Intent; 8. import android.database.Cursor;
9. import android.database.sqlite.SQLiteDatabase; 10. import android.os.Bundle;
11. import android.support.v4.app.Fragment; 12. import android.view.KeyEvent;
13. import android.view.LayoutInflater; 14. import android.view.View;
15. import android.view.ViewGroup; 16. import android.view.WindowManager; 17. import android.view.inputmethod.EditorInfo;
18. import android.view.inputmethod.InputMethodManager; 19. import android.widget.AdapterView;
20. import android.widget.AdapterView.OnItemClickListener; 21. import android.widget.ArrayAdapter;
22. import android.widget.Button; 23. import android.widget.EditText; 24. import android.widget.ListAdapter; 25. import android.widget.ListView; 26. import android.widget.RadioButton; 27. import android.widget.RadioGroup; 28. import android.widget.SimpleAdapter; 29. import android.widget.TextView; 30. import android.widget.Toast; 31.
32. public class Psi_Arti extends Fragment implements View.OnClickListener 33. {
34. Button search;
35. EditText text;
36. ListView lv;
37. RadioButton radio1;
38. RadioGroup radio;
39. DatabaseHelper dbHelper; 40. ArrayList<HashMap<String, String>> list_data; 41. HashMap<String, String> map;
42. ArrayAdapter<Kamus> adapter; 43. List<Kamus> listKamus; 44. SQLiteDatabase db;
45. Cursor cursor = null;
46. String arti = "", istilah = "", pat = ""; 47. int urutan = 0;
48. int algo;
49. public static int komparasi; 50. @Override
51. public void onCreate(Bundle savedInstanceState)
52. {
53. super.onCreate(savedInstanceState);
54. }
55. @Override
56. public View onCreateView(LayoutInflater inflater, ViewGroup container, 57. Bundle savedInstanceState) {
58. View rootView = inflater.inflate(R.layout.psi_arti, container, false); 59. text = (EditText) rootView.findViewById(R.id.editText);
60. lv = (ListView) rootView.findViewById(R.id.lv_data); 61. radio1 = (RadioButton) rootView.findViewById(R.id.radio1); 62. radio = (RadioGroup) rootView.findViewById(R.id.grup); 63. search = (Button) rootView.findViewById(R.id.search); 64. list_data = new ArrayList<HashMap<String, String>>();
65. algo = 1;
66. radio.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() 67. {
68. public void onCheckedChanged(RadioGroup group, int checkedId) { 69. switch(checkedId){
70. case R.id.radio1: 71. algo = 1;
72. break;
73.
74. case R.id.radio2: 75. algo = 2;
76. break;
77. }
78. }
79. });
80. text.setOnKeyListener(new View.OnKeyListener() { 81. @Override
82. public boolean onKey(View v, int keyCode, KeyEvent event) { 83. if ( text.getText().toString().length() == 0){
84. ambildata();
85. }
86. return false;
87. }
88. });
89. search.setOnClickListener(new View.OnClickListener() {
90. @Override
91. public void onClick(View v) {
92. search();
93. return;
94. }
95. });
96. ambildata();
97. lv.setOnItemClickListener(new OnItemClickListener() { 98. public void onItemClick(AdapterView<?> parent, View view, 99. int position, long id) {
100. TextView text = (TextView) view.findViewById(R.id.istilah); 101. TextView text1 = (TextView) view.findViewById(R.id.arti); 102. Bundle b = new Bundle();
103. b.putString("istilah", text.getText().toString().trim()); 104. b.putString("arti", text1.getText().toString().trim()); 105. Intent i = new Intent(getActivity(), ArtiActivity.class); 106. i.putExtras(b);
107. startActivity(i);
108. }
109. });
111. }
112. @Override
113. public void onClick(View v) {
114. }
115. public void search() {
116. dbHelper = new DatabaseHelper(getActivity()); 117. db = dbHelper.getReadableDatabase();
118. pat = text.getText().toString(); 119. int ketemu = 0, i = 0;
120. urutan = 0; 121. komparasi = 0; 122. try {
123. list_data.clear();
124. long t = System.currentTimeMillis(); 125. if (cursor != null) {
126. cursor.moveToFirst(); 127. do {
128. istilah = cursor.getString(0); 129. arti = cursor.getString(1);
130. if (pat.length() <= istilah.length()) { 131. if(algo == 1){
132. AlgoritmaNotSoNaive c = new AlgoritmaNotSoNaive();
133. ketemu = c.searching(pat.toUpperCase(), pat.length(), istilah.toUpperCase(), istilah.length());
134. }
135. else if (algo == 2){
136. AlgoritmaSkipSearch c = new AlgoritmaSkipSearch();
137. ketemu = c.searching(pat.toUpperCase(), pat.length(), istilah.toUpperCase(), istilah.length());
138. }
139. if (ketemu == 1) {
140. urutan++;
141. map = new HashMap<String, String>(); 142. map.put("urutan", Integer.toString(urutan)); 143. map.put("arti", arti);
144. map.put("istilah", istilah); 145.
146. list_data.add(map);
147. i += 1;
148. }
149. }
150. } while (cursor.moveToNext()); 151. }
152. long t2 = (System.currentTimeMillis() - t); 153. if (i == 0) {
154.Toast.makeText(getActivity().getBaseContext(), "Kata tidak ditemukan & Running Time : " + t2 + " ms & " + komparasi + " banyak komparasi", Toast.LENGTH_SHORT).show();
155. } else { 156.
157.ListAdapter adapt = new SimpleAdapter(getActivity(), list_data, R.layout.list_row, new String[]{"urutan", "istilah", "arti"},
158. new int[]{R.id.id, R.id.istilah, R.id.arti}); 159. lv.setAdapter(adapt);
160.Toast.makeText(getActivity().getBaseContext(), "Running Time : " + t2 + " ms & " + komparasi + "
banyak komparasi", Toast.LENGTH_SHORT).show();
161. }
162. }
164. Toast.makeText(getActivity().getBaseContext(), e.toString(), Toast.LENGTH_SHORT).show();
165. } 166. }
167. public void ambildata() { 168. list_data.clear();
169. dbHelper = new DatabaseHelper(getActivity()); 170. db = dbHelper.getReadableDatabase();
171. cursor = db.query("tb_istilah", new String[]{"istilah", "arti"}, null, null, null, null, "istilah");
179. istilah = cursor.getString(0); 180. arti = cursor.getString(1);
181. map = new HashMap<String, String>();
182. map.put("urutan", Integer.toString(urutan) + "."); 183. map.put("istilah", istilah);
184. map.put("arti", arti); 185. list_data.add(map);
186. } while (cursor.moveToNext());
187. ListAdapter adapter = new SimpleAdapter(getActivity(), list_data, R.layout.list_row, new String[]{"urutan", "istilah", "arti"},
188. new int[]{R.id.id, R.id.istilah, R.id.arti}); 189. lv.setAdapter(adapter);
190. }
191. } catch (Exception e) {
192. Toast.makeText(getActivity().getBaseContext(), "Data Kosong", Toast.LENGTH_SHORT).show();
193. }
194. db.close();
195.
}
196.}
1. package com.rickywijaya.kamusistilahpsikologi; 2. import android.os.Bundle;
3. import android.support.v4.app.Fragment; 4. import android.view.KeyEvent;
5. import android.view.LayoutInflater; 6. import android.view.View;
7. import android.view.ViewGroup; 8. import java.util.ArrayList; 9. import java.util.HashMap; 10. import java.util.List; 11. import android.R.string; 12. import android.app.Activity; 13. import android.content.Intent; 14. import android.database.Cursor;
15. import android.database.sqlite.SQLiteDatabase; 16. import android.text.Editable;
17. import android.text.TextWatcher; 18. import android.widget.AdapterView;
19. import android.widget.AdapterView.OnItemClickListener; 20. import android.widget.ArrayAdapter;
21. import android.widget.Button; 22. import android.widget.EditText; 23. import android.widget.ListAdapter; 24. import android.widget.ListView; 25. import android.widget.RadioGroup; 26. import android.widget.RadioButton; 27. import android.widget.SimpleAdapter; 28. import android.widget.TextView; 29. import android.widget.Toast; 30.
31. public class Arti_Psi extends Fragment implements View.OnClickListener 32. {
33. Button search;
34. EditText text;
35. ListView lv;
36. RadioGroup radio;
37. DatabaseHelper dbHelper; 38. ArrayList<HashMap<String, String>> list_data; 39. HashMap<String, String> map;
40. ArrayAdapter<Kamus> adapter; 41. List<Kamus> listKamus; 42. SQLiteDatabase db;
43. Cursor cursor = null;
44. String arti = "", istilah = "", pat = ""; 45. int urutan = 0;
46. int algo;
47. public static int komparasi; 48. @Override
49. public void onCreate(Bundle savedInstanceState)
50. {
51. super.onCreate(savedInstanceState);
52. }
53. @Override
54. public View onCreateView(LayoutInflater inflater, ViewGroup container, 55. Bundle savedInstanceState) {
56. View rootView = inflater.inflate(R.layout.psi_arti, container, false); 57. text = (EditText) rootView.findViewById(R.id.editText);
58. lv = (ListView) rootView.findViewById(R.id.lv_data); 59. radio = (RadioGroup) rootView.findViewById(R.id.grup); 60. search = (Button) rootView.findViewById(R.id.search); 61. list_data = new ArrayList<HashMap<String, String>>(); 62. algo = 1;
63. radio.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() 64. {
65. public void onCheckedChanged(RadioGroup group, int checkedId) { 66. switch(checkedId){
67. case R.id.radio1: 68. algo = 1;
69. break;
70. case R.id.radio2: 71. algo = 2;
72. break;
73. }
74. }
76. text.setOnKeyListener(new View.OnKeyListener() { 77. @Override
78. public boolean onKey(View v, int keyCode, KeyEvent event) { 79. if ( text.getText().toString().length() == 0){
80. ambildata();
81. }
82. return false;
83. }
84. });
85. search.setOnClickListener(new View.OnClickListener() {
86. @Override
87. public void onClick(View v) {
88. search();
89. return;
90. }
91. });
92. ambildata();
93. lv.setOnItemClickListener(new OnItemClickListener() { 94. public void onItemClick(AdapterView<?> parent, View view, 95. int position, long id) {
96. TextView text = (TextView) view.findViewById(R.id.istilah); 97. TextView text1 = (TextView) view.findViewById(R.id.arti); 98. Bundle b = new Bundle();
99. b.putString("istilah", text.getText().toString().trim()); 100. b.putString("arti", text1.getText().toString().trim()); 101. Intent i = new Intent(getActivity(), IstilahActivity.class); 102. i.putExtras(b);
103. startActivity(i);
104. }
105. });
106. return rootView;
107. }
108. @Override
109. public void onClick(View v) {
110. }
111. public void search() {
112. dbHelper = new DatabaseHelper(getActivity()); 113. db = dbHelper.getReadableDatabase();
114. cursor = db.query("tb_istilah", new String[]{"istilah", "arti"}, null, null, null, null, "arti"); 115. pat = text.getText().toString();
116. int ketemu = 0, i = 0; 117. urutan = 0;
118. komparasi = 0; 119. try {
120. list_data.clear();
121. long t = System.currentTimeMillis(); 122. if (cursor != null) {
123. cursor.moveToFirst(); 124. do {
125. istilah = cursor.getString(0); 126. arti = cursor.getString(1); 127. if (pat.length() <= arti.length()) { 128. if(algo == 1){
129. AlgoritmaNotSoNaive c = new AlgoritmaNotSoNaive();
130. ketemu = c.searching(pat.toUpperCase(), pat.length(), arti.toUpperCase(), arti.length());
131. }
132. else if (algo == 2){
134. ketemu = c.searching(pat.toUpperCase(), pat.length(), arti.toUpperCase(), arti.length());
135. }
136. if (ketemu == 1) {
137. urutan++;
138. map = new HashMap<String, String>(); 139. map.put("urutan", Integer.toString(urutan)); 140. map.put("istilah", istilah);
141. map.put("arti", arti); 142. list_data.add(map);
143. i += 1;
144. }
145. }
146. } while (cursor.moveToNext()); 147. }
148. long t2 = (System.currentTimeMillis() - t); 149. if (i == 0) {
150. Toast.makeText(getActivity().getBaseContext(), "Kata tidak ditemukan & Running Time : " + t2 + " ms & " + komparasi + " banyak komparasi",
Toast.LENGTH_SHORT).show(); 151. } else {
152. ListAdapter adapt = new SimpleAdapter(getActivity(), list_data, R.layout.list_arti, new String[]{"urutan", "arti", "istilah"},
153. new int[]{R.id.id, R.id.arti, R.id.istilah}); 154. lv.setAdapter(adapt);
155. Toast.makeText(getActivity().getBaseContext(), "Running Time : " + t2 + " ms & " + komparasi + " banyak komparasi", Toast.LENGTH_SHORT).show();
156. }
157. }
158. catch (Exception e) {
159. Toast.makeText(getActivity().getBaseContext(), e.toString(), Toast.LENGTH_SHORT).show();
160. } 161. }
162. public void ambildata() { 163. list_data.clear();
164. dbHelper = new DatabaseHelper(getActivity()); 165. db = dbHelper.getReadableDatabase();
166. cursor = db.query("tb_istilah", new String[]{"istilah", "arti"}, null, null, null, null, "istilah");
173. istilah = cursor.getString(0); 174. arti = cursor.getString(1);
175. map = new HashMap<String, String>();
176. map.put("urutan", Integer.toString(urutan) + "."); 177. map.put("arti", arti);
178. map.put("istilah", istilah); 179. list_data.add(map);
180. } while (cursor.moveToNext());
181. ListAdapter adapter = new SimpleAdapter(getActivity(), list_data, R.layout.list_arti, new String[]{"urutan", "arti", "istilah"},
182. new int[]{R.id.id, R.id.arti, R.id.istilah}); 183. lv.setAdapter(adapter);
185. } catch (Exception e) {
186. Toast.makeText(getActivity().getBaseContext(), "Data Kosong", Toast.LENGTH_SHORT).show();
187. }
188. db.close(); 189. }
190.}
1. package com.rickywijaya.kamusistilahpsikologi; 2. import java.util.ArrayList;
3. import java.util.HashMap; 4. import android.widget.Toast; 5. public class AlgoritmaNotSoNaive { 6. int k,ell,a;
7. ArrayList<HashMap<String, String>> list_data; 8. public int searching(String pat, int m, String text, int n){
9. try{
10. Psi_Arti komp = new Psi_Arti(); 11. Arti_Psi komp1 = new Arti_Psi(); 12. int j =0;
13. int hasil =0;
14. Boolean found = false; 15. char [] x = pat.toCharArray(); 16. char [] y = text.toCharArray(); 17. //preprocessing
29. if(x[1] != y[j+1] && komp.komparasi++>=0 && komp1.komparasi++>=0){
30. j += k;
36. for (int b=0;b<m;b++){
37. try{
38. if(x[b+1] == y[j+1+b] && x[0] == y[j] && komp.komparasi++>=0 && komp1.komparasi++>=0 ){
39. a++;}
45. catch(Exception e){
46. }
47. }
48. System.out.println(a+" hasil");
49. if(a == m){
56. return 1;
57. }
58. else{
59. return 0;
60. }
61. }
62. catch (Exception e){ 63. return 0; 64. }
65. }
66. }
1. package com.rickywijaya.kamusistilahpsikologi; 2. import java.util.ArrayList;
3.
4. public class AlgoritmaSkipSearch { 5.
6. public static int ASIZE = 256; 7.
8. public int searching(String pat, int m, String text, int n){
9. try{
10. Psi_Arti komp = new Psi_Arti(); 11. Arti_Psi komp1 = new Arti_Psi(); 12. char[] x = pat.toCharArray(); 13. char[] y = text.toCharArray();
14. int i, j;
15. List1 ptr = null;
16. List1 z[] = new List1[ASIZE];
17. String sub_x, sub_y;
18. Boolean found = false; 19.
20. /*Prepocessing*/
21. for (int a=0; a<ASIZE; a++){
22. z[a] = null;
23. }
24.
25. for(i = 0; i < m; ++i){
26. ptr = new List1();
27. if (ptr==null) System.out.println("ERROR");
28. ptr.element = i;
29. ptr.next = z[x[i]];
30. z[x[i]] = ptr;
31. }
32.
33. /*Searching*/
34. for(j = m -1; j<n; j += m){
35. komp.komparasi++;
36. komp1.komparasi++;
37. for(ptr = z[y[j]]; ptr != null; ptr = ptr.next){
38. komp.komparasi++;
39. komp1.komparasi++;
40. int a=0;
41. for (int b=0;b<m;b++){
42. try{
43. if(x[b] == y[j-ptr.element+b] && komp.komparasi++>=0 && komp1.komparasi++>=0)
44. a++;
45. else
46. break;
47. }
48.
49. catch(Exception e){
50.
51. }
52. if(j-ptr.element<= n-m && a == m)
53. found = true;
54. }
55. }
56. }
57.
58. if(found){
59. return 1;
60. }
61. else{
62. return 0;
63. }
64. }
65. catch(Exception e){
66. return 0;
67. }
68. }
69. } 70.
71. class List1 {