Tuesday, March 27, 2012

Goes to Seminar 2 - AnalysisDone-Oriented

Jangan pernah menyepelekan kata2 analisis. Ini yang sering menjadi batu sandungan ketika kita akan melanjutkan ke tahap berikutnya. Perancangan yang baik adalah yang sesuai dengan hasil analisis yang telah dilakukan, lantas bagaimana cara melakukan analisis yang baik dan benar?

Haha, gaya banget ya pernyataan di atas... :P
Berasa pakar gimana,,,gitu...
Engga ko, tenang aja, kami mau cari aman. Tiap kata di postingan ini hanya berdasarkan pengalaman saja alias ga ada referensi shahih. Tapi walau begitu, InsyaAllah akan bermanfaat ko terutama buat anak2 JTK POLBAN yang akan melaksanakan Tugas Akhir nya. Dont be too long! Check it out yo...

Setahu kami, komponen penting yang perlu ada dalam Bab Analisis adalah:

  • Analisis terhadap sistem serupa / yang sudah pernah adaKalo udah pernah ada, kenapa perlu kita buat lagi? Buat apa dianalisis? Namanya juga manusia yang buat, semahir apapun, pasti ada aja kekurangannya, dan mungkin aja kita adalah salah satu yang tahu dan paham akan kekurangan tersebut dan mampu untuk memperbaikinya. Dan lagi, menurut salah satu pembimbing kami, Pak Jonner, "Ya, usahakan kalian tidak membuat aplikasi dari awal/yang sifatnya inovasi total." Tahu kenapa? Bukannya tidak boleh, ya, kalo waktunya memang memungkinkan, silakan saja. Karena menurut Dosen Senior kami, Pak Ridwan, "Ga usah bikin yang aneh2 lah. Saya yakin, kalian itu mampu, tapi waktunya kan cuma sebentar." Jadi inti yang saya tangkap adalah tak perlu 100% mengikuti idealisme dulu, perhatikan kemampuan dan waktu yang tersedia. Kalaupun kita mampu, perhatikan apakah teman2 kelompok kita juga mampu? *Ko jadi kesini ya? Tapi ketangkep kan ya, maksudnya gimana...

    Balik lagi deh, jadi yang disorot dari sistem yang sudah ada itu adalah bagaimana perilakunya (misal digambarkan dalam Use Case Diagram atau dideskripsikan via Use Case Skenario). Lalu buat evaluasinya, sehingga terlihat dimana peran sistem yang akan kita buat kelak.
    Jika terdapat aplikasi serupa lebih dari satu, lakukan perbandingan terhadap aplikasi2 tersebut. Tentukan parameter2 apa yang kira2 mampu menunjukkan perbedaan antara aplikasi2 tersebut. Misal parameter yang kami buat adalah sebagai berikut.




  • Analisis hal-hal yang berkaitan dengan aplikasi. Misal, karena tugas akhir kami berhubungan dengan sistem temu balik informasi (*pencarian) ayat Alquran, maka kami perlu menganalisis bagaimana input yang sesuai, bagaimana proses preprocessing dan stemming dilakukan, dan lain2.
  • Analisis requirement. Ini adalah bagian krusial dalam analisis karena akan menjembatani kita ke proses perancangan. Maksud analisis requirement adalah berdasarkan analisis yang telah kita lakukan di atas (terutama dari hasil analisis sistem yang telah ada/telah berjalan), bagaimana requirement 'ideal' yang perlu kita perhatikan dalam perancangan sistem kita kelak. Perlu diperhatikan, bahwa karena 'ideal' itulah, kemungkinan pada akhirnya kita tidak mengimplementasi seluruhnya adalah mungkin saja. Namun ke-ideal-an tersebut harus tetap dituliskan dalam rangka memberitahu pembaca bahwa kita memahami domain yang sedang kita garap.
    Pada bagian ini, kita akan bergelut dengan komponen SRS yaitu Use Case diagram juga skenario (ayo, perhatikan jelas2 saat dosen APPL sedang mengajar), juga tidak lupa menyertakan DEFINISI AKTOR sistem yang akan kita buat. Misal dalam sistem kami, Pengguna -> Aktor yang menggunakan aplikasi untuk mencari terjemahan ayat Alquran berdasarkan kata kunci yang di-inputkan, menelusuri ayat-ayat Alquran, memilih ayat sebagai ayat favorit.
    Selain itu juga perlu dibuat Requirement Fungsional dan Non-Fungsional, yang singkatnya, Fungsional itu berhubungan dengan analisis yang sudah kita buat dan metoda yang akan kita gunakan, sedangkan Non-Fungsional merupakan kebutuhan pendukung untuk melengkapi fungsi yang ada pada sistem.
  • Bussiness Rules. Apaan tuh??? Maksudnya adalah aturan2 yang harus dipenuhi untuk dapat menjalankan proses yang berkaitan dengan sistem kita. Misal, "Sistem harus memberikan rekomendasi ayat berdasarkan 5 rating tertinggi" dan harus disertakan itu berkaitan dengan requirement yang mana.
