• Tidak ada hasil yang ditemukan

Aplikasi rekomendasi dokter untuk sales obat pada android menggunakan metode k-mean clustering dan euclidean distance.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Aplikasi rekomendasi dokter untuk sales obat pada android menggunakan metode k-mean clustering dan euclidean distance."

Copied!
132
0
0

Teks penuh

(1)

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.

(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

(8)

vi

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

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

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

(14)
(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)
(22)

xx

DAFTAR GAMBAR

(23)

xxi

DAFTAR TABEL

(24)

xxii

DAFTAR GRAFIK

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

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

(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

(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

(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

(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

(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

(35)
(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

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

(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

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

(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

(41)

Tabel 3. Hasil Penggabungan obat berdasarkan Generic

+ theophylline

(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

Fentanyl Dexketo

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

(44)

Tabel 5. Centroid Awal

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

(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

(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

Fentanyl Dexketopro

fen

Fentanyl Dexketopro

(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

Tabel 10. Anggota Cluster Iterasi Kedua C1

Dokt er

Dipyrone Ceftriaxon

(50)

AM 0 0.1 0 0 0 0 0 0

Tidak memiliki anggota

C3

Fentanyl Dexketopro

fen

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

(51)

7 0.29 1.512371493 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.

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

(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

(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

(55)

Contoh: hasil penc

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.

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

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

(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

(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

(68)

5. Diagram Kelas Detail

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

dokterM : DokterModel []

resourceTemp : TempResModel

textInput : AutoCompleteTextView

rg : Radio Group

textMessage : TextView

list_Image = Integer[]

main.xml = view

profilsalesinput.xml = view

(70)

Profil_sales_view_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()

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

(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

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

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

(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

(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

(83)

G. Algoritma Method Dalam Kelas Yang Memuat Proses Custering dan Euclidean Similarity

1. RekomendasiDokterActivity.java

a. onCreate(Bundle) : void

1) melakukan seting view dengan mengakses file main.xml dengan perintah setContentView(R.layout.main);

2) memanggil method cekTemp() untuk mengecek keberadaan file tempFile.tmp dan tempDokter5.tmp.

3) memanggil method cekProfile() untuk mengecek keberadaan file tempProfile.tmp

4) membuat variabel Galeri dan mendeklarasikan sebagai menu dengan perintah

gallery.setOnItemClickListener(new OnItemClickListener() { /* di isikan

kondisi sesuai kebutuhan menu */}

b. onBackPressed()

1) mendeklarasikan variabel alret member pesan kepada alret

AlertDialog.Builder ad= new

AlertDialog.Builder(RekomendasiDokterActivity.this); ad.setTitle("konfirmasi");

(84)

2) buat pilihan menu ok dan cancel

3) tambahkan kedalam alret dengan kondisi

a) jika ok ditekan maka activity dihentikan

b) jika cancel ditekan maka tidak terjadi apa-apa

4) tampilkan alert

c. cekProfile():void

1) lakukan pengecekan terhadap file tempProfile5.tmp dengan membuat variabel

2) deklarasikanlah variabel bertipekan FileInputStream dengan nama fisCekProf

3) berikan nilai untuk fisCekProf

4) masukan fisCekProf kedalam cunsuctor ObjectOutputStream

untuk langkah 4-5 perhatikan listing program berikut

fisCekProf = openFileInput(“tempProfile5.tmp”);

ObjectInputStream inObjectStreamCek = new

ObjectInputStream(fisCekProf);

5) Jika file tidak ditemukan maka jalankan langkah 6 jika tidak maka proses cek selesai.

6) Buat Variabel bertipekan FileOutputStream dengan nama fosProfile

7) Deklarasikan nama file dan contex dalam consuctor openFileOutput

8) Seperti pada listing program berikut

(85)

9) Kemudian objek bertipekan ObjectOutputStream dengan nama

outObjectStreamProfile isi parameter consuctor dengan fosProfile .

10)Buat objek ArrayList dari kelas ProfilSales bernama profilSales

11)Masukan objek profilSales kedalam outObjectStreamProfile

Perhatikan listing program berikut:

ObjectOutputStream outObjectStreamProfile = new

ObjectOutputStream(fosProfile);

List<ProfilSales_Model> profilSales= new ArrayList<ProfilSales_Model>();

outObjectStreamProfile.writeObject(profilSales);

