Anda di halaman 1dari 15

Bab III Analisis dan Desain

3.1

Analisis Permasalahan

3.1.1

Analisis Akurasi Unilingual Opinion

Data yang merupakan unilingual opinion merupakan data yang berisi opini terhadap video yang dikumpulkan melalui aplikasi microblogging Twitter. Twitter dipilih karena Twitter merupakan salah satu microblog terbesar yang telah menampung banyak opini dari berbagai negara di seluruh penjuru dunia dengan bahasa yang berbeda-beda. Khusus untuk penelitian ini, penulis menggunakan data opini dengan bahasa Inggris, bahasa Indonesia serta gabungan kedua bahasa tersebut.

1.Opini Bahasa Inggris Struktur Bahasa Inggris yang baku dan secara umum digunakan adalah Subjek + [to be] + Verb (Kata Kerja) + Object (Objek dapat berupa kata benda atau kata ganti orang) + kata keterangan lainnya. Namun dalam penggunaannya di media sosial, struktur yang digunakan sering tidak terstruktur dengan baik. Pengguna lebih sering menggunakan bahasa informal dan tidak baku bahkan dengan istilah-istilah yang tidak ada di dalam kamus.

2.Opini Bahasa Indonesia Struktur Bahasa Indonesia yang baik dan benar adalah Subjek + Predikat + Objek + Keterangan. Seperti halnya opini dalam Bahasa Inggris, penyampaian opini dengan Bahasa Indonesia di Twitter juga cenderung disampaikan dalam bentuk yang informal dengan penggunaan kata-kata atau istilah yang tidak baku. Ada pula kata atau istilah gaul yang diciptakan kalangan muda yang tidak tersedia di kamus dan memiliki makna tersendiri.

3.Opini Bahasa Inggris-Indonesia Penyampaian opini di Twitter juga mengalami kemajuan seiring dengan berkembangnya zaman. Pengguna Twitter kini lebih leluasa menyampaikan opininya dengan menggunakan berbagai Bahasa seperti dengan menggabungkan Bahasa Inggris dengan Bahasa Indonesia. Struktur yang tidak beraturan dan penggunaan kata kontradiksi juga sering ditemukan dalam opini bilingual ini.

3.1.1.1 Data Collecting

Untuk mengumpulkan opini dari Twitter, penulis memilih menggunakan Twitter API. Twitter menawarkan serangkaian API yang dapat dimanfaatkan untuk pengolahan data seperti membaca tweet, mengakses profil pengguna, dan melihat postingan konten atas nama pengguna. Untuk mengakses data Twitter, ada dua langkah yang perlu dilakukan. Pertama-tama kita harus login ke dalam Twitter. Kedua, kita harus mendaftarkan aplikasi yang akan kita buat di http://apps.twitter.com. Jika aplikasi yang akan kita buat sudah terdaftar, maka kita akan diberikan consumer key dan consumer secret yang akan digunakan untuk mengatur aplikasi yang kita buat serta access token dan access token secret yang akan digunakan untuk mengatur akses masuk ke akun pengguna. Setelah data diperoleh, maka data disimpan dalam bentuk csv (comma separated value) lalu kemudian dibagi menjadi dua bagian, yaitu :

1.

Data Training

Data training adalah data yang digunakan untuk menghasilkan model classifier. Model ini akan digunakan untuk memprediksi kelas data baru yang belum pernah ada. Jumlah data keseluruhan adalah 600 tweet. Data akan dibagi dengan perbandingan 80:20. Sehingga yang menjadi data training berjumlah 480 tweet. Data yang akan digunakan diambil dari data tweet Bahasa Inggris, Bahasa Indonesia, dan bilingual dengan jumlah yang sama.

2. Data Testing

Data test digunakan untuk mengukur kemampuan sebuah classifier model berhasil melakukan klasifikasi dengan benar. Data test tidak boleh termasuk ke dalam data training untuk memvalidasi classifier dalam melakukan klasifikasi. Dengan perbandingan 80:20, maka data test berjumlah 120 tweet.

3.1.1.2 Data Preprocessing

