Implementasi Perintah Menampilkan Data Menggunakan Bahasa Indonesia Dengan Natural Language Processing PDF

Title Implementasi Perintah Menampilkan Data Menggunakan Bahasa Indonesia Dengan Natural Language Processing
Author Fahmi Fuadi
Pages 9
File Size 1.1 MB
File Type PDF
Total Downloads 384
Total Views 890

Summary

Implementasi Perintah Menampilkan Data Menggunakan Bahasa Indonesia Dengan Natural Language Processing Fahmi Fu’adi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Budi Luhur Jl. Raya Ciledug, Petukangan Utara, Kebayoran Lama, Jakarta Selatan 12260 Telp. (021) 5853753, Fax. (021) 58663...


Description

Accelerat ing t he world's research.

Implementasi Perintah Menampilkan Data Menggunakan Bahasa Indonesia Dengan Natural Language Processing Fahmi Fuadi

Related papers

Download a PDF Pack of t he best relat ed papers 

APLIKASI PENCARIAN INFORMASI DENGAN PERINTAH QUERY DALAM BAHASA INDONESIA ME… Fahmi Fuadi slide t eknik kompilasi Januardi Nasir Measurement and Comparison of Speed Dat a Processing In XML File by Using Naive Bayes algorit hm … Jalaludin Emilove

Implementasi Perintah Menampilkan Data Menggunakan Bahasa Indonesia Dengan Natural Language Processing Fahmi Fu’adi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Budi Luhur Jl. Raya Ciledug, Petukangan Utara, Kebayoran Lama, Jakarta Selatan 12260 Telp. (021) 5853753, Fax. (021) 5866369 E-mail : [email protected]

ABSTRAK Bahasa memegang peranan yang penting dalam proses komunikasi, sama halnya dengan bahasa query yang digunakan untuk komunikasi dengan DBMS(Database Management System) dalam mendapatkan informasi pada database yang tersedia. Permasalahan ini dialami oleh pengguna awam dalam mencari informasi yang ada pada database. Hal ini membutuhkan penerapan proses bahasa alami khususnya sebagai pengganti bahasa query kedalam bahasa lainnya, sehingga memungkinkan pengguna dapat berkomunikasi dengan komputer menggunakan bahasa sehari-hari pengguna. Hal ini membutuhkan penerapan proses bahasa alami khususnya sebagai pengganti bahasa query kedalam bahasa lainnya, sehingga memungkinkan pengguna dapat berkomunikasi dengan komputer menggunakan bahasa sehari-hari pengguna. Tujuan karya ilmiah ini yaitu untuk menerjemahkan bahasa query ke Bahasa Indonesia dengan menyajikan ringkasan informasi dari suatu basis data yang ramah untuk pengguna. Dalam hal ini penulis melakukan pembuatan aplikasi pencarian informasi dengan perintah query dalam Bahasa Indonesia menggunakan natural language processing metode top-down parsing. Aplikasi ini dikembangkan dengan menggunakan bahasa pemrograman PHP, dan basis data yang akan digunakan yaitu MySQL, serta user interface dikembangkan dengan menggunakan HTML, CSS dan Javascript. Spesifikasi software yang mendukung jalannya program yaitu PHP version 5.3.8, MySQL Database Version 5.0.8-dev, Apache Webserver 2.2.21 dan browser. Agar dalam keadaan yang optimal, maka dijelaskan bagaimana aplikasi menerjemahkan perintah dari Bahasa Indonesia menjadi Bahasa Query MySQL. Hasil pengujian menunjukan aplikasi bekerja dengan baik, walaupun ada beberapa kelemahannya antara lain, ada beberapa sintaks yang diharuskan menggunakan spasi atau tidak bisa menggunakan spasi, kondisi mempunyai dari group by (having). Manfaat yang diperoleh dengan adanya aplikasi ini antara lain, pengguna dapat dengan mudah membuat perintah query dengan Bahasa Indonesia tanpa ada kendala bahasa, pengguna dapat mencari dengan berbagai cara seperti halnya menggunakan query MySQL. Kata kunci : Natural Language Processing, Artificial Intelligence, Recursive Descent, Top-Down Parsing, Query

