sistem penentuan kandidat peserta lomba bagi …
TRANSCRIPT
SISTEM PENENTUAN KANDIDAT PESERTA LOMBA BAGI
MAHASISWA DENGAN ANALISIS PERBANDINGAN ALGORITMA
WEIGHTED PRODUCT (WP) DAN TECHNIQUE FOR ORDER BY
SIMILARITY TO IDEAL SOLUTION (TOPSIS)
SKRIPSI
M ARIF KURNIAWAN
161401109
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2021
SISTEM PENENTUAN KANDIDAT PESERTA LOMBA BAGI
MAHASISWA DENGAN ANALISIS PERBANDINGAN ALGORITMA
WEIGHTED PRODUCT (WP) DAN TECHNIQUE FOR ORDER BY
SIMILARITY TO IDEAL SOLUTION (TOPSIS)
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah
Sarjana Ilmu Komputer
M ARIF KURNIAWAN
161401109
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2021
ii
PERSETUJUAN
Judul : SISTEM PENENTUAN KANDIDAT PESERTA
LOMBA BAGI MAHASISWA DENGAN ANALISIS
PERBANDINGAN ALGORITMA WEIGHTED
PRODUCT (WP) DAN TECHNIQUE FOR ORDER
BY SIMILARITY TO IDEAL SOLUTION (TOPSIS)
Kategori : SKRIPSI
Nama : M ARIF KURNIAWAN
Nomor Induk Mahasiswa : 161401109
Program Studi : SARJANA (S-1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas
Komisi Pembimbing:
: FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI UNIVERISTAS SUMATERA UTARA
Diluluskan di
Medan, 29 Juli 2021
Pembim bing II
Elviwani, ST., S.Kom., M.Kom.
NIP. 197508182017062001
Pembim bing I
Handrizal, S.Si, M.Comp.Sc
NIP. 197706132017061001
Diketahui/disetujui oleh
Program Studi S1 Ilmu Komputer
Ketua,
Dr. Poltak Sihombing, M.Kom.
NIP. 196203171991031001
iii
PERNYATAAN
SISTEM PENENTUAN KANDIDAT PESERTA LOMBA BAGI MAHASISWA
DENGAN ANALISIS PERBANDINGAN ALGORITMA WEIGHTED
PRODUCT (WP) DAN TECHNIQUE FOR ORDER BY SIMILARITY TO
IDEAL SOLUTION (TOPSIS)
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 29 Juli 2021
M Arif Kurniawan
161401109
iv
PENGHARGAAN
Segala puji dan syukur penulis ucapkan kepada Allah SWT atas rahmat dan karunianya
penulis mampu menyelesaikan penulisan skripsi ini sebagai salah satu syarat untuk
memperoleh gelas Sarjana Komputer di Program Studi S1 Ilmu Komputer, Fakultas
Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara. Shalawat serta
salam kepada Nabi Muhammad Shallallahu ‘Alaihi wa Sallam beserta keluarga dan
para sahabatnya.
Terima kasih sebesar-besarnya penulis sampaikan kepada:
1. Bapak Dr. Muryanto Amin, S.Sos., M.Si selaku Rektor Universitas Sumatera
Utara.
2. Ibu Dr. Maya Silvi Lydia, B.Sc., M.Sc, selaku Dekan Fakultas Ilmu Komputer
dan Teknologi Informasi, Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu
Komputer Universitas Sumatera Utara.
4. Bapak Handrizal S.Si, M.Comp.Sc, selaku Dosen Pembimbing I yang
memberikan banyak bimbingan, saran, dan arahan pada skripsi ini.
5. Ibu Elviwani, ST, S.Kom, M.Kom selaku Dosen Pembimbing II yang telah
berbaik hati memberi saran dan kritik untuk perbaikan skripsi ini.
6. Ibu Dr. Maya Silvi Lydia, B.Sc., M.Sc selaku Dosen Pembimbing Akademik
yang telah membimbing dan memberi dukungan selama menempuh pendidikan.
7. Bapak Dr. Eng Ade Candra, ST., M.Kom, selaku Dosen Penguji I yang telah
berbaik hati memberikan banyak saran dan kritik untuk perbaikan skripsi ini.
8. Bapak Herriyance, ST., M.Kom, selaku Dosen Penguji II yang telah berbaik hati
memberikan banyak saran dan kritik untuk perbaikan skripsi ini.
9. Bapak Edi Sucipto selaku Direktur PT. Cipta Harapan Samudera yang telah
berbaik hati memberikan izin untuk penelitian diperusahaannya.
10. Keluarga saya. Terima kasih kepada keluarga yang selalu memberikan
dukungan sehingga penulis dapat menyelesaikan skripsi ini.
v
11. Seluruh tenaga pengajar dan pegawai Program Studi S1 Ilmu Komputer
Fasilkom-TI USU.
12. Teman teman remaja masjid Al-Fajar Delitua yang telah memberikan nasihat,
dukungan dan do’a atas kelancaran penyusunan skripsi ini.
13. Dan semua pihak yang telah banyak membantu yang tidak bisa disebutkan
satupersatu.
Semoga Allah SWT memberikan kelimpahan berkat dan kasih karunia kepada semua
pihak yang telah memberikan doa, semangat, dukungan, dan bantuan kepada penulis
dalam menyelesaikan penulisan skripsi ini. Semoga skripsi ini dapat memberikan
manfaat kepada penulis, peneliti, pendidik maupun negara.
Medan, 29 Juli 2021
Penulis
M Arif Kurniawan
vi
ABSTRAK
Perlombaan merupakan salah satu indikator yang menjadikan suatu universitas berada
pada pencapaian terbaiknya. Semakin banyak mahasiswa yang mengikuti perlombaan
atau ajang kompetisi tentu akan berdampak positif bagi universitas itu sendiri. Proses
seleksi akan menjadi hal yang perlu dilakukan menimbang banyak kriteria yang harus
dipenuhi oleh mahasiswa tersebut sebelum dinyatakan siap untuk bersaing baik secara
teori maupun praktik sehingga diperlukan suatu sistem pendukung keputusan yang
dapat merekomendasikan kandidat mahasiswa. Pada penelitian ini akan dibahas proses
penentuan kandidat peserta lomba dengan menganalisis dua metode yaitu metode
Weighted Product (WP) dan metode Technique for Order by Similarity to Ideal Solution
(TOPSIS) di mana pada kedua metode tersebut akan dianalisa berapa persen tingkat
akurasi antara perhitungan sistem dengan perhitungan manual. Lalu menganalisa
seberapa jauh jarak perbedaan antara kedua metode dengan menggunakan Euclidean
Distance serta pembobotan kriteria menggunakan Skala Likert. Selanjutnya juga akan
menganalisis kompleksitas algoritma antara kedua metode tersebut. Hasil analisis
perbandingan menunjukkan bahwa metode WP menjadi metode yang unggul dengan
nilai 0.14281 dikarenakan memiliki jarak nilai yang mendekati nol dibandingkan
metode TOPSIS dengan nilai 0.51238 walaupun keduanya menghasilkan tingkat
akurasi yang sama mencapai 100%, namun metode WP tetap lebih optimal dari segi
kecepatan eksekusi program (Running Time) melalui script Microtime Function pada
file PHP dengan waktu rata-rata 0.0781 detik sedangkan metode TOPSIS membutuhkan
waktu rata-rata 0.2234 detik. Hasil analisis kompleksitas algoritma juga mendapat hasil
bahwa metode WP memperoleh kompleksitas T(n) = 𝜃(n2) sedangkan metode TOPSIS
memperoleh kompleksitas T(n) = 𝜃(n).
Kata kunci : Sistem Pendukung Keputusan, Kandidat Peserta, Skala Likert, Weighted
Product, Technique for Order by Similarity to Ideal Solution. Euclidean
Distance.
vii
COMPETITIVE CANDIDATE DETERMINATION SYSTEM FOR STUDENTS
WITH COMPARATIVE ANALYSIS OF WEIGHTED PRODUCT (WP)
ALGORITHM AND TECHNIQUE FOR ORDER BY SIMILARITY TO IDEAL
SOLUTION (TOPSIS)
ABSTRACT
The competition is one indicator that makes a university at its best. More students who
take part in competitions will certainly have a positive impact on the university itself.
The selection process will be something that needs to be done considering the many
criteria that must be met by the student before being declared ready to compete both in
theory and practice so that a decision support system is needed that can recommend
student candidates. In this study, the process of determining the candidates for the
competition will be discussed by analyzing two methods, namely the Weighted Product
(WP) method and the Technique for Order by Similarity to Ideal Solution (TOPSIS)
method in which both methods will analyze the percentage of accuracy between system
calculations and manual calculations. Then analyze how far the difference between the
two methods by using Euclidean Distance and weighting criteria using a Likert Scale.
Furthermore, it will also analyze the complexity of the algorithm between the two
methods. The results of the comparative analysis show that the WP method is the
superior method with a value of 0.14281 because it has a distance value that is close to
zero compared to the TOPSIS method with a value of 0.51238 although both produce
the same level of accuracy reaching 100%, but the WP method is still more optimal in
terms of program execution speed ( Running Time) through the Microtime Function
script on PHP files with an average time of 0.0781 seconds while the TOPSIS method
takes an average of 0.2234 seconds. The results of the algorithm complexity analysis
also show that the WP method obtains a complexity of T(n) = 𝜃(n2) while the TOPSIS
method obtains a complexity of T(n) = 𝜃(n).
Keywords: Decision Support System, Candidate Participants, Likert Scale, Weighted
Product, Technique for Order by Similarity to Ideal Solution, Euclidean
Distance
viii
DAFTAR ISI
PERSETUJUAN ii
PERNYATAAN iii
PENGHARGAAN iv
ABSTRAK vi
ABSTRACT vii
DAFTAR ISI viii
DAFTAR TABEL xi
DAFTAR GAMBAR xiii
DAFTAR LAMPIRAN xiv
BAB 1 PENDAHULUAN 1
1.1 Latar Belakang Masalah 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 4
1.7 Sistematika Penulisan 5
BAB 2 LANDASAN TEORI 6
2.1 Sistem Pendukung Keputusan 6
2.1.1 Tahapan Pengambilan Keputusan 6
2.1.2 Arsitektur Umum Sistem Pendukung Keputusan 7
2.2 Weighted Product (WP) 8
2.3 Technique for Order by Similarity to Ideal Solution (TOPSIS) 10
2.4 Likert Scale 11
2.5 Euclidean Distance 11
2.6 Microtime Function 11
ix
2.7 Kompleksitas Algoritma 11
2.8 Penelitian yang Relevan 12
BAB 3 ANALISIS DAN PERANCANGAN 13
3.1 Analisis Sistem 13
3.1.1 Analisis Masalah 19
3.1.2 Analisis Kebutuhan (Requirements Analysis) 20
3.1.2.1 Kebutuhan Fungsional 20
3.1.2.2 Kebutuhan Non-fungsional 20
3.1.3 Analisis Proses 21
3.2 Pemodelan Sistem 24
3.2.1 Arsitektur Umum Sistem 24
3.2.2 Use Case Diagram Sistem 25
3.2.3 Activity Diagram 38
3.2.4 Sequence Diagram 38
3.3 Flowchart 39
3.3.1 Flowchart User Sistem Penentuan Kandidat Peserta 39
3.3.2 Flowchart WP 41
3.3.3 Flowchart TOPSIS 42
3.3.4 Flowchart Admin Sistem Penentuan Kandidat Peserta 43
3.4 Perancangan Antarmuka (Interface) Sistem 44
3.4.1 Halaman Home 44
3.4.2 Halaman Menu Profil 45
3.4.3 Halaman Menu Perlombaan 45
3.4.4 Halaman Menu Perlombaan Bagian Upload Berkas 46
3.4.5 Halaman Menu Pengumuman 47
3.4.6 Halaman Menu Login Admin 48
3.4.7 Halaman Menu Perlombaan (Admin) 49
3.4.8 Halaman Menu File Info 50
3.4.9 Halaman Menu Perhitungan dan Hasil WP 51
3.4.10 Halaman Menu Hasil Topsis 53
x
3.5 Rancangan Database 55
BAB 4 IMPLEMENTASI DAN PENGUJIAN 61
4.1 Implementasi Sistem 61
4.1.1 Halaman Home 61
4.1.2 Halaman Menu Profil 61
4.1.3 Halaman Menu Perlombaan 62
4.1.4 Halaman Menu Pengumuman 63
4.1.5 Halaman Menu Login Admin 64
4.1.6 Halaman Menu Perlombaan (Admin) 64
4.1.7 Halaman Menu File Info 65
4.1.8 Halaman Menu Perhitungan 66
4.2 Pengujian 66
4.2.1 Pengujian Sistem Rekomendasi Kandidat Peserta 66
4.2.2 Pengujian Manual Metode WP 75
4.2.3 Pengujian Manual Metode TOPSIS 82
4.3 Hasil Analisis Perbandingan 87
4.3.1 Hasil Euclidean Distance 87
4.3.2 Perbandingan Tingkat Akurasi Perhitungan 88
4.3.3 Perbandingan Kecepatan Eksekusi Program 89
4.3.4 Kompleksitas Algoritma WP 90
4.3.5 Kompleksitas Algoritma TOPSIS 93
BAB 5 KESIMPULAN DAN SARAN 97
5.1 Kesimpulan 97
5.2 Saran 98
DAFTAR PUSTAKA 99
xi
DAFTAR TABEL
Tabel 3.1 Data Perlombaan dan Peserta Terdahulu 13
Tabel 3.2 Jenis dan Contoh Kriteria 22
Tabel 3.3 Nilai Bobot Kriteria Berdasarkan Skala Likert 22
Tabel 3.4 Data Nilai Parameter Kriteria Web Development Competition 23
Tabel 3.5 Narrative Use Case Register 27
Tabel 3.6 Narrative Use Case Login 28
Tabel 3.7 Narrative Use Case Melengkapi Profil 28
Tabel 3.8 Narrative Use Case List Perlombaan 29
Tabel 3.9 Narrative Use Case Mendaftarkan Diri 30
Tabel 3.10 Narrative Use Case Cetak Kartu Peserta 31
Tabel 3.11 Narrative Use Case Kelola Data Lomba 31
Tabel 3.12 Narrative Use Case Rekomendasi Peserta 34
Tabel 3.13 Narrative Use Case Pengumuman 36
Tabel 3.14 Narrative Use Case Log Out 37
Tabel 3.15 Struktur Database Tabel Admin 55
Tabel 3.16 Struktur Database Tabel File 55
Tabel 3.17 Struktur Database Tabel Hitung 56
Tabel 3.18 Struktur Database Tabel Lomba 56
Tabel 3.19 Struktur Database Tabel Lomba Rinci 57
Tabel 3.20 Struktur Database Tabel Mahasiswa Pendaftar 57
Tabel 3.21 Struktur Database Tabel Users 58
Tabel 3.22 Struktur Database Tabel Alternatif 58
Tabel 3.23 Struktur Database Tabel Kriteria 59
Tabel 3.24 Struktur Database Tabel Nilai Matrik 59
Tabel 3.25 Struktur Database Tabel Nilai Preferensi 59
Tabel 4.1 Alternatif Pilihan 75
xii
Tabel 4.2 Pembobotan Kriteria 76
Tabel 4.3 Nilai Alternatif Per Kriteria 77
Tabel 4.4 Bobot Setelah Normalisasi 78
Tabel 4.5 Hasil Keputusan WP 82
Tabel 4.6 Nilai Matriks 82
Tabel 4.7 Nilai Kuadrat 83
Tabel 4.8 Matriks Ternormalisasi 83
Tabel 4.9 Nilai Bobot Ternormalisasi 84
Tabel 4.10 Matriks Ideal Positif/Negatif 85
Tabel 4.11 Hasil Keputusan TOPSIS 86
Tabel 4.12 Hasil Analisis Perbandingan Euclidean Distance 87
Tabel 4.13 Hasil Perbandingan Akurasi Perhitungan 88
Tabel 4.14 Hasil Perbandingan Kecepatan Eksekusi Program 89
Tabel 4.15 Kompleksitas Algoritma WP 91
Tabel 4.16 Kompleksitas Algoritma TOPSIS 93
xiii
DAFTAR GAMBAR
Gambar 2.1 Arsitektur Sistem Pendukung Keputusan 8
Gambar 3.1 Ishikawa Diagram 19
Gambar 3.2 Arsitektur Umum 25
Gambar 3.3 Use Case Diagram 26
Gambar 3.4 Activity Diagram Sistem Penentuan Kandidat Peserta Lomba 38
Gambar 3.5 Sequence Diagram Sistem Penentuan Kandidat Peserta Lomba 39
Gambar 3.6 Flowchart Sistem Penentuan Kandidat Peserta Lomba 40
Gambar 3.7 Flowchart Metode WP 41
Gambar 3.8 Flowchart Metode TOPSIS 42
Gambar 3.9 Flowchart Admin Pengguna Sistem Rekomendasi Peserta 43
Gambar 3.10 Rancangan Halaman Home 44
Gambar 3.11 Rancangan Halaman Menu Profil 45
Gambar 3.12 Rancangan Halaman Menu Perlombaan 46
Gambar 3.13 Rancangan Halaman Menu Perlombaan Bagian Upload 47
Gambar 3.14 Rancangan Halaman Menu Pengumuman 48
Gambar 3.15 Rancangan Halaman Login Admin 49
Gambar 3.16 Rancangan Halaman Menu Perlombaan 50
Gambar 3.17 Rancangan Halaman Menu File Info 51
Gambar 3.18 Rancangan Halaman Menu Perhitungan 52
Gambar 3.19 Output Rekomendasi Peserta Setelah Klik Button Hitung 52
Gambar 3.20 Rancangan Halaman Menu Hasil Topsis 54
Gambar 3.21 Relasi Tabel Sistem Database 60
Gambar 4.1 Tampilan Halaman Menu Home 61
Gambar 4.2 Tampilan Halaman Menu Profil 62
Gambar 4.3 Tampilan Halaman Menu Perlombaan 62
Gambar 4.4 Tampilan Lanjutan Halaman Menu Perlombaan 63
xiv
Gambar 4.5 Tampilan Halaman Menu Pengumuman 63
Gambar 4.6 Tampilan Halaman Login Admin 64
Gambar 4.7 Tampilan Halaman Menu Perlombaan (Admin) 65
Gambar 4.8 Tampilan Halaman Menu File Info 66
Gambar 4.9 Tampilan Halaman Menu Perhitungan 66
Gambar 4.10 Tampilan Input Perlombaan, Kuota Peserta dan Status Lomba 67
Gambar 4.11 Tampilan Kriteria Beserta Bobot Perlombaan 67
Gambar 4.12 Tampilan Penilaian Kriteria (Weighted Product) 68
Gambar 4.13 Tampilan Hitung Mahasiswa Pendaftar 69
Gambar 4.14 Tampilan Normalisasi Bobot 69
Gambar 4.15 Tampilan Hasil Rekomendasi Peserta (Weighted Product) 70
Gambar 4.16 Tampilan Penilaian Kriteria (TOPSIS) 71
Gambar 4.17 Tampilan Hasil Nilai Matriks 72
Gambar 4.18 Tampilan Hasil Nilai Matriks Ternormalisasi 72
Gambar 4.19 Tampilan Hasil Nilai Bobot Ternormalisasi 73
Gambar 4.20 Tampilan Hasil Matriks Ideal Positif/Negatif 73
Gambar 4.21 Tampilan Hasil Jarak Ideal Positif/Negatif 74
Gambar 4.22 Tampilan Lanjutan Hasil Jarak Ideal Positif/Negatif 74
Gambar 4.23 Tampilan Hasil TOPSIS 75
Gambar 4.24 Tampilan Hasil Perbandingan Output Alternatif Sistem 88
Gambar 4.25 Tampilan Hasil Perbandingan Waktu Eksekusi Sistem 89
Gambar 4.26 Grafik Perbandingan Kecepatan Eksekusi 90
xv
DAFTAR LAMPIRAN
Lampiran 1 Listing Program A-1
Lampiran 2 Angket Penelitian B-1
Lampiran 3 Daftar Riwayat Hidup C-1
BAB 1 PENDAHULUAN
1.1 Latar Belakang Masalah
Pada era kompetitif ini, unggul dalam persaingan merupakan tujuan
setiap perusahaan dan organisasi. Penggunaan teknologi informasi adalah salah
satu cara untuk memenangkan persaingan. Membangun sistem berbasis
teknologi informasi secara benar, terstruktur dan sederhana diperlukan untuk
keunggulan bersaing perusahaan dan organisasi modern. Dalam dunia
pendidikan tinggi, universitas merupakan salah satu tempat efektif
mentransformasikan ilmu dan juga sarana pendidikan mahasiswa. Setiap
universitas pasti ingin mempunyai dan menghasilkan mahasiswa-mahasiswa
yang berprestasi, mahasiswa berprestasi diartikan sebagai mahasiswa yang
memiliki potensi dalam bidang akademik. (Fatta, 2007).
Fasilkom-TI USU selalu mengirimkan mahasiswa setiap tahunnya untuk
mengikuti perlombaan atau kompetisi baik dibidang teknologi maupun bidang
perlombaan lainnya, tetapi jarang sekali dilakukan proses seleksi bagi
mahasiswa yang ingin mengikuti perlombaan dan belum ada parameter yang
sesuai untuk penilaian secara objektif. Mahasiswa terkadang mendaftar sendiri
jika ada perlombaan tanpa ada proses seleksi didalamnya sehingga kurangnya
persiapan untuk bersaing.
Alasan pemilihan topik ini salah satunya karena proses seleksi hanya
sebatas di pemberkasan dan cenderung lama dalam mengumumkan peserta yang
lolos karena masih dilakukan secara manual seperti mengumumkannya melalui
kertas yang ditempelkan di mading kampus. Setiap kampus dalam menyeleksi
mahasiswa untuk lomba seharusnya dilakukan berdasarkan kriteria aspek
akademik. Untuk itu, perlu dibuat software Sistem Pendukung Keputusan (SPK)
berbasis web dalam konteks ini.
DSS (Decission Support System) atau Sistem Pendukung Keputusan
(SPK) merupakan sistem informasi interaktif yang dibangun untuk mendukung
solusi atas suatu masalah atau untuk mengevaluasi suatu peluang. Aspek yang
diperlukan untuk membuat sistem pendukung keputusan yaitu data,
2
memberikan antar muka pengguna yang mudah dan dapat menggabungkan
pemikiran pengambilan keputusan.
Yoon (Sri Kusumadewi, 2006) menjelaskan bahwa metode Weighted
Product (WP) merupakan sebuah metode penyelesaian dengan konsep perkalian
untuk menghubungkan nilai atribut, dimana nilai harus dipangkatkan terlebih
dahulu dengan bobot atribut yang bersangkutan. Disamping itu, (Gayatri et al.,
2013) metode TOPSIS didasarkan pada konsep bahwa alternatif yang dipilih
harus memiliki Euclidean Distance terpendek dari solusi ideal positif dan
terjauh dari solusi ideal negatif. Metode WP dan TOPSIS dipilih karena
merupakan bagian dari konsep Multi-Attribut Decision Making (MADM)
dimana diperlukan normalisasi pada perhitungannya.
Berdasarkan latar belakang yang sudah disampaikan, maka penulis ingin
mengimplementasikan dan menganalisa perhitungan algoritma WP dan TOPSIS
ke dalam Sistem Pendukung Keputusan Penentuan Kandidat Peserta
Perlombaan Bagi Mahasiswa Fasilkom-TI USU yang mampu menampung
banyak lomba sehingga tentunya menampung banyak kriteria yang harus
diperhitungkan sesuai dengan konsep Multi-Attribut Decision Making
(MADM).
Pada analisis perbandingannya, penulis akan membandingkan jarak nilai
melalui Euclidean Distance yang bertujuan untuk melihat seberapa jauh jarak
perbedaan antara kedua algoritma yang digunakan, selain itu akan dilakukan
juga analisis kompleksitas kedua algoritma melalui Big Theta serta
membandingkan performa Running Time (ms) menggunakan Microtime
Function pada pemrograman PHP dengan tujuan untuk melihat kecepatan
eksekusi antara kedua metode tersebut.
1.2 Rumusan Masalah
Adapun rumusan masalah yang akan dibahas pada penelitian ini adalah
bagaimana menganalisis dan merekomendasikan kandidat peserta lomba
dengan menerapkan metode WP dan TOPSIS melalui sistem pendukung
keputusan sehingga proses seleksi yang masih manual menjadi tersistem.
3
1.3 Batasan Masalah
Batasan masalah penelitian sebagai berikut:
1. Sistem pendukung keputusan ini hanya dirancang untuk pihak kampus
terkhusus Fasilkom-TI USU dalam memilih kandidat peserta lomba terbaik
dan layak untuk berkompetisi.
2. Analisis perbandingan menggunakan Euclidean Distance dan parameter
untuk mengukur performa algoritma menggunakan Running Time (ms)
melalui fungsi Microtime, serta kompleksitas algoritma menggunakan Big
Theta.
3. Pengumpulan data dilakukan dengan cara wawancara dan pengisian angket
penelitian untuk mendapatkan standarisasi bobot kriteria perlombaan.
4. Indikator penilaian hanya berdasarkan pada bidang web development
competition dari seorang web programmer pada salah satu perusahaan.
5. Kriteria yang menjadi penilaian terbagi menjadi tiga jenis utama meliputi
tes teori dan tes praktik yang sifatnya offline test serta berkas pendukung
yang sifatnya based on web.
6. Bahasa pemograman yang digunakan yaitu PHP, Javascript dan MySQL
sebagai sistem manajemen database.
7. Algoritma yang digunakan yaitu Weighted Product dan Topsis serta
implementasi sistem menggunakan platform website.
1.4 Tujuan Penelitian
Tujuan utama dari penelitian ini adalah merancang dan membangun
sistem pendukung keputusan untuk penentuan kandidat peserta lomba
berdasarkan kriteria aspek akademik serta mengimplementasikan metode WP
dan TOPSIS dalam perhitungan untuk memberi gambaran perbandingan kinerja
dan performa metode dari segi jarak nilai, tingkat akurasi, kecepatan eksekusi
hingga kompleksitas algoritma.
1.5 Manfaat Penelitian
Manfaat yang diharapkan dari penelitian ini adalah dapat memudahkan
pihak kampus terkhusus Fasilkom-TI USU dalam merekomendasikan
mahasiswa yang terbaik dan layak untuk menjadi kandidat peserta lomba yang
siap berkompetisi.
4
1.6 Metodologi Penelitian
Metode penelitian yang dilakukan dalam penelitian ini adalah:
1. Studi Pustaka
Pada tahap ini dilakukan pengumpulan referensi yang diperlukan dalam
penelitian. Hal ini dilakukan untuk memperoleh informasi dan data yang
diperlukan untuk penulisan penelitian ini. Referensi yang digunakan dapat
berupa buku, jurnal, artikel, situs internet yang berhubungan dengan Sistem
Pendukung Keputusan, metode Weighted Product. Dan TOPSIS
2. Pengumpulan Data
Pada tahap ini dilakukan pengumpulan data perlombaan terdahulu guna
evaluasi studi kasus melalui website fakultas atau media sosial serta
pengumpulan data standarisasi bobot perlombaan dari instansi melalui
wawancara atau pengisian angket penelitian
3. Analisa dan Perancangan
Berdasarkan ruang lingkup penelitian, penulis melakukan analisa terhadap
apa saja yang dibutuhkan dalam penelitian dan perancangan menggunakan
algoritma weighted product untuk dirancang dalam sebuah diagram alir
(flowchart), ishikawa diagram, use case scenario, rancangan aplikasi, dan
pembuatan user interface aplikasi.
4. Implementasi
Pada tahap ini, membuat sebuah system dengan menggunakan Bahasa
pemrograman sesuai dengan diagram alir yang telah dirancang. Algoritma
weighted product selanjutnya akan diimplementasikan menggunakan
bahasa pemrograman PHP, Javascript, dan MySQL sebagai database.
5. Pengujian
Pada tahap ini, merupakan tahapan pengujian apakah aplikasi yang di buat
telah berhasil berjalan sesuai dengan kebutuhan yang ditentukan
sebelumnya dan melakukan perbaikan kesalahan jika masih tedapat error
pada aplikasi.
5
6. Dokumentasi
Pada tahap ini, penelitian yang telah dilakukan didokumentasikan mulai
dari tahap analisa sampai kepada pengujian dalam bentuk skripsi.
1.7 Sistematika Penulisan
Agar pembahasan lebih sistematis, maka tulisan dari penelitian ini dibuat dalam
lima bab, yaitu:
BAB I PENDAHULUAN
Bab ini akan menjelaskan mengenai latar belakang penelitian judul skripsi
“Sistem Penentuan Kandidat Peserta Lomba Bagi Mahasiswa Dengan
Analisis Perbandingan Algoritma Weighted Product (WP) dan Technique
for Order by Similarity to Ideal Solution (TOPSIS)”. Dalam bab ini juga
akan dijelaskan rumusan masalah, batasan masalah, tujuan penelitian,
manfaat penelitian, metode penelitian, dan sistematika penulisan.
BAB II LANDASAN TEORI
Berisi tentang penjelasan mengenai definisi sistem pendukung keputusan,
metode WP dan metode TOPSIS .
BAB III ANALISIS DAN PERANCANGAN SISTEM
Berisi tentang analisis mengenai proses kerja metode Weighted Product
dan metode TOPSIS dalam penentuan kandidat peserta lomba, serta
perancangan antarmuka pengguna.
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM
Pada bab ini berisi tentang pembuatan sistem dan coding sesuai dengan
analisis dan rancangan sistem, kemudian dilakukan pengujian sistem.
BAB V KESIMPULAN DAN SARAN
Bab terakhir akan berisi tentang kesimpulan yang diperoleh setelah
menyelesaikan tugas akhir ini serta saran-saran yang dapat diberikan
untuk melakukan pengembangan perangkat lunak lebih lanjut.
6
BAB 2
LANDASAN TEORI
2.1 Sistem Pendukung Keputusan
Sistem pendukung keputusan diperkenalkan oleh G. Anthony Gorry dan
Michael S. Scott Morton. Keduanya adalah professor dari MIT menulis artikel dalam
jurnal yang berjudul “A Framework for Management Information System”. Mereka
mengembangkan kerangka pemikiran tentang pemanfaatan aplikasi komputer pada
proses pengambilan keputusan bagi level managemen. Berdasarkan kerangka ini dapat
di defenisikan bahwa sistem pendukung keputusan ini berkaitan erat dengan sistem
informasi atau model analisis yang dirancang untuk membantu para pengambil
keputusan dan para professional agar mendapat informasi yang akurat. Sistem
Pendukung Keputusan (SPK) merupakan implementasi teori-teori pengambilan
keputusan yang telah diperkenalkan oleh ilmu-ilmu seperti operation research dan
management science (Rahman, 2008). Hanya bedanya adalah bahwa jika dahulu untuk
mencari penyelesaian masalah yang dihadapi harus dilakukan perhitungan iterasi secara
manual, saat ini komputer PC telah menawarkan kemampuannya untuk menyelesaikan
persoalan yang sama dalam waktu relatif singkat.
Keberadaan sistem pendukung keputusan ini bukan untuk menggantikan peran
pihak terkait, tetapi menjadi sarana pendukung bagi mereka. Sistem ini
mempresentasikan permasalahan terkait yang dihadapi sehari-hari ke dalam bentuk
kuantitatif, misal dalam bentuk model matematika. Beberapa definisi sistem pendukung
keputusan yang lain menjabarkan sistem pendukung keputusan sebagai sekumpulan
tools komputer yang terintegrasi yang mengijinkan seorang pengambil keputusan untuk
berinteraksi langsung dengan komputer untuk menciptakan informasi yang berguna.
2.1.1 Tahapan Pengambilan Keputusan
Proses pengembangan sistem pendukung keputusan :
1. Tahap Pra Desain
Tahap A : Perencanaan. Pada tahap ini menentukan kebutuhan sistem,
mendiagnosa masalah dan menentukan tujuan pengembangan sistem pendukung
keputusan.
7
Tahap B : Penelitian. Melihat kebutuhan pengguna, melihat sumber daya yang
telah tersedia dilingkungan sistem pendukung keputusan yang akan dibangun.
Tahap C : Analisis. Menentukan pendekatan pengembangan yang terbaik,
menentukan apa saja kebutuhan sumber daya yang akan dibutuhkan pada pembangunan
sistem pendukung keputusan, menentukan model normatif yaitu model yang
menyatakan bahwa alternatif yang terpilih adalah alternatif yang terbaik dari semua
alternatif yang ada.
2. Tahap Desain
Desain antar muka, dialog, desain basis data, desain model dan desain komponen
pengetahuan.
3. Tahap Kontruksi
Mengimplementasikan semua tahap desain ke dalam program sistem pendukung
keputusan.
4. Tahap Impelementasi
Melakukan pengujian, evaluasi, dan pelatihan.
5. Tahap Pemeliharaan dan Dokumentasi
Melakukan pemeliharaan dan dokumentasi.
6. Tahap Adaptasi
Melakukan proses secara berulang-ulang untuk meningkatkan kualitas sistem.
2.1.2 Arsitektur Umum Sistem Pendukung Keputusan
Menurut (Kusrini, 2007), arsitektur pendukung sebuah sistem pendukung keputusan
digambarkan seperti gambar 2.1:
Gambar 2.1 Arsitektur sistem pendukung keputusan
8
Berdasarkan gambar 2.1, komponen penyusun sistem pendukung keputusan terdiri atas
empat, yaitu:
1. Subsistem manajemen data: subsistem ini mencakup database, yang berisi
data-data relevan untuk situasi tersebut dan dikelola sebuah perangkat lunak
(software) yang disebut Sistem Manajemen Database (SMDB).
2. Subsistem manajemen model: model merupakan suatu tiruan dalam alam
nyata. Basis model dapat memberi para pengambilan keputusan akses kepada
berbagai model dan membantu dalam pengambilan keputusan. Basis model
dapat mencakup manajemen perangkat lunak berbasis model atau model base
management software (MBSM).
3. Subsistem manajemen berbasis pengetahuan: subsistem ini dapat mendukung
subsistem lain atau bertindak independen. Dengan subsistem ini pengambilan
keputusan akan lebih cerdas.
4. Subsistem antarmuka pengguna: subsistem ini disebut juga subsistem
manajemen dialog. Subsistem ini memungkinkan pengguna untuk berinteraksi
dengan sistem yang dibuat.
2.2 Weighted Product (WP)
Metode Weighted Product (WP) merupakan metode pengambilan keputusan dengan
cara perkalian ranting-ranting atribut dengan tujuan menghubungkan ranting-ranting
tersebut, dimana ranting setiap atribut terlebih dahulu harus dipangkatkan dengan bobot
atribut yang bersangkutan (Diana, 2018).
Langkah langkah perhitungan metode Weighted Product (Fajarwati et al., 2018)
yaitu:
1. Menentukan kriteria
2. Menentukan nilai bobot dari masing masing kriteria (w)
3. Menyederhanakan kriteria bobot (normalisasi) agar total bobot kriteria ∑ 𝑤𝑗 = 1
dengan cara
𝑤𝑗 = 𝑤𝑗
Σ𝑤𝑗……………………………………… . . ………………(1)
Keterangan:
𝑤𝑗= bobot atribut
9
Σ𝑤𝑗 = jumlah total bobot keseluruhan
4. Menghitung nilai vektor S
𝑆𝑖 = Π𝑗=1𝑛 𝑥𝑖𝑗
𝑤𝑗 , 𝑖 = 1,2, … , 𝑛……………………………… . (2)
Keterangan:
Si = menyatakan preferensi alternatif dianalogikan sebagai vektor S
∏ = Phi (perkalian)
x = menyatakan nilai kriteria
w = menyatakan bobot kriteria
i = menyatakan alternatif
j = menyatakan kriteria
n = menyatakan banyaknya kriteria
wj = pangkat bernilai positif untuk atribut keuntungan dan bernilai negatif untuk
atribut biaya
5. Menghitung nilai vektor V
𝑉𝑖 = Π𝑗=1𝑛 𝑥𝑖𝑗
𝑤𝑗
Π𝑗=1𝑛 (𝑥𝑗)
𝑤𝑗 ; 𝑖 = 1,2, … , 𝑛 ……………… .……………(3)
Keterangan:
Vi = menyatakan preferensi alternatif dianalogikan sebagai vektor V
∏ = Phi (perkalian)
x = menyatakan nilai kriteria
w = menyatakan bobot kriteria
i = menyatakan alternatif
j = menyatakan kriteria
n = menyatakan banyaknya kriteria
wj = pangkat bernilai positif untuk atribut keuntungan dan bernilai negatif untuk
atribut biaya
Dimana nilai vektor (V) merupakan alternatif pilihan yang akan dipakai dalam
penentuan peringkat masing-masing vektor S dengan nilai total vektor S
6. Mencari nilai tertinggi dari hasil perhitungan vektor V
10
2.3 Technique for Order Preference by Similarity to Ideal Solution (TOPSIS)
Topsis menurut Hwang dan Zeleny didasarkan pada konsep dimana alternatif
terpilih yang baik tidak hanya memiliki jarak terpendek dari solusi ideal positif,
namun memiliki jarak terpanjang dari solusi ideal negatif (Sri Kusumadewi,
2006).
Adapun langkah metode Topsis (Kurnia, 2018) adalah sebagai berikut :
1. Menentukan kriteria dan pembobotan
2. Menentukan alternatif
3. Menentukan normalisasi matriks keputusan, Nilai normalisasi dihitung dengan
𝑟𝑖𝑗 =𝑋𝑖𝑗
√∑ 𝑋𝑖𝑗2𝑚
𝑖=1
…………………………………………………(1)
Keterangan :
𝑟𝑖𝑗 = 𝑟𝑎𝑡𝑖𝑛𝑔 𝑘𝑖𝑛𝑒𝑟𝑗𝑎 𝑡𝑒𝑟𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑠𝑎𝑠𝑖
𝑥𝑖𝑗 = 𝑛𝑖𝑙𝑎𝑖 𝑐𝑟𝑖𝑝𝑠
4. Menentukan bobot ternormalisasi matriks keputusan , Nilai bobot ternormalisasi
𝑦𝑖𝑗 = 𝑤𝑖𝑗. 𝑟𝑖𝑗 …………………………………………… . . . . (2)
5. Menentukan matriks solusi ideal positif dan matriks solusi ideal negatif
𝐴+ = (𝑦1+, 𝑦2,……
+ 𝑦𝑛+)
𝐴− = (𝑦1−, 𝑦2,……
− 𝑦𝑛−)……………………………………… . (3)
Dengan syarat :
𝑦𝑗+: {max 𝑦𝑖𝑗 𝑖𝑓 𝑎𝑡𝑟𝑖𝑏𝑢𝑡 𝑏𝑒𝑛𝑒𝑓𝑖𝑡 &min 𝑦𝑖𝑗 𝑖𝑓 𝑎𝑡𝑟𝑖𝑏𝑢𝑡 𝑐𝑜𝑠𝑡}
𝑦𝑗−: {min 𝑦𝑖𝑗 𝑖𝑓 𝑎𝑡𝑟𝑖𝑏𝑢𝑡 𝑏𝑒𝑛𝑒𝑓𝑖𝑡 &max 𝑦𝑖𝑗 𝑖𝑓 𝑎𝑡𝑟𝑖𝑏𝑢𝑡 𝑐𝑜𝑠𝑡}
6. Menentukan jarak antara nilai setiap alternatif (𝐴𝑖) dengan solusi ideal positif dan
solusi ideal negatif.
Jarak antara alternatif dengan solusi ideal positif dirumuskan sebagai berikut :
𝐷𝑖+ = √∑
𝑛
𝑗=1(𝑦𝑗
+ − 𝑦𝑖𝑗)2…………………… .………(4)
Jarak antara alternatif dengan solusi ideal negatif dirumuskan sebagai berikut :
𝐷𝑖+ = √∑
𝑛
𝑗=1(𝑦𝑖
− − 𝑦𝑖𝑗 )2…………………… . . … .… (5)
Keterangan :
11
𝐷𝑖+ = 𝑗𝑎𝑟𝑎𝑘 𝑎𝑛𝑡𝑎𝑟𝑎 𝑎𝑙𝑡𝑒𝑟𝑛𝑎𝑡𝑖𝑓 (𝐴𝑖) 𝑠𝑜𝑙𝑢𝑠𝑖 𝑖𝑑𝑒𝑎𝑙 𝑝𝑜𝑠𝑖𝑡𝑖𝑓
𝐷𝑖− = 𝑗𝑎𝑟𝑎𝑘 𝑎𝑛𝑡𝑎𝑟𝑎 𝑎𝑙𝑡𝑒𝑟𝑛𝑎𝑡𝑖𝑓 (𝐴𝑖) 𝑠𝑜𝑙𝑢𝑠𝑖 𝑖𝑑𝑒𝑎𝑙 𝑛𝑒𝑔𝑎𝑡𝑖𝑓
7. Nilai preferensi untuk setiap alternatif diberikan sebagai berikut :
𝑉𝑖 =𝐷𝑖
𝐷𝑖− + 𝐷𝑖
+………………………………………… . . … (6)
2.4 Likert Scale
Skala likert adalah skala pengukuran yang dikembangkan oleh Likert pada tahun 1932.
Dalam pembahasannya beliau memberikan hasil interpretasi dalam bentuk “survei
pendapat” (Joshi et al., 2015). Skala ini memiliki empat atau lebih butir-butir pertanyaan
yang dikombinasikan sehingga membentuk sebuah skor/nilai yang merepresentasikan
sifat individu, misalkan pengetahuan, sikap, dan perilaku. Dalam proses analisis data,
komposit skor, biasanya jumlah atau rataan, dari semua butir pertanyaan dapat
digunakan.
2.5 Euclidean Distance
Euclidean Distance adalah jarak diantara dua buah objek atau lebih. Euclidean Distance
dapat digunakan untuk mengukur kesamaan (matching) sebuah objek dengan objek
lainnya. Dapat dikatakan sama bila objek tersebut mendekati nol (Dodi Himawan,
2019). Euclidean Distance diantara titik 𝐴 = (𝑎1, 𝑎2,… 𝑎𝑛) 𝑑𝑎𝑛 𝐵 = (𝑏1, 𝑏2, … 𝑏𝑛)
didefinisikan sebagai :
√(𝑎1 − 𝑏1)2 + (𝑎2 − 𝑏2)2+. . . +(𝑎𝑛 − 𝑏𝑛)2 = √∑𝑛𝑖=1 (𝑎𝑖 − 𝑏𝑖)2
2.6 Microtime Function
Microtime function adalah salah satu fungsi pada bahasa pemrograman PHP yang
digunakan untuk mengembalikan timestamp unix saat ini dengan satuan mikrodetik
(Sucipto et al., 2019).
2.7 Kompleksitas Algoritma
Kompleksitas algoritma dinyatakan secara asimptotik dengan notasi big-Θ. Jika
kompleksitas waktu untuk menjalankan suatu algoritma dinyatakan dengan T(n), fungsi
T(n) didefenisikan dalam Θ(g(n)). Fungsi T(n) diberi batas atas dan bawah oleh
beberapa kelipatan konstanta nilai positif dari g(n) untuk semua n bernilai besar, yaitu
jika ada beberapa konstanta positif 𝑐1 dan 𝑐2 dan beberapa bilangan bulat bukan negatif
𝑛0 (Levitin, 2009) dan memenuhi 𝑐2g(n) ≤ T(n) ≤ 𝑐1g(n). Maka kompleksitas dapat
dinyatakan dengan :
T(n) = Θ(g(n)).
12
2.7 Penelitian yang Relevan
Beberapa penelitian yang relevan dengan penelitian yang akan dilakukan oleh penulis
adalah sebagai berikut :
1. Pada penelitian terdahulu yang dilakukan oleh Sunarti pada tahun 2018 yang
berjudul “Perbandingan Metode TOPSIS Dan SAW Untuk Pemilihan Rumah
Tinggal” mendapatkan hasil pengujian bahwa metode SAW lebih direkomendasi
untuk pemilihan rumah tinggal dibandingkan metode TOPSIS karena hasilnya lebih
besar disebabkan pembobotan kriteria menjadi faktor penting yang mempengaruhi
perhitungan metode SAW dan TOPSIS.
2. Penelitian yang dilakukan oleh M. Jhon Elfan, Desi Andreswari, dan Kurnia
Anggriani pada tahun 2016 dalam penelitian yang berjudul “Pemilihan Jenis Kayu
Untuk Mebel Dengan Metode Weighted Product (WP) & Technique for Order
Preference By Similarity To Ideal Solution (TOPSIS)” menghasilkan tingkat akurasi
cenderung rendah sebesar 37,5% dikarenakan untuk menemukan solusi alternatif,
data kriteria yang diujikan sistem bukan hanya diolah dengan membandingkan
kesamaan antara kriteria uji dengan krieria yang dimiliki oleh alternatif, tetapi
dengan melakukan perhitungan nilai bobot setiap kriteria berdasarkan rumus
perhitungan pada metode Weighted Product dan TOPSIS.
3. Penelitian yang dilakukan oleh Suhartono, Didit dan Tika Sari pada tahun 2019
dengan judul “Perbandingan Metode Weighted Product dan TOPSIS Dalam
Menentukan Penerima Program Keluarga Harapan” menghasilkan tingkat akurasi
hasil sebesar 89,48% dimana metode TOPSIS menjadi metode yang lebih sesuai
pada studi kasus pemilihan kelayakan penerima PKH.
13
BAB 3 ANALISIS DAN PERANCANGAN
3.1. Analisis Sistem
Analisis sistem merupakan suatu teknik penguraian atau pemecahan masalah dari suatu
sistem informasi menjadi komponen-komponen tertentu dengan tujuan untuk
melakukan identifikasi serta melakukan evaluasi permasalahan, kesempatan dan
hambatan yang terjadi dengan harapan dapat diajukan usulan perbaikan. Analisis sistem
juga dilakukan guna menguji kelayakan sebuah sistem. Berikut beberapa data jumlah
lomba dan peserta yang pernah di ikuti oleh mahasiswa Fasilkom-TI untuk selanjutnya
di analisa tindakan apa yang bisa dilakukan untuk menyikapi adanya perlombaan yang
akan datang
Tabel 3.1 Data perlombaan dan peserta
No
.
Nama Nim Prestasi Lomba Diselenggarak
an
1. Habibie
Satrio
Nugroho
151401046 Juara I Place
Winner Of
Business
Plan ASIA
Young
Sociopreneursh
ip Leaders
Exchange
28 November
- 2 Desember
2016 di
Singapure
2. Jabbar Ali
Panggabean
Putri Meila
Vista
Novianti
Artika Sari
121401069
141401105
141401095
Best
Prototype
Lomba Inovasi
Nasional
UNEJ
Competition
(UCC) 2016
1-4 September
2016 di
Universitas
Jember
3. Wahyu Fatur
Rizky
Habibie
Satrio
Nugroho
151401026
151401046
Juara 1
Kompetisi
National
Leadership
Project
Competition
2017
Inspiring
Youth Leaders
17 Februari
2017 di
Jakarta.
4. Wahyu Fatur
Rizky
151401026 Juara 2
Biology
Business
Challenge
3rd Annual
Biology
Exhibition
2017
25-28 April
2017 di
Universitas
14
Negeri
Medan.
5. M.Rizky
Syahputra
151401014 Juara 3
dalam
National
Leadership
Project
Competition
2017
Inspiring
Youth
Leadership
Forum
21 Desember
2016 di
Jakarta.
6. Theresia
Aruan
121402078 Best Group
of Social &
Culture at
the event
Youth
Excursion
8 Februari
2017 di
Malaysia.
7. Tim R4 Putri
Sumut
(Kompas
USU) an.
Hafni Silfizah
Hasibuan,
dkk
131402009 Medali
Perunggu
Nomor
Lomba Sprint
Race
EksibisiJaw P
ON XIX a
Barat Cabang
Olahraga
Arung Jeram
29 September
2016 di
Bandung Jawa
Barat.
8. M.Putra
Yuszar
131402062 Juara 3
Kategori
Pengembang
an Bisnis
TIK
Pagelaran
Mahasiswa
Nasional
Bidang
Teknologi
Informasi dan
Komunikasi
(GemasTIK)
ke-9
27-29 Oktober
2016 di
Universitas
Indonesia.
9. Afrizal Yusuf
Rkt
Abdul Latif
Wahid
Nasution
Alex W.A.
Simanjutak
131402010
131402058
131402078
The Most
Creative
Team
Malaysian
Global
IDEAPreneur
Week 2017
23 April 2017
di Malaysia.
10. Abdul Latif
Wahid
Nasution
131402058 Runner Up
Wnner (Juara
2)
Youth
Entrepreneursh
ip Symposium
13-16 Juni
2017 di NUS
Business
School
Singapura.
15
11. Ilham
Syahputra
161402029 Artechno
2016-1st
Design
Competition
Winner
Artechno USU
2016
Di Universitas
Sumatera
Utara
12. Teguh
Subiyantoro
141401094 Artechno
2016-2nd
Design
Competition
Winner
Artechno USU
2016
Di Universitas
Sumatera
Utara
13. Ibnu Habibie
M Aidiel
Rahcman P
Mhd Faris
Pratama
141402002
141402086
141402018
Juara 1
Pengembang
an Bisnis
TIK
Artechno USU
2017
10-12 Oktober
2017 di
Universitas
Sumatera
Utara
14. M Aidiel
Rachman
Syaipul
Anwar Husen
Lubis
Muhammad
Fadly
Tanjung
141402086
141402011
141402016
Juara 3 UX
Design
Artechno USU
2017
10-12 Oktober
2017 di
Universitas
Sumatera
Utara
15. Yulia Shafira
Butar Butar
Putri Meila
Vista
141402052
141401105
Juara 1
Design
Aplikasi
Qur'an
Musabaqah
Tilawatil
Qur'an 2017
20-22 Oktober
2017 di
Universitas
Sumatera
Utara
16. Nabilah
Hannani
Yulia Shafira
Butar Butar
Putri Meila
Vista
141402117
141402052
141401105
Juara 1
Karya Ilmiah
Nasional
Lomba
Kepenulisan
Nasional
(LKN)
Di Universitas
Negeri Jakarta
17. M Faris
Pratama
141402018 Juara Utama
Idea Rush
Gemastik 10
Idea Rush
Gemastik 10
Di Universitas
Indonesia
16
18. Bintang Thu
nder
141401116 Partisipan Socialpreneurs
Program 2015
16-20
September
2015 Di
Universitas
Gajah Mada
19. Jabbar Ali
Panggabean
121401069 Best
Participant
Youthpreneur Di Malaysia
20. Joko
Kurnianto
121402102 Partisipan Sawasdee
Thailand
Project
16 Januari -
27 Februari
2015 dii
Thailand
21. Fitri
Ramadhani
121401040 Partisipan Young ICT
Leader's
Forum 2015
9-11
Desember
2015 Busan,
Korea Selatan
22. Nugra
Atsaury
Saragih
121402092 The Best
Male
Delegate
Indonesia-
Thailand
Friendship and
Culture
Exchange
Program 2014
(IT-FCP 2014)
09-13 Mei
2014 di
Bangkok,
Thailand
23. Jabbar Ali
Panggabean
121401069 Juara I Mahasiswa
Berprestasi
2016
26 April 2016
di Universitas
Sumatera
Utara
24. Jabbar Ali
Panggabean
121401069 Juara II Mahasiswa
Berprestasi
2015
28 Maret 2015
di Universitas
Sumatera
Utara
25. Jabbar Ali
Panggabean
121401069 Juara III Olimpiade
Sains Nasional
Pertamina
2014
27 November
2014 di Depok
26. Jabbar Ali
Panggabean
121401069 Juara II Pesta Akbar
Mentoring
yang Keren
yang
Mentoring
05-06
Desember
2014 di
Pendopo USU
17
27. Jabbar Ali
Panggabean
121401069 Juara III Pesta Akbar
Mentoring
yang Keren
yang
Mentoring
05-06
Desember
2015 di
Pendopo USU
28. Jabbar Ali
Panggabean
121401069 Juara I Catur Al-
Khuwarizmi
Fetival 2014
19 Desember
2014 di
Pendopo USU
29. Putri Meila
Vista
141401105 Juara
Harapan II
Nation Essay
Competition
26 November
2016
30 Putri Meila
Vista
141401105 Liaison
Officer
USU be
Profesional
2014
15 – 19
Oktober 2014
31. Putri Meila
Vista
141401105 Panitia Science
Competition
2014
14 Desember
2014 di
Universitas
Negeri
Semarang
32. Putri Meila
Vista
141401105 Juara III
Design
Aplikasi Al-
Quran
Musabaqah
Tilawatil
Quran
10-12 Oktober
2016 di
Auditorium
USU
33. Putri Meila
Vista
141401105 Best
Prototype
Lomba Inovasi
Nasional
UNEJ Creative
Competition
(UCC) 2016
01-04
September
2014 di
Jember
34. Wahyu Fatur
Rizky
151401026 Juara I
Poster Publik
Qurban
menandakan
Cinta Kepada
Allah dan
Cinta Kepada
Sesama
12 September
2016 USU
35. Wahyu Fatur
Rizky
151401026 Juara I
Kompetisi
Nasional
Leadership
Project
Competition
17 Februari
2017
18
Dari pengumpulan data pada tabel diatas, dapat dianalisa bahwa keikutsertaan
mahasiswa terhadap lomba tidak hanya pada perlombaan dibidang IT saja namun
banyak bidang lomba diluar IT yang mereka ikuti dengan menyesuaikan keahlian/skill
yang mereka miliki. Pada tabel itu juga dapat diidentifikasi bahwa frekuensi adanya
perlombaan akan selalu ada setiap bulannya ataupun setiap tahunnya. Maka hal yang
bisa dievaluasi adalah perlunya Sistem Pendukung Keputusan (SPK) penentuan
kandidat peserta yang mampu menampung banyak bidang lomba dan menampung
banyaknya kriteria dari masing-masing perlombaan yang berbeda yang nantinya
diharapkan agar dapat menemukan rekomendasi peserta yang terbaik serta persiapan
mengikuti perlombaan bisa lebih matang dan sesuai dengan kriteria. Selain itu
diharapkan agar jumlah keikutsertaan mahasiswa bisa lebih optimal lagi.
3.1.1. Analisis Masalah
Analisis masalah pada dasarnya dilakukan untuk mengidentifikasikan permasalahan
permasalahan yang muncul pada saat proses pembangunan sistem. Hal tersebut
dilakukan untuk mempermudah melakukan perancangan sistem dan meminimalkan
36. Muhammad
Faris Pratama
Muhammad
Aidiel
Rachman
Ibnu Habibie
141402018
141402086
141402002
Juara II
Business
Plan
National
Competition
Business Plan
National
Competition
24 November
2017 di Lippo
Plaza
Universitas
Pelita Harapan
Medan
37. Muhammad
Isa Dadi
Hasibuan
Fiqih Fatwa
Muhammad
Sakta Akbari
141402039
141402118
141402155
Juara I
Kompetisi
Startup
Digital
Digital
Innovation
Lounge (DILo)
Hackathon
Festival 2017
24-25
November
2017 di DILo
Medan
38. Muhammad
Aidiel
Rachman
Muhammad
Noor
Misyuari
Ray Syadera
141402086
141402150
161402067
Juara
II Kompetisi
Startup
Digital
Digital
Innovation
Lounge (DILo)
Hackathon
Festival 2017
24-25
November
2017 di DILo
Medan
19
kesalahan sehingga aplikasi dapat berjalan dengan baik. Adapun dalam analisis sistem
ini, akan dilakukan analisa meliputi :
1. Bagaimana membangun sebuah aplikasi yang dapat digunakan untuk memilih kandidat
peserta lomba yang direkomendasikan sesuai dengan kriteria masing-masing bidang
perlombaan.
2. Bagaimana tingkat akurasi dari kedua metode yang digunakan apakah output sistem
sesuai dengan output pada perhitungan manual.
3. Bagaimana kinerja atau waktu yang dibutuhkan oleh kedua metode untuk mengeksekusi
program setelah diinput alternatif, kriteria, bobot kriteria, dan nilai per alternatifnya.
4. Apa saja yang mempengaruhi perbedaan output alternatif pada kedua metode tersebut.
Untuk mempermudah identifikasi masalah tersebut, maka digunakan Ishikawa
Diagram (fishbone diagram) yang adalah sebuah alat grafis untuk melakukan
identifikasi, eksplorasi, menggambarkan serta menunjukkan hubungan antara sebab dan
akibat. Ishikawa diagram sistem ini digambarkan seperti pada gambar 3.1.
Gambar 3.1 Ishikawa diagram
3.1.2. Analisis Kebutuhan (Requirements Analysis)
Analisis kebutuhan merupakan sebuah proses yang bertujuan untuk menetapkan fungsi
serta kegunaan perangkat lunak. Analisis kebutuhan dilakukan dengan tujuan untuk
memahami masalah secara komprehensif yang terdapat pada suatu sistem yang
20
dibangun atau dikembangkan. Secara garis besar analisis kebutuhan akan membahas
kebutuhan sebuah sistem. Adapun analisis kebutuhan sistem dikelompokkan menjadi 2
bagian yaitu:
3.1.2.1. Kebutuhan Fungsional
Kebutuhan fungsional merupakan kebutuhan yang berisi proses-proses apa saja yang
terdapat dalam sistem yang dibangun. Kebutuhan fungsional juga menggambarkan
tujuan (goal) dari dibangunnya sebuah sistem. Adapun kebutuhan fungsional dari
sistem ini adalah:
1. Sistem dapat memberikan solusi dalam merekomendasikan kandidat peserta lomba
di Fasilkom-TI USU dengan mengimplementasikan metode WP untuk selanjutnya
dianalisis perbandingannya dengan metode TOPSIS
2. Sistem dapat diakses kapan saja dimana saja secara online dengan
mengimplementasikan platform website sehingga mahasiswa dapat dengan mudah
mendapatkan informasi pada akun mereka masing-masing.
3. Sistem dapat mengumumkan hasil seleksi secara realtime berupa nama mahasiswa
yang direkomendasikan yang nantinya dapat dilihat pada akun mahasiswa tersebut
3.1.2.2. Kebutuhan Non-fungsional
Kebutuhan non-fungsional sebuah sistem adalah merupakan deskripsi yang dapat
berupa fitur, karakteristik, ataupun batasan serta standarisai sebuah sistem yang dapat
meningkatkan kualitas sistem yang dibangun. Kebutuhan non-fungsional sistem ini
adalah sebagai berikut:
1. Tampilan
Sistem ini dibangun dengan UI/UX yang menarik memakai software desain grafis
Photoshop untuk desain website, sehingga akan meningkatkan tingkat kepuasan
pengguna sistem.
2. Performa
Sistem ini memiliki kualitas yang baik sehingga dapat membantu user dalam
pengambilan keputusan perihal penentuan kandidat peserta lomba.
3. Mudah digunakan
Sistem ini dibangun dengan tampilan (interface) yang user friendly sehingga
memudahkan pengguna dalam penggunaannya.
21
4. Hemat biaya
Sistem ini tidak memerlukan perangkat tambahan sehingga tidak ada penambahan
biaya dalam penggunaannya.
5. Panduan
Dalam mengatasi kesalahan masukan dari pengguna, sistem ini akan menampilkan
pesan kesalahan (error) atau peringatan.
3.1.3. Analisis Proses
Sistem yang dibangun merupakan sebuah sistem pendukung keputusan dalam
penentuan kandidat peserta lomba di Fasilkom-TI USU. Secara sederhana pengguna
dapat melihat berbagai macam perlombaan (lomba bidang IT, bidang kesenian, dll)
beserta kuota peserta selanjutnya mereka memilih lomba sesuai keinginan mereka,
kemudian sistem akan melakukan perhitungan pembobotan dengan metode Weighted
Product (WP) dilanjut dengan proses perhitungan metode Technique for Order by
Similarity to Ideal Solution (TOPSIS) untuk menganalisis perbandingan jarak nilai
menggunakan Euclidean Distance, tingkat akurasi hingga kecepatan eksekusi program.
Setelah pengguna memilih lomba yang mereka inginkan, pengguna dapat melihat hasil
pengumuman pada akun mereka masing-masing setelah melewati serangkaian seleksi
baik itu tes teori, tes praktik dan mengupload berkas pendukung pada sistem. Berikut
adalah proses-proses yang akan dikerjakan sistem:
1. Penentuan Perlombaan
Sistem yang dibangun akan mampu menampung berbagai jenis perlombaan serta
menampung banyak kriteria dan mahasiswa pendaftar dengan kuota peserta yang
sudah ditentukan untuk dilombakan.
2. Penentuan Kriteria
Sistem yang dibangun akan mampu membantu memberikan rekomendasi
pengambilan keputusan berdasarkan tiga kriteria utama yaitu tes teori, tes praktik,
dan berkas pendukung. Untuk teorinya, standar kriteria yang digunakan
berdasarkan standar kompetensi acuan yaitu SKKNI 2016-282 (Standar
Kompetensi Kerja Nasional) bidang software development subbidang
pemrograman secara umum yang diterbitkan oleh Kementrian Komunikasi dan
22
Informatika (KOMINFO). Lalu untuk kriteria praktik dan berkas pendukung,
menggunakan aspek akademik mahasiswa seperti hasil nilai studi berupa KHS.
Tabel 3.2 Jenis dan Contoh Kriteria
No Jenis Kriteria Contoh Kriteria
1 Tes Teori Tes tulis pemahaman pemrograman
2 Tes Praktik Tes praktik mempresentasikan karya
3 Berkas Pendukung Mengupload sertifikat lomba sejenis
3. Penentuan Bobot
Bobot kriteria-kriteria penentuan kandidat peserta lomba pada sistem ini
menggunakan tingkat kepentingan berupa skala likert pada tabel 3.2.
Tabel 3.3 Nilai Bobot Kriteria Berdasarkan Skala Likert
Nama Nilai Nilai
Sangat Tidak Penting 1
Tidak Penting 2
Cukup Penting 3
Penting 4
Sangat Penting 5
4. Penentuan Nilai Parameter
Beberapa kriteria yang digunakan dalam sistem ini adalah merupakan data
kualitatif, sehingga untuk memudahkan proses perhitungan perlu dilakukan
klasifikasi data kriteria. Salah satu bidang lomba yang akan dilakukan pengujian
dan analisis pada penelitian ini adalah bidang IT dengan lomba “Web Development
Competition” berhubung untuk mengikuti perlombaan tersebut belum ada
standarisasi bobotnya, maka untuk parameternya sendiri diambil berdasarkan
indikator penilaian melalui survey pendapat dari seorang web programmer di PT.
Cipta Harapan Samudera yang merupakan perusahaan yang bergerak dibidang jasa
angkutan darat dan laut dengan mengacu pada skala likert. Nilai parameter setiap
kriteria dapat dilihat pada tabel 3.4. sesuai data survey yang sudah dilampirkan
pada skripsi ini.
23
Tabel 3.4 Data Nilai Parameter Kriteria Web Development Competition
No Kriteria Parameter Jenis
Kriteria
Nilai Parameter
(Likert Scale)
1 Memahami konsep
HTML dan CSS
Penting Teori 4
2 Menguasai Bahasa
pemrograman PHP,
Javascript, JQuery dan
Ajax
Sangat
penting
Teori 5
3 Memahami penggunaan
framework PHP
Cukup
penting
Teori 3
4 Memiliki logika, analisa
dan problem solving
yang baik
Penting Teori 4
5 Memahami software
desain
Cukup
penting
Teori 3
6 Menguasai OOP Sangat
penting
Teori 5
7 Memahami konsep web
hosting dan domain
Cukup
penting
Praktik 3
8 Menguasai konsep
manajemen database
MySQL
Sangat
penting
Teori 5
9 Mamahami penggunaan
software version control
(GIT)
Penting Teori 4
10 Melampirkan KHS
berkaitan dengan nilai
pemrograman web
Cukup
penting
Berkas
pendukung
3
11 Penghargaan atau
sertifikat bagi yang
pernah mengikuti lomba
sejenis
Cukup
penting
Berkas
pendukung
3
12 Mampu berinteraksi
serta mempresentasikan
karya dengan baik
Penting Praktik 4
5. Menampung file lampiran
Bila kriteria yang digunakan memerlukan file lampiran dalam penilaiannya,
maka sistem akan menerima berkas unggahan file dari mahasiswa pendaftar
24
6. Perhitungan alternatif sesuai dengan kriteria lomba
Setelah admin menekan tombol hitung, sistem akan melakukan perhitungan
alternatif rekomendasi kandidat peserta sesuai dengan nilai per kriteria yang
dimasukkan oleh admin termasuk penilaian terhadap unggahan berkas
pendukung dan serangkaian tes teori/praktik.
7. Menampilkan rekomendasi kandidat
Sistem akan menormalisasikan bobot dan menampilkan nama rekomendasi
peserta dalam bentuk tabel dilengkapi dengan perankingan, kecepatan eksekusi
metode, tombol pengumuman dan tombol analisis
8. Mengumumkan hasil ke akun mahasiswa
Bila admin menekan tombol “Umumkan”, maka sistem akan meneruskan hasil
seleksi yang secara otomatis bisa terlihat di akun masing-masing mahasiswa
pendaftar tepatnya pada menu pengumuman
3.2 Pemodelan Sistem
Pada perancangan aplikasi ini, sistem dimodelkan menggunakan Unified Modeling
Language (UML) yang merupakan bahasa spesifikasi standar sebuah model dari
perangkat lunak yang berfungsi untuk menggambarkan komponen-komponen dari
sebuah sistem yang dibangun.
3.2.1 Arsitektur Umum Sistem
General arsitektur adalah perancangan penting yang menggambarkan proses, alur dan
bagaimana interaksi antar komponen dalam suatu sistem. Perancangan keseluruhan
aplikasi akan dijabarkan pada arsitektur umum yang dapat dilihat pada gambar 3.2.
25
Gambar 3.2 General arsitektur umum
Alur kerja sistem pada general arsitektur diatas, terbagi menjadi 2 komponen utama
yaitu admin dan mahasiswa. Proses awal itu dimulai dari admin yang menginput
informasi lomba (contoh : lomba desain, lomba robotik, lomba web development, dsb)
beserta kuota pesertanya. Lalu admin juga menginput kriteria berupa berkas pendukung,
tes teori dan praktik. Disamping itu mahasiswa registrasi akun masing-masing lalu login
seperti biasa sehingga bisa melihat informasi lomba yang sebelumnya telah diinput oleh
admin. Selanjutnya mahasiswa melakukan serangkaian tes baik teori maupun praktik
secara offline untuk mendapat nilai per kriterianya dan berkas pendukung (contoh:
sertifikat/penghargaan yang pernah mengikuti lomba sejenis atau KHS yang berkaitan
dengan bidang lomba) yang di upload ke sistem. Selanjutnya admin menginput kembali
seluruh nilai kriteria dan sistem akan melakukkan perhitungan Sistem Pendukung
Keputusan (SPK) dengan metode Weighted Product lalu hasilnya dibandingkan dengan
metode Topsis. Setelah itu admin umumkan hasil nama kandidat terpilih yang dapat
dilihat di masing masing akun mahasiswa.
3.2.2 Use Case Diagram
Sebuah use case diagram digunakan untuk menggambarkan fungsi yang diinginkan
ataupun didapatkan dari sebuah sistem yang dibangun. Dengan menggunakan use case
diagram akan membantu untuk membangun sistem berdasarkan perspektif pengguna.
Use case diagram dari sistem pada penelitian ini digambarkan pada Gambar 3.3.
26
Gambar 3.3 Use case diagram
Berdasarkan gambar 3.3, dapat dilihat bahwa saat pengguna mengakses website, maka
pengguna sistem pertama sekali akan melihat tampilan register dan login dan diikuti
dengan informasi perlombaan yang ada. Pengguna sistem agar dapat mendaftar dan
mengikuti kompetisi, terlebih dahulu mendaftarkan akun pada sistem lalu masuk pada
menu login yang sudah disediakan. Setelah masuk pada menu perlombaan, pengguna
bisa memilih bidang perlombaan lalu mendaftarkan diri.
Berikut adalah narrative use case penentuan kandidat peserta yang dapat diperhatikan
pada tabel 3.5, tabel 3.6, tabel 3.7, tabel 3.8, tabel 3.9, tabel 3.10, tabel 3.11, tabel 3.12,
tabel 3.12 dan tabel 3.14.
Pada tabel 3.5 dibawah ini adalah penjelasan proses dari use case “Register” yang
ditunjukkan oleh diagram use case pada gambar 3.3 sebelumnya dimana pada use case
ini merupakan langkah awal yang harus dilakukan mahasiswa pendaftar sebelum
mendaftarkan diri terhadap salah satu perlombaan.
27
Tabel 3.5 Narrative Use Case Register
Use case name Register
Actor Mahasiswa
Description Use case menjelaskan bahwa pengguna akan melihat
informasi perlombaan yang tersedia pada menu home dan
untuk mendaftar lomba, mereka harus memiliki akun
terlebih dahulu
Precondition Mahasiswa mengakses website
Typical course of event Aksi Pengguna Respon Sistem
Langkah 1:
Menekan tombol register
Langkah 2:
Sistem akan menampilkan
form yang harus di isi,
berupa nama lengkap,
email, username dan
password
Post Condition Kondisi sukses
Sistem akan menampilkan
pop up yang
memberitahukan
bahwasannya register telah
berhasil
Lanjut pada tabel 3.6 dibawah ini adalah penjelasan proses dari use case “Login” yang
ditunjukkan oleh diagram use case pada gambar 3.3 sebelumnya dimana pada use case
ini setelah mahasiswa berhasil mendaftar akun pada sistem, mahasiswa bisa langsung
masuk ke sistem dengan menekan tombol login.
28
Tabel 3.6 Narrative Use Case Login
Use case name Login
Actor Mahasiswa
Description Use case menjelaskan bahwa setelah pengguns berhasil
register maka akan direct ke tampilan home untuk
selanjutnya menuju proses login
Pre condition Pengguna berhasil register
Typical course of event Aksi pengguna Respon sistem
Langkah 1:
Menekan tombol login
Langkah 2:
Sistem akan menampilkan
form yang harus di isi,
berupa username dan
password
Post condition Kondisi sukses
Sistem akan menampilkan
pop up yang
memberitahukan
bahwasannya login user
telah berhasil dan masuk ke
menu akun
Pada tabel 3.7 dibawah ini adalah penjelasan proses dari use case “Melengkapi Profil”
yang ditunjukkan oleh diagram use case pada gambar 3.3 sebelumnya dimana pada use
case ini mahasiswa pendaftar pertama kali akan diarahkan ke menu profil setelah
berhasil login dengan tujuan agar dapat mencetak kartu peserta dari data profil yang
sudah dilengkapi.
Tabel 3.7 Narrative Use Case Melengkapi Profil
Use case name Melengkapi Profil
Actor Mahasiswa
Description Use case menjelaskan bahwa pengguna akan diarahkan ke
menu profil untuk melengkapi informasi terkait data
mahasiswa sebelum mendaftar perlombaan.
29
Precondition Pengguna berhasil login
Typical course of event Aksi Pengguna Respon Sistem
Langkah 1:
Pengguna mengunggah foto
profil dan mengisi data pada
form menu profil
Langkah 2:
Sistem akan menampilkan
foto profil yang sudah
terupload ke sistem dan
menyimpan inputan data
pengguna
Post Condition 1. Kondisi sukses
Pengguna menekan
tombol “simpan” dan
sistem akan menyimpan
foto profil beserta
identitas pengguna
sehingga pengguna
dapat mencetak kartu
pesertanya.
Pada tabel 3.8 dibawah ini adalah penjelasan proses dari use case “List Perlombaan”
yang ditunjukkan oleh diagram use case pada gambar 3.3 sebelumnya dimana pada use
case ini mahasiswa pendaftar bisa langsung mengakses perlombaan mana yang mereka
ingin ikuti.
Tabel 3.8 Narrative Use Case List Perlombaan
Use case name List informasi perlombaan
Actor Mahasiswa
Description Use case menjelaskan bahwa pengguna akan melihat
informasi detail tentang perlombaan apa saja yang
tersedia.
Precondition Pengguna melengkapi profil dan menuju menu
30
Perlombaan
Typical course of event Aksi Pengguna Respon Sistem
Langkah 1:
Pada menu akun pengguna
memilih menu perlombaan
Langkah 2:
Sistem akan menampilkan
informasi detail
perlombaan baik dari kuota
peserta hingga syarat
kriteria calon kandidat
Post Condition 1. Kondisi sukses
Pengguna menekan
salah satu bidang
perlombaan yang
mereka diinginkan
Selanjutnya pada tabel 3.9 dibawah ini adalah penjelasan proses dari use case “Daftar
Lomba” yang ditunjukkan oleh diagram use case pada gambar 3.3 sebelumnya dimana
pada use case ini mahasiswa pendaftar akan mengkonfirmasi untuk ikut serta dalam
perlombaan yang dipilihnya dilengkapi informasi kriteria yang harus dipenuhi.
Tabel 3.9 Narrative Use Case Mendaftarkan Diri
Use case name Mendaftarkan Diri
Actor Mahasiswa
Description Use case menjelaskan bahwa pengguna akan mendaftarkan
diri pada salah satu perlombaan yang mereka inginkan
Precondition Pengguna berhasil masuk ke detail perlombaan
Typical course of event Aksi Pengguna Respon Sistem
31
Langkah 1:
Menekan tombol detail pada
bidang perlombaan
Langkah 2:
Sistem akan menampilkan
beberapa kriteria syarat bagi
kandidat peserta
Langkah 3:
Pengguna menekan tombol
“Daftar” pada detail
perlombaan
Langkah 4:
Sistem akan menampilkan
file apa saja yang harus di
unggah ke sistem yang
merupakan bagian dari
kriteria yang sudah
disebutkan
Post Condition 1. Kondisi sukses
Pengguna menekan
tombol “simpan” dan
sistem akan menyimpan
berkas dokumen yang di
unggah ke database
sehingga admin bisa
memberi penilaian
terhadap dokumen
pengguna
Pada tabel 3.10 dibawah ini adalah penjelasan proses dari use case “Cetak Kartu
Peserta” yang ditunjukkan oleh diagram use case pada gambar 3.3 sebelumnya dimana
pada use case ini dijelaskan bagaimana pendaftar mencetak kartu pesertanya.
Tabel 3.10 Narrative Use Case Cetak Kartu Peserta
Use case name Cetak Kartu Peserta
Actor Mahasiswa
32
Description Use case menjelaskan bahwa pengguna akan mencetak
kartu peserta untuk dapat mengikuti serangkaian tes.
Precondition Pengguna berhasil mendaftarkan diri pada salah satu
perlombaan
Typical course of event Aksi Pengguna Respon Sistem
Langkah 1:
Pengguna menekan tombol
“Cetak Kartu”
Langkah 2:
Sistem akan otomatis
membuka tab baru dan
menampilkan preview kartu
peserta yang berisikan
identitas pendaftar yang
sebelumnya sudah
dilengkapi pada menu profil
Post Condition 1. Kondisi sukses
Pengguna menekan
tombol “Print” maka
sistem akan otomatis
mencetak kartu peserta
Pada tabel 3.11 dibawah ini adalah penjelasan proses dari use case “Kelola Data
Lomba” yang ditunjukkan oleh diagram use case pada gambar 3.3 sebelumnya dimana
pada use case ini menjelaskan bagaimana admin mengelola sistem seleksi perlombaan
mulai dari mengelola perlombaan, kriteria, bobot kriteria hingga file informasi yang
dapat dilihat oleh mahasiswa pendaftar.
33
Tabel 3.11 Narrative Use Case Kelola Data Lomba
Use case name Kelola Data Lomba
Actor Admin
Description Use case menjelaskan bahwa proses Create Read Update
Delete (CRUD) pada sistem sepenuhnya dilakukan oleh
admin mulai dari memasukkan info kompetisi,
memasukkan kriteria, memasukkan nilai per kriteria,
hingga mengumumkan hasil seleksi
Pre condition Admin telah masuk ke panel admin
Typical course of event Aksi admin Respon sistem
Langkah 1 :
Pada panel admin, pilih
menu perlombaan
Langkah 2 :
Menampilkan data
perlombaan dilengkapi
dengan button create, read,
update dan delete
Langkah 3 :
Menekan tombol “Tambah”
untuk menambah data
perlombaan
Langkah 4 :
Menampilkan form inputan
detail perlombaan meliputi
nama kompetisi, kuota
peserta dan status
perlombaan (aktif/tidak
aktif)
Langkah 5 :
Menekan tombol “Simpan”
untuk menyimpan data
perlombaan kedalam sistem
database
Langkah 6 :
Direct ke halaman menu
perlombaan kembali dengan
menampilkan (read) inputan
yang sudah tersimpan dan
dilengkapi dengan button
“Edit” dan “Hapus”
Langkah 7 :
Menekan tombol “Kriteria”
lalu menekan tombol
Langkah 8 :
Menampilkan form inputan
kriteria meliputi nama
34
“Tambah” untuk menambah
data kriteria perlombaan
kriteria, bobot kriteria,
inputan nilai (ada/tidak ada)
dan upload file (diaktifkan
jika kriteria memerlukan
file lampiran)
Langkah 9 :
Menekan tombol “Simpan”
untuk menyimpan data
kriteria kedalam sistem
database
Langkah 10 :
Direct ke halaman menu
perlombaan kembali dengan
menampilkan (read) inputan
yang sudah tersimpan dan
dilengkapi dengan button
“Edit” dan “Hapus”
Selanjutnya pada tabel 3.12 dibawah ini adalah penjelasan proses dari use case
“Rekomendasi Peserta” yang ditunjukkan oleh diagram use case pada gambar 3.3
sebelumnya dimana pada use case ini menjelaskan bagaimana menemukan
rekomendasi kandidat terpilih oleh sistem beserta analisis perbandingan kedua metode
yang digunakan.
Tabel 3.12 Narrative Use Case Rekomendasi Peserta
Use case name Rekomendasi Peserta
Actor Admin
Description Use case menjelaskan bahwa admin akan melihat nama
kandidat peserta lomba yang direkomendasikan oleh
sistem dengan menggunakan perhitungan metode
Weighted Product (WP) yang selanjutnya akan dianalisis
perbandingan hasil dengan metode Technique for Order
by Similarity to Ideal Solution (TOPSIS)
Precondition Mahasiswa telah mendaftarkan diri dan telah mengunggah
berkas pendukung serta melakukan serangkaian tes
Typical course of event Aksi Admin Respon Sistem
35
Langkah 1:
Pada panel admin, menekan
tombol “Perhitungan” untuk
menemukan nama alternatif
yang akan
direkomendasikan oleh
sistem
Langkah 3:
Admin menekan tombol
“Pilih” pada salahsatu opsi
perlombaan
Langkah 5:
Admin menekan tombol
“Rincian Nilai” untuk
memberikan nilai per kriteria
kepada masing masing
mahasiswa setelah
mengikuti serangkaian tes
dan menggunggah berkas
untuk diberi penilaian lalu
menekan tombol “Simpan”
untuk menyimpan nilai
kriteria ke sistem database
Langkah 2:
Sistem akan menampilkan
opsi pada perlombaan apa
yang akan dipilih untuk
ditemukan rekomendasi
pesertanya
Langkah 4:
Sistem akan menampilkan
nama mahasiswa yang telah
mendaftarkan diri pada
perlombaan tersebut
dilengkapi button rincian
nilai
Langkah 6:
Sistem akan menampilkan
form inputan nilai per
kriteria dilengkapi dengan
button “Simpan”
36
Langkah 7:
Admin menekan tombol
“Hitung” untuk menemukan
kandidat peserta yang
direkomendasikan
Langkah 8:
Sistem melakukan
perhitungan dan
menampilkan
rekomendasi peserta
berdasarkan perankingan
dilengkapi dengan
pembuktian perhitungan
algoritma yang digunakan.
Pada tabel 3.13 dibawah ini adalah penjelasan proses dari use case “Pengumuman”
yang ditunjukkan oleh diagram use case pada gambar 3.3 sebelumnya dimana pada use
case ini dijelaskan bagaiamana proses admin menyampaikan hasil keputusan peserta
terpilih yang direkomendasikan oleh sistem ke akun mahasiswa pendaftar.
Tabel 3.13 Narrative Use Case Pengumuman
Use case name Pengumuman
Actor Admin
Description Use case menjelaskan bahwa admin akan
mengumumkan hasil seleksi agar bisa dilihat oleh
mahasiswa pada akun mereka masing-masing
Precondition Admin telah menekan button “Hitung”
Typical course of event Aksi admin Respon sistem
Langkah 1 :
Admin menekan tombol
“Umumkan”
Langkah 2 :
Sistem akan menampilkan
pop up “berhasil” dan
37
secara otomatis
pengumuman bisa dilihat
pada masing masing akun
mahasiswa
Pada tabel 3.14 dibawah ini adalah penjelasan proses dari use case “Log Out” yang
ditunjukkan oleh diagram use case pada gambar 3.3 sebelumnya dimana pada use case
ini dijelaskan bagaimana mahasiswa dan admin keluar dari sistem.
Tabel 3.14 Narrative Use Case Log Out
Use case name Log Out
Actor Mahasiswa, Admin
Description Use case menjelaskan bahwa pengguna baik mahasiswa
dan admin akan keluar dari sistem
Precondition Pengguna saat berada dalam akun masing-masing
Typical Course of Event Aksi pengguna Respon sistem
Langkah 1:
Pengguna menekan tombol
“Log Out”
Langkah 2:
Sistem akan menampilkan
pop up “Logout Success”
dan otomatis direct ke
home page bagi
mahasiswa sedangkan
bagi admin akan otomatis
direct ke login page
administrator
38
3.2.3 Activity Diagram
Activity diagram adalah sebuah diagram yang menggambarkan keseluruhan workflow
(aliran) suatu sistem dari awal hingga akhir. Diagram aktivitas digunakan untuk
mempermudah memahami sebuah proses. Dalam hal ini, activity diagram digunakan
untuk mendeskripsikan aktifitas-aktifitas yang dapat dikerjakan oleh sebuah sistem
bukan digunakan untuk mendeskripsikan aktifitas yang dikerjakan oleh pengguna
sistem. Adapun activity diagram sistem ini dapat diperhatikan pada gambar 3.4.
Gambar 3.4 Activity Diagram Sistem Penentuan Kandidat Peserta
3.2.4 Sequence Diagram
Sequence diagram adalah sebuah diagram yang digunakan untuk mendeskripsikan atau
menggambarkan bagaimana objek-objek dalam sistem saling berinteraksi dalam suatu
39
rangkaian atau skenario yang dieksekusi untuk menghasilkan suatu output. Sequence
diagram sistem ini digambarkan seperti gambar 3.5.
Gambar 3.5 Sequence diagram sistem penentuan kandidat peserta lomba
3.3 Flowchart
Flowchart dapat didefinisikan sebagai bagan alir yang berisi simbol-simbol ataupun
lambang-lambang yang digunakan untuk menjelaskan urutan aliran proses sebuah
algoritma secara jelas dan terperinci.
3.3.1 Flowchart Pengguna Sistem Rekomendasi Kandidat Peserta Lomba
Ketika website diakses si pengguna, maka yang akan pertama kali ditampilkan adalah
halaman home. Di dalam halaman home, akan diberikan informasi pembukaan
perlombaan beserta kuota pesertanya. Jika pengguna ingin mendaftarkan diri ke salah
satu perlombaan yang tersedia, maka pengguna harus terlebih dahulu membuat akun
dan login ke sistem. Tepat pada menu akun, pengguna akan bisa mendaftarkan diri dan
melihat kriteria syarat apa saja untuk dapat mengikutinya, meliputi upload berkas
pendukung dan serangkaian tes (offline tes). Setelah selesai tes, nilai akan diteruskan
ke admin yang selanjutnya admin akan memasukkan nilai per kriteria masing-masing
40
mahasiswa. Lalu admin akan mengoperasikan sistem agar melakukan perhitungan SPK
(Sistem Pendukung Keputusan), hasil output berupa nama kandidat yang
direkomendasikan oleh sistem dilengkapi pembuktian perhitungan metode SPK (Sistem
Pendukung Keputusan) yang digunakan. Selanjutnya admin mengumumkan hasil
seleksi yang nantinya secara otomatis akan dapat dilihat di menu pengumuman pada
akun masing-masing mahasiswa. Pada gambar 3.6 digambarkan diagram alir sistem
rekomendasi pemilihan kandidat peserta.
Gambar 3.6 Flowchart Sistem Rekomendasi kandidat Peserta Lomba
41
3.3.2 Flowchart Weighted Product (WP)
Pada gambar 3.7 digambarkan flowchart pendukung keputusan menggunakan metode
Weighted Product (WP) untuk menentukan rekomendasi kandidat peserta lomba.
Berikut adalah flowchart metode WP yang akan diimplementasikan kedalam sistem.
Gambar 3.7 Flowchart Metode Weighted Product (WP)
Terlihat pada gambar diatas, pada metode WP bobot awal akan dilakukan perbaikan
(normalisasi) untuk mendapatkan bobot baru. Selanjutnya sistem akan mencari nilai
vektor s dengan memangkatkan dan mengkalikan nilai alternatif per kriteria dengan
bobot yang sudah dinormalisasi sebelumnya. Selanjutnya sistem akan menentukan nilai
vektor v yang didapatkan dari hasil prmbagian nilai vektor s dengan total seluruh nilai
vektor s hingga akhirnya nilai vektor v yang terbesar yang akan dijadikan alternatif
terbaik untuk direkomendasikan.
42
3.3.3 Flowchart Technique for Order by Similarity to Ideal Solution (TOPSIS)
Selanjutnya pada gambar 3.8 merupakan flowchart pendukung keputusan menggunakan
metode TOPSIS dalam merekomendasikan kandidat peserta lomba. Berikut adalah
flowchart metode TOPSIS yang akan akan dianalisis hasil perbandingannya dengan
metode WP.
Gambar 3.8 Flowchart Metode TOPSIS
Pada gambar flowchart diatas terlihat bahwa pada metode TOPSIS langkah awal sama
dengan metode WP yaitu penentuan kriteria dan bobot kriterianya. Hanya saja
perbedaannya pada metode TOPSIS, nilai alternatif per kriteria akan dijadikan dalam
bentuk matriks, selanjutnya nilai matriks dan bobotnya dinormalisasi untuk
mendapatkan matriks ideal positif/negatif. Dimana matriks ideal positif merupakan nilai
maksimum dari normalisasi bobot dan matriks ideal negatif merupakan nilai
minimumnya. Selanjutnya sistem akan mencari jarak solusi dan memproses nilai
preferensi, hingga akhirnya alternatif dengan nilai preferensi terbesar yang akan
dijadikan sebagai alternatif terbaik.
43
3.3.4 Flowchart Admin Pengguna Sistem Rekomendasi Peserta Lomba
Diagram alir bagaimana proses perhitungan menggunakan algoritma WP yang
kemudian dibandingkan dengan algoritma TOPSIS ditunjukkan pada gambar 3.9.
Proses penentuan kandidat peserta dimulai ketika admin memasukkan nilai per kriteria
masing-masing mahasiswa. Kemudian sistem akan memproses dengan algoritma WP
dilengkapi dengan pembuktian perhitungan beserta rumus metodenya. Lalu sistem akan
menampilkan nama rekomendasi peserta lomba berdasarkan perankingan yang
selanjutnya akan di analisis perbandingan hasil output pada metode TOPSIS.
Gambar 3.9 Flowchart Admin Pengguna Sistem Rekomendasi Peserta
44
3.4 Perancangan Antarmuka (Interface) Sistem
Perancangan antarmukan (interferensi) merupakan tahapan yang ditujukan untuk
membuat gambaran rancangan sistem yang akan dibuat ke dalam tahapan implementasi
dan pengujian.
3.4.1 Halaman Home
Halaman Home merupakan halaman yang menampilkan informasi pembukaan
perlombaan kepada pengguna aplikasi. Pada halaman ini terdapat dua buah tombol
yang digunakan untuk registrasi dan login ke sistem dan tombol lihat untuk
menampilkan info kriteria kandidat. Rancangan tampilan halaman welcome dapat
diperhatikan pada gambar 3.10.
Gambar 3.10 Rancangan Halaman Home
Keterangan gambar :
1. Img src, untuk menampilkan gambar
2. Heading tag, berisi ucapan selamat datang
3. Button login & register, untuk membuat akun dan masuk ke sistem secara popup
4. Table, untuk menampilkan info perlombaan
5. Button lihat, untuk menampilkan info kriteria kandidat secara popup
45
3.4.2 Halaman Menu Profil
Halaman menu profil adalah halaman yang berisi identitas data diri mahasiswa. Pada
halaman ini akan menampilkan inputan data yang akan digunakan untuk pencetakan
data pada kartu peserta. Rancangan tampilan menu profil digambarkan pada gambar
3.11.
Gambar 3.11 Rancangan Halaman Menu Profil
Keterangan gambar :
1. Menu area, berisi panel pilihan menu
2. Heading tag, untuk menampilkan teks
3. Button, digunakan untuk mengupload foto profil
4. Input form, digunakan untuk menampung inputan teks
5. Button, digunakan untuk menyimpan data kedalam database
3.4.3 Halaman Menu Perlombaan
Halaman menu perlombaan adalah halaman yang menampilkan data perlombaan
dilengkapi dengan tombol detail untuk mendaftarkan diri, file info yang bisa di unduh
serta tombol cetak kartu yang berfungsi mencetak kartu peserta untuk tes tertulis
46
maupun tes praktik. Rancangan tampilan menu perlombaan digambarkan pada gambar
3.12.
Gambar 3.12 Rancangan Halaman Menu Perlombaan
Keterangan gambar :
1. Menu area, berisi panel pilihan menu
2. Heading tag, untuk menampilkan teks
3. Button, untuk menampilkan detail sekaligus mendaftarkan diri
4. Table, untuk menampilkan info perlombaan dan info lainnya berupa file
5. Button, digunakan untuk mencetak kartu peserta
3.4.4 Halaman Menu Perlombaan Bagian Upload Berkas
Halaman upload berkas adalah halaman yang ditampilkan setelah pengguna menekan
tombol “detail” lalu mendaftarkan diri. Pada halaman ini akan ditampilkan kriteria yang
membutuhkan file lampiran beserta tombol unggah dan tombol simpan, lalu diikuti lagi
dengan tabel info file beserta cetak kartu peserta. Rancangan tampilan halaman unggah
berkas digambarkan seperti pada gambar 3.13.
47
Gambar 3.13 Rancangan Halaman Menu Perlombaan Bagian Upload
Keterangan gambar :
1. Menu area, berisi panel pilihan menu
2. Heading tag, untuk menampilkan teks
3. Get data, untuk menampilkan kriteria yang sudah tersimpan di database
4. Button, untuk mengupload berkas lampiran
5. Button, digunakan untuk menyimpan berkas lampiran kedalam database
6. Table, untuk menampilkan info lainnya berupa file
7. Button, digunakan untuk mencetak kartu peserta
3.4.5 Halaman Menu Pengumuman
Halaman menu pengumuman adalah halaman yang akan menampilkan dropdown
pilihan nama lomba yang ingin dilihat siapa saja kandidat peserta terpilih yang
direkomendasikan oleh sistem. Rancangan tampilan halaman menu pengumuman
digambarkan pada gambar 3.14.
48
Gambar 3.14 Rancangan Halaman Menu Pengumuman
Keterangan gambar :
1. Menu area, berisi panel pilihan menu
2. Heading tag, untuk menampilkan teks “Pengumuman”
3. Label, untuk menampilkan teks “Perlombaan”
4. Form control, untuk menampilkan daftar perlombaan mana yang ingin dilihat
3.4.6 Rancangan Menu Login Admin
Halaman login admin merupakan halaman yang terpisah dengan halaman pengguna
sistem, dikarenakan hanya admin yang memiliki akses penuh terhadap pengelolaan data
sistem. Pada halaman login admin, akan menampilkan form input username dan
password yang sudah ditentukan serta tombol login untuk masuk ke sistem. Adapun
rancangan tampilan menu login admin sistem ini dapat dilihat pada gambar 3.15.
49
Gambar 3.15 Rancangan Halaman Login Admin
Keterangan gambar :
1. Heading tag, bertuliskan nama sistem pendukung keputusan
2. Img src, untuk menampilkan gambar
3. Form, untuk menentukan character encoding yang diterima oleh server sebelum
form dikirim
4. Input, untuk menerima inputan teks
5. Button, digunakan untuk masuk ke sistem bila username dan password benar
3.4.7 Halaman Menu Perlombaan (Admin)
Halaman menu perlombaan (admin) adalah halaman untuk mengelola data perlombaan,
mulai dari menambah perlombaan dan kriteria, mengedit perlombaan dan kriteria
hingga menghapus perlombaan dan kriteria. Pada menu ini akan ditampilkan data dalam
bentuk tabel dengan tombol CRUD serta dilengkapi dengan fitur show data-table dan
search data-table. Rancangan tampilan menu perlombaan dapat dilihat pada gambar
3.16.
50
Gambar 3.16 Rancangan Halaman Menu Perlombaan (Admin)
Keterangan gambar :
1. Heading tag, bertuliskan nama sistem pendukung keputusan
2. Img src, untuk menampilkan gambar
3. Button, untuk menambah data perlombaan
4. Navbar, berisi menu navigasi ke beberapa halaman dan fungsi logout
5. Search datatables, digunakan untuk mencari data berdasarkan inputan teks
6. Show datatables, digunakan untuk menampilkan data berdasarkan jumlah kolom
7. Button, digunakan untuk mengedit data perlombaan
8. Button, digunakan untuk menghapus data perlombaan
9. Button, digunakan untuk mengelola data kriteria, baik menambah, mengedit
ataupun menghapus
10. Button, digunakan untuk menampilkan entri selanjutnya
11. Button, digunakan untuk menampilkan entri sebelumnya
3.4.8 Halaman Menu File Info
Halaman menu file info adalah halaman yang digunakan untuk mengelola informasi
tambahan seperti jadwal pelaksanaan tes, formulir, dan lainnya. Pada halaman ini,
admin akan mengupload beberapa berkas yang nantinya bisa diunduh oleh mahasiswa
51
pada menu akun mereka masing-masing. Rancangan tampilan menu file info
digambarkan seperti gambar 3.17.
Gambar 3.17 Rancangan Halaman Menu File Info
Berdasarkan gambar 3.17 maka dapat dijelaskan :
1. Heading tag, bertuliskan nama sistem pendukung keputusan
2. Img src, untuk menampilkan gambar
3. Button, untuk menambah data file info
4. Navbar, berisi menu navigasi ke beberapa halaman dan fungsi logout
5. Search datatables, digunakan untuk mencari data berdasarkan inputan teks
6. Show datatables, digunakan untuk menampilkan data berdasarkan jumlah kolom
7. Button, digunakan untuk mengedit data file info
8. Button, digunakan untuk menghapus data file info
9. Button, digunakan untuk menampilkan entri sebelumnya
10. Button, digunakan untuk menampilkan entri selanjutnya
3.4.9 Halaman Menu Perhitungan dan Hasil WP
Halaman menu perhitungan adalah halaman yang digunakan untuk menemukan
kandidat peserta lomba yang direkomendasikan oleh sistem dengan algoritma weighted
product. Pada halaman ini, admin akan memasukkan nilai per kriteria dari serangkaian
tes yang sudah dilalui mahasiswa kedalam tombol “rincian nilai”. Setelah semua nilai
52
sudah tersimpan, maka admin akan menekan tombol “hitung” untuk mendapatkan
output nama yang direkomendasikan. Rancangan tampilan menu perhitungan weighted
product digambarkan seperti gambar 3.18 dan output pada gambar 3.19
Gambar 3.18 Rancangan Halaman Menu Perhitungan
Pada gambar rancangan diatas adalah halaman yang akan menampilkan sekumpulan
nama mahasiswa pendaftar terhadap suatu bidang perlombaan yang nantinya akan
dicari rekomendasi pesertanya dengan menekan tombol “hitung”
Gambar 3.19 Output Rekomendasi Peserta Setelah Klik Button Hitung
53
Berdasarkan gambar 3.18 dan 3.19 maka dapat dijelaskan :
1. Heading tag, bertuliskan nama sistem pendukung keputusan
2. Img src, untuk menampilkan gambar
3. Search datatables, digunakan untuk mencari data berdasarkan inputan teks
4. Navbar, berisi menu navigasi ke beberapa halaman dan fungsi logout
5. Show datatables, digunakan untuk menampilkan data berdasarkan jumlah kolom
6. Button, digunakan untuk CRUD kriteria
7. Button, digunakan untuk menampilkan entri selanjutnya
8. Button, digunakan untuk menampilkan entri sebelumnya
9. Button, digunakan untuk memproses perhitungan Weighted Product
10. Data tables, untuk menampilkan data output normalisasi bobot
11. Get data, untuk menampilkan proses perhitungan secara detail sesuai rumus
12. Microtime, digunakan untuk mengukur kecepatan eksekusi program
13. Data tables, untuk menampilkan data rekomendasi kandidat peserta lomba
14. Button, digunakan untuk mengumumkan hasil seleksi kandidat ke pengguna
15. Button, untuk menganalisis perbandingan dengan metode TOPSIS
3.4.10 Halaman Menu Hasil Topsis
Halaman menu hasil topsis adalah halaman untuk menganalisis perbandingan dengan
metode topsis. Pada halaman ini, admin bisa mengetahui perbandingan mulai dari
output ranking, output alternatif yang dihasilkan hingga kecepatan eksekusi program.
Rancangan tampilan menu hasil topsis dapat dilihat pada gambar 3.20.
54
Gambar 3.20 Rancangan Halaman Menu Hasil Topsis
Berdasarkan gambar 3.20 maka dapat dijelaskan :
1. Heading tag, bertuliskan nama sistem pendukung keputusan
2. Img src, untuk menampilkan gambar
3. Button, digunakan untuk perhitungan tahap demi tahapan sesuai algoritma
4. Button, digunakan untuk mengelola data kriteria
5. Button, untuk memproses perhitungan keseluruhan metode TOPSIS
6. Button, digunakan untuk mengelola data alternatif
7. Heading tag, digunakan untuk menampilkan teks “Nilai Preferensi”
8. Button, digunakan untuk memberi nilai per kriteria
9. Microtime, digunakan untuk mengukur kecepatan eksekusi program
10. Button, untuk melihat hasil perhitungan TOPSIS tahap demi tahap
11. Table, untuk menampilkan data rekomendasi kandidat peserta lomba
55
3.5 Rancangan Database
Pada sistem yang akan dibangun, akan digunakan MySQL sebagai database
management system. MySQL tergolong sebagai DBMS yang digunakan dalam
mengelola data dengan cara yang sangat fleksibel dan cepat. Bahasa database yang
digunakan pada sistem ini adalah SQL (Structured Query Language) untuk mengakses
database baik query maupun perintah lainnya. Penjelasan basis data yang digunakan
dapat diperhatikan pada tabel 3.15 untuk tabel admin, tabel 3.16 untuk tabel file, tabel
3.17 untuk tabel hitung, tabel 3.18 untuk tabel lomba, tabel 3.19 untuk tabel lomba rinci,
tabel 3.20 untuk tabel mahasiswa pendaftar dan tabel 3.21 untuk tabel users. Selanjutnya
untuk analisis perbandingan, akan di ikuti beberapa tabel yang akan menampung data
serta perhitungan dengan metode TOPSIS yaitu tabel 3.22 untuk tabel alternatif, tabel
3.23 untuk tabel kriteria, tabel 3.24 untuk tabel nilai matriks serta tabel 3.25 untuk tabel
nilai preferensi.
Tabel 3.15 Struktur Database Tabel Admin
Nama Field Deskripsi Tipe Data Keterangan
id_admin ID admin INTEGER PRIMARY KEY
nama_admin Nama admin VARCHAR
username Nama pengguna
admin VARCHAR
Password Kata sandi admin VARCHAR
Jenis enkripsi password yang digunakan pada struktur tabel admin diatas adalah md5
sebagai standar enkripsi yang umum digunakan pada sistem login.
Tabel 3.16 Struktur Database Tabel File
Nama Field Deskripsi Tipe Data Keterangan
id_file ID file info INTEGER PRIMARY KEY
nama_file Nama file info.
contohnya file
jadwal tes, file
formulir, dan
lainnya
VARCHAR
file File yang
diunggah ke
sistem
VARCHAR
56
Jenis file yang bisa disimpan pada struktur tabel file diatas adalah jenis file dengan
bermacam format seperti pdf, docx, jpg, png dan lainnya
Tabel 3.17 Struktur Database Tabel Hitung
Nama Field Deskripsi Tipe Data Keterangan
id_hitung ID perhitungan INTEGER PRIMARY KEY
id_user ID pengguna INTEGER FOREIGN KEY
id_lomba ID lomba yang di
ikuti INTEGER FOREIGN KEY
vektor_s Hasil perolehan
nilai vektor s
FLOAT
vektor_v Hasil perolehan
nilai vektor v
FLOAT
Pada struktur tabel hitung, field id_user merupakan kunci tamu (foreign key) dari tabel
users yang saling berelasi sedangkan field id_lomba merupakan kunci tamu dari tabel
lomba
Tabel 3.18 Struktur Database Tabel Lomba
Nama Field Deskripsi Tipe Data Keterangan
id_lomba ID perlombaan INTEGER PRIMARY KEY
lomba Nama perlombaan VARCHAR
kuota Kuota peserta INTEGER
Status Status perlombaan
apakah aktif atau
tidak aktif
TINYINT
Pengumuman Pengumuman hasil
rekomendasi
kandidat oleh
sistem
INTEGER
Pada struktur tabel lomba, field id_lomba merupakan kunci unik (primary key) yang
digunakan sebagai relasi antara tabel hitung dan tabel lomba rinci.
57
Tabel 3.19 Struktur Database Tabel Lomba Rinci
Nama Field Deskripsi Tipe Data Keterangan
id_lomba_rinci ID perlombaan
rinci INTEGER PRIMARY KEY
id_lomba ID perlombaan INTEGER FOREIGN KEY
Kriteria Kriteria peserta VARCHAR
Bobot Bobot kriteria INTEGER
status_nilai Status nilai
diaktifkan bila
kriteria memiliki
unsur penilaian
(ada/tidak ada)
TINYINT
status_upload Status upload
diaktifkan bila
kriteria
memerlukan file
lampiran
(ada/tidak ada)
TINYINT
Pada struktur tabel lomba rinci, field id_lomba merupakan kunci tamu (foreign key)
yang digunakan sebagai relasi dengan tabel lomba sebagai bentuk penjabaran lomba.
Tabel 3.20 Struktur Database Tabel Mahasiswa Pendaftar
Nama Field Deskripsi Tipe Data Keterangan
id_pendaftar ID pendaftar INTEGER PRIMARY KEY
id_user ID pengguna INTEGER FOREIGN KEY
id_lomba ID perlombaan INTEGER FOREIGN KEY
Kriteria Kriteria Peserta VARCHAR
Nilai Nilai yang
diberikan per
kriteria
VARCHAR
File Nilai terhadap file
yang diupload oleh
peserta ke sistem
VARCHAR
Pada struktur tabel mahasiswa pendaftar, field id_user merupakan kunci tamu (foreign
key) dari tabel users yang saling berelasi sedangkan field id_lomba merupakan kunci
tamu dari tabel lomba yang menjadi identitas lomba yang dipilih oleh mahasiswa
pendaftar
58
Tabel 3.21 Struktur Database Tabel Users
Nama Field Deskripsi Tipe Data Keterangan
id_user ID pengguna INTEGER PRIMARY KEY
nama_lengkap Nama lengkap
pengguna VARCHAR
username Nama pengguna
untuk masuk ke
sistem
VARCHAR
Password Kata sandi
pengguna untuk
masuk ke sistem
VARCHAR
Nim Nomor induk
mahasiswa
VARCHAR
Prodi Program studi
pengguna sistem
VARCHAR
Angkatan Tahun Angkatan
masuk mahasiswa
VARCHAR
no_hp Nomor handphone
pengguna
VARCHAR
Email Email pengguna
sistem
VARCHAR
Foto Foto profil
pengguna sistem
VARCHAR
Pada struktur tabel users, field id_users merupakan kunci unik (primary key) yang
digunakan sebagai relasi dengan tabel mahasiswa pendaftar untuk keperluan data diri
dan cetak kartu peserta.
Tabel 3.22 Struktur Database Tabel Alternatif
Nama Field Deskripsi Tipe Data Keterangan
id_alternatif ID alternatif VARCHAR PRIMARY KEY
nm_alternatif Nama kandidat
alternatif
VARCHAR
Pada struktur tabel alternatif, field id_alternatif merupakan kunci unik (primary key)
yang digunakan sebagai relasi dengan tabel nilai matriks untuk identitas alternatif guna
pencarian nilai matriks.
59
Tabel 3.23 Struktur Database Tabel Kriteria
Nama Field Deskripsi Tipe Data Keterangan
id_kriteria ID kriteria VARCHAR PRIMARY KEY
nama_kriteria Nama kriteria VARCHAR
Bobot Bobot kriteria DOUBLE
poin1 Nilai opsi pertama DOUBLE
poin2 Nilai opsi kedua DOUBLE
poin3 Nilai opsi ketiga DOUBLE
poin4 Nilai opsi keempat DOUBLE
poin5 Nilai opsi kelima DOUBLE
Sifat Sifat kriteria
(benefit/cost)
VARCHAR
Pada struktur tabel kriteria, field id_kriteria merupakan kunci unik (primary key) yang
digunakan sebagai relasi dengan tabel nilai matriks untuk identitas kriteria guna
pencarian nilai matriks.
Tabel 3.24 Struktur Database Tabel Nilai Matriks
Nama Field Deskripsi Tipe Data Keterangan
id_matrik ID matriks INTEGER PRIMARY KEY
id_alternatif ID alternatif VARCHAR FOREIGN KEY
id_kriteria ID kriteria VARCHAR FOREIGN KEY
Nilai Nilai kriteria yang
diberikan
DOUBLE
Pada struktur tabel nilai matriks, field id_alternatif merupakan kunci tamu (foreign key)
dari tabel alternatif yang saling berelasi sedangkan field id_kriteria merupakan kunci
tamu dari tabel kriteria.
Tabel 3.25 Struktur Database Tabel Nilai Preferensi
Nama Field Deskripsi Tipe Data Keterangan
id_pre ID preferensi INTEGER PRIMARY KEY
nm_alternatif Nama kandidat
alternatif yang
ditampilkan setelah
diproses
perhitungan metode
VARCHAR FOREIGN KEY
60
Nilai Nilai preferensi
yang diperoleh
setelah diproses
perhitungan metode
DOUBLE FOREIGN KEY
Pada struktur tabel nilai preferensi, field nm_alternatif merupakan kunci tamu (foreign
key) yang digunakan sebagai relasi dengan tabel alternatif guna penyesuaian nama
alternatif dengan nilai preferensinya masing masing.
Gambar 3.21 Relasi tabel sistem database
Berdasarkan beberapa tabel tersebut maka dapat dibentuk relationships antara tabel-
tabel untuk memudahkan manipulasi. Adapun relasi database pada sistem ini mengacu
pada gambar 3.22 diatas, dapat dilihat bahwa hubungan antara mahasiswa pendaftar
dengan file dan lomba adalah 1 to many di mana, satu pendaftar dapat mendaftar banyak
perlombaan dan dapat mengakses banyak file info. Lalu hubungan antara lomba dengan
lomba rinci adalah many to many dimana, banyak perlombaan dapat memiliki banyak
kriteria yang berbeda beda. Adapun hubungan antara tabel admin dengan file, dan tabel
lomba adalah 1 to many dimana, satu admin dapat menambah banyak file dan
menambah banyak perlombaan. Pada gambar 3.22 juga menunjukkan beberapa field
yang saling berhubungan.
BAB 4 IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi Sistem
Implementasi sistem merupakan tahap realisasi atau tahap penerapan analisis dan
rancangan sistem. Dalam penelitian ini, implementasi sistem akan dilakukan dengan
pemrograman PHP, Javascript dan MySQL sebagai sistem manajemen databasenya.
4.1.1 Halaman Menu Home
Pada menu home akan ditampilkan informasi perlombaan terupdate dilengkapi dengan
tombol register, login serta tombol kriteria peserta. Menu home adalah menu yang akan
ditampilkan pertama sekali ketika mengakses website. Halaman home dapat dilihat
pada gambar 4.1.
Gambar 4.1 Tampilan halaman Home
4.1.2 Halaman Menu Profil
Menu profil adalah halaman menu pada akun pengguna yang akan ditampilkan pertama
sekali setelah pengguna berhasil register dan masuk kedalam sistem. Tampilan menu
profil dapat perhatikan pada gambar 4.2.
62
Gambar 4.2 Tampilan halaman menu Profil
4.1.3 Halaman Menu Perlombaan
Menu perlombaan adalah salah satu menu pada akun pengguna yang akan ditampilkan
setelah pengguna berhasil register dan masuk kedalam sistem. Halaman ini digunakan
untuk mendaftar lomba, mengupload berkas pendukung serta mencetak kartu peserta.
Tampilan menu perlombaan dapat perhatikan pada gambar 4.3 dan 4.4.
Gambar 4.3 Tampilan halaman menu Perlombaan
63
Setelah menekan tombol detail, akan ditampilkan halaman untuk mendaftarkan diri lalu
akan diarahkan ke halaman upload berkas bila salah satu pada kriteria memiliki unsur
penilaian yang sifatnya lampiran file
Gambar 4.4 Tampilan lanjutan halaman menu Perlombaan
4.1.4 Halaman Menu Pengumuman
Dalam akun pengguna, juga akan ditampilkan halaman menu pengumuman yang
digunakan untuk melihat kandidat peserta yang terpilih sesuai rekomendasi sistem. Pada
halaman ini akan ditampilkan opsi pilihan lomba mana yang akan dilihat peserta yang
lulus setelah melewati serangkaian tes. Berikut hasil implementasi pada gambar 4.5.
Gambar 4.5 Tampilan halaman menu Pengumuman
64
4.1.5 Halaman Login Admin
Halaman login admin adalah halaman yang terpisah dari halaman pengguna namun
masih pada routing yang sama untuk kesatuan sistem yang utuh. Halaman ini digunakan
sebagai akses masuk admin untuk mengelola sistem. Adapun tampilan halaman ini
adalah seperti pada gambar 4.6.
Gambar 4.6 Tampilan halaman login admin
4.1.6 Halaman Menu Perlombaan (Admin)
Halaman menu perlombaan adalah halaman bagi admin untuk mengelola data
perlombaan mulai dari menambah perlombaan, mengedit, menghapus hingga
mengelola kriteria setiap perlombaan. Pada halaman ini akan ditampilkan tombol
CRUD untuk mengelolanya. Adapun tampilan halaman ini adalah seperti pada gambar
4.7.
65
Gambar 4.7 Tampilan halaman menu perlombaan
4.1.7 Halaman Menu File Info
Halaman menu file info adalah halaman yang memungkinkan admin untuk mengelola
file info yang digunakan sebagai informasi tambahan berupa file yang bisa di download
oleh mahasiswa dengan berbagai ekstensi file. Berikut gambar 4.8 adalah hasil
implementasinya.
Gambar 4.8 Tampilan halaman menu file info
66
4.1.8 Halaman Menu Perhitungan
Halaman menu perhitungan adalah halaman yang digunakan untuk menemukan
kandidat peserta yang direkomendasi oleh sistem sekaligus untuk menganalisis
perbandingan kedua metode. Tombol rincian nilai digunakan untuk memasukkan nilai
per kriteria sebelum menekan tombol hitung. Berikut gambar 4.9 adalah tampilannya.
Gambar 4.9 Tampilan halaman menu perhitungan
4.2 Pengujian
4.2.1 Pengujian Sistem Pendukung Keputusan Penentuan Kandidat Peserta Lomba
a) Pengujian I (Metode Weighted Product)
Gambar 4.10 merupakan halaman tampilan input perlombaan. Disini akan
dilakukan pengujian dengan menambah satu perlombaan berjudul “Web
Development Competition” dengan kuota peserta sebanyak 3 orang dengan status
perlombaan yang aktif serta dilakukan terhadap 7 mahasiswa pendaftar.
67
Gambar 4.10 Tampilan Input perlombaan, kuota peserta dan status perlombaan
Setelah admin menambahkan info perlombaan, selanjutnya admin menambahkan
data kriteria, bobot kriteria, inputan nilai bila memiliki unsur penilaian dan upload
file bila kriteria memerlukan file lampiran. Gambar 4.11 merupakan tampilan
kriteria yang digunakan dalam penentuan kandidat peserta.
Gambar 4.11 Tampilan kriteria beserta bobot perlombaan
Jika 7 mahasiswa pendaftar telah mengupload berkas pendukung kedalam sistem
dan telah melewati serangkaian tes baik teori maupun praktik yang merupakan
68
bagian dari kriteria yang sudah dibuat sebelumnya oleh admin, maka admin akan
memberi penilaian terhadap berkas yang diunggah serta penilaian terhadap tes teori
dan praktik dari mahasiswa pendaftar kedalam rincian nilai. Gambar 4.12
merupakan penilaian yang diberikan kepada salah satu dari 7 mahasiswa pendaftar.
Gambar 4.12 Tampilan Penilaian Kriteria (Weighted Product)
Setelah admin memberikan penilaian kriteria terhadap 7 mahasiswa pendaftar,
maka selanjutnya admin menekan tombol hitung untuk melihat hasil perhitungan
sesuai algoritma weighted product. Gambar 4.13 merupakan tampilan hitung
mahasiswa pendaftar.
69
Gambar 4.13 Tampilan hitung mahasiswa pendaftar
Setelah admin menekan tombol hitung, sistem akan menampilkan tabel normalisasi
bobot metode weighted product pada gambar 4.14 kemudian dilanjut dengan
menampilkan tabel yang menunjukkan hasil rekomendasi peserta terpilih
berdasarkan perankingan serta dilengkapi dengan kecepatan eksekusi metodenya
pada gambar 4.15.
Gambar 4.14 Tampilan normalisasi bobot
70
Hasil rekomendasi sistem akan terlihat tepat setelah perhitungan normalisasi bobot. Berikut
tampilannya dibawah ini
Gambar 4.15 Tampilan hasil rekomendasi sistem (Weighted Product)
Untuk mengumumkan kandidat peserta yang lulus/terpilih, admin bisa menekan
tombol “Umumkan” agar bisa terlihat di masing-masing akun mahasiswa
pendaftar. Sedangkan untuk menganalisis perbandingan output alternatif, tingkat
akurasi serta kecepatan eksekusi metode, admin bisa menekan tombol “Analisis
perbandingan dengan metode topsis”
b) Pengujian II (Metode TOPSIS)
Untuk pengujian II akan terlihat setelah admin menekan tombol analisis, maka
secara otomatis sistem akan direct ke tab baru pada browser guna memudahkan
analisa perbandingan antara kedua metode. Gambar 4.16 adalah tampilan inputan
nilai kriteria pada metode topsis. Disini akan dimasukkan data yang sama seperti
metode weighted product. Mulai dari alternatif, kriteria, bobot kriteria, hingga nilai
per kriteria yang dimasukkan guna keseimbangan dan kesesuaian data.
71
Gambar 4.16 Tampilan penilaian kriteria (TOPSIS)
Setelah admin sudah mencocokkan dan menyimpan nilai kriteria masing-masing
alternatif, maka admin bisa menuju ke menu “Hasil Topsis” guna menemukan
kandidat peserta yang direkomendasikan oleh metode topsis dilengkapi dengan
tahapan perhitungan algoritma topsis. Berikut gambar 4.17 adalah tampilan hasil
nilai matriks, gambar 4.18 adalah tampilan nilai matriks ternormalisasi, gambar
4.19 adalah tampilan nilai bobot ternormalisasi, gambar 4.20 tampilan matriks ideal
positif/negatif, gambar 4.21 dan 4.22 adalah tampilan jarak solusi ideal
positif/negatif serta gambar 4.23 adalah tampilan hasil topsis secara keseluruhan.
72
Gambar 4.17 Tampilan hasil nilai matriks
Pada gambar diatas menampilkan bahwa hasil nilai per alternatif dalam metode TOPSIS
akan dibuat dalam bentuk matriks oleh sistem
Gambar 4.18 Tampilan hasil nilai matriks ternormalisasi
Terlihat pada gambar diatas merupakan hasil nilai matriks yang dinormalisasi setelah admin
menekan tombol “Nilai Matriks Ternormalisasi”
73
Gambar 4.19 Tampilan hasil nilai bobot ternormalisasi
Pada gambar tersebut terlihat juga bahwa pada metode TOPSIS selain menormalisasi
matriks, maka bobot juga akan dinormalisasi.
Gambar 4.20 Tampilan hasil matriks ideal positif/negatif
Dilihatkan pada gambar diatas merupakan hasil matriks ideal positif yang didapatkan dari
hasil nilai maksimal normalisasi bobot. Sedangkan hasil matriks ideal negatif didapatkan
dari hasil nilai minimal normalisasi bobot.
74
Gambar 4.21 Tampilan hasil jarak solusi ideal positif/negative
Halaman diatas merupakan hasil jarak solusi ideal positif/negative yang didapatkan dari
hasil pengolahan normalisasi bobot dengan matriks ideal positif/negatif
Gambar 4.22 Tampilan lanjutan hasil jarak solusi ideal positif/negative
Gambar diatas merupakan hasil lanjutan jarak solusi ideal dimana jarak solusi ideal negatif
terlihat setelah hasil jarak solusi ideal positif. Perhitungan jarak ideal tersebut dimaksudkan
untuk mencari total dan perankingan sesuai dengan hasil nilai preferensi
75
Kemudian sistem akan menampilkan rekomendasi kandidat peserta dilengkapi
dengan kecepatan eksekusi metode, perangkingan serta nilai preferensi masing-
masing alternatif seperti pada gambar 4.23
Gambar 4.23 Tampilan hasil topsis
4.2.2 Pengujian Manual Pennentuan Kandidat Peserta Lomba Metode Weighted Product
(WP)
Berdasarkan pengujian ke-I sistem terhadap 7 mahasiswa pendaftar dan mengacu pada
gambar 4.13 maka diperoleh sebaran data alternatif yang ditunjukkan pada tabel 4.1.
Tabel 4.1 Alternatif pilihan
Alternatif NIM Nama Mahasiswa Prodi
𝐴1 161401100 Haristia Kumala Ilkom
𝐴2 161401062 Arif Iskandar Ilkom
𝐴3 161402048 Boby Kurniawan TI
𝐴4 161402004 Muhibuddin TI
𝐴5 161401064 Rudianto Sihombing Ilkom
76
𝐴6 161402119 Hadhe Panji Kastowo TI
𝐴7 161401112 Ricky Julpiter Ilkom
Berdasarkan pengujian pertama sistem dan mengacu pada gambar 4.11 maka
didapatkan data pembobotan kriteria yang digunakan dalam menentukan rekomendasi
kandidat peserta yang ditunjukkan pada tabel tabel 4.2.
Tabel 4.2 Pembobotan kriteria
Simbol Kriteria Bobot Jenis
𝐶1 Memahami konsep HTML dan CSS 4 Teori
𝐶2 Menguasai bahasa pemrograman PHP,
Javascript, JQuery dan Ajax
5 Teori
𝐶3 Memahami penggunaan framework
PHP
3 Teori
𝐶4 Memiliki logika, analisa dan problem
solving yang baik
4 Teori
𝐶5 Memahami penggunaan software
Design
3 Teori
𝐶6 Menguasai Object Oriented
Programming (OOP)
5 Teori
𝐶7 Memahami konsep Web Hosting dan
Domain
3 Praktik
𝐶8 Menguasai konsep manajemen database
MySQL
5 Teori
𝐶9 Memahami penggunaan software
Version Control (GIT)
4 Teori
𝐶10 Melampirkan KHS berkaitan dengan
nilai Pemrograman Web
3 Berkas
Pendukung
𝐶11 Penghargaan atau sertifikat bagi yang
pernah mengikuti lomba sejenis
3 Berkas
Pendukung
𝐶12 Mampu berkomunikasi serta
mempresentasikan karya dengan baik
4 Praktik
77
Berdasarkan pengujian kedua sistem dan mengacu pada gambar 4.17 maka didapatkan
data penilaian alternatif per kriteria yang digunakan antara metode weighted product
dan metode topsis guna kesamaan dan kesesuaian nilai untuk analisa perbandingan
ditunjukkan pada tabel tabel 4.3
Tabel 4.3 Nilai Alternatif Per Kriteria.
Alternatif Kriteria
𝑪𝟏 𝑪𝟐 𝑪𝟑 𝑪𝟒 𝑪𝟓 𝑪𝟔 𝑪𝟕 𝑪𝟖 𝑪𝟗 𝑪𝟏𝟎 𝑪𝟏𝟏 𝑪𝟏𝟐
𝑨𝟏 70 70 60 80 70 80 50 80 60 80 70 80
𝑨𝟐 80 80 70 80 90 70 60 70 70 70 80 90
𝑨𝟑 60 70 60 70 90 60 80 70 60 80 80 70
𝑨𝟒 80 90 70 80 80 90 70 70 70 80 60 90
𝑨𝟓 70 90 70 80 50 70 70 80 80 90 50 70
𝑨𝟔 60 50 70 70 80 70 60 80 60 80 70 90
𝑨𝟕 80 60 80 70 60 70 80 70 90 70 70 80
a) Normalisasi bobot kriteria dari masing-masing bobot kriteria.
Normalisasi dilakukan dengan tujuan untuk membandingkan nilai parameter
antara nilai bobot kriteria yang satu dengan yang lain, sehingga total bobot kriteria
∑ 𝑤𝑗 = 1 dengan cara :
𝑤𝑗 = 𝑤𝑗
Σ𝑤𝑗
Menjadi:
𝑊1 = 4
4+5+3+4+3+5+3+5+4+3+3+4 =
4
46 = 0.087
𝑊2 = 5
4+5+3+4+3+5+3+5+4+3+3+4 =
5
46 = 0.1087
𝑊3 = 3
4+5+3+4+3+5+3+5+4+3+3+4 =
3
46 = 0.0652
𝑊4 = 4
4+5+3+4+3+5+3+5+4+3+3+4 =
4
46 = 0.087
𝑊5 = 3
4+5+3+4+3+5+3+5+4+3+3+4 =
3
46 = 0.0652
𝑊6 = 5
4+5+3+4+3+5+3+5+4+3+3+4 =
5
46 = 0.1087
78
𝑊7 = 3
4+5+3+4+3+5+3+5+4+3+3+4 =
3
46 = 0.0652
𝑊8 = 5
4+5+3+4+3+5+3+5+4+3+3+4 =
5
46 = 0.1087
𝑊9 = 4
4+5+3+4+3+5+3+5+4+3+3+4 =
4
46 = 0.087
𝑊10 = 3
4+5+3+4+3+5+3+5+4+3+3+4 =
3
46 = 0.0652
𝑊11 = 3
4+5+3+4+3+5+3+5+4+3+3+4 =
3
46 = 0.0652
𝑊12 = 4
4+5+3+4+3+5+3+5+4+3+3+4 =
4
46 = 0.08
Sehingga total bobot setelah dinormalisasi menjadi:
∑𝑤𝑗 = 𝑤1 + 𝑤2 + 𝑤3 + 𝑤4 + 𝑤5 + 𝑤6 + 𝑤7 + 𝑤8 + 𝑤9 + 𝑤10 + 𝑤11+ 𝑤12 = 1
yaitu :
∑𝑤𝑗 = 0.087 + 0.1087 + 0.0652 + 0.087 + 0.0652 + 0.1087 + 0.0652 + 0.1087
+ 0.087 + 0.0652 + 0.0652 + 0.087 = 1
Pada tabel 4.4 berikut sebaran data bobot awal hingga hasil normalisasi bobot :
Tabel 4.4 Bobot setelah normalisasi.
Kriteria Bobot
Awal
Bobot
Baru
Memahami konsep HTML dan CSS 4 0.087
Menguasai bahasa pemrograman PHP, Javascript,
JQuery dan Ajax
5 0.1087
Memahami penggunaan framework PHP 3 0.0652
Memiliki logika, analisa dan problem solving yang
baik
4 0.087
Memahami penggunaan software Design 3 0.0652
Menguasai Object Oriented Programming (OOP) 5 0.1087
Memahami konsep Web Hosting dan Domain 3 0.0652
Menguasai konsep manajemen database MySQL 5 0.1087
79
Memahami penggunaan software Version Control
(GIT)
4 0.087
Melampirkan KHS berkaitan dengan nilai
Pemrograman Web
3 0.0652
Penghargaan atau sertifikat sebagai pendukung 3 0.0652
Mampu berkomunikasi serta mempresentasikan
karya dengan baik
4 0.087
b) Menentukan nilai vektor S
Nilai vektor S, yang dapat dihitung dengan menggunakan formula berikut:
𝑆𝑖 = Π𝑗=1𝑛 𝑥𝑖𝑗
𝑤𝑗 , 𝑖 = 1,2, … , 𝑛
Pangkatkan dan kalikan nilai masing-masing alternatif per kriteria tersebut
dengan bobot yang sudah dinormalisasi sebelumnya.
𝑆1 = (𝑋11 𝑤1)(𝑋12
𝑤2)(𝑋13 𝑤3)(𝑋14
𝑤4)(𝑋15 𝑤5)(𝑋16
𝑤6)(𝑋17 𝑤7)(𝑋18
𝑤8)(𝑋19 𝑤9)
(𝑋110 𝑤10) (𝑋111
𝑤11)(𝑋112 𝑤12)
Menjadi:
𝑆1 = (700.087)(700.1087)(600.0652)(800.087)(700.0652)(800.1087)
(500.0652)(800.1087)(60 0.087)(800.0652)(700.0652)(800.087)
= 71.128692173385
𝑆2 = (800.087)(800.1087)(700.0652)(800.087)(900.0652)(700.1087)
(600.0652)(700.1087)(70 0.087)(700.0652)(800.0652)(900.087)
= 75.457915838002
𝑆3 = (600.087)(700.1087)(600.0652)(700.087)(900.0652)(600.1087)
(800.0652)(700.1087)(60 0.087)(800.0652)(800.0652)(700.087)
= 69.255011534828
𝑆4 = (800.087)(900.1087)(700.0652)(800.087)(800.0652)(900.1087)
(700.0652)(700.1087)(70 0.087)(800.0652)(600.0652)(900.087)
= 77.946019945666
80
𝑆5 = (700.087)(900.1087)(700.0652)(800.087)(500.0652)(700.1087)
(700.0652)(800.1087)(80 0.087)(900.0652)(500.0652)(700.087)
= 72.711315265209
𝑆6 = (600.087)(500.1087)(700.0652)(700.087)(800.0652)(700.1087)
(600.0652)(800.1087)(60 0.087)(800.0652)(700.0652)(900.087)
= 68.666704292828
𝑆7 = (800.087)(600.1087)(800.0652)(700.087)(600.0652)(700.1087)
(800.0652)(700.1087)(90 0.087)(700.0652)(700.0652)(800.087)
= 72.575296804507
c) Menentukan nilai vektor V
Nilai vektor V yang akan digunakan untuk perangkingan.
Formulanya seperti berikut :
𝑉𝑖 = Π𝑗=1𝑛 𝑥𝑖𝑗
𝑤𝑗
Π𝑗=1𝑛 (𝑥𝑗)
𝑤𝑗 ; 𝑖 = 1,2,… , 𝑛
Dimana nilai vektor (V) merupakan alternatif pilihan yang akan dipakai
dalam penentuan peringkat masing-masing vektor S dengan nilai total vektor S
Sederhannya seperti :
𝑉1 = 𝑆1
𝑆1 + 𝑆2 + 𝑆3 + 𝑆4 + 𝑆5 + 𝑆6 + 𝑆7
Berikut hasil perhitungan preferensi (𝑉𝑖) :
𝑉1 = 71.1287
71.1287+75.4579+69.255+77.946+72.7113+68.6667+72.5753
=71.1287507.7409
= 0.140089
𝑉2 = 75.4579
71.1287+75.4579+69.255+77.946+72.7113+68.6667+72.5753
=75.4579507.7409
= 0.148615
81
𝑉3 = 69.255
71.1287+75.4579+69.255+77.946+72.7113+68.6667+72.5753
=69.255507.7409
= 0.136398
𝑉4 = 77.946
71.1287+75.4579+69.255+77.946+72.7113+68.6667+72.5753
=77.946507.7409
= 0.153515
𝑉5 = 72.7113
71.1287+75.4579+69.255+77.946+72.7113+68.6667+72.5753
=72.7113507.7409
= 0.143206
𝑉6 = 68.6667
71.1287+75.4579+69.255+77.946+72.7113+68.6667+72.5753
=68.6667507.7409
= 0.13524
𝑉7 = 72.5753
71.1287+75.4579+69.255+77.946+72.7113+68.6667+72.5753
=72.5753507.7409
= 0.142938
d) Mencari nilai tertinggi dari hasil perhitungan vektor V
Tabel 4.5 Hasil keputusan WP
Ranking Alternatif Nama Mahasiswa Vektor S Vektor V
𝟏 𝐴4 Muhibuddin 77.9460 0.153515
𝟐 𝐴2 Arif Iskandar 75.4579 0.148615
𝟑 𝐴5 Rudianto Sihombing 72.7113 0.143206
𝟒 𝐴7 Ricky Julpiter 72.5753 0.142938
𝟓 𝐴5 Haristia Kumala 71.1287 0.140089
𝟔 𝐴3 Boby Kurniawan 69.2550 0.136398
𝟕 𝐴6 Hadhe Panji Kastowo 68.6667 0.13524
82
Berdasarkan tabel 4.5 dapat dilihat bahwa 𝐴4 , 𝐴2 dan 𝐴5 merupakan pilihan
alternatif terbaik. 𝑉4 merupakan vektor v dari alternatif ke-4 (𝐴4 = Muhibuddin), 𝑉2
merupakan vektor v dari alternatif ke-2 (𝐴2 = Arif Iskandar) dan 𝑉5 merupakan
vektor v dari alternatif ke-5 (𝐴5 = Rudianto Sihombing).
4.2.3 Pengujian Manual Pennentuan Kandidat Peserta Lomba Metode Technique for
Order by Similarity to Ideal Solution (TOPSIS)
Berdasarkan pengujian ke-II sistem terhadap alternatif pada tabel 4.1 dan penggunaan
kriteria pada tabel 4.2 serta mengacu pada gambar 4.17 maka diperoleh sebaran data
nilai matriks yang ditunjukkan pada tabel 4.3.
Tabel 4.6 Nilai Matriks.
Alternatif Kriteria
𝑪𝟏 𝑪𝟐 𝑪𝟑 𝑪𝟒 𝑪𝟓 𝑪𝟔 𝑪𝟕 𝑪𝟖 𝑪𝟗 𝑪𝟏𝟎 𝑪𝟏𝟏 𝑪𝟏𝟐
Haristia Kumala 70 70 60 80 70 80 50 80 60 80 70 80
Arif Iskandar 80 80 70 80 90 70 60 70 70 70 80 90
Boby Kurniawan 60 70 60 70 90 60 80 70 60 80 80 70
Muhibuddin 80 90 70 80 80 90 70 70 70 80 60 90
Rudianto Sihombing 70 90 70 80 50 70 70 80 80 90 50 70
Hadhe Panji 60 50 70 70 80 70 60 80 60 80 70 90
Ricky Julpiter 80 60 80 70 60 70 80 70 90 70 70 80
a) Normalisasi matriks.
Normalisasi matriks dilakukan dengan cara mengkuadratkan setiap elemen matriks
pada tabel 4.6, misal untuk cell 𝐴1- 𝐶1 bernilai 70 dikuadratkan menjadi 70 * 70 =
4900. Hasilnya seperti berikut:
83
Tabel 4.7 Nilai Kuadrat
Alternatif Kriteria
𝑪𝟏 𝑪𝟐 𝑪𝟑 𝑪𝟒 𝑪𝟓 𝑪𝟔 𝑪𝟕 𝑪𝟖 𝑪𝟗 𝑪𝟏𝟎 𝑪𝟏𝟏 𝑪𝟏𝟐
Haristia Kumala 4900 4900 3600 6400 4900 6400 2500 6400 3600 6400 4900 6400
Arif Iskandar 6400 6400 4900 6400 8100 4900 3600 4900 4900 4900 6400 8100
Boby Kurniawan 3600 4900 3600 4900 8100 3600 6400 4900 3600 6400 6400 4900
Muhibuddin 6400 8100 4900 6400 6400 8100 4900 4900 4900 6400 3600 8100
Rudianto Sihombing 4900 8100 4900 6400 2500 4900 4900 6400 6400 8100 2500 4900
Hadhe Panji 3600 2500 4900 4900 6400 4900 3600 6400 3600 6400 4900 8100
Ricky Julpiter 6400 3600 6400 4900 3600 4900 6400 4900 8100 4900 4900 6400
Total 36200 38500 33200 40300 40000 37700 32300 38800 35100 43500 33600 46900
Baris total (warna biru) didapat dengan menjumlahkan setiap baris pada setiap
kriteria. Misal total kolom 𝐶1 didapat dari 4900 + 6400 + 3600 + 6400 + 4900 + 3600
+ 6400 = 36200. Setelah mendapat total, lalu menormalisasikan dengan cara
membagi setiap elemen matriks tabel 4.6 dengan akar (sqrt) dari total baris yang
bersesuaian, hasilnya seperti berikut:
Tabel 4.8 Matriks Ternormalisasi
Alternatif Kriteria
𝑪𝟏 𝑪𝟐 𝑪𝟑 𝑪𝟒 𝑪𝟓 𝑪𝟔 𝑪𝟕 𝑪𝟖 𝑪𝟗 𝑪𝟏𝟎 𝑪𝟏𝟏 𝑪𝟏𝟐
Haristia Kumala 0.368 0.357 0.329 0.399 0.35 0.412 0.278 0.406 0.32 0.384 0.382 0.369
Arif Iskandar 0.42 0.408 0.384 0.399 0.45 0.361 0.334 0.355 0.374 0.336 0.436 0.416
Boby Kurniawan 0.315 0.357 0.329 0.349 0.45 0.309 0.445 0.355 0.32 0.384 0.436 0.323
Muhibuddin 0.42 0.459 0.384 0.399 0.4 0.464 0.389 0.355 0.374 0.384 0.327 0.416
Rudianto Sihombing 0.368 0.459 0.384 0.399 0.25 0.361 0.389 0.406 0.427 0.432 0.273 0.323
Hadhe Panji 0.315 0.255 0.384 0.349 0.4 0.361 0.334 0.406 0.32 0.384 0.382 0.416
Ricky Julpiter 0.42 0.306 0.439 0.349 0.3 0.361 0.445 0.355 0.48 0.336 0.382 0.369
Misal untuk baris 𝐴1 didapat dari :
𝐴1-𝐶1 = 70
√36200= 0.368
𝐴1-𝐶2 = 70
√38500= 0.357
𝐴1-𝐶3 = 60
√33200= 0.329
𝐴1-𝐶4 = 80
√40300= 0.399
𝐴1-𝐶5 = 70
√40000= 0.35
84
𝐴1-𝐶6 = 80
√37700= 0.412
𝐴1-𝐶7 = 50
√32300= 0.278
𝐴1-𝐶8 = 80
√38800= 0.406
𝐴1-𝐶9 = 60
√35100= 0.32
𝐴1-𝐶10 = 80
√43500= 0.384
𝐴1-𝐶11 = 70
√33600= 0.382
𝐴1-𝐶12 = 80
√46900= 0.369
b) Normalisasi bobot.
Normalisasi terbobot didapat dari perkalian matriks pada tabel 4.8 (normalisasi)
dengan tabel 4.2 (bobot kriteria), hasilnya seperti berikut:
Tabel 4.9 Nilai Bobot Ternormalisasi
Alternatif Kriteria
𝑪𝟏 𝑪𝟐 𝑪𝟑 𝑪𝟒 𝑪𝟓 𝑪𝟔 𝑪𝟕 𝑪𝟖 𝑪𝟗 𝑪𝟏𝟎 𝑪𝟏𝟏 𝑪𝟏𝟐
Haristia Kumala 1.472 1.784 0.988 1.594 1.05 2.06 0.835 2.031 1.281 1.151 1.146 1.478
Arif Iskandar 1.682 2.039 1.153 1.594 1.35 1.803 1.002 1.777 1.495 1.007 1.309 1.662
Boby Kurniawan 1.261 1.784 0.988 1.395 1.35 1.545 1.335 1.777 1.281 1.151 1.309 1.293
Muhibuddin 1.682 2.293 1.153 1.594 1.2 2.318 1.168 1.777 1.495 1.151 0.982 1.662
Rudianto Sihombing 1.472 2.293 1.153 1.594 0.75 1.803 1.168 2.031 1.708 1.295 0.818 1.293
Hadhe Panji 1.261 1.274 1.153 1.395 1.2 1.803 1.002 2.031 1.281 1.151 1.146 1.662
Ricky Julpiter 1.682 1.529 1.317 1.395 0.9 1.803 1.335 1.777 1.922 1.007 1.146 1.478
Misal untuk baris 𝐴1 didapat dari :
𝐴1-𝐶1 = 0.368 ∗ 4 = 1.472
𝐴1-𝐶2 = 0.357 ∗ 5 = 1.784
𝐴1-𝐶3 = 0.329 ∗ 3 = 0.988
𝐴1-𝐶4 = 0.399 ∗ 4 = 1.594
𝐴1-𝐶5 = 0.35 ∗ 3 = 1.05
𝐴1-𝐶6 = 0.412 ∗ 5 = 2.06
𝐴1-𝐶7 = 0.278 ∗ 3 = 0.835
𝐴1-𝐶8 = 0.406 ∗ 5 = 2.031
𝐴1-𝐶9 = 0.32 ∗ 4 = 1.281
85
𝐴1-𝐶10 = 0.384 ∗ 3 = 1.151
𝐴1-𝐶11 = 0.382 ∗ 3 = 1.146
𝐴1-𝐶12 = 0.369 ∗ 4 = 1.478
c) Matriks ideal positif/negatif.
Matriks solusi ideal didapat berdasarkan normalisasi terbobot dan atribut kriteria
(cost atau benefit). Berhubung semua kriteria jenisnya adalah benefit, maka solusi
ideal positif merupakan nilai maksimal dari normalisasi terbobot. Sedangkan solusi
ideal negatif merupakan nilai minimal dari normalisasi terbobot.
Tabel 4.10 Matriks Ideal Positif/Negatif
Jenis Matriks Ideal Positif/Negatif
𝑪𝟏 𝑪𝟐 𝑪𝟑 𝑪𝟒 𝑪𝟓 𝑪𝟔 𝑪𝟕 𝑪𝟖 𝑪𝟗 𝑪𝟏𝟎 𝑪𝟏𝟏 𝑪𝟏𝟐
Positif 1.682 2.293 1.317 1.594 1.35 2.318 1.335 2.031 1.922 1.295 1.309 1.662
Negatif 1.261 1.274 0.988 1.395 0.75 1.545 0.835 1.777 1.281 1.007 0.818 1.293
d) Jarak solusi ideal positif/negatif.
Untuk mencari total dan perangkingan, harus mencari jarak solusi ideal positif dan
negatif yang didapat dari pengolahan tabel 4.9 (normalisasi bobot) dan tabel 4.10
(matriks ideal positif/negatif). Caranya adalah mengkuadratkan selisih setiap elemen
matriks normalisasi terbobot dengan matriks solusi ideal, kemudian menjumlahkan
setiap alternatif, setelah itu diakarkan. Misal untuk mencari jarak ideal positif 𝐴1
sebagai berikut :
𝐴1 positif =
√
(1.472 − 1.682)2 + (1.784 − 2.293)2 + (0.988 − 1.317)2
+(1.594 − 1.594)2 + (1.05 − 1.35)2 + (2.06 − 2.318)2
+(0.835 − 1.335)2 + (2.031 − 2.031)2 + (1.281 − 1.922)2
+(1.151 − 1.295)2 + (1.146 − 1.309)2 + (1.478 − 1.662)2
= 1.145
𝐴1 negatif =
√
(1.472 − 1.261)2 + (1.784 − 1.274)2 + (0.988 − 0.988)2
+(1.594 − 1.395)2 + (1.05 − 0.75)2 + (2.06 − 1.545)2
+(0.835 − 0.835)2 + (2.031 − 1.777)2 + (1.281 − 1.281)2
+(1.151 − 1.007)2 + (1.146 − 0.818)2 + (1.478 − 1.293)2
= 0.963
86
e) Jarak solusi ideal positif/negatif.
Preferensi didapat dari pembagiam ideal negatif dibagi dengan penjumlahan ideal
posisif dan negatif.
𝑉𝑖 =𝐷𝑖
𝐷𝑖− + 𝐷𝑖
+
Berikut hasil perhitungan preferensi (𝑉𝑖) :
𝑉1 =0.963
1.145 + 0.963= 0.4568
𝑉2 =1.306
0.893 + 1.306= 0.5939
𝑉3 =1.064
1.347 + 1.064= 0.4413
𝑉4 =1.557
0.672 + 1.557= 0.6985
𝑉5 =1.287
1.071 + 1.287= 0.5458
𝑉6 =0.808
1.462 + 0.808= 0.3559
𝑉7 =1.115
1.14 + 1.115= 0.4945
Alternatif yang terbaik adalah alternatif yang memiliki preferensi terbesar. Sehingga
didapat perangkingan sebagai berikut
Tabel 4.11 Hasil Keputusan Topsis
Ranking Alternatif Nama Mahasiswa Preferensi (𝑽𝒊)
𝟏 𝐴4 Muhibuddin 0.6985
𝟐 𝐴2 Arif Iskandar 0.5939
𝟑 𝐴5 Rudianto Sihombing 0.5458
𝟒 𝐴7 Ricky Julpiter 0.4945
𝟓 𝐴5 Haristia Kumala 0.4568
𝟔 𝐴3 Boby Kurniawan 0.4413
𝟕 𝐴6 Hadhe Panji Kastowo 0.3559
87
Dari hasil perhitungan tersebut, nilai 𝐴4 menunjukkkan nilai tertinggi pertama,
selanjutnya disusul dengan nilai 𝐴2 sebagai nilai tertinggi kedua dan 𝐴5 sebagai
nilai tertinggi ketiga.
4.3 Hasil Analisis Perbandingan
Berdasarkan pengujian sistem yang telah dilakukan sebelumnya yaitu, pengujian I
metode WP dengan pengujian II metode TOPSIS, maka dapat dilakukan 3 analisis
perbandingan yaitu :
1. Perbandingan Euclidean Distance antara kedua metode
2. Perbandingan tingkat akurasi antara perhitungan sistem dengan perhitungan manual
3. Perbandingan kecepatan eksekusi program (Running Time) antara kedua metode
4. Perbandingan kompleksitas algoritma antara kedua metode
4.3.1 Hasil Euclidean Distance
Analisis perbandingan menggunkan metode Euclidean Distance untuk melihat metode
mana yang paling optimal ditinjau dari rata-rata prioritas rangking pada kedua metode
seperti pada tabel 4.12 dibawah ini :
Tabel 4.12 Analisis Perbandingan Euclidean Distance
Berdasarkan hasil rata-rata dari kedua metode yang digunakan dapat diakatakan bahwa
metode Weighted Product merupakan metode yang paling baik dikarenakan memiliki nilai
yang mendekati nol.
Mahasiswa Pendaftar 𝑾𝑷(𝒗𝒆𝒄𝒕𝒐𝒓 𝒗) 𝑻𝑶𝑷𝑺𝑰𝑺(𝒑𝒓𝒆𝒇𝒆𝒓𝒆𝒏𝒔𝒊)
Muhibuddin 0.1535 0.6985
Arif Iskandar 0.1486 0.5939
Rudianto Sihombing 0.1432 0.5458
Ricky Julpiter 0.1429 0.4945
Haristia Kumala 0.1400 0.4568
Boby Kurniawan 0.1363 0.4413
Hadhe Panji Kastowo 0.1352 0.3559
Rata-Rata 0,14281 0,51238
88
4.3.2 Perbandingan Tingkat Akurasi Perhitungan
Selain analisis perbandingan menggunakan Euclidean Distance digunakan juga analisis
perbandingan akurasi perhitungan seperti pada tabel 4.13 dibawah ini :
Tabel 4.13 Hasil Perbandingan Akurasi Perhitungan
Alternatif
Rekomendasi
WP TOPSIS
𝐴4 𝐴4 𝐴4
𝐴2 𝐴2 𝐴2
𝐴5 𝐴5 𝐴5
𝐴7 𝐴7 𝐴7
𝐴1 𝐴1 𝐴1
𝐴3 𝐴3 𝐴3
𝐴6 𝐴6 𝐴6
Pengujian metode WP dan metode Topsis dilakukan untuk menentukan rekomendasi
kandidat peserta lomba dengan menggunakan rumusan sebagai berikut :
Akurasi = X/N x100%
Dimana:
N = banyaknya data yang diuji
X = banyaknya data yang benar
Akurasi metode TOPSIS = X/N x 100%
= 7/7 x 100% = 100%
Akurasi metode Weighted Product (WP) = X/N x 100%
= 7/7 x 100% = 100%
Gambar 4.24 dibawah ini juga akan diperlihatkan perbandingan akurasi sistem :
Gambar 4.24 Tampilan perbandingan output alternatif sistem
89
4.3.3 Perbandingan kecepatan eksekusi program
Selain analisis perbandingan akurasi perhitungan, dilakukan juga analisis perbandingan
kecepatan eksekusi terhadap file PHP. Berikut gambar yang menunjukkan hasil percobaan
waktu eksekusi pada listing program php bagian perhitungan metode sebanyak 10 kali
percobaan dalam satuan microtime/second pada gambar 4.25 dibawah ini :
Gambar 4.25 Tampilan perbandingan waktu eksekusi sistem
Dan pada tabel dibawah ini juga akan diperlihatkan hasil perbandingan rata-rata waktu yang
dibutuhkan antara kedua metode saat mencari alternatif rekomendasi terhadap 7 peserta dan
10 kali percobaan pada sistem.
Tabel 4.14 Hasil Perbandingan Kecepatan Eksekusi Program
Percobaan Kecepatan (Microtime/Second)
WP TOPSIS
1 0.074 detik 0.236 detik
2 0.068 detik 0.242 detik
3 0.049 detik 0.220 detik
4 0.089 detik 0.255 detik
5 0.088 detik 0.259 detik
6 0.097 detik 0.226 detik
7 0.093 detik 0.198 detik
8 0.078 detik 0.213 detik
9 0.051 detik 0.188 detik
10 0.094 detik 0.197 detik
Rata-Rata 0.0781 detik 0.2234 detik
90
Berdasarkan tabel 4.14 diatas, maka analisa perbandingan dari segi waktu menunjukkan
bahwa weighted product menjadi metode yang paling baik dikarenakan memiliki nilai yang
mendekati nol dibandingkan dengan metode topsis.
Gambar 4.26 Running Time Sistem 10x Percobaan
Pada grafik diatas merupakan perbandingan Running Time berdasarkan satuan waktu (ms)
melalui fungsi Microtime pada pemrograman PHP. Meskipun metode TOPSIS juga
mendapat tingkat akurasi perhitungan mencapai 100%, namun dari segi kecepatan eksekusi,
metode WP kembali unggul pada pengujian sistem dikarenakan memiliki performa 0.1453
detik lebih cepat dari hasil selisih rata ratanya dibandingkan metode TOPSIS.
4.3.4 Kompleksitas Algoritma Weighted Product (WP)
Selanjutnya juga akan dilakukan analisis perbandingan terhadap kompleksitas algoritma
yang diperoleh berdasarkan proses analisis pada kode program yang telah dibuat, dan
digunakan sebagai acuan untuk mengetahui real time antara algoritma WP dan TOPSIS.
Kompleksitas algoritma Weighted Product (WP) dapata dilihat pada tabel 4.15 dibawah ini
91
Tabel 4.15 Kompleksitas Algoritma WP
No Code C # C*#
1 $mahasiswa_pendaftar = new
mahasiswa_pendaftar();
𝐶2 1 𝐶2
2 $lomba = new lomba(); 𝐶2 1 𝐶2
3 $lomba_rinci = new lombaRinci(); 𝐶2 1 𝐶2
4 $user = new User(); 𝐶2 1 𝐶2
5 $hitung = new HitungSPK(); 𝐶2 1 𝐶2
6 include
"../include/fungsi_tanggal.php";
𝐶1 1 𝐶1
7 $awal = microtime(true); 𝐶2 1 𝐶2
8 $jmlBobot = $hitung-
>NormalisasiBobot($id_lomba);
𝐶2 1 𝐶2
9 $no = 1; 𝐶2 1 𝐶2
10 $getData = $lomba_rinci-
>GetData("where id_lomba='$id_lomba'
and bobot > 0 order by kriteria asc");
𝐶2 1 𝐶2
11 $cek_user = ""; 𝐶2 1 𝐶2
12 $arBB = array(); 𝐶2 1 𝐶2
13 $i=0; 𝐶2 1 𝐶2
14 while($data = $getData->fetch()){ 𝐶3 n 𝑛𝐶3
15 $bobotBaru =
round($data['bobot']/$jmlBobot, 4);
𝐶2 1 𝐶2
16 $arBB[$i] = $bobotBaru; 𝐶2 1 𝐶2
17 $i++; 𝐶2 1 𝐶2
18 $no++; 𝐶2 1 𝐶2
19 }
20 $loopP = $mahasiswa_pendaftar-
>GetData("where id_lomba='$id_lomba'
and nilai > 0");
𝐶2 1 𝐶2
21 $ar_mahasiswa_pendaftar = array(); 𝐶2 1 𝐶2
22 $in = -1; 𝐶2 1 𝐶2
92
23 $us = ""; 𝐶2 1 𝐶2
24 while($data = $loopP->fetch()){ 𝐶3 n 𝑛𝐶3
25 if($us != $data['id_user']) 𝐶4 n 𝑛𝐶4
26 $in++; 𝐶2 1 𝐶2
27 $ar_mahasiswa_pendaftar[$in] =
$data['id_user'];
𝐶2 1 𝐶2
28 $us = $data['id_user']; 𝐶2 1 𝐶2
29 }
30 $jml_mahasiswa_pendaftar =
count($ar_mahasiswa_pendaftar);
𝐶2 1 𝐶2
31 $ar_nilai = array(); 𝐶2 1 𝐶2
32 for($i=0;$i<$jml_mahasiswa_pendaftar;$
i++){
𝐶5 n 𝑛𝐶5
33 for ($j=0;$j<$id_lomba;$j++){ 𝐶5 n*n
𝑛2𝐶5
34 $loop2 = $mahasiswa_pendaftar-
>GetData("where id_lomba='$id_lomba'
and
id_user='$ar_mahasiswa_pendaftar[$i]'
and nilai > 0 order by kriteria asc");
𝐶2 1 𝐶2
35 $ib=0; 𝐶2 1 𝐶2
36 $vkt_s = 1; 𝐶2 1 𝐶2
37 while($k = $loop2->fetch()){ 𝐶6 n
𝑛𝐶6
38 $pgkt = pow($k['nilai'],
$arBB[$ib]);
𝐶2 1 𝐶2
39 $vkt_s = $vkt_s * $pgkt; 𝐶2 1 𝐶2
40 $ib++; 𝐶2 1 𝐶2
41 }
42 $qryVS = $hitung-
>SetVektor_S($vkt_s,
$ar_mahasiswa_pendaftar[$i],
$id_lomba);
𝐶2 1 𝐶2
93
43 $qryVV = $hitung-
>SetVektor_V($ar_mahasiswa_pendaftar[$
i], $id_lomba);
𝐶2 1 𝐶2
44 }
45 $akhir = microtime(true); 𝐶2 1 𝐶2
46 $lama = $akhir - $awal; 𝐶2 1 𝐶2
Dari perhitungan kompleksitas algoritma pada table 4.14 di atas, maka didapat T(n)
yang merupakan jumlah keseluruhan dari kolom C*# yaitu sebagai berikut:
T(|n|) = C1 + 35C2 + 2(C3.n) + 1(C4.n) + 2(C5.n2) + 1(C6.n)
T(|n|) = (C1+ 35C2) n0 + (2C3 +1C4 +1C6) n
1+ (2C5) n
2
T(|n|) = 𝜃(n2)
Pada proses perhitungan di atas diperoleh hasil kompleksitas algoritma WP
adalah 𝜃(n2).
4.3.5 Kompleksitas Algoritma Technique for Order Preference by Similarity to Ideal
Solution (TOPSIS)
Setelah mengetahui kompleksitas algoritma WP, maka selanjutnya adalah melakukan
perhitungan kompleksitas algoritma TOPSIS dengan tujuan mendapatkan gambaran
perbandingan antara kedua algoritma tersebut. Kompleksitas sistem pendukung
keputusan metode TOPSIS dapat dilihat pada tabel 4.16.
Tabel 4.16 Kompleksitas Algoritma TOPSIS
No Code C # C*#
1 include ("konfig/koneksi.php"); 𝐶1 1 𝐶1
2 $awal = microtime(true); 𝐶2 1 𝐶2
3 $i=1; 𝐶2 1 𝐶2
4 $a=mysql_query("select * from
alternatif");
𝐶2 1 𝐶2
5 $sortir=array(); 𝐶2 1 𝐶2
6 while($da=mysql_fetch_assoc($a)){ 𝐶3 n 𝑛𝐶3
94
7 $idalt=$da['id_alternatif']; 𝐶2 1 𝐶2
8 $n=mysql_query("select * from
nilai_matriks where
id_alternatif='$idalt'");
𝐶2 1 𝐶2
9 $c=0; 𝐶2 1 𝐶2
10 $ymax=array(); 𝐶2 1 𝐶2
11 while($dn=mysql_fetch_assoc($n)){ 𝐶3 n 𝑛𝐶3
12 $idk=$dn['id_kriteria']; 𝐶2 1 𝐶2
13 $nilai_kuadrat=0; 𝐶2 1 𝐶2
14 $k=mysql_query("select * from
nilai_matriks where id_kriteria='$idk'
");
𝐶2 1 𝐶2
15 while($dkuadrat=mysql_fetch_assoc($k))
{
𝐶4 n 𝑛𝐶4
16 $nilai_kuadrat=$nilai_kuadrat+($dkuadr
at['nilai']*$dkuadrat['nilai']);
𝐶2 1 𝐶2
17 }
18 $jml_alternatif=mysql_query("select *
from alternatif");
𝐶2 1 𝐶2
19 $jml_a=mysql_num_rows($jml_alternatif)
;
𝐶2 1 𝐶2
20 $bobot=0; 𝐶2 1 𝐶2
21 $tnilai=0; 𝐶2 1 𝐶2
22 $k2=mysql_query("select * from
nilai_matriks where id_kriteria='$idk'
");
𝐶2 1 𝐶2
23 while($dbobot=mysql_fetch_assoc($k2)){ 𝐶4 n 𝑛𝐶4
24 $tnilai=$tnilai+$dbobot['nilai']; 𝐶2 1 𝐶2
25 }
26 $bobot=$tnilai/$jml_a; 𝐶2 1 𝐶2
27 $b2=mysql_query("select * from
kriteria where id_kriteria='$idk'");
𝐶2 1 𝐶2
28 $nbot=mysql_fetch_assoc($b2); 𝐶2 1 𝐶2
95
29 $bot=$nbot['bobot']; 𝐶2 1 𝐶2
30 $v=round(($dn['nilai']/sqrt($nilai_kua
drat))*$bot,3);
𝐶2 1 𝐶2
31 $ymax[$c]=$v; 𝐶2 1 𝐶2
32 $c++; 𝐶2 1 𝐶2
33 $mak=max($ymax); 𝐶2 1 𝐶2
34 $min=min($ymax); 𝐶2 1 𝐶2
35 }
36 $i++; 𝐶2 1 𝐶2
37 }
38 foreach($_SESSION['dplus'] as
$key=>$dxmin){
𝐶5 n 𝑛𝐶5
39 $jarakm=$_SESSION['dmin'][$key]; 𝐶2 1 𝐶2
40 $id_alt=$_SESSION['id_alt'][$key]; 𝐶2 1 𝐶2
41 $nama=mysql_query("select * from
alternatif where
id_alternatif='$id_alt'");
𝐶2 1 𝐶2
42 $nm=mysql_fetch_assoc($nama); 𝐶2 1 𝐶2
43 $nilaid=$jarakm/($jarakm+$dxmin); 𝐶2 1 𝐶2
44 $nilai=round($nilaid,4); 𝐶2 1 𝐶2
45 $nm=$nm['nm_alternatif']; 𝐶2 1 𝐶2
46 $sql2=mysql_query("insert into
nilai_preferensi (nm_alternatif,nilai)
values('$nm','$nilai')");
𝐶2 1 𝐶2
47 }
48 $i=1; 𝐶2 1 𝐶2
49 $sql3=mysql_query("select * from
nilai_preferensi order by nilai
Desc");
𝐶2 1 𝐶2
50 while($data3=mysql_fetch_assoc($sql3))
{
𝐶6 n 𝑛𝐶6
51 $i++; 𝐶2 1 𝐶2
96
52 }
53 $del=mysql_query("delete from
nilai_preferensi");
𝐶2 1 𝐶2
54 $akhir = microtime(true); 𝐶2 1 𝐶2
55 $lama = $akhir - $awal; 𝐶2 1 𝐶2
Dari perhitungan kompleksitas algoritma pada tabel 4.15 di atas, maka didapat T(n)
yang merupakan jumlah keseluruhan dari kolom C*# yaitu sebagai berikut:
T(|n|) = C1 + 42C2 + 2(C3.n) + 2(C4.n) + 1(C5.n) + 1(C6.n)
T(|n|) = (C1+ 42C2) n0 + (2C3 + 2C4 + 1C5 +1C6) n
1
T(|n|) = 𝜃(n)
Pada proses perhitungan di atas diperoleh hasil kompleksitas algoritma TOPSIS
adalah 𝜃(n).
97
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil analisis, perancangan serta hasil implementasi sistem penentuan
kandidat peserta lomba dengan menggunakan analisis perbandingan metode Weighted
Product (WP) dan metode Technique for Order by Similarity to Ideal Solution sehingga
dapat disimpulkan bahwa :
1. Analisis perbandingan menggunakan Euclidean Distance mendapat hasil bahwa
metode WP menjadi metode yang unggul dengan nilai 0.14281 dikarenakan
memiliki nilai yang mendekati nol dibandingkan metode TOPSIS dengan nilai
0.51238
2. Dari proses perhitungan kompleksitas algoritma untuk metode WP diperoleh
kompleksitas T(n) = 𝜃(n2) sedangkan metode TOPSIS memperoleh kompleksitas
T(n) = 𝜃(n)
3. Total waktu rata-rata yang dibutuhkan metode WP untuk mengeksekusi program
adalah 0.0781 detik sedangkan total waktu yang dibutuhkan metode TOPSIS untuk
mengeksekusi program adalah 0.2234 detik
4. Dari 10 kali percobaan diperoleh bahwa metode WP adalah yang optimum
disebabkan tahapan proses perhitungan metode WP lebih sederhana dengan 6
tahapan perhitungan sedangkan pada TOPSIS membutuhkan 7 tahapan sehingga
waktu eksekusinya bisa lebih cepat, selain itu normalisasi pada metode WP hanya
dilakukan sekali dalam proses perhitungannya yaitu pada normalisasi bobot saja
untuk mencari vektor s, sedangkan pada metode TOPSIS melakukan dua kali
normalisasi yaitu normalisasi matriks dan normalisasi bobot untuk mencari matriks
ideal positif/negatif sehingga menjadi kelemahan TOPSIS terhadap jarak nilai
(Euclidean Distance) yang lebih besar dibandingkan metode WP
5. Tingkat akurasi perhitungan sistem dengan perhitungan manual pada metode WP
dan metode TOPSIS pada penentuan kandidat peserta lomba mencapai 100%
6. Sistem ini dapat membantu pihak kampus dalam merekomendasikan kandidat
peserta lomba, keputusan akhir tetap berada pada pengambil keputusan.
98
5.2 Saran
Untuk memperbaiki penelitian dan saran kepada penelitian ke depannya, maka berikut
beberapa saran yang bisa dipertimbangkan :
1. Diharapkan kepada peneliti selanjutnya untuk mengumpulkan standarisasi bobot
yang digunakan pada bidang lomba lainnya dengan tujuan untuk meningkatkan
tingkat akurasi sistem dalam memberikan rekomendasi kandidat peserta yang
sesuai kriteria.
2. Pada penelitian ini, sistem yang dibangun dalam proses mendapatkan nilai per
kriteria alternatif, belum sepenuhnya based on web, ada baiknya dikembangkan
agar proses seleksi bisa online test dengan tujuan mengantisipasi situasi yang tidak
memungkinkan untuk tes secara offline.
3. Sistem yang dibangun untuk kedepannya dapat dikembangkan lagi dengan
penambahan interface yang lebih baik sehingga terlihat menarik bagi pengguna
sistem
99
DAFTAR PUSTAKA
Diana. (2018). Metode dan Aplikasi Pendukung Keputusan. Yogyakarta: Penerbit
Deepublish (hal 64).
Dodi Himawan. (2019). Analisis Perbandingan Menggunakan Metode AHP , TOPSIS
, Dan SAW Dalam Studi Kasus Sistem Pendukung Keputusan Peminjam Yang
Layak Bagi Lembaga Keuangan. Skripsi Universitas Sumatera Utara.
Elfan, M. J., Andreswari, D., & Anggriani, K. (2016). Pemilihan Jenis Kayu Untuk
Mebel Dengan Metode Weighted Product (WP) & Technique for Order
Preference By Similarity To Ideal Solution (TOPSIS). Jurnal Rekursif, 4(3),
301–310.
Fatta, A. H. (2007). Analisis & Perancangan Sistem Informasi: Untuk Keunggulan
Bersaing Perusahaan & Organisasi Modern. Yogyakarta: Penerbit Andi
Fajarwati, I., Fitriasari, N. S., & Siregar, H. (2018). Perbandingan Metode Weighted
Product (WP), Weighted Sum Model (WSM) Dan Multi Attribute Utility
Theory (MAUT) Dalam Sistem Pendukung Keputusan Penerimaan Tenaga
Kerja. Jurnal Teori Dan Aplikasi Ilmu Komputer, 1(1), 25–32.
Gayatri, V., & Chetan, M. (2013). Comparative Study of Different Multi-criteria
Decision-making Methods. International Journal on Advanced Computer
Theory and Engineering (IJACTE), 2(4), 9–12.
Joshi, A., Kale, S., Chandel, S., & Pal, D. (2015). Likert Scale: Explored and Explained.
British Journal of Applied Science & Technology, 7(4), 396–403.
https://doi.org/10.9734/bjast/2015/14975.
Kurnia, Y. (2018). Penilaian Kinerja Guru Menggunakan Metode Topsis. JSAI (Journal
Scientific and Applied Informatics), 1(3), 70–75.
https://doi.org/10.36085/jsai.v1i3.63.
Kusrini. (2007). Konsep dan Aplikasi Sistem Pendukung Keputusan. Yogyakarta, Jawa
Tengah, Indonesia: Andi.
Kusumadewi, S., Hartati, S., Harjoko, A., Wardoyo, R. (2006). Fuzzy Multi
Atribut Decision Making (Fuzzy MADM). Yogyakarta: Graha Ilmu.
100
Levitin, Anany. (2009). Introduction to The Design and Analysis of Algorithms.
India: Person Education
Rahman, A. (2008). Perbandingan Kerangka Sistem Informasi Manajemen dan Sistem
Pendukung Keputusan. Yogyakarta : Diana
Sucipto, S., Resti, N. C., Andriyanto, T., Karaman, J., & Qamaria, R. S. (2019).
Transactional database design information system web-based tracer study
integrated telegram bot. Journal of Physics: Conference Series, 1381(1).
https://doi.org/10.1088/1742-6596/1381/1/012008.
Suhartono, D., & Sari, T. (2019). Comparative Method of Weighted Product and
TOPSIS to Determine The Beneficiary of Family Hope Program. IJIIS:
International Journal of Informatics and Information Systems, 2(2), 67–74.
https://doi.org/10.47738/ijiis.v2i2.16.
Sunarti. (2018). Perbandingan Metode TOPSIS dan SAW Untuk Pemilihan Rumah
Tinggal. Journal of Information System, 3(1), 69–79.
https://publikasi.dinus.ac.id/index.php/joins/article/view/1883/1289.
A 101
A. LISTING PROGRAM
1. Weighted Product Method
<div class="span9">
<div class="content">
<?php
$mahasiswa_pendaftar = new mahasiswa_pendaftar();
$lomba = new lomba();
$lomba_rinci = new lombaRinci();
$user = new User();
$hitung = new HitungSPK();
include "../include/fungsi_tanggal.php";
/*----------------------------------
Ketika mahasiswa_pendaftar melakuakn input data
----------------------------------*/
if(!isset($_GET['perlombaan'])){
?>
<div class="module">
<div class="module-head">
<h3>Pilih Perlombaan</h3>
</div>
<?php
$qrL = $lomba->GetData("where status = '1'");
?>
<div class="module-body">
<form class="form-horizontal row-fluid"
action="index.php?menu=mahasiswa_pendaftar" method="get">
<input type="hidden" name="menu"
value="perhitungan">
<div class="control-group">
<label class="control-label"
for="basicinput">Perlombaan</label>
<div class="controls">
<select name="perlombaan">
<?php
while ($row = $qrL-
>fetch()){
echo "<option
value='$row[id_lomba]'>$row[lomba]</option>";
}
?>
</select>
<input class="btn btn-primary"
type="submit" value="Pilih">
</div>
</div>
A -102
</form>
</div>
</div>
<?php
}else{
$id_lomba = $_GET['perlombaan'];
$qrLw = $lomba->GetData("where id_lomba='$id_lomba'");
$nama_lw = $qrLw->fetch();
if(isset($_GET['nilai_user'])){
$id_user = $_GET['nilai_user'];
$qrN = $user->GetData("where id_user='$id_user'");
$rowN = $qrN->fetch();
?>
<div class="module">
<div class="module-head">
<h3>Rincian Nilai -- <?php echo $rowN['nama_lengkap'] . " -
- " . $nama_lw['lomba']; ?></h3>
</div>
<div class="module-body table">
<?php
if(isset($_POST['submit'])){
$ar=1;
$qryRincian = $lomba_rinci->GetData("where
id_lomba='$id_lomba' and status_nilai='1' order by kriteria asc");
while($exec = $qryRincian->fetch()){
$nilai = $_POST['input_' . $ar];
$qry = $mahasiswa_pendaftar->SetNilai($nilai,
$id_user, $id_lomba, $exec['kriteria']);
if($qry){
echo "<script
language='javascript'>alert('Nilai berhasil diberikan');
document.location='?menu=mahasiswa_pendaftar&perlombaan=$id_lomba&nilai_u
ser=$id_user'</script>";
}else{
echo "<script
language='javascript'>alert('Gagal');document.location='menu=mahasiswa_pendaftar
&perlombaan=$id_lomba'</script>";
}
$ar++;
}
}
A 103
$qryRincian = $mahasiswa_pendaftar->GetData("where
id_user='$id_user' and id_lomba='$id_lomba' order by kriteria asc");
?>
<form class="form-horizontal row-fluid" action=""
method="post">
<?php
$ar=1;
while($krit = $qryRincian->fetch()){
$nu = $lomba_rinci->GetData("where
id_lomba = '$id_lomba' and kriteria = '$krit[kriteria]'");
$cekKrit = $nu->fetch();
echo "<div class='control-group'>
<label class='control-label'
for='basicinput'>$krit[kriteria]</label>
<div class='controls'>";
if($cekKrit['status_nilai'] == "1"){
echo "<input type='text' id='basicinput'
name='input_$ar' placeholder='Input Nilai $krit[kriteria]' class='span8'
value='$krit[nilai]'>";
if($cekKrit['status_upload'] == "1")
echo "<div class='control'><a
target='blank' href='../upload/$krit[file]' class='span8'>Berkas
mahasiswa_pendaftar</a></div>";
$ar++;
}else if($cekKrit['status_upload'] == "1"){
echo "<a target='blank'
href='../upload/$krit[file]' class='span8'>Berkas mahasiswa_pendaftar</a>";
}
echo "</div>
</div>";
}
?>
<div class='control-group'>
<div class="controls">
<input type="submit" name="submit"
value="Simpan" class="btn btn-primary">
</div>
</div>
</form>
</div>
</div>
<?php
}else{
/*----------------------------------
Ketika mahasiswa_pendaftar hanya menampilkan data
----------------------------------*/
A -104
?>
<div class="module">
<div class="module-head">
<h3>Data Pendaftar -- <?php echo $nama_lw['lomba'];
?></h3>
</div>
<div class="module-body table">
<table cellpadding="0" cellspacing="0" border="0"
class="datatable-1 table table-bordered table-striped display"
width="100%">
<thead>
<tr>
<th><center><font
color="black">No</font></center></th>
<th><center><font
color="black">Mahasiswa Pendaftar</font></center></th>
<!-- <th>Pendidikan</th>
<th>No HP</th>
<th>Email</th> -->
<th><center><font
color="black">Tindakan</font></center></th>
</tr>
</thead>
<tbody>
<?php
$no = 1;
$getData = $mahasiswa_pendaftar-
>GetData("where id_lomba='$id_lomba'");
$cek_user = "";
while($data = $getData->fetch()){
$qrU = $user->GetData("where
id_user='$data[id_user]'");
$rowU = $qrU->fetch();
if ($data['id_user']==$cek_user)
continue;
echo "<tr>
<td width = 10%><center><font
color='black'>$no</font></center></td>
<td width = 75%><a
target='blank'
href='index.php?menu=users&detail=$data[id_user]'>$rowU[nama_lengkap]</a></t
d>";
echo "<td width = 15%> <center><a
class='btn btn-small btn-primary'
href='?menu=mahasiswa_pendaftar&perlombaan=$id_lomba&nilai_user=$data[id_
user]'>Rincian Nilai</a></center></td>";
// echo "<td width = 22%> <a
class='btn btn-small btn-success'
A 105
href='?ap=peserta&aksi=detail&id_peserta=$data[id_peserta]'>Detail</a> <a
class='btn btn-small btn-danger'
href='application/peserta/peserta_hapus.php?id_peserta=$data[id_peserta]&nama_pe
serta=$data[nama_lengkap]&lomba=$data[nama_lomba]'>Hapus</a>
// <a class='btn btn-small btn-
info' href='?ap=peserta&aksi=edit&id_peserta=$data[id_peserta]'>Edit</a>
echo "</tr>";
$cek_user = $data['id_user'];
$no++;
}
//$up = mysql_query("update gtp_peserta set
approve = '1' where approve = '0'");
?>
</tbody>
</table>
<center><?php echo "<a
href='?menu=perhitungan&perlombaan=$id_lomba&hitung=1' class= 'btn btn-
success'>Hitung</a>"; ?> </button></center>
</div>
</div>
<?php
if(isset($_GET['umumkan'])){
$umumkan = $_GET['umumkan'];
$setUmum = $lomba->SetPengumuman($umumkan,
$id_lomba);
if($setUmum){
echo "<script
language='javascript'>alert('Berhasil');document.location='?menu=perhitungan&perl
ombaan=$id_lomba&hitung=1'</script>";
}else{
echo "<script
language='javascript'>alert('Gagal');document.location='?menu=perhitungan&perlo
mbaan=$id_lomba&hitung=1'</script>";
}
}
if(isset($_GET['hitung'])){
?>
<!-- Data perhitungan bobot dan normalisasi bobot -->
<div class="module">
A -106
<div class="module-head">
<h3>Normalisasi Bobot -- <?php echo $nama_lw['lomba'];
?></h3>
</div>
<div class="module-body table">
<table cellpadding="0" cellspacing="0" border="0"
class="datatable-1 table table-bordered table-striped display"
width="100%">
<thead>
<tr>
<th><center><font
color="black">No</font></center></th>
<th><font
color="black">Kriteria</font></th>
<th><font color="black">Bobot
Awal</font></th>
<th><font color="black">Bobot
Baru</font></th>
<!-- <th></th> -->
</tr>
</thead>
<tbody>
<?php
$awal = microtime(true);
$jmlBobot = $hitung-
>NormalisasiBobot($id_lomba);
$no = 1;
$getData = $lomba_rinci->GetData("where
id_lomba='$id_lomba' and bobot > 0 order by kriteria asc");
$cek_user = "";
$arBB = array();
$i=0;
while($data = $getData->fetch()){
$bobotBaru =
round($data['bobot']/$jmlBobot, 4);
$arBB[$i] = $bobotBaru;
echo "<tr>
<td width = 10%><center><font
color='black'>$no</font></center></td>
<td width = 66%><font
color='black'>$data[kriteria]</font></td>
<td width = 12%><center><font
color='black'>$data[bobot]</font></center></td>
<td width = 12%><center><font
color='black'>$bobotBaru</font></center></td>";
// echo "<td width = 22%> <a
class='btn btn-small btn-success'
href='?ap=peserta&aksi=detail&id_peserta=$data[id_peserta]'>Detail</a> <a
A 107
class='btn btn-small btn-danger'
href='application/peserta/peserta_hapus.php?id_peserta=$data[id_peserta]&nama_pe
serta=$data[nama_lengkap]&lomba=$data[nama_lomba]'>Hapus</a>
// <a class='btn btn-small btn-
info' href='?ap=peserta&aksi=edit&id_peserta=$data[id_peserta]'>Edit</a>
echo "</tr>";
$i++;
$no++;
}
//$up = mysql_query("update gtp_peserta set
approve = '1' where approve = '0'");
?>
</tbody>
</table>
</div>
</div>
<?php
$loopP = $mahasiswa_pendaftar->GetData("where
id_lomba='$id_lomba' and nilai > 0");
$ar_mahasiswa_pendaftar = array();
$in = -1;
$us = "";
while($data = $loopP->fetch()){
if($us != $data['id_user'])
$in++;
$ar_mahasiswa_pendaftar[$in] = $data['id_user'];
$us = $data['id_user'];
}
$jml_mahasiswa_pendaftar =
count($ar_mahasiswa_pendaftar);
$ar_nilai = array();
for($i=0;$i<$jml_mahasiswa_pendaftar;$i++){
$loop2 = $mahasiswa_pendaftar->GetData("where
id_lomba='$id_lomba' and id_user='$ar_mahasiswa_pendaftar[$i]' and nilai > 0
order by kriteria asc");
//echo "<br>";echo "<font color='black'> Pendaftar
dengan id " . $ar_mahasiswa_pendaftar[$i] . "<br/></font>";
$ib=0;
$vkt_s = 1;
while($k = $loop2->fetch()){
$pgkt = pow($k['nilai'], $arBB[$ib]);
A -108
//echo "<font color='black'>".$k['kriteria']."
dengan nilai ".$k['nilai']." dipangkat dengan bobot ". $arBB[$ib]."<br/></font>";
$vkt_s = $vkt_s * $pgkt;
$ib++;
}
//echo "<font color='black'>Vektor S pendaftar ".
$ar_mahasiswa_pendaftar[$i] ." = ". $vkt_s ." </font>";
//echo "<br>";
$qryVS = $hitung->SetVektor_S($vkt_s,
$ar_mahasiswa_pendaftar[$i], $id_lomba);
$qryVV = $hitung-
>SetVektor_V($ar_mahasiswa_pendaftar[$i], $id_lomba);
}
echo "<br>";
$akhir = microtime(true);
$lama = $akhir - $awal;
echo "<font color='blue'>Kecepatan Eksekusi Metode
Weighted Product Adalah: <b>".$lama."</b> Detik</font>";
?>
<div class="module">
<div class="module-head">
<h3>Hasil Seleksi -- <?php echo $nama_lw['lomba']; ?> --
Metode Weighted Product</h3>
</div>
<div class="module-body table">
<table cellpadding="0" cellspacing="0" border="0"
class="datatable-1 table table-bordered table-striped display"
width="100%">
<thead>
<tr>
<th><center><font
color="black">Ranking</font></center></th>
<th><font color="black">Rekomendasi
Peserta</font></th>
<th><font color="black">Vektor
S</font></th>
<th><font color="black">Vektor
V</font></th>
<!-- <th></th> -->
</tr>
</thead>
<tbody>
<?php
$no = 1;
A 109
$getData = $hitung->GetData("where
id_lomba='$id_lomba' order by vektor_v desc");
while($data = $getData->fetch()){
$qr_Plm = $user->GetData("where
id_user = '$data[id_user]'");
$plm = $qr_Plm->fetch();
echo "<tr>
<td width = 10%><center><font
color='black'>$no</font></center></td>
<td width = 66%><font
color='black'>$plm[nama_lengkap]</font></td>
<td width = 12%><font
color='black'>$data[vektor_s]</font></td>
<td width = 12%><center><font
color='black'>$data[vektor_v]</font></center></td>";
// echo "<td width = 22%> <a
class='btn btn-small btn-success'
href='?ap=peserta&aksi=detail&id_peserta=$data[id_peserta]'>Detail</a> <a
class='btn btn-small btn-danger'
href='application/peserta/peserta_hapus.php?id_peserta=$data[id_peserta]&nama_pe
serta=$data[nama_lengkap]&lomba=$data[nama_lomba]'>Hapus</a>
// <a class='btn btn-small btn-
info' href='?ap=peserta&aksi=edit&id_peserta=$data[id_peserta]'>Edit</a>
echo "</tr>";
$no++;
}
//$up = mysql_query("update gtp_peserta set
approve = '1' where approve = '0'");
?>
</tbody>
</table>
<div class="module-footer">
<center>
<?php
$qrUm = $lomba->GetData("where
id_lomba='$id_lomba'");
$cekUmum = $qrUm->fetch();
if($cekUmum['pengumuman']=="1"){
echo "<a
href='?menu=perhitungan&perlombaan=$id_lomba&umumkan=0' class= 'btn btn-
danger'>Batalkan Pengumuman</a>";
}else{
echo "<a
href='?menu=perhitungan&perlombaan=$id_lomba&umumkan=1' class= 'btn btn-
success'>Umumkan</a>";
}
?>
A -110
<?php
echo "<a
href='/skripsi/admin/topsis/index.php?a=hasiltopsis&k=nilai_matriks' target='_blank'
class= 'btn btn-primary'>Analisis perbandingan dengan metode TOPSIS</a>";
?>
</center>
</div>
<br>
</div>
</div>
<?php
}
}
}
?>
</div>
</div>
2. TOPSIS Method
1. nilai_matriks_normalisasi.php
<?php
include ("konfig/koneksi.php");
$s=mysql_query("select * from kriteria");
$h=mysql_num_rows($s);
?>
<style>
table {
border-collapse: collapse;
width: 100%;
}
table, th, td {
border: 1px solid black;
}
th, td {
padding: 10px;
}
th {
background-color: rgb(19, 110, 170);
color: white;
}
tr:hover
</style>
<div class="box-header">
<h3 class="box-title " >Nilai Matriks Ternormalisasi</h3>
A 111
</div>
<table class="table table-bordered table-responsive">
<thead>
<tr>
<th rowspan="2">No</th>
<th rowspan="2">Nama</th>
<th colspan="<?php echo $h; ?>">Kriteria</th>
</tr>
<tr>
<?php
for($n=1;$n<=$h;$n++){
echo"<th>C{$n}</th>";
}
?>
</tr>
</thead>
<tbody>
<?php
$i=0;
$a=mysql_query("select * from alternatif");
while($da=mysql_fetch_assoc($a)){
echo "<tr>
<td>".(++$i)."</td>
<td>$da[nm_alternatif]</td>";
$idalt=$da['id_alternatif'];
//ambil nilai
$n=mysql_query("select * from nilai_matriks where
id_alternatif='$idalt'");
while($dn=mysql_fetch_assoc($n)){
$idk=$dn['id_kriteria'];
//nilai kuadrat
$nilai_kuadrat=0;
$k=mysql_query("select * from nilai_matriks where
id_kriteria='$idk' ");
while($dkuadrat=mysql_fetch_assoc($k)){
$nilai_kuadrat=$nilai_kuadrat+($dkuadrat['nilai']*$dkuadrat['nilai']);
}
A -112
echo "<td
align='center'>".round(($dn['nilai']/sqrt($nilai_kuadrat)),3)."</td>";
}
echo "</tr>\n";
}
?>
</tbody>
</table>
2. nilai_bobot_normalisasi.php
<?php
include ("konfig/koneksi.php");
$s=mysql_query("select * from kriteria");
$h=mysql_num_rows($s);
?>
<style>
table {
border-collapse: collapse;
width: 100%;
}
table, th, td {
border: 1px solid black;
}
th, td {
padding: 10px;
}
th {
background-color: rgb(19, 110, 170);
color: white;
}
tr:hover
</style>
<div class="box-header">
<h3 class="box-title " >Nilai Bobot Ternormalisasi</h3>
</div>
<table class="table table-bordered table-responsive">
<thead>
<tr>
<th rowspan="2">No</th>
A 113
<th rowspan="2">Nama</th>
<th colspan="<?php echo $h; ?>">Kriteria</th>
</tr>
<tr>
<?php
for($n=1;$n<=$h;$n++){
echo"<th>C{$n}</th>";
}
?>
</tr>
</thead>
<tbody>
<?php
$i=0;
$a=mysql_query("select * from alternatif");
while($da=mysql_fetch_assoc($a)){
echo "<tr>
<td>".(++$i)."</td>
<td>$da[nm_alternatif]</td>";
$idalt=$da['id_alternatif'];
//ambil nilai
$n=mysql_query("select * from nilai_matriks where
id_alternatif='$idalt'");
while($dn=mysql_fetch_assoc($n)){
$idk=$dn['id_kriteria'];
//nilai kuadrat
$nilai_kuadrat=0;
$k=mysql_query("select * from nilai_matriks where
id_kriteria='$idk' ");
while($dkuadrat=mysql_fetch_assoc($k)){
$nilai_kuadrat=$nilai_kuadrat+($dkuadrat['nilai']*$dkuadrat['nilai']);
}
//hitung jml alternatif
$jml_alternatif=mysql_query("select * from alternatif");
$jml_a=mysql_num_rows($jml_alternatif);
//nilai bobot kriteria (rata")
$bobot=0;
A -114
$tnilai=0;
$k2=mysql_query("select * from nilai_matriks where
id_kriteria='$idk' ");
while($dbobot=mysql_fetch_assoc($k2)){
$tnilai=$tnilai+$dbobot['nilai'];
}
$bobot=$tnilai/$jml_a;
//nilai bobot input
$b2=mysql_query("select * from kriteria where
id_kriteria='$idk'");
$nbot=mysql_fetch_assoc($b2);
$bot=$nbot['bobot'];
echo "<td
align='center'>".round(($dn['nilai']/sqrt($nilai_kuadrat))*$bot,3)."</td>";
}
echo "</tr>\n";
}
?>
</tbody>
</table>
3. matriks_ideal.php
<?php
include ("konfig/koneksi.php");
$s=mysql_query("select * from kriteria");
$h=mysql_num_rows($s);
?>
<style>
table {
border-collapse: collapse;
width: 100%;
}
table, th, td {
border: 1px solid black;
}
th, td {
padding: 10px;
}
th {
background-color: rgb(19, 110, 170);
A 115
color: white;
}
tr:hover
</style>
<div class="box-header">
<h3 class="box-title " >Matriks Ideal Positif (A<sup>+</sup>)</h3>
</div>
<table class="table table-bordered table-responsive">
<thead>
<tr>
<th colspan="<?php echo $h; ?>">Kriteria</th>
</tr>
<tr>
<?php
$hk=mysql_query("select nama_kriteria from kriteria");
while($dhk=mysql_fetch_assoc($hk)){
echo"<th>$dhk[nama_kriteria]</th>";
}
?>
</tr>
<tr>
<?php
for($n=1;$n<=$h;$n++){
echo"<th>y<sub>$n</sub><sup>+</sup></th>";
}
?>
</tr>
</thead>
<tbody>
<?php
$i=0;
$a=mysql_query("select * from kriteria");
echo "<tr>";
while($da=mysql_fetch_assoc($a)){
$idalt=$da['id_kriteria'];
//ambil nilai
$n=mysql_query("select * from nilai_matriks where
id_kriteria='$idalt'");
A -116
$c=0;
$ymax=array();
while($dn=mysql_fetch_assoc($n)){
$idk=$dn['id_kriteria'];
//nilai kuadrat
$nilai_kuadrat=0;
$k=mysql_query("select * from nilai_matriks where
id_kriteria='$idk' ");
while($dkuadrat=mysql_fetch_assoc($k)){
$nilai_kuadrat=$nilai_kuadrat+($dkuadrat['nilai']*$dkuadrat['nilai']);
}
//hitung jml alternatif
$jml_alternatif=mysql_query("select * from alternatif");
$jml_a=mysql_num_rows($jml_alternatif);
//nilai bobot kriteria (rata")
$bobot=0;
$tnilai=0;
$k2=mysql_query("select * from nilai_matriks where
id_kriteria='$idk' ");
while($dbobot=mysql_fetch_assoc($k2)){
$tnilai=$tnilai+$dbobot['nilai'];
}
$bobot=$tnilai/$jml_a;
//nilai bobot input
$b2=mysql_query("select * from kriteria where
id_kriteria='$idk'");
$nbot=mysql_fetch_assoc($b2);
$bot=$nbot['bobot'];
$v=round(($dn['nilai']/sqrt($nilai_kuadrat))*$bot,3);
$ymax[$c]=$v;
$c++;
}
echo "<td>".max($ymax)."</td>";
}
echo "</tr>";
A 117
?>
</tbody>
</table>
<!-- tabel min -->
<div class="box-header">
<h3 class="box-title " >Matriks Ideal Positif (A<sup>-</sup>)</h3>
</div>
<table class="table table-bordered table-responsive">
<thead>
<tr>
<th colspan="<?php echo $h; ?>">Kriteria</th>
</tr>
<tr>
<?php
$hk=mysql_query("select nama_kriteria from kriteria");
while($dhk=mysql_fetch_assoc($hk)){
echo"<th>$dhk[nama_kriteria]</th>";
}
?>
</tr>
<tr>
<?php
for($n=1;$n<=$h;$n++){
echo"<th>y<sub>$n</sub><sup>-</sup></th>";
}
?>
</tr>
</thead>
<tbody>
<?php
$i=0;
$a=mysql_query("select * from kriteria");
echo "<tr>";
while($da=mysql_fetch_assoc($a)){
$idalt=$da['id_kriteria'];
//ambil nilai
A -118
$n=mysql_query("select * from nilai_matriks where
id_kriteria='$idalt'");
$c=0;
$ymax=array();
while($dn=mysql_fetch_assoc($n)){
$idk=$dn['id_kriteria'];
//nilai kuadrat
$nilai_kuadrat=0;
$k=mysql_query("select * from nilai_matriks where
id_kriteria='$idk' ");
while($dkuadrat=mysql_fetch_assoc($k)){
$nilai_kuadrat=$nilai_kuadrat+($dkuadrat['nilai']*$dkuadrat['nilai']);
}
//hitung jml alternatif
$jml_alternatif=mysql_query("select * from alternatif");
$jml_a=mysql_num_rows($jml_alternatif);
//nilai bobot kriteria (rata")
$bobot=0;
$tnilai=0;
$k2=mysql_query("select * from nilai_matriks where
id_kriteria='$idk' ");
while($dbobot=mysql_fetch_assoc($k2)){
$tnilai=$tnilai+$dbobot['nilai'];
}
$bobot=$tnilai/$jml_a;
//nilai bobot input
$b2=mysql_query("select * from kriteria where
id_kriteria='$idk'");
$nbot=mysql_fetch_assoc($b2);
$bot=$nbot['bobot'];
$v=round(($dn['nilai']/sqrt($nilai_kuadrat))*$bot,3);
$ymax[$c]=$v;
$c++;
}
echo "<td>".min($ymax)."</td>";
A 119
}
echo "</tr>";
?>
</tbody>
</table>
4. jarak_solusi.php
<?php
session_start();
include ("konfig/koneksi.php");
$s=mysql_query("select * from kriteria");
$h=mysql_num_rows($s);
?>
<style>
table {
border-collapse: collapse;
width: 100%;
}
table, th, td {
border: 1px solid black;
}
th, td {
padding: 10px;
}
th {
background-color: rgb(19, 110, 170);
color: white;
}
tr:hover
</style>
<div class="box-header">
<h3 class="box-title " >Jarak Solusi Ideal Positif (D<sup>+</sup>)</h3>
</div>
<table class="table table-bordered table-responsive">
<thead>
<tr>
<th >Nomor</th>
<th >Nama</th>
<th >D<sup>+</sup></th>
</tr>
</thead>
<tbody>
<?php
//buat array kolom
A -120
$i2=1;
$i3=0;
$maxarray=array();
$a2=mysql_query("select * from kriteria");
echo "<tr>";
while($da2=mysql_fetch_assoc($a2)){
$idalt2=$da2['id_kriteria'];
//ambil nilai
$n2=mysql_query("select * from nilai_matriks where
id_kriteria='$idalt2'");
$jarakp2=0;
$c2=0;
$ymax2=array();
while($dn2=mysql_fetch_assoc($n2)){
$idk2=$dn2['id_kriteria'];
//nilai kuadrat
$nilai_kuadrat2=0;
$k2=mysql_query("select * from nilai_matriks where
id_kriteria='$idk2' ");
while($dkuadrat2=mysql_fetch_assoc($k2)){
$nilai_kuadrat2=$nilai_kuadrat2+($dkuadrat2['nilai']*$dkuadrat2['nilai']);
}
//hitung jml alternatif
$jml_alternatif2=mysql_query("select * from alternatif");
$jml_a2=mysql_num_rows($jml_alternatif2);
//nilai bobot kriteria (rata")
$bobot2=0;
$tnilai2=0;
$k22=mysql_query("select * from nilai_matriks where
id_kriteria='$idk2' ");
while($dbobot2=mysql_fetch_assoc($k22)){
$tnilai2=$tnilai2+$dbobot2['nilai'];
}
$bobot2=$tnilai2/$jml_a2;
//nilai bobot input
$b2=mysql_query("select * from kriteria where
id_kriteria='$idk2'");
A 121
$nbot2=mysql_fetch_assoc($b2);
$bot2=$nbot2['bobot'];
$v2=round(($dn2['nilai']/sqrt($nilai_kuadrat2))*$bot2,3);
$ymax2[$c2]=$v2;
$c2++;
$mak2=max($ymax2);
}
//hitung D+
foreach($ymax2 as $nymax2){
$jarakp2=$jarakp2+pow($nymax2-$mak2,2);
}
//array max
$maxarray[$i3]=max($ymax2);
//print_r($maxarray);
//print_r(max($ymax2));
$i2++;
$i3++;
}
//session array ymax
$_SESSION['ymax']=$maxarray;
//array baris//////////////////////////////////////////////////
$i=1;
$ii=0;
$dpreferensi=array();
$a=mysql_query("select * from alternatif");
echo "<tr>";
while($da=mysql_fetch_assoc($a)){
$idalt=$da['id_alternatif'];
//ambil nilai
$n=mysql_query("select * from nilai_matriks where
id_alternatif='$idalt'");
$jarakp=0;
$c=0;
$ymax=array();
$arraymaks=array();
while($dn=mysql_fetch_assoc($n)){
A -122
$idk=$dn['id_kriteria'];
//nilai kuadrat
$nilai_kuadrat=0;
$k=mysql_query("select * from nilai_matriks where
id_kriteria='$idk' ");
while($dkuadrat=mysql_fetch_assoc($k)){
$nilai_kuadrat=$nilai_kuadrat+($dkuadrat['nilai']*$dkuadrat['nilai']);
}
//hitung jml alternatif
$jml_alternatif=mysql_query("select * from alternatif");
$jml_a=mysql_num_rows($jml_alternatif);
//nilai bobot kriteria (rata")
$bobot=0;
$tnilai=0;
$k2=mysql_query("select * from nilai_matriks where
id_kriteria='$idk' ");
while($dbobot=mysql_fetch_assoc($k2)){
$tnilai=$tnilai+$dbobot['nilai'];
}
$bobot=$tnilai/$jml_a;
//nilai bobot input
$b2=mysql_query("select * from kriteria where
id_kriteria='$idk'");
$nbot=mysql_fetch_assoc($b2);
$bot=$nbot['bobot'];
$v=round(($dn['nilai']/sqrt($nilai_kuadrat))*$bot,3);
$ymax[$c]=$v;
$c++;
$mak=max($ymax);
}
//hitung D+
foreach($ymax as $nymax=>$value){
$maks=$_SESSION['ymax'][$nymax];
//echo $maks." - ";
$final=sqrt($jarakp=$jarakp+pow($value-$maks,2));
//echo $jarakp." || ";
}
echo "<tr>
<td>$i</td>
A 123
<td>$da[nm_alternatif]</td>
<td>".round($final,3)."</td>
</tr>";
$dpreferensi[$ii]=round($final,3);
$_SESSION['dplus']=$dpreferensi;
//print_r($ymax);
$i++;
$ii++;
}
echo "</tr>";
?>
</tbody>
</table>
<!-- tabel min ------------------------------------------------->
<div class="box-header">
<h3 class="box-title " >Jarak Solusi Ideal Negatif (D<sup>-</sup>)</h3>
</div>
<table class="table table-bordered table-responsive">
<thead>
<tr>
<th >Nomor</th>
<th >Nama</th>
<th >D<sup>-</sup></th>
</tr>
</thead>
<tbody>
<?php
//buat array kolom
$i2=1;
$i3=0;
$minarray=array();
$a2=mysql_query("select * from kriteria");
echo "<tr>";
while($da2=mysql_fetch_assoc($a2)){
$idalt2=$da2['id_kriteria'];
//ambil nilai
A -124
$n2=mysql_query("select * from nilai_matriks where
id_kriteria='$idalt2'");
$jarakp2=0;
$c2=0;
$ymin2=array();
while($dn2=mysql_fetch_assoc($n2)){
$idk2=$dn2['id_kriteria'];
//nilai kuadrat
$nilai_kuadrat2=0;
$k2=mysql_query("select * from nilai_matriks where
id_kriteria='$idk2' ");
while($dkuadrat2=mysql_fetch_assoc($k2)){
$nilai_kuadrat2=$nilai_kuadrat2+($dkuadrat2['nilai']*$dkuadrat2['nilai']);
}
//hitung jml alternatif
$jml_alternatif2=mysql_query("select * from alternatif");
$jml_a2=mysql_num_rows($jml_alternatif2);
//nilai bobot kriteria (rata")
$bobot2=0;
$tnilai2=0;
$k22=mysql_query("select * from nilai_matriks where
id_kriteria='$idk2' ");
while($dbobot2=mysql_fetch_assoc($k22)){
$tnilai2=$tnilai2+$dbobot2['nilai'];
}
$bobot2=$tnilai2/$jml_a2;
//nilai bobot input
$b2=mysql_query("select * from kriteria where
id_kriteria='$idk2'");
$nbot2=mysql_fetch_assoc($b2);
$bot2=$nbot2['bobot'];
$v2=round(($dn2['nilai']/sqrt($nilai_kuadrat2))*$bot2,3);
$ymin2[$c2]=$v2;
$c2++;
$min2=min($ymin2);
}
//hitung D+
A 125
foreach($ymin2 as $nymin2){
$jarakp2=$jarakp2+pow($nymin2-$min2,2);
//echo "--".$mak."---";
}
//array max
$minarray[$i3]=min($ymin2);
//print_r($maxarray);
//print_r(max($ymax2));
$i2++;
$i3++;
}
//session array ymax
$_SESSION['ymin']=$minarray;
//array baris//////////////////////////////////////////////////
$i=1;
$ii=0;
$id_alt=array();
$a=mysql_query("select * from alternatif");
echo "<tr>";
while($da=mysql_fetch_assoc($a)){
$idalt=$da['id_alternatif'];
//ambil nilai
$n=mysql_query("select * from nilai_matriks where
id_alternatif='$idalt'");
$jarakp=0;
$c=0;
$ymax=array();
$arraymin=array();
while($dn=mysql_fetch_assoc($n)){
$idk=$dn['id_kriteria'];
//nilai kuadrat
$nilai_kuadrat=0;
$k=mysql_query("select * from nilai_matriks where
id_kriteria='$idk' ");
while($dkuadrat=mysql_fetch_assoc($k)){
$nilai_kuadrat=$nilai_kuadrat+($dkuadrat['nilai']*$dkuadrat['nilai']);
A -126
}
//hitung jml alternatif
$jml_alternatif=mysql_query("select * from alternatif");
$jml_a=mysql_num_rows($jml_alternatif);
//nilai bobot kriteria (rata")
$bobot=0;
$tnilai=0;
$k2=mysql_query("select * from nilai_matriks where
id_kriteria='$idk' ");
while($dbobot=mysql_fetch_assoc($k2)){
$tnilai=$tnilai+$dbobot['nilai'];
}
$bobot=$tnilai/$jml_a;
//nilai bobot input
$b2=mysql_query("select * from kriteria where
id_kriteria='$idk'");
$nbot=mysql_fetch_assoc($b2);
$bot=$nbot['bobot'];
$v=round(($dn['nilai']/sqrt($nilai_kuadrat))*$bot,3);
$ymin[$c]=$v;
$c++;
$min=max($ymin);
}
//hitung D+
foreach($ymin as $nymin=>$value){
$mins=$_SESSION['ymin'][$nymin];
// echo $mins." - ";
$final=sqrt($jarakp=$jarakp+pow($value-$mins,2));
// echo $jarakp." || ";
}
echo "<tr>
<td>$i</td>
<td>$da[nm_alternatif]</td>
<td>".round($final,3)."</td>
</tr>";
//session min
$dpreferensi[$ii]=round($final,3);
$_SESSION['dmin']=$dpreferensi;
//print_r($ymin);
A 127
//ambil id alternatif
$id_alt[$ii]=$da['id_alternatif'];
$_SESSION['id_alt']=$id_alt;
$i++;
$ii++;
}
echo "</tr>";
?>
</tbody>
</table>
5. nilai_preferensi.php
<?php
session_start();
include ("konfig/koneksi.php");
?>
<div class="box-header">
<h3 class="box-title " >Nilai Preferensi</h3>
</div>
<table class="table table-bordered table-responsive">
<thead>
<tr>
<th >Ranking</th>
<th >Rekomendasi Peserta</th>
<th >Nilai Preferensi (V<sub>i</sub>)</th>
</tr>
</thead>
<tbody>
<?php
$awal = microtime(true);
$i=1;
$a=mysql_query("select * from alternatif");
echo "<tr>";
$sortir=array();
while($da=mysql_fetch_assoc($a)){
$idalt=$da['id_alternatif'];
A -128
//ambil nilai
$n=mysql_query("select * from nilai_matriks where
id_alternatif='$idalt'");
$c=0;
$ymax=array();
while($dn=mysql_fetch_assoc($n)){
$idk=$dn['id_kriteria'];
//nilai kuadrat
$nilai_kuadrat=0;
$k=mysql_query("select * from nilai_matriks where
id_kriteria='$idk' ");
while($dkuadrat=mysql_fetch_assoc($k)){
$nilai_kuadrat=$nilai_kuadrat+($dkuadrat['nilai']*$dkuadrat['nilai']);
}
//hitung jml alternatif
$jml_alternatif=mysql_query("select * from alternatif");
$jml_a=mysql_num_rows($jml_alternatif);
//nilai bobot kriteria (rata")
$bobot=0;
$tnilai=0;
$k2=mysql_query("select * from nilai_matriks where
id_kriteria='$idk' ");
while($dbobot=mysql_fetch_assoc($k2)){
$tnilai=$tnilai+$dbobot['nilai'];
}
$bobot=$tnilai/$jml_a;
//nilai bobot input
$b2=mysql_query("select * from kriteria where
id_kriteria='$idk'");
$nbot=mysql_fetch_assoc($b2);
$bot=$nbot['bobot'];
$v=round(($dn['nilai']/sqrt($nilai_kuadrat))*$bot,3);
$ymax[$c]=$v;
$c++;
$mak=max($ymax);
$min=min($ymax);
A 129
}
$i++;
}
foreach($_SESSION['dplus'] as $key=>$dxmin){
$jarakm=$_SESSION['dmin'][$key];
$id_alt=$_SESSION['id_alt'][$key];
//nama alternatif
$nama=mysql_query("select * from alternatif where id_alternatif='$id_alt'");
$nm=mysql_fetch_assoc($nama);
$nilaid=$jarakm/($jarakm+$dxmin);
$nilai=round($nilaid,4);
//simpan ke tabel nilai preferensi
$nm=$nm['nm_alternatif'];
$sql2=mysql_query("insert into nilai_preferensi (nm_alternatif,nilai)
values('$nm','$nilai')");
}
//ambil data sesuai dengan nilai tertinggi
$i=1;
$sql3=mysql_query("select * from nilai_preferensi order by nilai Desc");
while($data3=mysql_fetch_assoc($sql3)){
echo "<tr>
<td>".$i."</td>
<td>$data3[nm_alternatif]</td>
<td>$data3[nilai]</td>
</tr>";
$i++;
}
//kosongkan tabel nilai preferensi
$del=mysql_query("delete from nilai_preferensi");
echo "</tr>";
$akhir = microtime(true);
$lama = $akhir - $awal;
echo "<p>Kecepatan Eksekusi Metode TOPSIS Adalah: <b>".$lama."</b>
Detik</p>";
?>
</tbody>
</table>
B-1
B. ANGKET PENELITIAN
B-2
C-1
C. DAFTAR RIWAYAT HIDUP