Sebelum melakukan klasifikasi, data yang telah dikumpulkan harus di olah terlebih dahulu. Proses pengolahan data ini disebut sebagai data preprocessing. Rangkaian tahapan data preprocessing yang dilakukan penulis untuk data unilingual pada penelitian ini akan diuraikan sebagai berikut:

1. Normalisasi Teks

Dalam penyampaian opini, pengguna media sosial cenderung memilih kata-kata yang tidak baku. Kata tidak baku yang dimaksud bisa berupa perulangan karakter, karakter emosi (emoticon), ataupun singkatan kata. Untuk memudahkan penulis dalam melakukan analisis sentimen, maka kata-kata yang tidak baku tersebut harus diubah kedalam bentuk kata baku. Untuk kata dengan perulangan karakter perlu dilakukan penghilangan karakter yang berulang. Proses normalisasi teks sendiri memiliki tiga tahapan yaitu mengganti kata dengan kata baku, menghilangkan karakter berulang dan mengganti kata dengan kata baku kembali. Mengganti kata dengan kata baku dilakukan terlebih dahulu untuk menghindari kasus kata yang disingkat seperti ‘ttg’, ‘ttd’, ‘dll’. Jika dilakukan penghilangan karakter berulang terlebih dahulu maka suatu kata dapat memiliki makna yang berbeda. Seperti misalnya ‘dll’ yang bermakna dan lain- lain akan menjadi ‘dl’ dengan tahapan tersebut. Tahapan mengganti kata dengan kata baku kembali maksudnya adalah terdapat beberapa kata yang sudah baku namun dituliskan dengan karakter yang berulang atau terdapat kesalahan dalam penulisannya. Maka dilakukan penggantian ke dalam bentuk kata bakunya kembali.

2. Case folding

Case folding adalah proses merubah huruf pada teks menjadi huruf kecil.

Contoh tweet Bahasa Indonesia :

Bagus banget nadanya cocok sama lagunya

Contoh Tweet Bahasa Inggris

Love is flowing through air hate is flowing through river but “ED SHEERAN” is flowing through our minds

Setelah melalui proses Case folding, maka kedua tweet di atas akan menjadi :

Hasil tweet Bahasa Indonesia :

bagus banget nadanya cocok sama lagunya

Hasil tweet Bahasa Inggris

love is flowing through air hare is flowing through river but “ed sheeran” is flowing through our minds

3. Non-alphabet Removal

Non-alphabet removal dilakukan untuk menghapus karakter yang bukan merupakan alphanumeric seperti simbol dalam tweet. Simbol dirasa perlu dihilangkan karna tidak mengandung informasi maupun sentimen di dalam teks. Program akan memisahkan kata berdasarlan karakter penghubung seperti tanda baca lalu membuang semua karakter yang bukan merupakan huruf. Contoh proses non-alphabet removal pada tweet yang telah melalui proses normalisasi dan case folding ditunjukkan seperti snippet di bawah ini

Contoh tweet Bahasa Indonesia bagus banget nadanya cocok sama lagunya

Contoh tweet Bahasa Inggris

love is flowing through air hare is flowing through river but “ed sheeran” is flowing through our minds

Setelah dilakukan proses non-alphabet removal, maka akan diperoleh hasil seperti

Hasil tweet Bahasa Indonesia

bagus banget nadanya cocok sama lagunya

Hasil tweet Bahasa Inggris

love is flowing through air hare is flowing through river but ed sheeran is flowing through our minds

4. Stopwords Removal

Stopwords removal merupakan tahapan untuk menghilangkan kata-kata yang kurang memiliki makna seperti tautan, tweet berulang atau retweet, hashtags, mention (menyebutkan username pengguna lain di dalam tweet) dan kata-kata yang tidak memiliki pengaruh dalam ekstraksi sentimen seperti kata penghubung. Stopwords merupakan kata-kata yang tidak mengandung sentimen atau bukan merupakan ciri dari sebuah sentimen. Misalnya ‘di’, ‘ke’, ‘dari’, ‘oleh’, ‘and’, ‘be’, ‘so’ dan sebagainya. Data yang akan digunakan pada tahapan ini adalah data hasil non-alphabet removal. Data tersebut akan dibandingkan dengan data stopwords yang dibuat. Setiap kalimat stopwords pada masing-masing data akan dihapus. Proses stopwords removal digambarkan seperti flowchart di bawah ini

