• Tidak ada hasil yang ditemukan

BAB III ANALISIS DAN PERANCANGAN SISTEM

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III ANALISIS DAN PERANCANGAN SISTEM"

Copied!
52
0
0

Teks penuh

(1)

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Sistem

Analisis sistem adalah suatu bentuk penguraian suatu sistem informasi yang yang lengkap ke dalam bagian-bagian komponennya dengan tujuan mengindentifikasi dan mengevaluasi permasalahan, kesempatan, hambatan, serta kebutuhan yang diharapkan sehingga dapat dilakukan usulan perbaikan untuk meningkatkan kualitas sistem yang sudah ada. Analisis sistem adalah pembelajaran sebuah sistem dan komponenkomponennya sebagai prasyarat desain sistem, spesifikasi sebuah sistem yang baru dan diperbaiki. Analisis sistem ini juga merupakan suatu proses mengumpulkan dan menginterpretasikan kenyataan – kenyataan yang ada, mendiagnosa persoalan dan menggunakan keduanya untuk memperbaiki sistem (Whitten et al. 2004).

Analisis sistem memiliki tiga fase untuk mendeskripsikan pengembangan sistem yaitu, analisis masalah, analisis kebutuhan, dan analisis proses. Tujuan analisis masalah adalah mempelajari dan memahami bidang masalah dengan cukup baik untuk secara menyeluruh menganalisis masalah, kesempatan dan batasannya (Whitten et al. 2004). Tujuan dari analisis kebutuhan adalah menjelaskan fungsi – fungsi yang ditawarkan dan mampu dikerjakan oleh sistem, baik kebutuhan fungsional maupun nonfungsional. Sementara itu, tujuan dari analisis proses adalah untuk memodelkan tingkah laku dari sistem.

3.1.1. Analisis Masalah

Seperti yang sudah dijelaskan sebelumnya dalam latar belakang penulisan tugas akhir ini, permasalahan yang akan diselesaikan dengan menggunakan sistem ini adalah pencarian pseudocode dari suatu algoritma. Pencarian pseudocode akan diselesaikan

(2)

Untuk mengidentifikasi masalah tersebut, penulis menggunakan Ishikawa diagram (fishbone/cause-effect diagram). Ishikawa diagram adalah diagram yang menunjukkan penyebab – penyebab dari sebuah even yang spesifik. Ishikawa diagram diperkenalkan oleh Kaoru Ishikawa pada tahun 1968. Diagram ini umumnya digunakan untuk mengidentifikasi faktor-faktor yang signifikan memberi efek pada sebuah even. Ishikawa diagram pada sistem ini dapat dilihat pada Gambar 3.1.

Gambar 3.1. Ishikawa Diagram Sistem

Dari gambar diatas dapat dilihat bagaimana sistem akan memproses suatu aktifitas pencarian pattern. User mencari pattern dengan mengharapkan waktu seefisien mungkin. Kemudian pattern yang dicari akan di masukkan dalam metode yang disediakan algoritma string matching. Beberapa faktor yang mempengaruhi proses pencarian pattern adalah panjang pattern terlalu besar, software yang digunakan, spesifikasi komputer/laptop yang digukan, dan sebagainya.

Perhitungan nilai pergeseran bit mask dan mpNext

Efisiensi Algoritma Shift-And dan Morris-Pratt dalam Melakukan Pencarian Kata pada

(3)

23

3.1.2. Analisis Kebutuhan

Analisis kebutuhan terbagi atas dua bagian, yaitu kebutuhan fungsional dan kebutuhan nonfungsional. Kebutuhan fungsional mendeskripsikan aktivitas yang disediakan suatu sistem, sedangkan kebutuhan nonfungsional mendeskripsikan fitur, karakteristik dan batasan lainnya (Whitten, et al. 2004).

3.1.2.1. Kebutuhan Fungsional

Kebutuhan fungsional dari aplikasi Kamus Algoritma Pseudocode ini adalah:

1. Aplikasi Kamus Algoritma Pseudocode akan menampilkan nama algoritma dari pseudocode yang dicari oleh pengguna.

2. Aplikasi Kamus Algoritma Pseudocode akan menampilkan lamanya waktu pencarian dari masing – masing algoritma yang diimplementasikan di dalamnya. 3. Aplikasi Kamus Algoritma Pseudocode akan menampilkan pseudocode lengkap

sesuai dengan nama algoritma yang dipilih pengguna.

3.1.2.2. Kebutuhan Nonfungsional

Kebutuhan nonfungsional dari aplikasi Kamus Algoritma Pseudocode ini adalah: 1. Perangkat lunak yang dibangun dapat menampilkan nama algoritma dan

pseudocode yang lengkap dari nama algoritma yang dimasukan oleh pengguna. 2. Tampilan dari perangkat lunak yang dibangun bersifat ramah pengguna (user

friendly) dan sederhana.

3. Perangkat lunak yang dibangun bersifat hemat biaya karena dapat digunakan tanpa menggunakan koneksi internet dan tidak berbayar.

4. Perangkat lunak yang dibangun memiliki panduan untuk penggunaannya.

5. Perangkat lunak yang dibangun akan menampilkan “kata tidak ditemukan” apabila kata yang dimasukkan pengguna tidak terdapat dalam database.

(4)

algoritma pencocokan string yang ingin digunakan. Sistem ini menggunakan algoritma Shift-And dan Morris-Pratt dalam proses pencocokan string. Sistem akan melakukan pencocokan kata yang dimasukkan oleh pengguna dengan pseudocode yang terdapat dalam database. Kemudian, nama algoritma dari pseudocode yang sesuai dengan kata masukan ditampilkan pada listbox, sementara itu jumlah nama algoritma yang cocok serta lamanya waktu pencarian akan ditampilkan pada message box. Selanjutnya, pengguna akan memilih nama algoritma pada listbox untuk menampilkan pseudocode yang lengkap pada sistem.

3.2. Perancangan Sistem

Perancangan sistem adalah sebuah teknik pemecahan masalah yang saling melengkapi (dengan analisis sistem) yang merangkai kembali bagian – bagian komponen menjadi sebuah sistem yang lengkap (Whitten, 2004).

