ANALISIS DAN PERANCANGAN
3.3. Activity Diagrams
3.3.1. Activity Diagram Register
Interface Sistem
Pengguna
Masukkan username, password,
dan retype password pengecekan username di dlm database
Menampilkan pesan gagal, username sudah ada
Username sudah ada
simpan username dan password ke dalam database pengecekan password dan retype password
Username belum ada
Menampilkan pesan gagal, password tidak sama
Password sama
Password tidak sama
Menampilkan pesan berhasil register Menampilkan form registrasi Klik tombol register
Gambar 3.2 Activity Diagram Register
Gambar 3.2 menggambarkan aktivitas-aktivitas apa saja yang berlangsung ketika pengguna melakukan registrasi di dalam Sistem Rekomendasi artikel publikasi
ilmiah. Tahap awal adalah pengecekan terlebih dahulu apakah username yang
diinputkan oleh pengguna sudah ada di dalam database dan pengecekan apakah
password dan retype password yang diinputkan sama. Apabila username yang
diinputkan oleh pengguna belum ada di dalam database dan pengecekan password
dan retype password sama maka username dan password akan di masukkan ke
3.3.2. Activity Diagram Logout
Interface Sistem
Pengguna
Masukkan username dan password pengecekan username di dlm database
Menampilkan pesan gagal, username tidak ditemukan
Username tidak ada
beralih ke halaman utama pengecekan password dengan
password database Username ada
Menampilkan pesan gagal, password salah
Password salah
Password benar
Menampilkan halaman utama Menampilkan Form login
session dimulai Klik Tombol Login
Gambar 3.3Activity Diagram Login
Dari Gambar 3.3 dapat dijelaskan bahwa proses login pada sistem rekomendasi artikel Publikasi ilmiah terdiri dari beberapa proses. Pada awalnya pengguna akan mengklik tombol login. Kemudian sistem akan menampilkan form login kepada pengguna. Setelah form login ditampilkan pengguna memasukkan username dan password pada form. Kemudian sistem akan validasi username dan password yang dimasukkan oleh pengguna apabila username dan password terdapat dalam database maka halaman utama dari sistem rekomendasi artikel publikasi akan ditampilkan.
3.3.3. Activity Diagram Halaman Utama
Pengguna Interface sistem
ambil data 5 artikel publikasi terakhir yang baru disubmit,
Tampilkan data artikel
Ambil 5 author publikasi popular
ambil data 5 tag Popular minggu ini
ambil data 5 tag Popular bulan ini
Tampilkan data artikel
Tampilkan data tag
Tampilkan data tag
Gambar 3.4 Activity Diagram Halaman Utama
Gambar 3.4 merupakan activity diagram dari halaman utama dari sistem rekomendasi artikel publikasi ilmiah. Sistem akan mengambil lima data artikel publikasi terakhir yang disubmit oleh pengguna, data popular author artikel, data lima tag popular minggu ini, data lima tag popular bulan ini. Kemudian data artikel publikasi yang terakhir disubmit oleh pengguna, data tag yang paling populer minggu ini dan data tag populer bulan ini akan ditampilkan pada halaman utama.
3.3.4 Activity Diagram Halaman submit artikel
sistem Interface
Pengguna
Cek Session
Mengisi Informasi artikel
Menampilkan Halaman Utama
Menampilkan Form Submit artikel
Insert informasi artikel ke Database
Pesan Sukses insert kedatabase
Ada Tidak ada
Klik link submit artikel
Gambar 3.5 Activity Diagram Halaman submit artikel
Gambar 3.5 menjelaskan tentang submit sebuah artikel pada sistem. Sistem akan mengecek session yang ada. Apabila tidak terdapat session maka akan diarahkan ke halaman utama. Jika terdapat session maka pengguna mengklik submit artikel dan sistem akan menampilkan form untuk mengisi informasi dari artikel. Kemudian pengguna mengisi informasi artikel publikasi dan kemudian sistem akan memasukkan
3.3.5. Activity Diagram Halaman Rekomendasi Interface sistem Pengguna cek session menampilkan rekomendasi artikel
Tampilkan halaman login
Hitung rekomendasi dengan cosine based similarity Tidak ada session
ada session
Gambar 3.5 Activity Diagram Halaman Rekomendasi
Gambar 3.5 menjelaskan tentang halaman rekomendasi artikel publikasi ilmiah yang sesuai dengan minat dari pengguna. Pengguna harus login atau masuk kedalam sistem untuk melihat artikel yang direkomendasikan kepada pengguna tersebut.
3.3.6. Activity Diagram lihat daftar artikel publikasi oleh pengguna
Pengguna Interface sistem
Cek Session
Menampilkan Halaman Utama
Menampilkan artikel Yang telah disubmit
oleh user
Ada Tidak ada
Klik Link My Favourite article
Gambar 3.6 Activity Diagram Lihat artikel Yang disubmit pengguna
Gambar 3.6 menjelaskan tentang proses pengguna untuk melihat artikel yang telah diinputkan oleh pengguna. Pada awalnya sistem akan mengecek session pengguna jika session ada maka pengguna akan masuk kedalam sistem dan kemudian pengguna mengklik link my favourite article dan sistem akan menampilkan daftar artikel yang telah di inputkan oleh pengguna.
3.3.7. Activity Diagram Logout
Sistem
Pengguna Interface
cek session
Tampilkan Halaman Login
Session ada Session tdk ada
Hapus session
Gambar 3.7 Activity diagram logout
Gambar 3.7 Menjelaskan bahwa sistem akan menghapus session ketika proses logout dan akan diarahkan kehalaman login.
3.4. Flowchart
Terdapat beberapa flowchart yang ada di dalam Sistem Rekomendasi artikel publikasi berbasis tagging. Flowchart tersebut antara lain adalah :
• Flowchart proses rekomendasi keseluruhan.
• Flowchart perhitungan raw data pengguna
• Flowchart perhitungan normalized vector pengguna
• Flowchart perhitungan raw data jurnal
• Flowchart perhitungan normalized vector jurnal • Flowchart perhitungan dot product / cosine similarity.
3.4.1. Flowchart Keseluruhan Rekomendasi
START
$Id_user
Ambil semua tag dari database, kemudian simpan dalam array $tag
Ambil semua jurnal yang belum pernah ditag oleh user, kemudian simpan
dalam array $jurnal
Ambil data user, kemudian simpan dalam
array $user
selesai Pembentukan raw data
untuk jurnal
Pembentukan normalized vector untuk jurnal
Pembentukan raw data user
Pembentukan normalized vector untuk user
Dot Product user x jurnal
$dot_product Urutkan hasil dot
product $dot_product dari
besar - kecil
Flowchart sistem rekomendasi dengan menggunakan dot product dapat dilihat pada gambar 3.5. Perhitungan dengan dot product dapat dijelaskan menjadi lima buah sub proses, yaitu perhitungan raw data pengguna, perhitungan normalized vector pengguna, perhitungan raw data jurnal, perhitungan normalized vector jurnal dan dot product antara pengguna dengan jurnal.
2. Flowchart Perhitungan Raw Data Pengguna
$normalizer = array(); $jlh_jurnal = array();
Untuk setiap user dalam array $user
$jlh_jurnal[$id_user] = array(); $temp = 0;
Untuk setiap tag dalam array $tag yes
$jlh_jurnal[$id_user][$id_t ag] = hitung jumlah jurnal yang dibuat oleh user
$id_userdengan tag $id_tag $normalizer[$id_user] =sqrt[$temp]; yes no no start Array $user Array $tag $normalizer $jlh_jurnal end
Menghitung jumlah jurnal yang pernah diberikan oleh
suatu user terhadap suatu tag
Gambar 3.6 Flowchart Perhitungan Raw Data Pengguna
Pada tahap ini, sistem akan membangun array yang berisi informasi tentang jumlah artikel yang telah di-tag pengguna untuk setiap tag yang ada. Jika u1 adalah pengguna yang akan dihitung kedekatannya dan t adalah tag yang tersedia di dalam sistem,
kemudian sistem akan menghitung nilai normalizer atau jarak antar vektor dengan menggunakan rumus 2.2. Berikut ini merupakan raw data pengguna sebagaimana dijelaskan dalam tabel 3.1.
Tabel 3.1 Raw Data Pengguna u1
T1 T2 T3 T4 T5 T6 Normalizer
U1 2 0 1 4 2 0 5
3. Flowchart Perhitungan Normalized Vector Pengguna
$normalized_user=array();
Untuk setiap user dalam array $user
$normalized_user[ $id_user]=array();
Untuk setiap tag dalam array $tag
$normalized_user[$id_user][$id_tag] = $jlh_jurnal[$id_jurnal][$id_tag]/$normalizer[$id_user]; yes yes no no start Array $user Array $tag $normalized_user end Menghitung normalized vector untuk user
Pada tahap ini, sistem akan membangun array normalized vector. Perhitungan
normalize vector untuk pengguna dapat dihitung dengan menggunakan rumus 2.3.
Berikut ini merupakan normalized vector untuk pengguna u1 sesuai dengan tabel 3.2. Tabel 3.2 Normalized Vector Pengguna u1
T1 T2 T3 T4 T5 T6
U1 0.4 0 0.2 0.8 0.2 0
4 Flowchart Perhitungan Raw Data Jurnal
$normalizer = array(); $jlh_user = array();
Untuk setiap jurnal dalam array $jurnal
$jlh_user[$id_jurnal] = array(); $temp = 0
yes
Untuk setiap tag dalam array $tag
$jlh_user[$id_jurnal][$id_tag] = hitung jumlah user yang memberikan tag pada $id_tag pada jurnal
$id_jurnal; $temp += pow($jlh_user[$id_jurnal][$id_tag],2); yes $normalizer[$id_jurnal] = sqrt ($temp); no no start Array $jurnal Array $tag $jlh_user $normalizer end
Menghitung jumlah user yang pernah memberikan satu tag tertentu kepada satu
jurnal tertentu
Menghitung normalizer untuk sebuah jurnal
Pada tahap ini, sistem akan membangun array yang berisi informasi tentang jumlah user yang memberikan tag setiap jurnal untuk setiap tag yang ada. Selain itu, pada tahap ini, sistem juga akan menyimpan normalizer untuk setiap jurnal yang dapat dihitung dengan rumus 2.2.
Jika j adalah jurnal yang akan dihitung kedekatannya dan t adalah tag yang tersedia di dalam sistem, berikut ini merupakan raw data jurnal sebagaimana dijelaskan dalam tabel 3.3.
Tabel 3.3 Raw Data Jurnal
T12 T2 T3 T4 T5 T6 Normalizer
j1 3 0 3 1 0 2 4,79
J2 1 0 1 3 3 3 5.38
5 Flowchart Perhitungan Normalized Vector Jurnal
$normalized_jurnal = array();
Untuk setiap jurnal dalam array $jurnal
$normalized_jurnal [$id_jurnal] =
array();
Untuk setiap tag dalam array $tag
$normalized_jurnal[$id_j urnal][$id_tag]=$jlh_user[ $id_jurnal][$id_tag]/ normalizer[$id_jurnal]; no no yes yes start Array $jurnal Array $tag $normalized_jurnal end
Menghitung normalize vector jurnal
Gambar 3.9 Flowchart Perhitungan Normalized Vector Jurnal
Pada tahap ini, sistem akan membangun array normalized vector untuk jurnal/artikel. Perhitungan normalized vector dihitung dengan menggunakan rumus 2.3. Hasil nilai normalized vector untuk jurnal/artikel dapat dilihat pada tabel 3.4.
Tabel 3.4 Normalized Vector Jurnal
T12 T2 T3 T4 T5 T6
j1 0,62 0 0,62 0,208 0 0,417
J2 0,185 0 0,185 0,557 0,557 0,557
6 Flowchart Dot Product Pengguna dengan Jurnal
$dot_product = array();
Untuk setiap user yang ada dalam
array $user
$dot_product[$id_ user] = array();
Untuk setiap jurnal yang ada di array $jurnal
$temp = 0
Untuk setiap tag yang ada di array
$tag $temp += $normalized_jurnal[$id_jurnal][$id_tag] * $normalized_user[$id_user][$id_tag] $dot_product[$id_user][$id_jurnal] = $temp; yes yes yes no no no start Array $user Array $jurnal Array $tag $dot_product end
Gambar 4.0 Flowchart Dot Product Pengguna dengan Jurnal
Pada tahap ini, sistem akan menghitung nilai dot product dari nilai vektor jurnal dan vektor dari pengguna. Perhitungan nilai dot product setiap vektor dihitung dengan menggunakan rumus 2.4.