Anda di halaman 1dari 31

BAB 2

LANDASAN TEORI

2.1 Proses Pengembangan Software

Salah satu aspek yang terpenting dalam proses pengembangan software

adalah process-flow. Process-flow menggambarkan bagaimana framework yang

terdiri dari aktivitas (activity), tindakan (action) dan tugas (task) yang terjadi

dalam setiap aktivitas kerangka kerja yang diselenggarakan sehubungan dengan

urutan dan waktu.

Ada 4 jenis process-flow (Pressman, 2010: 31):

a) Linier

Melaksanakan masing-masing dari lima framework activity secara urut

dimulai dengan communication dan mencapai puncaknya dengan

deployment.

Communication Planning Modelling

Deployment Construction

Gambar 2.1 Linier Process Flow

8
9

b) Iterative

Mengulang satu atau lebih aktivitas sebelum memproses aktivitas

selanjutnya.

Communication Planning Modelling Construction

Deployment

Gambar 2.2 Iterative Process Flow

3. Evolutionary

Menjalankan aktivitas dengan cara melingkar. Setiap sirkuit yang melalui

lima kegiatan mengarah ke versi yang lebih lengkap dari perangkat lunak.
10

Planning Modelling

Communication

Deployment Construction

Gambar 2.3 Evolutionary Process Flow

4. Parallel

Menjalankan satu atau lebih kegiatan secara paralel dengan kegiatan lain.

Sebagai contoh melakukan modelling pada saat pembuatan software

memungkinkan menjalankan construction secara paralel disaat yang

bersamaan.

Communication Planning

Time
Modelling

Construction Deployment

Gambar 2.4 Parallel Process Flow


11

2.1.1 Model Waterfall

Nama model ini sebenarnya adalah “Linear Sequential Model ”. Model

ini sering disebut dengan “classic life cycle” atau model waterfall. Model ini

adalah model yang muncul pertama kali yaitu sekitar tahun 1970 sehingga sering

dianggap kuno, tetapi merupakan model yang paling banyak dipakai dalam

perancangan pembuatan program.

Menurut (Pressman, 2010, hal. 39) salah satu model pengembangan

sistem adalah dengan model waterfall. Waterfall adalah model yang paling

populer dan model klasik dalam daur hidup pengembangan sistem yang bersifat

sistematis, berurutan dalam membangun software. Adapun tahapannya sebagai

berikut:

1. Communication

Pada tahap ini akan dilakukan analisis terhadap kebutuhan software,

dan juga melakukan inisiasi proyek, seperti menganalisis masalah yang

ada dan tujuan yang akan dicapai. Selain itu dilakukan juga requirement

gathering, dimana akan dikumpulkan requirement melalui analisis

kuesioner serta mengumpulkan data tambahan melalui paper maupun

buku.

2. Planning

Planning merupakan lanjutan proses dari proses communication.

Tahap ini merupakan tahap dimana akan dilakukan estimasi mengenai


12

kebutuhan-kebutuhan yang diperlukan untuk membuat sebuah sistem.

Selain itu penjadwalan dalam proses pengerjaan juga ditentukan pada

tahap ini. Tahapan ini akan menghasilkan user requirement.

3. Modelling

Pada proses modelling akan menghasilkan software requirement

dimana akan menerjemahkan syarat kebutuhan ke sebuah perancangan

program yang dapat diperkirakan sebelum dibuat coding. Proses ini

berfokus pada perancangan struktur data, arsitektur dari program yang

akan dibuat, user interface dan detail (algoritma) prosedural.

4. Construction

Tahap ini merupakan tahap dimana perancangan diterjemahkan ke

dalam bahasa yang dimengerti oleh mesin (coding). Programmer akan

menerjemahkan user requirement dan software requirement ke dalam

coding. Setelah selesai melakukan coding maka akan dilakukan testing

terhadap program yang telah dibuat. Tujuan testing adalah menemukan

kesalahan-kesalahan terhadap program yang telah dibuat untuk kemudian

bisa diperbaiki.

5. Deployment

Setelah proses coding selesai dan tidak ada kesalahan lagi, maka

program sudah dapat digunakan oleh user. Pada tahap ini juga dilakukan
13

pemeliharaan, perbaikan dan pengembangan agar sistem tersebut tetap

dapat berjalan sebagaimana fungsinya.

Communication Planning Modelling


Project initiation Estimating Analysis
Requirement gathering Scheduling Design
tracking

Deployment Construction
Delivery Code
Support Testing
feedback

