Pembuatan Kakas Komunikasi Antar Pengembang Perangkat Lunak
NAMA MAHASISWA: DOSEN PEMBIMBING:
ANUGERAH FIRDAUS DANIEL ORANOVA SIAHAAN
5110100089 RIZKY JANUAR AKBAR
PENDAHULUAN
Latar Belakang
• Dalam sebuah tim pengembang perangkat lunak, terdiri dari beberapa orang dengan keahlian masing-masing dan memiliki pekerjaan individu sesuai dengan bidang keahlian.
• Karena bekerja secara tim, komunikasi merupakan hal yang penting dalam proses pengembangan perangkat lunak.
• Jika mengalami kesulitan dalam pekerjaanya, pengembang akan bertanya pada pengembang lain. Namun, pengembang yang ditanya belum tentu memiliki keahlian yang terkait dengan pekerjaan pengembang tersebut.
• Dibutuhkan sebuah kakas komunikasi di antara para pengembang yang dapat mengklasifikasikan
pesan yang diajukan untuk memfasilitasi komunikasi dan memungkinkan pengembang mencari
pengembang lain yang memiliki keahlian terkait.
TINJAUAN PUSTAKA
Latent Semantic Indexing
• Asumsi yang mendasari LSI adalah terdapat sebuah struktur pokok atau latent yang merepresentasikan hubungan antar kata dalam sejumlah dokumen berdasarkan terjadinya kata dalam dokumen-dokumen tersebut.
• LSI menerima sebuah vektor atau sebuah matriks frekuensi dari sekumpulan dokumen, dimana setiap baris mewakili satu istilah atau kata, setiap kolom mewakili satu dokumen dan setiap sel berisi nilai bobot kata terhadap dokumen.
• Kelebihan dari LSI adalah perlakuan yang sama terhadap query dan dokumen sebagai vektor, perhitungan nilai induksi berdasarkan cosine similarity, dan pengambilan informasi seperti pengelompokan serta pengklasifikasian.
• Kelemahan dari LSI adalah ketidakmampuan dalam mengatasi permasalahan bahasa, seperti
sinonim dan polisemi.
Latent Semantic Indexing (2)
• LSI menggunakan Singular Value Decomposition dalam penerapannya.
• Matriks frekuensi dari kata dan dokumen diuraikan menjadi tiga buah matriks yang berbeda.
• Misalkan terdapat M x N matriks C.
• Setiap baris merepresentasikan kata.
• Setiap kolom merepresentasikan dokumen.
• Setiap sel berisi bobot kata terhadap dokumen.
• Maka, SVD dapat ditulis sebagai perkalian tiga matriks yang lain, yaitu:
• 𝐶 = 𝑈𝜎𝑉
𝑇• Pengurangan dimensi sebanyak k dari ketiga matriks dilakukan untuk membuat matriks SVD
yang baru.
Latent Semantic Indexing (3)
• Digunakan representasi LSI dengan dimensi k untuk menghitung kesamaan diantara vektor.
Vektor query dan dokumen dapat dituliskan dalam representasi LSI dengan dimensi k 𝑞
𝑘= 𝜎
𝑘−1𝑈
𝑘𝑇𝑞
𝑑
𝑘= 𝜎
𝑘−1𝑈
𝑘𝑇𝑑
• Dalam kasus pencarian informasi, seperti pada metode Latent Semantic Indexing, dapat dicari kesamaan cosinus atau cosine similarity antara query dan dokumen.
𝑠𝑖𝑚 𝑞, 𝑑 =
𝑉 𝑞 .𝑉 𝑑𝑉 𝑞 𝑉 𝑑
Cohen’s Kappa
• Statistik Kappa atau koefisien Kappa adalah statistik yang paling umum digunakan untuk mengukur kesepakatan antara dua atau lebih pengamat .
• Perhitungan ini didasarkan pada perbedaan antara berapa banyak kesepakatan secara aktual atau observed agreement dibandingkan dengan berapa banyak kesepakatan yang diperkirakan secara kebetulan atau expected agreement.
• Kesepakatan antar pengamat dapat dimasukkan ke dalam tabel hasil pengamatan.
Pengamat 1
Kategori Jumlah
Pengamat 2 1 2 3
1 W
00W
00W
00R
0Kategori 2 W
00W
00W
00R
13 W
00W
00W
00R
2Jumlah C
0C
1C
2N
Cohen’s Kappa (2)
• Menghitung observed agreement atau kesepakatan yang diamati.
𝑝
𝑜=
𝑖=0𝑛 𝑊𝑖𝑖 𝑁
• Menghitung expected agreement atau kesepakatan yang diharapkan.
𝑝
𝑒=
𝑖=0𝑛 𝑅𝑖𝐶𝑖𝑁
• Menghitung nilai Kappa.
𝐾 =
𝑝𝑜−𝑝𝑒1−𝑝𝑒
Cohen’s Kappa (3)
• Dari hasil perhitungan Kappa, dapat dilihat interpretasi dari Kappa atau tingkat reliability.
Kappa Kesepakatan
< 0 Kurang
0,01 – 0,20 Sedikit 0,21 – 0,40 Cukup 0,41 – 0,60 Sedang 0,61 – 0,80 Baik
0,81 – 0,99 Sangat Baik
ANALISIS DAN
PERANCANGAN
Deskripsi Umum Sistem
• Sistem yang dibuat adalah sebuah aplikasi client dan server.
• Server berupa aplikasi desktop yang dijalankan pada sebuah komputer server.
• Client berupa kakas bantu atau sebuah plug-in untuk IDE Eclipse. Kakas berupa aplikasi messenger yang dapat mengirimkan pesan antar pengguna.
• Deskripsi sistem ini adalah sebagai berikut:
1. Pengguna memberi masukan berupa teks pesan dan nama tim proyek perangkat lunak.
2. Sistem mengirimkan masukan kepada server.
3. Server melakukan klasifikasi pesan berdasarkan library yang digunakan dan component perangkat lunak dari sebuah tim proyek perangkat lunak yang dipilih pengguna.
4. Server mengirimkan pesan dari pengguna kepada pengguna lain dengan keahlian yang
berhubungan dengan pesan atau sesuai dengan hasil klasifikasi.
Kasus Penggunaan
Programmer
Mengirimkan pesan baru Membuat tim proyek perangkat lunak
Mengikuti tim proyek perangkat lunak
Mengirimkan file Membalas pesan
Kakas bantu komunikasi
Mengklasifikasikan pesan dengan Latent Semantic indexing
<<include>>
Server
Melihat riwayat pesan
Mulai
Memasukkan deskripsi library dan component dalam daftar
dokumen
Memberi bobot nilai antara daftar kata dengan daftar
dokumen dalam matriks bobot nilai
Matriks frekuensi Deskripsi Library dan Component
Membentuk matriks SVD
Membentuk matriks SVD dengan dimensi k
Matriks dimensi kSVD
Membentuk matriks vektor
query
Membentuk matriks vektor
dokumen
Menghitung kesamaan antara
vektor query dan dokumen Hasil
kesamaan antara dua
vektor Mendapatkan
library atau component
Library atau component yang sesuai
Mendapatkan pengguna dengan
library atau component yang
digunakan
Penerima pesan
Selesai
Arsitektur Sistem Dan Alur Klasifikasi Pesan
PENGUJIAN DAN
EVALUASI
Pengujian
• Pengujian yang dilakukan adalah pengujian kebutuhan fungsionalitas dan pengujian klasifikasi pesan.
• Pengujian fungsionalitas menggunakan metode black box. Metode ini menekankan pada kesesuaian hasil keluaran dari sistem.
• Pengujian terhadap hasil klasifikasi pesan dilakukan dengan membandingkan hasil deteksi
sistem dengan hasil analisa yang dilakukan oleh pengembang perangkat lunak berdasarkan
sumber data uji. Pengujian ini menggunakan metode Cohen’s Kappa.
Daftar Aplikasi Untuk Data Uji
No Nama
Aplikasi
Jumlah Anggota
Jumlah Library
Jumlah Component
Jumlah Pesan
1 openCSV 6 4 3 10
2 aTunes 10 4 5 10
3 tuxGuitar 7 3 4 10
• Studi kasus aplikasi menggunakan data dari sourceforge dan diambil tiga buah aplikasi
• Dari ketiga aplikasi tersebut dilakukan pengolahan informasi. Informasi yang diambil sebagai
bahan pengujian adalah daftar pengembang aplikasi, daftar library dan component, dan daftar
pesan yang berkaitan dengan aplikasi.
Daftar Hasil Pengamatan
Pengembang
Library Component Jumlah
Sistem 1 2 3 4 1 2 3
Library 1 3 0 0 0 0 0 2 5
2 0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0
Component 1 0 0 0 0 1 0 0 1
2 0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 4 4
Jumlah 3 0 0 0 1 0 6 10
Daftar Hasil Pengamatan (2)
Pengembang
Library Component Jumlah
Sistem 1 2 3 4 1 2 3 4 5
Library 1 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0 0
3 0 0 1 0 0 0 0 0 0 1
4 0 0 0 0 0 0 0 0 0 0
Component 1 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 1 0 1 2
3 0 0 0 0 0 0 2 0 0 2
4 0 0 0 0 0 0 2 2 0 4
5 0 0 0 0 0 0 0 0 1 1
Jumlah 0 0 1 0 0 0 5 2 2 10
Daftar Hasil Pengamatan (3)
Pengembang
Library Component Jumlah
Sistem 1 2 3 1 2 3 4
Library 1 1 0 0 0 0 0 0 1
2 0 1 0 0 0 0 0 1
3 0 0 2 0 0 0 0 2
Component 1 0 0 0 0 0 0 0 0
2 1 0 1 0 4 0 0 6
3 0 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0
Jumlah 2 1 3 0 4 0 0 10
Evaluasi Pengujian Fungsionalitas
• Berdasarkan data pada tabel tersebut, semua skenario pengujian berhasil dan program berjalan dengan baik.
• Bisa disimpulkan bahwa fungsionalitas dari program telah bisa bekerja sesuai dengan yang diharapkan.
ID Nama Skenario Hasil
UJ.UC-0001 Pengujian fitur membuat tim
proyek perangkat lunak Skenario 1 Berhasil Skenario 2 Berhasil UJ.UC-0002 Pengujian fitur mengikuti tim
proyek perangkat lunak Skenario 1 Berhasil UJ.UC-0003 Pengujian fitur mengirimkan
pesan baru Skenario 1 Berhasil
UJ.UC-0004 Pengujian fitur membalas pesan Skenario 1 Berhasil UJ.UC-0005 Pengujian fitur mengirimkan
file
Skenario 1 Berhasil Skenario 2 Berhasil