Analisis dan Perancangan Software WordNet Bahasa Indonesia dengan Graph Database
Seta M. Pamungkas 1, *,Muhammad Ainul Yaqin 2 , Kurnia Z. Matondang 3 , Asfilia N. Anggraini 4 , Abd. Charis Fauzan 5 1,2,3,4 Jurusan Teknik Informatika, Universitas Islam Negeri Maulana Malik Ibrahim, Indonesia
5 Program Studi Ilmu Komputer, Universitas Nahdlatul Ulama Blitar, Indonesia
1 18650043@student.uin-malang.ac.id*; 2 yaqinov@ti.uin-malang.ac.id; 3 18650044@student.uin-malang.ac.id;
4 18650040@student.uin-malang.ac.id; 5 abdcharis@unublitar.ac.id * corresponding author

## PENDAHULUAN
Bahasa dunia dibagi menjadi dua kelompok: bahasa yang sangat memiliki sumber daya perbendaharaan  kata  yang  melimpah  dan  bahasa  yang  kekurangan  sumber  daya perbendaharaan  kata  [1].  Karena  kurangnya  dalam  perbendaharaan  kata,  maka  kelompok yang  memiliki  sumber  daya  yang  kurang  akan  menyebabkan  hasil  penelitian  yang  tidak tepat. Bahasa Indonesia adalah salah satu bahasa yang memiliki sumber daya yang kurang, tetapi  memiliki  perbendaharaan  kata  yang  banyak.  Perbendaharaan  kata  tersebut  dapat direlasikan dengan perancangan WordNet . WordNet adalah sebuah database kamus bahasa Inggris  yang  pertama  kali  dikembangkan  oleh  Princeton  University.  Sedangkan  menurut Miller, WordNet merupakan  pangkalan  data  leksikal  elektronik.[2]  Sebagai  salah  satu sumber terpenting dalam linguistik komputasi [3], WordNet dapat dikatakan sebagai kamus berdasarkan  prinsip-prinsip  psikolinguistik.  Seiring  dengan  perkembangan WordNet , sekarang  terdapat  berbagai  domain WordNet dalam  berbagai  bahasa. WordNet  Domains (WND)  adalah  sumber  data  leksikal  yang  memiliki  sinkronisasi  secara  semi-otomatis

## I N F O A R T I K E L

## A B S T R A K

