BAB II TINJAUAN PUSTAKA 2.1. Sistem Temu Kembali Informasi Sistem Temu Kembali Informasi atau Information Retrieval (IR) adalah kegiatan untuk menemukan suatu material (dokumen) dari data yang tidak terstruktur (berbentuk teks) yang dapat memenuhi kebutuhan informasi yang dicari dalam koleksi dokumen yang besar. Informasi yang dikembalikan oleh IR berupa tumpukan dokumen yang relevan terhadap query yang dimasukkan oleh pengguna (Manning et al, 2008). Banyak pihak menggunakan IR untuk menyediakan informasi ke organisasinya sendiri atau publik, informasi tersebut bisa berupa buku, jurnal ataupun dokumen lain. Salah satu aplikasi umum dari sistem IR adalah search engine atau mesin pencarian yang terdapat pada jaringan internet. Pengguna dapat mencari halamanhalaman web yang dibutuhkannya melalui search engine. Sistem IR terutama berhubungan dengan pencarian informasi yang isinya tidak memiliki struktur. Demikian pula ekspresi kebutuhan pengguna yang disebut query, juga tidak memiliki struktur. Hal ini yang membedakan sistem temu kembali informasi dengan sistem basis data. Dokumen adalah contoh informasi yang tidak terstruktur. Isi dari suatu dokumen sangat tergantung pada pembuat dokumen tersebut. Sebagai suatu sistem, sistem temu kembali informasi memiliki beberapa bagian yang membangun sistem secara keseluruhan. Gambaran bagian-bagian yang terdapat pada suatu sistem temu kembali informasi digambarkan pada Gambar 2.1.
12
13
Ranked Documents
Document Collection
Query
Text Operations
1. Dok1 2. Dok2 3. Dok3 . .
Query formulation
Terms Index
Text Operations
Ranking
Indexing
Collection Index
Gambar 2.1. Bagian-bagian Sistem Temu Kembali Informasi (Mandala & Setiawan, 2009)
Dari ilustrasi pada gambar 2.1, terlihat bahwa secara umum cara kerja dari sistem IR terbagi menjadi 2 alur kerja yaitu dari sisi query dan koleksi dokumen dimana alur koleksi dokumen dijalankan terlebih dahulu. Alur pertama yaitu pemrosesan terhadap koleksi dokumen menjadi basis data indeks tidak tergantung pada alur kedua. Sedangkan alur kedua tergantung dari keberadaan basis data indeks yang dihasilkan pada alur pertama. Bagian-bagian dari Sistem Temu Kembali Informasi menurut gambar 2.1. meliputi: 1. Text Operations (operasi terhadap teks) yang meliputi pemilihan kata-kata dalam query maupun dokumen (term selection) dalam pentransformasian dokumen atau query menjadi terms index (indeks dari kata-kata). 2. Query formulation (formulasi terhadap query) yaitu memberi bobot pada indeks kata-kata query. 3. Ranking (perangkingan), mencari dokumen-dokumen yang relevan terhadap query dan mengurukan dokumen tersebut berdasarkan kesesuaiannya dengan query.
14
4. Indexing (pengindeksan), membangun basis data indeks dari koleksi dokumen. Dilakukan terlebih dahulu sebelum pencarian dokumen dilakukan.
Sistem temu kembali informasi menerima query dari pengguna, kemudian melakukan
perangkingan
terhadap
dokumen
pada
koleksi
berdasarkan
kesesuaiannya dengan query. Hasil perangkingan yang diberikan kepada pengguna merupakan dokumen yang menurut sistem relevan dengan query. Namun relevansi dokumen terhadap suatu query merupakan penilaian pengguna yang subjektif dan dipengaruhi banyak faktor seperti topik, pewaktuan, sumber informasi mapun tujuan pengguna. Model sistem temu kembali informasi menentukan detail sistem temu kembali informasi yaitu meliputi representasi dokumen maupun query, fungsi pencarian (retrieval function) dan notasi kesesuaian (relevance notation) dokumen terhadap query.
2.2. Text Preprocessing Dalam sistem IR sebelum dokumen siap digunakan perlu dilakukan tahap text preprocessing yang terdiri dari case folding, tokenizing, filtering, stemming yang dilakukan secara berurutan.
2.2.1. Case Folding Case folding adalah proses pertama kali yang dilakukan dalam rangkaian perancangan klasifikasi dokumen teks. Proses ini merupakan proses dimana kata kata di dalam dokumen atau kalimat akan di ubah menjadi huruf kecil (a sampai z) dan menghilangkan tanda baca. Karakter lain selain huruf akan dianggap delimiter sehingga karakter tersebut akan dihilangkan atau dihapus. Hal ini dilakukan untuk mencegah terjadinya noise pada saat pengambilan informasi. Untuk selanjutnya, hasil dari case folding nantinya akan digunakan pada proses tokenisasi.
15
Gambar 2.2. Contoh Case Folding
2.2.2. Tokenizing Proses tokenisasi adalah proses pemotongan string input berdasarkan tiap kata yang menyusunnya. Hasil pemrosesan akan berupa kata yang disebut dengan token/term. Term ini nantinya akan disimpan ke dalam database untuk dilakukan indexing saat melakukan pencarian.
Gambar 2.3. Contoh Tokenisasi 2.2.3. Filtering Filtering merupakan proses mengambilan kata-kata penting dari hasil tokenisasi. Tahap filtering dapat dilakukan menggunakan algoritma stoplist / stopword. Stopword adalah kata-kata yang sering muncul pada teks dalam jumlah besar dan dianggap tidak memiliki makna dan akan dihilangkan. Stopword ini dapat berupa kata penghubung, kata depan, dan kata pengganti, contohnya seperti “yang”,
16
“di”, “dan”, “ke”, “dari” dan lain sebagainya. Tujuan dari proses ini adalah untuk mengurangi jumlah term sehingga hanya kata-kata penting saja yang terdapat pada dictionary.
Kumpulan kata yang termasuk stopwords diambil dari penelitian
(Asian, 2007).
Gambar 2.4. Contoh Filtering
2.2.4. Stemming Proses stemming merupakan proses untuk kata dasar dari kata yang sudah mengalami proses stopword. Pencarian kata dasar dapat memperkecil hasil indeks tanpa harus menghilangkan makna. Proses stemming dilakukan dengan menghilangkan semua imbuhan baik yang terdiri dari awalan (prefix), akhiran (surfix), sisipan (infix), bentuk perulangan dan kombinasi antara awalan dan akhiran (confix). Tujuan dari proses ini adalah untuk mengurangi variasi kata yang mempunyai kata dasar yang sama. Algoritma Stemming yang akan digunakan pada penelitian ini adalah Stemming Nazief & Adriani karena algoritma ini memiliki tingkat keakuratan (presisi) yang baik (Agusta, 2009).
17
Gambar 2.5. Contoh Stemming
2.3. BM25+ Pada model peluang, banyak terdapat fungsi-fungsi kesamaan yang digunakan, yaitu fungsi Best Match (BM). BM25 adalah metode yang dikembangkan oleh (Robertson & Jones, 1976) dan merupakan hasil dari percobaan beberapa variasi fungsi Best Match pada model peluang. BM25 memiliki fungsi yang sesuai dengan 3 prinsip pembobotan yang baik, yaitu memiliki inverse document frequecy (IDF), term frequency (TF), dan memiliki
fungsi
normalisasi
dari
panjang
dokumen
(document
length
normalization). TF merupakan jumlah kemunculan suatu term pada suatu dokumen. IDF dapat diartikan sebagai nilai keinformatifan dari sebuah term. Semakin jarang sebuah term muncul dalam koleksi dokumen atau dengan kata lain jumlah dokumen (document frequency) yang mengandung term tersebut sedikit, maka term tersebut akan semakin informatif, begitu pula sebaliknya. Sehingga nilai DF akan di-inverse untuk memberikan bobot yang besar pada term langka dan memberikan bobot yang lebih kecil untuk term yang sering muncul dalam koleksi, dimana hal ini disebut dengan bobot IDF. IDF dihitung dengan membagi jumlah koleksi dokumen dengan DF dari sebuah term. Jadi semakin kecil nilai DF dari suatu term, bobot IDF term tersebut akan semakin besar. Nilai IDF ini akan di-logaritma-kan ( log ) untuk memperkecil efek dari IDF (Manning et al, 2008). Fungsi BM25 sampai saat ini masih terus dikembangkan oleh beberapa peneliti. Salah satu pengembangan dari BM25 adalah BM25+ yang dikembangkan oleh (Lv & Zhai, 2011) dimana dalam penelitian tersebut dikatakan bahwa normalisasi TF berdasarkan panjang dokumen tidak dibatasi (lower-bounded)
18
dengan benar yang dapat menyebabkan dokumen yang memiliki jumlah kata yang banyak atau document length yang panjang bisa terabaikan. Oleh karena itu dikembangkan fungsi BM25+ dengan penambahan parameter yang digunakan sebagai TF semu untuk mengatur nilai batas bawah dari normalisasi TF terhadap panjang dokumen. Untuk lebih jelasnya persamaan BM25+ ditunjukkan pada persamaan 2.1 (Lv & Zhai, 2011): k 3 1 qtf (t ) k1 1 tf (t ) N 1 (2.1) BM 25 (Q, D) log |D| k 3 qtf (t ) df (t ) tQ k1 1 b b avdl tf (t )
Dimana: 1.
tf (t ) adalah frekuensi kemunculan term t pada dokumen D
2.
qtf (t ) adalah frekuensi kemunculan term t pada query Q
3.
N adalah jumlah total dokumen pada koleksi
4.
df (t ) adalah jumlah dokumen yang mengandung term t
5.
|D| adalah panjang dokumen D, dinormalisasi oleh panjang rata-rata dari avdl seluruh dokumen di koleksi atau average document length (avdl)
6.
b , k1 dan k3 adalah parameter bebas dari BM25, dimana b diberikan nilai antara 0 – 0,8 , k1 antara 1,0 – 2,0 dan k3 = 1000 (Zhang et al, 2013). Pada penelitian (Robertson & Walker, 1999) disebutkan nilai standar masing-masing parameter tersebut adalah b = 0,75, k1 = 1,2 dan k3 = 1000 untuk query panjang dan k3 = 1 untuk query pendek. Namun dalam penelitian ini, nilai yang akan digunakan untuk k3 adalah 1 karena jenis query yang akan digunakan pada pengujian adalah query pendek
7.
Parameter digunakan untuk mengatur nilai batas bawah dari normalisasi TF terhadap panjang dokumen dimana pada hasil penelitian (Lv & Zhai, 2011) nilai yang direkomendasikan adalah 1 .
19
Pada persamaan 2.1 terdapat beberapa tuning parameter BM25+ yaitu b , k1 dan k3 . Parameter k1 digunakan untuk mengkalibrasi skala term frequency tf (t ) atau dengan kata lain mengatur seberapa efektif nilai tf (t ) pada hasil dari BM25+. Parameter k3 digunakan untuk mengkalibrasi skala term frequency pada query qtf (t ) atau dengan kata lain mengatur seberapa efektif nilai qtf (t ) pada hasil dari
BM25+. Parameter b untuk mengkalibrasi normalisasi term frequency terhadap document length atau dengan kata lain mengatur seberapa efektif nilai dari document length untuk menormalisasi term frequency (Manning et al, 2008). Nilai parameter ini sewaktu-waktu dapat diubah pada rentang nilai yang ditentukan sesuai kebutuhan untuk mendapatkan hasil akurasi yang lebih baik. Algoritma dari fungsi BM25+ secara garis besar adalah sebagai berikut (Saputra, 2013). 1.
Input query q.
2.
Lakukan proses tokenisasi query q menjadi q1… qn.
3.
Proses q1 dengan mencari nilai IDF, TF dokumen, dan TF query sesuai dengan fungsi BM25+.
4.
Kalikan IDF, TF query, dan TF yang didapatkan pada q1 tersebut sehingga didapatkan skor kesamaan untuk satu kata query.
5.
Ulangi langkah 3 sampai 4 untuk q yang lain.
6.
Jumlahkan setiap hasil yang didapatkan dari q1…qn tergantung banyaknya jumlah kata pada query, sehingga didapatkan skor keseluruhan untuk 1 query pencarian.
7.
Didapatkan skor kesamaan untuk suatu query, sehingga dapat ditentukan dokumen hasil pencarian yang dianggap relevan dengan query tersebut.
8.
Urutkan dokumen hasil pencarian berdasarkan skor tertinggi ke skor terendah.
9.
Dokumen yang telah diurutkan dapat ditampilkan pada sistem.
20
2.4. Model Proses Waterfall Model proses perangkat lunak merupakan deskripsi sederhana dari proses perangkat lunak yang menyajikan suatu pandangan dari proses tersebut. Model proses mencakup kegiatan yang merupakan bagian dari proses perangkat lunak, produk perangkat lunak, dan peran orang yang terlibat dalam rekayasa perangkat lunak. Model waterfall merupakan model proses klasik yang bersifat sistematis, berurutan dari satu tahap ke tahap lain dalam membangun software (Sommerville, 2011). Model ini mengusulkan sebuah pendekatan kepada pengembangan software yang sistematik dan sekuensial yang mulai dari tingkat kemajuan sistem pada seluruh analisis, desain, implementasi, pengujian dan pemeliharaan. Model waterfall memiliki tahapan-tahapan dalam prosesnya, setiap tahapan tersebut harus diselesaikan sebelum berlanjut ke tahap berikutnya. Tahapan yang terdapat pada model proses waterfall ditunjukkan pada gambar 2.6.
Gambar 2.6. Model Proses Waterfall (Sommerville, 2011) Berikut merupakan penjelasan dari masing-masing tahapan di atas (Sommerville, 2011).
21
1.
Requirements analysis and definition Layanan sistem, kendala, dan tujuan yang ditetapkan dengan berkonsultasi dengan pengguna sistem. Kemudian didefinisikan secara rinci dan dijadikan sebagai spesifikasi sistem.
2.
System and software design Software desain meliputi mengidentifikasi dan merancang abstraksi sistem perangkat lunak yang mendasar.
3.
Implementation and unit testing Pada tahap ini, perancangan perangkat lunak diimplementasikan ke dalam bentuk kode program. Unit pengujian melibatkan verifikasi bahwa setiap unit memenuhi spesifikasinya.
4.
Integration and system testing Tahapan dimana unit program individu atau program yang terintegrasi diuji sebagai sistem yang lengkap untuk memastikan bahwa persyaratan perangkat lunak telah dipenuhi. Setelah pengujian, sistem perangkat lunak disampaikan kepada pengguna.
5.
Operation and maintenance Tahap ini merupakan tahapan dengan masa waktu paling lama. Pemeliharaan meliputi kesalahan mengoreksi yang tidak ditemukan pada awal tahap siklus hidup, meningkatkan implementasi unit sistem dan meningkatkan pelayanan sistem sebagai kebutuhan baru ditemukan.
2.5. Unified Modeling Language (UML) Unified Modeling Language (UML) merupakan sebuah standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengan menggunakan teknik pemrograman berorientasi objek (Yulianto dkk, 2009). Berikut adalah penjelasan diagram UML yang digunakan sebagai model perancangan untuk sistem yang akan dibuat.
22
2.5.1
Use Case Diagram Use Case merupakan pemodelan untuk merepresentasikan kelakuan
(behavior) dari suatu sistem yang akan dibuat (Yulianto dkk, 2009). Dengan kata lain use case tersebut mendeskripsikan sebuah interaksi antara satu atau lebih actor dengan sistem informasi yang akan dibuat. Kegunaan dari diagram ini untuk mengetahui fungsi apa saja yang aka nada di dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi – fungsi tersebut. Syarat penamaan pada use case adalah nama yang didefinisikan sesimpel mungkin dan dapat dipahami. Terdapat dua hal utama pada use case yaitu pendefinisian apa yang disebut actor dan use case, yaitu: 1. Aktor merupakan orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang akan dibuat itu sendiri. Oleh karena itu walaupun simbol dari aktor ada adalah gambar orang, tetapi belum tentu hal tersebut merupakan orang. 2. Use Case merupakan fungsionalitas yang disediakan sistem sebagai unit – unit yang saling bertukar pesan antar unit atau aktor. Simbol-simbol pada Use Case ditunjukkan pada tabel 2.1. Tabel 2.1. Simbol Use Case Diagram No. 1.
Simbol Use Case
Deskripsi Fungsionalitas
yang
disediakan
sistem
sebagai unit – unit yang saling bertukar pesan antar unit atau aktor; biasanya dinyatakan dengan menggunakan kata kerja di awal di awal frase nama use case 2.
Aktor / actor
Orang, proses,
atau
sistem lain
yang
berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang; biasanya
23
dinyatakan menggunakan kata benda di awal frase nama aktor 3.
Asosiasi / association
Komunikasi antara aktor dan use case yang berpartisipasi pada use case atau use case memiliki interaksi dengan actor
4.
Ekstensi / extend
Relasi use case tambahan ke sebuah use case dimana use case yang ditambahkan dapat berdiri sendiri walau tanpa use case tambahan itu; mirip dengan prinsip inheritance pada pemrograman berorientasi objek; biasanya use case tambahan memiliki nama depan yang sama dengan use case yang ditambahkan, misalnya :
Arah panah mengarah pada use case yang ditambahkan 5.
Generalisasi /
Hubungan
generalisasi
dan
spesialisasi
generalization
(umum - khusus) antara dua buah use case dimana fungsi yang satu adalah fungsi yang lebih umum dari lainnya, misalnya :
24
Arah panah mengarah pada use case yang menjadi generalisasinya (umum) 6.
Menggunakan / include
Relasi use case tambahan ke sebuah use case dimana
use
case
yang
ditambahkan
memerlukan use case ini untuk menjalankan fungsinya atau sebagai syarat dijalankan use case ini. Include berarti use case yang tambahan akan selalu melakukan pengecekan apakah use case yang ditambahkan telah dijalankan sebelum use case tambahan dijalankan, misal pada kasus berikut :
Arah panah include mengarah pada use case yang dipakai
2.5.2
Class Diagram Diagram kelas atau class diagram menggambarkan struktur sistem dari segi
pendefinisian kelas – kelas yang akan dibuat untuk membangun sistem (Yulianto
25
dkk, 2009). Kelas memiliki apa yang disebut atribut dan metode atau operasi. Berikut ialah penjelasannya yaitu: 1. Atribut merupakan variabel – variabel yang dimiliki oleh suatu kelas. 2. Operasi atau metode adalah fungsi – fungsi yang dimiliki oleh suatu kelas. Simbol-simbol pada Class Diagram ditunjukkan pada tabel 2.2. Tabel 2.2. Simbol Class Diagram No. 1.
Simbol
Deskripsi Package merupakan sebuah bungkusan dari
Package
satu atau lebih kelas
2.
Kelas
Kelas pada struktur sistem
3.
Antarmuka / interface
Sama
dengan
konsep
interface
dalam
pemrograman berorientasi objek
4.
Asosiasi / association
Relasi antar kelas dengan makna umum, asosiasi
biasanya
juga
disertai
dengan
multiplicity 5.
Asosiasi
berarah
/ Relasi antar kelas dengan makna kelas yang
directed association
satu digunakan oleh kelas yang lain, asosiasi biasanya juga disertai dengan multiplicity
26
6.
Generalisasi
Relasi antar kelas dengan makna generalisasispesialisasi (umum khusus)
7.
8.
Kebergantungan /
Relasi
antar
kelas
dengan
makna
dependency
kebergantungan antar kelas
Agregasi / aggregation
Relasi antar kelas dengan makna semua bagian (whole-part)
Kelas-kelas yang ada pada struktur sistem harus dapat melakukan fungsifungsi sesuai dengan kebutuhan sistem. Susunan struktur kelas yang baik pada diagram kelas sebaiknya memiliki jenis-jenis kelas berikut yaitu: 1. Kelas main Kelas yang memiliki fungsi awal dieksekusi ketika sistem dijalankan. 2. Kelas yang menangani tampilan sistem Kelas yang mendefinisikan dan mengatur tampilan ke pemakai 3. Kelas yang diambil dari pendefinisian use case Kelas yang menangani fungsi-fungsi yang harus ada diambil dari pendefinisian use case 4. Kelas yang diambil dari pendefinisian data Kelas yang digunakan untuk memegang atau membungkus data menjadi sebuah kesatuan yang diambil maupun akan disimpan ke basis data.
Jenis-jenis kelas di atas juga dapat digabungkan satu sama lain sesuai dengan pertimbangan yang dianggap baik asalkan fungsi – fungsi yang sebaiknya ada pada struktur kelas tetap ada. Susunan kelas juga dapat ditambahkan kelas utilitas seperti koneksi ke basis data, membaca file teks, dan lain sebagainya sesuai kebutuhan.
27
2.5.3
Activity Diagram Diagram aktivitas atau activity diagram menggambarkan workflow (aliran
kerja) atau aktivitas dari sebuah sistem atau proses bisnis (Yulianto dkk, 2009). Yang perlu diperhatikan disini adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem. Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut yaitu: 1. Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan 2. Urutan atau pengelompokan tampilan dari sistem atau user interface dimana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan 3. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya Simbol-simbol pada Activity Diagram ditunjukkan pada tabel 2.3. Tabel 2.3. Simbol Activity Diagram No. 1.
Simbol Status awal
Deskripsi Status awal aktivitas sistem, sebuah diagram aktivitas memiliki sebuah status awal
2.
Aktivitas
Aktivitas yang dilakukan sistem, aktivitas biasanya diawali dengan kata kerja
3.
Percabangan / decision
Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu
28
4.
Penggabungan / join
Asosiasi penggabungan dimana lebih dari satu aktivitas digabungkan menjadi satu
5.
Status akhir
Status akhir yang dilakukan sistem, sebuah diagram aktivitas memiliki sebuah status akhir
6.
Swimlane
Memisahkan
organisasi
bisnis
yang
bertanggung jawab terhadap aktivitas yang terjadi
Atau
2.5.4
Sequence Diagram Sequence Diagram menggambarkan kelakuan/perilaku objek pada use case
dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek (Yulianto dkk, 2009). Oleh karena itu untuk menggambar diagram sekuen maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu.
29
Banyaknya diagram sekuen yang harus digambar adalah sebanyak pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram sekuen sehingga semakin banyak use case yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak. Simbol-simbol pada Sequence Diagram ditunjukkan pada tabel 2.4. Tabel 2.4. Simbol Sequence Diagram No. 1.
Simbol Aktor
Deskripsi Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar system informasi yang akan dibuat itu sendiri, jadi walaupun
Atau
simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang; biasanya dinyatakan menggunakan kata benda di awal frase nama aktor
2.
Garis hidup/ Lifeline
Menyatakan kehidupan suatu objek
3.
Objek
Menyatakan objek yang berinteraksi pesan
4.
Waktu aktif
Menyatakan objek dalam keadaan aktif dan berinteraksi pesan
30
5.
Pesan tipe create
Menyatakan suatu objek membuat objek yang lain, arah panah mengarah pada objek yang dibuat
6.
Pesan tipe call
Menyatakan
suatu
objek
memanggil
operasi/metode yang ada pada objek lain atau dirinya sendiri,
arah panah mengarah pada objek yang memiliki
operasi/metode,
memanggil
karena
operasi/metode
ini maka
operasi/metode yang dipanggil harus ada pada diagram kelas sesuai dengan kelas objek yang berinteraksi 7.
Pesan tipe send
Menyatakan
bahwa
suatu
objek
mengirimkan data/ masukan/ informasi ke objek lainnya, arah panah mengarah pada objek yang dikirimi 8.
Pesan tipe return
Menyatakan bahwa suatu objek yang telah menjalankan suatu operasi atau metode menghasilkan suatu kembalian ke objek tertentu, arah panah mengarah pada objek yang menerima kembalian
9.
Pesan tipe destroy
Menyatakan suatu objek mengakhiri hidup objek yang lain, arah panah mengarah pada objek yang diakhiri, sebaiknya jika ada create maka ada destroy
31
2.6. Teknik Pengujian Perangkat Lunak Pengujian perangkat lunak dilakukan pada tiap fase pengembangan perangkat lunak mulai dari fase definisi kebutuhan sampai implementasi. Terdapat 4 teknik pengujian, yaitu Static Testing, White Box Testing, Black Box Testing, dan Performance Testing (Everett & McLeod Jr., 2007).
2.6.1. Static Testing Static Testing merupakan pengujian yang dilakukan terhadap dokumentasi yang dilakukan pada tahap pengembangan sistem. Dokumentasi ini berasal dari tiap fase pengembangan sistem yaitu definisi kebutuhan, desain, implementasi, pengujian, dan pemeliharaan. Pengujian terhadap dokumentasi tersebut dilakukan dengan 3 cara yaitu 1.
Desk checking merupakan pengujian dokumentasi yang dilakukan oleh pembuat dokumen itu sendiri.
2.
Inspections merupakan pengujian dokumentasi yang dilakukan oleh 2 orang dalam 1 tim pengembangan sistem, yaitu penulis dokumen sendiri dan misalnya anggota senior dari tim pengembang.
3.
Walk-throughs merupakan pengujian dokumentasi yang dilakukan oleh beberapa tim pengembang, misalnya fasilitator, penulis dokumen, staf bisnis, atau technical staf senior.
2.6.2. White Box Testing White Box Testing merupakan sebuah pengujian yang dilakukan terhadap source code dari program. White Box Testing dilakukan oleh tester dengan cara melakukan pengujian terhadap setiap fungsi code. Salah satu metode yang digunakan dalam White Box Testing adalah pengujian basis path testing atau disebut dengan Cylomatic Complexity. Dalam pelaksanaan White Box Testing, berikut langkah yang dilakukan (Pressman, 2010): a. Menggambar flowgraph yang ditransfer oleh flowchart. b. Menghitung Cylomatic Complexity V (G) untuk flowgraph yang telah dibuat. V(G) untuk flowgraph dapat dihitung dengan rumus:
32
V(G) = E – N + 2 Keterangan: E = Jumlah edge pada flowrgaph N = Jumlah node pada flowrgaph c. Menentukan jalur pengujian dari flowgraph yang berjumlah sesuai dengan Cyclomatic Complexity yang telah ditentukan. Cyclomatic complexity yang tinggi menunjukkan prosedur kompleks yang sulit untuk dipahami, diuji dan dipelihara. Ada hubungan antara cyclomatic complexity dan resiko dalam suatu prosedur. Berikut hubungan antara cyclomatic complexity dan resiko dalam suatu prosedur.
Tabel 2.5. Hubungan Cyclomatic Complexity dan Resiko Cyclomatic Complexity
Evaluasi Resiko
1-10
Sebuah program sederhana, tanpa banyak resiko
11-20
Agak kompleks, resiko sedang
21-50
Kompleks, program resiko tinggi
Lebih dari 50
Program belum diuji (resiko sangat tinggi)
2.6.3. Black Box Testing Black Box Testing adalah pengujian yang dilakukan saat tester tidak memiliki source code, hanya code yang bisa dieksekusi. Black Box Testing dilakukan dengan menjalankan aplikasi dan melakukan apa yang bisa dikerjakan oleh aplikasi untuk menguji tingkah laku dari sistem. Black Box Testing berfokus pada kebutuhan fungsional perangkat lunak. Dengan demikian, Black Box Testing memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu untuk program. Black Box Testing berusaha menemukan kesalahan dalam beberapa kategori diantaranya fungsi-fungsi yang tidak benar atau hilang, kesalahan interface, kesalahan dalam struktur data atau akses database eksternal, dan kesalahan kinerja.
33
2.6.4. Performance Testing Performance Testing merupakan teknik pengujian yang dilakukan apabila perangkat lunak telah berjalan dengan benar. Pengujian ini dilakukan bukan untuk menguji kebenaran dari sistem melainkan hasil dan waktu respon dari perangkat lunak. Tester menguji perangkat lunak mulai dari saat tidak bekerja (idle) hingga saat puncak performa dari perangkat lunak tersebut. Performance Testing ini berbeda dengan White Box Testing dan Black Box Testing, apabila kecacatan ditemukan pada White Box Testing atau Black Box Testing maka akan dilakukan koreksi
program,
namun
Performance
Testing
akan
lebih
memeriksa
kemampuannya perangkat lunak terhadap hardware, dimana kecacacatan dalam Performance Testing akan membuat tim pengembang menyarankan pembelian hardware yang lebih memadai untuk aplikasinya.
2.7. Precision, Recall, dan NIAP Pada ilmu IR, keakuratan menjadi hal yang penting karena pengguna mengharapkan informasi yang didapat sesuai dengan yang diinginkan. Salah satunya menggunakan parameter precision dan recall (Manning et al, 2008). Precision merupakan salah satu parameter pengukuran hasil retrieval terhadap dokumen. Precision dapat diartikan sebagai kecocokan antara permintaaan informasi dengan respon dari permintaan tersebut. Precision dapat dihitung dengan: 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 =
𝑗𝑢𝑚𝑙𝑎ℎ 𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑟𝑒𝑙𝑒𝑣𝑎𝑛 𝑦𝑎𝑛𝑔 𝑡𝑒𝑟𝑎𝑚𝑏𝑖𝑙 𝑗𝑢𝑚𝑙𝑎ℎ 𝑠𝑒𝑙𝑢𝑟𝑢ℎ 𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑦𝑎𝑛𝑔 𝑡𝑒𝑟𝑎𝑚𝑏𝑖𝑙
Sedangkan recall merupakan parameter yang didapat dari jumlah dokumen terambil yang relevan dibagi dengan keseluruhan jumlah dokumen yang relevan. Recall digunakan untuk melakukan pengukuran terhadap tingkat keberhasilan sistem dalam mengenali suatu dokumen yang relevan terhadap query. 𝑅𝑒𝑐𝑎𝑙𝑙 =
𝑗𝑢𝑚𝑙𝑎ℎ 𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑟𝑒𝑙𝑒𝑣𝑎𝑛 𝑦𝑎𝑛𝑔 𝑡𝑒𝑟𝑎𝑚𝑏𝑖𝑙 𝑗𝑢𝑚𝑙𝑎ℎ 𝑠𝑒𝑙𝑢𝑟𝑢ℎ 𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑟𝑒𝑙𝑒𝑣𝑎𝑛 𝑑𝑎𝑙𝑎𝑚 𝑘𝑜𝑙𝑒𝑘𝑠𝑖
Selain menggunakan parameter precision dan recall, performa sistem IR juga dapat dievaluasi menggunakan Non Interpolated Average Precision atau yang
34
selanjutnya disebut NIAP. NIAP merupakan penggabungan dari precision dan recall yang digunakan untuk mengukur tingkat keberhasilan dari sistem IR dalam meranking dokumen hasil pencarian. NIAP menghitung kinerja sistem berdasarkan rata-rata presisinya saat suatu dokumen relevan ditemukan. Jadi saat suatu dokumen relevan ditemukan, nilai presisi dokumen tersebut akan dihitung. Kemudian seluruh nilai presisi tersebut akan dijumlahkan dan dibagi dengan jumlah dokumen relevan dalam koleksi dokumen (Mandala, 2006). 𝑛
𝑁𝐼𝐴𝑃 = ∑ 𝑖=1
𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 𝑝𝑎𝑑𝑎 𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑘𝑒 𝑖 𝑗𝑢𝑚𝑙𝑎ℎ 𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑟𝑒𝑙𝑒𝑣𝑎𝑛 𝑑𝑎𝑙𝑎𝑚 𝑘𝑜𝑙𝑒𝑘𝑠𝑖
Dimana n menunjukkan jumlah dokumen yang dicari hingga seluruh dokumen relevan ditemukan. Nilai NIAP tertinggi adalah 1, yang berarti seluruh dokumen relevan berhasil ditemukan dengan seluruh dokumen relevan tersebut ditempatkan pada urutan teratas pada hasil pencarian. Contoh: Misalkan terdapat 2 sistem IR yang hendak diukur performansinya. Diketahui juga sebuah query dan keseluruhan dokumen yang relevan terhadap query dalam koleksi adalah dokumen ke-1 (D1), dokumen ke-5 (D5), dokumen ke-8 (D8), dokumen ke10 (D10). Kedua sistem IR memberikan hasil berupa ranking dokumen relevan sebagai berikut. Hasil Ranking Sistem IR ke 1
Hasil Ranking Sistem IR ke 2
1. Dokumen ke 99
1. Dokumen ke 1
2. Dokumen ke 95
2. Dokumen ke 5
3. Dokumen ke 88
3. Dokumen ke 8
4. Dokumen ke 71
4. Dokumen ke 10
…
…
997. Dokumen ke 1
997. Dokumen ke 99
998. Dokumen ke 5
998. Dokumen ke 95
999. Dokumen ke 8
999. Dokumen ke 34
1000. Dokumen ke 10
1000. Dokumen ke 43
35
4
4
4
4
Sistem IR ke 1 memberikan nilai 𝑟𝑒𝑐𝑎𝑙𝑙 = 4 = 1, 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 1000 = 0,004 Sistem IR ke 2 memberikan nilai 𝑟𝑒𝑐𝑎𝑙𝑙 = 4 = 1, 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 1000 = 0,004 Namun Jika dilihat dari hasil ranking menunjukkan bahwa sistem IR ke 2 lebih baik dari sistem IR ke 1 karena dokumen relevan terdapat pada urutan ke 1, ke 2, ke 3, dan ke 4. Apabila nilai NIAP dihitung untuk kedua sistem IR di atas, diperoleh: Sistem IR ke 2 memberikan nilai 𝑁𝐼𝐴𝑃 =
1 2 3 4 + + + 1 2 3 4
4 1
Sistem IR ke 1 memberikan nilai 𝑁𝐼𝐴𝑃 = 997
+
=1
2 3 4 + + 998 999 1000
4
= 0,0025
Jadi NIAP sistem IR ke 2 jauh lebih besar daripada NIAP sistem IR ke 1 dengan kata lain performansi sistem IR ke 2 lebih baik daripada sistem IR ke 1.
2.8. Tinjauan Studi a.
Lower-Bounding Term Frequency Normalization (Lv & Zhai, 2011) Pada penelitian ini, peneliti mengemukakan pendapat bahwa dari model
retrieval yang ada saat ini masih memiliki beberapa kekurangan dimana metode yang dibahas pada penelitian ini adalah BM25, PL2 Method, Dirichlet Prior Method (Dir), dan Pivoted Normalization Method (Piv). Kekurangan tersebut adalah komponen dari normalisasi Term Frequency (TF) berdasarkan panjang dokumen tidak dibatasi (lower-bounded) dengan benar. Hal ini dapat menyebabkan dokumen yang memiliki document length panjang cenderung diabaikan. Untuk mengatasi masalah ini peneliti mengusulkan metode yang efisien untuk memberikan batas bawah yang cukup besar untuk normalisasi TF. Dari hasil penelitian, metode yang diusulkan tidak menyebabkan perubahan perhitungan komputasi yang signifikan. Hasil metode baru tersebut salah satunya adalah BM25+.
36
b. TUNING PARAMETER DALAM FUNGSI OKAPI BM25 PADA MESIN PENCARI TEKS BAHASA INDONESIA (Saputra, 2013) Pada penelitian ini, peneliti melakukan analisis tuning parameter terhadap parameter bebas dari metode BM25 yaitu b , k1 dan k3 . Tuning parameter sendiri merupakan suatu variabel yang dapat diubah-ubah nilainya sesuai dengan kebutuhan dengan tujuan untuk mendapatkan hasil pencarian yang lebih baik. Tujuan dari penelitian ini adalah seberapa besar pengaruh modifikasi nilai dari tuning parameter yang ada dalam fungsi kesamaan OKAPI BM25 terhadap evaluasi dari hasil pencarian. Selain itu juga akan dibandingkan kinerja antara model peluang dengan model lain yaitu model ruang vektor dalam pencarian dokumen yang menggunakan Bahasa Indonesia. Kesimpulan dari peneletian ini bahwa nilai Average Precision (AVP) pada metode BM25 sebelum dilakukan tuning dan sesudah dilakukan tuning mengalami peningkatan yaitu dari 0,5885 menjadi 0,5901 yang dicapai pada nilai k1 1,0 dan b 0,45 .