Penerapan Algoritma Nearest Neighbor Untuk Meprediksi Resiko Peminjaman Debitur Baru Dengan Membandingkan Dengan Data Debitur Lama

Resiko Pinjaman
Risiko pinjaman (resiko kredit) adalah suatu risiko kerugian yang disebabkan oleh ketidak mampuan (gagal bayar) dari debitur atas kewajiban pembayaran utangnya baik utang pokok maupun bunganya ataupun keduanya.

Kebanyakan pemberi pinjaman menggunakan cara penilaian kelayakan kredit mereka masing-masing guna membuat peringkat risiko konsumen lalu kemudian mengaplikasikannya terhadap strategi bisnis mereka.

Terdapat beberapa alasan pinjaman uang nasabah ditolak oleh bank, diantaranya adalah :
1. Nasabah punya sejarah pinjaman macet
2. Agunan nasabah dianggap kurang layak
3. Penghasilan nasabah kurang mampu mengimbangi pinjaman
4. Nasabah tidak menyediakan modal sendiri
5. Usia bisnis masih terlalu muda
6. Faktor resiko dalam sebuah profesi
7. Reputasi nsabah dianggap kurang bagus
8. Data nasabah tidak valid

Prediksi
Menurut kamus besar bahasa Indonesia, prediksi adalah hasil dari kegiatan memprediksi atau meramal atau memperkirakan. Pengertian prediksi secara istilah akan sangat tergantung pada konteks atau permasalahannya. Berbeda dengan pengertian prediksi secara bahasa yang berarti ramalan atau perkiraaan yang sudah menjadi pengertian yang baku.

Di dalam Data Mining, prediksi hamper sama dengan klasifikasi dan estimasi, kecuali bahwa prediksi nilai dari hasil akan ada di masa mendatang (Kusrini dan Emha Taufiq Luthfi, 2009).

Prediksi digunakan untuk memperkirakan nilai masa mendatang, misalnya memprediksi stok barang satu tahun ke depan. Fungsi ini mencakup metode Neural Network, Decision Tree, dan Nearest Neighbor. Prediksi menggunakan beberapa variable atatu field-field basis data untuk memprediksi nilai-nilai variabel masa mendatang yang diperlukan, yang belum diketahui saat ini


Algoritma Nearest Neighbor
Nearest Neighbor adalah pendekatan untuk mencari kasus dengan menghitung kedekatan antara kasus baru dengan kasus lama, yaitu berdasarkan pada pencocokan bobot dari sejumlah fitur yang ada (Kusrini dan Emha Taufiq Luthfi, 2009).

Misalkan diinginkan untuk mencari solusi terhadap seorang pasien baru dengan menggunakan solusi dari pasien terdahulu. Untuk mencari kasus pasien mana yang akan digunakan maka dihitung kedekatan kasus pasien baru dengan semua kasus pasien lama. Kasus pasien lama dengan kedekatan terbesarlah yang akan diambil solusinya untuk digunakan pada kasus pasien baru (Kusrini dan Emha Taufiq Luthfi, 2009)


Adapun rumus untuk melakukan penghitungan kedekatan antara 2 kasus adalah sebagai berikut :


dengan
T : kasus baru
S : kasus yang ada dalam penyimpanan
n : jumlah atribut dalam masing-masing kasus
i : atribut individu antara 1 s/d n
f : fungsi similarity atribut i antara kasus T
w : bobot yang diberikan pada atribut ke i


Contoh Kasus Perhitungan Algoritma Nearest Neighbor
Data penentuan resiko pinjaman dana di Bank Perkreditan Rakyat terdiri dari 8 atribut, dimana 7 atribut prediktor dan 1 atribut label, seperti yang ditunjukkan pada tabel berikut :
Tabel 1
Daftar Atribut dan Nilai Atributnya
Atribut Nilai Atribut
Jumlah Pinjaman
<= 20.000.000
> 20.000.000 s/d <= 50.000.000
> 50.000.000 s/d <= 75.000.000
> 75.000.000
Tujuan Pinjam
Investasi
Konsumtif
Modal Kerja
Jangka Waktu
12 Bulan
24 Bulan
36 Bulan
48 Bulan
60 Bulan
72 Bulan
Kondisi Debitur
Cukup Baik
Baik
Sangat Baik
Pekerjaan Debitur
Ibu Rumah Tangga
Mahasiswa
PNS
Karyawan
Pegawai Swasta
Pegawai Pajak
Wiraswasta
Penghasilan Debitur per Bulan
< 2.500.000
2.500.000 s/d 6.500.000
> 6.500.000
Jaminan
BPKB kendaraan Roda Dua
BPKB kendaraan Roda Empat
Sertifikat Tanah
Sertifikat Rumah
SK PNS
Tanpa Agunan
Resiko Peminjaman ?


Analisa Proses
Dari pengelompokkan atribut diatas, maka langkah selanjutnya adalah melakukan analisa proses dalam data mining dengan menggunakan Algoritma Nearest Neighbor.

Untuk mengukur jarak masing-masing atribut, perlu diberikan bobot. Bobot yang diberikan, nilainya antara 0 dan 1, dimana 0 menandakan atribut tidak berpengaruh dan 1 menandakan atribut sangat berpengaruh.

Pemberian bobot pada masing-masing atribut dapat dilihat pada tabel berikut :
Tabel 2
Bobot Pada Masing-Masing Prediktor
No. Atribut Bobot
1. Jumlah Pinjaman 0.8
2. Tujuan Pinjam 0.8
3. Jangka Waktu 0.8
4. Kondisi Debitur 0.6
5. Pekerjaan Debitur 0.6
6. Penghasilan Debitur per Bulan 0.6
7. Jaminan 0.5

1. Kedekatan nilai atribut Jumlah Pinjaman ditunjukkan di tabel berikut :
A1 : <= 20.000.000
A2 : > 20.000.000 s/d <= 50.000.000
A3 : > 50.000.000 s/d <= 75.000.000
A4 : > 75.000.000
Tabel 3
Kedekatan Nilai Atribut Jumlah Pinjaman
No. Atribut Jumlah Pinjaman Nilai
1. A1 100
2. A2 80
3. A3 60
4. A4 40

Setelah dilakukan klasifikasi Jumlah Pinjaman, berikutnya melakukan pencarian nilai kedekatan atribut Jumlah Pinjaman yaitu dilihat pada tabel berikut :
A1 A2 A3 A4
A1 1 0.8 0.6 0.4
A2 0.8 1 0.75 0.5
A3 0.6 0.75 1 0.667
A4 0.4 0.5 0.667 1


