20
Gambar 2.8. Hex pada file PDF
2.6. Longest Common Subsequences
Dalam permasalahan matematika, sebuah subsequence adalah sebuah sequence yang diturunkan dari sequence lain dengan menghapus beberapa elemen tanpa mengganti
urutan dari sisa element tersebut. Sebagai contoh, sequence “A B D” merupakan
subsequence dari sequence
“A B C D E”. Secara singkat, subsequence merupakan bagian dari sebuah sequence.
Longest Common Subsequences merupakan sebuah metode untuk mencari
sequence terpanjang yang sama, sebuah basis dari pemrograman untuk perbandingan
data komputer. Pada kasus identifikasi tipe file, Longest Common Subsequences dapat digunakan untuk membandingkan sequence hex number beberapa file. Secara umum,
Longest Common Subsequence adalah sebuah metode untuk mendapatkan sequence
terpanjang dengan membandingkan beberapa sequence. Pengaplikasian metode Longest Common Subsequences dapat digunakan untuk
menyelesaikan berbagai masalah, contoh permasalahan yang dapat diselesaikan metode LCS mencakup :
21 1.
Sequence dari DNA atau gen yang dapat direpresentasikan sebagai deretan 4 huruf ACGT. Pada saat seorang ahli biologi yang meneliti tentang gen, bila dia
menemukan suatu sequence yang baru pada gen tersebut, biasanya mereka akan mencari tahu sequence lainnya yang mirip dengan sequence baru
tersebut. 2.
Pada program UNIX, „diff‟ digunakan untuk membandingkan dua file yang sama dengan versi yang berbeda, untuk menemukan perubahan yang terdapat
pada file tersebut. Hal tersebut dilakukan dengan cara menemukan Longest Common Subsequences
dari kedua file tersebut, dan menemukan subsequence yang tidak berubah, sehingga dapat ditemukan baris subsequence yang berbeda
atau diganti. 3.
Banyak text editor seperti “emacs” menampikan bagian dari sebuah file ke monitor, dan setiap kali file tersebut diganti, maka monitor akan ter-update.
Program tersebut ingin mengirimkan teks sesedikit mungkin ke terminal sehingga proses update tersebut dapat ditampilkan secara benar. Diperlukan
metode Longest Common Subsequences sehingga karakter-karakter pada file yang tidak berubah tetap tinggal di terminal dan hanya mengirimkan karakter-
karakter yang berubah saja University of California, 1996. Sebagai contoh, terdapat dua buah string, string S
1
mencakup deretan string berupa “AAACCGTGAGTTATTCGTTCTAGAA”, dan string S
2
mencakup deretan string “CACCCCTAAGGTACCTTTGGTTC”. Kesamaan substring pada string S
1
dan S
2
dapat dilihat pada Gambar 2.9. Pencarian subsequence terpanjang pada dua buah sequence secara manual tersebut akan memakan waktu yang sangat lama bahkan
mustahil dilakukan bila mencakup binary file sebagai input, dikarenakan binary file dapat mencapai ratusan bahkan ribuan baris sequence. Oleh karena itu, metode
Longest Common Subsequences dipakai untuk menyelesaikan kasus-kasus pencarian
subsequence yang mencakup binary file hingga pencarian informasi pada deretan
rangkaian DNA.
22
Gambar 2.9. Kesamaan substring S
1
dan S
2
Bila terdapat dua buah sequences yaitu X dan Y, dengan X = X
1
, X
2
, ..., X
m
dan Y = Y
1
, Y
2
, ..., Y
n
. Kemudian Z merupakan Longest Common Subsequences daripada sequence X dan Y dengan persamaan Z = Z
1
, Z
2
, ..., Z
k
. Maka akan terdapat persamaan-persamaan sebagai berikut :
1. Jika X
m
= Y
n,
maka dapat dipastikan bahwa Z
k
= X
m
= Y
n
. 2.
Jika X
m
Y
n
, maka X
m
Z
k
mengindikasikan bahwa Z terdapat pada LCSX
m-1
, Y. 3.
Jika X
m
Y
n
, maka Y
n
Z
k
mengindikasikan bahwa Z terdapat pada LCSX, Y
n-1
Klappenecker, 2011. Ilustrasi pencarian subsequence dari dua buah string dengan metode Longest
Common Subsequences adalah sebagai berikut:
Misalkan X memiliki sequence BDCB, dan Y memiliki sequence BACDB. Sequence X dan sequence Y diletakkan pada tabel seperti pada gambar 2.10.
1. Letak sequence X dan Y tidak berpengaruh terhadap perhitungan.
2. Input kolom paling kiri dan paling atas dengan angka 0.
3. Kemudian pertemukan setiap sequence satu per satu. Bila X sama dengan Y,
maka nilai pada kolom tersebut adalah n,n = n-1,n-1 + 1. Sedangkan bila X tidak sama dengan Y, maka nilai yang menjadi input adalah nilai terbesar yang
terdapat pada kolom n-1,n atau pada kolom n,n-1. Misalkan nilai X = B dan nilai Y = B, bertemu pada kolom 2,2, maka input kolom tersebut dengan nilai
1,1 + 1, dalam hal ini nilai 1,1 = 0, sehingga 0+1 = 1. Bila, nilai X = D dan nilai Y = B yang bertemu pada kolom 3,2, maka
bandingkan nilai dari kolom 2,2 yang bernilai 1 dengan nilai dari kolom 3,1
23 yang bernilai 0. Nilai 1 0, maka input pada kolom 3,2 adalah 1. Apabila
nilai pada kolom 2,2 sama dengan nilai pada kolom 3,1 maka input kolom 3,2 sama dengan kedua kolom tersebut.
4. Input seluruh kolom yang tersisa.
Gambar 2.10. Tabel X dan Y
Setelah itu, akan ditentukan Longest Common Subsequences LCS dari tabel yang sudah terisi tersebut. Langkah-langkah yang akan dilakukan adalah :
1. Meletakkan pointer pada kolom sudut kanan bawah, yakni kolom 5,6.
2. Pointer akan bergerak dengan salah satu pola, yakni ke kiri lalu ke atas atau ke
kanan lalu ke atas. Tetapi pointer tidak bisa bergerak menggunakan pola ini bila nilai pada kolom yang dituju tidak sama dengan nilai pada kolom semula.
Bila hal ini terjadi, maka pointer akan bergerak menyerong, misalnya dari 5,6 ke 4,5.
3. Sequence tersebut akan diletakkan dengan urutan dari kanan ke kiri.
4. Pointer akan terus bergerak sampai pada kolom dengan nilai 0. Pointer akan
berhenti, dan nilai dari LCS telah didapat. 5.
Pada gambar 2.11, dapat kita ambil kesimpulan bahwa nilai LCS antara X dan Y adalah BCB.
24
Gambar 2.11. Gambar ilustrasi perhitungan LCS
6. Setelah mendapatkan nilai LCS, maka penelitian akan dilanjutkan pada tahap
mencocokkan nilai LCS yang didapat dengan hex number pada file yang hendak diuji.
2.7. Penelitian Terdahulu