Anda di halaman 1dari 32

8

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

Deployment

Gambar 2.1 Linier Process Flow

Modelling

Construction

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
kebutuhan-kebutuhan yang diperlukan untuk membuat sebuah sistem.

12

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
pemeliharaan, perbaikan dan pengembangan agar sistem tersebut tetap
dapat berjalan sebagaimana fungsinya.

13
Communication
Project initiation
Requirement gathering

Planning
Estimating
Scheduling
tracking

Deployment

Delivery
Support
feedback

Modelling
Analysis
Design

Construction

Code
Testing

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

14

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

15

b. Metode

yang

digunakan

pada

menggunakan metode K-gram.


2. Perbedaan Penelitian:
a. Jika pada penelitian Steven (2009:
pendeteksian
Algoritma

kesamaan
Rabin-Karp,

dokumen
sedangkan

dengan

algoritma

19),

meneliti

menggunakan

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
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)

16

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)
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

17

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

18

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

19

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.

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

20

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:

Rumus 2.1 Formula rolling hash


Keterangan :
c : nilai ascii karakter

21

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:

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:

22

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


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,

23

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:
[ 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).

24

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

88

72

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) =

25

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%

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

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

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

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.

26

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

27

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:

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

28

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

29

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


d) Depends On, sebuah relasi antara use case yang menunjukkan bahwa
satu use case tidak bisa dilakukan sampai use case yang lainnya

30

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

31

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.

Tabel 2.1 Contoh Use Case Narative


Nama Use-Case :
Prioritas :
Aktor Utama Sistem:
Deskripsi:

Place New Order


Tinggi
Anggota Club
Use-case ini mendeskripsikan
kejadian ketika anggota club
menyerahkan pesanan baru untuk

Kondisi Sebelumnya:

produk SoundStage.
Individu yang menyerahkan pesanan

Pemicu:

harus menjadi anggota.


Use case ini diawali saat pesanan

Urutan Kejadian:

baru diserahkan.
User
Langkah 1:
Anggota club
menyediakan
informasi

Sistem

32
demografis dan
informasi
pembayaran dan
pemesanan.

Langkah 2:
Sistem
merespons
dengan cara
menguji semua
informasi yang
dibutuhkan.
Langkah 4:
Untuk setiap
pesananproduk
sistem
menvalidasi
identitas produk
Langkah 5:
Sistem merekam
informasi
pesanan
kemudian
pesanan
diproses,sistem
menghasilkan
konfirmasi

33
pesanan dan
mengirim ke
Langkah Alternatif
Kesimpulan

angota club.
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
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.

34

Mulai

Sistem menampilkan form isian registrasi

Pengguna mengisi from isian registrasi

Pengguna melakukan submit form registrasi

[Gagal]
Sistem menyimpan data pengguna

[Berhasil]
Halaman personal pengguna ditampilkan

Sistem
menvalidasi
data
pengguna

Selesai

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:
a) Pada sequence diagram, kita menjumpai garis hidup objek. Garis hidup
objek adalah garis tegas vertical yang mencerminkan eksistensi sebuah
objek sepanjang periode waktu.

35

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

36

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
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,

37

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
f)

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

38

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

39

1.

Waktu belajar, berapa lama waktu yang diperlukan oleh orang awam dalam
komunikasi pengguna untuk mempelajari cara relevan untuk melakukan

2.

suatu tugas.
Kecepatan kinerja, berapa lama waktu yang diperlukan untuk melakukan

3.

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

4.

dibuat pengguna.
Daya ingat, bagaimanakah

kemampuan

pengguna

mempertahankan

pengetahuannya setelah jangka waktu tertentu. Daya ingat berkaitan erat


5.

dengan waktu belajar dan frekuensi penggunaan.


Kepuasan subjektif, seberapa suka pengguna menggunakan variasi aspek
dari suatu sistem.

Anda mungkin juga menyukai