Gambar 3. 1 Flowchart stopwords removal Contoh proses stopwords removal pada tweet yang telah melalui

Gambar 3. 1 Flowchart stopwords removal

Contoh proses stopwords removal pada tweet yang telah melalui proses normalisasi, case folding, dan non-alphabetic removal ditunjukkan seperti snippet di bawah ini

Contoh tweet Bahasa Indonesia

bagus banget nadanya cocok sama lagunya

Contoh tweet Bahasa Inggris

love is flowing through air hare is flowing through river but ed sheeran is flowing through our minds

Setelah dilakukan proses stopwords removal maka, kedua tweet di atas akan menjadi

Hasil tweet Bahasa Indonesia

bagus banget nadanya cocok sama lagunya

Hasil tweet Bahasa Inggris

love flowing air hare flowing ed sheeran flowing minds

5. Stemming Stemming adalah tahapan memetakan dan menguraikan bentuk suatu kata menjadi bentuk kata dasarnya yang sesuai dengan struktur morfologi bahasa yang baik dan benar. Hal ini bertujuan untuk menghilangkan imbuhan pada masing-masing kata. Elemen dalam Bahasa Indonesia yang akan di-stemming adalah :

Awalan (prefiks): di-, per-, ber-, meng-, ter-, pe-, per-, se-, peng- Contoh: mengantuk, pertemuan, berubah

Akhiran (sufiks): -a, -i, -kan, -nya, -is, -ik, -al, if, -(is)asi, -iah, -wi, -wiah, - isme, -sionis Contoh: nasionalisme, perfeksionis, alamiah

Sisipan (infiks): -el-, -em-, -er-

Contoh: telunjuk, gemetar, gerigi

Imbuhan yang terdiri dari prefix dan sufiks : ke-an, ke-i

Contoh: kepribadian, kemuliaan

Partikel : -kah, -lah

Contoh: bagaimanakah, kapanlah

Kata ganti: ku-, kau-, -mu, -nya

Contoh: topiku, sepatunya Hasil akhir dari proses stemming adalah kata kerja dasar, kata benda tunggal dan kata sifat. Salah satu kendala yang dihadapi penulis saat melakukan data preprocessing adalah mengatasi kata-kata atau istilah gaul/alay yang sering digunakan dalam tweet. Hal ini dikarenakan tidak ditemukannya kamus kata gaul/alay yang dapat digunakan untuk mengembalikan kata-kata alay ke kata dasar atau ke makna awal kata tersebut. Untuk stemming Bahasa Indonesia penulis menggunakan sebuah library stemmer yaitu Sastrawi stemmer yang didesain untuk dapat digunakan secara mudah dan sederhana (GitHub,

2017).

Untuk stemming Bahasa Inggris, penulis menggunakan library Porter stemmer. Proses stemming digambarkan seperti flowchart di bawah ini

Proses stemming digambarkan seperti flowchart di bawah ini Gambar 3. 2 Flowchart Stemming Contoh proses stemming

Gambar 3. 2 Flowchart Stemming

Contoh proses stemming pada dua buah tweet yang telah melalui proses normalisasi, case folding, non-alphabetic removal dan stopwords removal ditunjukkan seperti snippet di bawah ini

Contoh tweet Bahasa Indonesia

bagus banget nadanya cocok sama lagunya

Contoh tweet Bahasa Inggris

love flowing air hare flowing ed sheeran flowing minds

Setelah dilakukan proses stemming, maka kedua buah tweet di atas akan menjadi :

Hasil tweet Bahasa Indonesia

bagus banget nada cocok sama lagu

Hasil tweet Bahasa Inggris

love flowing air hare flowing ed Sheeran flowing mind

3.1.1.3 Representasi Teks dengan N-Gram

Data yang sudah melalui tahap preprocessing selanjutnya akan direpresentasikan menjadi atribut pada text representation. Metode yang dipilih penulis adalah n-gram dengan jumlah n=1 (unigram). Unigram merupakan teknik dasar yang umum dilakukan karena memiliki representasi atribut paling lengkap. Unigram melakukan pengelompokan pada setiap satu kata, dengan jumlah kemunculan kata akan menjadi atribut pada data. Data kemunculan kata kemudian akan digunakan menjadi input pada model training dan menjadi model untuk pengklasifikasian pada data test.

