This repository was archived by the owner on Jan 28, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMain.java
More file actions
376 lines (329 loc) · 11.1 KB
/
Main.java
File metadata and controls
376 lines (329 loc) · 11.1 KB
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
import java.util.Scanner;
class Main
{
static Scanner sc = new Scanner(System.in);
static boolean[] penyakit = new boolean[7];
static boolean[] gejalaDitemukan = new boolean[7];
public static void main(String[] args)
{
exsysTembakau();
}
public static void exsysTembakau()
{
for (int i = 0; i < 7; ++i) {
penyakit[i] = true;
gejalaDitemukan[i] = false;
}
System.out.println("apakah masih berbentuk tunas?");
System.out.println("1. ya\n2. tidak");
int jawaban = mintaPilihan(1, 2);
if (jawaban == 1)
expertTunas();
else
expertBatangDaun();
}
public static int mintaPilihan(int minimum, int maksimum)
{
System.out.print("jawaban: ");
int pilihan = minimum - 1;
pilihan = sc.nextInt();
while (pilihan < minimum || pilihan > maksimum)
{
System.out.println("tolong pilih dari nomor yg disediakan :)");
System.out.print("jawaban: ");
pilihan = sc.nextInt();
}
return pilihan;
}
public static void expertTunas()
{
System.out.println("apakah tunasnya tumbuh?");
System.out.println("1. ya\n2. tidak");
int jawaban = mintaPilihan(1, 2);
if (jawaban == 2) {
System.out.println(
"penyakit:\nDamping Off" +
"\n\tTidak bisa disembuhkan, tetapi bisa dicegah dengan cara menjaga sirkulasi udara di tempat pembibitan selalu baik. Supaya sirkulasi udara bagus, bisa diberi kipas angin kecil, atau pastikan tempat pembibitan tidak tergenang air."
);
} else {
cekBijiMembusuk();
cekTunasBerlekuk();
cekTunasLembabTidakKokoh();
cekTunasDekatPermukaanTanahRusak();
cekBintikCoklatPadaDaun();
cekBintikPutih();
diagnosa();
}
}
public static void expertBatangDaun()
{
// Batang
cekAreaDekatPermukaanTanah();
cekBatangHitamBusuk();
cekBatangKecoklatan();
cekBatangLunakTidakKokoh();
cekLukaPadaBatang();
// Daun
cekBintikPutihTepianCoklat();
cekBintikCoklat();
cekBintikMenyebabkanKeringLayu();
cekLukaDaun();
cekLukaCoklatTepianHijau();
cekBentukLukaTidakBeraturan();
cekLukaBintikBasah();
cekDaunLayu();
cekDaunBercakMosaik();
cekDaunMelepuh();
cekDaunMengkerut();
cekDaunMenggulung();
cekTulangDaunBerkelok();
cekPermukaanDaunTidakRata();
cekDaunKakuRapuh();
cekBungaTidakTerbentuk();
diagnosa();
}
public static void cekBungaTidakTerbentuk()
{
boolean[] rule = {false, false, false, false, false, false, true};
tanya(rule, "apakah bunga tidak terbentuk?");
}
public static void cekDaunKakuRapuh()
{
boolean[] rule = {false, false, false, false, false, false, true};
tanya(rule, "apakah daun kaku dan rapuh?");
}
public static void cekPermukaanDaunTidakRata()
{
boolean[] rule = {false, false, false, false, false, false, true};
tanya(rule, "apakah permukaan daunnya tidak rata?");
}
public static void cekTulangDaunBerkelok()
{
boolean[] rule = {false, false, false, false, false, false, true};
tanya(rule, "apakah tulang daunnya berkelok?");
}
public static void cekDaunMenggulung()
{
boolean[] rule = {false, false, false, false, false, false, true};
tanya(rule, "apakah daunnya menggulung ke bawah?");
}
public static void cekDaunMengkerut()
{
boolean[] rule = {false, false, false, false, false, true, false};
tanya(rule, "apakah daunnya mengkerut?");
}
public static void cekDaunMelepuh() {
boolean[] rule = {false, false, false, false, false, true, false};
tanya(rule, "apakah daun terlihat melepuh?");
}
public static void cekDaunBercakMosaik() {
boolean[] rule = {false, false, false, false, false, true, false};
tanya(rule, "apakah daun memiliki bercak mosaik?");
}
public static void cekDaunLayu() {
boolean[] rule = {false, false, false, false, true, false, false};
tanya(rule, "apakah ada daun yang layu?");
}
public static void cekLukaBintikBasah() {
boolean[] rule = {false, false, true, true, false, false, false};
tanya(rule, "apakah ada luka/bintik basah?");
}
public static void cekBentukLukaTidakBeraturan() {
boolean[] rule = {false, false, true, false, false, false, false};
tanya(rule, "apakah ada bentuk luka tidak beraturan?");
}
public static void cekLukaCoklatTepianHijau() {
boolean[] rule = {false, false, true, false, false, false, false};
tanya(rule, "apakah ada luka coklat dengan tepian hitam?");
}
public static void cekLukaDaun() {
boolean[] rule = {false, false, true, true, false, false, false};
tanya(rule, "apakah ada luka pada daun?");
}
public static void cekBintikMenyebabkanKeringLayu() {
boolean[] rule = {false, true, false, false, false, false, false};
tanya(rule, "apakah bintik menyebabkan daun kering dan layu?");
}
public static void cekBintikCoklat() {
boolean[] rule = {false, true, false, false, false, false, false};
tanya(rule, "apakah ada bintik coklat?");
}
public static void cekBintikPutihTepianCoklat() {
boolean[] rule = {false, true, false, true, false, false, false};
tanya(rule, "apakah ada bintik putih dengan tepian coklat?");
}
public static void cekAreaDekatPermukaanTanah() {
boolean[] rule = {true, false, false, false, false, false, false};
tanya(rule, "apakah di area dekat permukaan tanah?");
}
public static void cekBatangLunakTidakKokoh() {
boolean[] rule = {true, false, false, true, false, false, false};
tanya(rule, "apakah batang lunak dan tidak kokoh?");
}
public static void cekBatangHitamBusuk() {
boolean[] rule = {false, false, true, false, false, false, false};
tanya(rule, "apakah batang hitam dan busuk?");
}
public static void cekLukaPadaBatang() {
boolean[] rule = {false, false, false, true, false, false, false};
tanya(rule, "apakah ada luka pada batang?");
}
public static void cekBatangKecoklatan() {
boolean[] rule = {false, false, false, false, true, false, false};
tanya(rule, "apakah batang berwarna kecoklatan?");
}
public static void diagnosa()
{
if (adaPenyakit())
tampilkanPenyakit();
else
System.out.println("tidak ada penyakit yang cocok");
}
public static void cekBijiMembusuk() {
boolean[] rule = {true, false, false, false, false, false, false};
tanya(rule, "apakah bijinya membusuk?");
}
public static void cekTunasBerlekuk() {
boolean[] rule = {true, false, false, false, false, false, false};
tanya(rule, "apakah tunasnya berlekuk?");
}
public static void cekTunasLembabTidakKokoh() {
boolean[] rule = {true, false, false, false, false, false, false};
tanya(rule, "apakah tunasnya lembab dan tidak kokoh?");
}
public static void cekTunasDekatPermukaanTanahRusak() {
boolean[] rule = {true, false, false, false, false, false, false};
tanya(rule, "apakah tunasnya dekat permukaan tanah rusak?");
}
public static void cekBintikCoklatPadaDaun() {
boolean[] rule = {false, true, false, false, false, false, false};
tanya(rule, "apakah terdapat bintik coklat pada daun yang berukuran 2-10mm?");
}
public static void cekBintikPutih() {
boolean[] rule = {false, true, false, false, false, false, false};
tanya(rule, "apakah terdapat bintik putih yang dikelilingi tepian coklat?");
}
public static boolean adaPenyakit()
{
for (int i = 0; i < 7; ++i)
if (penyakit[i] && gejalaDitemukan[i])
return true;
return false;
}
public static void tampilkanPenyakit()
{
System.out.println("Berikut penyakitnya:");
for (int i = 0; i < 7; ++i)
if (penyakit[i] && gejalaDitemukan[i])
if (i == 0)
System.out.println(
"\nDamping Off" +
"\n\tTidak bisa disembuhkan, tetapi bisa dicegah dengan cara menjaga sirkulasi udara di tempat pembibitan selalu baik. Supaya sirkulasi udara bagus, bisa diberi kipas angin kecil, atau pastikan tempat pembibitan tidak tergenang air."
);
else if (i == 1)
System.out.println(
"\nFrog Eye Leaf" +
"\n\t- Daun yang telah terinfeksi harus dipotong agar tidak menyebar ke daun lainnya." +
"\n\t- Pemberian pupuk harus seimbang, karena pemberian pupuk yang berlebihan juga meningkatkan probabilitas terkena penyakit ini." +
"\n\t- Jika diperlukan gunakan fungisida seperti mancozeb, copper atau chlorothanonil."
);
else if (i == 2)
System.out.println(
"\nLeaf Blight" +
"\n\t- Fungsida yang digunakan perpaduan dari Orondis Gold 200 + Oxathiapiprolin 18.7%" +
"\n\t- Pemupukan dan irigasi haruslah dikelola dengan baik." +
"\n\t- Peralatan kebun yg digunakan pada tumbuhan yang terinfeksi harus dibersihkan terlebih dahulu sebelum digunakan ke tumbuhan yang sehat."
);
else if (i == 3)
System.out.println(
"\nAnthracnose" +
"\n\t- Singkirkan tumbuhan yang terinfeksi." +
"\n\t- Semprotkan cooper-based fungisida." +
"\n\t- Tanam tumbuhan di tanah yang pengairan nya bagus."
);
else if (i == 4)
System.out.println(
"\nFusarium Wilz" +
"\n\t- Hilangkan bagian yang terinfeksi, tools yang digunakan harus steril." +
"\n\t- Gunakan pupuk yang kadar nitrogennya tidak terlalu tinggi." +
"\n\t- Gunakan fungisida Mycostop."
);
else if (i == 5)
System.out.println(
"\nTobacco Mosaic" +
"\n\t- Menghindari lahan bekas tanaman inang yang terserang penyakit tmv." +
"\n\t- Melakukan sanitasi, bertujuan membersihkan inokulan dengan mencabut tanaman yg sakit, tanamam inang lain dan membersihkan peralatan." +
"\n\t- Rotasi dengan tanamam bukan inang, Penyemprotan vektor dengan insektisida." +
"\n\t- Pembersihan gulma juga mampu menekan tmv."
);
else if (i == 6)
System.out.println(
"\nTobacco Leaf Curl" +
"\n\t- Mengendalikan serangga vektor, misalnya dengan asefat atau imidakloprit 2x (saat tanam dan 45 hari setelah tanam)." +
"\n\t- Menanam bunga matahari atau jarak kepyar sebagai pagar pembatas di sekitar bedengan untuk mencegah B. tabaci." +
"\n\t- Memilih varietas-varietas yang tahan akan penyakit TLCV." +
"\n\t- Pemberian abu sekam, abu tomang atau tepung sisa bakaran arang pada lahan pembibitan atau lahan tanam dimaksudkan untuk menghambat penyebaran penyakit ini."
);
}
public static void tanya(boolean[] rule, String pertanyaan)
{
if (adaYangTrue(rule)) {
System.out.println(pertanyaan);
System.out.println("1. ya\n2. tidak");
int jawaban = mintaPilihan(1, 2);
if (jawaban == 2)
penyakit = eliminasiYangIya(rule);
else
tandaiGejalaDitemukan(rule);
}
}
public static void tandaiGejalaDitemukan(boolean[] rule)
{
for (int i = 0; i < 7; ++i)
if (rule[i])
gejalaDitemukan[i] = true;
}
public static boolean adaYangTrue(boolean[] rule)
{
for (int i = 0; i < 7; ++i)
if (penyakit[i] && rule[i])
return true;
return false;
}
/*
public static boolean adaPerbedaan(boolean[] rule)
{
boolean penyakitPertamaYangTrue = true;
boolean rulePatokan = false;// terserah true atau false
for (int i = 0; i < 7; ++i)
{
if (penyakit[i] == true) {
if (penyakitPertamaYangTrue) {
rulePatokan = rule[i];
penyakitPertamaYangTrue = false;
} else {
if (rulePatokan != rule[i])
return true;
}
}
}
return false;
}
*/
/*
public static boolean[] eliminasiYangTidak(boolean[] rule)
{
for (int i = 0; i < 7; ++i)
if (rule[i] == false)
penyakit[i] = false;
return penyakit;
}
*/
public static boolean[] eliminasiYangIya(boolean[] rule)
{
for (int i = 0; i < 7; ++i)
if (rule[i])
penyakit[i] = false;
return penyakit;
}
}