58
3.1 Analisis Sistem
3.1.1 Deskripsi Masalah
Dalam sebuah perusahaan ataupun organisasi jika ingin meningkatkan kemajuan dan pengembangannya, maka melakukan riset dan development, salah satu caranya melalui cara kuisioner yaitu membagikan kertas ke orang-orang tertentu yang berisi pertanyaan-pertanyaan seputar produk dan brand perusahaan atau organisasinya, lalu hasil kuisioner ini dianalisis apakah produk dan brand tersebut disukai atau tidak, baik atau buruk dan sebagainya. Dengan kuisioner ini perusahaan atau organisasi dapat menilai produk dan brand yang dimilikinya, dan bagaimana mengembangkan produk dan brand kedepan.
Melihat dari hal diatas dapat dikatakan jika kuisioner dengan pertanyaan-pertanyaan pilihan baik atau buruk, disukai atau tidak dan sebagainya, hal ini dapat dicari pada status-status yang ada di media jejaring sosial. Disadari atau tidak saat ini kebanyakan orang mengeskpresikan perasaan terhadap sesuatu dengan membuat status di situs jejaring sosial.
3.1.2 Pemecahan Masalah
Dengan masalah yang telah diuraikan maka diambil sebuah solusi untuk membangun suatu sistem yang dapat mengetahui berapa besar nilai sentiment terhadap suatu brand. Selain itu, sistem memberikan output berupa jumlah data dalam bentuk statistik sentimen.
Dalam menghitung nilai sentiment setiap percakapan digunakan logika
Fuzzy Mamdani agar diketahui berapa nilai sentiment tersebut dalam suatu
percakapan.
3.2 Requirement Model
Model representasi aliran proses yang akan rancang akan disajikan dalam bentuk UML (Unified Model Language). UML digunakan untuk menggambarkan aliran informasi dan proses data yang bergerak dari input data hingga output.
3.2.1 Identifikasi Aktor
Dalam sistem yang analisis sentiment brand pada media jejaring sosial menggunakan Fuzzy Logic, terdapat satu aktor utama yaitu user, yakni adalah orang yang menjalankan atau menggunakan sistem secara langsung.
3.2.2 Use Case Diagram
Usecase diagram adalah gambaran graphical dari beberapa atau semua actor, use case, dan interaksi diantara komponen-komponen tersebut yang
memperkenalkan suatu sistem yang akan dibangun. Use case diagram menjelaskan manfaat suatu sistem jika dilihat menurut pandangan orang yang berada di luar sistem. Diagram ini menunjukkan fungsionalitas suatu sistem atau kelas dan bagaimana sistem tersebut berinteraksi dengan dunia luar. Use case
diagram dapat digunakan selama proses analisis untuk menangkap requirement
Gambar 3.1 Use Case Diagram analisis sentiment brand pada media jejaring
sosial menggunakan Fuzzy Logic
3.2.3 Skenario Diagram
1. Skenario Use Case Project.
Fungsi proses project adalah agar user dapat melihat project-project yang telah dibuat user dan dapat membuat project sesuai dengan keinginan user. Nomor : 1
Nama use case: Project Aktor : User
Tipe : Primary dan esensial
Tujuan : User dapat melihat keyword-keyword berdasarkan project-nya dan dapat membuat project baru.
Kondisi awal : Tampil halaman data project.
proj ect
statisti c
conversation
sentiment user
Kondisi akhir : Tampilan data project dalam bentuk tabel.
Deskripsi : User dapat melihat data-data proyek termasuk keyword dan topic.
User dapat membuat project baru dengan cara memasukkan nama project, keyword dan topic sesuai dengan keinginan user. Hasil
terakhir dari membuat project baru adalah menampilkan data statistik.
Tabel 3.1 Skenario Use Case project TIPICAL COURSE OF EVENT
Main Flow of Event
Actor action System action
1. Pilih ke menu project 2. Menampilkan data project dalam bentuk tabel 3. Memilih view 4. Menampilkan data project dalam bentuk tabel 5. Memilih menu add 5. Menampilkan form inputan
4. Masukan nama project 5. Masukan keyword 6. Masukan topic 7. Klik submit
8. Sistem masukan ke database
9. Mengambil data dari sosial media twitter dan facebook 10. Cari percakapan yang mengandung sentiment.
11. Penentuan fuzzyfication, Inferensi, defuzzyfication
13. Update ke database. 14. Tampilkan hasil statistik.
Alternate course
6a. Jika inputan nama dan keyword tidak diisi maka, akan muncul peringatan
2. Skenario Use Case Statistic
Fungsi proses statistic adalah agar user dapat mengetahui jumlah data dalam bentuk statistik.
Nomor : 2 Nama use case: Statistic
Aktor : User
Tipe : Primary dan esensial
Tujuan : User memperoleh informasi data dari statistik. Kondisi awal : Menampilkan chart data statistik.
Kondisi akhir : Menampilkan chart data statistik sesuai dengan proyek.
Deskripsi : User memilih menu statistik dan dapat memilih proyek yang diinginkan user, hasilnya sistem akan menampilkan data dalam bentuk statistik.
Tabel 3.2 Skenario Use Case Statistic TIPICAL COURSE OF EVENT
Main flow of event
Actor action System action
1. Memilih menu statistik. 2. Menampilkan statistik data
3. Memilih project 4. Menampilkan statistik yang sesuai dengan
project
Alternate course
3. Skenario Use Case Conversation.
Fungsi proses conversation adalah agar user dapat melihat percakapan dari data jejaring sosial.
Nomor : 2
Nama use case: conversation Aktor : User
Tipe : Primary dan esensial
Tujuan : User dapat melihat percakapan data sosial media, dan mengetahui nilai fuzzy positif atau negatif setiap percakapan, serta user dapat
melihat sentimen dari percakapan itu dari hasil defuzzyfication metode mamdani.
Kondisi awal :Menampilkan data percakapan dan nilai fuzzy setiap percakapannya.
Kondisi akhir : Menampilkan data percakapan sesuai yang pilihan user.
Deskripsi : User memilih menu conversation dan data media, keyword, topic dan sentiment yang dinginkan, sistem akan manampilkan data percakapannya.
Tabel 3.3 Skenario Use Case conversation TIPICAL COURSE OF EVENT
Main Flow of Event
Actor action System action
1. Memilih menu conversation 2. Menampilkan data percapakan general (default) 3. Memilih media 8. Menampilkan data percakapan sesuai dengan pilihan 4. Memilih keyword
5. Memilih topic 6. Memilih sentimen 7. Klik tombol change
9. klik defuzzy 10.menampilkan aturan defuzzyfication dan proses inferensi, serta menampilan chart fuzzy set defuzzyfication dan
perhitungannya
Alternate course
3a. Jika tidak memilih media, maka media umumnya ialah twitter
4a. Jika tidak memilih keyword, maka keyword umumnya ialah keyword pertama 5a. Jika tidak memilih topic, maka topic umumnya ialah topic pertama
4. Skenario Use Case Sentiment.
Fungsi proses sentiment adalah agar user dapat melihat kata-kata
sentiment positif dan negatif untuk parameter pencarian dalam setiap percakapan,
selain itu juga user dapat menambahkan kata-kata sentiment tersebut. Nomor : 2
Nama use case: Sentiment Aktor : User
Tipe : Primary dan esensial
Tujuan : User dapat melihat list kata-kata positif dan negatif, serta dapat menambahkan kata-kata positif dan negatif sebagai parameter untuk menentukan sentimen percakapan.
Kondisi awal : Tampilan form berisi list kata-kata positif dan negatif dan form input untuk menambahkan kata-kata positif dan negatif.
Kondisi akhir : Tampilan form berisi list kata-kata positif dan negatif dan form input untuk menambahkan kata-kata positif dan negatif.
Deskripsi : User memilih menu sentiment, sistem akan menampilan form tampilan list sentimen dan inputan untuk menambhakan kata-kata sentimen.
Tabel 3.4 Skenario Use Case sentiment TIPICAL COURSE OF EVENT
Main Flow of Event
Actor action System action
1. Memilih menu sentiment 2. Menampilkan form input dan list sentiment 3. Memasukan kata positif 6. Memasukan data ke database
4. Memasukan kata negatif 7. Mengembalikan ke menu list sentiment
5. Klik tombol add
Alternate course
6a. Jika data tidak valid atau sudah ada di list, maka sistem akan mengembalikan ke menu list sentiment.
3.2.4 Activity Diagram
Menggambarkan rangkaian aliran dari aktivitas dari awal hingga akhir, digunakan untuk mendeskripsikan aktifitas yang dibentuk dalam suatu operasi.
1. Activity Diagram Project
Menggambarkan urutan aktivitas dalam sebuah use case project. Dalam
activity diagram project digambarkan dua aktivitas yaitu melihat daftar project
dan membuat project. Untuk dapat melihat daftar project, user harus mengklik menu view. Sedangkan untuk membuat project, user harus mengklik menu add, kemudian mengisi form add project yang terdiri dari nama project, keyword dan
topic sesuai dengan yang diinginkan user. Untuk lebih jelasnya dapat dilihat pada
Gambar 3.2 Activity Diagram Project menerima
inputan memilih menu
project
klik menu add
memasukan inputan klik menu view
menampilkan list project menampilkan halam an list project menampilkan form inputan validasi insert ke DB
menarik data dari sosmed
search sentiment conversation
hitung nilai fuzzyfication, inferensi dan defuzzyfication
update ke DB menampilkan statistic data SYSTEM USER
2. Activity Diagram Statistic
Menggambarkan urutan aktivitas dalam sebuah use case statistic. Dalam
activity diagram statistic memiliki tujuan untuk menampilkan data statistik dari sentiment setiap brand. Dimulai dari user yang memilih menu statistic kemudian
secara otomatis sistem akan menampilkan data dalam bentuk chart. Untuk lebih jelasnya dapat dilihat pada gambar 3.3 dibawah ini:
Gambar 3.3 Activity Diagram Statistic 3. Activity Diagram Conversation
Menggambarkan urutan aktivitas dalam sebuah use case conversation. Dalam activity diagram conversation memiliki tujuan untuk menampilkan percakapan yang mengandung sentiment positif atau negatif. Yang memulai aktivitas adalah user dengan mengklik menu conversation kemudian sistem menampilkan percakapan yang diinginkan user. Untuk lebih jelasnya dapat dilihat pada gambar 3.4 dibawah ini:
pilih menu statistic pilih project menampilakan data statistic menampilakan data statistic sesuai project
SYSTEM USER
Gambar 3.4 Activity Diagram Conversation 4. Activity Diagram Sentiment
Menggambarkan urutan aktivitas dalam sebuah use case sentiment. Dalam
activity diagram sentiment memiliki tujuan untuk melihat kata-kata sentiment
yang digunakan sebagai dasar untuk menentukan nilai sentiment terhadapt percakapan. Aktivitas yang dilakukan dimulai dari user mengklik menu sentiment kemudian sistem akan menampilkan daftar kata-kata sentiment, kemudian user dapat mengnambahkan kata sentiment dengan mengklik tombol add. Untuk lebih jelasnya dapat dilihat pada gambar 3.5 dibawah ini:
memilih menu conversation
klik defuzzy pada conversation klik change select m edia, keyword,topic,sentimen menampilkan conversation default menampilkan converstion sesuai pilihan menampilk perhitungan defuzzyfication SYSTEM USER
Gambar 3.5 Activity Diagram Sentiment
3.2.5 Class Diagram
Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan
sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Sehingga dengan adanya class diagram dapat memberikan pandangan umum sebuah sistem.
memilih menu sentiment masukan inputan menampilkan form input menerima inputan validas i simpan ke DB salah benar SYSTEM USER
Gambar 3.6 Class Diagram analisidis sentiment brand pada media jejaring sosial
menggunakan metode Fuzzy Logic
a. Kelas Perancangan
Kelas – kelas yang terbentuk dari tahap analisis, dan akan digunakan pada tahap perancangan, adalah sebagai berikut:
Tabel 3.5 Kelas perancangan
No Nama Kelas Perancangan Nama Tabel
1. Sk_ capt_twitter Twitter 2. Sk_capt_facebook Facebook 3. Sk_keyword Keyword 4. Sk_listpos Listpos 5. Sk_listneg Listneg Sk_capt_twitet _id pid keyword_id topic_id sent_word_pos sent_count_word_pos sent_word_neg sent_count_word_neg fuzzyneg defuzzy sentim ent created_at fuzzypos from_user from_user_id from_user_id_str from_user_name geo id id_str iso_language_code profile_image_url profile_image_url_https source text to_user to_user_id to_user_id_s tr to_user_name dtime created_at_ view() ins ert() sk_capt_facebook _id pid keyword_id topic_id sent_word_pos sent_count_word_pos sent_word_neg sent_count_word_neg fuuzzyneg fuzzypos defuzzy sentiment id from message type application_name application_id created_time updated_time view() insert() s k_listneg _id word view() insert() s k_listpos _id word view() insert() sk_keyword _id pid keyword name topic view() add() 0..* 1..* 0..* 1..* 1..*1..* 0..*0..* 1 1..* 1 1..* 1 1..* 1 1..*
b. Atribut
1. Tabel Twitter
Tabel 3.6 Atribut Twitter
NAMA ATRIBUT VISIBILITY
(PUBLIC,PRIVATE)
TYPE
Id Private Text
Pid Private Text
topic_id Private Text
sent_word_pos Private Text
sent_count_word_pos Private Text
sent_word_neg Private Text
sent_count_word_neg Private Text
Fuzzyneg Private Text
Defuzzy Private Text
Sentiment Private Text
created_at Private Text
Fuzzypos Private Text
from_user Private Text
from_user_id Private Text
from_user_id_str Private Text
from_user_name Private Text
Geo Private Text
id_str Private Text
iso_language_code Private Text
profile_image_url Private Text
profile_image_url_https Private Text
Source Private Text
Text Private Text
to_user Private Text
to_user_id Private Text
to_user_id_str Private Text
to_user_name Private Text
2. Tabel Facebook
Tabel 3.7 Atribut Facebook
NAMA ATRIBUT VISIBILITY
(PUBLIC,PRIVATE)
TYPE
Id Private Text
Pid Private Text
topic_id Private Text
sent_word_pos Private Text
sent_count_word_pos Private Text
sent_word_neg Private Text
sent_count_word_neg Private Text
Fuzzyneg Private Text
Defuzzy Private Text
Sentiment Private Text
Id Private Text
from Private Text
Message Private Text
Type Private Text
application_name Private Text
application_id Private Text
ceated_time Private Text
id_str Private Text
updated_time Private Text
3. Tabel Keyword
Tabel 3.8 Atribut Keyword
NAMA ATRIBUT VISIBILITY
(PUBLIC,PRIVATE)
TYPE
Id Private Text
Pid Private Text
Keyword Private Text
Name Private Text
4. Tabel Listpos
Tabel 3.9 Atribut Listpos
NAMA ATRIBUT VISIBILITY
(PUBLIC,PRIVATE)
TYPE
_id Private Text
Word Private Text
5. Tabel Listneg
Tabel 3.10 Atribut Listneg
NAMA ATRIBUT VISIBILITY
(PUBLIC,PRIVATE)
TYPE
_id Private Text
Word Private Text
3.2.6 Sequence Diagram
Sequence diagram adalah suatu diagram yang menggambarkan interaksi antar obyek dan mengindikasikan komunikasi diantara obyek-obyek tersebut. Diagram ini juga menunjukkan serangkaian pesan yang dipertukarkan oleh obyek-obyek yang melakukan suatu tugas atau aksi tertentu. Obyek-obyek-obyek tersebut kemudian diurutkan dari kiri ke kanan, aktor yang menginisiasi interaksi biasanya ditaruh di paling kiri dari diagram.
1. Sequence Diagram Project
Menjelaskan bagaimana user melakukan interaksi dengan sistem untuk mengetahui data project yang telah dibuat dan user dapat membuat project baru. Untuk membuat project baru user harus mengisi form add yang terdiri dari nama
Sequence diagram project dapat dilihat pada gambar 3.7 dibawah ini:
Gambar 3.7 Sequence Diagram Project
2. Sequence Diagram Statistic
Menjelaskan bagaimana user melakukan interaksi dengan sistem untuk mengetahui data statistic suatu project. User memulai dengan mengklik menu
statistic dengan membawa pesan id project, setelah itu sistem akan langsung
menampilakan data statistik setiap brand beserta jumlah sentiment-nya.
: user menu project Menu Add
Project DB menu statistic id project select add data project insert data project input data
hitung nilai fuzzyfication, inferensi & defuzzyfication select data
Sequence diagram statistic dapat dilihat pada gambar 3.8 dibawah ini:
Gambar 3.8 Sequence Diagram Statistic
3. Sequence Diagram Conversation
Menjelaskan bagaimana user melakukan interaksi dengan sistem untuk melihat setiap percakapan dengai nilai fuzzy dan defuzzyfication. Dimulai dengan user mengklik menu conversation dengan membawa pesan id project yang telah dipilih sebelumnya, kemudian sistem akan menampilakan percakapan. User dapat memilih media, brand dan sentiment yang diinginkan oleh user.
: user menu statistic DB
id project
id project
data statistic
Sequence diagram conversation dapat dilihat pada gambar 3.9 dibawah
ini:
Gambar 3.9 Sequence Diagram Conversation 4. Sequence Diagram Sentiment
Menjelaskan bagaimana user melakukan interaksi dengan sistem untuk mengetahui data statistic suatu project. Dimulai dari user dengan memilih menu
sentiment, kemudian sistem menampilkan form input sentiment dan list sentiment, user mengisi form berupa kata sentiment, kemudian sistem akan memasukan ke
database dengan pesan berupa pesan inputan dari user. : user menu conversation defuzzyfication DB id project select data data selection select data DB view conversation defuzzy data fuzzy count defuzzyfication
Sequence diagram sentiment dapat dilihat pada gambar 3.10 dibawah ini:
Gambar 3.10 Sequence Diagram Sentiment
3.3 tf (Term Frequency)
tf (Term Frequency) yaitu banyak kata yang dicari dalam sebuah dokumen
/ percakapan (conversation). Untuk dapat mengetahui jumlah tf per percakapan maka harus ada parameter kata-kata sentiment positif dan negatif. Dari parameter
sentiment ini dicari dalam setiap percakapan dan dihitung berapa jumlah kata
positif dan negatif yang ditemukan dalam setiap percakapan. : user menu sentiment DB
pilih menu sentiment
input data sentiment
data input
insert data input salah
3.4 Aturan Sistem Fuzzy
Suatu sistem berbasis aturan fuzzy yang lengkap terdiri dari tiga komponen utama yaitu fuzzification, Inference, Defuzzification.
Gambar 3.11 Diagram blok lengkap sistem berbasis aturan fuzzy (Yogawati
Wulandari, 2011).
3.4.1 Fuzzyfication (Himpunan Fuzzy)
Fuzzification merupakan proses mengubah masukan-masukan yang nilai
kebenarannya bersifat pasti (crisp input) ke dalam bentuk fuzzy input.
Fuzzification didasarkan pada gagasan untuk memperluas jangkauan fungsi
karakteristik sedemikian hingga fungsi tersebut akan mencakup bilangan real pada interval [0,1]. Nilai keanggotaannya menunjukkan bahwa suatu item tidak hanya bernilai benar atau salah. Nilai 0 menunjukkan salah, nilai 1 menunjukkan benar, dan masih ada nilai-nilai yang terletak antara benar dan salah.
1. Pembentukan Fuzzyfication.
Untuk menghitung nilai sentiment percapakan diperlukan dua variabel
input fuzzy, yaitu tf positif dan tf negatif, serta satu variabel output fuzzy yaitu sentiment. Untuk lebih jelasnya dapat dilihat dari tabel semesta pembicaraan
Tabel 3.11 Semesta Pembicaraan Variabel Fuzzy
Fungsi Nama Variabel Semesta Pembicaraan
Input tf positif [0 s/d max(tf p) ]
tf negative [0 s/d max(tf n) ]
Output Sentiment [0 s/d (max(tf) ]
Dikarenakan analisis sentiment brand ini menggunakan dynamic
fuzzyfication sehingga untuk semesta pembicaraan input fuzzy berdasarkan nilai maximum tf positif dan negatif. Untuk semesta output fuzzy dilihat dari nilai
maximum tf , jika yang maximum tf positif lebih besar dari pada nilai maximum tf negatif maka semesta pembicaraan didasarkan pada maximum tf positif, atau sebaliknya.
Dari variabel yang telah dimunculkan, kemudian disusun domain himpunan fuzzy. Berdasarkan domain tersebut, selanjutnya ditentukan fungsi keanggotaan dari masing-masing variabel.
Tabel 3.12 Fuzzyfication
Variabel Himpunan Domain Fungsi
Keanggotaan
Positif
Sedikit [0 s/d p ] Segitiga kiri
Sedang [ p s/d max(tf p) ] Segitiga tengah Banyak [ p s/d p ] Segitiga kanan Negatif Sedikit [0 s/d n ] Segitiga kiri Sedang [ n s/d max(tf n) ] Segitiga tengah Banyak [ n s/d n ] Segitiga kanan Sentiment Negatif [0 s/d ] Trapesium kiri
Netral [ s/d ] Trapesium tengah Positif [ s/d ] Trapesium kanan • Fuzzyfication Positif
Pada fuzzyfication positif didefinisikan tiga variable linguistik, yaitu sedikit , sedang, dan banyak. Untuk merepresentasikan variabel positif, digunakan bentuk segitiga kiri untuk himpunan fuzzy sedikit, bentuk kurva segitiga tengah untuk himpunan fuzzy sedang, dan bentuk kurva segitiga kanan untuk himpunan fuzzy banyak.
Gambar 3.12 Fuzzyfication Positif
Sumbu horizontal merupakan nilai input dari variabel positif, sedangkan sumbu vertikal merupakan tingkat keanggotaan dari nilai input, dimana tingkat keanggotaan diinisialisasikan dengan tfr merupakan domain awal positif sedikit, tfs merupakan domain akhir positif sedikit dan domain awal positif sedang, tft merupakan domain akhir positif sedang yang merupakan nilai maximum tf positif dan tfx merupakan domain akhir positif banyak. Dengan fungsi keanggotaan sebagai berikut:
µSedikit =
0 X ≤ 0, X ≥ tfs
(X - 0) / (tfr - 0) 0 < X ≤ tfr - (X - tfs) / (tfs - tfr) tfr < X ≤ tfs
µSedang =
µBanyak =
Nilai antara 0 sampai tfs termasuk positif sedikit, nilai antara tfr sampai tft termasuk positif sedang, nilai antara dari tfs sampai tfx termasuk positif banyak, nilai antara tfr sampai tfs termasuk positif sedikit dan positif sedang, Nilai antara tfs sampai tft termasuk positif sedang dan positif banyak.
• Fuzzyfication Negatif
Pada fuzzyfication negatif didefinisikan tiga variable linguistik, yaitu sedikit, sedang, dan banyak. Untuk merepresentasikan variabel negatif, digunakan bentuk segitiga kiri untuk himpunan fuzzy sedikit, bentuk kurva segitiga tengah untuk himpunan fuzzy sedang, dan bentuk kurva segitiga kanan untuk himpunan fuzzy banyak.
Gambar 3.13 Fuzzyfication Negatif
0 X ≤ tfr, X ≥ tft (X - tfr) / (tfs - tfr) tfr < X ≤ tfs - (X - tft) / (tft - tfs) tfs < X ≤ tft 0 X ≤ tfs, X ≥ tfx (X - tfs) / (tft - tfs) tfs < X ≤ tft - (X - tfx) / (tfx - tft) tft < X ≤ tfx
Sumbu horizontal merupakan nilai input dari variabel negatif, sedangkan sumbu vertikal merupakan tingkat keanggotaan dari nilai input, dimana tingkat keanggotaan diinisialisasikan dengan tfr merupakan domain awal negatif sedikit, tfs merupakan domain akhir negatif sedikit dan domain awal negatif banyak, tft ialah domain akhir negatif sedang yang merupakan nilai maximum
tf negatif dan tfx merupakan domain akhir negatif banyak. Dengan fungsi
keanggotaan sebagai berikut:
µSedikit =
µSedang =
µBanyak =
Nilai antara 0 sampai tfs termasuk negatif sedikit, nilai antara tfr sampai tft ermasuk negatif sedang, nilai antara dari tfs sampai tfx termasuk negatif banyak, nilai antara tfr sampai tfs termasuk negatif sedikit dan negatif sedang, Nilai antara tfs sampai tft termasuk negatif sedang dan negatif banyak.
0 X ≤ 0, X ≥ tfs (X - 0) / (tfr - 0) 0 < X ≤ tfr - (X - tfs) / (tfs - tfr) tfr < X ≤ tfs 0 X ≤ tfr, X ≥ tft (X - tfr) / (tfs - tfr) tfr < X ≤ tfs - (X - tft) / (tft - tfs) tfs < X ≤ tft 0 X ≤ tfs, X ≥ tfx (X - tfs) / (tft - tfs) tfs < X ≤ tft - (X - tfx) / (tfx - tft) tft < X ≤ tfx
Pada dasarnya fuzzyfication positif dan negatif memiliki grafik yang sama, hanya yang membedakan adalah nilai tfr, tfs, tft dan tfx yang masing-masing tingkat keanggotaanya tergantung dari jumlah maximum tf.
• Fuzzyfication Sentiment
Pada fuzzyfication sentiment didefinisikan tiga variable linguistik, yaitu negatif, netral, dan positif. Untuk merepresentasikan variabel sentiment, digunakan bentuk trapesium kiri untuk himpunan fuzzy negatif, bentuk kurva trapesium tengah untuk himpunan fuzzy netral, dan bentuk kurva trapesium kanan untuk himpunan fuzzy positif.
Gambar 3.14 Fuzzyfication Sentiment
Sumbu horizontal merupakan nilai input dari variabel sentiment, sedangkan sumbu vertikal merupakan tingkat keanggotaan dari nilai input, dimana tingkat keanggotaan diinisialisasikan tft (term frequency maximum). Dengan fungsi keanggotaan sebagai berikut:
µNegatif = 0 X ≤ 0, X ≥ tf-b (X - 0) / (tf-b - 0) 1 0 < X < tfr tf-a ≤ X ≤ tf-b - (X – tf-c) / (tf-c – tf-b) tf-b < X ≤ tf-c
µNetral =
µPositif =
Nilai antara 0 sampai tf-c termasuk sentiment negatif, nilai antara tf-b sampai tf-e termasuk sentiment netral, nilai antara dari tf-d sampai tf-t termasuk sentiment positif, nilai antara tf-b sampai tf-c termasuk sentiment negatif dan sentiment netral, nilai antara tf-d sampai tf-e termasuk sentiment netral dan sentiment positif.
2. Inference
Inference melakukan penalaran menggunakan fuzzy input dan fuzzy rules
yang telah ditentukan sehingga menghasilkan fuzzy output. Secara sintaks, suatu
fuzzy rule (aturan fuzzy) dituliskan sebagai: IF antecendent THEN consequent
Terdapat dua model aturan fuzzy yang digunakan secara luas dalam berbagai aplikasi, yaitu Model Mamdani dan Model Sugeno. Dalam analasis
sentiment ini, menggunakan aturan fuzzy model Mamdani.
0 X ≤ tf-b, X ≥ tf-e
(X - tf-b) / (tf-c - tf-b) 1
Tf-b < X ≤ tf-c tf-a ≤ X ≤ tf-b - (X – tf-e) / (tf-e – tf-d) Tf-d < X ≤ tf-e
0 X ≤ tf-d, X ≥ tft (X - tf-d) / (tf-e - tf-d) 1 tf-d < X ≤ tf-e tf-e < X ≤ tf-f - (X – tft) / (tft – tf-f) Tf-f < X ≤ tft
• Aturan Fuzzy Sentiment
Untuk dapat menentukan sentiment akhir dari hasil fuzzyfication, maka harus dibentuk aturan fuzzy. Aturan - aturan dibentuk untuk menyatakan relasi antara input dan output. Tiap aturan merupakan suatu implikasi. Operator yang digunakan untuk menghubungkan antara dua input adalah operator AND, dan yang memetakan antara input-output adalah IF-THEN.Fungsi implikasi yang digunakan adalah fungsi MIN, yaitu dengan mengambil tingkat keanggotaan yang minimum dari variabel input sebagai output-nya. Aturan fuzzy ini disesuaikan dengan nilai fuzzy output.
Tabel 3.13 Aturan Fuzzy sentiment
No. Parameter Masukan (JIKA) Parameter Keluaran (MAKA)
Positif Negatif Sentiment
1 Sedikit Sedikit Negatif jika nilai negatif > nilai positif Netral jika nilai negatif = nilai positif
Positif jika nilai negatif < nilai positif
2 Sedang Sedikit Positif
3 Banyak Sedikit Positif
4 Sedikit Sedang Negatif
5 Sedang Sedang Negatif jika nilai negatif > nilai positif Netral jika nilai negatif = nilai positif
Positif jika nilai negatif < nilai positif
6 Banyak Sedang Positif
7 Sedikit Banyak Negatif
8 Sedang Banyak Negatif
9 Banyak Banyak Negatif jika nilai negatif > nilai positif Netral jika nilai negatif = nilai positif
Positif jika nilai negatif < nilai positif
• Proses Inference
Setelah aturan dibentuk, maka dilakukan aplikasi fungsi implikasi. Fungsi implikasi yang digunakan adalah MIN (Cosjunction), yang berarti tingkat keanggotaan yang didapat sebagai konsekuen dari proses ini adalah nilai
minimum dari variabel positif atau negatif. Sehingga didapatkan daerah fuzzy pada variabel sentiment untuk masing – masing aturan.
Pada metode Mamdani, komposisi antar fungsi implikasi menggunakan fungsi MAX yaitu dengan cara mengambil nilai maksimum dari output aturan kemudian menggabungkan daerah fuzzy dari masing-masing aturan dengan menggunakan operator OR (Disjunction).
µsentiment[x]= max (µsedikit [x],µsedang [x],µbanyak [x]) 3. Defuzzyfication (Penegasan)
Defuzzification merupakan proses mengubah fuzzy output menjadi crisp value berdasarkan fungsi keanggotaan yang telah ditentukan. Terdapat berbagai
metode defuzzification yang telah berhasil diaplikasikan untuk berbagai macam masalah, di sini metode yang digunakan yaitu metode Centroid.
Metode Centroid disebut juga sebagai Center of Area atau Center of Gravity. Metode ini menghitung nilai crisp menggunakan rumus:
∗ ! "
! "
Dimana y* suatu nilai crisp. Fungsi integration dapat diganti dengan fungsi summation jika y bernilai diskrit, sehingga menjadi :
∗ ∑ !
∑ !
CONTOH KASUS
Misal terdapat beberapa percapakan seperti dibawah ini:
Tabel 3.14 Percakapan (Contoh Kasus)
Dokumen User Message
1 ir_tox PUAS : Paketan lengkap, Umb menu
rapi, Anti pending dan Sinyal kuat
#Puas2 @BrandA
2 Manovtaa BrandA kalo lagi bagus sinyal kenceng tp gilirann sinyal jelek bapuk bgt!
3 Pradaivon Baru sadar BrandA mahal (¯―¯٥) yg penting sinyal kuat
4 NatasyaMei Sumpah jadi males banget pake
BrandA. Sinyal jelek minta bayar mahal
5 RankSykoembank knpa kok skrng jaringn internet
BrandA gk sprti biasa y ?lama
loadingnya, kdang gagal..? Pd hal dh beli paket OprMini
Langkah 1 : Tentukan parameter sentiment
Untuk dapat menentukan suatu percakapan mengandung sentiment atau tidak, maka harus dicari menggunakan parameter sentiment. Sebagai contoh dapat dilihat pada tabel dibawah ini:
Tabel 3.15 Parameter Sentiment (Contoh Kasus)
No Positif Negatif 1 Lengkap bapuk 2 Rapi mahal 3 Kuat goblok 4 Bagus lama 5 Kenceng gagal 6 Penting males 7 Keren jelek
Langkah 2 : Hitung tf (Term Frequency)
TF (Term Frequency) yaitu banyak kata yang dicari dalam sebuah dokumen. Dalam contoh percakapan dengan parameter sentiment yang ditentukan, maka dihasilkan nilai TF seperti pada tabel dibawah ini:
Tabel 3.16 Perhitungan tf (term frequency) (Contoh Kasus)
Dokumen TF Positif TF Negatif
1 4 0
2 2 2
3 1 2
4 0 3
5 0 2
Langkah 3 : Tentukan Fuzzyfication dan hitung nilai fuzzy
Dari nilai tf yang didapat, maka nilai tf maximum positif yaitu 4 dan nilai tf
maximum negatif yaitu 3. Fungsi keangotaan positif didasarkan pada nilai maximum tf positif, dan hasilnya dapat dilihat dari gambar diawah ini:
Gambar 3.15 Fuzzyfication Positif (Contoh Kasus)
T (banyak) = max (tf positif)
T = 4
S (sedang) = max (tf p) – (max (tf p) x 1/3)
S = 2.67
R (sedikit) = max (tf p) – (max (tf p) x 2/3) R = 4 – (4 x 2/3)
R = 1.33
Hitung nilai Fuzzy Positif pada setiap dokumen.
Tabel 3.17 Perhitungan Fuzzy Positif (Contoh Kasus)
Dok tf
Positif
Fuzzy Positif Grafik
1 4 µSedikit = 0 , X ≤ 0 µSedang = 0 , X ≥ 0 µBanyak = - (4 - 5.33) / (5.33-4) = 1 / 1 = 1 1.33 2.67 4 5.33
sedikit sedang banyak
2 2 µSedikit = - (2 - 2.67) / (2.67-1.33) = 0.67 / 1.33 = 0.50 µSedang = (2 -1.33) / (2.67-1.33) = 0.67 / 1.34 = 0.50 µBanyak = 0 1.33 2.67 4 5.33
sedikit sedang banyak
2 0.5 3 1 µSedikit = 0 µSedang = (1 - 0) / (1.33 - 0) = 1 / 1.33 = 0.75 µBanyak = 0 1.33 2.67 4 5.33
sedikit sedang banyak
1 0.75 4 0 µSedikit = 0 µSedang = 0 µBanyak = 0 5 0 µSedikit = 0 µSedang = 0 µBanyak = 0
Untuk fungsi keanggotaan negatif, cara perhitungannya sama dengan fungsi keanggotaan positif dimana hanya nilai maximum tf positif digantikan dengan nilai maximum tf negatif. Fungsi keanggotaan negatif dapat dilihat pada gambar dibawah ini.
Gambar 3.16 Fuzzyfication Negatif (Contoh Kasus)
T (banyak) = max (TF negatif)
T = 3
S (sedang) = max (TF negatif) – (max (TF negatif) x 1/3)
S = 3 – (3 x 1/3)
S = 2
R (sedikit) = max (TF negatif) – (max (TF negatif) x 2/3) R = 3 – (3 x 2/3)
Hitung nilai Fuzzy Negatif pada setiap dokumen:
Tabel 3.18 Contoh Perhitungan Fuzzy Negatif (Contoh Kasus)
Dok tf
Negatif
Fuzzy Negatif Grafik
1 0 µSedikit = 0 µSedang = 0 µBanyak = 0 2 2 µSedikit = 0 µSedang = (2 - 1) / (2 - 1) = 1 / 1 = 1 µBanyak = 0 1 2 3 4
sedikit sedang banyak
3 2 µSedikit = 0 µSedang = (2 - 1) / (2 - 1) = 1 / 1 = 1 µBanyak = 0 1 2 3 4
sedikit sedang banyak
4 3 µSedikit = 0 µSedang =0 µBanyak = (3 - 2) / (3 - 2) = 1 / 1 = 1 1 2 3 4
sedikit sedang banyak
5 2 µSedikit = 0 µSedang = (2 - 1) / (2 - 1) = 1 / 1 = 1 µBanyak = 0 1 2 3 4
Untuk lebih jelas nilai Fuzzy positif dan negatif seperti pada tabel dibawah ini:
Tabel 3.19 Nilai Fuzzy positif dan negatif (Contoh Kasus)
Dok tf
Positif Fuzzy Positif
tf
Negatif Fuzzy Negatif
1 4 µSedikit = 0 µSedang = 0 µBanyak = 1 0 µSedikit = 0 µSedang = 0 µBanyak = 0 2 2 µSedikit = 0.50 µSedang = 0.50 µBanyak = 0 2 µSedikit = 0 µSedang = 1 µBanyak = 0 3 1 µSedikit = 0 µSedang = 0.75 µBanyak = 0 2 µSedikit = 0 µSedang =0 µBanyak = 1 4 0 µSedikit = 0 µSedang = 0 µBanyak = 0 3 µSedikit = 0 µSedang =0 µBanyak = 1 5 0 µSedikit = 0 µSedang = 0 µBanyak = 0 2 µSedikit = 0 µSedang =1 µBanyak = 0 Langkah 4 : Inference
fungsi MIN (Conjunction), yaitu dengan mengambil tingkat keanggotaan yang minimum dari variabel input sebagai output-nya. Sesuai dengan aturan fuzzy analisis sentiment pada table 3.7, dan perhitungan Fuzzy positif dan negatif yang dapat masukan kedalam fungsi MIN.
Tabel 3.20 Perhitungan fungsi MIN (Contoh Kasus)
Dok Fuzzy Positif Fuzzy Negatif Conjuction
1 µSedikit = 0 µSedang = 0 µBanyak = 1 µSedikit = 0 µSedang = 0 µBanyak = 0
α- positif1 = min (µPositifBanyak) = min (1) = 1 2 µSedikit = 0.50 µSedang = 0.50 µBanyak = 0 µSedikit = 0 µSedang = 1 µBanyak = 0
α- negatif1 = min (µPositifSedikit, µNegatifSedang) = min (0.50,1)
= 0.5
α- negatif2 = min (µPositifSedang, µNegatifSedang) = min (0.50,1)
= 0.5 3 µSedikit = 0 µSedang = 0.75 µBanyak = 0 µSedikit = 0 µSedang =0 µBanyak = 1
α- negatif1 = min (µPositifSedang, µNegatifBanyak) = min (0.75,1) = 0.75 4 µSedikit = 0 µSedang = 0 µBanyak = 0 µSedikit = 0 µSedang =0 µBanyak = 1
α- negatif 1 = min (µNegatifBanyak) = min (1) = 1 5 µSedikit = 0 µSedang = 0 µBanyak = 0 µSedikit = 0 µSedang =1 µBanyak = 0
α- negatif 1 = min (µNegatifSedang) = min (1)
= 1
fungsi MAX (Disjunction), yaitu dengan mengambil tingkat keanggotaan yang maximum dari hasil MIN (conjunction). maka dapat dihasilkan nilai disjunction seperti pada perhitungan tabel dibawah ini :
Tabel 3.21 Perhitungan fungsi MAX (Contoh Kasus)
Dok Conjuction Disjunction
1 α- positif1 = 1 µsf[positif] = max (α- positif1)
= max(1) = 1 2 α- negatif1 = 0.5
α- negatif2 = 0.5
µsf[negatif] = max (α- negatif1, α- negatif2)
= max(0.5 , 0,5) = 0.5
3 α- negatif1 = 0.75 µsf[negatif] = max (α- negatif1)
= max(0.75) = 0.75
4 α- negatif 1 =1 µsf[negatif] = max (α- negatif1)
= max(1) = 1
5 α- negatif 1 = 1 µsf[negatif] = max (α- negatif1)
= max(1) = 1
Langkah 5 : Defuzzyfication
Fuzzification sentiment ditentukan berdasarkan nilai terbesar tf yaitu 4,
Gambar 3.17 Fuzzyfication Sentiment (Contoh Kasus)
Dari gambar diatas maka dapat dihitung nilai fuzzyfication-nya.
Tabel 3.22 Perhitungan Fuzzyfication Sentiment (Contoh Kasus)
Dok Conjuction Defuzzyfication
1 µsf[positif] = 1 ∗ ∑ ∑ ∗ 2.83.03.23.43.6 ∗1.0 1.0∗5 ∗ 16 5 ∗ 3.2 2 µsf[negatif] = 0.5 ∗ ∑ ∑ ∗ 0.40.60.81.01.2 ∗0.5 0.5∗5 ∗ 2.0 2.5 ∗ 0.8
3 µsf[negatif] = 0.75 ∗ ∑ ∑ ∗ 0.40.60.81.01.2 ∗0.75 0.75∗5 ∗ 3.0 3.75 ∗ 0.8 4 µsf[negatif] = 1 ∗ ∑ ∑ ∗ 0.40.60.81.01.2 ∗1.0 1.0∗5 ∗ 4.0 5.0 ∗ 0.8 5 µsf[negatif] = 1 ∗ ∑ ∑ ∗ 0.40.60.81.01.2 ∗1.0 1.0∗5 ∗ 4.0 5 ∗ 0.8
3.5 Perancangan Tampilan
3.5.1 Perancangan Tampilan View Project
Pada perancangan tampilan view project ini terdapat dua menu yaitu view dan add. Menu view digunakan untuk menampilkan data project berisi nama
project, keyword dan topic yang telah di buat. Gambar perancangan tampilan view project dapat dilihat pada gambar 3.17 dibawah ini:
footer
view add
ID Nama Keyword Topic
3.5.2 Perancangan Tampilan Add Project
Tampilan ini berada pada menu project, kemudian memilih menu add. Tampilan ini digunakan sebagai form input project baru, yang nantinya akan digunakan sebagai kata kunci pencarian data. Gambar perancangan tampilan add
project dapat dilihat pada gambar 3.18 dibawah ini:
footer
view Project Name Keyword Topic addGambar 3.19 Perancangan Tampilan Add Project
3.5.3 Perancangan Tampilan Statistic
Menampilkan data statistic dari sebuah project yang telah dibuat. Statistik yang ditampilkan mulai dati jumlah perbedaan antara media, jumlah per brand, jumlah sentiment per media dan jumlah sentiment per brand. dibuatnya statistik ini agar memudahkan dalam melihat perbedaan antara brand satu dengan yang lainnya. Gambar perancangan tampilan statistic dapat dilihat pada gambar 3.19 dibawah ini:
footer
Gambar 3.20 Perancangan Tampilan Statistic
3.5.4 Perancangan Tampilan Conversation
Menampilkan data percakapan beserta nilai fuzzy positif dan negatif. Dalam perancangan ini terdapat list box untuk memilih percakapan yang diinginkan. List box yang disediakan antara lain media, keyword, topic dan
sentiment. Gambar perancangan tampilan conversation dapat dilihat pada gambar
3.20 dibawah ini:
footer
change topic keyword mediacreated keyworduser media text countpos wordpos countneg wordneg fuzzypos fuzzyneg defuzzy
3.5.5 Perancangan Tampilan Sentiment
Menampilkan form untuk melihat list sentiment positif dan negatif, juga dapat menambahkan kata sentiment baru. Tombol add digunakan untuk menambahkan kata sentiment. Gambar perancangan tampilan sentiment dapat dilihat pada gambar 3.21 dibawah ini:
footer
List sentiment positif
add sentiment positif
List sentiment negatif
add sentiment positif
add