Kamis, 10 Mei 2018

Apa itu Sentimen Analisis


Sentimen analysis atau disebut juga opinion mining biasanya diterapkan  pada ulasan, tanggapan survei, media online dan sosial. Tujuannya adalah untuk menilai sikap atau reaksi pembaca, pembicara, pemakai aplikasi terhadap suatu produk atau berita atau dokumen. Intinya untuk menilai reaksi pelanggan apakah itu baik, buruk, atau netral.

Pengklasifikasian Sentiment Analysis
-          Machine Learning
Pendekatan ini memakai teknik machine learning dan berbagai fitur untuk membuat pengklasifikasi yang dapat mengidentifikasi teks yang mengekspresikan suatu sentimen. Metode deep learning sekarang sedang populer karena cocok untuk mempelajari data
-          Lexicon-based
Metode ini menggunakan berbagai macam kata yang dianotasikan oleh skor untuk menentukan penilaian secara umum dari konten yang diberikan. Aset terbaik dari teknik ini adalah teknik ini tidak membutuhkan data untuk latihan, sementara kelemahannya adalah banyak kata dan ekspresi yang tidak dimasukkan dalam sentimen lexicon
-          Hybrid
Gabungan dari machine learning dan lexicon-base. Walaupun jarang digunakan metode ini biasanya menghasilkan hasil yang lebih menjanjikan dibandingkan kedua metode diatas.
            
Untuk contoh kasus kita akan mencoba program untuk mengumpulkan kata-kata yang sering digunakan pada komentar facebook yang berbau SARA tapi belum diklasifikasikan apakah kalimat yang dibentuk termasuk positif atau negatif. Caranya:

Pertama kita perlu mempersiapkan beberapa hal:
o   R dan Rstudio
Kita bisa mendownload R dan R studio di https://cran.r-project.org/bin/windows/base/ dan https://www.rstudio.com/products/rstudio/download/
o   Akun facebook developer
Kita dapat membuat akun facebook developer di https://developers.facebook.com/
o   Token Akses dari Penjelajah API Graf
Kita bisa mendapatkan token akses dari API Graph Explorer dengan cara pada  https://developers.facebook.com/ pilih Alat & Dukungan, pilih Penjelajah API Graf kemudian akan muncul tampilan seperti ini



Pilih dapatkan token dan izinnya dipilih semua dan pilih dapatkan token akses




Kemudian kita perlu simpan token akses yang dihasilkan (*Token Akses ini hanya berlaku sampai 2 jam, lebih dari itu perlu membuatnya lagi.)


Kemudian kita jalankan Rstudio dan ketikkan
install.packages("devtools")
install.packages("plyr")
install.packages("stringr")
install.packages("ggplot2")# Install
install.packages("tm")  # for text mining
install.packages("SnowballC") # for text stemming
install.packages("wordcloud") # word-cloud generator
install.packages("RColorBrewer") # color palettes
Perintah ini berguna untuk menginstall packages yang kita butuhkan untuk sentiment analysis nanti.
          Ketikkan
library("tm")
library("SnowballC")
library("wordcloud")
library("RColorBrewer")
library(plyr)
library(stringr)
library(ggplot2)
library(devtools)
Perintah ini berguna memakai package yang tadi sudah didownload.
        Masukkan perintah ini
            install_github("pablobarbera/Rfacebook/Rfacebook")
            library(Rfacebook)
         Perintah ini berguna untuk menginstall package berdasarkan link github dan memakai package tersebut.

Untuk memakai API Facebook kita perlu memasukkan token akses yang tadi sudah kita persiapkan dengan perintah
            fb_auth = 'token akses' 
     Pada twitter kita bisa mengambil post orang dengan bebas, tapi pada facebook sekarang sudah tidak bisa, maka kita perlu mencari halaman pada facebook untuk dilihat postingannya dengan perintah
            fb_page <- getPage(page="TirtoID", token=fb_auth, n = 150,  feed = FALSE,
                   reactions = TRUE,  verbose = TRUE, api = "v2.9")
     Setelah itu kita perlu melihat hasil yang didapatkan dengan perintah
            View(fb_page)              

  
Setelah melihat hasilnya, kita perlu memilih postingan mana yang akan diambil komentarnya dan mengubahnya menjadi dataframe serta melihat hasilnya kembali. Perintahnya
       fb_post <- getPost(post = '1515768312081946_2037957289863043', n=139, token=fb_auth,api = "v2.9")
fb_post_df <- as.data.frame(fb_post[2])
View(fb_post_df)


