-
-
Notifications
You must be signed in to change notification settings - Fork 7
/
index.js
75 lines (75 loc) · 1.74 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
ukuran = () => {
$('.tinggi').css('height', $(window).height() - 150)
$('.setengah-tinggi').css('height', ($(window).height() - 168) / 2)
}
ukuran()
$(window).resize(() => ukuran())
$('.form-control').attr('spellcheck', 'false')
app = new Vue({
el: '.vue',
data: {
kunci: '',
jawaban: '',
hasil: '',
hasil_sesungguhnya: '',
tertinggi: 'x',
namanya: [],
laporan: []
},
methods: {
olah(){
kunci = this.kunci.replace(/\t/g, '').replace(/ /g, '').split('')
panjang_kunci = kunci.length
this.tertinggi = panjang_kunci
jawaban = this.jawaban.replace(/\t/g, '').split('\n')
for (n in jawaban){
jawaban[n] = jawaban[n].split(',')
jawaban[n][1] = jawaban[n][1].replace(/ /g, '').split('')
}
hasil = []
namanya = []
laporan = []
for (n in jawaban){
hasil.push(jawaban[n][0]) // nama
namanya.push(jawaban[n][0])
benar = 0
jawaban_laporan = ''
for (y in jawaban[n][1]){ // jawabannya
if (jawaban[n][1][y].toLowerCase() == kunci[y].toLowerCase()){
benar++ // jika benar
jawaban_laporan += jawaban[n][1][y]
} else {
jawaban_laporan += `<span class='merah'>${jawaban[n][1][y]}</span>`
}
}
hasil.push(benar)
laporan.push(jawaban_laporan)
}
this.namanya = namanya
this.laporan = laporan
teks = ''
teks_sesungguhnya = ''
for (n in hasil){
if (n % 2 == 0){ // nama
if (hasil[n] != ''){
teks += `${hasil[n]}: `
teks_sesungguhnya += `${hasil[n]}: `
}
} else { // total nilai
teks += `${hasil[n] / panjang_kunci * 100}\n`
teks_sesungguhnya += `${hasil[n]}\n`
}
}
this.hasil = teks
this.hasil_sesungguhnya = teks_sesungguhnya
}
},
watch: {
kunci(){
this.olah()
},
jawaban(){
this.olah()
}
}
})