3.1.1.4 Klasifikasi Data

Proses klasifikasi data akan melalui dua tahapan yaitu tahap pelatihan terhadap data yang telah diketahui kategorinya dan tahap klasifikasi dokumen yang belum diketahui kategorinya. Teorema Bayes mempunyai formula umum sebagai berikut :

Dimana :

(|) = () ∗ (|) ()

1.P(H|X) adalah probabilitas akhir bersyarat (posterior probability) suatu hipotesis H terjadi jika diberikan bukti E terjadi. 2.P(X|H) adalah probabilitas sebuah bukti E terjadi mempengaruhi hipotesis H. 3.P(H) adalah probabilitas awal (prior probability) hipotesis E terjadi tanpa memandang bukti apapun. 4.P(X) adalah probabilitas awal (prior probability) bukti E tanpa memandang hipotesis atau bukti yang lain.

Pada penelitian ini, dua variabel yang akan digunakan untuk penerapan teorema Bayes ini adalah fitur atau kata sebagai hipotesis (H) dan nilai sentimen atau kategori sebagai bukti (E). Karena dalam suatu kalimat terdapat lebih dari satu kata, dimana untuk menentukan mana yang bisa menjadi fitur sangat sulit, maka diasumsikan bahwa setiap kata adalah fitur. Maka penerapan teori Bayes akan menjadi :

Dengan :

1. F adalah fitur atau kata.

(|) = () ∗ (|) ()

Karena fitur atau kata yang mendukung suatu kategori bisa banyak, dengan pemisalan terdapat fitur F1, F2, F3 maka teori Bayes dapat berkembang menjadi:

(|1, 2, 3) = () ∗ (1, 2, 3|) (1, 2, 3)

Syarat teori Bayes adalah bukti-bukti (dalam percobaan ini fitur atau kata) yang ada adalah independen satu sama lain, maka bentuk rumus diatas bisa diubah menjadi:

(|1, 2, 3) = (1|) ∗ ( 2|) ∗ (3|) (1) ∗ (2) ∗ (3)

Atau secara umum dapat dirumuskan menjadi :

(|) =

=0

( |)

()

Karena nilai P(F) selalu tetap untuk suatu kategori, maka perhitungan nilai P(F) dapat

( |) . Berikut

kalimat yang akan diklasifikasikan dengan metode Naïve Bayes, ‘Bagus banget nadanya cocok sama lagunya.’ Setelah dilakukan preprocessing maka kalimat diatas akan menjadi ‘bagus banget nada cocok sama lagu’, dan setelah dilakukan N-gram text representation maka akan didapat enam kelompok kata yakni ‘bagus’, ‘banget’, ‘nada’, ‘cocok’, ‘sama’, ‘lagu’. Diasumsikan penulis telah menghitung jumlah kata dalam satu set dokumen dataset yang sudah dilabeli , maka akan didapat hasilnya seperti dibawah ini:

dilakukan sekali saja, sehingga yang perlu dihitung hanya bagian

=

No

Kata

Kemunculan

Kemunculan

Kemunculan

Total

kata sebagai

kata sebagai

kata sebagai

klasifikasi

klasifikasi

klasifikasi

posited pada

negatif pada

netral

pada

data

data

data

training

training

training

1

sama

2

8

8

18

2

mantap

6

2

6

14

3

bagus

18

1

4

23

4

musik

5

5

11

21

5

suka

4

1

4

9

6

banget

5

16

8

29

7

nada

5

12

4

21

8

anggota

1

6

7

14

9

lagu

2

7

3

12

10

cocok

12

2

5

19

Total

60

60

60

180

Dari tabel diatas akan didapat kesimpulan untuk probabilitas:

P(K positif ) = 60/180 = 0.33 P(K negatif ) = 60/180 = 0.33 P(K netral ) = 60/192 = 0.33

Kemudian dihitung nila probabilitas kalimat pada kategori negatif dari representasi kata ‘bagus’, ‘banget’, ‘nada’, ‘cocok’, ‘sama’, ‘lagu’.

