BAB III LANDASAN TEORI
3.6 Text Mining
Dalam Damanik Ulina di tahun 2013, Menurut Ratna Maria text mining memiliki definisi menambang data yang berupa teks dimana sumber data biasanya didapatkan dari dokumen, yang tujuannya adalah mencari kata-kata yang dapat
21
mewakili isi dari dokumen sehingga dapat dilakukan analisa keterhubungan antara dokumen. Text mining meliputi ekstraksi dan penyimpanan berupa teks, preprosesing isi teks, pengumpulan data statistik serta pemberian indeks data dan analisa konten.
Text mining mengekstrak indeks numerik yang bermakna dari teks dan kemudian informasi yang terkandung dalam teks akan diakses dengan menggunakan berbagai algoritma data mining (statistik dan machine learning) (Miner, 2012).
Pada umumnya proses text mining mengambil data berupa teks yang memiliki memiliki beberapa karakteristik diantaranya adalah berdimensi yang tinggi, terdapat noise pada data, dan terdapat struktur teks yang tidak baik. Sebelum menentukan fitur-fitur yang mewakili, diperlukan tahap preprosesing yang dilakukan secara umum dalam text mining pada dokumen, yaitu case folding, tokenizing, filtering, dan stemming (Mooney, 2006).
Gambar 3.3. Proses Text Mining (Mooney, 2006) 3.5.1. Case Folding
Case folding adalah proses mengubah semua huruf kapital dalam dokumen menjadi huruf kecil meliputi huruf “a” sampai dengan “z” dan menghilangkan karakter selain huruf “a” sampai dengan “z” karena dianggap sebagai delimeter.
22
Gambar 3.4. Proses Case Folding (Sumber: Ulina, 2014) 3.5.2. Tokenizing dan Filtering
Tokenizing adalah proses pemotngan string input di dalam teks berdasarkan kata-kata yang menyusunnya. Tokenizing menghasilkan seluruh kata-kata yangtelah dipisahkan dalam suatu kalimat. Filtering adalah proses pengambilan kata-kata yang penting atau yang dibutuhkan untuk dianalisis.
Kemungkinan ada kata yang dihilangkan biasanya berupa kata penghubung dan kata-kata yang tidak diinginkan peneliti dalam teks tersebut. Hal ini bisa dilakukan menggunakan algoritma stoplist/stopword (membuang kata yang kurang penting sesuai dengan keinginan peneliti) atau wordlist (menyimpan kata-kata yang dianggap penting).
Gambar 3.5. Proses Tokenizing dan Filtering (Sumber: Ulina, 2014)
23 3.7 Data Training dan Data Testing
Data umumnya dibagi menjadi data training dan data testing. Data training digunakan oleh algoritma klasifikasi (misalnya Decision Tree, bayesian, Neural Network, SVM) untuk membentuk sebuah model klasifikasi. Model ini merupakan representasi pengetahuan yang akan digunakan untuk mengukur sejauh mana klasifikasi berhasil melakukan klasifikasi dengan benar. Karena itu, data yang ada pada data testing seharusnya tidak boleh ada pada data training sehingga dapat diketahui apakah model klasifikasi dapat melakukan klasifikasi dengan baik. Proporsi antara data training dan data testing tidak mengikat tetapi agar variasi dalam model tidak terlalu besar maka disarankan data training lebih besar dibandingkan data testing. Biasanya 2/3 dari total data dijadikan data training sedangkan sisanya dijadikan data testing.
Selain itu, ada pula penelitian yang menghasilkan keakuratan model klasifikasi optimum dengan proporsi 80:20 dan 90:10 untuk data training dan data testing (Paratu, 2003 dalam Estoatnowo, 2016).
3.8 Pembobotan Kata Term Frequency–Inverse Document Frequency
Pembobotan term diperlukan untuk mencari informasi dari koleksi dokumen yang bersifat beragam. Term weight perlu dilakukan pada setiap kata karena masing-masing kata memiliki tingkat kepentingan yang berbeda di dalam dokumen. Menurut Mandala (Fatah, 2016) dijelaskan bahwa term weighting atau pembobotan term sangat dipengaruhi oleh hal-hal berikut ini:
1. Term Frequency (TF) factor, yaitu faktor yang menentukan bobot term pada suatu dokumen berdasarkan jumlah kemunculannya dalam dokumen tersebut. Nilai jumlah kemunculan suatu kata (term frequency) diperhitungkan dalam pemberian bobot terhadap suatu kata. Semakin besar jumlah kemunculan suatu term (TF tinggi) dalam dokumen, semakin besar pula bobotnya dalam dokumen atau akan memberikan nilai kesesuian yang semakin besar.
2. Inverse Document Frequency (IDF) factor, yaitu pengurangan dominansi term yang sering muncul di berbagai dokumen. Hal ini diperlukan karena term yang
24
banyak muncul di berbagai dokumen, dapat dianggap sebagai term umum (common term) sehingga tidak penting nilainya. Sebaliknya faktor kejarangmunculan kata (term scarcity) dalam koleksi dokumen harus diperhatikan dalam pemberian bobot. Menurut Mandala, kata yang muncul pada sedikit dokumen harus dipandang sebagai kata yang lebih penting (uncommon tems) daripada kata yang muncul pada banyak dokumen. Pembobotan akan memperhitungkan faktor kebalikan frekuensi dokumen yang mengandung suatu kata (inverse document frequency). Hal ini merupakan usulan dari George Zipf.
Zipf mengamati bahwa frekuensi dari sesuatu cenderung kebalikan secara proposional dengan urutannya.
Menurut Defeng (Fattah, 2016), jenis formula yang akan digunakan untuk perhitungan term frequency (TF) yaitu TF murni (raw TF). TF menunjukkan seberapa sering sebuah kata muncul dalam suatu dokumen tertentu. Sedangkan IDF menjelaskan tentang seberapa penting arti sebuah kata dalam sebuah dokumen yang dirumuskan sebagai berikut:
𝐼𝐷𝐹 (𝐴) = 𝑙𝑜𝑔 𝐷
𝑑𝑓𝐴 (3.1)
Apabila nilai sama dengan maka akan didapatkan hasil nol untuk perhitungan IDF sehingga perlu ditambahkan nilai 1(+1) untuk rumus IDF menjadi
𝐼𝐷𝐹 (𝐴) = 𝑙𝑜𝑔 𝐷
DfA = Jumlah dokumen yang memuat kata A didalamnya
25 3.9 Support Vector Machine (SVM)
Support Vector Machine (SVM) merupakan sistem pembelajaran yang menggunakan ruang hipotesis berupa fungsi – fungsi linier dalam sebuah fitur yang berdimensi tinggi dan dilatih dengan menggunakan algoritma pembelajaran yang didasarkan pada teori optimasi. SVM pertama kali diperkanalkan pada tahun 1992 oleh Vapnik sebagai rangkaian dari beberapa konsep-konsep unggulan dalam bidang pattern recognition (Susilowati dkk, 2015). Selain itu SVM juga bertujuan memberikan nilai dari banyaknya kata yang muncul atau dapat mengklasifikasi komen positif dan negatif.
SVM merupakan salah satu metode klasifikasi dalam data mining. SVM juga dapat melakukan prediksi baik pada klasifikasi maupun regresi (Santosa, 2007 dalam Pusphita, 2014). Pada dasarnya SVM memiliki prinsip linear, akan tetapi kini SVM telah berkembang sehingga dapat bekerja pada masalah non-linear. Cara kerja SVM pada masalah non-linear adalah dengan memasukkan konsep kernel pada ruang berdimensi tinggi. Pada ruang yang berdimensi ini, nantinya akan dicari pemisah atau yang sering disebut hyperplane. Hyperplane dapat memaksimalkan jarak atau margin antara kelas data. Hyperplane terbaik antara kedua kelas dapat ditemukan dengan mengukur margin dan kemudian mencari titik maksimalnya. Usaha dalam mencari hyperplane yang terbaik sebagai pemisah kelas-kelas adalah inti dari proses pada metode SVM (Cristianai, 2000 dalam Assaffat, 2015).
3.8.1. SVM Data Terpisah Secara Linear
A B
Gambar 3.6. Visualisasi SVM berusaha menemukan hyperplane terbaik
26
(Sumber: Nugroho, Witarto, & Handoko, 2003)
Menurut Nugroho, Witarto, & Handoko (2003) dari IlmuKomputer.Com Konsep SVM merupakan usaha mencari hyperplane terbaik yang berfungsi sebagai pemisah dua buah class pada input space. Pada gambar A memperlihatkan beberapa pattern yang merupakan anggota dari dua buah class +1 dan –1. Pattern yang tergabung pada class –1 disimbolkan dengan warna merah (kotak), sedangkan pattern pada class +1 disimbolkan dengan warna kuning (lingkaran). Hyperplane pemisah terbaik antara kedua class dapat ditemukan dengan mengukur margin hyperplane tersebut dan mencari titik maksimalnya. Margin adalah jarak antara hyperplane tersebut dengan pattern terdekat dari masing-masing class. Pattern yang paling dekat disebut sebagai support vector. Garis solid pada gambar B menunjukkan hyperplane yang terbaik, yaitu yang terletak tepat pada tengah-tengah kedua class, sedangkan titik merah dan kuning yang berada dalam lingkaran hitam adalah support vector.
Usaha untuk mencari lokasi hyperplane ini merupakan inti dari proses pembelajaran pada SVM.
Langkah awal suatu algoritma SVM adalah pendefinisian persamaan suatu hyperplane pemisah yang dituliskan dengan:
𝑊. 𝑋 + 𝑏 = 0 (3.4)
W adalah suatu bobot vektor, yaitu W = {W1, W2,…,Wn}; n adalah jumlah atribut dan b merupakan suatu skalar yang disebut dengan bias. Jika berdasarkan pada atribut A1, A2 dengan permisalan tupel pelatihan X = (𝑥1, 𝑥2), 𝑥1 dan 𝑥2 merupakan nilai dari atribut A1 dan A2, dan jika b dianggap sebagai suatu bobot tambahan 𝑤0, maka persamaan suatu hyperplane pemisah dapat ditulis ulang sebagai berikut:
𝑤0+ 𝑤1𝑥1+ 𝑤2𝑥2 = 0 (3.5)
Setelah persamaan dapat didefinisikan, nilai 𝑥1 dan 𝑥2 dapat dimasukkan ke dalam persamaan untuk mencari bobot 𝑤1, 𝑤2, dan 𝑤0 atau b.
27
Gambar 3.7. Pemisahan Dua Kelas Data Dengan Margin Maksimum (Kurniawan & Supriyanto, 2013)
Pada Gambar 3.7, SVM menemukan hyperplane pemisah maksimum, yaitu hyperplane yang mempunyai jarak maksimum antara tupel pelatihan terdekat. Support vector ditunjukkan dengan batasan tebal pada titik tupel. Dengan demikian, setiap titik yang terletak di atas hyperplane pemisah memenuhi rumus:
𝑤0+ 𝑤1𝑥1+ 𝑤2𝑥2 > 0 (3.6) Sedangkan, titik yang terletak di bawah hyperplane pemisah memenuhi rumus:
𝑤0 + 𝑤1𝑥1+ 𝑤2𝑥2 < 0 (3.7) Melihat dua kondisi di atas, maka didapatkan dua persamaan hyperplane yaitu:
𝐻1: 𝑤0+ 𝑤1𝑥1+ 𝑤2𝑥2 ≥ 1 𝑢𝑛𝑡𝑢𝑘 𝑦1 = +1 (3.8) 𝐻2: 𝑤0+ 𝑤1𝑥1+ 𝑤2𝑥2 ≤ −1 𝑢𝑛𝑡𝑢𝑘 𝑦1 = −1 (3.9)
Perumusan model SVM menggunakan trik matematika yaitu formula Lagrangian.
Berdasarkan Lagrangian formulation, Maksimul Margin Hyperplane (MMH) dapat ditulis ulang sebagai suatu batas keputusan (decision boundary) yaitu:
𝑑(𝑋𝑇) = ∑𝑙𝑖=1𝛼𝑖𝑋𝑖𝑋𝑇+ 𝑏0 (3.10)
𝑦1 adalah label kelas dari support vector 𝑋𝑖. 𝑋𝑇 merupakan suatu tupel test. 𝛼𝑖 dan 𝑏0 adalah parameter numerik yang ditentukan secara otomatis oleh optimalisasi algoritma SVM dan l adalah jumlah vector support.
Dong ddk, 2007 mengatakan dalam Kurniawan & Supriyanto, 2013 bahwa model pembelajaran SVM memperkenalkan istilah penalti untuk klasifikasi kesalahan dalam
28
fungsi objektif dengan menggunakan parameter biaya [14]. Dengan adanya parameter biaya terhadap kesalahan, maka fungsi optimasi SVM menjadi:
min1
2|𝑊|2+ 𝐶 ∑𝑚𝑖=1𝜉𝑖𝑋𝑖𝑋𝑇+ 𝑏0 (3.11)
Li-mei, 2009 mengatakan dalam Kurniawan & Supriyanto 2013, 𝜉𝑖≥0,1≤m≤l merupakan variabel slack untuk memungkinkan kesalahan beberapa klasifikasi dan C yang disebut sebagai parameter biaya untuk mengontrol keseimbangan antara margin dan kesalahan klasifikasi. Dengan demikian pembatas pada dua kelas diberi suatu tambahan berupa variable slack 𝜉𝑖 sehingga margin pembatas menjadi:
𝑥𝑖𝑤 + 𝑏 ≥ +1 − 𝜉𝑖 𝑢𝑛𝑡𝑢𝑘 𝑦1 = +1 (3.12) 𝑥𝑖𝑤 + 𝑏 ≤ −1 + 𝜉𝑖 𝑢𝑛𝑡𝑢𝑘 𝑦1 = −1 (3.13)
Gambar 3.8. Kernel Mengubah Problem yang Tidak Liner Menjadi Linier Pada Gambar 3.8 memperlihatkan adanya permasalahan klasifikasi tidak dapat diselesaikan secara linier pada sampel data X. Pengubahan dari problem data non linier ke linier membutuhkan hitungan yang komplek. Maka diperlukan trik matematika lain yang dapat mempermudah perhitungan, dalam hal ini suatu penggunaan kernel mulai diterapkan. Terdapat 3 persamaan pada kernel SVM yang dapat digunakan yaitu polynomial, radial basis function (RBF) dan sigmoid.
Klasifikasi dengan metode SVM melibatkan data training dan data testing dimana masing-masing terdiri dari beberapa masukan data. Masing-masing masukan dalam data training berisi satu nilai target dan beberapa atribut.
29
Tujuan lainnya dari SVM adalah memproduksi sebuah model yang dapat memprediksi nilai target dari data pengujian yang hanya diberikan nilai atributnya (Endah & KN, 2012).
3.8.2. Kernel Trick dan Non-Linear Classification pada SVM
Pada umumnya masalah dalam domain dunia nyata (real world problem) jarang yang bersifat linear separable dan kebanyakan bersifat non linear. Untuk menyelesaikan masalah non linear, SVM dimodifikasi dengan memasukkan fungsi Kernel. Dalam non linear SVM, pertama-tama data x dipetakan oleh fungsi Φ(x) ke ruang vektor yang berdimensi lebih tinggi. Pada ruang vektor yang baru ini, hyperplane yang memisahkan kedua kelas tersebut dapat dikonstruksikan. Hal ini sejalan dengan teori Cover yang menyatakan “Jika suatu transformasi bersifat non linear dan dimensi dari feature space cukup tinggi, maka data pada input space dapat dipetakan ke feature space yang baru, dimana pattern-pattern tersebut pada probabilitas tinggi dapat dipisahkan secara linear” (Nugroho, Witarto, & Handoko, 2003).
Ilustrasi dari konsep tersebut dapat dilihat pada Gambar 3.9 diperlihatkan data pada kelas kuning dan data pada kelas merah yang berada pada input space berdimensi dua tidak dapat dipisahkan secara linear. Selanjutnya fungsi Φ memetakan tiap data pada input space tersebut ke ruang vektor baru yang berdimensi lebih tinggi (dimensi 3), dimana kedua kelas dapat dipisahkan secara linear oleh sebuah hyperplane. Notasi matematika dari mapping ini adalah sebagai berikut.
Input Space X High-dimensional Feature Space Φ(X)
Gambar 3.9. Visualisasi Fungsi Φ (Sumber: Nugroho, Witarto, & Handoko, 2003) Beberapa kernel yang umum dipakai pada SVM adalah:
30 1. Kernel Linear
Kernel trick linear cocok digunakan untuk menyelesaikan masalah klasifikasi, dimana dataset pelatihan dalam bentuk linear. Kernel trick ini dinyatakan dalam persamaan 3.14 (A.Muis & Affandes, 2015).
K(𝑥⃗⃗⃗ , 𝑥𝑖 ⃗⃗⃗ ) = (𝑥𝑗 ⃗⃗⃗ )𝑖 𝑝x (3.14) 2. Kernel Polynomial
Kernel trick polynomial cocok digunakan untuk menyelesaikan masalah klasifikasi, dimana dataset pelatihan sudah normal. Kernel trick ini dinyatakan dalam persamaan 3.15.
K(𝑥⃗⃗⃗ , 𝑥𝑖 ⃗⃗⃗ ) = (𝑥𝑗 ⃗⃗⃗ , 𝑥𝑖 ⃗⃗⃗⃗ + 1)𝑗 𝑝 (3.15) 3. Kernel Radial Basis Function (RBF) atau Gaussian
Kernel trick radial basis function atau gaussian merupakan kernel yang paling banyak digunakan untuk menyelesaikan masalah klasifikasi untuk dataset yang tidak terpisah secara linear, dikarenakan akurasi pelatihan dan akurasi prediksi yang sangat baik pada kernel ini, dimana kernel radial basis function dinyatakan dalam persamaan 3.16.
K(𝑥⃗⃗⃗ , 𝑥𝑖 ⃗⃗⃗ ) = exp (−ǁ𝑥𝑗 ⃗⃗⃗ - 𝑥𝑖 ⃗⃗⃗⃗ ǁ𝑗 2) Y (3.16) 4. Kernel Sigmoid
Kernel sigmoid merupakan kernel trick SVM yang merupakan pengembangan dari jaringan saraf tiruan, dimana kernel ini dinyatakan dengan persamaan 3.17.
K(𝑥⃗⃗⃗ , 𝑥𝑖 ⃗⃗⃗ ) = tanh(𝑎𝑥𝑗 ⃗⃗⃗⃗⃗⃗ . 𝑥𝑖 ⃗⃗⃗⃗ + β) 𝑗 (3.17) Kernel trick memberikan beberapa kemudahan, karena dalam proses pembelajaran SVM, untuk menentukan support vector, pengguna hanya cukup mengetahui fungsi kernel trick yang dipakai, tanpa perlu mengetahui wujud dari fungsi non-linier. Dari keseluruhan kernel trick tersebut, kernel trick radial basis function merupakan kernel trick yang memberikan hasil terbaik pada proses klasifikasi khususnya untuk data yang tidak bisa dipisahkan secara linear.
Selanjutnya hasil klasifikasi dari data 𝑥 diperoleh dari persamaan berikut :
31
𝑓(𝑥) = ∑𝑛𝑖=1,𝑥⃗⃗⃗ ,∈𝑆𝑉𝑖 𝛼𝑖𝑦𝑖𝐾(𝑥⃗⃗⃗ , 𝑥𝑖 ⃗⃗⃗ )+b 𝑗 (3.18) 3.10 Pattern Matching
Pencocokan Pola atau Pattern Matching adalah suatu metode yang digunakan untuk mencocokkan suatu pola tertentu (kumpulan huruf) dengan suatu kumpulan kata (teks) atau string. Pada bidang sains komputer metode pattern matching sangat banyak digunakan antara lain Editor Teks, Mesin Pencari Web, Analisis Gambar dan lain-lain.
String dapat kita asumsikan sebagai kumpulan dari beberapa karakter yang membentuk suatu kesatuan. (Budiasa, 2009).
3.11 Graphmaster Pattern Matching
Graphmaster adalah suatu metode untuk menyimpan kategori stimulus response.
Untuk mencapai efisiensi dalam pencocokan pola dan penggunaan memori dapat menggunakan metode Graphmaster, dimana semua tag kategori akan disimpan dalam bentuk pohon bermula dari node root “*” sampai ke path tertentu dari suatu pattern (alicebot.org, 2008).
Graphmaster berbentuk sebuah pohon, saat klien dari bot (agen) memasukkan teks sebagai stimulus maka Graphmaster akan mencari kategori untuk mencocokkkannya ke dalam fungsi <pattern> sesuai dengan konteks kalimat, kemudian menghasilkan keluaran sebagai responnya.
Graphmaster matching (pencocokan graphmaster) adalah pencocokan yang bersifat backtrack yaitu menggunakan strategi pencarian mendalam depthfirst search.
Depth-first search merupakan salah satu pencarian buta (blind search). Pencarian ini dilakukan dari node awal secara mendalam hingga yang paling akhir atau sampai ditemukan. Dengan kata lain, simpul cabang atau anak yang terlebih dahulu dikujungi.
Kelebihan Depth-first search yaitu (Desiani dan Arhami, 2006):
1. Cepat mencapai kedalaman ruang pencarian.
2. Lebih efisien untuk ruang pencarian dengan banyak cabang karena tak perlu mengevaluasi semua simpul pada pada suatu level tertentu pada daftar open.
32
3. Memerlukan memori yang lebih kecil karena hanya node-node pada lintasan yang aktif saja yang akan disimpan.
Kelemahan Depth-first search yaitu (Desiani dan Arhami, 2006):
1. Memungkinkan tidak ditemukannya tujuan yang diharapkan.
2. Hanya akan mendapatkan satu solusi pada setiap pencarian.
3.2.1. Algoritma Graphmaster Pattern Matching
Algoritma Graphmaster Pattern Matching yaitu (www.alicebot.org):
1.2.Diberikan:
a. Sebuah masukan awal dengan kata “X” dan b. sebuah graph nodemapper:
1.3.Apakah nodemapper memiliki kata kunci “*” ?Jika ya, cari subgraph di anak node yang berhubungan dengan “*”. Coba semua kata yang tersisa dari masukan yang mengikuti “X” untuk melihat jika ada salah satu yang cocok. Jika tidak ditemukan yang cocok, coba:
1.4.Apakah nodemapper memiliki kata kunci “X” ? Jika ya cari subgraph di anak node yang berhubungan dengan “X”, menggunakan masukan terakhir (akhiran dari masukan dengan “X” dihapus). Jika tidak ditemukan data yang cocok, coba:
1.5.Apakah nodemapper memiliki kata kunci “*” ? jika ya, cari subgraph di anak node yang berhubungan dengan “*”. Coba semua sisa akhiran dari masukan yang mengikuti “X” untuk mencari jika ada yang cocok. Jika tidak ditemukan data yang cocok, kembali ke graph atas induk node, dan ambil “X” jadikan sebagai awal masukan.
1.6.Jika masukan adalah kosong (tidak ada lagi kata) dan nodemapper memiliki kata kunci jawaban, data yang cocok ditemukan. Pencarian berhenti dan kembalikan hasil data yang cocok.
Jika nodemapper memiliki kata kunci “*” dan menunjukkan ke sebuah node, algoritma digaransikan untuk menemukan satu yang cocok. Ketentuan graphmaster pattern matching antara lain:
33
1. Di setiap node, “*” memiliki prioritas utama, sebuah kata atomic yang cocok adalah prioritas kedua dan sebuah “*” yang cocok adalah prioritas terakhir.
2. Pattern tidak diurutkan secara alfabet atau berdasarkan sistem komplit yang lain, hanya sebagian diurutkan agar “*” sampai sebelum kata yang lain dan “*” setelah kata yang lain.
3. Pencocokan adalah kata per kata bukan kategori per kategori.
4. Algoritma pencocokan ini adalah sebuah versi dari DFS (Depth First Search), juga dikenal sebagai backtracking.
3.12 Confusion Matrix
Confusion Matrix (Kohavi dan Provost, 1998) berisi informasi tentang klasifikasi aktual dan yang telah diprediksi yang dilakukan oleh sistem klasifikasi.
Kinerja sistem tersebut umumnya dievaluasi dengan menggunakan data dalam matriks.
Tabel berikut menunjukkan Confusion Matrix untuk klasifikasi dua kelas.
Tabel 3.1. Tabel Confusion Matrix
True positives adalah jumlah record positif yang diklasifikasikan sebagai positif, false positives adalah jumlah record positif yang diklasifikasikan sebagai negatif, false negatives adalah jumlah record negatif yang diklasifikasikan sebagai positif, true negatives adalah jumlah record negatif yang diklasifikasikan sebagai negatif. Setiap kolom dari Confusion Matrix merupakan contoh di kelas yang telah diprediksi, sedangkan setiap baris mewakili contoh di kelas yang sebenarnya. Setelah didapat true positives, false positives, true negatives dan false negatives, selanjutnya
34
hitung nilai precision dan akurasinya. Precision adalah ukuran terhadap suatu kelas yang telah diprediksi. Berikut Rumus dari precision dan akurasi.
Akurasi = TP+TN
TP+FP+TN+FN (3.19)
Keterangan :
TP : Jumlah True Positive FP : Jumlah False Positive TN : Jumlah True Negative FN : Jumlah False Positive 3.13 JavaScirpt
JavaScript adalah bahasa pemrograman tingkat tinggi dan dinamis. JavaScript populer di internet dan dapat bekerja di sebagian besar penjelajah web populer seperti Google Chrome, Internet Explorer (IE), Mozilla Firefox, Netscape dan Opera. Kode JavaScript dapat disisipkan dalam halaman web menggunakan tag SCRIPT. JavaScript merupakan salah satu teknologi inti World Wide Web selain HTML dan CSS.
JavaScript membantu membuat halaman web interaktif dan merupakan bagian aplikasi web yang esensial. Awalnya hanya diimplementasi sebagai client-side dalam penjelajah web, kini engine JavaScript disisipkan ke dalam perangkat lunak lain seperti dalam server-side dalam server web dan basis data, dalam program non web seperti perangkat lunak pengolah kata dan pembaca PDF, dan sebagai runtime environment yang memungkinkan penggunaan JavaScript untuk membuat aplikasi desktop maupun mobile (Flanagan, 2011)
3.14 Discord
Discord adalah aplikasi baru yang menawarkan fitur sejenis dengan desain yang simpel, praktis, mudah digunakan, menarik, dan dapat diakses dari berbagai gadget. Di Discord tidak harus memiliki account untuk dapat bergabung ke main channel, tergantung dari apakah main channel tersebut apakah mengijinkan orang yang tidak memiliki account untuk bergabung atau tidak. Untuk dapat masuk ke dalam channel
35
cukup membuka link Instant Invite yang dapat digenerate oleh pemilik channel atau orang yang berada di channel tersebut.Kita juga bisa mengatur untuk berapa lama link tersebut berlaku, berapa kali link tersebut dapat dibuka, apakah link tersebut hanya untuk member sementara atau tidak, atau apakah link tersebut ingin dibuat lebih simpel atau tidak. (Raihan & Putri, 2018)
Menurut (Raihan & Putri, 2018) Aplikasi ini gratis untuk digunakan. Kita pun bisa membuat server sendiri untuk voice chat dengan teman, saudara atau bahkan pacar. Sebuah gambar dari situs resminya yang membandingkan aplikasi voice chat ini dengan aplikasi voice chat lainnya seperti team speak, raidcall dan skype. Bahkan aplikasi ini tersedia untuk Adroid dan Iphone secara free. Dan aplikasi ini aman karena menggunakan sistemEncryted. Jika ingin menggunakan aplikasi ini untuk bermain game, tidak berpengaruh terhadap FPS game saat memainkannya. Karena pada dasarnya pembuatan aplikasi ini digunakan untuk bermain game. Salah satu kendala yang dimiliki oleh Raid Call adalah server yang terlalu jauh menyebabkan delay pada suara, tetapi Discord memiliki server di Singapore yang dekat dengan Indonesia, dengan ping rendah, membuat Discord lancar untuk digunakan. Ada dua jenis channel di dalam Discord, yaitu Text Channels dan Voice Channels. Text Channels digunakan untuk text chat, kita bisa berpindah antar Text Channels dengan cepat. Jika ingin menggunakan halnya seperti LINE Messenger, Discord juga memiliki fitur yang serupa yang membuat berada di text terakhir baca (Semua unread messages akan berada dibawah ketika masuk ke Text Channel tersebut). Selain itu kita juga dapat mengedit atau menghapus chat yang sudah di tulis, tergantung dari settingan channel tersebut. Sedangkan Voice Channel, hanya dapat bergabung ke satu saja Voice Channel, dan tetap akan tersambung walaupun berada di Main Channel lain. Kita juga bisa melihat grafik ping untuk Voice Connection secara langsung, dan juga ping rata-rata. Di dalam Discord juga memiliki setting yang jika diaktifkan dapat memindahkan user yang AFK (user yang tidak aktif) di suatu Voice Channel ke Channel tertentu.
36
BAB IV
METODOLOGI PENELITIAN
4.1 Analisa Sistem 4.1.1. Deskripsi Sistem
Perancangan ChatBot menggunakan Metode NLP memakai Bahasa program JavaScript pada platform online STEAM berbasis media social discord. Sistem Chatbot ini dibuat untuk memudahkan para pemain game yang menggunakan social media discord mendapatkan informasi seputar penjualan game pada platform steam.
Dalam hal ini chatbot dikhususkan untuk informasi penjualan game pada platform STEAM seperti nama, harga, genre, rating, jumlah pembeli/pemain, event, dan
Dalam hal ini chatbot dikhususkan untuk informasi penjualan game pada platform STEAM seperti nama, harga, genre, rating, jumlah pembeli/pemain, event, dan