Sistem rekomendasi pemasaran barang dagang sales menggunakan metode Content Based Filtering berbasis mobile Android

(1)

i

SISTEM REKOMENDASI PEMASARAN BARANG DAGANG

SALES MENGGUNAKAN METODE

CONTENT BASED

FILTERING

BERBASIS

MOBILE

ANDROID

SKRIPSI

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Oleh:

Christina Rusma Arishintha 08 5314 002

JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA


(2)

ii

MARKETING RECOMMENDATION SYSTEM OF

MERCHANDISE WITH CONTENT BASED FILTERING

METHOD ON ANDROID MOBILE DEVICE

A Thesis

Presented as Partial Fulfillment of the Requirements to Obtain the Sarjana Komputer Degree

in Informatics Engineering

By

Christina Rusma Arishintha 08 5314 002

DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY YOGYAKARTA


(3)

(4)

(5)

v

HALAMAN PERSEMBAHAN

Skripsi ini saya persembahkan untuk:

Tuhan Yesus dan Bunda Maria, Keluarga, Sahabat, dan Teman-teman


(6)

(7)

vii

SISTEM REKOMENDASI PEMASARAN BARANG DAGANG SALES

MENGGUNAKAN METODE CONTENT BASED FILTERING BERBASIS

MOBILE ANDROID

ABSTRAK

Sales sebuah distributor yang bekerja secara mobile atau bergerak dari satu toko ke toko lain, memiliki target pemasaran dalam penjualan produknya. Masalah yang dihadapi sales adalah perusahaan grosir ingin produknya dipasarkan pada setiap toko dan warung. Sales akan lebih efisien dalam pertimbangan untuk memilih informasi tempat sesuai konteks dan informasi yang diperoleh. Skripsi ini menyediakan informasi tentang rekomendasi toko yang memiliki profil yang sama dengan profil sales. Aplikasi mobile ini ditunjukan untuk sales yang akan memasarkan produk ke toko.

Pencarian rekomendasi ini menggunakan algoritma Vector Space Model (VSM) dan pendekatan Content Based Filtering dimana proses rekomendasi suatu item untuk seorang user berdasarkan deskripsi dari item serta profil dari ketertarikan user tersebut. Sales mendapatkan rekomendasi mengenai informasi toko-toko pelanggan tetap dan pelanggan promosi. Pelanggan tetap adalah toko yang memiliki kemiripan dekat dengan profil sales. Sedangkan pelanggan promosi adalah toko yang memiliki kemiripan jauh dengan profil sales.

Pengujian dengan menghitung precision, dimana sales diminta memilih toko yang sesuai menurutnya. Berdasarkan hasil pengujian precision, rekomendasi pelanggan tetap memiliki akurasi yaitu 61% dan promosi pelanggan memiliki akurasi yaitu 62%. Evaluasi sistem ini belum dapat dikatakan baik karena pengujian dilakukan menggunakan variable precision dan tanpa dilakukan pengujian recall.


(8)

viii

MARKETING RECOMMENDATION SYSTEM OF

MERCHANDISE WITH CONTENT BASED FILTERING

METHOD ON ANDROID MOBILE DEVICE

ABSTRACT

Salesmen of distributor who work mobile or move from one store to another, have a target to sell their product. The problem they encountered is wholeseller want their product to be marketed in every store and shop. Salesmen would be more efficient in considering to choose information about the place,match with the description and information they get. This essay provides information about recommended store which have the same profile with the salesmen's. This mobile application made for salesmen which would sell their product to stores.

This recommendation searching use Vector Space Model (VSM) algorithm and Content Based Filtering where the recommendation process of an item for user based on description of the item and profile of user interest. Salesmen get recommendations about regular's store information and promoted customers. regulars are stores which has close resemblance with the salesmen profile. Whereas promoted customers are stores which has less resemblance with the salesmen profiles.

Examination by precision counting, where salesmen asked to choose stores which they think fit. Based on precision examination result,regulars recommendations have a accuracy, about 61% and promoted customers have a accuracy, about 62%. This system evaluation couldn't called great, because the examination based on precision variable,not by recall examination.

Keywords : Vector Space Mobile (VSM), Content Based Filtering, recommendation


(9)

(10)

x

KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa, karena hanya dengan berkat dan karunia-Nya, serta campur tangan-Nya, penulis dapat menyelesaikan skripsi yang berjudul “Sistem Rekomendasi Pemasaran Barang Dagang Sales Menggunakan Metode Content Based Filtering Berbasis Mobile Android” dengan baik.

Pada kesempatan ini penulis juga ingin mengucapkan rasa terima kasih kepada:

1. Bapak Puspaningtyas Sanjoyo Adi S.T., M.T., selaku dosen pembimbing yang senantiasa memberikan masukan dan dengan sabar membimbing penulis, sehingga tugas akhir ini dapat diselesaikan dengan baik.

2. Bapak JB Budi Darmawan, S.T., M.Sc. dan Ibu Sri Hartati Wijono, S.Si., M.Kom, selaku dosen penguji atas kritik dan saran yang telah diberikan. 3. Pihak sekretariat dan laboran Fakultas Sains dan Teknologi yang turut

membantu penulis dalam menyelesaikan tugas akhir ini.

4. Kepada kedua orang tua, Bapak Antonius Rusmono dan Ibu FR. Sri Sulami yang selalu memberikan kasih sayang, semangat, dukungan serta doa yang melimpah kepada penulis.

5. Kedua adik saya Yustina Ananda Putri W. dan Yohana Rusma Arimurti yang selalu memberi semangat, motivasi, serta memberikan hiburan ketika penulis merasa bosan dan putus asa.


(11)

xi

6. Teman – teman kuliah Siska, Putri, Petra, Angga, Reza, Endro, Surya, Tista, Esy, Devi, Laurin, Ilana, Rista, Vava, Bebeth, Ocak, Ade, Wulan serta teman – teman TI 08 lainnya atas kebersamaan dan dukungan yang selalu diberikan kepada penulis.

7. Teman- teman kost yang senatiasa menemani dan memberikan dukungan serta menjadi motivasi bagi penulis dalam menyelesaikan tugas akhir ini. 8. Semua pihak yang tidak dapat disebutkan satu persatu, yang telah

membantu sehingga penulis dapat menyelesaikan skripsi ini.

Akhirnya penulis berharap semoga skripsi ini dapat berguna bagi para pembaca.

Penulis,


(12)

xii

DAFTAR ISI

HALAMAN JUDUL ... i

HALAMAN PERSETUJUAN ... Error! Bookmark not defined. HALAMAN PENGESAHAN ... Error! Bookmark not defined. HALAMAN PERSEMBAHAN ... v

PERNYATAAN KEASLIAN KARYA ... vi

ABSTRAK ... vii

ABSTRACT ... viii

LEMBAR PERNYATAAN ... ix

KATA PENGANTAR ... x

DAFTAR ISI ... xii

DAFTAR GAMBAR ... xv

DAFTAR TABEL ... xvi

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 3

1.3 Batasan Masalah ... 3

1.4 Tujuan dan Manfaat ... 3

1.5 Metode Penelitian ... 4

1.6 Sistematika Penulisan ... 5

BAB II LANDASAN TEORI ... 7

2.1 Sistem Rekomendasi ... 7

2.1.1 Konsep Dasar Sistem ... 7

2.1.2 Sistem Rekomendasi ... 7

2.2 Mobile ... 10

2.3 Pengukuran Performansi ... 13

2.4 Vector Space Model ... 13

2.4.1 Pengertian Vector Space Model ... 14


(13)

xiii

2.5 Android ... 16

2.5.1 Arsitektur Android ... 16

2.5.2 Komponen Dasar ... 18

2.5.3 Daur Hidup Activity ... 19

2.5.4 Daur Hidup Service ... 21

2.6 Location Based Service (LSB) ... 22

BAB III ANALISA DAN PERANCANGAN ... 25

3.1 Analisa Sistem ... 25

3.2 Arsitektur Aplikasi ... 26

3.2.1 Arsitektur Aplikasi Admin ... 26

3.2.2 Arsitektur Aplikasi Sales ... 27

3.3 Arsitektur Sistem ... 28

3.3.1 Arsitektur Sistem Admin ... 28

3.3.2 Arsitektur Sistem Sales ... 28

3.4 Permodelan data ... 29

3.5 Desain model secara umum ... 32

3.5.1 Diagram Use Case ... 33

3.5.2 Narasi Use Case ... 34

3.5.3 Diagram Aktifitas ... 35

3.5.4 Model Analisis ... 35

3.5.5 Diagram Kelas ... 35

3.5.6 Desain Basis Data ... 38

3.5.7 Desain Basis Data ... 38

3.5.8 Model Desain ... 42

BAB IV IMPLEMENTASI DAN ANALISIS SISTEM ... 43

4.1 Tahap Implementasi ... 43

4.1.1 Spesifikasi Perangkat Keras dan Perangkat Lunak ... 43

4.1.2 Implementasi Diagram Kelas ... 43

4.2 Pengujian ... 44

4.2.1 Item Query yang tersedia ... 44


(14)

xiv

4.2.3 Perhitungan Precision... 58

4.2.4 Perhitungan Average Precision ... 60

4.2.5 Kelebihan dan kekurangan sistem ... 62

BAB V PENUTUP ... 63

5.1 Kesimpulan ... 63

5.2 Saran ... 64

DAFTAR PUSTAKA ... 65

Lampiran 1 ... 67

1.1 Rekomendasi Web Server ... 67

1.2 Rekomendasi Mobile ... 72

Lampiran 2 ... 80

2.1 Rekomendasi Web Server ... 80

2.2 Rekomendasi Mobile ... 92

Lampiran 3 ... 100

3.1 Rekomendasi Web Server (Admin) ... 100

3.2 Rekomendasi Mobile ... 110

Lampiran 4 ... 119

4.1 Rekomendasi Web Server ... 119

4.2 Rekomendasi Mobile ... 122

Lampiran 5 ... 128

5.1 Rekomendasi Web Server ... 128

5.2 Rekomendasi Mobile ... 138

Lampiran 6 ... 148

6.1 Rekomendasi Web Server ... 148


(15)

xv

DAFTAR GAMBAR

Gambar 2.1 Contoh Model Ruang Vektor (VSM) ... 15

Gambar 2.2 Arsitektur Android ... 17

Gambar 2.3 Diagram komponen dari LBS ... 23

Gambar 3.1 Arsitektur Aplikasi Admin ... 26

Gambar 3.2 Arsitektur Aplikasi Sales ... 27

Gambar 3.3 ArsitekturSistem berbasis Admin... 28

Gambar 3.4 Arsitektur Sistem berbasis Sales ... 28

Gambar 3.5 Use Case Diagram untuk Admin ... 33

Gambar 3.6 Use Case Diagram untuk Sales ... 34

Gambar 3.7 Diagram Kelas Rekomendasi Web Server (Admin) ... 36

Gambar 3.8 Diagram Kelas Rekomendasi Mobile (Sales) ... 37


(16)

xvi

DAFTAR TABEL

Tabel 3.1 Contoh Perhitungan Martik Bobot ... 29

Tabel 3.2 Contoh Perhitungan Data Nilai Vektor ... 30

