3 2 AP Implementasi Algoritma Pencocokan String-libre

February 1, 2018 | Author: Toha Mukarrom | Category: N/A
Share Embed Donate


Short Description

Algoritma KMP...

Description

Implementasi Algoritma Pencocokan String pada Aplikasi Pengarsipan Berbasis Web Ana Ervana 1, Asri Pertiwi 2 1

Mahasiswa Jurusan Teknik Informatika; 2Dosen Jurusan Teknik Informatika STMIK Inti Indonesia, Jakarta [email protected], [email protected]

Abstraction In daily activities, data searching done as a away to get information efficiently, such as phone book searching, dictionary searching or location searching within memory storage. Some searching algorithm was created to simplify user in searching some big data. One of searching algorithm is Knuth-Morris-Pratt or KMP. This algorithm is string matching algorithm which do a comparison of characters of text and characters of the pattern from left to right. The idea of this algorithm is how to utilize the known pattern characters in the text until a mismatch to do the shifting. This paper is written to implement KMP Algorithm to the Archieve Web Application. Kata Kunci : String Matching, Archive, Archiving System

1. PENDAHULUAN

1.1.

Latar Belakang Algoritma Pencocokan String merupakan algoritma yang digunakan untuk melakukan pencarian sebuah string yang terdiri dari beberapa karakter (yang biasa disebut pattern) dalam sejumlah besar text. Algoritma Pencocokan String yang diterapkan pada aplikasi pengarsipan melakukan pencarian data dengan cara menelusuri seluruh kata yang terdapat pada dokumen. Pengarsipan merupakan salah satu kegiatan administrasi perkantoran yang menunjang kegiatan perkantoran terutama dalam penyimpanan catatan dan data kelembagaan maupun organisasi. Kearsipan meliputi beberapa proses yang dimulai dari

penciptaan, penerimaan, pengumpulan, pengaturan, pengendalian, pemeliharaan dan perawatan serta penyimpanan warkat menurut sistem tertentu. Ketika arsip dibutuhkan dapat ditemukan dengan cepat dan tepat. Bila arsip-arsip tersebut tidak bernilai guna lagi, maka arsip harus dimusnahkan. Arsip mempunyai peranan yang sangat penting dalam suatu lembaga maupun organisasi. Arsip digunakan untuk menunjang kinerja karyawan dalam memberikan informasi secara teliti, cepat, dan juga tepat kepada pihak manajemen. Dengan demikian, akan mengoptimalkan pihak manajemen dalam pengambilan keputusan secara cepat. Meskipun arsip elektonis telah hadir, namun sedikit sekali

Volume III – Nomor 2, November 2012 Journal Informatika, STMIK Inti Indonesia. ISSN:2085-8566

1

lembaga atau organisasi yang menggunakan manajemen pengarsipan model ini. Pengarsipan secara elektronis memberikan banyak keuntungan dibandingkan dengan pengarsipan secara pencatatan dokumentasi, diantaranya : kecepatan dalam pencarian arsip, kemudahan dalam berbagi dokumen, kemudahan dalam recovery data, penghematan tempat dalam penyimpanan arsip, dan penghematan dalam tenaga kerja.

1.2.

Identifikasi Masalah Masalah yang timbul pada tempat dimana dilakukan studi kasus apabila menggunakan pengarsipan secara manual yaitu sebagai berikut : a. Departemen mengalami kesulitan dalam melakukan pencarian arsip, dikarenakan penomoran arsip tidak disimpan pada sebuah database terpusat b. Melakukan pekerjaan yang berulang-ulang, pegawai harus menyalin status dokumen yang masuk dan yang keluar ke dalam beberapa buku besar (log-book). c. Memerlukan tempat yang besar dan banyak untuk penyimpanan dokumen tertulis. Jika dokumen semakin hari semakin bertambah tentunya ruang penyimpanan untuk dokumen arsip akan bertambah. d. Kesulitan dalam recovery data. Sebelum melakukan recovery, pegawai arsip harus melakukan pencarian file terlebih dahulu, baru kemudian membuat salinanannya.

