• Tidak ada hasil yang ditemukan

Perbandingan Algoritma Turbo Boyer Moored dan String Matching on Ordered Alphabets Untuk Aplikasi Kamus Fisika Berbasis Android

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perbandingan Algoritma Turbo Boyer Moored dan String Matching on Ordered Alphabets Untuk Aplikasi Kamus Fisika Berbasis Android"

Copied!
89
0
0

Teks penuh

(1)

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"

(2)

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);

(3)

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);

(4)

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();

(5)
(6)

144. bmBc[x.charAt(i)] = m - i - 1;

4. Pemanggilan Algoritma String Matching on Ordered Alphabet

1. package com.mardiah.dictionary;

(7)

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);

(8)

69.

(9)

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

(10)

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.

(11)

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

(12)

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

(13)

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.

(14)

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.

(15)

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

(16)

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).

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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))

(22)

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

(23)

Gambar 3.5 Flowchart Gambaran umum Sistem Kamus

Gambar 3.5 menggambarkan alur sistem secara umum pada Kamus Fisika, dimana user

(24)

Gambar 3.6 Flowchart Algoritma Turbo Boyer Moore

(25)
(26)

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

(27)

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

(28)

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

(29)

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

(30)

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

(31)

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.

(32)

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

(33)

Gambar 4.3 Search

(34)

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

(35)

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

(36)

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

(37)

P03 Match

(38)

P05 Match

(39)

P07 Match

(40)

P09 Match

(41)

P011 Match

(42)

P13 Match

(43)

P15 Match

(44)

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

(45)

P03 Match

(46)

P05 Match

(47)

P07 Match

(48)

P09 Match

(49)

P011 Match

(50)

P13 Match

(51)

P15 Match

(52)

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

(53)

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

(54)

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

(55)

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

(56)

(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) ==

(57)

+ 1); i= jp= 0; ip= -1; k = p = 1;

} } }

return 0;

} } }

(58)

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.

(59)

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

(60)

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

(61)

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

(62)

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

(63)

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

(64)

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

(65)

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

(66)

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.

(67)

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).

(68)

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)

(69)

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

(70)

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.

(71)

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

(72)

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.

(73)

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

(74)

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

(75)

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

(76)

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

(77)

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

(78)

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

(79)

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,

(80)

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

(81)

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.

(82)

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,

Gambar

Gambar 3.2 Usecase Diagram Sistem
Tabel 3.2 Usecase Proses Algoritma Turbo Boyer Moore
Gambar 3.3 Activity Diagram Sistem
Tabel  3.5  PseudocodeString Matching on Ordered Alphabets
+7

Referensi

Dokumen terkait

Berdasarkan pada anggapan-anggapan seperti yang telah di kemukakan diatas, dapat dilakukan pengujian regangan, tegangan, dan gaya-gaya yang timbul pada penampang balok yang

Untuk staff akademik dan SIAA di Fakultas Teknik, teknik industri masih kurang 1 tenaga kerja, sedangkan yang lainnya sudah sesuai antara perhitunngan WISN

Sedangkan r hitung dalam hasil penelitian ini sebesar 0,508, maka hipotesis alternatif (Ha) yang menyatakan bahwa terdapat hubungan positif yang sangat signifikan antara

Ketetapan Majelis Permusyawaratan Rakyat Republik Indonesia Nomor XVI/MPR/1998 tentang Politik Ekonomi dalam Rangka Demokrasi Ekonomi, dinyatakan tetap berlaku dengan

Salah satu solusi untuk mengatasi masalah kekurangan bahan baku tersebut sebenarnya selain menjual saham secara patnersip pada pihak swasta dalam negeri Indonesia,

kegiatan Posyandu dan perlu jadwal yang teratur dalam. pelaksanaan

Penelitian ini bertujuan untuk mengetahui bagaimana distribusi temperatur pada suatu ruangan yang terdapat AC di dalamnya yang diselesaikan dengan mengimplementasikan metode

Dalam menyusun skripsi ini, digunakan metode penelitian hukum normatif yang bersifat deskriptif, dimana penelitian hukum normatif yaitu penelitian yang menganalisis