BAB 2 LANDASAN TEORI
Intelegensia Semu (IS) adalah salah satu bidang dalam ilmu komputer yang meneliti bagaimana mesin dapat belajar dan berpikir seperti layaknya manusia. Bidang ilmu ini mempelajari bagaimana sebuah mesin dapat mempelajari hal-hal baru dan beradaptasi terhadap hal baru tersebut. Menurut Arifudin (2008) , intelegensia semu harus dapat mengambil keputusan berdasarkan kondisi yang dihadapinya, IS memiliki kemampuan untuk menganalisis masukan yang diberikan seperti layaknya otak manusia yang mampu berpikir untuk menghasilkan suatu tindakan. Pemodelan tindakan yang perlu diambil oleh IS dapat bersifat nonlinear. Salah satu pemodelan nonlinear yang sering digunakan dalam IS adalah jaringan saraf tiruan.
2.1
Jaringan Saraf Tiruan Jaringan saraf tiruan JST adalah mesin yang memodelkan cara otak melakukan
operasi atau fungsi tertentu, jaringan ini biasanya diimplementasikan dengan menggunakan komponen-komponen elektronik atau disimulasikan dengan menggunakan perangkat lunak pada komputer. Untuk mencapai performa yang optimal, jaringan ini bergantung penuh pada sel-sel komputasi yang disebut sebagai neuron atau unit-unit pemrosesan (Haykin, 1999, p2).
8
Definisi jaringan saraf tiruan sebagai mesin yang dapat menyesuaikan diri (Haykin, 1999) adalah: Jaringan saraf tiruan adalah kumpulan processor yang terdistribusi secara paralel dimana unit-unit tersebut disusun oleh unit pemrosesan sederhana, jaringan
ini
berdasarkan
memiliki pengalaman
kecenderungan sehingga
untuk
dapat
menyimpan
digunakan
pengetahuan
untuk
keperluan
mendatang. JST meniru dua buah karakteristik otak: 1. Pengetahuan yang didapat oleh jaringan, didapat melalui proses pembelajaran. 2. Koneksi antara neuron yang dikenal debagai synaptic weight, digunakan untuk menyimpan pengetahuan. 2.1.1
Keunggulan JST Keunggulan jaringan saraf tiruan (Haykin 1999) adalah :
1. Nonlinear (Nonlinearity) Sebuah JST dapat memodelkan hubungan kompleks antara masukan dan luaran untuk menemukan pola data dari problem nonlinear yang dimodelkan. 2. Pemetaan masukan menjadi luaran (Input-Output mapping) Dalam JST terdapat pembelajaran. Pengetahuan pembelajaran disimpan pada bobot sinapsis. Dalam pembelajaran dilakukan modifikasi dari bobot sinapsis
9
pada JST dengan berdasarkan sinyal masukan dan respons luaran yang diharapkan. 3. Adaptif (Adaptivity) JST memiliki kemampuan untuk beradaptasi pada lingkungan yang berbeda. Sebuah jaringan saraf tiruan yang dilatih untuk beroperasi dalam lingkungan tertentu dapat tetap mengambil tindakan tepat pada lingkungan yang telah mengalami perubahan-perubahan kecil (minor). 4. Toleransi terhadap kesalahan (Fault tolerance) JST memiliki potensi untuk mewarisi sifat fault tolerance, yaitu tetap mampu melakukan komputasi yang baik meskipun terjadi penurunan performa akibat kondisi operasi yang tidak menguntungkan. 5. Dapat diimplementasikan secara terpadu dalam skala besar (Very Large Scale Integral Implentability) Sifat bawaan dari JST yang paralel meningkatkan kecepatan dan membuat JST cocok untuk diimplementasikan pada teknologi VLSI yang menyediakan pemetaan sifat yang kompleks secara hirarkis. 6. Keseragaman dalam analisis dan desain (Uniformity of analysis and design) JST menggunakan notasi yang sama yang dapat digunakan pada sesama domain yang melibatkan JST. Neuron, dalam bentuk yang satu atau lainnya mempresentasikan rumusan yang sama untuk semua jaringan saraf tiruan.
10
Kesamaan ini memungkinkan aplikasi yang berbeda dalam neural networks berbagi teori dan algoritma pembelajaran. 2.1.2
Model Neuron Neuron adalah sebuah unit pemrosesan informasi yang paling pokok dalam
melakukan operasi JST (Haykin, 1999). Berikut adalah tiga elemen dari model JST : 1. Setiap set sinapsis memiliki karakter berdasarkan bobot masing-masing sinapsis tersebut (synaptic weight). 2. linear combiner output (jumlah luaran dari synaptic yang berkaitan) ditimbang berdasarkan daya dari sinapsis yang terhubung ke neuron yang bersangkutan. 3. Sebuah fungsi aktivasi digunakan untuk membatasi jangkuan luaran dari sebuah neuron, seringkali disebut sebagai squashing function (fungsi pembatas).
Gambar 2.1 Model linear dari sebuah neuron
11
Pada gambar di atas, neuron memiliki bias bk, yang berfungsi menambah atau mengurangi jumlah masukan bagi fungsi aktivasi. Penulisan matematika dari gambar di atas adalah sebagai berikut : m
u k = ∑ w jk x j j =1
vk = uk + bk y k = ϕ ( vk ) dimana : m = jumlah node masukan yang mempunyai sinapsis ke node k. x1, x2, ... xm = sinyal masukan. w1k, w2k, ... , wmk = bobot sinapsis dari neuron. uk = linear combiner output. bk = bias. vk = potensial aktivasi atau neuron induced local field.
ϕ (v) = fungsi aktivasi. yk adalah nilai luaran dari neuron.
12
2.1.3
Tipe Fungsi Aktivasi Fungsi aktivasi yang dinotasikan oleh φ(υ) menentukan luaran dari v. Berikut
adalah tipe-tipe fungsi aktivasi : a. Threshold Function Fungsi yang memberikan nilai luaran 1 jika nilai masukan sama atau melebihi nilai threshold tertentu dan selain kondisi tersebut diberikan nilai luaran 0.
1
v≥0
0
v<0
ϕ (v ) = {
b. Piecewise-linear Function Fungsi yang memberikan nilai luaran berdasarkan range dari nilai masukan yang diberikan. Contoh :
c. Sigmoid Function Fungsi yang menghasilkan kurva sigmoid (kurva berbentuk S). Merupakan fungsi aktivasi yang seringkali digunakan dalam jaringan saraf tiruan karena bersifat nonlinear. Sebuah contoh dari fungsi sigmoid adalah fungsi logistik, yang
13
memiliki nilai keluaran non-linear antara 0 dan 1. fungsi logistik didefinisikan sebagai berikut :
ϕ (v ) =
1 1 + e −v
Gambar 2.2 Tipe-tipe fungsi aktivasi
14
2.1.4
Mutilayer Perceptron Multilayer Perceptron (MP) adalah sebuah JST yang terdiri dari beberapa set unit
sensori berupa sebuah input layer, satu atau lebih hidden layer dan sebuah output layer dari node-node yang melakukan komputasi (Haykin, 1999). JST ini berdasarkan pada algoritma error-corection learning rule. Multilayer Perceptron memiliki tiga karakteristik utama 1. Neuron di dalam jaringan ini memiliki sebuah fungsi aktivasi nonlinear. Contohnya fungsi logistik:
ϕ (v ) =
1 1 + e −v
2. Jaringan memiliki satu atau lebih layer dari hidden neuron yang bukan merupakan bagian dari masukan ataupun luaran. Hidden neuron memungkinkan jaringan untuk mempelajari tugas rumit dengan melakukan ekstrasi secara progresif pada fitur-fitur penting dari pola masukan. 3. Jaringan memiliki derajat konektivitas yang tinggi, ditunjukkan oleh sinapsis dari jaringan. Perubahan konektivitas dari jaringan akan mengakibatkan perubahan dari populasi koneksi sinapsis atau berat.
15
Gambar 2.3 Arsitektur multilayer perceptron Arsitektur Multilayer Perceptron memiliki 3 layer yaitu masukan layer, hidden layer, dan output layer. Setiap layer memiliki node yang saling berhubungan pada setiap node yang lainnya. Arsitektur Multilayer Perceptron dapat dilihat pada gambar 2.3 2.1.5
Backpropagation Pada penelitian ini, digunakan algoritma Backpropagation untuk melatih MP.
Menurut Simon Haykin (1999, p161) Algoritma ini terdiri dari dua bagian yaitu foward dan backward. Pada bagian foward, masukan diaplikasikan keseluruh node masukan dan disebarkan ke layer selanjutnya untuk menghitung luaran dari setiap node. Pada bagian backward, bobot sinapsis yang ada disesuaikan. Algoritma Backpropagation : 1. Inisialisasi bobot sinapsis 2. Pada proses foward bobot dari sinapsis tidak mengalami perubahan dan luaran dari setiap node dihitung berdasarkan masukan neuron, synaptic weight dan bias.
16
Perhitungan dimulai dari tiap node di layer pertama hidden layer hingga ouput layer. Misalkan k adalah node yang ingin dihitung sinyal luaran-nya (Y). Maka Yk dihitung dengan persamaan : m
uk = ∑ w jk x j j =1
vk = uk + bk yk = ϕ (vk ) dimana: m = jumlah node masukan yang mempunyai sinapsis ke node k. x1, x2, ... xm = sinyal masukan ke node k. w1k, w2k, ... , wmk = bobot sinapsis dari neuron masukan ke node k. uk = linear combiner output. bk = bias ke node k. vk = potensial aktivasi atau neuron induced local field dari node k.
ϕ (v) = fungsi aktivasi. yk = nilai luaran dari neuron yang dicari.
17
3. Pada proses backward, bobot dari sinapsis dan bias mengalami perubahan. Besar perubahan bobot dan bias dihitung berdasarkan luaran seharusnya, luaran yang didapat, dan learning rate. Perhitungan dilakukan mundur dimulai dari tiap node di output layer hingga input layer. Perhitungan besar perubahan menggunakan persamaan sebagai berikut : Untuk luaran layer :
δ k = t k − y k ϕ ' ( vk ) Δw jk = αδ k y j Δbk = αδ k setiap node luaran k, dihitung informasi errornya atau gradien local ( δ k ). dimana: tk = nilai luaran seharusnya. Yk = nilai luaran yang didapat.
ϕ ' (v) = turunan pertama dari fungsi aktivasi. vk = potensial aktivasi atau neuron induced local field dari node k. Δw jk = besar koreksi bobot sinapsis dari neuron masukan j ke neuron k.
α = learning rate. y j = luaran dari neuron j yang menjadi masukan bagi neuron k.
18
Δbk = besar koreksi bias ke node k. Untuk hidden layer : m
δ j = ∑ δ k w jk ϕ ' (v j ) k =1
Δwij = αδ j yi Δb j = αδ j setiap node hidden j, dihitung informasi errornya atau gradien local ( δ j ). dimana:
δ k = informasi error pada node k. w jk = nilai bobot sinapsis dari node j ke node k. v j = potensial aktivasi atau neuron induced local field dari node j. Δwij = besar koreksi bobot sinapsis dari neuron masukan i ke neuron j.
y i = luaran dari neuron j yang menjadi masukan bagi neuron k. Δb j = besar koreksi bias ke node j.
19
Gambar 2.4 Aliran sinyal error dari komputasi backward Untuk melakukan komputasi nilai δ untuk setiap neuron, diperlukan turunan dari fungsi aktivasi ϕ ' (v) . Fungsi turunan dari fungsi logistik adalah sebagai berikut :
ϕ ' (v) = ϕ (v)(1 − ϕ (v)) 2.1.6
Kriteria Pemberhentian Berikut ini beberapa kriteria pemberhentian pada algoritma backpropagation
(Haykin, 1999) adalah sebagai berikut : 1. Algoritma backpropagation mengalami konvergensi ketika norma Euclidean dari vector gradient mencapai batasan gradient. 2. Algoritma backpropagation mencapai konvergensi ketika tingkat perubahan dari kuadrat rata-rata eror untuk setiap epoch (perulangan) cukup kecil 3. Algoritma backpropagation konvergen ketika performa generalisasi dari jaringan mencapai titik puncaknya.
20
2.1.7
Inisialisasi Bobot Sinapsis Inisialisasi bobot sinapsis pada JST dapat dilakukan dengan memberikan
inisialisasi acak pada interval nilai tertentu. Untuk inisialisasi secara acak bisa mengambil bilangan acak dari 0 – 1 atau dari -0.5 sampai 0.5. Tapi penentuan bobot sinapsis yang terlalu random bisa memicu lambatnya proses training Menurut I Putu Sundika (2008) untuk mempercepat proses training, bisa dipakai teknik inisialisasi bobot sinapsis yang dikemukakan oleh Nguyen dan Widrow (Derrick Nguyen dan Bernard Widrow, 1990). Umumnya, inisialisasi Nguyen-Widrow memberikan waktu training yang lebih singkat dibandingkan inisialisasi random. Untuk melakukan inisialisasi Nguyen-Widrow pertama-tama dicari beta ( β ).
β = 0.7( p )1 / n = 0.7 n p dimana: n = jumlah node masukan. p =jumlah node hidden. Algoritma Nguyen-Widrow adalah sebagai berikut : 1. Ambil nilai nilai bobot sinapsis secara acak dari -0.5 sampai dengan 0.5 atau antara – y dan y.
2.
vij =
βvij (old ) vij (old )
3. Untuk biasnya ambil nilai acak dari bilangan antara - β sampai β .
21
Setelah bobot sinapsis dinisialisasi dengan metode Nguyen-Widrow Proses belajar akan menjadi lebih cepat seperti terlihat pada perbandingan dibawah. Tabel 2.1 Perbandingan iterasi inisialisasi random dan Nguyen-Widrow
2.1.8
Random
Nguyen-Widrow
(perulangan)
(perulangan)
Binary XOR
2,891
1,935
Bipolar XOR
387
224
Learning Rate Learning Rate ( α ) adalah salah satu parameter yang menentukan kecepatan
belajar dan tingkat efektivitas training JST. Learning rate dibutuhkan ketika menghitung besar koreksi bobot sinapsis Δw dan koreksi bobot bias Δb . Contoh : Dalam sebuah JST terdapat sebuah bobot sinapsis sebesar 0.3. Ketika JST diberikan training sample baru, algoritma BP membutuhkan bobot sinapsis tersebut diubah menjadi 0.7. Jika bobot sinapsis langsung diubah menjadi 0.7, JST akan dapat mengenali sample baru tersebut dengan baik. Namun, cenderung akan melupakan semua semua sample yang telah dipelajari sebelumnya karena nilai bobot sinapsis 0.3 merupakan hasil dari semua proses belajar yang dialami oleh JST sebelum sample baru. Karenanya, bobot sinapsis tidak langsung diubah menjadi 0.7, melainkan dibawa mendekati 0.7 perlahan. Bobot sinapsis tersebut diubah sebagian, misalkan 0.25% dari perubahan yang dibutuhkan sehingga bobot sinapsis yang baru menjadi 0.4. Faktor 0.25 ini disebut sebagai learning rate.
22
Ketika siklus ini diulang dalam jumlah yang besar selama training, JST mempelajari semua sample secara efektif. 2.1.9
Momentum Performa Algoritma BP dapat ditingkatkan dengan menggunakan momentum dan
jitter. Momentum diasosiasikan terhadap sinapsis untuk menentukan kecenderungan sinapsis mempertahankan bobot perubahan sinapsis sebelumnya. Faktor ini berkisar dari angka 0 hingga 1. Dalam BP dengan momentum, perubahan bobot sinapsis dipengaruhi oleh perubahan bobot sinapsis sebelumnya. Untuk memastikan proses pembelajaran JST terhindar dari penyimpangan yang disebabkan oleh noise dalam data training. Momentum juga membantu fungsi tujuan konvergen lebih cepat sehingga mempercepat proses pembelajaran.
Δwn = αδ + momentum * Δwn−1 2.1.10 Jitter Kurva kesalahan dari JST BP biasanya memiliki bentuk yang kompleks. Diawali dengan kesalahan pada titik tertentu di awal, kesalahan akan berkurang / berubah seiring dengan proses training. Agar training memberikan JST terbaik, kesalahan diharapkan mencapai global minimum dari kurva. Ketika training, tingkat error JST dapat terperangkap pada lokal minimum. Selama JST bereaksi dengan tepat pada training dan data tes, tidak masalah apakah JST mencapai global minimum atau local minimum. Namun pada keadaan tertentu, hal ini dapat membawa JST pada keadaan kesetimbangan (equilibrium) dimana terjadi training yang tidak bermanfaat. Masalah ini biasa dapat diselesaikan dengan menginisialisasi ulang JST dengan nilai random dan training
23
kembali. Namun hal ini tidak praktis dan memakan waktu. Jitter diberikan pada JST ketika training untuk membantu JST keluar dari local minimum Jitter adalah proses penambahan noise acak dalam jumlah kecil pada bobot sinapsis pada interval waktu tertentu. Sehingga membantu mencegah JST menetap pada local minimum. Interval waktu dimana noise acak ini diberikan disebut dengan Jitter Epoch. Setiap interval Jitter Epoch pada setiap sinapsis dalam JST dilakukan :
w = w + JitterNoise
Gambar 2.5 Local Minimun dan Global Minimum
2.2 Analisis struktur persamaan matematika Pada persamaan matematika, simbol saling berhubungan satu sama lain, 3
contohnya superscript seperti 2 , atau above dan under seperti
2 , dan inside seperti 3
2 , dan sebagainya.
Sebuah simbol dapat memiliki relasi berbeda jika dikaitkan dengan simbol lain. Misalnya pada − 2 tanda minus mempunyai row relasi row dengan 2 sedangkan pada
24
2 simbol 2 mempunyai relasi above dengan fraksi dan simbol 3 mempunyai relasi 3 below dengan fraksi.
Berdasarkan hubungan antar simbol, struktur matematika dari persamaan dapat dibentuk. Untuk menganalisis struktur pada persamaan matematika yang diberikan, diperlukan identifikasi relasi antara simbol satu dengan yang lainnya baru kemudian ditentukan struktur persamaannya. 2.2.1
Relasi antar simbol
Untuk menentukan relasi antar simbol, diperlukan perhitungan posisi relatif antar simbol. Persamaan matematika bisa direpresentasikan dalam dua dimensi, untuk menganalisis strukturnya dapat digunakan pendekatan geometri dengan konsep kotak pembatas. Kotak pembatas adalah
bangun 2 dimensi berupa kotak yang dapat
didefiniskan sebagai kotak terkecil yang melingkupi sebuah simbol secara keseluruhan.
Gambar 2.6 Kotak pembatas pada simbol
25
Titik merah mewakili titik tengah dari simbol. Setiap kotak pembatas mempunyai batas top, bottom, left dan right. Relasi dalam ekspresi matematika :
Gambar 2.7 Perbedaan tipe-tipe dalam relasi simbol
1. Row : jika batas kiri sebuah simbol lebih kecil dari batas kiri simbol setelahnya dan kedua simbol tidak beririsan serta terletak dalam baseline yang sama. Baseline dihitung berdasarkan posisi relatif y simbol satu terhadap simbol lain. 2. Superscript : jika batas atas dari sebuah simbol lebih kecil dari batas atas simbol setelahnya dan kedua simbol tidak beririsan serta simbol setelahnya terletak pada baseline yang lebih tinggi dan tidak tepat berada di atas simbol pertama. 3. Subscript : jika batas bawah dari sebuah simbol lebih kecil dari batas bawah simbol setelahnya dan kedua simbol tidak beririsan serta simbol setelahnya terletak pada baseline yang lebih rendah dan tidak tepat berada di bawah simbol pertama.
26
4. Prescript : jika batas atas dari sebuah simbol lebih kecil dari batas atas simbol sebelumnya dan kedua simbol tidak beririsan serta simbol sebelumnya terletak pada baseline yang lebih tinggi dan tidak tepat berada di atas simbol pertama. 5. Inside / Outside : jika kotak pembatas sebuah simbol beririsan dengan kotak pembatas simbol setelahnya, batas kiri simbol setelahnya lebih besar daripada batas kiri simbol tersebut dan batas atas simbol setelahnya lebih besar daripada simbol itu. 6. Above : jika batas atas dari sebuah simbol lebih kecil dari batas atas simbol setelahnya dan kedua simbol tidak beririsan serta simbol setelahnya terletak pada baseline yang lebih tinggi dan tepat berada di atas simbol pertama. 7. Under : jika batas bawah dari sebuah simbol lebih kecil dari batas bawah simbol setelahnya dan kedua simbol tidak beririsan serta simbol setelahnya terletak pada baseline yang lebih rendah dan tepat berada di bawah simbol pertama. 2.2.2
Progressive Structural Analysis
Merupakan metode untuk menganalisis struktur persamaan matematika yang dikemukakan oleh Ba-Quoy Vuong (2007, p2) dan merupakan adaptasi dari metodemetode yang sudah ada sebelumnya. Dalam studi-studi sebelumnya, beberapa teknik analisis struktur matematika telah dikemukakan, diantaranya : Grammar-based approaches (Chou, 1989), baseline tree structure (Zannibbi et al, 2002), dan Minimum Spanning Tree (Tapia dan Rojas, 2003, 2005). Teknik seperti Grammar-based approaches dinilai lambat, sementara yang lain sensitif terhadap kesalahan penulisan
yang dilakukan oleh user. Secara umum, metode-metode ini memiliki kesamaan yaitu menganalisis struktur persamaan ketika pengguna selesai memberi masukan persamaan matematika secara
27
keseluruhan. Hal ini menimbulkan jeda waktu
yang cukup lama antar kesalahan
pengenalan terutama untuk ekspresi yang panjang.
Gambar 2.8 Progressive Structural Analysis
Pada PSA, simbol dan struktur dikenali secara dinamis selama user menuliskan ekspresi matematika yang diinginkan. Pendekatan ini membantu pengguna mendeteksi kesalahan pengenalan simbol dan memperbaikinya segera setelah ditulis. Pengguna tidak harus menunggu sampai penulisan ekspresi matematika selesai secara keseluruhan lalu memperbaiki kesalahan yang terjadi. Proses konversi persamaan berlangsung secara rekursif dari kiri ke kanan. Luaran yang dikembalikan dari proses ini berupa persamaan matematika yang dikenali dalam format text linear. Analisis struktur matematika yang dilakukan menggunakan algoritma sebagai berikut : 1. Urutkan urutan simbol dari kiri ke kanan. 2. Baca simbol dari kiri ke kanan 3. Jika simbol yang sedang dibaca merupakan simbol khusus (memiliki relasi selain row dengan simbol lain), cari elemen persamaan yang berkaitan dengan simbol khusus itu. Pada setiap pencarian elemen yang berkaitan
28
lakukan kembali pengecekan apakah dari simbol-simbol yang berkaitan juga memiliki simbol khusus (rekursif) Presedensi urutan pencarian : -
cari elemen above dan below dari simbol fraksi
-
cari elemen inside dari simbol pangkat
-
cari elemen superscript dari simbol berpangkat
4. Jika simbol yang sedang dibaca merupakan simbol yang memiliki relasi row, maka tambahkan ke hasil.
2.3 Analisis hasil persamaan matematika
Untuk mengevaluasi hasil perhitungan, dilakukan penelusuran terhadap persamaan dalam format text linear oleh penganalisis hasil persamaan matematika (expression analyzer) Algoritma penganalisis hasil persamaan matematika adalah sebagai berikut : 1. Mencari operator. Dicari indeks operatornya 2. Untuk tiap operator yang ditemukan, cari hasil operasi antara ekspresi matematika di kiri operaror dengan ekspresi matematika di kanan operator. Setiap pencarian hasil dari ekspresi matematika baik kiri maupun kanan dilakukan langkah 1 dan 2 secara rekursif 3. presedensi operator dijaga dengan mengatur urutan pencarian operator (operator yang dicari terlebih dahulu) : a. + dan – b. * dan / c. sin, cos, dan tan
29
d. sqr e. log f. pangkat g. ( dan )
2.4 Perancangan Aplikasi 2.4.1
Rekayasa Piranti Lunak
Rekayasa Piranti Lunak menurut Fritz Bauer (Pressman, 2005, p23) adalah penetapan dan pemakaian prinsip-prinsip rekayasa dalam rangka mendapatkan piranti lunak yang ekonomis yaitu terpecaya dan bekerja efisien pada mesin (komputer). Dalam perancangan software dikenal istilah software life cycle yaitu serangkaian kegiatan yang dilakukan selama masa perancangan software. Secara umum dalam membuat sebuah sistem terdapat beberapa pemodelan proses, salah satu diantaranya adalah waterfall model. Menurut Dix (1997, p180), berikut adalah visualisasi dari kegiatan pada software life cycle model waterfall: 1. Spesifikasi kebutuhan (Requirement specification) Pada tahap ini, pihak pengembang dan konsumen mengidentifikasi apa saja fungsi-fungsi yang diharapkan dari sistem dan bagaimana sistem memberikan layanan yang diminta. Pengembang berusaha mengumpulkan berbagai informasi dari konsumen. 2. Perancangan arsitektur (Architectural design) Pada tahap ini, terjadi pemisahan komponen-komponen sistem sesuai dengan fungsinya masing-masing.
30
3. Detailed design
Setelah memasuki tahap ini, pengembang memperbaiki deskripsi dari komponenkomponen dari sistem yang telah dipisah-pisah pada tahap sebelumnya. 4. Coding and unit testing
Pada tahap ini, disain diterjemahkan ke dalam bahasa pemrograman untuk dieksekusi. Setelah itu komponen-komponen dites apakah sesuai dengan fungsinya masing-masing. 5. Integration and testing
Setelah tiap-tiap komponen dites dan telah sesuai dengan fungsinya, komponenkomponen tersebut disatukan lagi. Lalu sistem dites untuk memastikan sistem telah sesuai dengan kriteria yang diminta konsumen. 6. Pemeliharaan (maintenance) Setelah sistem diimplementasikan, maka perlu dilakukannya perawatan terhadap sistem itu sendiri. Perawatan yang dimaksud adalah perbaikan error yang ditemkan setelah sistem diimplementasikan.
Gambar 2.9 Software Life Cycle Model Waterfall Sumber: Dix (1997, p181)
31
2.4.2
Unified Modelling Language Unified Modelling Language (UML) adalah bahasa visual pemodelan yang
digunakan untuk menentukan, memberi gambaran, gagasan dan dokumentasi dari sebuah sistem piranti lunak, juga untuk mengambil keputusan dan mengerti mengenai sistem yang akan dibangun. UML digunakan agar sistem yang dibuat dapat dimengerti, dirancang, dibangun, dipelihara, dan dikontrol informasinya (Booch et. al., 1999, p3) UML merupakan suatu bahasa untuk memvisualisasikan, menspesifikasi, mengonstruksi, dan mendokumentasikan artifacts dari suatu sistem piranti lunak. UML digunakan mengekspresikan model-model dari sistem yang akan dibuat dan tidak mengajarkan bagaimana cara mengembangkan suatu piranti lunak. 2.4.2.1 Flowchart Flowchart adalah representasi skema dari suatu algoritma atau suatu proses (
Wikipedia , 2008 ). Pertama kali diperkenalkan oleh Frank Gilbreth pada tahun 1921 dan saat ini menjadi alat yang sering digunakan untuk menunjukkan aliran proses dalam sebuah algoritma. Sebuah flowcart umumnya terdiri dari simbol-simbol antara lain: 1. Simbol oval atau persegi panjang dengan ujung-ujung tumpul Simbol ini menandakan “mulai” atau “selesai” yang menunjukkan awal atau akhir dari sebuah proses. 2. Anak panah Simbol ini menunjukan “alur kontrol” dalam suatu algoritma. Anak panah keluar dari suatu simbol dan berakhir pada simbol lain yang menunjukkan kontrol beralih kepada simbol yang ditunjukkan oleh anak panah.
32
3. Persegi panjang Simbol ini mewakili langkah proses , input atau output. Contoh : “ nilai x dikurang 1”. 4. Belah ketupat Simbol ini mewakili kondisi atau keputusan yang umumnya mempunyai dua jawaban saja.
Gambar 2.10 Contoh Flowchart Sumber: http://en.wikipedia.org/wiki/Flowchart
2.4.2.2 Use Case Diagram Use Case menunjukkan hubungan interaksi antara aktor dengan use case di
dalam suatu sistem (Mathiassen, 2000, p343) yang bertujuan untuk menentukan bagaimana aktor berinteraksi dengan sebuah sistem. Aktor adalah orang atau sistem lain yang berhubungan dengan sistem.
33
Ada tiga simbol yang mewakili komponen sistem seperti terlihat pada gambar dibawah ini.
Gambar 2.11 Notasi Use Case Diagram Sumber : Mathiassen (2000, p343) 2.4.2.3 Class Diagram Class Diagram
adalah penggambaran struktur relasi antara class-class dan
objek-objek dalam suatu model (Mathiassen, 2000, p69-70). Class merupakan pembentuk utama dari sistem berorientasi objek yang digambarkan dalam bentuk segi empat yang terbagi menjadi tiga bagian. Bagian atas merupakan nama dari class, bagian tengah berisi atribut dari class, dan bagian bawah berisi behaviour dari class (Booch, et. al., 1999, pp42-45).
Gambar 2.12 Notasi Class Diagram
34
2.4.2.4 Sequence Diagram
Menggambarkan bagaimana objek berinteraksi satu sama lain melalui pesan pada pelaksanaan use case atau operasi. Sequence diagram mengilustrasikan bagaimana pesan dikirim dan diterima antar objek secara berurutan. (Whitten et. al., 2004, p441). Beberapa notasi sequence diagram terlihat pada gambar dibawah ini.
Gambar 2.13 Notasi Sequence Diagram Sumber: Whitten (2004, p441)