d. cekTemp():void

1) lakukan pengecekan terhadap file tempRes5.tmp dengan membuat variabel

2) deklarasikanlah variabel bertipekan FileInputStream dengan nama fisCek

3) berikan nilai untuk fisCekProf

FileInputStream fisCek = openFileInput(FILE_NAME);

4) jika file tidak ditemukan maka method createTemp() akan dijalankan, jika tidak akan menjalankan langkah 5.

perhatikan listing berikut

catch (FileNotFoundException e) {

createTemp();

(86)

5) Buat objek bertipekan ObjekInputStream dengan nama objek “ inObjectSteamCek” kemudian isikan consuctor dengan fisCek

6) Baca object dari isi file dengan membuat objek bertipekan TempResModel.

TempResModel temCek;

temCek = (TempResModel) inObjectStreamCek.readObject();

7) Cek status objek tersebut jika true maka proses berhenti jika false maka akan membuat file tempRes5.tmp (berisikan data generic obat dan centroid akhir dari seluruh cluster) dan file tempDokter5.tmp ( berisikan data dokter yang telah dicluster)

Perhatikan listing program berikut:

if(temCek.isStatus()){ }else{ createTemp() ; }

e. createTemp():void

1) buat variabel bertipekan FIleOutputStream berinama fosDokter dan

fosCentroid

2) deklarasikan variabel tersebut dengan mengisi parameter openFIleOutput untuk masing masing variabel. Perhatikan listing program berikut.

fosDokter =

openFileOutput(FILE_TemDokter, Context.MODE_PRIVATE);

fosCentroid =

(87)

3) buat objek bertipekan ObjectOUtput Stream dengan nama outObjectStream dan outObjectStream2 deklarasikan parameter dengan fosDokter dan fosCentroid. Perhatikan listing program berikut.

ObjectOutputStream outObjectStream =

new ObjectOutputStream(fosDokter);

ObjectOutputStream outObjectStream2 =

new ObjectOutputStream(fosCentroid);

4) buat variabel myCentroid dan myFile bertipekan InputStream 5) buat variabel bertipekan Resources dengan nama “myResources“

untuk Centroid dan “myResources2” untuk dataDokter . untuk langkah 4 dan 5 perhatikan listing program berikut.

Resources myResources = getResources();

Resources myResources2 = getResources();

InputStream myCentroid =

myResources2.openRawResource(R.raw.centroid);

InputStream myFile = myResources.openRawResource(R.raw.datadokter);

6) lakukan proses clutering untuk data dokter dengan memanggil kelas Relasi_Kontroler. Perharikan listing berikut

Relasi_Kontroler rKontrol = new Relasi_Kontroler(myFile,

(88)

7) siapkan objek yang akan disimpan di dalam file tempRes5,tmp dan tempDokter5.tmp dengan cara membuat variabel objek bertipekan TempResModel dengan nama “tempR” dan Array dari DokterModel dengan nama “dokterAll”

8) berikan nilai untuk atribut dalam objek tempR TempResModel tempR = new TempResModel();

tempR.setStatus(true);

tempR.setTanggal("februari_2013");

tempR.setCentroid(rKontrol.centroid);

tempR.setGeneric(rKontrol.getGeneric());

9) Berikan nilai untuk dokterAll

Dokter_Model [] dokterAll=rKontrol.listAllDokter;

10)Simpan Objek dalam file

outObjectStream2.writeObject(tempR);

outObjectStream.writeObject(dokterAll);

2. UpdateData(Strting): Boolean

a. Method ini akan mengakses file yang dimaksud dalam url dengan nama myFile bertipekan InputStream

b. Buat variabel local bertipe InputStream dengan nama inputStreamDokter yang berisikan file dokter yang akan dicluster

c. Buat InputStream inputStreamCentroid bernama myCentroid

berisikan centroid awal R.raw.centroid .

d. Buat Objek Dari Kelas Relasi_Kontroler bernama rKontrol kemudian isi parameter konsuktor. Seperti listing berikut :

Relasi_Kontroler rKontrol =

(89)

e. buat variabel bertipekan FIleOutputStream berinama fosDokter dan fosCentroid

f. deklarasikan variabel tersebut dengan mengisi parameter openFIleOutput untuk masing masing variabel. Perhatikan listing program berikut.

FileInputStream fisDokter = openFileInput(FILE_TemDokter);

