• 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!
14
0
0

Teks penuh

(1)

23

ANALISIS DAN PERANCANGAN SISTEM

Pada pengembangan suatu sistem diperlukan analisis dan perancangan sistem yang tepat, sehingga proses pembuatan sistem dapat berjalan dengan lancar dan sesuai seperti yang diinginkan. Setelah dilakukan analisis perlu adanya desain sistem (desain interface) yang bertujuan untuk memberikan gambaran tentang jalannya sistem tersebut.

3.1 Analisis Masalah

Perkembangan teknologi semakin hari semakin berkembang dengan pesat.

Kemajuan teknologi ini memunculkan banyaknya aplikasi-aplikasi berbasis web yang menampilkan berbagai macam informasi digital. Aplikasi-aplikasi berbasis web ini tidak menutup kemungkinan terdapat kemiripan informasi yang ditampilkan antara web satu dengan web yang lainnya.

Kemiripan informasi tersebut bisa dilihat berdasarkan isi atau cara penulisan dari web satu dengan web yang lain. Tak jarang pula penggunaan kata dan kalimat dalam penyampaian informasi tersebut mempunyai persentase kemiripan hingga 100%.

Aplikasi untuk membandingkan kemiripan dua buah teks untuk saat ini masih jarang ditemukan, dan kemungkinan dalam hal membandingkan dua buah teks ini masih dilakukan secara manual atau dengan kata lain hanya dibandingkan dengan cara membacanya saja, dan akan memakan waktu yang lama jika teks yang dibandingkan sangat banyak. Oleh karena itu, dalam laporan tugas akhir ini telah mencoba untuk merancang aplikasi tersebut salah satunya dengan maksud mengurangi adanya kemiripan dua buah teks ini.

Aplikasi untuk membandingkan kemiripan dua buah teks dapat dibuat dengan menggunakan algoritma Winnowing dan fungsi similar_text yang ada

(2)

pada bahasa pemrograman PHP. Dalam laporan tugas akhir ini memilih menggunakan algoritma Winnowing untuk membuat aplikasi berbasis web untuk membandingkan kemiripan dua buah teks.

Alasan memilih algoritma Winnowing dapat dilihat pada tabel perbandingan antara algoritma Winnowing dengan fungsi similar_text. Tabel perbandingan ini dibuat berdasarkan referensi buku mengenai algoritma Winnowing dan fungsi similar_text. Lihat Tabel 3.1.

1. Tabel Perbandingan

Tabel 3.1 Tabel perbandingan algoritma Winnowing dengan similar_text()

No. Proses Algoritma

Winnowing

Fungsi similar_text()

1. Pembersihan teks -

2. Pembentukan k-gram -

3. Rolling hash -

4. Mengelompokkan nilai hash ke dalam window

-

5. Memilih minimum hash -

6. Membuat fingerprint -

7. Menghitung nilai kemiripan

Kebutuhan dari aplikasi tersebut yaitu :

Input a. Teks 1

Teks 1 merupakan teks pembanding. Teks 1 ini dapat berupa bahasa Inggris dan bahasa Indonesia. Tidak ada batas maksimum panjang teks dalam teks 1 ini.

b. Teks 2

Teks 2 merupakan teks yang dibandingkan. Teks 2 ini dapat berupa bahasa Inggris dan bahasa Indonesia. Tidak ada batas maksimum panjang teks dalam teks 2 ini.

(3)

Proses

a. Algoritma Winnowing

Algoritma Winnowing merupakan algoritma yang digunakan dalam aplikasi berbasis web untuk membandingkan kemiripan dua buah teks. Algoritma Winnowing adalah algoritma yang digunakan untuk melakukan proses sidik jari dokumen. Algoritma Winnowing melakukan penghitungan nilai-nilai hash dari setiap k-gram, untuk mencari nilai hash selanjutnya digunakan fungsi rolling hash (pemisah bergulir).

b. Menentukan kemiripan

Menentukan kemiripan merupakan sebuah proses yang dilakukan dalam aplikasi ini untuk menentukan besarnya persentase kemiripan antara teks 1 dengan teks 2.

Output

a. Persentase kemiripan

Persentase kemiripan merupakan hasil keluaran dari proses algoritma Winnowing dan menentukan kemiripan dalam bentuk angka.

3.2 Perancangan Sistem

Untuk merancang aplikasi ini mengunakan pemrograman terstruktur dan rancangan antar muka. Pemrograman terstruktur yang dibuat adalah diagram alir dari program tersebut.

3.2.1 Diagram Alir

Dalam merancang sebuah aplikasi dibutuhkan diagram alir atau alur dari sebuah algoritma. Diagram alir ini dibuat untuk mempermudah perancangan sistem sebuah aplikasi. Dalam aplikasi ini, membuat diagram alir algoritma.

