11
Gambar 5
Class Diagram
Sistem
Berdasarkan class diagram pada Gambar 5 dapat diketahui bahwa
class Smartphone
merupakan
class
yang berfungsi untuk menampung semua atribut yang dimiliki
smartphone
. Detail spesifikasi akan disimpan pada
class
ini.
Class Smartphone
akan digunakan oleh
class SmartphoneController
untuk mengelola data
smartphone
, sehingga terdapat operasi-operasi untuk mengelola data
smartphone
yaitu
add
,
update
,
delete
dan lain sebagainya. Untuk
class SmartphoneValue
berfungsi untuk menampung nilai bobot kriteria dari setiap
smartphone
. Nilai bobot ini nantinya akan digunakan dalam perhitungan
promethee
. Sedangkan
class User
berfungsi untuk menampung atribut
user
:
username
dan
password
.
Class
ini juga berfungsi untuk melakukan proses perhitungan
promethee
. Setiap tahap
promethee
diletakkan pada setiap fungsi yang nantinya dipanggil secara berurutan.
4. Hasil dan Pembahasan
Pada bagian akan dijelaskan hasil dan pembahasan yang meliputi implementasi dari rancangan yang dibuat telah dibuat, dan pengujian sistem.
Sistem Pendukung Keputusan untuk membantu pencarian
smartphone
menggunakan algoritma perangkingan
promethee
ini terbagi menjadi 2 bagian, admin dan
guest
tamu. Berikut ini penjelasannya : Halaman
Smartphone
merupakan halaman yang akan menampilkan daftar
smartphone
yang ada pada sistem. Daftar
smartphone
akan ditampilkan pada tabel. Admin dapat melakukan penambahan, pengubahan, dan penghapusan data
smartphone
. Berikut ini tampilan dari halaman
smartphone
.
12
Gambar 6 Halaman
Smartphone
Halaman kriteria merupakan halaman dimana admin dapat melakukan pengelolaan data bobot tiap
smartphone
. Dari spesifikasi
smartphone
ditentukan beberapa spesifikasi yang dapat dijadikan kriteria dalam perangkingan
promethee
. Daftar kriteria tersebut dapat dilihat pada Tabel 1.
Tabel 1 Tabel Daftar Kriteria [16][17][18][19] No
Nama Keterangan
Nilai Satuan
1 2
3
1 Dimensi
Dimensi atau
ukuran fisik dari
smartphone
meliputi panjang,
lebar dan
tinggiketebalan 3-4 x 1.8-
2.5 x 0.3- 0.5
4-5 x 2- 2.5 x 0.3-
0.7 5 x 3 x
0.3-0.8
inch
2 Berat
Berat dari
smartphone
115 115-170
170
grams
3 Ukuran
Layar Ukuran layar
inch
3.7 3.7-4.5
4.5
inch
4 Resolusi
Layar Resolusi
layar
pixels
720x1280 720x1280 720x1280
pixel
5
Pixel Density
Kerapatan
pixel ppi
dari
smartphone
. Semakin besar nilai
kerapatan
pixel
, gambar
yang ditampilkan
pada layar akan semakin
baik. 248
248-295 295
PPI
6 Kamera
Belakang Kamera
belakang
megapixels
3 3-8
8
megapixel
13
7 Prosesor
Processor
smartphone
. Terdapat
keterangan jenis
prosesor, dan
vendor
0.192- 1.030
1.031- 1.451
1.452-2.5
GHz
8 GPU
Graphic Processing Unit.
Penggelolan grafis
smartphone
.
unspecified Class
6
Class
5
class
9
Memory RAM
smartphone
512 512-768
768
MB
10 Kapasitas
Penyimpanan Kapasitas
penyimpanan internal
sma rtphone GB
4 4-8
8
Gb
11 Kapasitas
Baterai Kapasitas
baterai
mAh
860-1666 1667-
2475 2476-5300
mAh
12 Jaringan Data Teknologi jaringan
data yang didukung LTE, 4G, HSDPA,
dll. GSM
CDMA 2G
HSDPA 3G
HSDPA+ 4G, LTE
Setiap kriteria akan diberikan bobot atau nilai. Pemberian bobot atau nilai ini dilakukan oleh admin ketika penambahan data
smartphone
baru. Pemberian bobot harga[20] ,dimensi, berat, ukuran layar, resolusi layar, pixel density, kamera
belakang, prosesor, memory, kapasitas penyimpanan. Jaringan data [17], kapasitas baterai[18], GPU[19]. Kelima website yang tersebut merupakan website
yang paling sering digunakan untuk mengetahui
review
, detail spesifikasi maupun
benchmark smartphone
, hal ini didasarkan pada hasil reference
search engine
ketika mencari hal yang berkaitan dengan
review smartphone
. Nilai yang diberikan berupa angka dengan range 1-3. Dengan pembagian nilai sebagai
berikut : 1 untuk ukuran atau spesifikasi terendah, 2 untuk ukuran atau spesifikasi tengah, dan 3 untuk ukuran atau spesifikasi tinggi. Hal ini didasarkan pada
beberapa referensi sumber yang membagi level atau tingkatan spesifikasi
smartphone
menjadi 3 level, yaitu
level low, level middle
dan
level high
. Jika alternatif tidak memiliki kriteria maka nilainya 0. Halaman pemberian bobot nilai
pada spesifikasi
smartphone
dapat dilihat pada Gambar 7.
Gambar 7 Halaman Bobot
Smartphone
Halaman Pencarian pada modul tamu berupakan halaman utamaberanda. Pada halaman ini tamu atau pengguna dapat memasukkan
range
harga
smartphone
yang ingin dicari. Terdapat pilihan harga batas bawah dan harga batas atas.
14
Gambar 8 Halaman Pencarian
Smartphone
Bagian Tamu
Halaman Hasil Pencarian merupakan halaman yang menampilkan hasil pencarian dan perangkingan
sma rtphone
. Semua daftar
smartphone
yang berada pada
range
harga yang diinginkan oleh pengguna akan dirangking menggunakan algoritma
promethee
. Berdasarkan perangkingan tersebut maka akan ditampilkan urutan
smartphone
yang direkomendasikan dari yang paling direkomendasikan ke paling rendah. Perangkingan ini didapatkan dari nilai
netflow
tiap
smartphone
. Semakin
tinggi nilai
netflow
maka
smartphone
tersebut semakin
direkomendasikan.
Gambar 9 Halaman Hasil Pencarian
Smartphone
Penerapan Algoritma
Promethee
Penerapan algoritma
promethee
pada sistem pendukung keputusan untuk rekomendasi
smartphone
diawali dengan proses penentuan kriteria dan bobot nilai. Kriteria pada suatu altermatif akan diberi nilai bobot. Sebagai contoh
smartphone
A1, A2, A3, A4, A5, dan A6 memiliki bobot nilai untuk tiap kriterianya F1 sampai F12 sebagai berikut :
Tabel 2 Bobot Kriteria Alternatif
Smartphone
No Nama
Fn A1
A2 A3
A4 A5
A6
1 Dimensi
F1
2 3
2 3
2 1
2 Berat
F2
1 1
2 2
3 1
3 Ukuran Layar
F3
2 3
3 2
3 2
4 Resolusi Layar
F4
2 2
3 2
2 2
5
Pixel Density
F5
1 1
3 1
2 1
6 Kamera Belakang
F6
2 2
2 1
1 1
7 Prosesor
F7
3 2
2 2
2 2
8 GPU
F8
2 2
1 2
1 2
9
Memory
F9
2 2
1 2
1 2
10 Kapasitas Penyimpanan
F10
3 2
1 2
2 3
11 Kapasitas Baterai
F11
3 1
2 2
2 3
12 Jaringan Data
F12
2 2
1 2
2 3
Bobot kriteria tiap alternatif disimpan dalam database. Sistem akan mencari bobot tiap alternatif dan menyimpannya ke dalam
variable
. Proses pencarian ini ditentukan berdasarkan harga yang diminta oleh pengguna. Berikut ini adalah
penggalan perintah untuk melakukan pencarian data bobot kriteria tiap alternatif.
15
Kode Program 1 Perintah untuk Menampilkan Nilai Bobot Kriteria Alternatif
Hasil dari perintah pada Kode Program 1 akan disimpan kedalam
variable array
yang akan digunakan untuk melakukan perhitungan berikutnya. Proses berikutnya adalah melakukan perhitungan nilai subkriteria
subcriteria value
. Nilai subkriteria didapatkan dengan cara mencari selisih nilai bobot kriteria antar
alternatif jika didapatkan nilai positif 0 maka nilai subkriteria alternative tersebut sama dengan 1, sebaliknya akan bernilai 0 jika nilai selisih lebih kecil
sama dengan 0 =0. Sebagai contoh perhitungan nilai subkriteria F1 dari A1 banding A2 :
Hasil manual A1A2 = F1A1
– F1A2 = 2-3 = -1 maka nilai subkriteria
A1A2 = 0 Penerapan kode program untuk melakukan perhitungan subkriteria dapat dilihat
pada Kode Program 2.
Kode Program 2 Perintah untuk Melakukan Perhitungan Nilai Subkriteria
Nilai dari subkriteria tiap perbandingan alternatif akan dicari nilai rata-ratanya. Nilai inilah yang disebut dengan nilai
promethee
1. Misalkan nilai perbandingan
1. function getDataValuenLow, nHigh { 2. result = this-db-selects.code, s.name, v.dimension,
v.weight, v.display_size, v.display_resolution, v.display_pixel_density, v.camera_back,
v.hardware_processor, v.hardware_gpu, v.hardware_memory, v.hardware_storage, v.battery_capacity, v.tech_data-
3. fromtb_smartphones as s- 4. jointb_values as v, s.code = v.code-
5. wheres.price BETWEEN .nLow. AND .nHigh, NULL, FALSE-
6. get-result; 7. return result;
8. }
1. function getSubcriteriavSmartphone, nAlternatif { 2. for nCriteria = 2; nCriteria = 13; nCriteria++ {
3. for x = 0; x nAlternatif; x++ { 4. for y = 0; y nAlternatif; y++ {
5. if x == y { 6. vSubCriteria[nCriteria - 2][x][y] = 0;
7. } else if vSmartphone[x][nCriteria] -
vSmartphone[y][nCriteria] 0 { 8. vSubCriteria[nCriteria - 2][x][y] = 1;
9. } else if vSmartphone[x][nCriteria] - vSmartphone[y][nCriteria] = 0 {
10. vSubCriteria[nCriteria - 2][x][y] = 0;}}}} 11. return vSubCriteria;
12. }
16 untuk alternatif 1 dibanding dengan alternatif 2 untuk semua kriteria adalah
sebagai berikut A1A2 : Hasil Rata-rata manual A1A2 = 0+0+0+0+0+0+1+0+0+1+1+0 12 = 3 12 =
0.25 Berdasarkan nilai perhitungan subkriteria tersebut akan didapatkan nilai
promethee
1 untuk tiap perbandingan kriterianya. Berikut ini adalah nilai
promethee
1 berdasarkan sample data.
Tabel 3 Nilai
Promethee
1 tiap Alternatif
A1 A2
A3 A4
A5 A6
A1 -
0.25 0.5
0.3333 0.5
0.25
A2 0.1667
- 0.4167
0.1667 0.3333
0.25
A3
0.3333 0.3333
- 0.3333
0.25 0.5
A4 0.1667
0.1667 0.4167
- 0.25
0.1667
A5
0.25 0.25
0.25 0.25
- 0.3333
A6 0.0833
0.25 0.4167
0.25 0.4167
-
Penerapan kode program untuk menghitung nilai
promethee
1 dapat dilihat pada Kode Program 2. Setiap nilai perbandingan pada proses sebelumnya akan dihitung
rata-ratanya.
Kode Program 3 Perintah untuk Melakukan Perhitungan Nilai
Promethee 1
1. function getPromethee1vSubcriteria, nAlternatif { 2. vTemp = 0;
3. for x = 0; x nAlternatif; x++ { 4. for y = 0; y nAlternatif; y++ {
5. for nCriteria = 0; nCriteria 12; nCriteria++ { 6. if x == y {
7. break; 8. } else {
9. vTemp += vSubcriteria[nCriteria][x][y];}} 10. if x == y {
11. vPromethee1[x][y] = 0; 12. } else {
13. vPromethee1[x][y] = vTemp 12; 14. vTemp = 0;}}}
15. return vPromethee1; 16. }
17 Hasil dari perhitungan nilai
promethee
1 dapat digunakan untuk melakukan perhitungan nilai
leaving flow
dan
entering flow
. Perhitungan nilai
leaving flow
didapatkan dengan cara menghitung nilai rata-rata nilai
promethee 1
secara mendatar
horizontal
. Sebagai contoh nilai
leaving flow
dari A1 adalah : Hasil Nilai
Leaving Flow
manual A1 = 0+0.25+0.5+0.3333+0.5+0.25 6 =
0.3667 Hasil dari perhitungan nilai
leaving flow
tiap alternatif dapat dilihat pada Tabel 4.
Tabel 4 Nilai
Leaving Flow
tiap Alternatif
Alternatif Nilai
Leaving Flow
A1
0.366667
A2 0.266667
A3
0.35
A4 0.233333
A5
0.266667
A6 0.283333
Kode program untuk melakukan perhitungan nilai
leaving flow
dapat dilihat pada Kode Program 4. Setiap nilai
promethee
pada
variable array
sebelumnya akan ditambah dan dibagi sejumlah alternatif.
Kode Program 4 Perintah untuk Melakukan Perhitungan Nilai
Leaving Flow
Perhitungan nilai
entering flow
dilakukan dengan cara menghitung nilai rata-rata nilai
promethee 1
secara menurun
vertical
. Sebagai contoh nilai
entering flow
dari A1 adalah : Hasil Nilai
Entering Flow
manual A1 = 0+0.1667+0.3333+0.1667+0.25+0.0833
6 = 0.2 Hasil dari perhitungan nilai
entering flow
tiap alternatif dapat dilihat pada Tabel 5.
Tabel 5 Nilai
Entering Flow
tiap Alternatif
Alternatif Nilai
Entering Flow
A1
0.2
A2 0.25
A3
0.4
A4 0.267
A5
0.35
A6 0.3
1. function getLeavingFlowvPromethee1, nAlternatif { 2. for x = 0; x nAlternatif; x++ {
3. vTemp = 0; 4. for y = 0; y nAlternatif; y++ {
5. vTemp += vPromethee1[x][y];} 6. vLeavingFlow[x] = vTemp nAlternatif - 1;}
7. return vLeavingFlow;}
18 Kode program untuk melakukan perhitungan nilai
entering flow
dapat dilihat pada Kode Program 5. Setiap nilai
promethee
pada
variable array
sebelumnya akan ditambah dan dibagi sejumlah alternatif.
Kode Program 5 Perintah untuk Melakukan Perhitungan Nilai
Entering Flow
Setelah nilai
leaving flow
dan nilai
entering flow
untuk tiap alternatif didapatkan maka akan dihitung nilai dari
net flow
. Nilai
net flow
merupakan nilai selisih antara nilai
leaving flow
dan nilai
entering flow
. Nilai
net flow
inilah yang akan menentukan urutan prioritas alternatif. Semakin besar nilai
net flow
maka alternatif tersebut berada pada rangking yang lebih atas.
Hasil Nilai
Net Flow
manual Hasil dari A1= 0.3667-0,2= 0.1667. Hasil
perhitungan nilai
net flow
berdasarkan contoh data adalah :
Tabel 6 Nilai
Net Flow
tiap Alternatif
Alternatif Nilai
Net Flow
Rangking A1
0.1667 1
A2 0.0167
2
A3
-0.05 5
A4 -0.0333
4
A5 -0.0833
6
A6 -0.0167
3
Penerapan kode program untuk perhitungan nilai
net flow
dapat dilihat pada Kode Program 6.
Kode Program 6 Perintah untuk Melakukan Perhitungan Nilai
Net Flow
Pengujian
Pengujian sistem dilakukan untuk mengetahui apakah sistem sudah berjalan dengan baik atau tidak. Jika terdapat kesalahan fungsi maupun proses
maka sistem akan diperbaiki untuk mendapatkan hasil yang lebih baik. Pengujian sistem yang dilakukan adalah pengujian
black-box
dan
white-box
.
1. function getEnteringFlowvPromethee1, nAlternatif { 2. for y = 0; y nAlternatif; y++ {
3. vTemp = 0; 4. for x = 0; x nAlternatif; x++ {
5. vTemp += vPromethee1[x][y];} 6. vEnteringFlow[y] = vTemp nAlternatif - 1;}
7. return vEnteringFlow;}
1. function getNetFlowvLeavingFlow, vEnteringFlow, nAlternatif {
2. for index = 0; index nAlternatif; index++ { 3. vNetFlow[index] = vLeavingFlow[index] -
vEnteringFlow[index];} 4. return vNetFlow;}
19 Pengujian
Black-Box
adalah pengujian yang mengabaikan mekanisme internal sistem atau komponen dan fokus semata-mata pada
output
dihasilkan dalam proses eksekusi[15]. Dalam pengujian
black-box
dilakukan oleh pengguna atau pihak yang tidak terlibat pada proses teknis atau pengkodean pembuatan
sistem. Pengujian ini akan mengecek apakah
output
yang dihasilkan sudah sesuai dengan kebutuhan pengguna. Pengujian ini dilakukan dengan kuesioner
kepada 30 mahasiswa UKSW Salatiga,
dengan 4 pertanyaan sebagai berikut: 1. Setelah batas harga atas dan batas harga bawah sistem dimasukkan
apakah sistem dapat melakukan perhitungan
promethee?
a. Ya b. Tidak untuk menguji hasil dari perhitungan
promethee
yg muncul dan menampilkan rangking
smartphone
2. Apakah dalam mode admin sdh dapat dilakukan penambahan smartphone?
a. Ya b. Tidak untuk menguji data detail spesifikasi
smartphone
baru yg disimpan ke dalam
database
3.Apakah dalam mode admin sdh dapat menambahkan nilai bobot? a. Ya b. Tidak
untuk menguji nilai bobot kriteria yang dimasukkan dapat disimpan ke
database
4. Apakah keluar notifikasi bila dalam range harga tertentu tidak terdapat data smartphone?
a. Ya b. Tidak Untuk menguji peringatan atau pemberitahuan kepada
user
jika terdapat proses yang tidak berjalan dengan baik
Hasil dari kuesioner tersebut : Pertanyaan Jawaban Responden Persentase
1
Ya 30
100 Tidak
2 Ya
30 100
Tidak 3
Ya 30
100 Tidak
4 Ya
30 100
Tidak Berdasarkan hasil kuesioner tersebut, maka hasil dari pengujian ini dapat dilihat
pada Tabel 7.
20
Tabel 7 Tabel Hasil Pengujian
Black-Box
Pengujian Hasil yang diinginkan
Keterangan kuesioner
Setelah batas atas dan batas bawah sistem dimasukkan maka
dapat dilakukan
perhitungan
promethee
Hasil dari
perhitungan
promethee
akan muncul dan menampilkan
rangking
smartphone
Sistem sudah
dapat menghasilkan
rangking
smartphone
yang sesuai
dengan perhitungan
promethee
dgn hasil 100 dari data yg didapat
Penambahan data
sma rtphone
baru dilakukan oleh admin Data detail spesifikasi
smartphone
baru akan disimpan ke dalam
databa se
Sistem dapat menyimpan data
smartphone
baru ke dalam
database
dgn hasil 100 dari data yg didapat
Penambahan nilai bobot kriteria
smartphone
baru Nilai bobot kriteria yang
dimasukkan dapat disimpan ke
database
Sistem dapat menyimpan data nilai bobot kriteria
smartphone
barudgn hasil 100 dari data yg didapat
Notifikasi
error
yang muncul jika proses tidak berjalan dengan
baik Muncul peringatan atau
pemberitahuan kepada
user
jika terdapat proses yang tidak berjalan dengan baik
Muncul notifikasi jika data yang dicari tidak ada jika
berada pada
range
harga tertentu dgn hasil 100 dari
data yg didapat
.
Pengujian
white-box
adalah pengujian yang menguji mekanisme internal sistem atau komponen[21]. Pengujian ini dilakukan oleh
software developer
untuk mengetahui apakah setiap proses dan logika bekerja dengan benar. Menurut
Pressman beberapa pengujian yang dapat dilakukan pada
white-box testing
adalah pengujian integrasi antar fungsi
method
dan modul, pengujian logika kondisiif, pengujian perulangan
looping
, pengujian struktur data[15]. Pengujian integrasi pada sistem pendukung keputusan ini dilakukan
dengan cara menguji apakah setiap fungsi sudah dijalankan dengan benar. Sebagai contoh setiap proses
promethee
yang terdapat pada sistem diletakkan pada fungsi yang berbeda-beda. Terdapat 6 fungsi yang dipanggil secara urut untuk tiap
prosesnya, yaitu : fungsi
getDataValue
,
getSubcriteria
,
getPromethee1
,
getLeavingFlow
,
getEnteringFlow
,
getNetFlow
. Berikut ini adalah tabel hasil pengujian integrasi fungsi algoritma
promethee
.
Tabel 8 Tabel Hasil Pengujian
White-Box
pada Integrasi Fungsi
Promethee
Fungsi Pengujian
Input Output
Keterangan getDataValue
Parameter batas harga
dimasukkan sebagai
input
ke fungsi.
Apakah fungsi
akan menghasilkan
daftar nilai bobot Nilai batas atas
harga dan nilai batas bawah
harga Daftar nilai
bobot dari
smartphone
yang berada pada
range
harga Fungsi sudah
dapat menghasilka
n daftar nilai bobot
Valid
21
yang diinginkan atau tidak.
getSubcriteria Hasil dari fungsi
sebelumnya akan dimasukkan
sebagai
input
untuk menghitung nilai
subkriteria dari
data tersebut Nilai bobot
kriteria tiap alternatif
Nilai subkriteria
dari kriteria- kriteria yang
ada tiap alternatif
Fungsi sudah dapat
menghitung nilai
subkriteria Valid
getPromethee1 Nilai subkriteria
pada fungsi
sebelumnya dimasukkan
sebagai
input
untuk mengetahui nilai
promethee 1
Nilai subkriteria
Nilai
promethee 1
Fungsi sudah dapat
menghitung nilai
promethee 1
Valid
getLeavingFlow Nilai
promethee 1
akan digunakan untuk
menghitung nilai
leaving flow
Nilai
promethee 1
Nilai
Leaving flow
Fungsi sudah dapat
menghitung nilai
lea ving flow
Valid
getEnteringFlow Nilai
promethee 1
akan digunakan untuk
menghitung nilai
entering flow
Nilai
promethee 1
Nilai
entering flow
Fungsi sudah dapat
menghitung nilai
entering flow
Valid
getNetFlow Nilai
promethee 1
akan digunakan untuk
menghitung nilai
net flow
Nilai
leaving flow
dan
entering flow
Nilai
netflow
Fungsi dapat menghitung
nilai
net flow
Valid
Pengujian logika kondisi dan perulangan yang dilakukan pada sistem digunakan untuk mengetahui apakah pemilihan kondisi dan perulangan kode berjalan dengan
benar. Contoh dalam pengujian ini dapat dilihat pada penggalan perintah berikut ini.
Kode Program 7 Penggalan Perintah Fungsi
getPromethee1
1. for nCriteria = 0; nCriteria 12; nCriteria++ { 2. if x == y {
3. break; 4. } else {
5. vTemp += vSubcriteria[nCriteria][x][y];}} 6. if x == y {
7. vPromethee1[x][y] = 0; 8. } else {
9. vPromethee1[x][y] = vTemp 12; 10. vTemp = 0;}}
22 Penggalan perintah pada fungsi
getPromethee1
akan melakukan perulangan sebanyak 12 kali. Jumlah perulangan ditentukan dari jumlah kriteria yang
ditentukan sebelumnya. Perulangan ini dilakukan untuk menjumlahkan setiap nilai subkriteria alternatif dan mencari nilai rata-rata nilai
promethee 1
. Terdapat pula logika kondisi yang akan menghasilkan
true,
jika nilai x yang merupakan nilai baris matriks subkriteria dan nilai y yang merupakan nilai kolom matriks
subkriteria bernilai sama. Hasil dari kondisi
if
ini akan digunakan untuk tidak melakukan perhitungan nilai rata-rata terhadap perbandingan nilai subkriteria
alternatif yang sama.
5. Simpulan