Gambar 2.5 Waterfall Model Pressman

Kelebihan dari pengunaan model ini adalah pengaplikasian dalam

menggunakan model ini mudah dan ketika semua kebutuhan sistem dapat

didefinisikan secara utuh, ekplisit dan benar di awal pengerjaan program,

software engineering dapat berjalan dengan baik tanpa masalah. Meskipun sering

sekali kebutuhan sistem tidak dapat didefinisikan se-ekplisit yang diinginkan,

tetapi paling tidak masalah pada kebutuhan sistem di awal pembuatan program

lebih ekonomis dalam hal uang (lebih murah), selain itu usaha dan waktu yang

terbuang lebih sedikit jika dibandingkan masalah yang muncul pada tahap-tahap

selanjutnya.

Alasan kami menggunakan model waterfall dalam pembuatan program

kami adalah saat perancangan, program akan stabil dan tidak ada perubahan saat
14

pengembangan untuk alasan apapun seperti perubahan eksternal, perubahan

tujuan ataupun perubahan teknologi. Untuk itu, teknologi yang digunakan pun

harus sudah dipahami dengan baik. Dengan menggunakan model waterfall dapat

menghasilkan produk atau program yang baru (versi baru) dari program yang

sudah ada sebelumnya. Sebenarnya, jika menghasilkan versi baru maka sudah

termasuk incremental development yang setiap tahapnya sama dengan waterfall

kemudian diulang-ulang.

2.2 Hasil-hasil Penelitian Terdahulu

Steven (2009: 19) telah melakukan penelitian tentang pendeteksian

plagiarisme dengan menggunakan algoritma Rabin-Karp. Rabin-Karp adalah

algoritma pencarian kata yang mencari sebuah pola berupa substring dalam

sebuah teks menggunakan hashing dan metode k-gram. K-gram adalah rangkaian

terms dengan panjang k. Kebanyakan yang digunakan sebagai terms adalah kata.

K-gram merupakan sebuah metode yang diaplikasikan untuk pembentukan kata

atau karakter. Metode k-gram ini digunakan untuk mengambil potongan-

potongan karakter huruf sejumlah k dari sebuah kata yang secara kontinuitas

dibaca dari teks sumber hingga akhir dari dokumen. Algoritma ini bekerja

dengan baik pada sebagian besar kasus praktis, tapi akan mengakibatkan waktu

komputasi yang relatif lama jika teks berisi banyak perbandingan nilai hashing

yang tidak sama (Khan & Pateriya, 2012: 4). Seperti mencari kata ‘ax’ yang

terdapat pada 10.000.000 karakter ‘a’. Berbeda dengan Steven, kami membuat

aplikasi yang berbasis web untuk pendeteksian kesamaan dokumen dengan

menggunakan algoritma Winnowing (Schleimer, Wilkerson, & Aiken, 2003: 4).


15

Persamaan dan perbedaan penelitian terdahulu dengan penelitian saat ini

adalah:

1. Persamaan Penelitian:

a. Sama-sama meneliti tentang algoritma pendeteksi kesamaan

dokumen pada dokumen-dokumen berbasis teks.

b. Metode yang digunakan pada algoritma menggunakan metode K-

gram.

2. Perbedaan Penelitian:

a. Jika pada penelitian Steven (2009: 19), meneliti pendeteksian

kesamaan dokumen dengan menggunakan Algoritma Rabin-Karp,

sedangkan penelitian yang sekarang menggunakan Algoritma

Winnowing.

b. Jika pada penelitian Steven (2009: 19), hasil kesamaan dokumen

tidak menunjukkan letak kesamaan teks, sedangkan penelitian

yang sekarang dapat menunjukkan letak kesamaan teks.

2.3 Algoritma Rabin Karp

Algoritma Rabin-Karp merupakan versi awal dari fingerprinting dengan

menggunakan metode k-gram yang diciptakan oleh Michael O. Rabin dan

Richard M. Karp pada tahun 1987 (Schleimer, Wilkerson, & Aiken, 2003: 3).

Pada dasarnya, Algoritma Rabin Karp menghitung nilai hash untuk pattern dan

setiap k-gram dari teks yang akan dibandingkan. Jika nilai hash tidak sama, maka

akan dihitung nilai hash untuk k-gram selanjutnya secara berurutan. Jika nilai

hash sama, maka dilakukan perbandingan antara pattern dan k-gram. Dengan
16

cara ini, hanya ada satu perbandingan dari subsequence teks, dan Brute Force