Diagram alir algoritma dimulai dengan pengguna memasukkan teks 1 dan teks 2 pada kotak yang telah disediakan. Setelah pengguna memasukkan teks, maka algoritma akan menentukan nilai k-gram dari masing-masing teks. Nilai k- gram dibentuk berdasarkan rata-rata jumlah huruf yang ada pada setiap teks.

(4)

Selanjutnya algoritma Winnowing akan melakukan pembersihan teks, yaitu menghilangkan spasi, tanda baca, karakter, dan menjadikan huruf kapital menjadi lowercase. Winnowing akan membentuk sebuah array k-gram. Pembentukan k- gram ini dilakukan berdasarkan nilai k-gram yang telah ditentukan sebelumnya.

Setelah menentukan nilai k-gram, maka aka nada sebuah proses rolling hash.

Rolling hash adalah sebuah rangkaian proses algoritma yang merubah kata ke dalam bentuk nilai ascii.

Hasil dari proses rolling hash akan dilakukan pengelompokkan nilai hash.

Sebelum melakukan pengelompokan nilai hash, akan dilakukan penentuan window, dimana window adalah rata-rata jumlah kata yang ada didalam sebuah kalimat teks tersebut. Memilih nilai hash minimum (nilai terkecil) dari pengelompokan nilai window.

Pemilihan pernyataan atau decision, perhatikan apakah nilai hash dalam window tersebut terdapat kesamaan atau tidak? Jika ya (ada yang sama), maka akan ada penggabungan nilai hash, dan dalam pemilihan fingerprint nilai hash yang sama hanya ditulis satu kali. Jika tidak ada yang sama, maka bisa di lanjutkan dalam pembuatan fingerprint. Hasil pemilihan beberapa nilai hash minimum dari window dan ditambahkan informasi posisi fingerprint.

Langkah terakhir adalah menghitung nilai kemiripan dari proses yang sudah dibuat. Cara menghitung nilai kemiripan dari kedua teks adalah nilai hash yang sama dibagi dengan jumlah nilai hash teks 1 dan teks 2 dikurangi nilai hash yang sama kemudian hasil pembagian tersebut dikali seratus persen. Setelah melakukan penghitungan maka program akan menampilkan hasil persentase kemiripan kedua teks. Ketika program sudah menampilkan hasil persentase maka program ini berakhir.

Rangkaian proses algoritma Winnowing bisa dilihat dalam diagram alir dari algoritma Winnowing. Berikut ini diagram alir dari algoritma Winnowing. Lihat Gambar 3.1.

(5)

Gambar 3.1 diagram alir algoritma Winnowing

Start

Input:

-teks 1 -teks 2

Apakah Nilai hash ada yang sama?

Output:

Presentase kemiripan

Stop Menentukan nilai k-gram

-Pembersihan teks (spasi, tanda baca) -Menjadikan huruf kecil

Rolling hash

Menghitung nilai kemiripan ya

tidak

Pembentukkan rangkaian gram sesuai dengan nilai k-gram yang sudah di tentukan

Mengelompokkan nilai hash ke dalam ukuran window yang telah ditentukan

Memilih minimum hash dari setiap window

Memilih salah satu dari nilai hash yang sama

Membuat fingerprint

(6)

1. Diagram alir menentukan nilai k-gram. Lihat Gambar 3.2.

Gambar 3.2 diagram alir menentukan nilai k-gram

Dalam menentukan nilai k-gram pada algoritma Winnowing, langkah pertama yang dilakukan adalah melakukan explode, yaitu memisah string menjadi substring. Langkah kedua adalah melakukan count atau penghitungan teks, count yang dimaksud disini adalah menghitung rata-rata jumlah huruf dalam satu kata pada teks dan menghitung jumlah huruf yang ada pada teks. Selanjutnya, membagi jumlah huruf pada teks dengan rata-rata jumlah huruf yang ada pada teks. Hasil pembagian antara jumlah huruf pada teks dengan rata-rata jumlah

Start

Melakukan explode

Melakukan Count

Membulatkan angka hasil dari pembagian

Stop Input : - teks 1 - teks 2

Melakukan pembagian

Succes?

Output:

Nilai k-gram teks

Tidak

Ya

(7)

huruf yang ada pada teks akan dibulatkan. Misal hasil dari pembagian 5,4 maka akan dibulatkan menjadi 5. Maka program akan menampilkan hasil dari proses menentukan nilai k-gram (dalam bentuk angka).

2. Diagram alir pembersihan teks. Lihat Gambar 3.3.

Gambar 3.3 diagram alir pembersihan teks