## Sejarah Artikel
Diterima: 21 Desember 2019 Direvisi: 13 April 2020 Diterbitkan: 30 Agustus 2020 Paper  ini  bertujuan  untuk  merancang  sebuah WordNet dengan menggunakan database bermetode graph yang  akan  dirancang  dengan tahap awal pengelompokan kata hingga tahap akhir yaitu pengimplementasian  dalam  bentuk  aplikasi  siap  pakai.  Penelitian  ini merancang  aplikasi WordNet siap  pakai  yang  mengimplementasikan database berbasis graph dengan  menggunakan  Metode Waterfall yang akan  menjadi  dasar  alur  dalam  perancangan  aplikasi.  Uji  coba  dalam penelitian  ini  berupa:  pemilahan  kata,  input  kata  ke  dalam database, pemberian relasi antar kata, uji coba setiap kata dengan kata yang lain, dan  implementasi  database  ke  dalam  sebuah  aplikasi  yang  siap  pakai. Pada  penelitian  ini  menghasilkan  sebuah  rancangan WordNet yang menggunakan  Bahasa  Indonesia  dengan  penggunaan database berbasis graph  model sebagai  tempat  penyimpanan  data.  Rancangan WordNet tersebut  lalu  diimplementasikan  ke  dalam  sebuah  aplikasi  yang  siap pakai. Data yang digunakan dalam penelitian didapatkan dari KBBI dan Tesaurus  yang  dapat  diakses  melalui  media online .  Data  dikumpulkan secara  berelasi  hingga  membentuk  relasi  Sinonim,  Antonim,  Imbuhan, dan Kata Dasar. Penelitian ini  menggunakan relasi  yang spesifik  untuk menghubungkan  antar node, tetapi  tidak  menggunakannya  untuk pencarian  jarak  antar node. Penelitian  ini  menggabungkan  hasil  dari penelitian  perancangan WordNet dan  perancangan database dengan metode graph hingga membentuk sebuah aplikasi siap pakai.
Kata Kunci WordNet Graph Database Metode Waterfall
dengan 170 domain telah terorganisasikan secara hierarkis [4]. Untuk mengurangi terjadinya pengulangan dan golongan kata yang sama,  maka domain yang asli dibandingkan dengan yang  baru,  lalu  mengukur  kualitas  sumber  dan  anomali  pada  label  WDN  asli.  Hasil  dari penelitian ini menunjukkan bahwa domain yang baru menunjukkan hasil yang lebih unggul [4]. Perkembangan WordNet yang semakin banyak membuat teks dalam bentuk elektronik menjadi sulit untuk mendapatkan informasi yang relevan. Komputer harus merubah bahasa alami  menjadi  bahasa  komputasi.  Umumnya,  pengguna  akan  memasukkan query dalam bahasa  alami  yang  biasanya  memiliki  ketidaktepatan,  ketidakjelasan,  ambiguitas,  dan ketidakpastian [5]. Oleh karena itu, dalam metode WordNet diterapkan hubungan semantik, mengasumsikan  bahwa  sinonim  memiliki  polaritas  yang  sama  dan  antonim  memiliki polaritas yang berbeda [6]. Perbedaan yang paling jelas antara WordNet dan kamus standar adalah  bahwa WordNet membagi  leksikon  menjadi  lima  kategori:  kata  benda,  kata  kerja, kata  sifat,  kata  keterangan,  dan  kata  fungsi  [7].  Proses  merelasikan  setiap  kata  dirancang menggunakan database yang  berbasis graph  model .  Fleksibilitas graph  model memungkinkan kami untuk menambahkan node baru dan hubungan baru tanpa merusak atau memindah data — data asli dan isinya tetap utuh [8]. Selain itu penggunaan graph model dalam database memiliki  waktu  eksekusi  yang  relatif flat atau  konstan  walaupun menghadapi  kompleksitas  data  yang  besar.  Waktu  eksekusi  yang  relatif  konstan  tersebut disebabkan karena kemampuan graph yang mempunyai  sifat  merambat dari satu node ke node yang lain. Sehingga, waktu eksekusi bergantung pada ukuran antar segmen graph [9]. Penelitian  ini  sebelumnya  pernah  diteliti  oleh  Nagi  yang  merepresentasikan WordNet menggunakan Graph  Database dengan tools Neo4j [3]. Penelitian  tersebut  mendapatkan hasil  bahwa  waktu  eksekusi  lebih  cepat  20%  [3].  Perancangan WordNet menggunakan bahasa  selain  bahasa  yang  memiliki  sumber  daya  berlimpah  pernah  diteliti  oleh Khuyagbaatar dalam penelitiannya yang berjudul “Building The Mongolian WordNet ”[1]. Namun, penelitian mereka belum sampai tahap implementasi ke dalam aplikasi siap pakai. Perancangan WordNet pada penelitian ini akan dirancang menggunakan aplikasi Neo4J.
Neo4J sangat cocok digunakan untuk pembangunan WordNet karena waktu eksekusi query yang relatif konstan dan hanya sepersekian detik untuk mengeksekusi query [8]. Uji coba WordNet dilakukan untuk mendapatkan hasil yang maksimal. Uji coba akan berupa mencari dan memvisualisasikan seluruh jarak terdekat antara 2 kata, menampilkan setiap kata yang berelasi dengan kata kunci, dan pencarian kata berdasarkan relasi dengan kata kunci. Pada penelitian ini, uji coba tidak difokuskan terhadap relasi antara node secara spesifik.  Hasil perancangan dan uji coba database akan diimplementasikan ke dalam sebuah program yang memuat tentang relasi kata kunci dengan kata lain dan pengertiannya.

## METODE
Perancangan software WordNet berbasis graph  database menerapkan  Metode Waterfall. Metode Waterfall adalah metode yang mengembangkan sistem melewati tahapan perencanaan, analisis, perancangan, implementasi, dan pemeliharaan sebagaimana Gambar 1. Metode ini sangat baik untuk digunakan jika persyaratannya telah dipahami dengan baik.