Setelah itu komen yang kita dapatkan masih belum bersih dari tanda baca, kita perlu membersihkannya dan melihat hasilnya lagi dengan perintah
comments_data <- sapply(fb_post_df$comments.message,function(row) iconv(row, "latin1", "ASCII", sub=""))
comments_data <- gsub("@\\w+", "", comments_data)
comments_data <- gsub("#\\w+", '', comments_data)
comments_data <- gsub("RT\\w+", "", comments_data)
comments_data <- gsub("http.*", "", comments_data)
comments_data <- gsub("RT", "", comments_data)
comments_data <- sub("([.-])|[[:punct:]]", "\\1", comments_data)
comments_data <- sub("(['])|[[:punct:]]", "\\1", comments_data)
View(comments_data)



Kemudian data yang sudah bersih tadi dapat kita analisis dan buat gambar. Caranya kita perlu masukkan data yang sudah bersih tadi ke corpus, periksa isi dokumen tersebut dan mengubah teks dalam data tersebut menjadi huruf kecil, menghapus angka, dan yang lainnya dengan perintah.
         docs <- Corpus(VectorSource(comments_data))
         inspect(docs)
         # Convert the text to lower case
         docs <- tm_map(docs, content_transformer(tolower))
         # Remove numbers
         docs <- tm_map(docs, removeNumbers)
         # Remove english common stopwords
         docs <- tm_map(docs, removeWords, stopwords("english"))
         # Remove your own stop word
         # specify your stopwords as a character vector
         docs <- tm_map(docs, removeWords, c("blabla1", "blabla2"))
         # Remove punctuations
         docs <- tm_map(docs, removePunctuation)
         # Eliminate extra white spaces
         docs <- tm_map(docs, stripWhitespace)
 
     Kemudian kita menganalisa kata-kata yang sering muncul pada data tersebut dengan perintah
        dtm <- TermDocumentMatrix(docs)
        m <- as.matrix(dtm)
        v <- sort(rowSums(m),decreasing=TRUE)
        d <- data.frame(word = names(v),freq=v)
        head(d, 10)



Kita dapat membuat word cloud dari data yang sudah dianalisa tersebut dengan perintah
         set.seed(1234)
         wordcloud(words = d$word, freq = d$freq, min.freq = 1,
         max.words=200, random.order=FALSE, rot.per=0.35,
         colors=brewer.pal(8, "Dark2"))



Wordcloud diatas hanya untuk mengumpulkan kata-kata yang sering digunakan yang mana, belum mengelompokkan apakah kalimat pada kolom komentar yang menggunakan kata-kata diatas tergolong positif atau negatif.





Sabtu, 07 April 2018

Komputasi Kuantum

Beberapa orang mengartikan komputasi kuantum sebagai algoritma yang digunakan untuk menemukan suatu cara dalam memecahkan masalah dari sebuah data input.

Pada komputasi kuantum keunggulannya adalah operasi yang dilakukan bisa jauh lebih cepat dan hanya menggunakan energi yang lebih sedikit daripada komputer klasik.

Yang dimaksud dengan komputer kuantum adalah perangkat yang digunakan untuk melakukan komputasi kuantum. Jenis komputer yang satu ini sangat berbeda dengan komputer elektronik digital biner biasa yang menggunakan transistor.

Komputer kuantum adalah alat hitung yang menggunakan mekanika kuantum seperti superposisi dan keterkaitan, yang digunakan untuk pengoperasian data. Perhitungan jumlah data pada komputasi klasik dihitung dengan bit, sedangkan perhitungan jumlah data pada komputer kuantum dilakukan dengan qubit. 

Qubit

Komputasi kuantum menggunakan penyimpanan dalam bit kuantum atau disingkat dengan ‘qubit’ sebagai ganti bit pada komputer klasik. Ini merupakan sistem kuantum dengan dua bagian.

Namun, tidak seperti biasanya, mereka dapat menyimpan lebih banyak informasi daripada komputer klasik yang hanya eksis pada diskrit 1 atau 0. Hal ini dikarenakan mereka dapat berada di superposisi dari nilai-nilai tersebut.

Sebuah qbit atau qubit bisa berada di bagian-bagian yang diberi label : | 0} dan | 1}, tetapi bisa juga dalam superposisi dari bagian berikut ini, a | 0} + b | 1}, di mana a dan b adalah bilangan kompleks. Jika kita berpikir tentang keadaan qbit sebagai vektor, maka superposisi dari status hanyalah penjumlahan vektor.

