8
BAB II LANDASAN TEORI 2.1
Rekayasa Perangkat Lunak
2.1.1 Pengertian Rekayasa Perangkat Lunak Istilah Rekayasa Perangkat Lunak (RPL) secara umum disepakati sebagai Software Engineering. Istilah Software Engineering mulai terjemahan dari istilah Software
Engineering
Conference
yang
dipopulerkan
tahun
1968
pada
diselenggarakan oleh NATO. Sebagian orang mengartikan RPL hanya sebatas pada bagaimana membuat program komputer. Padahal ada perbedaan yang mendasar antara perangkat lunak (software) dan program komputer. Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi. Perangkat lunak dapat berupa program atau prosedur. Program adalah kumpulan perintah yang dimengerti oleh komputer sedangkan prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses informasi (O’Brien, 1999). Pengertian RPL sendiri adalah sebagai berikut: “ Suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan ”.(O’Brien, 1999) Jelaslah bahwa RPL tidak hanya berhubungan dengan cara pembuatan program komputer. Pernyataan “ semua aspek produksi ” pada pengertian di atas, mempunyai arti semua hal yang berhubungan dengan proses produksi seperti manajemen proyek, penentuan personil, anggaran biaya, metode, jadwal, kualitas sampai dengan pelatihan pengguna merupakan bagian dari RPL.
8
9
2.2
Tahapan Pembuatan Rekayasa Perangkat Lunak
2.2.1
Perencanaan Fase perencanaan proyek perangkat lunak adalah untuk menyediakan
kerangka kerja yang memungkinkan manajer membuat estimasi yang dapat dipertanggung jawabkan mengenai sumber daya, biaya dan jadwal. Estimasi dibuat dengan sebuah kerangka waktu yang terbatas
pada awal sebuah proyek
perangkat lunak dan seharusnya diperbarui secara teratur selagi proyek sedang berjalan (Pressman, 2002). Dalam fase ini hal yang biasanya dilakukan oleh pengembang proyek adalah menjawab pertanyaan mengapa system dibangun. Selain itu nilai bisnis dari system di identifikasi antara lain apakah pembiayaan rendah, apakah menaikkan pendapatan perusahaan, serta pada tahap ini biasanya manajer proyek menyusun manajemen proyek (Pressman, 2002). 2.2.2 Perancangan Sistem Setelah analisa sistem langkah selanjutnya adalah perancangan sistem, Perancangan
sistem
secara
umum
didefinisikan
sebagai
pengidentifikasian
komponen-komponen sistem informasi dengan tujuan untuk dikomunikasikan dengan pemakai (Sutanta, 2003). Tahap perancangan sistem ini mempunyai dua tujuan, yaitu : 1. Untuk memenuhi kebutuhan pemakai sistem 2. Untuk memberikan gambaran yang jelas dan rancang bangun sistem yang lengkap kepada pemrogram komputer.
9
10
2.2.3
Desain Sistem Desain sistem adalah suatu fase dimana diperlukan suatu keahlian
perancangan untuk elemen-elemen komputer yang akan menggunakan sistem baru. Ada dua hal yang perlu diperhatikan dalam desain sistem yaitu pemilahan peralatan dam program komputer untuk sistem yang ada. Beberapa alat bantu yang digunakan penulis dalam desain sistem, yaitu : 1. CD (Context Diagram) Context Diagram merupakan DFD sub sistem pengolahan data yang merupakan satu kesatuan arus data mulai dari external entity yang akan diproses kemudian disimpan kedalam data store dan akan digunakan kembali oleh external entity. 2. DFD (Data Flow Diagram) DFD merupakan alat bantu yang berfungsi untuk menggambarkan secara rinci mengenai sistem sebagai jaringan kerja antar fungsi yang berhubungan satu sama
lain
dengan
menunjukkan
dari
dan
kemana
data
mengalir
serta
penyimpanannya. Beberapa simbol yang digunakan dalam DFD terlihat pada tabel 2.1 sebagai berikut ini :
10
11
Tabel 2.1 Simbol Data Flow Diagram (DFD) (Kendall&kendall:2003) No
Simbol
Arti
Keterangan
1
Entitas
Entitas eksternal merupakan sumber atau tujuan dari aliran data dari atau ke sistem
2
Aliran Data
Aliran data menggambarkan aliran data dari satu proses ke proses lainnya
3
Proses
4
Penyimpanan Data
Proses atau fungsi yang mentransformasikan data secara umum Berkas atau tempat penyimpanan fungsi untuk menyimpan data atau file
3. ERD (Entity Relationship Diagram) Entity
Relationship
Diagram
adalah
model
konseptual
yang
mendeskripsikan hubungan antara penyimpanan data atau file data. Simbol-simbol yang digunakan dalam
Entity Relationship Diagram ada
pada tebel berikut: 1) Entity Suatu obyek yang dapat didefinisikan dalam lingkungan pemakai dalam konteks sistem yang telah dibuat. Entity digunakan atau digambarkan persegi empat. 2) Atribut Elemen-elemen
yang
mendeskripsikan karakter
ada
dalam
entity
dan
fungsi.
Atribut
entity. Atribut digambarkan dengan simbol
elips.
11
12
3) Hubungan Hubungan ini dinamakan
relationship atau relasi. Hubungan harus
dibedakan antara hubungan bentuk antara entity dengan isi dari hubungan ini sendiri. Hubungan digambarkan dengan simbol ketupat. 4) Garis Digunakan untuk menghubungkan
entity dengan
entity manapun
entity
dengan atribut. Beberapa simbol yang digunakan dalam ERD terlihat pada tabel 2.2 sebagai berikut ini : Tabel 2.2 Simbol Entity Relationship Diagram (Jogiyanto, 2001) No 1
Simbol
Arti Entity
Keterangan Menunjukan Entity
2
Hubungan
Menunjukan Hubungan
3
Atribut
Menunjukan Atribut
4
Garis
Menunjukan Garis
4. Relational Table Model relasional adalah model yang paling banyak digunakan saat ini. Konsep utama : relasi pada dasarnya adalah sebuah tabel dengan baris dan kolom. Tiap
relasi
mempunyai
data
yang
menggambarkan
kolom
atau
field
(Kristanto,2003). Dalam model relasional,
field
kunci memegang peranan penting dalam
pembuatan tabel yang berisi entity dan relasinya.
12
13
Field kunci merupakan satu field atau satu set field yang terdapat dalam satu file yang merupakan kunci dan mewakili record. Kunci disini akan sangat penting apabila didalam program nanti terdapat fasilitas pencarian, karena
field
yang merupakan kunci akan menjadi penentu daalam pencarian program. 1) Primary Key Primary Key (Kunci Primer) adalah kunci yang di pilih untuk mewakili setiap kejadian dari suatu entity. Kunci primer sifatnya unik, tidak mungkin sama dan tidak mungkin ganda. Kunci primer disimbolkan dengan tanda *. 2) Foreign Key Foreign Key (Kunci Tamu) adalah kunci primer yang di tempatkan pada file lain dan biasanya menunjukkan dan melengkapi suatu hubungan antara file yang satu dengan yang lainnya. Kunci tamu disimbolkan dengan tanda **. Pembuatan Relasi Antar Tabel disini adalah melakukan pendefinisian relasi antara dua atau lebih untuk menggabungkan data pada table tersebut menjadi satu kesatuan informasi yang berguna. (Irawan Sardi, 2004) 2.3
Basis data
2.3.3.1 Definisi Basis Data Basis data dapat didefinisikan sebagai berikut: Mendefinisikan basis data sebagai kumpulan informasi bermanfaat yang diorganisasikan ke dalam tatacara yang khusus. Basis data adalah sistem berkas terpadu yang dirancang terutama untuk meminimalkan pengulangan data.
13
14
Basis data dapat dianggap sebagai tempat untuk sekumpulan berkas data terkomputerisasi. (Abdul Kadir, 2003) 2.3.3.2 Perancangan Basis Data Proses perancangan basis data, terlepas dari masalah yang ditangani, dibagi menjadi 3 tahapan : 1. Perancangan basis data secara konseptual, 2. Perancangan basis data secara logis, dan 3. Perancangan basis data secara fisis. Perancangan basis data secara konseptual merukan upaya untuk membuat model yang masih bersifat konsep. Perancangan basis data secara logis merupakan tahapan untuk memetakan model konseptual ke model basis data yang akan dipakai (model relasional, hirarkis, atau jaringan). Namun berbagai halnya perancangan basis data secara konseptual, perancangan ini tidak tergantung pada DBMS yang akan dipakai. Itulah sebabnya perancangan basis data secara logis terkadang disebut pemetaan model data. Perancangan basis data secara fisis merupakan tahapan untuk menuangkan perancangan basis data yang bersifat logis menjadi basis data fisis yang tersimpan pada media penyimpanan eksternal (yang spesifik terhadap DBMS yang dipakai). Untuk memahami ketiga perancangan basis data tersebut, perlu kiranya mengenal daur
hidup
pengembangan
sistem (biasa
disebut SDLC/System
Development Life Cycle ) secara utuh. Hal ini disebabkan perancangan basis data hanya merupakan bagian dari tahapan perancangan sistem itu sendiri merupakan
14
15
salah satu dari sejumlah tahapan pada daur hidup pengembangan sistem. (Abdul Kadir.2003) 2.4
Structured Query Language (SQL) SQL merupakan kependekan dari Structured Query Language. SQL
merupakan bahasa standar yang digunakan untuk melakukan manipulasi data seperti
penyimpanan
data
kesuatu
tabel
kemudian
mengubahnya
atau
menghapusnya atau hanya sekedar menampilkannya kembali. Standar SQL mula-mula di definisikan oleh ISO (international standard organization) dan ANSI (the american national standards institute), yang di kenal dengan sebutan SQL86. Seiring degan perjalanan waktu, sejumlah sejumlah standard telah di tetapkan. Tabel 2.3 di bawah ini memperlihatkan keseluruhan standard yang pernah di buat. Tabel 2.3 Daftar standar SQL Standard SQL SQL86 SQL89
SQL92
SQL99
Keterangan Standard pertama SQL, yang didefinisikan fungsi-fungsi minimal dalam produk-produk SQL Standard kedua yang menambahakan mekanisme untuk mengimplementasikan hubungan kunci asing (integritas referensial) Menentukan hal-hal yang menjadi fitur SQL sebagai bahasa di masa menatang. Banyak produk DBMS yang mengacu standard ini Memperluas SQL92, yang antara lain menyertakan integritas terhadap pendekatan berorientasi objek
2.4.3.1 Struktur SQL Bahasa basis data ini terdiri dari perintah-perintah yang berupa kata-kata yang mempunyai arti dalam bahasa inggris yang tiap katanya mempuyai arti dan
15
16
fungsi
khusus.
Secara
umum
perintah-perintah
tersebut
memiliki
fungsi
manajemen masing- masing yaitu : -
DDL ( Data Definition Language ) Kelompok perintah yang khusus untuk membentuk struktur database seperti membuat tabel, index, menambah field dan sebagainya.
-
DML ( Data Manipulation Language ) Kelompok perintah yang khusus untuk melakukan proses manipulasi data record yang secara prinsip tidak merubah struktur database
-
DCL (Data Control Leanguage) atau bahasa pengendali data. (Abdul Kadir, 2002)
2.5
String Matching (Pencocokan String/Kata)
2.4.1
Pengertian String Matching String matching atau pencocokan string adalah suatu metode yang
digunakan untuk menemukan suatu keakuratan/hasil dari satu atau beberapa pola teks yang diberikan. String matching merupakan pokok bahasan yang penting dalam ilmu komputer karena teks merupakan adalah bentuk utama dari pertukaran informasi antar manusia, misalnya pada literatur, karya ilmiah, halaman web dsb.(Hulbert-Helger,2007) String misalnya
matching
pada
direpresentasikan
pencarian
digunakan dalam lingkup dokumen,
dalam bentuk
string
yang bermacam-macam,
pencocokan
DNA
sequences
yang
dan juga
string
matching
dapat
dimanfaatkan untk mendeteksi adanya plagiarisme dalam karya seseorang.
16
17
String-matching fokus pada pencarian satu, atau lebih umum, semua kehadiran sebuah kata (lebih umum disebut pattern) dalam sebuah teks. Semua algoritma yang akan dibahas mengeluarkan
semua kehadiran pola dalam teks.
Pola dinotasikan sebagai x = x[0..m-1]; m adalah panjangnya. Teks dinotasikan sebagai y = y[0..n-1]; n adalah panjangnya. Kedua string dibentuk dari set karakter yang disebut alphabet dinotasikan Σ dengan ukuran σ. (Atmopawiro, 2006) 2.5
Algoritma Boyer-Moore Algoritma Boyer-Moore adalah salah satu algoritma untuk mencari suatu
string di dalam teks, dibuat oleh R.M Boyer dan J.S Moore. Ide utama algoritma ini adalah mencari string dengan melakukan pembandingan karakter mulai dari karakter paling kanan dari string yang dicari. Algoritma ini dianggap sebagai algoritma
yang
paling
efisien
pada
aplikasi umum.
Dengan
mengunakan
algoritma ini, secara rata-rata proses pencarian akan menjadi lebih cepat jika dibandingakan dengan algoritma lainnya. Alasan melakukan pencocokan dari kanan (posisi terakhir string yang dicari) ditunjukan dalam contoh berikut : Contoh Pencocokan String Pertama : k a n a n r a d i o
k i r i
o k o
i a
d i o
Pada contoh diatas, dengan melakukan pembandingan dari posisi paling akhir string dapat dilihat bahwa karakter “n” pada string “kanan” tidak cocok dengan karakter “o” pada string “radio” yang dicari, dan karakter “n” tidak pernah
17
18
ada dalam string “radio” yang dicari sehingga string “radio” dapat digeser melewati string “kanan” sehingga posisinya menjadi : Contoh Pencocokan String Kedua : k a n a n
k i r i r a d i o
o k o
i a
d i o
Dalam contoh terlihat bahwa algoritma Boyer-Moore memiliki loncatan karakter yang besar sehingga mempercepat pencarian string karena dengan hanya memeriksa sedikit karakter, dapat langsung diketahui bahwa string yang dicari tidak ditemukan dan dapat digeser ke posisi berikutnya. 2.5.1
Karakteristik Algoritma Boyer-Moore Karakteristik algoritma Boyer-Moore adalah sebagai berikut.
1. Melakukan perbandingan dari kanan ke kiri 2. Fase persiapan / prepocessing membutuhkan kompleksitas waktu O(m +) 3. Fase pencarian membutuhkan kompleksitas waktu O(n/m) 4. Pada kasus terburuk, sebanyak 3n karakter teks yang dibandingkan untuk pattern yang tak berulang. 2.5.2
Konsep Dasar Algoritma Boyer-Moore Algoritma Boyer-Moore memiliki empat konsep dasar yang digunakan
dalam prosesnya (R.S. Boyer dan J.S. Moore,1977 : 12). Keempat konsep tersebut adalah sebagai berikut. 1. Preprocessing Keseluruhan pre-computation dari algoritma Boyer-Moore terdiri dari bad-character
preprocessing
dan
18
kedua
bagian
dari
good-suffix
19
preprocessing. Untuk bagian preprocessing ini, diperlukan tiga array yaitu occ, f dan s. Dibawah ini adalah prosedur preprocessing. Procedure bmprecomp(var pat: string, s, f, occ: array_of_integer, m: integer) Begin badprecomp(pat, occ, m); goodprecomp1(pat, s, f, m); goodprecomp2(pat, s, f, m); End_of_Procedure
Preprocessing terdiri dari bad-character preprocessing dan good-suffix preprocessing. Penjelasannya adalah sebagai berikut: a. Preprocessing untuk bad-character rule Fungsi berikut ini adalah “compute-last-occurrence- function” yang digunakan untuk precompute array occ Algoritma dari bad-character preprocessing adalah: Procedure compute_last_occurence_function(var p: string, occ: array of integer, m: integer) Declaration c: char i , j, a: integer; Begin //initialize the occ array For i 0 to ALPHABET_SIZE do occ[i] -1 For j 0 to m do Begin C P[j] occ[a] j End_for End_of_Procedure
b. Preprocessing untuk good-suffix rule Sebelum memperkenalkan aturan good-suffix terdapat beberapa definisi yaitu :
19
20
A adalah sebuah alphabet dan x = x0...xk-1, k € n, sebuah string yang panjangnya k sampai A. Prefix dari x adalah sebuah substring u dengan u
=
x0...xb-1
dimana b €{0,..., k} i.e. x dimulai dengan u. Suffix dari x adalah substring u dengan u = xk-b....xk-1 dimana b€{0, ..., k}i.e. x diakhiri dengan u. Prefix u dari x atau suffix u dari x dinamakan proper prefix atau suffix, berturut-turut, jika u x, i.e. jika panjan g b lebih sedikit dari k. Border atau pinggiran dari x adalah substring r dengan r = x0...xb-1 dan r = xk-b...xk-1 dimana b€{0,..., k-1}. Border dari x adalah substring adalah proper prefix dan proper suffix dari x. Disebut sebagai panjang b (lebar dari border ). Untuk aturan good-suffix, diperlukan sebuah array s. Setiap anggota dari s[i] berisi jarak pergeseran dari pattern jika sebuah ketidak cocokan terjadi pada posisi : i-1, jika suffix dari pattern dimulai pada posisi cocok. Dalam
rangka
dipertimbangkan.
menentukan Berikut
ini
jarak adalah
pergeseran,
dua
implementasi
kasus
harus
good-suffix-rule
preprocessing : Procedure goodprecomp1(var p: string, s: string, f:array_of_integer, m: integer) Declaration i, j : integer Begin i←m j←m+1 f[i] j while i>0 do begin
20
21
while j<=m and p[i=1]?p[j-1] do begin if s[j] = 0 then s[j] j-1 j ←f[j] end_while i←i-1 j← j-1 f[i]←j end_while End_of_procedure
2. Right-to-left Scan Rule Prinsip dasar yang pertama dari algoritma Boyer-Moore adalah melakukan perbandingan antara pattern yang dicari dengan target teks secara terbalik yaitu bergerak dari kanan ke kiri. Perbandingan pattern dengan target teks dimulai dengan membandingkan karakter terakhir dari pattern (karakter paling kanan) dengan target teks. Apabila ada kecocokan maka perbandingan akan dilanjutkan dengan bergerak ke kiri sampai karakter pertama dari pattern. Sedangkan apabila terjadi ketidakcocokan maka akan dilakukan pergeseran, besarnya pergesaran yang dilakukan ditentukan oleh dua fungsi pergeseran yaitu bad-character shift dan good-suffix shift. 3. Bad-character Shift Rule Aturan
bad-character
shift
dibutuhkan
untuk
menghindari
pengulangan perbandingan yang gagal dari suatu karakter dalam target teks dengan pattern. Besarnya pergeseran yang dilakukan dalam aturan badcharacter shift disimpan dalam bentuk tabel yang dapat kita namakan tabel BcS, table ini terdiri dari dua kolom yaitu kolom karakter dan kolom shift yang
menunjukkan
besarnya
pergeseran yang harus dilakukan.
Proses
kalkulasi untuk pengisian tabel BcS ini adalah dengan cara memberikan index
21
22
angka kepada tiap karakter dalam pattern. Index 0 diberikan pada karakter terakhir/paling kanan dari pattern, kemudian bergerak ke kiri, semakin ke kiri index dinaikkan 1 sampai pada karakter pertama pada pattern dan apabila karakter pada posisi tersebut belum ada maka karakter tersebut dimasukkan pada tabel BcS dengan nilai pada kolom shift disesuaikan dengan index. 4. Good suffix shift rule Aturan good-suffix shift dibuat untuk menangani kasus dimana terdapat pengulangan karakter pada pattern. Contoh dibawah ini akan menjelaskan bagaimana aturan bad-character shift
gagal dalam menangani adanya
perulangan bagian dalam pattern. T: abccbcccbaa P: abcbbc Pada
kasus
diatas
aturan
bad-character shift
akan menghasilkan
pergeseran yang negatif. Untuk kasus seperti ini kita dapat melakukan pergeseran sebanyak 1. Sehingga kita memerlukan aturan good–suffix untuk menentukan pergeseran
maksimum
yang
mungkin
berdasarkan
struktur
dari
pattern.(Nuryadin,2011) 2.6
DNA (Asam Deoksiribonukleat) DNA (Deoxyribose Nucleic Acid) adalah asam nukleotida yang merupakan
komponen kimia utama kromosom dan merupakan bahan yang menyusun gen. DNA sering disebut sebagai molekul warisan, karena melalui DNA sifat-sifat organisma induk (orang tua) diwariskan kepada turunannya. Pada manusia, ciriciri ini misalnya dari warna rambut hingga kerentanan terhadap penyakit. Selama
22
23
pembelahan sel, DNA direplikasi dan dapat diteruskan ke keturunan selama reproduksi. DNA berbentuk heliks ganda yang mengandung instruksi genetik yang menentukan perkembangan biologis dari seluruh bentuk kehidupan sel. DNA berbentuk polimer panjang nukleotida, mengkode barisan residu asam amino dalam protein dengan menggunakan kode genetik, sebuah kode nukleotida triplet.
Gambar 2.1 DNA DNA bukanlah suatu molekul tunggal namun sepasang molekul yang digandeng oleh ikatan hidrogen: DNA tersusun sebagai untai komplementer dengan ikatan hidrogen di antara mereka. Masing-masing untai DNA adalah rantai kimia seperti batu bata penyusun yakni nukleotida, yang terdiri dari empat tipe: Adenine (A), Cytosine (C), Guanine (G) dan Thymine (T). 2.5.1 Struktur DNA DNA adalah polimer, lebih tepatnya, suatu himpunan dua polimer yang terbelit. Tiap-tiap monomer yang menyusun polimer ini adalah nukleotida yang terdiri dari tiga elemen: fosfat, gula dan basa. Gula dan fosfat dari seluruh nukleotida seluruhnya sama, tetapi nukleotida dapat dibedakan dengan meninjau komponen basanya menjadi empat tipe, termasuk dua kategori, purin: Adenine (A)
23
24
dan Guanine (G) yang memiliki dua siklus organik dan pirimidin: Cytosine (C) dan Thymine (T), yang memiliki satu siklus organik. 2.5.2 STR DNA ( Short Tandem Repeats DNA ) Genom manusia terdiri dari untaian unit DNA berulang dalam berbagai ukuran yang terpola. Regio DNA dengan pengulangan unit yang pendek (kira-kira sepanjang 2-6 bp) disebut dengan Short Tandem Repeats (STR). Seorang individu mewarisi satu salinan STR masing-masing orang tuanya. Pengulangan unit STR DNA ini menjadi marka yang memiliki variasi yang sangat tinggi dalam kelompok individu, sehingga marka STR DNA sangat efektif digunakan untuk tujuan identifikasi manusia. Semakin kecil ukuran alel STR maka marka STR tersebut menjadi lebih baik untuk aplikasi forensik, mengingat didalam temuan forensik DNA seringkali dalam keadaan terdegradasi. Selain itu, alel STR menjadi lebih mudah dipisahkan dari
lokasi
kromosomal
lainnya
untuk
menghindari terpilihnya
loki
yang
berdekatan yang dapat mengganggu pola distribusi acak dari populasi yang sangat penting untuk analisis statistik. Alel STR juga memiliki tingkat mutasi yang lebih rendah, sehingga data yang diperoleh juga semakin stabil dan dapat diprediksi. Berdasarkan karakternya yang unik tersebut, maka STR DNA menjadi alat dengan keakuratan yang tinggi di dalam upaya identifikasi individu pada kasus-kasus forensik. STR DNA dapat digunakan untuk identifikasi korban, pelaku kejahatan, orang yang hilang maupun penelusuran jejak. Marka STR DNA yang digunakan adalah Combined DNA Index System (CODIS) pada 16 loki, yaitu CSF1PO, FGA, TH01, TPOX, VWA, D3S1358,
24
25
D5S818, D7S820, D8S1179, D13S317, D16S539, D18S51, D21S11, D19S433, dan D2S1338 serta amelogenin untuk menentukan jenis kelamin. CODIS ini dikeluarkan oleh Laboratorium FBI dan telah menjadi standar internasional untuk identifikasi indvidu. 2.5.3 Profil DNA Profil DNA merupakan struktur DNA yang dimiliki masing-masing individu yang mendeskripsikan identitas individu tersebut secara biologis. Profil DNA individu terdiri atas 16 loki yang masing-masing loki memetakan short tandem repeat (STR) dari spesifikasi masing-masing loki. Identifikasi terhadap profil DNA seseorang dilakukan dengan memeriksa barang bukti biologis atau yang disebut juga dengan evidence DNA yang bisa diperoleh dari beberapa bagian tubuh, seperti darah, saliva, tulang, otot, sperma, gigi, rambut atau cairan tubuh seperti urin dan keringat.
Gambar 2.2 Barang Bukti Biologis DNA Dengan pemeriksaan biologis berbasis STR (short tandem repeat) maka profil DNA individu dapat diintepretasi secara lengkap dan jelas. STR adalah loki DNA yang tersusun atas pengulangan 2-6 basa. Dalam genom manusia dapat ditemukan pengulangan basa yang bervariasi jumlah dan jenisnya. Identifikasi DNA dengan penanda STR merupakan salah satu prosedur tes DNA yang sangat
25
26
sensitif karena penanda STR memiliki tingkat variasi yang tinggi baik antar loki STR maupun antar individu. Proses pemeriksaan STR terhadap barang bukti biologis menggunakan metode polymerase chain reaction (PCR) dan capillary electrophoresis (CE). CE dapat digunakan untuk memisahkan ion-ion spesies melalui muatan listriknya. Dan untuk mengidentifikasi STR dari suatu loki digunakan perangkat AmpFlSTR identifiler. Hasil dari proses identifikasi terhadap barang bukti biologis disebut dengan electropherogram, berupa print out yang terdiri dari 16 loki berupa sinyal electropherogram. Enam belas loki tersebut adalah D8S1179, D21S11, D7S820, CSF1PO, D3S1358, TH01, D13S317, D16S539, D2S1338, D19S433, vWA, TPOX, D18S51, D5S818, FGA, dan sebuah loki menentukan jenis kelamin, XX untuk wanita dan XY untuk pria. Alel sinyal yang digambarkan pada setiap lokus merupakan deskripsi dari profil DNA individu bersangkutan. Setiap lokus memiliki sepasang alel yang diwarisi dari ayah dan ibu biologis.
Gambar 2.3 Electropherogram Karena DNA merupakan molekul warisan dari orang tua biologis kepada tiap individu, maka dengan mengidentifikasi profil DNA individu dapat ditentukan, identitas individu tersebut secara biologis. (Matulimah,2009)
26
27
2.7
Pengujian Tahap ini merupakan tahap terakhir dari tiga kegiatan yang bersifat teknik,
yang diantaranya adalah perancangan, pembuatan kode program dan pengujian. Di bawah ini adalah penjelasan mengenai tahap pengujian. 2.7.1
Pengertian Pengujian Pengertian pengujian menurut Roger S. Pressman dalam bukunya berjudul
Software Engineering (2002:29), menyatakan bahwa : “Pengujian adalah sebuah proses yang menitikberatkan pada logika internal aplikasi, memastikan bahwa semua kode program telah diuji dan begitu juga pada fungsi-fungsi eksternal ; seperti pengujian dalam penanganan error serta memastikan bahwa input yang didefinisikan akan menghasilkan output yang sesuai dengan output yang dibutuhkan.”
2.7.2
Tujuan Pengujian Dalam buku Software Engineering (2002:526), Roger Pressman mengutip
sebuah definisi dari Glen Myers [MYE97] yang menetapkan bahwa ada tiga tujuan dari diadakannya pengujian aplikasi, yang diantaranya adalah sebagai berikut : 1. Pengujian merupakan proses eksekusi program dengan maksud untuk mengetahui kesalahan atau error yang ada. 2. Pengujian yang baik adalah pengujian yang mempunyai kemungkinan yang tinggi dalam menemukan error yang tersembunyi. 3. Pengujian yang berhasil adalah pengujian yang mampu menemukan error yang tersembunyi.
27
28
Tetapi secara umum, pengujian aplikasi ini dilakukan secara sistematis dengan tujuan untuk menemukan error dan melakukannya dengan waktu dan upaya yang minimal. 2.7.3
Prinsip-Prinsip Pengujian Sebelum menerapkan metode-metode dalam pengujian, terlebih dahulu
harus dimengerti mengenai prinsip-prinsip dasar yang dapat memandu dalam pengujian aplikasi. Sebagaimana telah disadur oleh Roger Pressman dalam bukunya (2002:527) dari Davis [DAV95], telah menyarankan bahwa: 1. Semua
kebutuhan
harus
dapat
ditelusuri
dengan
kebutuhan
atau
requirement dari pelanggan. 2. Pengujian
harus
direncanakan
jauh
sebelum pelaksanaan
pengujian
dimulai. 3. Prinsip seharusnya dimulai dari bagian yang kecil menuju bagian yang besar. 4. Pengujian seharusnya dimulai dari bagian yang kecil menuju bagian yang besar. 5. Pengujian yang lengkap dan mendalam tidak mungkin dilakukan. 6. Untuk menjadikan efektif, pengujian seharusnya melibatkan pihak lain yang independen. 2.7.4
Metode Pengujian Aplikasi Metode pengujian yang digunakan, yaitu metode pengujian kotak hitam
(black box). Pengujian black box berfokus pada persyaratan fungsional aplikasi. Dengan demikian, pengujian black box
28
memungkinkan perekayasa aplikasi
29
mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Pengujian black box merupakan pendekatan komplementer yang kemungkinan besar mampu mengungkap kelas kesalahan. Pengujian black box berusaha menemukan kesalahan dalam kategori sebagai berikut : 1. Fungsi-fungsi yang tidak benar atau hilang 2. Kesalahan antarmuka 3. Kesalahan dalam struktur data atau akses database eksternal 4. Kesalahan kinerja 5. Inisialisasi dan kesalahan terminasi.
29