pencocokan dna menggunakan longest common subsequences (lcs)

12
7/23/2019 PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS) http://slidepdf.com/reader/full/pencocokan-dna-menggunakan-longest-common-subsequences-lcs 1/12 PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS) DISUSUN UNTUK MEMENUHI TUGAS AKHIR MATA KULIAH DESAIN ANALISIS DAN ALGORITMA OLEH : KELOMPOK 9 Nur Adli A. D. 135150207111119 Muhja Mufidah A. A. 135150207111120 UNIVERSITAS BRAWIJAYA MALANG 2015

Upload: muhja-mufidah

Post on 18-Feb-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

7/23/2019 PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

http://slidepdf.com/reader/full/pencocokan-dna-menggunakan-longest-common-subsequences-lcs 1/12

PENCOCOKAN DNA MENGGUNAKAN LONGEST

COMMON SUBSEQUENCES (LCS)

DISUSUN UNTUK MEMENUHI TUGAS AKHIR MATA KULIAH DESAIN

ANALISIS DAN ALGORITMA

OLEH :

KELOMPOK 9

Nur Adli A. D. 135150207111119

Muhja Mufidah A. A. 135150207111120

UNIVERSITAS BRAWIJAYA

MALANG

2015

Page 2: PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

7/23/2019 PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

http://slidepdf.com/reader/full/pencocokan-dna-menggunakan-longest-common-subsequences-lcs 2/12

ABSTRAK

Mencari rangkaian bersama terpanjang atau longest common subsequence  (LCS) dari

 beberapa buah rangkaian adalah sebuah masalah klasik dalam ilmu komputer. Masalah ini

adalah masalah dengan penyelesaian sederhana, yaitu berupa sebuah fungsi rekursif dengan

melakukan penghitungan yang sama secara berulang. Algoritma LCS ini telah dipelajariuntuk waktu yang lama dan sekarang telah menjadi bagian penting dari ilmu komputer.

Aplikasinya dipakai secara luas, tidak hanya terbatas pada lingkup ilmu komputer seperti

 pengenalan pola, namun juga di bidang biologi seperti untuk pencocokan DNA. Dalam

 pengaplikasian di bidang biologi sering diperlukan pembandingan atau pencocokan DNA dari

dua (atau lebih) organisme yang berbeda. Seuntai DNA terdiri dari serangkaian molekul yang

disebut basis. Basis yang mungkin adalah adenin, guanin, citosin, dan timin. Keempat basis

DNA ini dapat dituliskan dengan notasi huruf {A, C, G, T}. Untuk mengukur kemiripan

untaian DNA satu dan DNA kedua adalah dengan menemukan untaian DNA ketiga sebagai

untaian terpanjang dari kedua untaian, dimana basis pada untaian ketiga muncul di setiap

untaian pertama dan kedua. Semakin panjang untaian ketiga yang ditemukan, maka DNA

satu dan DNA kedua semakin mirip.

Kata kunci :  LCS, longest common subsequences, subrangkaian terpanjang, DNA, pencocokan DNA

Page 3: PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

7/23/2019 PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

http://slidepdf.com/reader/full/pencocokan-dna-menggunakan-longest-common-subsequences-lcs 3/12

BAB I

PENDAHULUAN

1.1. Latar Belakang

Mencari rangkaian bersama terpanjang atau longest common subsequence (LCS)

dari beberapa buah rangkaian adalah sebuah masalah klasik dalam ilmu komputer.

Masalah ini adalah masalah dengan penyelesaian sederhana, yaitu berupa sebuah fungsi

rekursif dengan melakukan penghitungan yang sama secara berulang. Algoritma LCS ini

telah dipelajari untuk waktu yang lama dan sekarang telah menjadi bagian penting dari

ilmu komputer. Algoritma ini akan mencari sub rangkaian terpanjang dari dua buah