Cukup sekian ya, sedikit arahan dalam membuat Bab Analisis. Ingat, konten bab ini akan sangat menentukan apakah kita memahami domain TA kita atau tidak. Maka persiapkan otak untuk menggali lebih dalam sebenarnya bagaimana sistem yang akan kita buat? Selamat menganalisis...

Tuesday, March 20, 2012

Pembagian Tugas Hari Ini

Pembagian Tugas Hari ini untuk kajian pustaka:
Target:  progress besok.

1. Ajeng: AlQuran Digital
2. Putri: Zekr
3. Teguh: Quran Terjemah

Selain itu, besok (Rabu. 21.3.2012) jam 16.00, bimbingan dengan Pa Jonner!!
Lalu, besok (Rabu. 21.3.2012)  mengirimkan SRS ke Bu Ida!!

Laporan Progress

Hanya sekedar mengingatkan.. 

Setiap hari senin, JANGAN LUPA mengirimkan progress hasil eksplorasi ke Pa Jonner, dengan di kirim via email ke jonnerh@yahoo.com, jn@jtk.polban.ac.id. Cuma aq ga tau ni,, hasil eksplorasi nya ada format apa ngga? nanti di konfirmasiin lagi ke Pa Jonner y!!

Selain itu, setiap hari senin, JANGAN LUPA JUGA mengirimkan progress laporan kelompok, di kirim via email ke id@jtk.polban.ac.id, idasuhartini@gmail.com!!

Ayo,, SEMANGAT TEMAN2!!!

Monday, March 19, 2012

Latent Semantic Analysis - Singular Value Decomposition

Mau sharing mengenai pemahaman LSA - SVD yang udah nempel di kepala, walau belum 100% paham pengimplementasiannya ke dalam coding... hehe, cekidot...

Latent Semantic Analysis (LSA) merupakan teknik matematika/statistika untuk mengekstraksi dan menyimpulkan hubungan kontekstual arti kata yang diaplikasikan pada bagian teks yang dibutuhkan (Landauer, Foltz and Laham, 1998). Pada LSA, dilakukan preprocessing yang salah satunya berfungsi sebagai penentu kumpulan term untuk direpresentasikan dalam sebuah matriks semantik dan kemudian diolah secara matematis menggunakan teknik aljabar linier Singular Value Decomposition (SVD), sehingga dalam hal ini, query dapat dibandingkan dengan hasil SVD untuk menghitung similaritas antara query-document (Baker, 2005). Selain itu, juga dilakukan representasi ke dalam bentuk matriks, sehingga dari hasil dekomposisi SVD, terdapat tiga jenis operasi perbandingan yang dapat dilakukan yaitu:

  1. Membandingkan dua kata (terms)
  2. Membandingkan dua dokumen (documents)
  3. Membandingkan kata (terms) dengan dokumen (documents)
Berbeda dari dua operasi sebelumnya yang memerlukan penghitungan  cosine similarity, untuk membandingkan kata i dengan dokumen j dapat diketahui dari nilai cell(i,  j) dari matriks aproksimasi kata-dokumen yang didapat dari perhitungan SVD.
(Deerwester et al., 1990)


Gambar 1 - Representasi geometri 2 dimensi dari term dan dokumen pada analisis SVD

Pada gambar di atas, kumpulan term yang ada dipetakan keberadaannya ke tiap dokumen, sehingga didapatkan nilai keberadaan tiap term pada dokumen-dokumen yang ada, sehingga isu yang muncul adalah “seberapa dekat hubungan antara term i dengan dokumen j?”. Melalui standar informasi pendekatan sistem temu balik, untuk membandingkan dua baris, kolom, atau menguji cell digunakan matriks X, yang terdiri dari term pada dokumen (Deerwester et al., 1990). Namun kita menggunakan X^ yang merepresentasikan pola dari X dan nilainya mendekati X yang sebenarnya. Karena X^ = TSD’ (Deerwester et al., 1990), maka dapat digambarkan sebagai berikut.

T : mendeskripsikan baris asli sebagai vektor turunan nilai faktor ortogonal
S : adalah matriks diagonal yang memuat nilai skala jika ketiga komponen matriks dikalikan
D : mendeskripsikan kolom seperti matriks T
t : adalah jumlah baris pada X
d : adalah jumlah kolom pada X
m : adalah rank pada X (≤min(t,d))

Berikut merupakan contoh pengimplementasian rumus di atas.
                                    
                                         Misal, X =
 