## Perencanaan
Gambar 2. Proses berjalannya perancangan
Pada tahap perencanaan pengembangan software , software akan dibangung berdasarkan alur  yang  ditampilkan  pada  Gambar  2.  Pada  Gambar  2  menjelaskan  bahwa  perancangan dimulai dengan menginputkan data kata. Data kata adalah perbendaharaan kata yang telah dipilah. Setelah menginputkan data kata, maka diinputkan relasi antar kata. Relasi antar kata akan  berupa  relasi  yang  menghubungkan  antara  2  kata  dengan  ikatan  khusus  seperti Sinonim, Antonim, Imbuhan, dan KataDasar. Setelah kata data diinputkan di database , maka user bisa memanggil kata di software , yang mana user perlu menginputkan kata dan relasi dari kata yang ingin dicari. Setelah program menyesuaikan kata dan relasi dari user dengan kata dan relasi dari database , maka software akan menampilkan DataKata sesuai keinginan user .

## Analisis
Pada  tahap  ini,  dilakukan  pengumpulan  data  sistem  secara  keseluruhan  dari user melalui observasi atau studi literatur untuk menghasilkan sistem yang diharapkan oleh user . Selanjutnya  hasil  analisis  akan  diubah  menjadi  bahasa  pemrograman  yang  dipahami  oleh komputer.

## Perancangan
Tahapan  perancangan  mentranslasi  kebutuhan  perangkat  lunak  dari  tahap  analisis kebutuhan ke representasi desain agar dapat diimplementasikan menjadi program pada tahap
Vol. 2, No. 2, Agustus 2020, Halaman 198-209
selanjutnya.[10]  Dengan  perancangan  diagram  alur  program, database ,  pengkodean,  dan desain sistem yang mudah untuk dipahami user .

## Mengelompokkan kata
Memilah  kata  merupakan  tahap  pertama  dalam  perancangan WordNet . Perbendaharaan  kata  dikumpulkan  dari  KBBI  dan  Tesaurus  Bahasa  Indonesia.  Proses  ini dipilah berdasarkan  nama kata, jenis kata, arti kata, sinonim kata, jenis sinonim kata, arti sinonim  kata,  antonim  kata,  jenis  antonim  kata,  arti  antonim  kata,  imbuhan  kata,  arti imbuhan  kata.  Dari  pengelompokan  kata  berdasarkan  atribut  tersebut  akan  membentuk sebuah  kata  yang  saling  berhubungan  antara  kata  satu  dengan  kata  yang  lainnya.  Dalam pemilahan,  setiap  kata  diberikan  kode  agar  tidak  terjadi double-input .  Sebagai  contoh pengelompokan kata akan ditampilkan pada Tabel 1, Tabel 2, Tabel 3, dan Tabel 4:

## Tabel 1. Kata acuan
Code POS Words Meaning 001 V Simpan menaruh  di  tempat  yg aman  supaya  jangan rusak, hilang Tabel 2. Sinonim dari kata acuan Code Syns Syns POS Syns Meaning Syns 002 Ringkas V menjadikan ringkas (tidak banyak memerlukan tempat) 003 Tabung V memasukkan uang sebagai uang simpanan 004 Cadang V menjadikan (menyimpan) sesuatu sebagai persediaan untuk  suatu  keperluan (yang akan dipakai apabila diperlukan saja) Tabel 3. Antonim dari kata acuan Code Ants Ants POS Ants Meaning Ants 005 Ambil V Pegang untuk dibawa Tabel 4 . Imbuhan dari kata acuan Code Imbuhan Imbuhan POS Imbuhan Meaning Imbuhan 006 Penyimpan N Orang yg menyimpan 007 Menyimpan V mengemasi 008 Bersimpan V berkemas  (meringkas, membereskan barang dagangan,  pakaian  yg akan dibawa bepergian)
Vol. 2, No. 2, Agustus 2020, Halaman 198-209 009 Tersimpan V sudah ditaruh di tempat yang aman

