Anda di halaman 1dari 58

PROPOSAL GEMASTIK

Rancang Bangun Aplikasi Chatbot Sebagai Layanan


Informasi Jurusan Menggunakan Named Entity
Recognition

Diusulkan oleh :
Nama Tim : Chatter

Anggota :

1. Irfan Hanandra Pratama (2014-31-169)


2. Luthfi Fadhil (2014-31-146)
3. Jordi Dwi Yulianto (2014-31-249)

SEKOLAH TINGGI TEKNIK – PLN

JAKARTA, 2018
LEMBAR PENGESAHAN KARYA TULIS ILMIAH

1. Judul Kegiatan : Rancang Bangun Aplikasi Chatbot


Sebagai Layanan Informasi Jurusan
Menggunakan Named Entity Recognition
2. Ketua Pelaksana Kegiatan
a. Nama Lengkap : Irfan Hanandra Pratama
b. NIM : 2014-31-169
c. Jurusan : S1 Teknik Informatika
d. Universitas/Institut/Politeknik : Sekolah Tinggi Teknik – PLN Jakarta
e. Alamat Rumah dan No Tel./HP :
Prima Harapan Regency Blok L7 No. 5-6
Kel. Harapan Baru Kec. Bekasi Utara
f. Email : irfan1431169@sttpln.ac.id
3. Anggota Pelaksana Kegiatan/Penulis : 3 orang
4. Dosen Pendamping
a. Nama Lengkap dan Gelar : Rakhmat Arianto, S.ST., M.Kom
b. NIDN/NIDK : 03080018702
c. Alamat Rumah dan No Tel./HP : 0838-4998-8070
Jakarta, 20 Agustus 2018
Menyetujui
Ketua Jurusan S1 Teknik Informatika Ketua Pelaksana Kegiatan,

(Meilia Nur Indah Susanti, S.Kom., M.Kom) (Irfan Hanandra Pratama)


NIDN. 0318057601 NIM. 2014-31-169

Waket 3 Bidang Kemahasiswaan Dosen Pendamping

(Ir. Bambang Isti Eddy, MM) (Rakhmat Arianto, S.ST., M.Kom)

NIDN. 1951.2009.09.A NIDN : 0308018702

ii
SURAT PERNYATAAN SUMBER TULISAN KARYA TULIS

Saya yang menandatangani Surat Pernyataan ini :

Nama : Irfan Hanandra Pratama

NIM : 2014-31-169

1) Menyatakan bahwa Artikel dalam lomba karya tulis yang saya tuliskan
bersama anggota tim lainnya benar bersumber dari kegiatan yang telah
dilakukan :

Tugas Akhir dengan topik kegiatan “Rancang Bangun Aplikasi Chatbot


Sebagai Layanan Informasi Jurusan Menggunakan Named Entity Recognition”
pada tahun 2018 di Jakarta

2) Naskah ini belum pernah diterbitkan / dipublikasikan dalam bentuk prosiding


maupun jurnal sebelumnya.

Demikian surat pernyataan ini dibuat dengan penuh kesadaran tanpa paksaan
pihak manapun juga dapat digunakan sebagaimana mestinya.

Jakarta, 20 Agustus 2018 Mengetahui,


Yang Membuat Pernyataan Ketua Jurusan,

Irfan Hanandra Pratama Meilia Nur Indah Susanti, S.Kom., M.Kom


NIM. 2014-31-169 NIDN. 0318057601

iii
DAFTAR ISI

LEMBAR PENGESAHAN KARYA TULIS ILMIAH...................................................................ii


SURAT PERNYATAAN SUMBER TULISAN KARYA TULIS................................................iii
DAFTAR ISI....................................................................................................................................iv
ABSTRAK.......................................................................................................................................v
LATAR BELAKANG......................................................................................................................1
PENDAHULUAN............................................................................................................................3
A. Tujuan..............................................................................................................................3
B. Manfaat............................................................................................................................3
C. Batasan...........................................................................................................................3
METODE DAN DESAIN................................................................................................................4
A. Kerangka Pemikiran.....................................................................................................4
B. Algoritma Multinomial Naïve Bayes.........................................................................5
C. Desain Sistem................................................................................................................8
D. Desain Diagram Blok.................................................................................................10
E. Desain Basis Data..........................................................................................................11
F. Desain Rangkaian dan Flowchart...............................................................................14
DESAIN DAN IMPLEMENTASI.................................................................................................30
A. Desain Sistem..............................................................................................................30
B. Perancangan Data Flow Diagram...........................................................................30
C. Implementasi Named Entity Recognition.............................................................37
ANALISIS......................................................................................................................................48
A. Analisa Sistem Berjalan............................................................................................48
B. Analisa Kebutuhan Data...........................................................................................49
C. Precision and Recall Named Entity Recognition................................................50
KESIMPULAN..............................................................................................................................52

iv
RANCANG BANGUN APLIKASI CHATBOT SEBAGAI LAYANAN INFORMASI
JURUSAN MENGGUNAKAN NAMED ENTITY RECOGNITION

Irfan Hanandra Pratama, 201431169

Di bawah bimbingan Rakhmat Arianto, S.ST., M.Kom


dan Puji Catur Siswipratini, ST., M.Kom

ABSTRAK

Aplikasi chatbot dapat digunakan untuk membantu memberikan kebutuhan


informasi hanya dengan cara mengirimkan pesan teks ke bot. Pada penelitian ini,
chatbot digunakan sebagai layanan infromasi bagi jurusan teknik informatika di
Sekolah Tinggi Teknik PLN Jakarta. Named Entity Recognition (NER) digunakan
untuk mengenali kata kunci dari bahasa manusia. Pola kata kunci tersebut
dicocokkan dengan pola di AIML (Artificial Intelligence Markup Language) untuk
memberikan jawaban yang relevan. Pengenalan named entity pada kata dalam
penelitian ini menggunakan metode Multinomial Naïve Bayes. Secara garis besar,
ada dua proses yang dilakukan, yaitu proses NER learning dan proses chatbot.
Sebelum melakukan perhitungan, teks terlebih dahulu melewati proses tokenizing,
part of speech tagging, BILOU tagging dan feature extraction. Berdasarkan hasil
pengujian, aplikasi chatbot ini dapat mengenali named entity dari suatu kata
dengan nilai rata-rata precision mencapai 88% serta rata-rata nilai recall mencapai
85% dan bisa memberikan jawaban yang tepat dengan akurasi hingga 82%
berdasarkan pola yang sudah ditemukan.

Kata Kunci: Chatbot, Multinomial Naïve Bayes, Text mining, Named Entity
Recognition

v
LATAR BELAKANG

Perguruan tinggi adalah satuan pendidikan yang menyelenggarakan


pendidikan tinggi. Pendidikan Tinggi adalah jenjang pendidikan setelah pendidikan
menengah yang mencakup program diploma, program sarjana, program magister,
program doktor, dan program profesi, serta program spesialis, yang
diselenggarakan oleh perguruan tinggi berdasarkan kebudayaan bangsa
Indonesia. Sekolah Tinggi Teknik – PLN (STT–PLN) sebagai salah satu perguruan
tinggi swasta di Jakarta menyelenggarakan dua jenis pendidikan tinggi yang
terbagi ke dalam beberapa jurusan.

Setiap jurusan yang ada di STT-PLN memiliki kepengurusannya masing-


masing. Selain itu, informasi yang diberikan oleh jurusan satu dengan yang
lainnya tidaklah sama. Informasi yang dimaksud adalah informasi seperti jadwal
kuliah, nama dosen, jadwal kegiatan atau acara tertentu yang berhubungan
dengan jurusan, prosedur dalam melakukan sesuatu yang berkaitan dengan
jurusan, lokasi laboratorium, dan informasi lainnya. Begitu juga dengan jurusan
teknik informatika sebagai salah satu jurusan di STT-PLN.

Mahasiswa teknik informatika di STT-PLN tentunya membutuhkan


informasi terkait dengan jurusan teknik informatika. Dari hasil kuesioner yang
dibuat penulis, dari 78 responden, 56 diantaranya datang langsung ke jurusan
untuk mencari informasi yang dia inginkan karena pendistribusian informasi yang
dilakukan oleh jurusan masih memakai cara konvensional, yaitu ditempel di papan
pengumuman. Apabila di papan pengumuman tidak ada, mahasiswa harus
bertanya ke staf jurusan. Hal itu akan sulit dilakukan apabila mahasiswa tersebut
sedang tidak di kampus atau berada di luar kota. Alternatif lain yang dilakukan
oleh mahasiswa bertanya kepada teman-temannya melalui grup angkatan. Tapi
seringkali akhirnya pertanyaan itu tidak ada yang menjawab karena tidak semua
orang selalu stand by menjawab pertanyaan temannya yang lain atau karena