hanya diperlukan ketika nilai hash sama.

Karakteristik Algoritma Rabin-Karp : (Fernando, 2009: 2)

a) Menggunakan sebuah fungsi hashing

b) Fase prepocessing menggunakan kompleksitas waktu O(m)

c) Untuk fase pencarian kompleksitasnya : O(mn)

d) Waktu yang diperlukan O(n+m)

Fungsi hashing mengurangi perbandingan dari setiap k-gram yang

quadratik di dalam banyak kasus atau situasi. Daripada melakukan pemeriksaan

dari k-gram di setiap posisi dari teks ketika terjadi pencocokan pattern, akan

lebih baik dan efisien untuk melakukan pemeriksaan dari k-gram hanya jika teks

yang sedang proses memiliki kemiripan nilai hash seperti pada pattern. Untuk

melakukan pengecekan kemiripan antara dua kata ini digunakan fungsi hash

(Fernando, 2009, hal. 2). Sedangkan perhitungan nilai hash selanjutnya

dilakukan Rolling hash.

Berikut ini merupakan langkah-langkah dalam mencocokan kata dengan

algoritma Rabin-Karp (Steven, 2009: 15) :

1. Hilangkan tanda baca dan ubah teks sumber menjadi kata-kata tanpa

huruf kapital.

2. Tentukan panjang dari teks sumber yang ingin dicari (n) dan kata yang

ingin dicari (m)


17

3. Mencari nilai hash dari teks sumber dan kata yang ingin dicari

menggunakan fungsi hash yang telah ditentukan

4. Lakukan iterasi dari indeks i=0 sampai i=n-m+1 untuk membandingkan

nilai hash dari kata yang ingin dicari dengan nilai hash dari teks sumber

pada indeks i sampai dengan i+m-1. Jika nilai hash sama, maka akan

diperiksa lebih lanjut apakah kata yang dicari sama dengan bagian teks

dari sumber pada indeks i sampai dengan i+m-1. Jika sama, maka telah

ditemukan kata yang cocok. Jika tidak maka dilanjutkan dengan

membandingkan nilai hash dari kata yang dicari dengan nilai hash teks

sumber pada indeks berikutnya.

2.4 Algoritma Winnowing

Winnowing adalah algoritma yang digunakan untuk melakukan proses

document fingerprinting (Schleimer, Wilkerson, & Aiken, 2003: 4). Algoritma

winnowing melakukan penghitungan nilai-nilai hash dari setiap k-gram, untuk

mencari nilai hash selanjutnya digunakan fungsi rolling hash. Kemudian

dibentuk window dari nilai-nilai hash tersebut. Dalam setiap window dipilih nilai

hash minimum. Jika ada lebih dari satu hash dengan nilai minimum, dipilih nilai

hash yang paling kanan. Kemudian semua nilai hash terpilih disimpan untuk

dijadikan fingerprint dari suatu dokumen. Fingerprint ini yang akan dijadikan

dasar pembanding kesamaan antara teks yang telah dimasukkan. Syarat dari

algoritma deteksi penjiplakan (Schleimer, Wilkerson, & Aiken, 2003: 2)

whitespace insensitivity, yaitu pencocokan teks file seharusnya tidak terpengaruh

oleh spasi, jenis huruf kapital, tanda baca dan sebagainya, noise surpression yaitu
18

menghindari pencocokan teks file dengan panjang kata yang terlalu kecil atau

kurang relevan dan bukan merupakan kata yang umum digunakan, dan position

independence yaitu pencocokan teks file seharusnya tidak bergantung pada posisi

kata-kata sehingga kata dengan urutan posisi berbeda masih dapat dikenali jika

terjadi kesamaan. Winnowing telah memenuhi syarat-syarat tersebut dengan cara

membuang seluruh karakter-karakter yang tidak relevan misal: tanda baca, spasi

dan juga karakter lain, sehingga nantinya hanya karakter-karakter yang berupa

huruf atau angka yang akan diproses lebih lanjut.

2.4.1 Hashing

Hashing merupakan pengubahan serangkaian karakter menjadi nilai atau

kode yang menjadi penanda dari rangkaian karakter tersebut. Dengan

pengubahan inilah, maka tercipta penanda sebagai indeks untuk digunakan dalam

mencari informasi kembali atau information retrieval. Fungsi untuk

menghasilkan nilai ini disebut fungsi hash, sedangkan nilai yang dihasilkan

disebut nilai hash. Contoh sederhana hashing adalah (Firdaus, 2008: 2):

Firdaus, Hari