Dalam proses pembersihan teks langkah pertama yang dilakukan adalah menjadikan semua huruf kapital yang ada pada inputan teks huruf kecil atau lowercase. Kemudian membuang atau menghilangkan semua yang bukan huruf dan angka yang ada pada teks, seperti karakter huruf, tanda baca. Setelah melakukan proses pembuangan karakter, dilanjutkan dengan menghilangkan

start

Menjadikan lowercase (huruf kecil)

Menghapus spasi

Membuang semua yang bukan huruf dan angka

Stop Input : - teks 1 - teks 2

Succes?

Output:

Tidak ada huruf kapital, spasi dan tanda baca dalam

teks

Tidak

Ya Menentukan nilai k-gram

(8)

spasi. Setelah proses seleseai, maka program akan menampilkan teks tanpa karakter, huruf kapital, tanda baca, dan spasi.

Contoh: Nama saya: Afni Menjadi: namasayaafni

3. Diagram alir rolling hash. Lihat Gambar 3.4.

Gambar 3.4 diagram alir rolling hash

Start

Input:

-teks 1 -teks 2

Menentukan nilai k-gram

-Pembersihan teks (spasi, tanda baca) -Menjadikan huruf kecil

Pembentukkan rangkaian gram sesuai dengan nilai k-gram yang sudah di tentukan

Menghitung jumlah array rangkaian gram

Menentukan nilai bilangan prima

Mengubah huruf kedalam bentuk nilai ascii

Output:

Array nilai hash

Stop Success?

ya tidak

(9)

Sebelum melakukan proses rolling hash, hal yang dilakukan adalah pembentukkan rangkaian gram (array) sesuai dengan nilai k-gram yang sudah ditentukan dalam bentuk array. Melakukan penghitungan atas array yang sudah dibentuk pada proses sebelumnya. Menentukan nilai bilangan prima untuk digunakan pada proses selanjutnya, yaitu fungsi rolling hash. Setelah melakukan pembentukkan array rangkaian gram, dilanjutkan dengan mengubah huruf kedalam bentuk nilai ascii.

Proses ini dilakukan dengan menggunakan rumus rolling hash, dimana rumus ini adalah mengalikan nilai ascii dengan bilangan prima yang sudah ditentukan yang berpangkat k-gram.

Rumus rolling hash yaitu:

Fungsi rolling hash untuk mencari nilai hash ke-2 sampai ke-n:

keterangan:

c= nilai ascii karakter b= basis (bilangan prima) k= nilai k-gram

Jika sudah melakukan proses dari rolling hash, maka program akan menampilkan sebuah array nilai hash (dalam bentuk angka).

Contoh:

c1*b(k-1) + c2*b(k-2) + … + c(k-1)*b + ck

