Sistem informasi perpustakaan berbasis w (3)
Sistem informasi perpustakaan berbasis web pada perpustakaan
Humaniora dan Budaya UIN Maliki Malang menggunakan Algoritma
Wighted Directed Acyclic Graph
Angga Debby Frayudhaʾ Idhar Firmansyahʾ Mohammad Nadzif Abdullah ʾ
1) Jurusan Teknik Informatika UIN, Malang 65144, email:[email protected]
2) Jurusan Teknik Informatika UIN, Malang 65144,email: [email protected]
3) Jurusan Teknik Informatika UIN, Malang 65144,email: [email protected]
Abstrack –
pada pengimplementasian algoritma wighted Directed Acyclic Graph pada sistem
informasi perpustakaan untuk mencari jarak node terpanjang dapat memanfaatkan algoritma ini dikarenakan
WDAG sebagai representasi utama dari metadata yang berguna untuk mengkalkulasi kemiripan melalui
perhitungan berbasis taksonomi root concept maka sangat berguna jika digunakan sebagai smart search
engine.kelebihan dari WDAG adalah:
1. mampu menampilkan bobot dari data yang ada sehingga hasil pencarian lebih akurat dan cepat
2. wdag sangat berguna pada smart search enggine
Pada proses pengimplementasian metode WDAG ini ditemui kendala dimana kemungkinan pencarian
kurangbegitu akurat
Kata Kunci: WDAG, metadata, taksonomi, root concept, smart search engine
dalam optimasi pencarian dan untuk menemukan data
PENDAHULUAN
yang dicari kita akan membahasnya di sini secara
Weighted
Directed
Acyclic
Graph penuh untuk algoritma WDAG.
merupakan sebuah graph berarah dan memiliki bobot
2. PEMBAHASAN
pada arc, yang umumnya merupakan bentuk
penyimpanan metadata dari sesuatu. Wdag sangat
potensial untuk memunculkan penggabungan node 4.1 Tahapan Algoritma
yang identik pada non-leaf. In degree dari root node
Pada tahapan ini WDAG memiliki beberapa
sebuah DAG adalah 0. Sebuah node disebut leaf jika
tahapan yang harus dilewati karena pada proses
out –degree adalah 0. Dengan demikian bahwa tree
pencarian yang menggunakan metode ini sangat
merupakan subset khusus dari DAG. Algoritma wdag
sensitive terhadap hasil pencarian membantu untuk
similarity membandingkan dan menghitung kemiripan
hasil yang dicari tahapan yang harus dilalui adalah
antara dua arc-labeled dan acr-weighted DAG. Dua
pelabelan dan pembobotan, urutan yang ada pada
masukan wDAG diserialkan pertama kali dan dibaca
algoritma WDAG sebagai berikut
oleh algoritma wDAG, setelah algoritma
1.
membandingkan dua wDAG, hasil yang
diberikan adalah nilai kemiripan keduanya dan
kemiripan akan diurutkan berdasarkan kemiripan
tertinggi.
Pada bab ini memperkenalkan mengenai cara
kerja WDAG pada smart search engine perpustakaan
dan kemudian melihat tingkatan keberhasilan
Algoritma tersebut, WDAG lebih sering digunakan
4.1.1 Input masukan WDAG
Disini inputan yang akan dicari berupa
potongan kata yang akan muncul secara otomatis yang
diambil dari database, inputan berupa kata atau
kalimat yang akan dicari
1
jika kata yang dicari itu ada dalam database maka
akan muncul kata selanjutnya
Gambar 4.1 Inputan Pencarian
Kata yang di inputkan akan diproses WDAG
dan akan menghsilkan hasil pencarian terkait data
yang di inputkan.
4.1.2 WDAG Similirity Algorithm
Ketika menghitung nilai kemiripan input
WDAG, daftar asosiasi dibentuk untuk menyimpan
kemiripan sub-WDAG saat pertama kali arc
dihasilkan. Kemudian nilai kemiripan dapat digunakan
kembali ketika algoritma kembali melewati subWDAG yang sama. Proses penentuan kemiripan
dapat dilakukan melalui proses pemisahan kata
menjadi individu kata yang kemudian dapat
dibandingkan dengan dengan kumpulan kata yang
sebelumnya telah dibuat aturan.
Gambar 4.3 Pelabelan
Prosesnya, ketika user menginputkan kata,
maka proses awal adalah melakukan proses selecting
melalui query like pada database. Hasil selecting akan
berupa data dengan panjang data tertentu. Data ini
akan dilakukan proses pemotongan/ split berdasarkan
jumlah kosak kata, selanjutnya setiap kata hasil
pemotongan dilakukan proses split berdasarkan huruf
dan ditampung ke dalam array. Hal yang sama
dilakukan pada kata yang diinputkan user, dilakukan
proses split berdasarkan huruf dan tiap hurufnya
disimpan dalam sebuah array dengan length tertentu.
Dari array tersebut ditentukan nilai maksimal dan
kemudian dibandingkan dengan array hasil query.
Jika didapati memiliki length yang sama, maka proses
selanjutnya adalah melakukan pengecekan similirity
dari array huruf yang di-input-kan dan array huruf
hasil query database. Lalu didapati output
berdasarkan kata yang sama, kata ini yang selanjutnya
ditampilkan ke user.
Gambar 4.2 WDAG
Jadi proses untuk mencari nilai kemiripan
diambil dari berapa proses pemisahan kata menjadi
beberapa kata yang per individu dan dibandingkan
dengan kata yang ada.
4.1.3 Pelabelan
Pada proses similirty terjadi proses pelabelan,
disini terdapat pencocokan kata dari inputan perkata
yang akan disamakan ke dalam isi database.
Perbandingan kata yang cocok akan mengeluarkan
hasil berupa judul lanjutan atau nama pengarang.
Pencocokan ini berdasarkan isi dari database, sehingga
Gambar 4.4 Pelabelan kata
Jika kata yang dicari bukan merupakan node
pada simpul simpul dan memiliki arc label yang
berbeda, maka nilai kemiripan adalah 0. Sebaliknya
jika arc label yang dimiliki adalah sama maka akan
2
dilakukan recursive transversal top-down melalui sub
WDAG yang dimiliki
4.1.4 Similirity Value
Nilai pada Similirity Berkaitan dengan
besarnya nilai kesamaan, dan nilai ini yang
menentukan output yang diharapkan. Jika inputan
yang dicari bukan merupakan node dari bagian simpul
maka nilai kemiripan 0. Akan tetapi jika inputan itu
hilang dalam sub WDAG yang dilalui maka nilai
kemiripan dari sub WDAG yang hilang adalah berupa
nilai simplicity dikalikan 0.5 atau dapat dirumuskan
WDAG
stm(inputan,null)=
WDAG
plicity(inputan,null) * 0.5
Gambar 4.6 wighted
4.1.5.1 Proses pemecahan kata
Pada bagian kata yang akan dicari, kata yang
diinputkan user nanti akan dipecah menjadi beberapa
bagian. Jika kata maka dipecah berdasarkan hurufnya,
jika kata maka dipecah berasarkan kosak kata.
Misalnya : kata diinputkan adalah “Pengantar” nanti
kata ini akan dipecah sebanyak jumlah huruf yang ada.
Hasil pecah menjadi “p”, “e”, “n”, “g”, “a”, “n”, “t”,
”a”, “r”. tiap huruf yang dipecah akan dicari
kesamaannya dengan aturan indexing dalam system.
Jika kalimat, misalnya “Pengatar Bahasa Arab” maka
akan dipecah menjadi “Pengantar”, “Bahasa”, dan
“Arab”. Selanjutnya setiap kata yang dipecah dengan
aturan indexing dan akan dicari kesamaannya kedalam
system dan dimunculkan dibawah kotak mesin
pencari.
Gambar 4.5 Similirity Value
Nilai kesamaan dengan bobot yang sama
maka akan diurutkan berdasarkan abjad tetapi tetap
proses WDAG bekerja hanya saja memperhitungkan
bilamana terjadi hal tersebut.
4.1.5 Pembobotan
Pembobotan disini dimaksudkan untuk
menentukan nilai ratting tertinggi dari peminjaman
buku, peminjaman dengan intensitas tinggi maka akan
berpengaruh pada nilai bobot dari nilai pembobotan
tersebut. Sugestion dari kata yang di inputkan akan
ditampilkan berdasarkan dari urutan bobot dari yang
tertinggi hingga terendah sehingga dimasukan
pengurutan hasil lebih optimal.
Gambar 4.7 pemecahan kata
4.1.5 Pseudocode Program
kita perlu untuk mewakili grafik kita
sedemikian rupa sehingga jalan menemukan algoritma
seperti
Input : word “q”;
$query select from database
FOR i =1 to n do
$a split(“q”,$query) // memanggil fungsi
query dan keyword
ambil nilai maks.$a
IF $a > 1 then
$b split $a ; ambil data pada $a index ke - 1
IF $b > 1 then
split $b ; ambil nilai maks $b pada index ke
– 0 ; ambil nilai $a pada index ke – 2
3
IF nilai maks $b > 2 then
ambil nilai maks $a pada index ke – 0
$h split “word”,nilai maks.$a then
Bandingkan nilai maks.$a dengan split
“word”
$h = hasil akhir
ELSE
$h Split $b berdasarkan nilai maks.$b
pada index ke-0
Bandingkan nilai maks.$b dengan split
“word”
Ambil nilai $h pada indeks – 0
$h pada indeks – 0 = hasil akhir
IF
Indeks - 0 = 0 maka break;
ELSE
Batasi data yang ditampilkan sebanyak 5.
$counter = 0
$selectcounterT select from database
IF $selectcounterT > 0 then
eksekusi query.
$counterT nilai pada kolom counter
$arrayWeight [index kata] = nilai $counter
Set similirity $h = nilai $counter.
ELSE
$arrayWeight [index kata] = 0
ENDFOR
Contoh implementasi sederhana dari kelas ini
adalah menyimpan koneksi untuk setiap node dan
hanya akan kembali ke daftar. masing-masing
sambungan akan memiliki simpul biaya dan akhir
4.1.6 Implementasi Program
Berikut potongan sourcecode :
$SQLTitle = mysql_query("SELECT
biblio_id, title FROM `biblio` WHERE
title LIKE '" . $Key . "%'");
$iT = 0;
if (sizeof($SQLTitle) > 0) {
while ($ResultT =
mysql_fetch_array($SQLTitle)) {
$iT+=1;
$RTitle = $ResultT['title'];
$XT = explode(" ", $RTitle);
$XTFive = $XT[0];
$indexT = 1;
for (; $indexT 0)) {
while
($resultCounterT =
mysql_fetch_array($selectCounterT)) {
$counterT = $resultCounterT['counter'];
4.
DAFTAR PUSTAKA
1. Jin Jing B.Eng, Similarity Of Wighted Directed
Acyclic Graph, Zhejiang University, 2004
2. Bhavsar, V.C., Boley, H. and Yang, L., A
Weighted-Tree Similarity Algorithm for MultiAgent Systems in e-Business Environments,
Computational Intelligence, 20(4), pp.584-602,
2004.
3. Bouquet, P., Serafini, L. and Zanobini, S.,
Semantic coordination: A new approach and an
application. Proceedings of the International
Semantic Web Conference (ISWC), pp. 130–145,
2003.
$arrayWeight[$indexingPath] = $counterT;
}
} else {
$arrayWeight[$indexingPath] = 0;
}
$indexingPath +=1;
} else {
$comunicatorWhileT = 1;
}
}
}
}
if ($comunicatorWhileT == 1)
{
break;
}
}
} else {
$GOD +=1;
break;
}
5
Humaniora dan Budaya UIN Maliki Malang menggunakan Algoritma
Wighted Directed Acyclic Graph
Angga Debby Frayudhaʾ Idhar Firmansyahʾ Mohammad Nadzif Abdullah ʾ
1) Jurusan Teknik Informatika UIN, Malang 65144, email:[email protected]
2) Jurusan Teknik Informatika UIN, Malang 65144,email: [email protected]
3) Jurusan Teknik Informatika UIN, Malang 65144,email: [email protected]
Abstrack –
pada pengimplementasian algoritma wighted Directed Acyclic Graph pada sistem
informasi perpustakaan untuk mencari jarak node terpanjang dapat memanfaatkan algoritma ini dikarenakan
WDAG sebagai representasi utama dari metadata yang berguna untuk mengkalkulasi kemiripan melalui
perhitungan berbasis taksonomi root concept maka sangat berguna jika digunakan sebagai smart search
engine.kelebihan dari WDAG adalah:
1. mampu menampilkan bobot dari data yang ada sehingga hasil pencarian lebih akurat dan cepat
2. wdag sangat berguna pada smart search enggine
Pada proses pengimplementasian metode WDAG ini ditemui kendala dimana kemungkinan pencarian
kurangbegitu akurat
Kata Kunci: WDAG, metadata, taksonomi, root concept, smart search engine
dalam optimasi pencarian dan untuk menemukan data
PENDAHULUAN
yang dicari kita akan membahasnya di sini secara
Weighted
Directed
Acyclic
Graph penuh untuk algoritma WDAG.
merupakan sebuah graph berarah dan memiliki bobot
2. PEMBAHASAN
pada arc, yang umumnya merupakan bentuk
penyimpanan metadata dari sesuatu. Wdag sangat
potensial untuk memunculkan penggabungan node 4.1 Tahapan Algoritma
yang identik pada non-leaf. In degree dari root node
Pada tahapan ini WDAG memiliki beberapa
sebuah DAG adalah 0. Sebuah node disebut leaf jika
tahapan yang harus dilewati karena pada proses
out –degree adalah 0. Dengan demikian bahwa tree
pencarian yang menggunakan metode ini sangat
merupakan subset khusus dari DAG. Algoritma wdag
sensitive terhadap hasil pencarian membantu untuk
similarity membandingkan dan menghitung kemiripan
hasil yang dicari tahapan yang harus dilalui adalah
antara dua arc-labeled dan acr-weighted DAG. Dua
pelabelan dan pembobotan, urutan yang ada pada
masukan wDAG diserialkan pertama kali dan dibaca
algoritma WDAG sebagai berikut
oleh algoritma wDAG, setelah algoritma
1.
membandingkan dua wDAG, hasil yang
diberikan adalah nilai kemiripan keduanya dan
kemiripan akan diurutkan berdasarkan kemiripan
tertinggi.
Pada bab ini memperkenalkan mengenai cara
kerja WDAG pada smart search engine perpustakaan
dan kemudian melihat tingkatan keberhasilan
Algoritma tersebut, WDAG lebih sering digunakan
4.1.1 Input masukan WDAG
Disini inputan yang akan dicari berupa
potongan kata yang akan muncul secara otomatis yang
diambil dari database, inputan berupa kata atau
kalimat yang akan dicari
1
jika kata yang dicari itu ada dalam database maka
akan muncul kata selanjutnya
Gambar 4.1 Inputan Pencarian
Kata yang di inputkan akan diproses WDAG
dan akan menghsilkan hasil pencarian terkait data
yang di inputkan.
4.1.2 WDAG Similirity Algorithm
Ketika menghitung nilai kemiripan input
WDAG, daftar asosiasi dibentuk untuk menyimpan
kemiripan sub-WDAG saat pertama kali arc
dihasilkan. Kemudian nilai kemiripan dapat digunakan
kembali ketika algoritma kembali melewati subWDAG yang sama. Proses penentuan kemiripan
dapat dilakukan melalui proses pemisahan kata
menjadi individu kata yang kemudian dapat
dibandingkan dengan dengan kumpulan kata yang
sebelumnya telah dibuat aturan.
Gambar 4.3 Pelabelan
Prosesnya, ketika user menginputkan kata,
maka proses awal adalah melakukan proses selecting
melalui query like pada database. Hasil selecting akan
berupa data dengan panjang data tertentu. Data ini
akan dilakukan proses pemotongan/ split berdasarkan
jumlah kosak kata, selanjutnya setiap kata hasil
pemotongan dilakukan proses split berdasarkan huruf
dan ditampung ke dalam array. Hal yang sama
dilakukan pada kata yang diinputkan user, dilakukan
proses split berdasarkan huruf dan tiap hurufnya
disimpan dalam sebuah array dengan length tertentu.
Dari array tersebut ditentukan nilai maksimal dan
kemudian dibandingkan dengan array hasil query.
Jika didapati memiliki length yang sama, maka proses
selanjutnya adalah melakukan pengecekan similirity
dari array huruf yang di-input-kan dan array huruf
hasil query database. Lalu didapati output
berdasarkan kata yang sama, kata ini yang selanjutnya
ditampilkan ke user.
Gambar 4.2 WDAG
Jadi proses untuk mencari nilai kemiripan
diambil dari berapa proses pemisahan kata menjadi
beberapa kata yang per individu dan dibandingkan
dengan kata yang ada.
4.1.3 Pelabelan
Pada proses similirty terjadi proses pelabelan,
disini terdapat pencocokan kata dari inputan perkata
yang akan disamakan ke dalam isi database.
Perbandingan kata yang cocok akan mengeluarkan
hasil berupa judul lanjutan atau nama pengarang.
Pencocokan ini berdasarkan isi dari database, sehingga
Gambar 4.4 Pelabelan kata
Jika kata yang dicari bukan merupakan node
pada simpul simpul dan memiliki arc label yang
berbeda, maka nilai kemiripan adalah 0. Sebaliknya
jika arc label yang dimiliki adalah sama maka akan
2
dilakukan recursive transversal top-down melalui sub
WDAG yang dimiliki
4.1.4 Similirity Value
Nilai pada Similirity Berkaitan dengan
besarnya nilai kesamaan, dan nilai ini yang
menentukan output yang diharapkan. Jika inputan
yang dicari bukan merupakan node dari bagian simpul
maka nilai kemiripan 0. Akan tetapi jika inputan itu
hilang dalam sub WDAG yang dilalui maka nilai
kemiripan dari sub WDAG yang hilang adalah berupa
nilai simplicity dikalikan 0.5 atau dapat dirumuskan
WDAG
stm(inputan,null)=
WDAG
plicity(inputan,null) * 0.5
Gambar 4.6 wighted
4.1.5.1 Proses pemecahan kata
Pada bagian kata yang akan dicari, kata yang
diinputkan user nanti akan dipecah menjadi beberapa
bagian. Jika kata maka dipecah berdasarkan hurufnya,
jika kata maka dipecah berasarkan kosak kata.
Misalnya : kata diinputkan adalah “Pengantar” nanti
kata ini akan dipecah sebanyak jumlah huruf yang ada.
Hasil pecah menjadi “p”, “e”, “n”, “g”, “a”, “n”, “t”,
”a”, “r”. tiap huruf yang dipecah akan dicari
kesamaannya dengan aturan indexing dalam system.
Jika kalimat, misalnya “Pengatar Bahasa Arab” maka
akan dipecah menjadi “Pengantar”, “Bahasa”, dan
“Arab”. Selanjutnya setiap kata yang dipecah dengan
aturan indexing dan akan dicari kesamaannya kedalam
system dan dimunculkan dibawah kotak mesin
pencari.
Gambar 4.5 Similirity Value
Nilai kesamaan dengan bobot yang sama
maka akan diurutkan berdasarkan abjad tetapi tetap
proses WDAG bekerja hanya saja memperhitungkan
bilamana terjadi hal tersebut.
4.1.5 Pembobotan
Pembobotan disini dimaksudkan untuk
menentukan nilai ratting tertinggi dari peminjaman
buku, peminjaman dengan intensitas tinggi maka akan
berpengaruh pada nilai bobot dari nilai pembobotan
tersebut. Sugestion dari kata yang di inputkan akan
ditampilkan berdasarkan dari urutan bobot dari yang
tertinggi hingga terendah sehingga dimasukan
pengurutan hasil lebih optimal.
Gambar 4.7 pemecahan kata
4.1.5 Pseudocode Program
kita perlu untuk mewakili grafik kita
sedemikian rupa sehingga jalan menemukan algoritma
seperti
Input : word “q”;
$query select from database
FOR i =1 to n do
$a split(“q”,$query) // memanggil fungsi
query dan keyword
ambil nilai maks.$a
IF $a > 1 then
$b split $a ; ambil data pada $a index ke - 1
IF $b > 1 then
split $b ; ambil nilai maks $b pada index ke
– 0 ; ambil nilai $a pada index ke – 2
3
IF nilai maks $b > 2 then
ambil nilai maks $a pada index ke – 0
$h split “word”,nilai maks.$a then
Bandingkan nilai maks.$a dengan split
“word”
$h = hasil akhir
ELSE
$h Split $b berdasarkan nilai maks.$b
pada index ke-0
Bandingkan nilai maks.$b dengan split
“word”
Ambil nilai $h pada indeks – 0
$h pada indeks – 0 = hasil akhir
IF
Indeks - 0 = 0 maka break;
ELSE
Batasi data yang ditampilkan sebanyak 5.
$counter = 0
$selectcounterT select from database
IF $selectcounterT > 0 then
eksekusi query.
$counterT nilai pada kolom counter
$arrayWeight [index kata] = nilai $counter
Set similirity $h = nilai $counter.
ELSE
$arrayWeight [index kata] = 0
ENDFOR
Contoh implementasi sederhana dari kelas ini
adalah menyimpan koneksi untuk setiap node dan
hanya akan kembali ke daftar. masing-masing
sambungan akan memiliki simpul biaya dan akhir
4.1.6 Implementasi Program
Berikut potongan sourcecode :
$SQLTitle = mysql_query("SELECT
biblio_id, title FROM `biblio` WHERE
title LIKE '" . $Key . "%'");
$iT = 0;
if (sizeof($SQLTitle) > 0) {
while ($ResultT =
mysql_fetch_array($SQLTitle)) {
$iT+=1;
$RTitle = $ResultT['title'];
$XT = explode(" ", $RTitle);
$XTFive = $XT[0];
$indexT = 1;
for (; $indexT 0)) {
while
($resultCounterT =
mysql_fetch_array($selectCounterT)) {
$counterT = $resultCounterT['counter'];
4.
DAFTAR PUSTAKA
1. Jin Jing B.Eng, Similarity Of Wighted Directed
Acyclic Graph, Zhejiang University, 2004
2. Bhavsar, V.C., Boley, H. and Yang, L., A
Weighted-Tree Similarity Algorithm for MultiAgent Systems in e-Business Environments,
Computational Intelligence, 20(4), pp.584-602,
2004.
3. Bouquet, P., Serafini, L. and Zanobini, S.,
Semantic coordination: A new approach and an
application. Proceedings of the International
Semantic Web Conference (ISWC), pp. 130–145,
2003.
$arrayWeight[$indexingPath] = $counterT;
}
} else {
$arrayWeight[$indexingPath] = 0;
}
$indexingPath +=1;
} else {
$comunicatorWhileT = 1;
}
}
}
}
if ($comunicatorWhileT == 1)
{
break;
}
}
} else {
$GOD +=1;
break;
}
5