Untuk setiap qbit tambahan yang anda dapatkan, anda dapat menyimpan dua kali lebih banyak angka. Misalnya, dengan 3 qbits, anda mendapatkan koefisien untuk | 000}, | 001}, | 010}, | 011}, | 100}, | 101}, | 110} dan | 111}.

Perhitungan dalam komputasi kuantum ini dilakukan dengan transformasi unit pada keadaan qbits. Dikombinasikan dengan prinsip superposisi, hal ini menciptakan kemungkinan yang tidak tersedia untuk perhitungan tangan (tidak bisa dihitung dengan tangan).

Sebuah qubit dapat dianggap seperti bola imajiner. Sedangkan bit klasik bisa berada di dua bagian, tepatnya di satu dari dua kutub bola, dimana sebuah qubit menjadi titik pada bola tersebut. Hal ini berarti, komputer yang menggunakan qubit ini dapat menyimpan informasi lebih banyak, dengan menggunakan lebih sedikit energi daripada komputer klasik.

Algoritma Shor

Algoritma yang ditemukan oleh Peter Shor pada tahun 1995. Dengan menggunakan algoritma ini, sebuah komputer kuantum dapat memecahkan sebuah kode rahasia yang saat ini secara umum digunakan untuk mengamankan pengiriman data. Kode yang disebut kode RSA ini, jika disandikan melalui kode RSA, data yang dikirimkan akan aman karena kode RSA tidak dapat dipecahkan dalam waktu yang singkat. Selain itu, pemecahan kode RSA membutuhkan kerja ribuan komputer secara paralel sehingga kerja pemecahan ini tidaklah efektif.

Gerbang Kuantum

Gerbang kuantum atau gerbang logika kuantum adalah rangkaian kuantum dasar yang beroperasi pada sejumlah kecil qubit . Mereka adalah analog untuk komputer kuantum ke gerbang logika klasik untuk komputer digital konvensional. Logika logika kuantum bisa dibalik , tidak seperti banyak gerbang logika klasik. Beberapa gerbang logika klasik universal, seperti gerbang Toffoli , memberikan reversibilitas dan dapat dipetakan secara langsung ke gerbang logika kuantum. Gerbang logika kuantum diwakili oleh matriks-matriks kesatuan .

Gerbang kuantum yang paling umum beroperasi pada ruang satu atau dua qubit. Ini berarti bahwa sebagai matriks, gerbang kuantum dapat digambarkan dengan matriks 2 x 2 atau 4 x 4 dengan baris ortonormal .

Gerbang kuantum berfungsi mengoperasikan bit yang terdiri dari 0 dan 1 menjadi qubits, dengan demikian Gerbang Kuantum mempercepat banyaknya perhitungan bit pada waktu bersamaan.

Beberapa contoh gerbang kuantum:
  1. Gerbang Hadamard

    Gerbang ini beroperasi dengan qubit tunggal

                                                   
  2. Gerbang Fase ShifterGates di kelas ini beroperasi dengan qubit tunggal.
  3. Dan lain-lain

Penerapan Komputasi Kuantum
Berikut adalah beberapa penerapan komputasi kuantum:

  1. Nippon Telegraph and Telephone Company atau biasa dikenal sebagai NTT di Jepang membuka sistem komputasi kuantum milik mereka untuk digunakan secara publik melalui jaringan internet sehingga siapapun, dimanapun dapat memperoleh akses ke teknologi ini.
  2. D-Wave (salah satu vendor komputer kuantum) baru-baru ini dikabarkan mulai mengirim komputer kuantumnya yaitu D-Wave2000Q, yang berkapasitas dua ribu quantum bit (qubit) kepada konsumennya. Selain menjual produk secara fisik, D-Wave juga dikabarkan akan menyediakan layanan komputasi kuantum via cloud. 
  3. Intel menunjukkan kepemimpinan di bidang quantum computing dengan memamerkan test chip 17-qubit yang didesain dan dikembangkan bersama QuTech, mitra penelitian Intel di Belanda.

Sumber:

Senin, 02 April 2018

Tugas Softskill Jurnal Cloud Computing

Tugas Pengantar Komputasi Modern
Jurnal Cloud Computing
Raka Gilang Prakarsa 58414847 4IA10
Erico Stanley H.J 53414603 4IA10 

JUDUL: Cloud Computing : Solusi ICT ?
oleh: Ahmad Ashari, Herri Setiawan,

Rangkuman:

Salah satu topik terhangat Information and Communication Technology (Teknologi Informasi dan Komunikasi) saat ini adalah cloud computing. Teknologi cloud computing dihadirkan sebagai upaya untuk memungkinkan akses sumber daya dan aplikasi dari mana saja melalui jaringan Internet, sehingga keterbatasan pemanfaatan infrastruktur ICT yang sebelumnya ada dapat diatasi. NIST mendefiniskan Clud Computing adalah sebuah model untuk kenyamanan, akses jaringan on-demand untuk menyatukan pengaturan konfigurasi sumber daya komputasi (seperti, jaringan, server, media penyimpanan, aplikasi, dan layanan) yang dapat dengan cepat ditetapkan dan dirilis dengan usaha manajemen yang minimal atau interaksi dengan penyedia layanan. Pembahasan paper dimulai dengan uraian dari beberapa pendapat dan penelitian terdahulu tentang teknologi cloud computing, selanjutnya ditinjau kelebihan dan kekurangan yang dapat ditimbulkan atas implementasi cloud computing. Pembahasan diakhiri dengan kesimpulan apakah cloud computing merupakan solusi ICT ? dan saran yang dapat dijadikan bahan pertimbangan penguna dalam implementasi cloud computing 

JUDUL: PENERAPAN TEKNOLOGI CLOUD COMPUTING DI UNIVERSITAS Studi Kasus: Fakultas Teknologi Informasi UKDW
https://media.neliti.com/.../77964-ID-penerapan-teknologi-cloud-computing-di-u.pdf
oleh: Erick Kurniawan

Rangkuman:

Teknologi Cloud Computing adalah paradigma baru dalam penyampaian layanan komputasi. Cloud Computing memiliki banyak kelebihan dibandingkan dengan sistem konvensional. Artikel ini membahas tentang arsitektur cloud computing secara umum dan beberapa contoh penerapan layanan cloud computing beserta manfaatnya di lingkungan universitas. Studi kasus yang diambil adalah penerapan layanan cloud computing di Fakultas Teknologi Informasi UKDW. 

Hasil Perbandingan:
           Pada jurnal pertama dibahas mengenai profesional yang dituntut untuk meningkatkan keahlian yang dimiliki atas penerapan teknologi cloud computing. Dengan kemampuan dan keterampilan yang dimiliki, para profesional dapat menangkap peluang baru yang dapat digunakan sebagai kesempatan untuk memperluas kompetensi mereka. Perusahaan perlu mengembangkan pengetahuan dan pemahaman tenaga ICT yang mereka miliki, sehingga nantinya transisi ke teknologi berbasis cloud akan yang diterapkan dapat berhasil dan menguntungkan. Pada jurnal kedua membahas mengenai arsitektur cloud computing dan beberapa contoh penerapan penggunaan layanan tersebut khususnya di bidang pendidikan. Beberapa contoh yang disajikan dan studi kasus penerapan layanan cloud pada FTI UKDW menunjukan banyak manfaat yang diperoleh dalam penggunaan layanan cloud computing di lingkungan universitas. Persamaan dari kedua jurnal diatas adalah tekonologi cloud computing merupakan solusi dari Information and Communication Technology baik di sebuah perusahaan maupun disebuah universitas

Selasa, 20 Maret 2018

Mencoba buat sentiment analysis dengan RStudio

Untuk tugas deep learning kami kelompok 4 yang beranggotakan Erico, Nalom, M. Tomi dan Melta akan mencoba buat program Sentiment Analysis dan yang akan dianalisa adalah komentar SARA di facebook. Caranya:

Pertama kita perlu mempersiapkan beberapa hal:
o   R dan Rstudio
Kita bisa mendownload R dan R studio di https://cran.r-project.org/bin/windows/base/ dan https://www.rstudio.com/products/rstudio/download/
o   Akun facebook developer
Kita dapat membuat akun facebook developer di https://developers.facebook.com/
o   Token Akses dari Penjelajah API Graf
Kita bisa mendapatkan token akses dari API Graph Explorer dengan cara pada  https://developers.facebook.com/ pilih Alat & Dukungan, pilih Penjelajah API Graf kemudian akan muncul tampilan seperti ini


Pilih dapatkan token dan izinnya dipilih semua dan pilih dapatkan token akses




Kemudian kita perlu simpan token akses yang dihasilkan (*Token Akses ini hanya berlaku sampai 2 jam, lebih dari itu perlu membuatnya lagi.)