2. Kedekatan nilai atribut Tujuan Pinjam ditunjukkan di tabel berikut :
B1 : Investasi
B2 : Konsumtif
B3 : Modal Kerja
Tabel 4
Kedekatan Nilai Atribut Tujuan Pinjam
No. Atribut Tujuan Pinjam Nilai
1. B1 100
2. B2 70
3. B3 40

Setelah dilakukan klasifikasi Tujuan Pinjam, berikutnya melakukan pencarian nilai kedekatan atribut Tujuan Pinjam yaitu dilihat pada tabel berikut :
B1 B2 B3
B1 1 0.7 0.4
B2 0.7 1 0.571
B3 0.4 0.571 1


3. Kedekatan nilai atribut Jangka Waktu ditunjukkan di tabel berikut : :
C1 : 12 Bulan
C2 : 24 Bulan
C3 : 36 Bulan
C4 : 48 Bulan
C5 : 60 Bulan
C6 : 72 Bulan
Tabel 5
Kedekatan Nilai Atribut Jangka Waktu
No. Atribut Jangka Waktu Nilai
1. C1 100
2. C2 90
3. C3 80
4. C4 70
5. C5 60
6. C6 50

Setelah dilakukan klasifikasi Jangka Waktu, berikutnya melakukan pencarian nilai kedekatan atribut Jangka Waktu yaitu dilihat pada tabel berikut :
C1 C2 C3 C4 C5 C6
C1 1 0.9 0.8 0.7 0.6 0.5
C2 0.9 1 0.889 0.778 0.667 0.556
C3 0.8 0.889 1 0.875 0.75 0.625
C4 0.7 0.778 0.875 1 0.857 0.714
C5 0.6 0.667 0.75 0.857 1 0.833
C6 0.5 0.556 0.625 0.714 0.833 1


4. Kedekatan nilai atribut Kondisi Debitur ditunjukkan di tabel berikut :
D1 : Cukup Baik
D2 : Baik
D3 : Sangat Baik
Tabel 6
Kedekatan Nilai Atribut Kondisi Debitur
No. Atribut Kondisi Debitur Nilai
1. D1 100
2. D2 70
3. D3 40

Setelah dilakukan klasifikasi Kondisi Debitur, berikutnya melakukan pencarian nilai kedekatan atribut Kondisi Debitur yaitu dilihat pada tabel berikut :
D1 D2 D3
D1 1 0.7 0.4
D2 0.7 1 0.571
D3 0.4 0.571 1


5. Kedekatan nilai atribut Pekerjaan Debitur ditunjukkan di tabel berikut : :
E1 : Tidak Bekerja
E2 : Pegawai Swasta
E3 : Mahasiswa
E4 : Pegawai Negeri
E5 : Wiraswasta
E6 : Ibu Rumah Tangga
Tabel 7
Kedekatan Nilai Atribut Pekerjaan Debitur
No. Atribut Pekerjaan Debitur Nilai
1. E1 100
2. E2 90
3. E3 80
4. E4 70
5. E5 60
6. E6 50

Setelah dilakukan klasifikasi Pekerjaan Debitur, berikutnya melakukan pencarian nilai kedekatan atribut Pekerjaan Debitur yaitu dilihat pada tabel berikut :
E1 E2 E3 E4 E5 E6
E1 1 0.9 0.8 0.7 0.6 0.5
E2 0.9 1 0.889 0.778 0.667 0.556
E3 0.8 0.889 1 0.875 0.75 0.625
E4 0.7 0.778 0.875 1 0.857 0.714
E5 0.6 0.667 0.75 0.857 1 0.833
E6 0.5 0.556 0.625 0.714 0.833 1


6. Kedekatan nilai atribut Penghasilan Debitur Per Bulan ditunjukkan di tabel berikut :
F1 : < 2.500.000
F2 : 2.500.000 s/d 6.500.000
F3 : > 6.500.000
Tabel 8
Kedekatan Nilai Atribut Penghasilan Debitur Per Bulan
No. Atribut Penghasilan Debitur Per Bulan Nilai
1. F1 100
2. F2 70
3. F3 40

Setelah dilakukan klasifikasi Penghasilan Debitur Per Bulan, berikutnya melakukan pencarian nilai kedekatan atribut Penghasilan Debitur Per Bulan yaitu dilihat pada tabel berikut :
F1 F2 F3
F1 1 0.7 0.4
F2 0.7 1 0.571
F3 0.4 0.571 1


7. Kedekatan nilai atribut Jaminan ditunjukkan di tabel berikut : :
G1 : BPKB Kendaraan Roda Dua
G2 : BPKB Kendaraan Roda Empat
G3 : Sertifikat Tanah
G4 : Sertifikat Rumah
G5 : SK PNS
G6 : Tanpa Agunan
Tabel 9
Kedekatan Nilai Atribut Jaminan
No. Atribut Jaminan Nilai
1. G1 100
2. G2 90
3. G3 80
4. G4 70
5. G5 60
6. G6 50

Setelah dilakukan klasifikasi Jaminan, berikutnya melakukan pencarian nilai kedekatan atribut Jaminan yaitu dilihat pada tabel berikut :
G1 G2 G3 G4 G5 G6
G1 1 0.9 0.8 0.7 0.6 0.5
G2 0.9 1 0.889 0.778 0.667 0.556
G3 0.8 0.889 1 0.875 0.75 0.625
G4 0.7 0.778 0.875 1 0.857 0.714
G5 0.6 0.667 0.75 0.857 1 0.833
G6 0.5 0.556 0.625 0.714 0.833 1


Setelah menentukan kedekatan nilai atribut dari masing-masing atribut prediktor, maka proses selanjutnya adalah melakukan proses perhitungan berdasarkan data training yang akan digunakan. Pada penelitian ini, digunakan 3 record sample data training dari 65 record data training.

Sample data training yang akan digunakan dapat dilihat pada tabel berikut :
Tabel 10
Sample data training
No. Jumlah Pinjaman (Rp) Tujuan Pinjam (Jenis Kredit) Jang ka Waktu Kondisi Debitur saat ini Pekerja an Debitur Penghasi lan / Bln (Rp.) Jaminan Resiko
1. >20.000.000 s/d <= 50.000.000 Modal Kerja 36 Bulan Cukup Baik Pegawai Swasta 2.500.000 s/d 6.500.000 Sertifikat Tanah Sedang
2. <= 20.000.000 Modal Kerja 12 Bulan Baik Wiraswasta < 2.500.000 BPKB Kendaraan Roda Dua Tinggi
3. <= 20.000.000 Konsumtif 36 Bulan Baik Pegawai Swasta 2.500.000 s/d 6.500.000 Kendaraan Roda Empat Rendah