P(K negatif | F bagus ) = 1/60 = 0.02 P(K negatif | F banget ) = 16/60 = 0.27 P(K negatif | F nada ) = 12/60 = 0.20 P(K negatif | F cocok ) = 2/60 = 0.03

P(K negatif | F sama ) = 8/60 = 0.13 P(K negatif | F lagu ) = 7/60= 0.12

Jadi total nilai probabilitas kalimat pada kategori negatif adalah sebagai berikut :

(|) =

=0

( |)

()

= (0.02).(0.27).(0.20).(0.03).(0.13).(0.12)

= 4.60905E-07

Untuk total nilai probailitas kalimat pada kategori positif pada kalimat diatas adalah

sebagai berikut :

(|) =

= 4.62963E-07 Untuk total nilai probabilitas kalimat pada kategori netral pada kalimat diatas adalah sebagai berikut :

(|) =

= 3.29218E-07

=0

( |)

()

= (0.30).(0.08).(0.08).(0.20).(0.03).(0.03)

=0

( |)

()

= (0.07).(0.13).(0.07).(0.08).(0.13).(0.05)

Setelah itu dicari nilai maximum posteriory (V map ) dengan melihat nilai dari tiap kategori tersebut. Maka didapat kesimpulan bahwa kalimat ‘Bagus banget nadanya cocok sama lagunyadapat diklasifikasikan ke kategori positif.

3.1.1.5 Proses Perhitungan Akurasi

Pada penelitian, terdapat tiga kategori yang paling mungkin dihasilkan saat proses klasifikasi, yakni positif, negatif, dan netral. Maka dalam Confusion Matrix akan dibuat table dengan tiga kolom dan tiga baris.

Nilai Sebenarnya (Actual)

 

Positif

Negatif

Netral

Nilai

Positif

True Positive

False Positive

False Positive

Prediksi

Negatif

False Negative

True Negative

False Negative

Netral

False Neutral

False Neutral

True Neutral

Dari tabel matriks diatas, diperoleh 6 kategori hasil kombinasi antara lain:

- True positive adalah record positif yang diklasifikasikan sebagai kategori positif.

- False positive adalah record positif yang diklasifikasikan sebagai kategori negatif dan netral.

- True negative adalah record negatif yang diklasifikasikan sebagai kategori negatif.

- False negative adalah record negatif yang diklasifikasikan sebagai kategori positif dan netral.

- True neutral adalah record netral yang diklasifikasikan sebagai kategori netral.

- False neutral adalah record netral yang diklasifikasikan sebagai kategori positif dan negatif.

Selanjutnya akan dijelaskan contoh penghitungan akurasi dengan asumsi penulis memiliki 600 tweet sebagai data uji, dimana 400 tweet diantaranya diprediksi sebagai tweet positif, 100 tweet diprediksi sebagai tweet negatif, dan 100 tweet diprediksi sebagai tweet netral. Setelah dilakukan pengujian ternyata dari 400 tweet yang diprediksi positif, yang benar masuk kategori positif berjumlah 250 tweet, 100 tweet masuk ke kategori negative dan 50 tweet masuk ke kategori netral. Dari 100 tweet yang diprediksi negative, yang benar masuk ke kategori negative sebanyak 75 tweet, 5 tweet masuk ke kategori positif, dan 20 tweet masuk ke kategori netral. Sementara dari 100 tweet yang diprediksi sebagai tweet netral, yang benar masuk kategori netral sebanyak 80 tweet, 10 tweet masuk kategori positif dan 10 tweet masuk ke kategori negative. Jika dimasukkan dalam bentuk Confusion matriks, maka dapat digambarkan seperti tabel di bawah ini:

 

Nilai Sebenarnya (Actual)

 

Total

Positif

Negatif

Netral

Nilai

Positif

250

100

50

400

Prediksi

Negatif

5

75

20

100

Netral

10

10

80

100

Total

265

185

150

600

Dari data di atas, dapat dilakukan penghitungan tingkat ketepatan antara informasi yang diminta dengan jawaban yang diberikan oleh sistem (precision) adalah dengan formula berikut :