Perancangan sistem merupakan gambaran cara kerja sistem yang akan dibuat, interaksi antarobjek yang terdapat pada sistem, serta hal yang harus dilakukan agar sebuah sistem bisa berfungsi sesuai dengan keinginan dan kebutuhan pengguna. Dalam perancangan sistem disertakan pemodelan sistem, flowchart, perancangan antarmuka (interface), dan perancangan database.

Pada penelitian ini, bahasa pemodelan yang digunakan untuk mendesain dan merancang aplikasi adalah UML (Unified Modelling Language). Model UML yang digunakan antara lain adalah use-case diagram, activity diagram, dan sequence diagram. Tahapan penelitian akan dilakukan seperti ilustrasi gambar dibawah ini.

(5)

25

Gambar 3.2. Diagram ilustrasi tahap penelitian

Pada diagram ilustrasi tahap penelitian diatas dijelaskan bagaimana proses penelitian berlangsung dimulai dari studi literatur yang bertujuan mencari algoritma yang akan diteliti. Kemudian dilanjutkan dengan mengimplementasikan pada suatu program hingga akhirnya dihasilkanlah hasil dan kesimpulan dari penelitian tersebut.

3.2.1. Pemodelan Sistem

3.2.1.1. Use-case Diagram

Use-case diagram adalah diagram yang mendeskripsikan interaksi antara user dengan sistem. Use-case diagram menunjukkan tiga aspek dari sistem, yaitu: actor, use-case, dan system/sub system boundary. Steoreotype adalah sebuah model khusus yang terbatas untuk kondisi tertentu. Untuk menunjukkan stereotype digunakan simbol “<<” diawalnya dan ditutup “>>” diakhirnya. <<extends>> digunakan untuk menunjukkan bahwa satu use-case merupakan tambahan fungsional dari use-case lain jika kondisi atau syarat tertentu yang terpenuhi. Sedangkan <<include>> digunakan untuk menggambarkan bahwa suatu case seluruhnya merupakan fungsionalitas dari use-case lainnya. Use-use-case diagram dari sistem yang akan dibangun dapat dilihat pada Gambar 3.3.

(6)

Gambar 3.3. Use-case Diagram Sistem

User mempunyai kontrol untuk melakukan beberapa fungsi yang diinginkan, yaitu memilih algoritma pencocokan string yang akan digunakan dan menginput pattern yang akan dicari. Dokumentasi naratif use-case algoritma Shift-And, Morris-Pratt, pergeseran bit mask dan mpNext dapat dilihat pada Tabel 3.1., Tabel 3.2., Tabel 3.3., dan Tabel 3.4.

Tabel 3.1. Dokumentasi Naratif Use-case Algoritma Shift-And Name Algoritma Shift-And

Actor User

Description Mendeskripsikan jalannya proses pencarian kata pada database dengan menggunakan algoritma Shift-And

Basic Flow User memilih algoritma Shift-And sebagai algoritma pencocokan string yang dipilih

Alternate Flow User bisa melihat pseudocode berdasarkan nama algoritma tanpa menginput kata

Pre Condition Sistem menerima inputan pemilihan algoritma Shift-And sebagai algoritma pencocokan string yang dipilih

Post Condition Sistem menampilkan jumlah nama algoritma yang cocok dengan inputan serta lamanya waktu pencarian pada message box, lalu

(7)

27

setelah tombol OK pada message box ditekan, sistem akan menampilkan nama algoritma yang cocok dengan inputan pada listbox

Tabel 3.2. Dokumentasi Naratif Use-case Algoritma Morris-Pratt Name Algoritma Morris-Pratt

Actor User

Description Mendeskripsikan jalannya proses pencarian kata pada database dengan menggunakan algoritma Morris-Pratt

Basic Flow User memilih algoritma Morris-Pratt sebagai algoritma pencocokan string yang dipilih

Alternate Flow User bisa melihat pseudocode berdasarkan nama algoritma tanpa menginput kata

Pre Condition Sistem menerima inputan pemilihan algoritma Morris-Pratt sebagai algoritma pencocokan string yang dipilih

Post Condition Sistem menampilkan jumlah nama algoritma yang cocok dengan inputan serta lamanya waktu pencarian pada message box, lalu setelah tombol OK pada message box ditekan, sistem akan menampilkan nama algoritma yang cocok dengan inputan pada listbox

Tabel 3.3. Dokumentasi Naratif Use-case Pergeseran bit mask Name Perhitungan Tabel bit mask

Actor User

Description Mendeskripsikan jalannya proses pergeseran tabel pergeseran bit mask untuk algoritma Shit-And

Basic Flow User memilih algoritma Shift-And sebagai algoritma pencocokan string yang dipilih

User memasukkan kata yang ingin dicari Alternate Flow -

(8)

2. Sistem menerima inputan berupa kata yang ingin dicari

Post Condition Sistem melakukan perhitungan tabel pergeseran bit mask lalu menyimpan nilainya dalam array

Tabel 3.4. Dokumentasi Naratif Use-case Perhitungan Tabel mpNext Name Perhitungan Tabel mpNext

Actor User

Description Mendeskripsikan jalannya proses perhitungan tabel pergeseran mpNext untuk algoritma Morris-Pratt

Basic Flow User memilih algoritma Morris-Pratt sebagai algoritma pencocokan string yang dipilih

User memasukkan kata yang ingin dicari Alternate Flow -

Pre Condition 1. Sistem menerima inputan pemilihan algoritma Morris-Pratt sebagai algoritma pencocokan string yang dipilih

2. Sistem menerima inputan berupa kata yang ingin dicari

Post Condition Sistem melakukan perhitungan tabel pergeseran mpNext dan menyimpan nilainya dalam array

3.2.1.2. Activity Diagram

Activity diagram adalah sebuah diagram yang dapat digunakan untuk menggambarkan secara grafis aliran proses bisnis, langkah – langkah sebuah use-case, dan logika behaviour (metode) objek. Diagram aktivitas ini serupa dengan flowchart dimana secara grafis diagram ini menggambarkan aliran sekuensial dari kegiatan seperti proses bisnis atau sebuah use-case. Diagram ini juga berbeda dengan flowchart dimana diagram ini menyediakan sebuah mekanisme untuk menggambarkan kegiatan yang tampak secara paralel. (Whitten, 2004).

