Seminar Nasional Pengaplikasian Telematika SINAPTlKA 20 10 - ISSN 2086-825 1
Implementasi Aplikasi Chatterbot uDtuk Pajak Pribadi SPT Berbasis Web Dani Mardo', Is Mardianto
1
,
Desi Ramayant;'
Jurusan Teknik injormatika, Faku/tas Ilm u Komputer, Universitas Mereu fuana J/. Raya Meruya Se/a/an, Kemballgan, Jakarta, JJ650 E-mai l: des iramayanti @ yahoo.com
Abstrak Pajak merupakan sa lah satu pendapatan ne~ara terpenting sa at ini. Se bingga pemerintah perlu memberikan pengcrtian ser1a sosialisasi ya ng baik kcpada wajib pajak. Dalam pcnelitian ini, pcnulis mcmbuat website yang berfungsi sebagai sumber jnformasi serta sarana pembelajaran kepada wajib pajak, khususnya wajib pajak pribadi untuk dapat memabami masalah pajak dengan lebih baik. Untuk membuat website ini lebih mudah uDtuk diakses oleh user dan lebih interaktif, maka ditambahkan logika kecerdasan buatan, dimana d:lIam hal ini adalah chatterbot yanl! akan memproses babasa alami dan mensimulasikan p~rcakapan antara prOJ:!ram penf!j;!una dengan menggunakan bahasa seharihari. Sebingga user ya ng mengakses website ini dapat bertanya kepada siste m secara lanj;!sung dan sistem akan Illemberikao jawaban yang dibutuhkan oleh user. Kala Kunci : Pajak, SPT Buatan, C hatterbot
J
dengan kecerdasan buatan, yaitu menggunakan chatterOOt. Chauerbot (chatoot) itu seneliri merupakan sebuah konsep kecerdasan buatan natural language processing, yaitu sebuah program komputer yang di rancang untuk men simulas ikan intelegensia percakapan dengan satu .tau lebih pengguna dengan menggunakan metooe audio maupun visual. Dari hal tersebut diatas, maka penulis membuat sebuah website yang mengimplementasikan apli kasi chatterbot, dan dalam hal ini hanya dikhususkan untuk Pajak Pribadi SPT 1770. Dimana hasil dari peneli tian bertujuan untuk dapat membantu pemerintah dalam melakukan sos ialisas i dan pernbel ajaran tentan g pajak kepada masayarakat.
11. METODE PENELlTI AN Studi Literatur Pajak (SPT 1770), Chauerbot, Website
1
1770, Kecerdasan
Anali sis dan Perancangan sistem aplikasi chauerOOt untuk pajak pribadi SPT 1770 berbasis web
I. PENDAHULUAN Saat ini pemerintah sedang berusaha ~tuk mengajak masyarakat untuk dapat lebih merasa bahwa kew~ iiban membayar pajak merupakan suatu hal ya ng sangat penting dil ak ukan untuk kesejahteraan masyarakat itu sendiri. Untuk membuat masyarakat lebi h pedu li , maka pemerintah perlu melakukan sosial isasi mengenai pcntingnya pajak tersebut dan memberikan semua informasi mengenai pajak, misalnya jenis ~iib pajak, jenis pajak, prosedur yang di lakukan dalam pembayaran pajak, hak dan kewajiban w.j ib pajak dan informasi pendukung lai nn ya. Sosiali sasi pajak ini dapat dil akukan dengan menggunakan saran a tekn ologi in fomlasi, yang dewasa ini sudah merupakan bagian penting dalam kehidupan masusia. Salah satunya adalah pemanfaatan internet, yaitu website. Dengan media webs ite ini . maka masyarakat dapat mengakses infonn asi dan belajar mengenai semua hal yang herkaitan dengan pajak tersebut dengan lebih mudah. Agar webs ite ini dapat lebih interaktif, dimana user dapat menanyakan langsung kepada sistem. semua hal yang berhubungan dcn gan masalah pajak, dan s istem dapat memberikan jawaban yang diin ginkan oleh user, maka websit e ini dilambahkan
1 Impl ementasi s istem ap likas i chatterbot untuk pajak pribad i SPT 1770 berbasis web
1 Uji coba sistem apl ik asi chauerOOt untuk paj ak pribadi SPT 1770 berbasis web
Ill. HASIL DAN PEMBAHASAN 3. 1 Analisa Program TaxOOt (Tax Non-human AssislOnt) maupakan program chatterOOt herbasis database teks yang berarti kode program yang terbag i menjadi beberapa class memerlukan sebuah script berbasis teks sebaga i wadah perbendaharaan kata dan aturan tata bahasa untuk chatt erbot lersebut[31. Taxbot meru pakan
45
Seminar Nasional Pengaplikasian Telemalika SINAPTIKA 2010 - ISSN 2086-825 1
chatterbot turuoa" dari chatter bot sebclumnya yailu
Eli za (Charles Hayden) yang juga dibuat dengan mcnggunakan bahasa pemrograman Java. Sarn a halnya seperti chatterbot-chatterbot lainya, konsep dari Taxbot adalah menggabungkan metode parsing dengan logika AI yang diimplementasikan kedalam benlUk percakapan, sehingga Taxbot mampu memahami hasi l masukan dari manusia yang berupa lata bahasa dan meresponnya dengan tata bahasa yang
............
~
'"'=-,.="'-'
,
i
•
'-=--='1
R~ I
f · .. ····.. ··.······.·t.-·..... ·····... -··l
....-J.....--,
juga dim engerti manusia sehingga terjalin percakapan
layaknya manusia dengan manusia. Dalam penelitian ini taxbot di rancang untuk mengerti dan memahami pcrcakapan berbahasa Indonesia,
pemahamanya
pun
sebatas
proses
merespon dan rncngoiah kala menjadi sebuah kalimat utuh. Taxbot dirancang untuk rnenjadi sebuah sistem
Gambar 2. Blok Diagram Taxbot
yang bertugas menjawab pertanyaan-pertanyaan umum untuk sebuah website (dalam penelitian ini,
3.3 Pembuatan Program Program dimul ai dengan pembagian fungsi menurut class-classnya, dimana terdapat beberapa class, dimana masing-masing class berisi aturan yang berfungs i sebagai pengatur tingkah laku Taxbol. Class-class tersebut adalah sebagai berikut: I. Decamp Class ini berfungsi sebagai pengatur memori dan dekomposisi kata dari Taxbot. Didalam class ini dibangun proses inisialisasi kata dalam satu kalimat yang dimasukkan user dan perhitungan kemungkinan merespon kalimat tersebut dengan kalimat yang diambi l dari script da lam format yang bcmama reasemb. Di dalam class IIlI program hanya akan melakukan inisialisasi kata ya ng menjadi keyword, sedangkan Hasil dari in isialisasi akan dikirim kcdalam class lain yailu DecompList. Terdapat public class dengan nama Decamp, dan di dalam public class ini terdapat inisialisasi awal seperti pattern dengan ti pe data string , mem dengan tipe data Boolean yang berfungsi sebagai memori program dan currReasmb dengan tipe data integer sebaga i parameter penghitung kalimat Di dalam class decomp juga di inisialisasikan variable-variabcl yang akan digunakan di class ini dan beberapa class lainya. Proses inisialiasasinya adalah sebagai berikut:
Taxbot dii mplementasi kan ke dalam situs Pajak Pribadi SPT 1770) sehingga kosa kata yang dimiliki Taxbot akan terbatas seputar jawaban-jawaban dari pertanyaan-pertanyaan umum tentan g situs tersebut.
Untuk antar muka, Taxbot menggun akan tag applet sebagai frame. 3.2 Perancangan Program Taxbot dibuat untuk dapat mengerti dan memproses bahasa alami berdasarkan logika AI dan merespon masukan yang diterima dengan mengglUlakan keyword yang tcrsedia. Keyword, kosa kata dan aturan tata bahasa disimpan kedalam fi le script berbentuk text yang nantinya file script inilah yang menjadi surnber in formas i dari program utama. Karena Taxbot dibuat dengun mcnggunakan bahasa pemrograman Java, program utama dari Taxbot dibagi menjadi class-class yang nantinya dalam seti ap class dibangun logika dari tiap-tiap fungsi ter""asuk logika AI. Rancangan Taxbot ini merupakan ap likasi berbasis web.
l8:b
IAJ~e I ......:".-....
l:Uthent ic~ jon Request:
Oecomp( String pattern, boolea n ReasembList r easemb) { t hi s. pattern - pattern; t hi s.mem - mem; t h is. rea semb c reasemb; this.currReasmb = 1 00
: Authentication Respons e :
,
".
: Log Il'3nnclion ' , ~,~~~~-----+------~
,
8.b
l
2.
mem ,
DecompList Class ini berfungsi sebagai penamp'ung daftar yang dihasilkan dari inisialisasi pada class Decomp, menambahkan aturan tambahan untuk kalimat-kalimat yang sudah tadapat di daftar dan terdapat blok yang berfungsi sebagai pencetak output. 3. Estring .Fungsi dari class ini adalah men gatur bentuk ka lirnat termasuk aturan tanda baca dan spasi yang akan menjadi respon. Keyword hasil masukan dari
Gambar I. Use Case Diagram Taxbot
46
Seminar Nasional Pengapl ikasian Telematika SINAPTIKA 20 10 - ISSN 2086-825 1
user akan diterj emahkan keda lam bentuk digit 0-9, sedangkan kalimat-kalimat yang hukan keyword akan diterjemahkan menjadi tanda * atau #. Ketika keyword lelah didapal dan diubah kedalam benluk digital, program kemudian men cari letak dari keyword tersebut dan mencocokanya dengan pattern yang tersed ia yang sebelumnya telah diinisialisaikan di da lam class Decomp. Setelah penempatan keyword tersehut cocok den gan pattern yang ada, program kemudian mengembalikan nilai keyword yang tadinya berbenluk angka kedalam benluk kala semula. Kemudian program men gemas kalimat respon tersebut dengan menambahkan spasi dan tanda baca lainya Uika memang terdapat tanda baca dalam kalimat tersebut}. Terakh ir, program mel akukan pengecekan pada seliap kalim al dan meyakinkan kalimat-kalimat yang dihas ilkan mempunyai spasi dan landa baca yang lepal. 4. El iza Class E li za (unluk alasan kejelasan asa l program, penulis sengaja membuat class dengan nama program aslinya) ber isikan aturan-aturan mengenai Applet terrnasuk parameter dan info App let. D i class ini didek larasikan blok Public Void yang menenlukan jalanya fungsi Applet dan mul ai nya program, ur i cadangan tempat script dil etakan untuk penyangga kelika scripl ulama gagal dipanggil pad. tag Applel (setelah di uji coba ternyata Java memprioritaskan script yang berj alan adalah script ya ng berada pada server yang sarn a dengan class dan Applet). Blok yang menjal ankan ftmgsi App let dan pendek larasian uri adal.h sebagai beri kul:
public boolea n handl e Event (Event e) ( retur n e liza.handleEvent( e );) String getScriptParam() I String sc ript "" get Paramet er ( " script " ); if (script == null) script = sc ript URL; return script; J String getTest Param( ) { Str ing tes t = g etParameter ( " tes t") ; if (~est null) test testURL; j return tes t;) public S tring[} [} getParameterlnfo() String [] [J info = { ("script " , " URL " , "URL of script file " ), ("test", "URL", "URL of test file")); return info ; I public String getAppletInfo () I return " Eliza vO.l written by dani mardo ";}
5.
ElizaApp Semen tara E liza memanggil Apll el, ElizaApp berisikan aturan-aturan mengenai Applet tersebut. seperli resolusi frame, panjang scripl yang berada di dalam frame, serla ukuran frame lersebul. ElizaApp juga berfungsi sebagai pemicu jalanya App l e~ dan berhentinya App lel .. 6. ElizaMain Di dalam class E li zaMain inilah proses logika Al berlangsung, pengenalan syntax yang nantinya akan dipakai dalam scr ipt. Proses pengenalan input yang dimasukan oleh user juga berlan gsun g dalam class ini . termasuk pendeklarasian karakler-karakler ASC II. Selanjutnya program akan memeriksa setiap spasi dalam ka li mat input, setelah spasi selesai di inisialisasi. program akan merneca h ka li mat tersebut menjadi kata-kata terpi sah, memroses kala- kala tersebut dan mencari keyword dalam liap kata lersebut. Kernudian program memeriksa memory yang lerdapal dalam scripl, jika lidak dilemukan keyword di dalam mem ori, program akan merespon dengan kalimat yang berada di variable xnone. D i da lam scripl Taxbol lerdapal synlax golo yang mengirim kalimat respon ke baris yang dituju jika lerdapal jawaban yang sarna dari keyword yang berbeda. Berikul adalah pOlongan program yang mengindikasikan proses gala:
stati c String s c riptPathname "c: \ \cch \ \ eli za \ \script " ; static String testPathname ~c : \\cch\\eliza\\test ";
static ''http://www ript " ;
String
~,riptURL
monmouth.com/-~hayden/eliza/sc
String testURL static ''http ://www monmouth.com/-chayde n /eliza/te st ";
/ /static String testURL '' http://wwwgbcs.mt.att.com/-cch/eliza/test " ; boolean useWindow = true; boolean local = fal se; public void start( ) ( String script ~ getScriptPa r am(); Stri ng test = getTestPa r am() ; if (local) I script ... scriptPathname; test = testPathname ; ) showStatus ( "Loadi n g script from + script) ; e li za . readScript (local , script); showStatus ( "Ready " ); if (useWindow) eliza .runProgram(test , this); else eliza.runProgram{tes t, null); )
String assemble (Decomp d, String reply [1 , Key gotoKey) { String l i n es[ } = new Strinq[3]; d.stepRule() ; String rule = d.nextRule(); if (EString .match (rule, " goto + " lines)) ( gotoKey.copy(keys.getKey(lines[O])); if (gotoKey.key() != null) r eturn null; Syst em. out . println ( "Goto rule did not match key: " + lines [0]); return null;
47
Seminar Nasion.1 Pengaplikas ian Telematika SlNAPTIKA 20 10 - ISSN 2086-825 1
Key, Key List, dan KeySlack Keliga Class ini sebenamya lerbagi menjadi class lerpi sah yailu class Key, Class KeyLi sl, dan class
3.4 lmplementasi Program
KeyStack, karena masing-masing fungsi dari classclass ini tcrkait satu sarna lain. Fungsi utama dari ke liga class ini adaJah membuat daftar dari dekomposisi yang akan di gunakan pada output. Pada class Key proses inisialisasi dirnulai, disini juga di lakukan pendeklarasian variable yang nantinya akan
Pada proses input, user dapat memasukan pesan atau keywords setelah pesan atau kalimat pembuka Taxbot
7.
I . Proses Input
di gunakan pada ke tiga class tersebul. Pada class Keyli sl semua proses yang telah di eksekusi di class Key diurutkan, di cl ass inilah
terdapat
statement
penambahan
Key,
,
Ithis is a first note ~I hello L._ _ _ _ _ _ _ _
aturan
I
~ rlt-h-iS-j-s""'o-n-o-Ih-o"',-no""l-o"~
pembacaan kalimal, proses pemecahan kalimat kedal am kala, dan pemeriksaan tiap kala unluk men cari key yang tepal.jika terdapal kata yang merupakan key dari kalimat tersebut, key yang ditemukan akan di simpan di class KeySlack. C lass KeySlack, di class ini data dari proses yang di lakukan di class KeyList di simpan, penyusunan key
r---------~'r-~' a nole 9 : I am thinking can also be defined ~ on several ~ne s .-E----'
berdasarkan tingkat. proses ini akan menyimpan key dengan tingkal tert inggi pada level bawah. 8. Mem Class ini berisikan pengaturan memori dari Taxbot, pendeklarasian maksimal kapasitas memori. pendeklarasian variable memori, dan proses inisialisasi memori paling alas. dan proses penambahan memori 9.
,
~_ __'_~
Gambar 3. Proses Input 2 Proses lnisialisasi
,
PrePost
,
Oi dalam script yang merupakan kamus dari
IIn11I.Usation
~ ; ,
: Aulhanlicatfon Requnt
T axbot terdapat tag bemama pre dan post. Kedua lag
,
ini berfungsi sebagai substitusi awal dan akbir yang bila terdapat kat a-kala ini di da lam sebuah kalimat inplll, kata-kata in i akan di simpan di dalam rnemori dan akan dimunculkan Jagi di dalam output yang
Response :
,
IRe peilion I
,
,
I
dikeluarkan oleh Taxbol. Oi dalam class in il ah semua
: Another authentiutlon Request :
proses inisialisasi, dan p01yimpanan kata dilakukan .
,
10. PrePoslLisl
~
t
,
),
..-- ........ -....•...-...-..-.. ---.-.-...:
• 3r'1othar authentication Response •
Oi da lam class inilah semua hasil transformasi dari class PrePost di simpan, terdapat pencocokan string dari hasi l input,jika string tersebut cocok. maka program akan melanju lkan proses output ke class
Gam bar 4. Proses Inisialisasi
selanjutnya, jika tidak cocok, maka program akan melempar kern bali ke input. I I. Reasem bLi st Class ini berisi proses pengenalan lag reasemb yang berfungsi sebagai pembuat kalimal yang akan menjadi output dan proses pensortiran kata yang
Pada proses ini setiap pesan yang ditulis oleh user dicek oleh laxbot ada alau tidak keywords, seperli pada gambar d ilandai dengan "->" landa panah yang
ada diantara dua partisipan terjadi timbal balik respon dari keywords ya ng dimasukan user.
digunakan untuk menjadi output. 12 . SynList dan WorldLi sl
Class ini berisi pengelompokan kata-kala, dan hasil dari class akan menjadi sebuah lag dalarn script. Sedangkan class WordLi st berfungsi unluk mensortir liap kala hasil dari pemecahan kalimat yang di-inputkan oleh pengunjung situs.
48
Seminar Nasional Pengaplikasian Telematika SINAPTIKA 20 JO - ISSN 2086-8251
3 Proses Output
seorang pemegang saham atau komisaris atau pcgawai menengah atau pegawai rendah atau pekerja mandiri seperti dokter, notar ies • pengacara . Wajib Pajak Pribadi memiliki resiko mengalami Orang
~
pemeriksaan pajak.
I
»
penghasilan sepcrti apa yang tcrkena pajak p ibadi? yang dilaporkan biasanya tcrdiri dari
« cleat.eRequest iI' >
p~nghaSilan
OoWolk
penghasilan dari usaha adalah penghasilan yang diperoleh dari kegiatan usaha seperti berdagang atau memproduksi barang atau produk tertentu. Penghasilan dari pekerjaan bebas adalah penghasilan yang diperoleh dari kegiatan dalam profesi tertentu seperti dokter, pengaeara, notarisIPPAT, konsultan, dan sebagainya. Bagi Wajib Pajak Orang Pribadi tertentu, penghasilan diinvestasikan dalarn bentuk
WOIkOone
, : 00['18
saham,
Um
property,
Gambar 5. Proses Output
tabungan,
atau
real
depos ito,
property.
sewa,
intellectual
Penghasilan
yang
diperoleh dari berbagai jenis investas i itu adalah dividen, bunga, royalti. atau cap ital gain. Kewajiban
Pesan yang sudah diproses dan ditemuan keywords yang ada maka akan di tampilan pada layar sesuai
Pajak yang melekat pada berbagai penghasilan ini adalah PPh Pasal 23 atau PPh Final yang biasanya dipotong oleh pihak yang memberi penghasilan.
dengan database keywords. 3.5 Pengujian Sistem Taxbot tnt di impl ementasikan pada situs http://www.pajakpribadi.co.ee. dan Berikut adalah beberapa hasil dari uji coba Aplikasi chatterbot.
IV. KESIMPULAN Dari hasil peneiit ian ya ng di lakukan, maka aplikasi chatterOOt berbahasa Indonesia berbasis pengolahan bahasa alami dengan nama TaxOOt berbas is w eb dapat mengert i baha sa manlls ia seh ari-
» Hello.
hari. Oimana harus diberikan aturan tala bahasa yang
selamat datang di s itus Pajak pribadi. Si lahkan ajukan pertanyaan anda mengenai pajak pri badi. » hai halo, bagaimana kabar anda? » baik terima kasib
syukurlah
kalau
tanyakan?
...
begitu,
ada
yang
ingin
sangat kompleksdan juga data respon yang bervariasi, sehingga tercipta suatu perca kapan yang baik. Apli kasi ini cukup Ill cmbantu para waj ib pajak khususnya pajak pribadi untuk lebih memahami
semua hal yang berkaitan dengan SPT 1770.
anda
V. DAFTAR PUSTAKA [I] Anita, Des iani . "Konsep Kecerdasan Buatan", And i Offset, Jakarta, 2006 [2] Ogden, W. C. and Bernick, P. " Handbook of fluman-Computer Interaction", Elsevi e r Sc ience Publisher (North· Holland). [3] Robby, Kurniawan , '·Pemrosesan Bahasa Natural Dengan Alctor Virtual", Jumal Universitas Gunadarma, 2008 [4] "Artifi cial Intellegence,"Wikipedia, 20 Apri l 20 I 0, http://en .Wikipedia.org/wiki/ Artificial inte lli gence. [5] http://a-i.com [6] http://chayden.netielizalEliza.html
» aplikasi ini 4membahas ten tang apa ? Aplikas i ini akan menjawab pertanyaan
yan g berkaitan dengan pajak pribadi tetap i karena masih
banyak keterbatasan bahasa yang saya miliki saya mohon maar jika kurang sempuma jawaban yang saya
berikan.
» orang yang wajib keDa pajak adalah ? Masyarakat yang terkena wajib pajak pribadi adalah orang yang memiliki penghasilan diatas Rp 13.200.000 ( Unluk wajib pajak yg bersangkutan ) sedangkan jika sudah menikah dikenakan tarnbahan sebesar Rp 1.200.000 atau jika memiliki istri yang bekerja dan memiliki penghasilan jika di gabungkan dengan penghasilan suami ditambahkan Rp 13 .200.000 dan tarnbahan untuk seliap anggota keluarga sedarah dalam garis keturunan lurus, serta anak angkat yang menjadi tanggungan sepenuhnya, paling banyak 3 orang untuk seliap keluarga sebesar Rp 1.200.000,00. » sia pa yang saja orang yang tel'kena pajak pribadi ?
Wajib Pajak Pribadi adalah oran g yang memperoleh penghas ilan baik sebagai seorang direktur dari satu, beberapa, atau bahkan ratusan peru sah aan alau
49
I