Munir, Rinaldi

Rabin, Michael

Karp, Richard

Masing-masing nama di atas merupakan kata kunci untuk informasi dalam

pencarian pada database. Apabila tidak di-hash, pencarian akan dilakukan


19

karakter per karakter pada nama-nama yang panjangnya bervariasi dan ada 26

kemungkinan pada setiap karakter yaitu 26 huruf alphabet.

7864 = Firdaus, Hari

9802 = Munir, Rinaldi

1990 = Rabin, Michael

8822 = Karp, Richard

Contoh di atas adalah penggunaan hashing dalam pencarian pada database.

Pencarian akan menjadi lebih efisien setelah di-hash karena hanya akan

membandingkan empat digit angka dengan cuma 10 kemungkinan setiap angka

yaitu 0 sampai 9. Nilai hash pada umumnya digambarkan sebagai fingerprint

yaitu suatu string pendek yang terdiri atas huruf dan angka yang terlihat acak

(data biner yang ditulis dalam hexadecimal).

Fungsi Hash adalah suatu cara menciptakan “fingerprint” dari berbagai

data masukan. Fungsi Hash akan mengganti atau mentranspose-kan data tersebut

untuk menciptakan fingerprint, yang biasa disebut hash value. Hash value

biasanya digambarkan sebagai suatu string pendek yang terdiri atas huruf dan

angka yang terlihat random (data biner yang ditulis dalam notasi hexadecimal).

Algoritma fungsi hash yang baik adalah yang menghasilkan sedikit hash

collision. Hash collision merupakan kejadian dua atau lebih hash memiliki nilai

hash yang sama.


20

2.4.2 K-gram

K-gram adalah rangkaian substring yang bersebelahan dengan panjang k

(Schleimer, Wilkerson, & Aiken, 2003: 1). Metode ini menghasilkan rangkaian

substring sejumlah k-grams, dimana k adalah parameter yang dipilih oleh user.

K-gram mengambil substring karakter huruf sejumlah k dari sebuah kata yang

secara kontinuitas dibaca dari teks sumber hingga akhir dari dokumen. Berikut

ini adalah contoh k-gram dengan k=5:

Text: Bunga melati, dan mawar

Kemudian dilakukan penghilangan spasi :

bungamelatidanmawar

Sehingga dihasilkan rangkaian 5-grams yang diturunkan

dari text :

bunga ungam ngame gamel amela melat elati latid atida

tidan idanm danma anmaw nmawa mawar

2.4.3 Rolling Hash

Fungsi yang digunakan untuk menghasilkan nilai hash dari rangkaian

gram dalam algoritma Winnowing adalah rolling hash  (Jonathan D. Cohen,

1997 : 3) Fungsi hash didefinisikan sebagai berikut:


21

Rumus 2.1 Formula rolling hash

Keterangan :

c : nilai ascii karakter

b : basis (bilangan prima)

k : banyak karakter

Keuntungan dari rolling hash adalah untuk nilai hash

berikutnya dapat dilakukan dengan cara:

Rumus 2.2 Formula untuk mencari nilai hash ke-2 sampai ke-n

Contoh rangkaian gram: “namas amasa”

Dimana nilai ASCII masing-masing huruf adalah n=110, a=97, m=109, s=115.

Rumus 1:
22

Rumus pertama untuk mencari nilai hash dari kata “namas”. Setelah

mendapatkan nilai hash dari kata “namas” maka untuk mencari nila hash kata

kedua yaitu “amasa” tidak perlu menggunakan rumus 1 lagi, karena pada kata

kedua terdapat juga karakter pada kata pertama sehingga menggunakan rumus

kedua untuk mencari nilai hash pada kata kedua.

Rumus 2:

Dengan begitu tidak perlu melakukan iterasi dari indeks pertama sampai

terakhir untuk menghitung nilai hash untuk gram ke-2 sampai terakhir. Hal ini

tentu dapat mengehemat biaya komputasi saat menghitung nilai hash dari sebuah

gram.

2.4.4 Langkah Algoritma Winnowing

Berikut ini adalah langkah-langkah yang harus di lakukan untuk

menerapkan algoritma Winnowing dalam melakukan proses document

fingerprinting (Kusmawan, Yuhana, & Purwitasari, 2010: 2).


23

Tahap pertama adalah pembuangan karakter-karakter yang tidak relevan,

misal: tanda baca, spasi, dll. Misal: “nama saya bejo” akan diubah menjadi

namasayabejo.

