BAB 2
LANDASAN TEORI
2.1
Communication
Planning
Deployment
Modelling
Construction
b) Iterative
Mengulang satu atau lebih aktivitas sebelum memproses aktivitas
selanjutnya.
Communication
Planning
Modelling
Construction
Deployment
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
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
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
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
14
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
kesamaan
Rabin-Karp,
dokumen
sedangkan
dengan
algoritma
19),
meneliti
menggunakan
penelitian
yang
16
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
18
2.4.1
Hashing
Hashing merupakan pengubahan serangkaian karakter menjadi nilai atau
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
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
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
21
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
menerapkan
algoritma
Winnowing
dalam
melakukan
proses
document
rolling hash:
23
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
2.6
Similaritas (di,dj) =
25
0%
plagiat karena dari awal sampai akhir mempunyai isi yg sama persis.
2.7
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
27
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:
actor.
Apa yang dikerjakan oleh suatu perangkat lunak bukan bagaimana cara
mengerjakannya
USE
CASE
28
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
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.
30
31
2.8
Kondisi Sebelumnya:
produk SoundStage.
Individu yang menyerahkan pesanan
Pemicu:
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:
34
Mulai
[Gagal]
Sistem menyimpan data pengguna
[Berhasil]
Halaman personal pengguna ditampilkan
Sistem
menvalidasi
data
pengguna
Selesai
35
2.11
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
data.
Secondary key
Secondary key adalah sebuah pengidentifikasi alternatif pada
sebuah
database.
Nilai
secondary
key
memungkinkan
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
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).
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