ABSTRAK
RANCANG BANGUN APLIKASI PENCARI PALINDROME PADA RANTAI DEOXYRIBONUCLEIC ACID (DNA)
Oleh
UMI SULISTIYANINGSIH
Deoxyribonucleic acid (DNA) atau asam deosiribonukleat (AND) adalah materi genetik yang paling penting pada setiap mahluk hidup. Dengan semakin berkembangnya teknologi informasi, munculah bidang kajian bioinformatika yang semakin membuka lebar jalan penelitian lebih lanjut tentang DNA dan menemukan berbagai hal baru seperti rekayasa genetika yang dapat memberikan manfaat yang luar biasa bagi manusia sehingga rekayasa genetika terus dikembangkan lagi untuk mempermudah prosesnya. Aplikasi ini merupakan salah satu aplikasi yang dibuat untuk membantu menemukan palindrom dengan 6 basa nitrogen pada rantai DNA. Dengan menggunakan Borland C++ Builder sebagai bahasa pemrograman yang digunakan untuk membangun aplikasi, aplikasi ini dapat memberikan hasil keluaran berupa palindrom dan letak palindrom pada rantai yang digunakan sebagai masukan.
THE DEVELOPMENT OF PALINDROME SEARCHING APPLICATION
AT DEOXYRIBONUCLEIC ACID’S SEQUENCE
By
UMI SULISTIYANINGSIH
Deoxyribonucleic acid (DNA) is the most important genetic element of organism. Bioinformatics, the study about biology and it’s relationship with information technology found that there are a lot of information on DNA that can be used for better life. Palindrome is an important thing on DNA because most of genetical engineering happen on palindrome. Therefore, we develop an application for searching palindrome based on C++ programming.
BAB I
PENDAHULUAN
1.1 LATAR BELAKANG
Seiring dengan perkembangan zaman, suatu sistem informasi terus menerus menjadi sorotan dan kajian publik dunia. Dalam kurun waktu 20 tahun terakhir, sistem informasi terus dikembangkan guna memenuhi kebutuhan sebuah kemudahan dan efektivitas dalam kehidupan (Fachrurrozi, 2005). Penetrasi Teknologi Informasi (TI) dalam berbagai disiplin ilmu telah melipatgandakan perkembangan ilmu bersangkutan. Berbagai kajian baru bermunculan, sejalan dengan perkembangan TI itu sendiri dan disiplin ilmu yang didukungnya. Aplikasi TI dalam bidang biologi molekul telah melahirkan bidang Bioinformatika (Aprijani dan Elfaizi, 2004).
Selain penelitian-penelitian tersebut, masih banyak pula penelitian lain yang berkaitan seperti pada bidang biokimia molekuler yang banyak tertuju pada analisis protein dan DNA sebagai komponen utama kromosom. Hal ini karena DNA sebagai bank data menyediakan informasi lengkap mengenai ciri-ciri makhluk hidup pemilik DNA tersebut. Suatu rantai DNA tersusun dari fosfat, gula ribosa, dan 4 jenis basa nitrogen (nukleotida) yaitu Adenin (A), Guanin (G), Sitosin (S), dan Timin (T). Meskipun urutan basa nitrogen tersusun secara bervariasi, jumlah setiap basa nitrogen dalam DNA tidak sama. Dalam DNA, keempat huruf dari basa nitrogen tersebut selalu berpasangan, yaitu Adenin (A) dengan Timin (T) dan Guanin (G) dengan Sitosin (S). Akibatnya, suatu molekul DNA adalah sepasang sekuens atau rantai basa nitrogen yang saling berpasangan dan berukuran sangat panjang. DNA sel tubuh manusia mengandung kira-kira 3.000 juta basa nitrogen (Brookers, 1999).
palindrome-nya dalam DNA. Oleh karena itu, dibutuhkan suatu aplikasi untuk menentukan posisi atau letak segmen palindrome dalam satu molekul DNA.
Dengan demikian, aplikasi ini diharapkan dapat membantu untuk menentukan banyak, urutan, dan posisi palindrom pada suatu segmen DNA.
1.2 RUMUSAN MASALAH
Pada kajian yang dilakukan, dibuat suatu aplikasi yang digunakan sebagai pencari urutan palindrome dalam suatu molekul DNA.
1.3 BATASAN MASALAH
Batasan masalah yang diberikan pada penelitian ini adalah:
1. Rantai (molekul) DNA hanya digunakan sebagai masukan dan tidak menghasilkan informasi apapun mengenai DNA tersebut kecuali informasi mengenai segmen rantai yang palindrome.
2. Palindrom pada rantai (molekul) DNA yang dicari adalah palindrom dengan 6 basa nitrogen dan tidak terputus (terinterupsi).
3. Pengembangan aplikasi menggunakan bahasa pemrograman C++, yaitu versi Borland C++ Builder 6 Enterprise.
1.4 TUJUAN
Tujuan dari kajian ini adalah:
1. Menemukan segmen palindrome pada rantai DNA.
2. Menentukan banyaknya segmen palindrome yang terdapat pada rantai DNA.
3. Menentukan letak segmen palindrome yang ditemukan pada rantai DNA.
1.5 MANFAAT
Secara umum, manfaat dari penelitian ini adalah
1. Dapat mempelajari algoritma pencari palindrome DNA pada molekul DNA yang di kembangkan.
BAB II
LANDASAN TEORI
2.1Deoxyribonucleic Acid (DNA)
2.1.1 Pengertian DNA
Deoxyribonucleic Acid (DNA) atau Asam Deoxyribonukleat (ADN) adalah materi genetik dari sebagian besar organisme yang menyimpan informasi. Sebagai contoh, pada DNA manusia menyimpan informasi tentang warna kulit, warna dan bentuk rambut, pupil mata, bentuk hidung, wajah, dan telinga (Brookers, 1999).
2.1.2 Sejarah DNA
Pada tahun 1869, seorang ilmuan muda bernama Frederick Miescer yang sedang meneliti inti sel darah putih menemukan endapan berwarna abu-abu yang diperoleh dari penambahan asam basa ke inti
Pada tahun 1953, dua orang asal Amerika Serikat dan Inggris, James Wetson dan Francis Crick menemukan DNA. Temuan mereka di publikasikan pada suatu karya ilmiah yang berjudul “Molecular Structural of Nucleic Acids; A Structure for Deoxyribose Nucleic Acid" yang diterbitkan pada majalah Nature pada tahun yang sama.
Sejak saat itu, penelitian tentang DNA terus dikembangkan dan dijadikan fokus penelitian baru bagi para ilmuan. Hingga saat ini sudah banyak perkembangan dan kontribusi pada ilmu pengetahuan, terutama kimia dan biologi (Syatra, 2011).
2.1.3 Letak DNA
Pada tahun 1655, Robert Hooke menemukan adanya ruang-ruang kecil dalam sepotong gabus yang di sebut cella atau sel. Pada tahun 1831, seorang ilmuan bernama Brown mengamati sel pada tumbuhan dan mengenalkan nucleus atau inti sel yang berfungsi sebagai pusat aktifitas sel. Pada tahun 1869, Frederick Miescher menemukan adanya bahan aktif di inti sel yang disebut nuklein.
2.1.4 Struktur DNA
Bentuk molekul DNA sangat unik yaitu dua untai yang berpilin menyerupai tangga spiral atau dikenal dengan Heliks Ganda atau Double Helix dan berputar ke kanan sesuai dengan arah jarum jam.
DNA dari satu sel tubuh manusia mengandung kira-kira 3.000 juta basa nitrogen dan apabila DNA dari semua sel tubuh manusia direntangkan dari ujung ke ujung, panjangnya sama dengan jarak bumi ke bulan bolak-balik atau lebih dari 700.000 kilometer (Brookers, 2005).
2.2 Palindrom
Palindrom berasal dari bahasa Yunani yaitu palin yang berarti “lagi” dan dromos yang berarti “jalan” atau “arah” (Wastuargo, 2010). Istilah palindrom dikenalkan oleh penulis dari Inggris bernama Ben Janson pada abad ke-17.
Palindrom adalah kata, rangkaian kata, atau bilangan yang terbaca sama baik dari depan maupun dari belakang, seperti kodok, radar, taat (Alwi, 2003).
Suatu kata atau bilangan yang dapat dikatakan palindrom jika dan hanya jika kata atau bilangan tersebut memiliki reversal yang sama. Palindrom yang tidak memiliki daerah yang terbalik yang benar-benar simetri atau daerah yang bukan mengulang terbalik tidak dapat disebut palindrome (Sinden, 1994).
2.3 Palindrom pada Deoxyribonucleid Acid (DNA)
Palindrom pada rantai Deoxyribonucleic Acid (DNA) berbeda dengan palindrom pada kata atau kalimat. Palindrom pada DNA memiliki simetri yang membentuk untai DNA berlawanan dengan sekuens basa terbaliknya atau memiliki reversal yang saling melengkapi (Goh dan Liew, 2009).
2.3.1 Rekombinan DNA
Keuntungan teknologi rekayasa genetik sangat besar dan membawa harapan yang besar pula bagi masyarakat. Sebagai contoh hasil aplikasi industri dan tanaman hasil rekombinan DNA yang saat ini banyak dikembangkan.
DNA Rekombinan adalah DNA yang mengandung beberapa gen yang digabungkan dari dua sumber gen yang berbeda atau lebih dengan cara rekayasa genetika (Brookers, 2005).
mempunyai urutan basa nitrogen yang bersifat palindrome (Elrod dan William, 2007).
2.3.2 Pengkloningan Gen
Penemuan teknologi kloning gen mengarahkan pada kemajuan genetika molekuler termasuk teknologi rekombinan DNA. Kloning gen hasil teknologi rekombinan DNA dapat dijadikan pustaka gen atau bank gen yaitu koleksi fragmen DNA yang mewakili keseluruhan gen suatu organisme.
Selain dimanfaatkan oleh para peneliti untuk perkembangan ilmu pengetahuan dan pemanfaatannya untuk peningkatan kualitas hidup, secara alami DNA dengan pola palindrom juga digunakan oleh sel untuk perbaikan dalam metabolisme sel. Namun, pola palindrom yang terlalu sering atau terlalu panjang mengakibatkan timbulnya kelainan atau bahkan mutasi. Pola palindrom yang terlalu panjang dapat mengakibatkan perubahan bentuk double helix DNA, kromosom berhenti melakukan replikasi, kromosom rapuh, dan gangguan neurologis (Reid dan Thuler, 2009).
Tabel 1. Palindrome pada DNA dengan 6 basa nitrogen AAATTT AATATT[1] AACGTT AAGCTT[2] CCCGGG[11] CCGCGG[12] CCATGG[13] CCTAGG[14] TTTAAA[23] TTATTT TTCGAA[24] TTGCAA GGGCCC[33] GGCGCC[34] GGATCC[35] GGTACC[36] ACCGGT ACGCGT[3] ACATGT ACTAGT[4] CAATTG CATATG[15] CACGTG CAGCTG[16] TCATGA[25] TCTAGA[26] TCCGGA[27] TCGCGA[28] GAGCTC[37] GACGTC[38] GAATTC[39] GATATC[40] AGGCCT[5] AGCGCT AGATCT[6] AGTACT[7] CTTAAG[17] CTATAG CTCGAG[18][19] CTGCAG[20] TGATCA[29] TGTACA TGGCCA[30] TGCGCA[31] GTGCAC[41] GTCGAC[42][43] GTTAAC[44] GTATAC[42] ATATAT ATTAAT[8] ATGCAT[9] ATCGAT[10] CGCGCG CGGCCG[21] CGATCG[22] CGTACG TATATA TAATTA TAGCTA TACGTA[32] GCGCGC[45] GCCGGC[46] GCATGC[47] GCTAGC[48] Keterangan:
1.Nomor dalam tanda kurung menunjukkan enzim retriksi yang mengenali palindrom tersebut.
2.Jenis-jenis enzim retriksi dapat dilihat pada tabel 2.
Tabel 2. Enzim yang mengenali palindrome dengan 6 huruf basa nitrogen (Old dan Primrose, 2003)
[1] Ssp I [2] Hind III [3] Mlv I [4] Spe I [5] Stu I [6] Bgl II [7] Sca I [8] Ase I [9] Nsi I [10] Cla I
[11] Sma I [12] Sac II [13] Nco I [14] Avr II [15] Nde I [16] Pvu II [17] Alf II [18] PaeR7 I [19] Xho I [20] Pst I [21] Eag I [22] Pvu I
[23] Dra I [24] Bst I [25] BspH I [26] Xba I [27] BspM II [28] Nru I [29] Bcl I [30] Bal I [31] Fsp I [32] SnaB I
[image:13.595.171.517.448.708.2]Terdapat 46 dari 64 palindrom yang dikenali oleh 48 jenis enzim retriksi. Sedangkan 18 palindrom lainnya, belum diketahui enzim retriksi yang mengenalinya.
2.4 Bioinformatika
Bioinformatika pertama kali dikemukakan pada tahun 1980-an untuk mengacu pada penerapan ilmu komputer dalam bidang biologi. Tetapi, penerapan dalam bidang-bidang bioinformatika seperti pembuatan database dan pengembangan algoritma untuk analisis sekuen biologi telah dilakukan sejak tahun 1960-an. Desakan untuk mengumpulkan, menyimpan, dan menganalisis data-data biologis dari database DNA, RNA, maupun protein menyebabkan perkembangan kajian tentang bioinformatika semakin berkembang.
genom (function genomic), struktur protein terutama pada manusia (structural genomic), dan masih banyak lagi (Aprijani dan Elfaizi, 2004).
Perangkat utama bioinformatika adalah software dan didukung oleh ketersediaan internet. Ketersediaan internet sebagai basis data bioinformatika memudahkan ilmuan mengumpulkan hasil sekuensing ke dalam basis data dan memperoleh sekuen biologis sebagai bahan analisis. Bioinformatika berkaitan dengan teknologi database baik bersifat umum maupun pribadi. Beberapa contoh penyimpanan bioinformatika umum seperti GanBank yang ditangani oleh NCBI (National Centre for Biotechnology information) di Amerika Serikat, DDBJ (DNA Data bank of Japan) di Jepang, EMBL (Europan Molecular Biology Laboratory) di Eropa atau PDB (Protein Data Bank) (Elrod dan William, 2007).
2.5 Bahasa Pemrograman C++
Bahasa pemrograman C++ dikembangkan oleh Bjarne Stroustrup dari bahasa pemrograman C. Pertama kali digunakan pada Agustus 1983 oleh AT&T dan memiliki compiler asli yaitu CFront. C++ memiliki nama asli
“C with Classes” adalah suatu bahasa pemrograman komputer yang telah
diperluas dengan kemampuan object oriented.
menyediakan kemampuan yang ada pada bahasa tingkat rendah seperti operasi bit, operasi byte, pengaksesan memori, dan sebagainya.
Tujuan utama pembuatan bahasa C++ adalah untuk meningkatkan produktivitas program dalam membuat aplikasi. C++ mengurangi kekompleksitasan terutama pada program yang besar yang terdiri dari 10.000 baris atau lebih. Alasan pengembangan bahasa C++ dari bahasa C ini antara lain:
1. C adalah bahasa pemrograman yang popular.
2. C adalah bahasa pemrograman yang memiliki portabilitas yang tinggi.
Bahasa C tidak hanya dapat dijalankan pada satu platform saja, tetapi juga dapat di compile dan dijalankan di platform lain dengan sedikit atau tanpa perubahan.
3. C adalah bahasa pemrograman dengan kata kunci (keywords) yang sedikit.
4. C adalah bahasa pemrograman yang fleksibel
C dapat digunakan untuk membuat dan mengembangkan berbagai platform seperti operating sistem, word processor, graphic processor, ataupun compiler untuk bahasa pemrograman.
Contoh sistem operasi yang dibuat dengan menggunakan bahasa pemrograman C adalah UNIX dan Macroshell.
5. C adalah bahasa pemrograman yang bersifat moduler
Program C ditulis dalam routine yang disebut fungsi. Fungsi ini dapat dipanggil dan digunakan lagi pada aplikasi lain.
Oleh karena itu, program dengan bahasa pemrograman C secara bertahap dapat diubah ke dalam bahasa pemrograman C++. Kelebihan bahasa C++ antara lain:
1. Kecepatan proses
2. Program yang teratur sehingga baik untuk dokumentasi
3. Program yang terstruktur memudahkan modifikasi dan koreksi
4. Tersedia Standard Template Library (STL)
5. Mendukung OOP atau Object Oriented Programming
6. Dukungan pustaka banyak tersedia
1. Banyaknya operator dan fleksibilitas program terkadang membuat programmer bingung.
2. Pada pemula, umumnya sulit menggunakan pointer.
2.5.1 C++ Builder
C++ dirilis oleh Borland Internasional Inc. Selain Borland C++, juga dirilis Turbo C++ yang sama-sama dapat digunakan untuk mengkompilasi kode C++. C++ builder adalah sebuah aplikasi yang digunakan untuk pengembangan dengan memanfaatkan keistimewaan konsep-konsep antar muka grafis dan menghasilkan program aplikasi yang beroperasi di lingkungan windows (Suryana, 2009).
Kelebihan Borland C++ dibandingkan dengan compiler C++ yang lain adalah:
1. Kecepatan dan efisiensi kompilasi.
2. Digolongkan dalam kelompok RAD (Rapid Application Development)
3. Pengembangan Database dalam pemrograman basis data ini dapat dijalankan tanpa menuliskan kode
Tetapi dibandingkan dengan compiler C++ yang lain, Borland C++ juga memiliki kelemahan yaitu pemrograman dengan menggunakan Borland C++ terutama menyangkut tampilan jauh lebih sulit.
2.6 Metode Waterfall
[image:19.595.148.522.383.655.2]Salah satu metode pengembang aplikasi adalah metode waterfall. Dengan menggunakan metode pengembangan aplikasi waterfall ini, tahapan-tahapan yang dilakukan dalam pembuatan aplikasi bersifat sistematis, berurutan dalam membangun software/aplikasi. Berikut tahapan-tahapan pengembangan aplikasi dengan menggunakan metode waterfall:
Gambar 1. Diagram Waterfall
R equirem ent
D esign
C oding
T esting
1. Requirement Analysis
Requirement Analysis adalah tahapan dimana seluruh kebutuhan dan keinginan terhadap aplikasi secara spesifik harus diketahui untuk
menjawab pertanyaan “Apa yang dapat dilakukan aplikasi setelah
dibangun?”.
Walaupun terlihat mudah, tetapi pada tahap ini sebenarnya aplikasi yang akan dibuat dapat memberikan beberapa pilihan untuk tahap design dimana harus diketahui secara pasti bagaimana bentuk masukan, keluaran, interface, penyimpanan datanya sehingga hasil aplikasi yang akan dibuat benar-benar sesuai dengan aplikasi yang diinginkan.
2. Disain
Disain aplikasi menunjukkan bagaimana aplikasi ini dibangun atau disebut blueprint aplikasi. Beberapa hal yang perlu disiapkan pada tahap ini adalah:
a. Disain Arsitektur b. Disain Antarmuka c. Disain Komponen d. Disain Struktur Data e. Disain Algoritma
(Fariza,2008 ).
3. Implementation / Coding
Pada tahap ini, hasil dari design diterjemahkan kedalam bahasa pemrograman yang akan digunakan dalam membangun sistem.
4. Testing/Pengujian
Pengujian sangat diperlukan untuk menemukan kesalahan pada aplikasi. Pengujian membuktikan adanya kesalahan program tetapi tidak secara langsung memperlihatkan kesalahan tersebut. Pengujian dilakukan dengan cara menguji sebanyak mungkin untuk mendapatkan kesalahan sebanyak mungkin.
Pada tahap ini, diberikan masukan pada aplikasi dan membandingkan hasil keluarannya dengan hasil keluaran yang direncanakan pada tahap requirements.
Terdapat dua jenis pengujian, yaitu:
a. Black-Box Testing
Pengujian Black-Box ini tidak memperhitungkan bagaimana aplikasi di rancang, yaitu membandingkan hasil keluaran yang dihasilkan aplikasi dengan hasil keluaran pada requirement.
Pada metode pengujian ini, penguji tidak dapat melihat source code dan algoritma program, tetapi hanya berupa interface program. Tujuan dari black-box adalah mencari kesalahan pada
3) Struktur data atau akses database 4) Performa
5) Inisialisasi dan tujuan akhir.
b. White-Box Testing
Pengujian White-Box dilakukan berdasarkan design aplikasi. Pengujian White-Box digunakan untuk menguji perencanaan yang lebih spesifik seperti pengulangan atau looping, design antarmuka, modul aplikasi, penyimpanan data, dan lain-lain.
Pada pengujian ini, penguji dapat melihat source code dan algoritma program. Tujuan dari white-box adalah
1) Meramalkan cara kerja perangkat lunak secara terperinci 2) Test case/kondisi perulangan
3) Mendapatkan program yang 100% benar.
(Braude, 2004).
5. Maintenance
Maintenance mengacu pada kinerja aplikasi setelah dijalankan. Ada dua jenis maintenance yaitu:
a. Penghapusan Kesalahan (Defect Removal)
b. Peningkatan Kemampuan (Enhancement)
Enhancement memberikan perangkat tambahan baru atau pengembangan aplikasi.
(Braude, 2004).
Kelebihan dari model ini adalah:
1. Struktur sistem jelas
2. Kebutuhan sistem dapat didefinisikan secara eksplisit dan utuh. 3. Mudah diaplikasikan
4. Memberikan template tentang metode analisis, desain, pengkodean, pengujian, dan pemeliharaan.
Kekurangan dari model waterfall adalah:
1. Sulitnya merubah keadaan setelah proses berjalan. 2. Pembagian kedalam proses yang berbeda-beda.
3. Sulit merespon perubahan kebutuhan konsumen karena harus mengulang lagi dari awal proses sehingga model ini hanya cocok jika requirement sudah diketahui dan dimengerti dengan baik.
2.7 UML (Unified Modeling Language)
model yang seharusnya dibuat yang merupakan salah satu proses implementasi pengembangan software.
Pengertian UML sebenarnya adalah metode pemodelan secara virtual sebagai sarana dan atau membuat software berorientasi objek. Tidak hanya sebuah bahasa visual saja, tetapi UML dapat secara langsung dihubungkan ke berbagai bahasa pemrograman seperti Java, C++, atau bahkan dihubungkan langsung ke dalam suatu object oriented database.
Tujuan UML diantaranya adalah:
1. Memberikan model yang siap pakai, bahasa pemodelan visual yang ekspresif untuk dikembangkan dan mudah untuk saling bertukar antar model dan dapat dimengerti secara umum.
2. Memberikan bahasa pemodelan yang bebas dari bahasa pemrograman dan proses rekayasa
3. Menyatukan praktek-praktek terbaik yang terdapat dalam pemodelan.
2.7.1 Benda/Things
Benda merupakan hal yang paling mendasar dari suatu model yang menjelaskan elemen-elemen lainnya dalam sebuah konsep atau fisik. Bentuk dari benda/things antara lain:
1. Kelas/Classes
Kelas diuraikan sebagai sekelompok objek yang memiliki atribut, operasi, dan hubungan yang semantik dan dapat mengimplementasikan satu interfaces atau lebih. Kelas digambarkan dengan sebuah kotak yang berisi nama kelas dan dapat ditambahkan informasi yang diperlukan seperti variabel, metode, dan lain-lain.
2. Antar muka/Interfaces
Antar muka merupakan komponen yang menghubungkan dan melayani antar kelas dan atau elemen. Antar-muka biasanya berdiri sendiri dan merupakan pelengkap dari kelas atau komponen yang mendefinisikan pengoperasian yang spesifik. Antar muka biasanya digambarkan dengan suatu lingkaran dengan disertai nama.
3. Collaborations
4. Use Case
Use Case digunakan untuk membentuk tingkah laku benda/things yang direalisasikan oleh suatu collaboration dan diawasi oleh aktor. Biasanya use case digambarkan dengan elips dengan garis yang solid dan mengandung nama.
5. Nodes
Nodes merupakan fisik dari elemen-elemen yang ada pada saat dijalankannya sistem. Umumnya node digambarkan dengan sebuah kotak dan hanya berisikan nama.
2.7.2 Hubungan/Relations
Terdapat 4 macam hubungan dalam penggunaan UML, yaitu:
1. Dependency
Dependency adalah hubungan semantik antara dua benda/things yang saling bergantung satu sama lain yang mengakibatkan terjadi perubahan pada satu benda/things jika benda/tings lain berubah.
2. Association
3. Generalizations
Generalizations menunjukkan hubungan khusus dalam objek anak yang menggantikan objek induk.
4. Realizations
Realization adalah hubungan semantik antara pengelompokan yang menjamin adanya ikatan yang terjadi diantaranya.
2.7.3 Diagram
Diagram menggambarkan permasalahan atau solusi dari permasalahan yang ada pada suatu model. UML mendefinisikan beberapa diagram, antara lain sebagai berikut:
1. Use Case Diagram
Use case diagram menggambar fungsionalitas dari suatu sistem. Diagram ini menunjukkan interaksi antara aktor dan sistem. Diagram ini menunjukkan apa yang dilakukan sistem dan bukan bagaimana sistem melakukan.
Diagram use case berfungsi dalam tiga hal, yaitu:
a. Menjelaskan fasilitas yang ada
b. Komunikasi dengan klien
2. Sequence Diagram
Diagram ini merupakan salah satu diagram interaction yang menjelaskan bagaimana suatu operasi dilakukan di dalam dan di sekitar sistem. Diagram ini diatur berdasarkan waktu.
3. State Diagram
State diagram menggambarkan transisi perubahan keadaan (perpindahan satu stage ke stage lainnya) akibat stimuli yang diterima karena adanya beberapa kemungkinan yang dapat muncul.
4. Activity Diagram
Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana alir berawal, kemungkinan yang mungkin terjadi, dan bagaimana alir berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.
2.8 Algoritma Pemrograman
metode perhitungan (komputasi) dan dipakai secara umum. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.
Algoritma adalah urutan-urutan dari instruksi atau langkah-langkah untuk menyelesaikan suatu masalah. Algoritma dirancang untuk menyelesaikan suatu persoalan spesifik dengan usaha paling minimal. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai benar atau salah.
2.8.1 Karakteristik algoritma
Suatu persoalan dapat dipecahkan dengan menggunakan teknik atau metode yang berbeda. Demikian juga dengan suatu algoritma, suatu masalah dapat dipecahkan dengan metode atau logika yang berlainan. Berikut karakteriksik dari suatu algoritma:
1. Realibility
Tingkat kepercayaan terhadap algoritma tinggi dengan hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.
2. Expandable
Suatu algoritma yang baik dapat dikembangkan lebih jauh sesuai dengan perubahan requirement yang ada.
3. Input
4. Output
Pada algoritma harus terdapat sedikitnya terdapat satu keluaran.
5. Definite
Suatu algoritma harus jelas dan harus secara sempurna menyatakan apa yang dilakukan.
6. Efective
Setiap instruksi pada algoritma harus dapat dilakukan secara manual menggunakan pensil dan kertas selama sejumlah waktu yang berhingga.
7. Terminate
Pada suatu algoritma, semua proses harus berakhir/berhenti.
8. Portabilitas yang tinggi
Suatu algoritma harus dapat diimplementasikan ke berbagai platform komputer.
9. Jumlah langkah atau instruksi berhingga dan tertentu
2.8.2 Pertimbangan dalam pemilihan algoritma
Dalam konteks tertentu, suatu algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan untuk memilih algoritma adalah:
1. Algoritma harus benar
Algoritma harus benar artinya algoritma akan memberikan keluaran yang diinginkan dari sejumlah masukan yang diberikan.
2. Seberapa baik hasil yang dicapai algoritma tersebut
Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya terutama pada algoritma yang menyelesaikan masalah dengan hasil yang berupa pendekatan (aproksimasi).
3. Efisiensi algoritma
Efisiensi suatu algoritma dilihat dari dua hal, yaitu:
a. Efisiensi waktu
b. Efisiensi memory
Semakin besar memori yang terpakai pada suatu algoritma, semakin buruk algoritma tersebut.
2.8.3 Penyajian algoritma
Algoritma dapat disajikan dengan menggunakan dua teknik yaitu tulisan dan gambar.
1. Tulisan
Algoritma didiskripsikan dengan sutau notasi untuk menyajikan satu langkah yang dilakukan. Terdapat tiga pilihan penyajian yang paling sering dilakukan, yaitu:
a. Bahasa alami (bahasa Indonesia, bahasa Inggris)
Bahasa alami sangat mudah disampaikan tetapi memiliki kelemahan yaitu dapat diartikan berbeda bagi setiap orang.
b. Pseudocode
c. Bahasa pemrograman
Penyampaian dengan menggunakan bahasa pemrograman dapat dengan tepat menyampaikan tujuan tetapi bersifat sangat mengikat dengan suatu bahasa pemrograman tertentu.
2. Gambar
Penyajian algoritma dengan menggunakan gambar misalnya dengan flowchart. Flowchart adalah bagan-bagan yang mempunyai arus yang menggambarkan langkah-langkah penyelesaian suatu masalah. Secara garis besar, flowchart terdiri dari tiga bagian yaitu input, proses, dan output.
Flowchart terdiri dari dua macam, yaitu:
1. Flowchart sistem
Flowchart sistem adalah urutan proses dalam sistem yang menunjukkan alat media input, output, serta tempat penyimpanan dalam proses pengolahan data.
2. Flowchart program
Berikut adalah contoh simbol flowchart:
2.8.4 Pengukuran Kebaikan Algoritma
Pengukuran kebaikan terhadap suatu algoritma dilakukan berdasarkan beberapa nilai, yaitu:
1. Analisis kualitatif
[image:34.595.228.515.112.442.2]Analisis kualitatif memeriksa kebenaran algoritma dengan menelusuri algoritma. Kualitas algoritma mengharuskan kebenaran Boolean yaitu suatu algoritma adalah benar atau salah.
2. Analisis kuantitatif
Analisis kuantitatif adalah analisis efisiensi algoritma dengan menghitung kompleksitas komputasional (waktu) dan ruang. Aspek kuantitatif mengukur seberapa besar sumber daya yang diperlukan algoritma yaitu berupa seberapa cepat algoritma bekerja dan seberapa ruang yang diperlukan agar algoritma bekerja.
(Hariyanto, 2008)
3. Kompleksitas algoritma
Pada analisis kuantitatif, perhitungan waktu tidak sepenuhnya bisa dijadikan patokan untuk mengukur kebaikan suatu algoritma dikarenakan tergantung beberapa hal, yaitu:
a. Cepat tidaknya suatu program tergantung pada arsitektur komputer.
b. Waktu yang diperlukan untuk menjalankan sebuah program juga bergantung pada kemampuan programmer, walaupun dijalankan pada komputer yang sama.
sering di notasikan dengan Big Oh (O(n)) merupakan salah satu metode pengujian algoritma yang tidak dipengaruhi oleh hardware komputer maupun kemampuan programmer.
Big oh notation merepresentasikan evaluasi algoritma terhadap input data sebanyak n (n banyaknya data). Nilai yang berada dalam kurung adalah 1, log n, n, n2, n pangkat bilangan bulat lainnya dengan mengabaikan koefisien berupa konstanta atau variabel.
Kompleksitas waktu dibedakan menjadi tiga macam, yaitu:
a. Best Case
Best case adalah kompleksitas untuk waktu terbaik, yaitu kebutuhan waktu paling minimum.
b. Worst case
Worst case adalah kompleksitas waktu terburuk, yaitu kebutuhan waktu paling maksimum.
c. Average case
BAB III
METODE PENELITIAN
3.1 Waktu Penelitian
Waktu dan tempat dilaksanakannya penelitian ini yaitu dilaksanakan pada semester ganjil tahun ajaran 2011/2012 di program studi Ilmu Komputer Jurusan Matematika fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Lampung.
3.2 Alat dan Bahan
Alat dan bahan yang digunakan untuk membangun aplikasi ini adalah: 1. Hardware
Laptop Acer Aspire 2920z. 2. Software
a. Sistem Operasi: Microsoft Windows XP Professional (5.1, build 2600).
b. Borland C++ Builder 6 Enterprise. c. Adobe Photoshop cs3
3.3 Metode Pembangun Aplikasi
Metode yang digunakan untuk membangun aplikasi ini adalah metode waterfall. Dengan menggunakan metode pengembangan waterfall ini, berikut ini adalah tahapan yang dilakukan dalam membangun aplikasi penentu palindrom pada rantai DNA:
3.3.1 Requirement Analysis
Analisis kebutuhan didasarkan pada kebutuhan untuk pembelajaran di luar laboratorium. Aplikasi ini dapat digunakan untuk membantu mempelajari bagian palindrom yang dikenali oleh enzim retriksi tertentu tanpa menggunakan enzim tersebut secara langsung.
A p likasi P en cari P alin d ro m p ad a R an tai
D eo xyrib o n u cleic A cid
(D N A )
P engguna
S im pan H asil P encarian palindrom
T am pilkan H asil P encarian *
*
Input rantai D N A
*
*
B ersihkan Input R antai D N A *
*
B uka file m asukan
*
* 3.3.2 Disain
3.3.2.1Perencanaan dengan menggunakan UML 1. Use Case Diagram
[image:39.595.150.529.251.628.2]Berikut ini adalah use case diagram aplikasi yang menggambarkan interaksi pengguna dengan sistem yang dibangun:
2.State Transition Diagram
Berikut ini adalah state diagram transition aplikasi yang menggambarkan perubahan yang ditimbulkan karena suatu perintah pada aplikasi yang dibangun:
Menu Utama
Masukan Rantai DNA
Hasil Pencarian Masukan
Benar Masukan
Salah
Klik Simpan File Klik
Bersih
Klik Keluar
Klik Cari
Pencari Palindrom
Bantuan Klik Keluar Klik Bantuan
Sistem Komputer
Klik Keluar Klik Buka File
[image:40.595.221.552.198.591.2]Keluar
3. Activity Diagram
Berikut ini adalah diagram aktivitas dari beberapa perintah yang terdapat pada aplikasi, yaitu:
3.3.2.2Disain Antarmuka
[image:41.595.217.563.165.557.2]Desain antarmuka untuk aplikasi ini memiliki tiga halaman yaitu halaman awal, halaman pencarian, dan halaman bantuan. Ketiga halaman tersebut berada dalam satu form yang terdiri dari tiga sheet untuk masing-masing halaman.
1. Halaman Splash
Form splash adalah gambar yang muncul beberapa saat pada saat aplikasi tersebut diaktifkan (Heryanto dan Raharjo, 2006). Halaman splash ini tidak harus ada pada setiap aplikasi. Halaman ini hanya bertujuan untuk memberitahu pengguna bahwa aplikasi sudah mulai berjalan. Berikut tampilan splash pada aplikasi:
Pada halaman splash ini hanya menampilkan nama aplikasi, versi aplikasi, tahun diterbitkan, dan nama perusahaan atau organisasi yang menaungi.
2.Halaman Awal
[image:42.595.186.565.292.477.2]Halaman awal ini sebagai halaman yang terbuka saat pertama kali aplikasi dijalankan. Pada halaman ini berisi
nama aplikasi, pembuat aplikasi, dan tujuan pembuatan aplikasi. Berikut tampilan halaman awal:
Pada halaman awal ini hanya memiliki satu buah tombol yaitu tombol keluar yang memiliki fungsi menutup aplikasi.
3. Halaman Pencarian
[image:43.595.178.564.132.356.2]Halaman pencarian ini adalah tempat pencarian palindrome dilakukan. Berikut desain tampilan halaman pencarian:
Halaman ini terdiri dari beberapa bagian, yaitu: a. Kotak Masukan Rantai DNA
Kotak ini berfungsi sebagai tempat masukan rantai DNA yang di eksekusi.
b. Kotak Hasil Pencarian
Kotak ini menampilkan hasil pencarian yang sudah berhasil dilakukan berdasarkan masukan di kotak masukan rantai DNA atau menampilkan hasil pencarian yang sudah di simpan dalam penyimpanan aplikasi. c. Tombol Buka File
[image:44.595.131.528.80.348.2]Masukan pada aplikasi ini dapat lakukan secara manual atau dapat dengan mengambil isi dari file yang sudah ada.
d. Tombol Cari
Aplikasi memulai pencarian dengan menekan tombol ini.
e. Tombol Simpan
Aplikasi menyimpan hasil pencarian yang sudah berhasil dilakukan.
f. Tombol Bersih
Aplikasi membersihkan kotak masukan sehingga otomatis hasil pencarian yang ditampilkan di kotak hasil pencarian juga akan terhapus.
g. Tombol Keluar
Tombol ini menutup semua aplikasi
4.Halaman Bantuan
[image:45.595.165.561.531.758.2]Halaman bantuan ini berisi tutorial singkat cara menggunakan aplikasi. Berikut adalah desain tampilan untuk halaman bantuan
Pada halaman ini terdapat satu tombol yaitu tombol keluar untuk menutup semua aplikasi.
3.3.2.3Desain Masukan dan Keluaran 3.3.2.3.1 Desain Masukan
Masukan yang diberikan kepada aplikasi berupa rantai DNA. Rantai tersebut dapat diketik secara langsung melalui keyboard atau membuka file yang berisi rantai DNA.
3.3.2.3.2 Desain Keluaran
Keluaran yang diberikan dibagi menjadi 5, yaitu: 1. Rantai DNA masukan beserta pasangan
rantai DNA
2. Jumlah palindrom yang ditemukan 3. Rantai palindrom yang ditemukan
4. Enzim yang mengenali rantai palindrom yang ditemukan
3.3.2.4Disain Algoritma
Berikut algoritma yang dirancang untuk mencari palindrom:
1. Masukan rantai (panjang rantai) 2. Buat rantai pasangan
3. Lakukan looping untuk mencari palindrom
a. Lakukan looping untuk membandingkan rantai pertama (i) dengan rantai kedua (i+k); dengan k=5. b. Jika rantai pertama (i) = rantai kedua (i+k)
Tandai i sebagai palindrom yang ditemukan dengan palindrom(index)=(i); dengan index ++.
Lakukan looping untuk membandingkan rantai pertama(i+j) dengan rantai kedua(i+(k-j)); dengan j=1,2 dan k=k-1.
Jika rantai pertama(i+j) tidak sama dengan rantai kedua (i+k) maka palindrom(index)=1; dengan -1 berarti palindrom tidak ditemukan.
c. Jika rantai pertama (i) ≠ rantai kedua (i+k), maka palindrom(index)=-1.
3.3.3 Coding
3.3.4 Testing / Pengujian
Pengujian aplikasi ini dengan menggunakan metode blackbox yang bertujuan mencari kesalahan. Pada aplikasi ini, pengujian yang akan dilakukan adalah:
1. Pengujian Antarmuka
2. Membandingkan hasil keluaran yang dihasilkan oleh aplikasi dengan hasil keluaran yang telah ditentukan.
3. Memberikan masukan kosong.
4. Memberikan masukan yang melebihi/kurang dari jumlah rantai pada aplikasi.
5. Memberikan masukan yang tidak sesuai (adanya spasi, karakter spesian atau karakter masukan selain A, C, G, dan T).
6. Membuka file dengan nama file yang tidak ada. 7. Menyimpan file dengan nama yang sudah ada. 8. Menutup program secara paksa.
3.3.5 Implementation
1. Apakah Aplikasi dapat beroperasi dengan baik pada laptop atau PC (Personal Computer) anda? Ya/Tidak
2. Menurut anda, bagaimanakah kinerja aplikasi ini? Buruk/Cukup/Baik/Sangat baik
3. Apakah aplikasi ini dapat membantu anda?
Tidak membantu/Cukup membantu/Membantu/Sangat membantu
4. Menurut anda, bagaimanakah cara penggunaan aplikasi ini? Sulit digunakan/Cukup mudah digunakan/Mudah
digunakan/Sangat mudah
5. Apakah hasil keluaran aplikasi dapat anda mengerti? Sulit dimengerti/Cukup mudah dimengerti/Mudah dimengerti/Sangat mudah dimengerti
Sedangkan pertanyaan yang diberikan untuk esai adalah:
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan pada hasil pembahasan yang telah dilakukan, maka dapat diambil kesimpulan bahwa algoritma yang dibangun dapat:
1. Menemukan jenis segmen palindrome pada rantai DNA 2. Menentukan banyaknya segmen palindrome yang ditemukan
3. Menentukan letak segmen palindrome yang ditemukan pada rantai DNA
5.2 Saran
Berdasarkan pada hasil pembahasan, berikut ini saran-saran yang diharapkan dapat digunakan untuk memperbaiki aplikasi:
RANCANG BANGUN
APLIKASI PENENTUAN
PALINDROME
PADA RANTAI
DEOXYRIBONUCLEID ACID (
DNA)
( Skripsi )
Oleh:
Umi Sulistiyaningsih
JURUSAN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS LAMPUNG
RANCANG BANGUN
APLIKASI PENENTUAN
PALINDROME
PADA RANTAI
DEOXYRIBONUCLEID ACID (
DNA)
Oleh
Umi Sulistiyaningsih
Skripsi
Sebagai Salah Satu Syarat untuk Memperoleh Gelar SARJANA KOMPUTER
Pada
Jurusan Ilmu Komputer
Fakultas Matematika dan Ilmu Pengetahuan Alam
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS LAMPUNG
BANDAR LAMPUNG
SANWACANA
Puji syukur kehadirat Allah SWT. Karena atas segala rahmat, nikmat dan karunia-Nyalah penulis dapat menyelesaikan skripsi dengan judul ”Rancang Bangun Aplikasi Pencari Palindrome pada Rantai Deoxyribonucleic Acid(DNA)” sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer di Universitas Lampung.
Penulis mendapatkan banyak bantuan dari berbagai pihak selama menyelesaikan tugas akhir ini. untuk itu pada kesempatan ini, penulis ingin mengucapkan terimakasih kepada:
1. Ibu Dra.Wamiliana, M.A, Ph.D, selaku pembimbing utama. Terima kasih atas bimbingan, saran, kritik, kesabaran, dan ilmu yang sudah ibu berikan sehingga skripsi ini dapat diselesaikan.
2. Ibu Rochmah Agustina, Ph.D, selaku pembimbing kedua. Terima kasih atas bimbingan, saran, kesabaran, dan ilmu yang sudah ibu berikan sehingga skripsi ini dapat diselesaikan.
3. Bapak Ir. Machudor Yusman, M. Kom selaku pembahas dan selaku Ketua Jurusan Ilmu Komputer.
4. Bapak Dwi Sakethi, S. Si, M. Kom selaku pembimbing akademik.
7. Kedua orang tuaku, Papa dan Mama, Ridho beserta keluarga yang selalu mendoakan dan selalu mendukungku.
8. Untuk Oom ku Yon, terimakasih untuk selalu menemami, menjaga, selalu memberi nasihat dan semangat, dukungan, dan bantuan dari awal hingga saat ini, terus semangat untuk kita bersama.
9. Untuk Lya, Citra, Friska, Ririn, Hadi, Bang Shandy, Mbak Sri, Vita, Uni Dwika, Dede, Tika, Gozali, Ginting, Tangguh, Pipit, Nopri, Ade, Rani dan teman-teman Ilmu Komputer 2007 lainnya yang selalu memberikan semangat, dukungan, dan bantuannya, sukses buat kita semua.
10.Sahabat-sahabatku, Eka, Istin, Wina, terimakasih untuk selalu memberi semangat dan mau menitipkan cita-cita kalian kepadaku, tetap berjuang sahabat.
11.Semua pihak yang tidak bisa disebutkan satu persatu yang telah turut serta membantu penyelesaian tugas akhir ini.
Penulis menyadari bahwa Tugas Akhir ini masih memiliki banyak kekurangan. Penulis berharap tugas akhir ini dapat bermanfaat terutama untuk jurusan Ilmu Komputer dan Biologi. Kritik dan saran yang membangun sangat diharapkan untuk menjadikan aplikasi ini lebih baik.
Bandar Lampung, 16 Mei 2012 Penulis
APLIKASI PENENTUAN PALINDROME
PADA RANTAI DEOXYRIBONUCLEID ACID
(DNA)
Nama Mahasiswa : Umi Sulistiyaningsih Nomor Pokok Mahasiswa : 0717032084
Jurusan : Ilmu Komputer
Fakultas : Matematika dan Ilmu Pengetahuan Alam
MENYETUJUI
1. Komisi Pembimbing
Dra. Wamiliana, M.A, Ph. D Rochmah Agustina, Ph.D NIP.19631108 198902 2 001 NIP.19610803 198903 2 002
2. Mengetahui
Ketua Jurusan Ilmu Komputer
MENGESAHKAN
1. Tim Penguji
Ketua : Dra. Wamiliana, M.A, Ph. D …...…….…….
Sekertaris : Rochmah Agustina, Ph. D ...………….….
Penguji
Bukan Pembimbing : Ir. Machudor Yusman, M. Kom …….…………
2. Dekan fakultas Matematika dan Ilmu Pengetahuan Alam
Prof. Dr. Suharso
NIP. 19690530 199512 1 001
PERNYATAAN
Saya yang bertanda tangan di bawah ini, menyatakan bahwa skripsi saya yang
berjudul “Rancang Bangun Aplikasi Pencari Palindrom pada Rantai Deoxyribonucleic Acid (DNA)” ini merupakan hasil karya saya sendiri dan bukan hasil karya orang lain. Semua hasil tulisan yang tertuang dalam skripsi ini telah mengikuti kaidah penulisan karya ilmiah Universitas Lampung. Apabila di kemudian hari terbukti bahwa skripsi ini merupakan hasil salinan atau dibuat oleh orang lain, maka saya bersedia memerima sanksi berupa pencabutan gelar akademik yang telah saya terima.
Bandar Lampung, Mei 2012
Persembahan
Kupersembahkan karya kecil ku ini kepada
Kedua orang tuaku
,
,Papa dan Mama
Terimakasih atas semangat
,
,dukungan
,
motivasi
,
dan do
’
a yang
selalu diberikan kepadaku
Keluarga besarku
Terimakasih atas dukungan dan do
’
a yang diberikan
Almamater dan sahabat
-
sahabatku
RIWAYAT HIDUP
Penulis dilahirkan di Punggur pada 21 Agustus 1989 sebagai anak pertama dari dua bersaudara dengan orangtua bapak Sukarto, S.Pd dan ibu Mutini.
Penulis memulai pendidikan pada tingkat Taman Kanak-kanak pada tahun 1993-1995 di RA Muslimat Punggur. Penulis melanjutkan pendidikan sekolah dasar di
MI Ma’arif I Punggur pada tahun 1995-2001, pendidikan sekolah menengah
pertama di MTs Ma’arif I Punggur pada 2001-2004, dan pendidikan sekolah menengah atas di SMA Negeri I Kotagajah pada 2004-2007. Tahun 2007, penulis melalui jalur Seleksi Penerimaan Mahasiswa Baru (SPMB), diterima dan terdaftar sebagai mahasiswa di program studi Ilmu Komputer Jurusan Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Lampung.
Selama menjadi mahasiswa, penulis ikut aktif berorganisasi, antara lain:
1. Generasi Muda Himpunan Mahasiswa Jurusan Matematika (GEMATIKA) pada periode 2007-2008.
2. Anggota Himpunan Mahasiswa Jurusan Matematika (HIMATIKA) pada periode 2008-2009.