(9)

29

Activity Diagram dari sistem yang akan dibuat dapat dilihat pada Gambar 3.4.

Sistem User

Buka Halaman Utama

Pilih Algoritma String Matching

Tampilkan halaman Algoritma String Matching

Input pattern yang akan dicari Pencocokan pattern inputan dengan database

Tampilkan hasil iterasi dan running time

Pilih lagu yang dicari berdasarkan daftar lagu hasil iterasi Tampilkan lirik lagu

Pilih Bantuan Tampilkan halaman Bantuan

* * * * * * ** * *

Pilih Tentang Tampilkan halaman Tentang

*

*

* *

* *

Gambar 3.4. Activity Diagram Sistem

Pilih algoritma yang dicari berdasarkan daftar algoritma hasil iterasi

Tampilkan Peseudocode

(10)

Sequence diagram adalah diagram yang memodelkan logika sebuah use-case dengan cara menggambarkan interaksi pesan di antara objek – objek dalam rangkaian waktu (Whitten, 2004).

Sequence diagram dari sistem yang akan dibuat dapat dilihat pada Gambar 3.5.

User

Halaman Utama Halaman Algoritma StringMatching gitasorgawi Halaman Bantuan

Menampilkan halaman Algoritma String Matching

Masukkan teks yang akan dicari

Membaca seluruh data Hasil pencarian Menampilkan hasil pencarian dan running time

Memilih halaman Bantuan

Menampilkan halaman Bantuan Memilih halaman Algoritma String Matching

Halaman Tentang

Memilih halaman Tentang

Menampilkan halaman Bantuan

Gambar 3.5. Sequence Diagram Sistem

(11)

31

3.2.2. Flowchart

Flowchart atau diagram alir merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses dengan pernyataannya (Zarlis, 2008).

3.2.2.1. Flowchart preShift-And

Flowchart fungsi preSA pada fase preprocessing algoritma Shift-And bisa dilihat pada Gambar 3.6. di bawah ini.

(12)

m = panjang pattern

S [] = array yang menampung nilai shift dari pattern

i = indeks dari karakter ke-n pada pattern

ASIZE = ASCII SIZE, jumlah kode ASCII

3.2.2.2. Flowchart pre-MP

Flowchart fungsi pre-MP pada fase preprocessing algoritma Morris-Pratt bisa dilihat pada Gambar 3.7. di bawah ini.

(13)

33

(14)

m = panjang pattern

mpNext [] = array yang menampung nilai mpNext dari pattern

i = indeks dari karakter ke-n pada pattern

j = indeks dari karakter ke-n pada teks

3.2.2.3. Flowchart Algoritma Shift-And

(15)

35

(16)

y = teks

m = panjang pattern

n = panjang teks

preSA = fungsi preSA untuk fase preprocessing algoritma Shift-And

State = bit mask yang disisipkan

i = indeks dari karakter ke-n pada pattern

j = indeks dari karakter ke-n pada teks

3.2.2.4. Flowchart Algoritma Morris-Pratt

(17)

37

(18)

y = teks

m = panjang pattern

n = panjang teks

pre-MP = fungsi pre-MP untuk fase preprocessing algoritma Morris-Pratt

i = indeks dari karakter ke-n pada pattern

j = indeks dari karakter ke-n pada teks

3.2.3. Perancangan Antarmuka (Interface)

Secara umum, sistem yang akan dibangun memiliki beberapa halaman sebagai berikut. 1. Halaman Utama

Halaman utama merupakan tampilan awal ketika aplikasi pertama kali dijalankan. Pada halaman ini akan ditampilkan logo aplikasi, tab “algoritma” yang berfungsi untuk memilih algoritma pencarian yang akan digunakan, tab “tentang” yang berisi penjelasan tentang aplikasi, serta tab “bantuan” yang berisi penjelasan cara penggunaan aplikasi.

Rancangan halaman utama aplikasi yang akan dibuat bisa dilihat pada Gambar 3.10. berikut.

(19)

39

Gambar 3.10. Rancangan Tampilan Halaman Utama Keterangan Gambar:

1. Bagian atas form yang berisi nama aplikasi yang akan dibuat yaitu KAMUS ALGORITMA-PSEUDOCODE.

2. Menu Strip, memuat tab algoritma string matching, tentang, dan bantuan.

3. PictureBox, berisi logo dari aplikasi yang akan dibuat.

2. Halaman Tentang

Halaman ini berisi informasi mengenai aplikasi yang akan dibuat. Rancangan halaman tentang aplikasi dapat dilihat pada Gambar 3.11. berikut.

Algoritma String Matching Tentang Bantuan KAMUS ALGORITMA-PSEUDOCOE

Logo

1

2

(20)

Gambar 3.11. Rancangan Tampilan Halaman Tentang

Keterangan Gambar:

1. PictureBox, memuat logo dari aplikasi yang akan dibuat.

2. TextBox, memuat informasi mengenai penulis sebagai pembuat aplikasi.

3. Halaman Bantuan

Halaman ini berisi informasi mengenai cara penggunaan aplikasi yang akan dibuat. Rancangan halaman bantuan aplikasi dapat dilihat pada Gambar 3.12. berikut.

Gambar 3.12. Rancangan Tampilan Halaman Bantuan

Informasi mengenai aplikasi

2

Bantuan

Logo

Informasi mengenai cara penggunaan aplikasi 1

(21)

41

Keterangan Gambar:

1. PictureBox, memuat logo dari aplikasi yang akan dibuat.

2. TextBox, memuat informasi mengenai cara penggunaan aplikasi yang akan dibuat.

4. Halaman Algoritma String Matching

Halaman ini merupakan halaman pencarian pseudocode menggunakan algoritma Shift-And dan Morris-Pratt. Rancangan tampilan halaman Algoritma String Matching yang akan dibuat dapat dilihat pada Gambar 3.13. berikut.

Gambar 3.13. Rancangan Tampilan Halaman Algoritma String Matching

Keterangan Gambar:

1. TextView, merupakan tempat dimana pengguna bisa memasukkan kata yang ingin dicari.

2. Button Cari dan Reset, button Cari merupakan tombol yang memicu terjadinya proses pencocokan string menggunakan algoritma Shift-And dan Morris-Pratt