1
teman yang lain juga tidak mengetahui jawaban dari pertanyaan yang diajukan.
Apabila dijawab pun, respon jawaban itu memiliki waktu yang tentatif artinya
pertanyaan yang diajukan bisa dijawab cepat atau lambat. Padahal keinginan
setiap mahasiswa, pertanyaan atau informasi yang dia inginkan bisa didapatkan
dengan cepat.

Mahasiswa memerlukan wadah bertanya yang bisa diakses dari mana saja.
Wadah tersebut bisa berbentuk dalam sebuah aplikasi chatbot. Chatbot adalah
mesin penjawab yang bisa menjawab otomatis pertanyaan yang diajukan oleh
pengguna. Chatbot bisa dijadikan sebagai layanan informasi untuk pertanyaan
yang berhubungan dengan jurusan teknik informatika di STT-PLN. Seperti pada
penelitian (Maskur, 2016), chatbot dimanfaatkan sebagai virtual assistant bagi
mahasiswa jurusan teknik informatika yang memberikan informasi terkait program
studi teknik informatika. Penelitian lain (Page & Gehlbach, 2017), memanfaatkan
teknologi chatbot untuk membantu mahasiswa baru di Georgia State University
(GSU) agar bisa beradaptasi di lingkungan perkuliahan setelah liburan musim
panas yang panjang.

Chatbot tidak bisa begitu saja mengerti perkataan manusia. Untuk itu,
diperlukan suatu metode agar chatbot bisa mengerti bahasa manusia. Dengan
mengerti pola bahasa manusia yang dimasukkan sebagai pertanyaan, chatbot
akan merespon sesuai yang ditanyakan. Maka dari itu, digunakanlah Named
Entity Recognition untuk mengenali pertanyaan yang diajukan manusia. Pada
penelitian (Christianto, Siswanto, & Chaniago, 2016), Named Entity Recognition
digunakan sebagai pengenal pola pertanyaan agar chatbot mengenali pertanyaan
yang diajukan. Untuk membuat named entity recognition diperlukan sebuah
algoritma machine learning. Algoritma yang akan digunakan adalah Multinomial
Naïve Bayes.

Dari pemaparan di atas, penulis tertarik untuk melakukan penelitian terkait


implementasi chatbot sebagai sebuah layanan informasi dari jurusan kepada
mahasiswanya agar mahasiswa memiliki tempat bertanya mengenai hal-hal yang

2
terkait dengan jurusan teknik informatika di STT-PLN sehingga tidak perlu datang
ke kampus untuk menanyakan informasi yang diinginkan. Dalam
pengembangannya, chatbot akan menggunakan Named Entity Recognition (NER)
untuk mengenali pola pertanyaan agar bisa memberikan respon yang baik dan
benar. Dengan begitu, mahasiswa hanya tinggal bertanya ke aplikasi chatbot yang
dibuat.

3
PENDAHULUAN

A. Tujuan
Tujuan dari penelitian yang ingin dicapai adalah untuk menghasilkan suatu
aplikasi chatbot yang digunakan sebagai layanan informasi untuk mahasiswa
jurusan teknik informatika di Sekolah Tinggi Teknik PLN yang akan membantu
memberikan jawaban tentang berbagai bentuk pertanyaan seputar informasi
jurusan secara cepat dan tepat tanpa harus pergi ke kampus.

B. Manfaat
 Mahasiswa bisa mendapatkan informasi terkait jurusan tanpa harus
pergi ke kampus dan bertanya langsung ke jurusan.
 Mahasiswa bisa mendapatkan jawaban tanpa harus menunggu untuk
dijawab ketika bertanya.
C. Batasan
 Mahasiswa mengalami kesulitan dalam mendapatkan informasi dari
jurusan.
 Tidak tentunya waktu untuk mendapat informasi terkait jurusan apabila
bertanya ke sesama mahasiswa.
 Chatbot yang diusulkan tidak bisa mengenali bahasa manusia.

4
METODE DAN DESAIN

A. Kerangka Pemikiran
Di bawah ini merupakan kerangka pemikiran yang akan dilakukan pada
penelitian. Kerangka pemikiran tersebut merupakan tahap proses dari awal
hingga akhir.

Gambar 2. 1 Kerangka Pemikiran

1) Indicator
Indikator adalah data yang akan diproses untuk nantinya menghasilkan
sesuatu. Penulis menggunakan dataset yang berupa sekumpulan kata beserta
tag-nya untuk melatih classifier. Pertanyaan user adalah segala bentuk
pertanyaan yang berhubungan dengan teknik informatika yang sering ditanyakan.
Pertanyaan maupun data dari jurusan bisa juga digunakan sebagai data training
dan data test.

5
2) Method
Method adalah metode yang akan digunakan sebagai cara penyelesain
yang ada. Metode yang digunakan terdiri dari beberapa proses. Metode klasifikasi
NER menggunakan metode Multinomial Naïve Bayes yang di dalamnya terdapat
proses text preprocessing dan feature extraction. Metode sangat penting untuk
penyelesaian penelitian. Bisa dibilang, metode merupakan inti dari penelitian itu
sendiri. Apabila indikator yang masuk adalah pertanyaan user, maka proses
dilanjutkan ke pattern matching.

3) Measurements
Measurement adalah pengukuran hasil dari penelitian. Artinya setelah
melalui proses perhitungan dari metode yang digunakan, pengujian dilakukan
dengan metode uji. Di penelitian ini, penulis menggunakan cara precision dan
recall untuk menghitung ketepatan dari hasil metode sebelumnya. Penulis juga
menggunakan metode akurasi untuk mengetahui ketepatan dari objective yang
bersangkutan.

4) Objective
Objective adalah tujuan yang ingin dicapai dari sistem. Tujuan dari sistem
yang dibuat pada penelitian ini adalah aplikasi bisa mengklasifikasi kata sesuai
dengan NER dan memberi jawaban yang relevan dengan pertanyaan yang
diajukan berdasarkan pola yang dihasilkan.

B. Algoritma Multinomial Naïve Bayes


Multinomial Naïve Bayes merupakan turunan dari metode Naïve Bayes yang
digunakan untuk klasifikasi teks karena dalam metode ini setiap kata atau feature
dihitung frekuensinya tanpa mempedulikan posisinya dalam kalimat atau dokumen
(Martin, 2009). Naïve Bayes sendiri merupakan salah satu metode klasifikasi yang
bersumber dari teorema Bayes. Pada naïve bayes, setiap atribut dalam data

6
dianggap independen atau tidak mempengaruhi antara satu dengan lainnya.
Dalam teorema Bayes, jika ada dua kejadian yang terpisah, misal A dan B, maka
teorema Bayes dapat dirumuskan sebagai berikut:
P ( A ) P ( B| A )
P ( A|B )=
P (B )
dimana:
P(A|B) = peluang kejadian A bila kejadian B terjadi
P(A) = peluang kejadian A
P(B) = peluang kejadian B
P(B|A) = peluang kejadian B bila kejadian A terjadi
Untuk menjelaskan bahwa teorema naïve bayes, perlu diketahui bahwa proses
klasifikasi memerlukan petunjuk kelas (feature) apa yang cocok bagi sampel yang
dianalisis maka teorema dapat disesuaikan menjadi:
P ( c ) P ( f … f n|c )
P ( c|f 1 … f n )=
P ( f 1 … f n)
Variabel c merepresentasikan kelas, sementara f 1 … f n merepresentasikan
petunjuk atau feature yang akan digunakan dalam proses klasifikasi. Kita bisa
menghilangkan P(f 1 …. f n) karena nilainya tidak akan berubah dari setiap kelas.
Multinomial Naïve Bayes merupakan model khusus yang digunakan untuk
klasifikasi teks karena dalam metode ini setiap kata atau feature dihitung
frekuensinya tanpa mempedulikan posisinya dalam kalimat atau dokumen. Untuk
menentukan kelas dari suatu kata, maka digunakan rumus Maximum A Posterior
(MAP) seperti berikut:
n
C NB =arg max P ( c ) ∏ P ( f i|c )
c ∈C i =1