= jumlah data prediksi positif yang benar positif jumlah data prediksi positif

=

True Positive True positive + False positive 100%

250

= 400 ∗ 100% = . %

∗ 100%

Lalu akan dihitung apakah sistem berhasil dalam menemukan kembali sebuah informasi (recall)

dengan menggunakan formula berikut :

= jumlah data prediksi positif yang benar jumlah data positif yang sebenarnya

100%

=

True positive True Positive + False Negative + False Neutral 100%

=

250

265 ∗ 100% = . %

Lalu langkah terakhir adalah menghitung tingkat kedekatan nilai prediksi dengan nilai aktual pada

sistem (accuracy) dengan formula :

= jumlah data prediksi yang benar jumlah total data

∗ 100%

= True Positive + True Negative + True Neutral Total

∗ 100%

=

405

600 ∗ 100% = . %

Hasil yang diperoleh dari penghitungan tingkat akurasi masing-masing dataset ini lah nanti yang

akan digunakan untuk dilihat perbandingannya.

3.1.2 Analisis Akurasi Bilingual Opinion

3.1.2.1 Data Preprocessing

Sebelum melakukan klasifikasi, data yang telah dikumpulkan harus di olah terlebih dahulu. Proses pengolahan data ini disebut sebagai data preprocessing. Rangkaian tahapan data preprocessing yang dilakukan penulis untuk data bilingual pada penelitian ini akan diuraikan sebagai berikut:

1. Normalisasi Teks Dalam penyampaian opini, pengguna media sosial cenderung memilih kata-kata yang tidak baku. Kata tidak baku yang dimaksud bisa berupa perulangan karakter, karakter emosi (emoticon), ataupun singkatan kata. Untuk memudahkan penulis dalam melakukan analisis sentimen, maka kata-kata yang tidak baku tersebut harus diubah kedalam bentuk kata baku. Untuk kata dengan perulangan karakter perlu dilakukan penghilangan karakter yang berulang. Proses normalisasi teks sendiri memiliki tiga tahapan yaitu mengganti kata dengan kata baku, menghilangkan karakter berulang dan mengganti kata dengan kata baku kembali. Mengganti kata dengan kata baku dilakukan terlebih dahulu untuk menghindari kasus kata yang disingkat seperti ‘acc’, ‘ttd’, ‘dll’. Jika dilakukan penghilangan karakter berulang terlebih dahulu maka suatu kata dapat memiliki makna yang berbeda. Seperti misalnya ‘acc’ yang bermakna accepted akan menjadi ‘ac’ dengan tahapan tersebut dan akan menghasilkan makna yang berbeda. Tahapan mengganti kata dengan kata baku kembali maksudnya adalah terdapat beberapa kata yang sudah baku namun dituliskan dengan karakter yang berulang atau terdapat

kesalahan dalam penulisannya. Maka dilakukan penggantian ke dalam bentuk kata bakunya kembali.

2. Case folding

Case folding adalah proses merubah huruf pada teks menjadi huruf kecil.

Contoh tweet Bahasa Inggris-Indonesia :

Ending lagunya bikin sedih

liriknya seperti kehidupan nyata, EXCELLENT SONG

Setelah melalui proses Case folding maka tweet di atas akan menjadi :

Hasil tweet Bahasa Inggris-Indonesia :

ending lagunya bikin sedih

liriknya seperti kehidupan nyata, excellent song…

3. Non-alphabet Removal

Non-alphabet removal dilakukan untuk menghapus karakter yang bukan merupakan alphanumeric seperti simbol dalam tweet. Simbol dirasa perlu dihilangkan karna tidak mengandung informasi maupun sentimen di dalam teks. Program akan memisahkan kata berdasarlan karakter penghubung seperti tanda baca lalu membuang semua karakter yang bukan merupakan huruf. Contoh proses non-alphabet removal pada tweet yang telah melalui proses normalisasi dan case folding ditunjukkan seperti snippet di bawah ini

Contoh tweet Bahasa Inggris-Indonesia

ending lagunya bikin sedih

liriknya seperti kehidupan nyata, excellent song…

Setelah dilakukan proses non-alphabet removal, maka akan diperoleh hasil seperti