Tahap kedua adalah pembentukan rangkaian gram dari teks yang telah

dibersihkan dengan ukuran 5 (ukuran 5 dapat berubah-ubah sesuai kebutuhan):

namas amasa masay asaya sayab ayabe yabej abejo.

Pada tahap ketiga dilakukan penghitungan nilai-nilai hash dari setiap

gram menggunakan rolling hash: 12916, 12115, 12895, 12295,

13412, 12392, 13711, 11841. Lalu dibentuk window dari nilai-nilai

hash, pada contoh ini digunakan window dengan ukuran 4:

{ 12916 12115 12895 12295 },

{ 12115 12895 12295 13412 },

{ 12895 12295 13412 12392 },

{ 12295 13412 12392 13711 },

{ 13412 12392 13711 11841 }.

Tahap yang terakhir adalah memilih nilai hash terkecil dari setiap

window untuk dijadikan sebagai fingerprint, bila terdapat nilai minimum hash

yang sama maka hanya ditulis satu saja yaitu nilai hash yang paling kecil pada

window yang pertama ditemukan nilai hash tersebut:


24

[ 12115,1 ] [ 12295,3 ] [ 11841,7 ]. Apabila nilai hash

terkecil pada window selanjutnya sama dengan nilai hash terkecil pada window

sebelumnya maka nilai hash-nya tidak perlu dituliskan lagi. Nilai 1, 3 dan 7

merupakan nilai indeks dari hash yang terbentuk oleh k-gram. Parameter nilai

pada window digunakan untuk mengambil perwakilan nilai hash sebagai bagian

fingerprint yang tepat.

2.5 Algoritma Manber

Algoritma Manber merupakan salah satu metode document

fingerprinting yang ditemukan oleh Udi Manber pada (Manber, 1994: 1-10).

Secara umum prinsip kerja dari Algoritma Manber hampir sama dengan

algoritma Winnowing yang membedakan adalah pada saat skema pemilihan hash

untuk dijadikan document fingerprinting. Pada algoritma ini memilih setiap hash

yang sesuai dengan H mod P = 0, di mana H adalah nilai hash dan P adalah

ukuran chunk yang diinginkan lebih besar sementara pada Algoritma Winnowing

memilih hash minimum dalam setiap window.

Berikut ini merupakan gambaran pemilihan hash pada algoritma Manber

untuk dijadikan document fingerprinting (Ricardo Filipe, 2010: 291-302):

77 72 42 17 98 50 17 98 8 88 67 39 77 72 42 17

Dari urutan nilai hash yang diberikan diatas, fingerprints dipilih menggunakan

kriteria H mod P = 0. Dengan menggunakan P = 4 didapatkan nilai hash yang

memenuhi kriteria yaitu :

72 8 88 72
25

Selanjutnya nilai hash tersebut dijadikan document fingerprinting.

2.6 Pengukuran nilai similarity

Untuk mendapatkan tingkat presentase kesamaan sebuah dokumen

dengan dokumen lain menggunakan persamaan Jaccard Coefficient (Potthast &

Stein, 2008: 2) yang ditunjukan pada persamaan :

Similaritas (di,dj) =

Rumus 2.3 Rumus pengukuran nilai similarity dengan menggunakan

persamaan Jaccard Coefficient

Untuk menentukan jenis kesamaan antara dokumen yang diuji, ada 5 jenis

penilaian persentase similarity (Mutiara-Agustina, 2008):

 0% : Hasil uji 0% berarti kedua dokumen tersebut benar-benar

berbeda baik dari segi isi dan kalimat secara keseluruhan

 < 15% : Hasil uji 1-14% berarti kedua dokumen tersebut hanya

mempunyai sedikit kesamaan

 15-50%: Hasil uji 15-50% berarti menandakan dokumen tersebut

termasuk plagiat tingkat sedang

 >50% : Hasil uji lebih dari 51-99% berarti dapat dikatakan bahwa

dokumen tersebut mendekati plagiarisme

 100% : Hasil uji 100% menandakan bahwa dokumen tersebut adalah

plagiat karena dari awal sampai akhir mempunyai isi yg sama persis.
26

2.7 Use Case Diagram

Use case diagram menurut Whitten, Bentley, & Dittman (2007: 246)

adalah diagram yang menggambarkan interaksi antara sistem dengan sistem

ekternal dan pengguna. Dengan kata lain, secara grafis menggambarkan siapa

yang akan menggunakan sistem dengan cara apa pengguna mengharapkan untuk

berinteraksi dengan sistem.