4 Algoritma String Matching

Shift-And Daftar Algoritma 1 Cari 3 Morris-Pratt Daftar Algoritma Reset 2 Kata ditemukan! Hasil :

Waktu Pencarian : ms Waktu Pencarian : ms

5 4

(22)

3. ListBox, saat belum ada kata yang dimasukkan pada (1) bagian ini akan berisi semua daftar nama algoritma yang terdapat dalam database. Namun, saat proses pencarian sudah selesai, bagian ini akan berisi daftar nama algoritma yang mengandung kata yang dicari di dalamnya.

4. Message Box, menampilkan jumlah nama algoritma yang cocok dengan inputan serta lamanya waktu pencocokan string pada algoritma tersebut untuk masing – masing kata yang dicari.

5. TextBox, menampilkan waktu pencarian untuk masing – masing algoritma.

6. Halaman Pseudocode

Halaman ini merupakan halaman yang menampilkan pseudocode yang lengkap sesuai dengan nama algoritma yang cocok dan dipilih user sebelumnya. Rancangan tampilan halaman pseudocode yang akan dibuat dapat dilihat pada Gambar 3.14. berikut.

Gambar 3.14. Rancangan Tampilan Halaman Pseudocode

Pseudocode

Nama Algoritma

Pseudocode 1

(23)

43

Keterangan Gambar:

1. Label, menampilkan nama algoritma yang dipilih pengguna. Bagian ini berhubungan dengan database.

2. TextBox, menampilkan pseudocode dari nama algoritma yang dipilih pengguna. Bagian ini berhubungan dengan database

3.2.4. Perancangan Database

Database Management System yang akan digunakan pada aplikasi yang akan dibangun adalah MySQL. Struktur database yang akan digunakan dapat dilihat pada Tabel 3.5. berikut ini.

Tabel 3.5. Perancangan Database

Table Column(s) Type Description

algo_pseudocode Id int(10);

AUTO_INCREMENT, primary key

Menjadi penanda (id) bahwa data yang satu berbeda dengan data yang

sekalipun ada

kemungkinan isinya identik.

nama_al varchar(100) Nama dari algoritma yang terdapat dalam Kamus algoritma pseudocode.

Isi Text Pseudocode yang lengkap

dari algoritma yang terdapat dalam Kamus algoritma pseudocode.

(24)

4.1. Implementasi Sistem

Implementasi sistem bertujuan untuk merealisasikan hal – hal yang sudah dijabarkan sebelumnya pada bab analisis dan perancangan sistem. Sistem yang dibangun akan melakukan kerja utamanya, yaitu melakukan pencarian pseudocode pada studi kasus Kamus Algoritma-Pseudocode. Sistem ini dibangun menggunakan bahasa pemrograman Visual Basic 2015 pada perangkat lunak Microsoft Visual Studio 2015 Version 11.0.50727.1 RTMREL dengan Microsoft .NET Framework Version 4.5.51209, sedangkan database dari sistem ini dibuat dengan perangkat lunak XAMPP v3.2.2 dengan server type MySQL version 5.6.28 dan phpMyAdmin version 4.4.14. Keduanya dikoneksikan dengan menggunakan perangkat lunak MySQL for Visual Studio version 1.2.6.

Aplikasi ini terdiri dari lima form utama, yaitu form Beranda, form Algoritma String Matching, form Pseudocode, form Tentang, dan form Bantuan.

4.1.1. Form Beranda

Form Beranda merupakan form yang pertama kali dilihat oleh user ketika aplikasi dijalankan. Form ini akan mengarahkan user menuju form Algoritma String Matching, form Tentang, dan form Bantuan. Tampilan form Beranda dapat dilihat pada Gambar 4.1.

(25)

45

Gambar 4.1. Form Beranda

Pada Gambar 4.1. dapat dilihat bahwa form Beranda terdiri dari tiga menu strip, yaitu Algoritma String Matching, Tentang, dan Bantuan. Masing – masing menu strip ini akan mengarahkan user ke form yang berbeda apabila diclick. Selain dengan melakukan click pada masing – masing menu strip, menu ini juga diberi fasilitas shortcut key yang diinput dari keyboard. Shortcut key dari masing – masing menu strip adalah sebagai berikut.

1. Alt + A lalu Enter, mengarahkan user menuju form Algoritma String Matching.

2. Alt + T, mengarahkan user menuju form Tentang.

3. Alt + B, mengarahkan user menuju form Bantuan.

(26)

pseudocode dari algoritma yang dicari, sesuai dengan tujuan pembuatan aplikasi ini. Tampilan dari form Algoritma String Matching dapat dilihat pada Gambar 4.2. berikut.

Gambar 4.2. Form Algoritma String Matching

Form ini diatur untuk berada tepat pada bagian tengah layar saat dijalankan. Saat proses pencarian belum dilakukan, seluruh nama algoritma dalam database ditampilkan pada kedua listbox untuk masing – masing algoritma yang akan dibandingkan. Pada Gambar 4.2. dapat dilihat bahwa user dapat memasukkan kata yang ingin dicari pada textbox yang bertuliskan isikan algoritma yang dicari.

Saat tombol Cari ditekan, sistem akan melakukan pencarian kata pada database. Nama algoritma dari kata inputan yang terkandung dalam kolom “nama_algo” pada database akan ditampilkan pada masing – masing listbox, sesuai dengan algoritma pencarian yang digunakan, yaitu algoritma Shift-And dan Morris-Pratt. Waktu pencarian kata untuk masing – masing algoritma akan ditampilkan pada textbox di

(27)

47

bawahnya. Textbox yang memuat waktu pencarian diatur agar tidak bisa diubah isinya oleh user (read only).

Sementara itu, jika tombol Reset ditekan, listbox akan kembali menampilkan seluruh nama algoritma pada database. Selanjutnya, apabila salah satu nama algoritma dari daftar yang terdapat dalam listbox ditekan, user akan diarahkan menuju form Pseudocode.

4.1.3. Form Pseudocode

Form Pseudocode merupakan form yang menampilkan pseudocode dari nama algoritma yang dipilih pada listbox yang terdapat di form Algoritma Pencocokan String. Tampilan dari form Pseudocde dapat dilihat pada Gambar 4.3. berikut.