1. PENDAHULUAN Bahasa memegang peranan yang penting dalam proses komunikasi, sama halnya dengan bahasa query yang digunakan untuk komunikasi dengan DBMS(Database Management System) dalam mendapatkan informasi pada database yang tersedia. Namun masalah dapat terjadi jika pengguna tidak mengetahui bahasa query dalam pencarian data yang ada. Terlebih pengguna awam akan sulit untuk beradaptasi dengan tata bahasa dan tanda baca yang sesuai dengan perintah dari bahasa query. Permasalahan ini dialami oleh pengguna awam dalam mencari informasi yang ada pada database. Hal ini membutuhkan penerapan proses bahasa alami khususnya sebagai pengganti bahasa query ke dalam bahasa lainnya, sehingga memungkinkan pengguna

dapat berkomunikasi dengan komputer menggunakan bahasa sehari-hari pengguna. Tujuan karya ilmiah ini yaitu untuk menerjemahkan bahasa query ke Bahasa Indonesia dengan menyajikan ringkasan informasi dari suatu basis data yang ramah untuk pengguna. Natural language Processing adalah bagian dari ilmu kecerdasan tiruan yang digunakan untuk proses suatu tata bahasa yang memungkinkan adanya interaksi antara manusia dengan komputer. Dalam hal ini penulis akan menggunakan metode top-down parsing dalam melakukan penelusuran tata bahasa. Alasan pengguna menggunakan metode ini yaitu proses pengecekan bahasa dimulai dari simbol lalu rekursif kiri untuk mendapatkan kalimat sesuai dengan aturan produksi yang ada, hal ini seperti pengecekan tata bahasa Indonesia umunya yang dimulai melalui kiri.

2. LANDASAN TEORI

c.

Understander Understander bekerja sama dengan knowledge base dalam menentukan makna suatu kalimat. Untuk mengetahui makna dari suatu input kalimat, sistem harus mengetahui hal-hal tentang kata tersebut dan bagaimana kata tersebut digabung dan membentuk suatu kalimat yang bermakna. Tujuan dari understander adalah memanfaatkan parser tree yang telah terbentuk sebelumnya agar mengacu pada knowledge base.

d.

Knowledge Base Knowledge base merupakan basis pengetahuan yang dijadikan acuan oleh understander dalam menentukan makna suatu kalimat. Knowledge base berisi sekumpulan informasi yang terorganisasi dengan baik, yang secara unik diformat ke dalam bentuk struktur data.

e.

Generator Generator berfungsi menghasilkan jawaban berdasarkan masukan yang telah ada sebelumnya yang tersimpan dalam memori.

Natural Language Processing (NLP) merupakan salah satu aplikasi Artificial Intelligence (AI) yang dikembangkan agar komputer mengerti dan memahami bahasa alami yang diberikan dan memberi respon hasil pengolahan sesuai yang diinginkan.[2] NLP tidak bertujuan untuk transformasi bahasa yang diterima dalam bentuk teks atau suara menjadi data digital dan/atau sebaliknya, melainkan bertujuan untuk memahami arti dari kalimat yang diberikan dalam bahasa alami dan memberikan respon yang sesuai. Misalnya dengan melakukan suatu aksi tertentu atau menampilkan data tertentu. Untuk mencapai tujuan ini dibutuhkan tiga tahap proses. Proses yang pertama ialah parsing atau analisa sintaksis yang memeriksa kebenaran struktur kalimat berdasarkan suatu grammar(tata bahasa) dan lexicon(kosakata) tertentu. Proses kedua ialah semantic interpretation atau interpretasi semantic yang bertujuan untuk merepresentasikan arti dari kalimat secara context-independent untuk keperluan lebih lanjut. Sedangkan proses ketiga ialah contextual interpretation atau interpretasi kontekstual yang bertujuan untuk merepresentasikan arti secara context dependent dan menentukan maksud dari penggunaan kalimat.[4] 2.1. Komponen Natural Language Processing ada lima komponen processing[5] yaitu : a.

b.

dalam

natural

language

Parser Parser merupakan komponen utama dalam natural language system. Parser menganalisis input kalimat secara sintaksis. Setiap kata dan bagian-bagiannya diidentifikasi. Kemudian katakata tersebut dipetakan oleh parser ke dalam struktur yang disebut parser tree. Parse tree menunjukkan makna dari semua kata dan bagaimana cara menggabungkan kata-kata tersebut. Lexicon Parser bekerja sama dengan lexicon melakukan proses syntax analysis. Lexicon berisi semua kata yang dapat dikenal oleh program. Kalimat diurai oleh parser dan lexicon menjadi bentuk parser tree dan membangun struktur data baru yang dapat membantu dalam memperoleh makna sebenarnya dari sebuah kalimat.

Gambar 1: Blok Utama dalam natural language[5]

2.2. Bidang Language

Pengetahuan

Dalam

