Sistem rekomendasi penjualan obat menggunakan pendekatan Content Based Filtering berbasis mobile android.
i
SISTEM REKOMENDASI PENJUALAN OBAT MENGGUNAKAN PENDEKATAN CONTENT BASED FILTERING BERBASIS MOBILE
ANDROID HALAMAN JUDUL
Skripsi
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Oleh:
Laurina Silvianty Dewi
085314068
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
(2)
ii
MEDICINE SALES RECOMMENDATION SYSTEM USING CONTENT BASED FILTERING APPROACH ON ANDROID MOBILE DEVICE
HALAMAN JUDUL (INGGRIS)
A Thesis
Presented as Partial Fullfillment of the Requirements
To Obtain the Sarjana Komputer Degree
In Study Program of Informatics Engineering
By :
Laurina Silvianty Dewi
085314068
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
(3)
iii
(4)
iv
(5)
v MOTTO
(6)
vi
HALAMAN PERSEMBAHAN
Skripsi ini saya persembahkan untuk :
TUHAN YESUS atas karunia-Nya dan
penyertaan-Nya selama hidup saya.
Keluarga, Guru dan Dosen
(7)
vii
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini tidak memuat karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 26 Juli 2013 Penulis,
(8)
viii ABSTRAK
SISTEM REKOMENDASI PENJUALAN OBAT MENGGUNAKAN PENDEKATAN CONTENT BASED FILTERING BERBASIS MOBILE
ANDROID
Saat ini penggunaan perangkat mobile sudah menjadi kebutuhan pokok bagi sebagian besar masyarakat di negara berkembang. Berbagai perangkat lunak telah dikembangkan untuk mengoptimalkan serta melengkapi fungsi dari perangkat mobile tersebut. Terutama ketika masyarakat ingin mencari dan mendapatkan sebuah informasi tertentu. Salah satunya adalah Medical Sales Representative (MedRep). Informasi mengenai dokter sangat diperlukan medrep pada saat menjalankan tugasnya. Sehingga dibutuhkan aplikasi yang dapat membantu MedRep dalam mendapatkan informasi seperti informasi dokter dan rumah sakit.
Pada tugas akhir ini di rancang sebuah aplikasi dengan pendekatan Content Based Filtering. Content Based Filtering merupakan pendekatan yang dilakukan berdasarkan kesamaan profil item dan profil pengguna. Profil tersebut akan direpresentasikan dalam bentuk vektor. Vektor tersebut akan diukur kedekatannya menggunakan metode Vektor Space Model dengan menghitung cosinus antara kedua buah vektor. Sehingga aplikasi ini akan merekomendasikan profil yang cocok dan dianggap relevan untuk pengguna.
Pengujian aplikasi ini dilakukan di Jogja International Hospitel (JIH) dengan mendatangi Medrep untuk menggunakan aplikasi ini serta meminta medrep untuk memberikan tanggapan dari hasil rekomendasi dokter yang diberikan oleh sistem. Kemudian dari hasil pengujian akan dihitung precision untuk masing-masing query serta menghitung average precision. Berdasarkan pengujian yang telah dilakukan dengan menggunakan 10 profil medrep didapatkan hasil average precision sebesar 77,93%. Namun hasil rekomendasi yang diberikan sistem belum dapat dikatakan baik karena pengujian yang dilakukan hanya menggunakan precision saja.
Kata kunci : Sistem Rekomendasi, Content Based Filtering, Vector Space Model, Aplikasi Mobile.
(9)
ix ABSTRACT
MEDICINE SALES RECOMMENDATION SYSTEM USING CONTENT BASED FILTERING APPROACH ON ANDROID MOBILE DEVICE
At this time of mobile devices has become a necessity for most people in developing countries. Various software has been developed to optimize and complement the functionality of the mobile device. Especially when people want to search for and obtain a specific information. One is the Medical Sales Representative (MedRep). Information on physicians much needed a medrep while performing their duties. And we need an applications that can help MedRep in getting information such as doctor and hospital information.
In this thesis designed an application with Content-Based Filtering approach. Content Based Filtering is an approach that is based on the similarity profile items and user profile. The profile will be represented in vektor form. The vector will be measured using the proximity Vector Space Model to calculate the cosine between the two vectors. So this app will recommend a suitable profile and deemed relevant to the user.
Testing of this application have been done at Jogja International Hospitel (JIH) visiting Medrep to use this application as well as medrep asked to provide feedback on the recommendations given by the doctor system. Then from the results of the test will be calculated precision for each query and calculate average precision. Based on the testing that has been performed using 10 profiles medrep results obtained precision average of 77.93%. However, the recommendations given system can not be said to be good because the testing is done only using a precision.
Key word: Recommendation System, Content Based Filtering, Vector Space Model, Mobile Aplication.
(10)
x
HALAMAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH KEPENTINGAN AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma:
Nama : Laurina Silvianty Dewi Nomor Mahasiswa : 085314068
Demi pengembangan ilmu pengetahuan, saya memberikan kepada
perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul:
SISTEM REKOMENDASI PENJUALAN OBAT MENGGUNAKAN PENDEKATAN CONTENT BASED FILTERING BERBASIS MOBILE
ANDROID
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Pada tanggal: 26 Juli 2013
Yang menyatakan,
(11)
xi
KATA PENGANTAR
Puji dan syukur kepada Yesus Kristus yang telah memberikan karunia dan berkat-Nya sehingga dapat menyelesaikan skripsi dengan judul “Sistem
Rekomendasi Penjualan Obat Menggunakan Pendekatan Content Based Filtering
Berbasis Mobile Android”.
Penyusunan tugas akhir ini tidak lepas dari semua pihak yang telah memberikan semangat, doa, dan bantuan sehingga tugas akhir ini dapat selesai. Untuk itu, penulis mengucapkan terima kasih sebesar besarnya kepada :
1. Bapak Puspaningtyas Sanjoyo Adi S.T., M.T. selaku dosen pembimbing yang senantiasa memberikan masukkan dan bantuan dalam membimbing penulis untuk menyelesaikan tugas akhir ini.
2. Bapak JB Budi Darmawan, S.T, M.Sc. dan Ibu Sri Hartati Wijono, S.Si., M.Kom. selaku dosen penguji atas kritik dan saran yang telah diberikan.
3. Bapak Andreas Budiarso dan Ibu Meme yang dengan tulus memberikan perhatian, doa dan dukungan yang sangat besar.
4. Ketiga adikku Michael, Sen-sen dan Yanes yang telah memberikan doa , semangat dan dukungannya.
5. Dyan, atas doa, dukungan, dan motivasi selama penulis menyelesaikan tugas akhir.
6. Teman-teman kuliah, Meme, Roy, Adit, Mahesa, Sam, Kevin, Wulan, Pucha, Itha, Sisca, Vava, Ilan, Gadis, Unggul, Henfri, serta teman-teman TI 2008 lainnya atas segala kebersamaan dan dukungan yang selalu diberikan kepada penulis.
7. Teman-teman kos 99999, twins (Yani, Yana), Nenek, Olek, Asty, Ella, Dyan Bali, atas doa, dukungan dan motivasi selama penyelesaian tugas akhir ini.
8. Pihak-pihak lain yang turut membantu penulis dalam menyelesaikan tugas akhir ini, yang tidak dapat disebutkan satu per satu.
(12)
xii
Penulis menyadari bahwa masih banyak kekurangan yang terdapat pada tugas akhir ini. Saran dan kritik penulis harapkan untuk kebaikan bersama. Semoga bermanfaat.
Yogyakarta, 26 Juli 2013
(13)
xiii DAFTAR ISI
HALAMAN JUDUL ... i
HALAMAN JUDUL (INGGRIS) ... ii
HALAMAN PERSETUJUAN ... iii
HALAMAN PENGESAHAN...iv
MOTTO ... v
HALAMAN PERSEMBAHAN ...vi
PERNYATAAN KEASLIAN KARYA ... vii
ABSTRAK ... viii
ABSTRACT ... ix
HALAMAN PERSETUJUAN ... x
KATA PENGANTAR ... xi
DAFTAR ISI ... xiii
DAFTAR GAMBAR ... xix
DAFTAR TABEL ... xx
BAB I. ... 1
PENDAHULUAN ... 1
1.1. Latar Belakang Masalah... 1
1.2. Rumusan Masalah ... 2
1.3. Batasan Masalah ... 2
1.4. Tujuan dan Manfaat Penelitian ... 2
1.5. Metode Penelitian ... 3
1.6. Sistematika Penulisan ... 4
BAB II. ... 6
LANDASAN TEORI ... 6
2.1. Pengertian Sistem Rekomendasi ... 6
2.1.1. Content Based Filtering ... 7
(14)
xiv
2.1.3. Pengukuran Performansi ... 12
2.2. Android ... 13
2.2.1. Arsitektur Android ... 13
2.2.2. Komponen Dasar... 15
2.2.3. Daur Hidup Activity... 17
2.2.4. Daur Hidup Service ... 19
BAB III. ... 21
ANALISIS DAN PERANCANGAN SISTEM ... 21
3.1. ANALISIS SISTEM ... 21
3.1.1 GAMBARAN UMUM SISTEM ... 21
3.1.2 SOFTWARE REQUIREMENT ANALYSIS ... 22
3.2. PERANCANGAN SISTEM ... 22
3.2.1 ARSITEKTUR SISTEM ... 22
3.3. DESAIN MODEL SECARA UMUM ... 28
3.3.1 DIAGRAM USE CASE ... 28
3.3.2 NARASI USE CASE ... 29
3.3.3 DIAGRAM AKTIVITAS ... 29
3.3.4 MODEL ANALISIS ... 29
3.3.5 DIAGRAM KELAS ... 30
3.3.6 DESAIN BASIS DATA KONSEPTUAL ... 30
3.3.7 PERANCANGAN BASIS DATA FISIKAL ... 32
3.3.8 DESAIN ANTAR MUKA ... 35
BAB IV. ... 36
IMPLEMENTASI DAN ANALISIS SISTEM ... 36
4.1. DESAIN MODEL SECARA UMUM ... 36
4.1.1 Spesifikasi Perangkat Keras Dan Perangkat Lunak ... 36
4.1.2 Implementasi Diagram Kelas ... 36
4.2 PENGUJIAN ... 37
4.2.1 Pengujian Kinerja Sistem ... 37
4.2.1.1. Pengujian Presisi Sistem Untuk Rekomendasi Dokter ... 37
(15)
xv
PENUTUP ... 48
DAFTAR PUSTAKA ... 50
LAMPIRAN 1. ... 52
NARASI USE CASE ... 52
1. USECASE LOGIN ... 53
2. USECASE LIHAT REKOMENDASI ... 53
3. USECASE LIHAT PROMOSI ... 55
4. USECASE KELOLA DATA ... 56
5. REINDEX DATA ... 58
LAMPIRAN 2. ... 59
DIAGRAM AKTIVITAS ... 59
1. DIAGRAM AKTIVITAS LOGIN ... 60
2. DIAGRAM AKTIVITAS LIHAT REKOMENDASI ... 61
3. DIAGRAM AKTIVITAS LIHAT PROMOSI... 62
4. DIAGRAM AKTIVITAS TAMBAH KELAS ... 63
5. DIAGRAM AKTIVITAS UBAH KELAS ... 64
6. DIAGRAM AKTIVITAS HAPUS KELAS ... 65
7. DIAGRAM AKTIVITAS TAMBAH OBAT ... 66
8. DIAGRAM AKTIVITAS UBAH OBAT ... 67
9. DIAGRAM AKTIVITAS HAPUS OBAT ... 68
10. DIAGRAM AKTIVITAS TAMBAH DOKTER ... 69
11. DIAGRAM AKTIVITAS UBAH DOKTER ... 70
12. DIAGRAM AKTIVITAS HAPUS DOKTER ... 71
13. DIAGRAM AKTIVITAS TAMBAH RESEP ... 72
14. DIAGRAM AKTIVITAS UBAH RESEP ... 73
15. DIAGRAM AKTIVITAS HAPUS RESEP ... 74
16. DIAGRAM AKTIVITAS TAMBAH MEDREP ... 75
17. DIAGRAM AKTIVITAS UBAH MEDREP ... 76
18. DIAGRAM AKTIVITAS HAPUS MEDREP ... 77
(16)
xvi
LAMPIRAN 3. ... 79
DIAGRAM KELAS ... 79
1. DIAGRAM KELAS LOGIN ... 80
2. DIAGRAM KELAS REKOMENDASI DOKTER ... 81
3. DIAGRAM KELAS PROMOSI DOKTER ... 84
4. DIAGRAM KELAS TAMBAH KELAS ... 87
5. DIAGRAM KELAS UBAH KELAS ... 88
6. DIAGRAM KELAS HAPUS KELAS ... 90
7. DIAGRAM KELAS TAMBAH OBAT ... 91
8. DIAGRAM KELAS UBAH OBAT ... 93
9. DIAGRAM KELAS HAPUS OBAT ... 94
10. DIAGRAM KELAS TAMBAH DOKTER ... 96
11. DIAGRAM KELAS UBAH DOKTER ... 97
12. DIAGRAM KELAS HAPUS DOKTER ... 99
13. DIAGRAM KELAS TAMBAH RESEP ... 100
14. DIAGRAM KELAS UBAH RESEP ... 102
15. DIAGRAM KELAS HAPUS RESEP ... 104
16. DIAGRAM KELAS TAMBAH MEDREP ... 106
17. DIAGRAM KELAS UBAH MEDREP ... 107
18. DIAGRAM KELAS HAPUS MEDREP ... 109
19. DIAGRAM KELAS REINDEX DATA ... 111
LAMPIRAN 4. ... 113
MODEL DESAIN ... 113
1. DESAIN ANTARMUKA HALAMAN LOGIN ... 114
2. DESAIN ANTARMUKA HALAMAN PROFIL MEDREP ... 115
3. DESAIN ANTARMUKA HALAMAN REKOMENDASI DOKTER ... 116
4. DESAIN ANTARMUKA HALAMAN DETAIL DOKTER ... 117
5. DESAIN ANTARMUKA HALAMAN PROMOSI DOKTER ... 118
6. DESAIN ANTARMUKA HALAMAN ADMIN ... 119
7. DESAIN ANTARMUKA HALAMAN KELAS ... 120
(17)
xvii
9. DESAIN ANTARMUKA HALAMAN UBAH KELAS ... 121
10. DESAIN ANTARMUKA HALAMAN OBAT ... 122
11. DESAIN ANTARMUKA HALAMAN TAMBAH OBAT ... 123
12. DESAIN ANTARMUKA HALAMAN UBAH OBAT ... 124
13. DESAIN ANTARMUKA HALAMAN DOKTER ... 125
14. DESAIN ANTARMUKA HALAMAN TAMBAH DOKTER ... 127
15. DESAIN ANTARMUKA HALAMAN UBAH DOKTER ... 128
16. DESAIN ANTARMUKA HALAMAN RESEP ... 129
17. DESAIN ANTARMUKA HALAMAN TAMBAH RESEP ... 130
18. DESAIN ANTARMUKA HALAMAN UBAH RESEP ... 131
19. DESAIN ANTARMUKA HALAMAN MEDREP ... 132
20. DESAIN ANTARMUKA HALAMAN TAMBAH MEDREP ... 133
21. DESAIN ANTARMUKA HALAMAN UBAH MEDREP ... 134
Lampiran 5 . ... 135
IMPLEMENTASI USE CASE ... 135
1. HALAMAN LOGIN ... 136
2. HALAMAN PROFIL MEDREP ... 137
3. HALAMAN REKOMENDASI DOKTER ... 139
4. HALAMAN PROMOSI DOKTER ... 140
5. HALAMAN ADMIN ... 141
6. HALAMAN KELAS ... 142
7. HALAMAN TAMBAH KELAS ... 143
8. HALAMAN UBAH KELAS ... 143
9. HALAMAN OBAT ... 144
10. HALAMAN TAMBAH OBAT ... 145
11. HALAMAN UBAH OBAT ... 146
12. HALAMAN DOKTER ... 146
13. HALAMAN TAMBAH DOKTER ... 147
14. HALAMAN UBAH DOKTER ... 148
15. HALAMAN RESEP ... 149
(18)
xviii
17. HALAMAN UBAH RESEP ... 151
18. HALAMAN MEDREP ... 151
19. HALAMAN TAMBAH MEDREP ... 152
20. HALAMAN UBAH MEDREP ... 153
LAMPIRAN 6. ... 154
(19)
xix
DAFTAR GAMBAR
Gambar 3.1 Arsitektur Sistem ... 22
Gambar 3.2 Arsitektur aplikasi ... 23
Gambar 3.3 Gambar Diagram Use Case ... 28
Gambar 3.4 Diagram Kelas ... 30
Gambar 3.5 Diagram Relasi Entitas (ER Diagram) ... 31
Gambar 3.6 Tabel Relasi ... 31
(20)
xx
DAFTAR TABEL
Tabel 3.1 Tabel Data profil ... 25
Tabel 3.2 Tabel Data vektor... 25
Tabel 3.3 Tabel Data perkalian
w
Qj danw
ij ... 26Tabel 3.4 Tabel Data kuadrat
w
Qj danw
ij ... 26Tabel 3.5 Tabel Admin ... 32
Tabel 3.6 Tabel Dokter ... 32
Tabel 3.7 Tabel Jadwal Praktek ... 32
Tabel 3.8 Tabel Jual ... 33
Tabel 3.9 Tabel HasilVsm ... 33
Tabel 3.10 Tabel Kelas... 33
Tabel 3.11 Tabel Medrep ... 34
Tabel 3.12 Tabel Obat ... 34
Tabel 3.13 Tabel Resep ... 34
Tabel 3.14 Tabel Vektor... 35
Tabel 4.1 Tabel item query ... 37
(21)
1 BAB I. PENDAHULUAN
1.1. Latar Belakang Masalah
Saat ini penggunaan perangkat mobile sudah menjadi kebutuhan
pokok bagi sebagian besar masyarakat di negara berkembang. Berbagai
vendor perangkat mobile terus berlomba dalam menyediakan perangkat
mobile yang dapat memikat perhatian para pengguna. Berbagai perangkat
lunak telah dikembangkan untuk mengoptimalkan serta melengkapi fungsi
dari perangkat mobile tersebut. Terutama ketika masyarakat ingin mencari dan
mendapatkan sebuah informasi tertentu.
Salah satunya adalah Medical Sales Representative (MedRep).
MedRep bertugas sebagai bagian marketing dari perusahaan untuk
memasarkan obat dan membawa informasi produk kepada dokter dan para
medis di rumah sakit. Hampir setiap hari Medrep berkunjung ke rumah sakit
untuk bertemu dengan dokter maupun para medis. Informasi mengenai dokter
sangat diperlukan medrep pada saat menjalankan tugasnya. Sehingga
dibutuhkan aplikasi yang dapat membantu MedRep dalam mendapatkan
informasi seperti informasi dokter dan rumah sakit.
Pada tugas akhir ini di rancang sebuah aplikasi dengan pendekatan
Content Based Filtering. Content Based Filtering merupakan pendekatan yang
dilakukan berdasarkan kesamaan profil item dan profil pengguna. Profil
(22)
diukur kedekatannya menggunakan metode Vektor Space Model dengan
menghitung cosinus antara kedua buah vektor. Sehingga aplikasi ini akan
merekomendasikan profil yang cocok dan dianggap relevan untuk pengguna.
Dengan demikian diharapkan aplikasi ini dapat menjadi solusi dalam
permasalahan Medrep ketika memilih informasi yang akan digunakan.
1.2. Rumusan Masalah
Berdasarkan latar belakang di atas, dapat dirumuskan masalah
masalah yang terjadi yaitu :
Bagaimana aplikasi ini mampu memberikan informasi dokter yang akan
dikunjungi MedRep dengan tepat.
1.3. Batasan Masalah
Adapun batasan-batasan masalah dalam penulisan tugas akhir ini adalah
sebagai berikut :
1. Aplikasi hanya dapat dijalankan di ponsel berplatform Android.
2. Data yang digunakan hanya di RS JIH (Jogja International Hospital)
saja.
1.4. Tujuan dan Manfaat Penelitian
Tujuan dibuatnya tugas akhir yang berjudul “Sistem Rekomendasi Penjualan Obat Menggunakan Pendekatan Content Based Filtering Berbasis
(23)
memberikan rekomendasi mengenai informasi dokter yang relevan untuk
dikunjungi leh medrep berdasarkan pendekatan Content Based Filtering.
Manfaat dari hasil penelitian ini adalah memberikan informasi
mengenai dokter beserta Rumah Sakit yang dapat diakses melalui ponsel
sehingga diharapkan dapat membantu MedRep dalam pemasaran produk
sehingga lebih efisien dan tepat sasaran.
1.5. Metode Penelitian
Metode penelitian yang akan digunakan penulis dalam pembuatan sistem
adalah sebagai berikut :
1. Referensi (Literatur)
Metode pengumpulan data dengan cara membaca buku-buku dan
internet yang mendukung dan menunjang dalam pembuatan tugas
akhir.
2. Pembuatan perangkat lunak.
Proses pengumpulan kebutuhan diintensifkan dan difokuskan,
khususnya pada perangkat lunak. Untuk memahami sifat program yang
dibangun, perekayasa perangkat lunak (analisis) harus memahami
domain informasi, tingkah laku, unjuk kerja dan antar muka yang
diperlukan. Kebutuhan baik untuk sistem maupun perangkat lunak
(24)
3. Pengujian unjuk kerja.
Pengujuian ini dilakukan secara manual menggunakan perhitungan
recall dan precision untuk melihat apakah software yang dibuat dapat
memberikan hasil yang relevan atau tidak.
1.6. Sistematika Penulisan
Secara umum dalam penelitian ini, sistematika penulisan yang akan
digunakan adalah sebagai berikut :
BAB I : PENDAHULUAN
Bab ini membahas latar belakang masalah, rumusan masalah, tujuan
penelitian, batasan masalah, metodologi penelitian, dan sistematika
penulisan.
BAB II : LANDASAN TEORI
Bab ini membahas teori-teori yang digunakan dalam pembuatan
sistem.
BAB III : ANALISA DAN PERANCANGAN SISTEM
Bab ini membahas analisa dan perancangan sistem yang akan dibuat
secara umum, rancangan proses serta rancangan antar muka yang akan
(25)
BAB IV : IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini membahas implementasi dalam bentuk aplikasi berdasarkan
analisa dan perancangan yang telah dilakukan. Serta membahas analisa
hasil implementasi dan pengujian sistem.
BAB V : PENUTUP
Bab ini membahas kesimpulan dan saran dari hasil analisa sistem,
(26)
BAB II. LANDASAN TEORI `
2.1. Pengertian Sistem Rekomendasi
Sistem Rekomendasi atau disebut juga Recommender system
merupakan sebuah sistem yang menyarankan informasi yang berguna.
Sistem rekomendasi juga dapat menduga apa yang akan dilakukan pengguna
untuk mencapai tujuannya, misalnya seperti memilih produk tertentu.
Seperti yang disebutkan oleh Paul Resnick dan Hal R. Varian dalam
jurnalnya, recommender system membantu dan meningkatkan proses seleksi
alam. Suatu yang khas dalam sistem rekomendasi adalah orang memberikan
rekomendasi sebagai masukan, kemudian sistem mengagregrasikan dan
mengarahkan agar sesuai dengan si penerima. Dalam beberapa kasus,
transformasi utama ada di dalam proses agregasi. Kasus lainnya nilai sistem
terletak pada kemampuannya untuk mencocokkan dua hal yaitu bagian yang
dijadikan rekomendasi, dan yang mencari rekomendasi secara baik.
Tugas inti dari recommender system adalah untuk memprediksikan
evaluasi subyektif yang akan diberikan pengguna terhadap item. Prediksi ini
dihitung menggunakan sejumlah model prediktif yang memiliki
karakteristik umum, yaitu mengeksploitasi evaluasi atau penilaian yang
diberikan oleh pengguna untuk transaksi yang sebelumnya telah dilihat.
Berdasarkan teknik prediksi tertentu yang sedang digunakan, recommender
system telah diklasifikasikan ke dalam empat kategori utama [Burke, 2007]:
(27)
yang menggunakan pendekatan collaborative-based paling sederhana
menghitung korelasi antara pengguna, memprediksi peringkat produk untuk
pengguna saat ini didasarkan pada peringkat yang diberikan oleh pengguna
lain, yang sangat berhubungan dengan preferensi pengguna saat ini
[Herlocker et al, 1999]. Sedangkan sistem dengan pendekatan content-based
hanya menggunakan preferensi dari pengguna saat ini, memprediksi
peringkat untuk item yang tak terlihat berdasarkan seberapa banyak
deskripsinya atau isinya mirip dengan pengguna [Pazzani dan Billsus,
2007].
2.1.1. Content Based Filtering
Pendekatan Information filtering didasarkan pada bidang
information retrieval (IR) dan teknik yang digunakan pun banyak
yang sama [Hanani et al, 2001]. Satu aspek yang membedakan
antara information filtering dan information retrieval adalah
mengenai kepentingan pengguna. Pada IR pengguna menggunakan
ad-hoc queries, sedangkan information filtering pengguna sudah
mempunyai profil yang merepresentasikan kepentingan jangka
panjang, dan sistem mencoba memberikan kepada setiap pengguna,
item yang relevan. Berdasarkan pada ukuran kesamaan antara
masing-masing profil, sistem memilih dan membuat peringkat pada
item yang relevan, kemudian diberikan kepada pengguna. Terdapat
dua pendekatan pada information filtering, yaitu collaborative
(28)
Pada tugas akhir ini akan menggunakan pendekatan
content-based filtering. Berbeda dengan collaborative filtering yang memilih
dan membuat peringkat item untuk pengguna berdasarkan kesamaan
dari pengguna untuk pengguna lain yang menyukai item serupa di
masa lalu, tetapi pada pendekatan conten-based filtering ini, sistem
memilih dan melakukan peringkat item berdasarkan kesamaan profil
pengguna dan profil item. Keuntungan dari pendekatan ini adalah
pengguna mendapatkan wawasan tentang mengapa suatu item
dianggap relevan untuk mereka, karena konten di setiap item nya
diketahui dari representasinya. Namun pendekatan ini juga
mempunyai kelemahan, misalnya kenyataan bahwa pendekatan ini
berfokus pada kemiripan kata kunci. Pendekatan ini tidak mampu
menangkap hubungan yang lebih kompleks pada level semantik
yang lebih dalam, berdasarkan pada berbagai jenis atribut yang
berhubungan dengan obyek terstruktur dari teks [Dai dan Mobasher,
2001]. Kesamaan antara representasi dari pengguna dan representasi
dari item akan didasarkan pada prinsip kedekatan yang menyatakan
bahwa jarak dari dua deskripsi item secara langsung berkaitan
dengan kesamaan mereka [Knappe, 2005].
Menurut International Journal "Information Theories &
Applications" Vol.15 / 2008 oleh Peretz Shoval, Veronica Maidel,
Brancha Shapira dijelaskan bahwa representasi dari konten untuk
(29)
mewakili isinya. Misalnya, jika item berkaitan dengan olahraga, dan
secara khusus sepak bola, ini diwakili dengan konsep sepak bola
saja. Sedangkan representasi dari konten untuk profil pengguna
adalah : Profil pengguna terdiri dari daftar yang berbobot yang
merepresentasikan keinginannya. Sebagai contoh, profil pengguna
berisi konsep „olahraga‟ saja, atau „olahraga‟ dan „sepakbola‟, atau „sepak bola‟ dan „basket‟, atau ketiganya. Ini berarti bahwa konsep tertentu dalam profil item mungkin “matched” (yaitu dibandingkan) dengan lebih dari satu konsep setara dalam profil pengguna.
Misalnya jika dalam profil item terdapat „sepak bola‟ dan profil
pengguna terdapat „olahraga‟ dan „sepak bola‟ maka terdapat “perfect match” antara dua profil tersebut.
Dalam jurnal yang berjudul „Using Content-based Filtering
for Recommendation‟ oleh Robin van Meteren dan Marteen van Someren, sistem rekomendasi yang sedang diperkenalkan saat itu
adalah PRES, yang merupakan akronim dari Personal Recommender
System. Sistem ini bertujuan untuk membantu pengguna
menemukan informasi yang sesuai dengan kepentingan mereka pada
website. Sistem rekomendasi dapat meningkatkan website untuk
pengguna individu dengan menambahkan hyperlink secara dinamis.
Tujuannya adalah untuk memudahkan pengguna dalam menemukan
item yang sesuai, sehingga dapat meningkatkan interaksi antara
(30)
dimana sistem membuat rekomendasi dengan membandingkan profil
pengguna dengan isi setiap dokumen dalam koleksi. Isi dokumen
dapay direpresentasikan dengan satu set term. Term diekstrak dari
dokumen dengan menjalankan sejumlah langkah parsing. Pertama,
semua tag html dan stop word (kata yang sering muncul dan tidak
dapat digunakan sebagai diskriminator) akan dihapus. Kata yang
tersisa dikurangi menjadi induk mereka dengan menghapus awalan
dan akhiran [Porter, 1980].
Terdapat beberapa cara untuk merepresentasikan agar dapat
digunakan sebagai komponen pembelajaran. Sebuah metode yang
paling sering digunakan adalah Vector Space Model. Pada metode
ini, dokumen D direpresentasikan sebagai vektor m dimensional.
Dimana setiap dimensi berkorespondensi terhadap term yang
berbeda dan m adalah total jumlah term yang dipakai dalam koleksi
dokumen. Vektor dokumen adalah ditulis sebagai, wi adalah bobot
dari term ti yang menunjukkan tingkat kepentingan. Jika pada
dokumen D tidak mengandung term timaka bobot dari wiadalah nol.
Bobot term dapat ditentukan dengan menggunakan skema tf-idf.
Pada pendekatan ini bobot dihitung berdasarkan pada seberapa
sering sebuah term muncul pada sebuah dokumen, dan seberapa
sering ditemukan dalam koleksi dokumen. Selanjutnya teori
mengenai vector space model akan dibahas dalam sub bab
(31)
2.1.2. Vector Space Model
Vector space model adalah suatu model yang digunakan
untuk mengukur kemiripan antara suatu dokumen dengan suatu
query. Pada model ini, query dan dokumen dianggap sebagai
vektor-vektor pada ruang n-dimensi, dimana n adalah jumlah dari seluruh
term yang ada dalam leksikon. Leksikon adalah daftar semua term
yang ada dalam indeks. [Salton, 1989].
Vector space model digunakan karena pada metode ini
memungkinkan proses pemeringkatan dokumen. Metode ini
menghitung nilai cosinus dari dua vektor. Dua vektor tersebut
adalah bobot dari tiap dokumen dan bobot dari query. Bobot
dokumen dan query digunakan untuk proses pemeringkatan
dokumen, seperti yang terlihat pada Gambar 2.1 berikut.
Gambar 2.1 Vector Space Model
Pembobotan term dalam vektor dokumen dapat ditentukan
dalam banyak cara. Pendekatan yang umum, dan digunakan dalam
(32)
ditentukan oelh dua faktor: seberapa sering term j terdapat dalam
dokumen i (term frequency tfi,j) dan seberapa sering muncul dalam
seluruh dokumen koleksi (document frequency dfj). Tepatnya bobot
term j pada dokumen i dirumuskan seperti berikut :
N merupakan jumlah dokumen yang terdapat dalam koleksi
dokumen. Idf merupakan singkatan dari inverse document
frequency. Metode ini memberikan bobot tinggi pada term yang
sering muncul pada sedikit dokumen pada dokumen set.
Setelah bobot term dihitung, diperlukan suatu fungsi
pemeringkatan untuk mengukur kemiripan antara query dan
dokumen vektor. Pengukuran kemiripan yang umum dikenal
sebagai pengukuran kosinus. Pengukuran ini menentukan sudut
antara vektor dokumen dan query ketika direpresentasikan dalam
V-dimensional Euclidean, dimana v adalah ukuran vocabulary.
Tepatnya kemiripan antara dokumen Di dan query Q didefinisikan
sebagai berikut : [Lee, 1997]
CosSim(Q,Di) =
t j t j t jw
w
w
w
ij Qj ij Qj 1 1 2 2 1 ) (2.1.3. Pengukuran Performansi
Menurut Lee (1997) cara konvensional untuk mengukur
kualitas hasil yang dikembalikan oleh sebuah sistem dalam (2.2)
(33)
menanggapi permintaan adalah dengan menggunakan recall dan
precision.
2.2.2.1. Precision
Precision adalah proporsi jumlah dokumen yang ditemukan dan dianggap relevan untuk kebutuhan si pencari informasi.
Precision = correctly_recommended_item
total_recommended_item
2.2. Android
Android merupakan sistem operasi yang dikembangkan untuk
perangkat mobile berbasis Linux.
2.2.1. Arsitektur Android
Sistem operasi Android dibangun berdasarkan kernel Linux dan
memiliki arsitektur seperti gambar 1.1 berikut.
Gambar 2.2 Arsitektur Android
(34)
2.2.1.1. Application
Lapisan ini adalah lapisan aplikasi, serangkaian aplikasi akan
terdapat pada perangkat mobile. Aplikasi inti yang telah terdapat
pada Android termasuk kalender, kontak, SMS, dan lain
sebagainya.Aplikasi-aplikasi ini ditulis dengan bahasa
pemrograman Java.
2.2.1.2. Application Framework
Pengembangan aplikasi memiliki akses penuh ke Android
sama dengan aplikasi inti yang telah tersedia. Pengembang
dapat dengan mudah mengakses informasi lokasi, mengatur
alarm, menambahkan pemberitahuan ke status bar dan lain
sebagainya. Arsitektur aplikasi ini dirancang untuk
menyederhanakan penggunaan kembali komponen, aplikasi apa
pun dapat memubikasikan kemampuan dan aplikasi lain dapat
menggunakan kemampuan mereka sesuai batasan keamanan.
Dasar dari aplikasi adalah seperangkat layanan dan sistem,
yaitu berbagai View yang digunakan untuk membangun UI,
Content Provider yang memungkinkan aplikasi berbagi data,
ResourceManager menyediakan akses bukan kode sperti
grafik, string, dan layout NotificationManager yang akan
membuat aplikasi dapat menampilkan tanda pada status bar dan
ActivityManager yang berguna mengatur daur hidup dari
(35)
2.2.1.3. Libraries
Satu set libraries dalam bahasa C/C++ yang digunakan oleh
berbagai komponen pada system Android.
2.2.1.4. Android Runtime
Satu set libraries inti yang menyediakan sebagian besar fungsi
yang tersedia di libraries inti dari bahasa pemrograman Java.
Setiap aplikasi akan berjalan sebagai proses sendiri pada Dalvik
Virtual Machine (VM).
2.2.1.5. Linux Kernel
Android bergantung pada Linux versi 2.6 untuk layanan system
inti seperti keamanan, manajemen memori, manajemen proses,
network stack, dan model driver.Kernel juga bertindak sebagai
lapisan antara hardware dan seluruh software
2.2.2. Komponen Dasar
Aplikasi Android ditulis dalam bahasa pemrograman Java. Java
mengompilasi kode bersama dengan data resource dan file yang
dibutuhkan oleh aplikasi dibundel ke dalam paket Android, file arsip
ditandai dengan .apk. Komponen aplikasi pada Android terdiri dari 4
komponen utama, yaitu :
2.2.2.1. Activities
Activities merupakan potongan kode executable yang
(36)
sistem operasi dan berjalan selama diperlukan.Activities
biasanya sesuai dengan tampilan layar : masing-masing
Activities menunjukkan satu layar untuk pengguna.
Activitiesyang tidak aktif dijalankan dapat dimatikan oleh
sistem operasi untuk menghemat memori.
2.2.2.2. Service
Service tidak memiliki visual UI, melainkan berjalan di latar belakang untuk waktu yang tidak terbatas. Contoh dari service
adalah MP3 player yang akan terus memainkan file MP3 sesuai
urutan file, walaupun pengguna menggunakan aplikasi lain.
2.2.2.3. Broadcast Receiver
Broadcast Receiver merupakan komponen yang menerima dan
bereaksi untuk menyiarkan pengumuman.Banyak siaran berasal
dalam kode sistem, misalnya pengumuman bahwa zona waktu
telah berubah, baterai rendah, bahwa gambar telah diambil,
atau bahwa pengguna mengubah preferensi bahasa. Aplikasi
juga dapat melakukan siaran misalnya untuk membiarkan
aplikasi lain tahu bahwa beberapa data teah di-download ke
perangkat dan tersedia sehingga dapat digunakan.
(37)
Content Providerdiciptakan untuk berbagi data dengan
Activities lain atau Service. Sebuah Content Provider
menggunakan antarmuka standar dalam bentuk URI untuk
memenuhi permintaan data dari aplikasi lain.
2.2.3. Daur Hidup Activity
Activity memiliki tiga status dasar : 1. Active atau Running
Status ini ketika Activity berjalan di foreground (di bagian atas
stack untuk task ini). Activity yang berkaitan aktif dengan
pengguna.
2. Pause
Jika Activity telah kehilangan focus tetapi masih dapat dilihat
oleh pengguna yang berarti ada Activity lain yang berjalan di atas
Activity ini, sebuah Activity yang transparan atau tidak menutupi
layar penuh sehingga Activity dalam status pause dapat terlihat.
Sebuah Activity dalam status pause tetap hidup, yaitu Android
tetap mempertahankan semua informasi dan tetap melekat pada
Windows Manager hingga akhirnya dapat dimatikan oleh sistem
ketika memori sangat rendah.
(38)
Activity benar-benar dihentikan karena ada Activity lain yang
memenuhi layar. Semua informasi dipertahankan tetapi tidak
dapat dilihat oleh pengguna sehingga jendela tersembunyi dan
dapat dimatikan oleh sistem ketika memori dibutuhkan.
Metode yang terdapat pada Activity :
onCreate()
Dipanggil ketika Activity pertama kali dibuat.Biasanya
merupakan metode di mana View yang ingin ditampilkan
dibuat, membuka data file, maupun menginisialisasi
Activity.Saat memanggil OnCreate, kerangka Android
melewati sebuah Bundel objek yang mengandung state activity
yang disimpan ketika Activity pertama berjalan.
onStart()
Dipanggil sebelum Activity terlihat pada layar. Ketika Activity
dapat menjadi Activity foreground, maka akan dipanggil
method OnResume() sedangkan jika tidak maka akan dipanggil
method OnStop().
onResume()
Dipanggil setelah OnStart() apabila Activity dapat menjadi
foreground. Saat ini, Activity dapat bereaksi dengan
pengguna.OnResume() juga akan dipanggil ketika Activity ini
tidak menjadi foreground karena ada Activity lain lalu Activity
(39)
onPause()
Dipanggil ketika Activity lain dibawa ke foreground. Pada
status ini Activity tidak memiliki akses ke layar.
onStop()
Dipanggil ketika Activity tidak lagi terlihat karena adanya
Activity lain yang dibawa ke foreground atau Activity ini
dimatikan.
OnDestroy()
Dipanggil terakhir sebelum Activity dimatikan ketika Android
membutuhkan resources yang digunakan oleh Activity.
2.2.4. Daur Hidup Service
Daur hidup Service hapir sama dengan Activity tetapi memiliki
beberapa perbedaan untuk detailnya.
OnCreate() dan OnStart()
Dipanggil apabila seseorang klien memanggil
Context.startService(Intent). Jika service belum berjalan maka
Android akan membuatnya dan memanggil OnCreate() diikuti
method OnStart(). Apabila service telah berjalan, Android
hanya akan memanggil OnStart().
OnBind()
Ketika klien membutuhkan koneksi ke service maka akan
(40)
pembuatan service apabila service tidak sedang berjalan tanpa
memanggil OnStart().
OnDestroy()
Sama dengan Activity, method ini akan dipanggil ketika
service akan dimatikan. Android akan mematikan service
apabila telah tidak ada lagi klien yang memulai atau bind ke
service ini.
(41)
BAB III.
ANALISIS DAN PERANCANGAN SISTEM
3.1. ANALISIS SISTEM
3.1.1 GAMBARAN UMUM SISTEM
Analisis sistem merupakan suatu teknik penyelesaian masalah yang
membagi sistem ke dalam bagian-bagian komponen kecil dengan tujuan
agar bagian-bagian dari komponen tersebut dapat bekerja dengan baik.
Seperti yang telah dijelaskan pada latar belakang masalah, sistem
informasi yang akan dibuat ini merupakan sistem yang dapat membantu
MedRep dalam mendapatkan rekomendasi dokter yang cocok untuk
dikunjungi beserta informasi lengkapnya. Sistem akan memberikan
rekomendasi dokter sesuai dengan obat yang dibawa oleh medrep.
Sebelum memberikan rekomendasi dokter yang cocok, sistem akan
menghitung terlebih dahulu nilai kecocokan antara profil medrep dengan
semua dokter, sehingga akan ditampilkan dokter yang relevan untuk
dikunjungi.
Sistem ini akan digunakan oleh 2 pengguna yaitu admin dan medrep.
Admin menggunakan sistem ini untuk mengelola data medrep, dokter,
obat, kelas dan resep dokter. Sedangkan medrep menggunakan sistem ini
untuk mendapatkan rekomendasi dokter dan promosi dokter beserta
informasi lengkapnya dengan memasukkan data profil atau obat yang
(42)
3.1.2 SOFTWARE REQUIREMENT ANALYSIS
Seperti yang sudah dijelaskan pada pendahuluan, bahwa Sistem
Rekomendasi Penjualan Obat Menggunakan Pendekatan Content Based
Filtering Berbasis Mobile Android akan berjalan hanya pada ponsel yang
memiliki sistem operasi Android.
3.2. PERANCANGAN SISTEM
3.2.1 ARSITEKTUR SISTEM
Web server Pengguna
Gambar 3.1 Arsitektur Sistem
Pada gambar diatas dapat dijelaskan bahwa pengguna dapat
menggunakan aplikasi yang dapat diakses melalui device mobile yang
terkoneksi dengan internet. Untuk penyimpanan data dan proses
(43)
Proses perhitungan yang terjadi dalam web server dapat dijelaskan pada
gambar 3.2 arsitektur aplikasi dibawah ini.
Input data obat, kelas, resep dokter
Data Corpus (kelas, dokter)
Vektor Space Model
Cosine Similarity
List rekomendasi
MedRep
Masukkan profile (kelas)
Gambar 3.2 Arsitektur aplikasi
Pada gambar diatas terdapat beberapa langkah yang harus dilakukan
untuk mendapatkan list rekomendasi dokter. Langkah pertama, inputan
untuk sistem merupakan data resep dari dokter yang telah di rekap berupa
data obat yang sering diresepkan dalam waktu 1 bulan. Data Corpus
merupakan data yang sudah diolah yang dapat digunakan untuk
pembentukan rekomendasi pada sistem. Data corpus ini berisi data dokter,
(44)
yang diresepkan dokter dan memiliki kelas yang sama. Kemudian data
corpus disimpan dalam table vektor. Masukkan profil medrep berupa nama
kelas dari obat yang dibawa oleh medrep. Kemudian data tersebut akan
diproses menggunakan pendekatan VSM yang akan direpresentasikan
dalam bentuk vektor. PendekatanVSM ini akan membandingkan 2 profil
yaitu profil query dan profil item pembanding. Kemudian dari kedua profil
tersebut akan membentuk vektor yang akan dihitung kemiripannya
menggunakan CosineSimilarity. Semakin dekat dua vektor di dalam VSM
semakin mirip 2 profil yang diwakili oleh vektor tersebut. Berdasarkan
urutan kemiripan dari hasil perhitungan maka sistem akan menampilkan
list rekomendasi sesuai dengan hasil perhitungannya. Hasil yang
mendekati angka 1 merupakan rekomendasi yang paling mendekati
dengan query profil.
Berikut adalah contoh perhitungan manual untuk proses rekomendasi
pada sistem yang akan dibuat. Ada dua profil yang masing-masing akan
dibandingkan, yang pertama adalah profil query yang isinya adalah profil
item dari pengguna atau MedRep. Yang kedua adalah profil item
pembanding yaitu profil item dari dokter yang terbentuk dari data vektor.
Kemudian dari perhitungan di bawah ini akan dicari nilai kecocokan
antara masing-masing profil yang dibandingkan kemudian diurutkan
(45)
Tabel 3.1 Tabel Data profil
MedRep Dokter 1 Dokter 2 Dokter 3 Dokter 4 Dokter 5
Kelas A 0 5 0 9 2 9
Kelas B 0 3 0 0 0 0
Kelas C 0 0 6 4 0 0
Kelas D 1 0 9 0 10 8
Kelas E 0 0 3 7 5 0
Kelas F 1 6 0 2 3 2
Kelas G 1 7 0 0 7 6
Kelas H 0 0 3 0 7 2
Pada tabel diatas berisi profil dokter dan profil medrep. Setiap profil
ditunjukkan dalam bentuk vektor. Saat pembentukan rekomendasi, bobot pada
dokter tidak akan diperhitungkan sehingga setiap dokter yang memiliki bobot
akan diubah menjadi 1, dan nilai 0 jika tidak memiliki bobot. Berikut adalah
tabel data vektor yang sudah diubah menggunakan nilai 1 dan 0.
Tabel 3.2 Tabel Data vektor
MedRep Dokter 1 Dokter 2 Dokter 3 Dokter 4 Dokter 5
Kelas A 0 1 0 1 1 1
Kelas B 0 1 0 0 0 0
Kelas C 0 0 1 1 0 0
Kelas D 1 0 1 0 1 1
Kelas E 0 0 1 1 1 0
Kelas F 1 1 0 1 1 1
Kelas G 1 1 0 0 1 1
Kelas H 0 0 1 0 1 1
Tabel diatas dapat dijelaskan bahwa profil medrep yang terbentuk berisi
obat dengan kelas D, F dan G. Kemudian profil dokter1 yang terbentuk berisi
obat dengan kelas A, B, F dan G. Kedua profil tersebut akan dibandingkan dan
dihitung menggunakan rumus CosSim. Berikut adalah langkah-langkah yang
(46)
Tabel 3.3 Tabel Data perkalian
w
Qj danw
ijMedRep Dokter 1 Dokter 2 Dokter 3 Dokter 4 Dokter 5
Kelas A 0 0 0 0 0 0
Kelas B 0 0 0 0 0 0
Kelas C 0 0 0 0 0 0
Kelas D 1 0 1 0 1 1
Kelas E 0 0 1 1 1 0
Kelas F 1 1 0 1 1 1
Kelas G 1 1 0 0 1 1
Kelas H 0 0 0 0 0 0
Sum 2 1 1 3 3
Tabel diatas menjelaskan perkalian dari bobot dokter (
w
ij) dengan bobot medrep (w
Qj) dan menjumlahkan untuk setiap bobot dokter.Tabel 3.4 Tabel Data kuadrat
w
Qj danw
ijMedRep Dokter 1 Dokter 2 Dokter 3 Dokter 4 Dokter 5
Kelas A 0 1 0 1 1 1
Kelas B 0 1 0 0 0 0
Kelas C 0 0 1 1 0 0
Kelas D 1 0 1 0 1 1
Kelas E 0 0 1 1 1 0
Kelas F 1 1 0 1 1 1
Kelas G 1 1 0 0 1 1
Kelas H 0 0 1 0 1 1
Sum 3 4 4 4 6 5
Sqrt(sum) 1.732051 2 2 2 2.44949 2.236068
Cosin 0.57735 0.288675 0.288675 0.707107 0.774597
Tabel diatas menjelaskan kuadrat dari bobot dokter (
w
ij) dan kuadrat bobot medrep (w
Qj). Kemudian penjumlahan untuk setiap bobot dokter dan mendapatkan hasil akhir yaitu nilai cosin untuk setiap dokter.(47)
Perhitungan ini menggunakan rumus Cosine Similarity yaitu :
CosSim(Q,Di) =
t j t j t jw
w
w
w
ij Qj ij Qj 1 1 2 2 1 ) (dimana
w
ij merupakan bobot dari profil dokter danw
Qjmerupakan bobot dari profil medrep. Sebagai contoh hasil perhitungan di atas, akandijelaskan sebagai berikut :
1. Profil Dokter 4 akan dihitung nilai kemiripannya dengan profil
MedRep.
2. Jika dimasukkan ke dalam rumus :
Cosin = sum(dokter4*MedRep) / (sqrt(dokter4^2)*sqrt(MedRep^2))
Cosin= 0) 1 1 0 1 0 0 (0 * 1) + 1 + 1 + 1 + 1 + 0 + 0 + (1 0) + 1 + 1 + 0 + 1 + 0 + 0 + (0 Cosin = 3 * 6 3
Cosin = 0.707107
Dari hasil perhitungan di atas ditunjukkan bahwa hasil query yang
mendekati dengan profil item yang dicari adalah Dokter5 dan Dokter4.
Hal ini ditunjukkan dengan nilai Cosin yang mendekati nilai 1 yaitu
0.774597 untuk Dokter5 dan 0.707107 untuk Dokter4. Selanjutnya profil yang direkomendasikan akan diurutkan berdasarkan nilai cosin yang
terbesar. Sehingga urutan profil yang akan direkomendasikan adalah
(48)
3.3. DESAIN MODEL SECARA UMUM
3.3.1 DIAGRAM USE CASE
Diagram use case merupakan diagram yang menggambarkan interaksi
antara sistem dengan sistem eksternal dan pengguna. Dengan kata lain,
secara grafis menggambarkan siapa yang akan menggunakan sistem dan
dengan cara apa pengguna mengharapkan untuk berinteraksi dengan
sistem (Whitten, 2004).
Medrep
Login
«extends»
Admin
Kelola Data Lihat Promosi Lihat Rekomendasi
Reindex Data
Gambar 3.3 Gambar Diagram Use Case
Diagram 3. Merupakan diagram use case dari admin dan medrep.
Admin memiliki wewenang untuk mengelola semua data dokter, obat,
resep, kelas, medrep serta reindex data. Sedangkan medrep memiliki
(49)
3.3.2 NARASI USE CASE
Setiap use case pada diagram use case gambar 3.3, akan dirinci dalam
sebuah narasi use case yang akan mendeskripsikan secara tertulis aktivitas
yang ada pada use case, adapun skenario use case dari gambar diagram
use case gambar 3.3 terdapat pada lampiran 1 halaman 63.
3.3.3 DIAGRAM AKTIVITAS
Merupakan diagram yang menjelaskan aktivitas antara user dengan
sistem. Secara lebih rinci tahap activity diagram dapat dilihat pada
lampiran 2 halaman 70.
3.3.4 MODEL ANALISIS
Merupakan suatu proses untuk menterjemahkan skenario use case
menjadi kelas analisis. Dalam kelas analisis terdapat tiga jenis, yaitu
form/boundary, controller, dan entity.
1. Relasi use case
Analisis kelas dilakukan pada setiap use case. Setiap use case dicari
kelas analisisnya sehingga dapat menentukan kebutuhan kelas. Hasil
(50)
3.3.5 DIAGRAM KELAS <<Interface>> HalamanLogin <<Interface>> HalamanTambahMedrep <<Interface>> HalamanUbahMedrep <<Interface>> HalamanTambahKelas <<Interface>> HalamanTambahDokter <<Interface>> HalamanUbahDokter <<Interface>> HalamanTambahObat <<Interface>> HalamanUbahObat <<Interface>> HalamanTambahResep <<Interface>> HalamanUbahResep <<Interface>> HalamanKelas <<Interface>> HalamanDokter <<Interface>> HalamanMedrep <<Interface>> HalamanResep <<Interface>> HalamanObat <<Interface>> HalamanAdmin <<Interface>> HalamanProfilMedrep <<Interface>> HalamanRekomendasi Dokter <<Interface>> HalamanPromosi Dokter Kelas-Kelas Android <<Controller>> Login <<Controller>> Medrep <<Controller>> Kelas <<Controller>> Dokter <<Controller>> Obat <<Controller>> Resep <<Controller>> ProfilMedrep <<Controller>> VSM <<Entity>> Medrep <<Entity>> Kelas <<Entity>> Dokter <<Entity>> Obat <<Entity>> Resep <<Entity>> Vektor <<Entity>> Jual <<Entity>> Login
Gambar 3.4 Diagram Kelas
3.3.6 DESAIN BASIS DATA KONSEPTUAL
Perancangan diagram E-R menggambarkan relasi antar entitas (entity)
yang digunakan untuk sistem. Berikut ini adalah desain konseptual dari
(51)
Obat id_obat nama_obat pabrik N MedRep id_medrep nama_medrep N telepon alamat_medrep Dokter id_dokter nama_dokter inisial spesialis frekuensi N resep N bulan alamat_dokter Kelas id_kelas nama_kelas cosim Jadwal_Praktek id_dokter hari jam max_frekuensi komposisi id_kelas jual password_medrep username_medrep 1 telepon 1 N N N Hasil Vsm N
Gambar 3.5. Diagram Relasi Entitas (ER Diagram)
(52)
3.3.7 PERANCANGAN BASIS DATA FISIKAL
Berikut ini adalah desain fisik dari basis data yang dirancang.
No Nama Kolom Tipe Fungsi
1 ID_ADMIN Integer Sebagai primary key dari tabel 2 USERNAME Varchar Menyimpan username admin 3 PASSWORD Varchar Menyimpan password admin
Tabel 3.5 Tabel Admin
Tabel Admin digunakan untuk menyimpan informasi login untuk admin.
No Nama Kolom Tipe Fungsi
1 ID_DOKTER Integer Sebagai primary key dari tabel 2 NAMA_DOKTER Varchar Menyimpan nama dokter 3 INISIAL Varchar Menyimpan inisial dokter 4 SPESIALIS Varchar Menyimpan spesialis dokter 5 ALAMAT_DOKTER Varchar Menyimpan alamat dokter 6 TELEPON Varbinary Menyimpan telepon dokter
Tabel 3.6 Tabel Dokter
Tabel Dokter digunakan untuk menyimpan semua informasi dokter.
No Nama Kolom Tipe Fungsi
1 ID_DOKTER Integer Sebagai foreign key dari tabel 2 HARI Varchar Menyimpan hari praktek dokter 3 JAM Varchar Menyimpan jam praktek dokter
Tabel 3.7 Tabel Jadwal Praktek
Tabel Jadwal Prakter digunakan untuk menyimpan semua informasi
(53)
No Nama Kolom Tipe Fungsi
1 ID_MEDREP Integer Sebagai foreign key dari tabel 2 ID_KELAS Integer Sebagai foreign key dari tabel
Tabel 3.8 Tabel Jual
Tabel Jual digunakan untuk menyimpan semua informasi penjualan
medrep.
No Nama Kolom Tipe Fungsi
1 ID_MEDREP Integer Sebagai foreign key dari tabel 2 ID_DOKTER Integer Sebagai foreign key dari tabel
3 COSIM Double Menyimpan cosim dokter
Tabel 3.9 Tabel HasilVsm
Tabel HasilVsm digunakan untuk menyimpan semua informasi hasil vsm
yang berisikan nilai cosim.
No Nama Kolom Tipe Fungsi
1 ID_KELAS Integer Sebagai primary key dari tabel 2 NAMA_KELAS Varchar Menyimpan nama kelas
3 MAX_FREKUENSI Integer Menyimpan max frekuensi kelas
Tabel 3.10 Tabel Kelas
(54)
No Nama Kolom Tipe Fungsi
1 ID_MEDREP Integer Sebagai primary key dari tabel 2 NAMA_MEDREP Varchar Menyimpan nama medrep 3 USERNAME_MEDREP Varchar Menyimpan username medrep 4 PASSWORD_MEDREP Varchar Menyimpan password medrep 5 ALAMAT_MEDREP Varchar Menyimpan alamat medrep 6 TELEPON Varbinary Menyimpan telepon medrep
Tabel 3.11 Tabel Medrep
Tabel Medrep digunakan untuk menyimpan semua informasi medrep.
No Nama Kolom Tipe Fungsi
1 ID_OBAT Integer Sebagai primary key dari tabel 2 NAMA_OBAT Varchar Menyimpan nama obat
3 PABRIK Varchar Menyimpan pabrik obat 4 ID_KELAS Integer Sebagai foreign key dari tabel 5 KOMPOSISI Varchar Menyimpan komposisi obat
Tabel 3.12 Tabel Obat
Tabel Obat digunakan untuk menyimpan semua informasi obat.
No Nama Kolom Tipe Fungsi
1 ID_DOKTER Integer Sebagai foreign key dari tabel 2 ID_OBAT Integer Sebagai foreign key dari tabel
3 BULAN Varchar Menyimpan bulan resep
4 FREKUENSI Integer Menyimpan frekuensi resep
Tabel 3.13 Tabel Resep
(55)
No Nama Kolom Tipe Fungsi
1 ID_DOKTER Integer Menyimpan id dokter 2 ID_KELAS Integer Menyimpan id kelas 3 BOBOT Integer Menyimpan bobot vektor
4 BOBOT_NORMAL Integer Menyimpan bobot normal vektor
Tabel 3.14 Tabel Vektor
Tabel Vektor digunakan untuk menyimpan semua informasi vektor.
3.3.8 DESAIN ANTAR MUKA
Pada desain antarmuka sistem ini akan ditampilkan desain dari tiap
form yang akan dibentuk. Desain antarmuka akan dijelaskan lebih lengkap
(56)
BAB IV.
IMPLEMENTASI DAN ANALISIS SISTEM
4.1. DESAIN MODEL SECARA UMUM
Penelitian ini telah diimplementasikan menjadi sebuah aplikasi yang siap
digunakan, yang dibangun dengan tahapan-tahapan berikut:
4.1.1 Spesifikasi Perangkat Keras Dan Perangkat Lunak
Perangkat keras yang dipakai untuk membangun sistem adalah
sebagai berikut:
Processor : Intel(R) Core(TM)2 Duo CPU T7500 @2.20GHz
Memori : 2.00 GB
Hard Disk : 250 GB
Perangkat lunak yang dipakai untuk membangun sistem adalah
sebagai berikut:
Bahasa Pemrograman : Java Eclipse Helios IDE 3.6.2
DBMS : MySql 5.0
4.1.2 Implementasi Diagram Kelas
Program dibangun dengan berbasis orientasi objek, sehingga dalam
implementasinya dibutuhkan kelas-kelas untuk mendefinisikan
objek-objek yang akan dipakai. Adapun kelas-kelas yang telah terbentuk akan
(57)
4.2 PENGUJIAN
Tahap akhir dari penelitian ini adalah pengujian sistem yang telah
dibangun. Sistem rekomendasi yang dibangun telah berhasil
diimplementasikan ke dalam sebuah program, yang dapat diakses oleh
user secara langsung. Pengujian ini dilakukan di Jogja International
Hospital JIH dengan mendatangi Medrep untuk menggunakan aplikasi ini
serta meminta medrep untuk memberikan tanggapan dari hasil
rekomendasi dokter yang diberikan sistem, manakah dokter yang relevan
untuk dikunjungi sesuai dengan profil medrep. Relevan artinya dokter
yang meresepkan obat yang dijual oleh medrep. Kemudian dari hasil
pengujian akan dihitung precision untuk masing-masing query serta
menghitung average precision.
Precision = Dokter yang dipilih oleh medrep
Dokter yang direkomendasikan oleh sistem
4.2.1 Pengujian Kinerja Sistem
4.2.1.1. Pengujian Presisi Sistem Untuk Rekomendasi Dokter
Berikut ini adalah sampel data yang digunakan sebagai item query
yang digunakan sebagai profil medrep :
Tabel 4.1 Tabel item query
No Kelas obat (Query Medrep) 1.
2. 3. 4.
Anastesi Lokal Ansiolitik Antasid
(58)
5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Antikoagulan, Antiplatelet, dan Fibrinolitik Antispasmodik
Antijamur
Beta Laktam Golongan Lain Diuretik
Hemostatik
Hipnotik dan Sedativa Hormon Kortikosteroid Kuinolon
Obat Anti Inflamasi Non Steroid (OAINS) Obat Hematopoietik
Obat jantung
Obat Gangguan Neuromuskular Penisilin
Perawatan Suportif
Preparat Antiasma dan PPOK Relaksan Otot
Sefalosporin
Vaksin, Antiserum dan Imunologikal Vasodilator Perifer dan Aktivator Serebal Vasokonstriktor
Vitamin B-Complex Vitamin C
(59)
Query 1 :
Kelas yang dipilih : Antasid Dokter yang
dipilih
Urutan dalam sistem
Dokter yang dipilih
Urutan dalam sistem MS SK TA RA Su AD AM AN TS NA 1 2 3 4 5 6 7 8 9 12 IK PA HW NB IM DN WK KS WR AP 13 14 15 16 17 19 26 28 29 30
Query 2 :
Kelas yang dipilih : Antasid; Antijamur; Hormon Kortikosteroid; Kuinolon; Obat Anti Inflamasi Non Steroid (OAINS); Obat jantung; Preparat Antiasma dan PPOK; Vitamin dan/atau Mineral Dokter yang
dipilih
Urutan dalam sistem
Dokter yang dipilih
Urutan dalam sistem
Mg 1 PW 26
AWW 2 NA 27
BP 3 LH 28
KS 4 AS 29
AP 5 HW 31
WR 6 IM 32
TS 7 DN 33
NH 8 MJ 34
IK 9 UT 35
IK 10 Ty 36
NB 11 NA 37
SK 12 TN 43
TA 13 SR 44
RA 14 SY 45
Su 15 IP 46
AD 16 AI 47
NH 17 DT 48
AB 20 YF 51
WK 21 ES 52
(60)
Query 3 :
Kelas yang dipilih : Anastesi Lokal; Hemostatik; Obat Anti Inflamasi Non Steroid (OAINS); Obat jantung; Vasokonstriktor Dokter yang
dipilih
Urutan dalam sistem
Dokter yang dipilih
Urutan dalam sistem
AN 1 UT 25
PW 2 NA 26
IK 3 AB 27
AS 4 WK 28
AM 5 NT 30
DT 6 HH 31
AS 7 BY 32
IS 8 HA 33
TN 9 FN 34
SR 10 SK 35
TS 11 TA 36
NH 12 SY 37
LH 13 RA 38
AP 14 Su 39
NB 15 AD 41
HW 16 NA 43
IM 17 NH 46
DN 19 KS 50
Yu 22 WR 51
Ty 24
Query 4 :
Kelas yang dipilih : Obat Anti Inflamasi Non Steroid (OAINS); Dokter yang
dipilih
Urutan dalam sistem
Dokter yang dipilih
Urutan dalam sistem
AS 1 PW 21
MJ 2 NA 22
Ty 3 IK 23
UT 4 NB 25
NA 5 HW 26
HA 6 IM 27
FN 7 AWW 28
SK 8 YF 29
TA 9 DN 30
SY 10 NH 31
RA 11 ES 32
Su 12 Yu 36
(61)
AM 14 SR 40
DT 15 TN 41
SR 16 KS 42
IS 17 LH 43
TS 18 AS 44
AN 19 AP 45
NH 20 WR 46
Query 5 :
Kelas yang dipilih : Antasid; Antibiotik Golongan Lain;
Antispasmodik; Antijamur; Kuinolon; Obat Anti Inflamasi Non Steroid (OAINS); Relaksan Otot; Sefalosporin
Dokter yang dipilih
Urutan dalam sistem
Dokter yang dipilih
Urutan dalam sistem
TS 1 PW 22
AB 2 NA 23
SK 3 IK 24
TA 4 PA 25
RA 5 NB 26
Su 6 HW 27
IM 7 DN 28
NH 8 SY 29
BP 10 AD 30
KS 11 El 33
AM 12 DT 34
AP 13 IK 40
WR 14 Fa 44
MJ 15 UT 45
Ty 16 SR 47
NA 17 TN 48
WK 18 Lu 49
HA 19 LH 50
AN 20 AS 51
NH 21 AI 52
Query 6 :
Kelas yang dipilih : Anatesi Lokal; Antasid; Antibiotik Golongan Lain; Antikoagulan, Antiplatelet, dan Fibrinolitik ; Diuretik; Hormon Kortikosteroid; Kuinolon; Obat Anti Inflamasi Non Steroid (OAINS); Obat Hematopoietik; Relaksan Otot; Sefalosporin
(62)
dipilih sistem dipilih sistem
HY 1 SR 24
DN 2 MJ 25
AP 3 Ty 26
IK 4 UT 27
NH 5 NA 28
Mg 6 HA 29
KS 7 NH 30
AN 8 IK 31
TS 9 PA 32
PW 10 HW 33
NA 11 SR 35
AB 12 TN 36
WK 13 LH 37
SK 14 AS 38
TA 15 AD 39
SY 16 AI 41
RA 17 El 42
Su 18 DT 43
WR 19 Fa 50
NB 20 RL 51
IM 21 Lu 56
BP 22 IP 57
AM 23
Query 7 :
Kelas yang dipilih : Antibiotik Golongan Lain; Antipasmodik; Antijamur; Obat Jantung; Sefalosporin; Vitamin B-Complex Dokter yang
dipilih
Urutan dalam sistem
Dokter yang dipilih
Urutan dalam sistem
El 1 Lu 22
BU 2 TA 23
KS 3 SY 24
WR 4 RA 25
AP 5 Su 26
IM 6 AI 27
YF 7 AM 28
NH 8 DT 29
ES 9 AN 32
BP 10 TS 33
Fa 11 NH 34
(63)
Ty 13 NA 36
NA 14 IK 37
AB 15 PA 38
HH 16 HW 39
NT 17 NB 40
BY 18 AWW 41
HA 19 DN 42
IK 20 WK 46
SK 21 AS 47
Query 8 :
Kelas yang dipilih : Anastesi Lokal; Antibiotik Golongan Lain; Antikoagulan, Antiplatelet, dan Fibrinolitik; Antijamur; Obat Jantung; Sefalosporin; Vitamin B-Complex
Dokter yang dipilih
Urutan dalam sistem
Dokter yang dipilih
Urutan dalam sistem
El 1 TN 26
BU 2 SR 27
AN 3 KS 28
PW 4 SK 29
AS 5 Lu 30
AP 6 TA 31
IK 7 SY 32
IM 8 LH 33
DN 10 RA 34
NH 11 Su 35
BP 14 WR 36
Fa 15 AI 37
Ty 17 AM 38
NA 18 DT 39
AB 19 TS 42
WK 20 NH 43
BY 22 NA 44
NT 23 NB 46
HH 24 HW 47
Query 9 :
Kelas yang dipilih : Anatesi Lokal; Antibiotik Golongan Lain; Hormon Kortikosteroid; Kuinolon; Obat Anti Inflamasi Non Steroid (OAINS); Relaksan Otot; Sefalosporin
(64)
dipilih sistem dipilih sistem
Mg 1 El 24
HY 2 AI 25
AP 3 AM 26
MJ 4 DT 27
Ty 5 IK 30
NA 6 IS 31
AB 7 BU 32
WK 8 SR 33
HA 9 TN 34
TS 10 NH 35
AN 11 NA 36
PW 12 LH 37
IM 13 AS 38
DN 14 IK 39
KS 15 PA 40
SK 16 HW 41
TA 17 NB 42
SY 18 Fa 47
RA 19 UT 48
Su 20 Lu 51
WR 21 AD 53
NH 22
Query 10 :
Kelas yang dipilih : Anastesi Lokal; Ansiolitik; Antipasmodik; Beta Laktam Golongan Lain; Hipnotik dan Sedativa; Obat Anti Inflamasi Non Steroid(OAINS); Relaksan Otot; Sefalosporin; Vitamin dan/atau Mineral
Dokter yang dipilih
Urutan dalam sistem
Dokter yang dipilih
Urutan dalam sistem
LH 1 Lu 22
Yu 2 SK 23
SR 3 TA 24
TN 4 SY 25
KS 5 RA 26
AS 6 Su 27
WR 7 AB 31
AP 8 WK 32
MJ 9 El 33
Ty 10 AI 34
NA 11 AM 35
HA 12 DT 36
AN 13 IS 39
(65)
PW 15 NA 42
IK 16 IK 43
PA 17 NH 46
NB 18 Fa 48
HW 19 UT 49
IM 20 FN 51
(66)
Berikut adalah perhitungan nilai precision untuk setiap query :
Tabel 4.1 Tabel Perhitungan Precision
No Relevan Not
Relevan
Hasil
Rekomendasi Precision
Profil MR1 20 10 30 0.667
Profil MR2 38 14 52 0.731
Profil MR3 39 12 51 0.765
Profil MR4 40 6 46 0.87
Profil MR5 40 12 52 0.769
Profil MR6 44 13 57 0.772
Profil MR7 42 5 47 0.894
Profil MR8 38 13 51 0.745
Profil MR9 35 18 53 0.774
Profil MR10 42 10 52 0.808
Jumlah 7.793
Rata-rata 0.779
% 77.93%
Keterangan :
Sebagai contoh untuk query 10 didapatkan hasil sebagai berikut. Diketahui
result dokter yang relevan adalah 42 dokter dan hasil rekomendasi dokter
oleh sistem adalah 52 dokter. Jadi precision rekomendasi dokter untuk
query 10 adalah 42/52 = 0.808.
Berdasarkan pengujian yang telah dilakukan dengan menggunakan 10
(67)
Gambar 4.1 Gambar grafik average precision rekomendasi dokter
Keterangan :
Dari grafik diatas dapat dijelaskan bahwa rekomendasi dokter yang
diberikan sistem untuk medrep memiliki precision yang baik. Hal ini dapat
ditunjukan melalui hasil perhitungan average precision yaitu sebesar
77.93%.
0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% 90.00% 100.00%
1 2 3 4 5 6 7 8 9 10
Precision
(68)
BAB V. PENUTUP
5.1. KESIMPULAN
Sistem rekomendasi penjualan obat ini dibangun dengan pendekatan
Content Based Filtering. Penelitian ini merupakan studi untuk mengetahui
ujuk kerja algoritma Vektor Space Model pada aplikasi rekomendasi
penjualan obat. Kesimpulan yang dapat diambil dari penelitian ini adalah
sebagai berikut :
1. Pencarian informasi mengenai dokter dapat diperoleh secara tepat dengan
adanya aplikasi rekomendasi obat.
2. Berdasarkan pengujian yang telah dilakukan menggunakan 10 profil
medrep didapatkan hasil average precision sebesar77,93%.
3. Berdasarkan hasil evaluasi sistem ini belum dapat dikatakan baik karena
pengujian yang dilakukan hanya menggunakan precision saja.
5.2. SARAN
Saran yang dapat penulis berikan dari penelitian ini adalah sebagai berikut:
1. Bagi Peneliti Selanjutnya
Sistem ini masih banyak kekurangan. Oleh karena itu, sebaiknya bagi
peneliti selanjutnya dapat memperbaiki kualitas dan kinerja sistem,
diantaranya :
(69)
Data yang digunakan tidak hanya dalam lingkup 1 kota maupun hanya 1 Rumah Sakit saja.
Sistem akan lebih baik jika pengujian yang dilakukan tidak hanya menggunakan precision saja tetapi menggunakan recall.
(70)
DAFTAR PUSTAKA
Billsus, D. Pazzani, M. J. “A Personal News Agent that Talks, Learns and
Explains”, In Autonomous Agents 98, Minneapolis MN USA
Burke, R. (2007). Hybrid web recommender systems. In The Adaptive Web, pages
377–408. Springer Berlin / Heidelberg.
Dai, H., & Mobasher, B. (2001). Using ontologies to discover domain-level web
usage profiles. Proc. of the Second Semantic Web Mining Workshop at
PKDD 2001, Helsinki, Finland.
Herlocker, J.L., Konstan, J.A., Terveen, L.G. & Riedl, J.T. Evaluating
collaborative filtering recommender systems. ACM Transactions on
Information Systems, 22(1), 5-53.
Hermawan, Stephanus. 2011. Mudah Membuat Aplikasi Android. Yogyakarta :
Andi Offset
Knappe, R. (2005). Measures of Semantic Similarity and Relatedness for Use in
Ontology-based Information Retrieval. Ph.D. Thesis, Roskilde University,
Department of Communication, Journalism and Computer Science.
Lee, Dik L. 1997. Document Rangking and the Vector-Space Model. Hongkong.
Meteren, Robin dan Someren, Maarten. Using Content-Based Filtering for
(71)
Resnick, Paul dan Varian, Hal R. (1997). Recommender systems. Communications
of the ACM, Vol. 40, No. 3, 56-58.
Ricci, Francesco. 2010. Mobile Recommender Systems. Italy.
Shoval, Peretz., Meidel, Veronica., dan Shapira, Brancha. (2008). An
Ontology-Content-Based Filtering Method. International Journal “Information
(72)
LAMPIRAN 1. NARASI USE CASE
1. USECASE LOGIN ... 53 2. USECASE LIHAT REKOMENDASI ... 53 3. USECASE LIHAT PROMOSI ... 55 4. USECASE KELOLA DATA ... 56 5. REINDEX DATA ... 58
(73)
1. USECASE LOGIN
Nama Use Case : Login
Aktor : Admin, Medrep
Deskripsi Use Case : Use Case ini menggambarkan dimana Medrep dan Admin
melakukan login sebelum masuk ke dalam sistem. Medrep dan Admin memasukkan username dan password untuk dapat masuk ke dalam sistem.
Prakondisi : Admin dan Medrep telah memiliki password
Trigger : Use Case ini digunakan apabila ada Medrep yang ingin masuk
ke dalam sistem.
Langkah Umum : Kegiatan Aktor Respon Sistem
Langkah 2: Admin
memasukkan username dan password
Langkah 3: Admin mengklik
tombol LOGIN.
Langkah 1: Sistem akan
menampilkan halaman login dan meminta admin untuk memasukkan username dan password .
Langkah 4: Proses
autentifikasi username dan password
Langkah 5: Sistem
menampilkan halaman
admin.
Langkah Alternatif : Alt- Langkah 2,3 : Admin mengklik tombol “Back” sehingga
sistem tidak jadi masuk ke halaman admin dan keluar dari aplikasi.
Alt- Langkah 4,5 : Jika username yang dimasukkan adalah
Medrep, maka sistem akan menampilkan halaman profil.
Alt- Langkah 4: Jika username dan password yang
dimasukkan tidak sesuai maka sistem akan memberikan peringatan dan secara otomatis kembali ke halaman login.
Kesimpulan Use case ini berhenti apabila admin telah masuk ke halaman
admin atau admin membatalkan untuk masuk ke dalam sistem.
2. USECASE LIHAT REKOMENDASI
Nama Use Case : Lihat rekomendasi
(74)
Deskripsi Use Case : Use Case ini menggambarkan proses dimana Medrep mendapatkan list rekomendasi dokter yang akan dikunjungi.
Prakondisi : Medrep telah berhasil login dan masuk ke sistem.
Trigger : Use case ini hanya dapat dilakukan oleh medrep.
Langkah Umum : Kegiatan Aktor Respon Sistem
Langkah 2: Medrep
memasukkan nama kelas obat dan mengklik tombol “Pilih”.
Langkah 4 : Medrep mengklik
Menu dan pilih tombol
“Rekomendasi”.
Langkah 6: Medrep memilih
salah satu list rekomendasi dokter.
Langkah 1: Sistem akan
menampilkan halaman
profil medrep.
Langkah 3 : Sistem akan
menampilkan nama kelas obat yang dipilih pada list daftar profil medrep.
Langkah 5: Sistem akan
menghitung nilai cosim
serta menampilkan list
rekomendasi dokter.
Langkah 7: Sistem
menampilkan detail data Dokter.
Langkah Alternatif : Alt- Langkah 3: Medrep mengklik tombol BACK sehingga
(75)
Alt- Langkah 4: Medrep mengklik list daftar profil yang
akan di hapus dan memilih “HAPUS”.
Kesimpulan Use case ini berhenti apabila Medrep telah berhasil
mendapatkan list rekomendasi dokter.
3. USECASE LIHAT PROMOSI
Nama Use Case : Lihat promosi
Aktor : Medrep
Deskripsi Use Case : Use Case ini menggambarkan proses dimana Medrep
mendapatkan list promosi dokter yang akan dikunjungi.
Prakondisi : Medrep telah berhasil login dan masuk ke sistem.
Trigger : Use case ini hanya dapat dilakukan oleh medrep.
Langkah Umum : Kegiatan Aktor Respon Sistem
Langkah 2: Medrep
memasukkan nama kelas obat dan mengklik tombol “Pilih”.
Langkah 4 : Medrep mengklik
Menu dan pilih tombol
“Promosi”.
Langkah 1: Sistem akan
menampilkan halaman
profil medrep.
Langkah 3 : Sistem akan
menampilkan nama kelas obat yang dipilih pada list daftar profil medrep.
Langkah 5: Sistem akan
menghitung nilai cosim
serta menampilkan list
(76)
Langkah 6: Medrep memilih salah satu list promosi dokter.
Langkah 7: Sistem
menampilkan detail data Dokter.
Langkah Alternatif : Alt- Langkah 3: Medrep mengklik tombol BACK sehingga
sistem akan kembali ke halaman login.
Alt- Langkah 4: Medrep mengklik list daftar profil yang
akan di hapus dan memilih “HAPUS”.
Kesimpulan Use case ini berhenti apabila Medrep telah berhasil
mendapatkan list promosi dokter.
4. USECASE KELOLA DATA
Nama Use Case : Kelola data kelas
Aktor : Admin
Deskripsi Use Case : Use case ini menggambarkan proses dimana admin
melakukan proses penambahan data kelas.
Prakondisi : Admin telah berhasil login dan masuk ke sistem.
Trigger : Use case ini hanya dapat dilakukan oleh admin.
Langkah Umum : Kegiatan Aktor Respon Sistem
Langkah 2: Admin mengklik
tab menu “Kelas”
Langkah 4: Admin mengklik
Langkah 1: Sistem akan
menampilkan halaman
admin.
Langkah 3: Sistem akan
menampilkan halaman kelas berserta listview data kelas.
(1)
while($result=mysql_fetch_array($query1)) {
$kelas[] = $result["id_kelas"]; }
while($result=mysql_fetch_array($query_dktr)) {
$dokter[] = $result["id_dokter"]; }
while($result=mysql_fetch_array($query_obt)) {
$obat[] = $result["id_obat"]; }
for ($i=0;$i<count($dokter);$i++) { $temp = array();
for ($j=0;$j<count($obat);$j++) { $temp=0;
$query3 = mysql_query("SELECT frekuensi FROM resep WHERE id_dokter =".($i+1)." AND id_obat=".($j+1)); while($r=mysql_fetch_array($query3)) {
$temp= $r["frekuensi"]; }
$frekuensi[$i][$j]=$temp; if ($frekuensi[$i][$j]==0){
echo ""; }else{
$query_cariKelas = mysql_query("SELECT
id_kelas FROM obat WHERE id_obat =".($j+1));
while($hsl=mysql_fetch_array($query_cariKelas)){ $kls=$hsl["id_kelas"];
}
$idkls[$j]=$kls;
$query_a = mysql_query("SELECT id_dokter, id_kelas, bobot FROM vektor WHERE id_kelas = ".$idkls[$j]." AND id_dokter =".($i+1)); while($hsl_q=mysql_fetch_array($query_a)){ $bobot=$hsl_q["bobot"];
$idkel=$hsl_q["id_kelas"]; $dok=$hsl_q["id_dokter"]; }
$idd[i]= array(); $idk=$idkel; $idd[$i]=$dok;
if($idd[$i]==($i+1) and $idk==$idkls[$j]){ $w[$j]=$bobot;
(2)
$query_update = "UPDATE vektor SET bobot = ".$h." WHERE id_kelas = ".$idkls[$j]." AND id_dokter = ".($i+1);
$z =
mysql_query($query_update)or die ("KESALAHAN QUERY : ".mysql_error());
$h=0; }else{
$query_insert = "INSERT into vektor (id_dokter, id_kelas, bobot) VALUES ('".($i+1)."', '$idkls[$j]',
'".$frekuensi[$i][$j]."')";
$hasil = mysql_query($query_insert)or die ("KESALAHAN QUERY : ".mysql_error()); }
} } }
$query = "call spFmax()";
$hasil = mysql_query($query)or die ("KESALAHAN QUERY : ".mysql_error());
if($hasil) {
echo 1;} else
{ echo 0;} ?>
Implementasi : normalisasi.php
<?php
$h = "localhost"; $user = "root"; $pass = ""; $db = "siro";
mysql_connect($h,$user,$pass); mysql_select_db($db);
$query1 = mysql_query('SELECT id_kelas FROM kelas');
$query_dktr = mysql_query('SELECT id_dokter FROM dokter'); $query_obt = mysql_query('SELECT id_obat FROM resep'); $kelas = array();
$dokter = array(); $obat = array(); $Wmax[$j] = array(); $w_norm[$j] = array();
while($result=mysql_fetch_array($query1)) {
$kelas[] = $result["id_kelas"]; }
(3)
{
$dokter[] = $result["id_dokter"]; }
while($result=mysql_fetch_array($query_obt)) {
$obat[] = $result["id_obat"]; }
for ($i=0;$i<count($dokter);$i++) { $temp = array();
for ($j=0;$j<count($kelas);$j++) { $temp=0;
$query3 = mysql_query("SELECT bobot FROM vektor WHERE id_dokter =".($i+1)." AND
id_kelas=".($j+1));
while($r=mysql_fetch_array($query3)) { $temp= $r["bobot"];
}
$bobot[$i][$j]=$temp; if ($bobot[$i][$j]==0){ echo "";
}else{
$query_maxBobot = mysql_query("SELECT max(bobot) AS Wmax FROM vektor WHERE id_kelas =".($j+1));
while($hsl=mysql_fetch_array($query_maxBobot)){ $w=$hsl["Wmax"];
}
$Wmax[$j]=$w; $w_norm[$j]=0;
$w_norm[$j]= $bobot[$i][$j] / $Wmax[$j];
$query_insert = "UPDATE vektor SET bobot_normal = ".$w_norm[$j]." WHERE id_kelas = ".($j+1)." AND id_dokter = ".($i+1);
$hasil = mysql_query($query_insert)or die ("KESALAHAN QUERY : ".mysql_error()); }
} }
echo "1"; ?>
(4)
spFMAx()
tujuan : mengupdate max frekuensi dari tabel kelas USE `siro`$$
DROP PROCEDURE IF EXISTS `spFmax`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `spFmax`() BEGIN
DECLARE done INT DEFAULT 0; DECLARE v_id_kelas INT ;
DECLARE cur1 CURSOR FOR SELECT id_kelas FROM kelas; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done =1; OPEN cur1;
REPEAT
FETCH cur1 INTO v_id_kelas; IF NOT done THEN
UPDATE kelas o SET o.max_frekuensi = (
SELECT MAX(bobot) FROM vektor p WHERE p.id_kelas = o.id_kelas) WHERE o.id_kelas = v_id_kelas;
END IF;
UNTIL done END REPEAT; CLOSE cur1;
END$$
(5)
viii ABSTRAK
SISTEM REKOMENDASI PENJUALAN OBAT MENGGUNAKAN PENDEKATAN CONTENT BASED FILTERING BERBASIS MOBILE
ANDROID
Saat ini penggunaan perangkat mobile sudah menjadi kebutuhan pokok bagi sebagian besar masyarakat di negara berkembang. Berbagai perangkat lunak telah dikembangkan untuk mengoptimalkan serta melengkapi fungsi dari perangkat mobile tersebut. Terutama ketika masyarakat ingin mencari dan mendapatkan sebuah informasi tertentu. Salah satunya adalah Medical Sales
Representative (MedRep). Informasi mengenai dokter sangat diperlukan medrep
pada saat menjalankan tugasnya. Sehingga dibutuhkan aplikasi yang dapat membantu MedRep dalam mendapatkan informasi seperti informasi dokter dan rumah sakit.
Pada tugas akhir ini di rancang sebuah aplikasi dengan pendekatan
Content Based Filtering. Content Based Filtering merupakan pendekatan yang
dilakukan berdasarkan kesamaan profil item dan profil pengguna. Profil tersebut akan direpresentasikan dalam bentuk vektor. Vektor tersebut akan diukur kedekatannya menggunakan metode Vektor Space Model dengan menghitung cosinus antara kedua buah vektor. Sehingga aplikasi ini akan merekomendasikan profil yang cocok dan dianggap relevan untuk pengguna.
Pengujian aplikasi ini dilakukan di Jogja International Hospitel (JIH) dengan mendatangi Medrep untuk menggunakan aplikasi ini serta meminta medrep untuk memberikan tanggapan dari hasil rekomendasi dokter yang diberikan oleh sistem. Kemudian dari hasil pengujian akan dihitung precision untuk masing-masing query serta menghitung average precision. Berdasarkan pengujian yang telah dilakukan dengan menggunakan 10 profil medrep didapatkan hasil average precision sebesar 77,93%. Namun hasil rekomendasi yang diberikan sistem belum dapat dikatakan baik karena pengujian yang dilakukan hanya menggunakan precision saja.
Kata kunci : Sistem Rekomendasi, Content Based Filtering, Vector Space Model, Aplikasi Mobile.
(6)
ix ABSTRACT
MEDICINE SALES RECOMMENDATION SYSTEM USING CONTENT BASED FILTERING APPROACH ON ANDROID MOBILE DEVICE
At this time of mobile devices has become a necessity for most people in developing countries. Various software has been developed to optimize and complement the functionality of the mobile device. Especially when people want to search for and obtain a specific information. One is the Medical Sales Representative (MedRep). Information on physicians much needed a medrep while performing their duties. And we need an applications that can help MedRep in getting information such as doctor and hospital information.
In this thesis designed an application with Content-Based Filtering approach. Content Based Filtering is an approach that is based on the similarity profile items and user profile. The profile will be represented in vektor form. The vector will be measured using the proximity Vector Space Model to calculate the cosine between the two vectors. So this app will recommend a suitable profile and deemed relevant to the user.
Testing of this application have been done at Jogja International Hospitel (JIH) visiting Medrep to use this application as well as medrep asked to provide feedback on the recommendations given by the doctor system. Then from the results of the test will be calculated precision for each query and calculate average precision. Based on the testing that has been performed using 10 profiles medrep results obtained precision average of 77.93%. However, the recommendations given system can not be said to be good because the testing is done only using a precision.
Key word: Recommendation System, Content Based Filtering, Vector Space Model, Mobile Aplication.