MTIF Bab2

download MTIF Bab2

of 41

description

MTIF, Penyakit, Expert System, AI, TI, Skripsi, JST, CBR,

Transcript of MTIF Bab2

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