Data konsep hash map dan fingerprint winnowing.doc

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

Transcript of Data konsep hash map dan fingerprint winnowing.doc

41

BAB 2LANDASAN TEORI

2.1Proses 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) LinierMelaksanakan masing-masing dari lima framework activity secara urut dimulai dengan communication dan mencapai puncaknya dengan deployment.

Gambar 2.1 Linier Process Flowb) IterativeMengulang satu atau lebih aktivitas sebelum memproses aktivitas selanjutnya.

SHAPE \* MERGEFORMAT

Gambar 2.2 Iterative Process Flow3. EvolutionaryMenjalankan aktivitas dengan cara melingkar. Setiap sirkuit yang melalui lima kegiatan mengarah ke versi yang lebih lengkap dari perangkat lunak.

SHAPE \* MERGEFORMAT

Gambar 2.3 Evolutionary Process Flow4. ParallelMenjalankan 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.

SHAPE \* MERGEFORMAT

Gambar 2.4 Parallel Process Flow 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. PlanningPlanning merupakan lanjutan proses dari proses communication. Tahap ini merupakan tahap dimana akan dilakukan estimasi mengenai 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. ModellingPada 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. ConstructionTahap 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. DeploymentSetelah 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. SHAPE \* MERGEFORMAT

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 termasuk incremental development yang setiap tahapnya sama dengan waterfall kemudian diulang-ulang. 2.2Hasil-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.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.3Algoritma 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)

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 membandingkan nilai hash dari kata yang dicari dengan nilai hash teks sumber pada indeks berikutnya.2.4Algoritma 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.

2.4.1Hashing

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

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.2K-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.3Rolling HashFungsi 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 hashKeterangan : 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-nContoh 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: 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.4Langkah 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, 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.5Algoritma 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 17Dari 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

Selanjutnya nilai hash tersebut dijadikan document fingerprinting.2.6Pengukuran 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 CoefficientUntuk 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. 2.7Use 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. ActorPada 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.

Gambar 2.6. Actor2. 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

Gambar 2.7 Use Case3. 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 Associationb) 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

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 Inheritance2.8Use 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 NarativeNama 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

Langkah 1:

Anggota club menyediakan informasi demografis dan informasi pembayaran dan pemesanan.

Sistem

Langkah 2:

Sistem merespons dengan cara menguji semua informasi yang dibutuhkan.

Langkah 4:

Untuk setiap pesananproduk sistem menvalidasi identitas produkLangkah 5:

Sistem merekam informasi pesanan kemudian pesanan diproses,sistem menghasilkan konfirmasi pesanan dan mengirim ke angota club.

Langkah Alternatif -

KesimpulanUsecase ini menyimpulkan kapan anggota klub menerima konfirmasi pesanan.

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

Gambar 2.13 Contoh Activity Diagram2.10Sequence 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.

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.11Pengertian 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 keyPrimary key adalah sebuah field yang nilai-nilainya mengidentifikasikan satu dan hanya ada satu record pada sebuah data. Secondary keySecondary 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 fieldDescriptive field adalah semua field lainnya (nonkey) yang menyimpan data bisnis.2.12MySQLMySQL 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, 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.13PHPPengertian 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 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.14Lima 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.Communication

Planning

Modelling

Deployment

Construction

Communication

Planning

Modelling

Construction

Deployment

Communication

Planning

Modelling

Construction

Deployment

Planning

Modelling

Construction

Deployment

Communication

Time

Communication

Project initiation

Requirement gathering

Planning

Estimating

Scheduling

tracking

Modelling

Analysis

Design

Construction

Code

Testing

Deployment

Delivery

Support

feedback

USE CASE

8

_1428492197.vsdMengeluarkan HasilPengepakan Barang

Use Case

Use Case

Menghitung Totaldan Pajak

MengantarkanPesanan Anggota

extends

extends

Static Structure

_1428492199.vsdMenetapkanRekening Bank

Use Case

Membuat Pinjaman

Membuat Deposit

_1428492201.vsdSistem menampilkan form isian registrasi

Pengguna mengisi from isian registrasi

Pengguna melakukan submit form registrasi

Sistem menvalidasi data pengguna

[Gagal]

Sistem menyimpan data pengguna

Halaman personal pengguna ditampilkan

[Berhasil]

Mulai

Selesai

_1428492202.vsdPegawai

:Sistem

menambahItem (itemID, jumlah)

deskripsi, harga

_1428492200.vsdPelanggan

Use Case

Use Case

Anggota

Pengunjung

Meminjam Buku

Mendaftar MenjadiAnggota

MencariKetersediaan Buku

Static Structure

Relasi Inheritance

_1428492198.vsdPenempatanAnggotaBaru

Use Case

Use Case

Merubah Kode Pos

Membuat PerubahanKode Pos

uses

uses

Abstract Use Case

Static Structure

_1428492196.vsdAnggota

Use Case

Penempatan AnggotaBaru

Central Distribusi Anggota