bantuan browser. Aplikasi ini dibuat dengan menggunakan bahasa PHP dan data disimpan dalam database MySQL. Didalam aplikasi memiliki beberapa fitur seperti berikut : 1. Pembuatan Surat Pada fitur ini, user dapat melakukan penulisan surat secara langsung. 2. Pencarian (Searching) Fitur ini merupakan fitur dengan menggunakan algoritma Pencocokan String yang memudahkan user dalam melakukan pencarian arsip. 3. Upload file Fitur ini merupakan fitur yang digunakan user untuk meng-upload file lampiran dari surat yang telah dibuat. 4. Authorization Pada fitur ini hanya user yang memiliki user ID yang dapat mengakses arsip. 5. User privilege Fitur ini digunakan untuk membatasi hak akses dari user. Nantinya terdiri dari beberapa user privilege, user privilege untuk admin, admin arsip, dan departemen. 6. View file

1.3.

Ruang Lingkup Aplikasi pengarsipan berbasis website yang menggunakan algoritma Pencocokan String ini dijalankan pada komputer dengan Volume III – Nomor 2, November 2012 Journal Informatika, STMIK Inti Indonesia. ISSN:2085-8566

Fitur ini digunakan untuk melihat file yang hasil keluarannya berupa file pdf. 7. Download Fitur ini terletak pada detail surat, dimana file yang di download merupakan lampiran file dari surat yang ada.

2

2. LANDASAN TEORI Algoritma merupakan suatu alur pikiran dalam menyelesaikan suatu pekerjaan, yang dituangkan dalam bentuk tertulis yang dapat dimengerti oleh orang lain. Suatu pekerjaan dapat diselesaikan dengan berbagai macam cara, akan tetapi harus tersusun secara logis agar pekerjaan dapat diselesaikan dengan benar (Sjukani, 2010, hal.1). 2.1. Algoritma Pencocokan String Algoritma pencocokan string atau yang disebut juga dengan String matching atau adalah suatu metode yang digunakan untuk menemukan suatu keakuratan atau hasil dari satu atau beberapa pola teks yang diberikan. Pencocokan string merupakan pokok bahasan yang penting dalam ilmu komputer karena teks merupakan adalah bentuk utama dari pertukaran informasi antar manusia, misalnya pada literatur, karya ilmiah, halaman web dan sebagainya (Hulbert-Helger, 2007). Pencarian string juga dapat digunakan untuk mencari pola bit dalam sejumlah besar file binary. Dalam algoritma pencocokan string, teks diasumsikan berada di dalam memori, sehingga bila kita mencari string di dalam sebuah arsip, maka semua isi arsip perlu

dibaca terlebih dahulu kemudian disimpan di dalam memori. Pencocokan string fokus pada pencarian satu, atau lebih umum, semua kehadiran sebuah kata (lebih umum disebut pattern) dalam sebuah teks. Semua algoritma yang akan dibahas mengeluarkan semua kehadiran pola dalam teks. Pola dinotasikan sebagai x = x[0..m-1]; m adalah panjangnya.

2.2. Algoritma Pencocokan String KnuthMorris-Pratt (KMP) Algoritma Knuth-Morris-Pratt merupakan salah satu algoritma pencarian string, yang dikembangkan secara terpisah oleh Donald E. Knuth pada tahun 1967 dan James H. Morris bersama Vaughan R. Pratt pada tahun 1966, kemudian dipublikasikan secara bersamaan pada tahun 1977. Algoritma Knuth-Morris-Pratt melakukan perbandingan karakter teks dan karakter pada pola dari kiri ke kanan. Ide dari algoritma ini adalah bagaimana memanfaatkan karakter-karakter pola yang sudah diketahui ada di dalam teks sampai terjadinya ketidakcocokkan untuk melakukan pergeseran.

Gambar 2.1 Pergeseran dalam Algoritma Pencocokan String Sumber: Christian Charas & Thierry Lecroq, Handbook of Exact String-Matching Algorithms

Misalkan, string teks y pada gambar 2.1, mempunyai panjang n, indeksnya

dinyatakan dengan i, serta string pola x, mempunyai panjang m, indeknya dinyatakan dengan j. Jika terjadi ketidakcocokan di x[j]

Volume III – Nomor 2, November 2012 Journal Informatika, STMIK Inti Indonesia. ISSN:2085-8566

3

= a dan y[i+j] = b, maka telah diketahui terdapat karakter-karakter pola yang ada pada teks yaitu x[0..j-1] = y[i..j+j-1] = u. karakter-karakter ini dapat dimanfaatkan sehingga dapat dimungkinkan melakukan pergeseran yang lebih jauh. Secara sistematis, langkah-langkah yang dilakukan algoritma Knuth-Morris-Pratt pada saat mencocokkan string: 1. Algoritma Knuth-Morris-Pratt mulai mencocokkan pattern pada awal teks. 2. Dari kiri ke kanan, algoritma ini akan mencocokkan karakter per karakter pattern dengan karakter di teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi: a. Karakter di pattern dan di teks yang dibandingkan tidak cocok (mismatch). b. Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan penemuan di posisi ini. 3. Algoritma kemudian menggeser pattern berdasarkan tabel, lalu mengulangi langkah 2 sampai pattern berada di ujung teks