rangkaian yang memiliki pola atau string yang cocok. Aplikasinya dipakai secara luas,

tidak hanya terbatas pada lingkup ilmu komputer seperti pengenalan pola, namun juga di bidang biologi seperti untuk pencocokan DNA.

Permasalahan pencocokan string tersebut akan coba diterapkan pada sequence

DNA (rangkaian DNA). Dalam pengaplikasian di bidang biologi ini, sering diperlukan

 pembandingan atau pencocokan DNA dari dua (atau lebih) organisme yang berbeda.

DNA merupakan sejenis asam nukleat yang tergolong biomolekul utama penyusun berat

kering setiap organisme dan merupakan sebuah polimer yang terdiri dari 3 komponen

utama, yaitu gugus fosfat, gula deoksiribosa, dan basa nitrogen. Seuntai DNA terdiri dari

serangkaian molekul yang disebut basis. Basis yang mungkin adalah adenin (A), guanin

(G), citosin (C), dan timin (T). Rangkaian DNA mengandung informasi setiap organisme

dan dapat dianggap sebagai rangkaian string yang merupakan kombinasi dari 4 karakter

yaitu A,T,G,C.

Untuk mengukur kemiripan untaian DNA satu dan DNA kedua adalah dengan

menemukan untaian DNA ketiga sebagai untaian terpanjang dari kedua untaian, dimana

 basis pada untaian ketiga muncul di setiap untaian pertama dan kedua. Semakin panjang

untaian ketiga yang ditemukan, maka DNA satu dan DNA kedua semakin mirip.

Berbagai algoritma pencocokan string dapat digunakan untuk mengukur

kemiripan antara dua untaian DNA, namun algoritma yang paling cocok adalah dengan

menggunakan LCS seperti yang telah dijelaskan diatas. Oleh karenanya, kami membuat

sebuah program berbasis Java dengan menggunakan algoritma LCS sebagai program

 pencocokan string DNA.

Page 4: PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

7/23/2019 PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

http://slidepdf.com/reader/full/pencocokan-dna-menggunakan-longest-common-subsequences-lcs 4/12

1.2. Rumusan Masalah

Berdasarkan latar belakang yang telah diulas, maka permasalahan yang dibahas

adalah sebagai berikut :

1.  Apa itu algoritma longest common subsequence (LCS) ?

2. 

Bagaimana untaian DNA dikatakan mirip dengan untaian DNA yang lain ?

3.  Bagaimana cara mengimplementasikan algoritma longest common subsequence 

(LCS) sebagai algoritma pencocokan DNA sebagai program berbahasa Java?

4. 

Bagaimana kompleksitas yang terbentuk dari algoritma yang digunakan?

1.3. Tujuan Penulisan

Dari rumusan masalah yang terbentuk, maka tujuan dari penulisan makalah ini adalah :

1.  Mengetahui ulasan dari algoritma longest common subsequence (LCS)

2.  Mengetahui cara pencocokan dua untaian DNA sehingga diketahui tingkatan

kemiripannya

3.  Mengetahui pengimplementasian algoritma longest common subsequence  (LCS)

sebagai algoritma pencocokan DNA dalam program berbahasa Java

4.  Mengetahui kompleksitas dari algoritma longest common subsequence (LCS)

Page 5: PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

7/23/2019 PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

http://slidepdf.com/reader/full/pencocokan-dna-menggunakan-longest-common-subsequences-lcs 5/12

BAB II

PEMBAHASAN

2.1. Longest Common Subsequences (LCS)

Longest Common Subsequences adalah masalah mencari subrangkaian bersama

(common subsequence) terpanjang dari beberapa (biasanya hanya 2) buah rangkaian.

Subrangkaian ( subsequence) dari sebuah string S adalah sekumpulan karakter yang ada

 pada S yang mempunyai urutan kemunculan sama. Dalam definisi formalnya, rangkaian