## Input Kata
Perbendaharaan kata yang telah dipilah, direpresentasikan menggunakan node yang ditanamkan properti nama kata, arti kata, dan jenis kata. Sehingga, akan membentuk skema node seperti yang ditampilkan pada Gambar 2.
Gambar 2. Skema Node
Neo4J  memberikan  kemudahan  dalam  meng- entry- kan  data  ke  dalam  basis  data,  yakni dengan menggunakan Cypher. Cypher adalah bahasa query Graph Database yang ekspresif (namun ringkas).[8] Sehingga, penggunaan klausa cypher yakni CREATE mempunyai peran yang  sangat  besar.  Contoh  pembuatan node sebagai  perwakilan  untuk  seluruh perbendaharaan kata adalah sebagai berikut :
CREATE (Ambil :VWords{name : “Ambil”, meaning : “Pegang untuk dibawa”, POS : “Verba”})

## Hubungkan Kata
Node yang  telah  dimasukkan  di  dalam database diberikan  sebuah  relasi  antara  satu dengan yang lainnya. Pemberian relasi setiap node dapat menggunakan cypher . Pemberian relasi  dilakukan  secara  berurutan  sesuai  dengan  hasil  pemilahan  kata  seperti  yang ditampilkan pada Tabel 1, Tabel 2, Tabel 3, dan Tabel 4. Relasi setiap node dibagi menjadi 4 macam. Setiap relasi akan divisualisasikan dengan warna garis yang berbeda-beda pula. Macam-macam  relasi  antara  lain  yaitu  Sinonim,  Antonim,  Imbuhan,  dan  KataDasar. Sehingga, akan terbentuk skema yang ditampilkan oleh Gambar 5.
Gambar 3. Skema graph
Berdasarkan Gambar 3 maka dibuat contoh yang dapat mewakili setiap proses pembuatan relasi setiap node di dalam database sebagai berikut :
MATCH(Ambil :VWords), (Simpan :VWords) WHERE Ambil.name = “Ambil” and Simpan.name = “Simpan” CREATE (Ambil)-[:Antonim]->(Simpan) CREATE (Simpan)-[:Antonim]->(Ambil) RETURN Ambil, Simpan

## Uji coba
Proses  uji  coba database setelah  setiap node direlasikan  adalah  pengujian  tingkat kemiripan kata yang terdapat di dalam database . Uji coba akan dilakukan di dalam Neo4J dengan  menjalankan cypher  query . Cypher  query adalah  bahasa Graph  Database yang mempunyai sifat ekspresif namun ringkas. Proses uji coba ini akan menguji dalam pencarian dan memvisualisasikan seluruh jarak terdekat antara 2 kata, menampilkan setiap kata yang berelasi dengan kata kunci, dan pencarian kata berdasarkan relasi dengan kata kunci.

## Mencari dan memvisualisasikan seluruh jarak terdekat antara 2 kata
Uji coba dalam database dimulai dengan mencoba mencari dan memvisualisasikan seluruh  jarak  terdekat  antara  2  kata.  Sebagai  contoh  untuk  mewakili  keseluruhan pencarian jarak dapat dilakukan dengan cypher query sebagai berikut :
MATCH  path  =  allShortestPaths(  (n:VWords{name  :  "Menitip"})-[*]- (m:VWords{name : "Capai"}) ) RETURN path

## Menampilkan setiap kata yang berelasi dengan kata kunci
Uji  coba  ini  bertujuan  untuk  menampilkan list nama  setiap  kata  yang  mempunyai relasi dengan kata kunci. Cypher yang digunakan adalah sebagai berikut : MATCH  (x:VWords)-[relatedTo]-(y:VWords  {name:  "Simpan"})  RETURN x.name, Type(relatedTo), y.name

## Pencarian kata berdasarkan relasi dengan kata kunci
Uji  coba  ini  bertujuan  untuk  menampilkan  perbendaharaan  kata  yang  mempunyai relasi tertentu terhadap kata kunci. Cypher yang digunakan adalah sebagai berikut : MATCH (x:VWords)-[r:Sinonim]->(y:VWords) WHERE x.name = "Ambil" RETURN x,y

## Implementasi
Pada  tahap  ini,  pengujian  fokus  pada  perangkat  lunak  secara  dari  segi  logik  dan fungsional serta memastikan bahwa semua bagian sudah teruji.[10] Sehingga menghasilkan sistem yang sesuai dengan kebutuhan user .