Gambar 2.2 Pseudocode KMP pada Fase Pra Pencarian

Gambar 2.3 Pseudocode KMP pada Fase Pencarian 2.3 Kompleksitas algoritma Algoritma KMP menemukan semua kemunculan dari pattern dengan panjang n di dalam teks dengan panjang m dengan kompleksitas waktu O(m+n). Algoritma ini hanya membutuhkan O(n) ruang dari memory internal jika teks dibaca dari file eksternal. Semua besaran O tersebut tidak tergantung pada besarnya ruang alphabet. Sebagai pembanding, Algoritma Running Karp-Rabin juga dapat menangani masalah string maching, dan merupakan pengembangan dari greedy. Jika [P] merupakan panjang salah satu substring pada pattern string [P], maka nilai hash untuk setiap substring yang panjangnya [P] pada text string akan dibandingkan dengan nilai hash untuk substring dari pattern P tersebut. Jika kedua nilai hash tersebut identic, maka substring dari pattern P dan substring dari text string tersebut akan

Volume III – Nomor 2, November 2012 Journal Informatika, STMIK Inti Indonesia. ISSN:2085-8566

4

dibandingkan per elemen. Kompleksitas kasus terburuk penggunaan algoritma ini yaitu O(n3) dengan n merupakan panjang string input dengan hasil hamper linier walaupun kasus ini jarang terjadi. Algoritma KMP mengalami inovasi sedikit dari bruto-force, memiliki kompleksitas pembanding string yang lebih sederhana dan ringkas sehingga proses yang dilaluipun lebih sedikit. Algoritma ini lebih unggul untuk string-matching antara 2 buah nilai hash karena kompleksitas pembandingnya yang lebih sederhana. 2.3 Arsip Amsyah (2005), mengatakan “arsip adalah setiap catatan (record/warkat) yang tertulis, tercetak, atau gambar, yang mempunyai arti dan tujuan tertentu sebagai bahan komunikasi dan informasi, yang terekam pada kertas (kartu, formulir), kertas film (slide, film-strip, mikro-film), media komputer (pita tape, piringan, rekaman, disket), kertas photocopy, dan lain-lain”. Ada beberapa siklus hidup dari arsip yang dimulai dari penciptaan arsip hingga kepada disposis arsip tersebut. 1. Penciptaan Merupakan tahap pertama, yang menjadi tahapan dasar untuk mengontrol perkembangan dari dokumen dan menetapkan aturan main bagaimana sebuah dokumen akan dikelola sesuai dengan nilai manfaatnya bagi organisasi atau perusahaan. 2. Pemanfaatan Tahap yang kedua, adalah pemanfaatan dari sebuah dokumen. Tahapan ini merupakan tahap implementasi dari aturan maen yang telah disusun pada

tahap sebelumnya, yaitu bagaimana mengefisiensikan proses retrievel maupun pendistribusian arsip kepada pihak yang berkepentingan. 3. Penyimpanan Tahap ketiga adalah penyimpanan, Bagi dokumen aktif, dengan frekuensi dengan penggunaan lebih dari 12 kali dalam setahun perlu perhatian dalam pemanfaatannya. Untuk meningkatkan efisiensi dan kenyamanan bagi user, dokumen disimpan pada tempat yang nyaman dan mudah di akses oleh semua user. 4. Retrievel Merupakan tahapan ke empat, yang menitik beratkan kepada lokasi dokumen maupun arsip yang dimaksud dan melacaknya apabila tidak kembali dalam waktu tertentu. 5. Disposisi Merupakan tahapan yang terakhir, berupa tahapan pemeliharaan dokumen yang dianggap penting ke lokasi yang tepat untuk penyimpanan, termasuk pemusnahan dokumen bila dirasa memenuhi asas cukup untuk dimusnahkan. 3.

ANALISA DAN PERANCANGAN SISTEM

3.1. Analisa Usulan Aplikasi yang diusulkan merupakan aplikasi berbasis web, yang dibuat menggunakan bahasa pemrograman script PHP, dimana user dapat mengakses aplikasi tersebut kapanpun dan melakukan pekerjaannya tanpa ketergantungan dengan orang lain.