Z adalah subrangkaian dari X <x1, x2, ..., xm> , jika terdapat urutan menaik <i1, i2, ..., ik >

yang merupakan indeks X untuk semua j=1,2,..,k, yang memenuhi xi=z j .

Misal pada S = GAATACA, beberapa subrangkaian yang mungkin adalah : GAT,

TCA, dan GC. Subrangkaian bersama (common subsequence) dari 2 rangkaian adalah

subrangkaian yang terdapat pada kedua rangkaian tersebut. Misal S1 = GATTTAC dan

S2 = AAGATC, maka GAT, GATC, maupun GAC adalah subrangkaian bersama dari S1

dan S2. Subrangkaian bersama terpanjang (longest common subsequences) adalah

subrangkaian bersama dari 2 rangkaian yang paling panjang

2.1.1.  Algoritma Penyelesaian LCS

Algoritma untuk permasalahan LCS adalah berdasarkan teorema di bawah :

Misal X = < x1, x2, .. , xm  > dan Y = < y1, y2, .. , yn  > adalah rangkaian dan

Z = < z1, z2, .. , zk > adalah suatu LCS dari X dan Y.

1. Jika xm = yn, maka zk = xm = yn dan Zk-1 adalah suatu LCS dari Xm-1 dan

Yn-1.

2. Jika xm ≠ yn maka zk ≠xm mengimplikasikan bahwa Z adalah suatu LCS dari

Xm-1 dan Y

3. Jika xm ≠ yn maka zk ≠ yn mengimplikasikan bahwa Z adalah suatu LCS dari

X dan Yn-1

2.1.2.  Mendapatkan Panjang LCS

Misal m adalah panjang S1, n adalah panjang S2, dan tab adalah matriks

 berukuran m x n, dan tab[i, j] adalah panjang LCS dari subrangkaian pertama yang terdiri

dari i karakter pertama S1 dengan subrangkaian kedua yang terdiri dari j karakter

Page 6: PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

7/23/2019 PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

http://slidepdf.com/reader/full/pencocokan-dna-menggunakan-longest-common-subsequences-lcs 6/12

 pertama S2, maka untuk 1 ≤ i ≤ m dan 1 ≤ j ≤ n, sesuai dengan fungsi rekursif di atas,

maka :

 tab[i -1, j-1]+1, S1[i]=S2[j]

tab[i, j] =   max (tab[i -1, j], tab[i, j-1])

Misal, untuk S1 = AGCGA dan S2 = CAGATAGAG, tabel yang terbentuk

adalah tabel berukuran 5 x 9 yang isinya sebagai berikut :

Tabel hasil kalkulasi LCS dari AGCGA dan CAGATAGAG

C A G A T A G A G

1 2 3 4 5 6 7 8 9

A

G

C

G

A

1

2

3

4

5

0 1 1 1 1 1 1 1 1

0 1 2 2 2 2 2 2 2

1 1 2 2 2 2 2 2 2

1 1 2 2 2 2 3 3 3

1 2 2 3 3 3 3 4 4

Dan sesuai dengan arti notasi dari setiap tab[i, j] bahwa LCS dari S1 dan S2

adalah tab[m, n] atau dalam kasus ini adalah 4.

2.1.3.  Mendapatkan LCS

Sedangkan untuk mendapatkan LCS yang dimaksud, kita bisa merunut balik tabel

dimulai dari tab[m, n]. Dalam runut balik ini, yang kita lakukan sebenarnya hanyalah

merunut balik pilihan yang dilakukan pada saat kalkulasi tab[i, j].

Untuk setiap 1 ≤ i ≤ m dan 1 ≤ j ≤ n, jika S1[i] sama den gan S2[j], maka makakarakter itu pasti terdapat pada LCS. Selain itu, cek, darimana dia mendapatkan LCS saat

itu, lakukan pemilihan yang sama. Lakukan hal tersebut dimulai dari i = m dan j = n.