Kemudian kita jalankan Rstudio dan ketikkan
install.packages("devtools")
install.packages("plyr")
install.packages("stringr")
install.packages("ggplot2")# Install
install.packages("tm")  # for text mining
install.packages("SnowballC") # for text stemming
install.packages("wordcloud") # word-cloud generator
install.packages("RColorBrewer") # color palettes
Perintah ini berguna untuk menginstall packages yang kita butuhkan untuk sentiment analysis nanti.
          Ketikkan
library("tm")
library("SnowballC")
library("wordcloud")
library("RColorBrewer")
library(plyr)
library(stringr)
library(ggplot2)
library(devtools)
Perintah ini berguna memakai package yang tadi sudah didownload.
        Masukkan perintah ini
            install_github("pablobarbera/Rfacebook/Rfacebook")
            library(Rfacebook)
         Perintah ini berguna untuk menginstall package berdasarkan link github dan memakai package tersebut.

Untuk memakai API Facebook kita perlu memasukkan token akses yang tadi sudah kita persiapkan dengan perintah
            fb_auth = 'token akses' 
     Pada twitter kita bisa mengambil post orang dengan bebas, tapi pada facebook sekarang sudah tidak bisa, maka kita perlu mencari halaman pada facebook untuk dilihat postingannya dengan perintah
            fb_page <- getPage(page="TirtoID", token=fb_auth, n = 150,  feed = FALSE,
                   reactions = TRUE,  verbose = TRUE, api = "v2.9")
     Setelah itu kita perlu melihat hasil yang didapatkan dengan perintah
            View(fb_page)              
  
Setelah melihat hasilnya, kita perlu memilih postingan mana yang akan diambil komentarnya dan mengubahnya menjadi dataframe serta melihat hasilnya kembali. Perintahnya
       fb_post <- getPost(post = '1515768312081946_2037957289863043', n=139, token=fb_auth,api = "v2.9")
fb_post_df <- as.data.frame(fb_post[2])
View(fb_post_df)

Setelah itu komen yang kita dapatkan masih belum bersih dari tanda baca, kita perlu membersihkannya dan melihat hasilnya lagi dengan perintah
comments_data <- sapply(fb_post_df$comments.message,function(row) iconv(row, "latin1", "ASCII", sub=""))
comments_data <- gsub("@\\w+", "", comments_data)
comments_data <- gsub("#\\w+", '', comments_data)
comments_data <- gsub("RT\\w+", "", comments_data)
comments_data <- gsub("http.*", "", comments_data)
comments_data <- gsub("RT", "", comments_data)
comments_data <- sub("([.-])|[[:punct:]]", "\\1", comments_data)
comments_data <- sub("(['])|[[:punct:]]", "\\1", comments_data)
View(comments_data)


Kemudian data yang sudah bersih tadi dapat kita analisis dan buat gambar. Caranya kita perlu masukkan data yang sudah bersih tadi ke corpus, periksa isi dokumen tersebut dan mengubah teks dalam data tersebut menjadi huruf kecil, menghapus angka, dan yang lainnya dengan perintah.
         docs <- Corpus(VectorSource(comments_data))
         inspect(docs)
         # Convert the text to lower case
         docs <- tm_map(docs, content_transformer(tolower))
         # Remove numbers
         docs <- tm_map(docs, removeNumbers)
         # Remove english common stopwords
         docs <- tm_map(docs, removeWords, stopwords("english"))
         # Remove your own stop word
         # specify your stopwords as a character vector
         docs <- tm_map(docs, removeWords, c("blabla1", "blabla2"))
         # Remove punctuations
         docs <- tm_map(docs, removePunctuation)
         # Eliminate extra white spaces
         docs <- tm_map(docs, stripWhitespace)
 
     Kemudian kita menganalisa kata-kata yang sering muncul pada data tersebut dengan perintah
        dtm <- TermDocumentMatrix(docs)
        m <- as.matrix(dtm)
        v <- sort(rowSums(m),decreasing=TRUE)
        d <- data.frame(word = names(v),freq=v)
        head(d, 10)


Kita dapat membuat word cloud dari data yang sudah dianalisa tersebut dengan perintah
         set.seed(1234)
         wordcloud(words = d$word, freq = d$freq, min.freq = 1,
         max.words=200, random.order=FALSE, rot.per=0.35,
         colors=brewer.pal(8, "Dark2"))


Wordcloud diatas hanya untuk mengumpulkan kata-kata yang sering digunakan yang mana, belum mengelompokkan apakah kalimat pada kolom komentar yang menggunakan kata-kata diatas tergolong positif atau negatif.