## Implementasi dalam bentuk aplikasi
Pada tahap setelah uji coba database , maka dirancang sebuah aplikasi sederhana dengan menggunakan Bahasa Pemrograman Java yang didukung dengan IDE Netbeans 8.2. Proses menghubungkan  dengan database menggunakan  Java  Driver  1.7.2.  Aplikasi  ini  akan mempunyai alur berjalan yang akan ditampilkan pada Gambar 4.

## HASIL DAN PEMBAHASAN

## Hasil Entry Database
Gambar 5. Visualisasi data di dalam database
Data  yang  di- entry -kan  akan  ditampilkan  menjadi  bentuk graph seperti  gambar  5. Node berwarna oranye memvisualisasikan bahwa kata tersebut adalah kata verba, sedangkan node yang berwarna  hijau  memvisualisasikan  bahwa  kata  tersebut  merupakan  kata  nomina.  Sehingga  akan tampak dengan jelas perbedaan dari kedua jenis kata tersebut. Setiap node dihubungkan dengan garis penghubung dengan warna yang berbeda. Garis berwarna biru menandakan Imbuhan, garis berwarna hijau  menandakan  Sinonim,  garis  warna  ungu  menandakan  KataDasar,  dan  garis  warna  merah menandakan  Antonim.  Hubungan  setiap node berprinsip  bolak-balik.  Sehingga,  setiap node mempunyai sifat yang saling berelasi dengan node yang lain.

## Hasil Uji Coba

## Mencari dan memvisualisasikan seluruh jarak terdekat antara 2 kata
Setelah  hasil  visualisasi  data  sudah  sesuai.  Data  diuji  coba  dengan  memasukkan Cypher untuk mencari jarak terdekat antara 2 node. Berikut adalah hasil dari pencarian jalur terdekat :
Gambar 6. Hasil uji pencarian jarak terdekat antara 2 kata
Gambar 6 menampilkan hasil dari visualisasi pencarian jarak terdekat dari tujuan awal adalah kata “Capai” hingga menuju kata “Menitip”.

## Menampilkan setiap kata yang berelasi dengan kata kunci
Gambar 7 . Hasil uji penampilan setiap kata yang berelasi dengan kata kunci
Proses menampilkan kata yang berelasi dengan kata kunci mempunyai hasil yang akan ditampilkan pada Gambar 7. Pada gambar tersebut menjelaskan bahwa terdapat setiap kata yang saling berkaitan dengan kata kunci dengan relasi yang bermacam - macam. Daftar kata dalam uji coba ini akan dilanjutkan ke dalam implementasi aplikasi untuk menampilkan setiap kata yang berelasi.

## Pencarian kata berdasarkan relasi dengan kata kunci
Setelah  hasil  visualisasi  data  sudah  sesuai.  Data  diuji  coba  dengan  memasukkan Cypher untuk  pencarian  berdasarkan  relasi  yang  diberikan  pada  setiap node .  Berikut adalah  hasil  pencarian  kata  menggunakan  kata  kunci  yang  sama,  tetapi  berdasarkan relasi yang berbeda.
Gambar 8. Hasil uji pencarian berdasarkan Sinonim kata
Gambar 9. Hasil uji pencarian berdasarkan Imbuhan
Gambar 8 dan  Gambar 9 memberikan hasil visualisasi  pencarian sebuah kata dengan kata  kunci  “Ambil”.  Gambar  8  memvisualisasikan  hasil  perbendaharaan  kata  yang berdasarkan relasi Sinonim kata. Sedangkan, pada Gambar 9 memvisualisasikan hasil perbendaharaan kata yang berdasarkan relasi Imbuhan kata.