Volume III – Nomor 2, November 2012 Journal Informatika, STMIK Inti Indonesia. ISSN:2085-8566

5

Aplikasi ini memiliki database yang digunakan sebagai penyimpanan data, yang terdiri dari surat-surat dan hal-hal yang berkaitan dengan transaksi arsip, yang akan

memudahkan user dalam melakuka pengaksesan data. Database yang digunakan yaitu MySQL.

Gambar 3.1 Alur Sistem yang Diusulkan

3.2. Perancangan Penomoran Penomoran pada aplikasi pengarsipan berbasis web, nomor surat dibuat berdasarkan no urut pembuatan surat, level_id pada pada tabel level, bulan pembuatan surat, dan tahun pembuatan yang dibatasi dengan garis miring. Adapun format dari penomoran surat tersebut, yaitu : 000/XXXXX/XX/0000

A

B

C

D

pengirim surat B = Pengirim surat berdasarkan level C = Bulan pembuatan surat yang berbentuk angka romawi D = Tahun pembuatan surat 3.3 Pemodelan 3.3.1 Use Case Diagram Adapun use case diagram dari apalikasi pengarsipan berbasis web yaitu, seperti pada gambar dibawah ini.

Keterangan : A = No urut pembuatan surat berdasarkan Volume III – Nomor 2, November 2012 Journal Informatika, STMIK Inti Indonesia. ISSN:2085-8566

6

Gambar 3.2

Use case Diagram

3.3.2 Activity Diagram Gambar 3.4 Activity Diagram untuk Upload File

Gambar 3.3 Activity Diagram untuk Create File

Volume III – Nomor 2, November 2012 Journal Informatika, STMIK Inti Indonesia. ISSN:2085-8566

7

Gambar 3.5 Activity Diagram untuk View File

Gambar 3.6 Activity Diagram untuk Pemusnahan File

3.3.5 Sequence Diagram Sequence diagram menjabarkan mengenai behavior sebuah scenario tunggal. Diagram tersebut menunjukkan sejumlah object contoh dan pesan – pesan yang melewati objek-objek didalam use case.

Volume III – Nomor 2, November 2012 Journal Informatika, STMIK Inti Indonesia. ISSN:2085-8566

8

Gambar 3.7 Sequence Diagram Department

Gambar 3.8 Sequence Diagram Admin

Volume III – Nomor 2, November 2012 Journal Informatika, STMIK Inti Indonesia. ISSN:2085-8566

9

Gambar 3.9 Class Diagram

3.3.7 Perancangan Aplikasi

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.

function KMP($pattern,$tex){ $pattern = strtolower($pattern); $tex = strtolower($tex); $result = array(); $search = separate($pattern); $patternWide = count($search); $text = separate ($tex); $textWide = count($text); $jump = preKMP($search); $i = $j = 0; $num=0; while($j-1 && $search[$i]!=$text[$j]){ $i = $jump[$i];} $i++; $j++; if($i>=$patternWide){ $i = $jump[$i]; $result[$num++]=$j-$patternWide;} } return $result;}

Volume III – Nomor 2, November 2012 Journal Informatika, STMIK Inti Indonesia. ISSN:2085-8566

10

Gambar 3.10 Perancangan Fungsi KMP Pada gambar 3.10 diatas, merupakan perancangan kode untuk fungsi KMP. Variabel Pattern merupakan text yang akan dicari dan 11a nada11 tex, yaitu text dari database yang ada. Kode pada baris kedua dan ketiga digunakan untuk mengubah semua huruf kedalam huruf kecil, guna untuk menghindari adanya sensitive pada huruf. Kode pada baris kelima dan keenam merupakan Pemrosesan awal karakter pattern dan menghitung lebar pattern. Kode untuk baris ketujuh dan kedelapan merupakan pemrosesan awal untuk karakter text, kemudian menghitung lebar text itu sendiri. Kode pada baris kesembilan

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

berfungsi untuk menentuan lebar lompatan jika karakter tidak cocok, sesuai dengan konsep yang ada pada algoritma KMP. Kode pada baris kesepuluh hingga baris akhir merupakan proses pencocokan utama, dimana $i merupakan variable untuk lompatan, dan $j merupakan variable yang mengidentifikasikan lebar text. Kode tersebut menjelaskan, jika lompatan bernilai 0 keatas 11a nada karakter yang tidak cocok maka akan melakukan lompatan sebanyak karakter yang ditentukan di preKMP. Jika pattern cocok dengan potongan text, maka hasil akan ditampilkan.