2.7.1 Karakteristik :

 Use case diagram adalah interaksi atau dialog antara sistem dan actor,

termasuk pertukaran pesan dan tindakan yang dilakukan oleh sistem.

 Use case diagram diprakarsai oleh actor dan mungkin melibatkan peran

actor lain. Use case harus menyediakan nilai minimal kepada satu actor.

 Use case diagram bisa memiliki perluasan yang mendefinisikan tindakan

khusus dalam interaksi atau use case lain mungkin disisipkan.

 Use case diagram memiliki objek use case yang disebut skenario. Skenario

menyatakan urutan pesan dan tindakan tunggal.

2.7.2 Komponen Use Case Diagram :

1. Actor

Pada dasarnya actor bukanlah bagian dari use case diagram, namun untuk

dapat terciptanya suatu use case diagram diperlukan beberapa actor. Actor

tersebut mempresentasikan seseorang atau sesuatu (seperti perangkat, sistem

lain) yang berinteraksi dengan sistem. Sebuah actor mungkin hanya memberikan
27

informasi inputan pada sistem, hanya menerima informasi dari sistem atau

keduanya menerima, dan memberi informasi pada sistem. Actor hanya

berinteraksi dengan use case, tetapi tidak memiliki kontrol atas use case. Actor

digambarkan dengan stick man. Actor dapat digambarkan secara secara umum

atau spesifik, dimana untuk membedakannya kita dapat menggunakan

relationship.

Gambar 2.6. Actor

2. Use case

“Use case adalah urutan langkah-langkah yang secara tindakan saling

terkait (skenario), baik terotomatisasi maupun secara manual, untuk tujuan

melengkapi satu tugas bisnis tunggal.” menurut (Whitten, Bentley, & Dittman,

2007, hal. 246)

Cara menentukan Use case dalam suatu sistem:


28

 Pola perilaku perangkat lunak aplikasi.

 Gambaran tugas dari sebuah actor.

 Sistem atau “benda” yang memberikan sesuatu yang bernilai kepada

actor.

 Apa yang dikerjakan oleh suatu perangkat lunak bukan bagaimana cara

mengerjakannya

USE CASE

Gambar 2.7 Use Case

3. Relasi dalam use case

Ada beberapa relasi yang terdapat pada use case diagram:

a) Association, hubungan antar aktor dengan use case dimana terjadi

interaksi diantara mereka yang digambarkan sebagai satu garis lurus

yang menghubungkan pelaku dan use case. Garis penghubung pelaku

dan use case pada association terdiri dari anak panah yang

menyentuh use case digunakan untuk mengidentifikasikan bahwa use

case diimitasi oleh pelaku di ujung lain dari garis. Garis penghubung
29

yang lain tanpa anak panah. Garis ini mengidentifikasikan bahwa

terjadi interaksi antara use case dan aktor.

Gambar 2.8. Contoh Relasi Association

b) Extends, use case yang terdiri dari langkah yang diektraksi dari use

case yang lebih kompleks untuk menyederhanakan masalah orisinal

dan memperluas fungsionalitas use case sebelumnya.

Gambar 2.9 Contoh Relasi Extends

c) Uses (or Includes), jika ditemukan dua atau lebih use case yang

melakukan langkah-langkah fungsional yang identik, ekstrak langkah

fungsional tersebut menjadi use case terpisah yang dinamakan

abstract use case. Hubungan diantara abstract use case dan use case

yang menggunakannya dinamakan uses relationship.

Gambar 2.10 Contoh Relasi Uses


30

d) Depends On, sebuah relasi antara use case yang menunjukkan bahwa

satu use case tidak bisa dilakukan sampai use case yang lainnya

dilakukan. Depends On ditunjukan dengan garis berkepala anak

panah (baik garis tegas ataupun garis putus-putus).

Gambar 2.11 Contoh Relasi Depends On

e) Inheritance, konsep dimana atribut yang ditentukan di dalam sebuah

object class dapat diwariskan atau digunakan lagi oleh objek class

lainnya.

Gambar 2.12 Contoh Relasi Inheritance

2.8 Use Case Narative

Menurut Whitten, Bentley, & Dittman(2007: 246) adalah deskripsi

tekstual kegiatan bisnis dan bagaimana pengguna akan berinteraksi dengan

sistem untuk menyelesaikan suatu tugas.


31

Tabel 2.1 Contoh Use Case Narative

Nama Use-Case : Place New Order


Prioritas : Tinggi
Aktor Utama Sistem: Anggota Club
Deskripsi: Use-case ini mendeskripsikan kejadian ketika