## Hasil Implementasi dalam bentuk aplikasi
Perancangan  aplikasi  sederhana  menggunakan  alur  yang  ditampilkan  pada  gambar  4 mempunyai  hasil  yang  ditunjukkan  pada  gambar  8.  Berikut  adalah  desain  pada software tersebut :
Input
Process Output Gambar 10a.
Gambar 10b.
Gambar 10c. Gambar 10. Desain perancangan aplikasi
Hasil implementasi yang telah ditampilkan pada gambar 10 menjelaskan tentang desain dari perancangan  aplikasi.  Gambar  10a  menjelaskan  tentang  proses input ,  gambar  10b menjelaskan tentang process , gambar 10c menjelaskan tentang proses output .
Vol. 2, No. 2, Agustus 2020, Halaman 198-209
Visualisasi software dari desain tersebut adalah sebagai berikut:
Gambar 12 . Hasil Implementasi di Aplikasi
Gambar  11  menunjukan  elemen-elemen  pada database .  Sedangkan  pada  gambar  12 menampilkan hasil dari uji coba dalam menampilkan perbendaharaan kata yang berdasarkan Sinonim dari kata kunci “Menyimpan”. Hal ini menunjukkan bahwa hasil yang diperoleh yaitu memuaskan dan data yang ditampilkan sesuai dengan yang ada di database .

## KESIMPULAN
Berdasarkan hasil uji yang telah dilakukan dapat disimpulkan bahwa penggunaan Graph Database dalam  perancangan WordNet memiliki  tingkat  fleksibilitas  yang  baik.    Relasi setiap node dapat dirubah atau di- update tanpa merusak atribut yang tertanam di dalam node. Visualisasi perbendaharaan kata dalam database lebih mudah dipahami untuk analisa relasi antar-kata karena setiap kata divisualisasikan dengan node dan garis sebagai relasinya yang mempunyai  warna  berbeda  antara  satu  dengan  lainnya.  Proses  uji  coba  Neo4J  juga menghasilkan  hasil  akhir  yang  diharapkan  seperti  mencari  jarak  terdekat  antar-kata  tanpa memandang  jenis  relasi  yang  menghubungkan  antar node. Selain  itu,  Neo4J  juga memudahkan dalam pengimplementasian database ke dalam pembuatan aplikasi sederhana yang mudah untuk digunakan. Penelitian selanjutnya diharapkan dapat menggunakan hasil dari penelitian ini dalam proses perhitungan similaritas makna kata. Sehingga, aplikasi dapat lebih dikembangkan dengan penambahan fitur hasil similaritas antar kata.

## REFERENSI
[1] K. Batsuren, A. Ganbold, A. Chagnaa, and F. Giunchiglia, “Building The Mongolian WordNet ,” 2019.
[2] D. J. Restina, M. A. Bijaksana, and K. M. Lhaksmana, “Pembangunan Synonym Set untuk WordNet Bahasa Indonesia dengan Menggunakan Metode Komutatif,” Ind. J. Comput. , vol. 4, no. 2, pp. 147– 156, 2019.
[3] K. Nagi, “A New Representation of WordNet ® using Graph Databases On-Disk and In-Memory,” DBKDA , 2013.
[4] Gonzalez-Agirre,  Aitor  et  al.  “A  Graph-Based  Method  to  Improve WordNet Domains.” CICLing (2012).
[5] Jain, Amita & Vij, Sonakshi & Castillo, Oscar. (2019). Hindi Query Expansion based on Semantic Importance  of  Hindi WordNet Relations  and  Fuzzy  Graph  Connectivity  Measures.  Computación  y Sistemas. 23. 10.13053/cys-23-4-2984.
[6] Arora, Piyush & Bakliwal, Akshat & Varma, Vasudeva. (2012). Hindi Subjective Lexicon Generation using WordNet Graph Traversal. Int-l J. Computational Linguistics and Applications. 3.
[7] G. Miller, R. Beckwith, C. Fellbaum, D. Gross, and K. Miller, “Introduction to WordNet : An On-line Lexical Database*,” vol. 3, 1991, doi: 10.1093/ijl/3.4.235.
[8] I. Robinson, J. Webber, and E. Eifrem, Graph Databases . O’Reilly Media, Inc., 2015.
[9] M. Ardani, M. A. Yaqin, and M. H. Suhartono, “Implementasi Graph Database untuk Menentukan Rute Perjalanan Transportasi Umum,” 2019.
[10] Tabrani, Muhamad. "Penerapan Metode Waterfall pada Sistem Informasi Inventori PT. Pangan Sehat Sejahtera." Jurnal Inkofar , vol. 1, no. 2, 2017.