Tabel 3.3 Contoh Perhitungan Perkalian Kueri ... 31

Tabel 3.4 Contoh Hasil Perhitungan Cosines Similarity ... 32

Tabel 3.5 Struktur Tabel Produk ... 38

Tabel 3.6 Struktur Tabel Sales ... 39

Tabel 3.7 Struktur Tabel Toko ... 39

Tabel 3.8 Struktur Tabel Transaksi Sales` ... 40

Tabel 3.9 Struktur Tabel Transaksi Toko ... 40

Tabel 3.10 Struktur Tabel Admin ... 41

Tabel 3.11 Struktur Tabel Toko Distance ... 41

Tabel 3.12 Struktur Tabel Transaksi Toko Indeks ... 42

Tabel 4.1 Darftar Kode dan Nama Produk... 44

Tabel 4.2 Perhitungan Precision Pelanggan Tetap ... 58

Tabel 4.3 Perhitungan Precision Pelanggan Promosi ... 59

Tabel 4.4 Perhitungan Average Precision Pelanggan Tetap ... 60


(17)

1

BAB I

PENDAHULUAN

1.1Latar Belakang Masalah

Dalam beberapa tahun terakhir teknologi mengalami peningkatan jumlah perhatian dari para pengguna. Setiap orang membutuhkan perantara untuk mempermudah mencari informasi berdasarkan kebutuhan atau kegiatan yang sering dilakukan. Pengguna yang memiliki kegiatan di luar sangat membutuhkan perangkat yang mudah dibawa serta berfungsi untuk menunjang keperluannya. Begitu juga bagi para sales atau tenaga pemasaran sebuah distributor yang bekerja secara mobile atau bergerak dari satu toko ke toko yang lain, memiliki target pemasaran dalam menjual produknya, mereka harus memiliki informasi tempat memasaran seperti waktu pemberian barang ke toko, berapa banyak barang yang akan dijual. Maka spesifikasi aplikasi tersebut meliputi :

a. memberikan informasi kepada sales dalam sebuah perusahaan grosir, b. perusahaan grosir ingin produknya dijual atau dipasarkan pada semua

toko dan warung,

c. serta membantu sales yang bersifat independen dan biasanya merangkap sebagai tenaga pemasaran atau yang menawarkan barang. d. pemasaran barang yang tepat sasaran dan pemeliharaan pelanggan


(18)

2

Berdasarkan spesifikasi tersebut dibangunlah aplikasi untuk mencatat data-data penjualan kepada toko dan warung serta menginformasikan tempat-tempat yang berpotensi untuk memasarkan produk seorang sales tersebut. Diharapkan para sales akan lebih efisien dalam pertimbangan untuk memilih informasi tempat sesuai konteks dan informasi yang didapat. Pada pendekatan Content Based Filtering, proses rekomendasi suatu item untuk seorang user berdasarkan deskripsi dari item serta profil dari ketertarikan user tersebut. Dengan menggunakan content based filtering diharapkan dapat merekomendasikan item berdasarkan pada kemiripan dari profil sales terhadap deskripsi dari item yang menjadi solusi dari permasalahan seorang sales tersebut dalam memasarkan produk. Profil sales mencakup produk-produk yang dibawa serta lokasi letak sales berada untuk mencari lokasi toko terdekat.

Dengan teori Context aware computing akan menyesuaikan dengan lokasi sales sebagai pengguna, sehingga aplikasi ini akan tepat sasaran, pengguna, dan sesuai dengan keadaan atau situasi penggunaan sistem tersebut dalam kegiatan sehari-hari. Aplikasi ini berbasis mobile dengan sistem operasi Android yang diharapkan dapat membantu para sales pemasaran yang setiap harinya bekerja secara bergerak atau mobile untuk menawarkan produk.


(19)

3

1.2Rumusan Masalah

Berdasarkan latar belakang yang disampaikan, maka permasalahan yang ingin diselesaikan, yaitu :

Bagaimana metode content based filtering mampu memberikan informasi pemasaran barang kepada sales?

1.3Batasan Masalah

Dalam penulisan laporan tugas akhir ini penulis memberikan batasan-batasan masalah :

1. Kasus berlokasi di wilayah Yogyakarta.

2. Dikembangkan dalam mobile berbasis Android.

3. Diasumsikan data terpusat pada server sebuah distributor.

1.4Tujuan dan Manfaat

Dalam penulisan laporan tugas akhir ini penulis memiliki tujuan dan berharap ada manfaat yang dapat diperoleh.

1.4.1 Tujuan Penelititan

Tujuan penelitian dalam penulisan laporan tugas akhir ini adalah menyediakan informasi terbaik untuk sales dalam memasarkan produknya ke warung-warung atau toko. Menggukur sejauh mana teori content based filtering memberikan rekomendasi terbaik untuk para sales. Serta


(20)

4

penggunaan teori context-aware computing dalam pertimbangan dalam memilih informasi secara mobile dimana sales akan memasarkan produknya. Aplikasi ini juga membuat para sales lebih efisien dalam mengakses informasi tersebut.

1.4.2 Manfaat Penelitian

Hasil penelitian ini diharapkan dapat bermanfaat bagi seorang sales dalam pemasaran produknya agar lebih tepat waktu dan tepat sasaran kepada konsumen sesuai dengan profil yang dimiliki oleh setiap sales.

1.5Metode Penelitian

Metode penelitian yang ditempuh oleh penulis adalah : 1. Referensi ( Literatur )

Metode yang dilakuakan untuk membaca dokumen, maupun referensi buku yang telah ada, atau sumber lain yang berkenaan dengan objek yang sedang dibutuhkan.

2. Analisis kebutuhan perangkat lunak.

Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khususnya pada perangklat lunak. Untuk memahami sifat program yang dibangun, perekayasa perangkat lunak (analisis) harus memahami domain informasi, tingkah laku, unjuk kerja dan antar muka yang diperlukan. Kebutuhan baik


(21)

5

untuk sistem maupun perangkat lunak didokumentasikan, dan dilihat lagi dengan pelanggan.

3. Pengujian unjuk kerja.

Mengarahkan pengujian untuk menemukan kesalahan-kesalahan dan memastikan bahwa input yang dibatasi akan memberikan hasil aktual yang sesuai dengan hasil yang dibutuhkan. Dengan melakukan uji precesion.

1.6Sistematika 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 pembuata sistem

BAB III : ANALISA DAN PERANCANGAN SISTEM

Bab ini membahas analisa dan perancangan sistem secara umum, rancangan proses serta rancangan antar muka yang akan digunakan.


(22)

6

BAB IV : IMPLEMENTASI DAN ANALISIS SISTEM

Bab ini membahas implementasi dalam bentuk aplikasi berdasarkan analisa dan perancangan yang telah dilakukan.

BAB V : PENUTUP

Bab ini membahas kesimpulan dan saran dari hasil analisa sistem, implementasi sistem dan pengujian.


(23)

7

BAB II

LANDASAN TEORI

Pada bab ini membahas uraian teori yang digunakan untuk penulisan tugas akhir, yaitu mengenai Sistem rekomendasi, Pengukuran Performansi, Mobile, Context-Aware Computing, Vector Space Model, Android, dan Location based Service.

2.1 Sistem Rekomendasi

2.1.1 Konsep Dasar Sistem

Sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk mencapai suatu tujuan tertentu.

Jerry FithGerald (2006) Sistem merupakan suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau menyelesaikan suatu sasaran tertentu.

2.1.2 Sistem Rekomendasi

Sistem Rekomendasi merupakan sebuah sistem yang menyarankan informasi yang berguna. Seperti yang disebutkan oleh Paul Resnick dan Hal R. Varian dalam jurnalnya, sistem rekomendasi membantu dan meningkatkan proses seleksi alam. Suatu yang khas dalam sistem rekomendasi adalah orang memberikan rekomendasi sebagai masukan, kemudian sistem mengagregrasikan dan mengarahkan agar sesuai dengan


(24)

8

si penerima. Dalam beberapa kasus, transformasi utama ada di dalam proses agregasi. Kasus lainnya nilai sistem terletak pada kemampuannya untuk mencocokkan dua hal yaitu bagian yang dijadikan rekomendasi, dan yang mencari rekomendasi secara baik.

Sistem rekomendasi ini dihitung menggunakan sejumlah model prediktif yang memiliki karakteristik umum, yaitu mengeksploitasi evaluasi atau penilaian yang diberikan oleh pengguna untuk transaksi yang sebelumnya telah dilihat. Berdasarkan teknik prediksi tertentu yang sedang digunakan, sistem rekomendasi telah diklasifikasikan ke dalam empat kategori utama [Burke, 2007]: collaborative-based, content-based, knowledge-based, hybrid. Pada sistem yang menggunakan pendekatan collaborative-based paling sederhana menghitung korelasi antara pengguna, memprediksi peringkat produk untuk pengguna saat ini didasarkan pada peringkat yang diberikan oleh pengguna lain, yang sangat berhubungan dengan preferensi pengguna saat ini [Herlocker et al, 1999]. Sedangkan sistem dengan pendekatan content-based hanya menggunakan preferensi dari pengguna saat ini, memprediksi peringkat untuk item yang tak terlihat berdasarkan seberapa banyak deskripsinya atau isinya mirip dengan pengguna [Pazzani dan Billsus, 2007].

Sistem rekomendasi dapat membantu para pengguna menemukan informasi tersebut dengan memberikannya saran secara personal. Sistem


(25)

9

rekomendasi merupakan model aplikasi dari hasil observasi terhadap keadaan dan keinginan pelanggan (User). Sistem rekomendasi memanfaatkan opini seseorang terhadap suatu barang dalam domain atau kategori tertentu, untuk membantu seseorang dalam memilih produk. Untuk mempermudah pelanggan mengambil keputusan yang tepat dalam menentukan produk yang akan dibelinya [McGinty dan Smyth, 2006].

Terdapat dua pendekatan pada information filtering, yaitu collaborative filtering dan content-based filtering, yaitu :

1. Collaborative Filtering

Pada pendekatan Collaborative Filtering, proses rekomendasi berdasarkan kemiripan antara user yang memilih dalam sistem. Pendekatan ini dibagi menjadi 2 yaitu:

a. User-Based Collaborative Filtering

Sistem ini mencari user-user yang memiliki korelasi yang tinggi, dan merekomendasikan item-item yang disukai user-user sebelumnya. Contoh: toko A menyukai roti, aqua, buah dan toko B menyukai roti, aqua, biskuit. Maka rekomendasi yang diberikan terhadap toko A adalah biskuit dan toko B adalah buah.


(26)

10

Sistem ini mencari item-item based yang disukai user, item yang berkorelasi tinggi kemudian direkomendasikan kepada user lainnya.

2. Content Based Filtering

Pada pendekatan Content Based Filtering, proses rekomendasi suatu item untuk seorang user berdasarkan deskripsi dari item serta profil dari ketertarikan user tersebut. Profil pengguna dibuat dari koleksi fitur-fitur item yang disukai/tak disukai sebelumnya oleh pengguna. Sehingga item-item baru yang deskripsinya cukup mirip dengan profil seorang pengguna akan direkomendasikan ke pengguna tersebut.

Metode ini memiliki kelebihan merekomendasikan item yang sifatnya baru bagi user, karena prinsip kerjanya dengan melihat deskripsi content yang dikandung oleh item yang pernah diberi nilai rating tinggi sebelumnya oleh user.

2.2Mobile

2.2.1 Pengertian Mobile

Mobile adalah perpindahan dari satu tempat ke tempat yang lain, misalnya telepon mobile berarti bahwa terminal telepon yang dapat berpindah dengan mudah dari satu tempat ke tempat lain tanpa terjadi pemutusan atau terputusnya komunikasi.


(27)

11

2.2.2 Karakteristik Perangkat Mobile

Perangkat mobile memiliki banyak jenis dalam hal ukuran, desain dan layout, tetapi mereka memiliki kesamaan karakteristik yang sangat berbeda dari sistem desktop.

a. Ukuran yang kecil

Perangkat mobile memiliki ukuran yang kecil. Konsumen menginginkan perangkat yang terkecil untuk kenyamanan dan mobilitas mereka.

b. Memori yang terbatas

Perangkat mobile juga memiliki memory yang kecil, yaitu primary (RAM) dan secondary (disk). Dengan pembatasan jumlah dari memory, pertimbangan-pertimbangan khusus harus diambil untuk memelihara pemakaian dari sumber daya yang mahal ini.

c. Daya proses yang terbatas

Sistem mobile tidaklah setangguh desktop. Ukuran, teknologi dan biaya mrupakan beberapa faktor yang mempengaruhi status dari sumber daya ini.

d. Mengkonsumsi daya yang rendah

Perangkat mobile menghabiskan sedikit daya dibandingkan dengan desktop. Perangkat ini harus menghemat daya karena mereka berjalan pada keadaan dimana daya yang disediakan dibatasi oleh baterai.


(28)

12

e. Kuat dan dapat diandalkan

Perangkat mobile selalu dibawa kemana saja, maka mereka harus cukup kuat untuk menghadapi benturan-benturan, gerakan.

f. Konektivitas yang terbatas

Perangkat mobile memiliki bandwith rendah, beberapa dari mereka bahkan tidak tersambung. Kebanyakan dari mereka menggunakan koneksi wireless.

2.2.3 Context Aware Computing

Context adalah lokasi, identitas orang terdekat disekitar pengguna dan perubahan objek. Context sebagai kondisi emosional pengguna, perhatian fokus, lokasi dan orientasi, tanggal dan waktu, serta benda-benda dan orang-orang di lingkungannya.

Context aware computing adalah perangkat lunak yang menyesuaikan menurut lokasi penggunanya, orang atau objek terdekat serta perubahan objek-objek. Context aware systems akan menyesuaikan dengan lokasi penggunaan, kumpulan orang-orang terdekat, dan lain-lain. Tiga aspek penting dalam konteks adalah : where you are, who you are with, dan what resources are nearby. (Bill Schilit, Columbia University).

Ada 4 kategori context aware computing, (Bill Schilit,1994) :

a. Proximate selection, teknik user interface dimana objek yang terletak didekatnya menegaskan atau membuat lebih mudah untuk memilih.


(29)

13

b. Automatic contextual reconfiguration, sebuah proses penambahan komponen baru, menghapus komponen yang ada, atau mengubah hubungan antara komponen karena konteks perubahan.

c. Contextual information and commands, menghasilkan hasil yang berbeda sesuai dengan konteks.

d. Context-triggered actions, aturan yang digunakan untuk menentukan bagaimana context aware system harus beradaptasi.

2.3Pengukuran Performansi

Keefektifitasan dari pemerolehan informasi dapat diukur. Dalam pemerolehan informasi terdapat banyak metode yang digunakan untuk melakukan pengukuran. [Nugraha & Adi : 2010]. Mengukur performansi sistem dengan menggunakan parameter performansi, yaitu :

2.3.1 Precision

Precision adalah proporsi jumlah dokumen yang ditemukan dan dianggap

relevan untuk kebutuhan sipencari informasi.

Precision = jumlah dokumen relevan yang berhasil ditemukan jumlah seluruh dokumen yang relevan

2.4Vector Space Model


(30)

14

2.4.1 Pengertian Vector Space Model

Dalam sebuah Information Retrieval (IR) System, menentukan kemiripan antar dokumen yang didefinisikan berdasarkan representasi bag-of-word yang mengabaikan urutan kata dalam dokumen. Terdapat beberapa metode yang digunakan dalam searching salah satunya dengan menggunakan Vector Space Model [ Salton, 1983 ].

Vector space model adalah model sistem untuk mengukur kemiripan antara suatu dokumen dengan query sebagai sebuah vektor n-dimensi. Tiap dimensi pada vector tersebut diwakili oleh satu term. Term disimpan dalam database pencarian sebagai sebuah inverted index. Index merupakan konversi dari dokumen asli dari sekumpulan kata ke dalam daftar kata yang berasosiasi dengan dokumen terkait dimana kata-kata tersebut muncul. Contoh dari model ruang vektor tiga dimensi untuk dokumen D1 dan D2,

satu query pengguna Q1, dan tiga term T1, T2, T3 . Setiap sel dalam matriks

berhubungan dengan bobot yang diberikan dari suatu term dalam dokumen yang ditentukan, jika bernilai nol maka term tersebut tidak ada dalam dokumen. Digambarkan seperti dibawah ini.


(31)

15

Gambar 2.1 Contoh Model Ruang Vektor (VSM)

2.4.2 Ukuran Kesamaan (similarity measure)

Similarity measure adalah sebuah fungsi yang menghitung tingkat kesamaan dari dua buah vektor. Ukuran kesamaan (similarity) merupakan istilah dalam model ruang vektor yang ditentukan berdasarkan assosiative coefficient berdasarkan inner product dari kedua vektor. VSM dan pembobotan tf-idf digunakan untuk merepresentasikan nilai numerik dokumen sehingga dapat dihitung kedekatan antar dokumen. Semakin dekat dua vektor di dalam suatu VSM maka semakin mirip dua dokumen yang diwakili oleh vektor tersebut. Kemiripan antar dokumen dihitung menggunakan suatu fungsi ukuran kemiripan (similarity measure). Ukuran


(32)

16

ini memungkinkan perangkingan rekomendasi sesuai dengan kemiripan relevansinya terhadap query. Setelah rekomendasi dirangking, top-scoring dikembalikan kepada pengguna.

Salah satu ukuran kemiripan teks yang popular adalah cosine similarity. Ukuran ini menghitung nilai cosinus sudut antara dua vektor. Nilai similarity antara di dan Q dapat didefinisikan sebagai berikut [Lee,

1997]:

Sim(Q,Di) =

2.5Android

Android merupakan sistem operasi yang dikembangkan untuk perangkat mobile berbasis Linux. Dengan software Development kits (SDK) yang dilengkapi dengan emulator untuk membantu menguji coba aplikasi yang dibuat.

2.5.1 Arsitektur Android

Sistem operasi Android dibangun berdasarkan kernel Linux dan memiliki arsitektur seperti gambar 2.2 berikut :

    

1 1 ,

2 , 2 1 ) , , ( j j j i j Q j

w

w

w

w

Q j i j


(33)

17

Gambar 2.2 Arsitektur Android

Application

Serangkaian lapisan aplikasi yang 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.

Application Framework

Lapisan aplikasi ini memiliki akses penuh ke Android dan memudahkan dalam mengakses informasi lokasi, mengatur alarm, menambahkan pemberitahuan ke status bar dan lain sebagainya.

Libraries

Libraries dalam bahasa C/C++ yang digunakan oleh berbagai komponen pada sistem Android.


(34)

18

Android Runtime

Libraries inti yang menyediakan sebagian besar fungsi yang tersedia di libraries inti dari bahasa pemrograman Java. Setiap aplikasi akan berjalan sebagai proses sendiri pada Dalvik Virtual Machine (VM).

Linux Kernel

Android bergantung pada Linux versi 2.6 untuk layanan sistem inti seperti keamanan, manajemen memori, manajemen proses, network stack, dan model driver. Kernel juga bertindak sebagai lapisan antara hardware dan seluruh software.

2.5.2 Komponen Dasar

Aplikasi Android ditulis dalam bahasa pemrograman Java. Java mengompilasi kode bersama dengan data resource dan file yang dibutuhkan oleh aplikasi dibundel ke dalam paket Android, file arsip ditandai dengan .apk. Komponen aplikasi pada Android terdiri dari 4 komponen utama, yaitu

a.Activities

Activities merupakan potongan kode executable yang menyajikan UI secara visual dimulai oleh pengguna maupun sistem operasi dan berjalan selama diperlukan.


(35)

19

Service tidak memiliki visual UI, melainkan berjalan di latar belakang untuk waktu yang tidak terbatas.

c.Broadcast Receiver

Broadcast Receiver merupakan komponen yang menerima dan bereaksi untuk menyiarkan pengumuman.

d.Content Provider

Content Provider diciptakan untuk berbagi data dengan Activities lain atau Service. Sebuah Content Provider menggunakan antarmuka standar dalam bentuk URI untuk memenuhi permintaan data dari aplikasi lain.

2.5.3 Daur Hidup Activity

Activity memiliki tiga status dasar : 1.Active atau Running

Status ini ketika Activity berjalan di foreground (di bagian atas stack untuk task ini). Activity yang berkaitan aktif dengan pengguna. 2.Pause

Jika Activity telah kehilangan focus tetapi masih dapat dilihat oleh pengguna yang berarti ada Activity lain yang berjalan di atas Activity ini, sebuah Activity yang transparan atau tidak menutupi layar penuh sehingga Activity dalam status pause dapat terlihat. Sebuah Activity dalam status pause tetap hidup, yaitu Android tetap


(36)

20

mempertahankan semua informasi dan tetap melekat pada Windows Manager hingga akhirnya dapat dimatikan oleh sistem ketika memori sangat rendah.

3.Stop

Activity benar-benar dihentikan karena ada Activity lain yang memenuhi layar. Semua informasi dipertahankan tetapi tidak dapat dilihat oleh pengguna sehingga jendela tersembunyi dan dapat dimatikan oleh sistem ketika memori dibutuhkan.

Metode yang terdapat pada Activity :

 onCreate()

Dipanggil ketika Activity pertama kali dibuat. Biasanya merupakan metode di mana View yang ingin ditampilkan dibuat, membuka data file, maupun menginisialisasi Activity. Saat memanggil OnCreate, kerangka Android melewati sebuah Bundel objek yang mengandung state activity yang disimpan ketika Activity pertama berjalan.

 onStart()

Dipanggil sebelum Activity terlihat pada layar. Ketika Activity dapat menjadi Activity foreground, maka akan dipanggil method OnResume() sedangkan jika tidak maka akan dipanggil method OnStop().


(37)

21  onResume()

Dipanggil setelah OnStart() apabila Activity dapat menjadi foreground. Saat ini, Activity dapat bereaksi dengan pengguna. OnResume() juga akan dipanggil ketika Activity ini tidak menjadi foreground karena ada Activity lain lalu Activity lain akhirnya selesai dan Activity kembali menjadi foreground.

 onPause()

Dipanggil ketika Activity lain dibawa ke foreground. Pada status ini Activity tidak memiliki akses ke layar.

 onStop()

Dipanggil ketika Activity tidak lagi terlihat karena adanya Activity lain yang dibawa ke foreground atau Activity ini dimatikan.

 OnDestroy()

Dipanggil terakhir sebelum Activity dimatikan ketika Android membutuhkan resources yang digunakan oleh Activity.

2.5.4 Daur Hidup Service

Daur hidup Service hapir sama dengan Activity tetapi memiliki beberapa perbedaan untuk detailnya.


(38)

22

Dipanggil apabila seseorang klien memanggil

Context.startService(Intent). Jika service belum berjalan maka Android akan membuatnya dan memanggil OnCreate() diikuti method OnStart(). Apabila service telah berjalan, Android hanya akan memanggil OnStart().

 OnBind()

Ketika klien membutuhkan koneksi ke service maka akan dipanggil Context.bind. Pemanggilan ini akan mengakibatkan pembuatan service apabila service tidak sedang berjalan tanpa memanggil OnStart().

 OnDestroy()

Sama dengan Activity, method ini akan dipanggil ketika service akan dimatikan. Android akan mematikan service apabila telah tidak ada lagi klien yang memulai atau bind ke service ini.

2.6Location Based Service (LSB)

Location Based Service (LBS) adalah aplikasi komputasi mobile yang menyediakan layanan kepada pengguna berdasarkan geografis mereka. Teknologi di belakang komponen LBS yang penting untuk dipertimbangkan ketika merancang sebuah aplikasi LBS adalan bagaimana informasi lokasi dapat diperoleh, middleware standar yang relevan, teknologi penyimpanan data lokasi,


(39)

23

bagaimana teknologi smartphone dapat diterapkan untuk generasi LBS. LBS mengandung beberapa komponen termasuk peta dan informasi Sistem Informasi Geografis (SIG), layanan lokasi pengumpulan. Ada dua elemen LBS yaitu :

a.Location Manager :menyediakan pengait ke Location Based Service. Fungsi dari Location Manager yaitu mendapatkan lokasi saat ini, melacak perpindahan dan mengatur tanda kedekatan untuk mendeteksi gerakan masuk dan keluar dari area tertentu.

b.Location Providers :masing-masing mewakili teknologi lokasi-temuan yang berbeda yang digunakan untuk menentukan lokasi perangkat.

Arsitektur dari LBS dapat di generalisasikan seperti gambar di bawah ini.


(40)

24

Dengan menggunakan Google Maps, pengguna dapat membuat peta berbasis Aktivitas sebagai elemen User Interface. Pengguna memiliki akses penuh ke peta, yang memungkinkan untuk mengontrol pengaturan tampilan, mengubah tingkat zoom, dan memindahkan lokasi terpusat. Dengan menggunakan Overlay, pengguna dapat menambahkan keterangan peta dan menangani masukan pengguna untuk memberikan informasi.


(41)

25

BAB III

ANALISA DAN PERANCANGAN

3.1Analisa Sistem

Sistem Rekomendasi Pemasaran Barang Dagang Sales Menggunakan Metode Content Based Filtering Berbasis Mobile Android ini berfungsi untuk memberikan informasi terbaik dan cocok mengenai letak toko atau warung yang sesuai dengan posisi serta barang yang dibawa seorang sales. Penyimpanan data toko, sales, produk serta transaksi menggunakan database My SQL, sehingga dapat dilakukan perubahan data. Sistem mobile mempunyai 1 level pengguna yaitu sales yang akan mengelola barang yang akan dibawa, dan mencatat transaksi penjualan produk dengan toko. Pengguna tersebut berhak untuk mendapatkan informasi toko yang akan dikunjungi berdasarkan profil sales tersebut. Sedangkan untuk sistem berbasis web memiliki 1 level pengguna, yaitu admin yang akan menambah, merubah, menghapus, melihat transaksi serta melakukan reindeks. Dengan menggunakan precision untuk menggukur performansi dari informasi yang telah didapat oleh sistem ini. Informasi yang didapat akan diolah, kemudian diukur dengan mencocokkan profil seorang sales dengan profil toko atau warung yang direkomendasikan, sehingga sales dapat menjual atau memasarkan produknya kepada toko atau warung yang memiliki profil yang sama.


(42)

26

3.2Arsitektur Aplikasi

3.2.1 Arsitektur Aplikasi Admin

Sistem ini memiliki gambaran arsitektur sistem sales seperti gambar dibawah ini :

Admin

Gambar 3.1 Arsitektur Aplikasi Admin

Pada alur pertama dilakukan pengumpulan dokumen dari produk yang akan dipasarkan, kemudian dilakukan perubahan data berupa penambahan, pengeditan, dan penghapusan. Setelah perubahan data dilakukan oleh admin maka data yang baru akan disimpan di database.

Data Toko, Produk, Sales yang ada

Perubahan Database

Data Toko, Produk, Sales yang telah berubah


(43)

27

3.2.2 Arsitektur Aplikasi Sales

Sistem ini memiliki gambaran arsitektur sistem sales seperti gambar dibawah ini :

Sales

Gambar 3.2 Arsitektur Aplikasi User (Sales)

Data yang sudah dipindah ke database selanjutnya melalui proses vector space model untuk mengukur kemiripan antara user profil dengan query. Semakin dekat dua vektor di dalam suatu VSM maka semakin mirip. Pada proses similarity dihitung nilai cosinus sudut dari dua vektor, lalu akan dipilih query mana yang cocok dengan profil user, yang kemudian menjadi sebuah daftar rekomendasi.

Data Corpus

VSM

(Vector Space Model)

Input Profil

Similarity Process


(44)

28

3.3Arsitektur Sistem

3.3.1 Arsitektur Sistem Admin

Admin

Web Server internet Database server

Gambar 3.3 Arsitektur Sistem Admin

Pada arsitektur sistem berbasis web, admin mengakses sistem dari web server menggunakan komputer untuk mengelola data produk, toko, seles, melakukan reindeks serta memonitor transaksi penjualan produk. Dalam mengakses data yang ada di database server diperlukan koneksi internet.

3.3.2 Arsitektur Sistem Sales

Web Server Database server internet

Sales

Reksa Mobile

Gambar 3.4 Arsitektur Sistem Sales

Pada arsitektur sistem berbasis mobile, sales melakukan login pada aplikasi mobile kemudian memasukkan data atau jumlah barang yang dibawa pada saat mereka melakukan pemasaran produk untuk pertama kali, lalu akan dicatat oleh server dan digunakan untuk query untuk membentuk rekomendasi


(45)

29

yang mendekati profil setiap sales. Dalam mengakses data yang ada di web server diperlukan koneksi internet, web server berfungsi untuk menyimpan data produk, toko, sales, transaksi toko, dan transaksi sales. Hasil pencatatan terakhir akan digunakan untuk saran jumlah yang akan dibawa oleh sales di hari berikutnya. Perekaman data dan perhitungan cosinus similarity dilakukan pada server untuk memudahkan mengakses data dan pemantauan pemasaran oleh distributor.

3.4Permodelan data

Pada tabel di bawah ini terdapat satu kolom query sales, delapan toko, dan lima belas produk. Seorang sales membawa enam jenis produk yang akan dipasarkan kepada delapan toko. Dimana bobot atau banyaknya produk setiap toko didapatkan dari transaksi sebelumnya. Matriks bobot setiap produk dapat dilihat pada tabel 3.1 berikut ini :

Tabel 3.1 Contoh perhitungan matriks bobot

sales

W

67 Prapti Prima

Sumber

Rejeki Cendana KFE Dewi Sri Enny

AJB2B 20 0 0 0 0 15 0 0 15

AJC2 0 0 0 0 80 0 0 0 0

AJT2B3 0 0 0 0 0 0 0 0 0

AJTS 50 0 0 15 20 15 10 10 10

APD 0 0 0 0 0 0 0 0 0

BIC4 0 0 0 0 0 0 0 0 0

BPD 0 0 0 0 0 0 0 0 0

BPF 35 0 10 20 0 10 15 20 0

BPG 0 0 0 0 0 0 0 0 0


(46)

30

Setelah matriks bobot terbentuk, kemudian menghitung nilai bobot (w) dengan mengkuadratkan nilai setiap toko. Langkah berikutnya menjumlahkan nilai disetiap kolom dan hasil penjumlahan setiap kolom tersebut diakarkan. Matriks perhitungan nilai vektor seperti tabel 3.2.

Tabel 3.2 Contoh perhitungan data nilai vektor W^2

Sales 67 Prapti Prima

Sumber

Rejeki Cendana KFE Dewi Sri Enny

AJB2B 400 0 0 0 0 225 0 0 225

AJC2 0 0 0 0 6400 0 0 0 0

AJT2B3 0 0 0 0 0 0 0 0 0

AJTS 2500 0 0 225 400 225 100 100 100

APD 0 0 0 0 0 0 0 0 0

BIC4 0 0 0 0 0 0 0 0 0

BPD 0 0 0 0 0 0 0 0 0

BPF 1225 0 100 400 0 100 225 400 0

BPG 0 0 0 0 0 0 0 0 0

BSM4/

BSW4 0 0 0 0 0 0 0 0 0

CSP40/

H2 1225 0 0 0 0 100 625 0 225

CWG1/

CWT1 625 0 0 0 0 0 0 0 0

CWG4 0 0 0 0 0 0 0 0 0

DEC 0 0 0 0 0 0 0 100 0

ECS4 2025 400 0 0 0 225 0 0 225

SUM 8000 400 100 625 6800 875 950 600 775

VECTOR 89.44272 20 10 25 82.46211 29.5804 30.82207 24.4949 27.83882

CSP40/H2 35 0 0 0 0 10 25 0 15

CWG1/CWT1 25 0 0 0 0 0 0 0 0

CWG4 0 0 0 0 0 0 0 0 0

DEC 0 0 0 0 0 0 0 10 0


(47)

31

Pada tabel 3.3 matriks perhitungan dari bobot di tabel 3.1 dengan mengkalikan setiap baris dikolom sales dengan setiap kolom toko. Dengan

rumus :

 1

) , , (

j

w

Q j

w

i j

dimana WQ,j merupakan bobot kueri (sales)

terhadap produk dan Wi,j merupakan bobot data (toko) terhadap produk. Tabel 3.3 Contoh perhitungan perkalian kueri

WQ,j ^ Wi,j

67 Prapti Prima

Sumber

Rejeki Cendana KFE

Dewi

Sri Enny

AJB2B 0 0 0 0 300 0 0 300

AJC2 0 0 0 0 0 0 0 0

AJT2B3 0 0 0 0 0 0 0 0

AJTS 0 0 750 1000 750 500 500 500

APD 0 0 0 0 0 0 0 0

BIC4 0 0 0 0 0 0 0 0

BPD 0 0 0 0 0 0 0 0

BPF 0 350 700 0 350 525 700 0

BPG 0 0 0 0 0 0 0 0

BSM4/BSW4 0 0 0 0 0 0 0 0

CSP40/H2 0 0 0 0 350 875 0 525

CWG1/CWT1 0 0 0 0 0 0 0 0

CWG4 0 0 0 0 0 0 0 0

DEC 0 0 0 0 0 0 0 0

ECS4 900 0 0 0 675 0 0 675


(48)

32

Selanjutnya menghitung nilai cosinus sudut antara dua vektor dengan setiap kueri dengan rumus cosine similarity, untuk :

Keterangan : Wij : bobot produk dalam data (toko)

WQj : bobot produk dalam kueri (sales)

Tabel 3.4 Contoh hasil perhitungan cosines similarity

67 Prapti Prima

Sumber

Rejeki Cendana KFE Dewi Sri Enny

0.503115 0.39 0.64846 0.135582 0.916564 0.689202 0.547723 0.803219

Dari perhitungan Tabel 3.4 data diatas, toko yang memenuhi syarat untuk direkomendasikan pada sales adalah Toko Cendana karena memiliki tingkat similaritas mendekati profil sales kemudian Toko Enny, Toko KFE, Toko Prima, Toko Dewi Sri, Toko 67, Toko Prapti, Toko Sumber Rejeki. Toko yang memiliki similaritas jauh dari profil sales akan direkomendasikan sebagai pelanggan promosi.

3.5Desain model secara umum

Desain model berisi analisis kebutuhan sistem secara umum yang terdiri dari use case diagram dan Diagram Arus Data Logika (DADL).

     1 1 , 2 , 2 1 ) , , ( j j j i j Q j

w

w

w


(49)

33

3.5.1 Diagram Use Case

Diagram use case merupakan diagram yang menggambarkan interaksi antara sistem dengan sistem eksternal dan pengguna.

Admin

Login

Kelola Produk Depends on

Kelola Sales Kelola Toko

reindeks


(50)

34

Sales

Login

Profil Sales Depends on

Rekomendasi Pelanggan Tetap

Rekomendasi Promosi Pelanggan

Kelola Toko

Gambar 3.6 Use Case Diagram untuk Sales

3.5.2 Narasi Use Case

Narasi use case pada diagram use case Gambar 3.4 untuk sistem berbasis mobile dan Gambar 3.4 untuk sistem berbasis web akan mendeskripsikan secara tertulis aktivitas yang ada pada use case. Narasi use case dari gambar diagram use case Gambar 3.5 dan 3.6 terdapat pada lampiran 1.


(51)

35

3.5.3 Diagram Aktifitas

Merupakan diagram yang menjelaskan aktivitas antara sales dan admin dengan sistem. Secara lebih rinci tahap diagram aktifitas dapat dilihat pada lampiran 2.

3.5.4 Model Analisis

Merupakan suatu proses untuk menterjemahkan skenario use case menjadi kelas analisis. Dalam kelas analisis terdapat tiga jenis, yaitu form/boundary, controller, dan entity. Setiap use case dicari kelas analisisnya sehingga dapat menentukan kebutuhan kelas. Hasil analisis kelas dapat dilihat pada lampiran 3.

3.5.5 Diagram Kelas

Antara masing – masing kelas memiliki hubungan asosiasi dengan kelas yang lain. Relasi antar kelas ditunjukan dalam Gambar 3.7 dan 3.8. Gambar 3.7 merupakan diagram kelas Rekomendasi Web Server dan Gambar 3.8 merupakan diagram kelas Rekomendasi mobile.


(52)

36 <<Interface>> HalamanUbahProduk <<Interface>> HalamanEditToko Admin 1 * 1 * 1 * <<Interface>> HalamanLogin <<Interface>> HalamanProduk <<Controller>>

tambahProduk <<Controller>>ubahProduk

<<Entity>> Produk <<Interface>> HalamanToko <<Controller>> tambahToko <<Controller>> hapusToko <<Controller>> editToko 1 * <<Entity>> Toko <<Interface>> Halaman TransaksiToko <<Controller>> reindeks 1 * <<Entity>> TransaksiToko <<Interface>> HalamanEditSales 1 * 1 * <<Interface>> HalamanSales <<Controller>> tambahSales <<Controller>> hapusSales <<Controller>> editSales 1 * <<Entity>> Sales <<Interface>> Halaman TransaksiSales <<Controller>> tambahprofil 1 * <<Entity>> TransaksiSales 1 *


(53)

37 <<Interface>> MenuKelola <<Interface>> ProfilSales <<Entity>> Transaksi_sales <<Interface>> LoginSales <<Entity>> Sales <<Interface>> Detail ListToko <<Interface>> ListToko <<Interface>> KelolaToko <<Entity>> Toko <<Entity>> Produk <<Entity>> Transaksi_toko_ indeks <<Interface>> ListRekomendasi Promosi <<Interface>> ListRekomendasi Tetap <<Entity>> Transaksi_toko <<Interface>> LokasiToko <<Controller>> Login <<Controller>> Toko <<Controller>> Profil <<Controller>> Rekomendasi <<Controller>> Lokasi Kelas-Kelas PHP Kelas-Kelas Android 1 * 1 * 1 * 1 * 1 * 1 * 1 * <<Interface>> Detail ProfilSales <<Entity>> Toko_distance 1 * 1 * <<Interface>> LokasiSales 1 * 1 *


(54)

38

3.5.6 Desain Basis Data

Perancangan diagram E-R menggambarkan relasi antar entitas (entity) yang digunakan untuk sistem.

produk id_produk harga_karton satuan N sales id_salesnama_lengkap telepon alamat toko id_toko latitude longitude nama_toko frek_toko N transaksi_toko N tanggal alamat cosim kode transaksi_sales pass user telepon

lokasi longitudelatitude harga_karton

nama_produk N

frek_sales

distance id_sales

Gambar 3.9 ERD Sistem

3.5.7 Desain Basis Data

Berikut ini adalah desain fisik dari basis data yang dirancang berdasarkan struktur tabel:

1. Tabel Produk

Tabel 3.5 Struktur Tabel Produk

No Nama Kolom Tipe Fungsi

1 id_produk Int(4) Sebagai primary key dari tabel produk.

2 Kode Varchar(10) Menyimpan kode produk

3 nama_produk Varchar(30) Menyimpan nama produk

4 Satuan Varchar(10) Menyimpan satuan produk

5 harga_karton Int(15) Menyimpan harga per karton produk 6 harga_pak Int(15) Menyimpan harga per pak produk


(55)

39

2. Tabel Sales

Tabel 3.6 Struktur tabel Sales

3. Tabel Toko

Tabel 3.7 Struktur tabel toko

No Nama Kolom Tipe Fungsi

1 id_sales Int(4) Sebagai primary key dari tabel sales. 2 nama_lengkap Varchar(30) Menyimpan nama lengkap sales

3 User Varchar(10) Menyimpan user sales

4 Pass Varchar(15) Menyimpan password sales

5 Alamat Varchar(30) Menyimpan alamat sales

6 Telepon Int(15) Menyimpan telepon sales

7 Lokasi Varchar(15) Menyimpan lokasi pemasaran sales 8 Longitude Varchar(20) Menyimpan longitude lokasi sales 9 Latitude Varchar(20) Menyimpan latitude lokasi sales

No Nama Kolom Tipe Fungsi

1 id_toko Int(4) Sebagai primary key dari tabel toko. 2 nama_toko Varchar(30) Menyimpan nama toko

3 alamat Varchar(30) Menyimpan alamat toko

4 telepon Int(15) Menyimpan telepon toko

5 longitude Varchar(15) Menyimpan longitude toko 6 latitude Varchar(15) Menyimpan latitude toko

7 cosim Double Menyimpan hasil perhitungan vsm

8 Distance Double Menyimpan hasil perhitungan jarak sales dan toko


(56)

40

4. Tabel Transaksi Sales

Tabel 3.8 Struktur tabel Transaksi Sales

5. Tabel Transaksi Toko

Tabel 3.9 Struktur tabel Transaksi Toko

No Nama Kolom Tipe Fungsi

1 id_trans_sales Int(4) Sebagai primary key dari tabel transaksi sales.

2 id_sales Int(4) Menyimpan primary key dari tabel sales 3 id_produk Int(4) Menyimpan primary key dari tabel

produk.

4 frek_sales Int(15) Menyimpan bobot produk yang dibawa sales.

No Nama Kolom Tipe Fungsi

1 id_trans_toko Int(4) Sebagai primary key dari tabel transaksi toko.

2 id_toko Int(4) Menyimpan primary key dari tabel toko 3 id_produk Int(4) Menyimpan primary key dari tabel

produk

4 Tanggal Varchar(10) Menyimpan tanggal transaksi toko 5 frek_toko Int(5) Menyimpan bobot transaksi produk. 6 id_sales Int(4) Menyimpan primary key dari tabel sales


(57)

41

6. Tabel Admin

Tabel 3.10 Struktur tabel Admin

7. Tabel Toko Distance

Tabel 3.11 Struktur tabel toko distance

No Nama Kolom Tipe Fungsi

1 id_admin Int(4) Sebagai primary key dari tabel admin. 2 nama_lengkap Varchar(30) Menyimpan nama lengkap admin

3 User Varchar(10) Menyimpan user admin

4 Pass Varchar(15) Menyimpan password admin

5 Alamat Varchar(30) Menyimpan alamat admin

6 Telepon Int(15) Menyimpan telepon admin

7 Email Varchar(15) Menyimpan alamat email admin

No Nama Kolom Tipe Fungsi

1 id_toko Int(4) Sebagai primary key dari tabel toko. 2 nama_toko Varchar(30) Menyimpan nama toko

3 alamat Varchar(30) Menyimpan alamat toko

4 telepon Int(15) Menyimpan telepon toko

5 longitude Varchar(15) Menyimpan longitude toko 6 latitude Varchar(15) Menyimpan latitude toko

7 cosim Double Menyimpan hasil perhitungan vsm

8 distance Double Menyimpan hasil perhitungan jarak sales dan toko


(58)

42

8. Tabel Transaksi toko indeks

Tabel 3.12 Struktur tabel Transaksi Toko Indeks

3.5.8 Model Desain

Pada desain antarmuka sistem ini akan ditampilkan desain dari tiap halaman yang akan dibentuk. Desain antarmuka akan dijelaskan lebih lengkap pada lampiran 4. Sedangkan antarmuka implementasi usecase pada lampiran 5.

No Nama Kolom Tipe Fungsi

1 id_trans_toko Int(4) Sebagai primary key dari tabel transaksi toko.

2 id_toko Int(4) Menyimpan primary key dari tabel toko 3 id_produk Int(4) Menyimpan primary key dari tabel

produk

4 Tanggal Varchar(10) Menyimpan tanggal transaksi toko 5 frek_toko Int(5) Menyimpan bobot transaksi produk.


(59)

43

BAB IV

IMPLEMENTASI DAN ANALISIS SISTEM

4.1Tahap Implementasi

Penelitian ini telah di implemetasikan untuk menjadi sebuah aplikasi dengan tahap-tahap seperti berikut :

4.1.1 Spesifikasi Perangkat Keras dan Perangkat Lunak

Perangkat keras yang dipakai untuk membangun sistem adalah sebagai berikut:

Processor : Pentium ( R ) Dual CPU 1,73 GHz

Memori : 2 GB

Hard Disk : 120 GB

Perangkat lunak yang dipakai untuk membangun sistem adalah sebagai berikut:

Editor program : Eclipse Helios dan Netbeans 6.9

DBMS : MySql 5.0

4.1.2 Implementasi Diagram Kelas

Program dibangun dengan berbasis orientasi objek, sehingga dalam implementasinya dibutuhkan kelas-kelas untuk mendefinisikan objek-objek yang akan dipakai. Adapun kelas-kelas yang telah terbentuk akan dijelaskan di lampiran 6.


(60)

4.2Pengujian

Pengujian sistem merupakan tahap akhir dalam membangun aplikasi ini. Sistem ini dibangun memanfaatkan Eclipse dan Netbeans 6.9. Sistem ini dapat diakses secara langsung apabila terdapat koneksi internet. Analisis sistem akan dibagi kedalam beberapa bagian, yaitu penyelesaian rumusan masalah, pengukuran kinerja sistem, kelebihan, serta kekurangan sistem yang telah dibangun. Pengujian dilakukan untuk mencari rekomendasi pelanggan tetap dan pelanggan promosi yang paling relevan, relevan adalah toko yang dipilih oleh sales yang memiliki kemiripan dengan profil sales. Pengujian dilakukan dengan menghitung precision, dengan rumus :

Precision = Jumlah item toko yang dipilih sales Jumlah item toko yang dipilih oleh sistem

4.2.1 Item Query yang tersedia

Tabel 4.1 Daftar Kode dan Nama Produk

NO KODE PRODUK NAMA PRODUK

1 AJB2B Atom BBQ 20gr

2 AJC2 Katom Ayam Bawang

3 AJT2B3 Katom Manis Ball 16 gr 500an

4 AJTS Katom Jatim 70 gr 2000an

5 APD Atom Pedas Garuda 100 gr

6 BIC4 Cereal Snack BISA 15 gr

7 BPD Kacang Kulit Rasa Bawang 100 gr


(61)

9 BPG Kacang Kulit Rasa Bawang 80 gr 10 BSM4/BSW4 Bismart Coklat / Susu

11 CSP40/H2 Gerry Salut ORI/Hagel nut

12 CWG1/CWT1 Wafelatos 20gr / Chocolate Toping

13 CWG4 Wafelatos Chocolate 10 gr

14 DEC Gerry Dip stik Colek Mini

15 ECS4 Gerry Toya corn 11 gr

16 ESB4/ESP4 Gerry Toya Stick Salut / Berry 100 gr

17 ESW4 Gerry Toya Stick Salut Pisang

18 ETG4 Ting Ting Garuda 3 gr

19 ETG5 Ting Ting Garuda 14 gr

20 GC Kacang Kulit Garuda Merah 250 gr

21 GD3 Kacang Kulit Garuda Premium 80 gr

22 GE Kacang Kulit Garuda Semi 20 gr

23 GF2B Kacang Kulit Garuda Semi 24 gr

24 JACKO/JATOP O donut / Donut Choco Milk

25 JBC4/6/7 Koko Dring Leci/ Straw/ Fruity 190 ml

26 JCO3 Jelly Jumbo cup isi 2-50 gr

27 JDO1 Jelly Drink Rasa Jeruk 190 ml

28 JDO3 Jelly Drink Rasa Jambu 190 ml

29 JDO5 Jelly Drink Rasa Mangga 190 ml

30 JDO7 Jelly Drink Rasa Anggur 190 ml

31 JDO9 Jelly Drink Rasa Apel 190 ml

32 KSCO Cappucino Kopyes

33 KSTO1 Okky Keiko Sticks 40 ml

34 LASF Leo Ayam Special Cassava 16 gr


(62)

36 LPBF Leo Kentang Rasa sapi Panggang 16 gr

37 LPGF Leo Kentang Rasa rumput Laut 16 gr

38 MC2 Mayo Kid 240 ml cup

39 MCC4R Messes, Renteng

40 MCP/MCOK4 Pasta Choco / Keju 15,5 gr

41 MCB4 Pasta Bery 15,5 gr

42 MCP4K Pasta Choco in pack 15,5 gr

43 MTA2 Mounte Apel 190 ml

44 MTB2 Mounte Black 190 ml

45 MTG2 Mounte Guava/jambu 190 ml

46 MTJ2 Mounte Jasmine 190 ml

47 MTL2 Mounte Leci 190 ml

48 MTM2 Mounte Mangga 190 ml

49 MTS2 Mounte Strawberry 190 ml

50 ORB1 Garuda rosta 23 gr

51 PG7D Pilus Garuda Premium 95 gr

52 PGC2B Pilus Garuda Sapi Panggang 18 gr

53 PGC7 Pilus Garuda Sapi Panggang 95 gr

54 PGG2B Pilus Garuda Rumput Laut 18 gr

55 PGP2 Pilus Garuda original 18 gr

56 PGS2/PGX2 Pilus Garuda pedas / Campur 18 gr

57 PGS7D Pilus Garuda Pedas 95 gr

58 PIRA4 Gerry Piramid 12 gr

59 PKL2B Pilus Kapsul 17 gr

60 SACO ½ Clevo Botol Anggur / Fruity 70 ml 61 SCO1O Jelly super cup isi 10-10 gr


(63)

63 SJU2 Space Bulir Jambu 330 ml

64 STIK4 Mini stick 10 gr

65 SUCO 1 /2 / 3 Susu Clevo 125ml/coklat/straw/plain

66 TGFB Katom Telor Garuda 37 gr

67 TGPEB Katom Telor Garuda 20 gr

68 TWC4R Cheese Latos 11 gr

69 W.BERRY 4 Berry Good 12 gr

70 WCD4 Chocolatos mocca

71 WCG1 Mini Chocolaos 30 gr

72 WCG4/WCP4 Chocolatos/ Chocolatos II

73 WES4 Cokluut 15 gr

4.2.2 Sample Profil

Pada sample profil sistem akan menampilkan 15 toko terbaik atau teratas untuk rekomendasi pelanggan tetap dan 15 toko terbawah untuk rekomendasi pelanggan promosi. Toko yang memiliki nilai cosim sama dengan 0 tidak ditampilkan.

a. Rekomendasi Pelanggan Tetap

Query 1

Query AJT2B3(20), BPD(30), BPF(35), ECS4(40), ESW4(45)

Toko pilihan sales Urutan sistem

Dewi Sri Ikasari

Pitu

1 2 3


(64)

Casha Tres New Mut Sidik Tutik Sumber Rejeki 67 4 5 6 7 9 10 11 Query 2

Query BPD(10), ETG4(15), GD3(10), GE(20), MCB4(20), PGP2(30), PKL2B(25), SJU2(25), STIK4(35)

Toko pilihan sales Urutan sistem

Satria Pitu Sidik Prapti Prima Dipta 67 1 3 5 6 8 9 10 Query 3

Query AJB2B(35), BPF(35), BPG(30), JCO3(20), JDO1(20)

Toko pilihan sales Urutan sistem

Sinemart Dipta Kaffa II 1 2 3


(65)

Noval Tutik Jaya Mulya Sumber Rejeki Prasetya Martini 5 6 8 11 12 14 Query 4

Query AJC2(10), BPF(10), JDO7(15), JDO9(20), MTM2(25), MTS2(25), WCD4(5)

Toko pilihan sales Urutan sistem

Al Husna Tutik Rifika Cendana Sumber Rejeki SanieMart Tres Dewi Sri Ida Enny Dero Prima 1 2 3 4 5 6 8 10 11 12 13 15 Query 5

Query AJB2B(10), AJTS(20), CWG4(15)


(66)

Medikom Yani Alfian Ikasari Tri New Mut Sumber Rejeki Andi KFE 1 2 3 4 6 7 9 12 14 Query 6

Query BPF(10), CSP4O(20), ETG4(20), JDO3(30), JDO5(30), MTA2(20)

Toko pilihan sales Urutan sistem

Pojok Cipta Tres Sari Pam Abadi Tri Casha 67 New Mut Sidik Dewi Sri 1 2 3 4 5 6 7 8 9 14 15


(67)

Query 7

Query AJC2(15), BPD(15), BSM4(30), LPBF(25), LPGF(25), ORB7(25), PG7D(25), SCS4(25)

Toko pilihan sales Urutan sistem

Prima Sumber Rejeki Prapti Tres Enny Ikasari KFE 67 Pitu Cendana Supri Sidik 1 2 3 4 5 6 7 8 9 11 12 14 Query 8

Query JDO5(25), JDO9(30), LPBF(15), LPGF(25), LPGC7(20), PGG2B(20), W.BERRY 4(15)

Toko pilihan sales Urutan sistem

Rifika Abadi Pitu SanieMart Imam 67 1 3 7 8 10 11


(68)

Jaya Mulya 13

Query 9

Query JCO3(25), KSCO(25), LASF(20), MC2(20)

Toko pilihan sales Urutan sistem

Kaffa II Prasetya Tiara Dero Enny Dewi Sri

Lincem Fortuna II

Aribia

1 2 3 4 5 6 7 8 12

Query 10

Query MTA2(45), MTB2(50)

Toko pilihan sales Urutan sistem

Nanik Tutik Imam Satria New Mut

1 3 4 7 9


(69)

b. Rekomendasi Pelanggan Promosi

Query 1

Query AJT2B3(20), BPD(30), BPF(35), ECS4(40), ESW4(45)

Toko pilihan sales Urutan sistem

Kaffa II Rifika Prasetya Dero Aribia 67 Prima 1 2 3 4 5 8 9 Query 2

Query BPD(10), ETG4(15), GD3(10), GE(20), MCB4(20), PGP2(30), PKL2B(25), SJU2(25), STIK4(35)

Toko pilihan sales Urutan sistem

Rifika New Mut Ida Fortuna II Cendana Jaya Mulya Supri Prasetya KFE Marti 1 2 3 4 5 6 8 9 10 11


(70)

Imam Kaffa II

13 14

Query 3

Query AJB2B(35), BPF(35), BPG(30), JCO3(20), JDO1(20)

Toko pilihan sales Urutan sistem

Cendana Dero Fortuna I KFE Tri Tiara Dewi Sri Abadi Sari Pam 1 2 3 4 5 6 7 11 13 Query 4

Query AJC2(10), BPF(10), JDO7(15), JDO9(20), MTM2(25), MTS2(25), WCD4(5)

Toko pilihan sales Urutan sistem

Prapti Pitu Lestari Medikom Tini 1 2 4 5 10


(71)

Query 5

Query AJB2B(10), AJTS(20), CWG4(15)

Toko pilihan sales Urutan sistem

Fortuna II Imam Supri Rifika Satria Marti Prasetya KFE Andi Ida 1 2 3 4 5 6 9 11 13 14 Query 6

Query BPF(10), CSP4O(20), ETG4(20), JDO3(30), JDO5(30), MTA2(20)

Toko pilihan sales Urutan sistem

Kaffa II Pitu Fortuna I Ida Cendana Marti Ikasari Aribia Rifika 1 2 3 4 5 7 10 12 14


(72)

Query 7

Query AJC2(15), BPD(15), BSM4(30), LPBF(25), LPGF(25), ORB7(25), PG7D(25), SCS4(25)

Toko pilihan sales Urutan sistem

Jaya Mulya Dipta Dero Satria Kaffa II Fortuna II Fortuna I Abadi Dewi Sri Medikom Tutik Rifika 1 2 3 4 5 6 7 9 11 12 14 15 Query 8

Query JDO5(25), JDO9(30), LPBF(15), LPGF(25), LPGC7(20), PGG2B(20), W.BERRY 4(15)

Toko pilihan sales Urutan sistem

Kaffa II Dero Aribia Prapti Ikasari 1 2 3 4 5


(73)

Fortuna II Prasetya Tiara Noval Supri Satria 7 10 11 12 14 15 Query 9

Query JCO3(25), KSCO(25), LASF(20), MC2(20)

Toko pilihan sales Urutan sistem

New Mut Noval Supri Aribia Marti Imam Lincem Dewi Sri Enny Dero Tiara 1 2 3 4 5 7 9 10 11 12 13 Query 10

Query MTA2(45), MTB2(50)

Toko pilihan sales Urutan sistem

Fortuna I KFE

1 2


(74)

Prima Sumber Rejeki Ikasari Supri 67 Pitu 3 5 6 7 8 9

4.2.3 Perhitungan Precision

a. Rekomendasi Pelanggan Tetap

Tabel 4.2 Perhitungan Precision Pelanggan Tetap TK 1 TK 2 TK 3 TK 4 TK 5 TK 6 TK 7 TK 8 TK 9 TK 10 TK 11 TK 12 TK 13 TK 14 TK 15 Query 1

R R R R R R R NR R R R NR NR NR NR

Query 2

R NR R NR R R NR R R R NR NR NR NR NR

Query 3

R R R NR R R NR R NR NR R R NR R NR

Query 4

R R R R R R NR R NR R R R R NR R

Query 5

R R R R NR R R NR R NR NR R NR R NR

Query 6

R R R R R R R R R NR NR NR NR R R

Query 7

R R R R R R R R R NR R R NR R NR

Query 8

R NR R NR NR NR R R NR R R NR R NR NR

Query 9

R R R R R R R R NR NR NR R NR NR NR

Query 10

R NR R R NR NR R NR R NR NR NR NR NR NR

Keterangan :


(75)

R : Relevan

Dari perhitungan Tabel 4.2, untuk query 1 dihasilkan sebagai berikut : Toko Dewi Sri, Toko Ikasari, Toko Pitu, Toko Casha, Toko Tres, Toko New Mut, Toko Sidik, Toko Tutik, Toko Sumber Rejeki dan Toko 67. Maka untuk query 1 hasil yang relevan adalah index 1,2,3,4,5,8, dan 9.

b. Rekomendasi Pelanggan Promosi

Tabel 4.3 Perhitungan Precision Pelanggan Promosi TK 1 TK 2 TK 3 TK 4 TK 5 TK 6 TK 7 TK 8 TK 9 TK 10 TK 11 TK 12 TK 13 TK 14 TK 15 Query 1

R R R R R NR NR R R NR NR NR NR NR NR

Query 2

R R R R R R NR R R R R NR R R NR

Query 3

R R R R R R R NR NR NR R NR R NR NR

Query 4

R R NR R R NR NR NR NR R NR NR NR NR NR

Query 5

R R R R R R NR NR R NR R NR R R NR

Query 6

R R R R R NR R NR NR R NR NR NR R NR

Query 7

R R R R R R R NR R NR R R NR R R

Query 8

R R R R R NR R NR NR R R R NR R R

Query 9

R R R R R NR R NR R R R R R NR NR

Query 10

R R R NR R R R R R NR NR NR NR NR NR

Keterangan :

TK : Toko NR : Not Relevan


(76)

Dari perhitungan Tabel 4.3, untuk query 1 dihasilkan sebagai berikut :

Toko Kaffa II, Toko Rifika, Toko Prasetya, Toko Dero, Toko Aribia, Toko 67 Toko Prima. Maka untuk query 1 hasil yang relevan adalah index 1,2,3,4,5,6,7,9,10, dan 11.

4.2.4 Perhitungan Average Precision

a. Rekomendasi Pelanggan Tetap

Tabel 4.4 Perhitungan Average Precision Pelanggan Tetap

Dari Tabel 4.4 dilihat bahwa tingkat relevansi rekomendasi toko yang diberikan sistem untuk sales sebagai berikut :

Query Relevan Not relevan Hasil sistem

Precision

1 10 5 15 0.67

2 7 8 15 0.47

3 9 6 15 0.60

4 12 3 15 0.80

5 9 6 15 0.60

6 11 4 15 0.73

7 12 3 15 0.80

8 7 8 15 0.47

9 9 6 15 0.60

10 5 10 15 0.33

Rata-rata 0.61


(77)

Dari 10 kueri rata-rata yang dihasilkan yaitu 61% maka sistem ini memiliki akurasi yang cukup baik. Nilai precision tertinggi dalam persen pada query 4 dan 7 yaitu 80% dan terendah pada query 10 yaitu 33%.

b. Rekomendasi Pelanggan Promosi

Tabel 4.5 Perhitungan Average Precision Pelanggan Promosi

Dari Tabel 4.5 dilihat bahwa tingkat relevansi rekomendasi toko yang diberikan sistem untuk sales sebagai berikut :

Dari 10 kueri rata-rata yang dihasilkan yaitu 62% maka sistem ini memiliki akurasi yang cukup baik. Nilai precision tertinggi dalam persen pada query 2 dan 7 yaitu 80% dan terendah pada query 4 yaitu 33%.

Query Relevan Not relevan Jumlah produk

Precision

1 7 8 15 0.47

2 12 3 15 0.80

3 9 6 15 0.60

4 5 10 15 0.33

5 10 5 15 0.67

6 8 7 15 0.53

7 12 3 15 0.80

8 11 4 15 0.73

9 11 4 15 0.73

10 8 7 15 0.53

Rata-rata 0.62


(78)

4.2.5 Kelebihan dan kekurangan sistem

Kelebihan sistem yang dibagun adalah :

1. Dapat memberikan informasi toko dengan jarak terdekat dengan sales saat itu.

2. Memberikan gambar letak lokasi toko yang ada dalam list atau daftar rekomendasi.

3. Berdasarkan hasil pengujian precision, rekomendasi pelanggan tetap memiliki akurasi cukup baik yaitu 61% dan promosi pelanggan memiliki akurasi yang cukup baik, yaitu 62%

Kekurangan sistem yang dibangun adalah :

1. Sistem tidak dapat memberikan rekomendasi berdasarkan data per hari,

minggu, bulan, atau tahun.

2. Proses perhitungan akan berjalan lama ketika menggunakan koneksi yang lambat.


(79)

63

BAB V

PENUTUP

5.1 Kesimpulan

Pembangunan sistem Rekomendasi Sales ini menggunakan content based filtering. Terdapat 50 toko dan 73 produk yang digunakan sebagai data dalam sistem Rekomendasi Sales ini. Kesimpulan yang didapat adalah :

1. Sales mendapatkan rekomendasi mengenai informasi toko-toko pelanggan tetap dan pelanggan promosi. Pelanggan tetap adalah toko yang memiliki kemiripan dekat dengan profil sales. Sedangkan pelanggan promosi adalah toko yang memiliki kemiripan jauh dengan profil sales.

2. Admin dapat mengelola data yang diperlukan pada web Rekomendasi Sales untuk menunjang sistem Rekomendasi Sales berbasi web maupun mobile. 3. Pengujian dengan menghitung precesion, dimana sales diminta memilih toko

yang sesuai menurutnya. Berdasarkan hasil pengujian precision,

rekomendasi pelanggan tetap memiliki akurasi cukup baik yaitu 61% dan promosi pelanggan memiliki akurasi yang cukup baik, yaitu 62%. Evaluasi sistem ini belum dapat dikatakan baik karena pengujian dilakukan menggunakan variable precesion dan tanpa dilakukan pengujian recall.


(80)

5.2Saran

Saran yang dapat penulis berikan dari penelitian ini adalah 1. Bagi user

Sistem Rekomendasi mobile melakukan perhitungan komputasi pada php di server. Apabila terdapat banyak data toko, produk, maupun transaksi yang akan dihitung maka aplikasi ini akan berjalan lambat. Agar hasil komputasi dapat berjalan dengan baik penulis menyarankan user menggunakan handphone yang memiliki RAM besar dan prosesor yang cepat dan koneksi yang baik.

2. Bagi peneliti selanjutnya

Sistem ini masih banyak kekurangan. Sebaiknya bagi peneliti selanjutnya dapat memperbaiki kualitas dan kinerja sistem, diantaranya :

a. Sistem dapat memberikan rekomendasi berdasarkan data per hari, minggu, bulan, atau tahun.


(81)

DAFTAR PUSTAKA

Billsus, D. Pazzani, M. J. “A Personal News Agent that Talks, Learns and Explains”, In Autonomous Agents 98, Minneapolis MN USA.

Burke, R. (2007). Hybrid web recommender systems. In The Adaptive Web, pages 377–408. Springer Berlin / Heidelberg.

Herlocker, J.L., Konstan, J.A., Terveen, L.G. & Riedl, J.T. Evaluating collaborative filtering recommender systems. ACM Transactions on Information Systems, 22(1), 5-53.

Hermawan, Stephanus. 2011. Mudah Membuat Aplikasi Android. Yogyakarta : Andi Offset.

Kushwaha, Amit., & Kushwaha, Vineet. (2011). Location Based Service using Android Mobile Operating System. Internasional Journal of Advances in Engineering & Technology 2011, India.

Lee, Dik Lun., Chuang, Huei., & Seamons, Kent E. (1997). Document Rangking and the Vector-Space Model. IEEE March-April 1997

Nugraha, AG Hari Jati., & Adi, Puspaningtyas Sanjaya. (2010). Penerapan Sistem Temu Kembali pada Sebuah Sistem Pendukung Pengambilan Keputusan


(82)

Lowongan Pekerjaan Berbahasa Indonesia. Prosiding Seminar Nasional Aplikasi Teknologi Informasi 2010, Yogyakarta.

Resnick, Paul dan Varian, Hal R. (1997). Recommender systems. Communications of the ACM, Vol. 40, No. 3, 56-58.


(83)

67

Lampiran 1

1.1Rekomendasi Web Server

1.1.1 Login

Nama Use Case Login

Aktor Admin

Deskripsi Use

Case

Use case ini menggambarkan proses Admin melakukan login sebelum masuk ke sistem, dengan memasukkan user dan password.

Kondisi awal Admin memiliki password.

Pemicu Use case ini digunanakan apabila Admin ingin masuk ke dalam

sistem.

Langkah Umum Kegiatan aktor Respon sistem

Langkah 1:

Admin memasukan user dan password.

Langkah 2:

Kemudian mengeklik tombol “Login”.

Langkah 3:

Sistem akan memanggil query Login.

Langkah 4:

Sistem akan memproses query Login.

Langkah 5:

Sistem mengecek validasi di database.

Langkah 6:

Sistem menampilkan Halaman Produk.


(84)

Langkah Alternatif

Langkah 2 :

Admin mengklik tombol “Cancel”, maka kolom nama dan kata sandi akan dikosongkan.

Kesimpulan Use case berhenti apabila Admin telah berhasil masuk kedalam

halaman produk atau user membatalkan masuk ke sistem.

1.1.2 Kelola Produk

Nama Use Case Kelola Produk

Aktor Admin

Deskripsi Use

Case

Use case ini menggambarkan proses Admin melakukan penambahan dan perubahan data dari produk/barang.

Kondisi Awal Admin telah berhasil masuk menu Admin

Pemicu Use case ini digunakan apabila ingin menambah atau merubah

data barang

Langkah Umum Kegiatan aktor Respon sistem

Langkah 1:

Admin memilih menu tab “Produk”.

Langkah 4:

Admin memasukkan data “kode produk”, “nama produk”, “satuan”,”harga per karton”, dan “harga per pak” yang akan ditambahkan lalu mengklik tombol simpan.

Langkah 2:

Sistem akan menggambil field data produk dari database.

Langkah 3:

Sistem akan menampilkan data produk.

Langkah 5:

Sistem akan memanggil query tambahProduk.

Langkah 6:


(1)

4.

Tambah-frekuensi-sales.php

Tujuan : menambah frekuensi atau bobot item transaksi.

Algoritma :

1.

Baca inputan frek_sales dan id_produk dari Sales.

2.

Melakukan pencocokan berdasar query $query1

Listing :

$query1= "UPDATE transaksi_sales SET frek_sales = '".$frek_sales."' WHERE id_produk = '".$idproduk."'";

mysql_query($query1) or die("Gagal Perintah SQL" . mysql_error());

5.

hapus-profilsales.php

Tujuan : menghapus profil sales.

Algoritma :

1.

Baca inputan id_trans_sales dari Sales.

2.

Melakukan pencocokan berdasar query $q.

Listing :

$q = mysql_query('DELETE FROM transaksi_sales WHERE id_trans_sales="'.$kt.'"');

6.

Tambah-frekuensitoko.php

Tujuan : menambah transaksi toko.

Algoritma :

1.

Baca inputan id_sales, id_toko, frek_toko dan id_sales.

2.

Melakukan pencocokan berdasar query $query1.

3.

Melakukan $query2, dimana frek_sales dikurangi frek_toko.

Listing :


(2)

$id = $_GET['id_sales'];

$query1= "INSERT INTO

transaksi_toko(tanggal,id_produk,id_toko,frek_toko,id_sales)

VALUES('".$_GET[tanggal]."','".$_GET[id_produk]."','".$_GET[id_toko]."','".$_ GET[frek_toko]."','".$id."')";

mysql_query($query1) or die("Gagal Perintah SQL" . mysql_error());

$query2= mysql_query('UPDATE transaksi_sales SET frek_sales = frek_sales - "'.$_GET[frek_toko].'"

WHERE id_sales="'.$id.'" AND id_produk="'.$_GET[id_produk].'"') or die("Gagal Perintah SQL" . mysql_error());

7.

list-rekomendasi-tetap.php

Tujuan : menghitung cosine similarity dan jarak.

Algoritma :

1.

Buat variable array temp dan datatoko.

2.

Lakukan perulangan untuk mengecek kondisi frek_toko, jika frek_toko

pada setiap produk tidak kosong maka akan ditampilkan.

3.

Lakukan perhitungan kuadrat bobot setiap toko, kemudian jumlahkan

seluruh bobot milik toko tersebut, dan akarkan hasil jumlah seluruh toko

tersebut.

4.

Lakukan perulangan untuk mengecek kondisi frek_sales, jika

frek_sales pada setiap produk tidak kosong maka akan ditampilkan.

5.

Lakukan perhitungan kuadrat bobot setiap sales, kalikan setiap bobot

pada kolom sales dan kolom toko, kemudian jumlahkan seluruh bobot

milik sales tersebut, dan akarkan hasil jumlah seluruh sales tersebut.

6.

Lakukan perhitungan cosine similarity, hasil jumlah perkalian bobot


(3)

7.

Perhitungan jarak, Lakukan perulangan untuk mengecek kondisi

latitude, jika latitude setiap toko tidak kosong maka lakukan

perhitungan dan tampilkan.

8.

Lakukan penyalinan data yang diurutkan secara descending yang diberi

limit 15 dari tabel toko ke tabel toko_distance.

Listing :

for ($i=0;$i<count($toko);$i++) { $temp = array();

$datatoko[$i] = array();

for ($j=0;$j<count($produk);$j++) { $temp=0;

$hasilkali = array(); $hasilkalitoko = array();

$query5 = mysql_query('SELECT AVG(frek_toko) AS Average_Toko FROM transaksi_toko_indeks WHERE id_toko ='.($i+1).' AND id_produk='.($j+1));

while($r=mysql_fetch_array($query5)) { $temp= $r[' Average_Toko ']; }

$datatoko[$i][$j]=$temp;

$powtoko[$i][$j]= $datatoko[$i][$j] * $datatoko[$i][$j]; hasilsumpowtoko = $hasilsumpowtoko + $powtoko[$i][$j]; $akartoko = sqrt($hasilsumpowtoko);

$temp1=0;

$query6 = mysql_query('SELECT frek_sales FROM transaksi_sales WHERE id_sales ='.$id.' AND id_produk='.($j+1));

while($res=mysql_fetch_array($query6)) { $temp1= $res['frek_sales']; }

$datasales[$j]=$temp1;

$powsales[$j]= $datasales[$j] * $datasales[$j]; $hasilkali[$i][$j] = $datatoko[$i][$j] * $datasales[$j]; $hasilsum = $hasilsum + $hasilkali[$i][$j];

$hasilsumpowsales = $hasilsumpowsales + $powsales[$j]; $akarsales = sqrt($hasilsumpowsales);

}

$cosim = $hasilsum /($akarsales*$akartoko); $result = substr($cosim,0,5);


(4)

//menghitung jarak

for ($j=0;$j<count($t_lat);$j++) {

$theta = $t_long[$j]-$s_long[0];

$distance = (sin(deg2rad($t_lat[$j])) * sin(deg2rad($s_lat[0]))) + (cos(deg2rad($t_lat[$j])) * cos(deg2rad($s_lat[0])) * cos(deg2rad($theta)));

$distance1 = acos($distance); $distance1 = rad2deg($distance1); $distance2 = $distance1*60*1.1515;

$jarak = $distance2*1.609344; $jarak1 = (round($jarak,2));

$id=$j+1;

$query = mysql_query('UPDATE toko SET distance= "'.$jarak1.'" where id_toko ="'.$id.'"') or die('Errorquery: '.$query);

}

$querydrop = "DROP table if exists toko_distance";

$querycreate = "CREATE TABLE toko_distance LIKE toko";

$querycos = "INSERT toko_distance SELECT * FROM toko WHERE COSIM>0 ORDER BY COSIM DESC LIMIT 15";

$querydis = "SELECT * FROM toko_distance ORDER BY DISTANCE";

$resultdrop = mysql_query($querydrop) or die('Errorquery: '.$querydrop); $resultcreate= mysql_query($querycreate) or die('Errorquery: '.$querycreate); $resultcos = mysql_query($querycos) or die('Errorquery: '.$querycos); $resultdis = mysql_query($querydis) or die('Errorquery: '.$querydis);

8.

list-rekomendasi-promosi.php

Tujuan : menghitung cosine similarity dan jarak.

Algoritma :

1.

Buat variable array temp dan datatoko.

2.

Lakukan perulangan untuk mengecek kondisi frek_toko, jika frek_toko

pada setiap produk tidak kosong maka akan ditampilkan.

3.

Lakukan perhitungan kuadrat bobot setiap toko, kemudian jumlahkan

seluruh bobot milik toko tersebut, dan akarkan hasil jumlah seluruh toko

tersebut.


(5)

4.

Lakukan perulangan untuk mengecek kondisi frek_sales, jika frek_sales

pada setiap produk tidak kosong maka akan ditampilkan.

5.

Lakukan perhitungan kuadrat bobot setiap sales, kalikan setiap bobot

pada kolom sales dan kolom toko, kemudian jumlahkan seluruh bobot

milik sales tersebut, dan akarkan hasil jumlah seluruh sales tersebut.

6.

Lakukan perhitungan cosine similarity, hasil jumlah perkalian bobot

toko dan sales dibagi perhitungan akar toko dan sales.

7.

Perhitungan jarak, Lakukan perulangan untuk mengecek kondisi

latitude, jika latitude setiap toko tidak kosong maka lakukan perhitungan

dan tampilkan.

8.

Lakukan penyalinan data yang diurutkan secara ascending yang diberi

limit 15 dari tabel toko ke tabel toko_distance.

Listing :

for ($i=0;$i<count($toko);$i++) { $temp = array();

$datatoko[$i] = array();

for ($j=0;$j<count($produk);$j++) { $temp=0;

$hasilkali = array(); $hasilkalitoko = array();

$query5 = mysql_query('SELECT AVG(frek_toko) AS Average_Toko FROM transaksi_toko_indeks WHERE id_toko ='.($i+1).' AND id_produk='.($j+1));

while($r=mysql_fetch_array($query5)) { $temp= $r[' Average_Toko ']; }

$datatoko[$i][$j]=$temp;

$powtoko[$i][$j]= $datatoko[$i][$j] * $datatoko[$i][$j]; hasilsumpowtoko = $hasilsumpowtoko + $powtoko[$i][$j]; $akartoko = sqrt($hasilsumpowtoko);

$temp1=0;

$query6 = mysql_query('SELECT frek_sales FROM transaksi_sales WHERE id_sales ='.$id.' AND id_produk='.($j+1));

while($res=mysql_fetch_array($query6)) { $temp1= $res['frek_sales']; }


(6)

$powsales[$j]= $datasales[$j] * $datasales[$j]; $hasilkali[$i][$j] = $datatoko[$i][$j] * $datasales[$j]; $hasilsum = $hasilsum + $hasilkali[$i][$j];

$hasilsumpowsales = $hasilsumpowsales + $powsales[$j]; $akarsales = sqrt($hasilsumpowsales);

}

$cosim = $hasilsum /($akarsales*$akartoko); $result = substr($cosim,0,5);

//menghitung jarak

for ($j=0;$j<count($t_lat);$j++) {

$theta = $t_long[$j]-$s_long[0];

$distance = (sin(deg2rad($t_lat[$j])) * sin(deg2rad($s_lat[0]))) + (cos(deg2rad($t_lat[$j])) * cos(deg2rad($s_lat[0])) * cos(deg2rad($theta)));

$distance1 = acos($distance); $distance1 = rad2deg($distance1); $distance2 = $distance1*60*1.1515;

$jarak = $distance2*1.609344; $jarak1 = (round($jarak,2));

$id=$j+1;

$query = mysql_query('UPDATE toko SET distance= "'.$jarak1.'" where id_toko ="'.$id.'"') or die('Errorquery: '.$query);

}

$querydrop = "DROP table if exists toko_distance";

$querycreate = "CREATE TABLE toko_distance LIKE toko";

$querycos = "INSERT toko_distance SELECT * FROM toko WHERE COSIM>0 ORDER BY COSIM ASC LIMIT 15";

$querydis = "SELECT * FROM toko_distance ORDER BY DISTANCE";

$resultdrop = mysql_query($querydrop) or die('Errorquery: '.$querydrop); $resultcreate= mysql_query($querycreate) or die('Errorquery: '.$querycreate); $resultcos = mysql_query($querycos) or die('Errorquery: '.$querycos); $resultdis = mysql_query($querydis) or die('Errorquery: '.$querydis);