BAB 2
LANDASAN TEORI
2.1 Fuzzy Logic
2.1.1 Himpunan Fuzzy
Teori himpunan fuzzy diperkenalkan oleh Zadeh pada tahun 1965 (Kulkarni,
2001). Beberapa-beberapa definisi tentang himpunan fuzzy (Yan; Ryan; Power, 1994),
yaitu:
Jika U adalah koleksi dari objek-objek yang dinotasikan secara generik oleh u, maka suatu himpunan fuzzy F dalam U adalah suatu himpunan pasangan berurutan:
F= ( )( ){ }Uuuu F |, dengan ( )uF adalah derajat keanggotaan u di F yang memetakan U ke ruang keanggotaan yang terletak pada rentang [0,1].
Support dari himpunan fuzzy F adalah himpunan klasik dari Uu sedemikian hingga ( )uF > 0. Untuk Uu dimana ( )uF = 0.5 disebut titik potong.
Himpunan -level dari himpunan fuzzy F, F, adalah himpunan klasik dari Uu sedemikian hingga ( )uF .
Biasanya derajat keanggotaan maksimum untuk elemen di dalam himpunan fuzzy adalah 1. Pada kasus ini himpunan tersebut disebut ternormalisasi (normalized).
Sebuah himpunan yang tidak ternormalisasi dapat dibuat menjadi begitu dengan
mengubah semua nilai-nilai keanggotaan dalam proporsi sehingga membuat nilai
terbesar menjadi 1.
8
2.1.2 Fungsi Keanggotaan
Fungsi keanggotaan (membership function) adalah suatu kurva yang
menunjukkan pemetaan titik-titik input data ke dalan nilai keanggotaannya (Kulkarni,
2001). Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan
adalah dengan melalui pendekatan fungsi. Fungsi keanggotaan yang sering digunakan
(Yan; Ryan; Power, 1994), antara lain:
A. Fungsi Kurva-S (S-function)
Fungsi ini memiliki bentuk S dimana bentuk kurvanya ditentukan oleh nilai
parameter a, b, c. Perlu diketahui bahwa fungsi kurva-S ini datar dengan nilai konstanta
0 untuk u < a dan nilai konstanta 1 untuk u > c. Di antara a dan c, fungsi kurva-S adalah
fungsi kuadrat dari u. Titik potong dari 0.5 terjadi pada b = (a + c) / 2 (Yan; Ryan;
Power, 1994).
Gambar 2.1 Kurva-S
9
Fungsi keanggotaan kurva-S didefinisikan sebagai berikut:
( ) ( ) ( )[ ]( ) ( )[ ]
>
> wkidik , dan X setidaknya memiliki c elemen, maka ( ) CPfc xMVU , dapat meminimasi Jw hanya jika:
( )nkCi
ddC
j
w
jk
ikik
=
=
1;1;1
1
1/2
( )( ) njCi
xv n
k
wik
n
kkj
wik
ij
=
=
= 1;1;
1
1
Algoritma FCM diberikan sebagai berikut (Kumusadewi; Hartati, 2006):
1. Tentukan:
16
a. Matriks X berukuran n x m, dengan n = jumlah data yang akan dicluster; dan m
= jumlah variabel (kriteria).
b. Jumlah cluster yang akan dibentuk = C (2).
c. Pangkat (pembobot) = w(>1).
d. Maksimum iterasi.
e. Kriteria penghentian = (nilai positif yang sangat kecil).
f. Iterasi awal, t = 1, dan = 1.
2. Bentuk matriks partisi awal, U0, sebagai berikut:
( ) ( ) ( )( ) ( ) ( )( ) ( ) ( )
=
nCnCC
nn
nn
xxx
xxxxxx
U
LMM
LL
2211
2222121
1212111
(matriks partisi awal biasanya dipilih secara acak)
3. Hitung pusat cluster, V, untuk setiap cluster:
( )( )
=
=
= nk
wik
n
kkj
wik
ij
xv
1
1
4. Perbaiki derajat keanggotaan setiap data pada setiap cluster (perbaiki matriks
partisi), sebagai berikut:
( ) 1
1
1/2
=
= C
j
w
jk
ikik d
d
dengan:
( ) ( ) 2/11
== =
m
jijkjikik vxvxdd
17
5. Tentukan kriteria berhenti, yaitu perubahan matriks partisi pada iterasi sekarang
dengan iterasi sebelumnya, sebagai berikut:
1= tt UU
Apabila , maka iterasi dihentikan, namun apabila > , maka naikkan iterasi (t=t+1) dan kembali ke langkah-3. Pencarian nilai dapat dilakukan dengan mengambil
elemen terbesar dari nilai mutlak selisih antara ( )tik dengan ( )1tik .
2.2 Jaringan Syaraf Tiruan
2.2.1 Pengertian Jaringan Syaraf Tiruan
Jaringan syaraf tiruan 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 pada sel-sel komputasi yang disebut sebagai neuron atau unit-
unit pemrosesan (Haykin, 1999).
Menurut Haykin (1999) definisi jaringan syaraf tiruan adalah kumpulan
processor yang terdistribusi secara paralel dimana unit-unit tersebut disusun oleh unit
pemrosesan sederhana, jaringan ini memiliki kecenderungan untuk menyimpan
pengetahuan berdasarkan pengalaman sehingga dapat digunakan untuk keperluan
mendatang. Jaringan syaraf tiruan meniru dua buah karakteristik otak, yaitu:
1. Pengetahuan yang didapat oleh jaringan, didapat melalui pemrosesan.
18
2. Koneksi antara neuron yang dikenal sebagai synaptic weight, digunakan untuk
menyimpan pengetahuan.
2.2.2 Keunggulan Jaringan Syaraf Tiruan
Keunggulan jaringan syaraf tiruan (Haykin, 1999) adalah:
1. Nonlinear (Nonlinearity)
Sebuah jaringan syaraf tiruan dapat memodelkan hubungan yang kompleks antara
masukan dan luaran untuk menemukan pola data dari problem nonlinear yang
dimodelkan.
2. Pemetaan masukan menjadi luaran (Input-Output mapping)
Dalam jaringan syaraf tiruan terdapat pembelajaran. Pengetahuan pembelajaran
disimpan pada bobot sinapsis. Dalam pembelajaran dilakukan modifikasi dari bobot
sinapsis pada jaringan syaraf tiruan dengan berdasarkan sinyal masukan dan respon
luaran yang diharapkan.
3. Adaptif (Adaptivity)
Jaringan syaraf tiruan memiliki kemampuan untuk beradaptasi pada lingkungan yang
berbeda. Sebuah jaringan syaraf tiruan yang dilatih untuk beroperasi dalam
lingkungan tertentu dapat tetap mengambil tindakan tepat pada lingkungan yang
telah mengalami perubahan-perubahan kecil.
4. Toleransi terhadap kesalahan (Fault tolerance)
Jaringan syaraf tiruan memiliki potensi untuk mewarisi sifat fault tolerance, yaitu
tetap mampu melakukan komputasi yang baik meskipun terjadi penurunan performa
akibat kondisi operasi yang tidak menguntungkan.
19
5. Dapat diimplementasikan secara terpadu dalam skala besar (Very large scale
integral implementability)
Sifat bawaan dari jaringan syaraf tiruan yang paralel meningkatkan kecepatan dan
membuat jaringan syaraf tiruan cocok untuk diimplementasikan pada teknologi
VLSI (Very Large Scale Integral) yang menyediakan pemetaan sifat yang kompleks
hirarkis.
6. Keseragaman dalam analisis dan desain (Uniformity of analysis and design)
Jaringan syaraf tiruan menggunakan notasi yang sama yang dapat digunakan pada
sesama domain yang melibatkan jaringan syaraf tiruan. Neuron, dalam bentuk yang
satu atau lainnya merepresentasikan rumusan yang sama untuk semua jaringan
syaraf tiruan. Kesamaan ini memungkinkan aplikasi yang berbeda dalam neural
networks berbagi teori dan algoritma pembelajaran.
2.2.3 Model Neuron
Neuron adalah sebuah unit pemrosesan informasi yang paling pokok dalam
melakukan operasi jaringan syaraf tiruan (Haykin, 1999). Berikut adalah tiga elemen
dari model jaringan syaraf tiruan:
1. Setiap sel sinapsis memiliki karakter berdasarkan bobot masing-masing sinapsis
tersebut (synapsis weight).
2. Linear combiner output (jumlah luaran dari sinapsis yang berkaitan) ditimbang
berdasarkan daya dari sinapsis yang terhubung ke neuron yang bersangkutan.
3. Sebuah fungsi aktivasi digunakan untuk membatasi jangkauan luaran dari sebuah
neuron, seringkali disebut sebagai squashing function (fungsi pembatas).
20
)(
Gambar 2.5 Model Nonlinear dari Sebuah Neuron
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:
=
=m
jjjkk xwu
1
kkk buv +=
( )kk vy = 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
yk = nilai luaran dari neuron
(v) = fungsi aktivasi
21
2.2.4 Tipe Fungsi Aktivasi
Fungsi aktivasi yang dinotasikan oleh (v) menentukan luaran dari v. Berikut adalah tipe-tipe fungsi aktivasi:
1. 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.
( )
>+
+=
2/102/12/1
2/11
vvv
vv
3. Sigmoid Function
Fungsi yang menghasilkan kurva sigmoid (kurva berbentuk S). merupakan fungsi
aktivasi yang seringkali digunakan dalam jaringan syaraf tiruan karena bersifat
nonlinear. Sebuah contoh dari fungsi sigmoid adalah fungsi logistik, yang memiliki
nilai keluaran nonlinear antara 0 dan 1. Fungsi logistik didefinisikan sebagai berikut:
( ) vev += 11
22
)(v
)(v
)(v
a
Gambar 2.6 Tipe-Tipe Fungsi Aktivasi
23
2.2.5 Multilayer Perceptron
Multilayer perceptron adalah sebuah jaringan syaraf tiruan yang terdiri dari
beberapa set unit sensor berupa sebuah input layer, satu atau lebih hidden layer dan
sebuah output layer dari node-node yang melakukan komputasi (Haykin, 1999).
Jaringan syaraf tiruan ini berdasarkan pada algoritma error-correction learning rule.
Multilayer perceptron memiliki tiga karakteristik utama, yaitu:
1. Neuron di dalam jaringan ini memiliki sebuah fungsi aktivasi nonlinear.
Contoh fungsi logistik:
( ) vev += 11
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.
24
Gambar 2.7 Arsitektur Multilayer Perceptron dengan 2 Hidden Layer
Arsitektur multilayer perceptron memiliki 3 layer, yaitu input layer, hidden layer
dan output layer. Setiap layer memiliki node yang saling berhubungan pada setiap node
lainnya. Arsitektur multilayer perceptron dapat dilihat pada Gambar 2.3.
2.3 ANFIS (Adaptive Neuro Fuzzy Inference System)
ANFIS adalah arsitektur yang yang secara fungsional sama dengan fuzzy rule
base model Sugeno. Arsitektur ANFIS juga sama dengan jaringan syaraf dengan fungsi
radial dengan sedikit batasan tertentu. Bisa dikatakan bahwa ANFIS adalah suatu
metode yang mana dalam melakukan penyetelan aturan digunakan algoritma
pembelajaran terhadap sekumpulan data. Pada ANFIS juga memungkinkan aturan-
aturan untuk beradaptasi (Kusumadewi; Hartati, 2006).
Agar jaringan dengan fungsi basis radial ekuivalen dengan fuzzy berbasis aturan
model Sugeno orde 1 ini (Kusumadewi; Hartati, 2006), diperlukan batasan:
25
a. Keduanya harus memiliki metode agregasi yang sama (rata-rata terbobot atau
penjumlahan terbobot) untuk menurunkan semua outputnya.
b. Jumlah fungsi aktivasi harus sama dengan jumlah aturan fuzzy (IF-THEN).
c. Jika ada beberapa input pada basis aturannya, maka tiap-tiap fungsi aktivasi harus
sama dengan fungsi keanggotaan tiap-tiap inputnya.
d. Fungsi aktivasi dan aturan-aturan fuzzy harus memiliki fungsi yang sama untuk
neuron-neuron dan aturan-aturan yang ada di sisi outputnya.
2.3.1 Arsitektur ANFIS
Misalkan ada 2 input x1, x2 dan satu output y. Ada 2 aturan pada basis aturan
model Sugeno (Kusumadewi; Hartati, 2006):
If x1 is A1 and x2 is B1 Then y1 = c11x1 + c12x2 + c10
If x1 is A2 and x2 is B2 Then y2 = c21x1 + c22x2 + c20
Jika a predikat untuk aturan kedua aturan adalah w1 dan w2, maka dapat dihitung
rata-rata terbobot:
2211
21
2211 ywywww
ywywy +=++= (2.1)
Gambar 2.8 Arsitektur Jaringan ANFIS
26
Jaringan ANFIS terdiri dari lapisan-lapisan (layer) sebagai berikut (Kusumadewi;
Hartati, 2006):
Layer 1. Tiap-tiap neuron i pada lapisan pertama adaptif terhadap parameter suatu
fungsi aktivasi. Output dari tiap neuron berupa derajat keanggotaan yang
diberikan oleh fungsi keanggotaan input, yaitu: A1(x1), B1(x2), A2(x1) atau
B2(x2). Sebagai contoh, misalkan fungsi keanggotaan diberikan sebagai:
( ) ba
cxx 2
1
1+
= (2.2)
dimana {a,b,c} adalah parameter-parameter, biasanya b=1. Jika nilai
parameter-parameter ini berubah, maka bentuk kurva yang terjadi akan ikut
berubah. Parameter-parameter pada lapisan itu biasanya dikenal dengan nama
premise parameters.
Layer 2. Tiap-tiap neuron pada lapisan kedua berupa neuron tetap yang outputnya
adalah hasil dari masukan. Biasanya digunakan operator AND. Tiap-tiap node
merepresentasikan predikat dari aturan ke-i.
Layer 3. Tiap-tiap neuron pada lapisan ketiga berupa node tetap yang merupakan hasil
perhitungan rasio dari a predikat (w), dari aturan ke-i terhadap jumlah dari
keseluruhan a predikat.
21 www
w ii += , dengan i = 1,2. (2.3)
Hasil ini dikenal dengan nama normalised firing strength.
Layer 4. Tiap-tiap neuron pada lapisan keempat merupakan node adaptif terhadap suatu
output.
27
( )02211 iiiiii cxcxcwyw ++= ; dengan i = 1,2. (2.4) Dengan iw adalah normalised firing strength pada lapisan ketiga dan {ci1, ci2,
ci0} adalah parameter-parameter pada neuron tersebut. Parameter-parameter
pada lapisan tersebut disebut dengan nama consequent parameters.
Layer 5. Tiap-tiap neuron pada lapisan kelima adalah node tetap yang merupakan
jumlahan dari semua masukan.
2.3.2 Algoritma Pembelajaran Hybrid
Pada saat premise parameters ditemukan, output yang terjadi akan merupakan
kombinasi linear dari consequent parameters (Kusumadewi; Hartati, 2006), yaitu:
( ) ( )( ) ( ) ( ) ( ) ;; 2022222211210112211111 2022212112102121111
221
21
21
1
cwcxwcxwcwcxwcxw
cxcxcwcxcxcw
yww
wyww
wy
+++++=+++++=
+++=
)7.2()6.2()5.2(
adalah linear terhadap parameter cij (i= 1,2 dan j = 0,1,2).
Algoritma hybrid akan mengatur parameter-parameter cij secara maju (forward)
dan akan mengatur parameter-parameter {ai, bi, ci} secara mundur (backward). Pada
langkah maju (forward), input jaringan akan merambat maju sampai pada lapisan
keempat, dimana parameter-parameter cij akan diidentifikasi dengan menggunakan
metode least-square. Sedangkan pada langkah mundur (backward), error sinyal akan
merambat mundur dan parameter-parameter {ai, bi, ci} akan diperbaiki dengan
menggunakan metode gradient-descent.
28
2.3.3 LSE Rekursif
Misalkan terdapat satu output pada jaringan adaptif, yaitu (Kusumadewi; Hartati,
2006):
O = F(i,S) (2.8)
dengan i adalah vektor dari variabel input, S adalah himpunan parameter-parameter, dan
F adalah fungsi yang diimplementasikan oleh jaringan adaptif. Jika terdapat fungsi H
sedemikian hingga fungsi komposit H F adalah linear untuk elemen S, maka elemen-
elemen ini dapat diidentifikasi dengan metode least square. Andaikan parameter S dapat
dibagi menjadi 2, yaitu:
S = S1 S2 (2.9) dengan adalah direct sum, sedemikian hingga H F linear untuk elemen-elemen S2, kemudian dengan mengaplikasikan H ke dalam persamaan 2.8, diperoleh:
H() = H F(Bi,S) (2.10)
yang linear terhadap elemen-elemen S2. Apabila diberikan elemen-elemen S1, maka
dapat menempatkan P data pelatihan ke dalam persamaan 2.10, dan mendapatkan
sistem persamaan linear, sebagai berikut:
Aq = y (2.11)
dengan q adalah vektor yang tidak diketahui dan elemen-elemennya merupakan
parameter-parameter dari S2. Persamaan 2.11 ini kemudian dapat diselesaikan dengan
menggunakan metode LSE.
Apabila terdapat m elemen pada vektor output y (y berukuran m x 1), dan n
parameter ( berukuran n x 1), dengan baris ke-i pada matriks [AMy] dinotasikan
29
sebagai [aiTMy]. Apabila m = n, maka nilai q dapat ditentukan dari persamaan 2.11
sebagai berikut:
= A-1y (2.12)
Namun, apabila m > n, maka persamaan maka persamaan 2.11 harus dimodifikasi
dengan menambah vektor error e, sehingga:
A + e = y (2.13)
Untuk mendapatkan solusi eksak dari persamaan 2.11, maka harus mencari a = yang meminimumkan jumlah kuadrat error sebagai berikut:
E() = ( )=
m
i
Tii ay
1
2 = eTe = (y-A)T(y-A) (2.14)
Dengan e = y-A adalah vektor error yang terjadi sebagai akibat pemilihan . Jumlah
kuadrat error pada persamaan 2.14 akan menjadi minimum apabila a = , yang sering disebut dengan nama Least-Squares Estimator (LSE), yang ditulis sebagai berikut:
ATA = ATy (2.15) Jika ATA adalah nonsingular, maka bersifat unik, maka dapat diberikan:
= (ATA)-1ATy (2.16) atau dengan membuang(^), dan dengan mengasumsikan jumlah baris dari pasangan A
dan y adalah k, maka diperoleh:
k = (ATA)-1ATy (2.17)
Salah satu metode LSE adalah LSE rekursif. Pada LSE rekursif, dapat
menambahkan suatu pasangan [aTMy], sehingga memiliki sebanyak (m+1) pasangan
data. Dari sini dapat menghitung kembali LSE k+1 dengan k.
30
Karena jumlah parameter ada sebanyak n, maka bisa menyelesaikan matriks n x
n dengan menggunakan metode invers, sebagai berikut:
Pn = (AnTAn)-1 (2.18)
n = PnAnTyn (2.19)
Selanjutnya, iterasi dimulai dari data ke (n+1), dengan nilai Pk+1 dan k+1 dapat dihitung
sebagai berikut:
Pk+1 = 11
11
1 ++++
+ kkTkk
Tkkk
k aPAPaaPP (2.20)
k+1 = ( )kTkkkkk ayaP 1111 ++++ + (2.21) Nilai P0 dan 0 dihitung berdasarkan persamaan 2.18 dan 2.19.
2.3.4 Model Propagasi Error
Selanjutnya, jaringan adaptif tersebut dapat dilatih untuk mendapatkan nilai
parameter a dan c, pada persamaan 2.2. Dengan mengambil nilai b=1, persamaan 2.2
menjadi:
( ) 21
1
acx
x += (2.22)
Untuk melakukan perbaikan terhadap a dan c tersebut, digunakan model propagasi error
dengan konsep gradient descent.
Misalnya sebuah lapisan jaringan adaptif yang terdiri atas 5 lapisan, dan
memiliki sebanyak N(L) neuron pada lapisan ke-L, maka jumlah kuadrat error (SSE)
pada lapisan ke-L data ke-p, 1 p N, adalah:
31
Ep = ( )( )=
LN
kKLk Xd
1
2, (2.23)
Dari sini dapat ditentukan nilai parameter aij dan cij (aij dan cij) sebagai berikut:
aij = aijxi dan (2.24)
cij = cijxi (2.25)
dengan adalah laju pembelajaran (learning rate) yang terletak pada interval [0, 1].
Sehingga nilai aij dan cij yang baru adalah:
aij = aij (lama) + aij (2.26)
cij = cij (lama) + cij (2.27)
2.4 UML (Unified Modeling Language)
2.4.1 Use Case Diagram
Use case diagram menggambarkan hubungan interaksi antara aktor dengan suatu
sistem (Schneider; Winters, 1997). Aktor adalah orang atau sistem lain yang
berhubungan dengan sistem.
Ada beberapa simbol yang mewakili komponen sistem seperti terlihat pada
gambar dibawah ini.
32
Gambar 2.9 Notasi Use Case Diagram
Menurut Schneider dan Winters (1997), ada beberapa hal yang harus
diperhatikan dalam pembuatan use case diagram, yaitu:
1. Precondition: kondisi awal yang harus dimiliki aktor untuk masuk ke dalam sistem
untuk terlibat dalam suatu use case.
2. Postcondition: kondisi akhir atau hasil apa yang akan diterima oleh aktor setelah
menjalankan suatu use case.
3. Flow of Events: kegiatan-kegiatan yang dilakukan pada sebuah proses use case.
4. Alternative Paths: kegiatan yang memberikan serangkaian kejadian berbeda yang
digunakan dalam Flow of Events.
33
2.4.2 Sequence Diagram
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; Bentley; Dittman, 2004). Beberapa notasi sequence diagram terlihat pada
gambar dibawah ini.
User
FindOrderScreen
Order
SetOrderID()
Search(OrderID)
Gambar 2.10 Notasi Sequence Diagram
2.5 Rekayasa Piranti Lunak
2.5.1 Pengertian Rekayasa Piranti Lunak
Rekayasa piranti lunak menurut Fritz Bauer (Pressman, 2005) adalah penetapan
dan pemakaian prinsip-prinsip rekayasa dalam rangka mendapatkan piranti lunak yang
ekonomis, yaitu terpercaya dan bekerja efisien pada mesin (komputer).
34
2.5.2 Elemen Rekayasa Piranti Lunak
Rekayasa piranti lunak mencakup 3 elemen yang mampu mengontrol proses
pengembangan piranti lunak (Pressman, 2005), yaitu:
1. Proses (process)
Proses adalah dasar untuk membangun piranti lunak.
2. Metode-metode (methods)
Menyediakan cara-cara teknis untuk membangun piranti lunak.
3. Alat-alat bantu (tools)
Mengadakan dukungan otomatis atau semi otomatis untuk metode-metode seperti
CASE (Computer Aided Software Engineering) yang mengkombinasikan software,
hardware, dan software engineering database.
2.5.3 Waterfall Model
Dalam perancangan software dikenal istilah software life cycle, yaitu serangkaian
kegiatan yang dilakukan selama masa perancangan software. Pemakaian jenis software
life cycle yang cocok salah satunya ditentukan oleh jenis bahasa pemrograman yang
cocok. Contohnya, Waterfall Model merupakan model yang paling umum dan paling
dasar pada software life cycle pada umumnya, Rapid Application Development (RAD)
dan Joint Application Development (JAD) cocok untuk software berbasis objek (OOP),
sedangkan Sync+Stabilize dan Spiral Model yang merupakan pengembangan model
waterfall dengan komponen prototyping cocok untuk sebuah aplikasi yang rumit dan
cenderung mahal pembuatannya.
35
Berikut adalah visualisasi dari kegiatan pada software life cycle model waterfall
(Dix, 1997):
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.
3. Detailed design
Setelah memasuki tahap ini, pengembang memperbaiki deskripsi dari komponen-
komponen dari sistem yang telah dipisah-pisah pada tahap sebelumnya.
4. Coding and unit testing
Pada tahap ini, desain diterjemahkan kedalam 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, komponen-
komponen tersebut disatukan lagi. Lalu sistem dites untuk memastikan sistem telah
sesuai dengan kriteria yang diminta konsumen.
36
6. Pemeliharaan (maintenance)
Setelah sistem diimplementasikan, maka perlu dilakukannya perawatan terhadap
sistem itu sendiri. Perawatan yang dimaksud adalah perbaikan error yang ditemukan
setelah sistem diimplementasikan.
Gambar 2.11 Software Life Cycle Model Waterfall
2.6 Interaksi Manusia dan Komputer
2.6.1 Pengertian Interaksi Manusia dan Komputer
Interaksi manusia dan komputer merupakan disiplin ilmu yang berhubungan
dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk
digunakan oleh manusia, serta studi fenomena-fenomena besar yang berhubungan
dengannya. Pada interaksi manusia dan komputer ditekankan pada pembuatan
37
antarmuka pemakai (user interface), dimana user interface yang dibuat diusahakan
sedemikian rupa sehingga seorang user dapat dengan baik dan nyaman menggunakan
aplikasi perangkat lunak tersebut (Shneiderman, 2005).
Antar muka pemakai (user interface) adalah bagian sistem komputer yang
memungkinkan manusia berinteraksi dengan komputer. Tujuan antar muka pemakai
adalah agar sistem komputer dapat digunakan oleh pemakai (user interface), istilah
tersebut digunakan untuk menunjuk kepada kemampuan yang dimiliki oleh piranti lunak
atau program aplikasi yang mudah dioperasikan dan dapat membantu menyelesaikan
suatu persoalan dengan hasil yang sesuai dengan keinginan pengguna, sehingga
pengguna merasa betah untuk mengoperasikan program tersebut.
2.6.2 Program Interaktif
Suatu program yang interaktif dan baik harus bersifat user friendly. Lima kriteria
yang harus dipenuhi oleh suatu program yang user friendly, yaitu (Shneiderman, 2005):
1. Waktu belajar yang tidak lama;
2. Kecepatan penyajian informasi yang tepat;
3. Tingkat kesalahan pemakaian rendah;
4. Penghafalan sesudah melampaui jangka waktu;
5. Kepuasan pribadi.
2.6.3 Pedoman Merancang User Interface
Beberapa pedoman yang dianjurkan dalam merancang suatu program, guna
mendapatkan suatu program yang user friendly, yaitu (Shneiderman, 2005):
38
1. Delapan aturan emas (Eight Golden Rules)
Untuk merancang sistem interaksi manusia dan komputer yang baik, harus
memperhatikan delapan aturan emas dalam perancangan antarmuka, yaitu:
a. Strive for consistency (konsisteni dalam merancang tampilan).
Konsistensi dilakukan pada urutan tindakan, perintah dan istilah yang digunakan
prompt, menu serta layar bantuan.
b. Enable frequent user to use shorcuts (memungkinkan pengguna menggunakan
shortcuts secara berkala).
Ada kebutuhan dari pengguna yang sudah ahli untuk meningkatkan kecepatan
interaksi sehingga diperlukan shortcut, tombol fungsi, perintah tersembunyi dan
fasilitas makro.
c. Offer informative feed back (memberikan umpan balik yang informatif).
Untuk setiap tindakan operator, sebaiknya disertakan suatu sistem umpan balik.
Untuk tindakan yang sering dilakukan dan tidak terlalu penting, dapat diberikan
umpan balik yang sederhana. Tetapi ketika tindakan merupakan hal yang
penting, maka umpan balik sebaiknya lebih substansial.
d. Design dialogs to yield closure (merancang dialog untuk menghasilkan keadaan
akhir).
Urutan tindakan sebaiknya diorganisir dalam suatu kelompok dengan bagian
awal, tengah dan akhir. Umpan balik yang informatif akan meberikan indikasi
bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok
tindakan berikutnya.
39
e. Offer simple error handling (memberikan penanganan kesalahan).
Sedapat mungkin sistem dirancang sehingga pengguna tidak dapat melakukan
kesalahan fatal. Jika kesalahan terjadi, sistem dapat mendeteksi kesalahan
dengan cepat dan memberikan mekanisme yang sederhana dan mudah dipahami
untuk penanganan kesalahan.
f. Permit easy reversal of actions (mengijinkan pembalikan aksi dengan mudah).
Hal ini dapat mengurangi kekuatiran pengguna karena pengguna mengetahui
kesalahan yang dilakukan dapat dibatalkan, sehingga pengguna tidak takut untuk
mengekplorasi pilihan-pilihan lain yang belum biasa digunakan.
g. Support internal locus of control (mendukung pengguna menguasai sistem).
Pengguna ingin menjadi pengontrol sistem dan sistem akan merespon tindakan
yang dilakukan pengguna daripada pengguna merasa bahwa sistem mengontrol
pengguna. Sebaiknya sistem dirancang sedemikan rupa sehingga pengguna
menjadi inisiator daripada responden.
h. Reduce short-term memory load (mengurangi beban jangka pendek pada
pengguna).
Keterbatasan ingatan manusia membutuhkan tampilan yang sederhana dan
tampilan halaman yang banyak sebaiknya disatukan, serta diberikan waktu
pelatihan yang cukup untuk kode, mnemonic dan urutan tindakan.
2. Teori waktu respon
Waktu respon dalam sistem komputer adalah jumlah detik dari saat pengguna
program memulai aktifitas sampai menampilkan hasilnya di layar atau printer.
Beberapa pedoman yang disarankan, yaitu pemakai lebih menyukai waktu respon
40
yang pendek, waktu respon yang panjang mengganggu, waktu respon yang pendek
menyebabkan waktu pengguna berpikir lebih pendek, waktu respon harus sesuai
dengan tugasnya dan pemakai harus diberi tahu mengenai penundaan yang panjang.
2.7 Microsoft Visual C#
Bahasa pemrograman C# dikembangkan oleh Microsoft sebagai bahasa yang
simpel, modern, general-purpose dan berorientasi objek. Pengembangan bahasa C#
sangat dipengaruhi oleh bahasa pemrograman terdahulu, terutama C++, Delphi dan Java.
C++ dikenal memiliki kecepatan yang tinggi dan memiliki akses memori hingga ke low
level. Namun bagi programmer, C++ merupakan bahasa yang relatif lebih rumit
dibanding bahasa pemrograman lainnya. Kehadiran C# memberi suntikan optimisme
bagi para programmer untuk dapat mengembangkan aplikasi yang berdaya guna dengan
lebih cepat dan lebih mudah (Anonymous, 2009).
C# dikembangkan sejalan dengan perkembangan teknologi .Net. Teknologi .Net
telah berevolusi dari .Net versi 1.0 hingga .Net versi 3.5. .Net merupakan sebuah
framework yang memiliki base class library dan bisa diimplementasikan kedalam
beberapa bahasa pemrograman yang dikembangkan Microsoft, termasuk bahasa C#.
Microsoft mengembangkan IDE yang secara khusus mendukung pengembangan aplikasi
dengan teknologi .Net. Versi terakhirnya, yaitu Visual Studio 2008 telah mendukung
teknologi .Net 3.5 (Anonymous, 2009).
Di antara karakteristik dari .Net adalah adanya Common Language Runtime
(CLR). CLR merupakan komponen virtual machine yang akan mengeksekusi program
pada saat runtime. Kode yang ditulis dalam bahasa C# ataupun VB.Net, misalnya
41
dicompile oleh .Net compiler menjadi kode dalam format Common Intermediate
Language (CIL). CIL merupakan format bahasa standar pada level intermediate yang
digunakan dalam teknologi .Net apapun bahasa pemrograman yang digunakan pada
kode. Kemudian pada saat runtime CLR mengeksekusi CIL dengan melakukan proses
loading dan linking serta menghasilkan bahasa mesin untuk mengeksekusi program
(Anonymous, 2009).
C#
VB.NET
Other .NET language
CIL code Native codeCLR
Other compiler
VB.NET compiler
C# compiler
Source code Bytecode Native code
Compile time Runtime
Gambar 2.12 Proses Compiling dan Eksekusi Program
2.8 Sistem Basis Data
2.8.1 Pengertian Sistem Basis Data
Menurut Connolly dan Begg (2002) sistem basis data (database) adalah suatu
kumpulan logikal data yang terhubung satu sama lain dan deskripsi dari suatu data yang
dirancang sebagai informasi yang dibutuhkan oleh organisasi. Struktur basis data dapat
42
menggambarkan desain basis data secara keseluruhan dispesifikasikan dengan bahasa.
Dengan bahasa ini kita dapat membuat tabel baru, membuat indeks, mengubah tabel dan
sebagainya.
2.8.2 Database Management System (DBMS)
DBMS adalah sistem perangkat lunak yang memungkinkan pemakai untuk
mendefinisikan, membuat, memelihara database dan menyediakan pengontrolan akses
untuk database tersebut. DBMS memiliki fasilitas sebagai berikut:
a. Mengijinkan pengguna untuk mendefinisikan database dengan menggunakan Data
Definition Language (DDL). DDL mengijinkan pengguna untuk menspesifikasi tipe
data dan struktur serta batasan data yang dapat disimpan pada database.
b. Mengijinkan pengguna untuk melakukan insert, update, delete, dan retrieve data dari
database dengan menggunakan Data Manipulation Language (DML).
c. Menghasilkan pengendalian database seperti:
Security untuk membatasi penggunaan database. Integrity untuk menangani konsistensi penyimpanan data. Control Concurrency System untuk menangani penggunaan database. Control Recovery System untuk menyimpan kembali database saat terjadi
kesalahan baik hardware maupun software.
User Accesible Catalog yang berisi data dalam database.
43
2.8.3 Structured Query Language (SQL)
SQL sudah menjadi standar dalam bahasa database. SQL memiliki 2 komponen
utama, yaitu:
a. Sebuah Data Definition Language (DDL) untuk mendifinisikan struktur dari
database dan mengontrol akses ke dalam data.
b. Sebuah Data Manipulation Language (DML) untuk mengambil dan mengubah data.
Pernyataan/perintah yang digunakan dalam SQL, yaitu:
Tabel 2.1 Pernyataan SQL
Pernyataan Keterangan SELECT Untuk meminta data dalam database INSERT Untuk memasukkan data ke dalam tabel UPDATE Untuk mengubah data dalam tabel DELETE Untuk menghapus data dari tabel
Tipe-tipe data yang ada dalam SQL, antara lain:
Tabel 2.2 Tipe Data
Tipe Data Deklarasi boolean BOOLEAN
character CHAR VARCHAR
bit BIT BIT VARYING
exact numeric NUMERIC DECIMAL INTEGER SMALLINT
approximate numeric FLOAT REAL DOUBLE PRECISION
datetime DATE TIME TIMESTAMP
interval INTERVAL
large objects CHARACTER LARGE OBJECT BINARY LARGE OBJECT
44
2.8.4 Entity-Relationship Modeling
Menurut Connolly dan Begg (2002) salah satu aspek yang sulit dalam
perancangan basis data adalah kenyataan bahwa perancang, programmer dan pemakai
akhir cenderung melihat data dengan cara yang berbeda. Untuk memastikan pemahaman
secara alamiah dari data dan bagaimana data digunakan oleh perusahaan dibutuhkan
sebuah bentuk komunikasi yang non teknis dan bebas dari kebingungan.
A. Entity Type
Entity type adalah kumpulan dari obyek-obyek dengan sifat atau properti yang
sama, yang didefinisikan oleh perusahaan yang mempunyai eksistensi yang independen.
Keberadaannya dapat berupa fisik atau abstrak. Konsep dasar dari bentuk entity
relationship adalah tipe entitas.
Sebuah tipe entitas memiliki keberadaan yang bebas dan bisa menjadi obyek
dengan keberadaan fisik atau menjadi obyek dengan keberadaan konseptual. Ini berarti
perancang yang berbeda mungkin mengidentifikasikan entitas yang berbeda. Entity
occurrence adalah obyek dan tipe entitas yang dapat diidentifikasikan secara unik.
B. Relationship Type
Setiap tipe relasi diberi nama sesuai dengan fungsinya. Relationship occurrence
adalah suatu gabungan yang dapat diidentifikasikan secara unik, yang meliputi suatu
kejadian dari setiap tipe entitas yang berpartisipasi. Derajat dari relasi adalah jumlah dari
partisipasi tipe entitas dalam sebuah tipe relasi tertentu.
Entitas yang berkaitan dalam sebuah tipe relasi dikenal sebagai participant
dalam relationship dan jumlah participant dalam relationship disebut sebagau derajat
45
relationship. Oleh karena itu, derajat dari sebuah relationship yang berderajat dua
disebut binary, sedangkan relationship berderajat tiga disebut ternary dan seterusnya.
C. Attribute
Attribute adalah sifat dari sebuah entitas atau sebuah relationship type. Atribut
menyimpan nilai dari setiap entity occurrence dan mewakili bagian utama dari data yang
disimpan dalam basis data.
Domain attribute adalah satuan nilai-nilai untuk satu atau beberapa atribut.
Setiap atribut yang dihubungkan dengan sejumlah nilai disebut domain. Domain
mendefinisikan nilai-nilai yang dimiliki sebuah atribut dan sama dengan konsep domain
pada model relasional.
Simple attribute adalah suatu atribut yang terdiri atas komponen tunggal dengan
keberadaan yang tidak terikat. Atribut ini tidak dapat lagi menjadi komponen yang lebih
kecil.
Composite attribute adalah atribut yang terdiri atas banyak komponen. Tiap-tiap
komponen dengan keberadaan yang tidak terikat atribut tertentu dapat dibagi lagi
menjadi komponen yang lebih kecil dengan keberadaan masing-masing yang tidak
terikat.
Single attribute adalah atribut yang menampung nilai tunggal untuk tiap-tiap
kejadian dari suatu entitas. Sebagian besar atribut adalah bernilai tunggal.
Multivated attribute adalah atribut yang menampung banyak nilai untuk setiap
kejadian dari suatu tipe entitas.
Derived attribute adalah atribut yang menggantikan sebuah nilai yang diturunkan
dari nilai sebuah atribut yang berhubungan, tidak perlu pada jenis entitas yang sama.
46
D. Key
Candidate key adalah kunci yang secara unik mengenali setiap kejadian di dalam
tipe entitas. Sebuah candicate key tidak boleh NULL. Sebuah entitas mungkin
mempunyai lebih dari satu candidate key.
Primary key adalah candidate key yang dipilih sebagai kunci primer untuk
mengenali secara unik setiap occurrence dari sebuah tipe entitas. Pemilihan primary key
untuk sebuah adalah berdasarkan pada pertimbangan panjang atribut, jumlah minimal
dari kebutuhan atribut dan memenuhi syarat unik. Candidate key yang tidak dipilih
menjadi primary key disebut sebagai alternate key.
Composite key adalah candidate key yang terdiri dari dua atribut atau lebih.
Foreign key adalah atribut pada suatu relasi yang cocok pada candidate key dari
beberapa relasi.
E. Structural Constraints
Tipe utama dari batasan hubungan di dalam relationship disebut multiplicity.
Multiplicity adalah jumlah kemungkinan kejadian dari sebuah entitas yang mungkin
berhubungan ke sebuah kejadian tunggal dari sebuah entitas yang tergantung melalui
sebuah hubungan khusus.
Hubungan binary secara umum dibedakan menjadi:
1. Derajat hubungan one to one (1:1)
Derajat hubungan antara entitas 1:1 terjadi bila tiap anggota suatu entitas hanya
boleh berpasangan dengan satu anggota dari entitas yang lain. Sebaliknya anggota
dari entitas yang lain hanya boleh berpasangan dengan satu anggota dari entitas
tersebut.
47
2. Derajat hubungan one to many (1:*)
Derajat hubungan ini terjadi bila tiap anggota suatu entitas boleh berpasangan
dengan lebih dari satu anggota dari entitas yang lain. Sebaliknya tiap anggota dari
entitas yang lain hanya boleh berpasangan dengan satu anggota dari entitas tersebut.
3. Derajat hubungan many to many (*:*)
Derajat hubungan antar entitas ini terjadi bila tiap anggota suatu entitas boleh
berpasangan dengan lebih dari satu anggota dari entitas yang lain. Sebaliknya tiap
anggota dari entitas yang lain juga boleh berpasangan dengan lebih dari satu anggota
dari entitas tersebut.
Top Related