• Tidak ada hasil yang ditemukan

BAB III ANALISIS DAN PERANCANGAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III ANALISIS DAN PERANCANGAN"

Copied!
42
0
0

Teks penuh

(1)

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.

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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.

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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..*

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

µ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

(25)

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

(26)

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

(27)

µ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

(28)

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

(29)

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 :

∑ !

!

(30)

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

(31)

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)

(32)

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

(33)

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)

(34)

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

(35)

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)

(36)

= 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,

(37)

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

(38)

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

(39)

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

(40)

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 add

Gambar 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:

(41)

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 media

created keyworduser media text countpos wordpos countneg wordneg fuzzypos fuzzyneg defuzzy

(42)

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

Gambar

Gambar 3.1 Use Case Diagram analisis sentiment brand pada media jejaring  sosial menggunakan Fuzzy Logic
Gambar 3.3 Activity Diagram Statistic  3.  Activity Diagram Conversation
Gambar 3.4 Activity Diagram Conversation  4.  Activity Diagram Sentiment
Gambar 3.5 Activity Diagram Sentiment  3.2.5  Class Diagram
+7

Referensi

Dokumen terkait

Setelah diketahui nilai derajat keanggotaan input A dari masing-masing matakuliah pilihan berdasarkan komposisi aturan dan derajat keanggotaan target output B

Dalam form ini suatu indent dapat dicancel dengan syarat jika indent tersebut belum dilakukan proses order, di close manual jika sudah dilakukan proses order namun indent

Namun kadar oksigen berbanding terbalik dengan kadar etanol yang dihasilkan, hal ini sesuai dengan International Commission of Microbiologial Specifications for Foods (1980)

26 ADELIA PUTRI RAHAYU UIN-173200675 Tarbiyah dan Keguruan Pendidikan Islam Anak Usia Dini SPAN-PSB. 27 KHOIRUNNISA 1720306784 Tarbiyah dan Keguruan Pendidikan Islam Anak Usia

Menyelenggarakan do’a bersama (mujahadah) pada setiap US dan UN. Dalam pembelajaran agama, Siswa yang non muslim seperti siswa pemeluk agama Kristen dan katolik akan di

Pemilihan respirator harus berdasarkan pada tingkat pemaparan yang sudah diketahui atau diantisipasi, bahayanya produk dan batas keselamatan kerja dari alat pernafasan yang

Sementara itu data ekonomi yang dirilis hari Jumat menunjukkan sentimen konsumen AS bulan Februari turun menjadi 93,6 dari sebelumnya 98,1, lebih bu- ruk dari estimasi ekonom

Tahun Sales Total Fixed Assets Fixed Asset Turn Over Rata-rata Industi Ket. Jika rata-rata industri sebesar 2,14 kali, maka dikatakan perputaran aktiva tetap dalam