(28)

bawahnya. Penulis menggunakan textbox agar lirik lagu yang panjang bisa tetap ditampilkan oleh sistem. Textbox ini diatur agar tidak bisa diubah isinya oleh user (read only).

4.1.4. Form Tentang

Form ini merupakan form yang akan memberi informasi kepada user mengenai aplikasi yang dibangun. Tampilan dari form Tentang bisa dilihat pada Gambar 4.4. berikut.

(29)

49

Form ini diberi pengaturan apabila form ini sedang terbuka, user tidak akan bisa menuju form lain sebelum form ini ditutup. Pada Gambar 4.4. dapat dilihat bahwa form ini berisi logo dari aplikasi serta informasi mengenai pembuat aplikasi, yaitu penulis sendiri beserta dengan judul dari penelitian ini.

4.1.5. Form Bantuan

Form ini merupakan form yang akan memberi informasi kepada user mengenai cara penggunaan aplikasi yang dibangun. Tampilan dari form Bantuan bisa dilihat pada Gambar 4.5. berikut.

Gambar 4.5. Form Bantuan

Form ini diberi pengaturan apabila form ini sedang terbuka, user tidak akan bisa menuju form lain sebelum form ini ditutup. Pada Gambar 4.5. dapat dilihat bahwa form ini berisi logo dari aplikasi serta informasi mengenai cara penggunaan aplikasi yang dibangun. Cara penggunaan ditampilkan dalam sebuah textbox karena isinya cukup panjang. Textbox ini diatur agar tidak bisa diubah isinya oleh user (read only).

(30)

yang dibangun untuk aplikasi ini bisa dilihat pada Gambar 4.6. berikut.

Gambar 4.6. Struktur Database

Database yang digunakan pada aplikasi ini diberi nama “algo_pseudocode”. Database ini berisi satu buah tabel dengan nama yang sama, yaitu “algoritma”. Tabel ini berisi tiga buah kolom, yaitu kolom “id”, “nama_algo”, dan “isi”. Untuk pengaturan dari database yang digunakan sudah tertera sebelumnya pada bab analisis dan perancangan sistem. Database “algo_pseudocode” dapat dilihat pada Gambar 4.7.

. . . .

. . . .

. . . .

(31)

51

4.2. Pengujian Sistem

Pengujian sistem dilakukan dengan tujuan membuktikan bahwa sistem yang dibangun dapat berjalan dengan baik sesuai dengan analisis dan perancangan sistem yang telah dibuat sebelumnya.

Untuk melakukan pengujian terhadap sistem, dibutuhkan perangkat keras yang mendukung kinerja pengujian. Spesifikasi dari perangkat keras yang digunakan adalah :

1. Processor : Intel(R) Core(TM) i3-2330M CPU @ 2.20GHz 2. RAM 6.00 GB

3. Sistem Operasi Windows 10 Pro 64-bit

Database dari aplikasi ini memiliki 100 entri nama algoritma yang akan dicek setiap kali user memasukkan sebuah kata yang ingin dicari. Untuk mengetahui bahwa proses pencocokan yang dilakukan berjalan dengan baik dan memiliki hasil yang benar, dilakukan tes pencocokan secara manual. Tabel 4.1. di bawah ini menujukkan sampel isi lagu yang terdapat dalam database. Kata yang menjadi Pattern adalah ‘sort’.

Tabel 4.1. Sampel Algoritma-Pseudocode pada Database