Contoh Kasus
Misalkan ada kasus baru pada data testing dengan nilai atribut seperti pada Tabel 11. Kasus baru tersebut akan dihitung kedekatannya dengan kasus lama yang terdapat pada data training table 10
Tabel 11
Data Testing
No. Jumlah Pinjaman (Rp) Tujuan Pinjam (Jenis Kredit) Jang ka Waktu Kondisi Debitur saat ini Pekerja an Debitur Penghasi lan / Bln (Rp.) Jaminan
4. > 20.000.000 s/d <= 50.000.000 Konsumtif 60 Bulan Baik Pegawai Swasta 2.500.000 s/d 6.500.000 BPKB Kendaraan Roda Dua

Perhitungan kedekatan kasus baru pada data testing pada Tabel 11 dengan 3 kasus lama pada data training pada Tabel 10, yaitu:
Tabel 12
Kedekatan Kasus Baru Dengan Kasus Nomor 1
No. Atribut Nilai Atribut Kasus Nomor 1 Nilai Atribut Kasus Baru Kedekatan (a) Bobot (b)
1. Jumlah Pinjaman > 20.000.000 s/d <= 50.000.000 > 20.000.000 s/d <= 50.000.000 1 0.8
2. Tujuan Pinjam Modal Kerja Konsumtif 0.571 0.8
3. Jangka Waktu 36 Bulan 60 Bulan 0.75 0.8
4. Kondisi Debitur Cukup Baik Baik 0.7 0.6
5. Pekerjaan Debitur Pegawai Swasta Pegawai Swasta 1 0.6
6. Penghasilan Debitur Per Bulan 2.500.000 s/d 6.500.000 2.500.000 s/d 6.500.000 1 0.6
7. Jaminan Sertifikat Tanah BPKB Kendaraan Roda Dua 0.8 0.5
Dari tabel diatas, dapat dihitung kedekatan kasus baru dengan kasus nomor 1, dengan cara :

Similarity =
((a1*b1)+(a2*b2)+(a3*b3)+(a4*b4)+(a5*b
5)+(a6*b6)+(a7*b7)) /
(b1+b2+b3+b4+b5+b6+b7)

Similarity =
((1*0.8)+(0.571*0.8)+(0.75*0.8)+(0.7*0.6)
+(1*0.6)+(1*0.6)+(0.8*0.5)) /
(0.8+0.8+0.8+0.6+0.6+0.6+0.5)

Similarity = 0.825


Tabel 13
Kedekatan Kasus Baru Dengan Kasus Nomor 2
No. Atribut Nilai Atribut Kasus Nomor 2 Nilai Atribut Kasus Baru Kedekatan (a) Bobot (b)
1. Jumlah Pinjaman <= 20.000.000 > 20.000.000 s/d <= 50.000.000 0.8 0.8
2. Tujuan Pinjam Modal Kerja Konsumtif 0.571 0.8
3. Jangka Waktu 12 Bulan 60 Bulan 0.6 0.8
4. Kondisi Debitur Baik Baik 1 0.6
5. Pekerjaan Debitur Wiraswasta Pegawai Swasta 0.667 0.6
6. Penghasilan Debitur Per Bulan < 2.500.000 2.500.000 s/d 6.500.000 0.7 0.6
7. Jaminan BPKB Kendaraan Roda Dua BPKB Kendaraan Roda Dua 1 0.5
Dari tabel diatas, dapat dihitung kedekatan kasus baru dengan kasus nomor 2, dengan cara :

Similarity =
((a1*b1)+(a2*b2)+(a3*b3)+(a4*b4)+(a5*b
5)+(a6*b6)+(a7*b7)) /
(b1+b2+b3+b4+b5+b6+b7)

Similarity = ((0.8*0.8)+(0.571*0.8)+(0.6*0.8)+(1*0.6)+
(0.667*0.6)+(0.7*0.6)+(1*0.5)) /
(0.8+0.8+0.8+0.6+0.6+0.6+0.5)

Similarity = 0.744


Tabel 14
Kedekatan Kasus Baru Dengan Kasus Nomor 3
No. Atribut Nilai Atribut Kasus Nomor 3 Nilai Atribut Kasus Baru Kedekatan (a) Bobot (b)
1. Jumlah Pinjaman <= 20.000.000 > 20.000.000 s/d <= 50.000.000 0.8 0.8
2. Tujuan Pinjam Konsumtif Konsumtif 1 0.8
3. Jangka Waktu 36 Bulan 60 Bulan 0.75 0.8
4. Kondisi Debitur Baik Baik 1 0.6
5. Pekerjaan Debitur Pegawai Swasta Pegawai Swasta 1 0.6
6. Penghasilan Debitur Per Bulan 2.500.000 s/d 6.500.000 2.500.000 s/d 6.500.000 1 0.6
7. Jaminan BPKB Kendaraan Roda Empat BPKB Kendaraan Roda Dua 0.9 0.5
Dari tabel diatas, dapat dihitung kedekatan kasus baru dengan kasus nomor 3, dengan cara :

Similarity =
((a1*b1)+(a2*b2)+(a3*b3)+(a4*b4)+(a5*b5)+(a
6*b6)+(a7*b7)) / (b1+b2+b3+b4+b5+b6+b7)

Similarity =
((0.8*0.8)+(1*0.8)+(0.75*0.8)+(1*0.6)+(1*0.6)
+(1*0.6)+(0.9*0.5)) /
(0.8+0.8+0.8+0.6+0.6+0.6+0.5)

Similarity = 0.913


Melihat dari ke tiga kasus tersebut, maka yang mempunyai nilai tertinggi adalah kasus ketiga, melihat dari kasus yang tertinggi bahwa kasus itulah yang merupakan kasus yang terdekat dengan kasus baru. Berarti yang mendekati dengan kasus baru adalah kasus ke tiga. Maka klasifikasi resiko pinjaman dana pada kasus baru adalah Rendah.


Perancangan Relasi Database
Untuk pembuatan program anda dapat merancang relasi database nya seperti ini :





Manual Perhitungan Enkripsi Dan Dekripsi Algoritma RSA - Rivest Shamir Adleman

a. Analisa Algoritma Kunci Publik RSA ?

RSA melibatkan kunci publik dan kunci privat Kunci publik dapat diketahui semua orang dan digunakan untuk mengenkripsi pesan. Pesan dienkripsi dengan kunci publik hanya dapat didekripsi menggunakan kunci privat. Kunci untuk algoritma RSA yang dihasilkan dengan cara berikut:

1. Pilih dua yang berbeda perdana nomor p dan q. Untuk tujuan keamanan, bilangan bulat p dan q harus dipilih secara acak dengan menggunakan Metode LCG dan menggunakan tes primality dengan metode The Sieve Of Eratosthenes.

2. Hitung n = pq. n digunakan sebagai modulus untuk kunci publik dan privat.

3. Hitunglah Φ(n) = (p - 1) (q - 1), di mana Φ adalah fungsi totient Euler.

4. Pilih e bilangan bulat sedemikian sehingga 1 < e < Φ (n) dan FPB (e, Φ (n)) = 1, e dan Φ yaitu (n) adalah relatif prima ( coprime )

5. Tentukan d = e mod Φ invers perkalian dari mod Φe (n). dengan rumus berikut


d= 1 + k Φ(n)/e

d adalah eksponen disimpan sebagai kunci pribadi. Kunci publik terdiri dari modulus n dan e (atau enkripsi) eksponen publik. Kunci privat terdiri dari modulus n dan (atau dekripsi) swasta eksponen d yang harus dirahasiakan. Untuk perancangan aplikasinya dapat dilihat pada flowchart berikut



b. Enkripsi dan Dekripsi RSA Kunci Publik


b.1 Enkripsi

Bob mengirimkan kunci publik nya Alice dan menjaga rahasia kunci pribadi. Alice mengirim pesan “POT” ke Bob. Dia pertama kali merubah pesan "POT" kedalam bentuk ASCII, sehingga pesan yang disampaikan menjadi plainchar yang sudah dikonversi kedalam ASCII. Hal ini dapat dilakukan dengan cepat menggunakan metode exponentiation dengan mengkuadratkan yaitu dengan rumus Mollin :C = p e (mod n)


Alice kemudian mengirimkan hasil c kepada Bob. Misalkan, Plaintext yang dikirim adalah "POT" kemudian dikonversi ke ASCII maka :
plainchar (1) = "P" ? P1 = 80 ………………. (P1)
plainchar (2) = "O" ? P2 = 79………………. (P2)
plainchar (3) = "T" ? P3 = 84 ……………….(P3)

setelah dikonversi ke ASCII yaitu : ( 80, 79, 84 ). Hasil inilah yang di enkripsi Alice dengan persamaan (3.2) kemudian dikirim kepada Bob

Bob mengirimkan kunci publik nya alice dan menjaga rahasia (n, e) untuk kunci pribadi Bob, maka keinginan untuk mengirim pesan T (plainchar) ke Bob, Alice pertama kali merubah menjadi T bilangan bulat, sedemikian sehingga skema bantalan Alice kemudian menghitung ciphertext 0 < m < n dengan menggunakan protokol yang disepakati reversibel dikenal sebagai c sesuai dengan rumus diatas.

Hal ini dapat dilakukan dengan cepat menggunakan metode exponentiation dengan mengkuadratkan. Alice kemudian mengirimkan T kepada Bob. Perancangan aplikasinya dapat dilihat pada flowchart berikut :


b.2.Dekripsi
Bob dapat memulihkan P (plaintext) dari C (chipertext) dengan menggunakan kunci pribadinya d eksponen melalui komputasi (3.1) Kunci pribadi Bob adalah ( d , n ). Untuk melakukan enkripsi RSA, teks asli disusun menajdi blok x1, x2, ….. sedemikian sehingga setiap blok mempresentasikan nilai di dalam rentang 0 sampai r-1. Setiap blok x1 di enkripsi menjadi blok y1 dengan rumus :
P = c d (mod n). Perancangan aplikasinya dapat dilihat pada flowchart berikut :


Contoh Kasus
Setelah dilakukan kombinasi pembangkitan bilangan acak dengan metode LCG dan The Sieve of Eratosthenes, maka bilangan yang akan muncul akan acak pula. Misalkan bilangan yang muncul adalah :
p = 13
q = 5


1. Hitung n = p.q memberikan
n = 13 . 5
n = 65


2. Hitunglah totient dari produk sebagai Φ(n) = (p - 1) (q - 1) memberikan
Φ(n) = (13-1) (5-1)
Φ(n) = 48


3. Ambil bilangan bulat e dengan syarat 1 < e < Φ(n), relatif prima dengan 48. Yang memiliki FPB = 1 dengan 48.
Misalkan e = 17.
Kunci publik adalah (n = 65, e = 17)

4. encode pesan ke ASCII misalkan plaintext yang dikirim adalah "POT"
plainchar (1) = "P" → P1 = 80 ………………. (P1)
plainchar (2) = "O" → P2 = 79………………. (P2)
plainchar (3) = "T" → P3 = 84 ……………….(P3)


5. Enkripsi pesan dengan rumus (3.2) maka :
80 17 mod 65 = 45 ……………….(C1)
80 17 mod 65 = 14 ……………….(C2)
80 17 mod 65 = 54 ……………….(C3)




8. Hasil Dekripsi adalah ( “80”, “79”, “84” ) = (“POT’’)


Membangkitkan Bilangan Acak Dengan Linear Congruential Generator
Bilangan acak adalah bilangan yang tidak dapat diprediksi kemunculannya. Tidak ada komputasi yang benar – benar menghasilkan deret bilangan acak secara sempurna. Banyak algoritma atau metode yang dapat digunakan untuk membangkitkan bilangan acak salah satunya adalah pembangkit bilangan acak Linear Congruential Generator (LCG).

LCG mempunyai periode tidak lebih besar dari m, dan pada kebanyakan kasus periodenya kurang dari itu. LCG mempunyai periode penuh (m – 1) jika memenuhi syarat sebagai berikut :
1. b relatif prima terhadap m
2. a-1 dapat dibagi dengan semua faktor prima dari m
3. a-1 adalah kelipatan 4 jika m adalah kelipatan 4
4. m > maks ( a, b, x0 )
5. a > 0, b >

Dari beberapa syarat tersebut Schneier, (1996) merekomendasikan beberapa nilai konstanta a, b, dan m yang bagus untuk LCG dapat dilihat pada tabel berikut :

Tabel 1 Tabel Sampel Query
Dokumen Term yang mewakili dokumen
Q data keterangan mentah belum diolah belum bisa dijadikan acuan mengambil suatu keputusan
D1 data data mentah sekumpulan
D2 belum belum bisa data diolah fakta informasi mentah menyajikan
D3 acuan belum belum bisa data dijadikan diolah informasi keputusan
mentah pengambilan

Untuk perancangan aplikasinya dapat dilihat pada flowchart berikut :