Setelah hal itu dilakukan maka akan terbentuk tabel seperti di bawah ini. Di mana

cell yang berwarna kuning menandakan karakter yang masuk ke dalam LCS.

Page 7: PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

7/23/2019 PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

http://slidepdf.com/reader/full/pencocokan-dna-menggunakan-longest-common-subsequences-lcs 7/12

Tabel hasil perunutan balik dari AGCGA dan CAGATAGAG

C A G A T A G A G

1 2 3 4 5 6 7 8 9

AG

C

G

A

12

3

4

5

0 1 1 1 1 1 1 1 10 1 2 2 2 2 2 2 2

1 1 2 2 2 2 2 2 2

1 1 2 2 2 2 3 3 3

1 2 2 3 3 3 3 4 4

Berdasarkan tabel di atas, terlihat bahwa LCSnya adalah AGGA.

2.2. 

Pencocokan DNA

Sebagian besar subjek dari biologi molekuler adalah yang berhubungan dengan

analisis dan perbandingan dari materi genetik (DNA, RNA, protein, kromosom, gen, dan

sebagainya) dari organisme yang berbeda-beda. Untuk melakukan hal ini diperlukan

 pengumpulan, pemerosesan dan penyimpanan informasi dalam jumlah yang besar.

Untungnya, banyak jenis dari data biomolekular memiliki struktur data yang mirip,

contohnya struktur primer dari protein adalah rantai satu dimensi dari residu asam amino

dan untaiannya dapat dituliskan sebagai string dengan panjang tertentu.

Struktur yang sama ditemukan juga pada rangkaian dalam DNA, yang biasa

disebut rangkaian genetik. Rangkaian genetik merupakan sebuah string yang dibentuk

dari empat buah alfabet {A,G,T,C}. Keempat alfabet ini mewakili struktur penyusun

DNA yang terdiri dari purin (Adenin an Guanin) dan pirimidin (Timin dan Sitosin). Gen

merupakan rangkaian genetik yang berisi informasi-informasi yang dibutuhkan untuk

menyusun sebuah protein.

Untuk mengukur kemiripan untaian DNA satu dan DNA kedua adalah dengan

menemukan untaian DNA ketiga sebagai untaian terpanjang dari kedua untaian, dimana

 basis pada untaian ketiga muncul di setiap untaian pertama dan kedua. Semakin panjang

untaian ketiga yang ditemukan, maka DNA satu dan DNA kedua semakin mirip.

2.3. Implementasi pada Program

Implementasi dilakukan menggunakan bahasa Java. Source di bawah ini

merupakan implementasi langsung dari algoritma LCS untuk pengimplementasian DNA.Source code-nya dalam bahasa Java adalah sebagai berikut :

Page 8: PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

7/23/2019 PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