Kemudian kita bisa menghitung nilai maksimum dari posterior dari sebuah kata
dengan menggunakan dua probabilitas, yaitu class prior probability dari dokumen
P(c ) dan feature likelihood probability dari sekumpulan petunjuk (feature) P( f ∨c ).
Nilai prior probability merupakan persentase dari sebuah feature yang masuk ke
dalam kelas tertentu. Kita gunakan jumlah feature dengan kelas tertentu N c dibagi
dengan jumlah seluruh dokumen yang tersedia N doc . Rumusnya seperti berikut:

7
Nc
P ( c )=
N doc

Untuk mendapatkan probabilitas likelihood, kita asumsikan kehadiran sebuah fitur


layaknya kehadiran suatu kata dalam dokumen yang biasa disebut dengan bag of
words. Artinya kita akan menghitung P( f i∨c ) sebagai berapa kali fitur f i muncul
dalam setiap dokumen dengan kelas c. Pertama, hitung berapa kali fitur tersebut
muncul di kelas tertentu. Kemudian, hitung jumlah fitur yang muncul di kelas
tertentu.
count ( f i , c )
P ( f i|c ) =
∑ count ( f ,c )
f ∈V

V di sini melambangkan vocabulary size yang memiliki nilai seluruh fitur di semua
kelas, tidak hanya satu kelas saja. Masalah akan muncul ketika suatu kata atau
fitur tidak muncul saat proses training. Karena tidak adanya kemunculan fitur
tersebut akan membuat nilai likelihood 0. Hal ini akan membuat seluruh
perhitungan menghasilkan nilai 0 mengingat metode ini pada saat akhir akan
mengalikan setiap probabilitas baik prior maupun likelihood. Untuk menghindari
hal tersebut, kita akan menggunakan Laplace Smoothing, yaitu dengan
menambahkan angka satu saat perhitungan likelihood dengan rumus sebagai
berikut:
count ( f i , c ) +1 count ( f i , c ) +1
P ( f i|c ) = =
∑ ( count ( f , c ) +1 ) ¿¿
f ∈V
¿

Untuk menghindari terjadinya underflow dan menaikkan kecepatan bila dihitung di


komputer, maka rumus secarakeseluruhan bisa diganti ke dalam bentuk natural
log. Underflow adalah keadaan di mana nilai yang dihitung bisa dianggap 0 karena
terlalu kecil atau terlalu dekat dengan angka 0.

8
C NB =argmax logP ( c ) + ∑ logP ¿ ¿
C. i ∈ position Desain Sistem
¿

Gambar di atas merupakan skema sistem usulan dari Automatic Watering


System (AWS) sampai dengan proses monitoring oleh pengelola atau pemilik
vertical garden.

Sistem yang diusulkan oleh penulis pada Automatic Watering System ini
(untuk selanjutnya disebut ALPO) yaitu dimulai dari proses AWS yang membaca
indikator suhu, kelembaban udara dan kelembaban tanah dari sensor. Kemudian
data tersebut diolah dengan menggunakan algoritma Adaline. Setelah pengolahan
data selesai, didapatkanlah informasi hasil dari olah data tersebut yang akan
dikirimkan ke aplikasi berbasis android melalui basis data MySQL. Setelah data
dikirim, maka AWS akan mengaktifkan pompa air. Pengelola patau pemilik vertical
garden yang membuka aplikasi monitoring akan melihat informasi hasil olah data

9
seperti suhu, kelembaban udara, kelembaban tanah, durasi diaktifkannya keran
dan status pompa air melalui aplikasi tersebut serta dapat melakukan kontrol
secara manual. Berikut adalah alur dari AWS ini :

Berdasarkan alur di atas, dapat diidentifikasikan desain secara


keseluruhan dari sistem ini sebagai berikut :

1. Penyiraman otomatis dilakukan berdasarkan kondisi tanaman dengan


menggunakan informasi berdasarkan pembacaan data dari sensor DHT11
untuk sensor suhu dan kelembaban udara serta Soil Mouisture Sensor YL-69
untuk sensor kelembaban tanah.
2. Automatic Watering System (AWS) ini dibuat berbasis mikrokontroller Arduino
Mega 2560 sebagai pusat pengatur kerja komponen lainnya. Kehandalan
Arduino Mega 2560 adalah memiliki 4 (empat) pasang input serial yang dapat
mendukung kinerja komponen lainnya.
3. ESP8266 WiFi Module adalah media komunikasi yang digunakan oleh penulis
untuk mengirim informasi berupa data suhu, kelembaban udara, dan
kelembaban tanah yang dikirimkan dari perangkat arduino ke database IOT.
ESP8266 ini haruslah terhubung ke arduino dan jaringan internet.

10
4. Basis data yang digunakan penulis adalah MySQL yang telah terhosting yang
akan menerima data yang dikirimkan dari ESP8266 WiFi Module.
5. Proses penyiraman otomatis ini juga dapat dimonitoring oleh pengelola
vertical garden melalui aplikasi berbasis android yang diberi nama MyWater
App, yang terintegrasi dengan web server, sehingga pengelola dapat
mengetahui bagaimana keadaan tanaman tersebut secara real-time serta
pemilik atau pengelola vertical garden dapat melakukan kontrol secara
manual.

D. Desain Diagram Blok


Rangkaian diagram blok merupakan gambaran singkat dari perancangan
suatu alat, karena dari diagram blok rangkaian inilah dapat diketahui cara kerja
rangkaian secara keseluruhan, sehingga akan menghasilkan suatu sistem yang
dapat difungsikan dan dapat bekerja sesuai perancangan alat. Diagram blok
dijelaskan pada gambar berikut :

Dari gambar di atas, dapat diketahui bahwa sistem dirancang


menggunakan Arduino Mega 2560 sebagai mikrokontroler yang akan menerima
inputan data dari sensor DHT11 dan Soil Moisture Sensor YL-69. Data dari sensor
tersebut kemudian diolah dengan menggunakan algoritma Adaline dan hasil dari
olah data tersebut akan mengaktifkan water pump dengan durasi yang telah
ditentukan. Hasil dari olah data tersebut kemudian dikirim melalui ESP8266 WiFi

11
Module dan dapat diakses melalui aplikasi berbasis android yang terintegrasi
melalui web server.

E. Desain Basis Data


Web server yang akan dibangun membutuhkan basis data yang digunakan
untuk menampung semua data yang berhubungan dengan web monitoring ini.
Basis data ini kemudian diintegrasikan dengan aplikasi mobile android. Jenis basis
data yang digunakan adalah database MySQL dengan aplikasi PHPMyAdmin.

1. Nama Tabel : tbl_user

No. Field Name Type Size Key Description


1 id_user Int 5 PK Identitas pengguna
MyWater App
2 nama Varchar 30 Nama lengkap
pengguna
3 username Varchar 15 Nama akun untuk login
user
4 email Varchar 35 Email pengguna
5 password Varchar 15 Password pengguna
6 tipe_User Varchar 10 Jenis user

2. Nama Tabel : logsensor


No. Field Name Type Size Key Description
1 id_data Int 11 PK Identitas data
2 waktu Datetime Waktu di mana data
masuk
3 suhu Float 30 Nilai suhu dari sensor
4 kel_udara Float 20 Nilai kelembaban udara
dari sensor

12
5 kel_tanah Float 15 Nilai kelembaban tanah
dari sensor
6 durasi_siram Int 5 Durasi keran diaktifkan
7 hasil_Adaline Float Hasil perhitungan
Adaline

3. Nama Tabel : detailKT


No. Field Name Type Size Key Description
1 id_data Int 11 FK Identitas data
2 waktu Datetime Waktu di mana data
masuk
3 sensor1 Float Sensor kelembaban
tanah 1
4 sensor2 Float Sensor kelembaban
tanah 2
5 sensor3 Float Sensor kelembaban
tanah 3
6 sensor4 Float Sensor kelembaban
tanah 4
7 kel_tanah Float Nilai rata-rata dari
keempat sensor
kelembaban tanah

4. Nama Tabel : tbl_tanaman


Siz
No. Field Name Type Key Description
e
1 id_tanaman int 11 PK Identitas data
2 nama_lokal_tanama Varchar 15 Nama tanaman di

13
n indonesia
3 nama_latin Varchar 40 Nama latin/asing
tanaman
4 lokasi_tanam Varchar 25 Daerah tanam
5 suhu Varchar 15 Nilai suhu dari tanaman
6. kelembabanUdara Varchar 15 Nilai kelembaban udara
7. kelembabanTanah Varchar 15 Nilai kelembaban tanah