Pengujian Bilangan Prima Dengan The Sieve of Eratosthenes

Berikut langkah-langkah sederhanal untuk menentukan bilangan prima melalui pengeksekusian. Ilustrasi langkah-langkah ini di kemukakan dari teori The Sieve of Eratosthenes. Adapun eksekusi bilangan prima tersebut dimulai dari 2 sampai seterusnya hingga secara keseluruhan bilangan tersebut menjadi prima untuk seluruh bilangan sisanya. Berikut tahapan eksekusi yang dilakukan yaitu:
Eksekusi 1:




Perhitungan Algoritma Elgamal Enkripsi Dan Dekripsi File Teks

Sekilas Algoritma ElGamal ?

Algoritma ElGamal ditemukan pada tahun 1985 oleh ilmuwan Mesir yaitu Taher ElGamal. Algoritma ElGamal merupakan algoritma berdasarkan konsep kunci publik. Algoritma ini pada umumnya digunakan untuk digital signature, namun kemudian dimodifikasi sehingga bisa digunakan untuk enkripsi dan dekripsi.

Algoritma kriptografi kunci publik ElGamal merupakan algoritma blok chipper yaitu algoritma yang melakukan proses enkripsi pada blok-blok plainteks yang kemudian menghasilkan blok-blok chipertext, yang nantinya blok-blok chipertext tersebut akan didekripsi kembali dan hasilnya kemudian digabungkan menjadi plainteks semula.

Keamanan algoritma ElGamal terletak pada kesulitan perhitungan logaritma diskrit pada modulo prima yang besar, sehingga upaya untuk menyelesaikan masalah logaritma ini menjadi sulit untuk dipecahkan.

Algoritma ini memiliki kelebihan yaitu pembangkitan kunci yang menggunakan logaritma diskrit dan metode enkripsi dekripsi yang menggunakan proses komputasi yang besar sehingga hasil enkripsinya berukuran dua kali dari ukuran semula. Kekurangan algoritma ini adalah membutuhkan resource yang besar karena chipertext yang dihasilkan dua kali panjang plaintext serta membutuhkan processor yang mampu untuk melakukan komputasi yang besar untuk perhitungan logaritma perpangkatan besar.

Untuk proses dekripsi, algoritma ini membutuhkan waktu yang lebih lama karena kompleksitas proses dekripsinya yang rumit. Dibutuhkan dua kali komputasi karena ukuran chiperteks yang lebih besar dibandingkan plainteksnya.

Besar – Besaran dalam algoritma ElGamal

Besar-besaran yang digunakan didalam algoritma ElGamal adalah sebagai berikut :
1. Bilangan prima, p (bersifat public atau tidak rahasia)
2. Bilangan acak, g (dimana g < p dan bersifat public atau tidak rahasia)
3. Bilangan acak, x (dimana x < p dan bersifat private atau rahasia)
4. Bilangan acak, k (dimana k < p dan bersifat private atau rahasia)
5. m merupakan plainteks dan bersifat private/rahasia
6. a dan b merupakan pasangan chiperteks hasil enkripsi bersifat private atau tidak rahasia

A. Proses Pembentukan kunci Algoritma ElGamal

Proses pembentukan kunci merupakan proses penentuan suatu bilangan yang kemudian akan digunakan sebagai kunci pada proses enkripsi dan dekripsi pesan. Kunci untuk enkripsi dibangkitkan dari nilai p, g, y sedangkan kunci untuk dekripsi terdiri dari nilai x, p. Masing-masing nilai mempunyai persyaratan yang harus dipenuhi.


Langkah-langkah dalam pembuatan kunci adalah sebagai berikut :
1. Pilih sembarang bilangan prima p, dengan syarat p > 255.
2. Pilih bilangan acak g dengan syarat g < p.
3. Pilih bilangan acak x dengan syarat 1 = x = p – 2.
4. Hitung y = g^x mod p.

Kunci public nya adalah y, g, p sedangkan kunci private nya adalah x. nilai y, g, dan p tidak dirahasiakan sedangkan nilai x harus dirahasiakan karena merupakan kunci privat untuk mendekripsi plainteks


B. Proses Enkripsi Algoritma ElGamal
Proses enkripsi merupakan proses mengubah pesan asli (plaintext) menjadi pesan rahasia (chipertext). Pada proses ini digunakan kunci public (p, g, y).

Langkah-langkah dalam mengenkripsi pesan adalah sebagai berikut :
1. Potong plaintext menjadi blok-blok m1, m2, m3, m4, …, nilai setiap blok di dalam selang [0, p – 1].
2. Ubah nilai blok pesan ke dalam nilai ASCII.
3. Pilih bilangan acak k, dengan syarat 1 = k = p – 1 sebanyak m.
4. Setiap blok m dienkripsi dengan rumus sebagai berikut :
5. a = gki mod p.
6. b = yki . m mod p.
7. Susun chipertext dengan urutan a1, b1, a2, b2, …, an, bn.
Pasangan a dan b adalah chipertext untuk blok pesan m. Hasil yang didapat dari proses enkripsi berupa pesan rahasia (chipertext).


C. Proses Dekripsi Algoritma ElGamal
Proses dekripsi merupakan proses mengubah pesan rahasia (chipertext) menjadi pesan asli (plaintext). Pada proses ini digunakan kunci pribadi (x, p).

Langkah-langkah dalam mendekripsi pesan adalah sebagai berikut :
1. Hitung plaintext m dengan persamaan rumus sebagai berikut : mi = bi.ai^p-1-x mod p.
2. Nilai mi yang didapat dalam bentuk ASCII kemudian diubah menjadi plainteks.
3. Susun plaintext dengan urutan m1, m2, m3, …, mn.

Maka Hasil yang didapat dari proses dekripsi berupa pesan asli (plaintext).


Berikut Contoh perhitungan manual proses pembentukan kunci algoritma elgamal, proses enkripsi, dan dekripsi algoritama ElGamal :


Yang pertama dilakukan adalah perhitungan Pembentukan Kunci.

Misalkan A membangkitkan pasangan kunci dengan memilih bilangan :
p = 257
g = 11
x = 13
Kemudian p, g, x digunakan untuk menghitung y :

y = gx mod p
y = 1113 mod 257
y = 22
jadi kunci public A adalah y = 22, g = 11, p = 257 dan kunci private A adalah x =13, p = 257.


Manul Perhitungan Enkripsi Algoritma Elgamal
Misalkan B ingin mengirim plainteks “ENKRIPSI” kepada A, kemudian setiap karakter plainteks tersebut diubah kedalam bentuk ASCII sehingga menghasilkan sebagai berikut :

