Tugas Besar 3 (String Matching)

advertisement
Program Studi Teknik Informatika
Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung
Tugas Besar III IF2211 Strategi Algoritma
Aplikasi Algoritma String Matching
dalam Analisis Sentimen pada Tweets di Twitter
Batas pengumpulan : Senin, 2 Desember 2013 jam 7 pagi.
Arsip pengumpulan : - CD yang berisi Source dan Exe program disertai readme.txt
- Laporan (hard copy)
Tempat pengumpulan : Di atas loker Lab IRK
Deskripsi tugas :
Algoritma pencocokan string (pattern) yang mempunyai kinerja bagus adalah KnuthMorris-Pratt (KMP) dan Algoritma Boyer-Moore. Banyaknya kumpulan teks yang tersedia di
internet menyebabkan berkembangnya sistem analisis teks seperti mesin pencari (search engine),
chatbot, peringkas teks, analisis sentimen, dll. Salah satu fungsi dasar yang digunakan dalam sistem
analisis teks tersebut adalah pencocokan string. Pada Tugas Besar III kali ini Anda diminta
membuat aplikasi sederhana analisis sentimen berbasis kata kunci. Teks yang akan Anda proses
adalah tweets berbahasa Indonesia di dalam jejaring sosial Twitter. Sebagai informasi, terdapat 30
juta akun Twitter dari Indonesia pada Juli 2012.
Pengguna aplikasi analisis sentimen sederhana ini akan memberikan 3 masukan yaitu: (1)
keyword pencarian tweet yang akan dianalisis, misalnya “lulusan informatika itb”; (2) daftar
keyword sentimen positif, misalnya “keren”, “hebat”, dll; (3) daftar keyword sentimen negatif,
misalnya “sombong”, “aneh”, dll. Berdasarkan keyword pencarian tweet, aplikasi akan
menggunakan Twitter API (Application Programming Interface) untuk mendapatkan kumpulan
tweets sesuai keyword tersebut. Lalu, aplikasi menentukan sentimen dari setiap tweet dengan
mengecek apakah tweet tersebut mengandung keyword positif. Jika tidak, cek apakah tweet
mengandung keyword negatif. Jika tidak mengandung keyword positif dan negatif, tweet tersebut
termasuk bersentimen netral.
Gambar 1. Contoh tweets dengan pencarian “lulusan informatika itb”
Tugas III IF3051 Strategi Algoritma
Halaman 1
22/07/17
Gambar 2. Contoh tweets dengan sentimen positif karena mengandung keyword “keren”
Gambar 3. Contoh tweets dengan sentimen negatif karena mengandung keyword “cih”
Gambar 4. Contoh tweets dengan sentimen netral
Pencocokan string yang anda buat adalah exact matching, jadi tweet yang diproses
mengandung string yang tepat sama dengan keyword yang telah ditentukan oleh pengguna. Di sini
Algoritma KMP dan Boyer-Moore dapat digunakan. Pencarian juga tidak bersifat case sensitive,
jadi huruf besar dan huruf kecil dianggap sama (hal ini dapat dilakukan dengan mengganggap
seluruh karakter di dalam pattern dan teks sebagai huruf kecil semua atau huruf kapital semua).
Spesifikasi program :
1. Aplikasi analisis sentimen yang anda buat merupakan aplikasi berbasis web yang menerima
3 masukan yaitu: (1) keyword pencarian tweet yang akan dianalisis, misalnya “lulusan
informatika itb”; (2) daftar keyword sentimen positif, misalnya “keren”, “hebat”, dll; (3)
daftar keyword sentimen negatif, misalnya “sombong”, “aneh”, dll. Tampilan antarmuka
pengguna-komputer kira-kira seperti Gambar 5 di bawah ini:
My Sentiment Analytics
Keyword pencarian tweets:
lulusan informatika itb
Keyword sentimen positif:
Keren; hebat; jago
Keyword sentimen negatif:
Sombong; aneh
Analisis
Algoritma :
o Boyer-Moore
o KMP
Perihal
Gambar 5. Contoh antarmuka (laman web) aplikasi sederhana analisis sentimen
Perihal : link ke halaman tentang program dan pembuatnya
Tugas III IF3051 Strategi Algoritma
Halaman 2
22/07/17
Analisis sentimen setiap tweet menggunakan hasil implementasi algoritma KMP dan BoyerMoore dengan menggunakan Bahasa Java.
2. Luaran program (dengan mengklik tombol menu “Analisis”) adalah sebuah laman web baru
yang berisi semua tweet yang sesuai dengan keyword yang diminta. Tweets tersebut
dikelompokkan berdasarkan sentimen positif, sentimen negatif, dan sentimen netral. Pada
setiap tweet yang dihasilkan, ada pranala ke laman Twitter yang berisi tweet tersebut.
Contoh:
Sebagai lulusan Teknik Informatika ITB, saya malu sistem registrasi ITB seperti ini. Apa
bedanya dengan tahun 1990an?
Data Uji
Data uji yang digunakan dapat anda tentukan sendiri, minimal terdapat 50 tweets yang
dianalisis. Tweet dapat berbahasa Indonesia atau Inggris.
Ihwal Pencocokan String
String berupa keyword yang dimasukkan oleh pengguna panjangnya dapat lebih dari satu kata
(setiap kata dipisahkan oleh spasi). Salah satu trik pencarian untuk pattern berbentuk frase,
pencocokan dilakukan kata per kata (ini memudahkan dalam dalam menghitung fungsi pinggiran
pada KMP atau fungsi last occurance pada Boyer-Moore). Setelah kata pertama ditemukan, maka
pencocokan dilakukan terhadap kata berikutnya. Jadi, meskipun di dalam tweet tidak terdapat frase
yang tepat sama dengan pattern, namun hasil pencarian menampilkan semua tweet yang
mengandung setiap kata di dalam frase. Anda bileh punya trik yang lain untuk menangani frase.
Misalnya jika keyword yang dimasukkan pengguna adalah “lulusan informatika ITB”, maka
tweets yang berhasil diekstrak adalah seperti pada Gambar 1, 2, 3, dan 4 di atas (ditampilkan
kembali di bawah ini):
Tugas III IF3051 Strategi Algoritma
Halaman 3
22/07/17
Lain – lain :
1. Anda dapat menambahkan fitur fungsional lain yang menunjang program yang anda buat
(unsur kreatifitas diperbolehkan/dianjurkan).
2. Anda dapat menambahkan menu lainnya di dalam laman antarmuka, gambar, logo, dan
sebagainya.
3. Program berbasis web dan dapat dikembangkan dengan salah satu kakas: PHP atau JSP
(Java Server Pages).
4. Program implementasi Boyer-Moore dan KMP menggunakan Bahasa Java dan dapat
dikembangkan dengan kakas berbasis Java seperti Java Netbeans, JDK, dan sebagainya.
5. Akses tweets dapat menggunakan library yang telah tersedia dalam memanfaatkan Twitter
API.
6. Tugas dikerjakan per kelompok dengan jumlah anggota maksimal 3 orang dan tidak boleh
sama dengan anggota kelompok sebelumnya.
7. Program harus modular dan mengandung komentar yang jelas.
8. Daftar keyword sentimen positif dan sentimen negatif dapat dimasukkan dari file eksternal.
9. Mahasiswa harus membuat program sendiri kecuali library pengaksesan tweets, tetapi
belajar dari contoh-contoh program serupa yang sudah ada tidak dilarang (tidak boleh
mengkopi source code dari program orang lain).
10. Pengumpulan paling lambat adalah tanggal 2 Desember 2013 pukul 7.00 pagi. Asisten akan
menunggu di lab IRK untuk pengumpulan. Keterlambatan akan mengurangi nilai.
11. Program disimpan di dalam folder StrAlgo3-xxxxx. Lima digit terakhir adalah NIM anggota
terkecil. Didalam folder tersebut terdapat tiga folder bin, src dan doc yang masing-masing
berisi :
a. Folder bin berisi executable file (jar)
b. Folder src berisi source code dari program
c. Folder test berisi data uji.
d. Folder doc berisi dokumentasi program dan readme
Folder ini disimpan dalam bentuk CD untuk dikumpulkan bersama berkas laporan
dimasukan kedalam amplop coklat.
12. Semua pertanyaan menyangkut tugas ini harus dikomunikasikan melalui milis agar dapat
dicermati oleh semua peserta kuliah IF2211 (milis [email protected]).
13. Demo program akan dilaksanakan pada tanggal yang dimumkan oleh asisten. Peserta
mengisi jadwal demo yang disediakan pada saat pengumpulan tugas.
14. Tiap anggota harus memahami proses pembuatan program, karena akan ada pertanyaanpertanyaan yang harus dijawab per individu.
15. Pada saat demo, asisten akan memanggil per kelompok sesuai jadwal yang telah diisi
sebelumnya. Kelompok yang tidak berkepentingan dilarang masuk. Demo dilakukan di Lab
IRK.
Isi laporan :
Cover: Cover laporan ada foto anggota kelompok (foto bertiga). Foto ini menggantikan logo
“gajah” ganesha.
Bab 1: Deskripsi masalah (dapat meng-copy paste file tugas ini)
Bab 2: Dasar teori
Bab 3: Analisis Pemecahan Masalah. Langkah-langkah pemecahan masalah ada di sini beserta
contoh ilustrasi.
Bab 4: Implementasi dan pengujian. Bab ini berisi:
a.
Spesifikasi teknis program, termasuk di dalamnya struktur data atau kelas objek
yang didefinisikan, fungsi dan prosedur (header fungsi dan prosedur saja, tidak
perlu source code), antarmuka, dan lain-lain yang dianggap perlu.
b.
Eksperimen/pengujian dengan contoh-contoh query dan tweet.
c.
Analisis hasil pengujian.
Tugas III IF3051 Strategi Algoritma
Halaman 4
22/07/17
Bab 5: Kesimpulan dan saran (hasil yang dicapai, saran pengembangan).
Tuliskan juga referensi (buku, web), yang dipakai/diacu di dalam Daftar Referensi.
Keterangan laporan :
1. Laporan ditulis dalam bahasa Indonesia yang baik dan benar, tidak perlu panjang tetapi tepat
sasaran dan jelas.
2. Laporan tidak perlu memakai cover mika dan dijilid. Cukup dibuat agar laporan tidak akan
tercecer bila dibaca.
3. Laporan boleh menggunakan kertas rius, boleh bolak-balik, boleh dalam satu halaman kertas
terdapat dua halaman tulisan asalkan masih terbaca.
4. Identitas per halaman harus jelas (misalnya : halaman, kode kuliah).
Penilaian :
1. Kebenaran program (40%) : program mampu berjalan sesuai dengan spesifikasi yang
diberikan.
2. Demo – pemahaman Anda dalam pembuatan program (30%)
3. Laporan (20%)
4. Interface, feature-feature program, dan unsur kreativitas (20%)
-selamat mengerjakan-
Tugas III IF3051 Strategi Algoritma
Halaman 5
22/07/17
Download