BAB 2
TINJAUAN PUSTAKA
2.1 Information Retrieval
Information Retrieval (IR) dapat didefinisikan sebagai penerapan teknologi komputer untuk perolehan, pengorganisasian, penyimpanan, pencarian dan pendistribusian informasi. IR adalah sebuah aktivitas, dan seperti aktivitas lainnya IR juga memiliki tujuan. Contoh sederhana dari IR adalah ketika orang mencari informasi menggunakan search engine dengan memberikan query untuk mendapatkan informasi yang diinginkan. Query yang diberikan belum tentu memberikan hasil pencarian yang baik. Walaupun begitu, query hanya sebagai kata kunci untuk sebuah search engine dalam melakukan pencarian untuk mendapatkan hasil yang diinginkan oleh orang tersebut (Jackson dan Moulinier, 2002).
Information Retrieval adalah menemukan bahan (biasanya dokumen) dari suatu keadaan yang tidak terstruktur (biasanya teks) yang memenuhi kebutuhan informasi dari dalam kumpulan data yang besar (biasanya disimpan didalam komputer). Bidang IR juga mencakup dukungan dalam mencari ataupun menyaring kumpulan dokumen atau pada pemroresan lebih lanjut terhadap serangkaian dokumen yang diambil (Manning et al, 2008).
2.2 Latent Semantic Analysis
Latent Semantic Analysis (LSA) adalah sebuah teori dan metode untuk menggali dan merepresentasikan konteks yang digunakan sebagai sebuah arti kata dengan memanfaatkan komputasi statistik untuk sejumlah corpus yang besar. Corpus
Universitas Sumatera Utara
adalah kumpulan teks yang memiliki kesamaan subjek atau tema. Ide yang melandasi LSA adalah kumpulan semua kata dalam konteks tertentu dimana kata yang muncul atau tidak muncul, menyediakan batasan untuk menentukan kesamaan arti dari sebuah kata dan kumpulan kata yang lainnya (Landauer et al, 1998).
Pada LSA arti dari sebuah kata direpresentasikan sebagai rata-rata dari semua bagian kata yang muncul dalam setiap kalimat. Demikian pula, makna dari sebuah kalimat adalah rata-rata dari makna semua kata yang terkandung di dalam kalimat tersebut. LSA memiliki kemampuan untuk secara bersama mendapatkan pengetahuan akan kata-kata maupun kalimat sedemikian rupa dengan menggunakan Singular Value Decomposition (SVD) sebagai pondasi matematikanya (Margaretha et al, 2008).
LSA adalah sebuah kunci alat komputasi linguistik untuk menguji secara empiris operator performa dari agregasi (Dong, 2009). LSA merupakan model linguistik yang terdiri dari hubungan terdistribusi antara kata-kata dalam sebuah corpus yang besar. LSA membangun sebuah ruang berdimensi tinggi menggunakan teknik matematika dari SVD. Hubungan terdistribusi yang terpetakan dalam ruang berdimensi tinggi ini bertujuan untuk menghasilkan sebuah struktur arti yang tersembunyi dari pola asosiatif yang ditemukan dalam sebuah representasi teks (Deerwester et al, 1990).
Proses perbandingan dengan metode LSA pada sistem ini menerima masukan berupa dokumen teks yang telah melewati pemrosesan awal sebelumnya. Pada proses perbandingan dengan metode LSA kata-kata yang unik pada setiap dokumen akan direpresentasikan
sebagai
baris
matriks
dan
dokumen-dokumen
akan
direpresentasikan sebagai kolom matriks. Nilai dari matriks tersebut adalah banyaknya kemunculan sebuah kata di setiap dokumen yang akan dibandingkan. Berikut ini diberikan contoh data dari dokumen-dokumen dan matriks kata-dokumen yang diambil dari (Landauer et al, 1998).
Universitas Sumatera Utara
Gambar 2.1 Contoh Teks Untuk LSA (Landauer et al, 1998, Hal:10)
Pada Gambar 2.1 terdapat 9 judul teks yang masing-masing dianggap sebagai sebuah dokumen. Dokumen yang namanya diawali huruf "c" berisi judul dengan topik interaksi manusia-komputer sedangkan dokumen yang namanya diawali huruf "m" berisi judul dengan topik graph. Kata-kata yang dimasukkan kedalam matriks hanya kata-kata yang dicetak miring, yaitu kata yang setidaknya muncul dua kali pada dokumen yang berbeda. Hasil representasi matriks ini dapat dilihat pada Gambar 2.2.
Gambar 2.2 Contoh Matriks Kata-Dokumen (Landauer et al, 1998, Hal:10)
Untuk meningkatkan performa dari metode LSA ini dapat dilakukan pembobotan pada nilai matriks kata-dokumen. Sebuah metode pembobotan merupakan gabungan dari beberapa pembobotan, antara lain pembobotan lokal (local weighting), pembobotan global (global weighting), dan normalisasi (normalization)
Universitas Sumatera Utara
(Hermawandi, 2008). Dengan menggunakan metode pembobotan yang tepat dapat meningkatkan performansi metode LSA. Pembobotan dapat dirumuskan melalui Persamaan (1).
Aij = L(i, j) x G(i) x N(j)
(1)
(Hermawandi, 2008)
L(i, j) merupakan bobot lokal untuk kata kunci i dalam dokumen j. G(i) merupakan bobot global untuk kata kunci i, dan N(j) adalah faktor normalisasi dokumen j. Aij adalah nilai matriks yang baru berdasarkan hasil perhitungan pembobotan. Bobot lokal adalah fungsi dari berapa banyak setiap kata kunci yang muncul dalam sebuah dokumen. Bobot global adalah fungsi dari berapa banyak setiap kata kunci muncul dalam sebuah dokumen. Faktor normalisasi digunakan untuk mengkompensasi perbedaan panjang-panjang dokumen. Normalisasi sebenarnya tidak terlalu perlu karena tidak mempengaruhi urutan relevansi akhir terhadap dokumen (Hermawandi, 2008).
Untuk metode pembobotan pada skripsi ini digunakan metode pembobotan lokal Log dan metode pembobotan global Entropy yang rumusnya dapat dilihat pada persamaan berikut.
(2) dimana
(3)
(Chisholm & Kolda, 1999)
Persamaan (2) merupakan rumus pembobotan lokal Log dan persamaan (3) merupakan rumus pembobotan global Entropy. tfij merupakan kemunculan sebuah kata i pada dokumen j dan gfi merupakan kemunculan sebuah kata i pada semua dokumen. n adalah jumlah dokumen. Setelah matriks kata-dokumen selesai dilakukan pembobotan, maka langkah selanjutnya adalah menerapkan teknik Singular Value Decomposition (SVD) pada matriks kata-dokumen tersebut.
Universitas Sumatera Utara
Teknik SVD yang digunakan pada LSA adalah reduced SVD, dimana akan dilakukan proses pengurangan dimensi (dimensionality reduction) pada matriks hasil dekomposisi SVD. Pengurangan dimensi yang dilakukan dimaksudkan sebagai sebuah noise reduction process, sehingga dapat diperoleh representasi matriks latent semantic yang bebas dari noise dimension (Adhitia, 2009).
Dari matriks-matriks hasil dekomposisi SVD terdapat 3 jenis operasi perbandingan yang dapat dilakukan yaitu: 1.
Membandingkan dua kata Koordinat dari suatu kata pada semantic space direpresentasikan oleh vektor baris dari matriks U x S yang bersesuaian dengan kata tersebut. Untuk menentukan kemiripan antara dua kata menggunakan metode cosine similarity dengan menghitung sudut antara kedua koordinat kata.
2.
Membandingkan dua dokumen Koordinat suatu dokumen pada semantic space direpresentasikan oleh vektor baris dari matriks V x S yang bersesuaian dengan dokumen tersebut. Untuk menentukan kemiripan antara dua dokumen menggunakan metode cosine similarity dengan menghitung sudut antara kedua koordinat dokumen.
3.
Membandingkan kata dengan dokumen Berbeda dari dua operasi sebelumnya yang memerlukan penghitungan cosine similarity, untuk membandingkan kata i dengan dokumen j dapat diketahui dari nilai cell(i, j) dari matriks aproksimasi kata-dokumen yang didapat dari perhitungan SVD. (Deerwester et al,1990)
Pada metode cosine similarity, semakin besar sudut antara dua koordinat kata maupun dokumen yang dihitung, maka semakin kecil kemiripan antara dua kata maupun dokumen yang dihitung tersebut. Sedangkan jika semakin kecil maka semakin besar kemiripannya. Metode cosine similarity bekerja dengan cara menghitung nilai kosinus dari kedua sudut koordinat kata maupun dokumen pada sebuah dimensi (Sarwar et al, 2001). Kemiripan antara koordinat i dan j dapat dilihat sebagai berikut.
Universitas Sumatera Utara
(4) (Sarwar et al, 2001)
Untuk menghitung kemiripan antara kata maupun dokumen, misalnya i dan j. Maka akan dihitung nilai kosinus dari kedua vektor i dan j. Nilai dari cosine similarity merupakan hasil bagi antara dot product antara kedua vektor dengan perkalian norm product dari kedua vektor. Dalam cosine similarity digunakan Eucledian norm, dimana
.
2.2.1 Singular Value Decomposition
Metode LSA menggunakan metode Singular Value Decomposition (SVD) pada matriks kata-dokumen untuk membentuk suatu semantic space dimana kata-kata dan dokumen-dokumen yang hampir sama diletakkan berdekatan satu sama lain (Deerwester et al, 1990).
SVD berkaitan erat dengan faktorisasi eigenvalue-eigenvector matriks yang simetris:
. Ada eigenvalue yang terdapat pada matriks , dan eigenvector karena eigenvetor dari sebuah matriks
dari matriks Q yang orthogonal:
simetris dapat dipilih orthonormal. Untuk banyak matriks-matriks hal ini tidak dapat dilakukan dan untuk matriks persegi sangat mustahil. Tetapi jika kita membuat matriks Q disebelah kiri dan matriks
disebelah kanan untuk membuat dua matriks
yang orthogonal yang belum tentu keduanya ditranspose, maka proses faktorisasi menjadi mungkin. Selanjutnya matriks diagonal (tetapi persegi) ditengah-tengah dapat dibuat menjadi tidak negatif. Dilambangkan dengan∑ dan memiliki inputan positif (dapat disebut sigma) akan menjadi
. Sigma adalah singular value dari
matriks A. Sigma tersebut mengisi sebanyak r posisi di diagonal dari matriks ∑ dan r adalah rank dari matriks A (Strang, 1988).
Sebuah matriks A berukuran m x n dapat difaktorkan menjadi . Kolom dari matriks
(m x m) adalah
Universitas Sumatera Utara
eigenvector dari matriks
, dan kolom dari matriks
(n x n) adalah eigenvector
. r singular values dalam diagonal dari matriks∑( m x n) adalah akar
dari matriks
kuadrat dari eigenvalues yang tidak bernilai 0 dari kedua matriks
dan
(Strang,
1988).
Dimulai dengan matriks 2 x 2. Rank dari matriks tersebut r = 2, jadi matriks tersebut invertible. Row space adalah bidang dari
. Kita mau
dan
untuk
menjadi unit vektor yang saling tegak lurus, secara orthonormal. Unit vektor dan
=
terdiri dari panjang dari
akan menjadi orthonormal. Sebuah vektor dasar dan
dan
=
. Singular values dari
dan
adalah
.
Persamaan untuk SVD dapat dituliskan sebagai berikut. (5) (Strang, 2003) Dimana: U : matriks orthogonal berukuran m x m, yang merupakan eigenvector AAT : matriks diagonal berisi singular value berukuran m x n, yang merupakan akar pangkat dua eigenvalue dari
dan
: matriks orthogonal berukuran n x n, yang merupakan eigenvector
2.3 Algoritma Sherlock
Algoritma ini digunakan untuk membandingkan dokumen yang dicurigai melakukan plagiat pada tingkat kalimat dan telah diimplementasikan sebagai komponen pada sistem pendeteksi plagiat untuk mendeteksi kemiripan dalam bahasa biasa (natural language) maupun terhadap bahasa pemrograman. Algoritma ini mampu mendeteksi perubahan-perubahan dalam kalimat yang cukup membingungkan (seperti prafrase, penataan kembali, penggabungan dan pemisahan kalimat) dan juga penyalinan langsung. Algoritma yang telah diimplementasikan ini juga telah berhasil mendeteksi
Universitas Sumatera Utara
plagiat pada ujian nyata yang dilakukan di University of Warwick (White & Joy, 2004).
Algoritma ini pertama kali dibuat untuk memeriksa source code yang dibuat oleh mahasiswa apakah ada yang melakukan plagiat atau tidak (Joy & Luck, 1999). Kemampuan untuk mendeteksi kemiripan sebuah program harus mampu menentukan ada atau tidaknya pasangan dari program yang mirip.
Dokumen yang diperiksa akan dipecah menjadi bagian-bagian kalimat. Setiap kalimat dianggap sebagai komponen dari bahasa alami, yang hampir sama dengan statement dalam bahasa pemrograman. Setiap dokumen yang akan dibandingkan akan dipisahkan menjadi kalimat-kalimat, yang secara langsung mengandung kata-kata yang ditemukan dalam kalimat asli dari sumber teks. Setelah itu maka akan dilakukan tiga langkah untuk memproses kalimat-kalimat tersebut, yaitu: a. Semua kata ditransformasikan kedalam bentuk huruf kecil untuk menghemat waktu dalam perbandingan. b. Kata-kata yang dianggap terlalu banyak muncul dan tidak terlalu berarti tidak disimpan. c. Membuang kata-kata yang duplikat yang ada dalam sebuah kalimat.
Pada proses perbandingan antar dokumen maka akan dilakukan perbandingan setiap kalimat dalam sebuah dokumen dengan setiap kalimat pada dokumen lainnya. Perbandingan dilakukan dengan menghitung similarity score, berdasarkan word count metric. Skor dari hasil perbandingan adalah rata-rata nilai kemiripan antara kalimat yang dibandingkan. Contoh cara kerja algoritma Sherlock seperti yang dipaparkan oleh (White & Joy, 2004) dapat dibawah ini. • • •
•
Sentence 1: "the brown dog was feeling very tired" Sentence 2: "While the grey cat was full of energy, the brown dog was feeling very tired" (Common and repeated words removed) SentenceObject 1: {brown, dog, was, feeling, very, tired} SentenceObject 2: {while, grey, cat, was, full, energy, brown, dog, feeling, very, tired} The objects have 6 words in common, which is 100% of Sentence 1 but only 55% of Sentence 2. Average similarity is 77.5%.
Universitas Sumatera Utara
Seperti yang telah dipaparkan sebelumnya ada beberapa langkah awal yang harus diterapkan pada kalimat yang mau dibandingkan yang dapat kita lihat pada contoh diatas. Setelah proses awal terhadap kalimat dilakukan barulah proses perhitungan similarity score dilakukan. Perhitungan similarity score dilakukan dengan menghitung ada berapa kata yang sama dalam kedua kalimat dan dibandingkan dengan banyak kata pada kedua dokumen. Setelah itu diambil nilai rata-ratanya sebagai similarity score. Berikut ini adalah pseudocode untuk algoritma perbandingan dokumen yang dipaparkan oleh (White & Joy, 2004).
Document[] docs = readDocsFromDisk(); for each Document, i in docs { for each Document, j, following i in docs { compareSentence(docs[i], docs[j]); } } compareSentence(Document doc1, Document doc2){ for each sentence, i, in doc1 { for each sentence, j, in doc2 { int common = number of shared words; int score = similarityScore(i, j, common); //lihat contoh if (score > SIM_THRESHOLD || common > COM_THRESHOLD) storeLink(sent1, sent2, score); } } }
Skor dari setiap perbandingan diberikan ke masing-masing dokumen sehingga dapat dilakukan perbandingan dengan dokumen-dokumen yang lain. Ada dua cara menurut Joy dan White (2004) untuk menghitung kesamaan dokumen. Yang pertama membuat skor perbandingan menjadi nilai kemiripan antara dokumen-dokumen tersebut. Cara kedua adalah dengan mengalikan total skor perbandingan sebagai persentase total yang berasal dari dokumen-dokumen yang mirip.
2.4 Stemming dan Pembuangan stopwords
Stemming adalah proses pemetaan variansi morfologikal kata dalam kata dasar atau kata umumnya (stem) (Adhitia, 2009). Misalnya kata "perancangan" dan "merancang" akan diubah menjadi sebuah kata yang sama, yaitu "rancang". Proses stemming sangat tergantung kepada bahasa dari kata yang akan di-stem. Hal ini dikarenakan, dalam
Universitas Sumatera Utara
melakukan proses stemming harus mengaplikasikan aturan morfologikal dari suatu bahasa.
Kebanyakan bahasa memiliki kata fungsi dan kata sambung seperti artikel dan preposisi yang hampir selalu muncul pada dokumen teks. Biasanya kata-kata ini tidak memiliki arti yang lebih di dalam memenuhi kebutuhan seorang pencari di dalam mencari informasi. Kata-kata tersebut (misalnya a, an, the, on pada bahasa Inggris) disebut sebagai Stopwords (Chakrabarti, 2003). Pembuangan Stopwords dapat mengurangi besar dari index space dan meningkatkan performa dalam pemrosesan lebih lanjut.
Aturan imbuhan yang digunakan pada Bahasa Indonesia lebih kompleks, tidak seperti aturan imbuhan Bahasa Inggris. Pada Bahasa Indonesia terdapat aturan imbuhan yang lebih kompleks yang meliputi awalan, akhiran, sisipan, dan konfiks (kombinasi dari awalan dan akhiran).
Banyak penelitian yang dilakukan untuk menemukan algoritma stemming yang tepat dan bagus dalam Bahasa Indonesia, antara lain algoritma Nazief & Adriani, algoritma Arifin & Setiono, dan algoritma Vega (Asian et al, 2005) . Menurut penelitian Jelita Asian sebagaimana disebutkan dalam (Novanta, 2009) menyatakan berdasarkan aturan morfologi Bahasa Indonesia dapat dinyatakan bahwa algoritma Nazief & Adriani adalah algoritma yang memiliki hasil terbaik. Nazief & Adriani menyimpulkan sebuah kata dasar dapat ditambahkan imbuhan berupa derivation prefix (DP) di awal dan/atau diakhiri secara berurutan oleh derivation suffix (DS), possesive pronoun (PP), dan particle (P) yang masing-masing bersifat optional. Keterangan diatas dirumuskan pada Gambar 2.3.
DP + DP + DP + root word + DS + PP + P Gambar 2.3 Format Kata Berimbuhan dalam Bahasa Indonesia
Adapun langkah-langkah yang digunakan oleh algoritma Nazief dan Adriani yaitu sebagai berikut:
Universitas Sumatera Utara
1. Kata dicari di dalam daftar kamus. Bila kata tersebut ditemukan di dalam kamus, maka dapat diasumsikan kata tersebut adalah kata dasar sehingga algoritma dihentikan. 2. Bila kata di dalam langkah pertama tidak ditemukan di dalam kamus, maka diperiksa apakah sufiks tersebut yaitu sebuah partikel (“-lah” atau “-kah”). Bila ditemukan, maka partikel tersebut dihilangkan. 3. Pemeriksaan dilanjutkan pada kata ganti milik (“-ku”, “-mu”, “-nya”). Bila ditemukan, maka kata ganti tersebut dihilangkan. 4. Memeriksa akhiran (“-i”, “-an”). Bila ditemukan, maka akhiran tersebut dihilangkan. Hingga langkah ke-4 dibutuhkan ketelitian untuk memeriksa apakah akhiran “an” merupakan hanya bagian dari akhiran “-kan”, dan memeriksa lagi apakah partikel (“-lah”, “-kah”) dan kata ganti milik (“-ku”, “-mu”, “-nya”) yang telah dihilangkan pada langkah 2 dan 3 bukan merupakan bagian dari kata dasar. 5. Memeriksa awalan (“se-“, ”ke-“, “di-“, “te-“, “be-“, “pe-“, “me-“). Bila ditemukan, maka awalan tersebut dihilangkan. Pemeriksaan dilakukan dengan berulang mengingat adanya kemungkinan multi-prefix. Langkah ke-5 ini juga membutuhkan ketelitian untuk memeriksa kemungkinan peluluhan awalan (Tabel 2.1), perubahan prefix yang disesuaikan dengan huruf-awal kata (Tabel 2.2) dan aturan kombinasi prefix-suffix yang diperbolehkan (Tabel 2.3).
6. Setelah menyelesaikan semua langkah dengan sukses, maka algoritma akan mengembalikan kata dasar yang ditemukan.
Tabel 2.1 Daftar Prefiks yang Meluluh Jenis Prefiks
Huruf
Hasil Peluluhan
pe-/me-
K
-ng-
pe-/me-
P
-m-
pe-/me-
S
-ny-
pe-/me-
T
-n-
Universitas Sumatera Utara
Tabel 2.2 Daftar Kemungkinan Perubahan Prefiks Prefiks
Perubahan
se-
tidak berubah
ke-
tidak berubah
di-
tidak berubah
be-
ber-
te-
ter-
pe-
per-, pen-, pem-, peng-
me-
men-, mem-, meng-
Tabel 2.3 Daftar Kombinasi Prefiks dan Sufiks yang Tidak Diperbolehkan Prefix
Sufiks yang tidak diperbolehkan
be-
-i
di-
-an
ke-
-i, -kan
me-
-an
se-
-i, -kan
te-
-an
pe-
-kan
2.5 Unified Modelling Language
Unified Modelling Language (UML) adalah sebuah bahasa untuk menentukan, visualisasi, kontruksi, dan mendokumentasikan artifacts dari sistem perangkat lunak, untuk memodelkan bisnis, dan sistem non-software lainnya. UML merupakan suatu kumpulan teknik terbaik yang telah terbukti sukses dalam memodelkan sistem yang besar dan kompleks (Suhendar dan Gunadi, 2002).
UML adalah keluarga notasi grafis yang didukung oleh meta-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat lunak, khususnya sistem yang dibangun menggunakan pemrograman berorientasi objek (Fowler, 2004). UML merupakan standar yang relatif terbuka yang dikontrol oleh Object Management
Universitas Sumatera Utara
Group (OMG), yang terdiri dari banyak perusahaan. UML lahir dari penggabungan banyak bahasa pemodelan grafis berorientasi objek antara lain metode Booch oleh Graddy Booch, metode Object Modelling Technique (OMT) oleh DR. James Rumbaugh, dan metode Object Oriented Software Engineering (OOSE) oleh Ivar Jacobson. UML cocok digunakan untuk pemodelan perangkat lunak yang sudah berorientasi objek seperti Java, C++, PHP, C#, VB.NET dan AS3.
2.5.1 Komponen-Komponen Unified Modelling Language (UML)
Menurut Fowler (2003) diagram UML dibagi dalam dua kelompok besar yaitu Structure Diagram dan Behavior Diagram. Behavior diagram digunakan dalam menspesifikasikan, memvisualisasikan, membangun dan mendokumentasikan aspek dinamis dari sistem. Behavior diagram terdiri dari beberapa bagian, yaitu: a. Use Case diagram b. Sequence diagram c. Collaboration diagram d. Statechart diagram e. Activity diagram
Structure diagram digunakan dalam menspesifikasikan, memvisualisasikan, membangun dan mendokumentasikan aspek statik dari sistem. Structure diagram terdiri dari beberapa bagian, yaitu: a. Class diagram b. Object diagram c. Component diagram d. Deployment diagram
2.5.1.1 Use Case Diagram
Use case adalah sebuah teknik untuk mengetahui kebutuhan fungsional dari sebuah sistem (Fowler, 2003). Use case bekerja dengan menjelaskan interaksi yang khusus
Universitas Sumatera Utara
antara pengguna dari sebuah sistem dan sistem itu sendiri, yang memaparkan secara naratif bagaimana sebuah sistem bekerja. Sebuah skenario adalah urutan langkahlangkah yang menjelaskan sebuah interaksi antara pengguna dan sistem. Sebuah use case adalah sekumpulan skenario bersama dengan tujuan yang sama dari para pengguna. Dalam use case, pengguna diibaratkan sebagai actors. Seorang actor adalah sebuah aturan yang dijalankan oleh pengguna saat memberikan sebuah aksi kepada sistem. Contoh use case diagram dapat dilihat pada Gambar 2.4 berikut:
Gambar 2.4 Contoh use case diagram (Fowler, 2003, Hal:103)
2.5.1.2 Activity Diagram
Activity diagram menurut Fowler (2003) adalah sebuah teknik untuk mendeskripsikan prosedur logik, proses bisnis, dan alur kerja. Dalam berbagai bentuk, ini memainkan aturan yang mirip dengan flowcharts, tetapi perbedaan yang mendasar antara acitivity diagram dan flowcharts yaitu activity diagram mendukung aksi secara paralel.
Activity diagram secara grafis digunakan untuk menggambarkan rangkaian aliran aktivitas baik proses bisnis atau use case. Diagram ini juga dapat digunakan untuk memodelkan action yang dilakukan saat sebuah operasi dieksekusi, dan
Universitas Sumatera Utara
memodelkan hasil dari action tersebut. Contoh activity diagram dapat dilihat pada Gambar 2.5.
Gambar 2.5 Contoh activity diagram (Fowler, 2003, Hal:118) 2.5.1.3 Class diagram
Class diagram menurut Fowler (2003) mendeskripsikan tipe dari objek dalam sistem dan variasi jenis hubungan tetap yang ada diantara objek tersebut. Class diagram juga menunjukkan properti dan operasi dari sebuah class dan kendala yang mempengaruhi bagaimana objek terhubung.
Class diagram menunjukkan aspek statik sistem terutama untuk mendukung kebutuhan fungsional sistem. Kebutuhan fungsional berarti layanan-layanan yang harus disediakan sistem ke pemakai. Meskipun class diagram serupa dengan model
Universitas Sumatera Utara
data, namun class tidak hanya menunjukkan struktur informasi tapi juga mendeskripsikan perilaku. Contoh class diagram dapat dilihat pada Gambar 2.6.
Gambar 2.6 Contoh class diagram (Fowler, 2003, Hal:36)
2.5.1.4 Sequence Diagram
Sequence diagram digunakan untuk memodelkan skenario penggunaan. Diagram ini menampilkan beberapa contoh objek dan pesan yang dikirimkan diantara objek didalam sebuah use case. Sequence diagram menampilkan interaksi dengan menampilkan setiap participant dengan sebuah lifeline yang tergambar sampai kebatas bawah halaman dan urutan pembacaan pesannya adalah dari atas ke bawah. Kata participant berarti sebuah objek yang berinteraksi didalam sequence diagram.
Universitas Sumatera Utara
Sequence diagram menunjukkan objek sebagai garis vertikal dan tiap kejadian sebagai panah horizontal dari objek pengirim ke objek penerima. Waktu berlalu dari atas ke bawah dengan lama waktu tidak relevan. Diagram ini hanya menunjukkan barisan kejadian, bukan pewaktuan nyata. Kecuali untuk sistem waktu nyata yang mengharuskan konstrain barisan kejadian. Contoh sequence diagram dapat dilihat pada Gambar 2.7.
Gambar 2.7 Contoh sequence diagram (Fowler, 2003, Hal:54)
2.5.2 Analisis Persyaratan dengan UML
Analisis persyaratan meliputi usaha untuk mengetahui apa kemampuan sebuah sistem yang diinginkan pengguna dan pelanggan dari sebuah pembuat perangkat lunak (Fowler, 2003). Analisis ini dilakukan untuk mendapatkan informasi atau persyaratan cukup untuk mempersiapkan model yang menggambarkan apa yang diperlukan dari perspektif pengguna.
Universitas Sumatera Utara
Diagram yang digunakan dalam analisis persyaratan yaitu: 1. Use case diagram yang digunakan untuk menunjukkan fungsionalitas suatu sistem dan bagaimana sistem berinterakasi dengan dunia luar. 2. Activity diagram yang menunjukkan alur kerja (work flow) sebuah proses bisnis dan urutan aktivitas dalam suatu proses. 3. Class diagram yang membantu dalam visualisasi struktur sistem yang mendeskripsikan jenis-jenis objek dalam suatu sistem dan hubungan yang terdapat diantara objek tersebut.
2.5.3 Analisis Berorientasi Objek
Analisis berorientasi objek menurut Whitten et al (2004) adalah pendekatan pemodelan objek selama analisis dan desain sistem. Teknik analisis berorientasi objek merupakan alat terbaik yang dapat digunakan untuk sebuah proyek yang akan mengimplementasikan sistem yang menggunakan teknologi objek untuk membangun, mengelola, dan merakit objek-objek itu menjadi aplikasi komputer yang berguna. Pendekatan berorientasi objek dipusatkan pada sebuah teknik yang sering disebut pemodelan objek.
Analisis berorientasi objek dilakukan untuk mendapatkan pemahaman yang lebih baik mengenai sistem dan persyaratan fungsionalnya. Dengan kata lain, Analisis berorientasi objek mengharuskan kita untuk mengidentifikasikan kebutuhan fungsionalitas sistem dari perspektif pengguna, dan mengidentifikasi objek, atribut data objek, behavior yang diasosiasikan, dan hubungan yang mendukung fungsionalitas sistem yang dibutuhkan.
Ada tiga kegiatan umum dalam melakukan analisis berorientasi objek: a. Memodelkan fungsi sistem b. Menemukan dan mengidentifikasi objek bisnis c. Mengorganisir objek dan mengidentifikasi hubungan objek
Universitas Sumatera Utara
2.6 Format Dokumen UTF-8
UTF-8 adalah jenis format karakter yang paling sering digunakan untuk pemrograman web karena telah didukung oleh banyak browser maupun operating system (Unicode, 2010). UTF sendiri adalah salah satu dari beberapa macam representasi data Unicode. UTF merupakan singkatan dari Unicode Transmission Format. Dan 8 berarti transmisi ini menggunakan blok 8-bit untuk mewakili tiap karakter. Jumlah dari tiap blok yang diperlukan bisa bervariasi dari 1 sampai 4 blok.
Fitur yang paling bagus dari UTF-8 adalah, bahwa UTF-8 kompatibel dengan nul terminated string, yaitu karakter tidak akan memiliki byte (0) saat disandikan, yang berarti bahwa kode bahasa pemrograman C yang berhubungan dengan [] akan tetap berfungsi. Untuk setiap karakter dengan jumlah sama dengan atau dibawah 127 (hex 0x7F), representasi UTF-8 adalah satu byte, yaitu 7 bit terendah dari nilai Unicode penuh, yang juga diterapkan dalam kode ASCII.
Untuk setiap karakter dengan jumlah sama dengan atau dibawah 2047 (hex 0x07FF), representasi UTF-8 tersebar di dua byte. Byte pertama terdiri atas 2 high bit set dan bit ketiga (yaitu 0XC2 sampai 0xDF). Dan byte kedua terdiri atas bit set atas dan bit kedua (yaitu 0x80 sampai 0xBF). Dan untuk setiap karakter dengan jumlah sama dengan atau lebih besar dari 2047, dan lebih kecil dari 65535 (0xFFFF), representasi UTF-8 menyebar di tiga byte (FileFormat, 2010).
Dibawah ini adalah table yang menunjukkan format urutan byte UTF-8, dan bit bebas ditandai dengan huruf “x”, dan digabungkan dalam urutan yang benar, dan ditafksirkan dari yang paling signifikan sampai yang paling tidak signifikan.
Tabel 2.4 Format Urutan byte UTF-8 1st Byte
2nd Byte
3rd Byte
0xxxxxxx 110xxxxx
10xxxxxx
1110xxxx
10xxxxxx
10xxxxxx
Number of Free Bits
Maximum Expressible Unicode Value
7
007F hex (127)
(5+6)=11
07FF hex (2047)
(4+6+6)=16
FFFF hex (65535)
Universitas Sumatera Utara
Nilai dari setiap byte yang mengindikasikan individu UTF-8 fungsi, sebagai berikut: a. 00 untuk 7F hex (0 sampai 127): pertama dan satu-satunya byte berurutan. b. 80 ke hex BF (128-191): byte terus dalam urutan multi-byte. c. C2 ke hex DF (194-223): byte pertama dari urutan dua-byte. d. E0 ke hex EF (224-239): byte pertama dari urutan tiga-byte.
Contoh karakter Unicode dikodekan (dalam notasi heksadesimal) diperlihatkan pada Tabel 2.5.
Tabel 2.5 Contoh karakter Unicode dikodekan (dalam notasi heksadesimal) 16-bit Unicode
UTF-8 Sequence
0001
01
007F
7F
0080
80 C2
07FF
DF BF
800
E0 80 A0
FFFF
EF BF BF EF BF BF
Universitas Sumatera Utara