FileInputStream fisCentroid = openFileInput(FILE_NAME);

g. buat objek bertipekan ObjectInputStream dengan nama inObjectStream dan inObjectStream2 deklarasikan parameter dengan fosDokter dan fosCentroid. Perhatikan listing program berikut.

ObjectInputStream inInputStream =

new ObjectInputStream (fssDokter);

ObjectOutputStream inObjectStream2 =

new ObjectOutputStream(fosCentroid);

h. siapkan objek yang akan disimpan di dalam file tempRes5,tmp dan tempDokter5.tmp dengan cara membuat variabel objek bertipekan TempResModel dengan nama “tempR” dan Array dari DokterModel dengan nama “dokterAll”

i. berikan nilai untuk atribut dalam objek tempR TempResModel tempR = new TempResModel();

tempR.setStatus(true);

tempR.setTanggal("februari_2013");

tempR.setCentroid(rKontrol.centroid);

(90)

j. Berikan nilai untuk dokterAll

Dokter_Model [] dokterAll=rKontrol.listAllDokter;

k. Simpan Objek dalam file

inObjectStream2.writeObject(tempR);

inObjectStream.writeObject(dokterAll);

(91)

67

3. Relasi_Kontroler.Java

a. Relasi_Kontroler(InputStream, InputStream) : void

1) Method ini hanya bekerja sebagai pengatur langkah program

2) Method ini akan mengisikan variabel listDokter dengan hasil dari method setDataDokter, seperti pada listring berikut :

listDokter = setDataDokter(inputStreamDokter );

3) Kemudian listDokter memiliki nilai dari getDataNormalitaion dimana listDokter dan method getGeneric menjadi parameter dari method ini.

listDokter = getDataNormalitation(listDokter, getGeneric());

4) Setelah listDokter bernilai getDataNormalitation maka baru akan dilakukan proses clustering dengan memanggil method Information_retrival_kontroler.

Information_retrival_kontroler

(listDokter, getCentroidAwal(inputStreamCentroid));

b. getCentroidAwal(InputStream): double[][]

1) buat variabel bertipe double [][] bernama centroid, deklarasikan sebagai berikut:

double centroid[][] = newdouble[4][61];

2) buat variabel String bernama “data”, variabel ini berfungsi sebagai tempat penyimpanan semua data dari inputStream

Gambar

Gambar 2. Arsitektur Android
Tabel  1. Contoh Data Rekomendasi Obat Dokter
Tabel  2. Rekomendasi Obat
Tabel  3. Hasil Penggabungan obat berdasarkan Generic
+7

Referensi

Dokumen terkait

Sang Darma kemudian menjawab, begini awalnya, ketika ia hidup dahulu, berani terhadap orang tua, itulah sebabnya menjadi kualat, sekarang menahan sakit, bhuta mundar-mandir yang

Oalam tulisan ini dilakukan studi analisis biaya pembangkitan listrik dengan pembangkit KL T -40 Pembangkit ini merupakan pembangkit kecil berdaya 3~ Mwe tiap

Manajer Investasi dapat menghitung sendiri Nilai Pasar Wajar dari Efek tersebut dengan itikad baik dan penuh tanggung jawab berdasarkan metode yang menggunakan asas konservatif dan

 memfasilitasi peserta didik membuat laporan eksplorasi yang dilakukan baik lisan maupun tertulis, secara individual maupun kelompok;..  memfasilitasi peserta didik

Puji syukur kehadirat Allah SWT karena atas limpahan rahmat dan karunia- Nyalah laporan Dasar-dasar Program Perencanaan dan Perancangan Arsitektur (DP3A) Tugas Akhir

Fungsi pereaksi NaOH dan CuSO 4 adalah untuk membuat suasana larutan menjadi basa sehingga dihasilkan suatu senyawa kompleks berwarna ungu sebagai deteksi atau penentuan

h. pelaksanaan tugas-tugas lain yang diberikan oleh Kepala Bidang sesuai dengan tugas dan fungsinya. 2) Seksi Pengelolaan Pupuk Pestisida dan Pembiayaan Pertanian Seksi

T dengan Post Sectio Caesarea hari ke 1 atas Indikasi Chepalo Pelvik Disproporsi di Ruang Bougenvil Rumah Sakit Umum Daerah dr.. R Goeteng Taroenadibrata Purbalingga, adalah