function preKMP($search){ $patternWide = count($search); $i = 0; $j = $jump[0] = -1; while($i-1 && $search[$i]!=$search[$j]){ $j = $jump[$j];} $i++; $j++; if($search[$i]==$search[$j]){ $jump[$i]=$jump[$j];}} return $jump;} Gambar 3.11 Perancangan Fungsi Pre KMP

Volume III – Nomor 2, November 2012 Journal Informatika, STMIK Inti Indonesia. ISSN:2085-8566

11

Gambar 4.2 Halaman Input Surat

4. TESTING DAN IMPLEMENTASI 4.1

c. Halaman Keluaran Pencarian Kata

Tampilan Aplikasi

Berikut ini akan ditampilkan beberapa halaman penting dari aplikasi pengarsipan yang dibuat, diantaranya adalah :

\

a. Halaman Utama

Gambar 4.3 Halaman Keluaran

Gambar 4.1 Halaman Utama

b. Halaman Input Surat

Volume III – Nomor 2, November 2012 Journal Informatika, STMIK Inti Indonesia. ISSN:2085-8566

12

Brawijaya.

5. KESIMPULAN DAN SARAN Algoritma KMP telah berhasil di implementasikan pada aplikasi pengarsipan berbasis web dengan fitur utama searching. Berdasarkan uji coba aplikasi, algoritma KMP dapat membantu user melakukan pencarian arsip dengan mudah. Untuk pengembangannya dimasa depan dapat dilakukan penelitian mengenai aplikasi yang sama dengan penerapan pada mobile.

Amsyah, Zulkifli. 2005. Manajemen Kearsipan. Jakarta : Gramedia Pustaka Utama. Sukoco, Badri Munir. 2007. Manajemen Administrasi Perkantoran Modern. Jakarta : Erlangga. Suparjati, Tuginem, Rahayu,Pudji. 2000. Tata Usaha dan Kearsipan. Yogyakarta : Kanisius.

6. DAFTAR PUSTAKA Sjukani, Moh. 2010. Algoritma (Algoritma & Struktur data 1) dengan c, c+ + , dan Java, Edisi 6. Jakarta : Mitrawacanamedia. Purwanto, Eko Budi. 2008. Perancangan & Analisis Algoritma. Yogyakarta : Graha Ilmu. Knuth, Donald E.Morris, James H.Pratt, Vaughan R.1977. fast Pattern Matching in Strings. SIAM Journal Of Computing Vol 6 No.2. Utomo, Darmawan, Harjo, Erick Wijaya. Handoko, 2008. Perbandingan Algoritma String Searching Bruto Force, Knuth Morris Pratt, Boyer More, dan Karb Kabin Pada Teks Al-kitab Bahasa Indonesia. Techne jurnal ilmiah elektroteknika vol.7 No.1 hal 1-13. Universitas Kristen Satya Wacana. Nugroho, Eko.2011. Perancangan Sistem Deteksi Plagiarisme Dokumen Teks Dengan menggunakan Algoritma Karb-Kabin. Skripsi. Universitas

Kurweni, ukar. 2006. Student Guide Series Pengenalan Komputer. Jakarta : Elex Media Komputindo. Maryono. Y, Istiana, B.Patmi. Teknologi Informasi Komunikasi 1. Yudhistira.

2007. dan

Connolly, Thomas.M, Begg, Carolyn.E. 2004. Database Systems: A Practical Approach to Design, Implementation and Management (4th Edition). London : Pearson education. Indrajani, 2009. Sistem Basis Data dalam Paket Five in One. Jakarta : Elex Media Komputindo. Nogroho, Bunafit. 2005. Relasional dengan Yogyakarta : Andi.

Database MySQL.

Peranginangin, Kasiman. 2006. Aplikasi Web dengan PHP dan MySQL. Yogyakarta : Andi. Munawar. 2005. Pemodelan Visual dengan UML. Yogyakarta : Graha Ilmu.

Volume III – Nomor 2, November 2012 Journal Informatika, STMIK Inti Indonesia. ISSN:2085-8566

13

Fowler, Martin. 2005. UML Distilled Edisi 3, Panduan Singkat Bahasa pemodelan Objek Standar. Yogyakarta : Andi.

Volume III – Nomor 2, November 2012 Journal Informatika, STMIK Inti Indonesia. ISSN:2085-8566

14

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF