• Tidak ada hasil yang ditemukan

Pencocokan Pola String Pada Berkas Teks Termampatkan

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pencocokan Pola String Pada Berkas Teks Termampatkan"

Copied!
56
0
0

Teks penuh

(1)

MELLING VPS. Pencocokan Pola Sfring pa& Berkas Teks Temampatkan (String Pattern Matching on Compressed Text). Dib'ib'ig oleh JULIO ADISANTOSO dan UTAH WIJAYANTI.

Pencocokan pola stringmerupakan bagian tqxnting dari pemrosesan teks. Pemampatan data dibuat un& menghernat media payimpanan

dan

biaya dalam komunikasi data. Telah banyak dilakukan penelitian terhadap berbagai metode pemampatan dan metode pencwdan pola agar operasi pencocokan pola langsung pada berkas hasil pemampatan dapat dilakukan.

Algoritme pencocokan pola stringpadabdcis tidak dimampatkan dapat digunakan pada berkas hasil pemampatan derigan menambah proses awal terhadap kueri yang akan dicari. Proses awal ini kmpa pengambilan kode kueri dari head berkas hasil pemampatan. Kode kueri dapat berupa infmasi bit atau byte.

Pada penelitian ini dilakukan pencccokan pola pada berkas teks tidak dimampatkan dan pada berkas hasil pemampatan. Algoritme pencocokan pola string yang digunakan adalah Knuth Morris Pratt (KhP)

sedangkan algoritme pemampatannya adalah Huffban bif dan &£ban byte oriented.

Hasil percobaan yang dipexoleh adalah waktu pencocokan pola pa& berkas hasil pemampatan Huffban byte leb'i cepat dibanding dmgan waktu pencodcan pada berkas yang tidak dimampatkan dengan persenmi keakuratan hasil pencocokan unttk semua kueri percobaan sebesar 1, sedangkan waktu

pencocokan pola pada berkas hasil panampatan Huthan bit lebih lama &banding dengan waktu pencocokan pola pada berkas tidak dimampatkan dan pmmtasi keakuratan antara 0

sam@

1.
(2)

G/ro/.i

2002

003-

PENCOCOKAN

POLA

STRING

PADA

BERKAS

TEKS

TERMAMPATKAN

JURUSAN

ILMU

KOMPUTER

FAKULTAS MATEMATIKA DAN IIMX

PENGETAEUAN

ALAbf

INSTlTUT

PERTANIAN BOGOR

BOGOR

(3)

G/ro/.i

2002

003-

PENCOCOKAN

POLA

STRING

PADA

BERKAS

TEKS

TERMAMPATKAN

JURUSAN

ILMU

KOMPUTER

FAKULTAS MATEMATIKA DAN IIMX

PENGETAEUAN

ALAbf

INSTlTUT

PERTANIAN BOGOR

BOGOR

(4)

MELLING VPS. Pencocokan Pola Sfring pa& Berkas Teks Temampatkan (String Pattern Matching on Compressed Text). Dib'ib'ig oleh JULIO ADISANTOSO dan UTAH WIJAYANTI.

Pencocokan pola stringmerupakan bagian tqxnting dari pemrosesan teks. Pemampatan data dibuat un& menghernat media payimpanan

dan

biaya dalam komunikasi data. Telah banyak dilakukan penelitian terhadap berbagai metode pemampatan dan metode pencwdan pola agar operasi pencocokan pola langsung pada berkas hasil pemampatan dapat dilakukan.

Algoritme pencocokan pola stringpadabdcis tidak dimampatkan dapat digunakan pada berkas hasil pemampatan derigan menambah proses awal terhadap kueri yang akan dicari. Proses awal ini kmpa pengambilan kode kueri dari head berkas hasil pemampatan. Kode kueri dapat berupa infmasi bit atau byte.

Pada penelitian ini dilakukan pencccokan pola pada berkas teks tidak dimampatkan dan pada berkas hasil pemampatan. Algoritme pencocokan pola string yang digunakan adalah Knuth Morris Pratt (KhP)

sedangkan algoritme pemampatannya adalah Huffban bif dan &£ban byte oriented.

Hasil percobaan yang dipexoleh adalah waktu pencocokan pola pa& berkas hasil pemampatan Huffban byte leb'i cepat dibanding dmgan waktu pencodcan pada berkas yang tidak dimampatkan dengan persenmi keakuratan hasil pencocokan unttk semua kueri percobaan sebesar 1, sedangkan waktu

pencocokan pola pada berkas hasil panampatan Huthan bit lebih lama &banding dengan waktu pencocokan pola pada berkas tidak dimampatkan dan pmmtasi keakuratan antara 0

sam@

1.
(5)

PENCOCOKAN POLA

STRISG

PADA BERKAS TEKS TERMAMPATKAN

MELLING VP SITUMORANG

Skripsi

sebagai salah satu s p r a t untuk memperoleh gelar Sarjana Komputer

pada

Program Studi Ilmu Komputer

JURUSAN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

(6)

Judul : Pe~icocoka~i Pola String pada Berkas Teks Termampatkan Natiia : Melliny VP S i t ~ ~ n i o r a ~ i y

(7)

Penulis lahir di Palipi - Pulau Samosir pa& tanggal 11 Februari 1979 sebagai anak pertama dari enam bersaudara, anak dari pasangan Mangasi Situmorang dan Eli%& Sitanggang.

- , Tahun 1997 penulis lulus dari SMUN I Pangururan dan pada tahun yang sama diterima di Jurusan

.

Ilmu Komputa, Fakultas Matematika dan Ilmu Pengetahuan Alam IPB melalui jalur USMI.

(8)

PRAKATA

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Kuasa atas segala berkat dan karunia-

Nya sehimgga karya ilmiah ini dapat diselesaikan. Penelitian ini d i i a i pada a w l bulan Oktober 2001 den@ tema "pencccokan pola string pada berkas teks termampatkan".

Terima kasii penulis ucapkan kepada berbagai pihak yang telah mendukung dan membantu penyelesaian karya ilmiah ini, yang m a m a kepada Ayah, Ibu, Oppmg, semua adik-adik dan segenap keluarga atas doa, dorongan, motivasi dan semangat. Bapak Ir. Julio Adisantoso, M.Komp. dan Ibu Utari wjayanti, S.Komp. selaku pembiibimg slaipsi, Mr. Takuya Kida dari Universitas Kyushu

-

Jepang atas tulisan dan penjelasan Pattern Matching Machine serta kepada Bapak Ir. M Syamsun, MSc. atas bi~~~bingan

dan

penjelasan automaton. Disamping itu penulis juga magucapkan terimakasii kepada rekan-rekan ilkomen'34 (Nyoman, Adi, Apit, Ridho, Ines), Gibbon, Dedi

dan

Ivan atas bahasan

seminamya, rekan-rekan alumni SMUN I

Pangururan

(Poi, Manris, Evi, Marisi, Lasiama, Hendra), rekan-rekan C-2 (Iwan, Luhut, Mario) dan khususnya kepada D a i s Barus atas smua dukungan, pagertian, motivasi dan kasii sayanpya.

Penulis menyadari bahwd karya ilmiah ini masih memiliki banyak kekurangan, tetapi meskipun dernikian penulis berharap semoga tulisan ini dapat bermanfaat.

Bogor, Mei 2002

(9)

...

DAFTAR TABEL

DAFTAR LAMPIRAN

...

PENDAHULUAN

Latar Belakang

...

Tujuan

...

TINJAUAN PUSTAKA

Pemampatan Data

...

Kode Huffman Bit Oriented

...

Kode Huffman Byte Oriented

...

Algoritme Pencocokan Pola Shing

...

Algoritme Brute Force

...

Algoritme Knuth Morris Pratt

...

Deterministic Finite State Acceptor

...

KMP Automaton

...

METODE PENELITIAN

Bahan Percobaan

...

Pembuatan Program

...

...

Percobaan

13ASIL DAN PEMBAHASAN

Pemampatan Berkas

...

Pencocokan Pola String ... Keakuratan Pencccokan Pola String

...

Wakhl Pencccokan Pola String

...

PENUTUP

...

Kesimpdan

...

Saran

...

DAFTAR PUSTAKA

(10)

1

.

Nilai ASCII. biner dan frekuensi kemunculan karakter teks T

...

2

2

.

~ c d 6 bit karakter teks T berdasarh oho on ~u5inan bit

...

3

3

.

F'rm transisi state kueri P

...

4

4

.

Ukuran dan rasio pemampatan

...

5

5

.

Rataan wakhl pencocokan pola kueri jenis vokal(10 ms)

...

7

6

.

Rataan waktu penmkan pola kueri jenis konsonan (10

ms)

...

7
(11)

DAFIAR GAMBAR

Halaman

1

.

Pohon HuBnan bit teks T

...

2

...

...

2

.

Pohon W a n byte tmtuk contoh kata wrId .:: 2 3

.

Automaton kueri P ... 4 4

.

Pohon Huftinan bit dengan KMP automaton

...

6

5

.

Alut p e n m k a n pola berkas hasil p a m p a t a n HUkkan bit dan byte

...

6

...

6

.

Gra& rataan waktu pencocokan pola kueri jenis vokal 7 7

.

Graiik rataan waktu pencmakan pola kueri jenis konsonan

...

7

...

(12)

1

.

Daflar kueri

...

...

2

.

Jumlah asli dan basil pencocokan pola kueri jenis vokal

...

3

.

Jumlah asli dan h a i l pencocokan pola kueri jenis konsonan

4

.

Jumlah asli dan hasil pencocokan pola kueri jenis campuran

...

...

5

.

TS

untuk jenis karakter vokal (10 ms)

6

.

TS untuk jenis karakter konsonan (10 ms)

...

7

.

TS untuk jenis karakter campuran (10 ms)

...

8

.

TbifS untuk jenis karakter vokal (10 ms)

...

9

.

TbifS untuk jenis karakter konsonan (10 ms)

...

10

.

TbitS untuk jenis karakter campuran (10 ms)

...

...

11

.

TbyteS untuk jenis karakter vokal (10 ms)

12

.

TbyteS untuk jenis karakter koasonan (10 ms)

...

...

(13)

Latar Belakaug

Pencocokan pola string (string pattern matching) merupakan salah satu bagian terpenting dari pemrosesan teks (Shibata et al., 1996). Operasi yang dilakukan adalah menyesuaikan istilah dalam kueri dengan istilah yang terdapat &lam suatu dokumen.

Pemampatan dokumen pada dasarnya dibuat untuk menghemat media penyimpanan dan juga biaya komunikasi (Manber, 1997). Pemampatan suatu dokumen seperti berkas teks dapat dilakukan dengan berbagai algoribne seperti H f f i a n , Lempel Ziv Welch, Byte Pair E n d m g dan lainnya.

Perkembangan teknologi media penyimpanan memberikan kemudahan bagi pemakai komputer untuk mendapatkan ukuran media penyimpanan yang besar dengan kualitas yang bagus serta harga yang relatif menurun dari

tahun ke tahun. Tetapi dokumen yang disimpan

&lam media penyimpanan akan selalu bxtambah.

Umumnya perusaham-perusaham selalu membuclhrp dokumen

secara

berkala clan &lam format yang telah dimampatkan. Jiia pa& suatu saat dibutuhkan informasi yang terdapat &lam dokumen yang telah diiampatkan, hiasanya ddcumen tersebut terlebii dahulu didecompress sebelum dioperasikan. Pendekatan ini tidak masalah bagi komputer yang memiliki sumber daya yang tinggi, tetapi bermasalah pa& komputer yang sumber dayanya sangat terbatas (Klein & Shapira, 2001).

Salah satu cara untuk mengatasinya adalah dengan melakukan operasi langsung terhadap dokumen yang sudah diiampatkan, &lam ha1 ini operasi pencocokan pola string. Berbagai algoritme pencocokan pola string yaug digunakan pada dokumen yang tidak dimampatkan dapat digunakan pada dokumen yang sudah diiampatkan dengan menambah proses a w l terhadap kueri yang diberikan. Dengan mengurangi ukuran suatu dokumen maka akan mengurangi waktu yang dibutuhkan untuk pencocokan pola (Manber, 1997).

Tujuan

Penelitian ini bertujuan untuk menelaah pencocokan pola string pada berkas teks yang sudah dimampatkan.

TINJAUAN PUSTAKA

Pemampatan Data

Pemampatan dokumen merupakan representasi dokumen dengan menggunakan kode-kode yang lebii efisien sehingga ukuran berkas yang diiasilkan lebih kecil dibanding aslinya. Keuntungan yang diperoleh dari proses ini adalah penghematan media penyimpanan dan biaya dalam komunikasi data (Chrochemore &

Lecroq, 1996).

Pemampatan data terdiii dari dua kelompok utama, yaitu pemampatan yang lossless dan lossy. Pemampatan data yang lossless dapat mengembalikan data ke dalam bentuk aslinya, xdangkan pemampatan data yang lossy tidak &pat meogembalikan data ke dalam bentuk semula karena adanya data yang hilang pa& saat encoding. Chrochemore & Lwoq (1996) menyebutkan bahwd rasio rata-rata berkas hasil pemampatan berbagai algoritme adalah antara 30% sampai dengan 50% dari ukuran berkas asal. Ada dua model utama dalam pemampatan data lossless, yaitu model statistik dan model kamus. Pada model statistik, pemampatan dilakukan dengan menghitung fiekuensi kemunculan simbol dalam berkas, lalu menggantikannya dengan simbol yang lebii sederhana. Pada model kamus, terdapat tabel yang berisi kumpulan string serta simbol yang merepresentasikannya.

Di dalam American Standard Code for Information Interchange (ASCII), masing-masing karakter memiliki panjang 8 bit (1 byte). Dengan nilai ini maka ada sebanyak 2* atau 256 jenis karakter yang berbeda.

Kode Huffman

Bit

Oriented

Metode ini termasuk ke dalam model statistik karena dasar pengkodeannya adalah frekuensi kemunculan karakter pada berkas. Karakter yang memiliki frekuensi paling tinggi akan memiliki panjang kode paling kecil dan begitu juga sebaliknya.

(14)

fiekuensi dari karakter node anak yang bersesuaian.

Algoritme H f f i a n bit adalah :

1. Urutkan simbol-simbol berdasarkan fiekuensi kemunculan.

.

2. Buat pohon Huflinan berdasarkan hasil 1

3. Lakukan penyandian karakter sesuai

dengan pohon Hu£han bit yang sudah terbentuk ( I :

kiri

, 0 : kanan ).

Misalkan teks yang

akan

dimampatkan adalah T = ABRACADABRA. Jika menggunakan pengkodean sistem ASCII, teks T

akan

memilii panjang bit sebesar

1q

x 8 = 88 bit. Karakter teks T dalam ASCII dan biner serta fiekuensi kemnnculan masing-masing karakter dicantumkan pada Tabel 1 dan pohon Hn5inan bjtnya seperti terlihat pada Gamhar 1.

Tabel 1. Niiai ASCII, biner dan fiekuensi kernnnculan karakter teks T.

Gambar 1. Pohon Hutlman bit teks T

Badasarkan pohon H f f i a n bit pada Gambar 1, diperoleh kode masing-masing karakter teks T

sqerti terlihat pada Tabel 2. Encode teks T adalah T' = OlllllOOlOlOlOOOllll1OO dan

I

T

1

= 23.

T i

hasil ini dibandingkan dengan nilai bit sebelum diencode maka proses encoding

ini menghemat 65 bit.

Tabel 2. Kode bit karakter teks T berdasarkan pohon H f f i a n bit

Kode Huffman Byte Oriented

Metode ini termasuk ke dalam model statistik karena dasar pengkodeannya adalah firebemi kata dalam ddcumen. Pohon Huf3nan

pada metode

ini

berderajat 128 dan setiap edge

mengind&sikan 1 byte, berbeda dengan HufEnan bit yang hanya memilii derajat pohon 2 dan setiap edge mengin-kan 1 bit (De

Moura et al., 1998a). Algoritmenya hampir sama dengan HufEnan bit tetapi karakter diganti dengan kata Kata didefenisikan sebagai

rangkaian karakter ydng dipisahkan oleh tan& baca atau spasi.

Nilai rasio pemampatan yang diperoleh dengan metcde ini tidak terlalu jauh berbeda dengan nilai yang diperoleh dengan metcde

Huf6nan bit. Dengan proses byte, waktn yang

diburuhkao untuk decompress dan pencocokan pola lebih kecil dibandingkan dengan proses bit

(De Moura et al., 1998h). Untnk maghasilkan kale yang unik pada berkas hasil pemampatan maka setiap byte awal kode ditambah dengan 128 pada saat p r m encoding. Gambar 2.

menunjukkan @on Hufiinan bfle untuk contoh kata worlddengan kode 29 121 99.

Gambar 2. Pohon Huflinan byte untuk kata world

Algoritme Pencocokan PoIa W n g

[image:14.582.68.291.70.755.2] [image:14.582.297.496.118.182.2]
(15)

Kueri dan teks tersusun dari rangkaian alfabet (finite symbols).

Kueri dinotasikan dengan P = P [0

...

M-I] dan lPl= M, teks dinotasikan dengan T = T [0

...

N-1] dan IT1 = N. Proses pencocokan biasanya dimulai dari awal kueri dan teks, kemudian membandingkan kesesuaian karakter kueri dan teks sampai pada akhir teks. Proses ini disehut scan and shifl mechanism.

Algoritme Brute Force

Algoritme ini merupakan algoritme

pencocdtan pola sning yang sederhana. AlgorLpne ini tidak melakukan suatu proses awal bai terhadap kueri yang akan dicari dan jnga pada teks. Prinsipnya adalah membandiigkan karakter per karakter dari teks dan kueri. Jiia terdapat p g a n karakter yang tidak sama pada posisi tgtentu maka kueri akan digeser satu kali ke kanan teks dan proses pembandingan dilakukan mulai dari karakter awal kueri dengan posisi karakter teks yang baru