Plainteks ASCII
E = 69
N = 78
K = 75
R = 82
I = 73
P = 80
S = 83
I = 73

Kemudian nilai ASCII tersebut dimasukkan kedalam blok-blok nilai m secara berurutan..

Lihat langkah-langkah enkripsi diatas..

....


Setelah mendapatkan nilai a dan b, hasil perhitungan tersebut disusun dengan pola :

a1, b1, a2, b2, a3,b3, a4, b4, a5, b5, a6, b6, a7, b7, a8, b8.

Sehingga membentuk chiperteks sbb:
30 201 137 82 73 147 17 220 190 16 184 203 1 83 235 249.


OK..Sekarang akan dikembalikkan ke plainteks, berikut perhitungannya

Manual Perhitungan Dekripsi Algoritma Elgamal
A mendekripsikan chiperteks dari B dengan melakukan perhitungan dengan rumus sebagai berikut :

mi = bi.ai p-1-xmod p

LIHAT lagi Langkah-langkah Untuk Dekripsi di atas....

...

Setelah mendapatkan nilai mi, masing-masing nilai m hasil dekripsi menjadi kode ASCII diubah kembali menjadi karakter. Dengan hasil sebagai berikut : 69, 78, 75, 82, 73, 80, 83, 73.

Kemudian kode ASCII tersebut diubah menjadi plainteks dengan hasil sebagai berikut :

ASCII Plainteks 69 E78 N75 K82 R73 I80 P83 S73 I
Sehingga hasil dekripsi membentuk plainteks “ENKRIPSI”, sama dengan plainteks sebelum di enkripsi.



Berikut Untuk Implementasi Program Aplikasinya ..

1.Halaman Awal Aplikasi


2. Form Enkripsi


3. Form Dekripsi

Sistem Pakar Dengan Menggunakkan Algoritma Certainty Factor (CF)

Dalam pembangunan aplikasi sistem pakar dengan menggunakkan algoritma CF (Certainty Factor) ada beberapa hal yang harus dipersiapkan,  pada postingan ini studi kasusnya adalah (Sistem Pakar Mendiagnosa Penyakit Kulit Pada Manusia )

Sebelum lanjut ke tahapan-tahapan pembuatan aplikasinya berikut adalah menghitung manual algoritma certainty factor (CF) untuk mendapatkan nilai CF penyakit Tumor kulit

No Gejala Penyakit CF
1 Gatal kronis dan sering kambuh Tumor kulit 0.9
2 Muka pucat/muka merah Tumor kulit 0.6
3 Alergik dimulai dari usia dini Tumor kulit 0.8
4 Kulit bersisik Tumor kulit 0.9
5 Gatal bila berkeringat Tumor kulit 0.9


Berikut adalah manual perhitungannya

CF(A) = CF(1) + CF(2) * [ 1 – CF(1) ]= 0,9 + 0,6 * (1 – 0,9) = 0,9600
CF(B) = CF(3) + CF(A) * [ 1 – CF(3) ]= 0,8 + 0,96 * (1 – 0,8) = 0,9920
CF(C) = CF(4) + CF(B) * [ 1 – CF(4) ]= 0,9 + 0,992 * (1 – 0,9) = 0,9992
CF(D) = CF(5) + CF(C) * [ 1 – CF(5) ]= 0,9 + 0,9992 * (1 – 0,9)= 0,99992


Dari perhitungan secara manual di atas, didapatkan nilai faktor kepastian dari masukan gejala yang mengarah ke penyakit
Tumor kulit adalah 0,99992

Selanjutnya adalah tahap pembuatan aplikasinya

Untuk membuat aplikasi ada 3 tahapan yang harus dilakukan yaitu

1. Pembuatan Database Relation
2. Desain Form
3. Ujicoba


Tahap 1 Pembuatan Database Relation
a. Pembuata database dan relasi tabel
b. Struktur Tabel Gejala

c. Struktur Tabel Penyakit

d. Struktur Tabel Role

e. Struktur Tabel Pasien

f. Struktur Tabel Diagnosa

g. Selesai ...tahap pembuatan database dan tabel n relasi tabel selesai


Tahap 2 Desain Form Frontend dan Backend

Halaman BackEnd (Akses Untuk Admin)

a. Form Utama Halaman Administrator
Pada form ini dimana seorang administrator dapat menambah data gejala, penyakit dan pembuatan role untuk sistem pakar yang akan dibangun

b. Form Gejala
Pada form ini admin dapat menambah, mengedit dan menghapus data gejala

c. Form Penyakit
Pada form ini admin dapat menambah, mengedit dan menghapus data penyakit

d. Form Role
Pada form ini admin dapat menambah, mengedit dan menghapus data role serta yang paling utama menyetting nilai gejala untuk penyakit

Tahap 3 Uji Coba Yaitu Halaman FrontEnd (Akses Untuk Pasien atau untuk public)

a. Halaman home
Halaman home akan tampil pertama sekali sewaktu pasien menjalankan aplikasi ini, di sebelah kiri terdaftar link
data gejala = > untuk menampilkan data-data gejala yang sudah di input oleh admin sebelumnya
data penyakit = > untuk menampilkan data-data penyakit yang sudah di input oleh admin sebelumnya
data diagnosa = > untuk pasien melakukan diagnosa , tapi sebelum diagnosa pasien registrasi dulu

b. Halaman Registrasi Pasien

c. Halaman Penelusuran Gejala Yang Dialami Pasien
Pada halaman ini , pasien dapat mencheck list gejala-gejala apa saja yang dialaminya untuk didiagnosa nantinya jenis penyakit kulit apa yang dialami pasien tersebut

d. Halaman Perhitungan CF Penyakit Pasien
Pada halaman ini akan ditampilkan nilai-nilai CF penyakit dari gejala yang dimiliki oleh pasien tersebut, nilai cf sengaja ditampilkan untuk penyakit yang memiliki relasi ke gejala dan nilai yang tertinggi mengindikasikan bahwa pasien tersebut lebih condong ke jenis penyakit kulit tersebut


SELESAI ...Untuk perhitungan nilai CF dari tiap penyakit dapat dilihat pada perhitungan diatas..

Deteksi Kesamaan Dokumen Dengan Cosine Similarity

Dengan adanya kemudahan bagi orang dalam sharing ataupun melakukan pencarian dan pengambilan data di Internet, salah satunya adalah karya ilmiah, berupa makalah, prosiding, jurnal, skripsi, tesis, dan lain-lain. Maka publikasi karya ilmiah secara online dapat membantu para mahasiswa tingkat akhir dalam mencari judul maupun bahan sebagai bahan pertimbangan dalam pembuatan karya ilmiahnya. Akan tetapi selain menghasilkan manfaat, fasilitas ini juga menimbulkan dampak negatif terhadap pembuatan karya ilmiah.


