BAB II LANDASAN TEORI
Pada bab ini akan dibahas mengenai teori-teori yang akan digunakan untuk menunjang dalam proses pembuatan tugas akhir ini.
2.1
CLUSTERING Clustering adalah proses pengelompokkan suatu set obyek berdasarkan
kesamaan karakteristik yang dimiliki masing masing obyek sehingga membentuk kelas-kelas yang terdiri dari obyek-obyek yang sama (Modul Data Mining PENSITS, 89-115). Dengan proses clustering ini dimungkinkan dalam satu cluster yang baik obyek-obyeknya akan memiliki kesamaan yang tinggi dan memiliki perbedaan yang tinggi pula terhadap obyek-obyek anggota cluster lainnya. Lihat gambar 2.1.
Gambar 2.1 Data sebelum dilakukan proses clustering.
Jika data pada gambar 2.1 dilakukan clustering (pengelompokan) berdasarkan warna, maka pengelompokkannya seperti terlihat pada gambar 2.2. Selain menggunakan kesamaan warna dan bentuk, clustering juga bisa dilakukan berdasarkan jarak seperti pada gambar 2.3, artinya data yang memiliki jarak berdekatan akan menjadi satu cluster.
5
6
Gambar 2.2 Clustering berdasarkan kesamaan warna.
Gambar 2.3 Proses clustering berdasarkan kesamaan jarak.
Ada beberapa karakteristik clustering, diantaranya: 1.
Partitioning Clustering a. Disebut juga exclusive clustering. b. Setiap data harus termasuk ke cluster tertentu. c. Memungkinkan bagi setiap data yang termasuk cluster tertentu pada suatu tahapan proses, pada tahapan berikutnya berpindah ke cluster lain. d. Contoh: K-Means.
2.
Hierarchical Clustering a. Setiap data harus termasuk ke cluster tertentu. b. Suatu data yang termasuk ke cluster tertentu pada suatu tahapan proses, tidak dapat berpindah ke cluster lain.
7
c. Contoh: single linkage, centroid linkage. 3.
Overlapping Clustering a. Setiap data memungkinkan termasuk ke beberapa cluster. b. Data mempunyai nilai keanggotaan pada beberapa cluster. c. Contoh: Fuzzy C-means.
4.
Hybrid, merupakan kombinasi dari karakteristik partitioning, overlapping dan hierachical. Metode clustering pada dasarnya ada dua, yaitu metode Hierarchical
Clustering dan Non Hierarchical Clustering. Perbedaanya pada Hierarchical Clustering informasi jumlah cluster belum ada sedangkan pada Non Hierarchical Clustering informasi ini sudah ditentukan sejak awal.
2.2
LOGIKA FUZZY Dalam kamus bahasa inggris, istilah ”fuzzy” didefinisikan sebagai blurred
(kabur atau remang-remang), indistinct (tidak jelas), imprecisely definied (didefinisikan tidak presisi), confused (membingungkan), atau vague (tidak jelas). Membaca definisi–definisi istilah fuzzy tersebut, mungkin bagi mereka yang belum pernah mendengar istilah ”sistem fuzzy” bisa saja menjadi salah mengerti. Dalam teori logika fuzzy, penggunaan istilah ”sistem fuzzy” tidak dimaksudkan untuk mengacu pada sebuah sistem yang tidak jelas/kabur/remang-remang definisinya, cara kerjanya, atau deskripsinya. Sebaliknya, yang dimaksud dengan sistem fuzzy adalah sebuah sistem yang dibangun dengan definisi, cara kerja, dan deskripsi yang jelas berdasar pada teori logika fuzzy. Yang ingin ditekankan di sini adalah bahwa meskipun sebuah fenomena yang akan dimodelkan dengan sistem fuzzy adalah bersifat fuzzy, namun sistem fuzzy yang dibangun untuk memodelkan fenomena tersebut tetap mempunyai definisi cara kerja dan deskripsi yang jelas berdasar pada teori logika fuzzy. ( Agus Naba, 2009:1)
8
Gambar 2.4 Contoh pemetaan input-output.
Ada beberapa alasan kenapa orang menggunkan logika fuzzy, antara lain: 1.
Konsep logika fuzzy mudah dimengerti. Konsep matematis yang mendasari penalaran fuzzy sangat sederhana dan mudah dimengerti.
2.
Logika fuzzy sangat fleksibel.
3.
Logika fuzzy memiliki toleransi terhadap data-data yang tidak tepat.
4.
Logika fuzzy mampu memodelkan fungsi-fungsi nonlinear yang sangat kompleks.
5.
Logika fuzzy dapat membangun dan mengaplikasikan pengalamanpengalaman para pakar secara langsung tanpa harus melalui proses pelatihan.
6.
Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali secara konvensional.
7.
Logika fuzzy didasarkan pada bahasa alami. (Sri Kusumadewi dan Hari Purnomo,2004:2-3).
2.2.1
Himpunan Fuzzy Pada dasarnya, teori himpunan fuzzy merupakan perluasan dari teori
himpunan kelasik. Pada teori himpunan kelasik (crisp), keberadaan suatu elemen pada suatu himpunan, A, hanya akan memiliki 2 kemungkinan keanggotaan, yaitu menjadi anggota A atau tidak menjadi anggota A (Chak, 1998). Suatu nilai yang menunjukan seberapa besar tinggkat keanggotaan suatu elemen (x) dalam suatu himpunan (A), sering disebut dengan nama nilai keanggotan atau derajat keanggotaan, dinotasikan dengan µ A(x). Pada himpunan kelasik, hanya ada 2 nilai
9
keanggotaan, yaitu µ A(x)=1 untuk x menjadi anggota A; dan µ A(x)=0 untuk x bukan anggota A. (Sri Kusumadewi dan Sri Hartati, 2010:15) Contoh: Misalkan variabel umur dibagi 3 kategori, yaitu: 1) MUDA
umur < 35 tahun
2) PAROBAYA
35 ≤ umur ≤ 55 tahun
3) TUA
umur > 55 tahun MUDA
µ[X]
PAROBAYA
µ[X]
µ[X] 0
0
TUA
35
0 35
55
55
Gambar 2.5 Himpunan: MUDA, PAROBAYA, dan TUA.
Pada gambar 2.5, dapat dijelaskan bahwa: a. Apabila seseorang berusia 34 tahun, maka ia dikatakan MUDA (µ MUDA[34]= 1); b. Apabila seseorang berusia 35 tahun, maka ia dikatakan TIDAK MUDA (µ MUDA[35]= 0); c. Apabila seseorang berusia 35 tahun kurang 1 hari, maka ia dikatakan TIDAK MUDA (µ MUDA[35-1 hari]= 0); d. Apabila seseorang berusia 35 tahun, maka ia dikatakan PAROBAYA (µ PAROBAYA[35]= 1); e. Apabila seseorang berusia 34 tahun, maka ia dikatakan TIDAK PAROBAYA (µ PAROBAYA[34]= 0); f. Apabila seseorang berusia 55 tahun, maka ia dikatakan PAROBAYA (µ PAROBAYA[55]= 1); g. Apabila seseorang berusia 35 tahun kurang 1 hari, maka ia dikatakan TIDAK PAROBAYA (µ PAROBAYA[35-1 hari]= 0); (Sri Kusumadewi dan Hari Purnomo, 2004:4-25) Dari sini bisa dikatakan bahwa pemakaian himpunan kelasik untuk menyatakan umur sangat tidak adil, adanya perubahan kecil saja pada suatu nilai mengakibatkan perbedaan kategori yang cukup signifikan.
10
Himpunan fuzzy digunakan untuk mengantisipasi hal tersebut. Seseorang dapat masuk dalam 2 himpunan yang berbeda, MUDA dan PAROBAYA, PAROBAYA dan TUA, dan lain sebagainya. Seberapa besar eksistensinya dalam himpunan tersebut dapat dilihat pada nilai keanggotaannya. Gambar 2.6 menunjukan himpunan fuzzy untuk variabel umur.
Gambar 2.6 Himpunan Fuzzy untuk variabel umur.
Pada gambar 2.6, dapat dilihat bahwa: a. Seseorang yang berumur 40 tahun, termasuk dalam himpunan MUDA dengan µ MUDA[40]= 0,25; namun dia juga termasuk dalam himpunan PAROBAYA dengan µ PAROBAYA[40]= 0,5. b. Seseorang yang berumur 50 tahun, termasuk dalam himpunan TUA dengan µ TUA[50]= 0,25; namun dia juga termasuk dalam himpunan PAROBAYA dengan µ PAROBAYA[50]= 0,5. Kalau pada himpunan kelasik, nilai keanggotaan hanya ada 2 kemungkinan, yaitu 0 dan 1, maka pada himpunan fuzzy nilai keanggotaannya terletak pada rentang 0 sampai dengan 1. Dalam himpunan fuzzy memiliki 2 atribut, yaitu: a. Linguistik, yaitu penamaan suatu grup yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami, seperti: TUA, MUDA, PAROBAYA. b. Numeris, yaitu suatu nilai (angka) yang menunjukan ukuran dari suatu variabel seperti: 40, 25, 35, 55, dan lain sebagainya.
11
Ada beberapa hal yang perlu diketahui dalam memahami sistem fuzzy, yaitu: a. Variabel fuzzy Variabel fuzzy merupakan variabel yang hendak dibahas dalam suatu sistem fuzzy. Contoh: umur, temperatur, gaji, dan lain sebagainya. b. Himpunan fuzzy Himpunan fuzzy merupakan suatu grup yang mewakili suatu kondisi atau keadaan tertentu dalam suatu variabel fuzzy. Contoh: a) Variabel umur, terbagi menjadi 3 himpunan fuzzy, yaitu: MUDA, PAROBAYA, dan TUA. b) Variabel emperatur, terbagi menjadi 5 himpunan fuzzy, yaitu: DINGIN, SEJUK, PANAS, NORMAL, dan HANGAT.
DINGIN
SEJUK
NORMAL
20
25
HANGAT
PANAS
1
µ[X]
0
15
30
35
40
Gambar 2.7 Himpunan fuzzy pada variabel temperatur.
c. Semesta pembicaraan Semesta pembicaraan adalah keseluruhan nilai yang diperbolehkan untuk dioperasikan dalam suatu variabel fuzzy. Semesta pembicaraan merupakan himpunan bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri ke kanan. Nilai semesta pembicaraan dapat
12
berupa bilangan positif maupun negatif. Adakalanya nilai semesta pembicaraan ini tidak dibatasi batas atasnya. Contoh: a) Semesta pembicaraan untuk variabel umur: [0,+∞]. b) Semesta pembicaraan untuk variabel temperatur: [0, 40]. d. Domain Domain himpunan fuzzy adalah keseluruhan nilai yang diijinkan dalam semesta pembicaraan dan boleh dioperasikan dalam suatu himpunan fuzzy. Seperti halnya semesta pembicaraan, domain merupakan himpunan bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri ke kanan. Nilai domain dapat berupa bilangan positif maupun negatif. Contoh: MUDA
= [0, 45]
PAROBAYA = [35, 55] TUA
= [45, +∞]
DINGIN
= [0, 20]
SEJUK
= [15, 25]
NORMAL
= [20, 30]
HANGAT
= [25, 35]
PANAS
= [30, 40]
Dalam himpunan fuzzy dikenal fungsi keanggotaan, fungsi keanggotaan adalah suatu kurva yang menunjukan pemetaan titik-titik input data ke dalam nilai keanggotaannya (sering disebut juga derajat keanggotaan) yang memiliki interval antara 0 sampai 1. Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi. Ada beberapa fungsi yang bisa digunakan, yaitu: a.
Representasi Linear Pada representasi linear, pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus. Bentuk ini paling sederhana dan menjadi pilihan yang paling baik untuk mendekati suatu konsep yang kurang jelas.
13
Ada 2 keadaan himpunan fuzzy yang linear. Pertama, kenaikan himpunan dimulai pada nilai domain yang memiliki derajat keanggotaan nol (0) bergerak ke kanan menuju nilai domain yang memiliki derajat keanggotaan lebih tinggi.
1
DERAJAT KEANGGOTAAN µ[X]
0
A
DOMAIN
B
Gambar 2.8 Representasi linear naik.
1
DERAJAT KEANGGOTAAN µ[X]
0 A
DOMAIN
B
Gambar 2.9 Representasi linear turun.
b.
Representasi Kurva Segitiga Kurva Segitiga pada dasarnya merupakan gabungan (linear).
antara 2 garis
14
1
DERAJAT KEANGGOTAAN µ[X]
0 A
B
C
DOMAIN
Gambar 2.10 Kurva Segitiga.
c.
Representasi Kurva Trapesium Pada dasarnya kurva ini sama dengan kura segitiga, hanya saja ada beberapa titik yang memiliki nilai keanggotaan 1 (satu).
1
DERAJAT KEANGGOTAAN µ[X]
0 A
B
C
D
DOMAIN
Gambar 2.11 Kurva Trapesium.
d.
Representasi Kurva Bentuk Bahu Himpunan fuzzy ini merupakan pengembangan dari representasi kurva segitiga, digunakan untuk mengakhiri variabel suatu daerah fuzzy.
15
BAHU KIRI
BAHU KANAN
DINGIN
SEJUK
NORMAL
HANGAT
PANAS
1 µ[X]
0
15
20
25
30
35
40
Gambar 2.12 Kurva bentuk bahu.
e.
Representasi Kurva-S Pemetaan input ke derajat keanggotaannya berhubungan dengan perubahan permukaan secara tak linear. Biasanya digunakan dalam kurva pertumbuhan dan penyusutan.
1
DERAJAT KEANGGOTAAN µ[X]
0 R1
RN DOMAIN
Gambar 2.13 Kurva S (Sigmoid) pertumbuhan.
1 DERAJAT KEANGGOTAAN µ[X] 0 RI
DOMAIN
RJ
Gambar 2.14 Kurva S (Sigmoid) penyusutan.
16
f.
Representasi Kurva Bentuk Lonceng (bell Curve) Pemetaan input ke output, dengan memberikan secara spesifik sebuah titik pusat, dengan derajat keanggotaan 1 (ɤ), dan lebar kurva yang dipengaruhi oleh sebaran domain.
PUSAT (ɤ)
1
DERAJAT KEANGGOTAAN µ[X]
0 RI
RJ ɤ+Β
ɤ-Β DOMAIN
Gambar 2.15 Kurva Lonceng.
g.
Koordinat Keanggotaan Himpunan fuzzy yang berisi urutan pasangan berurutan yang berisi nilai domain dan kebenaran nilai anggotanya dalam bentuk (skalar; derajat). Dimana skalar adalah suatu nilai yang digambarkan dari domain himpunan fuzzy, sedangkan derajat skalar merupakan derajat keanggotaan himpunan fuzzynya.
1
0,5 µ[X]
0 A
B
C
D
F
G
H
DOMAIN
Gambar 2.16 Representasi koordinat keanggotaan.
17
Dalam hal ini penulis membagi nilai akademik kedalam 3 kategori yaitu, Buruk, Cukup, Baik. Contoh Matakuliah Pemrograman web 1 dengan nilai 2,75 dan derajat keanggotaan 0,75, 0,75, dan Jaringan Komputer 1 dengan nilai 2,25 derajat keanggotaan 0,75.
Gambar 2. 17 Derajat keanggotaan.
2.2.2
Sistem Berbasis Aturan Fuzzy Suatu atu sistem fuzzy terdiri dari tiga komponen utama: Fuzzification,
Inference, dan Defuzzification seperti terlihat dari gambar 2.17. (Suyanto, 2008:27-31) CRISP INPUT
µ FUZZIFICATION
FUZZY INPUT
FUZZY RULES
INFERENCE
FUZZY OUTPUT
OUTPUT µ
DEFUZZIFICATION
CRISP VALUE
Gambar 2.178 Sistem Berbasis Fuzzy.
18
1.
Fuzzification Masukan-masukan yang nilai kebenarannya pasti (Crisp Input) dikonversi ke bentuk fuzzy input, yang berupa nilai linguistik yang semantiknya ditentukan berdasarkan fungsi keanggotaan. Misalnya, IPK= 2,99 dikonversi menjadi Bagus dengan derajat keanggotaan = 0,97.
2.
Inference Dalam suatu sistem berbasis aturan fuzzy, proses inference memperhitungkan semua aturan yang ada di dalam basis pengetahuan. Dengan melakukan Fuzzy inference, masukan-masukan akan dipetakan menjadi keluaran berdasarkan pengetahuan (IF-THEN rule) yang diberikan. Terdapat banyak model dalam melakukan inference diantaranya model Mamdani dan model Sugeno.
3.
Defuzzification Dalam defuzzification nilai inputnya adalah himpunan fuzzy yang akan diproses menjadi keluaran berupa nilai crisp. Ada banyak metode yang digunakan dalam proses defuzzification diantaranya adalah Centroid method, Height method, First (or Last) of Maxima, Mean-Max method, Weight Average, dan lain sebagainya.
2.3
FUZZY C-MEANS Fuzzy Clustering adalah salah satu teknik untuk menentukan cluster optimal
dalam suatu ruang vektor yang didasarkan pada bentuk formal Euclidian untuk jarak vektor. Fuzzy clustering sangat berguna bagi pemodelan fuzzy terutama dalam mengidentifikasi aturan-aturan fuzzy. (Sri Kusumadewi dan Hari Purnomo, 2004:83-85) Ada beberapa algoritma data clustering, salah satu diantaranya adalah Fuzzy C-Means (FCM). Fuzzy C-Means (FCM) adalah salah satu teknik pengclusteran data yang mana keberadaan tiap-tiap titik data dalam suatu cluster ditentukan oleh derajat keanggotaan. Teknik ini pertama kali diperkenalkan oleh Jim Bezdek pada tahun 1981.
19
Konsep dasar FCM, pertama kali adalah menentukan pusat cluster, yang akan menandai lokasi rata-rata untuk tiap-tiap cluster. Pada kondisi awal, pusat cluster ini masih belum akurat. Tiap-tiap titik data memliki derajat keanggotaan untuk tiap-tiap cluster. Dengan cara memperbaiki pusat cluster dan derajat keanggotaan tiap-tiap titik data secara berulang, maka akan dapat dilihat bahwa pusat cluster akan bergerak menuju lokasi yang tepat. Perulangan ini didasarkan pada minimisasi fungsi obyektif yang menggambarkan jarak dari titik data yang diberikan ke pusat cluster yang terbobot oleh derajat keanggotaan titik data tersebut. Output dari FCM bukan merupakan fuzzy inference system (FIS), namun merupakan deretan pusat cluster dan beberapa derajat kenaggotaan untuk tiap-tiap titik data. Informasi ini dapat digunakan untuk membangun suatu fuzzy inference system (FIS). Algoritma Fuzzy C-Means (FCM) adalah sebagai berikut: 1.
Input data yang akan dicluster X, berupa matriks berukuran n x m (n = jumlah sampel data, m = atribut setiap data). Xij = data sampel ke-i (i = 1, 2, ..., n), atribut ke-j (j = 1, 2, ..., m).
2.
Tentukan: Jumlah Cluster
= c;
Pangkat
= w;
Maksimum Iterasi
= MaxIter;
Error terkecil yang diharapkan = ξ;
3.
Fungsi obyektif awal
= P0 = 0;
Iterasi awal
= t = 1;
Bangkitkan bilangan random µ ik, i = 1, 2, ..., n; elemen-elemen matriks partisi awal U. Hitung jumlah setiap kolom (atribut): Persamaan 2.1 =
ୀଵ
dengan j = 1, 2, ..., m. Hitung:
k = 1, 2, ..., c;
sebagai
20
4.
Persamaan 2.2 =
Hitung pusat cluster ke-k: Vkj, dengan k = 1, 2, ..., c; dan j = 1, 2, ...,m. Persamaan 2.3 =
5.
∑ୀଵ(( )௪ ∗ ) ∑ୀଵ( )௪
Hitung fungsi obyektif pada iterasi ke-t, Pt: Persamaan 2.4 ௧ = − ௪
ଶ
ୀଵ ୀଵ
6.
ୀଵ
Hitung perubahan matriks partisi: Persamaan 2.5 =
∑ ୀଵ
−
∑ୀଵ ∑ ୀଵ
ିଵ ଶ ௪ିଵ
−
ିଵ ଶ ௪ିଵ
7.
Cek kondisi berhenti:
a.
Jika: (|Pt – Pt -1| < ξ) atau (t > MaxIter) maka berhenti;
b.
Jika tidak: t = t + 1, ulangi langkah ke-4. Contoh kasus: Misalkan terdapat 15 sampel data dalam 2 variabel X1 dan X2
sebagaimana terlihat pada tabel 2.1. Tabel 2.1 Tabel sampel data. Data ke1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Variabel X1 2 3 10 8 5 10 5 12 10 10 7 6 17 9 13
X2 2 5 10 12 2 8 5 17 13 20 11 15 19 3 8
21
Data-data tersebut akan dikelompokkan menjadi 3 cluster. Parameter yang digunakan dalam proses pengclusteran dengan menggunakan algoritma Fuzzy CMeans, adalah: a) Jumlah cluster yang akan dibentuk
=C=3
b) Pangkat (pembobot)
= w= 2
c) Maksimum iterasi
= MaxIter = 100
d) Kriteria penghentian (error terkecil)
= ξ = 10-6
e) Fungsi obyektif awal
= P0 = 0;
f) Iterasi awal
= t = 1;
Matriks partisi awal, U, dipilih secara acak, misalkan: 0,52 0,18 0,13 0,33 0,30 0,52 0,20 0,35 0,40 0,18 0,28 0,41 0,52 0,60 0,23 ܷ = ൭0,17 0,41 0,37 0,42 0,40 0,10 0,30 0,22 0,28 0,38 0,44 0,31 0,16 0,28 0,33൱ 0,31 0,41 0,50 0,25 0,40 0,38 0,50 0,43 0,32 0,44 0,28 0,28 0,32 0,12 0,44
Sebagai catatan, jumlah setiap kolom pada matriks U harus sama dengan 1. Pusat cluster dihitung dengan menggunakan persamaan 2.3 = Diperoleh:
=
∑ୀଵ(( )௪ ∗ ) ∑ୀଵ( )௪
9,40 12,62
8,07 10,15
7,99 11,12
Perbaiki matriks U dengan persamaan 2.5 = Diperoleh:
∑ ୀଵ
−
∑ୀଵ ∑ ୀଵ
ିଵ ଶ ௪ିଵ
−
ିଵ ଶ ௪ିଵ
0,25 0,22 0,23 0,21 0,24 0,19 0,21 0,52 0,90 0,45 0,07 0,40 0,43 0,91 0,48 ܷ = ൭0,40 0,42 0,45 0,14 0,42 0,50 0,44 0,22 0,04 0,25 0,33 0,25 0,27 0,03 0,24൱ 0,35 0,36 0,32 0,65 0,34 0,31 0,35 0,26 0,06 0,30 0,60 0,35 0,30 0,06 0,28
Nilai obyektif yang diperoleh pada iterasi ke 2 ini adalah 0,7>ξ, sehingga proses diulangi lagi pada langkah ke 3.
22
Pada iterasi ke 2 didapat pusat cluster, V, sebagai berikut: =
9,89 13,88
7,33 7,67 8,37 10,70
Demikian seterusnya, hingga terakhir pada iterasi ke 16, diperoleh pusat cluster, V, sebagai berikut:
=
12,84 18,27
3,83 3,59
Matriks partisi U diperbaiki menjadi:
8,63 11,82
0,01 0,01 0,06 0,01 0,01 0,10 0,02 0,93 0,08 0,84 0,04 0,21 0,84 0,03 1,00 ܷ = ൭0,95 0,96 0,06 0,00 0,95 0,20 0,93 0,01 0,02 0,03 0,05 0,09 0,04 0,02 0,00൱ 0,04 0,03 0,88 0,99 0,04 0,70 0,05 0,06 0,90 0,13 0,91 0,70 0,12 0,95 0,00
Nilai obyektif pada iterasi ke 16 adalah 8,9 x 10-7 < ξ , sehingga proses iterasi dihentikan. Dari hasil tersebut bisa dilihat kecenderungan suatu data untuk masuk pada cluster tertentu seperti terlihat pada tabel 2.2. Tabel 2.2 Tabel kecenderungan cluster. Data ke-
Matriks Partisi
Kecenderungan Cluster
C1
C2
C3
1
0,01
0,95
0,04
*
2
0,01
0,96
0,03
*
3
0,06
0,06
0,88
*
4
0,01
0,00
0,99
*
5
0,01
0,95
0,04
6
0,10
0,20
0,70
7
0,02
0,93
0,05
8
0,93
0,01
0,06
9
0,08
0,02
0,90
10
0,84
0,03
0,13
11
0,04
0,05
0,91
*
12
0,21
0,09
0,70
*
13
0,84
0,04
0,12
14
0,03
0,02
0,95
15
1,00
0,00
0,00
2.4
C1
C2
C3
* * * * * *
* * *
METODOLOGI WATERFALL (SEQUENTIAL LINEAR) Model Waterfall (Air Terjun) atau nama lainnya Sequential Linear Model
merupakan model yang paling banyak diapakai dalam pengembangan perangkat lunak. Model ini melakukan pendekatan sistematis dan terurut dari mulai
23
kebutuhan sistem sampai pemeliharaan. Pada model ini secara umum ada 5 tahapan yang dilakukan yaitu: 1.
Requierement definition (definisi kebutuhan).
2.
System & software design (perancangan sistem dan perangkat lunak).
3.
Implementation & unit testing (implementasi dan testing).
4.
Integration & system testing (integrasi dan sistem testing).
5.
Operation & maintenance (operasi dan pemeliharaan).
Gambar 2.189 Metode Waterfall (air terjun) kelasik. Kemudian model ini direvisi menjadi 4 tahapan: 1.
Analysis (analisis).
2.
Design (perancangan).
3.
Code (pengkodean).
4.
Test (tes). Dimana Analisis dan design merupakan satu kesatuan dalam pemodelan
sistem informasi.
Gambar 2.20 Metode Waterfall yang direvisi (Sequential Linear).
24
Keunggulan waterfall antara lain: 1.
Lebih disiplin.
2.
Dorongan bahwa dokumentasi selalu tersedia untuk setiap tahapan.
3.
Dorongan bahwa setiap produk yang dihasilkan selalu dicek. Kekurangan pada model waterfall antara lain:
1.
Bersifat kurang luwes dalam menerima perubahan.
2.
Hanya cocok digunakan bila kebutuhan pengguna sudah dimengerti dengan baik.
2.5
MICROSOFT VISUAL BASIC .NET 2008 Versi ini merupakan versi Visual Basic .NET yang dirilis oleh Microsoft
pada tanggal 19 November 2007, bersamaan dengan dirilisnya Microsoft Visual C# 2008, Microsoft Visual C++ 2008, dan Microsoft .NET Framework 3.5. (Wikipedia, 2011) Dalam versi ini, Microsoft menambahkan banyak fitur baru, termasuk di antaranya adalah: 1.
Operator If sekarang merupakan operator ternary (membutuhkan tiga operand), dengan sintaksis If (boolean, nilai, nilai). Ini dimaksudkan untuk mengganti fungsi IIF.
2.
Dukungan anonymous types.
3.
Dukungan terhadap Language Integrated Query (LINQ).
4.
Dukungan terhadap ekspresi Lambda.
5.
Dukungan terhadap literal XML.
6.
Dukungan terhadap inferensi tipe data.
7.
dukungan terhadap 'LINQ'.