Binary Longest Common Subsequences

18 3 Table Stream 4 Data Stream 5 Custom XML Storage Microsoft Word 2007 6 Bit 0 atau object stream yang memuat data privat untuk objek OLE 2.0 Object Linking and Embedding 2.0 yang di- embed ke dokumen Word Microsoft, 2007. Contoh hex number dari tipe file DOC terdapat pada Gambar 2.6. Gambar 2.6. Contoh rangkaian hex number dari random DOC

2.4. Binary

File Binary file merupakan sebuah file komputer yang bukan merupakan file teks. File tersebut bisa saja memuat tipe data apa saja, kemudian diubah ke dalam bentuk binary untuk tujuan penyimpanan dan pemrosesan komputer. Banyak format file binary yang memuat bagian yang dapat diterjemahkan ke dalam teks, sebagai contoh beberapa file dokumen seperti file Microsoft Word dengan ekstensi doc yang memuat informasi berupa teks yang terdapat pada file tersebut dan juga informasi-informasi lainnya dalam bentuk binary . Binary file umumnya memuat byte yang akan diterjemahkan menjadi gambar, suara, text, maupun file lain yang telah dikompresi. Beberapa binary file memuat 19 header, blok-blok metadata yang digunakan oleh program komputer untuk menerjemahkan data yang ada di dalam file . Pada file header umumnya berisi signature atau magic number yang dapat mengidentifikasi format file . Binary file yang tidak memiliki header disebut juga sebagai flat binary file . Untuk mengirim binary file melalui sebuah sistem khusus seperti e-mail yang tidak mendukung semua jenis data, biasanya binary tersebut diubah menjadi plain teks atau lambang-lambang khusus sebagai representasi, misalnya menggunakan Base64. Proses mengubah atau encoding tersebut biasanya memiliki kelemahan, seperti ukuran file yang bertambah pada saat proses mengirim, serta dibutuhkan proses penerjemahan dari plain teks ke binary setelah file diterima. Permasalahan ukuran file yang bertambah dapat diselesaikan dengan cara melakukan kompresi data, sehingga data yang dikirim memiliki ukuran file yang relatif sama dengan file asli. Hex editor merupakan aplikasi untuk membaca binary yang terdapat pada suatu file maupun mengubah tipe data binary menjadi tipe data hexadecimal, decimal maupun karakter ASCII . Perbandingan binary dan hex pada satu file .pdf dapat dilihat pada Gambar 2.7 dan Gambar 2.8. Gambar 2.7. Binary pada file PDF 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