Dari keempat tabel yang telah dibuat di atas, kemudian direlasikan seperti
pada gambar di bawah ini :

Dari keempat tabel tersebut, yang memiliki relasi satu sama lain adalah
tabel logsensor dan tabel detailKT yang terhubung melalui field id_data, waktu dan
kel_tanah, sedangkan tbl_tanaman dan tbl_user tidak memiliki relasi dengan tabel
manapun.

F. Desain Rangkaian dan Flowchart


Pada bagian ini, menjelaskan tentang desain beserta alur kerja perangkat
tersebut.

1) Perancangan Perangkat Keras

14
Pada sistem ini tim membuat suatu tampilan rangkaian untuk perancangan
perangkat keras, berikut adalah tampilan perancangannya :

Untuk alokasi pin arduino pada masing-masing komponen dapat dilihat


pada tabel di bawah ini :

Arduino Mega
Komponen Pin
2560
TX 19
RX 18
ESP8266 WiFi Module GND GND
VCC 3,3 V
CHPD 3,3 V
DHT11 IN 8
GND GND

15
VCC 5V
A0 A0
YL-69 (1) GND GND
VCC 5V
A0 A1
YL-69 (2) GND GND
VCC 5V
A0 A2
YL-69 (3) GND GND
VCC 5V
A0 A3
YL-69 (4) GND GND
VCC 5V
IN 10
Water Pump VCC 5V
GND GND

Berikut penjelasan tiap rangkaian perangkat keras alat penyiram otomatis :

1. ESP8266 WiFi Module menghubungkan arduino dengan jaringan internet.


2. Sensor DHT11 membaca suhu dan kelembaban udara di sekitar tanaman.
Soil Moisture Sensor YL-69 membaca nilai kelembaban tanah pada
tanaman. Terdapat empat (4) buah sensor YL-69 sehingga kelembaban
tanah dapat diketahui nilai rata-ratanya.
3. Setelah sensor selesai membaca dan data hasil sensor diolah
menggunakan Adaline, akan diketahui durasi keran diaktifkan.

16
4. Jika durasi keran sudah diketahui, maka relay akan mengaktifkan pompa
air 6V Submersible sehingga pompa air tersebut dapat mengalirkan air ke
pertanian vertikal.
5. Informasi yang dihasilkan kemudian dikirim dari Arduino menuju basis data
MySQL melalui ESP8266 WiFi Module yang telah dikoneksikan dengan
jaringan internet yang tersedia. Sehingga informasi tersebut dapat dipantau
langsung oleh pengelola pertanian vertikal melalui aplikasi android yang
telah terintegrasi dengan web server.
Dari perancangan rangkaian perangkat keras di atas, rangkaian dibagi
menjadi potongan-potongan antara arduino mega 2560 dengan setiap komponen
yaitu :

1) Rangkaian Sensor
Dalam pembuatan Automatic Watering System, arduino mega 2560
diintegrasikan dengan beberapa komponen lainnya. Salah satunya adalah
komponen sensor. Sensor yang dipakai terdiri dari dua sensor, yaitu DHT11 untuk
sensor suhu dan kelembaban udara, serta Soil Moisture Sensor YL-69 untuk
sensor kelembaban tanah. Untuk alur pembacaan sensor pada rangkaian dapat
dilihat pada flowchart di bawah ini :

17
2) Rangkaian ESP8266 WiFi Module
Pada rangkaian ESP8266 WiFi Module diperlukan komponen tambahan
berupa resistor untuk menyeimbangkan tegangan antara tegangan arduino dan
tegangan ESP8266. Tegangan pada arduino sebesar 5 Volt, sedankan tegangan
pada ESP8266 sebesar 3,3 Volt, maka dari itu nilai resistor yang digunakan
adalah 1000Ω (1kΩ ) dan 470Ω (4,7kΩ). Nilai tersebut didapatkan dari
perhitungan :
R2
Vout=Vin3.1
Rumus . Vin Vout
R 1+ R 2
10000 Ω
5 volt . =3,40 volt
470 Ω+10000 Ω

Penjelasan untuk gambar di atas yaitu ESP8266 WiFi Module


menghubungkan ke jaringan internet yang tersedia dengan memasukkan SSID
(Service Set Identifier) dan passwordnya. Selajutnya ESP8266 mengirim informasi
ke basis data MySQL Untuk alokasi pin antara ESP8266 dengan arduino.

3) Rangkaian Relay dan Pompa Air


Relay yang digunakan pada rangkaian adalah Relay 1-channel dan pompa
air DC 6 volt submersible sebagai pompa air. Di mana fungsi relay adalah
menggerakkan pompa air, dan keduanya terlah terhubung dengan sumber daya

18
listrik. Pada penelitian ini, penulis menggunakan baterai 6 Volt untuk mengisi daya
relay dan pompa air. Sedangkan flowchart rangkaian relay ini dapat dilihat pada
gambar di bawah ini :

2) Perancangan Perangkat Lunak


Perangkat Lunak pada Automatic Watering System ini terbagi menjadi dua,
yaitu aplikasi berbasis android yang digunakan oleh user atau di sini yang
berperan sebagai user adalah petugas atau pengelola vertical garden. Dan
aplikasi berbasis web yang digunakan oleh admin, atau di sini dapat digunakan
oleh pemilik vertical garden. Berikut ini adalah rancangan perangkat lunak dalam
bentuk diagram alir :
1) Halaman Login MyWater App dan Web

19
Gambar di atas, merupakan diagram alir yang menggambarkan alur
halaman login aplikasi Android MyWater App dan web server. Admin yang ingin
login ke web atau User yang ingin login ke aplikasi android harus memasukkan
username dan password yang telah terdaftar, jika username dan password sesuai
dengan yang tersimpan di basis data, maka akan muncul konfirmasi bahwa login
berhasil.

2) Halaman Register Aplikasi MyWater App

Gambar di atas merupakan flowmap rancangan halaman register pada


MyWater App. User yang ingin mendaftarkan diri, harus mengisi nama lengkap,
username, email, password. Kemudian jika data berhasil dimasukkan ke basis
data, maka akan muncul konfirmasi bahwa registrasi berhasil.

3) Halaman Home MyWater App

20
Home merupakan salah satu pilihan menu di navigation drawer pada
aplikasi berbasis android.

Pada gambar di atas merupakan flowmap perancangan halaman Home


pada MyWater App. Jika user memilih menu Home pada Navigation Drawer, maka
aplikasi akan menampilkan halaman Home.

4) Halaman Monitoring MyWater App

Gambar di atas merupakan flowmap perancangan halaman Monitoring ada


MyWater App. Jika user memilih menu monitoring, maka aplikasi akan
menampilkan halaman Monitoring yang berisi informasi suhu, kelembaban udara,
kelembaban tanah, durasi siram, status pompa air, status pesan dan alarm.

5) Halaman Soil Moisture MyWater App

21
Jika user memilih menu Soil Moisture pada Navigation Drawer MyWater
App, maka alur selanjutnya yang akan terjadi ditampilkan pada flowmap berikut :

Gambar di atas merupakan flowmap perancangan halaman Soil Moisture


pada aplikasi MyWater App. Halaman ini berisi informasi mengenai nilai sensor1,
sensor2, sensor3, sensor4 yang merupakan nilai keempat sensor YL-69, rata-rata
kelembaban tanah, alarm, dan status pesan.

6) Halaman Manual MyWater App

Gambar di atas merupakan flowmap alur halaman Manual pada aplikasi


berbasis android. Halaman ini berfungsi untuk menonaktifkan sistem otomatisasi
dan mengontrol pompa air secara manual.
7) Halaman Help MyWater App

22
Gambar di atas merupakan flowmap perancangan halaman Help pada
aplikasi MyWater App. Halaman Help berisi informasi tentang fungsi masing-
masing menu yang terdapat di aplikasi MyWater App.

8) Halaman Info Tanaman MyWater App

Gambar di atas merupakan flowmap perancangan halaman Info Tanaman


pada aplikasi MyWater App. Jika user memilih menu Info Tanaman pada
Navigation Drawer, maka aplikasi akan menampilkan halaman Info Tanaman yang
berisi informasi tentang jenis-jenis tanaman yang sesuai untuk pertanian vertikal.

9) Halaman Logout MyWater App

