Hasil dan Pembahasan T1 672012707 Full text

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