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