23
Gambar di atas merupakan flowmap perancangan halaman Logout pada
aplikasi MyWater App. Jika user memilih menu logout, maka akan muncul
message box peringatan yang berisi apakah yakin akan logout dari akun, jika yang
dipilih adalah “iya”, maka akan kembali ke halaman login. Jika tidak, maka akan
kembali ke halaman sebelumnya sedang diakses.

10)Halaman Register User pada Web

Gambar di atas merupakan flowmap perancangan halaman register user


pada aplikasi berbasis web. Admin yang mendaftarkan seorang user baru, harus
memasukkan nama lengkap, username, email, password dan konfirmasi
password. Jika password yang dimasukkan sama dengan isi dari konfirmasi
password yang dimasukkan, maka akan muncul konfirmasi bahwa registrasi
berhasil. Jika berbeda, maka akan muncul konfirmasi password salah, dan akan
kembali lagi ke halaman registrasi user.

24
11)Halaman Register Admin pada Web

Gambar di atas merupakan flowmap perancangan halaman register untuk


admin pada aplikasi berbasis web. Admin harus memasukkan nama lengkap,
username, email, password dan konfirmasi password. Jika password yang
dimasukkan sama dengan konfirmasi password yang dimasukkan, maka akan
muncul konfirmasi bahwa registrasi berhasil. Jika tidak sama, maka akan muncul
konfirmasi password salah, dan akan kembali lagi ke halaman registrasi admin.

12) Halaman Index pada Web

25
Gambar di atas merupakan flowmap perancangan halaman index pada
aplikasi berbasis web. Jika admin memilih menu Dashboard, maka akan muncul
halaman index yang menampilkan informasi keseluruhan tentang web.

13) Halaman Log Sensor pada Web

Gambar di atas merupakan flowmap perancangan halaman Log Sensor


pada aplikasi berbasis web. Jika admin memilih menu Monitoring dan sub menu
Log Sensor, maka akan muncul halaman Log Sensor yang menampilkan informasi
tentang suhu, kelembaban udara, kelembaban tanah, durasi siram dan hasil
Adaline.

14) Halaman Soil Moisture pada Web


Halaman ini akan muncul jika admin berhasil login dan memilih menu
Monitoring kemudian memilih sub menu Soil Moisture, untuk alur selanjutnya
dapat dilihat pada flowmap berikut ini :

26
Gambar di atas merupakan flowmap perancangan halaman Soil Moisture
pada web. Halaman Soil Moisture akan menampilkan informasi tentang sensor1,
sensor2, sensor3, sensor4 yang merupakan hasil pembacaan keempat sensor YL-
69, dan rata-rata kelembaban tanah.

15) Halaman Grafik pada Web


Halaman ini akan muncul jika admin berhasil login dan memilih menu Grafik,
untuk alur selanjutnya dapat dilihat pada flowmap berikut ini :

Gambar di atas merupakan flowmap perancangan halaman Grafik untuk


admin pada aplikasi berbasis web. Jika admin memilih menu Grafik, maka akan
muncul halaman Grafik yang menampilkan informasi tentang suhu, kelembaban
udara, kelembaban tanah, durasi siram, dan hasil Adaline dalam bentuk grafik.

16) Halaman Info Tanaman pada Web

27
Gambar di atas merupakan flowmap perancangan halaman Info Tanaman
untuk admin pada aplikasi berbasis web. Jika admin memilih menu Info Tanaman,
maka akan muncul informasi tentang jenis-jenis tanaman pada pertanian vertikal.

17) Halaman User pada Web

Gambar di atas merupakan flowmap perancangan halaman User pada


aplikasi berbasis web. Jika admin memilih menu User, maka akan muncul
informasi tentang daftar identitas user yang telah registrasi pada sistem.

18) Halaman Logout pada Web

28
Gambar di atas merupakan flowmap perancangan halaman Logout pada
aplikasi berbasis web. Jika admin menekan tombol Logout, maka admin akan
diarahkan keluar dari web dan menuju ke halaman login kembali.

29
DESAIN DAN IMPLEMENTASI

A. Desain Sistem

Berdasarkan analisa sistem berjalan, maka penulis mengusulkan aplikasi


chatbot sebagai mesin penjawab yang akan memberikan informasi terhadap
user di jurusan teknik informatika di kampus STT-PLN. Diharapkan dengan
adanya aplikasi tersebut bisa mempermudah pendistribusian informasi dari
jurusan ke mahasiswa teknik informatika. Nantinya mahasiswa yang ingin
mengetahui informasi dari jurusan bisa langsung bertanya pada aplikasi
chatbot.
Chatbot akan memeriksa pertanyaan mahasiswa yang berupa teks. Kemudian,
mencocokkan dengan jawaban yang paling tepat dengan yang ada di basis
pengetahuan. Setelah bot menemukannya, dia akan mengembalikan lagi ke
user berupa jawaban dari pertanyaan yang sebelumnya ditanyakan. Staf
jurusan bisa menambah pengetahuan dari chatbot tersebut. Selain itu, sebagai
bahan pertimbangan untuk menambah pengetahuan baru ke chatbot, staf
jurusan bisa melihat catatan percakapan yang pernah dilakukan antara user
dengan chatbot.

30
B. Perancangan Data Flow Diagram
Diagram alir data atau data flow diagram digunakan untuk
menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat
data bergerak dari input menjadi output. Berikut data flow diagram yang
diusulkan:
1) Diagram Konteks
Diagram konteks menggambarkan ruang lingkup suatu sistem.
Diagram konteks menunjukkan semua entitas luar yang menerima
informasi dari atau memberikan informasi ke sistem.

Gambar 3. 1 Diagram Konteks


Terdapat dua entitas eksternal, yaitu admin dan pengguna. Admin
mengirimkan data training, data login, dan data AIML ke dalam
sistem. Kemudian, sistem aplikasi akan membalas dengan data
login, data AIML dan data training. Sementara itu, pengguna
memasukkan data pertanyaan dan mendapat balasan dari sistem
berupa data jawaban.

2) Diagram Level 0

31
Gambar 3. 2 Diagram Level 0
Diagram level 0 memberikan gambaran secara menyeluruh terhadap
sistem aplikasi yang dibuat, menunjukkan fungsi dan proses secara
lebih mendetil.
Berdasarkan gambar 3.4, aplikasi chatbot ini terdiri dari empat proses
besar, antara lain login untuk admin, pengelolaan data AIML oleh
admin, pengelolaan data training oleh admin, dan proses chatting itu
sendiri. Proses login terhubung dengan penyimpanan data bernama
user. Proses pengelolaan data AIML, pengelolaan data training dan
proses chatting terhubung dengan penyimpanan data Training File
dan AIML File.

32
3) Diagram 1 Level 1 Proses Pengelolaan Data AIML

Gambar 3. 3 Diagram 1 Level 1 Pengelolaan Data AIML


Gambar 3.5, menunjukkan proses lebih rinci dari proses pengelolaan
data AIML yang dilakukan oleh admin. Pengelolaan data AIML
terbagi ke dalam tiga proses karena aksi yang bisa dilakukan
terhadap file tersebut berbeda-beda. Berikut ini kamus data untuk
memberikan rincian dari proses yang dilakukan:
Tabel 3. 1 Tabel Kamus Data Menambah AIML
Nama Proses Menambah File AIML
Nomor 2.1
Proses
Input Data AIML (nama file)
Output Data AIML(id_file, nama_file, path_file)
Penjelasan Admin menambahkan file AIML baru ke dalam
Proses sistem dan dicatat di database

Tabel 3. 2 Tabel Kamus Data Menghapus File AIML


Nama Proses Menghapus File AIML
Nomor 2.2

33
Proses
Input Data AIML (id_file)
Output Data AIML(id_file, nama_file, path_file)
Penjelasan Admin menghapus file AIML yang ada di sistem
Proses berdasarkan ID-nya

Tabel 3. 3 Tabel Kamus Data Mengunduh File AIML


Nama Proses Mengunduh File AIML
Nomor 2.3
Proses
Input Data AIML(nama_file, path_file)
Output Data AIML(file AIML)
Penjelasan Admin mengunduh (download) file AIML yang ada
Proses dalam sistem untuk diambil ke komputer sendiri

4) Diagram 2 Level 1 Proses Pengelolaan Data Training

Gambar 3. 4 Diagram 2 Level 1 Proses Pengelolaan Data Training


Dari proses chatbot yang terdapat pada gambar 3.6, gambar lebih
memberi rincian dari proses pengelolaan data training. Proses yang
dilakukan terbagi ke dalam dua proses, antara lain menambah data