Belakangan ini sering ditemukan kecurangan dalam pembuatan karya ilmiah seperti mengambil ide maupun karya ilmiah orang lain dan mengakuinya sebagai karya ilmiah buatannya. Hal ini biasanya dikenal dengan penjiplakan atau plagiarisme. Untuk mendeteksi kesamaan sebuah karya ilmiah dibutuhkan waktu yang cukup lama dan ketelitian yang tinggi yang sulit dilakukan secara manual. Terkadang orang yang melakukan penjiplakan hanya mengganti kata-kata dengan kata lain yang memiliki arti maupun makna yang sama.


Untuk memeriksa hal tersebut diperlukan waktu, ketelitian serta pemahaman akan bahasa yang digunakan. Jika pemeriksaan dilakukan secara manual juga akan memakan waktu yang cukup lama. Oleh karena itu diperlukan suatu sistem pendeteksi kesamaan dokumen teks yang dilakukan secara terkomputerisasi yang bisa mendeteksi kesamaan makna dari kata-kata yang ada. Melalui pembahasan dalam tulisan ini, metode Cosine Similarity digunakan untuk mencari dokumen yang memiliki kesamaan teks terhadap dokumen lain yang ada di dalam database.



Apa itu Cosine Cosine Similarity ?

Cosine similarity berfungsi untuk membandingkan kemiripan antar dokumen, dalam hal ini yang dibandingkan adalah query dengan dokumen latih . Dalam menghitung cosine similarity pertama yaitu melakukan perkalian skalar antara query dengan dokumen kemudian dijumlahkan, setelah itu melakukan perkalian antara panjang dokumen dengan panjang query yang telah dikuadratkan, setelah itu di hitung akar pangkat dua. Selanjutnya hasil perkalian skalar tersebut di bagi dengan hasil perkalian panjang dokumen dan query. Rumus dapat dilihat sebagai berikut




Berikut langkah-langkah perhitungan manual algoritma Cosine Similarity.

1. Ditentukan terlebih dahulu masing-masing query, yaitu query dari jawaban (D), query dari key jawaban (Q) dan gabungan keduanya(Queries).

2. Ketiga query tersebut dihilangkan stoplist atau simbol-simbol yang tidak mempengaruhi penilaian, seperti tanda titik, tanda koma, tanda seru, dan sebagainya.

3. Ketiga query tersebut dihilangkan stopwords atau kata-kata umum yang lazim digunakan dalam suatu query, seperti "dan", "jika", "di", "namun", "tetapi", dan sebagainya.

Tabel 1 Tabel Sampel Query
Dokumen Term yang mewakili dokumen
Q data keterangan mentah belum diolah belum bisa dijadikan acuan mengambil suatu keputusan
D1 data data mentah sekumpulan
D2 belum belum bisa data diolah fakta informasi mentah menyajikan
D3 acuan belum belum bisa data dijadikan diolah informasi keputusan
mentah pengambilan

4. Dihitung nilai term frequency query jawaban dan query key jawaban terhadap queries. Jadi perhitungan term di query jawaban dan query key jawaban merujuk pada term yang terdapat dalam queries.

5. Dihitung nilai document frequency (n) atau banyaknya file (N) yang memiliki suatu term untuk tiap term dalam queries.

6. Dihitung nilai inverse document frequency dengan rumus : log (N/n) +1

Tabel 2 Tabel Perhitungan TF dan IDF
No. Term tf df idf
Q D1 D2 D3 Log(n/df)+1
1. acuan 1 0 0 1 2 1.30103
2. belum 2 0 2 2 3 1.12493874
3. bisa 1 0 1 1 3 1.12493874
4. data 1 2 1 1 4 1
5. dijadikan 1 0 0 1 2 1.30103
6. diolah 1 0 1 1 3 1.12493874
7. fakta 0 0 1 0 1 1.60205999
8. informasi 0 0 1 1 2 1.30103
9. keputusan 1 0 0 1 2 1.30103
10. keterangan 1 0 0 0 1 1.60205999
11. mengambil 1 0 0 0 1 1.60205999
12. mentah 1 1 1 1 4 1
13. menyajikan 0 0 1 0 1 1.60205999
14. pengambilan 0 0 0 1 1 1.60205999
15. sekumpulan 0 1 0 0 1 1.60205999
16. suatu 1 0 0 0 1 1.60205999

7. Dikalikan nilai term frequency dengan nilai inverse document frequency tiap term dalam Q maupun D.

Tabel 3 Tabel Perhitungan TF/IDF
No. Term Q D1 D2 D3
1. acuan 1.30103 0 0 1.30103
2. belum 2.24987748 0 2.24987748 2.24987748
3. bisa 1.12493874 0 1.12493874 1.12493874
4. data 1 2 1 1
5. dijadikan 1.30103 0 0 1.30103
6. diolah 1.12493874 0 1.12493874 1.12493874
7. fakta 0 0 1.60205999 0
8. informasi 0 0 1.30103 1.30103
9. keputusan 1.30103 0 0 1.30103
10. keterangan 1.60205999 0 0 0
11. mengambil 1.60205999 0 0 0
12. mentah 1 1 1 1
13. menyajikan 0 0 1.60205999 0
14. pengambilan 0 0 0 1.60205999
15. sekumpulan 0 1.60205999 0 0
16. suatu 1.60205999 0 0 0


8. Dihitung hasil perkalian skalar masing-masing query jawaban terhadap query key jawaban. Hasil perkalian dari setiap jawaban dengan query dijumlahkan (sesuai pembilang pada rumus di atas).

Tabel 4 Tabel Hasil Perkalian Skalar Tiap D terhadap Q
No. Term D1 D2 D3
1. acuan 0 0 1.6926790609
2. belum 0 5.0619486750112 5.0619486750112
3. bisa 0 1.2654871687528 1.2654871687528
4. data 2 1 1
5. dijadikan 0 0 1.6926790609
6. diolah 0 1.2654871687528 1.2654871687528
7. fakta 0 0 0
8. informasi 0 0 0
9. keputusan 0 0 1.6926790609
10. keterangan 0 0 0
11. mengambil 0 0 0
12. mentah 1 1 1
13. menyajikan 0 0 0
14. pengambilan 0 0 0
15. sekumpulan 0 0 0
16. suatu 0 0 0
SUM (Ji . Q) : 3 9.5929230125167 14.670960195217

