Algoritma Profile Matching adalah salah satu algoritma yang digunakan untuk menentukan skor dari inputan data data yang ada. Nantinya skor skor tersebut dapat diurutkan sehingga dapat digunakan untuk mengambil data dengan skor tertinggi / terburuk tergantung kebutuhan.
Diasumsikan ada 4 data skor yang sudah diketahui datanya
Maka tentukan nilai akhir dari skor tersebut
Contoh input:
Nama | Skor | Skor | Skor | Skor4 |
---|---|---|---|---|
Andi | 6 | 70 | 7 | 60 |
Budi | 5 | 80 | 3 | 80 |
Dedi | 7 | 40 | 5 | 60 |
Erdi | 5 | 50 | 9 | 30 |
Langkah pertama adalah memasukkan data-data yang digunakan.
Contoh data adalah sebagai berikut
Dim skor(3, 3) As Double skor(0, 0) = 6 skor(0, 1) = 70 skor(0, 2) = 7 skor(0, 3) = 60 skor(1, 0) = 5 skor(1, 1) = 80 skor(1, 2) = 3 skor(1, 3) = 80 skor(2, 0) = 7 skor(2, 1) = 40 skor(2, 2) = 5 skor(2, 3) = 60 skor(3, 0) = 5 skor(3, 1) = 50 skor(3, 2) = 9 skor(3, 3) = 30
Langkah-langkah penggunaan algoritma ini adalah
1. Tentukan Kriteria Penilaian
Nilai-nilai tersebut akan dikelompokan ke dalam beberapa golongan, misalnya 3 golongan, yaitu rendah, sedang, tinggi
Kemudian tentukan masing-masing rentang skor untuk golongan tersebut
Contoh dalam kasus ini:
kolom 1: rendah 0-3, sedang 4-6, tinggi 7-10
kolom 2: rendah 0-30, sedang 40-60, tinggi 70-100
kolom 3: rendah 0-3, sedang 4-6, tinggi 7-10
kolom 4: rendah 0-30, sedang 40-60, tinggi 70-100
2. Konversi Nilai awal menjadi Penilaian
Setelah menentukan kriteria penilaian, maka lakukan konversi skor tersebut.
Dalam kasus ini, rendah bernilai 1, sedang bernilai 2, dan tinggi bernilai 3
Dim konversiskor(3, 3) As Double konversiskor(0, 0) = IIf(skor(0, 0) <= 3, 1, IIf(skor(0, 0) <= 6, 2, 3)) konversiskor(0, 1) = IIf(skor(0, 1) <= 30, 1, IIf(skor(0, 1) <= 60, 2, 3)) konversiskor(0, 2) = IIf(skor(0, 2) <= 3, 1, IIf(skor(0, 2) <= 6, 2, 3)) konversiskor(0, 3) = IIf(skor(0, 3) <= 30, 1, IIf(skor(0, 3) <= 60, 2, 3)) konversiskor(1, 0) = IIf(skor(1, 0) <= 3, 1, IIf(skor(1, 0) <= 6, 2, 3)) konversiskor(1, 1) = IIf(skor(1, 1) <= 30, 1, IIf(skor(1, 1) <= 60, 2, 3)) konversiskor(1, 2) = IIf(skor(1, 2) <= 3, 1, IIf(skor(1, 2) <= 6, 2, 3)) konversiskor(1, 3) = IIf(skor(1, 3) <= 30, 1, IIf(skor(1, 3) <= 60, 2, 3)) konversiskor(2, 0) = IIf(skor(2, 0) <= 3, 1, IIf(skor(2, 0) <= 6, 2, 3)) konversiskor(2, 1) = IIf(skor(2, 1) <= 30, 1, IIf(skor(2, 1) <= 60, 2, 3)) konversiskor(2, 2) = IIf(skor(2, 2) <= 3, 1, IIf(skor(2, 2) <= 6, 2, 3)) konversiskor(2, 3) = IIf(skor(2, 3) <= 30, 1, IIf(skor(2, 3) <= 60, 2, 3)) konversiskor(3, 0) = IIf(skor(3, 0) <= 3, 1, IIf(skor(3, 0) <= 6, 2, 3)) konversiskor(3, 1) = IIf(skor(3, 1) <= 30, 1, IIf(skor(3, 1) <= 60, 2, 3)) konversiskor(3, 2) = IIf(skor(3, 2) <= 3, 1, IIf(skor(3, 2) <= 6, 2, 3)) konversiskor(3, 3) = IIf(skor(3, 3) <= 30, 1, IIf(skor(3, 3) <= 60, 2, 3))
3. Tentukan nilai standard untuk masing-masing kolom pada konversi skor
Nilai ini nantinya digunakan untuk perhitungan nilai GAP
Contoh dalam kasus ini, standar kolom 1 adalah sedang, standar kolom 2 adalah tinggi, standar kolom 3 adalah rendah, standar kolom 4 adalah sedang
4. Tentukan nilai GAP
Nilai GAP adalah selisih dari konversi skor (nomor 2) dengan nilai standar yang telah ditentukan (nomor 3)
Dim gapskor(3, 3) As Double gapskor(0, 0) = konversiskor(0, 0) - 2 gapskor(0, 1) = konversiskor(0, 1) - 3 gapskor(0, 2) = konversiskor(0, 2) - 1 gapskor(0, 3) = konversiskor(0, 3) - 2 gapskor(1, 0) = konversiskor(1, 0) - 2 gapskor(1, 1) = konversiskor(1, 1) - 3 gapskor(1, 2) = konversiskor(1, 2) - 1 gapskor(1, 3) = konversiskor(1, 3) - 2 gapskor(2, 0) = konversiskor(2, 0) - 2 gapskor(2, 1) = konversiskor(2, 1) - 3 gapskor(2, 2) = konversiskor(2, 2) - 1 gapskor(2, 3) = konversiskor(2, 3) - 2 gapskor(3, 0) = konversiskor(3, 0) - 2 gapskor(3, 1) = konversiskor(3, 1) - 3 gapskor(3, 2) = konversiskor(3, 2) - 1 gapskor(3, 3) = konversiskor(3, 3) - 2
5. Konversi Pembobotan Nilai GAP
Setelah menentukan nilai GAP (nomor 4), maka konversikan nilai tersebut ke dalam kriteria pembobotan
Nilai ini nantinya yang akan digunakan dalam perhitungan skor akhir
Contoh dalam kasus ini:
Jika nilai GAP adalah -2 maka nilai bobotnya adalah 2
Jika nilai GAP adalah -1 maka nilai bobotnya adalah 2.5
Jika nilai GAP adalah 0 maka nilai bobotnya adalah 3
Jika nilai GAP adalah 1 maka nilai bobotnya adalah 3.5
Jika nilai GAP adalah 2 maka nilai bobotnya adalah 4
Dim bobotskor(3, 3) As Double bobotskor(0, 0) = IIf(gapskor(0, 0) = -2, 2, IIf(gapskor(0, 0) = -1, 2.5, IIf(gapskor(0, 0) = 0, 3, IIf(gapskor(0, 0) = 1, 3.5, 4)))) bobotskor(0, 1) = IIf(gapskor(0, 1) = -2, 2, IIf(gapskor(0, 1) = -1, 2.5, IIf(gapskor(0, 1) = 0, 3, IIf(gapskor(0, 1) = 1, 3.5, 4)))) bobotskor(0, 2) = IIf(gapskor(0, 2) = -2, 2, IIf(gapskor(0, 2) = -1, 2.5, IIf(gapskor(0, 2) = 0, 3, IIf(gapskor(0, 2) = 1, 3.5, 4)))) bobotskor(0, 3) = IIf(gapskor(0, 3) = -2, 2, IIf(gapskor(0, 3) = -1, 2.5, IIf(gapskor(0, 3) = 0, 3, IIf(gapskor(0, 3) = 1, 3.5, 4)))) bobotskor(1, 0) = IIf(gapskor(1, 0) = -2, 2, IIf(gapskor(1, 0) = -1, 2.5, IIf(gapskor(1, 0) = 0, 3, IIf(gapskor(1, 0) = 1, 3.5, 4)))) bobotskor(1, 1) = IIf(gapskor(1, 1) = -2, 2, IIf(gapskor(1, 1) = -1, 2.5, IIf(gapskor(1, 1) = 0, 3, IIf(gapskor(1, 1) = 1, 3.5, 4)))) bobotskor(1, 2) = IIf(gapskor(1, 2) = -2, 2, IIf(gapskor(1, 2) = -1, 2.5, IIf(gapskor(1, 2) = 0, 3, IIf(gapskor(1, 2) = 1, 3.5, 4)))) bobotskor(1, 3) = IIf(gapskor(1, 3) = -2, 2, IIf(gapskor(1, 3) = -1, 2.5, IIf(gapskor(1, 3) = 0, 3, IIf(gapskor(1, 3) = 1, 3.5, 4)))) bobotskor(2, 0) = IIf(gapskor(2, 0) = -2, 2, IIf(gapskor(2, 0) = -1, 2.5, IIf(gapskor(2, 0) = 0, 3, IIf(gapskor(2, 0) = 1, 3.5, 4)))) bobotskor(2, 1) = IIf(gapskor(2, 1) = -2, 2, IIf(gapskor(2, 1) = -1, 2.5, IIf(gapskor(2, 1) = 0, 3, IIf(gapskor(2, 1) = 1, 3.5, 4)))) bobotskor(2, 2) = IIf(gapskor(2, 2) = -2, 2, IIf(gapskor(2, 2) = -1, 2.5, IIf(gapskor(2, 2) = 0, 3, IIf(gapskor(2, 2) = 1, 3.5, 4)))) bobotskor(2, 3) = IIf(gapskor(2, 3) = -2, 2, IIf(gapskor(2, 3) = -1, 2.5, IIf(gapskor(2, 3) = 0, 3, IIf(gapskor(2, 3) = 1, 3.5, 4)))) bobotskor(3, 0) = IIf(gapskor(3, 0) = -2, 2, IIf(gapskor(3, 0) = -1, 2.5, IIf(gapskor(3, 0) = 0, 3, IIf(gapskor(3, 0) = 1, 3.5, 4)))) bobotskor(3, 1) = IIf(gapskor(3, 1) = -2, 2, IIf(gapskor(3, 1) = -1, 2.5, IIf(gapskor(3, 1) = 0, 3, IIf(gapskor(3, 1) = 1, 3.5, 4)))) bobotskor(3, 2) = IIf(gapskor(3, 2) = -2, 2, IIf(gapskor(3, 2) = -1, 2.5, IIf(gapskor(3, 2) = 0, 3, IIf(gapskor(3, 2) = 1, 3.5, 4)))) bobotskor(3, 3) = IIf(gapskor(3, 3) = -2, 2, IIf(gapskor(3, 3) = -1, 2.5, IIf(gapskor(3, 3) = 0, 3, IIf(gapskor(3, 3) = 1, 3.5, 4))))
6. Tentukan faktor utama dan faktor non utama dari masing-masing kolom
Faktor Utama adalah faktor yang lebih menenetukan dibandingkan faktor lainnya, sehingga perhitungan nilainya akan lebih tinggi dibandingkan kolom lain
Faktor Utama dan Faktor Non Utama harus ada minimal 1, sisanya bisa dimasukkan ke dalam faktor manapun
Contoh dalam kasus ini, faktor utama adalah kolom 1 dan 2, sedangkan faktor non utama adalah kolom 3 dan 4
7. Hitung skor akhir
Untuk masing-masing baris, jumlahkan data untuk kolom-kolom faktor utama, dan jumlahkan data untuk kolom-kolom faktor non utama
Kemudian cari rata-rata untuk masing-masing total tersebut
Skor akhir adalah 0.6 * total faktor utama + 0.4 * total faktor non utama
Dim faktorUtama As Double = 0, faktorNonUtama As Double = 0, totalFaktorUtama As Double = 2, totalFaktorNonUtama As Double = 2 Dim skorAkhir(3) As Double For i As Integer = 0 To 3 faktorUtama = (bobotskor(i, 0) + bobotskor(i, 1)) / totalFaktorUtama faktorNonUtama = (bobotskor(i, 2) + bobotskor(i, 3)) / totalFaktorNonUtama skorAkhir(i) = 0.6 * faktorUtama + 0.4 * faktorNonUtama Next
Hasil akhir adalah: (klik untuk perbesar gambar)
Contoh modul / source code dalam bahasa VB (Visual Basic) dapat didownload disini:
Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.
Saya akan membuat skripsi yaitu, menentukan mobil mana yg tepat dengan mencocokkan kriteria yg diinputkan. Misal data di database ada 100, kemudian waktu diproses, muncul 5 data sesuai dengan kriteria yg diminta. Apakah algoritma ini cocok?
Jika menggunakan kondisi yang sama seperti pembahasan pada website ini, maka tentu saja algoritma ini dapat digunakan untuk menyelesaikan kasus tersebut. Anda tinggal perlu melakukan penyesuaian standar nilai GAP pada poin nomor 3 sesuai dengan kriteria yang diinginkan. Dengan demikian, maka semua nilai kriteria yang bernilai lebih baik dari nilai standar GAP akan memiliki nilai skor yang lebih tinggi. Setelah melakukan perhitungan pada semua data (dalam kasus anda terdapat 100 data), silahkan urutkan skor dan ambil data berdasarkan skor tertinggi (dalam kasus anda berarti 5 skor tertinggi).