Seminar Nasional Pengaplikasian Telematika SINAPTIKA 2010 – ISSN 2086-8251
Implementasi Aplikasi Chatterbot untuk Pajak Pribadi SPT Berbasis Web Dani Mardo1, Is Mardianto2, Desi Ramayanti3 Jurusan Teknik Informatika, Fakultas Ilmu Komputer, Universitas Mercu Buana Jl. Raya Meruya Selatan, Kembangan, Jakarta, 11650 E-mail :
[email protected] dengan kecerdasan buatan, yaitu menggunakan chatterbot. Chatterbot (chatbot) itu sendiri merupakan sebuah konsep kecerdasan buatan natural language processing, yaitu sebuah program komputer yang di rancang untuk mensimulasikan intelegensia percakapan dengan satu atau lebih pengguna dengan menggunakan metode audio maupun visual. Dari hal tersebut diatas, maka penulis membuat sebuah website yang mengimplementasikan aplikasi chatterbot, dan dalam hal ini hanya dikhususkan untuk Pajak Pribadi SPT 1770. Dimana hasil dari penelitian bertujuan untuk dapat membantu pemerintah dalam melakukan sosialisasi dan pembelajaran tentang pajak kepada masayarakat.
Abstrak -- Pajak merupakan salah satu pendapatan negara terpenting saat ini. Sehingga pemerintah perlu memberikan pengertian serta sosialisasi yang baik kepada wajib pajak. Dalam penelitian ini, penulis membuat website yang berfungsi sebagai sumber informasi serta sarana pembelajaran kepada wajib pajak, khususnya wajib pajak pribadi untuk dapat memahami masalah pajak dengan lebih baik. Untuk membuat website ini lebih mudah untuk diakses oleh user dan lebih interaktif, maka ditambahkan logika kecerdasan buatan, dimana dalam hal ini adalah chatterbot yang akan memproses bahasa alami dan mensimulasikan percakapan antara program pengguna dengan menggunakan bahasa seharihari. Sehingga user yang mengakses website ini dapat bertanya kepada sistem secara langsung dan sistem akan memberikan jawaban yang dibutuhkan oleh user.
II. METODE PENELITIAN Studi Literatur Pajak (SPT 1770), Chatterbot, Website
Kata Kunci : Pajak, SPT 1770, Kecerdasan Buatan, Chatterbot Analisis dan Perancangan sistem aplikasi chatterbot untuk pajak pribadi SPT 1770 berbasis web
I. PENDAHULUAN Saat ini pemerintah sedang berusaha untuk mengajak masyarakat untuk dapat lebih merasa bahwa kewajiban membayar pajak merupakan suatu hal yang sangat penting dilakukan untuk kesejahteraan masyarakat itu sendiri. Untuk membuat masyarakat lebih peduli, maka pemerintah perlu melakukan sosialisasi mengenai pentingnya pajak tersebut dan memberikan semua informasi mengenai pajak, misalnya jenis wajib pajak, jenis pajak, prosedur yang dilakukan dalam pembayaran pajak, hak dan kewajiban wajib pajak dan informasi pendukung lainnya. Sosialisasi pajak ini dapat dilakukan dengan menggunakan sarana teknologi informasi, yang dewasa ini sudah merupakan bagian penting dalam kehidupan masusia. Salah satunya adalah pemanfaatan internet, yaitu website. Dengan media website ini, maka masyarakat dapat mengakses informasi dan belajar mengenai semua hal yang berkaitan dengan pajak tersebut dengan lebih mudah. Agar website ini dapat lebih interaktif, dimana user dapat menanyakan langsung kepada sistem, semua hal yang berhubungan dengan masalah pajak, dan sistem dapat memberikan jawaban yang diinginkan oleh user, maka website ini ditambahkan
Implementasi sistem aplikasi chatterbot untuk pajak pribadi SPT 1770 berbasis web
Uji coba sistem aplikasi chatterbot untuk pajak pribadi SPT 1770 berbasis web
III. HASIL DAN PEMBAHASAN 3.1 Analisa Program Taxbot (Tax Non-human Assistant) merupakan program chatterbot berbasis database teks yang berarti kode program yang terbagi menjadi beberapa class memerlukan sebuah script berbasis teks sebagai wadah perbendaharaan kata dan aturan tata bahasa untuk chatterbot tersebut[3]. Taxbot merupakan 45
Seminar Nasional Pengaplikasian Telematika SINAPTIKA 2010 – ISSN 2086-8251
chatterbot turunan dari chatterbot sebelumnya yaitu Eliza (Charles Hayden) yang juga dibuat dengan menggunakan bahasa pemrograman Java. Sama halnya seperti chatterbot-chatterbot lainya, konsep dari Taxbot adalah menggabungkan metode parsing dengan logika AI yang diimplementasikan kedalam bentuk percakapan, sehingga Taxbot mampu memahami hasil masukan dari manusia yang berupa tata bahasa dan meresponnya dengan tata bahasa yang juga dimengerti manusia sehingga terjalin percakapan layaknya manusia dengan manusia. Dalam penelitian ini taxbot di rancang untuk mengerti dan memahami percakapan berbahasa Indonesia, pemahamanya pun sebatas proses merespon dan mengolah kata menjadi sebuah kalimat utuh. Taxbot dirancang untuk menjadi sebuah sistem yang bertugas menjawab pertanyaan-pertanyaan umum untuk sebuah website (dalam penelitian ini, Taxbot diimplementasikan ke dalam situs Pajak Pribadi SPT 1770) sehingga kosa kata yang dimiliki Taxbot akan terbatas seputar jawaban-jawaban dari pertanyaan-pertanyaan umum tentang situs tersebut. Untuk antar muka, Taxbot menggunakan tag applet sebagai frame.
Gambar 2. Blok Diagram Taxbot 3.3 Pembuatan Program Program dimulai dengan pembagian fungsi menurut class-classnya, dimana terdapat beberapa class, dimana masing-masing class berisi aturan yang berfungsi sebagai pengatur tingkah laku Taxbot. Class-class tersebut adalah sebagai berikut: 1. Decomp 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 diambil dari script dalam format yang bernama reasemb. Di dalam class ini program hanya akan melakukan inisialisasi kata yang menjadi keyword, sedangkan Hasil dari inisialisasi akan dikirim kedalam class lain yaitu DecompList. Terdapat public class dengan nama Decomp, dan di dalam public class ini terdapat inisialisasi awal seperti pattern dengan tipe data string , mem dengan tipe data Boolean yang berfungsi sebagai memori program dan currReasmb dengan tipe data integer sebagai parameter penghitung kalimat. Di dalam class decomp juga di inisialisasikan variable-variabel yang akan digunakan di class ini dan beberapa class lainya. Proses inisialiasasinya adalah sebagai berikut:
3.2 Perancangan Program Taxbot dibuat untuk dapat mengerti dan memproses bahasa alami berdasarkan logika AI dan merespon masukan yang diterima dengan menggunakan keyword yang tersedia. Keyword, kosa kata dan aturan tata bahasa disimpan kedalam file script berbentuk text yang nantinya file script inilah yang menjadi sumber informasi dari program utama. Karena Taxbot dibuat dengan menggunakan bahasa pemrograman Java, program utama dari Taxbot dibagi menjadi class-class yang nantinya dalam setiap class dibangun logika dari tiap-tiap fungsi termasuk logika AI. Rancangan Taxbot ini merupakan aplikasi berbasis web.
Decomp(String pattern, boolean ReasembList reasemb) { this.pattern = pattern; this.mem = mem; this.reasemb = reasemb; this.currReasmb = 100
2.
mem,
DecompList Class ini berfungsi sebagai penampung daftar yang dihasilkan dari inisialisasi pada class Decomp, menambahkan aturan tambahan untuk kalimat-kalimat yang sudah terdapat di daftar dan terdapat blok yang berfungsi sebagai pencetak output. 3. Estring Fungsi dari class ini adalah mengatur bentuk kalimat termasuk aturan tanda baca dan spasi yang akan menjadi respon. Keyword hasil masukan dari
Gambar 1. Use Case Diagram Taxbot
46
Seminar Nasional Pengaplikasian Telematika SINAPTIKA 2010 – ISSN 2086-8251
user akan diterjemahkan kedalam bentuk digit 0-9, sedangkan kalimat-kalimat yang bukan keyword akan diterjemahkan menjadi tanda * atau #. Ketika keyword telah didapat dan diubah kedalam bentuk digital, program kemudian mencari letak dari keyword tersebut dan mencocokanya dengan pattern yang tersedia yang sebelumnya telah diinisialisaikan di dalam class Decomp. Setelah penempatan keyword tersebut cocok dengan pattern yang ada, program kemudian mengembalikan nilai keyword yang tadinya berbentuk angka kedalam bentuk kata semula. Kemudian program mengemas kalimat respon tersebut dengan menambahkan spasi dan tanda baca lainya (jika memang terdapat tanda baca dalam kalimat tersebut). Terakhir, program melakukan pengecekan pada setiap kalimat dan meyakinkan kalimat-kalimat yang dihasilkan mempunyai spasi dan tanda baca yang tepat. 4. Eliza Class Eliza (untuk alasan kejelasan asal program, penulis sengaja membuat class dengan nama program aslinya) berisikan aturan-aturan mengenai Applet termasuk parameter dan info Applet. Di class ini dideklarasikan blok Public Void yang menentukan jalanya fungsi Applet dan mulainya program, url cadangan tempat script diletakan untuk penyangga ketika script utama gagal dipanggil pada tag Applet (setelah di uji coba ternyata Java memprioritaskan script yang berjalan adalah script yang berada pada server yang sama dengan class dan Applet). Blok yang menjalankan fungsi Applet dan pendeklarasian url adalah sebagai berikut:
public boolean handleEvent(Event e) { return eliza.handleEvent(e);} String getScriptParam() { String script = getParameter("script"); if (script == null) script = scriptURL; return script; } String getTestParam() { String test = getParameter("test"); if (test == null) test = testURL; return test;} public String[][] getParameterInfo() { String[][] info = { {"script", "URL", "URL of script file"}, {"test", "URL", "URL of test file"}}; return info;} public String getAppletInfo() { return "Eliza v0.1 written by dani mardo";}
5.
ElizaApp Sementara Eliza memanggil Apllet, ElizaApp berisikan aturan-aturan mengenai Applet tersebut, seperti resolusi frame, panjang script yang berada di dalam frame, serta ukuran frame tersebut. ElizaApp juga berfungsi sebagai pemicu jalanya Applet, dan berhentinya Applet. 6. ElizaMain Di dalam class ElizaMain inilah proses logika AI berlangsung, pengenalan syntax yang nantinya akan dipakai dalam script. Proses pengenalan input yang dimasukan oleh user juga berlangsung dalam class ini, termasuk pendeklarasian karakter-karakter ASCII. Selanjutnya program akan memeriksa setiap spasi dalam kalimat input, setelah spasi selesai di inisialisasi, program akan memecah kalimat tersebut menjadi kata-kata terpisah, memroses kata-kata tersebut dan mencari keyword dalam tiap kata tersebut. Kemudian program memeriksa memory yang terdapat dalam script, jika tidak ditemukan keyword di dalam memori, program akan merespon dengan kalimat yang berada di variable xnone. Di dalam script Taxbot terdapat syntax goto yang mengirim kalimat respon ke baris yang dituju jika terdapat jawaban yang sama dari keyword yang berbeda. Berikut adalah potongan program yang mengindikasikan proses goto:
static String scriptPathname = "c:\\cch\\eliza\\script"; static String testPathname = "c:\\cch\\eliza\\test"; static String scriptURL = "http://www.monmouth.com/~chayden/eliza/sc ript"; static String testURL = "http://www.monmouth.com/~chayden/eliza/te st"; //static String testURL = "http://wwwgbcs.mt.att.com/~cch/eliza/test"; boolean useWindow = true; boolean local = false; public void start() { String script = getScriptParam(); String test = getTestParam(); if (local) { script = scriptPathname; test = testPathname; } showStatus("Loading script from " + script); eliza.readScript(local, script); showStatus("Ready"); if (useWindow) eliza.runProgram(test, this); else eliza.runProgram(test, null);}
String assemble(Decomp d, String reply[], Key gotoKey) { String lines[] = new String[3]; d.stepRule(); String rule = d.nextRule(); if (EString.match(rule, "goto *", lines)) { gotoKey.copy(keys.getKey(lines[0])); if (gotoKey.key() != null) return null; System.out.println("Goto rule did not match key: " + lines[0]); return null;
47
Seminar Nasional Pengaplikasian Telematika SINAPTIKA 2010 – ISSN 2086-8251
7.
Key, KeyList, dan KeyStack Ketiga Class ini sebenarnya terbagi menjadi class terpisah yaitu class Key, Class KeyList, dan class KeyStack, karena masing-masing fungsi dari classclass ini terkait satu sama lain. Fungsi utama dari ke tiga class ini adalah membuat daftar dari dekomposisi yang akan digunakan pada output. Pada class Key proses inisialisasi dimulai, disini juga dilakukan pendeklarasian variable yang nantinya akan digunakan pada ke tiga class tersebut. Pada class Keylist semua proses yang telah di eksekusi di class Key diurutkan, di class inilah terdapat statement penambahan Key, aturan pembacaan kalimat, proses pemecahan kalimat kedalam kata, dan pemeriksaan tiap kata untuk mencari key yang tepat.jika terdapat kata yang merupakan key dari kalimat tersebut, key yang ditemukan akan disimpan di class KeyStack. Class KeyStack, di class ini data dari proses yang di lakukan di class KeyList disimpan, penyusunan key berdasarkan tingkat, proses ini akan menyimpan key dengan tingkat tertinggi pada level bawah. 8. Mem Class ini berisikan pengaturan memori dari Taxbot, pendeklarasian maksimal kapasitas memori, pendeklarasian variable memori, dan proses inisialisasi memori paling atas.dan proses penambahan memori 9. PrePost Di dalam script yang merupakan kamus dari Taxbot terdapat tag bernama pre dan post. Kedua tag ini berfungsi sebagai substitusi awal dan akhir yang bila terdapat kata-kata ini di dalam sebuah kalimat input, kata-kata ini akan di simpan di dalam memori dan akan dimunculkan lagi di dalam output yang dikeluarkan oleh Taxbot. Di dalam class inilah semua proses inisialisasi, dan penyimpanan kata dilakukan. 10. PrePostList Di dalam class inilah semua hasil transformasi dari class PrePost di simpan, terdapat pencocokan string dari hasil input, jika string tersebut cocok, maka program akan melanjutkan proses output ke class selanjutnya, jika tidak cocok, maka program akan melempar kembali ke input. 11. ReasembList Class ini berisi proses pengenalan tag reasemb yang berfungsi sebagai pembuat kalimat yang akan menjadi output dan proses pensortiran kata yang digunakan untuk menjadi output. 12. SynList dan WorldList Class ini berisi pengelompokan kata-kata, dan hasil dari class akan menjadi sebuah tag dalam script. Sedangkan class WordList berfungsi untuk mensortir tiap kata hasil dari pemecahan kalimat yang di-inputkan oleh pengunjung situs.
3.4 Implementasi Program 1. Proses Input Pada proses input, user dapat memasukan pesan atau keywords setelah pesan atau kalimat pembuka Taxbot
Gambar 3. Proses Input 2 Proses Inisialisasi
Gambar 4. Proses Inisialisasi Pada proses ini setiap pesan yang ditulis oleh user dicek oleh taxbot ada atau tidak keywords, seperti pada gambar ditandai dengan "->" tanda panah yang ada diantara dua partisipan terjadi timbal balik respon dari keywords yang dimasukan user.
48
Seminar Nasional Pengaplikasian Telematika SINAPTIKA 2010 – ISSN 2086-8251
3 Proses Output
seorang pemegang saham atau komisaris atau pegawai menengah atau pegawai rendah atau pekerja mandiri seperti dokter, notaries , pengacara . Wajib Pajak Orang Pribadi memiliki resiko mengalami pemeriksaan pajak . >> penghasilan seperti apa yang terkena pajak pribadi ? Penghasilan yang dilaporkan biasanya terdiri dari 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, pengacara, notaris/PPAT, konsultan, dan sebagainya. Bagi Wajib Pajak Orang Pribadi tertentu, penghasilan diinvestasikan dalam bentuk saham, tabungan, deposito, sewa, intellectual property, atau real property. Penghasilan yang diperoleh dari berbagai jenis investasi itu adalah dividen, bunga, royalti, atau capital gain. Kewajiban Pajak yang melekat pada berbagai penghasilan ini adalah PPh Pasal 23 atau PPh Final yang biasanya dipotong oleh pihak yang memberi penghasilan.
Gambar 5. Proses Output Pesan yang sudah diproses dan ditemuan keywords yang ada maka akan di tampilan pada layar sesuai dengan database keywords. 3.5 Pengujian Sistem Taxbot ini di implementasikan pada situs http://www.pajak pribadi.co.cc, dan Berikut adalah beberapa hasil dari uji coba Aplikasi chatterbot.
IV. KESIMPULAN Dari hasil penelitian yang dilakukan, maka aplikasi chatterbot berbahasa Indonesia berbasis pengolahan bahasa alami dengan nama Taxbot berbasis web dapat mengerti bahasa manusia seharihari. Dimana harus diberikan aturan tata bahasa yang sangat kompleksdan juga data respon yang bervariasi, sehingga tercipta suatu percakapan yang baik. Aplikasi ini cukup membantu para wajib pajak khususnya pajak pribadi untuk lebih memahami semua hal yang berkaitan dengan SPT 1770.
>> Hello. selamat datang di situs Pajak pribadi. Silahkan ajukan pertanyaan anda mengenai pajak pribadi. >> hai halo, bagaimana kabar anda? >> baik terima kasih syukurlah kalau begitu, ada yang ingin anda tanyakan? >> aplikasi ini membahas tentang apa ? Aplikasi ini akan menjawab pertanyaan yang berkaitan dengan pajak pribadi tetapi karena masih banyak keterbatasan bahasa yang saya miliki saya mohon maaf jika kurang sempurna jawaban yang saya berikan. >> orang yang wajib kena pajak adalah ? Masyarakat yang terkena wajib pajak pribadi adalah orang yang memiliki penghasilan diatas Rp 13.200.000 ( Untuk wajib pajak yg bersangkutan ) sedangkan jika sudah menikah dikenakan tambahan 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 tambahan untuk setiap anggota keluarga sedarah dalam garis keturunan lurus, serta anak angkat yang menjadi tanggungan sepenuhnya, paling banyak 3 orang untuk setiap keluarga sebesar Rp 1.200.000,00. >> siapa yang saja orang yang terkena pajak pribadi ? Wajib Pajak Pribadi adalah orang yang memperoleh penghasilan baik sebagai seorang direktur dari satu, beberapa, atau bahkan ratusan perusahaan atau
V. DAFTAR PUSTAKA [1] Anita, Desiani. “Konsep Kecerdasan Buatan”, Andi Offset, Jakarta, 2006 [2] Ogden, W. C. and Bernick, P. “Handbook of Human-Computer Interaction”, Elsevier Science Publisher (North-Holland). [3] Robby, Kurniawan, “Pemrosesan Bahasa Natural Dengan Aktor Virtual”, Jurnal Universitas Gunadarma, 2008 [4] “Artificial Intellegence,”Wikipedia, 20 April 2010, http://en.Wikipedia.org/wiki/Artificial_ intelligence. [5] http://a-i.com [6] http://chayden.net/eliza/Eliza.html
49