Natural

Secara singkat pengolahan bahasa alami mengenal beberapa tingkat pengolahan, berikut dijelaskan bidang-bidang pengetahuan yang berhubungan dengan Natural Language Processing[3] : a.

Fonetik dan fonologi : berhubungan dengan suara yang menghasilkan kata yang dapat dikenali. Bidang ini menjadi penting dalam proses aplikasi yang memakai metoda speech based system.

b.

Morfologi : yaitu pengetahuan tentang kata dan bentuknya dimanfaatkan untuk membedakan satu kata dengan lainnya. Pada tingkat ini juga dapat dipisahkan antara kata dan elemen lain seperti tanda baca. Sebagai contoh kata going :

1) Going (word) 2) Go (root) 3) Ing (suffix)

penjelasan lebih lengkap dari langkah NLP sebagai Kompilasi teks : a.

c.

Sintaksis : yaitu pemahaman tentang urutan kata dalam pembentukan kalimat dan hubungan antar kata tersebut dalam proses perubahan bentuk dari kalimat menjadi bentuk yang sistematis. Meliputi proses pengaturan tata letak suatu kata dalam kalimat yang dapat dikenali. Selain itu dapat pula dikenali bagian-bagian kalimat dalam suatu kalimat yang lebih besar. Sebagi contoh kalimat S dibentuk dari noun phrase(NP) dan verb phrase(VP) S-> NP,VP Dan berikutnya : NP -> DET, N VP -> V, NP NP -> N

d.

Semantic : yaitu pemetaan bentuk struktur sintaksis dengan memanfaatkan tiap kata ke dalam bentuk yang lebih mendasar dan tidak tergantung struktur kalimat. Semantic mempelajari arti suatu kata dan bagaimana dari arti kata – arti kata tersebut membentuk suatu arti dari kalimat yang utuh. Dalam tingkatan ini belum tercakup konteks dari kalimat tersebut.

e.

Pragmatic : pengetahuan pada tingkatan ini berkaitan dengan masing – masing konteks yang berbeda tergantung pada situasi dan tujuan pembuatan sistem.

f.

Discourse Knowledge : melakukan pengenalan apakah suatu kalimat yang sudah dibaca dan dikenali sebelumnya akan mempengaruhi arti dari kalimat selanjutnya. Informasi ini penting diketahui untuk melakukan pengolahan arti terhadap kata ganti orang dan untuk mengartikan aspek sementara dari informasi.

2.3. Langkah-langkah Analisa dalam bidang natural language Adapun beberapa langkah dalam melakukan proses NLP sebagai kompilasi teks, untuk melakukan analisa dari teks yang dimasukan maka analisa yang pertama yaitu analisa leksikal setelah analisa tersebut menghasilkan token atau pengenalan teks perkata yang dimasukan. Dilanjutkan dengan proses parsing untuk mengecek kebenaran dari kalimat atau teks yang sudah dimasukan, dari proses tersebut masuk ke dalam analisa semantik untuk menentukan makna dari serangkaian instruksi yang didapat. Berikut

Analisa Leksikal (Scanner) Menganalisis secara leksikal merupakan fase pertama yang dilakukan oleh suatu kompilator. Tugas utamanya adalah membaca karakter input dan memproduksi barisan dari token yang digunakan oleh suatu pengurai untuk melakukan analisis sintaks. Interaksi ini digambarkan pada Gambar 2. dalam menerapkan hal ini biasanya penganalisis leksikal menjadi subroutine atau coroutine dari suatu pengurai. Pada saat menerima perintah “ambil token berikut” dari pengurai, penganalisis leksikal membaca karakter input sampai dijumpai token yang berikutnya.[4]

Gambar 2: Interaksi antara penganalisis leksikal dan pengurai. [4]

b.

Analisa Sintaksis (Parser) Setiap bahasa mempunyai aturan-aturan yang memberikan struktur sintak dari programprogram yang terbentuk baik. Di pascal sebagai contoh suatu program terbentuk dari blok, blok terbentuk dari statements, statements terbentuk dari dari ekspresi, ekspresi terbentuk dari token, dan seterusnya. Sintak suatu bahasa program dapat digambarkan oleh notasi tata bahasa bebas-konteks atau notasi BNF(Backus-Naur Form). Sedangkan tata bahasa itu sendiri memberikan keuntungan yang besar baik kepada pen-design bahasa ataupun penulis kompilator. Pada model kompilator kita, pengurai menerima sekumpulan token dari penganalisis leksikal dan menguji bahwa kumpulan token itu dapat dibentuk oleh tata bahasa sumber bahasanya. Kita berharap pengurai itu dapat melaporkan setiap kesalahan sintak dengan cara yang baik. Pengurai itu juga harus dapat kembali bekerja jika menemukan kesalahan yang sering muncul sehingga pengurai itu dapat melakukan prosesnya terus sampai akhir masukannya. Berikut beberapa metode dalam proses penguraian(parsing)[4] : 1. Top-down Parsing Top-down parser bekerja dengan cara menguraikan sebuah kalimat mulai dari