Dengan,
T (9 dimensi vektor singular kiri untuk 12 term)
S (matriks diagonal dari 9 nilai singular)
D (9 dimensi vektor singular kanan untuk 9 dokumen)

Maka untuk mencari X^ (agar mengetahui keterhubungan antara term dan dokumen lebih detil), maka perlu untuk mencari matriks T, S, dan DT untuk kemudian dihitung ke dalam rumus yang telah disebutkan di atas.


Untuk mencari T, dilakukan:
  1. Mencari hasil dari XXT
  2. Mencari eigenvalue dan eigenvector dari XXT. Eigenvector adalah vektor tak nol yang memenuhi persamaan. Dimana A adalah matriks segiempat, λ bernilai skalar, dan v adalah eigenvector / vektor karakteristik. λ adalah eigenvalue / akar karakteristik nya.
  3. Konversi matriks vektor ke matriks ortogonal menggunakan proses Gram-Schmidt orthonormalization


Gambar 2 - Hasil matriks T


Untuk mencari D, dilakukan:
  1. Mencari hasil dari XTX
  2. Mencari eigenvalue dan eigenvector dari XTX
  3. Konversi matriks vektor ke matriks ortogonal menggunakan proses Gram-Schmidt orthonormalization
  4. Didapatkan D, namun yang dibutuhkan adalah DT, maka dilakukan transpose terhadap D

Gambar 3 - Hasil matriks D transpose


Untuk mendapatkan S, hanya perlu mengakarkan nilai eigenvalue yang sudah didapatkan dan merangkaikan dalam matriks secara diagonal.
Gambar 4 - Hasil matriks S


Lalu dimasukkan ke dalam rumus perkalian matriks berikut,

Sehingga didapatkan hasil berikut,

Dari hasil tersebut, ditemukan dokumen yang paling mewakili makna dari kumpulan term yang ada. Sehingga dapat diberikan rekomendasi dokumen sesuai dengan nilai yang dihasilkan.

Friday, March 2, 2012

Dag Dig Dug Pra Seminar 1

Kami harus TANGGUH bersama
 Kami akhirnya sampai di jalan2 TA kami yang kedua. Kami memutuskan untuk meng-copy TA yang kami temukan di ITB waktu itu. Tahu kenapa? Karena ternyata kami diminta untuk membuat proposal TA! Dan kami hanya diberi waktu kurang lebih 3hari dari untuk pembuatannya. Ya ampun, bagaimana ini? Bahkan apa yang kami rencanakan pun belum jelas! Hhhhh....
Tapi karena tuntutan, bagaimanapun juga kami harus membuatnya. Kami mendapatkan contoh proposal yang menurut dosen bagus untuk diikuti. Bab2 yang terdapat dalam proposal tersebut adalah :
  1. Abstrak
  2. Pendahuluan
  3. Latar Belakang
  4. Pekerjaan yang akan Dilakukan
  5. Rencana Pekerjaan
  6. Referensi
Awalnya kami dibingungkan dengan konten Pendahuluan dan Latar Belakang, karena pada laporan proyek 5, kami berpikiran bahwa Latar Belakang sudah mengandung Pendahuluan. Namun sekarang ternyata itu merupakan bagian yang terpisah. Sebagai solusinya, akhirnya kami memutuskan untuk membagi menjadi seperti ini :
  • Pendahuluan : bagian Latar Belakang (laporan proyak 5) pada paragraf2 awal, yang lebih kepada fenomena yang terjadi terkait sistem yang akan kita buat
  • Latar Belakang : bagian Latar Belakang pada paragraf2 akhir, yang lebih kepada tujuan dari sistem yang akan kita buat
Dan untuk sisanya, lantas isinya apa?
  • Pekerjaan yang akan dilakukan -> berisi lingkup sistem yang akan kita buat, dan kalau bisa ada studi pustaka dari pekerjaan yang pernah orang lain kerjakan, jadi misalnya kita tidak membuat dari awal, tapi mengembangkan yang telah ada.
  • Rencana pekerjaan -> berisi tahapan pengerjaan TA sesuai dengan metodologi yang kita gunakan, baik itu Waterfall, Iteratif, dll. Dan jangan lupa jadwal pengerjaan tugas juga, sampaikan di sini.
  • Referensi -> pastinya tahu donk ya... Di sini kita belajar lagi tata tulis daftar pustaka yang baik dan benar. Tapi, kalau sudah tahu ilmunya, ga usah susah2 ko. Di Ms.Word sudah tersedia fasilitasnya, tinggal pilih mau yang model apa, Harvard, IEEE, atau yang lainnya...???
Supaya lebih terbayang, insyaAllah, jika sudah dipermak lagi, kami upload contoh proposal kami di sini, ok...? ^^
http://www.4shared.com/file/2c7QpGsM/PROPOSAL_TUGAS_AKHIR_6.html