Lampiran 1. Data hasil giling untuk input proses training JST.
No Kecepatan putar rol (rpm) air (%) Kadar Jarak antar rol (mm) pengupasan (%) Efisiensi Persentase beras patah (%)
1 797.72-1035 11.29 0.8 93.56 11.48 2 797.72-1035 13.99 0.8 85.22 8.86 3 797.72-1035 15.25 0.8 88.22 6.97 4 797.72-1035 11.79 0.7 94.62 12.34 5 797.72-1035 13.69 0.7 89.93 7.89 6 797.72-1035 15.6 0.7 88.73 7.65 7 797.72-1035 11.59 0.6 95.47 8.83 8 797.72-1035 13.99 0.6 93.84 6.77 9 797.72-1035 15.55 0.6 92.6 5.62 10 797.72-1035 11.59 0.5 95.24 9.85 11 797.72-1035 14.09 0.5 95.87 7.84 12 797.72-1035 15.4 0.5 92.43 7.58 13 797.72-1035 12.09 0.4 96.51 9.58 14 797.72-1035 13.84 0.4 95.54 7.3 15 797.72-1035 15.3 0.4 94.54 5.90 16 807.73-1050 12.27 0.8 91.37 9.72 17 807.73-1050 12.79 0.8 89.26 6.45 18 807.73-1050 15.25 0.8 88.09 9.35 19 807.73-1050 12.09 0.7 92.13 5.89 20 807.73-1050 12.85 0.7 93.11 6.72 21 807.73-1050 15.5 0.7 87.5 5.89 22 807.73-1050 12.04 0.6 94.77 6.69 23 807.73-1050 12.99 0.6 93.59 6.67 24 807.73-1050 15.3 0.6 89.26 5.28 25 807.73-1050 11.99 0.5 96.42 6.49 26 807.73-1050 12.99 0.5 95.87 6.82 27 807.73-1050 15.25 0.5 92.92 6.65 28 807.73-1050 12.04 0.4 94.97 6.11 29 807.73-1050 13.29 0.4 95.06 6.71 30 807.73-1050 15.2 0.4 94.22 6.13 31 820-1065 12.04 0.8 94.29 6.13 32 820-1065 14.14 0.8 91.05 4.93 33 820-1065 15.5 0.8 89.14 6.55 34 820-1065 12.11 0.7 94.44 5.96 35 820-1065 14.34 0.7 96.09 5.53 36 820-1065 15.48 0.7 89.34 6.30 37 820-1065 12.09 0.6 96.54 7.08 38 820-1065 14.39 0.6 94.81 5.26 39 820-1065 15.45 0.6 95.44 6.04 40 820-1065 12.09 0.5 97.17 6.89 41 820-1065 14.19 0.5 93.87 4.61 42 820-1065 15.45 0.5 95.44 7.33 43 820-1065 12.06 0.4 97.29 7.74
Lampiran 2. Data hasil giling untuk proses validasi JST.
44 820-1065 14.09 0.4 95.34 6.73
45 820-1065 15.5 0.4 91.6 7.31
No putar rol (rpm) Kecepatan air (%) Kadar Jarak antar rol (mm) pengupasan Efisiensi (%) Persentase beras patah (%) 1 797.72-1035 13.57 0.8 89.85 7.35 2 797.72-1035 13.39 0.7 89.68 5.71 3 797.72-1035 13.19 0.6 93.44 7.6 4 797.72-1035 14.39 0.5 94.07 6.44 5 797.72-1035 14.64 0.4 94.09 7.04 6 807.73-1050 14.64 0.8 88.64 7.53 7 807.73-1050 15.1 0.7 92.27 8.08 8 807.73-1050 15.35 0.6 91.55 6.18 9 807.73-1050 13.17 0.5 95.45 6.38 10 807.73-1050 13.04 0.4 94.69 8.78 11 820-1065 13.09 0.8 93.77 9.21 12 820-1065 14.8 0.7 92.96 8.06 13 820-1065 13.09 0.6 94.66 5.74 14 820-1065 15.15 0.5 94.17 8.64 15 820-1065 15 0.4 95.6 8.58
Lampiran 3. Hasil proses training JST. No EP JST (%) EP aktual (%) BP JST (%) aktual BP (%) Kecepatan rol utama (rpm) Kadar air (%) Jarak antar rol (mm) 1 93.33 93.56 11.734 11.48 1035 11.29 0.8 2 88.066 85.22 8.894 8.86 1035 13.99 0.8 3 87.22 88.22 7.808 6.97 1035 15.25 0.8 4 93.568 94.62 10.706 12.34 1035 11.79 0.7 5 90.15 89.93 8.429 7.89 1035 13.69 0.7 6 89.113 88.73 6.993 7.65 1035 15.6 0.7 7 95.421 95.47 10.295 8.83 1035 11.59 0.6 8 92.031 93.84 7.407 6.77 1035 13.99 0.6 9 91.617 92.6 6.442 5.62 1035 15.55 0.6 10 96.572 95.24 9.868 9.85 1035 11.59 0.5 11 94.067 95.87 6.851 7.84 1035 14.09 0.5 12 93.927 92.43 6.109 7.58 1035 15.4 0.5 13 96.815 96.51 9.006 9.58 1035 12.09 0.4 14 95.473 95.54 6.999 7.3 1035 13.84 0.4 15 95.327 94.54 6.128 5.9 1035 15.3 0.4 16 91.132 91.37 7.546 9.72 1050 12.27 0.8 17 90.046 89.26 7.336 6.45 1050 12.79 0.8 18 86.568 88.09 7.201 9.35 1050 15.25 0.8 19 93.184 92.13 7.103 5.89 1050 12.09 0.7 20 91.848 93.11 6.821 6.72 1050 12.85 0.7 21 88.447 87.5 6.738 5.89 1050 15.5 0.7 22 94.884 94.77 6.782 6.69 1050 12.04 0.6 23 93.609 93.59 6.456 6.67 1050 12.99 0.6 24 90.827 89.26 6.377 5.28 1050 15.3 0.6 25 96.023 96.42 6.835 6.49 1050 11.99 0.5 26 95.005 95.87 6.468 6.82 1050 12.99 0.5 27 92.525 92.92 6.313 6.65 1050 15.25 0.5 28 96.509 94.97 7.181 6.11 1050 12.04 0.4 29 95.235 95.06 6.842 6.71 1050 13.29 0.4 30 93.131 94.22 6.707 6.13 1050 15.2 0.4 31 93.884 94.29 6.028 6.13 1065 12.04 0.8 32 91.74 91.05 6.146 4.93 1065 14.14 0.8 33 89.652 89.14 6.458 6.55 1065 15.5 0.8 34 95.349 94.44 5.818 5.96 1065 12.11 0.7 35 93.525 96.09 5.885 5.53 1065 14.34 0.7 36 91.815 89.34 6.121 6.3 1065 15.48 0.7 37 96.352 96.54 5.889 7.08 1065 12.09 0.6 38 94.881 94.81 5.824 5.26 1065 14.39 0.6 39 93.37 95.44 6.005 6.04 1065 15.45 0.6 40 96.613 97.17 6.362 6.89 1065 12.09 0.5 41 95.523 93.87 6.15 4.61 1065 14.19 0.5 42 93.858 95.44 6.281 7.33 1065 15.45 0.5
Lampiran 4. Data hasil proses validasi JST. 43 96.464 97.29 7.048 7.74 1065 12.06 0.4 44 95.24 95.34 6.891 6.73 1065 14.09 0.4 45 93.29 91.6 7.012 7.31 1065 15.5 0.4 No Efisiensi pengupasan pendugaan JST (%) Efisiensi pengupasan hasil giling (%) Persentase beras patah pendugaan JST (%) Persentase beras patah hasil giling (%) Kecepatan putar rol utama (rpm) Kadar air (%) Jarak antar rol (mm) 1 88.572 89.85 9.373 7.35 1035 13.57 0.8 2 90.534 89.68 8.769 5.71 1035 13.39 0.7 3 92.823 93.44 8.231 7.6 1035 13.19 0.6 4 93.967 94.07 6.637 6.44 1035 14.39 0.5 5 95.296 94.09 6.455 7.04 1035 14.64 0.4 6 87.085 88.64 7.186 7.53 1050 14.64 0.8 7 88.719 92.27 6.732 8.08 1050 15.1 0.7 8 90.791 91.55 6.377 6.18 1050 15.35 0.6 9 94.793 95.45 6.434 6.38 1050 13.17 0.5 10 95.525 94.69 6.88 8.78 1050 13.04 0.4 11 93.072 93.77 6.002 9.21 1065 13.09 0.8 12 92.861 92.96 5.973 8.06 1065 14.8 0.7 13 96.051 94.66 5.758 5.74 1065 13.09 0.6 14 94.301 94.17 6.241 8.64 1065 15.15 0.5 15 94.052 95.6 6.959 8.58 1065 15 0.4
Lampiran 5. Nilai pembobot hasil keluaran proses training JST. No Nilai pembobot 1 -1.01 2 3.99 3 1.13 4 1.55 5 -2.57 6 1.06 7 1.96 8 0.69 9 0.031 10 2.43 11 -0.24 12 -2.63 13 -3.76 14 0.99 15 -3.24 16 1.61 17 2.41 18 -4.66 19 3.05 20 0.58 21 -1.48 22 -0.79 23 1.7 24 -0.96 25 2.63
Lampiran 6. Hasil optimasi program AG berdasarkan nilai kadar air. Kadar air
(%) Jarak antar rol (mm) Kecepatan putar rol utama (rpm) EP (%) BP (%)
11.3 0.7 1065 95.8 6 11.4 0.7 1065 95.8 6 11.5 0.7 1065 95.9 5.9 11.6 0.7 1065 95.9 5.9 11.7 0.7 1065 95.9 5.9 11.8 0.7 1065 95.9 5.9 11.9 0.7 1065 95.9 5.8 12 0.7 1065 95.9 5.8 12.1 0.7 1065 95.9 5.8 12.2 0.7 1065 95.9 5.8 12.3 0.7 1065 95.9 5.8 12.4 0.7 1065 95.8 5.8 12.5 0.7 1065 95.8 5.7 12.6 0.6 1065 96.3 5.8 12.7 0.6 1065 95.9 5.7 12.8 0.6 1065 96.3 5.8 12.9 0.6 1065 96.2 5.8 13 0.6 1065 95.8 5.7 13.1 0.6 1065 95.7 5.7 13.2 0.6 1065 95.8 5.7 13.3 0.6 1065 95.7 5.7 13.4 0.6 1065 95.9 5.8 13.5 0.6 1065 95.9 5.8 13.6 0.6 1065 95.8 5.8 13.7 0.6 1065 95.4 5.7 13.8 0.6 1065 95.4 5.7 13.9 0.6 1065 95.3 5.8 14 0.6 1065 95.4 5.8 14.1 0.6 1065 95.3 5.8 14.2 0.6 1065 95 5.8 14.3 0.6 1065 94.8 5.8 14.4 0.6 1065 95 5.8 14.5 0.6 1065 94.6 5.8 14.6 0.6 1065 94.5 5.8 14.7 0.6 1065 94.6 5.9 14.8 0.6 1065 94.4 5.9 14.9 0.6 1065 94.3 5.9 15 0.6 1065 94.1 5.9 15.1 0.6 1065 93.9 5.9 15.2 0.6 1065 93.7 6 15.3 0.6 1065 93.7 6 15.4 0.6 1065 93.5 6 15.5 0.6 1065 93.4 6 15.6 0.6 1065 93.2 6
Lampiran 7. Sortasi gabah menggunakan winower.
a. Pemasukkan gabah pada hopper winower.
Lampiran 8. Peralatan giling dan sortasi beras.
a. RMU tipe rubber roll.
b. Round perforation untuk memisahkan beras kepala dan beras patah.
Lampiran 9. Sortasi beras pecah kulit secara manual.
a. Pemisahan beras kepala, beras patah, dan gabah tak terkupas.
Lampiran 12. Algoritma program AG. 'Open File Data Optimasi GA
Sub Openfile(Filename)
Open Filename For Input As #1 'Identifikasi Jumlah Layer Input #1, nl
'Form2.Print nl
'Identifikasi Jumlah Unit masing-masing Layer (1,2,3) For ii = 1 To nl Input #1, nn(ii) Next ii 'Form2.Print nn(1) 'Form2.Print nn(2) 'Form2.Print nn(3)
'Identifikasi Sampai Jumlah Unit Layer 1 (Layer Input) For ii = 1 To nn(1)
Input #1, maxi(ii) Input #1, mixi(ii) Next ii
'Identifikasi Sampai Jumlah Unit Layer Terakhir (Layer Output) For ii = 1 To nn(nl)
Input #1, maxo(ii) Input #1, mixo(ii) Next ii
'Identifikasi Nila Eta, Alpha, Temp Input #1, eta
Input #1, alpha Input #1, temp
For ii = 1 To nl 'Identifikasi Layer
For kk = 1 To nn(ii) 'Identifikasi Masing-2 Unit pada Layer For jj = 1 To nn(ii - 1)
Input #1, w(ii - 1, jj, kk) 'Identifikasi Nilai Weight Next jj
Next kk Next ii
Input #1, ite 'Identifikasi jumlah Iterasi Input #1, erx 'Identifikasi Error terakhir Close #1
Exit Sub errhandler:
MsgBox "Error encountered while trying to open file, please retry.", 48, "Back Propagation"
Exit Sub
Private Sub Form_Load() VScroll1.Min = 0 VScroll1.Max = 100 VScroll1.SmallChange = 5 VScroll2.Min = 0 VScroll2.Max = 4000 VScroll2.SmallChange = 5 End Sub
Private Sub mnuexit_Click() Unload Me
End Sub
Private Sub mnuopbobot_Click() On Error GoTo errhandler
Select Case Index ' Check index value of selected menu item. Case 0 ' If index = 1, the user chose "Open..."
' Set filters
CommonDialog1.Filter = "Training Data Files (*.trn)|*.trn|All Files (*.*)|*.*"
' Specify default filter
CommonDialog1.FilterIndex = 1 ' display the File Open dialog CommonDialog1.Action = 1
Filename = CommonDialog1.Filename Openfile (Filename)
End Select errhandler:
' user pressed cancel button Exit Sub
End Sub
Private Sub Mnureset_Click() Text1.Text = " " Text2.Text = " " Text3.Text = " " List1.Clear List2.Clear List3.Clear List4.Clear List5.Clear End Sub
Private Sub mnurun_Click() Dim bs$ Dim cn$ Dim muta$(50, 50) Dim an(50, 50) Dim binary$(100, 100) Dim bn$(50) Dim PARA1(50, 50) Dim PARA(50, 50) Dim ER(50, 50) Dim RND1(51) Dim RND2(51) Dim WW(20) Dim mm Dim adeci Dim km, b6 ' ================================== '++++++++++ input for GA ++++++++++ '=================================== 'ng = Val(Text1.Text) 'pr = Val(Text2.Text) 'exc = Val(Text3.Text) 'itr = Val(Text4.Text) 'pmut = Val(Text13.Text) '******************************* '****** GENETIC ALGORITHM ****** '*******************************
'ng = InputBox("How many genes (stings)do you want ","NG",20) 'If ng <= 0 Or ng > 50 Then ng = 50
'pr = InputBox("Crossover changes (less than 30%)[0,30]","PR",25) 'If pr <= 0 Or pr > 30 Then pr = 30
'cut = InputBox("No. of cuts for the genes(2,4,8,16)","CUT",4 'If cut<>2 And cut<>4 And cut<>8 And cut<>16 Then cut = 16 'exc = InputBox("Magnification crossover ratio[0,1.66]","EXC",1.2) Dim RD(20): RD(0) = itr
Dim ORD(100), CT$(100, 100), ACM$(50, 50)
rr = Val(Mid$(Time$, 7, 2)) * Val(Mid$(Time$, 4, 2)) + Val(Mid$(Time$, 7, 2)) '===============================
'OPTIMIZING BY GENETIC ALGORITHM '=============================== 'Cls
Randomize rr GoSub TRAIN
Open "D:\Kak Gun\Program GA\Efisiensi Pengupasan.TXT" For Output As #2 Open "D:\Kak Gun\Program GA\Beras Patah.txt" For Output As #9
Open "D:\Kak Gun\Program GA\RPM.txt" For Output As #5 Open "D:\Kak Gun\Program GA\Jarak Rol.txt" For Output As #3 Open "D:\Kak Gun\Program GA\Kadar Air.txt" For Output As #4 nf = 3 exc = 1 ng = 20 cut = 2 pr = Val(Text1.Text) itr = Val(Text2.Text) pmut = Val(Text3.Text) pr = Int(pr * ng / 100) For iCount = 1 To itr '
GoSub BINA: '*BINA
If FLG = 0 Then GoTo CONT1 Else GoSub DNAX '*DNAX CONT1:
GoSub DECI '*DECI GoSub EVAL '*EVAL GoSub PRLF '*PRLF GoSub OPT '*OPT
FLG = 1 'Initial random input Next iCount For i = 1 To 10 Beep Next i Close GoTo finish: ' 'BINARY TRANSLATION ' 'SUBROUTINE*BINA BINA: For k = 1 To nf For i = 1 To ng binary$(i, k) = "" Next i Next k For k = 1 To nf For i = 1 To ng
If FLG = 0 Then an(i, k) = Int(63 * Rnd) b6 = an(i, k)
For j = 1 To 6 bn$(j) = b6 Mod 2 b6 = Int(b6 / 2)
Next j For j = 6 To 1 Step -1 binary$(i, k) = binary$(i, k) + bn$(j) Next j Next i Next k Return ' 'CROSSOVER ' 'SUBROUTINE *DNAX DNAX: L = 1
For i = 1 To Int(pr * exc) 'crossover point poc = Int(Rnd * 5) + 1 For k = 1 To nf
CT$(i, k) = Mid$(binary$(i, k), poc, 6 + 1 - poc) ACM$(i, k) = Mid$(binary$(i, k), 1, poc) Next k
L = L + 1 Next i
For i = 1 To L - 1
CONT2: ORD(i) = Int((L - 1) * Rnd) + 1 If i = 1 Then GoTo CONT3
For j = i - 1 To 1 Step -1
If ORD(i) = ORD(j) Then GoTo CONT2 Next j
CONT3: Next i L = 1
For i = 1 To pr
For mm = 1 To nf: binary$(i, mm) = ACM$(i, mm) Next mm
For k = 1 To nf
binary$(i, k) = binary$(i, k) + CT$(ORD(L), k) Next k L = L + 1 Next i 'Mutation For i = 1 To pr For k = 1 To nf muta$(i, k) = binary$(i, k) Next k Next i For i = 1 To pr If Rnd < pmut Then For k = 1 To nf
nmm = Int(Rnd * 6 + 0.5) For j = 1 To 6 If j = nmm Then mut(i, j, k) = Str(1 - Val(Mid$(muta$(i, k), j, 1))) Else mut(i, j, k) = Mid$(muta$(i, k), j, 1) End If Next j Next k Else For k = 1 To nf For j = 1 To 6 mut(i, j, k) = Mid$(muta$(i, k), j, 1) Next j Next k End If Next i For i = 1 To pr For k = 1 To nf For j = 1 To 6
binary$(i, k) = binary$(i, k) + mut(i, j, k) Next j Next k Next i Return ' 'DECIMAL TRANSLATION ' 'SUBROUTINE*DECI DECI: For i = 1 To ng For j = 1 To nf cn$ = binary$(i, j): PARA(i, j) = 0 For k = 6 To 1 Step -1 adeci = Val(Mid$(cn$, k, 1))
PARA(i, j) = PARA(i, j) + adeci * 2 ^ (6 - k) Next k
If j = 1 Then PARA(i, j) = 30 * (PARA(i, j) / 63!) + 1035 'RPM If j = 2 Then PARA(i, j) = 0.4 * (PARA(i, j) / 63!) + 0.4 'Jarak rol If j = 3 Then PARA(i, j) = 4.31 * (PARA(i, j) / 63!) + 11.29 'Kadar air Next j List1.AddItem PARA(i, 1) Print #5, PARA(i, 1) List2.AddItem PARA(i, 2) Print #3, PARA(i, 2) List5.AddItem PARA(i, 3) Print #4, PARA(i, 3) Next i
Return ' 'ERROR CALCULATION ' 'SUBROUTINE * EVAL EVAL: For j9 = 1 To ng For i9 = 1 To 3 'nf=3 WW(i9) = PARA(j9, i9) Next i9 ER(j9, 1) = 0 'every case X(1, 1) = WW(1) X(1, 2) = WW(2) X(1, 3) = WW(3) For j = 1 To nn(1)
X(1, j) = (X(1, j) - mixi(j)) / (maxi(j) - mixi(j)) Next j
'forward (calculating output of each PE) For ii = 2 To nl
For kk = 1 To nn(ii) u(ii, kk) = 0
For jj = 1 To nn(ii - 1)
u(ii, kk) = u(ii, kk) + w(ii - 1, jj, kk) * X(ii - 1, jj) Next jj
X(ii, kk) = 1 / (1 + temp * Exp(-u(ii, kk))) Next kk
Next ii
'Form1.Print mixo(2) For ii = 3 To 3 For kk = 1 To nn(3)
hsl(kk, ii) = (X(ii, kk) - 0.2) * (maxo(kk) - mixo(kk)) / 0.6 + mixo(kk) If kk = 1 Then List3.AddItem hsl(kk, ii) Print #2, hsl(kk, ii) ElseIf kk = 2 Then List4.AddItem hsl(kk, ii) Print #9, hsl(kk, ii) End If Next kk Next ii 'fungsi fitness ER(j9, 1) = hsl(2, 3) + 610 / hsl(1, 3): ER(j9, 2) = j9 'ER(j9, 1) = 250 - ER(j9, 1) Next j9 MAXX = 0 For i9 = 1 To ng For j9 = i9 To ng
If ER(j9, 1) > MAXX Then MAXX = ER(j9, 1): CHK1 = j9: CHK2 = ER(j9, 2) Next j9
ER(CHK1, 1) = ER(i9, 1): ER(CHK1, 2) = ER(i9, 2): ER(i9, 1) = MAXX ER(i9, 2) = CHK2: MAXX = 0
Next i9 Return '
'SELECTION OF GOOD GENES '
'SUBROUTINE*PRLF PRLF:
For i = 1 To pr
ruin = ER(i, 2): BORN = ER(ng - i + 1, 2) For j = 1 To nf PARA(ruin, j) = PARA(BORN, j) Next j Next i For i = 1 To ng For j = 1 To nf PARA1(i, j) = PARA(ER(i, 2), j) Next j Next i For i = 1 To ng: For j = 1 To nf PARA(i, j) = PARA1(i, j) Next j: Next i For i = 1 To ng For j = 1 To nf
If j = 1 Then an(i, j) = Int((PARA(i, j) - 1035) / 30 * 63) If j = 2 Then an(i, j) = Int((PARA(i, j) - 0.4) / 0.4 * 63) If j = 3 Then an(i, j) = Int((PARA(i, j) - 11.29) / 4.31 * 63) Next j Next i Return ' 'RESULT ' 'SUBROUTINE*OPT OPT: Return ' 'GOSUB TRAIN TRAIN: 'limp(1) = Val(Text5.Text) Return ' 'FINISH finish:
Close #1 Close #2 Close #9
Screen.MousePointer = 0 End Sub
Private Sub VScroll1_Change()
Text1.Text = Format(VScroll1.Value, "###") End Sub
Private Sub VScroll2_Change()
Text2.Text = Format(VScroll2.Value, "#####") End Sub