H(c2…ck+1) = (H(c1..ck) – c1 * b(k-1) * b + c (k+1)

- Teks : namasayaafni - k-gram : 4

- array : nama amas masa asay saya ayaa yaaf aafn afni

- bentuk ascii : 159443 143478 158178 144210 166230 144912 173957 142076 142764

(10)

4. Diagram alir menentukan kemiripan

Langkah terakhir dalam membuat aplikasi untuk membandingkan kemiripan dua buah teks adalah menentukan kemiripan. Hal yang harus dilakukan adalah menentukan nilai window. Window adalah rata-rata jumlah kata yang ada pada setiap kalimat. Nilai window digunakan untuk proses selanjutnya, yaitu fingerprint. Di dalam aplikasi ini menggunakan window 4. Kemudian mengelompokkan nilai hash ke dalam ukuran window yang telah ditentukan.

Pengelompokkan ini bertujuan untuk memudahkan fingerprint melakukan proses pemilihan nilai hash terkecil. Setelah melakukan proses pengelompokkan, maka selanjutnya adalah melakukan minimum hash yang ada pada setiap window.

Memilih salah satu dari nilai hash yang sama. Apabila nilai hash terkecil pada window selanjutnya sama dengan nilai hash terkecil pada window sebelumnya maka nilai hash-nya tidak perlu dituliskan lagi. Setelah proses ini berhasil maka akan langsung dilanjutkan kepada proses fingerprint. Menghitung jumlah fingerprint yang ada pada setiap teks. Menghitung jumlah fingerprint yang sama dalam teks 1 dan teks 2 (NS). Menjumlahkan total fingerprint teks 1 dengan total fingerprint teks 2 (NA+NB). Membagi NS dengan (NA+NB) kemudian dikurangi dengan NS.

Setelah mendapatkan nilai dari hasil perhitungan kemiripan, maka hasil tersebut dikalikan dengan 100, untuk mendapatkan nilai persen. Kemudian program akan menampilkan sebuah nilai persentase kemiripan.

Proses menghitung atau menentukan nilai kemiripan dapat dilihat pada diagram alir menentukan kemiripan. Lihat Gambar 3.5.

NS (NA+NB) – NS

(11)

Start

Input:

-teks 1 -teks 2

Apakah Nilai hash ada yang sama?

Menentukan nilai k-gram

-Pembersihan teks (spasi, tanda baca) -Menjadikan huruf kecil

Rolling hash

ya

tidak

Pembentukkan rangkaian gram sesuai dengan nilai k-gram yang sudah di tentukan

Mengelompokkan nilai hash ke dalam ukuran window yang telah ditentukan

Memilih minimum hash dari setiap window

Memilih salah satu dari nilai hash yang sama

Membuat fingerprint

Menghitung jumlah fingerprint yang ada pada setiap teks (NA dan NB)

Menghitung jumlah fingerprint yang sama dalam teks 1 dan 2 (NS)

Menjumlahkan fingerprint teks 1 dengan fingerprint teks 2 (NA+NB)

Perhitungan kemiripan

Mengalikan hasil dari pembagian dengan 100

Output:

Persentase kemiripan

Stop Menentukan nilai window

(12)

Gambar 3.5 diagram alir persentase kemiripan

3.3 Desain Antarmuka (Interface)

Desain aplikasi berbasis web untuk membandingkan kemiripan dua buah teks dibuat seperti ini dengan tujuan memudahkan pengguna dalam pemakaian.

Pengguna hanya tinggal memasukkan dua buah teks pada kotak teks 1 dan kotak teks 2. Kemudian program akan menampilkan nilai gram dan window secara otomatis.

Setelah itu dilakukan proses pengecekkan, maka program akan menampilkan hasil dari kemiripan kedua buah teks tersebut.

Desain aplikasi memasukkan teks dapat dilihat pada Gambar 3.6 sedangkan desain aplikasi yang memunculkan nilai kemiripan dapat dilihat pada Gambar 3.7.

Gambar 3.6 desain aplikasi memasukkan teks (input text) APLIKASI BERBASIS WEB UNTUK MEMBANDINGKAN

KEMIRIPAN DUA BUAH TEKS ALGORITMA WINNOWING Afni Fathia Asih - 41511010033

Teks 1 :

Teks 2 :

Gram : Window :

CEK

(13)

Gambar 3.7 desain aplikasi hasil kemiripan APLIKASI BERBASIS WEB UNTUK MEMBANDINGKAN

KEMIRIPAN DUA BUAH TEKS ALGORITMA WINNOWING Afni Fathia Asih - 41511010033

Teks 1 :

Teks 2 :

Gram : Window :

CEK

Kesamaan %

(14)

Gambar

Tabel 3.1 Tabel perbandingan algoritma Winnowing dengan similar_text()
Diagram  alir  algoritma  dimulai  dengan  pengguna  memasukkan  teks  1  dan  teks  2  pada  kotak  yang  telah  disediakan
Gambar 3.1 diagram alir algoritma Winnowing
Gambar 3.2 diagram alir menentukan nilai k-gram
+5

Referensi

Dokumen terkait

Ketika karyawan merasakan kepuasan kerja terhadap pekerjaan yang dilakukan, maka karyawan akan bahagia serta memiliki suasana hati yang positif yang mengarahkan

Dalam kenyataan nya di Kota Padang ruang terbuka hijau masih belum tertata rapi dan tidak sesuai dengan standar yang di tetapkan sesuai Undang-undang, masih terjadi

Jika saudara merasa ada yang tidak berkenan atau merasa rekan kerja telah melakukan kesalahan pada diri Anda, apa reaksi saudara.. Jawab: Ya mungkin saya marah, tapi coba

• Merupakan pengurangan dari jumlah data (n) dengan frekuensi setiap kelas dimulai dari kelas terendah dan jumlah akhirnya adalah nol.. Buatlah distribusi frekuensi dari data

Babadoko (2016) melakukan penelitian terhadap pasien normal menunjukkan bahwa nilai rerata hitung hema- tokrit dan hitung jumlah leukosit menggunakan metode manual tidak

Menawi perangan inti ukara kala wau dipuntingali kanthi premati, badhe dipunmangertosi bilih sejatosipun wonten perangan inti tartamtu ingkang gadhah peran langkung

Bahan bantu olah adalah bahan kimia karet yang ditambahkan pada kompon untuk meningkatkan aktifitas pengolahan kompon tersebut, tanpa atau hanya sedikit

6ementara %a arb#nat untuk membebaskan pir#'en (depir#'enasi) dan disin9ektan. 6ementara %a arb#nat 0, ber9un'si untuk menetralkan sisa asam akibat l encer. &r#sedur