int BruteForce(char *T,char *P)( int match = 0 ;

for (int i=O ; i<N-M ; I++) 1 int j = 0;

while (j<M & & T[i+jl == P[jl) j++; if (i>=M) match++;

1 retu;n match ;

Contoh :

T=GCATCGCAGAGAGTATACAGTACG

P = GCAGAGAG

N= IT1 = 24

,

M=IPI = 8

Proses pencocokan :

GCATCGCAGAGAGTATACAGTACG

--

- - f

GCAGAGAG

Tiga karakter pertama dari kueri dan teks sesuai tetapi pada karakter ke-4 tidak, maka kueri digeser ke kanan sebesar 1. Bentuk barunya adalah :

GCATCGCAGAGAGTATACAGTACG

f

GCAGAGAG

Ketidaksesuaian terjadi pada karakter pertama sehingga kueri digeser lagi ke kanan sebesar 1. Demikian dilakukan selama i <N-M.

Algoritme Knuth Morris Pratt

Algwitme ini ditemukan oleh Knuth, Moms dan F'ratt pada tahun 1976 (Abel, 2001). Algoritme ini dibuat untuk mengatasi masalah ketidakefisienan yang ditemukan pada algoritme Brute Force. Proses pencocokan pada algoritme Brute Force tidak menyimpan i n f m a s i penyesuaian yang diperoleh sehimgga satu karakter mungkii dibandiigkan heberapa kali yang seharusnya tidak perlu.

Priisip algwitme Knuth Morris Pratt

m)

adalah menganalisa kueri yang akan diproses dan menyimpan informasi hasil proses tersebut ke &lam suatu tabel yang biasa diwhut tabel m t . Tahel ini digunakan sehagai p a t h untuk menenluhn sejauh mana pergesaan kueri jika ditemukan pasangan karakter kueri

dan

teks yang tidak sama. Analisa ini dilakukan dengan membandiigkan kueri tersehut dengan diiinya sendin'.

Proses

ini disebutpreprocessing

KMF'.

Algoritme preprocessing Knuth Morris Pratt :

void P r e m P (char *P) I

int i

-

0 ; int j

-

nextL0l

-

-1 ;

while (i<M)

while (j > -1 and P[il != P[jl) j = nextcjl

i++ ; j++ ;

if (P[i]==P[jl) nextcil = next[jl; else nextcil = j ; 11

Setelah diperoleh tahel next maka langkah selanjutnya adalah membandiigkan kesesuaian karakter yang dimulai dari kiii kueri dan teks. Jiia pasangan karakter kueri dan teks sesuai maka i dan j bertambah, jika tidak maka kueri akan digeser ke kanan sebesar i-nexf[i] kemudian memhandimgkan T[i] dengan P[i] yang baru. Jumlah hasil pencocokan pola adalah semua potongan teks yang sama dengan kueri.

int i=j-mtch-0 ;

while (i < N) I

while (j >-1 and P[jl != T[il) j = next [jl ;

j++ ; i++ ;

if ( j >= M)

( m a t c h ; j = next(j1))

Contoh :

T=GCATCGCAGAGAGTATACAGTACG

(16)
(17)

Pembuatan Program Pemampatan Berkas

Program aplikasi pemampatan dan Proses pemampatan berkas bahan percobaan pencccokan p l a string dibangm dengan m e n g h a s i i berkas baru yang ukurannya lebii menggunakan perangkat lunak Turbo C++ dan kecil dari aslinya. Ukuran dan rasio basii perangkat keras berupa processor Intel Pentium pmampatan berkas bahan pacobaan dapat

200 MMx, memori 32

ME?

dan kapasitas dilihatpadaTabe1 4.

harddisk sebesar 7.5 GB.

ini adalah :

Pemampatanberkas

Percotaan ini dilakukan untuk memampatkan berkas

bahan

pacobaan.

Pemamptan dilakukan dengan aplikasi pmampatan Hutfiman bit dan byte yang telah dibuat

Rasio berkas hasid panampatan dihitung untuk mengetahui berapa bgar

kapasitas media penyimpanan yang &pat dihanat oleh kedua a p l i i i PanamPam

Tabel 4. Ukuran dan rasio pemampatan

Pencocokan Pola String

Pada percobaan ini dilakukan penyesuaian kueri terhadap k k a s

asal

danberkashasiipemamm

P m t a s i keakuratan basii pencocokan pola string dihitung dengan membandingkan jumlah kueri hasil pencccokan dengan jumlah kueri asli. Pada percobaan

ini

-ti juga waktu pencocokan pola pa&

take

asli berkas h i 1 pemampatan H&an bit dan pada berkas basii p a m p a t a n Huffinan byte. Hal ini dilakukan untuk melihat bagahma waktu penc0w)kan pola pada berkas hasil p a m p a t a n algoritme H&an bit dan byte.

Percobaan

Percobaan yang dilakukan pada peneiitian

HASIL DAN PEMBAHASAN

Pencocokan Pola String

Pencocokan pola d a p t langsung d i l m pada berkas yang sudah dimamptkan dengan menggunakan berbagai algoritme pencocokan pola string. Midkan

E(T)

sebagai encwring

dari

berkas teks T, &T) sebagai decoding dari E(T) dan E(P) sebagai encoding kueri P. Proses pencocokan pola pada berkas yang sudah d i i p a t k a n adalah mencari E(P) di dalam E(T), bukan mencari P di dalam ~(E(T)) dan E(P) sendhi harm diencode sama seperti EQ.

Proses pencccokan pola pada k k a s yang dimampatkan adalah dengan membandingkan kesesuaian masing-masing bit atau byte. Kcde kueri diambil dari pustaka berkas basii pemampatan yang berada pada bagian head berkas. Head berkas hasil pemampatan berisi

Berkas

Asal

informasi masing-masing

i$r&d

atau kata Penelitian ini mavpakan ujicoba dari dengan kdenya,

penelitian yang telah dilakukan oleh Shibata et Pencocokan p l a pada berkas hasil al., (1996) dan De Moura et al., (1998a). pemampatan ~ u f f r n ~ bit rnemerlukan proses

dari penelitian ini menunjukkan ~ a h m s i & ~ s a s i agar r n a s a s i kesalahan

p e n c ~ o k a n pola sMng langs~ng dilakukan pendeteksian bit. proses ini dengan pada berkas yang sudah dimampatkan. menggabungkan pohon HufEnan bit dari berkas

Pemampatan HufEnanbit

I

H&inanbyte [image:17.577.294.498.162.350.2]
(18)

kueri yang akan dicari seperti terlihat pada Gamhar 4.

Pencocokan pola pada herkas hasil pemampatan Hnffian byte tidak memerlukan pohon Huffman byte tetapi menambah nilai 128 ke a w l byte kode kueri yang diperoleh. Hal ini dilakukan agar basil yang diperoleh pada pencocdtan adalah valid. Contoh pencocokan pada h e r b yang diiampatkan dengan H u f i a n byte adalah :

Kata Kode real 85 32 w r l d 29 121 99

ghosr 32 29 121

Jika pada berkas asli terdapat potongan kalimat berikut :

...

real w r l d

..

.

maka kode yang akan terbentuk adalah 85 32 29 121 99. 3 i a kueri yang akan dicari adalah P = ghost diiana kode P adalah 32 29 121, dari susunan kode potongan k a l i a t di atas memungkiian ditemukannya kueri P ymg tidak valid. Unhlk mengatasinya maka byte patama dari kode kueri ditambah dengan 128. Sehimgga kode kueri P yang akan dicari adalah 160 29 121. Dengan demikian akan diperoleh nilai pen& yang valid.

Gambar 4. Pohon Huffman bit dengan KMP

automaton

Diagram alur proses pencocokan pola string pada herkas yang telah dimampatkan dengan Huffman bit dan Huffman byte yang terhentuk seperti terlihat pada Gambar 5.

baca bnkas yang dirnamptkan

[image:18.585.297.498.79.336.2] [image:18.585.301.494.603.684.2]

buat KMP nutomoton

Gambar 5. Alur proses pencodcan pols pa& herkas hasil pemampatan Huffian bit dan byte

Keakuratan Pencocoksn Pola String

Keakuratan yang diperoleh dari hasil percobaan terhadap semua contoh kueri jenis vokal dan konsonan adalah valid diiana jumlah yang ditemukan sama dengan jumlah aslinya. Untuk kueri jenis campuran, ketidakvalidan diperoleh pada hasil pencocokan pola pada h k a s hasil pemampatan Huffman bit sedangkan pada berkas hasil pemampatan Huffman byte adalah valid. Detil hasil penwokan karakter jenis vokal, konsonan dan campuran dapat dilihat

pada Lampiran 2 sampai dengan 4.

Contoh pendeteksian yang tidak akurat pada berkas hasil pemampatan Huffinan bit. Misalkan dari pohon H u h a n diperoleh kode karakter sehagai herikut : A:ll

,

B:101, C:100, D:01, E:OO. Kueri P = CD, maka P'=10001. State

KMP

automaton kueri

P'

:

State g(0) d l ) f oufuut 0

-

1 root pohon Huanan

1 2 1

2 3

-

1

3 4 1

4 5 1 5 (CD)

(19)

Bagian pohon Hu£linan bit State ~ ( 0 ) ~ ( 1 )

Misalkan teks T = ACDAEDCCD maka T' =

1110001110001100100. Pada teks T terdapat 2 kueri CD tetapi pada T' terdapat 3 kcde kueri P'.

J i i tanpa s M s a s i maka transisi state untuk

T' adalah : 1-1-1-2-345(CD) 1-1-2-345(final state tetapi fdse) 1-2-3-1-2-345(CD)

J i

dengan shkxnisasi maka prcrses transisi sialenya adalah :

1-1-1 -2-345(CD) 1-0-94-9-0 1-2-3-0-9-0- 9-0 (CD tidak ditemukan, false).

Waktu Pencocokan Pola M n g

MisaUran TS

sebagai waktu yang dibutuhkaa untuk penmcokan pola pada berkas yang Mum dimampatkan, TbitS adalah waktu penoocokan @a pada berkas hasid paampatan H W a n bit clan TbyteS adalah waktu pencocdtan pola pada berkas hasil panampatan

Hutsoan byte. Detil nilai rataan waktu

pencocdian pola string kedua berkas

bahan

p e r d m n dapat d i l i i t pada Tabel 5 sampai dengan 7.

Tabel 5. Rataan waktu pencocdtan pola kueri

TbitS 30.72 31.28 30.4 30.9

Tabel 6. Rataan waktu pencocokan pola kueri jenis konsonan (10 mS)

Dari hasil percobaan diperoleh bahwa TbyteS < TbitS. Nilai ini disebabkan oleh proses byte yang memungkinkan pembandingan lebih sedikit karena kale kueri umumnya lebih sedikit dibanding dengan karakter kueri asliiya, ditmbah juga dengan proses pergeseran kcde byte yang efektif Sedangkan pada proses bit, jumlah kode kueri umumnya lebih panjang dari karakter kueri asli sehingga lebii banyak jumlah yang

barus

dibandingkan, ditambah juga dengan pergeseran pada bit yang tidak efisien. Grafik rataan waktu penmcokan pola kedua k k a s

percobaan seperti terliiat pada Gambar 6 sampai

8.

Detil

waktu pen& pola string semua kueri percotaan &pat diliiat pada Lampiran 5 sampai 13.

4 5 6 7 8

P nnjangkueri t T S--Tbii --t-TbVteS

[image:19.577.72.506.74.703.2]

Tabel 7. Rataan waktu pencocokan pola kueri jenis campuran (10 mS)

Gambar 6. Grafik rataan waktupenc~mkan pola kueri jenis vokal

PanjangKar TS TbitS TbyleS

4

Pan.ing kucri t T S --m-TLGi +TbyteS

Gambar 7. Grafik rataan waktn penwokan pola kueri jenis konsonan

7

4.93 31.3

0.54

5

20

i

10

i::L

0 4 5 P anjmg 6 kueri 7 8

8 5.5 32 0.6 4 5.39 31.41 0.73 7 4.98 31.5 0.93 6 5.31 31.3 2.04 Panjang Kar TS TbitS TbyteS

Gambar 8. Grafik rataan waktn pencocokan pola kueri jenis campuran

(20)

PENUTUP DAlTAR PUSTAKA Kesimpulan

Rasio pemampatan metode Huffman bit

secara mum lebii besar dibandingkan hasil metode Huffman byte.

Persentasi keakuratan yang diperoleh dari pencocdtan pola pada berkas hasil pemampatan Huffman bit adalah antara 0 sampai 1. Nilai ini disebabkan adanya kesalahan pendeteksian bit.

Sedangkan pencodan pola pa& berkas hasil pemampatan Huffman byte diperoleh persentasi keakuratan sebesar 1.

Dari hasil percobaan diperoleh

TbyfeS < TbitS. Nilai ini disebabkan karena kode kueri pada berkas hasil pemampatan Huffman byte rata-rata lebii kecil dibandiig dengan karakter kueri asli dan proses pergesaran pada kcde byte yang efisien. Sedangkan kode kueri pa& berkas hasil pemampatan Hufhan bit

rata-rata lebih panjang dibandiig dengan karakter kueri asli, ditambah dengan proses pergeseran pada kode bit yang tidak efisien.

Tidak ditemukan pola antara mktu pencocokan pola string dengan panjang kueri karena kinerja pencocdcan pola sendiri tergantung pada pola kueri dan teks.

Pada berkas I, TbyteS &pat mempercepat waktu pencoookan s e k 2-25 kali TS sedangkan pada berkas I1 diperoleh percepatan sebesar 1 - 14 kali TS.

Saran

Perlu dicari algoritme pencocokan' pola

string yang tepat digunakan pada berkas pemampatan HufEnan bit sehiigga h a i l pencocokannya valid.

Pencocokan pola string pada penelitian ini dapat dikembangkan menjadi temu kembali dengan menambah proses awai pada algoritme pemampatan seperti pengelompokan kata-kata yang bersamaan arti, bunyi atau aturan temu kembali lainnya serta menghilangkan sifat key sensitive.

Abel, U. 2001. Shing Matching. Proseminar "Algorithmen". hof. Brandenburg.

Chochemore, M. & T. Lecroq. 1996. Pattern Marching And Tsrt Compression Algorithm.

ACM Comput. Swveys

De Moura, ES Navarm, G. Ziviani, N. & R B. Yates. 1996. Compressed Pattern Matching

-

Approximate Compressed Patern Matching

-

Direct Compressed Pattern Marching. Depto.

De

Ciencia da Computecao, Univ. Federal de M i a s Gerais. Brasil.

,1998a. Direct Pattern Matching on Compressed Text.

Tech.

Report

03-98, Dept. of Computer Science, Univ. Federal de Minas Gerais, Brazil.

,1998b.

Fart

Searching on Compressed Text Allowing Errors.

In Proc. of the ACM Sigir'98.

Klein, ST. & D. Saphim, 2001. Pattern Matching in H m a n Encoded T a t . Data Compression Conference 2001.

Manber, U d i 1997. A Text Compression Scheme that Allow Fast Searching Directly in The Compressed File. ACM Trans. Information Systems, 15(2):124-136, 1997.

Shibata, Y. Kida, T. Fukamachi, S. Takeda, M. Shinohara, A. & T. Shinohara. 1996.

Spedding Up Pattern Matching by Text Compression. Department of Informatics Kyushu University, Fukuoka. Regular Paper.Vol.37 No. 6

Sedgewick, R 1988. Algorithms. Addison Wesley. Bonn.

Treamblay, J.P. & G. Sorenson. 1985. The

Theow and Practice of Compiler Writing.

(21)
(22)
(23)
(24)
(25)

13

(26)

14

(27)

Lampiran 7. TS untuk jenis karakter campuran (1Oms)

(28)

16

(29)

17

(30)

18

(31)
(32)

20

(33)
(34)
(35)
(36)
(37)
(38)

13

(39)

14

(40)

Lampiran 7. TS untuk jenis karakter campuran (1Oms)

(41)

16

(42)

17

(43)

18

(44)
(45)

20

(46)
(47)

Latar Belakaug

Pencocokan pola string (string pattern matching) merupakan salah satu bagian terpenting dari pemrosesan teks (Shibata et al., 1996). Operasi yang dilakukan adalah menyesuaikan istilah dalam kueri dengan istilah yang terdapat &lam suatu dokumen.

Pemampatan dokumen pada dasarnya dibuat untuk menghemat media penyimpanan dan juga biaya komunikasi (Manber, 1997). Pemampatan suatu dokumen seperti berkas teks dapat dilakukan dengan berbagai algoribne seperti H f f i a n , Lempel Ziv Welch, Byte Pair E n d m g dan lainnya.

Perkembangan teknologi media penyimpanan memberikan kemudahan bagi pemakai komputer untuk mendapatkan ukuran media penyimpanan yang besar dengan kualitas yang bagus serta harga yang relatif menurun dari

tahun ke tahun. Tetapi dokumen yang disimpan

&lam media penyimpanan akan selalu bxtambah.

Umumnya perusaham-perusaham selalu membuclhrp dokumen

secara

berkala clan &lam format yang telah dimampatkan. Jiia pa& suatu saat dibutuhkan informasi yang terdapat &lam dokumen yang telah diiampatkan, hiasanya ddcumen tersebut terlebii dahulu didecompress sebelum dioperasikan. Pendekatan ini tidak masalah bagi komputer yang memiliki sumber daya yang tinggi, tetapi bermasalah pa& komputer yang sumber dayanya sangat terbatas (Klein & Shapira, 2001).

Salah satu cara untuk mengatasinya adalah dengan melakukan operasi langsung terhadap dokumen yang sudah diiampatkan, &lam ha1 ini operasi pencocokan pola string. Berbagai algoritme pencocokan pola string yaug digunakan pada dokumen yang tidak dimampatkan dapat digunakan pada dokumen yang sudah diiampatkan dengan menambah proses a w l terhadap kueri yang diberikan. Dengan mengurangi ukuran suatu dokumen maka akan mengurangi waktu yang dibutuhkan untuk pencocokan pola (Manber, 1997).

Tujuan

Penelitian ini bertujuan untuk menelaah pencocokan pola string pada berkas teks yang sudah dimampatkan.

TINJAUAN PUSTAKA

Pemampatan Data

Pemampatan dokumen merupakan representasi dokumen dengan menggunakan kode-kode yang lebii efisien sehingga ukuran berkas yang diiasilkan lebih kecil dibanding aslinya. Keuntungan yang diperoleh dari proses ini adalah penghematan media penyimpanan dan biaya dalam komunikasi data (Chrochemore &

Lecroq, 1996).

Pemampatan data terdiii dari dua kelompok utama, yaitu pemampatan yang lossless dan lossy. Pemampatan data yang lossless dapat mengembalikan data ke dalam bentuk aslinya, xdangkan pemampatan data yang lossy tidak &pat meogembalikan data ke dalam bentuk semula karena adanya data yang hilang pa& saat encoding. Chrochemore & Lwoq (1996) menyebutkan bahwd rasio rata-rata berkas hasil pemampatan berbagai algoritme adalah antara 30% sampai dengan 50% dari ukuran berkas asal. Ada dua model utama dalam pemampatan data lossless, yaitu model statistik dan model kamus. Pada model statistik, pemampatan dilakukan dengan menghitung fiekuensi kemunculan simbol dalam berkas, lalu menggantikannya dengan simbol yang lebii sederhana. Pada model kamus, terdapat tabel yang berisi kumpulan string serta simbol yang merepresentasikannya.

Di dalam American Standard Code for Information Interchange (ASCII), masing-masing karakter memiliki panjang 8 bit (1 byte). Dengan nilai ini maka ada sebanyak 2* atau 256 jenis karakter yang berbeda.

Kode Huffman

Bit

Oriented

Metode ini termasuk ke dalam model statistik karena dasar pengkodeannya adalah frekuensi kemunculan karakter pada berkas. Karakter yang memiliki frekuensi paling tinggi akan memiliki panjang kode paling kecil dan begitu juga sebaliknya.

(48)

Latar Belakaug

Pencocokan pola string (string pattern matching) merupakan salah satu bagian terpenting dari pemrosesan teks (Shibata et al., 1996). Operasi yang dilakukan adalah menyesuaikan istilah dalam kueri dengan istilah yang terdapat &lam suatu dokumen.

Pemampatan dokumen pada dasarnya dibuat untuk menghemat media penyimpanan dan juga biaya komunikasi (Manber, 1997). Pemampatan suatu dokumen seperti berkas teks dapat dilakukan dengan berbagai algoribne seperti H f f i a n , Lempel Ziv Welch, Byte Pair E n d m g dan lainnya.

Perkembangan teknologi media penyimpanan memberikan kemudahan bagi pemakai komputer untuk mendapatkan ukuran media penyimpanan yang besar dengan kualitas yang bagus serta harga yang relatif menurun dari

tahun ke tahun. Tetapi dokumen yang disimpan

&lam media penyimpanan akan selalu bxtambah.

Umumnya perusaham-perusaham selalu membuclhrp dokumen

secara

berkala clan &lam format yang telah dimampatkan. Jiia pa& suatu saat dibutuhkan informasi yang terdapat &lam dokumen yang telah diiampatkan, hiasanya ddcumen tersebut terlebii dahulu didecompress sebelum dioperasikan. Pendekatan ini tidak masalah bagi komputer yang memiliki sumber daya yang tinggi, tetapi bermasalah pa& komputer yang sumber dayanya sangat terbatas (Klein & Shapira, 2001).

Salah satu cara untuk mengatasinya adalah dengan melakukan operasi langsung terhadap dokumen yang sudah diiampatkan, &lam ha1 ini operasi pencocokan pola string. Berbagai algoritme pencocokan pola string yaug digunakan pada dokumen yang tidak dimampatkan dapat digunakan pada dokumen yang sudah diiampatkan dengan menambah proses a w l terhadap kueri yang diberikan. Dengan mengurangi ukuran suatu dokumen maka akan mengurangi waktu yang dibutuhkan untuk pencocokan pola (Manber, 1997).

Tujuan

Penelitian ini bertujuan untuk menelaah pencocokan pola string pada berkas teks yang sudah dimampatkan.

TINJAUAN PUSTAKA

Pemampatan Data

Pemampatan dokumen merupakan representasi dokumen dengan menggunakan kode-kode yang lebii efisien sehingga ukuran berkas yang diiasilkan lebih kecil dibanding aslinya. Keuntungan yang diperoleh dari proses ini adalah penghematan media penyimpanan dan biaya dalam komunikasi data (Chrochemore &

Lecroq, 1996).

Pemampatan data terdiii dari dua kelompok utama, yaitu pemampatan yang lossless dan lossy. Pemampatan data yang lossless dapat mengembalikan data ke dalam bentuk aslinya, xdangkan pemampatan data yang lossy tidak &pat meogembalikan data ke dalam bentuk semula karena adanya data yang hilang pa& saat encoding. Chrochemore & Lwoq (1996) menyebutkan bahwd rasio rata-rata berkas hasil pemampatan berbagai algoritme adalah antara 30% sampai dengan 50% dari ukuran berkas asal. Ada dua model utama dalam pemampatan data lossless, yaitu model statistik dan model kamus. Pada model statistik, pemampatan dilakukan dengan menghitung fiekuensi kemunculan simbol dalam berkas, lalu menggantikannya dengan simbol yang lebii sederhana. Pada model kamus, terdapat tabel yang berisi kumpulan string serta simbol yang merepresentasikannya.

Di dalam American Standard Code for Information Interchange (ASCII), masing-masing karakter memiliki panjang 8 bit (1 byte). Dengan nilai ini maka ada sebanyak 2* atau 256 jenis karakter yang berbeda.

Kode Huffman

Bit

Oriented

Metode ini termasuk ke dalam model statistik karena dasar pengkodeannya adalah frekuensi kemunculan karakter pada berkas. Karakter yang memiliki frekuensi paling tinggi akan memiliki panjang kode paling kecil dan begitu juga sebaliknya.

(49)

fiekuensi dari karakter node anak yang bersesuaian.

Algoritme H f f i a n bit adalah :

1. Urutkan simbol-simbol berdasarkan fiekuensi kemunculan.

.

2. Buat pohon Huflinan berdasarkan hasil 1

3. Lakukan penyandian karakter sesuai

dengan pohon Hu£han bit yang sudah terbentuk ( I :

kiri

, 0 : kanan ).

Misalkan teks yang

akan

dimampatkan adalah T = ABRACADABRA. Jika menggunakan pengkodean sistem ASCII, teks T

akan

memilii panjang bit sebesar

1q

x 8 = 88 bit. Karakter teks T dalam ASCII dan biner serta fiekuensi kemnnculan masing-masing karakter dicantumkan pada Tabel 1 dan pohon Hn5inan bjtnya seperti terlihat pada Gamhar 1.

Tabel 1. Niiai ASCII, biner dan fiekuensi kernnnculan karakter teks T.

Gambar 1. Pohon Hutlman bit teks T

Badasarkan pohon H f f i a n bit pada Gambar 1, diperoleh kode masing-masing karakter teks T

sqerti terlihat pada Tabel 2. Encode teks T adalah T' = OlllllOOlOlOlOOOllll1OO dan

I

T

1

= 23.

T i

hasil ini dibandingkan dengan nilai bit sebelum diencode maka proses encoding

ini menghemat 65 bit.

Tabel 2. Kode bit karakter teks T berdasarkan pohon H f f i a n bit

Kode Huffman Byte Oriented

Metode ini termasuk ke dalam model statistik karena dasar pengkodeannya adalah firebemi kata dalam ddcumen. Pohon Huf3nan

pada metode

ini

berderajat 128 dan setiap edge

mengind&sikan 1 byte, berbeda dengan HufEnan bit yang hanya memilii derajat pohon 2 dan setiap edge mengin-kan 1 bit (De

Moura et al., 1998a). Algoritmenya hampir sama dengan HufEnan bit tetapi karakter diganti dengan kata Kata didefenisikan sebagai

rangkaian karakter ydng dipisahkan oleh tan& baca atau spasi.

Nilai rasio pemampatan yang diperoleh dengan metcde ini tidak terlalu jauh berbeda dengan nilai yang diperoleh dengan metcde

Huf6nan bit. Dengan proses byte, waktn yang

diburuhkao untuk decompress dan pencocokan pola lebih kecil dibandingkan dengan proses bit

(De Moura et al., 1998h). Untnk maghasilkan kale yang unik pada berkas hasil pemampatan maka setiap byte awal kode ditambah dengan 128 pada saat p r m encoding. Gambar 2.

menunjukkan @on Hufiinan bfle untuk contoh kata worlddengan kode 29 121 99.

Gambar 2. Pohon Huflinan byte untuk kata world

Algoritme Pencocokan PoIa W n g

[image:49.582.68.291.70.755.2] [image:49.582.297.496.118.182.2]
(50)

Kueri dan teks tersusun dari rangkaian alfabet (finite symbols).

Kueri dinotasikan dengan P = P [0

...

M-I] dan lPl= M, teks dinotasikan dengan T = T [0

...

N-1] dan IT1 = N. Proses pencocokan biasanya dimulai dari awal kueri dan teks, kemudian membandingkan kesesuaian karakter kueri dan teks sampai pada akhir teks. Proses ini disehut scan and shifl mechanism.

Algoritme Brute Force

Algoritme ini merupakan algoritme

pencocdtan pola sning yang sederhana. AlgorLpne ini tidak melakukan suatu proses awal bai terhadap kueri yang akan dicari dan jnga pada teks. Prinsipnya adalah membandiigkan karakter per karakter dari teks dan kueri. Jiia terdapat p g a n karakter yang tidak sama pada posisi tgtentu maka kueri akan digeser satu kali ke kanan teks dan proses pembandingan dilakukan mulai dari karakter awal kueri dengan posisi karakter teks yang baru

int BruteForce(char *T,char *P)( int match = 0 ;

for (int i=O ; i<N-M ; I++) 1 int j = 0;

while (j<M & & T[i+jl == P[jl) j++; if (i>=M) match++;

1 retu;n match ;

Contoh :

T=GCATCGCAGAGAGTATACAGTACG

P = GCAGAGAG

N= IT1 = 24

,

M=IPI = 8

Proses pencocokan :

GCATCGCAGAGAGTATACAGTACG

--

- - f

GCAGAGAG

Tiga karakter pertama dari kueri dan teks sesuai tetapi pada karakter ke-4 tidak, maka kueri digeser ke kanan sebesar 1. Bentuk barunya adalah :

GCATCGCAGAGAGTATACAGTACG

f

GCAGAGAG

Ketidaksesuaian terjadi pada karakter pertama sehingga kueri digeser lagi ke kanan sebesar 1. Demikian dilakukan selama i <N-M.

Algoritme Knuth Morris Pratt

Algwitme ini ditemukan oleh Knuth, Moms dan F'ratt pada tahun 1976 (Abel, 2001). Algoritme ini dibuat untuk mengatasi masalah ketidakefisienan yang ditemukan pada algoritme Brute Force. Proses pencocokan pada algoritme Brute Force tidak menyimpan i n f m a s i penyesuaian yang diperoleh sehimgga satu karakter mungkii dibandiigkan heberapa kali yang seharusnya tidak perlu.

Priisip algwitme Knuth Morris Pratt

m)

adalah menganalisa kueri yang akan diproses dan menyimpan informasi hasil proses tersebut ke &lam suatu tabel yang biasa diwhut tabel m t . Tahel ini digunakan sehagai p a t h untuk menenluhn sejauh mana pergesaan kueri jika ditemukan pasangan karakter kueri

dan

teks yang tidak sama. Analisa ini dilakukan dengan membandiigkan kueri tersehut dengan diiinya sendin'.

Proses

ini disebutpreprocessing

KMF'.

Algoritme preprocessing Knuth Morris Pratt :

void P r e m P (char *P) I

int i

-

0 ; int j

-

nextL0l

-

-1 ;

while (i<M)

while (j > -1 and P[il != P[jl) j = nextcjl

i++ ; j++ ;

if (P[i]==P[jl) nextcil = next[jl; else nextcil = j ; 11

Setelah diperoleh tahel next maka langkah selanjutnya adalah membandiigkan kesesuaian karakter yang dimulai dari kiii kueri dan teks. Jiia pasangan karakter kueri dan teks sesuai maka i dan j bertambah, jika tidak maka kueri akan digeser ke kanan sebesar i-nexf[i] kemudian memhandimgkan T[i] dengan P[i] yang baru. Jumlah hasil pencocokan pola adalah semua potongan teks yang sama dengan kueri.

int i=j-mtch-0 ;

while (i < N) I

while (j >-1 and P[jl != T[il) j = next [jl ;

j++ ; i++ ;

if ( j >= M)

( m a t c h ; j = next(j1))

Contoh :

T=GCATCGCAGAGAGTATACAGTACG

(51)
(52)
(53)

Pembuatan Program Pemampatan Berkas

Program aplikasi pemampatan dan Proses pemampatan berkas bahan percobaan pencccokan p l a string dibangm dengan m e n g h a s i i berkas baru yang ukurannya lebii menggunakan perangkat lunak Turbo C++ dan kecil dari aslinya. Ukuran dan rasio basii perangkat keras berupa processor Intel Pentium pmampatan berkas bahan pacobaan dapat

200 MMx, memori 32

ME?

dan kapasitas dilihatpadaTabe1 4.

harddisk sebesar 7.5 GB.

ini adalah :

Pemampatanberkas

Percotaan ini dilakukan untuk memampatkan berkas

bahan

pacobaan.

Pemamptan dilakukan dengan aplikasi pmampatan Hutfiman bit dan byte yang telah dibuat

Rasio berkas hasid panampatan dihitung untuk mengetahui berapa bgar

kapasitas media penyimpanan yang &pat dihanat oleh kedua a p l i i i PanamPam

Tabel 4. Ukuran dan rasio pemampatan

Pencocokan Pola String

Pada percobaan ini dilakukan penyesuaian kueri terhadap k k a s

asal

danberkashasiipemamm

P m t a s i keakuratan basii pencocokan pola string dihitung dengan membandingkan jumlah kueri hasil pencccokan dengan jumlah kueri asli. Pada percobaan

ini

-ti juga waktu pencocokan pola pa&

take

asli berkas h i 1 pemampatan H&an bit dan pada berkas basii p a m p a t a n Huffinan byte. Hal ini dilakukan untuk melihat bagahma waktu penc0w)kan pola pada berkas hasil p a m p a t a n algoritme H&an bit dan byte.

Percobaan

Percobaan yang dilakukan pada peneiitian

HASIL DAN PEMBAHASAN

Pencocokan Pola String

Pencocokan pola d a p t langsung d i l m pada berkas yang sudah dimamptkan dengan menggunakan berbagai algoritme pencocokan pola string. Midkan

E(T)

sebagai encwring

dari

berkas teks T, &T) sebagai decoding dari E(T) dan E(P) sebagai encoding kueri P. Proses pencocokan pola pada berkas yang sudah d i i p a t k a n adalah mencari E(P) di dalam E(T), bukan mencari P di dalam ~(E(T)) dan E(P) sendhi harm diencode sama seperti EQ.

Proses pencccokan pola pada k k a s yang dimampatkan adalah dengan membandingkan kesesuaian masing-masing bit atau byte. Kcde kueri diambil dari pustaka berkas basii pemampatan yang berada pada bagian head berkas. Head berkas hasil pemampatan berisi

Berkas

Asal

informasi masing-masing

i$r&d

atau kata Penelitian ini mavpakan ujicoba dari dengan kdenya,

penelitian yang telah dilakukan oleh Shibata et Pencocokan p l a pada berkas hasil al., (1996) dan De Moura et al., (1998a). pemampatan ~ u f f r n ~ bit rnemerlukan proses

dari penelitian ini menunjukkan ~ a h m s i & ~ s a s i agar r n a s a s i kesalahan

p e n c ~ o k a n pola sMng langs~ng dilakukan pendeteksian bit. proses ini dengan pada berkas yang sudah dimampatkan. menggabungkan pohon HufEnan bit dari berkas

Pemampatan HufEnanbit

I

H&inanbyte [image:53.577.294.498.162.350.2]
(54)

kueri yang akan dicari seperti terlihat pada Gamhar 4.

Pencocokan pola pada herkas hasil pemampatan Hnffian byte tidak memerlukan pohon Huffman byte tetapi menambah nilai 128 ke a w l byte kode kueri yang diperoleh. Hal ini dilakukan agar basil yang diperoleh pada pencocdtan adalah valid. Contoh pencocokan pada h e r b yang diiampatkan dengan H u f i a n byte adalah :

Kata Kode real 85 32 w r l d 29 121 99

ghosr 32 29 121

Jika pada berkas asli terdapat potongan kalimat berikut :

...

real w r l d

..

.

maka kode yang akan terbentuk adalah 85 32 29 121 99. 3 i a kueri yang akan dicari adalah P = ghost diiana kode P adalah 32 29 121, dari susunan kode potongan k a l i a t di atas memungkiian ditemukannya kueri P ymg tidak valid. Unhlk mengatasinya maka byte patama dari kode kueri ditambah dengan 128. Sehimgga kode kueri P yang akan dicari adalah 160 29 121. Dengan demikian akan diperoleh nilai pen& yang valid.

Gambar 4. Pohon Huffman bit dengan KMP

automaton

Diagram alur proses pencocokan pola string pada herkas yang telah dimampatkan dengan Huffman bit dan Huffman byte yang terhentuk seperti terlihat pada Gambar 5.

baca bnkas yang dirnamptkan

[image:54.585.297.498.79.336.2] [image:54.585.301.494.603.684.2]

buat KMP nutomoton

Gambar 5. Alur proses pencodcan pols pa& herkas hasil pemampatan Huffian bit dan byte

Keakuratan Pencocoksn Pola String

Keakuratan yang diperoleh dari hasil percobaan terhadap semua contoh kueri jenis vokal dan konsonan adalah valid diiana jumlah yang ditemukan sama dengan jumlah aslinya. Untuk kueri jenis campuran, ketidakvalidan diperoleh pada hasil pencocokan pola pada h k a s hasil pemampatan Huffman bit sedangkan pada berkas hasil pemampatan Huffman byte adalah valid. Detil hasil penwokan karakter jenis vokal, konsonan dan campuran dapat dilihat

pada Lampiran 2 sampai dengan 4.

Contoh pendeteksian yang tidak akurat pada berkas hasil pemampatan Huffinan bit. Misalkan dari pohon H u h a n diperoleh kode karakter sehagai herikut : A:ll

,

B:101, C:100, D:01, E:OO. Kueri P = CD, maka P'=10001. State

KMP

automaton kueri

P'

:

State g(0) d l ) f oufuut 0

-

1 root pohon Huanan

1 2 1

2 3

-

1

3 4 1

4 5 1 5 (CD)

(55)

Bagian pohon Hu£linan bit State ~ ( 0 ) ~ ( 1 )

Misalkan teks T = ACDAEDCCD maka T' =

1110001110001100100. Pada teks T terdapat 2 kueri CD tetapi pada T' terdapat 3 kcde kueri P'.

J i i tanpa s M s a s i maka transisi state untuk

T' adalah : 1-1-1-2-345(CD) 1-1-2-345(final state tetapi fdse) 1-2-3-1-2-345(CD)

J i

dengan shkxnisasi maka prcrses transisi sialenya adalah :

1-1-1 -2-345(CD) 1-0-94-9-0 1-2-3-0-9-0- 9-0 (CD tidak ditemukan, false).

Waktu Pencocokan Pola M n g

MisaUran TS

sebagai waktu yang dibutuhkaa untuk penmcokan pola pada berkas yang Mum dimampatkan, TbitS adalah waktu penoocokan @a pada berkas hasid paampatan H W a n bit clan TbyteS adalah waktu pencocdtan pola pada berkas hasil panampatan

Hutsoan byte. Detil nilai rataan waktu

pencocdian pola string kedua berkas

bahan

p e r d m n dapat d i l i i t pada Tabel 5 sampai dengan 7.

Tabel 5. Rataan waktu pencocdtan pola kueri

TbitS 30.72 31.28 30.4 30.9

Tabel 6. Rataan waktu pencocokan pola kueri jenis konsonan (10 mS)

Dari hasil percobaan diperoleh bahwa TbyteS < TbitS. Nilai ini disebabkan oleh proses byte yang memungkinkan pembandingan lebih sedikit karena kale kueri umumnya lebih sedikit dibanding dengan karakter kueri asliiya, ditmbah juga dengan proses pergeseran kcde byte yang efektif Sedangkan pada proses bit, jumlah kode kueri umumnya lebih panjang dari karakter kueri asli sehingga lebii banyak jumlah yang

barus

dibandingkan, ditambah juga dengan pergeseran pada bit yang tidak efisien. Grafik rataan waktu penmcokan pola kedua k k a s

percobaan seperti terliiat pada Gambar 6 sampai

8.

Detil

waktu pen& pola string semua kueri percotaan &pat diliiat pada Lampiran 5 sampai 13.

4 5 6 7 8

P nnjangkueri t T S--Tbii --t-TbVteS

[image:55.577.72.506.74.703.2]

Tabel 7. Rataan waktu pencocokan pola kueri jenis campuran (10 mS)

Gambar 6. Grafik rataan waktupenc~mkan pola kueri jenis vokal

PanjangKar TS TbitS TbyleS

4

Pan.ing kucri t T S --m-TLGi +TbyteS

Gambar 7. Grafik rataan waktn penwokan pola kueri jenis konsonan

7

4.93 31.3

0.54

5

20

i

10

i::L

0 4 5 P anjmg 6 kueri 7 8

8 5.5 32 0.6 4 5.39 31.41 0.73 7 4.98 31.5 0.93 6 5.31 31.3 2.04 Panjang Kar TS TbitS TbyteS

Gambar 8. Grafik rataan waktn pencocokan pola kueri jenis campuran

(56)

PENUTUP DAlTAR PUSTAKA Kesimpulan

Rasio pemampatan metode Huffman bit

secara mum lebii besar dibandingkan hasil metode Huffman byte.

Persentasi keakuratan yang diperoleh dari pencocdtan pola pada berkas hasil pemampatan Huffman bit adalah antara 0 sampai 1. Nilai ini disebabkan adanya kesalahan pendeteksian bit.

Sedangkan pencodan pola pa& berkas hasil pemampatan Huffman byte diperoleh persentasi keakuratan sebesar 1.

Dari hasil percobaan diperoleh

TbyfeS < TbitS. Nilai ini disebabkan karena kode kueri pada berkas hasil pemampatan Huffman byte rata-rata lebii kecil dibandiig dengan karakter kueri asli dan proses pergesaran pada kcde byte yang efisien. Sedangkan kode kueri pa& berkas hasil pemampatan Hufhan bit

rata-rata lebih panjang dibandiig dengan karakter kueri asli, ditambah dengan proses pergeseran pada kode bit yang tidak efisien.

Tidak ditemukan pola antara mktu pencocokan pola string dengan panjang kueri karena kinerja pencocdcan pola sendiri tergantung pada pola kueri dan teks.

Pada berkas I, TbyteS &pat mempercepat waktu pencoookan s e k 2-25 kali TS sedangkan pada berkas I1 diperoleh percepatan sebesar 1 - 14 kali TS.

Saran

Perlu dicari algoritme pencocokan' pola

string yang tepat digunakan pada berkas pemampatan HufEnan bit sehiigga h a i l pencocokannya valid.

Pencocokan pola string pada penelitian ini dapat dikembangkan menjadi temu kembali dengan menambah proses awai pada algoritme pemampatan seperti pengelompokan kata-kata yang bersamaan arti, bunyi atau aturan temu kembali lainnya serta menghilangkan sifat key sensitive.

Abel, U. 2001. Shing Matching. Proseminar "Algorithmen". hof. Brandenburg.

Chochemore, M. & T. Lecroq. 1996. Pattern Marching And Tsrt Compression Algorithm.

ACM Comput. Swveys

De Moura, ES Navarm, G. Ziviani, N. & R B. Yates. 1996. Compressed Pattern Matching

-

Approximate Compressed Patern Matching

-

Direct Compressed Pattern Marching. Depto.

De

Ciencia da Computecao, Univ. Federal de M i a s Gerais. Brasil.

,1998a. Direct Pattern Matching on Compressed Text.

Tech.

Report

03-98, Dept. of Computer Science, Univ. Federal de Minas Gerais, Brazil.

,1998b.

Fart

Searching on Compressed Text Allowing Errors.

In Proc. of the ACM Sigir'98.

Klein, ST. & D. Saphim, 2001. Pattern Matching in H m a n Encoded T a t . Data Compression Conference 2001.

Manber, U d i 1997. A Text Compression Scheme that Allow Fast Searching Directly in The Compressed File. ACM Trans. Information Systems, 15(2):124-136, 1997.

Shibata, Y. Kida, T. Fukamachi, S. Takeda, M. Shinohara, A. & T. Shinohara. 1996.

Spedding Up Pattern Matching by Text Compression. Department of Informatics Kyushu University, Fukuoka. Regular Paper.Vol.37 No. 6

Sedgewick, R 1988. Algorithms. Addison Wesley. Bonn.

Treamblay, J.P. & G. Sorenson. 1985. The

Theow and Practice of Compiler Writing.

Gambar

Tabel 1. Niiai ASCII, biner dan fiekuensi
Tabel 4. Ukuran dan rasio pemampatan
Gambar 4. Pohon Huffman bit dengan KMP
Gambar 6. Grafik rataan waktupenc~mkan pola
+5

Referensi

Dokumen terkait

Tetapi hasil tersebut masih sangat bervariasi dibanding dengan penelitian yang lain, seperti penelitian yang dilakukan Gisondi pada tahun 2007 yang menyatakan

[r]

Cara merenungkan bentuk-bentuk pikiran dari tujuh faktor penerangan Agung (satta Bojjhanga) ialah apabila di dalam diri meditator timbul kesadaran (sati), penyelidikan Dhamma yang

Laporan Akhir: Pengembangan Konsep daya Dukung Dalam Pengelolaan Lingkungan Pulau-Pulau Kecil.. Bogor: Kementerian Lingkungan Hidup kerjsama dengan Fakultas Perikanan

Apabila jangka waktu tersebut diabaikan maka akan menimbulkan beberapa akibat hukum terhadap akta peralihan tersebut.Maka untuk lebih terjaganya ketertiban dalam proses

Hal yang perlu diperhatikan dalam proses stek daun ini adalah pohon klon induk tidak boleh diambil dari tanaman yang umurnya dibawah 6 bulan setelah dipetikdari bakal stek

Time management (TM) secara efektif untuk berbagai kegiatan akademik dan sosial di kampus akan dapat membantu mahasiswa dalam mencapai tujuan dan target akademik yang

Bila pasien pulang diluat jam kerja untuk urusan administrasi akan dilakukan di hari berikutnya. RS SARI ASIH CILEDUG Untuk Jam pulang pasien rawat inap hanya bisa dilakukan di