PENGEMBANGAN CHATBOT UNTUK MEMPEROLEH INFORMASI CUACA WILAYAH INDONESIA MENGGUNAKAN
RECURRENT NEURAL NETWORK
SKRIPSI
NABILA AZZAHRA 171402011
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2022
i
PENGEMBANGAN CHATBOT UNTUK MEMPEROLEH INFORMASI CUACA WILAYAH INDONESIA MENGGUNAKAN
RECURRENT NEURAL NETWORK
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
NABILA AZZAHRA 171402011
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2022
iii
PERNYATAAN
PENGEMBANGAN CHATBOT UNTUK MEMPEROLEH INFORMASI CUACA WILAYAH INDONESIA MENGGUNAKAN
RECURRENT NEURAL NETWORK
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 13 Januari 2022
Nabila Azzahra 171402011
UCAPAN TERIMA KASIH
Puji dan syukur penulis ucapkan kepada Alla SWT, yang senantiasa memberikan berkat dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai salah satu syarat untuk mendapat gelar Sarjana Komputer, pada Program Studi S1 Teknologi Informasi Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Dalam menyelesaikan penulisan skripsi ini, penulis telah banyak mendapatkan bimbingan, dukungan, bantuan serta doa dari berbagai pihak. Adapun pada kesempatan ini penulis ingin mengucapkan terimakasih kepada:
1. Penulis sendiri, Nabila Azzahra, yang telah berusaha keras sehingga penulisan ini selesai.
2. Kedua Orang tua, kakak, keluarga serta saudara dekat penulis yang selalu sabar menunggu proses penulis menyelesaikan tugas akhir ini serta memberikan dukungan tanpa henti
3. Ibu Rossy Nurhasanah S.Kom., M.Kom ., selaku Dosen Pembimbing 1 dan Ibu Sarah Purnamawati ST., M.Sc selaku Dosen Pembimbing 2 yang telah membimbing, memberikan saran dan kritik yang memotivasi dan memberikan semangat kepada penulis dalam penelitian serta penulisan skripsi ini
4. Ibu Dr. Maya Silvi Lidya B.Sc., M.Sc. selaku Dekan Fasilkom-TI Universitas Sumatera Utara
5. Ibu Sarah Purnamawati ST., M.Sc selaku Ketua Program Studi S1 Teknologi Informasi Universitas Sumatera Utara
6. Bapak Dedy Arisandi ST., M.Kom selaku Dosen Pembanding 1 dan Ibu Ade Sarah Huzaifah S.Kom., M.Kom selaku Dosen Pembanding 2 penulis
7. Seluruh Dosen Program Studi S1 Teknologi Informasi yang telah memberikan ilmu yang bermanfaat bagi penulis selama masa perkuliahan.
8. Staff dan pegawai Fasilkom-TI Universitas Sumatera Utara yang membantu segala urusan administrasi selama perkuliahan dan menyelesaikan skripsi.
v
9. Teman-teman Galaxy seperjuangan perkuliahan dan perskripsian Nadia, Bebe, Bella, Yayay, Ica, Vania dan Tata yang selalu mengisi kehidupan perkuliahan, membantu dalam proses pengerjaan skripsi, memberi canda tawa, serta memberikan semangat dan saran kepada penulis.
10. Teman-teman bukan galaxy yang juga teman seperjuangan perkuliahan dan perskripsian Rafif, Fajar, Teha, Ibnu dan Dinul yang selalu mengisi kehidupan perkuliahan dan juga memberikan semangat dan saran kepada penulis.
11. Gerobackso dan Kaihafa yang merupakan teman seperjuangan penulis sejak sekolah hingga sekarang, Dinda, Sarah, Nami, Chindy, Dara, Tasya, Fahiza, Syifa, Intan, Diriz, dan Nizzah yang selalu ada dan selalu menghibur penulis dalam proses pengerjaan skripsi ini.
12. Ilham Kurnia dan Varrel Preston yang selalu membantu serta menemani penulis saat proses pengerjaan tugas akhir ini.
13. Teman-teman angkatan 2017 Teknologi Informasi lainnya yang telah berjuang bersama penulis dalam menghadapi perkuliahan.
Penulis menyadari bahwa dalam penulisan skripsi ini masih terdapat kekurangan, oleh karena itu penulis mengharapkan kritik dan saran yang membangun untuk penyempurnaan skripsi ini.
Medan, Januari 2022 Penulis
ABSTRAK
Cuaca berperan sangat penting dalam menjalani aktivitas kehidupan sehari-hari. Cuaca merupakan perubahan suhu, angin, curah hujan, dan sinar matahari. Di beberapa tempat, cuaca dapat berubah-ubah dengan cepat dan ada juga yang bisa tetap dalam kurun waktu tertentu. Untuk mendapatkan informasi mengenai prakiraan cuaca, biasanya dapat dilihat melalui berbagai macam media informasi, seperti surat kabar, televisi bahkan internet. Di masa perkembangan teknologi ini, banyak orang yang tertarik dan nyaman menggunakan fitur chatting untuk mendapatkan informasi melalui interaksi dengan orang lainya. Dengan menggunakan sistem chatbot sebagai sistem yang interaktif, orang-orang akan memanfaatkan sistem ini untuk membantu mereka mendapatkan informasi dengan mendapat jawaban dari pertanyaan secara otomatis tanpa membutuhkan waktu yang lama dengan menggunakan sistem yang responsif, cepat, akurat serta interaktif. Penelitian ini menggunakan menggunakan metode Recurrent Neural Network dalam membuat sistem chatbot yang nantinya sistem tersebut dapat memprakirakan cuaca dan dapat memberikan himbauan mengenai kondisi cuaca di seluruh wilayah Indonesia. Hasil dari penelitian ini yaitu chatbot untuk memperoleh informasi prakiraan cuaca indonesia dengan menggunakan metode Recurrent Neural Network menghasilkan sebesar 90%, presisi sebesar 93,1% dan recall sebesar 95%.
Kata kunci : Cuaca, Natural Language Processing, Recurrent Neural Network, RNN, Chatbot.
vii
ABSTRACT
Weather plays a very important role in carrying out activities of daily life. Weather is a change in temperature, wind, rainfall, and sunlight. In some places, the weather can change quickly and in some it can stay for a certain period of time. To get information about weather forecasts, it can usually be seen through various kinds of information media, such as newspapers, television and even the internet. In this period of technological development, many people are interested and comfortable using the chat feature to get information through interaction with other people. By using the chatbot system as an interactive system, people will use this system to help them get information by getting answers to questions automatically without taking a long time by using a responsive, fast, accurate and interactive system. This study uses the Recurrent Neural Network method in creating a chatbot system which later the system can predict the weather and can provide advice on weather conditions throughout Indonesia. The results of this study are chatbots to obtain information on Indonesian weather forecasts using the Recurrent Neural Network method resulting in an accuracy of 90%, precision of 93,1% and recall of 95%.
Keywords: Weather, Natural Language Processing Recurrent Neural Network, RNN, Chatbot.
DAFTAR ISI
PERSETUJUAN Error! Bookmark not defined.
PERNYATAAN ii
UCAPAN TERIMA KASIH iv
ABSTRAK vi
ABSTRACT vii
BAB 1 1
PENDAHULUAN 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 3
1.3 Tujuan Penelitian 3
1.4 Batasan Masalah 4
1.5 Manfaat Penelitian 4
1.6 Metodologi Penelitian 4
1.7 Sistematika Penulisan 5
BAB 2 7
LANDASAN TEORI 7
2.1 Cuaca 7
2.3 Text Mining 10
2.4 Text Preprocessing 10
a. Cleaning 11
b. Tokenizing 11
c. Case Folding 11
d. Labeling 11
ix
2.5 Recurrent Neural Network (RNN) 11
2.6 Penelitian Terdahulu 13
2.7 Perbedaan Penelitian 19
BAB 3 20
ANALISIS DAN PERANCANGAN SISTEM 20
3.1 Data yang digunakan 20
3.2 Analisis Sistem 20
3.3 Input 22
3.4 Text Pre-processing 26
3.4.1 Cleaning 26
3.4.2 Case Folding 27
3.4.3 Tokenization 28
3.4.4 Labelling 28
3.5 Classification using Recurrent Neural Network 29
3.6 Data Processing 30
3.6.1 Crawling Data 30
3.6.2. Substitution Value Process 31
3.6 Perancangan Sistem 34
3.6.1 Diagram Aktivitas Chatbot 34
3.6.2 Rancangan Tampilan Halaman Chatbot 35
BAB 4 50
IMPLEMENTASI DAN PENGUJIAN 50
4.1 Implementasi Sistem 50
4.1.1 Spesifikasi Perangkat Keras 50
4.1.2 Spesifikasi Perangkat Lunak 50
4.2 Implementasi Sistem 51
4.2.1 Implementasi Perancangan Pembuatan Chatbot 51
4.2.3 Implementasi Perancangan Chatbot 54
4.3 Pengujian Sistem 55
BAB 5 60
KESIMPULAN DAN SARAN 62
5.1 Kesimpulan 62
5.2 Saran 62
xi
DAFTAR TABEL
Tabel 3. 1 Sampel Dataset 26
Tabel 3. 2 Hasil Proses Cleaning 27
Tabel 3. 3 Hasil Proses Case Folding 27
Tabel 3. 4 Hasil Proses Tokenization 28
Tabel 3. 5 Tabel Labelling 29
Tabel 3. 6 Deskripsi Use Case 34
Tabel 4. 1 Pertanyaan dan hasil data uji chatbot informasi cuaca 56
Tabel 4. 2 Nilai Confusion Matrix 61
DAFTAR GAMBAR
Gambar 3. 1 Presentase data training dan testing 21
Gambar 3. 2 Arsitektur Umum 22
Gambar 3. 3 Contoh key data cuaca (weather) pada API BMKG 23 Gambar 3. 4 Contoh key data kelembaban (humidity) pada API BMKG 24 Gambar 3. 5 Contoh key data suhu (temperature) pada API BMKG 25
Gambar 3. 6 Kode proses cleaning 27
Gambar 3. 7 Proses Recurrent Neural Network membuat model data 30 Gambar 3. 8 Data dari BMKG yang sudah di masukan ke dalam database 31 Gambar 3. 9 JSON yang dihasilkan setelah proses Substitution Value Process 32
Gambar 3. 11 Flowchart Data Processing 33
Gambar 3. 12 Use Case Diagram 34
Gambar 3. 13 Perancangan Tampilan Halaman Chat 35
BAB 1 PENDAHULUAN
1.1 Latar Belakang
Cuaca memegang peranan yang sangat penting dalam menjalankan aktivitas kehidupan sehari-hari. Cuaca adalah perubahan suhu, angin, curah hujan, dan sinar matahari. Di beberapa tempat, cuaca dapat berubah dengan cepat dan di beberapa tempat dapat bertahan untuk jangka waktu tertentu. Perbedaan cuaca ini biasanya terjadi karena perbedaan kelembaban dan suhu dari satu tempat ke tempat lain. Perubahan cuaca dipengaruhi oleh beberapa faktor di sekitar daerah tersebut akibat sudut panas matahari dan kemiringan sumbu bumi.Sejak beribu-ribu tahun hingga abad ke-19, orang-orang telah mencoba untuk memprediksi cuaca secara informal. Informasi mengenai cuaca dapat dilakukan dengan mengumpulkan informasi tentang arus atmosfer di beberapa area tertentu dan menggunakan cuaca untuk memprediksi bagaimana atmosfer akan berubah. Prakiraan cuaca sekarang mengandalkan model berbasis komputer yang melihat sejumlah benda langit(Singh, 2020)
Informasi mengenai cuaca yang akurat sangat dibutuhkan dalam kehidupan sehari-hari agar dapat meningkatkan kinerja dari berbagai macam bidang, yaitu bidang pertanian, penerbangan hingga kelautan. Untuk mendapatkan informasi mengenai prakiraan cuaca, biasanya dapat dilihat melalui berbagai macam media informasi, seperti surat kabar, televisi bahkan internet. Adapun lembaga dalam negri yang bertugas mengumpulkan, menganalisa, memantau dan menginformasikan data cuaca, data gempa bumi, keadaan geofisika lainnya dan informasi prakiraan cuaca kepada masyarakat luas, lembaga tersebut yaitu Badan Meteorologi Klimatologi dan Geofisika (BMKG).
Salah satu metode yang bisa digunakan untuk memberikan informasi tentang cuaca adalah dengan menggunakan Recurrent Neural Network (RNN). Hal tersebut
dikarenakan metode Recurrent Neural Network (RNN) biasanya digunakan untuk menyelesaikan permasalahan yang berkaitan dengan data time series, seperti data prakiraan cuaca, misalnya kondisi cuaca hari ini dapat bergantung pada kondisi cuaca hari sebelumnya. Penelitian dengan penggunaan algoritma Recurrent Neural Network juga dianggap tepat bila diterapkan oleh untuk chatbot karena menggunakan NLP (Natural Language Processing), algoritma yang baik dalam melakukan text processing dan Machine learning yang memungkinkan sistem untuk memahami informasi dalam bentuk teks percakapan dari pengguna. Input teks percakapan yang berbentuk teks kalimat lalu diperiksa oleh algoritma RNN untuk mengetahui maksud dari pengguna.
Di masa perkembangan teknologi ini, banyak orang yang tertarik dan nyaman menggunakan fitur chatting untuk mendapatkan informasi melalui interaksi dengan orang lainya. Dengan sistem chatbot, orang-orang akan memanfaatkan sistem ini untuk membantu mereka mendapatkan informasi dengan mendapat jawaban dari pertanyaan secara otomatis tanpa membutuhkan waktu yang lama dengan menggunakan sistem yang responsif dan interaktif. Respon dari chatbot pun tentunya cukup memuaskan dan akurat terhadap penggunanya.
Beberapa penelitian terkait telah banyak dilakukan, Penelitian oleh (Ayanouz et al., 2020) melakukan penelitian dengan menggunakan chatbot yang membantu dalam keadaan darurat atau dengan pertolongan pertama, menawarkan solusi untuk masalah perawatan medis. Penelitian ini menghasilkan chatbot yang mudah digunakan dan berinteraksi kepada pengguna dengan baik. Penelitian selanjutnya yang dilakukan oleh (Wijaya et al., 2018) membuat rancang bangun chatbot untuk pembelajaran java pada Google Classroom dan Facebok Messenger dengan hasil penggujian bahwa nilai ujian siswa siswa lebih tinggi dengan melakukam pembelajaran menggunakan chatbot dibandingkan pembeIajaran secara konvesional.
Beberapa penelitian dengan menggunakan metode Recurrent Neural Network sudah banyak dilakukan yaitu, penelitian oleh (Rozi et al., 2020) melakukan pengklasifikasikan pelayanan publik Menggunakan Recurrent Neural Network (RNN), setiap ada laporan pengaduan dari masyarakat disampaikan melalui proses verifikasi setiap dokumen laporan masyarakat, yang diharapkan berdampak pada proses percepatan penanganan dan tindak lanjut masing-masing instansi/perusahaan terkait.
Pengujian dilakukan dengan k-fold cross-validation dengan total test menghasilkan f- measure tertinggi sebanyak 88,82%. Selanjutnya, penelitian yang dilakukan oleh (Rais
3
& Jondri, 2020) yaitu melakukan penelitian dengan pengolahan data kuisioner tentang kepuasan mahasiswa dengan Recurrent Neural Network berdasarkan arsitektur Long- Sort Term Memory Hasil uji penelitian yang didapatkan pada penelitain ini cukup baik melihat akurasi tertinggi pada class positive unutk ratio (50:50) sebesar 56.73%, class negative untuk ratio (80:20) sebesar 79,84% dan class neutral untuk ratio (70:30) sebesar 82,49%.
Penelitian selanjutnya yang dilakukan oleh (Augusfian et al., 2019), penelitian ini menciptakan sistem koreksi ejaan untuk teks bahasa Indonesia, yang memiliki kemampuan untuk menangani dan memperbaiki kesalahan ejaan kata-kata yang tidak sah dan sah. Pada penelitian ini metode Recurrent Neural Network dapat menutupi kekurangan dari metode Damerau Levenshtein Distance, karena dapat mengoreksi kesalahan ejaan yang valid yang sebelumnya tidak dapat dikoreksi tetapi masih banyak terdapat false positif pada saat melakukan koreksi. Tingkat akurasi rata-rata menggunakan metode Recurrent Neural Network (RNN) adalah 74%.
Berdasarkan latar belakang yang telah dijelaskan diatas maka penulis mengajukan judul penelitian dengan menggunakan Recurrent Neural Network dalam pembuatan sistem chatbot dengan judul “Pengembangan Chatbot Untuk Memperoleh Informasi Cuaca Wilayah Indonesia Menggunakan Metode Recurrent Neural Network (RNN)”
1.2 Rumusan Masalah
Informasi mengenai cuaca yang selama ini didapatkan melalui berbagai media informasi hanya berupa tulisan ataupun gambar, jarang disertai himbauan kepada pengguna. Informasi cuaca Indonesia yang di sediakan juga hanya kota-kota besar saja, jarang sekali menyediakan informasi cuaca berdasarkan kecamatannya. Pencarian informasi mengenai cuaca dengan metode mencari di website dirasakan kurang interaktif terhadap pengguna.
1.3 Tujuan Penelitian
Penelitian ini bertujuan untuk memberikan informasi mengenai prakiraan cuaca di seluruh wilayah Indonesia kepada pengguna secara interaktif melalui sistem chatbot dengan menggunakan metode Recurrent Neural Network (RNN).
1.4 Batasan Masalah
Berdasarkan permasalahan tersebut, maka penulis akan mengembangkan chatbot dengan menggunakan metode Recurrent Neural Network (RNN). Adapun ruang lingkup dari penelitian tersebut adalah :
a. Topik pembicaraan hanya mengenai informasi cuaca b. Chatbot menggunakan Bahasa Indonesia
c. Data yang didapat dari BMKG dan dalam kurun waktu 3 hari
d. Informasi mengenai cuaca hanya yang berada pada wilayah Indonesia e. Chatbot hanya dapat diakses melalui aplikasi Telegram
1.5 Manfaat Penelitian
Adapun manfaat yang dapat diperoleh dari penelitian ini yaitu penelitian ini diharapkan dapat membantu pengguna mendapatkan informasi cuaca seluruh Indonesia dengan akurat mengenai cuaca serta menghimbau pengguna berdasarkan kondisi cuaca tertentu.
1.6 Metodologi Penelitian
Tahapan – tahapan yang akan dilakukan pada pelaksanaan penelitian adalah sebagai berikut:
1. Studi Literatur
Tahapan studi literatur yang ada pada penelitian ini yaitu penulis mengumpulkan informasi mengenai Recurrent Neural Network (RNN), Chatbot, Natural Language Processing dan mengumpulkan dataset melalui website Badan Meteorologi Klimatologi dan Geofisika (BMKG). Informasi yang diperoleh didapat dari berbagai sumber seperti artikel, buku, jurnal, skripsi maupun dokumen lain yang berkaitan dengan penelitian ini.
2. Analisis Permasalahan
Pada tahap ini dilakukan analisis masalah dari informasi yang diperoleh dari tahap sebelumnya guna mendapatkan metode yang tepat untuk mengatasi masalah penelitian. Metode yang digunakan untuk menyelesaikan penelitian ini adalah Recurrent Neural Network (RNN) pada chatbot informasi cuaca.
5
3. Perancangan Sistem
Pada tahap ini penulis melakukan perancangan arsitektur sistem sesuai dengan analisis masalah yang sudah ada. Proses ini juga dilakukan berdasarkan studi literatur yang telah didapatkan.
4. Implementasi
Pada tahap ini dilakukan implementas dari analisis sesuai rancangan yang akan dilakukan pada sistem
5. Pengujian
Pada tahap ini akan dilakukan pengujian terhadap sistem yang telah di bangun untuk mengetahui tingkat akurasi yang didapat dari penerapan metode Recurrent Neural Network dalam mengembangkan chatbot untuk memperoleh informasi cuaca di Indonesia.
6. Penyusunan Laporan
Pada tahap ini dilakukan proses penyusunan laporan dari keseluruhan penelitian yang telah dilakukan.
1.7 Sistematika Penulisan
Sistematika pada skripsi ini terdiri dari lima bab yang masing-masing bab akan dijelaskan secara singkat sebagai berikut:
BAB 1: PENDAHULUAN
Bab satu berisikan latar belakang penelitian, rumusan masalah, tujuan penelitian, batasan masalah, manfaat penelitian, metodologi penelitian dan sistematika penulisan.
BAB 2: LANDASAN TEORI
Bab dua berisikan teori-teori yang berhubungan dengan cuaca , chatbot, Natural Language Processing¸Text Mining dan algoritma Recurrent Neural Network yang digunakan pada penelitian ini.
BAB 3: ANALISIS DAN PERANCANGAN SISTEM
Bab tiga berisikan tentang arsitektur umum dari metode Recurrent Neural Network (RNN) serta langkah-langkah pada tahap pre-processing, proses training, testing, dan perancangan antar muka sistem.
BAB 4: IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab empat tersebut berisikan implementasi dari hasil analisi dan perangcangan sistem yang telah dibahas pada bab sebelumnya dan menampilkan hasil pengujian terhadap sistem yang telah dibangun.
BAB 5: KESIMPULAN DAN SARAN
Bab lima berisikan tentang kesimpulan dari keseluruhan penelitian yang telah dilakukan dan saran yang diajukan untuk pengembangan penelitian selanjutnya.
BAB 2
LANDASAN TEORI
2.1 Cuaca
Cuaca adalah keadaan udara pada waktu tertentu di daerah yang relatif pendek (tidak luas) dalam waktu yang singkat (Puspita & Yulianti, 2016). Dikatakan pendek karena cuaca dapat berubah sangat cepat dalam hitungan jam bahkan detik. Perbedaan kondisi cuaca ini biasanya terjadi karena kelembaban dan suhu yang berbeda antara satu tempat dengan tempat lainnya. Perubahan cuaca mempengaruhi beberapa faktor di sekitar daerah tersebut. Oleh karena itu, kondisi udara di setiap tempat dapat berbeda karena sudut pemanasan matahari dan kemiringan sumbu bumi.
Menurut BMKG, informasi cuaca dapat diperoleh secara praktis dengan dilakukannya pengamatan kondisi fisik atmosfer. Misalnya, ketika kita mengatakan
"hari ini panas", kita berbicara tentang cuaca. Unsur-unsur pembentuk cuaca dan iklim adalah sebagai berikut:
a. Suhu udara,
Suhu merupakan salah satu faktor penting dalam unsur cuaca. Suhu adalah keadaan udara. Suhu dengan temperature berbeda dari tempat yang satu dengan tempat lainnya. Ada beberapa penyebab perubahan suhu hingga memengaruhi cuaca, yaitu :
- Durasi dan sinar matahari ke bumi yang dikarenakan letak lintang suatu wilayah
- Kondisi awan. Semakin banyak awan, maka panas matahari akan banyak terserap oleh awan dan bumi hanya akan menerima lebih ssinar matahari - Ketinggian suatu wilayah, semakin rendah suatu tempat makan semakin
rendah pula suhunya
b. Kelembaban udara,
Kelembaban udara merupakan kandungan uap air yang berada di udara pada waktu tertentu. Kelembaban udara dapat berubah tergantung suhu suatu tempat.
Kelembaban udara terdiri dari 2 macam, yaitu sebagai berikut:
- Kelembaban mutlak/absolut, yaitu jumlah banyaknya uap air yang didapat pada satu meter kubik udara.
- Kelembaban relatif, yaitu perbandingan antara jumlah uap air yang terkandung diudara pada volume dan suhu tertentu dengan jumlah uap air yang biasanya ada jika udara jenuh pada suhu yang sama.
c. Tekanan udara,
Tekanan udara merupakan gaya yang terjadi karena adanya berat lapisan udara.
Tekanan udara juga disebut sebagai kecepatan massa udara di suatu daerah tertentu dan dapat bervariasi. Alat untuk mengukur tekanan udara disebut barometer.
d. Arah dan kecepatan angin,
Angin bergerak dari daerah yang bertekanan udara tinggi ke daerah yang bertekanan udara rendah. Angin dalam jumlah besar disebabkan oleh rotasi bumi dan perbedaan tekanan udara di sekitarnya. Kecepatan angin biasanya diukur dengan sebuah alat yang disebut anemometer.
e. Curah hujan
Curah hujan adalah intensitas air hujan yang jatuh di suatu tempat dalam jangka waktu tertentu. Tingginya curah hujan di setiap wilayah berbeda-beda, tergantung pada garis lintang, ketinggian tempat, arah angin, temperatur udara, dan luas daratan. Alat untuk mengukur curah hujan disebut ombrometer.
BMKG mengatakan bahwa ada beberapa peralatan atau alat ukur yang digunakan dalam pengamatan unsur cuaca dan iklim agar menghasilkan hasil yang akurat . Keakuratan yang diperoleh dari alat ukur cuaca dan iklim akan tergantung pada jenis peralatan yang digunakan dan juga dengan cara peralatan itu sendiri dioperasikan. Alat ukur cuaca dan iklim yang digunakan bersifat otomatis dan akan menghasilkan hasil data yang lebih akurat dibandingkan alat manual.
9
2.2 Chatbot
Chatbot merupakan salah satu aplikasi oleh komputer yang digunakan untuk melakukan percakapan melalui tulisan (Junadhi & Mardainis, 2019). Chatbot juga dapat menjadi Artificial Intelligence (AI) yang dapat berbasis teks, dan dngan kata lain, chatbot adalah robot virtual yang bisa melakukan pecakapan dengan manusia melalui sebuah media seperti messenger, web, forum web atau bahkan melalui telepon dan suara. Cara kerja chatbot mirip degan mesin penjawab telepon yang banyak digunakan di kantor-kantor dengan fasilitas dial up. Pertanyan yang dapat dijawab oleh aplikasi chatbot adalah pertanyaan yang bersifat umum dan sudah di siapkan jawabannya.
Chatbot merupakan bagian dari teknik NLP (Natural Language Processing) yang dimana berguna untuk berkomunikasi dengan mesin menggunakan chat.
Pemrosesan pada bahasa alami atau NLP telah menjadi salah satu penelitian penting pada bidang kecerdasan buatan (AI). Biasanya bidang ini lemah dalam memperdayakan software atau perangkat lunak yang khusus atau yang dibuat secara lebih spesifik dengan memiliki fungsi tertentu. Manfaat dari sistem chatbot ini adalah untuk layanan informasi kepada pengguna tanpa menggunakan operator sebagai penjawab, sehingga pekerjaan yang biasanya dilakukan oleh operator telah dialihkan ke sistem chatbot.
Penggunaan dari aplikasi chatbot ini biasanya dapat digunakan melalui aplikasi Mesenger seperti Telegram. Dalam proses penggunaannya, chatbot tersebut akan digunakan sebagai mesin penjawab yang menggunakan teks untuk memberikan informasi yang dibutuhkan. Chatbot dikatakan sebagai mesin yang dapat menjawab karena fungsi dari chatbot sendiri adalah sebagai pengganti manusia untuk menjawab pertanyaan chat yang sering ada dan telah menyiapkan jawaban. Jawaban dari pertanyaan tersebut akan disimpan dalam database dan akan digunakan jika ada pertanyaan yang dikirimkan ke chatbot.
2.3 Natural Language Processing
Natural Language Processing atau dapat disingkat dengan NLP dapat diartikan sebagai pengolah bahasa alami . NLP merupakan bagian dari bidang kecerdasan buatan atau maching learning dimana sebuah komputer dirancang untuk bisa membaca, mengerti dan memperoleh percakapan dengan manusia menggunakan bahasa alami atau bahasa sehari-hari manusia. NLP juga dapat memungkinkan untuk melakukan suatu prediksi, seperti prediksi gejala penyakit ataupun prediksi cuaca. NLP dibuat untuk mengerti
makna berdasarkan input yang diberi dan memberi respon yang sesuai. Seperti dalam melakukan action tertentu untuk menampilkan data atau hasil tertentu.
Menurut Expertsystem di tahun 2016, pengelolaan bahasa manusia atau bahasa alami ini merupakan bahasa yang lebih dari sekedar analisis ucapan. Ada beberapa pendekatan untuk mengolah bahasa alami menurutnya, yaitu:
a. Symbloic Approach atau biasa disebut dengan pendekatan simbolik. Kata lain dari pendekatan ini adalah aturan bicara yang berlaku umum dalam bahasa tertentu dan dapat direkam oleh ahli bahasa dan diikuti oleh sistem komputer..
b. Statistical Approach, disebut juga pendekatan statistik, pada pendekatan ini berdasarkan pada linguistik yang diamati.
c. Conncectionist Approach atau dapat disebut dengan pendekatan koneksionis dimana pada pendekatan ini terdapat kombinasi dari pendekatan simbolis dan statistik.
2.3 Text Mining
Text mining merupakan satu langkah dari analisis teks yang dilakukan secara otomatis oleh mesin yang digunakan untuk memprediksi kalimat, garis, paragraf atau bahkan dokumen dalam satu kategori dan mengekstrak informasi secara otomatis dari sumber yang berbeda. Text mining menggunakan teknologi AI yang berbeda, seperti NLP, untuk secara otomatis memproses semua data dan menghasilkan wawasan yang bermakna, membantu perusahaan membuat keputusan berdasarkan data.
Text mining bertujuan untuk menemukan kata-kata yang dapat mewakili isi suatu dokumen sehingga dapat dilakukan analisis hubungan antar dokumen. Dalam prosesnya, text minin membutuhkan banyak riset data mining, tetapi perbedaannya adalah text mining menggunakan pola yang dimiliki dari sekumpulan bahasa alami yang tidak terstruktur seperti dokumen Word, PDF, dll, data mining menggunakan data yang terstruktur (data mining). (Han & Kamber, 2006).
2.4 Text Preprocessing
Text Preprocessing adalah proses menghubungkan suatu bentuk data yang tidak terstruktur menjadi data terstruktur sesuai dengan kebutuhan untuk pengolahan mining
11
lebih lanjut dan salah satunya adalah klasifikasi dokumen. Ada beberapa tahapan yang dilakukan dalam preprocessing, yaitu:
a. Cleaning
Proses cleaning merupakan proses melakukan pembersihan teks agar siap dibentuk menjadi model data. Ada banyak noise yang tidak berguna pada kata seperti tanda baca, url, emoji, simbol dan lainnya.
b. Tokenizing
Tokenizing merupakan pemecahanan kalimat/dokumen menjadi bagian-bagian kata yang disebut dengan token. Proses tokenisasi tersebut memecah sekumpulan karakter dalam suatu teks ke dalam satuan kata dan bagaimana membedakan karakter-karakter tertentu yang dapat diperlakukan sebagai pemisah kata atau bukan.
c. Case Folding
Case folding ialah proses untuk menhapus huruf kapital kedalam dokumen agar menjadi susunan huruf kecil. Hanya huruf alpabet kecil saja yang diterima.
Karakter selain huruf kecil, dihilangkan dan akan dianggap delimiter.
d. Labeling
Proses labeling yaitu proses pemberian label pada kalimat dan membedakan suatu frasa atau kata terhadap suatu kalimat. Pada proses training nantinya akan melalui proses labeling tersebut dengan kata-kata sehingga pemetaan dapat dilacak.
2.5 Recurrent Neural Network (RNN)
Recurrent Neural Network merupakan salah satu bentuk yang termasuk dalam arsitektur Jaringan Syaraf Tiruan yang diterapkan khusus untuk memproses data sekuensial atau time series. RNN dapat menyimpan memori (feedback loop) yang memungkinkan untuk mengetahui pola data dengan baik, kemudian menggunakannya untuk memberikan prediksi yang akurat. Cara RNN dapat menyimpan informasi dari data sebelumnya adalah dengan melakukan looping pada arsitekturnya, yang secara otomatis menyimpan informasi dari data sebelumnya yang tersimpan.
Arsitektur RNN ini merupakan cara memanfaatkan struktur data sekuensial (data sequense), RNN beroperasi secara berulang. Operasi yang sama dilakukan untuk setiap elemen urutan, dengan output tergantung pada input saat ini dan operasi sebelumnya. RNN berfokus pada sifat data dimana intensitas waktu sebelumnya atau saat ini (t) mempengaruhi intensitas waktu berikutnya (t + 1).
Gambar 1. 1 Proses Arsitektur RNN (Denny Britz, 2015)
Penjelasan Gambar 1. 1 adalah sebagai berikut, gambar di sebelah kiri adalah diagram sirkuit, di mana kotak hitam menunjukkan waktu tunda (time delay) di setiap langkah waktu. Pada diagram ditunjukkan bahwa RNN dalam posisi terbuka ke jaringan penuh (full network). Sedangkan gambar di sebelah kanan menunjukkan RNN yang telah dibuka (unrolled) menjadi jaringan yang lengkap sehingga urutan sekuense (sequences) menjadi utuh. Misalnya, jika urutan yang kita miliki adalah 1 kalimat dengan 4 kata, maka jaringan akan dibuka dalam jaringan saraf 4 lapis, satu lapis untuk setiap kata.
Berikut ini adalah penjelasan dari lambang rumus di atas:
a. 𝑋! merupakan input layer pada time step . Misalnya, 𝑋! bisa menjadi one-hot vector yang sesuai dari kata kedua dari sebuah kalimat yang sedang diproses.
b. 𝑆"merupakan hidden layer di setiap time step t. Hidden state juga disebut sebagai “memory” dari sebuah network yang befungsi menyimpan hasil perhitungan dan record yang sudah dilakukan. 𝑆" dihitung berdasarkan hidden state sebelumnya dan berdasarkan input pada current state.
c. 𝑂" disebut juga sebagai output atau output layer pada step t. Misal, apabila akan memprediksi “kata selanjutnya” pada sebuah kalimat, maka 𝑂" dikatakan sebagai vektor probabillitas di seluruh kosa kata.
13
Arsitektur RNN dapat memfasilitasi beberapa jenis bentuk input dan output, yaitu : a. Arsitektur one-to-one yang dapat digunakan untuk memprediksi kata berikutnya
dalam sebuah kalimat, misalnya dimana kata input berada merupakan kata saat ini dan untuk kata berikutnya merupakan output, dan panjang kata input dan output yaitu satu kata. Ketika kata disambungkan dalam beberapa kalimat maka dapat dihasilkan kalimat bahkan teks yang disebut dengan model.
b. Arsitektur one-to-many yang dapat digunakan dari satu input saja dan menghasilkan banyak output dan hasilnya dapat berupa teks maupun gambar.
Misalkan kata input merupakan satu pertanyaan, maka output dapat menghasilkan berbagai macam jawaban yang sesuai dari input.
c. Arsitektur many-to-one yang digunakan apabila ingin memprediksi sentiment dari suatu kalimat atau review. Contohnya, kata input yang dimasukan bermacam-macam dari berbagai sumber akan menghasilkan satu output saja.
d. Arsitektur many-to-many banyak digunakan dalam menerjemahkan mesin.
Contohnya apabila kita memasukan beberapa input Bahasa yang ingin kita terjemahkan salam suatu Bahasa, maka hasil outputnya akan menghasilkan seberapa banyak Bahasa yang sudah di input sebelumnya.
2.6 Penelitian Terdahulu
Sebelumnya, banyak penelitian yang dilakukan dengan menggunakan metode Recurrent Neural Network (RNN) yaitu, penelitian oleh (Rozi et al., 2020) melakukan pengklasifikasikan pelayanan masyarakat menggunakan Recurrent Neural Network (RNN), setiap laporan yang di dapat dari pengaduan oleh masyarakat dipersiapkan melalui proses verifikasi setiap dokumen laporan masyarakat, yang diharapkan dapat berdampak kepada proses percepatan penanganan dan tindak lanjut dari setiap instansi/perusahaan terkai yang terkait. Dilakukan pengujian menggunakan k-fold cross-validation dengan total keseluruhan pengujian menghasilkan f-measure tertinggi sebesar 88,82%.
Selanjutnya, penelitian yang dilakukan (Rais & Jondri, 2020), penelitian ini melakukan pengolahan data kuisioner tentang kepuasan mahasiswa dengan Recurrent Neural Network berdasarkan arsitektur Long-Sort Term Memory Hasil uji penelitian
yang didapatkan pada penelitain ini cukup baik melihat akurasi tertinggi pada class positive unutk ratio (50:50) sebesar 56.73%, class negative untuk ratio (80:20) sebesar 79,84% dan class neutral untuk ratio (70:30) sebesar 82,49%.
Penelitian selanjutnya yang dilakukan (Augusfian et al., 2019), penelitian ini menciptakan sistem koreksi ejaan untuk teks bahasa Indonesia, yang memiliki kemampuan untuk menangani dan memperbaiki kesalahan ejaan kata-kata yang tidak sah dan sah. Pada penelitian ini metode Recurrent Neural Network dapat menutupi kekurangan dari metode Damerau Levenshtein Distance, karena dapat mengoreksi kesalahan ejaan yang valid yang sebelumnya tidak dapat dikoreksi tetapi masih banyak terdapat false positif pada saat melakukan koreksi. Tingkat akurasi rata-rata menggunakan metode Recurrent Neural Network (RNN) adalah 74%.
Penelitian mengenai pengembangan chatbot telah dilakukan dalam berbagai bidang, seperti penelitian yang dilakukan oleh (Habib et al., 2020), yaitu membuat penelitian dalam bidang kesehatan untuk mendiagnosa penyakit dengan menggunakan chatbot kesehatan berbasis Artificial Intelegence. Pada penelitian ini, disimpulkan bahwa penggunaan chatbot user friendly dan dapat digunakan oleh semua kalangan umur serta chatbot tersebut dapat mengenali gejala penyakit dan diagnosis sangat baik.
Lalu, penelitian oleh (Ayanouz et al., 2020) melakukan penelitian dengan menggunakan chatbot yang membantu dalam keadaan darurat atau dengan pertolongan pertama, menawarkan solusi untuk masalah perawatan medis. Penelitian ini menghasilkan chatbot yang mudah digunakan dan berinteraksi kepada pengguna dengan baik.
Kemudian penelitian oleh (Putra, 2018), penelitian ini menggunakan Natural Language Generation (NLG) untuk membangkitan tweet otomatis berdasarkan data prakiraan cuaca diwilayah lndonesia. Sistem ini akan mengubah data non-tekstual prakiraan cuaca yang diperoleh dari API openweathermap.org. Output dari sistem ini adalah sebuah tweet prakiraan cuaca. hasil pengujian penelitian ini yang diperoleh dari masyarakat umum dari berbagai tingkatan usia menunjukkan bahwa tingkat naturalness dari informasi yang disampaikan dalam bentuk tweet yang dihasilkan oleh sistem mencapai 93,33 % untuk aspek clarity dan 95,83 % untuk aspek readability.
Lalu penelitian yang dilakukan (Junadhi & Mardainis, 2019) membuat chatbot mengenai informasi cuaca dengan aplikasi LINE menggunakan metode rule based.
Chatbot tersebut dijalankan dengan program php dengan memasukan api dari
15
openweather. Hasil dari penelitian tersebut yaitu data yang didapatkan dari chatbot cukup akurat.
Penelitian yang dilakukan (Zuraiyah et al., n.d.) yaitu mengimplementasikan chatbot untuk pendafaran mahasiswa baru dengan menggunakan Recurrent Neural Network (RNN) dengan didapatkannya tingkatan akurasi aplikasi sebanyak 88%, presisi sebesar 95% dan recall sebesar 92%.
Tabel 1. 1 Penelitian Terdahulu No. Judul Penelitian Peneliti
(Tahun) Metode Keterangan
1
Klasifikasi Teks Laporan
Masyarakat Pada Situs Lapor Menggunakan Recurrent Neural Network
Rozi et al., 2020
Recurrent Neural Network
Mengklasifikasikan teks laporan masyarakat dengan mengirim sebuah request ke REST API sistem yang telah dibuat pada penelitian. Pengujian tersebut menghasilkan
dengan total
keseluruhan f-measure tertinggi sebesar 88,82%.
2
Klasifikasi Data Kuisioner dengan Metode Recurrent Neural Network
Rais & Jondri, 2020
Recurrent Neural Network
Mengolah data kuisioner kepuasan mahasiswa berupa isian bebas dalam kuisioner.
Hasil akurasi untuk class positive terbaik ada pada ratio (50:50) dengan akurasi 56,73%, class negative terbaik ada pada ratio (80:20)
dengan akurasi 79,84%
, dan class neutral terbaik ada pada ratio (70:30) dengan akurasi 82,49%.
3
Sistem
Pengkoreksian Ejaan Teks Bahasa Indonesia dengan Damerau
Levenshten
Distance dan Recurrent Neural Network
Augusfian et al., 2019
Damerau Levenshten Distance dan Recurrent Neural Network
Membuat sistem pengkoreksian ejaan teks Bahasa Indonesia dengan memperbaiki kesalahan ejaan ataupun kesalahan kata. Dengan hasil pengujian ulang teks yang dicapai oleh sistem menggunakan Damerau-Levenshtein Distance dan Recurrent Neural Network menunjukkan akurasi kata sebesar dari 74%.
4
A Self-Diagnosis Medical Chatbot Using Artificial Intelligence
Habib et al., 2020
Artififical Intelegence
Membuat penelitian dalam bidang kesehatan untuk mendiagnosa penyakit dengan menggunakan chatbot kesehatan berbasis Artificial Intelegence.
Chatbot user friendly dan dapat digunakan oleh semua kalangan umur serta chatbot tersebut dapat mengenali gejala
17
penyakit dan diagnosis sangat baik.
5
A Smart Chatbot Architecture based NLP and Machine learning for health care assistance
Ayanouz et al., 2020
NLP dan Machine Learning
Membuat chatbot yang membantu dalam keadaan darurat atau dengan pertolongan pertama, menawarkan solusi untuk masalah perawatan medis.
Penelitian ini menghasilkan chatbot yang mudah digunakan dan berinteraksi kepada pengguna dengan baik.
6
Pembangkitan Tweet Otomatis Berdasarkan Data Prakiraan Cuaca Wilayah Indonesia
(Putra, 2018)
Natural Language Generation
Membuat sistem yang dapat membangkitkan tweet secara otomatis berdasarkan data prakiraan cuaca di Indonesia. aspek readability dapat menyampaikan
informasi ramalan cuaca yang mudah dipahami 95.83 % responden yang merupakan orang umum; selain itu, 93.33
% responden menilai tweet yang dihasilkan sistem sudah jelas dalam menyampaikan informasi berupa ramalan cuaca kedalam sebuah tweet.
7
LINE Chatbot Informasi Cuaca Wilayah Indonesia
Junadhi &
Mardainis, 2019
Real Based
Membuat chatbot berbasis Real based dengan aplikasi LINE dan menggunakan pemrograman PHP dan mengambil data API dari situs OpenWeather
19
8
Implementasi Chatbot Pada Pendaftaran
Mahasiswa Baru Menggunakan Metode Recurrent Neural Network
Zuraiyah et al., 2019
Recurrent Neural Network
Membuat chatbot untuk mendapatkan informasi mengenai pendaftaran mahasiswa baru.
Dengan hasil dari pegujian menunjukan bahwa Chatbot dapat menjawab pertanyaan mengenai pendaftaran mahasiswa baru dengan akurasi sebesar 88%, precisi sebesar 95% dan recal sebesar 92%.
2.7 Perbedaan Penelitian
Perbedaan penelitian yang akan dilakukan dengan penelitian sebelumnya adalah penelitian ini akan membuat chatbot yang berisi informasi dan peringatan untuk himbauan tentang cuaca di Indonesia menggunakan metode Recurrent Neural Network (RNN) menggunakan aplikasi Telegram.
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi tentang arsitektur umum metode Recurrent Neural Network (RNN) serta langkah-langkah dalam tahap pre-procesing, pemprosesan, dan perancangan antarmuka sistem. Bab ini juga akan membahas dua tahap, yaitu tahap analisis dan tahap perancangan sistem. Tahap analisis akan dilakukan dengan menganalisis data yang digunakan untuk proses dan menganalisis teknik yang digunakan dalam langkah pengolahan data. Tahap perancangan sistem yang akan dibahas adalah perancangan antarmuka pengguna.
3.1 Data yang digunakan
Data yang digunakan pada penelitian ini yaitu berasal dari data terbuka atau API yang berasal dari situs data terbuka yang disediakan oleh BMKG (Badan Meteorologi Klimatologi dan Geofisika) yang bersifat realtime dimana data tersebut akan selalu memperbaharui data setiap harinya. Data yang dimiliki situs tersebut terdiri 554 kecamatan dari seluruh 33 provinsi. Data terbuka ini dapat diakses melalui https://data.bmkg.go.id/prakiraan-cuaca/. Data yang ada pada situs tersebut memiliki format XML.
3.2 Analisis Sistem
Penelitian ini menggunakan metode yang dapat menghasilkan suatu sisten yang mampu menghasilkan informasi cuaca dalam representasi percakapan otomatis berdasarkan data cuaca dari BMKG. Sistem ini dikembangkan dengan menggunakan metode Natural Language Processing (NLP) dan Recurrent Neural Network.
Penelitian ini menggunakan metode yang terdiri dari beberapa tahapan. Tahapan pertama yaitu terdiri dari tahapan traning dan testing. Untuk data testing disediakan berupa dataset yang berjumlah 207 kalimat pertanyaan yang dibuat oleh penulis ke dalam bentuk JSON. Sementara untuk data testing digunakan sebanyak 80 pertanyaan
21
langsung dari user yang menggunakan aplikasi. Dengan demikian, didapatkan persentase perbandingan untuk data training sebesar 60% dan data testing sebesar 40%.
Bobot presentase data training dan data testing dapat dilihat pada gambar 3.1
Tahapan yang pertama kali dimulai yaitu tahapan training, data training tersebut dilakukan dengan tujuan untuk mencoba apakah data yang telah dibuat dan didapatkan akan menghasilkan respon sesuai berdasarkan algoritma yang digunakan. Selanjutnya input menggunakan data testing, data testing tersebut merupakan hasil input dan response yang matang dan dikirimkan melalui akun chatbot @cuacaindo_bot pada aplikasi telegram. Tahap selanjutnya yaitu melakukan pre-processing untuk kalimat input yang telah dimasukan oleh pengguna chatbot. Proses di tahap pre-processing ini dilakukan untuk meminimalisir penggunaan kata yang akan mempermudah pada proses output.
Tahap selanjutnya yaitu melakukan tahap klasifikasi dengan metode Recurrent Neural Network (RNN). Setelah di klasifikasi, maka akan menghasilkan model data yang sesuai. Model data tersebut akan menyesuaikan jawaban berdasarkan API Knowledge Base yang berasal dari hasil crawling data dari situs data.bmkg.go.id.
setelah model data yang dihasilkan telah sesuai dengan Knowledge Base, maka sistem akan memberikan output berupa response terhadap pengguna dengan sesuai. Tahapan- tahapan tersebut dapat dilihat dalam bentuk arsitektur umum seperti yang terlihat pada Gambar 3.1
Gambar 3. 1 Presentase data training dan testing
127 data latih (60%) 80 data uji (40%)
Gambar 3. 2 Arsitektur Umum 3.3 Input
Penelitian ini akan menerima input dari pengguna yang memulai percakapan dengan mengajukan pertanyaan seputar cuaca melalui chatbot telegram @cuacaindo_bot.
Pertanyaan yang diajukan berupa keadaan cuaca di seluruh wilayah Indonesia.
Selanjutnya berdasarkan pertanyaan dari pengguna yang didapatkan diambil data prakiraan cuaca yang bersumber dari API BMKG pada situs https://data.bmkg.go.id/prakiraan-cuaca/ dengan format XML, untuk mempermudah penggunaan data, format XML tersebut diubah terlebih dahulu dalam bentuk JSON.
API dari BMKG tersebut bersifat dinamis, dimana data yang tersimpan akan terus mengalami perubahan setiap harinya. Selain itu, pada situs tersebut terdapat 35 data cuaca dari seluruh wilayah dan provinsi yang ada di Indonesia.
23
Format data yang diterima dari API BMKG tersebut berbentuk XML seperti pada Gambar 3.2 yang terdiri dari beberapa key dan pada penelitian tersebut yaitu waktu (timerange), cuaca (weather), suhu (temperature), kecepatan angin (wind sped), arah angin (wind direction) dan kelembaban (humidity) yang nantinya akan digunakan untuk merespon pertanyaan dari pengguna. Namun hanya digunakan 4 key pada penelitian ini yaitu timerange, weather, temperature dan humidity. Selain itu, data dari API BMKG tersebut sudah menyediakan prakiraan cuaca dalam jangka waktu 3 hari, yaitu hari ini, besok dan lusa. Data harian tersebut juga terbagi dari 4 waktu yaitu pagi, siang, malam dan dini hari. Pembagian waktu pada dini hari dimulai dari pukul 00.00 hingga ke pukul 05.00, pada pagi hari dimulai pada pukul 06.00 sampai pukul 11.00, pada siang hari dimuali pada pukul 12.00 sampai pukul 17.00 dan pada waktu malam dimulai pada pukul 18.00 sampai pukul 00.00 dini hari. Seperti yang sudah dibahas sebelumnya, data pada situs tersebut bersifat dinamis, dimana datanya akan terus berubah-ubah setiap waktu. Berikut adalah contoh data yang terdiri dari beberapa key dari situs https://data.bmkg.go.id/prakiraan-cuaca/:
Gambar 3. 3 Contoh key data cuaca (weather) pada API BMKG
Seperti yang terlihat pada Gambar 3.3, menunjukan bahwa data tersebut merupakan data untuk variabel cuaca, dilihat pada bagian description yang merupakan weather.
Untuk kondisi cuaca, terlihat pada bagian icon yang valuenya berupa kode angka yang sudah ditentukan oleh BMKG sendiri. Untuk bagian timerange type, merupakan jarak berapa jam sekali cuaca di prediksi, jika dilihat pada gambar, jarak waktunya berkisar 6 jam setiap harinya. Terakhir bagian datetime yang menunjukan susunan tahun, bulan, hari dan waktu dalam jangka waktu hari ini, besok dan lusa.
Gambar 3. 4 Contoh key data kelembaban (humidity) pada API BMKG
Untuk Gambar 3.4, disini terlihat bahwa susunan data tersebut merupakan data humidity atau kelembaban yang dapat terlihat pada bagian description. Kemudian bagian value unit yang merupakan berapa persen kelembaban, dan datetime menjelaskan tanggal dan waktu sama seperti data cuaca pada Gambar 3.3.
25
Gambar 3. 5 Contoh key data suhu (temperature) pada API BMKG
Selanjutnya untuk Gambar 3.5, disini juga dapat dilihat pada bagian description merupakan data untuk temperature atau suhu. Bagian value unit merupakan berajat suhu, dimana “C” merupakan suhu dalam Celcius dan “F” merupakan suhu dalam Fahrenheit.
Data yang telah didapat tersebut nantinya akan diubah menjadi bentuk file format JSON agar mempermudah sistem membaca datanya. Untuk memastikan kalimat yang di input pengguna melalui aplikasi dapat terbaca dengan mudah dan benar, sebelum data tersebut diubah, dibutuhkan terlebih dahulu proses text pre-processing terhadap kata- kata yang nantinya akan di input oleh pengguna sebelum kalimat tersebut dibaca oleh sistem.
3.4 Text Pre-processing
Pada proses ini, untuk data training dibuat terlebih dahulu sampel dataset yang berisi kumpulan kalimat yang akan dibaca oleh sistem. Sampel tersebut berisi dengan berbagai macam tag, patterns serta response yang nantinya akan dilatih agar chatbot dapat memahami dan membalas pesan. Kata-kata tersebut disusun sesuai dengan masing-masing tag, dimana fungsi tag dan patterns tersebut membedakan jenis kata dan menyesuaikan dengan response yang dihasilkan sistem nantinya.
Kumpulan kalimat yang telah disusun dengan jenis tag ini akan melalui proses text pre-processing guna mempermudah sistem memberikan response yang sesuai dengan susunan tag dan response yang telah dibuat sebelumnya. Berikut merupakan beberapa contoh bentuk sampel dataset dalam bentuk tabel
Tabel 3. 1 Sampel Dataset
Tag Pattern Response
greeting Halo Halo, apa yang bisa kami
bantu?
cuaca Bagaimana cuaca hari ini? Cuaca hari ini
thanks Terima kasih infonya Sama-sama!
suhu Berapa suhu besok pagi? Suhu besok pagi
3.4.1 Cleaning
Proses cleaning pada NLP perlu dilakukan untuk membersihkan teks agar siap dibentuk menjadi model data. Ada banyak noise yang tidak berguna pada kata seperti tanda baca, url, emoji, simbol, karakter dan lainnya. Sebelum melakukan proses ini, diperlukan library python yang berkerja untuk permodelan teks, yaitu library Natural Language Toolkit (NLTK), library tersebut menyediakan tools yang mempermudah pemrosesan teks. Untuk membersihkan kalimat input yang telah dikirim, digunakan regularExpression (RegEx) untuk menghilangkan noise yang tidak berguna seperti tanda baca, karakter atau simbol yang terdeteksi. Berikut adalah baris gambar kode tahapan cleaning.
27
Gambar 3. 6 Kode proses cleaning
Pada tahapan ini sistem menghapus karakter yang bukan huruf seperti simbol atau tanda baca. Hasil proses cleaning dapat dilihat pada table 3.2.
Tabel 3. 2 Hasil Proses Cleaning
Sebelum Proses Cleaning Setelah Proses Cleaning Bagaimana cuaca Medan besok sore? Bagaimana cuaca Medan besok sore Tolong beritahu cuaca Sei Rampah
hari ini!
Tolong beritahu cuaca Sei Rampah hari ini
3.4.2 Case Folding
Case folding adalah proses pengubahan semua huruf dalam suatu kalimat menjadi huruf keciI. Huruf yang diterima hanya huruf “a” sampai huruf “z”, karakter lainnya selain huruf tersebut dihilangkan dan akan dianggap sebagai delimeter. Pada penelitian ini digunakan lowercase dan di tahap ini tidak menggunakan external library apapun, kita dapat memanfaatkan modul yang tersedia dalam python. Hasil proses case folding dapat dilihat pada table 3.3 berikut.
Tabel 3. 3 Hasil Proses Case Folding
Setelah Proses Cleaning Setelah Proses Case Folding Bagaimana cuaca Medan besok sore bagaimana cuaca medan besok sore Tolong beritahu cuaca Sei Rampah
hari ini
tolong beritahu cuaca sei rampah hari ini
3.4.3 Tokenization
Tokenization atau tokenisasi yang digunakan disini adalah untuk mengubah kata menjadi angka numerik. Setelah melakukan proses tokenization pada teks, hal selanjutnya adalah mengubah setiap kalimat dalam teks menjadi sebuah urutan. Urutan merupakan bentuk array yang berisi kumpulan token yang sesuai dengan setiap kata dalam kalimat dalam teks. Selanjutnya untuk menyusun setiap sequence sehingga memiliki panjang yang sama, maka dilakukan proses padding. Proses padding pada setiap sequence dibuat sama panjangnya dengan menambahkan nilai nol pada surfix dan prefix sehingga mencapai panjang sequence yang maksimal.
Untuk menggunakan tokenisasi, kita perlu mengimpor perpustakaan sebagai berikut:.
Setelah itu objek tokenizer akan dibuat dengan memanggil fungsi tokenizer dan melengkapi parameternya. Hasil Tokenization dapat dilihat pada table 3.4
Tabel 3. 4 Hasil Proses Tokenization
Setelah Proses Case Folding Setelah Proses Tokenization bagaimana cuaca medan besok sore ‘bagaimana’, ‘cuaca’, ‘medan’, ‘besok’
‘sore’
tolong beritahu cuaca sei rampah hari ini
‘tolong’, ‘beritahu’, ‘cuaca’, ‘sei’,
‘rampah’, ‘hari’, ‘ini’
3.4.4 Labelling
Pada tahap ini, dilakukan pemberian label pada kalimat dan membedakan suatu kata terhadap suatu kalimat. Pada tahap ini label-label yang diberikan diuji apakah pertanyaan yang masuk sudah menyesuaikan dengan label yang telah disesuaikan.
Labeling dilakukan dengan mengimport library seperti kode berikut :
from sklearn.preprocessing import LabelEncoder print(training_labels)
from tensorflow.keras.preprocessing.text import Tokenizer
29
Hasil dari training pemberian label data tersebut, maka data input yang telah dilakukan akan memberi label berdasarkan pertanyaan-pertanyaan yang telah dibagi.
Hasil training labelling tersebut akan menghasilkan output menunjukan jumlah label dari keseluruhan dataset yang sudah dibuat dan diberikan label sebanyak 207 kalimat.
Hasil output nantinya akan membuktikan bahwa jumlah kalimat yang diberikan label dan telah disusun, sesuai dengan labelnya masing-masing. Penjelasan isi setiap label akan dijelaskan dengan tabel 3. 5 berikut
Tabel 3. 5 Tabel Labelling
Tags Patterns
greeting ‘Halo’,’Hai’,’Tanya dong’, ‘Halo, mau tanya’, …
cuaca ‘Bagaimana cuaca besok pagi?’,’Bisa beritahu cuaca hari ini?’, ‘Tolong beritahu saya cuaca malam ini’, ‘Cuaca dua hari kedepan?”, …
suhu ‘Suhu besok pagi apa?’, ‘Berapa suhu hari ini?’, ‘Apa suhu malam ini?’, …
infokelembaban ‘Berapa persen kelembaban besok?’, ‘Berapa persen kelembaban mala mini?’, …
infocuaca ‘Info cuaca ’
thanks ‘Thanks’, ‘Terima Kasih’, ‘Makasih’, …
3.5 Classification using Recurrent Neural Network
Pada tahap ini, hasil pre-processing data training yang telah dimasukan ke sistem akan diklasifikasikan untuk mengetahui hasil output. Recurrent Neural Network terdiri dari tiga layer, yaitu input layer, hidden layer dan output layer. Pada penelitian ini input layer berisi pertanyaan input , kemudian hidden layer berupa data response yang didapatkan dan disimpan terlebih dahulu untuk di klasifikasi dan output layer merupakan hasil response yang telah diklasifikasikan sesuai hidden layer. Berikut
gambaran cara kerja Recurrent Neural Network dalam menghasilkan model data pada gambar 3.7
Gambar 3. 7 Proses Recurrent Neural Network membuat model data
Setiap kali pertanyaan input pengguna, Recurrent Neural Network akan otomatis melakukan looping dan pengulangan dalam melakukan klasifikasi. Model data training diuji dengan menggunakan epochs sebanyak 500 dan batch_size sebanyak 16.
Selanjutnya untuk kalimat untuk data testing, data yang didapatkan merupakan macam-macam pertanyaan mengenai cuaca yang diberikan oleh user kepada sistem melalui aplikasi Telegram dan diklasifikasikan sesuai pertanyaan yang masuk menggunakan algoritma yang sama yaitu model klasifikasi dengan Recurrent Neural Network (RNN). Algoritma tersebut berfungsi setelah setiap kata yang selesai di klasifikasikan dan memberikan respon yang tepatkemudian nantinya akan terbentuk model data yang akan menyocokan setiap kata dengan API Knowledge Base yang sudah dibangun.
3.5 Data Processing
3.6.1 Crawling Data
Proses ini dilakukan untuk pembentukan API Knowledge Base. Tahapan ini merupakan proses pengambilan data wilayah dan cuaca dari https://data.bmkg.go.id/prakiraan- cuaca/. Dikumpulkan data cuaca total sebanyak 554 wilayah diseluruh Indonesia dari 33 provinsi. Seluruh data nantinya akan dimasukan dan dibuat dalam database. Data
31
yang didapat dari situs tersebut masih berbentuk xml dan akan di parsing dalam bentuk json. Setelah data selesai di crawling, akan masuk kedalam tahapan selanjutnya (substitution value process).
3.6.2. Substitution Value Process
Pada proses ini, data yang didapat masih dalam berupa angka ataupun kode dan masih dalam format xml. Seperti yang dijelaskan sebelumnya, data yang diambil harus dilakukan parsing ke dalam JSON terlebih dahulu agar data mudah dibaca dan dapat digunakan. Untuk melakukan proses tersebut dilakukan parsing data yang akan memecah data menjadi bentuk json dan menambahkan ke dalam database. Data yang telah didapat sebelumnya dimasukan kedalam database dalam localhost/phpMyAdmin secara manual. Tampilan data yang sudah di update ke dalam database pada Gambar 3.8 dan contoh tampilan data yang didapat dalam bentuk JSON yang dihasilkan pada Gambar 3.9 berikut:
Gambar 3. 8 Data dari BMKG yang sudah di masukan ke dalam database
Gambar 3. 9 JSON yang dihasilkan setelah proses Substitution Value Process Data yang dimasukan terdiri dari pelabelan data berdasarkan jamCauca, dimana jamCuaca tersebut yaitu data tanggal dan waktu, kodeCuaca,yang merupakan kode cuaca, tempC merupakan suhu dan humidity yang merupakan tingkat kelembaban. Data yang sudah masuk pada database localhost tersebut pun otomatis masuk dan tersimpan dalam bentuk JSON. Data yang telah dimiliki harus diupdate secara manual setiap hari, agar data yang terdapat pada database akan mengikuti perkembangan data yang ada pada situs BMKG.
Setelah proses ini selesai, maka data yang sudah didapatkan dari awal proses crawling tersebut akan terbentuk sebagai Knowledge Base yang berbentuk API dan berbentuk json yang dapat digunakan. Data Processing ini akan menerapkan metode seperti pada flowchart pada Gambar 3.7 berikut:
33
Gambar 3. 10 Flowchart Data Processing
3.6 Perancangan Sistem 3.6.1 Use Case Diagram
Use case diagram ini mendeskripsikan interaksi pengguna dengan sistem yang dibuat dan digunakan untuk mengetahui fungsi serta siapa saja yang dapat menggunakan sistem. Use case diagram dapat dilihat dari gambar 3.8
Gambar 3. 11 Use Case Diagram Keterangan dari gambar 3.8:
1. Actor
Actor merupakan user atau pengguna yang berinteraksi dengan sistem untuk mendapatkan informasi dari chatbot
2. Use Case
Berikut penjelasan use case pada tabel 3.6
Tabel 3. 6 Deskripsi Use Case
No Use Case Deskripsi
1 Masuk ke dalam chatbot Chatbot dibuka pertama kali sebelum melakukan percakapan
2 Input kalimat Kegiatan yang dilakukan pengguna untuk mencari informasi cuaca 3 Tampil respon Pengguna mendapatkan respon
35
3.6.2 Rancangan Tampilan Halaman Chatbot
Berikut merupakan rancangan tampilan halaman chatbot setelah chatbot berhasil dibuat dengan menggunakan BotFather Gambar 3.9 beserta penjelasan gambar.
Gambar 3. 12 Perancangan Tampilan Halaman Chat
Keterangan :
1. Nama Chatbot yang berada didalam aplikasi Telegram. Pengguna dapat mengakses chatbot tersebut melalui aplikasi Telegram di smartphone 2. Avatar chatbot, berupa foto dari bot
3. Input pertanyaan dari pengguna mengenai informasi cuaca dalam Bahasa Indonesia, pertanyaan tersebut nantinya akan diterima dan diproses oleh bot 4. Output yang merupakan jawaban dari chatbot yang berisi respon dan
himbauan dalam Bahasa Indonesia terhadap pertanyaan pengguna.
BAB 4
IMPLEMENTASI DAN PENGUJIAN
Bab ini akan menbahas tentang implementasi dari metode Recurrent Neural Network (RNN) pada proses memperoleh informasi mengenai cuaca wilayah indonesia berupa analisis dan perancangan sistem serta akan membahas hasil pengujian yang telah di rancang.
4.1 Implementasi Sistem
Proses mengindentifikasi kalimat berdasarkan data prakiraan cuaca yang didapat dari situs BMKG dimulai dari proses pre-processing, text processing dan intent identification with Recurrent Neural Network yang di implementasikan kedalam bahasa pemrograman python dengan perangcangan yang sudah dibahas pada Bab 3.
4.1.1 Spesifikasi Perangkat Keras
Spesifikasi perangkat keras yang digunakan dalam penelitian ini adalah sebagai berikut.
1. Processor Intel(R) Core(TM) i5-8250U CPU @ 1.60 Hz 1.80 GHz 2. Memori RAM yang digunakan 8 GB
3. Kapasitas SSD 256 GB
4.1.2 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak yang digunakan dalam peneliian ini adalah sebagai berikut.
1. Sistem operasi Windows 10 64-Bit
2. Menggunakan library Natural language Toolkit (NLTK) 3. Python version 3.7
4. Google Collaboratory 5. Anaconda, version 4.10.1 6. Software online draw.io
51
4.2 Implementasi Sistem
4.2.1 Implementasi Perancangan Pembuatan Chatbot
Platform yang digunakan untuk membuat chatbot yaitu Telegram. Perancangan untuk membuat chatbot pada penelitian ini yaitu menggunakan BotFather, sebuah bot yang dimiliki telegram dimana bot tersebut menyediakan tempat untuk membuat dan mengatur chatbot yang akan dibuat.
Ada beberapa fungsi yang digunakan untuk membuat bot baru, yang pertama memanggil fungsi /newbot untuk membuat chatbot baru pada halaman bot BotFather, /setname untuk memberi nama chatbot, /setdescription untuk memberikan deksripsi mengenai chatbot yang kita buat, /setabouttext yaitu memberi penjelasan pada halaman chatbot kita dan /setusepic untuk memberikan foto pada chatbot kita. Berikut adalah proses perancangan membuat chatbot melalui BotFather.
Gambar 4. 1 Proses pembuatan chatbot menggunakan BotFather
Setelah bot berhasil dibuat, BotFather akan otomatis memberikan link untuk chatbot beserta API yang berfungsi untuk mengakses chatbot dengan sistem yang telah kita buat. Selanjutnya kita akan memberikan foto untuk chatbot dengan memberikan fungsi /setuserpic, nantinya chatbot akan memberikan himbauan untuk mengirimkan foto untuk chatbot yang kita buat seperti pada Gambar 3.6.
Gambar 4. 2 Memberikan foto untuk chatbot yang kita buat
Setelah itu kita dapat menambahkan pelengkap, seperti deskripsi mengenai chatbot tersebut dengan menggunakan fungsi /setdescription dan /setabouttext agar pengguna mengetahui tujuan dari bot tersebut seperti pada Gambar 3.7 berikut.
53
Gambar 4. 3 Memberikan deskripsi untuk chatbot
Setelah semua tahapan telah dilakukan, bot siap digunakan. Bot akan sepenuhnya berjalan setelah kita memasukan API yang telah diberikan kedalam baris kode yang kita buat untuk menjalankan sistem.
4.2.3 Implementasi Perancangan Chatbot
Gambar 4. 4 Tampilan sistem chatbot pada aplikasi Telegram
Tampilan pada Gambar 4.1 diatas merupakan tampilan aplikasi chatbot telegram sebelum pengguna memulai percakapan. Untuk memulai percakapan, pengguna dapat menekan tombol Start pada halaman chatting dan memberikan pertanyaan kepada chatbot. Gambar 4.5 menunjukan tampilan perancangan chatbot apabila sudah berjalan.
55
Gambar 4. 5 Tampilan perancangan chatbot
4.3 Pengujian Sistem
Setelah semua tahapan dilakukan oleh sistem, selanjutnya sistem akan melalui tahap pengujian sistem. Tujuan dari pengujian sistem ini adalah untuk mengetahui apakah sistem berjalan dengan baik. Pengujian sistem penelitian ini adalah proses menemukan jawaban atas pertanyaan masukan dari pengguna sesuai dengan kendala masalah.
Berikut adalah hasil pengujian chatbot menggunakan metode Recurrent Neural Network yang dapat dilihat pada tabel 1.2
Tabel 4. 1 Pertanyaan dan hasil data uji chatbot informasi cuaca
No. Input dari Pengguna Respon Chatbot Hasil Pengujian Sistem
1 Bagaimana cuaca medan besok pagi?
Cuaca medan besok pagi akan Hujan Ringan dengan suhu 28 °C dan
kelembaban 95%. Jangan lupa bawa payung!
BENAR
2 hari ini pekanbaru panas?
Akan Cerah Beraawan di pekanbaru. Semoga hari anda menyenangkan!
BENAR
3 Berapa derajat suhu cuaca siang ini?
Akan Hujan Petir di medan. Jangan lupa bawa payung!
TIDAK BENAR
4 Cuaca di Bekasi?
Hari ini akan Hujan Ringan di bekasi. Jangan lupa bawa payung!
BENAR
5 Bagaimana suhu pekanbaru
hari ini? Suhu di pekanbaru 28 °C BENAR
57
No. Input dari Pengguna Respon Chatbot Hasil Pengujian Sistem
6 Info cuaca medan dong
Cuaca Medan 2021-12-07
Dini Hari : Cerah Berawan (23°C)
Pagi : Hujan Ringan (32°C)
Siang : Berawan (25°C) Malam : Cerah Berawan (22°C)
2021-12-08
Dini Hari : Cerah Berawan (23°C)
Pagi : Cerah Berawan (32°C)
Siang : Cerah Berawan (24°C)
Malam : Cerah Berawan (23°C)
BENAR
7 Apa cuaca di kota semarang hari ini?
Hari ini akan Cerah Berawan di semarang.
Semoga hari anda menyenangkan!
BENAR