9. Dihitung hasil perkalian vektor tiap query key jawaban dan query jawaban.
(TF/IDF(Q,D))2
No. Term Q D1 D2 D3
1. acuan 1.692679 0 0 1.692679
2. belum 5.061949 0 5.061949 5.061949
3. bisa 1.265487 0 1.265487 1.265487
4. data 1 4 1 1
5. dijadikan 1.692679 0 0 1.692679
6. diolah 1.265487 0 1.265487 1.265487
7. fakta 0 0 2.566596 0
8. informasi 0 0 1.692679 1.692679
9. keputusan 1.692679 0 0 1.692679
10. keterangan 2.566596 0 0 0
11. mengambil 2.566596 0 0 0
12. mentah 1 1 1 1
13. menyajikan 0 0 2.566596 0
14. pengambilan 0 0 0 2.566596
15. sekumpulan 0 2.566596 0 0
16. suatu 2.566596 0 0 0
SUM (TF/IDF(Q,D))2 : 22.370749 7.566596 16.418794 18.930235
SQRT(SUM(TF/IDF(Q,D))2) : 4.729773 2.750745 4.052011 4.350889

10. Dihitung nilai Cosine similarity ( nilai vektor beda antara D terhadap Q) dengan rumus :


No. Teks Nilai Similitary Nilai (Nilai Similitary * bobot)
1 D1 : data data mentah sekumpulan 0.23058480 23.06 %
2 D2 : belum belum bisa data diolah fakta informasi mentah menyajikan 0.50054143 50.05 %
3 D3 : acuan belum belum bisa data dijadikan diolah informasi keputusan mentah pengambilan 0.71291907 71.29 %

Langkah-langkah algoritma TF/IDF dapat direpresentasikan ke dalam flowchart sebagai berikut :



Untuk implementasi programnya dapat dilihat di bawah ini, dimana contoh kasusnya mendeteksi plagiat isi bab dari skripsi

1. Form Utama
Halaman ini akan tampil pertama sekali sewaktu user masuk ke halaman aplikasi di web browser
seperti mozilla,chrome sebelum user memproses data user diharuskan login terlebih dahulu dengan memasukkan username dan password, fungsinya adalah untuk mencegah user-user yang tidak berhak masuk ke halaman aplikasi Analisis dan Perancangan Sistem Pendeteksi Kesamaan Dokumen Laporan Penelitian Mahasiswa Menggunakan Metode Cosine Similitary


2. Halaman Utama Administrator
Halaman ini akan tampil jika user berhasil login, pada halaman ini terdapat beberapa link menu yaitu, admin, data jurusan, data mahasiswa, dokumen, deteksi dan terakhir link menu keluar di Analisis dan Perancangan Sistem Pendeteksi Kesamaan Dokumen Laporan Penelitian Mahasiswa Menggunakan Metode Cosine Similitary


3. Halaman Form Jurusan
Halaman ini akan tampil jika user memilih form jurusan pada menu atas halaman administrator, pada halaman ini seorang user dapat menambah, mengedit atau menghapus data jurusan untuk Analisis dan Perancangan Sistem Pendeteksi Kesamaan Dokumen Laporan Penelitian Mahasiswa Menggunakan Metode Cosine Similitary.


4. Halaman Input Mahasiswa
Halaman ini akan tampil jika user memilih form mahasiswa pada menu atas halaman administrator, pada halaman ini seorang user dapat menambah, mengedit atau menghapus data mahasiswa untuk Analisis dan Perancangan Sistem Pendeteksi Kesamaan Dokumen Laporan Penelitian Mahasiswa Menggunakan Metode Cosine Similitary.

5. Halaman Input Dokumen
Halaman ini akan tampil jika user memilih form dokumen pada menu atas halaman administrator, pada halaman ini seorang user dapat menambah, mengedit atau menghapus data dokumen, di dalam data dokumen inilah nantinya akan dimasukkan dokumen-dokumen dari skripsi mahasiswa yang nantinya sebagai perbandingan untuk mencari data yang mau dicari untuk dideteksi pada Analisis dan Perancangan Sistem Pendeteksi Kesamaan Dokumen Laporan Penelitian Mahasiswa Menggunakan Metode Cosine Similitary.

5. Halaman Form Deteksi
Halaman ini akan tampil jika user memilih form deteksi pada menu atas halaman administrator,
pada halaman ini seorang user dapat mendeteksi string yang mau dicocokkan dengan dokumen-dokumen yang sudah terdaftar di database, cara pemakaian form deteksi ini user akan memasukkan string yang mau dideteksi ke dalam text area bisa diketikkan manual bisa juga di copy dan dipastekan ke dalam tektarea yang ada di dalam form deteksi ini, setelah string dimasukkan ke dalam textarea kemudian user dalam mengclick tombol "DETEKSI" maka untuk hasilnya persentase kesamaan dokumen akan tampil di tiap-tiap baris record perbandingan, dimana nantinya persentase yang paling tinggi dianggap system sebagai string yang paling mendekati dari string yang mau dicari kesamaannya. Untuk pencocokkan string di dalam source code akan digunakan metode Cosine Similitary, berikut adalah tampilan dari form deteksi string



BERIKUTNYA ADALAH TAHAP PENGUJIAN

6. Pengujian Kasus 1
Pada pengujian pertama ini string yang akan di cari kesamaannya dengan record yang sudah terdaftar di database adalah string "hanya bisa melihat ataupun memesan barang dengan cara datang langsung ke Toko Aneka Jalan Pandu Medan ataupun dengan cara melihat brosur yang disebarkan ke beberapa wilayah. Namun cara-cara tersebut" melalui pengujian ini maka akan didapatkan persentase kesamaan pada masing-masing record, dimana persentase yang paling tinggi merupakan string yang paling mendekati ke string yang mau dicari, berikut adalah hasil dari deteksi kesamaan string.

7. Pengujian Kasus 2
Pada pengujian ke-2 ini string yang akan di cari kesamaannya dengan record yang sudah
terdaftar di database adalah string "Perancangan Sistem Aplikasi Pegawai Honorer BKN
Kanreg VI Wilayah Binjai adalah sangat bermanfaat bagi perusahaan" melalui pengujian ini
maka akan didapatkan persentase kesamaan pada masing-masing record, dimana persentase yang
cocok akan ditampilkan 100%, berikut adalah hasil dari deteksi kesamaan string.


OK..FINISH, untuk mendapatkan nilai persentase kedekatannya dokumen tersebut bisa melihat manual perhitunganya diatas..

Manual Perhitungan Algoritma Dan Aplikasinya