SEMINAR NASIONAL TEKNOLOGI 2015 Institut Teknologi Nasional Malang ISSN: 2407 – 7534
Perancangan ChatBot Pembelajaran Pemrograman Berorientasi Object Berbasis Sistem Modular Wijaya. M Hadi*, Sotyohadi, Setiawan. Ridwan Syarif Program Studi Pascasarjana Teknik ElektroUniversitas Brawijaya Jl. Veteran Malang 65145 Indonesia, 0341-56542 *e-mail:
[email protected]
ABSTRAK Makalah ini memaparkan sebuah desain untuk membantu siswa dalam mempelajari bahasa Pemrograman Berorientasi Object (PBO) menggunakan antarmuka chatbot. Dalam pemahaman konsep PBO terdapat 4 pilar (Abstraction, Inheritance, Encapsulation dan Polymorphism), akan tetapi pemahaman terhadap konsep tersebut menjadi kompleks karena terdapat sub bahasan pada masingmasing pilar yang membuat kebiasan pemahaman siswa yang kemudian menurunkan minat untuk mempelajari konsep PBO. Pada perancangan chatbot pembelajaran PBO menggunakan metode modular AIML dan parsing informasi dari database. Pada antarmuka chatbot, siswa akan menginput pilihan terkait konsep PBO, setelah pilihan ditentukan chatbot akan menganalisa input yang diberikan menggunakan metode modular. Hasil dari penelitian ini adalah chatbot berbasis modular untuk Pembelajaran PBO yang menawarkan gaya baru dalam pembelajaran dengan sentuhan teknologi Artificial Intelligence agar siswa lebih aktif saat proses belajar mengajar pada konsep PBO. Kata kunci: Pemrograman-Berorientasi-Object, chatbot, Metode-Modular, AIML.
Pendahuluan Bermula dengan diusulkannya suatu permainan yang disebut dengan Imitation Game oleh Alan Turing pada tahun 1950 [8], merupakan awal berkembangnya suatu sistem komputer yang mampu berkomunikasi atau berinteraksi dengan orang dalam bahasa alami. Yang kemudian sistem ini dikenal dengan istilah chatterbot atau chatbot [13,9,10,11,16,12]. Sejak diperkenalkan melalui kompetisi melalui kontes tahunan antar program komputer yang mampu untuk mengidentifikasi program yang paling mirip dengan manusia [8], muncullah berbagai macam penelitian dan perkembangan di bidang chatterbot, misalnya: penyelidikan tentang perilaku dan reaksi sosial pada chatterbot [9], [3]. Selain beberapa penelitian yang telah dilakukan, chatterbot juga digunakan untuk beberapa implementasi dalam bidang pendidikan [4], hiburan [8], kesehatan [7], chatting [5] dan media konsultasi [14]. Tentunya dengan banyaknya implementasi dan metode dalam mengembangkan chatterbot, akan membawa dampak digunakannya berbagai bentuk teknik kecerdasan buatan (AI – ArtificialIntelligent) untuk membangun chatterbot itu sendiri. Beberapa teknik yang digunakan adalah AIML (Artificial Intelligent Markup Language) [2], Eliza dan ALICE (Artificial Linguistic Internet Computer Entity) [7] dimana ketiganya merupakan teknik yang umum digunakan untuk berbagai aplikasi dan implementasi. Dengan perkembangan yang positif dari chatbot dan implementasinya dalam berbagai bidang, maka muncul suatu ide untuk mengembangkan suatu pembelajaran untuk siswa yang mengalami kesulitan dalam memahami materi Pemrograman Berorientasi Objek (PBO) dengan menggunakan chatbot. PBO kini menjadi pembicaraan pokok pada setiap forum pengembangan aplikasi. Setiap perangkat kini sudah menerapkan konsep PBO sebagai antarmuka atau sistem pendukungnya. Dalam mempelajari PBO muncul kesulitan dimana seorang siswa harus mengetahui konsep dasar dari PBO, abstraction, SENATEK 2015 | Malang, 17 Januari 2015
379
SEMINAR NASIONAL TEKNOLOGI 2015 Institut Teknologi Nasional Malang ISSN: 2407 – 7534
inheritance, encapsulation dan polymorphism yang merupakan pilar penyusun konsep dari PBO. Dalam memahami keempat pilar tersebut menjadi semakin kompleks karena terdapat sub bahasan pada masing-masing pilar yang membuat siswa makin kesulitan untuk dapat mengerti konsep PBO. Pada kurikulum di sekolah, siswa diajarkan PBO [15], dan pada penelitian ini dicoba dikembangkan chatbot dalam mendukung pembelajaran PBO yang menggunakan metode sistem modular [6] sehingga diharapkan dengan sistem ini tiap pilar dalam konsep PBO dapat disusun dalam suatu modul yang dapat menjelaskan secara menyeluruh sampai dengan pada sub bahasannya. Dengan menerapkan konsep sistem modular ini diharapkan siswa dapat mempelajari konsep PBO dengan lebih detail selain itu antara satu pilar bersama sub bahasannya tidak bercampur dengan pembahasan pilar yang lainnya. Lebih jauh lagi dengan suatu konsep pembelajaran yang terstruktur ini akan mendapatkan pemahaman dalam mempelajari PBO lebih baik untuk para siswa. Pemrograman Berorientasi Objek PBO (Pemrograman Berorientasi Objek) adalah konsep pemrograman yang mendekatkan pemahaman dari struktur kelas pada objek. Semua data dan fungsi dalam konsep ini dibungkus dalam kelas-kelas atau objek-objek yang berbeda dengan logika pemrograman sebelumnya yaitu pemrograman terstruktur. Pada PBO ini, setiap objek dapat berinteraksi satu sama lain yaitu menerima dan mengirim pesan ataupun memproses data. Pada mata pelajaran pemrograman komputer di SMK diajarkan beberapa bahasa diantaranya yaitu C++, Java, PHP dan VB yang kesemuanya adalah Pemrograman Berorientasi Objek. Jika peserta didik dalam hal ini siswa SMK dapat memahami inti dari konsep objek, maka tidak sulit untuk memahami dan menerapkan beberapa bahasa dalam membuat suatu sistem aplikasi komputer.Terdapat beberapa keuntungan dalam menggunakan PBO, yaitu penggunaan kembali kode program, mudah dalam pemahaman karena pendekatan dunia nyata, mudah dalam pembuatan dan pemeliharaan desain kode, dan mudah dalam melakukan perancangan ulang serta pengembangannya. Pada PBO terdapat 4 pilar utama dalam membentuk konsep PBO yaitu abstraction, inheritance, encapsulation dan polymorphism yang nantinya dijelaskan contoh penerapannya dalam bahasa Java ataupun PHP. Sebelum membahas 4 pilar dari konsep PBO seperti tampak pada gambar 2, ada beberapa pengertian yang harus diketahui terlebih dahulu, yaitu class adalah cetakan yang berisi data dan fungsi yang nantinya diinstansiasi membentukobject. Sedangkan object adalah bentukan dari class itu sendiri yang mempunyai properti seperti atribut dan fungsi seperti ditunjukkan pada gambar 1. Data dan fungsi pada class biasanya disebut properti/atribut dan method, dimana atribut menyimpan value keadaan suatu class, dan method adalah behaviour atau perilaku berisi prosedur/keadaan suatu kelas.
OBJECT::CLASS
ATTRIBUTE/PROPERTY
METHOD/FUNCTION
Gambar 1. Sebuah gambaran objek class dengan atribut dan fungsi
Abstraction Abstraction adalah konsep PBO dimana terdapat suatu pengelompokan/klasifikasi sifat yang umum yang nantinya akan dibuat suatu class ataupun abstract class dan interface untuk menyeragamkan sifat dasar yang nantinya diturunkan (extends) ataupun diimplementasi (implements) pada class turunannya. Dengan kata lain yaitu generalisasi suatu class dan method dapat ditangani dengan mengelompokkan pada abstractclass dan interface.
SENATEK 2015 | Malang, 17 Januari 2015
380
SEMINAR NASIONAL TEKNOLOGI 2015 Institut Teknologi Nasional Malang ISSN: 2407 – 7534
Inheritence Inheritence adalah konsep PBO dimana suatu perilaku fungsi/sifat class dapat diturunkan pada subclass untuk dapat digunakan kembali. Superclass adalah class induk adalah tempat pendeklarasian atribut dan method yang diturunkan kepada subclass. Manfaat dari konsep inheritance ini adalah penghematan kode program, karena subclass dapat langsung menerapkan fungsi superclass, atau bahkan mengembangkan method tersebut dengan meng-overload dan meng-override. Encapsulation Encapsulation adalah konsep PBO dimana suatu cara bagaimana data ataupun fungsi/method dapat dibungkus agar dapat digunakan sesuai dengan keperluan, dengan kata lain menyembunyikan informasi (information hiding) demi keamanan data dan fungsi pada class. Terdapat 4 tingkatan dalam pengamanan yaitu dengan diawali keyword/modifier public dimana data dan fungsi dapat diakses oleh semua class dimanapun berada, keyworddefault(no-modifier) dimana dapat diakses semua class pada package yang sama, keyword protected dimana dapat diakses oleh class itu sendiri dan subclassnya, keyword private dimana hanya dapat diakses oleh class itu sendiri. Polymorphism Polymorphism adalah konsep PBO dimana objek subclass dalam hal ini method sebagai fungsi dapat diubah perilakunya dari fungsi turunan superclass. Ada dua jenis method yang diubah menurut letak perbedaannya yaitu overload dimana perubahan terjadi pada parameter fungsi, override dimana perubahan terjadi pada body/isi suatu method/fungsi.
Gambar 2. Konsep Pemrograman Berorientasi Objek
Metode Penelitian Sistem Modular Secara sederhana desain sistem modular merupakan pendekatan yang membagi sistem menjadi bagian-bagian kecil (modul) yang dapat secara mandiri dibuat dan kemudian digunakan dalam sistem yang berbeda untuk mengarahkan beberapa fungsi. Gagasan pokok desain modular adalah untuk mengembangkan serangkaian komponen-komponen produk dasar yang dapat dirakit menjadi sejumlah besar produk yang berbeda-beda dalam hal ini topic pembelajaran diperlihatkan arsitektur modular pada gambar 3. Penjelasan lebih detail dari sistem modular yang akan dikembangkan (penjelasan lebih detail dari diagram blok sistem modular), dan bagaimana ide yang akan dicapai dapat terealisasi dengan sistem modular. Pada rancangan arsitektur modular terdapat: (i) Mesin Dialog yang mengelola interaksi antara pengguna dan chatbot tersebut yang secara khusus terdiri dari satu set modul mendefinisikan pengetahuan dan penalaran kemampuan chatbot tersebut. Setiap modul saling berhubungan dengan beberapa repositori informasi pengetahuan deklaratif dan mendefinisikan seperangkat aturan pemodelan pengetahuan prosedural. Sebuah komponen, yang disebut kolektor menghubungkan antarmuka dialog dengan modul basis pengetahuan. Ini SENATEK 2015 | Malang, 17 Januari 2015
381
SEMINAR NASIONAL TEKNOLOGI 2015 Institut Teknologi Nasional Malang ISSN: 2407 – 7534
mengirimkan permintaan pengguna untuk modul yang sedang aktif dan memberinya jawaban yang tepat melalui antarmuka; (ii) Sebuah analisa dialog ekstrak satu set variabel yang menjadi ciri konteks percakapan; (iii)Modul bernama "corpus callosum" yang mengaktivasi dan menonaktivasi modul mesin dialog sesuai dengan nilai-nilai variabel konteks dan menghubungkan degan memori berupa text pada file. AIML Pada proses pemberian pengetahuan, dibuatlah AIML yaitu serangkaian kalimat yang ditata dalam bentuk sintak khusus untuk dikenali sebagai outputan. Untuk sistem modul disiapkan beberapa file AIML seperti Pengertian_PBO.aiml, Konsep_inheritance.aiml, Konsep_polymorphism.aiml, Konsep_encapsulation.aiml, Konsep_struktur_program.aiml yang masing-masing memuat konteks pembelajaran pengetahuan chatbot. Sistem Pembelajaran PBO
Dialog konteks: Topic Tujuan Gaya percapakan
Antarmuka
Analisa dialog
Mesin Dialog
Modul Pengertian Dasar Pemrograman PHP
Modul Pengertian Konsep 4 Pilar PBO (Abstraction, Inheritance, Polymorphism, Encapsulation)
Corpus Callosum/Switching
... Gambar 3. Arsitektur Chatbot
Pada penelitian ini dibedakan atas sub bahasan atau modul dari Chatbot yang dibentuk dari AIML, untuk pembeda antara pengertian dasar dan konsep PBO. Pertama adalah dasar pengertain dari PBO yaitu tentang pengertian keyword dari kode program. Yang kedua adalah konseop PBO dimana ada 4 pilar yang dijelaskan mulai dari pengertian dan contoh implementasinya. Ada beberapa dasar dalam menambahkan pengetahuan pada sintak, antara lain : “Topic” berarti bahwa bot hanya akan dapat mengakses respon ini jika kategori AIML sebelumnya telah menetapkan topik ini sebagai topik itu saat ini.“That”berarti bahwa bot harus menjawab dengan teks ini di dalamnya tanggapan terakhir.“Pattern” adalah inputan yang digunakan untuk mengakses respon bots. terakhir adalah “Template” adalah teks bot akan menampilkan ketika inputan telah cocok. Contoh sintak AIML
<pattern>* CLASS* Class adalah kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu <pattern>* OBJEK * SENATEK 2015 | Malang, 17 Januari 2015
382
SEMINAR NASIONAL TEKNOLOGI 2015 Institut Teknologi Nasional Malang ISSN: 2407 – 7534
Objek adalah sesuatu yang membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek. Analisa Sistem Sistem yang dikembangkan untuk pembelajaran PBO dengan menggunakan sistem modular dapat dijelaskan pada gambar diagram blok gambar 4 berikut: MULAI
KALIMAT INPUT NORMALISASI KALIMAT INPUT
PRODUKSI JALUR INPUT
PEMECAH KALIMAT
PENCOCOKAN POLA DALAM BASIS PENGETAHUAN AIML
TAMPIL
SELESAI Gambar 4. Alur input kalimat hingga tampil output jawaban
Analisa Dialog mengekstrak informasi konteks (topik, tujuan, tindakan linguistik, dll) dan carpus juga memanfaatkan informasi ini untuk memilih dan mengaktifkan hanya modul yang paling tepat, yang menggabungkan aturan yang paling memadai untuk memproses kalimat tertentu. Chatbot ini kedepan juga mampu untuk melakukan penalaran analogis untuk memahami konteks dan struktur secara umum. Corpus Callosum menganalisis informasi ini dan menentukan modul yang paling tepat yang mampu untuk benar memproses kalimat dengan topik tertentu.
SENATEK 2015 | Malang, 17 Januari 2015
383
SEMINAR NASIONAL TEKNOLOGI 2015 Institut Teknologi Nasional Malang ISSN: 2407 – 7534
Gambar 5. Perancangan pola inputan user dan pola jawaban chatbot
Pada gambar 5 ditampilkan saat pemberian masukan (user input) dan keluaran (response), dan juga topic beserta response sebelumnya untuk membedakan kalimat inputan. Hal ini secara teknis membuat masukan dan keluaran terkelompokkan pada modul, yang nantinya sebagai pengetahuan pengertian dasar dan konsep PBO. Dan juga pada gambar 6 tampak tabel penyimpanan dari database AIML ditampilkan, hal ini dibutuhkan untuk pengelolaan lebih lanjut jika terdapat kekeliruan.
Gambar 6. Hasil tabel pengelompokan pola kalimat pada sistem
Hasil dan Pembahasan Pengujian sistem Dari rancangan pola pertanyaan dan jawaban yang dibangun dari Program-O dan AIML maka dihasilkan model percakapan dengan pemberian pertanyaan dan penampilan jawaban sebagai berikut:
SENATEK 2015 | Malang, 17 Januari 2015
384
SEMINAR NASIONAL TEKNOLOGI 2015 Institut Teknologi Nasional Malang ISSN: 2407 – 7534
Gambar 7. Simulasi tanya jawab dengan chatbot tentang dasar PBO Pada gambar 7 diketahuipertama kali chatbot diberikan kalimat perkenalan dan dilanjutkan dengan penanya menginputkan pertanyaan seputar dasar PBO. Terlihat chatbot dapat dengan tepat menjawab sesuai dengan apa yang diinputkan pada rancangan jawaban di AIML. Kemudian selanjutnya pada gambar 8. Dilakukan pengujian tentang pengertian Konsep 4 Pilar PBO. Tampak juga chatbot menjawab dengan tepat dan memisahkan antara konsep dengan konsep PBO lainnya.
Gambar 8. Simulasi tanya jawab dengan chatbot seputar Konsep PBO
Kesimpulan Dari beberapa rangkaian pengujian baik secara sistem teknis dan non teknis didapatkan hasil bahwa metode pembelajaran dengan chatbot dalam pemahaman konsep OOP dapat diterapkan pada siswa untuk lebih menarik dalam kegiatan KBM. Siswa dapat menarik pelajaran dari jawaban yang dijabarkan chatbot yaitu berupa pengertain dasar pemrograman PHP dan 4 pilar konsep PBO. Penelitian kedepan, dapat dirancang sebuah proses belajar pada AIML chatbot yang menghasilkan output contoh kode program dari dasar pemrograman dan 4 pilar konsep PBO. Penelitian ini mendukung untuk ketertarikan belajar dan pemahaman siswa dalam bidang pemrograman PBO dalam bidang bahasa pemrograman khususnya dan bahasa pemrograman berorientasi objek lainnya. Akhirnya tiada penelitian dan penulisan yang sempurna, perbaikan demi perbaikan dalam hal tulisan dan kualitas performa chatbot akan terus disempurnakan menggunakan metode-metode AI yang sudah diimplementasi. SENATEK 2015 | Malang, 17 Januari 2015
385
SEMINAR NASIONAL TEKNOLOGI 2015 Institut Teknologi Nasional Malang ISSN: 2407 – 7534
Daftar Pustaka 1. Agnese Augello, Gaetano Saccone, Salvatore Gaglio.,Humorist Bot Bringing Computational Humour in a Chat-Bot System., International Conference on Complex, Intelligent and Software Intensive Systems on IEEE, 2008. 2. Adjamir M, Galvao, Flavia A Barros, Andre M M Neves, Geber L Ramalho. Adding Personality to Chatterbots Using the Persona-AIML Architecture., LNAI 3315, pp. 963–973, 2004. 3. De Angeli, A., Johnson, G.I., & Coventry, L., The unfriendly user exploring social reactions to chatterbots.,International Conference oh Affective Human Factor Design, Asean Academic Press, pp. 467-474. 2001. 4. De Orlando, D.; Giovanni, F., An integrated system, with natural language management, for the monitoring activities in e-learning environments., International Conference on IEEE, vol., no., pp.965,970, 4-7 March, 2008. 5. Di Lecce, V.,Calabrese, M.,. Soldo, D., Quarto, A. Dialogue-Oriented Interface for Linguistic HumanComputer Interaction a Chat-based Application. Virtual Environments Human-Computer Interfaces and Measurement Systems (VECIMS) on IEEE, 2010. 6. Giovanni Pilato, Agnese Augello, and Salvatore Gaglio. A Modular System Oriented to the Design of Versatile Knowledge Bases for Chatbots. International Scholarly Research Network. 2011. 7. Lokman, A.S.,Zain, J.M.,An Architectural Design of Virtual Dietitian (ViDi) for diabetic patients. Computer Science and Information Technology, ICCSIT. 2nd IEEE,2009. 8. Mouldin Michael L. CHATTERBOTS, TINYMUDS, and the Turing Test Entering the Loebner Prize Competition. AAAI-94 Proceedings, 1994. 9. Saarinen, Leena.,Chatterbots Crash Test Dummies of Communication., University of Artand Design Helsinki UIAH., April 2001. 10. Shawar, Bayan Aref Abu., A Corpus Based Approach to Generalising a Chatbot System, University of Leeds School of Computing, 2005. 11. Shawar, Bayan Abu, Atwell, Eric., Chatbots Are they Really Useful., LDV-Forum– Band 22(1) – 29-49, 2007. 12. Shawar, Bayan Abu.,Chatbots are natural web interface to information portals.INFOS2008, March 2729, Cairo-Egypt, 2008. 13. T. Kalaiyarasi, Ranjani Parthasarathi, T. V. Geetha. POONGKUZHALI-An Intelligent Tamil Chatterbot., School of Computer Science and Engineering, Anna University., 2003. 14. Toward the implementation of a Topic specific Dialogue based Natural Language Chatbot as an Undergraduate Advisor. 2013. 15. Xiao-dong Zhu. Teaching Adaptability of Object-oriented Programming Language Curriculum. International Education Studies. 5 (4): 237-242. 2012. 16. Yu Wu; Gongxiao Wang; Weisheng Li; Zhijun Li.,Automatic Chatbot Knowledge Acquisition from Online Forum via Rough Set and Ensemble Learning., IFIP International Conference on IEEE , vol., no., pp.242,246, 18-21, Oct. 2008.
SENATEK 2015 | Malang, 17 Januari 2015
386