• Tidak ada hasil yang ditemukan

3.3 Perancangan Sistem

3.3.2 Bagan Alir Program

pada mediaplayer

9. Sistem memutar lagu 10. Aktor mengeksekusi tombol stop

pada mediaplayer

11. Sistem berhenti memutar lagu

3.3.2 Bagan Alir Program

Bagan alir program (program Flowchart ) merupakan bagan yang menjelaskan secara rinci langkah-langkah dari proses program. Bagan ini terdiri dari dua macam, yaitu bagan blok digaram dan alir logika program (program logic Flowchart . Bagan blok digaram digunakan untuk menjelaskan urutan langkah proses dalam program. Bagan alir program digunakan untuk menggambarkan tiap-tiap langkah di dalam program komputer secara logika.

3.3.2.1. Algoritma proses indexing

Proses indexing berfungsi untuk mengolah dokumen teks baru untuk disimpan ke database sehingga dapat mendukung proses pencarian dokumen. Proses indexing dokumen dalam mesin pencari data lirik dan lagu dalam koleksi lagu digambarkan dalam ilustrasi gambar 3.10 dibawah ini:

38 Dokumen -- - ---- ---- -- --- --- --- --- ---Pemotongan dokumen perkata Kata xxx yyy pencarian ….. Kata xxx yyy Stoplist Kata xxx yyy pencarian ….. Kata X

X bentuk kata dasar Merubah kata ke

(stemming) Kata cari ….. Kata Menghitung jumlah kemunculan kata Kata cari ….. 2 1 n Nama Dokumen

Copy Dokumen ke lokasi yang ditentukan

Dok1 Dok2 Dokumen Simpan nama dokumen ke

database Ambil nama dokumen

Kata cari Term Simpan daftar kata ke

database Hapus

Stopword

Gambar 3.2 Ilustrasi Proses Indexing

Proses indexing terhadap dokumen yang baru masuk terbagi dalam 4 proses yang digambarkan dalam gambar blok diagram 3.8 dibawah ini:

39 ID F N o rma lisa si STOPLIST Dokumen Perhitungan Bobot Normalisasi TERM BO BO T N o rma lisa si Perhitungan Term Frekuensi Parsing kedalam array Penghapusan Stopword Filtering Stemming

40 Berikut ini adalah penjelasan untuk setiap proses dalam proses indexing dokumen:

1. Parsing ke dalam array

Proses ini berfungsi untuk memotong-motong dokumen kata per kata dan menyimpannya ke dalam array.

Pemenggalan per kata (parsing) dalam dokumen / query

Input dokumen / query i = 0 ReadFile()

For i to size(ReadFile())

Tampung hasil dalam array Increment i i Return array false true

41 2. Proses penghapusan stopword dari array

Proses ini digunakan untuk menghapus kata-kata yang „tidak relevan’ dari array. Kata dalam array dibandingkan dengan table Stopword yang ada dalam database, jika ditemukan kata dalam array yang ada dalam table Stopword kata tersebut akan dihapus dari array. Proses pencocokan dan penghapusan dilakukan dari data pertama sampai terakhir dalam array.

42

Remove Stopword dari array

Kata - array[i] i to jumlah array

j to jumlah stopword

If kata = stopword[ j]

j

Jadikan kata array [i] sebagai kata

penting

i

Return seluruh kata penting dari dokumen / query

yang dipilih

Remove array [i] true

true

false false

43 3. Proses TermFiltering

Pada proses ini daftar kata dalam array yang telah melalui proses perhitungan term frekuensi akan disimpan ke dalam database. Tiap kata dalam array akan dicocokkan dengan daftar Term dalam tabel ta_term. Jika kata sudah terdapat dalam dalam tabel ta_term, maka kata, frekuensi kemunculan, dan nama dokumen akan disimpan dalam tabel List_Term dengan ID sesuai dengan ID dalam tabel Term dan meng-update jumlah dokumen frekuensi dalam tabel Term yang sesuai dangan kata dalam array. Sementara jika kata dalam array tidak ditemukan maka kata akan disimpan kedalam tabel Term sebagai record baru dengan ID baru, dan nilai dokumen frekuensi 1. Kemudian kata, frekuensi kemunculan, dan nama dokumen akan disimpan dalam tabel -List_Term dengan ID sesuai dengan ID dalam tabel Term. Proses pencocokan dan penyimpanan dilakukan dari data pertama sampai terakhir dalam array.

44

Filtering kata arrayTF

Kata - arrayTF[i] i to jumlah arrayTF j to jumlah term dalam database Stoplist() If kata = term[ j] j Input database true true false false End Process

Gambar 3.6 Flowchart diagram proses term filtering

4. Proses Stemming

Proses ini digunakan untuk mencari kata dasar dari kata yang ada dalam array, proses stemming menggunakan algoritma Porter Stemmer for Bahasa Indonesia yang di terapkan di dalam kelas Tokenizer() milik Bapak Puspaningtyas Sanjaya Adi, S.T, M.T.

45 Proses ini digunakan untuk menghitung jumlah kemunculan kata (Term Frekuensi/tf) dari array yang sudah melewati proses penghapusan stopword. Proses penghitungan dilakukan dengan array 2 dimensi (arrayTF[m][2]), arrayTF akan mempunyai dimensi baris dan kolom, dengan banyak baris sebanyak kata yang dibutuhkan, dan banyak kolom 2. Kolom 1 untuk menampung kata, dan kolom 2 untuk menampung jumlah kemunculan kata. Proses penghitungan dimulai dengan memasukkan data 1 dari array ke dalam kolom 1 arrayTF, dengan nilai kolom 2 = 1. Kemudian semua data dalam array akan dicocokkan dengan kolom 1 dari semua data arrayTF. Jika ada data yang sesuai maka nilai dari kolom 2 akan ditambah 1 (increament 1), sebaliknya jika tidak ada data yang sesuai maka data array akan dimasukkan ke dalam kolom1 baris yang masih kosong dalam arrayTF dengan nilai kolom 2 = 1. Proses ini dikerjakan sampai semua data dalam array selesai dicocokkan.

46 Hitung Term Frekuensi

Kata - array[i] i to jumlah array j to jumlah b If kata = arrayTF[ j][1] j b=1 arrayTF[b][1] = array[b] arrayTF[b][2] = 1 Inc(b) i Return seluruh kata penting dari dokumen / query yang dipilih true true false false b=1 arrayTF[b][1] = array[b] arrayTF[b][2] = 1 Inc(b) arrayTF[ j][2] + 1 false true

47 6. Proses Perhitungan Bobot

Proses perhitungan bobot ini dilakukan berdasarkan hasil perhitungan TF-IDF. Hasil IDF dari perhitungan TF-IDF kemudian dinormalisasi dengan menambahkan angka 1 (satu) pada IDF yang kemudian disimpan kedalam field IDF-Normalisasi pada tabel ta_term. Untuk mendapatkan bobot normalisasi, maka dilakukan perhitungan pada sistem sehingga menghasilkan bobot normalisasi yang kemudian disimpan kedalam database sebagai bobot yang nantinya akan digunakan dalam perhitungan saat melakukan pencarian.

IDF + 1 (Normalisasi) (TF*IDF/SUM(TF^2*IDF^2)TERM) Input ke dalam database

Gambar 3.8 Flowchart diagram proses hitung bobot term normalisasi

3.3.2.2. Algoritma proses pencarian dokumen

Proses pencarian dokumen terbagi dalam 5 proses yang digambarkan dalam gambar blok dagram 3.16 dibawah ini:

48 DOKUMEN STOPLIST Dokumen Perhitungan Term Frekuensi Parsing kedalam array Penghapusan Stopword Stemming T ER M Query ke database Hasil

Gambar 3.9 Blok Diagram Proses Pencarian Dokumen

Berikut ini adalah penjelasan untuk setiap proses dalam proses pencarian dokumen:

1. Parsing ke dalam array

Proses parsing dari query ke dalam array sama dengan proses parsing dokumen ke dalam array.

2. Proses penghapusan stopword dari array

Proses penghapusan stopword dari array sama dengan proses penghapusan stopword dari array dokumen.

49 3. Proses Stemming

Proses ini digunakan untuk mencari kata dasar dari kata yang ada dalam array, proses stemming menggunakan algoritma Porter Stemmer for Bahasa Indonesia yang di terapkan di dalam kelas Tokenizer() milik Bapak Puspaningtyas Sanjaya Adi, S.T, M.T.

4. Proses Perhitungan Term Frekuensi

Proses ini digunakan untuk menghitung jumlah kemunculan kata (Term Frekuensi/tf) dari array query yang sudah melewati proses penghapusan stopword. Proses penghitungan dilakukan dengan array 2 dimensi (queryTF[m][2]), queryTF akan mempunyai dimensi baris dan kolom, dengan banyak baris sebanyak kata yang dibutuhkan, dan banyak kolom 2. Kolom 1 untuk menampung kata, dan kolom 2 untuk menampung jumlah kemunculan kata. Proses penghitungan dimulai dengan memasukkan data 1 dari array query ke dalam kolom 1 queryTF, dengan nilai kolom 2 = 1. Kemudian semua data dalam array query akan dicocokkan dengan kolom 1 dari semua data queryTF. Jika ada data yang sesuai maka nilai dari kolom 2 akan ditambah 1 (increament 1), sebaliknya jika tidak ada data yang sesuai maka data array query akan dimasukkan ke dalam kolom1 baris yang masih kosong dalam queryTF dengan nilai kolom 2 = 1. Proses ini dikerjakan sampai semua data dalam array selesai dicocokkan.

50 5. Proses query ke database

Proses query ke database dilakukan untuk mencari daftar term beserta bobotnya, dan daftar dokumen. Bobot kata berdasarkan bobot TF-IDF, proses perhitungan bobot kata dilakukan pada sisi database yakni dengan menambahkan formula pada query (queryTF[][]) dan dokumen (arrayTF[][]). Dari query dan dokumen akan menghasilkan ResultSet berupa daftar bobot tiap term serta dokumen yang berhubungan dan nilai IDF untuk setiap term. Untuk mendukung perhitungan cosines similarity antara term dokumen dan query, setiap bobot term hasil pada TF-IDF dilakukan perhitungan terlebih dahulu.

6. Proses perhitungan Vector Space Model

Proses ini digunakan untuk menghitung kesamaan antara vektor query dengan vektor dokumen yang dihasilkan dari proses query ke database. Bobot term pada queryTF[][] dan arrayTF[][] merupakan inner products, sehingga setiap bobot pada queryTF[][] harus dikalikan dengan masing- masing bobot dokumen pada arrayTF[][] (perkalian inner products/ dot products). Hasil dari perhitungan tersebut akan disimpan kedalam array baru dot[][]. Setelah perhitungan dot products selesai, maka pada queryTF[][], arrayTF[][], dan dot[][] akan ditambahkan formula untuk menghitung cosines similarity. Hasil dari penambahan formula tersebut akan disimpan kedalam array hasil[][]. Setelah proses selesai maka kemudian data array hasil[][] akan diurutkan berdasarkan nilai cosinus, yakni pada array hasil[][], dari bobot paling besar ke yang terkecil dengan nilai bobot 0 (nol) diabaikan. Proses ini untuk

51 menentukan urutan rangking dari dokumen yang berhasil di dapatkan dari proses query, selanjutnya setelah array hasil[][] selesai diurutkan akan ditampilkan kepada user.

Input query (keyword) Tokenizer() Word() Term Frekuensi query Query ke database Cosines Similarity Sorting (perangkingan) Hasil (bobot) Tidak ditemukan false End process Perkalian inner products true

52

Dokumen terkait