Aplikasi rekomendasi dokter untuk sales obat pada android menggunakan metode k-mean clustering dan euclidean distance.
ABSTRAK
Aplikasi mobile sangat cocok untuk mendukung kerja marketing yang bersifat mobile atau selalu berpindah. Tenaga marketing selalu berpindah-pindah karena pembeli berada ditempat yang jauh dan berbeda. Salah satu tenaga penjual tersebut adalah sales obat kerena mereka selalu mengunjungi dokter di klinik atau rumah sakit tempat yang jauh dan berbeda.
Dalam menjalankan bisnis yang bersifat mobile, sales obat memerlukan informasi yang real time dan akurat. Hal ini dikemukakan oleh beberapa sales obat di sebuah rumah sakit swasta di Yogyakata, bahwa sales obat memerlukan aplikasi mobile yang mampu memberikan informasi secara real time dan akurat terkait dokter yang akan dikunjungi.
Aplikasi rekomendasi dokter dibangun untuk menyelesaikan permasalahan yang dialami marketing obat. Aplikasi ini dibangun menggunakan pendekatan k-mean clustering dan Euclidean distance. Input yang dibutuhkan adalah profil dokter yaitu rekaman rekomendasi obat untuk pasien , input profil sales yaitu obat-obat yang akan ditawarkan kepada dokter input obat ini didasarkan pada kandungan zat active dari obat tersebut.
Data dokter yang telah diinputkan akan diproses sehingga membentuk custer dokter. Proses ini dilakukan karena diasumsikan bahwa dokter dengan spesialis yang sama cenderung memberikan rekomendasi obat yang sama. Cluster dan profil sales yang diproses untuk mendapatkan cluster dokter jarak terdekat. Setelah didapat cluster dokter dengan jarak terdekat anggota cluster tersebut diurutkan berdasarkan jarak similarity dengan profil sales kemudian direkomendasikan.
Dengan menggunakan pendekatan tersebut aplikasi ini dapat menghasilkan informasi berupa rekomendasi dokter yang dapat dikunjungi oleh sales obat. Setelah dilakukan pengujian menghasilkan nilai precision 0.8 - 1 dan recall 0 - 7. Dapat disimpulkan bahwa Information retrival menggunakan pendekatan k-mean dan Euclidean distance menghasilkan rekomendasi dokter yang sesuai dengan yang diharapkan sales obat.
(2)
ABSTRACT
Mobile application is suitableto support a mobile marketing work or always on the move. Marketing personnel are always moving because buyers are far away and different. One of the sales reps are drugs because they are always visit the doctor at the clinicor hospital where the distant an different.
In running a bussines that is mobile, require drug sales information real time and accurate. This was stated by some drug sales at a private hospital in Yogyakarta, that requires drug sales moble application that is able to provide information in real time and accurately related to doctors who would visit.
Applications of doctor’s recommendation was built to resolve problems experienced by marketing the drug. This application was built using k-mean clustering approach and Euclidean distance. The required input is the propfile of the recording physician medication recommendations for patients, input sales profile is drugs that will be offered to doctors drug input based on active substances of the drug.
Physicians who have entered the data will be processed to form cluster doctor. This process is done because it is assumed that the same physicians with specialists tend to give the same medication recommendation. Cluster and sales profiles are processed to obtain nearest cluster distances doctor. Once the cluster obtained with the doctor closest cluster members are sorted by the distance similarity with sales profile is then recommended.
By using the approach of these applications cangenerate information in the form of a
doctor’s recommendation can be visited by drug sales. After testing produces precision value
0,8- 1 and recall 0-7. It can be concluded that the information retrival using k-mean approach and
the ecuclidean distance produce a doctor’s recommendation in accordance with the expected
(3)
i
APLIKASI REKOMENDASI DOKTER UNTUK
SALES
OBAT PADA ANDROID MENGGUNAKAN METODE
K-MEAN
CLUSTERING
DAN
EUCLIDEAN DISTANCE
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Oleh : Unggul Prasetya
095314043
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
(4)
ii
DOCTORE RECOMMENDED APPLICATIONS FOR
ANDROID ON SALES OF DRUEG USING K-MEANS
CLUSTERING AND EUCLIDEAN DISTANCE
THESIS
Presented as Partial Fullfilment of the Requirements To Obtain the Computer Bachelor Degree
In Informatics Engineering
By: Unggul Prasetya
095314043
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
(5)
(6)
(7)
v
HALAMAN PERSEMBAHAN
Teruslah mencoba meski selalu gagal.
Teruslah berusaha meski sering menjadi bahan olok-olok. Teruslah belajar dari semua hal yang didapat
Teruslah bertekun, fokus pada tujuan Kesuksesan adalah pilihan
Skripsi ini saya persembahkan untuk Ayah dan Ibu dan keluarga tercinta
(8)
vi PERNYATAAN KEASLIAN KARYA
(9)
vii
ABSTRAK
Aplikasi mobile sangat cocok untuk mendukung kerja marketing yang bersifat mobile atau selalu berpindah. Tenaga marketing selalu berpindah-pindah karena pembeli berada ditempat yang jauh dan berbeda. Salah satu tenaga penjual tersebut adalah sales obat kerena mereka selalu mengunjungi dokter di klinik atau rumah sakit tempat yang jauh dan berbeda.
Dalam menjalankan bisnis yang bersifat mobile, sales obat memerlukan informasi yang real time dan akurat. Hal ini dikemukakan oleh beberapa sales obat di sebuah rumah sakit swasta di Yogyakata, bahwa sales obat memerlukan aplikasi mobile yang mampu memberikan informasi secara real time dan akurat terkait dokter yang akan dikunjungi.
Aplikasi rekomendasi dokter dibangun untuk menyelesaikan permasalahan yang dialami marketing obat. Aplikasi ini dibangun menggunakan pendekatan k-mean clustering dan Euclidean distance. Input yang dibutuhkan adalah profil dokter yaitu rekaman rekomendasi obat untuk pasien , input profil sales yaitu obat-obat yang akan ditawarkan kepada dokter input obat ini didasarkan pada kandungan zat active dari obat tersebut.
Data dokter yang telah diinputkan akan diproses sehingga membentuk custer dokter. Proses ini dilakukan karena diasumsikan bahwa dokter dengan spesialis yang sama cenderung memberikan rekomendasi obat yang sama. Cluster dan profil sales yang diproses untuk mendapatkan cluster dokter jarak terdekat. Setelah didapat cluster dokter dengan jarak terdekat anggota cluster tersebut diurutkan berdasarkan jarak similarity dengan profil sales kemudian direkomendasikan.
Dengan menggunakan pendekatan tersebut aplikasi ini dapat menghasilkan informasi berupa rekomendasi dokter yang dapat dikunjungi oleh sales obat. Setelah dilakukan pengujian menghasilkan nilai precision 0.8 - 1 dan recall 0 - 7. Dapat disimpulkan bahwa Information retrival menggunakan pendekatan k-mean
(10)
dan Euclidean distance menghasilkan rekomendasi dokter yang sesuai dengan yang diharapkan sales obat.
(11)
ix
ABSTRACT
Mobile application is suitableto support a mobile marketing work or always on the move. Marketing personnel are always moving because buyers are far away and different. One of the sales reps are drugs because they are always visit the doctor at the clinicor hospital where the distant an different.
In running a bussines that is mobile, require drug sales information real time and accurate. This was stated by some drug sales at a private hospital in Yogyakarta, that requires drug sales moble application that is able to provide information in real time and accurately related to doctors who would visit.
Applications of doctor’s recommendation was built to resolve problems experienced by marketing the drug. This application was built using k-mean clustering approach and Euclidean distance. The required input is the propfile of the recording physician medication recommendations for patients, input sales profile is drugs that will be offered to doctors drug input based on active substances of the drug.
Physicians who have entered the data will be processed to form cluster doctor. This process is done because it is assumed that the same physicians with specialists tend to give the same medication recommendation. Cluster and sales profiles are processed to obtain nearest cluster distances doctor. Once the cluster obtained with the doctor closest cluster members are sorted by the distance similarity with sales profile is then recommended.
By using the approach of these applications cangenerate information in the form of a doctor’s recommendation can be visited by drug sales. After testing produces precision value 0,8- 1 and recall 0-7. It can be concluded that the information retrival using k-mean approach and the ecuclidean distance produce a doctor’s recommendation in accordance with the expected drug sales.
(12)
(13)
xi
KATA PENGANTAR
Puji syukur kepada Yesus Kristus yang telah memberikan karunia, rahmat, dan kesempatan, sehingga penulis dapat menyelesaikan skripsi dengan judul “Aplikasi Rekomendasi Dokter Untuk Sales Obat Pada Android Menggunakan Metode K-Mean Clustering Dan Euclidean Distance”. Penyusunan skripsi ini tidak lepas dari semua pihak yang turut memberikan dukungan, doa, semangat, dan bantuan yang sangat bermanfaat bagi penulis. Pada kesempatan ini penulis mengucapkan terima kasih sebesar besarnya kepada :
1. Tuhan Yesus yang selalu melindungi.
2. Bapak Puspaningtyas Sanjoyo Adi,S.T.,M.T., selaku dosen pembimbing yang senantiasa memberikan masukkan dan bantuan dalam membimbing penulis untuk menyelesaikan skripsi ini.
3. Sri Hartati Wijono, S.Si.,M.Kom , Ridowati Gunawan, S.Kom.,M.T. , Paulina Heruningsih Prima Rosa, S.Si., M.Sc , Bapak Puspaningtyas Sanjoyo Adi,S.T.,M.T. Beliau-beliau telah membantu saya dalam belajar sehingga saya dapat berkembang.
4. Segenap dosen Universitas Sana Dharma yang telah membantu memberikan bekal pengethauan kepada penulis.
5. Mamah CH.Supinah, S.Pd dan bapak Suradi, S.Pd yang selalu menyayangi ku dann tidak pernah berhenti semangat, doa, dan dukungan.
6. Kakak (Trisna Sundari,S.E dan AMZ Yuli Susandar, S.E ) yang telah memberikan semangat dan dukungan.
7. Bapak, Ibu dan keluarga besar Margareta Sri Pinilih yang dengan tulus memberikan perhatian, doa, dan dukungan.
(14)
8. Audris Evan utomo,S.Kom dan seluruh sahabat TI yang tidak dapat penulis sebutkan atas kesediaannya dalam memberi masukkan, menemani, dan mendengarkan keluh kelas dari penulis.
(15)
(16)
(17)
xv
DAFTAR ISI
SKRIPSI ... i
THESIS ... ii
HALAMAN PERSEMBAHAN ... v
PERNYATAAN KEASLIAN KARYA ... vi
ABSTRAK ... vii
ABSTRACT ... ix
KATA PENGANTAR ... xi
DAFTAR ISI ... xv
DAFTAR GAMBAR ... xx
DAFTAR TABEL ... xxi
DAFTAR GRAFIK ... xxii
BAB I PENDAHULUAN ... 1
A. Latar Belakang Masalah ... 1
B. Rumusan Masalah ... 2
C. Tujuan Penelitian ... 2
D. Manfaat Penelitian ... 2
E. Batasan Masalah ... 2
F. Metodologi Penelitian ... 3
G. Sistematika Penulisan ... 4
BAB II LANDASAN TEORI ... 5
A. Sistem Rekomendasi ... 5
B. Content Based Filtering ... 5
(18)
D. Uclidean Distance ... 7
E. K-Mean ... 7
1. Pengertian ... 7
2. Teknik Metode K-Mean... 8
F. Pengujian sistem ... 9
G. Android ... 9
1. Pengertian ... 9
2. Arsitektur Android ... 10
3. Application ... 10
4. Application Framework ... 10
BAB III METODOLOGI PENELITIAN DAN ANALISIS SISTEM ... 12
A. Pengumpulan Data dan Informasi ... 12
1. Wawancara... 12
2. Pemerolehan Data ... 12
B. Analisis Sistem... 13
C. Software Requirement Analysis ... 14
1. Analisis perangkat lunak yang dibutukan ... 14
2. Analisis perangkat keras yang dibutuhkan ... 14
3. Arsitektur Aplikasi ... 14
4. Membuat Rekomendasi Dokter ... 15
D. Metode Pengujian Recall dan Precision ... 30
1. Contoh Perhitungan Recall dan Precision ... 30
BAB IV PERANCANGAN SISTEM DAN IMPLEMENTASI ... 32
A. Diagram Use case ... 32
B. Diagram Sekenario... 33
(19)
2. Hapus Profil Item ... 33
3. Cari Rekomendasi ... 33
4. Melihat Profil Dokter ... 34
5. Manajemen File Dokter (Sales) ... 34
6. Login Admin ... 35
7. Management File Dokter ( Admin ) ... 35
C. Diagram Aktivitas ... 36
1. Saat Aplikasi Dijalankan ... 36
2. Cari rekomendasi ... 37
3. Input Profile Sales ... 37
4. Hapus Item Profile ... 38
5. Melihat Profil MedRep ... 38
6. Download File Rekomendasi Dokter ... 39
7. Merubah File List Dokter Yang Diakses ... 39
8. Tambah File ... 40
9. Edit Deskripsi File ... 40
10. Hapus File ... 41
D. Diagram Model View Controler (MVC) ... 41
1. Struktur MVC Kelas Boundary, Contorl dan Entity... 41
2. Diagram Analisis Kelas (Model View Controler) ... 42
3. Diagram Kelas (Aplikasi Android) ... 43
4. Diagram Kelas (Web Admin) ... 43
5. Diagram Kelas Detail... 44
E. Diagram Sequence ... 50
1. Saat Plikasi Dijalankan ... 50
(20)
3. Input Profile Medrep ... 52
4. Lihat Profile Sales ... 53
5. Hapus Item Profile ... 53
6. Download File Rekomendasi Dokter ... 54
7. Merubah File List Dokter Yang Diakses ... 54
8. Tambah File ... 55
9. Edit Deskripsi File ... 55
10. Hapus File ... 56
F. Model Penyimpanan Data ... 56
G. Algoritma Method Dalam Kelas Yang Memuat Proses Custering dan Euclidean Similarity... 59
1. RekomendasiDokterActivity.java ... 59
2. UpdateData(Strting): Boolean ... 64
3. Relasi_Kontroler.Java ... 67
4. Similarity controller_avtivity.java ... 81
BAB V HASIL DAN PENGUJIAN ... 90
A. Hasil Pengujian Sistem ... 90
1. Item Query Yang Tersedia ... 90
B. Sampel profil ... 91
C. Perhitungan Recall Dan Precision ... 100
1. Tabel Relevansi Dokumen ... 100
2. Perhitungan Recall Dan Precision Setiap Query ... 101
3. Perhitungan Average Precision Terhadap 11 Titik Recall ... 104
4. Kelemahan ... 106
BAB VI KESIMPULAN DAN SARAN ... 107
(21)
B. Saran ... 107 Daftar Pustaka ... 108
(22)
xx
DAFTAR GAMBAR
Gambar 1. Proses dari clustering ... 9 Gambar 2. Arsitektur Android ... 10 Gambar 3. Arsitektur Sistem ... 15 Gambar 4. Diagram Usecase ... 32 Gambar 5. Diagram Aktivitas Saat Aplikasi dijalankan ... 36 Gambar 6. Diagram Aktivitas saat Proses Cari Rekomendasi ... 37 Gambar 7. Diagram Aktivitas Input Profil Sales ... 37 Gambar 8. Diagram Aktivitas Hapus Item Profile ... 38 Gambar 9. Diagram Aktivitas Melihat Profil MedRep ... 38 Gambar 10. Diagram Aktivitas Download File Dokter ... 39 Gambar 11. Diagram Aktivitas Meribah file list dokter yang diakses ... 39 Gambar 12. Diagram Aktivitas Tambah File ... 40 Gambar 13. Diagram Aktivitas Edit Deskripsi File ... 40 Gambar 14. Diagram Aktivitas Hapus File ... 41 Gambar 15. Diagram Analisis Kelas ... 42 Gambar 16. Diagram Kelas ... 43 Gambar 17. Diagram Kelas (Web Admin) ... 43 Gambar 18. Diagram Sequence Saat Aplikasi Dijalankan... 50 Gambar 19. Diagaram Sequence Cari Rekomendasi ... 51 Gambar 20. Diagram Sequence Input Profile Medrep ... 52 Gambar 21. Diagram Sequence Lihat Profil Sales... 53 Gambar 22. Diagram Sequence hapus Item Profile ... 53 Gambar 23. Diagram Sequence Download File Rekomendasi Dokter ... 54 Gambar 24. Diagram Sequence Merubah File ListDokter Yang Diakses ... 54 Gambar 25. Diagram Sequence Tambah File ... 55 Gambar 26. Diagram Sequence Edit Deskripsi... 55 Gambar 27. Diagram Sequence Hapus File ... 56
(23)
xxi
DAFTAR TABEL
Tabel 1. Contoh Data Rekomendasi Obat Dokter ... 12 Tabel 2. Rekomendasi Obat ... 16 Tabel 3. Hasil Penggabungan obat berdasarkan Generic ... 17 Tabel 4. Normalisasi Bobot Generic ... 18 Tabel 5. Centroid Awal ... 20 Tabel 6. Iterasi Pertama... 20 Tabel 7. Anggota Cluster Iiterasi Pertama ... 22 Tabel 8. Centroid Kedua ... 24 Tabel 9. Iterasi Kedua ... 24 Tabel 10. Anggota Cluster Iterasi Kedua ... 25 Tabel 11. Centroid Ketiga ... 26 Tabel 12. Iterasi Ketiga ... 26 Tabel 13. Pusat cluster ... 28 Tabel 14. Contoh Profil Pengguna (Query) ... 28 Tabel 15. Jarak Query Dengan Cluster (contoh) ... 29 Tabel 16 Anggota dari cluster yang terdekat ... 29 Tabel 17. Pengurutan Dokter Berdasarkan Jarak Similarity ... 30 Tabel 18 Tabel Relevansi Hasil Pencarian... 30 Tabel 19 Perhitungan Recal Dan Precission (contoh)... 31 Tabel 20 Perhitungan Averge Precision (contoh) ... 31 Tabel 21. Item Query Yang Tersedia ... 90 Tabel 22. Sampel Query Yang Digunakan Untuk Pengujian ... 91 Tabel 23. Relevansi Dokumen ... 100 Tabel 24. Menghitung Recall dan Precision ... 101 Tabel 25. Average Precision Terhadap 11 Titik Recall ... 104
(24)
xxii
DAFTAR GRAFIK
Grafik 1. Contoh Recall Precision ... 31 Grafik.2 Diagram Average Precision 11 Titik Recall ... 106
(25)
BAB I PENDAHULUAN A. Latar Belakang Masalah
Saat ini aplikasi mobile terus berkembang dengan pesat seiring meningkatnya penjualan smartphone. Seperti yang dikemukakan Junifer Network Inc dalam penelitiannya pada triwulan kedua tahun 2012, angka penjualan Samsung mampu meraih meraih total pengiriman 52 juta unit, iPhone 26 juta unit , Nokia 10.2 juta unit, dan RIM 7.4 juta unit [www.teknoup.com, 2012]. Perusahaan pengembang software terus mengembangkan aplikasi mobile untuk menarik minat konsumen. Perusahaan pengembang software mengedepankan inovasi-inovasi baru untuk pemerolehan informasi dibidang bisnis dan hiburan. Seperti yang dikemukakan Presiden SAP Asia Tenggara “SAP akan menekankan solusi bisnis dengan meluncurkan SAP mobility" [Okezone.com, 2012].
Aplikasi mobile sangat cocok untuk mendukung kerja marketing yang bersifat mobile atau selalu berpindah. Tenaga marketing selalu berpindah-pindah karena pembeli berada ditempat yang jauh dan berbeda. Salah satu tenaga penjual tersebut adalah sales obat kerena mereka selu mengunjungi dokter di klinik atau rumah sakit tempat yang jauh dan berbeda.
Dalam menjalankan bisnis yang bersifat mobile, sales obat memerlukan informasi yang real time dan akurat. Hal ini dikemukakan oleh beberapa sales obat di sebuah rumah sakit swasta di Yogyakata, bahwa sales obat memerlukan aplikasi mobile yang mampu memberikan informasi secara real time dan akurat terkait dokter yang akan dikunjungi.
Penelitian ini mencoba untuk menyelesaikan permasalahan sales obat dengan pendekatan data mining dan information retrival. Metode data mining dan information retrival ini akan diterapkan dalam aplikasi moible. Dengan demikian diharpkan dengan pendekatan ini dapat menghasilkan rekomendasi dokter yang akurat dan real time.
(26)
B. Rumusan Masalah
Berdasarkan latar belakang di atas, rumusan masalah penelitin ini adalah: 1. Bagaimana membuat rekomendasi dokter yang akan dikunjungi oleh sales
obat?
2. Mengukur sejauh mana informasi rekomendasi dokter yang dihasilkan aplikasi dengan pendekatan k-mean clustering dan eculidean distance dapat memberikan informasi yang akurat.
C. Tujuan Penelitian
Penelitian ini bertujuan untuk mengetahui, sejauh mana rekomendasi dokter yang dihasilkan dari pendekatan k-mean clustering dan eculidean distance dapat memberikan informasi yang akurat.
D. Manfaat Penelitian
1. Penelitian ini diharapkan dapat menjadi bahan rujukan bagi penelitian sejenis daalam ranah information retrival dan data mining.
2. memberikan sebuah analisa yang dapat memberikan rekomendasi dokter yang tepat untuk dikunjungi.
3. Manfaat dari hasil penelitian diharapkan dapat membantu sales obat dalam pemasaran produk sehingga lebih efisien dan tepat sasaran .
E. Batasan Masalah
Adapun batasan-batasan masalah dalam penulisan tugas akhir ini adalah sebagai berikut :
1. Dalam penelitian ini metode clustering dan Euclidean similarity akan diimplementasikan dalam aplikasi rekomendasi dokter untuk sales berbasis mobile.
2. Aplikasi dibangun menggunakan bahasa pemrograman java untuk android 3. Aplikasi akan berjalan minimal pada sistem operasi Android 2.3
(27)
5. Untuk melakukan pencarian dokter yang bisa dikunjungi, peneliti menggunakan metode Euclidean Distance untuk mengukur jarak profil dokter berupa rekomendasi obat(generic) dengan profil sales obat berupa list dari obat(generic).
6. Peneliti menggunakan algoritma K-Mean untuk mengelompokan data dokter yang memiliki kemiripan pola rekomendasi obat.
7. Hasil pencarian dokter akan hitung tingkat akurasinya menggunakan perhitungan information retrival dengan Recall dan Precision.
8. Karena sulitnya mendapatkan data rekomendasi dokter peneliti hanya akan menggunakan rekomendasi dari 67 dokter di Yogyakarta.
9. Banyaknya jenis obat yang direkomendasikan oleh dokter maka peneliti hanya akan menggunakan rekomendasi obat cari/injeksi sebanyk 109 merek.
10. Demi menjaga kode etik dokter dan rumah sakit maka dalam penelitian ini nama rumah sakit dan nama dokter akan disamarkan.
11. Aplikasi yang dibuat hanya untuk pentingan penelitian tidak untuk dikomersilkan.
F. Metodologi Penelitian
Langkah-langkah yang digunkan dalam penelitian ini adalah: 1. Referensi (Literatur)
Pengumpulan informasi dengan cara membaca buku , jurnal dan mencari informasi di internet dan wawancara langsung pada sales obat untuk menunjang latarbelakang dalam pembuatan tugas akhir.
2. Pembuatan perangkat lunak.
Peneliti memfokuskan pada proses pemerolehan informasi agar informasi yang didapatkan menjawab masalah yang ada.
3. Pengujian unjuk kerja.
Pengujian ini dilakukan secara manual dengan mengukur tingkat presisi dari hasil pencarian.
(28)
G. 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 : METODELOGI PENELITIAN DAN ANALISIS SISTEM
Bab ini membahas bagaimana data diperoleh dan diproses menggunakan metode tertentu. Bab ini juga akan membahas analisis sistem yang akan dibuat secara umum
BAB IV : PERANCANGAN SISTEM DAN IMPLEMENTASI SISTEM Bab ini membahas implementasi dalam bentuk aplikasi berdasarkan analisa dan perancangan yang telah dilakukan.
BAB V : HASIL DAN PENGUJIAN
Bab ini membahas analisa hasil implementasi dan pengujian sistem. BAB VI : KESIMPULAN DAN SARAN
Bab ini membahas kesimpulan dan saran dari hasil analisa sistem, implementasi sistem dan pengujian.
(29)
5
BAB II LANDASAN TEORI A. Sistem Rekomendasi
Sistem Rekomendasi atau disebut juga Recommender system merupakan sebuah sistem yang memberikan satu atau lebih informasi yang dibutuhkan untuk menentukan pilihan. Nilai dari Recommender system terletak pada kemampuannya untuk mencocokkan dua hal yaitu bagian yang memproses data untuk menghasilkan informasi-informasi yang dibutuhkan sebagai pertimbangan untuk menentukan pilihan [Burke, 2007].
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. [Burke, 2007].
Recommender system telah diklasifikasikan ke dalam empat kategori utama collaborative-based, content-based, knowledge-based, hybrid [Burke, 2007]. 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].
B. Content Based Filtering
Satu aspek yang membedakan antara information filtering dan information retrieval adalah mengenai kepentingan pengguna. Pada information retrival pengguna menggunakan ad-hoc queries, sedangkan pada information filtering pengguna sudah mempunyai profil yang merepresentasikan kepentingan jangka panjang, dan sistem mencoba memberikan kepada setiap pengguna item yang relevan [Dai dan Mobasher, 2001].
(30)
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 [Dai dan Mobasher, 2001].
Keuntungan dari pendekatan content-based filtering adalah pengguna mendapatkan wawasan tentang mengapa suatu item dianggap relevan untuk pengguna, karena konten di setiap itemnya 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. Perinsip kedekatan ini menyatakan bahwa jarak dari dua deskripsi item secara langsung berkaitan dengan kesamaan mereka [Knappe, 2005].
C. Normalisasi
Faktor normalisasi digunakan untuk menormalkan vektor dokumen sehingga proses retrieval tidak terpengaruh oleh panjang dari dokumen. Normalisasi ini diperlukan karena dokumen panjang biasanya mengandung perulangan term yang sama sehingga menaikkan frekuensi term (tf).
Dokumen panjang juga mengandung banyak term yang berbeda sehingga menaikkan ukuran kemiripan antara query dengan dokumen tersebut, meningkatkan peluang di-retrievenya dokumen yang lebih panjang. Beberapa pendekatan normalisasi adalah normalisasi cosinus, penjumlahan bobot, normalisasi ke- 4, normalisasi bobot maksimal dan normalisasi pivoted unique . Dalam penelitian ini akan digunakan normalisasi bobot maksimal [Husni, 2010].
Normalisasi bobot maksimal suatu term i di dalam dokumen j (tfij) dapat
(31)
ntf = tf Max tf
Diketahui:
• Tfik merupakan frekuensi dari istilah k dalam dokumen i. • n adalah jumlah dokumen dalam kumpulan dokumen.
• Maxj tfik adalah frekuensi istilah terbesar pada satu dokumen.
D. Uclidean Distance
Dalam matematika, euclidean distance atau adalah jarak antara dua titik dapat diukur menggunakan formula pytagoras. Euclidean sering disebut dengan vector obyek geometri yang memiliki panjang (magnitude) dan arah (direction). Sedangkan ruang vektor adalah sebuah struktur matematika yang dibentuk oleh sekumpulan vektor. Vektor-vektor tersebut dapat ditambahkan, dikalikan dengan bilangan real dan lain-lain. [Sandi, 2010].
Berikut merupakan penyelesaian dalam menghitung jarak antara vektor A dan vektor B. Panjang vektor A dan B dapat didefinisikan sebagai berikut:
Dengan demikian, untuk menghitung jarak antara kedua vektor tersebut menggunakan persamaan sebagai berikut :
E. K-Mean
1. Pengertian
Jika diberikan sekumpulan data X = {x1, x2, …, xn} dimana xi = (xi1, xi2, …, xin) adalah vector dalam ruang real Rn, maka algoritma k-means akan mempartisi X dalam k buah cluster. Setiap cluster memiliki centroid (titik
(32)
tengah) atau mean dari data-data dalam cluster tersebut. Pada tahap awal, algoritma k-means memilih secara acak k buah data sebagai centroid. Kemudian, jarak antara data dan centroid dihitung menggunakan Euclidian distance. Data ditempatkan dalam cluster yang terdekat, dihitung dari titik tengah cluster. Centroid baru akan ditentukan bila semua data telah ditempatkan dalam cluster terdekat. Proses penentuan centroid dan penempatan data dalam cluster diulangi sampai nilai centroid konvergen (centroid dari semua cluster tidak berubah lagi) [Munzir dan Taufik , 2009].
2. Teknik Metode K-Mean
K-means memilih secara acak k buah data sebagai centroid. Kemudian menempatkan data dalam cluster yang terdekat, dihitung dari titik tengah cluster (centroid). Centroid baru akan ditentukan bila semua data telah ditempatkan dalam cluster terdekat. Proses penentuan centroid dan nempatan data dalam cluster diulangi sampai nilai centroid konvergen. Gambar 1 memperlihatkan cara kerja k-means dan algoritma 1 memperlihatkan langkah-langkah proses k-means [Munzir dan Taufik , 2009].
Algoritma 1 Proses K-Means Input: vektor dokumen D, k Output: k cluster dokumen
1. Pilih secara acak k vektor sebagai centroid 2. repeat
3. tempatkan data (vektor) dalam cluster atau centroid terdekat 4. hitung centroid baru dari cluster yang terbentuk
(33)
Gambar 1. Proses dari clustering
F. Pengujian sistem
Sistem IR mengembalikan sekumpulan dokumen sebagai jawaban dari query pengguna. Terdapat dua kategori dokumen yang dihasilkan oleh sistem IR terkait pemrosesan query, yaitu relevant documents (dokumen yang relevan dengan query) dan retrieved documents (dokumen yang diterima pengguna). Ukuran umum yang digunakan untuk mengukur kualitas dari text retrieval adalah kombinasi precision dan recall.
Presisi mengevaluasi kemampuan sistem IR untuk menemukan kembali dokumen top-ranked yang paling relevan, dan didefinisikan sebagai persentase dokumen yang diretrieve yang benar-benar relevan terhadap query pengguna. [Husni , 2010].
Precision =|relevant ∩ retrieved| / |retrieved
Recall mengevaluasi kemampuan sistem IR untuk menemukan semua item yang relevan dari dalam koleksi dokumen dan didefinisikan sebagai persentase dokumen yang relevan terhadap query pengguna dan yang diterima. [Husni , 2010] .
Recall = |relevant ∩ retrieved| / |relevant|
G. Android
1. Pengertian
Android merupakan sistem operasi yang dikembangkan untuk perangkat mobile berbasis Linux.
(34)
2. Arsitektur Android
Sistem operasi Android dibangun berdasarkan kernel Linux dan memiliki arsitektur seperti Gambar 2 berikut di bawah ini.
Gambar 2. Arsitektur Android
3. 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.
4. 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
(35)
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 berfungsi mengatur daur hidup dari aplikasi.
(36)
12
BAB III
METODOLOGI PENELITIAN DAN ANALISIS SISTEM
A. Pengumpulan Data dan Informasi 1. Wawancara
Wawancara dilakukan untuk mengetahui kebutuhan kongkrit yang dialami sales obat. Peneliti menemukan masalah yaitu sales obat membutuhkan informasi rekomendasi dokter yang akurat dan bersifat real time. Rekomendasi yang dibutuhkan adalah rekomendasi memuat informasi terkait dokter-dokter yang memiliki kesamaan profil dengan sales.
2. Pemerolehan Data
Peneliti menggunakan rekomendasi obat dari seluruh dokter disebuah rumah sakit swasta di Yogyakarta. Data tersebut yang memuat nama dokter, spesialis dan merek obat-obat yang pernah direkomendasikan oleh dokter itu. Data dokter tersebut akan diproses untuk mencari dokter-dokter yang memiliki kemiripan profil dengan sales. Data tersebut digambarkan pada Tabel 1 berikut di bawah ini.
Tabel 1. Contoh Data Rekomendasi Obat Dokter No Dokter Spesialis Dypi
rone Dipyr one Ceft riaxo ne Ceft riaxo ne Ephed rine hydroh loride Fent anyl Dexk etopr ofan dex med etom idine diaz epa m cefu roxi me Nov algi Antra in Terf acef Biox on Epheri n Fent anyl Kete se Prec edex Vali um Anb acy m 1. KS Anak 0 14 68 0 0 0 0 0 0 74 2. AP Bedah 0 5 20 0 0 0 0 0 0 9 3. NA Jantung 0 4 0 0 0 0 0 0 0 0 4. AD Jantung 0 2 0 0 0 0 0 0 0 0 5. DN Kandun
gan
0 4 0 0 0 0 0 0 0 0
6. BP Anak 0 0 0 2 0 0 0 0 0 0
(37)
8. AW THT 4 0 0 0 0 0 0 0 0 0
Keterangan :
Nama Dokter : KS , AP , NA , AD , DN , BP , WR , AW (untuk menjaga kode etik nama dokter disamarkan) .
Merek Obat : Novalgin , Novalgin , Terfacef , Bioxon , Ephedrin , Fentanyl , Ketese , Precedex ,Valium Anbacym.
Kandungan zat dalam obat (Generic) : dipyrone, ceftriaxone, ephedrine hydrochloride + theophylline anhydrous, fentanyl, dexketoprofen, dexmedetomidine hydrochloride, diazepam, cefuroxime.
B. Analisis Sistem
Analisis sistem adalah sebuah teknik pemecahan masalah yang memecah-mecah sebuah sistem menjadi komponen-komponen untuk mengetahui bagaimana komponen-komponen tersebut bekerja dan berinteraksi untuk mencapai tujuannya [Whitten, 2004]. Dengan demikian alalisis sistem harus dilakukan agar software yang dihasilkan dapat menyelesaikan masalah yang ada.
Aplikasi ini akan menghasilkan rekomendasi dokter untuk sales obat. Rekomendasi dokter akan dibuat menggunakan pendekatan K-mean Clustering dan Euclidean Similarity. K-mean Clustering digunakan untuk mengelompokan data dokter, diasumsikan dokter dengan spesialis yang sama menawarkan obat yang sama. Euclidean Similarity digunakan untuk mengukur kemiripan profil pengguna dengan profil dokter dalam cluster yang terdekat.
Profil pengguna adalah obat-obat yang ditawarkan sales obat pada dokter. Setiap obat memiliki bobot prioritas penawaran 1-4 (standard-medium-high-highst). Bobot setiap obat dinormalisasi berdasarkan nilai bobot maksimal dari obat yang ditawarkan.
Profil dokter memuat banyaknya jumlah obat yang direkomendasikan oleh dokter. Obat dengan generic yang sama akan digabungkan dengan menjumlahkan
(38)
nilai dari obat tersebut kemudian dinormalisasi berdasarkan nilai bobot maksimal generic dari seluruh dokumen (dokter).
Rekomendasi dokter akan dibentuk dengan memilih cluster dokter paling dekat dengan profil pengguna. Profil pengguna akan diukur kedekatanya dengan setiap anggota dalam clustrer terdekat kemudian diurutkan berdasarkan jarak Euclidean similarity.
C. Software Requirement Analysis
Sistem ini akan berjalan pada perangkat mobile dengan sistem operasi android minial 2.2 dan terkoneksi dengan internet. Untuk lebih jelasnya antara lain sebagai berikut:
1. Analisis perangkat lunak yang dibutukan
a. Database : File .XLS
b. Bahasa pemrograman : Pemrograman Java Mobile untuk Android
c. Maps : Maps Api dari Google
d. Sistem operasi : Android 2.2
e. Tools : Eclipse Galileo, Android SDK , JDK1.6
2. Analisis perangkat keras yang dibutuhkan
a. Prosesor : 900 Mhz
b. Ram : 398MB
c. Storage : 1 GB
3. Arsitektur Aplikasi
Arsitektur aplikasi merupakan aplikasi yang memproses inputan berupa profil dari pengguna yang berisi generic obat dan bobotnya. Aplikasi akan mencari Cluster dokter dengan jarak yang paling dekat. Seluruh dokter dari
(39)
cluster yang paling d anggota cluster deng
Pada aplikasi te ini memberikan laya dengan kebutuhan. S kebutuhan sales. Pro bawah ini.
4. Membuat Rekom
a. Penggabung
Penggabun sama. Misalnya merek z, kedua parachetamol m nilai dari obat t sebagai profil ditawarkan.
g dekat akan diurutkan berdasarkan jarak simila ngan profil pengguna.
i tersebut terdapat juga Cloud Repository. Cloud R ayanan kepada sales obat untuk mendownload d
. Sehingga data dokter yang diproses dapat dirub roses dari aplikasi tersebut dapat dilihat pada Ga
Gambar 3. Arsitektur Sistem
komendasi Dokter
ngan Obat Berdasarkan Generic
ungan obat hanya dilakukan pada obat dengan ge a dokter A merekomendasikan obat dengan mer dua obat tersebut memiliki generic yang sa maka obat y dan z digabungkan dengan men t tersebut. Dengan demikian orientasi yang l dokter ayaitu berdasarkan generic dari o
ilarity antara
d Repository data sesuai irubah sesuai Gambar 3 di
generic yang erek y dan sama yaitu enjumlahkan g digunakan obat yang
(40)
Tabel 2 berikut di bawah ini merupakan contoh profil dokter sebelum dilakukan penggabungan berdasarkan generic, dan Tabel 3 adalah hasil penggabungan obat berdasasrkan generic.
Tabel 2. Rekomendasi Obat
No Dokter Dipyro ne Dipyro ne Ceftria xone Ceft riax one Ephedrine hydrochlorid e+heophyllin e anhydrous Fentan yl Dex keto prof en Dexmede tomidine hydrochl oride Diaz epa m Cefu roxi me Novalg in Antrai n Terfac ef Biox
on Ephedrin
Fentan yl
Kete
se Precedex Vali um
Anb acy m
1. KS 0 14 68 0 0 0 0 0 0 74
2. AP 0 5 20 0 0 0 0 0 0 9
3. NA 0 4 0 0 0 0 0 0 0 0
4. AD 0 2 0 0 0 0 0 0 0 0
5. DN 0 4 0 0 0 0 0 0 0 0
6. BP 0 0 0 2 0 0 0 0 0 0
7. WR 0 3 7 0 0 0 0 0 0 18
8. AW 4 0 0 0 0 0 0 0 0 0
9. NH 0 4 0 0 0 0 0 0 0 0
10. PA 2 0 0 0 0 0 0 0 0 0
11. SK 3 0 3 0 0 0 0 0 0 0
12. AI 0 0 46 0 0 0 0 0 2 0
13. El 0 0 5 0 0 0 0 0 0 0
14. MJ 2 0 0 0 0 0 0 0 0 0
15. HW 0 0 0 1 0 0 0 0 0 0
16. SR 0 0 0 0 6 8 15 6 2 0
17. SD 0 0 0 0 4 6 8 3 2 0
18. RT 0 0 0 0 6 13 14 8 5 0
19. CA 0 0 0 0 3 5 8 2 1 0
20. AN 0 2 4 0 0 0 0 0 0 0
21. PW 0 0 0 0 0 0 0 0 0 10
22. AM 0 0 4 0 0 0 0 0 0 0
(41)
Tabel 3. Hasil Penggabungan obat berdasarkan Generic
No Dokte r Dipy rone Ceftriax one Ephedrine hydrochloride + theophylline anhydrous Fentan yl Dexketo profen Dexmedeto midine hydrochlor ide Diazep am Cefuro xime
1. KS 14 68 0 0 0 0 0 74
2. AP 5 20 0 0 0 0 0 9
3. NA 4 0 0 0 0 0 0 0
4. AD 2 0 0 0 0 0 0 0
5. DN 4 0 0 0 0 0 0 0
6. BP 0 2 0 0 0 0 0 0
7. WR 3 7 0 0 0 0 0 18
8. AW 4 0 0 0 0 0 0 0
9. NH 4 0 0 0 0 0 0 0
10. PA 2 0 0 0 0 0 0 0
11. SK 3 3 0 0 0 0 0 0
12. AI 0 46 0 0 0 0 2 0
13. El 0 5 0 0 0 0 0 0
14. MJ 2 0 0 0 0 0 0 0
15. HW 0 1 0 0 0 0 0 0
16. SR 0 0 6 8 15 6 2 0
17. SD 0 0 4 6 8 3 2 0
18. RT 0 0 6 13 14 8 5 0
19. CA 0 0 3 5 8 2 1 0
20. AN 2 4 0 0 0 0 0 0
21. PW 0 0 0 0 0 0 0 10
22. AM 0 4 0 0 0 0 0 0
(42)
Keterangan:
Dokter : KS , AP , NA , AD , DN , BP , WR , AW , NH , PA , SK , AI , MJ , HW , SR , SD , RT , CA , AN , PW , AM , TA
Merek Obat : novalgin, antrain , terfacef, bioxon , ephedrine , fentanyl , ketese , precede, valium , anbacym
Generic : dipryone ,Ceftriaxone , ephedrine , dexketropof , dexemd , diazepam , ceforoxi
b. Normalisasi Profil Dokter
Normalisasi pada profile dokter dilakukan dengan menggunakan normalisasi bobot maksimal suatu term i di dalam dokumen j (tfij).
Tabel 4 berikut di bawah ini merupakan hasil normalisasi dari Tabel 3 dengan perhitungan menggunakan rumus berikut:
. ntf =
Diketahui:
o Tfik merupakan frekuensi dari istilah k dalam dokumen i.
o n adalah jumlah dokumen dalam kumpulan dokumen.
o Maxj tfik adalah frekuensi istilah terbesar pada satu dokumen.
Tabel 4. Normalisasi Bobot Generic
No Dokter Dipy rone Ceftriax one Ephedrine hydrochlorid e+ theophylline anhydrous
Fentanyl Dexketo profen Dexmedeto midine hydrochlor ide Diazepa m Cefuro xime
1. KS 1 1 0 0 0 0 0 1
2. AP 0.4 0 0 0 0 0 0 0.1
3. NA 0.3 0 0 0 0 0 0 0
(43)
5. DN 0.3 0 0 0 0 0 0 0
6. BP 0 0 0 0 0 0 0 0
7. WR 0.2 0 0 0 0 0 0 0.2
8. AW 0.3 0 0 0 0 0 0 0
9. NH 0.3 0 0 0 0 0 0 0
10. PA 0.1 0 0 0 0 0 0 0
11. SK 0.2 0 0 0 0 0 0 0
12. AI 0 1 0 0 0 0 0.4 0
13. El 0 0 0 0 0 0 0 0
14. MJ 0.1 0 0 0 0 0 0 0
15. HW 0 0 0 0 0 0 0 0
16. SR 0 0 1 0.62 1 1 0.4 0
17. SD 0 0 1 0.46 0.533 0 0.4 0
18. RT 0 0 1 1 0.933 1 1 0
19. CA 0 0 1 0.38 0.533 0 0.2 0
20. AN 0.1 0 0 0 0 0 0 0
21. PW 0 0 0 0 0 0 0 0.1
22. AM 0 0 0 0 0 0 0 0
23. TA 0 0 0 0 0 0 0 0
c. Membuat Cluster Dokter
Berikut ini digambarkan rangkaian proses dalam pembentukan cluster dengan algoritma k-mean.
1) Mengambil sejumlah k dari nilai data sebagai pusat cluster dengan data awal pada Tabel 4, sehingga diperoleh pusat cluster seperti pada Tabel 5 berikut di bawah ini.
(44)
Tabel 5. Centroid Awal No Dip yro ne Ceftria xone Ephedrine hydrochlorid e+theophylli ne anhydrous Fenta nyl Dexketo profen Dexmedetom idine hydrochloride Diazep am Cefurox ime
C1 1 0.1 0 0.3 0.2 0.2 0.4 0
C2 0 0.5 0.6 0.5 0.5 0.7 0.2 0
C3 0.1 0.3 0.8 0.1 0 0.3 0.8 0
2) Menghitung Euclidian distance data dengan tiap pusat cluster kemudian ambil yang jaraknya paling kecil (dekat).
Contoh perhitungan :
SQRT((1-1)^2+(1-0.05)^2+(0-0.2)^2+(0-0.3)^2+(0-0.2)^2+(0-0.2)^2+(0-0.4)^2+(1-0.12)^2)= 1.417
Hasil dari perhitungan Euclidian distance dapat dilihat seperti Tabel 6 di bawah ini.
Tabel 6. Iterasi Pertama
ID C1 C2 C3
1 1.417 1.8 1.20869718 C1
2 0.896 1.3 1.22657645 C1
3 0.926 1.3 1.21319279 C1
4 1.04 1.3 1.22657645 C1
5 0.926 1.3 1.20963548 C1
6 1.16 1.3 1.22108996 C1
7 0.983 1.3 1.22657645 C1
(45)
9 0.926 1.3 1.21319279 C1
10 1.04 1.3 1.20769905 C1
11 0.981 1.3 1.02553893 C1
12 1.256 1.2 1.20053693 C3
13 1.16 1.3 1.21319279 C1
14 1.04 1.3 1.21300978 C1
15 1.16 1.3 1.32970722 C1
16 1.749 0.9 0.83579739 C3
17 1.276 0.7 1.53333333 C2
18 2.011 1.3 0.95809726 C3
19 1.195 0.7 1.20000118 C2
20 1.039 1.3 1.22403493 C2
21 1.154 1.3 1.20339773 C2
22 1.16 1.3 1.19300151 C3
23 1.161 1.3 1.21655251 C2
3) Pengelompokan data
Pengelompokan dilakukan berdasarkan jarak euclidean terkecil dari data terhadap pusat cluster. Iterasi pada Tabel 7 merupakan menunjukkan data sebagai anggota cluster sementara.
(46)
Tabel 7. Anggota Cluster Iiterasi Pertama C1 (Iterasi 1)
Dokt er
Dipyro ne
Ceftriax one
Ephedrine hydrochlorid e+
theophylline anhydrous
Fentanyl Dexketopr ofen
Dexmedetomi dine hydrochloride
Diazep am
Cefuroxi me
KS 1 1 0 0 0 0 0 1
AP 0.36 0.3 0 0 0 0 0 0
NA 0.29 0 0 0 0 0 0 0
AD 0.14 0 0 0 0 0 0 0
DN 0.29 0 0 0 0 0 0 0
BP 0 0 0 0 0 0 0 0
WR 0.21 0.1 0 0 0 0 0 0
AW 0.29 0 0 0 0 0 0 0
NH 0.29 0 0 0 0 0 0 0
PA 0.14 0 0 0 0 0 0 0
SK 0.21 0 0 0 0 0 0 0
El 0 0.1 0 0 0 0 0 0
MJ 0.14 0 0 0 0 0 0 0
HW 0 0 0 0 0 0 0 0
(47)
C2 Dokte r Dipyro ne Ceftriaxo ne Ephedrine hydrochlori de+ theophylline anhydrous
Fentanyl Dexketopro fen Dexmedetomi dine hydrochloride Diazepa m Cefuroxi me
SD 0 0 0.66666
7 0.4615 0.53 0.38 0.4 0 CA 0 0 0.5 0.3846 0.53 0.25 0.2 0
AN 0.14 0.1 0 0 0 0 0 0
PW 0 0 0 0 0 0 0 0
TA 0 0 0 0 0 0 0 0
Rata
2 0.028 0.02
0.233333 4
0.1692
32 0.213 0.126 0.12 0
C3 Dokte r Dipyro ne Ceftriaxo ne Ephedrine hydrochlori de+ theophylline anhydrous
Fentanyl Dexketopro fen Dexmedetomi dine hydrochloride Diazepa m Cefuroxi me
AI 0 0.7 0 0 0 0 0.4 0
SR 0 0 1 0.6154 1 0.75 0.4 0
RT 0 0 1 1 0.93 1 1 0
AM 0 0.1 0 0 0 0 0 0
Rata
2 0 0.2 0.5
0.4038
(48)
4) Membuat Centroid Baru
Setelah iterasi dilakukan buatlah centroid baru dengan menghitung nilai rata-rata index dari setiap cluster yang terbentuk. Ulangi langkah ke-2 sampai tidak terjadi perubahan anggota kelompok dalam iterasi berikutnya.
Tabel 8. Centroid Kedua
c1 0.24 0.11 0 0 0 0 0 0.071
c2 0.028 0.02 0.2333334 0.169232 0.213 0.126 0.12 0 c3 0 0.2 0.5 0.403845 0.483 0.438 0.45 0
Tabel 9. Iterasi Kedua
1 1.4942 1.750428001 1.9185968 C1
2 0.224 0.597562975 1.09188582 C1
3 0.1387 0.475006146 1.07826079 C1
4 0.163 0.415218435 1.04948646 C1
5 0.1387 0.475006146 1.07826079 C1
6 0.2629 0.399608267 1.03446316 C1
7 0.1743 0.509473323 1.07495104 C1
8 0.1387 0.475006146 1.07826079 C1
9 0.1387 0.475006146 1.07826079 C1
10 0.163 0.415218435 1.04948646 C1
11 0.1002 0.440565788 1.05414959 C1
12 0.7372 0.809043768 1.03345919 C1
13 0.2529 0.403067716 1.02810918 C1
(49)
15 0.2678 0.399532493 1.03698967 C1
16 1.7821 1.369249456 0.83759889 C3
17 1.1477 0.719229545 0.28298171 C3
18 2.2239 1.826473423 1.21089834 C3
19 0.9272 0.492895962 0.3751228 C3
20 0.1308 0.416549655 1.03988107 C1
21 0.2717 0.422208112 1.04846325 C1
22 0.2555 0.401379436 1.03002159 C1
23 0.2504 0.411257989 1.02361891 C1
Tabel 10. Anggota Cluster Iterasi Kedua C1
Dokt er
Dipyrone Ceftriaxon e Ephedrine hydrochlori de+ theophyllin e anhydrous Fenta nyl Dexketopr ofen Dexmedetomi dine hydrochloride Diazep am Cefuroxi me
KS 1 1 0 0 0 0 0 1
AP 0.36 0.3 0 0 0 0 0 0
NA 0.29 0 0 0 0 0 0 0
AD 0.14 0 0 0 0 0 0 0
DN 0.29 0 0 0 0 0 0 0
BP 0 0 0 0 0 0 0 0
WR 0.21 0.1 0 0 0 0 0 0
AW 0.29 0 0 0 0 0 0 0
NH 0.29 0 0 0 0 0 0 0
PA 0.14 0 0 0 0 0 0 0
SK 0.21 0 0 0 0 0 0 0
AI 0 0.71 0 0 0 0 0.4 0
El 0 0.1 0 0 0 0 0 0
MJ 0.14 0 0 0 0 0 0 0
HW 0 0 0 0 0 0 0 0
AN 0.14 0.1 0 0 0 0 0 0
(50)
AM 0 0.1 0 0 0 0 0 0
TA 0 0 0 0 0 0 0 0
Rata 2
0.184210 526
0.12684
211 0 0 0 0 0.02 0.053
C2
Tidak memiliki anggota C3 Dokt er Dipyro ne Ceftriaxo ne Ephedrine hydrochlori de+ theophylline anhydrous
Fentanyl Dexketopro fen Dexmedetomi dine hydrochloride Diazepa m Cefuroxi me
SR 0 0 1 0.6153 8
1 0.75 0.4 0
SD 0 0 0.666667 0.4615 4
0.533 0.38 0.4 0
RT 0 0 1 1 0.933 1 1 0
CA 0 0 0.5 0.3846 2
0.533 0.25 0.2 0
AV G
0 0 0.7916667
5
0.6153 85
0.74975 0.595 0.5 0
Tabel 11. Centroid Ketiga Centroid 3
C1 0.184210526 0.12684211 0 0 0 0 0.02 0.53
C3 0 0 0.79166675 0.615385 0.74975 0.595 0.5 \0
Karena C2 tidak memiliki anggota maka tidak ada centroid untuk C2. Tabel 12. Iterasi Ketiga
1 1.2842 2.274111915 c1
2 0.4744 1.549333093 c1
3 0.5547 1.501072169 c1
4 0.5469 1.480538134 c1
5 0.5547 1.501072169 c1
(51)
7 0.29 1.512371493 c1
8 0.5547 1.501072169 c1
9 0.5547 1.501072169 c1
10 0.5469 1.480538134 c1
11 0.5376 1.489781775 c1
12 0.8725 1.545702902 c1
13 0.564 1.475463174 c1
14 0.5469 1.480538134 c1
15 0.5725 1.473703249 c1
16 1.8484 0.374236296 c3
17 1.2481 0.380170951 c3
18 2.2721 0.799411835 c3
19 1.0527 0.627841765 c3
20 0.5363 1.481706238 c1
21 0.4542 1.479812998 c1
22 0.5656 1.474803448 c1
23 0.5615 1.478318583 c1
Pada iterasi ke-3 ini anggota dari setiap kelompok sudah tidak berubah maka perhitungan dihentikan .
d. Normalisasi Bobot Profil Pengguna (query)
Normalisasi bobot untuk proifil pengguna didasarkan pada bobot maksimal dari seluruh oba. Nilai setiap obat dibagi dengan nilai maksimal dari seluruh obat yang akan ditawarkan.
Dipy one Ceftr iaxo ne Ephedrine hydrochloride+ theophylline anhydrous Fen tan yl Dexke toprof en Dexmedeto midine hydrochlor ide Diaze pam Cefuro xime Qu
(52)
Menghitung nilai bobot normal dilakukan dengan cara membagin nilai obat dengan nilai obat terbesar misalnya untuk index dipyrone memiliki bobot 3 kemudian dinormalkan menjadi ¾ = 0.75. berikut adalah hasil normalisasi query.
e. Mencari Cluster Terdekat
Menghitung jarak setiap pusat cluster dengan query yang telah dinormalisasi menggunakan Euclidean distance. Pilih cluster dengan jarak terkecil. Berikut adalah contoh pusat cluster, bisadilihat pada Tabel 13 di bawah ini.
Tabel 13. Pusat cluster
Tabel 14. Contoh Profil Pengguna (Query)
Berikut adalah jarak Euclidean query dengan pusat cluster. Tabel 15. Dipyron e Eftr iaxo ne Ephedrine hydrochloride+ theophylline anhydrous Fe nta ny l Dexket oprofe n Dexmed etomidin e hydrochl oride Diaz epam Cefu roxi me Quer y
0.75 0 0 0 0 1 0.25 0.25
Dipyr one Ceftriax one ephedrine hydrochlor ide+ theophyllin e anhydrous Fentan yl Dexketopr ofen Dexmedetom idine hydrochlorid e Dia z pam Cefuroxi me Centr
oid 1 0.1842 0.12684 0 0 0 0 0.02 0.53
Centr
(53)
Tabel 15. Jarak Query Dengan Cluster (contoh)
Cluster 1 1.445594509
Cluster 3 1.562023769
Berdasarkan jarak Euclidean Cluster 1 yang merupakan cluster terdekat. f. Rangking Dokter Berdasarkan Jarak Similarity
1. Diasumsikan arrDokter adalah cluster dengan jarak terdekat dengan profil pengguna.
2. Ukur jarak euclidean profil pengguna terhadap seluruh anggota arrDokter.
3. Urutkan anggota dalam arrDokter berdasarkan jarak Euclidean secara descending.
Tabel 16 Anggota dari cluster yang terdekat
Dokt er Dipyro ne Ceftriaxo ne Ephedrine hydrochlorid e+ theophylline anhydrous Fentan yl Dexketoprof en Dexmedetomid ine hydrochloride Diazepa m Cefuroxi me
KS 1 1 0 0 0 0 0 1
AP 0.36 0.3 0 0 0 0 0 0
NA 0.29 0 0 0 0 0 0 0
AD 0.14 0 0 0 0 0 0 0
DN 0.29 0 0 0 0 0 0 0
BP 0 0 0 0 0 0 0 0
WR 0.21 0.1 0 0 0 0 0 0
AW 0.29 0 0 0 0 0 0 0
NH 0.29 0 0 0 0 0 0 0
PA 0.14 0 0 0 0 0 0 0
SK 0.21 0 0 0 0 0 0 0
AI 0 0.71 0 0 0 0 0.4 0
El 0 0.1 0 0 0 0 0 0
MJ 0.14 0 0 0 0 0 0 0
HW 0 0 0 0 0 0 0 0
AN 0.14 0.1 0 0 0 0 0 0
PW 0 0 0 0 0 0 0 0
AM 0 0.1 0 0 0 0 0 0
(54)
Tabel 17. Pengurutan Dokter Berdasarkan Jarak Similarity
D. Metode Pengujian Recall dan Precision
Precision adalah proporsi dari suatu set yang diperoleh yang relevan Precision =|relevant ∩ retrieved| / |retrieved|
Recall adalah Proporsi dari semua dokumen yg relevan di koleksi yang diperoleh: Recall = |relevant ∩ retrieved| /|relevant|
1. Contoh Perhitungan Recall dan Precision
Tabel 18 Tabel Relevansi Hasil Pencarian
Dokter1 Dokter2 Dokter3 Dokter4 Dokter5 Dokter6 Dokter7 Query
1 Relevan
Not
Relevan Relevan Relevan
Not
Relevan Relevan Relevan Query
2 Relevan
Not Relevan
Not
Relvan Relevan Relevan
Not Relevan
Not Relevan
Dokter Jarak
KS 1.2842
AP 0.585
NA 0.5555
AD 0.5471
DN 0.5555
BP 0.5756
WR 0.5317
AW 0.5555
NH 0.5555
PA 0.5471
SK 0.5459
AI 0.894
El 0.5621
MJ 0.5471
HW 0.5756
AN 0.5329
PW 0.5756
AM 0.5621
TA 0.5756
Dokter Jarak
KS 1.2842
AI 0.894
AP 0.585
BP 0.5756
HW 0.5756
PW 0.5756
TA 0.5756
El 0.5621
AM 0.5621
NA 0.5555
DN 0.5555
AW 0.5555
NH 0.5555
AD 0.5471
PA 0.5471
MJ 0.5471
SK 0.5459
AN 0.5329
WR 0.5317
(55)
Contoh: hasil penc
Tabel 19 Query 1
recall 1/5=0.2 1/5=0.2 prec 1/1=1 ½=0.5
Query 2
recall 1/3=0.33 1/3=0 prec 1/1=1 ½=0.5
Tabel 2
Grafik 1 menunju 0.6 ini menunjukan tingk recall 0 0.1 0.2 Query1 1 1 1 Query2 1 1 1 Rata2 1 1 1
encarian didapat 7 dokter dan 5 dokter yang releva
19 Perhitungan Recal Dan Precission (contoh)
0.2 2/5=0.4 3/5=0.6 3/5=0.6 4/5=0.8 .5 2.4=0.6666 ¾=0.75 3/5=0.6 4/6=0.666
=0.33 1/3=0.33 2/3=0.66 3/3=1 3/3=1 0.5 1/3=0.33 2/4= 0.5 3/5=0.6 3/6=0.5
20 Perhitungan Averge Precision (contoh)
Grafik 1. Contoh Recall Precision
jukan index 1-4 berada di titik i 0.8 -1 dan index gkat akurasi cukup baik.
0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.75 0.75 0.75 0.75 0.7142 0.7142 0.7 1 0.6 0.6 0.6 0.6 0.6 0.6 0.88 0.68 1 0.68 0.657 0.657 0.6
van
5/5=1 5/7=0.7142
3/3=1 3/7=0.42
ex 5-11 titik 0.9 1 0.7142 0.7142 0.6 0.6 0.657 1
(56)
32
BAB IV
PERANCANGAN SISTEM DAN IMPLEMENTASI
A. Diagram Use case
(57)
B. Diagram Sekenario 1. Input Profile Sales
Aktor : MedRep
Kondisi awal : Medrep sudah masuk ke halaman input profileuser Kondisi akhir : Data profil bertambah
1. Medrep menginputkan generic dengan memilih combobox MedRep menginputkan nilai
bobot dari inputan
(low,medium,high,higst) kemudian sentuh tombol tambahkan,
2. Ulangi langkah 1 jika diperlukan.
3. Sistem akan menyimpan profile medrep , profile ini akan digunakan sebagai query
2. Hapus Profil Item
Actor : MedRep
Kondisi awal : Mederp sudah masuk kehalaman profil dan profil tidak kosong
Kondisi akhir : Medrep berhasil menghapus generic obat yang dipilih. 1. Medrep memilih generic obat yang
akan dihapus dengan cara touch nama generic
2. Medrep menekan tombol Yes
3. Sistem akan menampilkan konfirmasi
4. Sistem akan menghapus Generic tersebut
3. Cari Rekomendasi
Aktor : MedRep
Kondisi awal : Medrep sudah menginputkan profilnya.
Kondisi akhir : MedRep mengetahui dokter-dokter mana saja yang bisa dikunjungi.
(58)
1.Medrep masuk kehalaman cari rekomendasi dokter
2.Sistem mencari dokter yang memungkinkan untuk dikunjungi Medrep. sistem akan menampilkan seluruh dokter dari kelompok yang memilijarak terdekat dengan profil sales . kemudian nama-nama dokter dalam kelompok tersebut akan ditampilkan secara terurut berdasarkan tingkat kemiripanya
4. Melihat Profil Dokter
Aktor : MedRep
Kondisi awal : Diasumsikan MedRep Sudah melakukan Case Cari Rekomendasi dan hasil pencarian dokter telah ditampilkan.
Kondisi akhir : medrep mendapatkan informasi detail terkait dokter tersebut
1. Medrep touch nama dokter
2. Sistem menampilkan halaman profil dokter yang memuat data profil dokter yang dimaksud berupa nama ,spesialis dan rekaman data rekomendasi obat
5. Manajemen File Dokter (Sales)
Actor : Admin
Kondisi awal : admin sudah mendownload file profildokter.xls untuk bulan tertentu
Kondisi akhir : admin berada di halaman admin sistem 1. Medrep kelakukan touch menu
pada ponsel kemudian touch seting data
2. Medrep memasukan alamat file tersebut berada kemudian touch tombol proses data
3. Sistem akan menampilkan halaman seting data
4. Sistem akan melakukan proses data jika proses berhasil maka akan muncul notifikasi jika tidak berhasil maka sistem akan tertutup
(59)
a. Download file dokter
Actor : Medrep
Kondisi Awal : Medrep sudah berada di halaman download
Kondisi Akhir : File terdowload 1. Medrep memilih file yang akan
didownload
2. Sistem akan mendownload file yang dipilih
6. Login Admin
Actor : Admin
Kondisi awal : admin berada di halaman login
Kondisi akhir : admin berada di halaman admin sistem 1. Admin mengunjungi web admin control
kemudian memasukan id dan password
2. Sistem akan memproses id dan password jika benar maka sistem akan menampilkan halaman admin control
7. Management File Dokter ( Admin )
Actor : Admin
Kondisi Awal : Admin sudah berada di halaman upload dan file profiledokter.xls sudah sesuai dengan format yang ada.
1. Medrep memilih file yang akan diupload kemudian klik upload
2. Sisem akan mengupload file ke repository
a. Hapus File Data Dokter
Actor : Admin
Kondisi Awal : Admin sudah berada di halaman Hapus File
1. Medrep memilih file yang akan dihapus kemudian klik tombol hapus
3. MedRep klik tombol Yes
2. Sisem akan menampilkan konfirmasi
(60)
b. Edit Deskripsi File Data Dokter
Actor : Admin
Kondisi Awal : Admin sudah berada di halaman Edit Deskripsi
1.Medrep memilih file yang akan di edit
3. MedRep mengetikan deskripsi yang baru
2.Sisem akan menampilkan deskripsi file
4.Sistem mengupdate
deskripsi file
C. Diagram Aktivitas
1. Saat Aplikasi Dijalankan
Gambar 5. Diagram Aktivitas Saat Aplikasi dijalankan
(61)
2. Cari rekomendasi
Gambar 6. Diagram Aktivitas saat Proses Cari Rekomendasi
3. Input Profile Sales
MedRep System
Gambar 7. Diagram Aktivitas Input Profil Sales
(62)
4. Hapus Item Profile
Gambar 8. Diagram Aktivitas Hapus Item Profile
5. Melihat Profil MedRep
Gambar 9. Diagram Aktivitas Melihat Profil MedRep
MedRep System
(63)
6. Download File Rekomendasi Dokter
7. Merubah File List Dokter Yang Diakses
Gambar 10. Diagram Aktivitas Download File Dokter
MedRep System
Gambar 11. Diagram Aktivitas Meribah file list dokter yang diakses
(64)
8. Tambah File
Diasumsikan sudah login
9. Edit Deskripsi File
Gambar 12. Diagram Aktivitas Tambah File
Gambar 13. Diagram Aktivitas Edit Deskripsi File
MedRep System
(65)
10. Hapus File
D. Diagram Model View Controler (MVC)
1. Struktur MVC Kelas Boundary, Contorl dan Entity
MODEL
Rekomendasi_Obat_model.java Dokter_model.java
ProfilSales_Model.java Olahan_data.java TempDokterModel,java TempResModel.java
CONTROL
RelasiKontroler.java
View
WebDownload_activity.java Profil_sales_Activity.java Provil_sales_view_activity.java RekomendasiDokterActivity.java Similarity_Controler_activity.java Gambar 14. Diagram Aktivitas Hapus File
(66)
2. Diagram Analisis Kelas (Model View Controler)
Gambar 15. Diagram Analisis Kelas
SimilarityControleractivit y.java
RelasiKontroler.java Rekomendasi_Obat_model.
java
ProfilSales_Model.java
Dokter_model.java
Olahan_data.java
TempResModel.j
WebDownload_activity.java
Profil_sales_Activi ty.java
Profil_sales_view_act ivity.java
RekomendasiDokterActivity.ja va
(67)
3. Diagram Kelas (Aplikasi Android)
Gambar 16. Diagram Kelas
4. Diagram Kelas (Web Admin)
Gambar 17. Diagram Kelas (Web Admin)
ferifikasiLogin.php
loginAdmin.php
Logout.php
HomeAdmin.php
FormAddFile.php
FormDelete.php
FormKonfirmasiHapus.p
FormEditDeskripsi.php
EditForm.php Conection.php
Controler.php Dokter_Model.ja
Profil_Sale Rekomend Similarity_Co
Profil_sales_Activ
TempResModel.
WebDownloadA
Index.php
Rekomendasi_O
ProfilSales_Model.java RelasiKontroler.java Dokter_Model.ja
(68)
5. Diagram Kelas Detail
a. Model
Dokter_Model.java
-Nama String -Spesialis :String -Clusster: int
-rekomendasiObat : List< -Rekomendasi_obat_model >
<<consuctor>> DokterModel() :void +getCluster() : int
+getNama() :String
+getRekomendasi() :
+Rekomendasi_obat_model +getSpesialis() : String --Set Method--
ProfilSales_Model.java
+Bobot : double +BobotText : String +Generic : String
<<consuctor>> ProfilSales_Model () :void
+getBobot() :double +getBobotText() :String
+getGeneric() : String --Set Method--
Olahan_Data_Model.java
Bobot Generic: double[] Generic : String[] <<consuctor>>
Olahan_Data_Model () :void +getBobotGeneric() :double +getGeneric() : String --Set Method--
Rekomendasi_obat_Model.java
-BobotObat : double[] -Generic : String[] -Obat : String[]
olahanData : Olahan_Data_Model
<<consuctor>> Olahan_Data_Model () :void
+getBobotGeneric() :double +getGeneric() : String +getObat() : void
+getOlahanData() : Olahan_Data_Model
TempResModel.java
+Centroid: int[][]
+Generic: String
+Status : boolean
<<consuctor>> TempResModel() :void
(69)
Profil_sales_activity.java
File_Name : String File_profile : String File_TempDokter
ProfilSales : List<ProfilSales_Model> dokterM : DokterModel []
resourceTemp : TempResModel textInput : AutoCompleteTextView rg : Radio Group
textMessage : TextView list_Image = Integer[] main.xml = view
profilsalesinput.xml = view onCreate(Bundle) : void
onCreateOptionMenu() : Boolean onOptionItemSelected():Boolean okChangeData(): Boolean onBackPressed(): void profSalesView(): void simpanItem(): void getResult() : void profSales(): void
getWebDownload() : void home() : void
keluar() : void
RekomendasiDokter_activity.java
File_Name : String File_profile : String File_TempDokter
fosDokter : FileOutputStream fosCentroid : FileOutputStream fosProfile: FileOutputStream t : TextView
p : dokterModel[] p2:TempResModel list_Image = Integer[] main.xml = view
<consuctor> TempResModel(): void onCreate(Bundle) : void
onCreateOptionMenu() : Boolean onOptionItemSelected():Boolean updateData (String): Boolean cekProfile():void
cekTemp():void createTemp():void onBackPressed(): void getResult() : void profSales(): void
getWebDownload() : void home() : void
(70)
Profil_sales_view_activity.java
File_Name : String File_profile : String File_TempDokter : Sting t : TextView
listP : ListView
todoItems: ArrayList<String> resourceTemp : TempResModel list_Image = Integer[]
profilsalesiview.xml = view emptyprofile.xml = view onCreate(Bundle) : void onBackPressed(): void
onCreateOptionMenu() : Boolean onOptionItemSelected():Boolean okChangeData(): Boolean cekProfile():boolean delete(int):void hapusKonfirmasi(int):void inputProfile(view):void menu(int): void profSakesView():void showList():void getResult() : void profSales(): void
getWebDownload() : void home() : void
keluar() : void
WebDownoload_Activity.java
List_Image : Int[] webView : WebView onCreate(Bundle) : void
onBackPressed(): void
onCreateOptionMenu() : Boolean onOptionItemSelected():Boolean okChangeData(): Boolean getResult() : void
profSales(): void
getWebDownload() : void home() : void
(71)
b. Controler
Kelas View
SImiraty_Controler_Activity.java
File_Name : String File_profile : String File_TempDokter resDistance : double[] STATUSDETAIL : Bolean
profilSales : List<ProfilSales_Model> profilSalesResult : List<ProfilSales_Model> listDokter : Dokter_Model[]
todoItems : ArrayList<String> myListView : ListView myListView Detail: ListView t : TextView
profilQuery : new double[61] clusterResult :int
dokList : Dokter_Model[] context :Context
list_Image = Integer[] resultsimilarity.xml = view dokterdetailprofile = view
<consuctor> TempResModel(): void onCreate(Bundle) : void
onBackPressed(): void
onCreateOptionMenu() : Boolean onOptionItemSelected():Boolean okChangeData(): Boolean
BubleShort(): void
getDokterLIstResult() : void getResource():void
getSimilarity():
normalitationQuery(): void setting Query(): void
Relasi_Kontroler.java
listAllDokter : Dokter_Model[] centroid : double[][]
jumlahAnggotaCluster : int[] iteration : int
listDokter = dokterModel[] <constructor>
Relasi_Kontroler(InputStream, InputStream): void
ClusterHelper(Dokter_Model[], double[][]): void
createIteration(double[][]): DokterModel[] getCentroid(Dokter_Model): double[][] getCentroidAwal(InputStream): double[][] getDataNormalitation(Dokter_Model[],Strin
g[]) : Dokter_Model[] getGeneric(): String[]
Information_Retrival_kontroler(Dokter_Mo del[], double[]): void
(72)
Detail Diagram kelas PHP
ferifikasiLogin.php
Id : var POST
Password : var (md5) POST
Ferifikasi()
LoginAdmin.php
Id : var
Password : var (md5)
Include ferLogin.php
controler.php
Id : var SESSION
Password : var (md5)SESSION
idSelectedMenu : var
tambahFileRekomendasi ()
hapusFileRekomendasi ()
editDeskripsiFileRekomendasi () formaddFile.php
File : File
Deskripsi : Text
formDelete.php
IdFile : number
Hapus : button
formEditDeskpripsi.php
IdFile : number
Link edit
Logout.php
Destroy_session() formkonfirmasiHapus.php
Id : int
Status_konfirmasi:text
formEdit.php
Id : int
deskripsi: textArea
Update : button HomeAdmin.php Link EditDeskripsi Link AddFile Connection.php Mysql_connection() Index.php Link Download
(73)
Detail File properties XML
emptyProfile.xml
Galery3: Galery
txSistemEmpty: TextView
resultsimilarity.xml
Galery5: Galery txSistem: TextView
textViewResultSimilarity : TextView
listDokterResult : LIstView
profilsalesinput.xml
Galeryx : Galery txSistem : TextView
textInput : AutoCompleteTextView groupPointGeneric : RadioGroup radio1: RadioButton
radio2: RadioButton radio3: RadioButton radio4: RadioButton but_simpan : Button txMessage: TextView
webView.xml
GaleryWeb: Galery webView1 : WebView
dokterdetailprofil.xml
Galery6: Galery txSistem: TextView TVdetailDokter : TextView listDokterResultDetail : LIstView
Main.xml
Galery5 : Galery txSistem : TextView txMe : TextView
profilsalesview.xml
Galery4 : Galery txSistem : TextView myLIstView :ListView
(74)
E. Diagram Sequence
1. Saat Plikasi Dijalankan
Diasumsikan file rekomendasi dokter belum dicluster
(75)
2. Cari Rekomendasi
(76)
3. Input Profile Medrep
(77)
4. Lihat Profile Sales
Gambar 21. Diagram Sequence Lihat Profil Sales
5. Hapus Item Profile
(78)
6. Download File Rekomendasi Dokter
Gambar 23. Diagram Sequence Download File Rekomendasi Dokter
7. Merubah File List Dokter Yang Diakses
(79)
8. Tambah File
Gambar 25. Diagram Sequence Tambah File
9. Edit Deskripsi File
(80)
10. Hapus File
Gambar 27. Diagram Sequence Hapus File
F. Model Penyimpanan Data
Aplikasi ini tidak menggunakan RDBMS seperti MySql atau SQLite dengan tujuan untuk mempercepat proses perhitungan maka digunakan sistem basisdata berbasis objek yang disimpan dalam file yang terpisah untuk setiap obeknya. File Resource :
1. dataDokter.xls digunakan sebagai sumber data atau data mentah yang memuat rekaman rekomendasi.
2. Centroid .txt memuat centroid awal.
Berikut adalah kelas model yang objeknya disimpan dalam file :
ProfilSales_Model.java
-Bobot : double -BobotText : String
(81)
Objek ArrayList dari ProfilSales_model akan disimpan dalam file
tempProfile5.tmp yang akan meuat generic beserta nilai prioritas (bobot) dari produk-prouduk yang akan dittawarkan.
Objek dari kelas TempTesModel akan disimpan dalam file tempfile5.tmp.
File ini merupakan temporary file yang menyimpan semua generic yang terfilter. File ini juga memuat centroid sebagai pusat cluster ketika file dokter sudah dicluster selain itu file ini memuat status bila isStatus()
bernilai false maka menandakan data dokter belum dicluster. -Generic : String
<<consuctor>> ProfilSales_Model () :void +SET/GET method
TempResModel.java
+Centroid: int[][] +Generic: String +Status : boolean
<<consuctor>> TempResModel() :void getCentroid() : int
getGeneric: String isStatus(): boolean --Set Method--
(82)
Objek ArrayList dari Dokter_Model akan disimpan dalam file
tempDokter5.tmp file ini akan menyimpan hasil clustering dari seluruh data dokter beserta menyimpan bobot merek obat yang ditawarkan dan menyimpan bobot obat yang telah dinormalisasi berdasarkan generic . -Nama String
-Spesialis :String -Clusster: int
-rekomendasiObat : List< -Rekomendasi_obat_model >
<<consuctor>> DokterModel() :void +getCluster() : int
+getNama() :String
+getRekomendasi() :
+Rekomendasi_obat_model +getSpesialis() : String --Set Method--
(1)
Query 14
recall 0.11 1 0.22 2 0.2 2 0.33 3 0.4 4 0.5 6 0.66 7 0.7 8 0.8 9 0.8 9
1 1 1 1 1
prec 1 1 0.6
7
0.75 0.8 0.8 3 0.85 7 0.8 8 0.8 9
0.8 0.8 2 0.7 5 0.6 9 0.6 4 0.6 Query 15
recall 0.2 0.2 0.4 0.6 0.6 0.8 1 1 1 1 1 1 1 1 1
prec 1 0.5 0.6
7
1 0.6 0.6
7 0.71 4 0.6 3 0.5 6
0.5 0.4 5 0.4 2 0.3 8 0.3 6 0.3 3 Query 16
recall 0.14 3 0.28 6 0.4 3 0.57 1 0.5 7 0.5 7 0.71 4 0.7 1 0.7 1 0.7 1 0.8 6 0.8 6 0.8 6 0.8 6 1
prec 1 1 1 0.5 0.8 0.6
7 0.71 4 0.6 3 0.5 6
0.5 0.5 5
0.5 0.4 6 0.4 3 0.4 7 Query 17
recall 0 0.16
7 0.1 7
0.33 3
0.5 0.6 7 0.66 7 0.6 7 0.6 7 0.6 7 0.6 7 0.6 7 0.8 3 0.8 3 1
prec 0 0.5 0.3
3
0.25 0.6 0.6 7
0.57 1
0.5 0.4 4
0.4 0.3 6
0.3
3 .38
0.3 6
0.4
Query 18
recall 0.25 0.25 0.2 5
0.25 0.5 0.5 0.75 0.7 5 0.7 5 0.7 5 0.7 5 0.7 5 0.7 5 0.7 5 1
prec 1 0.5 0.3
3
0.75 0.4 0.3 3 0.42 9 0.3 8 0.3 3
0.3 0.2 7 0.2 5 0.2 3 0.2 1 0.2 7 Query 19
recall 0.25 0.5 0.7 5
0.75 0.7 5
1 1 1 1 1 1 1 1 1 1
prec 1 1 1 0.5 0.6 0.6
7 0.57 1
0.5 0.4 4
0.4 0.3 6 0.3 3 0.3 1 0.2 9 0.2 7 Query 20
recall 0.2 0.4 0.4 0.4 0.6 0.8 1 1 1 1 1 1 1 1 1
prec 1 1 0.6
7
0.5 0.6 0.6 7 0.71 4 0.6 3 0.5 6
0.5 0.4 5 0.4 2 0.3 8 0.3 6 0.3 3 Keterangan :
Missal untuk query 20 didapatkan hasil sebagai berikut Diktahui result dokter yang relevan adalah dokter dengan urutan ke 1 , 2 , 5, 6, 7
Precision = index relevan / index berlaku untuk seluruh index
(2)
seperti berikut : index1 = 1/1= 1 index2 = 2/2=1 index3 = 2/3=0.667 ,index4 = 2/4=0.5 index5 = 3/5 =0.6
index6 = 4/5 =0.8 dan seterusnya.
Recall = |relevant ∩ retrieved| / |relevant| index1 = 1/5= 0.2
index2 = 2/5= 0.4 index3 = 2/3= 0.4 ,index4 = 2/4= 0.4 index5 = 3/5 =0.6 index6 = 4/5 =0.8
index6 = 5/5 =1 dan seterusnya.
3. Perhitungan Average Precision Terhadap 11 Titik Recall
Tabel 25. Average Precision Terhadap 11 Titik Recall
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
QUERY 1 1 1 1 1 1 1 0.8 0.71 0.71 0.4 0.4
QUERY 2 1 1 1 1 1 1 1 1 1 1 1
QUERY 3 0.667 0.667 0.67 0.67 0.67 0.67 0.667 0.67 0.67 0.67 0.67
QUERY 4 1 1 1 1 1 1 1 1 1 1 0.92
QUERY 5 1 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.71 0.71
QUERY 6 1 1 1 1 1 1 1 1 1 0.6 0.6
QUERY 7 1 1 1 1 1 1 1 1 1 1 1
QUERY 8 1 0.714 0.71 0.714 0.71 0.71 0.714 0.71 0.71 0.41 0.41
(3)
Algoritm untuk menghitung nilai precision terhadap 11 titik recall. . 1. Titik_akhir = index recall terakhir (missal index ke -11)
2. Jika Titik_akhir != 0
3. Titik_depan = titik akhir -1 ( missal 11-1 = index 10)
4. Cari nilai max precision untuk pada recall Titik_depan sampai Titik_akhir
tempNilai= nilai max
5. Jika tempNilai > nilai precision untuk Titik_akhir nilai Titik_depan =temp nilai
jika tidak
nilai Titik_depan = nilai titik akhir
QUERY 10 1 1 1 1 1 1 1 1 1 1 1
QUERY 11 0.727 0.727 0.73 0.727 0.73 0.73 0.727 0.73 0.71 0.71 0.71
QUERY 12 1 1 1 1 1 1 1 1 1 1 1
QUERY 13 1 1 1 1 1 0.88 0.875 0.88 0.88 0.88 0.88
QUERY 14 1 1 0.82 0.818 0.82 0.82 0.818 0.82 0.82 0.82 0.82
QUERY 15 1 1 1 1 1 1 1 0.71 0.71 0.71 0.71
QUERY 16 1 1 1 1 0.8 0.714 0.71 0.47 0.47 0.47
QUERY 17 0.667 0.667 0.67 0.667 0.67 0.67 0.667 0.4 0.4 0.4 0.4 QUERY 18 1 1 1 0.429 0.43 0.43 0.429 0.43 0.27 0.27 0.27
QUERY 19 1 1 1 1 1 1 1 1 0.67 0.67 0.67
QUERY 20 1 1 1 1 1 0.71 0.714 0.71 0.71 0.71 0.71
(4)
6. Titik_akhir= Titik_akhir-1 5. ulangi langkah 2
Grafik.2 Diagram Average Precision 11 Titik Recall
Keterangan :
Dari Grafik.2 diatas dapat diketahui bahwa tingkat relevansi rekomendasi dokter yang diberikan sistem recall memiliki akurasi dengan titik recall 0 - 0.7 dan precision 0.8 hingga 1 (70%) . Terdapat 3 penurunan yaitu di titik recall 0.8 -1 dengan precision 0.6 – 0.8 . Dengan demikian sistem ini memiliki akurasi yang baik .
4. Kelemahan
Meskipun penelitian ini menunjukan hasil yang baik namun data dokter yang digunakan dalam penelitian ini sangat terbatas. Jadi rekomendasi masih terbatas untuk dokter dirumahsakit itu. Penelitian ini akan lebih baik lagi jika data data dokter yang digunakan memuat semua rekaman rekomendasi obat di semua tempat dokter itu bekerja.
0 0.2 0.4 0.6 0.8 1 1.2
1 2 3 4 5 6 7 8 9 10 11
(5)
107
BAB VI
KESIMPULAN DAN SARAN
A. Kesimpulan
Dalam penelitian ini telah dibuat aplikasi rekomendasi dokter dengan pendekatan k-mean clustering dan Euclidean similarity. Informasi dokter yang dihasilkan dari pendekatan tersebut menghasilkan nilai precision yang mencapai 0.8 sampai 1 dan recal berada di titik 0 sampai 7. Dengan demikian dapat disimpulkan. Information retrival dengan menggunakan k-mean untuk dan Euclidean distance menghasilkan rekomendasi dokter yang sesuai dengan yang diharapkan sales obat.
B. Saran
Berdasarkan kelemahan yang telah dijelaskan pada poin 5.3.4. Disarankan bagi peneliti yang akan melakukan penelitian menggunakan pendekatan metode K-mean dan Euclidean distance harus mempersiapkan data dalam jumlah yang mencukupi. Misalnya dengan kasus sebuah rumahsakit diperlukan ahulu data-data yang memuat rekaman medis selama satu periode atau satu tahun. Karena banyanknya data sangat berpengaruh pada kluster yang akan terbentuk serta berpengaruh juga terhadap informasi yang diperoleh dari jarak similarity.
(6)
Daftar Pustaka
1. Resnick, Paul dan Varian, Hal R. 1997. Recommender systems. Communications of the ACM, Vol. 40, No. 3, 56-58.
2. 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.
3. Burke, R. 2007. Hybrid web recommender systems. In The Adaptive Web, pages 377–408. Springer Berlin / Heidelberg.
4. Arifin Zainal, Novan Ari. 2001. “Klasifikasi Dokumen Berita Kejadian Berbahasa Indonesia dengan Algoritma Single Pass Clustering”. Surabaya : Institut Teknologi Sepuluh Nopember
5. Hermawan Stephanus.2011.“Mudah Membuat Aplikasi Android”. Yogyakarta : Andi Publisher
6. Whitten, et.al. 2004. “Systems Analysis & Design Methods. 7th ed”. 7. Han Jiawei, Kamber M. 2006.“Data Mining Concept And
Technique”.New York : Diane Cera
8. www.tecno.okezone.com.2012.“SAP lirik kekuatan mobile, in-memory &cloud ”
9. www.tecnoup.com .2012. “Juniper: Penjualan Smarphone Samsung 2 kali lipat iPhone, Sony Seharusnya Labih Baik”