Hasil tweet Bahasa Inggris-Indonesia

ending lagunya bikin sedih liriknya seperti kehidupan nyata excellent song

4. Stopwords Removal

Stopwords removal merupakan tahapan untuk menghilangkan kata-kata yang kurang memiliki makna seperti tautan, tweet berulang atau retweet, hashtags, mention (menyebutkan username pengguna lain di dalam tweet) dan kata-kata yang tidak memiliki pengaruh dalam ekstraksi sentimen seperti kata penghubung. Stopwords merupakan kata-kata yang tidak mengandung sentimen atau bukan merupakan ciri dari sebuah sentimen. Misalnya ‘di’, ‘ke’, ‘dari’, ‘oleh’, ‘and’, ‘be’, ‘so’ dan sebagainya. Data yang akan digunakan pada tahapan ini adalah data hasil non-alphabet removal. Data tersebut akan dibandingkan dengan data stopwords yang dibuat. Khusus untuk kasus ini, setiap kalimat stopwords pada masing-masing data akan dicek ke data stopwords Bahasa Inggris dan Bahasa Indonesia. Jika ada kata pada masukan yang sama dengan kata yang berada di stopwords, maka kata tersebut akan dihapus dari kalimat. Proses stopwords removal digambarkan seperti flowchart di bawah ini

Gambar 3. 3 Flowchart Stopwords Removal Data Bilingual Contoh proses stopwords removal pada tweet yang

Gambar 3. 3 Flowchart Stopwords Removal Data Bilingual

Contoh proses stopwords removal pada tweet yang telah melalui proses normalisasi, case folding, dan non-alphabetic removal ditunjukkan seperti snippet di bawah ini

Contoh tweet Bahasa Inggris-Indonesia

ending lagunya bikin sedih liriknya seperti kehidupan nyata excellent song

Setelah dilakukan proses stopwords removal maka tweet di atas akan menjadi

Hasil tweet Bahasa Inggris-Indonesia

ending lagunya bikin sedih liriknya kehidupan nyata excellent song

5. Stemming Stemming adalah tahapan memetakan dan menguraikan bentuk suatu kata menjadi bentuk kata dasarnya yang sesuai dengan struktur morfologi bahasa yang baik dan benar. Hal ini bertujuan untuk menghilangkan imbuhan pada masing-masing kata. Hasil akhir dari proses stemming adalah kata kerja dasar, kata benda tunggal dan kata sifat. Untuk stemming Bahasa Indonesia penulis menggunakan sebuah library stemmer yaitu Sastrawi stemmer yang didesain untuk dapat digunakan secara mudah dan sederhana (GitHub, 2017). Untuk stemming Bahasa Inggris, penulis menggunakan library Porter stemmer. Khusus untuk kasus ini akan dilakukan pengecekan dua kali yaitu pengecekan ke library Bahasa Inggris lalu pengecekan ke library Bahasa Indonesia. Proses stemming digambarkan seperti flowchart di bawah ini

Gambar 3. 4 Flowchart Stemming Data Bilingual Contoh proses stemming pada dua buah tweet yang

Gambar 3. 4 Flowchart Stemming Data Bilingual

Contoh proses stemming pada dua buah tweet yang telah melalui proses normalisasi, case folding, non-alphabetic removal dan stopwords removal ditunjukkan seperti snippet di bawah ini

Contoh tweet Bahasa Inggris-Indonesia

ending lagunya bikin sedih liriknya kehidupan nyata excellent song

Setelah dilakukan proses stemming maka tweet di atas akan menjadi

Hasil tweet Bahasa Inggris-Indonesia

ending lagu bikin sedih lirik hidup nyata excellent song

3.1.2.2 N-gram Text Representation

Data yang sudah melalui tahap preprocessing selanjutnya akan direpresentasikan menjadi atribut pada text representation. Metode yang dipilih penulis untuk mengolah data bilingual sama dengan data unilingual yaitu n-gram dengan jumlah n=1 (unigram). Unigram merupakan teknik dasar yang umum dilakukan karena memiliki representasi atribut paling lengkap. Unigram melakukan

