Sistem rekomendasi penjualan obat menggunakan pendekatan Content Based Filtering berbasis mobile android

(1)

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 dan

w

ij ... 26

Tabel 3.4 Tabel Data kuadrat

w

Qj dan

w

ij ... 26

Tabel 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 tersebut akan direpresentasikan dalam bentuk vektor. Vektor tersebut akan


(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 Mobile Android” ini adalah untuk memberikan sebuah aplikasi yang dapat


(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 didokumentasikan, dan dilihat lagi dengan pelanggan.


(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 digunakan.


(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, implementasi sistem dan pengujian.


(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]: collaborative-based, content-based, knowledge-based, hybrid. Pada sistem


(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 filtering dan content-based filtering.


(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 profil item adalah : Profil item terdiri dari serangkaian konsep yang


(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 sistem dan pengguna. PRES menggunakan content-based filtering


(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 ti maka bobot dari wi adalah 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 berikutnya


(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 tugas akhir ini adalah metode TF-IDF. Pada metode ini, bobot term


(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 j

w

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 aplikasi.


(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 lain akhirnya selesai dan Activity kembali menjadi foreground.


(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 dipanggil Context.bind. Pemanggilan ini akan mengakibatkan


(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 sedang dibawa.


(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 rekomendasi yaitu perhitungan vector space model terdapat di web server.


(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, kelas dan bobot. Jumlah bobot di dapat dari jumlah frekuensi setiap obat


(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 Cosine Similarity. 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 berdasarkan nilai tertinggi yang mendekati angka 1.


(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 dilakukan untuk menghasilkan nilai cosim.


(46)

Tabel 3.3 Tabel Data perkalian

w

Qj dan

w

ij

MedRep 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 dan

w

ij

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

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


(47)

Perhitungan ini menggunakan rumus Cosine Similarity yaitu :

CosSim(Q,Di) =

     t j t j t j

w

w

w

w

ij Qj ij Qj 1 1 2 2 1 ) (

dimana

w

ij merupakan bobot dari profil dokter dan

w

Qjmerupakan bobot dari profil medrep. Sebagai contoh hasil perhitungan di atas, akan dijelaskan 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 Dokter5, Dokter4, Dokter1, Dokter2 dan Dokter3.


(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 wewenang untuk melihat rekomendasi dan promosi dokter.


(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 analisis kelas dapat dilihat pada lampiran 3 halaman 89.


(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 basis data yang dirancang.


(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 jadwal praktek dokter.


(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 di lampiran 4 halaman 122.


(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 dijelaskan di lampiran 6 halaman 161.


(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 profil medrep didapatkan hasil average precision sebesar 77,93%.


(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 sebesar 77,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 Recommendation. Amsterdam.


(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 promosi dokter.


(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.


(77)

tombol “+”.

Langkah 6: Admin

memasukkan data “nama

kelas” dari kelas baru yang akan ditambahkan

Langkah 7: Admin mengklik tombol TAMBAH.

Langkah 5: Sistem akan menampilkan halaman tambah kelas.

Langkah 8: Sistem

melakukan proses tambah ke database dan menampilkan peringatan bahwa data kelas berhasil ditambahkan dan kembali ke halaman admin.

Langkah Alternatif : Alt- Langkah 4: Admin memilih “Ubah Kelas”, sehingga

sistem akan menampilkan halaman ubah kelas.

Alt- Langkah 4: Admin memilih “Hapus Kelas”, sehingga

sistem akan menghapus data kelas yang dipilih.

Alt- Langkah 7: Admin mengklik tombol BACK sehingga sistem akan kembali ke halaman admin.

Kesimpulan Use case ini berhenti apabila admin telah berhasil


(78)

5. REINDEX DATA

Nama Use Case : Reindex data

Aktor : Admin

Deskripsi Use Case : Use case ini menggambarkan proses dimana admin

melakukan proses reindexing data corpus.

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 “Resep”

Langkah 4: Admin mengklik tombol “Reindex Data”.

Langkah 1: Sistem akan menampilkan halaman admin.

Langkah 3: Sistem akan menampilkan halaman resep berserta listview data resep.

Langkah 5: Sistem akan menampilkan progress bar selama melakukan proses reindex data corpus ke database.

Langkah Alternatif : Alt- Langkah 4: Admin mengklik tombol BACK sehingga

sistem akan kembali ke halaman login.

Kesimpulan Use case ini berhenti apabila admin telah berhasil perbarui


(79)

LAMPIRAN 2. DIAGRAM AKTIVITAS

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 19. DIAGRAM AKTIVITAS REINDEX DATA ... 78


(80)

1. DIAGRAM AKTIVITAS LOGIN

Sistem Aktor

menampilkan halaman login

memasukkan username dan password

mengklik tombol LOGIN

autentifikasi username dan password


(81)

2. DIAGRAM AKTIVITAS LIHAT REKOMENDASI

Aktor Sistem

menampilkan halaman profil medrep

memasukkan nama kelas obat dan klik PILIH

menampilkan nama kelas pada daftar profil

menampilkan detail data dokter klik Menu dan pilih tombol "Rekomendasi"

menghitung cosin, menampilkan halaman rekomendasi


(82)

3. DIAGRAM AKTIVITAS LIHAT PROMOSI

Sistem Aktor

menampilkan halaman profil medrep

memasukkan nama kelas obat dan klik PILIH

menampilkan nama kelas pada daftar profil

menampilkan detail data dokter klik Menu dan pilih tombol "Promosi"

menghitung cosin, menampilkan halaman promosi


(83)

4. DIAGRAM AKTIVITAS TAMBAH KELAS

Sistem Aktor

menampilkan halaman admin

memasukkan data kelas baru

proses tambah data dan kembali ke halaman admin. menampilkan halaman tambah kelas

Klik tombol TAMBAH klik tab menu "Kelas"

menampilkan halaman kelas


(84)

5. DIAGRAM AKTIVITAS UBAH KELAS

Sistem Aktor

menampilkan halaman admin

menampilkan dialog ubah medrep klik tab menu "Kelas"

menampilkan halaman kelas

klik list kelas, pilih ubah

proses ubah data dan kembali ke halaman admin. memodifikasi data kelas, klik Simpan


(1)

"+ kode;

try {

respon = Koneksi.GetReq(url); String res = respon.toString(); res = res.replaceAll("\\s+", "");

if (res.equals("1")) {

Toast.makeText(getApplicationContext(),

"Data berhasil dihapus", Toast.LENGTH_SHORT).show(); Medrep();

} else {

Toast.makeText(getApplicationContext(), "GAGAL", Toast.LENGTH_SHORT).show();

}

} catch (Exception e) {

e.printStackTrace(); }

hapusMedrep.php

<?php

$kode = $_GET['kode'];

$konek = mysql_connect("localhost", "root",""); mysql_select_db("siro");

$query = "DELETE FROM medrep WHERE id_medrep = $kode"; $hasil = mysql_query($query)or die ("KESALAHAN QUERY : ".mysql_error());

if($hasil) {

echo 1;} else

{ echo 0;}


(2)

5.

Reindex

Implementasi : hapustabel.php

Tujuan : menghapus isi dari tabel vektor

<?php

$h = "localhost"; $user = "root"; $pass = "";

$db = "siro_dummy";

mysql_connect($h,$user,$pass); mysql_select_db($db);

$s =("TRUNCATE TABLE vektor");

$hasil = mysql_query($s)or die ("KESALAHAN QUERY : ".mysql_error());

if($hasil){ echo ""; } else { echo 0; }

?>

Implementasi : reindex.php

Tujuan : membuat data corpus dari tabel resep.

Algoritma :

Tabel vektor akan dikosongkan terlebih dahulu

Data corpus berisi id dokter, id kelas, bobot, dan bobot normalisasi yang

akan dimasukkan dalam tabel vektor

obat-obat yang pernah di resepkan oleh setiap dokter digabungkan menjadi

1 jenis kelas obat.

Caranya dengan menjumlahkan frekuensi dari obat-obat yang diresepkan

oleh setiap dokter, nilai jumlah tersebut akan menjadi bobot dari dokter.

Bobot yang sudah didapat akan di normalisasi

<?php

include ("hapustabel.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(); $idkls[$j] = array(); $idk = array();


(3)

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;


(4)

$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"]; }


(5)

{

$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"; ?>


(6)

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$$