34
training dan mengunduh (download) data training. Berikut ini adalah
kamus data sebagai penjelasan lebih rinci dari DFD pada gambar
3.6:

Tabel 3. 4 Tabel Kamus Data Menambah File Data Training


Nama Proses Menambah File Data Training
Nomor 3.1
Proses
Input Data Training (nama file)
Output Data Training(id_file, nama_file, size_file,
diubah_pada)
Penjelasan Admin menambahkan data training baru ke dalam
Proses sistem dan dicatat di database

Tabel 3. 5 Tabel Kamus Data Mengunduh File Data Training


Nama Proses Mengunduh File Data Training
Nomor 3.2
Proses
Input Data Training(nama_file, path_file)
Output Data Training(file data training)
Penjelasan Admin mengunduh (download) file training yang
Proses ada dalam sistem untuk diambil ke komputer
sendiri

5) Diagram 3 Level 1 Proses Chatting

35
Gambar 3. 5 Diagram 3 Level 1 Proses Chatting
Gambar 3.7 merupakan rincian dari proses chatting. Data training
yang berada di training file diambil untuk melakukan proses melatih
classifier. Kemudian, hasilnya digunakan untuk mengklasifikan NER
terhadap input user yang berupa data pertanyaan. Data hasil
klasifikasi digunakan untuk melakukan pattern matching terhadap
data jawaan dari AIML File. Data jawaban dikirimkan kembali ke
pengguna. Di bawah ini adalah kamus data dari DFD yang ada di
gambar 3.7, sebagai berikut:
Tabel 3. 6 Tabel Kamus Data Melatih Classifier
Nama Proses Melatih Classifier
Nomor 4.1
Proses
Input Data Teks Teranotasi (Data training yang sudah
diunggah sebelumnya)
Output Data Hasil Training
Penjelasan Sistem melakukan perhitungan untuk melatih
Proses classifier

Tabel 3. 7 Tabel Kamus Data Pattern Matching


Nama Proses Pattern Matching
Nomor 4.3

36
Proses
Input Data Teks Terklasifikasi, Data Jawaban
Output Data Jawaban
Penjelasan Teks yang sudah diklasifikasi, dicocokkan polanya
Proses dengan data jawaban di AIML. Setelah
menemukan yang cocok, sistem mengirim
jawaban ke pengguna.

C. Implementasi Named Entity Recognition


Perancangan proses ini merupakan penggambaran dari tahapan proses
ketika pengguna memakai aplikasi tersebut. Gambaran perancangan proses
aplikasi digambarkan dengan flowchart yang berguna untuk menjelaskan alur
jalannya aplikasi dari awal hingga akhir, dari pembukaan aplikasi hingga akhir
selesai aplikasi digunakan. Secara garis besar, proses pada aplikasi ini terbagi
ke dalam dua fase, yaitu fase NER learning dan fase chatbot.
Named Entity Recognition Learning adalah proses melatih sistem untuk
menghasilkan model classifier yang digunakan dalam pengklasifikasian kata
nantinya. Proses yang dilakukan dalam NER learning bisa dilihat pada gambar
berikut:

37
Gambar 3. 6 Proses NER Learning

Gambar 3.8 menunjukkan proses learning dari named entity recognition


(NER) yang nantinya akan membentuk sebuah model classifier. Data training
terlebih dahulu melewati tahap pre-processing. Proses ini mengolah teks
menjadi data yang mudah diolah oleh sistem. Setelah mendapat data hasil dari
text preprocessing, selanjutnya dilakukan proses feature extraction, yaitu
proses yang digunakan untuk mengekstraksi atribut dari sebuah teks atau data
training yang sebelumnya sudah diolah. Berdasarkan analisis ketika proses
feature extraction, dibuatlah sebuah pemodelan yang berisi kumpulan klasifikasi
atribut berdasarkan kata penyusunnya yang disebut dengan Classifier.
Classifier inilah yang akan digunakan sebagai proses learning untuk bisa
mengenali pola input dari pengguna ketika proses percakapan dilakukan. Untuk
lebih detilnya bisa dilihat melalui proses di bawah ini :

38
1) Data training. Data training yang dibutuhkan penulis untuk penelitian
ini adalah berbagai dokumen dalam bahasa Indonesia. Tentunya
menggunakan bahasa Indonesia yang baik dan benar sesuai EYD.
Data training digunakan untuk melatih mesin untuk menghasilkan
sebuah model yang digunakan untuk mendeteksi data test nantinya.
Data training akan melewati proses preprocessing dan feature
extraction sebelum diproses dengan metode machine learning.
Pengklasifikasian dalam data training dibuat manual oleh penulis
dengan menandai setiap kata dengan part of speech dan kelas NER-
nya.
2) Text preprocessing. Selanjutnya adalah tahap text preprocessing
yang terdiri dari sentence tokenizing, word tokenizing, part of speech
tagger training, dan BILOU tagging. Sentence tokenizing, yaitu
memisahkan isi dokumen berdasarkan satu kalimat. Dalam data
training, setiap kalimat terpisah oleh garis baru atau newline.
Proses yang akan dilakukan berikutnya dinamakan word tokenizing.
kalimat yang sudah dipisah-pisah akan dipisah kembali menjadi per
kata. Pada contoh yang akan penulis berikan, setiap kata
dimasukkan ke dalam tanda dalam kurung ‘()’. Berikut ini contoh dari
word tokenizing :
Tabel 3. 8 Tabel Contoh Proses Word Tokenizing

(Ada/vbi/O) (Laboratorium/nnp/LOC)
(ITCC/nnp/LOC) (dan/CC/O)
(Laboratorium/nnp/LOC) (Jaringan/nnp/LOC)
(serta/cc/O) (Laboratorium/nnp/LOC)
(Simulasi/nnp/LOC) (Dan/nnp/LOC)
(Pemodelan/nnp/LOC) (sekaligus/uh/O)
(Laboratorium/nnp/LOC) (Dasar/nnp/LOC)
(2/nnp/LOC) (berada/vb/O) (di/IN/O) (lantai/nn/O)
(5/cdp/NUM)
Proses yang akan dilakukan selanjutnya adalah part of speech (POS)
tagger training, yaitu melatih tagger agar bisa memberi POS tag yang

39
sesuai dengan konteks kalimatnya. Kumpulan POS tag yang
digunakan pada penelitian ini terlihat pada tabel berikut(Rashel,
Luthfi, Dinakaramani, & Manurung, 2014):
Tabel 3. 9 Tabel Part of Speech

Part Of Speech POS Name Example


(POS)
CC Konjungtor Dan, atau, tetapi
Koordinatif
OD Numeralia Ordinal Ketiga, Ke-4
DT Artikula Para, sang, si
FW Bahasa Asing Conditions, what, if
IN Preposisi Dalam, dengan, di, ke
JJ Adjektiva Bersih, Panjang, lama,
jauh
MD Modal Boleh, harus, sudah,
perlu
NEG Negasi Tidak, belum, jangan
NN Nomina Monyet, mata
NNP Proper Noun Irfan, Joko, STT-PLN
PRP Pronomina Saya, kami, dia, kamu
Persona
RB Adverbial Sangat, hanya, niscaya
SC Konjungtor Sejak, jika, seandainya,
Subordinatif supaya
VB Verba Merancang, mengatur,
mengambil
WH Pronomina Siapa, dimana, apa,
Penanya kenapa
UH Interjection Wah Aduh, Oi
CDO Ordinal Numeral Pertama, Kedua
CDP Primary Numeral Satu, Dua

40
CDI Irregular Numeral Beberapa

Berdasarkan data training yang ada, program akan menghitung


kemunculan suatu kata bersamaan dengan tag-nya. Selanjutnya
hitung rata-rata tiap kata dengan tag-nya. Kemudian, rata-rata yang
paling maksimum yang akan menjadi pilihan. Hal ini dilakukan untuk
melatih tagger yang akan digunakan untuk melabeli setiap kata
dengan part of speech.
Penulis akan mencontohkan melalui kata ‘Laboratorium’ yang muncul
dengan dua tag yang berbeda berdasarkan contoh sampel data.

Tabel 3. 10 Contoh Perhitungan Tag


Kata/Tag NNP NN Jenis Tag Jumlah
Laboratorium 0,4 0,6 NNP 4
NN 5
Total tag untuk ‘Laboratorium’ 9
Jumlah tag untuk ‘Laboratorium’ 2

