LISTING PROGRAM
1. Halaman Utama Aplikasi
1. <?xml version="1.0" encoding="utf-8"?> 2. <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" 3. android:orientation="vertical"
android:layout_width="match_parent" 4. android:layout_height="match_parent" 5. android:background="@drawable/gambar1" 6. android:weightSum="1">
7. <TextView
8. android:layout_width="wrap_content" 9. android:layout_height="wrap_content" 10. android:paddingTop="30dp"
11. android:layout_alignParentTop="true" 12. android:layout_centerHorizontal="true" 13. android:textSize="20dp"
14. android:textColor="#6F00FF" 15. android:id="@+id/tv"/> 16. <TextView
17. android:layout_width="wrap_content" 18. android:layout_height="wrap_content" 19. android:paddingTop="60dp"
20. android:layout_alignParentTop="true" 21. android:layout_centerHorizontal="true" 22. android:textSize="20dp"
23. android:textColor="#6F00FF" 24. android:id="@+id/tv"/> 25. <Button
26. android:layout_width="wrap_content" 27. android:layout_height="wrap_content" 28. android:id="@+id/buttonCari"
29. android:text="SEARCH"
30. android:backgroundTint="#1CAC78" 31. android:layout_gravity="top|center" 32. android:layout_marginTop="53dp" 33. android:layout_below="@+id/tv"
34. android:layout_alignStart="@+id/buttonTtg" 35. android:width="100dp"
36. android:height="50dp" /> 37. <Button
38. android:layout_width="wrap_content" 39. android:layout_height="wrap_content" 40. android:id="@+id/buttonTtg"
41. android:text="ABOUT"
42. android:backgroundTint="#1CAC78" 43. android:width="100dp"
44. android:height="50dp"
45. android:layout_below="@+id/buttonCari" 46. android:layout_centerHorizontal="true" /> 47. <Button
48. android:layout_width="wrap_content" 49. android:layout_height="wrap_content" 50. android:id="@+id/buttonKeluar"
51. android:text="EXIT"
52. android:backgroundTint="#1CAC78" 53. android:width="100dp"
55. android:layout_below="@+id/buttonTtg" 56. android:layout_centerHorizontal="true" /> 57. </RelativeLayout>
2. Fungsi Pemanggilan Halaman Utama Aplikasi
1. package com.mardiah.dictionary;
10. public class Hal2_Class extends Activity implements View.OnClickListener {
11. Button cari; 12. Button tentang; 13. Button keluar; 14. @Override
15. protected void onCreate(Bundle savedInstanceState) { 16. super.onCreate(savedInstanceState);
17. setContentView(R.layout.hal2_activity);
18. cari = (Button) findViewById(R.id.buttonCari);
46. public boolean onKeyUp(int keyCode, KeyEvent event) { 47. if (keyCode == KeyEvent.KEYCODE_BACK &&
event.isTracking() && !event.isCanceled()) { 48. AlertDialog.Builder builder = new
AlertDialog.Builder(this);
50. builder.setMessage("Apa anda ingin keluar
3. Pemanggilan Algoritma Turbo Boyer Moore
1. package com.mardiah.dictionary;
18. public class TBM_Fragments extends Fragment{ 19. @Nullable
20. Button btncari;
21. ArrayList<HashMap<String, String>> list_data; 22. HashMap<String, String> map;
23. ListView lv2; 24. EditText cari;
25. String pat = "", Fisika="", Arti =""; 26. @Override
27. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
28. View v = inflater.inflate(R.layout.tbm_fragments, container, false);
29. btncari = (Button)v.findViewById(R.id.buttonCaritbm); 30. list_data = new ArrayList<>();
31. lv2 = (ListView)v.findViewById(R.id.LvHasil); 32. cari = (EditText)v.findViewById(R.id.Caritbm);
35. public void onClick(View view) { String[]{"fisika", "arti"}, null, null, null, null, "fisika"); 40. int ketemu = 0, i = 0; Integer.toString(urutan) + ". " + Fisika);
61. map.put("Arti", Arti); "Kata tidak ditemukan & Running Time : " + t2 + " ms",
Toast.LENGTH_SHORT).show(); "Running Time : " + t2 + " ms", Toast.LENGTH_LONG).show();
144. bmBc[x.charAt(i)] = m - i - 1;
4. Pemanggilan Algoritma String Matching on Ordered Alphabet
1. package com.mardiah.dictionary;
20. Button btneksekusi;
21. ArrayList<HashMap<String, String>> list_data; 22. HashMap<String, String> map;
23. ListView lv2; 24. EditText cari;
25. String pat = "", Fisika="", Arti =""; 26. @Override
27. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { String[]{"fisika", "arti"}, null, null, null, null, "fisika");
40. int ketemu = 0, i = 0; Integer.toString(urutan) + ". " + Fisika);
69.
119. } else {
java.util.Arrays.equals((y + j).substring(0, ip + 1).toCharArray(), (y + j + p).substring(0, ip + 1).toCharArray())) {
5. Pemanggilan Halaman Algoritma Pencarian
1. package com.mardiah.dictionary;
7. public class MainActivityBaru extends AppCompatActivity{ 8. @Override
9. protected void onCreate(Bundle savedInstanceState) { 10. super.onCreate(savedInstanceState);
11. setContentView(R.layout.activity_main_baru); 12. getSupportActionBar().hide();
17. tabLayout.addTab(tabLayout.newTab().setText("Turbo Boyer Moore"));
18. tabLayout.addTab(tabLayout.newTab().setText("String Matching on Ordered Alphabets"));
22. viewPager.addOnPageChangeListener(new
23. tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
24. @Override
25. public void onTabSelected(TabLayout.Tab tab) { 26. viewPager.setCurrentItem(tab.getPosition()); 27. }
28.
29. @Override
30. public void onTabUnselected(TabLayout.Tab tab) { 31.
32. } 33.
34. @Override
35. public void onTabReselected(TabLayout.Tab tab) { 36.
37. } 38. }); 39.
CURRICULUM VITAE
Nama Lengkap : Nurmardiah Siregar Nama Panggilan : Mardiah
Tempat/Tanggal Lahir : Siolip / 21 April 1993 Jenis Kelamin : Wanita
Agama : Islam
Warga Negara : Indonesia
Alamat : Jl. Garu 6 No. 19A Medan Amplas Mobile Phone : 085315056414
E-mail : diahsiregar87@gmail.com
Riwayat Pendidikan
[2012 – 2016] : S1 Ilmu Komputer Universitas Sumatera Utara, Medan [2009 – 2012] : SMA Negeri 1 Barumun Tengah
[2006 – 2009] : SMP Negeri 1 Barumun Tengah [2000 – 2006] : SD Negeri 147592 Pasar Binanga
---
Keahlian
Database : MySQL
Perkantoran : Microsoft Office Bahasa : Indonesia, Inggris
Pengalaman Organisasi danKepanitian
[2012 – 2013] Anggota Bidang Kaderisasi UKMI Al-Khuwarizmi [2013 – 2014] Anggota Keputrian UKMI Al-Khuwarizmi
Seminar
[2013] Seminar Nasional “Pengenalan Kebudayaan Sumatera Utara” [2014] Seminar Open BTS “ICONS”
[2014] Seminar Nasional Literasi Informasi “SENARAI”
Demikian riwayat hidup ini saya perbuat dengan sebenar-benarnya.
Medan, Oktober 2016
DAFTAR PUSTAKA
Argakusumah, K.W. & Hansun, S. 2014. Implementasi Algoritma Boyer Moore pada Aplikasi Kamus Kedokteran Berbasis Android. Volume 6. No. 2. Hal : 1-9.
Charras, C & Lecroq. T. 2014. Handbook of Exact String Matching Algorithms (E-Book). English. Collage Publications.
Efendi, D. & Kurnaedi, A. 2012. Pengembangan Algoritma Boyer Moore pada Translator Bahasa Pemrograman. Volume 8. No. 1. Hal : 13-21.
Fitria, M., Andresware. D. & Efendi. R. 2014. Rancang Bangun Aplikasi Kamus Bahasa Indonesia-Minang, Minang-Indonesia Berbasis Android. Jurnal Ilmiah BidangSains-Teknologi Murni Disiplin dan Antar Disiplin 1(14):1-11.
Goni, P.I. 2013. Penerapan Algoritma Turbo Boyer Moore untuk Pendeteksian Kemiripan Dokumen Teks Berbasis Web. Skripsi. Universitas Kristen Satya Wacana.
Munir, R. 1999. Algoritma dan Pemrograman dalam Bahasa Pascal dan C. Informatika : Bandung.
Rizal. 2015. Permainan Tebak Kata Bahasa Aceh Menggunakan Algoritma Turbo Boyer Moore. Volume 6. No. 1. Hal : 1-20.
Subandijo. 2011. Efisiensi Algoritma dan Notasi O besar. Volume 2. No. 2. Hal : 849-858. Safaat, N. 2014. Pemograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android.
Revisi Kedua. Informatika : Bandung.
Sagita, V. & Prasetiyowati, M.I. 2012. Studi Perbandingan Implementasi Algoritma Boyer Moore, Turbo Boyer Moore dan Tuned Boyer Moore dalam Pencarian String. Volume 6. No. 1. Hal : 1-7.
BAB 3
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Analisis sistem ialah teknik untuk menyelesaikan suatu masalah di dalam sistem menjadi suatu komponen kecil dengan cara mengidentifikasi kebutuhan, mengevaluasi konsep sistem, melakukan analisis teknis dan ekonomis, mengalokasikan fungsi-fungsi untuk perangkat keras, perangkat lunak, manusia, database dan elemen yang lain, membuat batasan biaya dan jadwal serta menciptakan definisi sistem. Ada dua tahapan analisis sistem yaitu analisis masalah dan analisis persyaratan. Analisis masalah untuk memahami kelayakan masalah dan analisis persyaratan untuk menjelaskan fungsi-fungsi yang ditawarkan dan mampu dikerjakan sistem.
3.1.1 Analisis Masalah
Analisis masalah merupakan proses mengidentifikasi sebab dan akibat dibangunnya sebuah sistem agar sistem yang akan dibangun dapat berjalan sesuai dengan tujuan dari sistem tersebut. Seperti yang kita ketahui, jika seseorang ingin mencari pengertian istilah Fisika, hal yang pertama kali digunakan yaitu dengan menggunakan kamus. Kamus identik dengan ukuran yang tebal dan berat sehingga tidak efektif dan efisien dalam penggunaannya karena menghabiskan banyak waktu dalam proses pencarian. Untuk mengatasi permasalahan tersebut dibutuhkan sebuah aplikasi kamus Fisika yang bertujuan untuk mempermudah proses pencarian kata.
Gambar 3.1 Diagram Ishikawa
3.1.2 Analisis Persyaratan
Dalam membangun sebuah sistem, perlu dilakukan tahap analisis persyaratan. Analisis persyaratan terbagi dua yaitu, analisis persyaratan fungsional dan persyaratan non-fungsional. Persyaratan fungsional mendeskripsikan aktivitas yang disediakan oleh sistem. Sedangkan persyaratan non-fungsional mendeskripsikan fitur, karakteristik dan batasan lainnya.
3.1.2.1Persyaratan Fungsional
Persyaratan fungsional mendeskripsikan aktivitas yang disediakan oleh sistem. Ada beberapa hal yang menjadi persyaratan fungsional pada Aplikasi Kamus Fisika berikut :
1. Sistem ini akan melakukan pencocokan string terhadap kata yang diinputkan oleh user. 2. Sistem dapat menghasilkan pengertian istilah Fisika yang diinput dengan menggunakan
3.1.2.2Persyaratan Non-Fungsional
Persyaratan non-fungsional menggambarkan tentang karakteristik atau batasan terhadap kepuasan pemakaian pada sistem, seperti performa, kemudahan pemakaian oleh pengguna, biaya dan kemampuan sistem dalam bekerja.
Ada beberapa persyaratan non-fungsional yang harus dipenuhi diantaranya : 1. Performa
Sistem yang akan dibangun harus dapat menampilkan hasil pencarian yang sesuai dengan apa yang dicari.
2. Mudah digunakan
Sistem yang akan dibangun harus mudah digunakan (user friendly) sehingga pengguna dapat mengakses sistem dengan mudah.
3. Hemat Biaya
Sistem yang dibangun tidak memerlukan perangkat tambahan ataupun perangkat pendukung lainnya yang dapat mengeluarkan biaya.
4. Kontrol
Perangkat lunak yang dibangun akan menampilkan pesan warninguntuk setiap inputan yang tidak sesuai.
4.2 Pemodelan
Pemodelan sistem dilakukan untuk memperoleh gambaran cara kerja sistem dan tentang objek apa saja yang akan berinteraksi dengan sistem, serta hal-hal apa saja yang harus dilakukan oleh sebuah sistem sehingga sistem dapat berfungsi dengan baik sesuai dengan kegunaannya (Rosa A.S, 2013).
4.2.1 Usecase Diagram
Usecase atau diagram usecase merupakan pemodelan untuk kelakuan (behavior) sistem
informasi yang aka dibuat. Usecase mendeksripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Usecase digunakan untuk mengetahui fungsi apa yang ada di dalam sebuah sistem informasi dan siapa yang berhak menggunakan fungsi-fungsi tersebut (Rosa A.S, 2013).
Gambar 3.2 Usecase Diagram Sistem
Tabel 3.1Usecase Proses Input kata
Name Input kata
Actors User
Description Usecase ini mendeskripsikan penginputan kata yang ingin
dicari
Basic Flow User menginput kata
Alternate Flow -
Pre Condition User ingin menginput kata
Post Condition User mendapatkan hasil pencarian kata
Tabel 3.2 Usecase Proses Algoritma Turbo Boyer Moore
Name Algoritma Turbo Boyer Moore
Actors User
Description Usecase ini mendeskripsikan proses pencarian kata
menggunakan Algoritma Turbo Boyer Moore
Basic Flow Usermemilih AlgoritmaTurbo Boyer Moore
Alternate Flow Usermemilih AlgoritmaString Matching on Ordered Alphabets
Pre Condition User ingin mencari kata
Post Condition User mendapatkan hasil pencarian kata
Tabel 3.3 Usecase Proses Algoritma String Matching on Ordered Alphabets
Name Algoritma String Matching on Ordered Alphabets
Actors User
Description Usecase ini mendeskripsikan proses pencarian kata
Basic Flow Usermemilih Algoritma String Matching on Ordered Alphabets
Alternate Flow Usermemilih Algoritma Turbo Boyer Moore
Pre Condition User ingin mencari kata
Post Condition User mendapatkan hasil pencarian kata
3.2.2 Activity Diagram
Activity Diagram atau diagram aktivitas menggambarkan workflow (aliran kerja) atau
aktivitas dari sebuah sistem atau menu yang ada pada perangkat lunak. Yang perlu diperhatikan adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan yang dikerjakan oleh aktor, jadi aktivitas yang dapat dilakukan oleh sistem (Rosa A.S, 2013).
Gambar 3.3 Activity Diagram Sistem
Gambar ini menunjukkan bahwa user melakukan input kata lalu user memilih algoritma untuk pencarian kemudian sistem melakukan pemanggilan fungsi algoritma yang telah dipilih dan sistem menampilkan hasil pencarian ke user.
3.2.3 Sequence Diagram
Sequence Diagram atau diagram sekuen menggambarkan objek pada usecase dengan
Gambar 3.4 Sequence Diagram Sistem
Gambar 3.4 menunjukkan bahawa user melakukan input kata dan pilih algoritma kemudian sistem akan melakukan pemanggilan fungsi algoritma dan sistem akan menampilkan hasil pencarian.
3.3 Pseudocode
3.3.1 Pseudocode Algoritma Turbo Boyer Moore
Tabel 3.4 PseudocodeTurbo Boyer Moore
Begin
i = 0; u = 0; shift := m;
while i ≤ n – m do j := m;
while j > 0 andif x[j] = y[i + j] do if u ≠ and j = m- shift then
j := j –u; else
j := j-1; endif
3.3.2 Pseudocode Algoritma String Matching on Ordered Alphabets
Tabel 3.5 PseudocodeString Matching on Ordered Alphabets
Tabel 3.4 PseudocodeString Matching on Ordered Alphabets
if j ≤ 0 then
shift := max (occurence_shift (y(i+j))-m+j, matching_shift (j), turbo_shift);
if shift = matching_shift (j) then u := min (m-shift, v);
else
if turbo_shift < occurence_shift (y[i+j])-m+j then shift := max(shift, u+1);
function NEXT_MAXIMAL_SUFFIX (x[l].. .x[n], (i,j,k,p))
3.4 Flowchart
Flowchart adalah diagram alir data dari suatu kerangka program. Fungsinya sama dengan
algoritma, akan tetapi penuangan langkah-langkah penyelesaiannya menggunakan simbol-simbol grafis atau digambarkan secara grafis sehingga akan lebih mudah memahami arah logikanya (Rosa A.S, 2013). Flowchart yang akan dibangun dapat ditunjukkan pada Gambar
3.5
function POSITIONS(x,t); /* FINAL VERSION */
begin P:=0(;
pos:=o; m:=l; (i,j, k,p) :=(O, l,l,l);
while (pas 5 Itl) do
{ while (pos+m<ltl) and (mllxl) and (t[pos+ml=x[ml) do m:=m+l;
if (pos+m=ltl+l) or (m=lxl+l) then P:=P U Iposl;
if (pos+m=ltl +l) then m:=m-1;
(i,jik,p) :=NEXT MAXIMAL SUFFIX(X[~]...~[~-l]t[pos+m], (i, j,k,p));
if (x[ll...x[i] suffix Of
the prefix of length p of x[i+l]...x[m-l]t[pos+m]) then if (j-i > p) then
{ pos:=pos+p; m:=m-ptl; j:=j-p; )
else
{ pos:=pos+p; m:=m-p+l; (i,j,k,p) :=(O,l, 1,l); }
else
{ pos:=postmax(i,min(m-i, j))+l; m:=l; (i,j,k,p) :=(O,l,l,l);) t
Gambar 3.5 Flowchart Gambaran umum Sistem Kamus
Gambar 3.5 menggambarkan alur sistem secara umum pada Kamus Fisika, dimana user
Gambar 3.6 Flowchart Algoritma Turbo Boyer Moore
Gambar 3.7 menggambarkan alur pada proses pencarian Algoritma String Matching on Ordered Alphabets, dimana proses awal yang dilakukan yaitu memasukkan teks dan pattern.
Proses pencocokan teks dan pattern dimulai dari awal karakter, dan pencocokan dilakukan pada karakter paling kiri pattern. Jika terjadi ketidakcocokan antara teks dan pattern maka lakukan pergeseran berdasarkan nilai Next Maximal Suffix dari karakter berikutnya. Dan jika terjadi kecocokan lakukan pencocokan kekarakter selanjutnya. Jika teks belum berada diujung, maka mulai pencocokan karakter paling kiri pattern, dan jika sudah berada diujung teks, maka proses pencocokan telah selesai dilakukan.
3.5 Perancangan Antarmuka Sistem (Interface)
Proses perancangan antarmuka (interface) sebuah sistem adalah proses yang cukup penting dalam perancangan sebuah sistem. Merancang antarmuka merupakan bagian yang paling penting dari merancang sebuah sistem. Sebuah antarmuka harus dirancang dengan memperhatikan faktor pengguna sehingga sistem yang dibangun dapat memberikan kenyamanan dan kemudahan untuk digunakan oleh pengguna.
3.5.1 Rancangan Halaman Splash Screen
Halaman Splash Screen merupakan halaman yang pertama kali muncul pada saat aplikasi dibuka. Rancangan Splash Screen dapat dilihat pada Gambar 3.8
Gambar 3.8Splash Screen
Gambar 3.8 Splash Screen
Keterangan:
1. Splash Screen untuk menampilkan loading progress saat pertama kali membuka aplikasi.
Physics
3.5.2 Rancangan Halaman Utama
Halaman utama terdiri dari ImageView, Search,About dan Exit. Adapun tampilan dari halaman utama dapat dilihat pada Gambar 3.9
Gambar 3.9 Halaman Utama
Gambar 3.9 Halaman Utama
Keterangan :
1. ImageView berisi Judul Aplikasi
2. Button Search menampilkan pencarian kata Fisika 3. Button About berisi judul dan pembuat aplikasi 4. Button Exit untuk mengeluarkan user dari aplikasi
3.5.3 Rancangan Halaman Search
Halaman Search berfungsi untuk melakukan pencarian kata pada kamus sesuai dengan algoritma yang telah dipilih. Adapun tampilan dari halaman search dapat dilihat pada
Gambar 3.10
1
PENCARIAN ISTILAH DALAM ILMU FISIKA
SEARCH
Gambar 3.10 Halaman Search
Gambar 3.10 Halaman Search
Ket :
1. Toolbar untuk menampilkan judul halaman
2. TabLayout untuk menampilkan pilihan algoritma pencarian 3. EditText untuk menampilkan kata
4. Button untuk mencari kata
5. ListView untuk menampilkan hasil pencarian
3.5.4 Rancangan Halaman About
Halaman About berisi judul dan nama dari pembuat Aplikasi. Adapun tampilan dari halaman search dapat dilihat pada Gambar 3.11
2
TurboBoyer Moore String Matching on Ordered Alphabets 1
Pencarian
3
Cari.... 4Cari
Gambar 3.11 Halaman About
Gambar 3.11 Halaman About
Ket :
1. Toolbar untuk menampilkan judul halaman
2. ImageView untuk menampilkan judul dan nama pembuat aplikasi.
3.5.5 Rancangan Halaman Exit
Halaman Exit berfungsi untuk mengeluarkan user dari aplikasi. Adapun tampilan dari halaman exit dapat dilihat pada Gambar 3.12
2
PERBANDINGAN ALGORITMA TURBO BOYER MOORE DAN STRING
MATCHINGON ORDERED ALPHABETS UNTUK APLIKASI
KAMUS FISIKA BERBASIS ANDROID
SKRIPSI
NURMARDIAH SIREGAR
P
ROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI INFORMASI
UNIVERSITAS SUMATERAUTARA
2016
1
Tentang
Gambar 3.12 Halaman Exit
Gambar 3.11 Halaman Exit
Ket :
1. TextView untuk menampilkan teks. 2. TextView untuk menampilkan teks. 3. Button untuk tidak keluar dari aplikasi.
4. Button untuk keluar dari aplikasi. 1
Konfirmasi
2
Apa anda ingin keluar ?3
4
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi
Implementasi sistem merupakan tahapan lanjutan dari analisis dan perancangan sistem. Sistem ini dibangun dengan menggunakan bahasa pemrograman Java dan menggunakan Software Android Studio. Pada sistem ini terdapat 5 tampilan halaman, yaitu Halaman Splash
Screen, Tampilan Halaman Utama, Halaman Search, Halaman About dan Halaman Exit.
4.1.1 Tampilan Halaman Splash Screen
Halaman Splash Screen merupakan halaman yang pertama kali muncul pada saat sistem dibuka. Adapun tampilan halaman Splash Screen dapat dilihat pada Gambar 4.1.
4.1.2 Tampilan Halaman Utama
Tampilan halaman utama berisi tentang menu Search, About dan Exit. Dimana pada menu Search, user bisa melakukan pencarian kata pada kamus Fisika. Pada menu About, user bisa
melihat judul dan nama pembuat aplikasi. Adapun tampilan halaman utama aplikasi dapat dilihat pada Gambar 4.2.
Gambar 4.2 Form Utama
4.1.3 Tampilan Halaman Search
Tampilan halaman search berisi tentang algoritma pencarian kata pada kamus sesuai dengan algoritma yang telah dipilih. Adapun tampilan halaman pencarian dapat dilihat pada Gambar
4.3. Pada halaman ini, sebelum user melakukan pencarian, terlebih dahulu user memilih
Gambar 4.3 Search
4.1.4 Tampilan Halaman About
Tampilan halaman about berisi tentang judul dan nama pembuat aplikasi. Adapun tampilan halaman about dapat dilihat pada Gambar 4.4.
Gambar 4.4 About
4.1.5 Tampilan Halaman Exit
Gambar 4.5 Exit
4. 2 Pengujian Sistem
Pengujian sistem dilakukan untuk mengetahui bagaimana cara kerja sistem dalam melakukan pencarian kata pada kamus Fisika dengan menggunakan Algoritma Turbo Boyer Moore dan String Matching on Ordered Alphabets. Untuk pengujian yang akan dicari adalah string dari
4.2.1 Pengujian Pencarian kata pada Kamus Fisika dengan Algoritma Turbo Boyer
Moore
Tabel 4.1 Hasil Pencarian kata Algoritma Turbo Boyer Moore
No Hasil
Pencarian
Gambar Hasil
Pencocokan
Gambar Hasil Running Time
P01 Match
P03 Match
P05 Match
P07 Match
P09 Match
P011 Match
P13 Match
P15 Match
4.2.2 Pengujian Pencarian kata pada kamus Fisika dengan Algoritma String Matching
on Ordered Alphabets
Tabel 4.2 Hasil Pencarian kata Algoritma String Matching on Ordered Alphabets
No Hasil
Pencarian
Gambar Hasil
Pencocokan
Gambar Hasil Running Time
P01 Match
P03 Match
P05 Match
P07 Match
P09 Match
P011 Match
P13 Match
P15 Match
4.3 Hasil Pengujian
Hasil pengujian dari penelitian ini adalah Running time dari pencarian kata dan jumlah kata yang ditemukan pada Algoritma Turbo Boyer Moore dan Algoritma String Matching on Ordered Alphabets yang dilakukan terhadap string yang berbeda. Adapun hasil pengujian dari kedua algoritma yang digunakan akan dijelaskan pada Tabel 4.3 dan Tabel 4.4.
Tabel 4.3 Hasil Pengujian Algoritma Turbo Boyer Moore
No Kata yang dicari Running Time (ms)
Jumlah kata yang ditemukan
Kejadian
1 a 11 92 Match
2 sasi 7 3 Match
3 gaya 9 4 Match
4 gerak jatuh bebas 6 1 Match
5 gerak lurus berubah beraturan
6 1 Match
6 hukum newton 1 12 1 Match
7 archi 10 1 Match
8 viskosit 9 1 Match
9 ang 5 10 Match
10 met 8 7 Match
11 m 10 58 Match
12 ng 8 16 Match
13 ha 8 12 Match
14 lomb 8 10 Match
15 per 9 9 Match
16 tan 13 13 Match
TOTAL 139
Tabel 4.4 Hasil Pengujian Algoritma String Matching on Ordered Alphabets
No Kata yang dicari Running Time (ms)
Jumlah kata yang ditemukan
Kejadian
1 a 13 92 Match
2 sasi 13 3 Match
3 gaya 20 4 Match
4 gerak jatuh bebas 13 1 Match
5 gerak lurus berubah beraturan
6 1 Match
6 hukum newton 1 16 1 Match
7 archi 14 1 Match
8 viskosit 14 1 Match
9 ang 18 10 Match
10 met 20 7 Match
11 m 10 58 Match
12 ng 14 16 Match
13 ha 9 12 Match
14 lomb 9 10 Match
15 per 12 9 Match
16 tan 9 13 Match
TOTAL 210
RATA-RATA 13,125
Setelah mendapatkan hasil Pengujian dari Tabel 4.3 dan Tabel 4.4 maka dibuat grafik perbandingan hasil pengujian dari kedua algoritma tersebut. Grafik dapat dilihat pada
Gambar 4.6 Perbandingan Hasil Running Time Algoritma Turbo Boyer Moore dan
Algoritma String Matching on Ordered Alphabets
Dari grafik diatas dapat dijelaskan bahwa Algoritma Turbo Boyer Moore mendapatkan Hasil Running Time yang relatif rendah dibandingkan dengan Algoritma String Matching on
Ordered Alphabets. Artinya bahwa Algoritma Turbo Boyer Moore lebih cepat untuk
pencocokan kata dibandingkan dengan Algoritma String Matching on Ordered Alphabets. Total Hasil Perbandingan dari kedua algoritma tersebut dapat dijelaskan pada Gambar 4.7.
Gambar 4.7 Perbandingan Total Running TimeAlgoritma Turbo Boyer Moore dan Algoritma
String Matching on Ordered Alphabets
Dari grafik diatas dapat dijelaskan bahwa Algoritma Turbo Boyer Moore memiliki nilai Total
0
Running Time yang rendah dibandingkan dengan Algoritma String Matching on Ordered
Alphabets Artinya bahwa Algoritma Turbo Boyer Moore lebih cepat untuk pencocokan kata
dibandingkan dengan Algoritma String Matching on Ordered Alphabets.
4.4 Kompleksitas Algoritma
Kompleksitas algoritma yang akan diuji adalah kompleksitas Algoritma Turbo Boyer Moore dan Algoritma String Matching on Ordered Alphabets. Seperti dijelaskan pada Tabel 4.5 dan
4.6 berikut.
4.4.1 Kompleksitas Algoritma Turbo Boyer Moore
Tabel 4.5 Kompleksitas hasil Algoritma Turbo Boyer Moore
kode Program Eksekusi
(n2).
4.4.2 Kompleksitas Algoritma String Matching on Ordered Alphabets
Tabel 4.6 Kompleksitas hasil Algoritma String Matching on Ordered Alphabets
kode Program Eksekusi
while (i+ j < n &&i< m &&x.charAt(i) ==
+ 1); i= jp= 0; ip= -1; k = p = 1;
} } }
return 0;
} } }
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan analisis, perancangan dan pengujian pada aplikasi kamus Fisika dengan menggunakan algoritma Turbo Boyer Moore dan String Matching on Ordered Alphabets, maka diperoleh beberapa kesimpulan :
1. Berdasarkan penelitian yang telah dilakukan, algoritma Turbo Boyer dan String Matching on Ordered Alphabets berhasil diterapkan dalam aplikasi Kamus Fisika.
2. Algoritma Turbo Boyer Moore melakukan pencarian kata lebih cepat bila dibandingkan dengan String Matching on Ordered Alphabets karena algoritma Turbo Boyer Moore memaksimalkan nilai pergeseran pattern sehingga kata yang dicari lebih cepat ditemukan dan untuk running time Turbo Boyer Moore lebih cepat dari String Matching on ordered Alphabets.
5.2 Saran
Adapun saran-saran yang dapat dipertimbangkan untuk tahap pengembangan penelitian ini antara lain :
1. Aplikasi ini sebaiknya ditambahkan menu pengolahan data, agar data bisa ditambah, edit dan hapus.
2. Diharapkan dapat menambahkan data rumus-rumus Fisika agar kedepannya aplikasi tidak hanya mencari istilah Fisika tetapi bisa juga mencari rumus-rumus Fisika.
3. Dapat menggunakan algoritma pencarian string lainnya, seperti algoritma Knuth Morris Pratt.
BAB 2
LANDASAN TEORI
2.1 Definisi Kamus
Kamus menurut KBBI (Kamus Besar Bahasa Indonesia) merupakan buku acuan yang memuat kata dan ungkapan, biasanya disusun menurut abjad berikut keterangan dan makna, pemakaian atau terjemahan (Argakusumah, 2014). Selain itu, kamus merupakan buku yang memuat kumpulan istilah atau nama yang disusun menurut abjad beserta dengan penjelasan makna dan pemakaiannya.
2.2 Definisi Algoritma
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis (Rinal Munir, 1999). Kata logis merupakan kata kunci. Langkah-langkah tersebut harus logis, ini berarti nilai kebenarannya harus dapat ditentukan, benar atau salah. Langkah-langkah yang tidak benar dapat memberikan hasil yang salah.
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang diacu dalam terminologi algoritma. Dalam kehidupan sehari-hari banyak terdapat proses yang digambarkan dalam suatu algoritma. Cara membuat kue atau masakan, misalnya dinyatakan dengan suatu resep. Resep makanan adalah suatu algoritma.
2.2.1 Definisi Algoritma String Matching
String Matching adalah pencarian sebuah pattern pada sebuah teks (kurnaedi, 2012). Prinsip
kerja algoritma string matching adalah sebagai berikut :
1. Memindai teks dengan bantuan sebuah window yang ukurannya sama dengan panjang pattern.
2. Menempatkan window pada awal teks.
3. Membandingkan karakter pada window dengan karakter dari pattern. Setelah pencocokan (baik hasilnya cocok atau tidak cocok), dilakukan shif ke kanan pada window. Prosedur ini dilakukan berulang-ulang sampai window berada pada akhir
String Matching dibagi menjadi dua, yaitu exact string matching dan heuristic (statistical
matching). Exact matching digunakan untuk menemukan pattern yang berasal dari satu teks.
Contoh pencarian exact matching adalah pencarian kata “pelajar” dalam kalimat “ saya seorang pelajar” atau “saya seorang siswa”. Sistem akan memberikan hasil bahwa kata pelajar dan siswa bersinonim. Algoritma exact matching diklasifisikan menjadi tiga bagian menurut arah pencariannya, yaitu :
1. Arah pencarian dari kiri ke kanan.
Algoritma yang termasuk dalam kategori ini adalah Brute Force, Morris dan Pratt (yang kemudian dikembangkan oleh Knuth, Morris dan Pratt).
2. Arah pembacaan dari kanan ke kiri.
Algoritma yang termasuk dalam kategori ini adalah Boyer Moore yang kemudian dikembangkan menjadi algoritma Turbo Boyer Moore, Tuned Boyer Moore dan Zhu Takaoka.
3. Arah pencarian yang ditentukan oleh program.
Algoritma yang termasuk dalam kategori ini adalah algoritma Colussi dan Crochemore-Perrin.
Heuristic matching adalah teknik yang digunakan untuk menghubungkan dua data
terpisah ketika exact matching tidak mampu mengatasi karena pembatasan pada data yang tersedia. Heuristic matching dapat dilakukan dengan perhitungan distance antara pattern dengan teks. Exact dan heuristic matching memiliki kemiripan makna tetapi berbeda tulisan.
2.2.1.1 Algoritma Turbo Boyer Moore
Algoritma Turbo Boyer Moore adalah sebuah algoritma pencocokan pola tertentu terhadap suatu kalimat atau paragraf. Algoritma ini merupakan varian dari Algoritma Boyer Moore yang memungkinkan terjadinya ‘lompatan’ melewati segmen yang tidak memerlukan preprosessing tambahan dengan kecepatan yang baik. Algoritma Turbo Boyer Moore
Pertama : inisialisasi, karena algoritma ini menggunakan good suffix shif dan bad character shif dari Algoritma Boyer Moore maka untuk inisialisasi dijalankan prosedur preBmBc dan
preBmGs seperti Algoritma Boyer Moore.
Kedua : Melakukan proses pencocokan karakter pada pattern dengan karakter pada teks. Jika terjadi ketidakcocokan maka dilakukan pergeseran terbesar berdasarkan tabel BmBc, tabel BmGs dan turbo shif.
Adapun Prinsip Kerja dari Algoritma Turbo Boyer Moore adalah sebagai berikut : 1. Algoritma Boyer Moore mulai melakukan pencocokan pattern pada awal teks.
2. Dari kanan ke kiri, algoritma ini akan mencocokkan karakter per karakter pattern dengan karakter pada teks yang bersesuaian sampai salah satu kondisi berikut dipenuhi: a) Di pattern dan di teks yang dibandingkan tidak cocok (missmatch).
b) Semua karakter di pattern cocok. Algoritma akan memberitahukan penemuan di posisi ini.
c) Algoritma kemudian menggeser pattern dengan memaksimalkan nilai pergeseran good suffix dan pergeseran bad character, lalu mengulangi langkah b sampai
patern berada di ujung teks.
Untuk fase pencarian dalam algoritma Turbo Boyer Moore, proses yang dilakukan hampir sama dengan fase pencarian pada Algoritma Boyer Moore. Yang membedakan adalah adanya variabel yang berfungsi untuk menampung nilai pergeseran apabila pada putaran sebelumnya nilai yang diambil untuk pergeseran berasal dari tabel good suffix shift. Nilai ini nantinya akan digunakan sebagai nilai yang mungkin digunakan untuk pergeseran pattern. Fase inisialisasi pada algoritma ini sama dengan fase inisialisasi pada algoritma Boyer Moore, yaitu mempunyai kompleksitas waktu dan ruang sebesar O(n + σ) dengan σadalah besar
ruang alfabet. Sedangkan pada fase pencocokan, algoritma ini mempunyai kompleksitas waktu sebesar O(m) dengan jumlah pencocokan karakter pada algoritma ini adalah 2m. Contoh :
Teks : Titik Berat Benda Pattern : Benda
Tabel 2.1 Tabel BmBc dan BmGs
Temu Pola 1
Tabel 2.2 Pergeseran karakter TBM 1
T I T I K B E R A T B E N D A 1
B E N D A
Terlihat perbedaan pada index K :
- Geser BmBc(K) – m + ( index bawah + 1) = 5 – 5 + 5 = 5 - BmGs[4] = 1
Sehingga geser pattern sebesar 5 (nilai maksimal dari kedua perhitungan)
Temu Pola 2
Tabel 2.3 Pergeseran karakter TBM 2
T I T I K B E R A T B E N D A 1 -
B E N D A
Terlihat perbedaan pada index R , maka :
- Geser BmBc(R) – m + ( index bawah + 1 ) = 5 – 5 + 4 = 4 - BmGs[3] = 4
Sehingga geser pattern sebesar 4 (nilai maksimal dari kedua perhitungan)
Temu Pola 3
Tabel 2.4 Pergeseran karakter TBM 3
T I T I K B E R A T B E N D A 1
B E N D A
Terlihat perbedaan pada index E , maka :
- Geser BmBc(E) – m + ( index bawah + 1 ) = 3– 5 + 5 = 3 - BmGs[4] = 1
Temu Pola 4
Tabel 2.5 Pergeseran karakter TBM 4
T I T I K B E R A T B E N D A - - - - - B E N D A
Pada temu pola 4, tidak perlu dilakukan pergeseran lagi karena sudah sampai pada indeks terakhir.
2.2.1.2 Algoritma String Matching on Ordered Alphabets
Algoritma String Matching on Ordered Alphabets ialah algoritma yang mirip dengan algoritma pencarian satu-satu (brute force). Perbedaanya adalah pada saat dilakukan percobaan untuk menyamakan string dimana ‘jendela’ diposisikan oleh substring y[j..j+m-1], saat prefix u dari x telah ditemukan dan ketidaksamaan terjadi antara karakter a dalam x dengan b dalam kata y.
y x
Gambar 2.1 Percobaan pada algoritma string matching on ordered alphabets
Algoritma ini akan menghitung periode ub seperti pada gambar diatas. Jika tidak berhasil dalam menemukan periode yang tepat, algoritma ini akan beralih untuk menghitung perkiraannya.
Algoritma String Matching on Ordered Alphabets melakukan 37 kali perbandingan karakter. Pada kasus terburuk, algoritma ini melakukan perbandingan karakter sebanyak 6n+5 perbandingan danmenghasilkan kompleksitas waktu pencariannya O(n).
Contoh :
Teks : Titik Berat benda Pattern : Benda
Perhitungan Pergeseran : Untuk proses pergeseran dihitung berdasarkan banyaknya string yang sama ditambah dengan string yang berbeda. Jika karakter string teks dan pattern tidak sama, lakukan pengecekan ke string berikutnya.
U B
Tabel 2.6. Pergeseran Pattern SMOA 1
T I T I K B E R A T B E N D A
B E N D A Geser pattern 1 kali.
Tabel 2.7. Pergeseran Pattern SMOA 2
T I T I K B E R A T B E N D A
B E N D A
Geser pattern 1 kali
Tabel 2.8. Pergeseran Pattern SMOA 3
T I T I K B E R A T B E N D A
B E N D A Geser pattern 1 kali
Tabel 2.9. Pergeseran Pattern SMOA 4
T I T I K B E R A T B E N D A
B E N D A
Geser pattern 1 kali
Tabel 2.10. Pergeseran Pattern SMOA 5
T I T I K B E R A T B E N D A
B E N D A
Geser pattern 1 kali
Tabel 2.11. Pergeseran Pattern SMOA 6
T I T I K B E R A T B E N D A
B E N D A
Tabel 2.12. Pergeseran Pattern SMOA 7
T I T I K B E R A T B E N D A
B E N D A
Geser pattern 3 kali
Tabel 2.13. Pergeseran Pattern SMOA 8
T I T I K B E R A T B E N D A
B E N D A Geser pattern 1 kali
Tabel 2.14. Pergeseran Pattern SMOA 9
T I T I K B E R A T B E N D A
B E N D A
Geser pattern 1 kali
Tabel 2.15. Pergeseran Pattern SMOA 10
T I T I K B E R A T B E N D A
B E N D A
Geser pattern 1 kali
Tabel 2.16. Pergeseran Pattern SMOA 11
T I T I K B E R A T B E N D A
B E N D A
Pattern sudah cocok dan teks sudah berada diujung, proses pencocokan selesai.
2.3 Definisi Android
Android dipuji sebagai “platform mobile pertama yang lengkap, terbuka dan bebas”. 1. Lengkap (Complete Platform) : para desainer dapat melakukan pendekatan yang
komprehensif ketika mereka sedang mengembangkan platform Android. Android merupakan sistem operasi yang aman dan banyak menyediakan tools dalam membangun software dan memungkinkan peluang pengembangan aplikasi.
2. Terbuka (Open Source Platform) : Platform Android disediakan melalui lisensi open source. Pengembang dapat dengan bebas untuk mengembangkan aplikasi. Android
sendiri menggunakan Linux Kernel 2.6.
3. Bebas (Free Platform) : Android adalah platform/aplikasi yang bebas untuk develope. Tidak ada lisensi atau biaya royalti untuk dikembangkan pada platform Android. Tidak ada biaya keanggotaan diperlukan. Tidak ada biaya pengujian. Tidak ada kontrak yang diperlukan. Aplikasi untuk Android dapat didistribusikan dan diperdagangkan dalam bentuk apapun.
2.4 Kompleksitas Algoritma
Algoritma ialah urutan-urutan langkah logis dalam menyelesaikan suatu masalah secara sistematis. Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus (efficient). Kemangkusan algoritma diukur dari waktu (time), eksekusi algoritma dan kebutuhan ruang (space) memori.
Algoritma yang mangkus ialah algoritma yang meminimumkan kebutuhan waktu dan ruang. Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran masukan (n), yang menyatakan jumlah data yang diproses. Kemangkusan algoritma dapat digunakan untuk menilai algoritma yang bagus dari sejumlah algoritma penyelesaian masalah. Model abstrak pengukuran waktu/ruang harus independen dari pertimbangan mesin dan compiler apapun. Besaran yang dipakai untuk menerangkan model abstrak pengukuran waktu/ruang ini adalah kompleksitas algoritma.
Kompleksitas algoritma diukur berdasarkan kinerja dengan menghitung waktu eksekusi suatu algoritma. Waktu eksekusi algoritma dapat diklasifisikan menjadi tiga kelompok besar, yaitu best-case (kasus terbaik), average-case (kasus rerata) dan worst-case (kasus terjelek). Pada pemograman yang dimaksud dengan kasus terbaik, kasus rerata dan kasus terjelek dalam suatu algoritma adalah besar kecilnya atau hanya sedikitnya sumber-sumber yang digunakan oleh suatu algoritma. Makin sedikit makin baik, makin banyak makin jelek. Biasanya sumber-sumber yang paling dipertimbangkan tidak hanya waktu eksekusi tetapi bisa juga besar memori, catu-daya dan sumber-sumber lain (subandijo, 2011).
2.6 Notasi Big O
Notasi Big O adalah cara yang digunakan untuk menguraikan laju pertumbuhan suatu fungsi yang tidak lain adalah time complexity suatu algoritma (subandijo, 2011). Secara sederhana notasi Big O didefinisikan sebagai berikut:
Jika n adalah ukuran masukan dan f(n) serta g(n) adalah fungsi positif dari n maka f(n) adalah O(g(n)) jika dan hanya jika terdapat konstanta positif c dan integer positif n0 sedemikian rupa
sehingga f(n) ≤ c g(n) untuk semua n ≥ n0.
Secara tidak formal, suatu algoritma disebut menunjukkan laju pertumbuhannya merupakanorder suatu fungsi matematika jika untuk ukuran masukan n, fungsi f(n) dikalikan konstanta positifmerupakan batas atas atau limit dari waktu eksekusi algoritma tersebut. Dengan kata lain untuk ukuran masukan n yang lebih besar daripada n0 dan konstanta c,
waktu eksekusi algoritma tidak akanmelampaui c * f(n). Sebagai contoh, karena waktu eksekusi insertion sort tumbuh secara kuadratik dengan besarnya masukan n ketika ukuran masukan naik, insertion sort dikatakan mempunyai order O (n2).
n n2 n 10 T(n)
0 0 0 10 10
10 100 10 10 120
100 10000 100 10 10110
1000 1000000 1000 10 1001010
10000 100000000 10000 10 100010010
Meskipun notasi ini dikembangkan sebagai bagian dari matematika murni, notasi ini kerap dipakai pada analisis algoritma untuk menguraikan algoritma pemakaian sumber-sumber komputasi, kasus terburuk atau kasus rerata waktu eksekusi atau pemakaian memori suatu algoritma kerapdisajikan sebagai fungsi dari besaran masukan menggunakan notasi Big O. Hal ini memungkinkan perancang algoritma memprediksi perilaku algoritmanya dan menentukan algoritma mana yang akan digunakan tak tergantung pada arsitektur komputer dan clock rate. Karena notasi Big O mengabaikan nilai konstanta dan kelipatannya dan juga mengabaikan efisiensi untuk argumen-argumen dalam ukuran yang lebih kecil ordernya, maka notasi Big O tidak selalu mencerminkan algoritma yang paling cepat pada data tertentu, tetapi pendekatan ini tetap sangat efektif untuk membandingkan berbagai algoritma saat ukuran data masukan menuju tak terhingga.
Konsep O(n) dikenal sebagai salah satu metode asymptotic analysis untuk menyatakan batas atas asimptotik. Sebagai contoh, T(n) = 13n3+ 42n2+ 2n log n + 4n di mana T merupakanfungsi dari obyek masukan n, ditulis sebagai T(n). Jika n tumbuh menjadi lebih
besar maka nilai n3akan jauh lebih besar daripada n2, n log n dan n sehingga n3 mendominasi T(n). Waktu eksekusi T(n)secara garis besar mempunyai order n3 dan notasinya ditulis sebagai O(n3).
Dua metode lain yang dikenal adalah Ω (n) untuk menyatakan batas bawah asimtotik dan Ɵ(n) untuk menyatakan tight bound asymptotic. Secara formal T(n) didefinisikan sebagai berikut: T(n) = O(f(n)) jika terdapat konstanta c dan n0 sedemikian rupa sehingga T(n) < c *
f(n) untuk n >n0. Ini berarti bahwa untuk n >n0 maka c * f(n) merupakan batas atas dari T(n).
Sebagai contoh, jika T(n) = 1000n dan f(n) = n2, n0 = 1000 dan c = 1 maka T(n) ≤ 1 * f(n)
Notasi Big O adalah cara yang sangat menyenangkan untuk menyajikan skenario keadaanterjelek suatu algoritma, meskipun ia juga dapat digunakan untuk menyajikan kasus rerata. Sebagai contoh, skenario kasus terjelek quick sort adalah O(n2), tetapi rerata waktu eksekusinya adalah O(n log n).
2.5 Penelitian yang Relevan
Berikut ini beberapa penelitian yang terkait dengan Algoritma Turbo Boyer Moore dan String Matching on Ordered Alphabets :
1. Vina Sagita, Maria Irmina Prasetiyowati (2013) dalam jurnal yang berjudul studi perbandingan implementasi algoritma boyer moore, turbo boyer moore dan tuned
boyer moore dalam pencarian string. Menyatakan bahwa algoritma Turbo Boyer
Moore merupakan algoritma tercepat kedua dari ketiga varian algoritma tersebut.
2. Rizal (2015) dalam jurnal yang berjudul permainan tebak kata bahasa aceh menggunakan algoritma turbo boyer moore. Menyatakan bahwa pencocokan string
yang diterapkan pada aplikasi permainan tebak kata bahasa aceh berhasil diterapkan dan menghasilkan pencocokan yang sesuai dengan yang di harapkan. Algoritma Turbo Boyer Moore melakukan pencocokan dengan sangat cepat.
3. Priskila Ifke Goni (2013) dalam skripsi yang berjudul penerapan algoritma turbo boyer moore untuk pendeteksian kemiripan dokumen berbasis android. Menyatakan
bahwa dalam proses pendeteksian, Algoritma Turbo Boyer Moore dijadikan sebagai string (pattern) matching. Berdasarkan dokumen yang diuji kinerja dari algoritma
Turbo Boyer Moore bergantung pula pada hasil akhir dari tahap preprocessing yakni
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Dunia pendidikan dan ilmu pengetahuan pada saat ini semakin berkembang dengan pesat yang disertai dengan semakin banyaknya arus informasi dan ilmu pengetahuan ilmiah yang masuk ke indonesia, salah satunya dalam bidang Ilmu Fisika. Dengan semakin banyaknya penemuan-peneman baru yang juga disertai dengan semakin banyaknya istilah-istilah baru dalam Ilmu Fisika harus diketahui secara luas khususnya bagi pelajar, mahasiswa serta kalangan ilmiah.
Kamus Fisika merupakan kamus yang mencakup tentang istilah-istilah fisika, termasuk di dalamnya ilmu tentang zat dan energi (seperti cahaya, panas dan bumi). Kamus Fisika merupakan penunjang yang dapat membantu seseorang untuk memahami istilah-istilah penting dalam Ilmu Fisika. Didalamnya banyak memuat materi-materi Fisika yang sangat penting untuk diketahui. Oleh sebab itu, tidak salah jika kamus Fisika dimiliki oleh para pelajar atau masyarakat ilmiah. Akan tetapi, jika dilihat dari isinya istilah-istilah Fisika sangat banyak dan membutuhkan banyak waktu sehingga mengakibatkan proses pencarian kata dalam kamus semakin lambat dan tidak efesien.
Algoritma Turbo Boyer Moore adalah sebuah algoritma pencocokan pola tertentu terhadap suatu kalimat atau paragraf. Algoritma ini merupakan varian dari Algoritma Boyer Moore yang memungkinkan terjadinya ‘lompatan’ melewati segmen yang tidak memerlukan
preprosesing tambahan dengan kecepatan yang baik. Algoritma Turbo Boyer Moore adalah
sebuah perbaikan dari Algoritma Boyer Moore. Algoritma Turbo Boyer Moore mengambil metode pencarian String Boyer Moore yaitu good suffix dan bad character suffix. Akan tetapi, Algoritma Turbo Boyer Moore berbeda dengan Algoritma Boyer Moore, algoritma ini dimungkinkan terjadinya ‘lompatan’ melewati segmen mengingat faktor dari teks yang cocok dengan akhiran dari pattern selama attempt terakhir sehingga memanfaatkan teknik turbo shift. Teknik ini mempunyai dua keunggulan (Charras & Lecroq, 2014):
1. Teknik ini memungkinkan untuk melompati faktor dari teks tersebut.
2. Teknik ini mengijinkan Pergeseran turbo
Perpindahan yang dilakukan ketika proses pencarian string akan berbeda dengan proses yang dilakukan pada algoritma Boyer Moore. Perpindahan ini disebut dengan perpindahan turbo. Perpindahan turbo ini hanya dapat dilakukan jika pada saat melakukan perbandingan pada saat tersebut, panjang dari karakter yang sama antara pattern dan teks lebih besar dari panjang dari karakter sama yang telah disimpan sebelumnya di variabel faktor pengingat akibatnya, proses pencarian akan menjadi lebih singkat.
Sedangkan Algoritma String Matching on Ordered Alphabets ialah algoritma yang mirip dengan algoritma pencarian satu-satu (brute force). Perbedaanya adalah pada saat dilakukan percobaan untuk menyamakan string. Algoritma ini menghitung suffix maksimal dari prefix pattern yang sama di gabung dengan karakter yang sama dari string yang dicari tiap percobaannya. Ini fungsinya untuk menghindarkan perhitungan dari awal lagi setelah pergantian panjang dilakukan. Algoritma ini membutuhkan fase untuk melakukan preproses. Kedua algoritma tersebut akan dibandingkan kecepatan masing-masing algoritma.
1.2 Perumusan Masalah
Berdasarkan uraian dari latar belakang di atas, masalah yang akan di bahas adalah Bagaimana perbandingan Algoritma Turbo Boyer Moore dan String Matching on Ordered Alphabets pada Aplikasi Kamus Fisika dengan mengunakan kompleksitas algoritma dan
1.3 Ruang Lingkup Penelitian
Adapun batasan masalah dalam penelitian ini adalah sebagai berikut :
1. Aplikasi ini dibuat untuk membantu user dalam mencari kata ilmiah Fisika 2. Aplikasi ini tidak membahas rumus Fisika
3. Parameter pembanding yang akan digunakan adalah kompleksitas algoritma Big O dan running time
4. Mengingat banyaknya istilah Fisika didalam kamus maka penulis membatasi kata yang diinputkan yaitu 200 istilah Fisika
5. Algoritma yang digunakan adalah Algoritma Turbo Boyer Moore dan String Matching on Ordered Alphabets
6. Aplikasi ini dibuat dengan Bahasa Pemrograman Java (Android Studio) 7. Aplikasi ini menggunakan DMBS Sqlite untuk penyimpanan data Fisika
1.4 Tujuan Penelitian
Adapun tujuan penelitian dalam tugas akhir ini adalah untuk mengetahui perbandingan kedua algoritma dengan melakukan pengujian kecepatan masing-masing algoritma.
1.5 Manfaat Penelitian
Manfaat dari penelitian ini adalah : 1. Manfaat bagi penulis :
a. Menambah pengetahuan penulis dalam merancang aplikasi Kamus Fisika berbasis android.
b. Menambah pengetahuan penulis tentang algoritma String Matching yaitu Algoritma Turbo Boyer Moore dan String Matching on Ordered Alphabets 2. Manfaat bagi bidang ilmu adalah sebagai bahan referensi bagi peneliti selanjutnya
yang ingin mengembangkannya.
1.6 Metode Penelitian
Tahapan penelitian yang dilakukan dalam penelitian ini adalah : 1. Studi Literatur
Pada tahap ini dilakukan pengumpulan referensi yang sangat diperlukan dalam penelitian. Hal ini dilakukan untuk memperoleh informasi dan data yang diperlukan dalam penulisan skripsi ini. Referensi yang digunakan dapat berupa buku, jurnal, paper dan makalah baik berupa media cetak ataupun media internet mengenai algoritma pencarian string khususnya algoritma Turbo Boyer Moore dan String Matching on Ordered Alphabets.
2. Analisis dan Perancangan
Pada tahap ini dilakukan untuk mengolah data dari hasil studi literatur yang kemudian dilakukan untuk menganalisis dan merancang sistem. Sistem dirancang dengan membuat gambaran sistem menggunakan flowchart, UML dan user interface.
3. Implementasi
Pada tahap ini dilakukan perancangan dengan implementasi pembuatan suatu aplikasi berbasis android dengan menggunakan Bahasa Pemograman Java.
4. Pengujian
Pada tahap ini dilakukan pengujian kinerja sistem dan kebenaran hasil perbandingan yang dilakukan dengan dua algoritma pencarian string yang berbeda.
5. Dokumentasi
Pada tahap ini dokumentasi dilakukan dengan membuat skripsi sebagai laporan dari hasil penelitian.
1.7 Sistematika Penulisan
Dalam penulisan skripsi ini penulis membagi membuat sistematika penulisan terbagi menjadi lima bab dengan susunan sebagai berikut:
BAB 1 PENDAHULUAN
BAB 2 LANDASAN TEORI
Bab ini membahas tentang teori-teori yang berhubungan dengan Kamus, Algoritma, Algoritma String Matching, Algoritma Turbo Boyer Moore, Algoritma String Matching on Ordered Alphabets, Kompleksitas Algoritma, Notasi Big O dan
Android.
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
Bab ini membahas mengenai Analisis Sistem serta perancangan Aplikasi Kamus Fisika Berbasis Android.
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini membahas tentang hasil implementasi dan pengujian aplikasi kamus Fisika serta pembahasan dari hasil yang diperoleh.
BAB 5 KESIMPULAN DAN SARAN
ABSTRAK
Kamus Fisika merupakan kamus yang mencakup tentang istilah-istilah fisika, termasuk di dalamnya ilmu tentang zat dan energi (seperti cahaya, panas dan bumi). Didalamnya banyak memuat materi-materi Fisika yang sangat penting untuk diketahui. Akan tetapi, jika dilihat dari isinya istilah-istilah Fisika sangat banyak dan membutuhkan banyak waktu sehingga mengakibatkan proses pencarian kata dalam kamus semakin lambat dan tidak efesien. Dalam penelitian ini membahas tentang bagaimana perbandingan Algoritma Turbo Boyer Moore dan String Matching on Ordered Alphabets pada Aplikasi Kamus Fisika dengan mengunakan kompleksitas algoritma dan running time sebagai parameter pembanding. Penelitian ini bertujuan untuk mengetahui perbandingan kedua algoritma dengan melakukan pengujian kecepatan masing-masing algoritma. String Matching adalah pencarian sebuah pattern pada teks. Algoritma String Matching yang digunakan yaitu Algoritma Turbo Boyer Moore dan String Matching on Ordered Alphabets. Adapun hasil dari penelitian ini menunjukkan bahwa
Algoritma Turbo Boyer Moore melakukan pencarian kata lebih cepat bila dibandingkan dengan String Matching on Ordered Alphabets karena algoritma Turbo Boyer Moore memaksimalkan nilai pergeseran pattern sehingga kata yang dicari lebih cepat ditemukan dan untuk running time Turbo Boyer Moore lebih cepat dari String Matching on ordered Alphabets.
Kata kunci : Kamus Fisika, String Matching, Algoritma Turbo Boyer Moore, String
COMPARISON ALGORITHM BOYER MOORE TURBO AND STRING MATCHING ON ORDERED ALPHABETS FOR APPLICATION
BASED PHYSICS DICTIONARY ANDROID
ABSTRACT
Physics Dictionary is a dictionary that covers about terms of physics, including the science of matter and energy (such as light, heat, and the Earth). It contains many materials Physics are very important to know. However, if seen from the contents of physics terms very much and takes a lot of time resulting in the search process said the dictionary is getting slower and not efficient. In this research talks about how comparison algorithms turbo boyer moore and string matching event on an ordered alphabets on the application a dictionary physics using complexity of algorithmic and running time as the parameters for comparison. This research aims to understand the comparison with the two algorithms do our tests the speed each algorithms. A String Matching algorithm is used that is the algorithm Turbo Boyer Moore
and String Matching on Ordered Alphabets. As for the result of the research indicated that algorithms turbo boyer moore searching for a word of more quickly compared with strings matching event on an ordered alphabets because algorithms turbo boyer moore maximize the value of a shift pattern that the sought more quickly found and for running time turbo boyer moore faster than strings matching event on an ordered alphabets.
Keywords : A dictionary of physics, String Matching, Algorithm Turbo Boyer Moore, String
PERBANDINGAN ALGORITMA TURBO BOYER MOORE DAN
STRING MATCHING ON ORDERED ALPHABETS UNTUK
APLIKASI KAMUS FISIKA BERBASIS ANDROID
SKRIPSI
NURMARDIAH SIREGAR
121401071
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
KAMUS FISIKA BERBASIS ANDROID
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
NURMARDIAH SIREGAR 121401071
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : PERBANDINGAN ALGORITMA TURBO BOYER MOORE DAN STRING MATCHING ON ORDERED ALPHABETS UNTUK APLIKASI KAMUS FISIKA BERBASIS ANDROID
Kategori : SKRIPSI
Nama : NURMARDIAH SIREGAR
Nomor Induk Mahasiswa : 121401071
Program Studi : SARJANA (S1) ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
Komisi Pembimbing:
Dosen Pembimbing II Dosen Pembimbing I
Drs. Agus Salim Harahap, M.Si Dr. Poltak Sihombing, M.Kom
NIP.195408281981031004 NIP. 196203171991031001
Diketahui/Disetujui oleh
Program Studi S1 IlmuKomputer Ketua,
PERNYATAAN
PERBANDINGAN ALGORITMA TURBO BOYER MOORE DAN STRING MATCHING ON ORDERED ALPHABETS UNTUK APLIKASI
KAMUS FISIKA BERBASIS ANDROID
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Oktober 2016
PENGHARGAAN
Puji dan syukur kehadirat Allah SWT, Tuhan yang Maha Esa atas segala rahmat dan karunia-Nya penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Pada pengerjaan skripsi dengan judul Perbandingan Algoritma Turbo Boyer Moore dan String Matching on Ordered Alphabets untuk Aplikasi Kamus Fisika Berbasis Android, penulis menyadari bahwa banyak pihak yang turut membantu, baik dari pihak keluarga dan sahabat yang memotivasi dalam pengerjaannya. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada:
1. Prof. Dr. Runtung Sitepu, SH, M.Hum selaku Rektor Universitas Sumatera Utara. 2. Prof. Dr. Opim Salim Sitompul M.Sc selaku Dekan Fakultas Ilmu Komputer dan
Teknologi Informasi Universitas Sumatera Utara.
3. Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara dan selaku Dosen Pembimbing I yang telah memberikan bimbingan, arahan dan masukan kepada penulis dalalm pengerjaan skripsi ini.
4. Drs. Agus Salim Harahap, M.Si selaku Dosen Pembimbing II yang telah memberikan arahan, perhatian, kritik dan saran serta motivasi kepada penulis dalam pengerjaan skripsi ini.
5. Prof. Dr. Muhammad Zarlis selaku Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
6. Bapak Handrizal, S.Si.,M.Comp.Sc selaku Dosen Pembanding II yang telah banyak memberikan arahan dalam penyempurnaan skripsi ini.
7. Seluruh staff tenaga pengajar dan pegawai di Fakultas Ilmu Komputer dan Teknologi Informasi USU.
9. Terima kasih untuk Kak Ernawati Siregar, Kak Masroito Siregar S.Ag, Kak Afrida Siregar S.Sos, Kak Nuraini Siregar S.Pd, Kak Asrinauba Siregar, Kak Patima Siregar, Kak Chawarisma S.Pd, Abang Letnan Satu Cpl Muhammad Hidayat Siregar, S.T, Abang Raja Porkot Siregar S.Pt dan Adik Ima Lanni Farida Siregar yang telah banyak memberikan dukungan baik moril, material serta semangat dan dorongan, sehingga penulis dapat menyelesaikan skripsi dengan baik
10. Sahabat-sahabat Vici Indah Yana, Nurhaliza Nasution, Dewi Zahra, Dian Sartini, Novi Nuryanti Azharia, Neno Ramadhianita, Zuhru Finty, Siti Khodijah yang telah berbagi kebersamaan di Kom B dan saling memberikan semangat serta dorongan kepada penulis selama menyelesaikan skripsi ini.
11.Wynda Ariani Siregar, Rina Iswara Panjaitan teman seperjuangan selama PKL yang sudah banyak membantu dan memotivasi penulis dalam pengerjaan skripsi.
12.Arif Setiawan, Johan Surya, Zulfikri Lubis, Boris Mario yang sudah banyak membantu penulis dalam pengerjaan skripsi.
13.Rifwan Fahddila teman seperjuangan selama skripsi yang telah banyak membantu dan menemani penulis selama pengerjaan skripsi.
14.Semua pihak yang terlibat langsung maupun tidak langsung yang tidak dapat penulis ucapkan satu demi satu yang telah membantu penyelesaian laporan ini.
Semoga Allah SWT melimpahkan berkah kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini.
Medan, Oktober 2016
Penulis,