constituent yang terbesar yaitu sampai menjadi constituent yang terkecil. Hal ini dilakukan terus-menerus sampai semua komponen yang dihasilkan ialah constituent terkecil dalam kalimat.

Pada metoda recursive descent simbol terminal maupun simbol variabelnya bukan karakter tetapi berupa besaran leksik sebagai simbol terminalnya dan besaran sintaks sebagai simbol variabelnya. Ciri dari metode ini adalah secara rekursif menurunkan semua variabel dari awal sampai bertemu terminal dan tidak pernah mengambil token secara mundur (no backtrack).

Top-down parser dapat diimplementasikan dengan berbagai bahasa pemrograman, namun akan lebih baik jika digunakan declarative language seperti Prolog atau LISP. Hal ini disebabkan oleh karena pada dasarnya proses parsing ialah proses searching yang dilakukan secara rekursif dan backtracking, dimana proses ini sudah tersedia secara otomatis dalam bahasa Prolog. Dengan demikian parser yang ditulis dalam Prolog atau bahasa deklaratif lainnya akan menjadi jauh lebih sederhana daripada parser yang dibuat dalam bahasa prosedural biasanya seperti Pascal, C dan sebagainya.

2. Bottom-up Parsing Bottom-up parser bekerja dengan cara mengambil satu demi satu kata dari kalimat yang diberikan, untuk dirangkaikan menjadi constituent yang lebih besar. Hal ini dilakukan terus-menerus sampai constituent yang terbentuk ialah sentence atau kalimat.[6] Kesederhanaan metode ini terletak pada predikat untuk parsing, yaitu parse yang hanya memiliki sebuah argumen. Argumen ini berisi kalimat yang akan di parse dalam bentuk list dari symbol. Kata-kata dari input kalimat akan dirangkaikan sambil mencari aturan yang lebih luas, sampai tinggal sebuah simbol saja dalam list, yaitu S.[6]

Ada 2 kelas metoda parsing top-down, yaitu kelas metoda dengan backup dan kelas metoda tanpa backup. Contoh metoda kelas dengan backup adalah metoda Brute- Force, sedangkan contoh metoda kelas tanpa backup adalah metoda recursive descent.[6] c.

Analisa Semantik Analisis semantik merupakan kelanjutan dari proses scanning dan parsing. Fungsi dari analisis semantik adalah untuk menentukan makna dari serangkaian instruksi yang terdapat dalam program sumber atau masukan dari penguna Menganalisa semantik harus mampu menentukan aksi atau respon apa yang yang akan dilakukan terhadap instruksi yang diberikan.[1]

3. RANCANGAN APLIKASI

SISTEM

DAN

3.1. Analisa Masalah Gambar 3: Contoh analisis menggunakan metode Recursive Descent.[6]

Kelas metoda tanpa backup, termasuk metoda recursive descent, adalah kelas metoda parsing yang tidak menggunakan produksi alternatif ketika hasil akibat penggunaan sebuah produksi tidak sesuai dengan simbol input.

Dalam analisa ini penulis membuat langkah untuk pemrosesan bahasa alami dari Bahasa Indonesia menjadi Query Language untuk mendapatkan data yang sesuai dengan yang diinginkan pengguna, dari mulai input perintah yang dilakukan sesuai dengan aturan yang akan dibuat, lalu perintah yang sudah dimasukan akan di parsing dan melakukan pengelompokan sesuai dengan token yang terdaftar sebagai aturan produksi yang ada. Jika program

menemukan kalimat atau urutan yang tidak sesuai aturan produksi maka program akan memberi respon error. Setelah rangkaian kata sudah sesuai dengan tata bahasa, program akan menerjemahkan kalimat yang diterima kedalam bentuk Bahasa Query. Hasil terjemahan akan dieksekusi untuk menampilkan output yang ada. Output yang dimunculkan berbentuk tabel dan sesuai dengan perintah yang dimasukan oleh pengguna. Berikut alur program yang akan dibuat penulis pada gambar 4.