Karena kata ‘Laboratorium’ lebih banyak yang memiliki tag NN, maka
untuk kata ‘Laboratorium’ yang ditemukan nantinya akan diberi tag
NN (Noun). Bila rata-rata tag yang muncul sama, tag yang lebih
dahulu muncul yang akan menjadi label untuk kata tersebut. Perlu
diingat, perhitungan di atas hanya contoh kecil dari data training yang
ada.
Tahap terakhir dari preprocessing adalah BILOU tagging. BILOU
tagging merupakan proses mengubah named entity recognition
(NER) yang ada pada data training ke dalam skema BILOU. BILOU
adalah singkatan dari begin, inside, last, unit, outside (other). Skema
ini digunakan sebagai penanda suatu kelas NER. Misal, tag begin
digunakan sebagai penanda awal kata dari suatu kelas NER yang

41
berhubuungan. Kemudian, inside yang berarti menandakan bahwa
kata tersebut berada di tengah dari NER yang berhubungan. Last
untuk akhir dari suatu NER, unit untuk menandakan bahwa NER
tersebut sendiri, dan outside menandakan kata yang di luar dari
NER. Tabel akan memberikan penggambaran bagaimana BILOU
tagging dilakukan terhadap data training yang menjadi contoh.
Tabel 3. 11 Contoh BILOU Tagging

Ada/vbi/O | Laboratorium/nnp/B-LOC |
ITCC/nnp/L-LOC | dan/CC/O |
Laboratorium/nnp/B-LOC | Jaringan/nnp/L-LOC |
serta/cc/O | Laboratorium/nnp/B-LOC |
Simulasi/nnp/I-LOC | Dan/nnp/I-LOC |
Pemodelan/nnp/L-LOC | sekaligus/uh/O |
Laboratorium/nnp/B-LOC | Dasar/nnp/I-LOC |
2/nnp/L-LOC | berada/vb/O | di/IN/O | lantai/nn/O |
5/cdp/U-NUM

3) Feature Extraction. Feature Extraction atau ekstraksi fitur


merupakan proses mengambil fitur atau atribut dari teks atau data
training yang sudah diolah. Sebagai contoh, satu kata bisa menjadi
satu feature karena keberadaan kata tersebut yang bisa
mempengaruhi kata lainnya. Hasil dari feature extraction akan
digunakan untuk proses selanjutnya untuk membuat sebuah
pemodelan yang disebut classifier. Beberapa analisa feature yang
diektraksi pada penelitian ini bisa dilihat pada tabel 3. 12.
Tabel 3. 12 Feature Extracted

No Atribut/Fitur Keterangan
1 Wordi Fitur yang menunjukkan kata itu sendiri.
2 POSi Fitur yang menunjukkan part of speech dari
kata.
3 Bigram Fitur yang menunjukkan keberadaan dua
42
kata secara bersamaan.
4 Wordi+1 Fitur yang menunjukkan satu kata
sesudahnya.
5 Wordi+2 Fitur yang menunjukkan dua kata
sesudahnya.
6 Wordi-1 Fitur yang menunjukkan satu kata
sebelumnya.
7 Wordi-2 Fitur yang menunjukkan dua kata
sebelumnya.

Setiap kata di data training akan dianalisa fitur-fiturnya. Fitur tersebut


berguna untuk membuat sebuah pemodelan yang disebut classifier.
Analisis fitur ini dilakukan dengan memperhatikan setiap kata karena
nilai dari fitur tersebut bisa memberi pengaruh dalam penentuan
named entity.

43
Berikut ini adalah hasil tahapan feature extraction yang ada di proses text preprocessing sebelumnya, sebagai berikut.
Tabel 3. 13 Contoh Feature Extraction

next-next- prev-prev-
word pos bigram next-word word prev-word word NER
Laboratoriu
Ada vbi Ada Laboratorium m ITCC __START1__ __START2__ O
Laboratoriu
m nnp Laboratorium ITCC ITCC dan Ada __START1__ B-LOC
ITCC nnp ITCC dan dan Laboratorium Laboratorium Ada L-LOC
Laboratoriu
dan cc dan Laboratorium m Jaringan ITCC Laboratorium O
Laboratoriu Laboratorium
m nnp Jaringan Jaringan serta dan ITCC B-LOC
Jaringan nnp Jaringan serta serta Laboratorium Laboratorium dan L-LOC
Laboratoriu
serta cc serta Laboratorium m Simulasi Jaringan Laboratorium O
Laboratoriu Laboratorium
m nnp Simulasi Simulasi Dan serta Jaringan B-LOC
Simulasi nnp Simulasi Dan Dan Pemodelan Laboratorium serta I-LOC
Dan nnp Dan Pemodelan Pemodelan sekaligus Simulasi Laboratorium I-LOC
Pemodelan
Pemodelan nnp sekaligus sekaligus Laboratorium Dan Simulasi L-LOC
sekaligus Laboratoriu
sekaligus uh Laboratorium m Dasar Pemodelan Dan O
Laboratoriu Laboratorium
m nnp Dasar Dasar 2 sekaligus Pemodelan B-LOC
Dasar nnp Dasar 2 2 berada Laboratorium sekaligus I-LOC
2 nnp 2 berada berada di Dasar Laboratorium L-LOC
44
next-next- prev-prev-
word pos bigram next-word word prev-word word NER
berada vb berada di di lantai 2 Dasar O
di in di lantai lantai 5 berada 2 O
lantai nn lantai 5 5 Lantai di berada O
5 cdp 5 Lantai Lantai 3 lantai di U-NUM

45
4) Classifier. Classifier merupakan proses pemodelan yang berisi
kumpulan klasifikasi fitur yang sudah dianalisis berdasarkan setiap kata
penyusunnya. Pemodelan classifier ini dibuat dengan cara mengubah
hasil feature extraction menjadi sebuah model yang diproses melalui
algoritma machine learning. Nantinya, model ini digunakan untuk
mengenali pola input user saat proses chat dilakukan. Algoritma
machine learning yang digunakan adalah multinomial naïve bayes.
Dalam metode multinomial naïve bayes, ada dua variable perhitungan
yang dibutuhkan, yaitu class prior probability (probabilitas kelas) dan
feature likelihood probability (probabilitas tiap fitur pada kelas yang
bersangkutan). Untuk menghitung probabilitas kelas, hitung jumlah
kemunculan kelas dibagi dengan jumlah kemunculan seluruh kelas.
Sebagai contoh, dari data training sebelumnya, kelas NER ‘O’ muncul
sebanyak 83 kali. Sementara jumlah keseluruhan kelas adalah 157.
Maka, perhitungan probabilitas untuk kelas ‘O’ adalah sebagai berikut:
83
P(O) =
157
, P(O) = 0,5286
Tabel 3. 14 Hasil Class Prior Probability

Class Prior
Class Jumlah Probability
O 83 0,52866242
B-PER 1 0,006369427
I-PER 1 0,006369427
L-PER 1 0,006369427
U-PER 2 0,012738854
B-ORG 2 0,012738854
I-ORG 2 0,012738854
L-ORG 2 0,012738854
U-ORG 1 0,006369427
B-LOC 11 0,070063694
I-LOC 5 0,031847134
L-LOC 11 0,070063694
U-LOC 3 0,01910828
U-NUM 7 0,044585987

46
Class Prior
Class Jumlah Probability
U-QUE 5 0,031847134
U-INTENT 11 0,070063694
B-INTENT 3 0,01910828
I-INTENT 1 0,006369427
L-INTENT 3 0,01910828
B-QUE 1 0,006369427
L-QUE 1 0,006369427

Tabel 3. 14 menunjukkan hasil class prior probability dari setiap kelas


berdasarkan data training.
Proses selanjutnya adalah menghitung feature likelihood probability
atau probabilitas dari setiap feature untuk kelas tertentu. Untuk
menghitung probabilitas fitur, jumlah kemunculan fitur tersebut harus
dibagi dengan jumlah seluruh fitur pada kelas tertentu yang ditambah
dengan jumlah fitur unik dalam seluruh kelas yang dinotasikan ke dalam
bentuk |V|.
Demi menghindari nilai probabilitas 0 untuk data yang tidak ada dalam
data training, diperlukan proses smoothing. Smoothing yang digunakan
adalah Laplacian Smoothing, yaitu menambah 1 ke rumus perhitungan.
Berdasarkan dari data training yang dicontohkan, jumlah fitur pada
setiap kelasnya adalah sebagai berikut:
Tabel 3. 15 Jumlah Fitur Dalam Kelas Tertentu