pengelompokan pada setiap satu kata, dengan jumlah kemunculan kata akan menjadi atribut pada data. Data kemunculan kata kemudian akan digunakan menjadi input pada model training dan menjadi model untuk pengklasifikasian pada data test.

3.1.2.3 Klasifikasi Data

Proses klasifikasi data bilingual sama dengan proses klasifikasi data unilingual dan akan melalui dua tahapan yaitu tahap pelatihan terhadap data yang telah diketahui kategorinya dan tahap klasifikasi dokumen yang belum diketahui kategorinya. Klasifikasi akan dilakukan dengan menggunakan perhitungan Naïve Bayes.

3.1.2.4 Perhitungan Akurasi

Perhitungan akurasi untuk data bilingual juga akan dilakukan dengan menggunakan Confusion Matrix sama seperti perhitungan akurasi pada data unilingual.

3.1.3 Perbandingan Tingkat Akurasi

Setelah melalui proses preprocessing, N-gram representation, pengklasifikasian dan penghitungan akurasi, maka ketiga jenis dataset yang digunakan yaitu data tweet Bahasa Inggris, data tweet Bahasa Indonesia, dan data tweet Bahasa Inggris-Indonesia akan memiliki nilai akurasi yang berbeda-beda. Nilai akurasi ini kemudian akan dibandingkan dan dilihat nilai yang maksimum, untuk kemudian dapat ditarik kesimpulan apakah penggunaan bilingual lebih akurat daripada penggunaan unilingual atau sebaliknya.

3.2 Desain Percobaan

Pada bagian ini akan dijelaskan gambaran umum rancangan simulasi yang akan dikerjakan sebagai acuan untuk implementasi.

3.2.1 Gambaran Umum Simulasi

Simulasi yang akan dilakukan pada penelitian Tugas Akhir ini adalah rangkaian simulasi yang akan digunakan untuk pengklasifikasian sentimen. Simulasi ini sendiri akan dilakukan dengan pemrograman Python. Rangkaian simulasi yang akan dilakukan terdiri data collecting, data preprocessing, klasifikasi, membandingkan akurasi dan visualisasi data untuk menampilkan grafik perbandingan tingkat akurasi dari ketiga data set yang diuji. Dalam simulasi ini, tahapan terpenting yang akan dilakukan untuk dapat memperoleh persentasi akurasi dari sentimen yaitu tahap preprocessing, proses N-gram, tahap pemberian nilai dengan Naïve Bayes Classifier dan perhitungan akurasi dengan Confusion Matrix. Berikut ini merupakan flowchart yang menggambarkan proses-proses di atas.

Gambar 3. 5 Flowchart Gambaran Umum Simulasi Berikut ini merupakan skenario simulasi: 1. Sistem akan

Gambar 3. 5 Flowchart Gambaran Umum Simulasi

Berikut ini merupakan skenario simulasi:

1. Sistem akan menerima inputan berupa data test berupa flat file csv.

2. Data test akan masuk pada tahap preprocessing. Terdapat 5 tahap preprocessing, yaitu normalisasi teks, case folding, non-alphabet removal, stopword removal dan stemming. Hasil dari tahap preprocessing akan menghasilkan data baru yang akan digunakan sebagai masukan pada tahapan selanjutnya.

3. Data dari tahap preprocessing akan masuk ke dalam proses N-gram, yaitu pemotongan kata. N-gram yang penulis gunakan adalah unigram, yaitu pemotongan untuk satu kata.

4. Data yang dihasilkan dari tahap N-gram kemudian akan dihitung probabilitasnya dengan metode Naïve Bayes. Setelah itu akan dihitung distribusi probabilitas total tiap fitur atau kata. Tweet akan masuk dalam klasifikasi positif, negatif atau netral berdasarkan hasil perhitungan distribusi probabilitas total yang paling besar nilainya antara kategori positif,

negatif atau netral.

5. Setelah seluruh data diberi kategori, tahap selanjutnya adalah perhitungan akurasi dari hasil

klasifikasi. Hasil klasifikasi sentiment dari 3 jenis data tweet akan dibandingkan untuk kemudian dipresentasikan dalam grafik untuk melihat tingkat akurasi mana yang paling tinggi diantara ketiga dataset yang diuji.