anggota club menyerahkan pesanan baru

untuk produk SoundStage.


Kondisi Sebelumnya: Individu yang menyerahkan pesanan harus

menjadi anggota.
Pemicu: Use case ini diawali saat pesanan baru

diserahkan.
Urutan Kejadian: User Sistem

Langkah 1:

Anggota club

menyediakan

informasi demografis

dan informasi

pembayaran dan

pemesanan.

Langkah 2:

Sistem merespons

dengan cara menguji

semua informasi yang

dibutuhkan.

Langkah 4:
32

Untuk setiap

pesananproduk

sistem menvalidasi

identitas produk

Langkah 5:

Sistem merekam

informasi pesanan

kemudian pesanan

diproses,sistem

menghasilkan

konfirmasi pesanan

dan mengirim ke

angota club.
Langkah Alternatif -
Kesimpulan Usecase ini menyimpulkan kapan anggota klub

menerima konfirmasi pesanan.

2.9 Activity Diagram

Activity diagram adalah diagram yang dapat digunakan untuk

menggambar secara grafis aliran proses bisnis, langkah-langkah sebuah use case

(Whitten, Bentley, & Dittman, 2007: 390). Diagram ini sangat berguna untuk

memodelkan hasil-hasil dari aktivitas seperti memodelkan event yang

menyebabkan window akan ditampilkan atau ditutup. Analisis sistem


33

menggunakan activity diagram digunakan memahami secara lebih baik aliran dan

rangkaian langkah-langkah use case. Bagian-bagian dari activity diagram:

 Titik Solid menggambarkan awal sebuah proses.

 Segi empat bersudut tumpul menggambarkan sebuah kegiatan atau

tugas yang perlu dilakukan.

 Anak panah menggambarkan awal dan tujuan kegiatan.

 Bar hiam solid adalah sebuah bar sinkronisasi untuk menggambarkan

kegiatan yang muncul secara paralel.

 Teks di dalam [ ] menggambarkan sebuah sasaran yang merupakan

sebuah hasil dari kegiatan keputusan.

 Diamond menggambarkan sebuah kegiatan keputusan.

 Titik solid dalam sebuah lingkaran menggambarkan akhir dari sebuah

proses.

Gambar 2.13 Contoh Activity Diagram

2.10 Sequence Diagram

Menurut Whitten, Bentley, & Dittman (2007: 659) sebuah UML diagram

yang menggambarkan interaksi antara pesan dan objek di time sequence.

Ciri-ciri sequence diagram:


34

a) Pada sequence diagram, kita menjumpai garis hidup objek. Garis hidup

objek adalah garis tegas vertical yang mencerminkan eksistensi sebuah

objek sepanjang periode waktu.

b) Pada sequence diagram, kita menjumpai objek yang berbentuk persegi

panjang dimana didalam persegi panjang tersebut terdapat nama dari

objek tersebut dan digaris bawahi.

c) Pada sequence diagram, kita menjumpai pesan (message) yang

mendeskripsikan tujuan dan input data yang sedang dikirim. Pesan pada

sequence diagram ditunjukan dengan bentuk arah panah horisontal.

Gambar 2.14 Contoh Sequence Diagram

2.11 Pengertian Basis Data

Basis Data (database) adalah kumpulan data yang saling terkait (Whitten,

Bentley, & Dittman, 2007: 518). Di dalam basis data tersebut terdapat beberapa

table yang berisikan fields dan records. Fields adalah implementasi fisik dari

sebuah atribut data. Field adalah unit terkecil dari data yang disimpan dalam

basis data. Record adalah kumpulan field yang disusun dalam format yang telah

ditetapkan sebelumnya. Ada 4 tipe field yang dapat disimpan, yaitu:

 Primary key
35

Primary key adalah sebuah field yang nilai-nilainya

mengidentifikasikan satu dan hanya ada satu record pada sebuah

data.

 Secondary key

Secondary key adalah sebuah pengidentifikasi alternatif pada

sebuah database. Nilai secondary key memungkinkan

mengidentifikasi sebuah record tunggal (seperti pada sebuah

primary key) atau sebuah subset dari semua record.

 Foreign key

Foreign key merupakan pointer ke record-record dari sebuah file

lain pada sebuah database. Foreign key memampukan sebuah

database terhubung ke record-record dari satu tipe ke record-

record dari tipe lain.

 Descriptive field

Descriptive field adalah semua field lainnya (nonkey) yang