Gambar 6: Komponen pengolah bahasa alami untuk operasi query data.

b.

Bahasa alami yang digunakan pada sistem ini adalah bahasa Indonesia yang mempunyai tata aturan penulisan (grammar) tersendiri yang dituliskan dalam bentuk Backus Naur Form(BNF) sebagai aturan produksi yang bisa dimengerti oleh sistem. Aturan produksi merupakan suatu kaidah yang dibentuk untuk menyusun suatu kata atau perintah. Bentuk aturan produksi yang dihasilkan dari sebuah kalimat bahasa Indonesia yang dituliskan dalam bentuk BNF. Berikut definisi aturan produksi dalam bentuk BNF :

Gambar 4: Alur Program

3.2. Metode Algoritma yang akan dipakai yaitu dengan metode Top Down parsing. Metode ini melakukan parsing secara menurun dari root menuju ke daun(leaf). mode yang diambil yaitu non backtracking mode atau tidak mengambil token secara mundur. proses pencarian dengan cara menurun secara rekursif untuk semua variabel. Untuk langkah yang akan digunakan dalam mengolah bahasa alami penulis menggunakan tahapan sebagai berikut :

::= {field yang ada di db} ::= {table yang ada di db}

::= tampilkan | lihat ::= semua data | {} ::= |

::= dari

::=

::= yang | dimana

::= dan | atau ::= > | < | = | ! ::= {}1 ::= { }

::= ::={}1 {}1

Gambar 5: Komponen pengolah bahasa alami untuk operasi query data.

a.

Lexical Tugas utamanya adalah membaca karakter input dan memproduksi barisan dari token yang digunakan oleh suatu pengurai untuk melakukan analisis sintaks. Penganalisis leksikal membaca karakter input sampai dijumpai token yang berikutnya. Pada gambar 6. terdapat daftar token yang digunakan oleh penulis.

Parser Parser adalah suatu proses untuk menentukan rangkaian dari token ke dalam suatu tata bahasa tertentu atau tidak. Proses ini tergantung pada aturan produksi yang sudah didefinisikan.

c.

Understander Understander bekerja sama dengan knowledge base dalam menentukan makna suatu kalimat. Untuk mengetahui makna dari suatu input kalimat, sistem dapat mengetahui hal-hal tentang kata yang diproses dan bagaimana kata tersebut membentuk suatu kalimat yang

bermakna. Adapun hasil understander sebagai berikut:

dari

proses

Tampilkan -> select Lihat -> select Jumlah -> sum Hitung -> count Rata-rata -> avg Dari -> from Dimana -> where yang -> where Dan -> and Atau -> or Grup -> group Berdasarkan -> by d.

atau nilai agar dapat dieksekusi oleh fungsi mysql_query dalam program. 3.3. Alur Program Beberapa urutan-urutan proses yang harus dilalui digambarkan dalam bentuk flowchart. Flowchart dari setiap proses pada sebuah halaman akan dibahas pada penjelasan berikut ini : a. Proses Pengecekan Value Saat input perintah, hal yang pertama dipisahkan yaitu jika ada token yang bersifat value, hal ini berfungsi untuk menentukan perintah yang akan di parsing, berikut gambaran flowchart nya :

Knowledge Base Knowledge Base yaitu basis pengetahuan yang dijadikan acuan oleh understander dalam menentukan makna suatu kalimat. Knowledge base berisi sekumpulan informasi yang terorganisir kedalam bentuk struktur data. Berikut contoh dari knowledge base yang akan disediakan : Table 1: Knowledge base. Sintaks Indonesia Tampilkan Lihat

e.

Sintaks Query Select Select

Semua data

*

Dari Dimana Yang =

Form Where Where =

>=

< !=

>=

< !=

Seperti Dan Atau Grup

Like And Or Group

Berdasarkan Jumlah Hitung Rata-rata

By Sum Count Avg

Maksimum Minimum

Max Min

Generator Generator berfungsi menghasilkan jawaban dari hasil proses understander lalu memunculkan data dari perintah yang sudah memiliki makna

Gambar 7: Flowchart Pengecekan Value

b. Proses Parsing Perintah flowchart parsing perintah dan melakukan pengecekan sesuai dengan aturan produksi atau tidaknya perintah. Berikut gambaran flowchart nya

4. HASIL UJI IMPLEMENTASI Pengujian ini dilakukan bertujuan untuk mendapatkan hasil terjemahan yang sesuai dengan penerapan tata bahasa yang digunakan dan apakah...


Similar Free PDFs