11 BUBBLE SORT For I = 0 to N - 2 For J = 0 to N - 2 If (A(J) > A(J + 1) Temp = A(J) A(J) = A(J + 1) A(J + 1) = Temp End-If End-For End-For

(32)

12 SELECTION SORT For J = I + 1 to N-1 do: If A(J) < A(Smallsub) Smallsub = J End-If End-For Temp = A(I) A(I) = A(Smallsub) A(Smallsub) = Temp End-For

4.2.1. Pengujian Algoritma Shift-And

Sebelum melakukan proses pencocokan, algoritma Shift-And memiliki tahap preprocessing. Pada fase ini pattern yang akan dicari urutkan berdasarka abjad dan menggunakan bit dari setiap karakter yang akan dicari, setiap karakter diubah menjadi bit dan menggunakan bit mask. Panjang jumlah bit ditentukan seberapa banyak karakter pattern yang akan dicocokan pada teks. Dengan D hasil dari And proses. Tabel bit mask untuk pattern ‘sort’ dapat dilihat pada Tabel 4.2. berikut ini.

(33)

53

Tabel 4.2. Nilai bit mask untuk Pattern ‘sort’

B O 0 0 1 0 R 0 1 0 0 S 0 0 0 1 T 1 0 0 0 * 0 0 0 0 D = 0 0 0 0

Pada proses pencarian pertama, pattern akan dicocokkan dengan nama algoritma dari algoritma BUBBLE SORT. Untuk menghindari terjadinya ArrayIndexOutOfBound, setiap nama algoritma mengalami penambahan karakter ‘0’ yang ditambahkan melalui program pada sistem yang dibuat, tetapi penambahan ini tidak ditampilkan kepada user. Selanjutnya, proses pencocokan string dilakukan.

D disisipkan 1 pada akhir bit Fase 1

(reading B)

0 0 0 1

0 0 0 0

D 0 0 0 0

Hasil And dari Fase 1 : D= 000000 , ini berarti bahwa karakter yang ditemukan tidak sesuai dengan pattern.

D disisipkan 1 pada akhir bit

Fase 2 (reading U)

0 0 0 1

0 0 0 0

(34)

D disisipkan 1 pada akhir bit Fase 3 (reading B) 0 0 0 1 0 0 0 0 D 0 0 0 0

Hasil And dari Fase 3 : D= 000000 , ini berarti bahwa karakter yang ditemukan tidak sesuai dengan pattern.

D disisipkan 1 pada akhir bit

Fase 4 (reading B)

0 0 0 1

0 0 0 0

D 0 0 0 0

Hasil And dari Fase 4 : D= 000000 , ini berarti bahwa karakter yang ditemukan tidak sesuai dengan pattern.

D disisipkan 1 pada akhir bit

Fase 5 (reading L)

0 0 0 1

0 0 0 0

D 0 0 0 0

Hasil And dari Fase 5 : D= 000000 , ini berarti bahwa karakter yang ditemukan tidak sesuai dengan pattern.

(35)

55 Fase 6 (reading E) 0 0 0 1 0 0 0 0 D 0 0 0 0

Hasil And dari Fase 6 : D= 000000 , ini berarti bahwa karakter yang ditemukan tidak sesuai dengan pattern.

D disisipkan 1 pada akhir bit

Fase 7 (reading space) 0 0 0 1 0 0 0 0 D 0 0 0 0

Hasil And dari Fase 7 : D= 000000 , ini berarti bahwa karakter yang ditemukan tidak sesuai dengan pattern.

D disisipkan 1 pada akhir bit

Fase 8 (reading S)

0 0 0 1

0 0 0 1

D 0 0 0 1

Hasil And dari Fase 8 : D= 000001 , ini berarti bahwa karakter yang ditemukan sesuai dengan pattern.

D disisipkan 1 pada akhir bit

Fase 9 (reading O)

0 0 1 1

0 0 1 0

(36)

Fase 10 (reading R)

0 1 0 1

0 1 0 0

D 0 1 0 0

Hasil And dari Fase 10 : D= 000100 , ini berarti bahwa karakter yang ditemukan sesuai dengan pattern.

D disisipkan 1 pada akhir bit

Fase 11 (reading T)

1 0 0 1

1 0 0 0

D 1 0 0 0

Hasil And dari Fase 11 : D= 001000 , ini berarti bahwa karakter yang ditemukan sesuai dengan pattern.

D disisipkan 1 pada akhir bit

Pattern ditemukan pada bit mask mencapai keseluruhan karakter pada pattern yang dicari. Pattern ditemukan dalam 11 fase pencarian dan posisi pattern di temukan di fase delapan. Proses pencarian akan terus dilakukan hingga text berakhir.

4.2.2. Pengujian Algoritma Morris-Pratt

Sebelum melakukan proses pencocokan, algoritma Morris-Pratt memiliki tahap preprocessing untuk menentukan nilai pergeseran. Tahapan untuk membuat tabel nilai pergeseran mpNext pada fase preprocessing algoritma Morris-Pratt sudah dipaparkan

(37)

57

sebelumnya pada bab kedua. Tabel pergeseran mpNext untuk pattern ‘sort’ dapat dilihat pada Tabel 4.3. berikut ini.

Tabel 4.3. Nilai Pergeseran mpNext untuk Pattern ‘sort’

I 0 1 2 3 6

x[i] S O R T *

mpNext[i] -1 0 0 0 1

Pada proses pencarian pertama, pattern akan dicocokkan dengan nama algoritma dari dari algortitma berjudul BUBBLE SORT. Untuk menghindari terjadinya ArrayIndexOutOfBound, setiap nama algoritma mengalami penambahan karakter ‘0’ yang ditambahkan melalui program pada sistem yang dibuat, tetapi penambahan ini tidak ditampilkan kepada user. Selanjutnya, proses pencocokan string dilakukan.

B U B B L E S O R T 0 1 S O R T Shift = 0 – mpNext [0] = 0 – –1 = 1 B U B B L E S O R T 0 1 S O R T Shift = 0 – mpNext [0] = 0 – -1 = 1

(38)

S O R T Shift = 0 – mpNext [0] = 0 – -1 = 1 B U B B L E S O R T 0 1 S O R T Shift = 0 – mpNext [0] = 0 – -1 = 1 B U B B L E S O R T 0 1 S O R T Shift = 0 – mpNext [0] = 0 – -1 = 1 B U B B L E S O R T 0 1 S O R T

(39)

59 Shift = 0 – mpNext [0] = 0 – -1 = 1 B U B B L E S O R T 0 1 S O R T Shift = 0 – mpNext [0] = 0 – -1 = 1 B U B B L E S O R T 0 1 2 3 S O R T Shift = 3 – mpNext [3] = 3 – 0 = 3

Pada percobaan kedelapan, pattern sudah sesuai dengan karakter pada teks. Algoritma Morris-Pratt akan terus melakukan pencarian hingga karakter pada teks berakhir.

4.2.3. Analisis Kompleksitas Algoritma pada Sistem

Running time dari sebuah algoritma dengan masukan tertentu adalah jumlah operasi primitif atau “langkah – langkah” yang dieksekusi. Jumlah waktu yang konstan

diperlukan untuk mengeksekusi setiap baris dari pseudocode kita. Sebuah baris

mungkin memiliki jumlah waktu yang berbeda dengan baris lainnya, namun kita akan

mengasumsikan bahwa setiap eksekusi dari baris ke-i menghabiskan waktu sejumlah ci,

(40)

1 for j = 2 to A.length c1 n

2 key = A[j] c2 n – 1

3 //Masukkan A[j] ke dalam urutan A[1..j – 1].

0 n – 1

4 i = j – 1 c4 n – 1

5 while i > 0 dan A[i] > key c5

∑ 𝑡𝑗 𝑛 𝑗=2 6 A[i + 1] = A[i] c6 ∑ 𝑡𝑗 𝑛 𝑗=2 − 1 7 i = i – 1 c7 ∑ 𝑡𝑗 𝑛 𝑗=2 − 1 8 A[i + 1] = key c8 n – 1

Running time dari sebuah algoritma adalah hasil penjumlahan dari running time setiap statement yang dieksekusi; sebuah statement memiliki sejumlah ci langkah untuk

dieksekusi dan mengeksekusi sejumlah n kali akan menambahkan cin ke dalam running

time total. Untuk menghitung T(n), running time dari INSERTION-SORT pada masukan sejumlah n, kita menjumlahkan kolom cost dan times, yang menghasilkan :

T(n) = c1n + c2(n – 1) + c4(n – 1) + c5 ∑𝑛𝑗=2𝑡𝑗 + c6 ∑𝑛𝑗=2(𝑡𝑗− 1) + c7 ∑𝑛𝑗=2(𝑡𝑗− 1)

+ c8 (n – 1).

(41)

61

4.2.3.1. Analisis Kompleksitas Fase Preprocessing Shift-And

Public Sub preSA(p) cost times cost.times

p = Cari.Text.ToUpper C1 1 C1

m = p.Length C1 1 C1

Dim temp As Integer C2 1 C2

flag = 0 C1 1 C1 For i = 0 To 255 C3 256 256C3 S(i) = 0 C1 256 256C1 Next i For i = 0 To m – 1 C3 m C3m temp = Asc(p(i)) C1 m C1m S(temp) = S(temp) Or (1 << i) C1 m C1m Next i End Sub T(m) = C1 + C1 + C2 + C1 + 256C3 + 256C1 + C3m + C1m + C1m = 259C1 + C2 + 256C3 + ( C3 + 2C1 ) m

Asumsikan nilai C konstan ( nilai C diabaikan ) = 516 + 3 m

= Ө(m)

4.2.3.2. Analisis Kompleksitas Fase Pencarian Shift-And

cost times cost.times

Dim matched, matchmask, temp As Integer C1 1 C1

d = 0 C2 1 C2 matchmask = 1 << m - 1 C2 1 C2 For i = 0 To n - 1 C3 n C3n temp = Asc(t(i)) C1 n C1n d = ((d << 1) Or 1) And (S(temp) Or 0) C1 n C2n

matched = (d And matchmask) C1 n C1n

If (matched <> 0) Then C4 n C4n state = (i - m + 1) C1 n C1n flag = 1 C1 n C1n End If Next i Return flag C5 n C5n End Function

(42)

Asumsikan nilai C konstan ( nilai C diabaikan ) = 3 + 8 n

= Ө(n)

4.2.3.3. Analisis Kompleksitas Fase Preprocessing Morris-Pratt

Sub pre-MP(x) cost times cost.times

x = Cari.Text.ToUpper.ToCharArray C1 1 C1 m = x.Length C1 1 C1 i = 0 C1 1 C1 j = mpNext(0) C1 1 C1 mpNext(0) = -1 C1 1 C1 While (i < m) C2 m C2m

While ((j > -1) AndAlso (x(i) <>

x(j))) C2 m C2m j = mpNext(j) C1 m C1m End While i = (i + 1) C1 m C1m j = (j + 1) C1 m C1m mpNext(i) = j C1 m C1m End While End Sub T(m) = C1 + C1 + C1 + C1 + C1 + C2m + C2m + C1m + C1m + C1m + C1m = 5C1 + (2C2 + 4C2) m

Asumsikan nilai C konstan ( nilai C diabaikan ) = 5+ 6 m

(43)

63

4.2.3.4. Analisis Kompleksitas Fase Pencarian Morris-Pratt

cost times cost.times

j = 0 C1 1 C1

i = 0 C1 1 C1

result2 = 0 C1 1 C1

While (j < n) C2 n C2n

Do While ((i > -1) AndAlso

(x(i) <> y(j))) C3 n C2n i = mpNext(i) C1 n C1n Loop i = (i + 1) C1 n C1n j = (j + 1) C1 n C1n If (i >= m) Then C4 n C3n result2 = 1 C1 n C1n i = mpNext(i) C1 n C1n End If End While Return result2 C5 1 C5 End Function T(n) = 3C1 + C5 + (2C2 + 5C1 + C4)n

Asumsikan nilai C konstan ( nilai C diabaikan ) = 5 + 8 n

= Ө(n)

Hasil pengujian sistem untuk beberapa sampel kata dapat dilihat pada tabel 4.4 berikut ini.

Tabel 4.4 Hasil Pengujian Sistem

No. Pattern Gambar Hasil Pencarian

Waktu Pencarian (ms)

Result Shift – And Morris - Pratt

1. gcd Gambar 4.8 94 62 Tidak ditemukan

(44)

5. INsert Gambar 4.12 141 62 ditemukan

6. enkripsi Gambar 4.13 141 47 ditemukan

7. vigenere Gambar 4.14 109 47 ditemukan

8. algoritma Gambar 4.15 101 59 Tidak ditemukan

9. cek algoritma Gambar 4.16 125 62 Tidak ditemukan

10. brute force Gambar 4.17 109 47 ditemukan

(45)

65

Gambar 4.8 Hasil Pencarian Pattern No. 1 Pada Tabel 4.4

Gambar diatas menjelaskan hasil pencarian dari pattern nomor 1 pada Tabel 4.4 dimana kata tidak ditemukan dengan running time pada pencarian shift-and adalah 94 ms dan running time pada morris-pratt adalah 62 ms.

Gambar 4.9 Hasil Pencarian Pattern No. 2 Pada Tabel 4.4

Gambar diatas menjelaskan hasil pencarian dari pattern nomor 2 pada Tabel 4.4 dimana kata ditemukan dengan running time pada pencarian shift-and adalah 94 ms dan running time pada morris-pratt adalah 78 ms dengan total hasil pencarian sebanyak 21 hasil.

(46)

Gambar 4.10 Hasil Pencarian Pattern No. 3 Pada Tabel 4.4

Gambar diatas menjelaskan hasil pencarian dari pattern nomor 3 pada Tabel 4.4 dimana kata ditemukan dengan running time pada pencarian shift-and adalah 94 ms dan running time pada morris-pratt adalah 63 ms dengan total hasil pencarian sebanyak 15 hasil.

Gambar 4.11 Hasil Pencarian Pattern No. 4 Pada Tabel 4.4

Gambar diatas menjelaskan hasil pencarian dari pattern nomor 4 pada Tabel 4.4 dimana kata ditemukan dengan running time pada pencarian shift-and adalah 93 ms dan running time pada morris-pratt adalah 63 ms dengan total hasil pencarian sebanyak 3 hasil.

(47)

67

Gambar 4.12 Hasil Pencarian Pattern No. 5 Pada Tabel 4.4

Gambar diatas menjelaskan hasil pencarian dari pattern nomor 5 pada Tabel 4.4 dimana kata ditemukan dengan running time pada pencarian shift-and adalah 141 ms dan running time pada morris-pratt adalah 62 ms dengan total hasil pencarian sebanyak 1 hasil.

Gambar 4.13 Hasil Pencarian Pattern No. 6 Pada Tabel 4.4

Gambar diatas menjelaskan hasil pencarian dari pattern nomor 6 pada Tabel 4.4 dimana kata ditemukan dengan running time pada pencarian shift-and adalah 141 ms dan running time pada morris-pratt adalah 47 ms dengan total hasil pencarian sebanyak 2 hasil.

(48)

Gambar 4.14 Hasil Pencarian Pattern No. 7 Pada Tabel 4.4

Gambar diatas menjelaskan hasil pencarian dari pattern nomor 7 pada Tabel 4.4 dimana kata ditemukan dengan running time pada pencarian shift-and adalah 109 ms dan running time pada morris-pratt adalah 47 ms dengan total hasil pencarian sebanyak 2 hasil.

Gambar 4.15 Hasil Pencarian Pattern No. 8 Pada Tabel 4.4

Gambar diatas menjelaskan hasil pencarian dari pattern nomor 8 pada Tabel 4.4 dimana kata tidak ditemukan dengan running time pada pencarian shift-and adalah 101 ms dan running time pada morris-pratt adalah 59 ms.

(49)

69

Gambar 4.16 Hasil Pencarian Pattern No. 9 Pada Tabel 4.4

Gambar diatas menjelaskan hasil pencarian dari pattern nomor 9 pada Tabel 4.4 dimana kata tidak ditemukan dengan running time pada pencarian shift-and adalah 125 ms dan running time pada morris-pratt adalah 62 ms.

Gambar 4.17 Hasil Pencarian Pattern No. 10 Pada Tabel 4.4

Gambar diatas menjelaskan hasil pencarian dari pattern nomor 10 pada Tabel 4.4 dimana kata ditemukan dengan running time pada pencarian shift-and adalah 109 ms dan running time pada morris-pratt adalah 47 ms dengan total hasil pencarian sebanyak 1 hasil.

(50)

Gambar 4.18 Perbandingan Running Time untuk Berbagai Panjang Pattern pada Algoritma Shift-And dan Morris-Pratt

Berdasarkan grafik dan hasil pengujian di atas, dapat ditarik kesimpulan bahwa algoritma Morris-Pratt memiliki waktu pencarian yang lebih sedikit dibandingkan dengan algoritma Shift-And untuk semua jenis pattern yang dicari dan semakin pendek panjang pattern yang dicari maka, semakin cepat juga running time dari kedua algoritma tersebut 94 94 94 93 141 141 109 101 125 109 62 78 63 63 62 47 47 59 62 47 0 20 40 60 80 100 120 140 160 3 4 4 5 6 8 8 9 13 11 R unni ng Ti m e (m s)

Panjang Pattern(char)

Perbandingan Running Time untuk Berbagai Panjang Pattern pada Algoritma Shift-And dan Morris-Pratt

Shift-And Morris-Pratt

(51)

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan pembahasan dan hasil dari penelitian, maka diperoleh beberapa kesimpulan sebagai berikut:

1. Dengan melakukan percobaan pada sampel pattern sebanyak 10 buah diperoleh hasil rata – rata waktu pencarian sebesar 110.1 ms untuk algoritma Shift-And dan 59 ms untuk algoritma Morris-Pratt.

2. Pada fase preprocessing, algoritma Shift-And dan Morris-Pratt memiliki kompleksitas waktu sebesar Ө(m). Hal ini berarti tingkat pertumbuhan pada fase preprocessing kedua algoritma bersifat linear.

3. Pada fase pencarian, algoritma Shift-And dan algoritma Morris-Pratt memiliki kompleksitas waktu sebesar Ө(n). Hal ini berarti tingkat pertumbuhan pada fase pencarian kedua algoritma bersifat linear.

4. Besar running time kedua algoritma dipengaruhi oleh panjangnya pattern yang dicari dan spesifikasi mesin yang digunakan.

5. Secara teoritis dan pengujian diperoleh hasil yang sama. Dimana, algoritma Morris-Pratt lebih efektif dibandingkan dengan algoritma Shift-And.

5.2. Saran

Berikut ini adalah saran yang dapat digunakan untuk tahap pengembangan penelitian sistem ini antara lain:

1. Pada penelitian ini, penulis hanya menggunakan 100 entri nama algoritma sebagai sampel untuk disimpan di dalam database. Diharapkan ke depannya database dilengkapi lagi.

(52)

pencocokan string.

3. Saat ini sedang berkembang pembuatan aplikasi berbasis mobile yang diimplementasikan pada platform Android. Diharapkan ke depannya bisa dibuat aplikasi Kamus Algoritma-Pseudocode berbasis mobile dengan mengimplementasikan algoritma Morris-Pratt di dalamnya.

Gambar

Tabel 3.1. Dokumentasi Naratif Use-case Algoritma Shift-And  Name  Algoritma Shift-And
Tabel 3.2. Dokumentasi Naratif Use-case Algoritma Morris-Pratt  Name  Algoritma Morris-Pratt
Gambar 3.5. Sequence Diagram Sistem
Gambar 3.6. di bawah ini.
+7

Referensi

Dokumen terkait

51 Adapun yang menjadi variabel terikat dalam penelitian ini adalah hasil belajar Akidah Akhlak siswa kelas VIII MTs Darul Huda.. Wonodadi Blitar yang diberi

Agar peristiwa kecelakaan yang terjadi dari setiap unit kerja dapat berkurang, maka cara yang dapat dilakukan adalah menerapkan dan mengukur tingkat keberhasilan program Kesehatan

Kode Kegiatan/ Output/ Sub Output/ Paket/ Sub Paket Vol Satuan Pemanfaat Tahun Atribut Kesiapan DED

“Masyarakat lokal di Kecamatan Banawa pada perinsipnya mendukung kebijakan penertiban hewan ternak dengan mendorong implementator untuk lebih giat melaksanakan

jalan balik arus hubung singkat ke bumi ,sehingga bila terjadi gangguan satu phase ke badan peralatan ,arus gangguan yang terjadi mengikuti sifat pada pembumian

Dari grafik tersebut dapat dilihat bahwa apabila dengan mempertimbangkan partial detection dan full detection sebagai suatu kondisi true negative dimana serangan terdeteksi

Puji dan syukur penulis panjatkan kehadirat Allah SWT yang telah melimpahkan segala rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan laporan tugas akhir

Perancangan antarmuka form tambah user ini digunakan untuk menambahkan user yang dapat mengakses aplikasi rental mobil Nandi Trans. Tidak semua