Anda di halaman 1dari 50

BAB2

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)

Gambar %.# System Development Life Cycle !Pressman. #$$%"

Pada penyusunan skripsi

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.

2.2.1.1 Rusuk !au Sim"u#

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

Gambar 2.2 graph dengan lima (impul dan enam Rusuk

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

Degree !*" 8 & Degree !B" = &


Degree !6"8 %

: L Degree& ;

; L rusuk8, maka L Degree 8 % 0 L rusuk L Degree = % 0 , 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.

< Path-alur: wal% yang semua simpulnya berlainan.

Al-------I.Bl---------1.

Gambar 2.( graph dengan lima simpul dan enam rusuk beserta konekti2itas dan hubungan jaraknya

'al%& *-B-6-1-B Closed wal%& *-B-1-6-tB-* Trail& *-7-1-B-6 )ath = *+,+C+-

2.2.1.) Directed Graph !an Undirected Graph

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:

Gambar 2.* directed graph

*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

#%

8source 8sink 8>

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.

#&

Gambar 2.: undirected graph

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.

2.2.1.( Planar, Aplanar !an Isomorphic Graph

)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

Gambar %.; aplanar graph

#,

dapat menjadi

Gambar %.$ planar graph

(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".

Gambar 2.1+ isomorphic graph

2.2.1.* Graph Drawing

#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

mempunyai koordinat integer.

#:

< )lanar drawing( tidak ada rusuk yang bersilangan. Straight+line dan orthogonal drawing merupakan kasus khusus dalam

penggambaran polyline. Penggambaran polyline bisa sangat

leksibel pada saat

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.

< *ngular resolution( memaksimumkan sudut terkecil antara dua 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

suatu graph agar rusuk-rusuk yang

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

!%.&"

dimana Lo adalah panjang sebuah sisi area tampilan.

Parameter kij merupakan kekuatan dirumuskan sebagai berikut :

dari spring

antara

pD dan Pi, dapat

!%.," 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

digambarkan dengan algoritma dihindari

spring

model.

Persilangan

dengan meminimalisasikan 1 pada beberapa tingkat. Pada !gambar dimana rusuk-rusuk *6 dan B7 sating

%.#&!a"", ada sebagian dari graph

%% 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.

!a" graph dengan 4 rusuk yang bersilangan

!b" graph dengan & rusuk yang bersilangan

!c" graph dengan @ rusuk yang bersilangan

Gambar 2.11 Tiga graph dengan 4 simpul dan persialangan di antara rusuknya

%4

!a" graph dengan 4 rusuk bersilangan

!b" graph tanpa persilangan

Gambar 2.12 graph simetris dan planar dengan #5 simpul

D
A
A

!a" graph dengan simpul


*6 dan B7 berpotongan

!b" graph dengan simpul


*6 dan B7 tidak berpotongan

Gambar 2.1) duagraph dengan % rusuk *6 dan B7

%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

dide inisikan menggunakan 2ariabel #n seperti berikut:

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

dari lokal minimum adalah: 4 untuk # m n !%.5"

----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:

<-=<-= a$, cym

,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%

Penyelesaian persamaan non-linier #n yang simultan harus diselesaikan !%.5". Tetapi

tidak Jangsung dapat diselesaikan dengan metode :ewton+;hapson %n-dimensi

karena saling tergantung satu sama lain.

,-

@- 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 -

sebagai ungsi dari hanya :ewton+ ;aphson

$, dan

y,, - minimum dihitung dengan metode lokal dapat diperoleh dengan

%-dimensi.

Einimum

menggunakan persamaan !%.5"

melalui iterasi persamaan berikut. 7alam

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#" -

untuk t = >, #, %,...

!%.#>"

8x dan

!?

yang belum diketahui hams memenuhi persamaan linier:

( ao2+E $m
(I))

!t"

2 ,ym (t))8x+ a$4 E ( !t" ,ym (t));;,=- ao$E ( r#..0 $m vy $m m&(m m


%

(I)

,ym

!%.##"

D::",, a

o2E

($m <n ,ym J++";. ; E (


ri.40 2 123 )(m $m

> ,ym <t>);;.,

oE (
XIII LI*'m

<t> ,ym <t>)

!%.#%"

)(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:

o2E -% 8 ".,, F# #$m +m

!%.#&" C($., +$ ) % D(y.,+ y )% Gy, % 7 7

% ;! - $,)(y,- y,) ""6% L . ... l.,,($,. 8 II


y ., i 9m

!%.#,"
@.,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

- % C($., % y, $A) 9 (y, yA)


G

%,

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

menghasi#kan adalah untuk

gambar yang cukup

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

!a" keadaan a'al suatugraph sebelum dilakukan proses spring

!b" Graph dengan lokal minimum

&,

c
D A

!c" graph setelab pertukaran * dan 1

!d" keadaan akbir graph

Gambar 2.1( proses minimisasi dengan pertukaran simpul !)amada. #$;;."

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:

Gambar 2.1* gambar graph dari KEL ile

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

dengan mende inisikan kondisi

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"

,%

parent !bob,pat" parent !patjim"

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."

!gambar %.#5" menunjukkan hubungan kekeluargaan dimana pam dan tom

,,

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

komponen-komponen dan serta desain

keterikatannya agar

menghasilkan representasi sistem

in ormasi yang dibutuhkan

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.

*bstract Re2erse 1ngineering *bstraction

(ystem

Mor'ard 1ngineering Reimplementation

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

sistem beserta representasi dari tiap-tiap tingkatannya.

Tabe# 2.1 tingkat abstraksi sistem beserta representasinya


Tingkat *bstraksi Representasi )onsep-konsep dan aturan *bstraksi spesi ik aplikasi Mungsi (pesi ikasi logical dan ungsi 7ata dan alur kontrol graph serta diagram(truktur diagram struktur Pohon urai sintaks abstrak, =abel simbol, @mplementasi

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

engineering digunakan untuk membentuk elemen dari tingkat abstraksi di ba'ahnya.

Iorward -ngineering

;everse -ngineering

;e3uirements Design Source Code ,ehavior

Gambar 2.1: perbedaan ;everse -ngineering dan Iorward -ngineering


!6hiko sky eta=. #$$:"

%.%.: Ana#isis A#&oritma


*nalisis algoritma merupakan pengukuran terhadap e isiensi suatu algoritma=

implementasinya dalam program

apabila ukuran data yang dimasukkan (input)

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

dasar (!asic operation) yang akan diproses oleh

ukuran (siGe) tertentu

dibutuhkan untuk

proses

dibandingkan tara

besamya pertambahan ukuran data yang dimasukkan disebut sebagai banyaknya

pertumbuhan (growth rate). Pada suatu algoritma yang memiliki

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

algoritma, input dengan ukuran sama dapat rnenghasilkan perbedaan proses.

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

(resource) yang biasanya berupa 'aktu yang diperlukan

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)).

Anda mungkin juga menyukai