LANDASAN TEORI
2.1 Teori-teori Dasar I Vmum Berikut adalah teori-teori dasar I umum yang penulis gunakan dalarn penyusunan skripsi ini :
2.1.1 Teori Rekayasa Piranti Luuak Teori Rekayasa Piranti Lunak merupakan teori mengenai penetapan dan penggunaan prinsip-prinsip rekayasa dalarn rangka mendapatkan software yang ekonomis, yaitu software
yang terpercaya dan bekeJ.ja e isien pada mesin !komputer" !Pressman. #$$%. p&%". Pada tahap a'al dari rekayasa suatu piranti lunak dibutuhkan analisa kebutuhan dan tujuan yang ingin dicapai dengan adanya sistem tersebut. (elanjutnya setelah mengetahui kebutuhan akan sistem, maka dibuat suatu rancangan sistem. Pengkodean dilakukan setelah rancangan sistem
terbentuk. )emudian dilakukan uji coba terhadap piranti lunak tersebut. Bila hasil memuaskan maka sistem baru akan diimplementasikan dan dilakukan pemeliharaan terhadap sistem untuk menjaga kestabilan kinerja sistem.
&
Rekayasa
(istem
lr *nalisa
)ebutuhan
lr
Perancangan
1 Coding! Pemrograman
I
lr Testing
I
1
Pemeliharaan (Software)
ini, digunakan
metode
pengembangan piranti
lunak yang telah ada sebelurnnya dengan tujuan untuk menambahkan itur baru yang belum ada agar piranti lunak tersebut menjadi lebih lengkap. Tahap-tahap yang dijalankan dimulai pada tahap analisa piranti lunak
lama mengenai source code dan input maupun hasil outputnya, dan kemudian menambahkan itur baru dengan menggunakan model yang telah ada.
%.% Teori-teori
busus
(elain teori-teori dasar-umum yang telah disebutkan sebelumnya, ada pula teori teori khusus yang berhubungan dengan topik yang dibahas.
2.2.1 Graph Graph merupakan sebuah struktur yang terdiri dari himpunan simpul !.ode /erte0" dan himpunan rusuk !1dge" !Johnsonbaugh. #$$&". (etiap rusuk
menghubungkan sepasang simpul !2,'". Rusuk dituliskan e = !2,'" dimana simpul 2 dan simpul ' dihubungkan oleh rusuk e, dengan kata lain simpul 2 dan simpul ' adalah ujung-ujung dari rusuk e.
3nsur-unsur utama yang membentuk suatu graph ada dua macam, yaitu rusuk dan simpul. Rusuk adalah bagian yang menghubungkan antara dua buah simpul, atau dengan kata lain jalan untuk menuju suatu simpul dari simpul yang lain adalah dengan mele'ati rusuk-rusuk yang menghubungkan antara kedua simpul tersebut. (edangkan simpul merupakan ujung-ujung dari sebuah rusuk.
e%
e4
e5
Pada !gambar %.%" dapat dilihat bah'a graph dibentuk dari simpul-simpul *, B, 6, 7 dan 1. (edangkan rusuk-rusuk yang menghubungkan antar simpul adalah rusuk rusuk el, e%, e&, e, dan e(. (impul-simpul * dan B, dikatakan sebagai simpul yang berdekatanlberdampingan-adjacent karena simpul * dan simpul B dihubungkan oleh satu rusuk yaitu rusuk e#. (edangkan rusuk e# dan rusuk e( dikatakan !ertemu!incident di simpul A. Pada simpul dikenal adanya derajat-degree, yai tu banyaknya rusuk yang incident pada simpul tersebut. (impul genap adalah simpul yang degreenya genap,
dan simpul ganjil adalah simpul yang degreenya ganjil. "umlah degree semua simpul = # $ !anya%nya rusu%
Gambar %.& graph dengan tiga simpul dan beserta masing-masing degreenya
: L Degree& ;
2.2.1.2
onekti$itas !an %ubun&an 'arak 7alam suatu graph dikenal adanya konekti2itas. Beberapa macam konekti2itas
dalam suatu graph antara lain: < 'al%( lintasan dari suatu simpul ke suatu simpul yang lain !simpul-
rusuk-simpul-...-simpul". < Closed wal%( wal% yang simpul a'al sama dengan simpul akbimya. < Trail( wal% yang semua rusuknya berlainan.
Al-------I.Bl---------1.
Gambar 2.( graph dengan lima simpul dan enam rusuk beserta konekti2itas dan hubungan jaraknya
Graph dapat dibedakan menjadi dua macam, yaitu directed graph dan undirected graph. Directed graph ditunjukkan dengan adanya arah tanda panah dari setiap rusuk yang menghubungkan tiap simpul, seperti yang dapat di lihat pada gambar berikut:
*rah data pada directed graph (digraph) hanya dapat be=jalan satu arah, sesuai
#> dengan arah tanda panah. (eperti pada !gambar %.4", arah aliran data bergerak dari simpul * ke simpul 6, dari simpul 6 menuju simpul B dan dari simpul B menuju ke simpul A. Rusuk pada directed graph sering disebut dengan arcus (arc). ?
##
Pada digraph derajat simpul dibedakan menjadi dua yaitu indegree 3umlah rusuk yang datang atau masuk ke sebuah simpul" dan outdegree 3umlah rusuk yang keluar-pergi meninggalkan simpul". 3ntuk simpul yang memiliki indegree > disebut sebagai simpul surnber-asal-source, dan untuk simpul yang outdegreenya > disebut simpul tu/uanlsin%.
Gambar %.5 directed graph dengan indegree, outdegree pada masing-masing simpulnya
#%
indegree B outdegree B
c
@ndegree*
8 @ 8 #
indegree 6 8 Autdegree* 8% outdegree 8 6 > (edangkan pada undirected graph, tidak terdapat tanda panah pada rusuk-rusuk yang menghubungkan antar simpul.
#&
7alam !gambar %.:" dapat dikatakan bah'a aliran data dapat bergerak bolak balik dari simpul * ke B, B ke 6, 6 ke * dan sebaliknya dari B ke *, 6 ke B dan * ke 6.
)lanar graph (graph bidang" merupakan graph yang terletak pada bidang datar
dimana rusuk-rusuknya tidak saling berpotongan selain di simpul-simpulnya.
(edangkan aplanar graph adalah graph yang dapat digambarkan menjadi graph
bidang
#,
dapat menjadi
(edangkan isomorphic graph adalah graph+graph yang mempunyai graphical properties !meliputi jumlah rusukjumlah simpul, derajat simpul dan cut point) yang yang sama !berbeda bentuk tetapi struktur sama".
#4 Graph drawing adalah metode yang digunakan untuk merepresentasikan in ormasi yang dapat digambarkan sebagai objek-objek dan hubungan yang terdapat di antara objek-objek tersebut melalui penggambaran suatu graph !Battista et al.
#5
#$$$". Penggambaran graph akan mudah di#akukan bila jum#ah simpu# dan rusuk yang ada tidak terlalu banyak dan hubungannya sederhana=tidak rumit. Bila jumlah simpu# dan rusuk yang ada semakin banyak, maka representasi graph akan menjadi lebih sulit. (ebuah graph yang baik tentunya akan mudah untuk dilihat dan
dipahami, 'alaupun terdiri dari banyak simpul dan rusuk. 3ntuk membentuk suatu graph yang mudah dilihat, digunakan syarat-syarat aesthetic graph yang umum sebagai pembandingnya. (yarat-syarat umum dari aesthetic graph tersebut adalah: < < < (impul-simpul yang ada tersebar merata pada satu halaman I @ayar. (emakin sedikit ,um#a- rusuk yang bersilangan, semakin baik. Rusuk - rusuk yang menghubungkan antar simpul diusahakan berupa garis lurus, bukannya garis lengkung-membelok.
2.2.1.*.1
on$ensi Pen&&ambaran Gra")on2ensi penggambaran adalah sebuah aturan dasar yang harus dipenubi agar
penggambaran dapat diterima !Battista et a=. #$$$". *turan penggambaran dalam aplikasi nyata dapat menjadi sangat kompleks dan mengandung berbagai macam detil mengenai penggambaran. *ntara lain adalah sebagai berikut: < )olyline drawing( setiap rusuk digambarkan dengan garis poligonal. < Straight+line drawing( setiap rusuk digambarkan dengan garis lurus. < 0rthogonal drawing( setiap rusuk digambarkan sebagai garis poligonal secara 2ertikal dan horisontal. < Grid drawing( simpul, persilangan dan rusuk yang melengkung
#:
< )lanar drawing( tidak ada rusuk yang bersilangan. Straight+line dan orthogonal drawing merupakan kasus khusus dalam
menggambar sebuah graph yang memiliki rusuk yang tidak lurus. Bagaimanapun juga rusuk dengan dua atau tiga lengkungan akan menjadi lebih su=it untuk dilihat.
2.2.1.*.2 Estetika Pen&&ambaran Graph (yarat-syarat aesthetic graph antara lain yaitu !Battista et al. #$$$" : < Crossings( minimisasi jumlah graph, akan rusuk tetapi yang tidak bersilangan. semua @dealnya dapat
diinginkan planar
graph
digambarkan secaraplanar. < *rea( minimisasi area penggambaran. 7alam tampilan sebuah graph, akan lebih mudah dimengerti bila graph tersebut ditampilkan utuh satu =ayar. < Total edge length( minimisasi jumlah panjang rusuk.
< 1a$imum edge length( minimisasi panjang maksimum sebuah rusuk. < < 2niform edge length( minimisasi 2ariasi panjang rusuk. Total !ends( minimisasi total lengkungan yang terdapat pada rusuk rusuk. < 1a$imum !ends( minimisasi maksimum lengkungan yang terdapat pada suatu rusuk. < 2niform !ends( minimisasi 2ariasi lengkungan rusuk.
#;
yang saling incident pada simpu# yang sama. < *spect ratio( minimisasi aspek perbandingan da#am penggambaran, yaitu perbandingan antara sisi terpanjang dan sisi terpendek dari graph tersebut !sisi 2ertikal dan horisontal". *gar dihasilkan graph yang perbandingan ukuran 2ertikal dan horisontalnya sesuai dengan ukuran layar tampi#an. < Symmetry( tampilkan graph yang simetris dalam penggambaran. *kan tetapi dalam penggambaran sebuab graph sangatlab sulit untuk memenuhi semua syarat-syarat estetika yang ada. Bal ini dikarenakan ada syarat-syarat estetika itu sendiri yang saling bertentangan satu dengan yang lain. Aleh karena itu dalam penggambaran sebuah graph, biasanya dilakukan pemilaban prioritas syarat-syarat estetika tersebut mana yang harus dipenuhi terlebih dabulu.
2.2.1.*.) Batasan !a#am Pen&&ambaran Graph Batasan-batasan di sini merujuk pada su!graph dan su!drawing, bukan pada keseluruhan graph !Battista eta=. #$$$": < Center : tempatkan simpul dekat dengan pusat penggambaran. < -$ternal( tempatkan simpul pada batas luar penggambaran. < Cluster( tempatkan kumpulan simpul saling berdekatan. atau penggambararmya Beberapa kriteria batasan adalab
< Left+right(top+!ottom) se3uence( gambarkan path secara horisontal dari kiri ke kanan atau secara 2ertikal dari atas ke ba'ab. < Shape( gambarkan su!graph dengan bentuk tertentu.
-------------------------
---------#;
2.2.1.. Layout Spring (alah satu model penggambaran graph adalah dengan menggunakan spring. Layout spring merepresentasikan layout
menghubungkan antar simpul memiliki panjang yang hampir sama. Layout spring dikembangkan oleh Tomihisa !7esember, #$;;".
2.2.1...1 /o!e# Spring Pada skripsi ini akan dibahas sebuah aplikasi dinamis yang terdiri dari partikelpartikel n !8 lVI) yang dihubungkan dengan metode spring !)amada. #$;;". Partikel-partikel Ph pC ..., Pn saling bersesuaian dengan simpul-simpul 2,, Vz, ..., Vn = /. )eseimbangan tampilan layar dari simpul-simpul akan dihubungkan
dengan keseimbangan sistem spring secara dinamis. (ebagai hasilnya, derajat ketidak-seimbangan dapat dirumuskan sebagai total energi dari spring sebagai
berikut: !%.#"
Tampilan layar yang baik dapat diperoleh dengan mengurangi 1, dan dengan 1 minimum, akan diperoleh tampilan layar terbaik. Panjang yang sesungguhnya dari spring !lu" antara Pi dan Pi. yang sesuai dengan panjang yang diinginkan dalam penggambaran, dapat ditentukan melalui :
!%.%"
%#
Jarak dDj antara dua simpul 2D dan /j dalam sebuah graph dide inisikan sebagai panjang dari suatu path terpendek antara 2D dan 2i. (edangkan L adalah panjang sebuah rusuk yang diinginkan pada tampilan. *pabila ruang tampilan dibatasi, akan lebih mudah untuk menentukan L berdasarkan diameter dari graph yang diberikan.
Rumusnya: L = L 5ma$di/
4
'<i
!%.&"
dari spring
antara
!%.," dimana ) adalah konstan. Parameter lij dan kDi adalah simetris, dimana lDi = ljD dan kii = kjD !i tidak sama dengan j". 7alam spring model, kepadatan simpul-simpul tidak menjadi semakin besar, karena setiap % simpul dipaksa untuk menjagajarak tetap dengan ketegangan spring. 3ntuk diperhatikan, bah'a graph simetris sesuai dengan sistem spring simetris, yang menghasilkan tampilan contohnya, graph dengan simetris dengan meminimalisasi 1. (ebagai !gambar %.##!a"" rusuk dapat dapat
jumlah
simpul
4 pada
spring
model.
Persilangan
dengan meminimalisasikan 1 pada beberapa tingkat. Pada !gambar dimana rusuk-rusuk *6 dan B7 sating
%% berpotongan. Spring antara * dan 7 !B dan 6" lebih panjang daripada spring antara * dan 6 !B dan 7". 7alam lingkup , simpul ini, setelah pertukaran 6 dan 7 pada !gambar %.#&!b"" energi 1 lebih kecil daripada energi pada !gambar %.#&!a"". )eadaan stabil dari sistem spring yang
memenuhi
untuk
isomorphic
graph dapat lebih dari satu. Aleh karena itu, graph diharapkan dapat sama dengan
penggambaran
untuk
isomorphic
meminimisasi 1. 7engan mempertimbangkan hal ini, dapat dikatakan bah'a spring model dapat memenuhi persyaratan untuk membentuk tampilan yang baik.
Gambar 2.11 Tiga graph dengan 4 simpul dan persialangan di antara rusuknya
%4
D
A
A
%5
2.2.1...2 /inimisasi Loka# Ener&i G#oba# Posisi dari sebuah simpul dapat diekspresikan dengan koordinat 0 dan koordinat y, sehingga !0py1 ), (x# ,y # ), <<< , (x.,y.) menjadi koordinat dari simpul pi' p , ..., p,. )emudian kita dapat menuliskan kembali energi - yang telah
Tujuan
menghitung
nilai
dari
2ariabel
tersebut
untuk
meminimisasi
-($6$ # ,...,$,,y 78,y# ,999y,). *kan tetapi cukup sulit untuk menghitung minimumnya, sehingga digunakan perhitungan untuk mencari lokal minimum. Eetode untuk menghitung lokal minimum - dari kondisi a'al yang diketahui
dilakukan berdasarkan metode iterasi :ewton+;hapson. )ondisi yang dibutuhkan
----kondisi yang memenuhi persamaan di atas sesuai dengan kondisi dinamis yang memaksa agar semua spring seimbang. Turunan parsial dari !%.4" oleh $6> dan ?m
sebagai berikut:
,8 m +@A @m
+a
L., mi
6% F!@ '*"'
" {(
lmA($m - $A)
"%
Xm -X;
IG
!%.:"
! "% G% 9 ?m+Y;
DDD::-8 ,m ,
vym iBm
L., mi 6%
F!?m
" +?A -
lm,(?m+ yA)
!%.;"
F!Xm H X, ."%
+(
_ ."%G%
,-
@- o
m!l "ym )emudian digunakan cara lain dimana hanya satu simpul yang dipindahkan pada keadaan stabil dan membiarkan simpullain tetap diam tempatnya. @tulah gambaran -
$, dan
%-dimensi.
Einimum
setiap langkah simpul dengan nilai i">.m yang terbesar dipilih, yang dide inisikan:
!%.$"
(impul p., ($m,y.,) yang terpilih dipindahkan ke posisi yang memenuhi oE=oE=O #$m
. d mu@a# an . !
!A" !A""
"ym
. . ! " engan posJ (J $,, y, k se arang, langka h
$,
, y.,
yang sama d
berikut diulang
!#9#" !#" I
?m
+?m
+ ;;,.
vy
$m
!$m (I)
%&$'
!#9#" -
!%.#>"
8x dan
!?
( ao2+E $m
(I))
!t"
(I)
,ym
!%.##"
D::",, a
o2E
oE (
XIII LI*'m
!%.#%"
)(m $m
vy =-:h.
)oe isien dari kedua persamaan di atas, yang merupakan elemen matriks "aco!ian
dihitung dari tunman parsial !%.:" dan !%.;" oleh $., dan y., sebagai berikut:
!%.#,"
@.,v
C($.,+$,)#D(y,+
& -
y,)#EF #
%,
!%.#4"
!%.#5" <$ dan yang belu m dike tahu i dihit ung dari !%.# #" sam pai !%.# 5". @tera si !%.# >" dih enti kan keti ka nilai ""m pad a (x"' !@" , y., 3l" sud ah cuk up kec il. 1
%,
nergi global - merupakan energi lokal minimum bila - selalu menurun setelah perpindahan simpul. 3ntuk memastikan :ewton+ perpindahan
menurun, kita menguji nilai - setelah iterasi ;aphson dan mencoba kembali langkah
dengan mengganti turunan a'al bila E yang baru lebih besar dari yang sebelumnya.
2.2.1...) Pertukaran Sim"u1 Eeskipun menemukan algoritma spring tidak menjamin dapat untuk
minimum, namun
memuaskan. Tujuannya
mendapatkan tampilan yang cukup dapat dimengerti. (etelah mendapat lokal minimum, dilakukan pengujian pertukaran posisi sepasang simpul dan menghitung energi baru untuk semua pasangan yang ada. Jika terdapat sebuah nilai yang lebih kecil daripada lokal minimum, proses minimisasi dimulai lagi dari keadaan tersebut.
&&
B c
&,
c
D A
Eulai dari keadaan a'al !gambar %.#,!a"" energi diubab ke lokal minimum !gambar %.#,!b"". )emudian simpul * dan1 ditukar !gambar %.#,!c"". Proses minimisasi diulang mulai dari keadaan ini sampai energi diubab menjadi minimum yang
sesungguhnya. Bal ini dilakukan untuk menghindarkan lokal minimum yang terlalu besar.
2.2.2 Gra"- /o!e##in& Lan&ua&e 5G/L6 Banyak program yang berbeda yang bekeija dengan menggunakan graph, tetapi hampir semuanya menggunakan ormat i=enya sendiri-sendiri. (ebagai
konsekuensinya, maka pertukaran graph di antara program-program yang berbeda hampir tidak mungkin. Tugas-tugas mudah seperti pertukaran data, pembentukan ulang atau pengujian umum terhadap atributnya menjadi lebih sulit daripada hasil yang diperlukan !Brandenburg. #$$:". Aleh karena itu dibentuklah suatu ormat ile yang baru untuk sistem yang
menggunakan graph, yaitu KEL (Graph 1odelling Language). KEL mendukung berbagai macam lampiran in ormasi yang berhubungan dengan graph, simpul dan rusuk, dan mendukung hampir semua ormat graph yang lain. Berikut adalah contoh sederhana dari sebuah ile yang bertipe KEL
#istin& 2.1 teks ile KEL graph L directed I id ,% label IBello, I graphI node L id @ am a
label I*I
&:
l
node L
id %
label IBI
l
node L
id &
label I6I
l
edge L
source @
target %
l
edge L
source %
target &
l
edge L
source &
target #
l
l
&;
7ari contoh KEL ile pada !listing %.#" dapat digambarkan graph yang dimaksud sebagai berikut:
2.2.) 7isua#isasi In8ormasi /isualisasi in ormasi adalah cara menampilkan in ormasi dengan menggunakan gra ik komputer dan animasi yang interakti untuk menstimulasikan pengenalan
pola-pola dan struktur in ormasi, sehingga in ormasi yang akan disampaikan dapat dengan mudah dan cepat dimengerti oleh manusia !Battista et a=. #$$$". Penggunaan 2isualisasi in ormasi dapat digunakan untuk mengatasi
ketidakseimbangan kemampuan tampilan komputer dan sistem pemikiran manusia. Eisalnya, dengan menggunakan 2isualisasi in ormasi, akan lebih mudah untuk
melihat arah aliran data, lompatan-lompatan dalam data (gaps), mengidenti ikasi batas-batas data. (elain itu metode 2isualisasi in ormasi memberi kemudahan untuk
&$
melihat sejumlah data dalam satu layar tampilan, serta kemudahan melihat bagian objek tertentu dalam konteks data.
2.2.( Parsing )arsing merupakan suatu proses untuk menentukan apakah suatu rangkaian dari token yang dihasilkan oleh analisis leksikal termasuk dalam suatu tata bahasa
tertentu !(umantri. #$$%. p&,". *nalisis leksikal merupakan proses scanning aliran karakter yang membentuk source code dibaca dari kiri ke kanan dan dikelompokkan dalam to%en !(umantri. #$$%. p:,". To%en sendiri dide inisikan sebagai barisan
karakter dalam satu kesatuan yang mempunyai arti tersendiri. *nalisis leksikal sering disebut juga sebagai analisis linier. Pada tahap analisis leksikal source code dipilah-pilah menjadi token seperti
konstanta, nama 2ariabel, kata kunci, dan juga operator-operator. *nalisis leksikal dapat dibagi menjadi dua ase, yaitu: @. Mase Scanning dan %. Mase *nalisis Leksikal. 7alam pelaksanaannya, ase scanning lebih mudah dijalankan dan lebih sederhana dibandingkan dengan ase analisis leksikal. 3ntuk menjamin kebenaran dalam
penerjemahan, maka proses parsing harus dapat menghasilkan pohon urai atau parse tree. )arsing dapat dilakukan dalam dua metode, yaitu dengan menggunakan metode !ottom+up atau metode top+down. Eetode top+down lebih sering digunakan karena lebih mudah dipahami.
,>
2.2.* PROLOG Prolog adalah bahasa pemrograman yang dilakukan secara simbolik untuk
perhitungan non numeri% !Borland. #$;5". Prolog khususnya digunakan untuk menyelesaikan masalah - masalah yang berkaitan dengan objek dan relasi antara objek itu sendiri. Prolog pemrograman merupakan declarative programming language, yaitu bahasa
yang mengijinkan
pemrograman
batasan-batasan dan aturan-aturan yang harus dipenuhi dan menugaskan komputer untuk memutuskan solusi mana yang memenuhi persyaratan yang diajukan. (elain itu Prolog juga dikenal sebagai 6natura5language of artificial intelligence6, dimana pemrograman dalam bahasa Prolog lebih mendekati ke bahasa sehari-hari dalam kehidupan manusia !dapat dimengerti oleh orang a'am". Pemrograman Prolog terdiri dari pende inisian relasi dan permintaan mengenai relasi. (ebuah program Prolog mengandung klausa - klausa yang mempunyai & tipe yaitu Afacts, rules dan 3uestions. Relasi dapat dispesi ikasikan dengan adanya akta akta atau dengan memberikan aturan mengenai relasi Permintaan mengenai relasi yang disebut juga dengan 3uestions menyerupai
3uery pada database. Ja'aban dari Prolog untuk 3uestions tersebut mengandung himpunan objek yang dapat menja'ab pertanyaan tersebut. 6ontoh dari program Prolog adalah sebagai berikut : parent !pam,bob" parent !tom,bob" parent !tom,liC"
,# parent !bob,ann"
,%
dimana statement parent (pam,!o!) menjelaskan bah'apam adalahparent dari !o!, dan seterusnya. Kambaran secara jelas dapat dilihat dalam berikut: amily tree sebagai
,&
Gambar 2.1. representasi hubungan antar objek dalam Prolog melalui graph !Borland. #$;5."
,,
merupakan parent dari !o!, sedangkan liG anak dari tom. (edangkan !o! mempunyai anak ann dan pat. "im merupakan anak dari pat. Bahasa Prolog dapat digunakan untuk misalnya sebagai berikut: < Eenghasilkan prototype konsep program aplikasi. @de a'al dapat segera diimplementasikan dan model yang dihasilkan dapat dites langsung. < 3ntuk mengontrol dan menga'asi proses industri. Prolog menyediakan kemampuan untuk mengakses port+port input5output pada komputer. < @mplementasi dari relasi dinamis pada suatu database. < Eeneljemahkan bahasa, baik dari bahasa alami manusia atau dari sebuah bahasa pemrograman ke lainnya. < Eembangun antar muka bahasa alami ke piranti lunak yang telah tersedia, sehingga sistem tersebut menjadi lebih mudah diakses. < Eembangun sistem pakar dan kerangka sistem pakar. < Eembangun paket manipulasi simbolik untuk menyelesaikan persamaan matematik, di erensial, integral dan sebagainya.
%.%.5 ;everse -ngineering ;everse menganalisa -ngineering sebuah !6hiko sky et a=. subjek sistem #$$:" merupakan suatu source code dalam proses usaha dapat
berupa
mengidenti ikasikan
keterikatannya agar
pada tingkat abstraksi yang lebih tinggi (Higher level of *!straction). Basil analisa
,4 dari
,5
proses reverse engineering dapat digunakan untuk perbaikan, rekayasa, dan desain ulang terhadap sistem.
(ystem
Old (ystem
.e ' (yste m
Gambar 2.19 ;everse -ngineering dan Iorward -ngineering dalam pengembangan sistem !6hiko sky et al. #$$:"
Tingkat abstraksi dalam suatu sistem dapat dibagi menjadi , tingkat. Naitu tingkat abstraksi, ungsi, struktur dan implementasi. Berikut adalah tabel tingkat abstraksi
dan teks.
(edangkan dalam proses forward engineering menghasilkan representasi sistem serta desain in ormasi yang dibutuhkan pada tingkat abstraksi yang lebih rendah atau mendekati ke mesin (Lower level of *!straction). Basil dari proses forward
Iorward -ngineering
;everse -ngineering
semakin bertambah banyak !(ha er. #$$:". Ean aat dari analisis algoritma adalah untuk mengestimasikan dalam mempertimbangkan apakah sebuah a#goritma layak untuk diimplementasikan. Pertimbangan utama operasi dalam menganalisa
per orma-kehandalan algoritma adalah banyaknya untuk mengolah masukan dalam algoritma. Pertambahan besamya 'aktu dengan yang
dibutuhkan untuk
proses
dibandingkan tara
masukan n, hila n bertambah maka akan didapatkan bah'a 'aktu proses (run+time)
dari algoritma bertambah pula. (ebuah algoritma dengan tara perturnbuhan en !c sebagai konstanta positi " dikatakan rnerniliki tara pertunbuhan sejalan (linear). @ni berarti bila nilai n bertarnbah, rnaka 'aktu proses dari algoritrna akan bertarnbah pula dalam proporsi yang sarna. Eenggandakan nilai n sama artinya dengan rnenggandakan 'aktu proses dari algoritma.
%
(ebuah algoritma yang rnerniliki ungsi 'aktu proses n dikatakan rnerniliki tara perturnbuhan kuadratis (3uadratic). *lgoritrna yang rnerniliki ungsi 'aktu proses %I disebut rnerniliki tara perturnbuhan eksponen !e%sponential). 3ntuk beberapa ungsi 'aktu
2.2.9.1 Batas Atas ,Upper #oundBatas atas (upper !ound) rnerupakan salah satu istilah yang rnenunjukkan perturnbuhan tertinggi yang dirniliki suatu algoritrna. .otasi ,ig+0h dapat diartikan Irnerni=iki batas atas dari tara perturnbuhan sebagai f(n)6. Bila batas atas dari tara perturnbuhan sebuah algoritma adalah f(n) rnaka dapat dituliskan algoritma itu
Iberada dalam 0(f(n))6. .otasi ,ig+0h surnber rnernberikan pemyataan rnengenai jurnlah terbesar dari suatu oleh sebuah
algoritma untuk kelas rnasukan dengan ukuran n. ,ig+0h dapat diukur dari rnasukan terburuk, rnasukan rata-rata dan rnasukan terbaik.
2.2.9.2 Aturan Penye!er-anaan Penyederhanaan persamaan dapat dilakukan setelah menentukan persamaan 'aktu proses dari sebuah algoritma. Berikut ini adalah aturan-aturan yang
digunakan !(ha er. #$$:. p45": #. "i%af(n) berada dalam 0(g(n)) dan g(n) berada dalam 0(h(n)) ma%af(n) berada dalam 0(h(n)). %. Jika f(n) berada dalam 0(%g(n)) untuk setiap konstanta %B0 maka f(n) berada dalam 0(g(n)). &. Jika f..(n) berada dalam 4( g 1 (n)) dan f,(n) berada 4( g 2 (n)) maka DD(n) dan - 2 (n) berada dalam 4( g1 (n), g2 (n)). ,. Jika f..(n) berada dalam 4( g..(n)) dan - % (n) berada 4( g% (n)) maka DD (n) - 2 (n) berada dalam 4( g1 (n) g2 (n)).