http://slidepdf.com/reader/full/pencocokan-dna-menggunakan-longest-common-subsequences-lcs 8/12

 package latihan;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.IOException;

 public class LongestCommonSubsequence {

/** Fungsi untuk LCS **/

 public String lcs(String str1, String str2) {

int l1 = str1.length();

int l2 = str2.length();

int[][] arr = new int[l1 + 1][l2 + 1];

for (int i = l1 - 1; i >= 0; i--) {

for (int j = l2 - 1; j >= 0; j--) {

if (str1.charAt(i) == str2.charAt(j)) {

arr[i][j] = arr[i + 1][j + 1] + 1;

}

else {

arr[i][j] = Math.max(arr[i + 1][j], arr[i][j + 1]);

}

}

}

int i = 0, j = 0;

StringBuffer sb = new StringBuffer();

while (i < l1 && j < l2) {

if (str1.charAt(i) == str2.charAt(j)) {

sb.append(str1.charAt(i));

i++;

 j++;

} else if (arr[i + 1][j] >= arr[i][j + 1]) {

i++;

} else {

 j++;

}

}

return sb.toString();

}

Page 9: PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

7/23/2019 PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

http://slidepdf.com/reader/full/pencocokan-dna-menggunakan-longest-common-subsequences-lcs 9/12

 

 public static void main(String[] args) throws IOException {

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

System.out.println("****DNA COMPARISON USING LCS ALGORITHM BY

KELOMPOK 9***");System.out.println("Masukkan kedua untaian DNA sesuai petunjuk di bawah");

System.out.println("Untaian DNA : Adenin (A), Guanin (G), Citosin (C), Timin

(T)");

System.out.println("\nEnter DNA String 1 : ");

String str1 = br.readLine();

System.out.println("\nEnter DNA String 2");

String str2 = br.readLine();

LongestCommonSubsequence obj = new LongestCommonSubsequence();

String result = obj.lcs(str1, str2);

System.out.println("\nLongest Common Subsequence dari Kedua DNA adalah :

"+ result);

}

}

2.4. 

Keluaran Program

Permasalahan atau contoh kasus yang diambil untuk menguji program adalah

seperti pada permasalahan di atas, dengan String DNA 1 yaitu AGCGA dan String DNA

2 yaitu CAGATAGAG. Output atau keluaran yang dihasilkan ketika program dijalankan

adalah seperti screenshot berikut :

Page 10: PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

7/23/2019 PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

http://slidepdf.com/reader/full/pencocokan-dna-menggunakan-longest-common-subsequences-lcs 10/12

2.5. Kompleksitas Algoritma

Berikut adalah algoritma LONGEST-COMMON-SUBSEQUENCE

Dari algoritma di atas, kompleksitas nya adalah O(mn). Algoritma di atas akan

menentukan subsequence terpanjang dan kemudian menelusuri kembali dengan cara

 backtracking untuk mendapatkan urutan subsequence terpanjang nya.

2.6. Manualisasi Algoritma dengan Menggunakan Excell

Berikut adalah 2 string urutan DNA yang di gunakan dalam mengimplementasikan

algoritma LCS (Longest Commong Subsequence) :  String DNA 1 = AGCGA 

  String DNA 2 = CAGATAGAG 

Untuk mendapatkan hasil LCS dari kedua DNA tersebut digunakan rumus berikut :

Berikut adalah pengimplementasian rumus di atas dalam program excel :

[, ] = { 0 = 0 = 0[ − 1 , − 1] + 1 , > 0 = max([ , − 1], [ − 1 , ] , > 0   ≠  

Page 11: PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

7/23/2019 PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

http://slidepdf.com/reader/full/pencocokan-dna-menggunakan-longest-common-subsequences-lcs 11/12

Implementasikan fungsi tersebut kesemua cell untuk mendapatkan Longest Common

Sequence dari kedua String DNA di atas. Setelah fungsi tersebut telah di implementasikan

ke semua cell yang terkait, maka akan di dapatkan hasil LCS nya, yaitu AGGA.

Page 12: PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

7/23/2019 PENCOCOKAN DNA MENGGUNAKAN LONGEST COMMON SUBSEQUENCES (LCS)

http://slidepdf.com/reader/full/pencocokan-dna-menggunakan-longest-common-subsequences-lcs 12/12

BAB III

PENUTUP

Kesimpulan

1. 

Algoritma longest common subsequence  (LCS) adalah algoritma untuk mencari

subrangkaian bersama (common subsequence) terpanjang dari beberapa buah

rangkaian.

2.  Untuk mengukur kemiripan untaian DNA satu dan DNA kedua adalah dengan

menemukan untaian DNA ketiga sebagai untaian terpanjang dari kedua untaian,

dimana basis pada untaian ketiga muncul di setiap untaian pertama dan kedua.

Semakin panjang untaian ketiga yang ditemukan, maka DNA satu dan DNA

kedua semakin mirip.3.  Kompleksitas dari algoritma LCS adalah O(mn).