menyimpan data bisnis.

2.12 MySQL

MySQL merupakan suatu Relational Database Management System

(RDBMS) yang cepat dan kuat . (Welling & Thomson, PHP and MYSQL Web

Development, 2008: 3). MySQL memungkinkan secara efisien menyimpan,


36

mencari, mengurutkan dan mendapatkan data. MySQL menggunakan Structured

Query Language (SQL) sebagai standar query basisdata.

Diantara kelebihan-kelebihan MySQL yaitu:

a) High Performance, MySQL mempunyai performa yang cepat.

b) Low cost, MySQL tersedia tanpa biaya di bawah lisensi open source atau

dengan biaya rendah di bawah lisensi komersial jika mendistribusikan

MySQL sebagai bagian dari aplikasi.

c) Ease of configuration and learning, MySQL mudah untuk dikonfigurasi dan

dipelajari karena menggunakan Structured Query Language (SQL) sebagai

standar query basisdata.

d) Portability, MySQL dapat digunakan pada banyak sistem Unix yang berbeda

serta di bawah Microsoft Windows.

e) Availability of source code, kode sumber dari MySQL dapat diperoleh dan

dimodifikasi.

f) Availability of support, MySQL memiliki perusahaan induk yang

menawarkan dukungan, pelatihan, konsultasi, dan sertifikasi.

2.13 PHP

Pengertian PHP menurut (Welling & Thomson, PHP and MYSQL Web

Development, 2008: 2) mengemukakan bahwa “PHP adalah server-side scripting

language yang dirancang khusus untuk Web”. Source code PHP diinterpretasi

pada server web dan akan dieksekusi setiap kali halaman diminta oleh client.

Mekanisme ini menyebabkan informasi yang diterima client selalu yang terbaru.
37

Sistem kerja dari program ini adalah sebagai interpreter. Dikatakan sebagai

bahasa interpreter, script mentahnya tidak harus diubah ke dalam bentuk source

code. Sehingga pada saat menjalankan program, source code secara langsung

akan dijalankan tanpa harus melalui proses pengubahan ke dalam bentuk source

code.

Diantara kelebihan-kelebihan dari PHP:

a) Performance, PHP mempunyai performa yang cepat.

b) Scalability, PHP dapat secara efektif dan murah menerapkan skala horisontal

dengan sejumlah komoditas server yang besar.

c) Database Integration, PHP memiliki native connections yang tersedia untuk

banyak sistem database seperti MySQL, PostgreSQL, Oracle, dbm, FilePro,

DB2, Hyperwave, Informix, Interbase, dan database Sybase.

d) Built-in Libraries, karena PHP dirancang untuk digunakan di Web, PHP

memiliki banyak fungsi built-in untuk melakukan banyak tugas web yang

terkait seperti menghasilkan gambar, terhubung ke layanan web dan layanan

jaringan lainnya, parse XML, mengirim email, cookies, dan menghasilkan

dokumen PDF.

e) Cost, PHP digunakan secara gratis.

f) Object-Oriented Support, PHP telah dirancang dengan baik pada fitur

berorientasi objek.

g) Portability, PHP tersedia untuk banyak sistem operasi yang berbeda, seperti

Linux, FreeBSD, Solaris dan IRIX, OS X, atau pada berbagai versi

Microsoft Windows.
38

h) Flexibility of Development Approach, PHP mudah beradaptasi dengan

menerapkan aplikasi besar menggunakan framework berdasarkan pola desain

seperti Model-View-Controller (MVC).

2.14 Lima Faktor Manusia Terukur

Dalam design antarmuka pengguna, Menurut (Ben Shneiderman, 2010:

16) perlu mempertimbangkan lima faktor manusia terukur yang terdiri atas:

1. Waktu belajar, berapa lama waktu yang diperlukan oleh orang awam dalam

komunikasi pengguna untuk mempelajari cara relevan untuk melakukan

suatu tugas.

2. Kecepatan kinerja, berapa lama waktu yang diperlukan untuk melakukan

tugas.

3. Tingkat kesalahan, berapa banyak kesalahan dan kesalahan apa saja yang

dibuat pengguna.

4. Daya ingat, bagaimanakah kemampuan pengguna mempertahankan

pengetahuannya setelah jangka waktu tertentu. Daya ingat berkaitan erat

dengan waktu belajar dan frekuensi penggunaan.

5. Kepuasan subjektif, seberapa suka pengguna menggunakan variasi aspek

dari suatu sistem.

Anda mungkin juga menyukai