Lampiran 1. Data hasil giling untuk input proses training JST. No
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
Kecepatan putar rol (rpm)
797.72-1035 797.72-1035 797.72-1035 797.72-1035 797.72-1035 797.72-1035 797.72-1035 797.72-1035 797.72-1035 797.72-1035 797.72-1035 797.72-1035 797.72-1035 797.72-1035 797.72-1035 807.73-1050 807.73-1050 807.73-1050 807.73-1050 807.73-1050 807.73-1050 807.73-1050 807.73-1050 807.73-1050 807.73-1050 807.73-1050 807.73-1050 807.73-1050 807.73-1050 807.73-1050 820-1065 820-1065 820-1065 820-1065 820-1065 820-1065 820-1065 820-1065 820-1065 820-1065 820-1065 820-1065 820-1065
Kadar air (%)
11.29 13.99 15.25 11.79 13.69 15.6 11.59 13.99 15.55 11.59 14.09 15.4 12.09 13.84 15.3 12.27 12.79 15.25 12.09 12.85 15.5 12.04 12.99 15.3 11.99 12.99 15.25 12.04 13.29 15.2 12.04 14.14 15.5 12.11 14.34 15.48 12.09 14.39 15.45 12.09 14.19 15.45 12.06
Jarak antar rol (mm)
0.8 0.8 0.8 0.7 0.7 0.7 0.6 0.6 0.6 0.5 0.5 0.5 0.4 0.4 0.4 0.8 0.8 0.8 0.7 0.7 0.7 0.6 0.6 0.6 0.5 0.5 0.5 0.4 0.4 0.4 0.8 0.8 0.8 0.7 0.7 0.7 0.6 0.6 0.6 0.5 0.5 0.5 0.4
Efisiensi pengupasan (%)
93.56 85.22 88.22 94.62 89.93 88.73 95.47 93.84 92.6 95.24 95.87 92.43 96.51 95.54 94.54 91.37 89.26 88.09 92.13 93.11 87.5 94.77 93.59 89.26 96.42 95.87 92.92 94.97 95.06 94.22 94.29 91.05 89.14 94.44 96.09 89.34 96.54 94.81 95.44 97.17 93.87 95.44 97.29
Persentase beras patah (%)
11.48 8.86 6.97 12.34 7.89 7.65 8.83 6.77 5.62 9.85 7.84 7.58 9.58 7.3 5.90 9.72 6.45 9.35 5.89 6.72 5.89 6.69 6.67 5.28 6.49 6.82 6.65 6.11 6.71 6.13 6.13 4.93 6.55 5.96 5.53 6.30 7.08 5.26 6.04 6.89 4.61 7.33 7.74
44 45
820-1065 820-1065
14.09 15.5
0.4 0.4
95.34 91.6
6.73 7.31
Lampiran 2. Data hasil giling untuk proses validasi JST. No
Kecepatan putar rol (rpm)
Kadar air (%)
Jarak antar rol (mm)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
797.72-1035 797.72-1035 797.72-1035 797.72-1035 797.72-1035 807.73-1050 807.73-1050 807.73-1050 807.73-1050 807.73-1050 820-1065 820-1065 820-1065 820-1065 820-1065
13.57 13.39 13.19 14.39 14.64 14.64 15.1 15.35 13.17 13.04 13.09 14.8 13.09 15.15 15
0.8 0.7 0.6 0.5 0.4 0.8 0.7 0.6 0.5 0.4 0.8 0.7 0.6 0.5 0.4
Efisiensi pengupasan (%)
89.85 89.68 93.44 94.07 94.09 88.64 92.27 91.55 95.45 94.69 93.77 92.96 94.66 94.17 95.6
Persentase beras patah (%)
7.35 5.71 7.6 6.44 7.04 7.53 8.08 6.18 6.38 8.78 9.21 8.06 5.74 8.64 8.58
Lampiran 3. Hasil proses training JST. No
EP JST (%)
EP aktual (%)
BP JST (%)
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
93.33 88.066 87.22 93.568 90.15 89.113 95.421 92.031 91.617 96.572 94.067 93.927 96.815 95.473 95.327 91.132 90.046 86.568 93.184 91.848 88.447 94.884 93.609 90.827 96.023 95.005 92.525 96.509 95.235 93.131 93.884 91.74 89.652 95.349 93.525 91.815 96.352 94.881 93.37 96.613 95.523 93.858
93.56 85.22 88.22 94.62 89.93 88.73 95.47 93.84 92.6 95.24 95.87 92.43 96.51 95.54 94.54 91.37 89.26 88.09 92.13 93.11 87.5 94.77 93.59 89.26 96.42 95.87 92.92 94.97 95.06 94.22 94.29 91.05 89.14 94.44 96.09 89.34 96.54 94.81 95.44 97.17 93.87 95.44
11.734 8.894 7.808 10.706 8.429 6.993 10.295 7.407 6.442 9.868 6.851 6.109 9.006 6.999 6.128 7.546 7.336 7.201 7.103 6.821 6.738 6.782 6.456 6.377 6.835 6.468 6.313 7.181 6.842 6.707 6.028 6.146 6.458 5.818 5.885 6.121 5.889 5.824 6.005 6.362 6.15 6.281
BP aktual (%) 11.48 8.86 6.97 12.34 7.89 7.65 8.83 6.77 5.62 9.85 7.84 7.58 9.58 7.3 5.9 9.72 6.45 9.35 5.89 6.72 5.89 6.69 6.67 5.28 6.49 6.82 6.65 6.11 6.71 6.13 6.13 4.93 6.55 5.96 5.53 6.3 7.08 5.26 6.04 6.89 4.61 7.33
Kecepatan rol utama (rpm) 1035 1035 1035 1035 1035 1035 1035 1035 1035 1035 1035 1035 1035 1035 1035 1050 1050 1050 1050 1050 1050 1050 1050 1050 1050 1050 1050 1050 1050 1050 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065
Kadar air (%)
11.29 13.99 15.25 11.79 13.69 15.6 11.59 13.99 15.55 11.59 14.09 15.4 12.09 13.84 15.3 12.27 12.79 15.25 12.09 12.85 15.5 12.04 12.99 15.3 11.99 12.99 15.25 12.04 13.29 15.2 12.04 14.14 15.5 12.11 14.34 15.48 12.09 14.39 15.45 12.09 14.19 15.45
Jarak antar rol (mm)
0.8 0.8 0.8 0.7 0.7 0.7 0.6 0.6 0.6 0.5 0.5 0.5 0.4 0.4 0.4 0.8 0.8 0.8 0.7 0.7 0.7 0.6 0.6 0.6 0.5 0.5 0.5 0.4 0.4 0.4 0.8 0.8 0.8 0.7 0.7 0.7 0.6 0.6 0.6 0.5 0.5 0.5
43 44 45
96.464 95.24 93.29
97.29 95.34 91.6
7.048 6.891 7.012
7.74 6.73 7.31
1065 1065 1065
12.06 14.09 15.5
0.4 0.4 0.4
Lampiran 4. Data hasil proses validasi JST. Efisiensi pengupasan pendugaan JST (%)
Efisiensi pengupasan hasil giling (%)
Persentase beras patah pendugaan JST (%)
Persentase beras patah hasil giling (%)
Kecepatan putar rol utama (rpm)
1
88.572
89.85
9.373
7.35
1035
2 3
90.534 92.823
89.68 93.44
8.769 8.231
5.71 7.6
1035 1035
4
93.967
94.07
6.637
6.44
1035
5
95.296
94.09
6.455
7.04
1035
6
87.085
88.64
7.186
7.53
1050
7
88.719
92.27
6.732
8.08
1050
8
90.791
91.55
6.377
6.18
1050
9
94.793
95.45
6.434
6.38
1050
10 11
95.525 93.072
94.69 93.77
6.88 6.002
8.78 9.21
1050 1065
12 13
92.861 96.051
92.96 94.66
5.973 5.758
8.06 5.74
1065 1065
14 15
94.301 94.052
94.17 95.6
6.241 6.959
8.64 8.58
1065 1065
No
Kadar air (%)
13.57 13.39 13.19 14.39 14.64 14.64 15.1 15.35 13.17 13.04 13.09 14.8 13.09 15.15 15
Jarak antar rol (mm)
0.8 0.7 0.6 0.5 0.4 0.8 0.7 0.6 0.5 0.4 0.8 0.7 0.6 0.5 0.4
Lampiran 5. Nilai pembobot hasil keluaran proses training JST. No
Nilai pembobot
1
-1.01 3.99 1.13 1.55 -2.57 1.06 1.96 0.69 0.031 2.43 -0.24 -2.63 -3.76 0.99 -3.24 1.61 2.41 -4.66 3.05 0.58 -1.48 -0.79 1.7 -0.96 2.63
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Lampiran 6. Hasil optimasi program AG berdasarkan nilai kadar air. Kadar air (%) 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15 15.1 15.2 15.3 15.4 15.5 15.6
Jarak antar rol (mm) 0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6
Kecepatan putar rol utama (rpm) 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065 1065
EP (%)
BP (%)
95.8 95.8 95.9 95.9 95.9 95.9 95.9 95.9 95.9 95.9 95.9 95.8 95.8 96.3 95.9 96.3 96.2 95.8 95.7 95.8 95.7 95.9 95.9 95.8 95.4 95.4 95.3 95.4 95.3 95 94.8 95 94.6 94.5 94.6 94.4 94.3 94.1 93.9 93.7 93.7 93.5 93.4 93.2
6 6 5.9 5.9 5.9 5.9 5.8 5.8 5.8 5.8 5.8 5.8 5.7 5.8 5.7 5.8 5.8 5.7 5.7 5.7 5.7 5.8 5.8 5.8 5.7 5.7 5.8 5.8 5.8 5.8 5.8 5.8 5.8 5.8 5.9 5.9 5.9 5.9 5.9 6 6 6 6 6
Lampiran 7. Sortasi gabah menggunakan winower.
a. Pemasukkan gabah pada hopper winower.
b. Pemisahan gabah berdasarkan berat jenis
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.
b. Hasil sortasi beras pecah kulit hasil giling.
Lampiran 10. Penimbangan beras pecah kulit.
Lampiran 11. Tampilan program AG yang siap digunakan.
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 End 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