Jumlah fitur
Kelas dalam kelas
O 786
B-PER 31
I-PER 31
L-PER 26
U-PER 40
B-ORG 99
I-ORG 101
L-ORG 100
U-ORG 32
B-LOC 190
I-LOC 159

47
Jumlah fitur
Kelas dalam kelas
L-LOC 212
U-LOC 119
U-NUM 75
U-QUE 54
U-INTENT 175
B-INTENT 111
I-INTENT 89
L-INTENT 113
B-QUE 25
L-QUE 17
Jumlah fitur unik dari keseluruhan kelas adalah sebagai berikut:
Tabel 3. 16 Jumlah Fitur Unik

Fitur Jumlah Fitur


Word 107
POS 41
Bigram 144
NextWord 118
Next2Word 122
PrevWord 118
Prev2Word 126
|V| (Total fitur) 776

Sebagai contoh, dari tabel 3. 13, untuk feature ‘Word:Ada’ yang


termasuk ke dalam kelas ‘O’, dengan frekuensi kemunculan hanya satu,
maka perhitungannya adalah sebagai berikut:
count ( f i , c ) +1 1+1
P ( f i|c ) = , P(word:Ada|O) = 786+776 = 0,00128
count ( f ,c ) +¿ V ∨¿ ¿
Setiap fitur yang ada harus dihitung probabilitasnya. Setiap probabilitas
yang dihitung digunakan untuk membuat model classifier dari naïve
bayes. Hasil perhitungan probabilitas tersebut digunakan pada saat
mengklasifikasi kata ke dalam named entity recognition.

48
ANALISIS

A. Analisa Sistem Berjalan

Analisa sistem berjalan ini didapatkan melalui observasi dan wawancara di


kampus STT-PLN jurusan Teknik Informatika.
Staf jurusan begitu mendapat informasi untuk dibagikan ke mahasiswa, maka dia
akan langsung membagikannya ke mahasiswa. Akan tetapi, informasi yang
diumumkan tersebut hanya ditempel di bagian jurusan. Cara konvensional seperti
ini mengakibatkan rentan terjadinya miss informasi terhadap mahasiswa. Secara
tidak langsung, mahasiswa diharuskan untuk berada di kampus agar bisa
mendapatkan informasi terkait jurusan.
Mahasiswa harus pergi ke kampus terlebih dahulu untuk mengetahui informasi
yang diinginkannya. Mahasiswa bisa melihat melalui mading atau papan
pengumuman yang ada di jurusan atau untuk informasi yang tidak ada di mading,
akan dditanyakan langsung ke staf jurusan.
Dengan mahasiswa pergi ke kampus, akan memakan waktu apalagi bila informasi
yang ingin ditanyakan hanya berupa nomor dosen atau informasi lain yang

49
seharusnya tidak perlu untuk datang ke kampus. Terlebih lagi jika mahasiswa
tersebut sedang tidak berada di Jakarta, maka semakin kesulitan untuk
mendapatkan informasi. Kesulitan juga dialami oleh staf jurusan yang seringkali
mendapat pertanyaan yang sama berulang kali.
Dari permasalahan pada analisa sistem berjalan ini, penulis menyimpulkan bahwa
perlu ada inovasi untuk menyelesaikan masalah yang ada. Salah satu inovasi atau
solusi untuk menyelesaikan masalah tersebut adalah dengan membuat sistem
yang menjadi wadah atau tempat bagi para mahasiswa di jurusan informatika
untuk bertanya dan mendapat informasi. Staf jurusan juga tidak perlu menjawab
pertanyaan yang sama berulang kali dari mahasiswa. Untuk itu, penulis
menawarkan solusi dengan chatbot yang bisa menjawab otomatis pertanyaan dari
user dengan cepat dan akurat dengan mengambil kata-kata dari user yang akan
diklasifikasikan menurut entitasnya untuk dibandingkan dengan pattern yang ada
di AIML supaya bisa memberikan jawaban yang tepat.

B. Analisa Kebutuhan Data


Analisa kebutuhan data adalah tahap identifikasi data yang diperlukan
untuk keperluan penelitian. Berikut adalah analisa kebutuhan yang diperlukan oleh
aplikasi:
1) Data jurusan teknik informatika STT-PLN. Merupakan data yang
didapatkan dari jurusan teknik informatika di STT-PLN. Data ini berguna
untuk membuat jawaban dari pertanyaan yang biasa diajukan
mahasiswa. Data yang penulis ambil berasal dari wawancara terhadap
staf jurusan dan beberapa penulis ambil dari pengumuman yang
ditempel di dinding jurusan. Data yang digunakan untuk penelitian ini
terdiri dari:
a. Kontak dosen. Yaitu nomor dosen jurusan teknik informatika yang
ditempel di jurusan.
b. Prosedur pengurusan semester pendek. Yaitu cara untuk mengurus
semester pendek dan syaratnya.

50
c. Informasi magang. Yaitu syarat untuk mengambil mata kuliah
magang, syarat sidang dan lainnya.
d. Informasi skripsi. Yaitu syarat untuk mengambil mata kuliah skripsi,
syarat siding skripsi, dan lainnya.
e. Ruangan dosen. Yaitu data yang menunjukkan ruangan dari setiap
dosen tetap jurusan teknik informatika.
f. Informasi ruangan laboratorium. Yaitu informasi terkait lokasi
ruangan laboratorium komputer.
2) Dataset. Dataset adalah sekumpulan data yang digunakan pada proses
text mining yang bisa digunakan sebagai data training (data latih) atau
data test (data uji). Data yang digunakan adalah data berupa kata-kata
dalam bahasa Indonesia yang sudah diberi tag untuk part of speech dan
juga entitasnya. Contoh bentuk dataset yang digunakan ditampilkan
pada tabel berikut:
Ada/vbi/O Laboratorium/nnp/LOC ITCC/nnp/LOC dan/CC/O
Laboratorium/nnp/LOC Jaringan/nnp/LOC serta/cc/O
Laboratorium/nnp/LOC Simulasi/nnp/LOC Dan/nnp/LOC
Pemodelan/nnp/LOC sekaligus/uh/O Laboratorium/nnp/LOC
Dasar/nnp/LOC 2/nnp/LOC berada/vb/O di/IN/O lantai/nn/O
5/cdp/NUM

3) Pertanyaan mahasiswa. Sekumpulan pertanyaan yang sering


ditanyakan oleh mahasiswa ke jurusan untuk menunjang kemampuan
chatbot. Penulis membuat kuesioner online untuk mengetahui
pertanyaan yang sering ditanyakan mahasiswa.

C. Precision and Recall Named Entity Recognition


Suatu aplikasi yang sudah jadi perlu dievaluasi guna mengetahui kinerja
dari aplikasi tersebut. Aplikasi chatbot sebagai layanan jurusan diuji
pengklasifikasian named entity-nya menggunakan teknik pengujian precision and
recall. Precision & recall dihitung tidak berdasarkan tiap token atau kata

51
melainkan berdasarkan entitasnya. Berikut ini hasil pengujian dengan data test
dengan menggunakan seluruh data training:
Tabel 4. 1 Hasil Perhitungan Precision dan Recall

NER Precision Recall


Organizatio
n 81% 81%
Location 60% 55%
Person 95% 95%
Question 100% 100%
Number 100% 91%
Intent 90% 93%
Rata-rata 88% 85%

52
KESIMPULAN

Berdasarkan hasil penelitian dan pembahasan yang telah dilakukan dapat


diambil beberapa kesimpulan, antara lain:

1) Aplikasi chatbot membantu mahasiswa untuk mendapatkan


informasi terkait jurusan tanpa harus ke kampus dengan bertanya
melalui situs yang bisa diakses dari mana saja dengan akurasi
chatbot hingga 85%.
2) Mahasiswa tidak perlu menunggu untuk mendapat jawaban dari
pertanyaannya karena chatbot bisa menjawab pertanyaan dalam
waktu kurang dari 1 detik.
3) Chatbot bisa mengenali pola pertanyaan yang merupakan bahasa
manusia dengan metode named entity recognition menggunakan
algoritma multinomial naïve bayes, dengan nilai rata- rata precision
sebesar 88% dan nilai rata-rata recall sebesar 85% berdasarkan
pengujian menggunakan semua data di data training.

53

Anda mungkin juga menyukai