fix: [detection] resolve null URI when selecting from gallery & percentage display

This commit is contained in:
Wisnu Andika
2025-04-15 20:07:56 +07:00
parent 59f534fb35
commit 40fa1bfa25
8 changed files with 105 additions and 124 deletions

View File

@ -64,67 +64,66 @@ abstract class DiseaseDatabase : RoomDatabase() {
detailRecommendation = "Untuk mempertahankan kondisi tanaman yang sehat, lakukan perawatan secara rutin dengan memastikan tanaman mendapatkan nutrisi yang cukup melalui pemupukan yang tepat. Pastikan tanaman mendapatkan sinar matahari yang cukup dan memiliki sistem drainase yang baik agar tidak terjadi genangan air yang dapat merusak akar. Selain itu, lakukan pemantauan berkala terhadap kemungkinan munculnya gejala penyakit atau serangan hama agar dapat segera diatasi jika ditemukan tanda-tanda awal gangguan. Dengan menjaga keseimbangan antara faktor lingkungan, nutrisi, dan perlindungan tanaman, kondisi sehat ini dapat dipertahankan dalam jangka panjang.", detailRecommendation = "Untuk mempertahankan kondisi tanaman yang sehat, lakukan perawatan secara rutin dengan memastikan tanaman mendapatkan nutrisi yang cukup melalui pemupukan yang tepat. Pastikan tanaman mendapatkan sinar matahari yang cukup dan memiliki sistem drainase yang baik agar tidak terjadi genangan air yang dapat merusak akar. Selain itu, lakukan pemantauan berkala terhadap kemungkinan munculnya gejala penyakit atau serangan hama agar dapat segera diatasi jika ditemukan tanda-tanda awal gangguan. Dengan menjaga keseimbangan antara faktor lingkungan, nutrisi, dan perlindungan tanaman, kondisi sehat ini dapat dipertahankan dalam jangka panjang.",
date = "2025-02-10" date = "2025-02-10"
), ),
DiseaseDiagnose( // DiseaseDiagnose(
id = "D-003", // id = "D-003",
diseaseName = "Brown Spots", // diseaseName = "Brown Spots",
diseaseExplanation = "Brown spots adalah penyakit yang menyerang daun tanaman kelapa sawit, ditandai dengan munculnya bercak-bercak coklat yang dapat menyebar dengan cepat. Penyakit ini disebabkan oleh jamur Helminthosporium, yang berkembang biak di lingkungan dengan kelembaban tinggi dan sirkulasi udara yang buruk.", // diseaseExplanation = "Brown spots adalah penyakit yang menyerang daun tanaman kelapa sawit, ditandai dengan munculnya bercak-bercak coklat yang dapat menyebar dengan cepat. Penyakit ini disebabkan oleh jamur Helminthosporium, yang berkembang biak di lingkungan dengan kelembaban tinggi dan sirkulasi udara yang buruk.",
diseaseRecommendation = "Untuk mengatasi penyakit brown spots, diperlukan tindakan yang cepat dan tepat agar tidak menyebar ke seluruh bagian tanaman atau ke tanaman lain di sekitarnya. Salah satu langkah utama yang dapat dilakukan adalah menyemprotkan fungisida berbasis tembaga secara berkala, karena tembaga memiliki sifat fungisida yang efektif dalam menghambat pertumbuhan jamur penyebab penyakit ini.", // diseaseRecommendation = "Untuk mengatasi penyakit brown spots, diperlukan tindakan yang cepat dan tepat agar tidak menyebar ke seluruh bagian tanaman atau ke tanaman lain di sekitarnya. Salah satu langkah utama yang dapat dilakukan adalah menyemprotkan fungisida berbasis tembaga secara berkala, karena tembaga memiliki sifat fungisida yang efektif dalam menghambat pertumbuhan jamur penyebab penyakit ini.",
detailExplanation = "Brown spots adalah penyakit yang umum ditemukan pada tanaman kelapa sawit dan disebabkan oleh jamur Helminthosporium. Jamur ini menyerang bagian daun dan menimbulkan bercak-bercak coklat yang dapat menyebar dengan cepat, terutama di lingkungan yang lembab. Jika tidak segera ditangani, infeksi dapat menyebabkan daun mengering, menurunkan efisiensi fotosintesis, dan pada akhirnya menghambat pertumbuhan tanaman. Penyakit ini sering muncul pada musim hujan atau di daerah dengan tingkat kelembaban yang tinggi.", // detailExplanation = "Brown spots adalah penyakit yang umum ditemukan pada tanaman kelapa sawit dan disebabkan oleh jamur Helminthosporium. Jamur ini menyerang bagian daun dan menimbulkan bercak-bercak coklat yang dapat menyebar dengan cepat, terutama di lingkungan yang lembab. Jika tidak segera ditangani, infeksi dapat menyebabkan daun mengering, menurunkan efisiensi fotosintesis, dan pada akhirnya menghambat pertumbuhan tanaman. Penyakit ini sering muncul pada musim hujan atau di daerah dengan tingkat kelembaban yang tinggi.",
detailPrevention = "Pencegahan penyakit brown spots dapat dilakukan dengan berbagai cara. Salah satu metode efektif adalah dengan memberikan pupuk yang mengandung tembaga, karena tembaga memiliki sifat fungisida alami yang dapat membantu mengurangi risiko infeksi jamur. Selain itu, penting untuk menjaga kebersihan lahan dengan memastikan sirkulasi udara yang baik di sekitar tanaman, sehingga kelembaban tidak terlalu tinggi. Pemangkasan daun yang terlalu lebat juga diperlukan agar sinar matahari dapat mencapai seluruh bagian tanaman dan mengurangi kemungkinan jamur berkembang. Penggunaan varietas kelapa sawit yang lebih tahan terhadap penyakit juga dapat menjadi strategi jangka panjang dalam mengurangi risiko infeksi.", // detailPrevention = "Pencegahan penyakit brown spots dapat dilakukan dengan berbagai cara. Salah satu metode efektif adalah dengan memberikan pupuk yang mengandung tembaga, karena tembaga memiliki sifat fungisida alami yang dapat membantu mengurangi risiko infeksi jamur. Selain itu, penting untuk menjaga kebersihan lahan dengan memastikan sirkulasi udara yang baik di sekitar tanaman, sehingga kelembaban tidak terlalu tinggi. Pemangkasan daun yang terlalu lebat juga diperlukan agar sinar matahari dapat mencapai seluruh bagian tanaman dan mengurangi kemungkinan jamur berkembang. Penggunaan varietas kelapa sawit yang lebih tahan terhadap penyakit juga dapat menjadi strategi jangka panjang dalam mengurangi risiko infeksi.",
detailRecommendation = "Jika tanaman sudah terinfeksi brown spots, tindakan cepat perlu dilakukan untuk mencegah penyebaran penyakit ke tanaman lain. Salah satu cara yang direkomendasikan adalah menyemprotkan fungisida berbasis tembaga secara berkala, karena tembaga efektif dalam menghambat pertumbuhan jamur penyebab penyakit ini. Penyemprotan harus dilakukan pada pagi atau sore hari untuk memastikan fungisida dapat bekerja secara optimal tanpa cepat menguap akibat sinar matahari. Selain itu, pastikan dosis yang digunakan sesuai dengan anjuran agar tidak merusak tanaman. Jika infeksi sudah parah, pemangkasan daun yang terdampak dapat membantu mengurangi penyebaran spora jamur ke bagian tanaman yang masih sehat.", // detailRecommendation = "Jika tanaman sudah terinfeksi brown spots, tindakan cepat perlu dilakukan untuk mencegah penyebaran penyakit ke tanaman lain. Salah satu cara yang direkomendasikan adalah menyemprotkan fungisida berbasis tembaga secara berkala, karena tembaga efektif dalam menghambat pertumbuhan jamur penyebab penyakit ini. Penyemprotan harus dilakukan pada pagi atau sore hari untuk memastikan fungisida dapat bekerja secara optimal tanpa cepat menguap akibat sinar matahari. Selain itu, pastikan dosis yang digunakan sesuai dengan anjuran agar tidak merusak tanaman. Jika infeksi sudah parah, pemangkasan daun yang terdampak dapat membantu mengurangi penyebaran spora jamur ke bagian tanaman yang masih sehat.",
date = "2025-02-10" // date = "2025-02-10"
), // ),
DiseaseDiagnose( // DiseaseDiagnose(
id = "D-004", // id = "D-004",
diseaseName = "Healthy", // diseaseName = "Healthy",
diseaseExplanation = "Tanaman dalam kondisi sehat tanpa menunjukkan gejala penyakit atau gangguan pertumbuhan. Semua bagian tanaman, mulai dari daun, batang, hingga akar, berkembang dengan baik dan berfungsi secara optimal. Warna daun hijau segar menandakan tanaman mendapatkan nutrisi yang cukup, sementara batang yang kokoh menunjukkan sistem perakaran yang sehat. Tidak ada tanda-tanda infeksi jamur, bakteri, atau serangan hama yang dapat mengganggu pertumbuhan.", // diseaseExplanation = "Tanaman dalam kondisi sehat tanpa menunjukkan gejala penyakit atau gangguan pertumbuhan. Semua bagian tanaman, mulai dari daun, batang, hingga akar, berkembang dengan baik dan berfungsi secara optimal. Warna daun hijau segar menandakan tanaman mendapatkan nutrisi yang cukup, sementara batang yang kokoh menunjukkan sistem perakaran yang sehat. Tidak ada tanda-tanda infeksi jamur, bakteri, atau serangan hama yang dapat mengganggu pertumbuhan.",
diseaseRecommendation = "Untuk menjaga kondisi tanaman tetap sehat, penting untuk terus melanjutkan pola perawatan yang telah dilakukan. Pastikan tanaman mendapatkan nutrisi yang cukup melalui pemupukan yang seimbang dan sesuai dengan kebutuhannya. Selain itu, lakukan pemantauan secara rutin untuk memastikan tidak ada tanda-tanda awal penyakit atau serangan hama yang berpotensi merusak tanaman. Perhatikan juga faktor lingkungan seperti kelembaban, sirkulasi udara, dan intensitas cahaya, karena keseimbangan faktor-faktor ini sangat berpengaruh terhadap kesehatan tanaman dalam jangka panjang.", // diseaseRecommendation = "Untuk menjaga kondisi tanaman tetap sehat, penting untuk terus melanjutkan pola perawatan yang telah dilakukan. Pastikan tanaman mendapatkan nutrisi yang cukup melalui pemupukan yang seimbang dan sesuai dengan kebutuhannya. Selain itu, lakukan pemantauan secara rutin untuk memastikan tidak ada tanda-tanda awal penyakit atau serangan hama yang berpotensi merusak tanaman. Perhatikan juga faktor lingkungan seperti kelembaban, sirkulasi udara, dan intensitas cahaya, karena keseimbangan faktor-faktor ini sangat berpengaruh terhadap kesehatan tanaman dalam jangka panjang.",
detailExplanation = "Tanaman ini berada dalam kondisi optimal tanpa adanya gejala penyakit atau gangguan pertumbuhan. Daun tampak hijau segar, batang kuat, serta sistem perakaran berkembang dengan baik. Tidak ditemukan bercak, layu, atau tanda-tanda serangan hama dan penyakit. Lingkungan tumbuh yang sehat dengan kadar air, nutrisi, dan pencahayaan yang cukup mendukung pertumbuhan tanaman secara maksimal. Tanaman yang sehat juga menunjukkan tingkat fotosintesis yang baik, sehingga mampu menghasilkan energi yang cukup untuk pertumbuhan dan perkembangan.", // detailExplanation = "Tanaman ini berada dalam kondisi optimal tanpa adanya gejala penyakit atau gangguan pertumbuhan. Daun tampak hijau segar, batang kuat, serta sistem perakaran berkembang dengan baik. Tidak ditemukan bercak, layu, atau tanda-tanda serangan hama dan penyakit. Lingkungan tumbuh yang sehat dengan kadar air, nutrisi, dan pencahayaan yang cukup mendukung pertumbuhan tanaman secara maksimal. Tanaman yang sehat juga menunjukkan tingkat fotosintesis yang baik, sehingga mampu menghasilkan energi yang cukup untuk pertumbuhan dan perkembangan.",
detailPrevention = "Untuk menjaga tanaman tetap sehat, penting untuk memastikan kondisi lingkungan tumbuh yang optimal. Faktor utama yang harus diperhatikan adalah ketersediaan air yang cukup tanpa menyebabkan kelebihan kelembaban, karena kondisi yang terlalu lembab dapat memicu pertumbuhan jamur dan bakteri patogen. Selain itu, penggunaan pupuk yang seimbang sesuai dengan kebutuhan tanaman sangat dianjurkan untuk mendukung pertumbuhan yang kuat. Pengendalian hama secara berkala juga diperlukan, baik dengan cara alami maupun menggunakan pestisida ramah lingkungan jika diperlukan. Rotasi tanaman dan sanitasi lahan dapat membantu mencegah munculnya hama dan penyakit yang dapat mengganggu kesehatan tanaman.", // detailPrevention = "Untuk menjaga tanaman tetap sehat, penting untuk memastikan kondisi lingkungan tumbuh yang optimal. Faktor utama yang harus diperhatikan adalah ketersediaan air yang cukup tanpa menyebabkan kelebihan kelembaban, karena kondisi yang terlalu lembab dapat memicu pertumbuhan jamur dan bakteri patogen. Selain itu, penggunaan pupuk yang seimbang sesuai dengan kebutuhan tanaman sangat dianjurkan untuk mendukung pertumbuhan yang kuat. Pengendalian hama secara berkala juga diperlukan, baik dengan cara alami maupun menggunakan pestisida ramah lingkungan jika diperlukan. Rotasi tanaman dan sanitasi lahan dapat membantu mencegah munculnya hama dan penyakit yang dapat mengganggu kesehatan tanaman.",
detailRecommendation = "Untuk mempertahankan kondisi tanaman yang sehat, lakukan perawatan secara rutin dengan memastikan tanaman mendapatkan nutrisi yang cukup melalui pemupukan yang tepat. Pastikan tanaman mendapatkan sinar matahari yang cukup dan memiliki sistem drainase yang baik agar tidak terjadi genangan air yang dapat merusak akar. Selain itu, lakukan pemantauan berkala terhadap kemungkinan munculnya gejala penyakit atau serangan hama agar dapat segera diatasi jika ditemukan tanda-tanda awal gangguan. Dengan menjaga keseimbangan antara faktor lingkungan, nutrisi, dan perlindungan tanaman, kondisi sehat ini dapat dipertahankan dalam jangka panjang.", // detailRecommendation = "Untuk mempertahankan kondisi tanaman yang sehat, lakukan perawatan secara rutin dengan memastikan tanaman mendapatkan nutrisi yang cukup melalui pemupukan yang tepat. Pastikan tanaman mendapatkan sinar matahari yang cukup dan memiliki sistem drainase yang baik agar tidak terjadi genangan air yang dapat merusak akar. Selain itu, lakukan pemantauan berkala terhadap kemungkinan munculnya gejala penyakit atau serangan hama agar dapat segera diatasi jika ditemukan tanda-tanda awal gangguan. Dengan menjaga keseimbangan antara faktor lingkungan, nutrisi, dan perlindungan tanaman, kondisi sehat ini dapat dipertahankan dalam jangka panjang.",
date = "2025-02-10" // date = "2025-02-10"
), // ),
DiseaseDiagnose( // DiseaseDiagnose(
id = "D-005", // id = "D-005",
diseaseName = "Brown Spots", // diseaseName = "Brown Spots",
diseaseExplanation = "Brown spots adalah penyakit yang menyerang daun tanaman kelapa sawit, ditandai dengan munculnya bercak-bercak coklat yang dapat menyebar dengan cepat. Penyakit ini disebabkan oleh jamur Helminthosporium, yang berkembang biak di lingkungan dengan kelembaban tinggi dan sirkulasi udara yang buruk.", // diseaseExplanation = "Brown spots adalah penyakit yang menyerang daun tanaman kelapa sawit, ditandai dengan munculnya bercak-bercak coklat yang dapat menyebar dengan cepat. Penyakit ini disebabkan oleh jamur Helminthosporium, yang berkembang biak di lingkungan dengan kelembaban tinggi dan sirkulasi udara yang buruk.",
diseaseRecommendation = "Untuk mengatasi penyakit brown spots, diperlukan tindakan yang cepat dan tepat agar tidak menyebar ke seluruh bagian tanaman atau ke tanaman lain di sekitarnya. Salah satu langkah utama yang dapat dilakukan adalah menyemprotkan fungisida berbasis tembaga secara berkala, karena tembaga memiliki sifat fungisida yang efektif dalam menghambat pertumbuhan jamur penyebab penyakit ini.", // diseaseRecommendation = "Untuk mengatasi penyakit brown spots, diperlukan tindakan yang cepat dan tepat agar tidak menyebar ke seluruh bagian tanaman atau ke tanaman lain di sekitarnya. Salah satu langkah utama yang dapat dilakukan adalah menyemprotkan fungisida berbasis tembaga secara berkala, karena tembaga memiliki sifat fungisida yang efektif dalam menghambat pertumbuhan jamur penyebab penyakit ini.",
detailExplanation = "Brown spots adalah penyakit yang umum ditemukan pada tanaman kelapa sawit dan disebabkan oleh jamur Helminthosporium. Jamur ini menyerang bagian daun dan menimbulkan bercak-bercak coklat yang dapat menyebar dengan cepat, terutama di lingkungan yang lembab. Jika tidak segera ditangani, infeksi dapat menyebabkan daun mengering, menurunkan efisiensi fotosintesis, dan pada akhirnya menghambat pertumbuhan tanaman. Penyakit ini sering muncul pada musim hujan atau di daerah dengan tingkat kelembaban yang tinggi.", // detailExplanation = "Brown spots adalah penyakit yang umum ditemukan pada tanaman kelapa sawit dan disebabkan oleh jamur Helminthosporium. Jamur ini menyerang bagian daun dan menimbulkan bercak-bercak coklat yang dapat menyebar dengan cepat, terutama di lingkungan yang lembab. Jika tidak segera ditangani, infeksi dapat menyebabkan daun mengering, menurunkan efisiensi fotosintesis, dan pada akhirnya menghambat pertumbuhan tanaman. Penyakit ini sering muncul pada musim hujan atau di daerah dengan tingkat kelembaban yang tinggi.",
detailPrevention = "Pencegahan penyakit brown spots dapat dilakukan dengan berbagai cara. Salah satu metode efektif adalah dengan memberikan pupuk yang mengandung tembaga, karena tembaga memiliki sifat fungisida alami yang dapat membantu mengurangi risiko infeksi jamur. Selain itu, penting untuk menjaga kebersihan lahan dengan memastikan sirkulasi udara yang baik di sekitar tanaman, sehingga kelembaban tidak terlalu tinggi. Pemangkasan daun yang terlalu lebat juga diperlukan agar sinar matahari dapat mencapai seluruh bagian tanaman dan mengurangi kemungkinan jamur berkembang. Penggunaan varietas kelapa sawit yang lebih tahan terhadap penyakit juga dapat menjadi strategi jangka panjang dalam mengurangi risiko infeksi.", // detailPrevention = "Pencegahan penyakit brown spots dapat dilakukan dengan berbagai cara. Salah satu metode efektif adalah dengan memberikan pupuk yang mengandung tembaga, karena tembaga memiliki sifat fungisida alami yang dapat membantu mengurangi risiko infeksi jamur. Selain itu, penting untuk menjaga kebersihan lahan dengan memastikan sirkulasi udara yang baik di sekitar tanaman, sehingga kelembaban tidak terlalu tinggi. Pemangkasan daun yang terlalu lebat juga diperlukan agar sinar matahari dapat mencapai seluruh bagian tanaman dan mengurangi kemungkinan jamur berkembang. Penggunaan varietas kelapa sawit yang lebih tahan terhadap penyakit juga dapat menjadi strategi jangka panjang dalam mengurangi risiko infeksi.",
detailRecommendation = "Jika tanaman sudah terinfeksi brown spots, tindakan cepat perlu dilakukan untuk mencegah penyebaran penyakit ke tanaman lain. Salah satu cara yang direkomendasikan adalah menyemprotkan fungisida berbasis tembaga secara berkala, karena tembaga efektif dalam menghambat pertumbuhan jamur penyebab penyakit ini. Penyemprotan harus dilakukan pada pagi atau sore hari untuk memastikan fungisida dapat bekerja secara optimal tanpa cepat menguap akibat sinar matahari. Selain itu, pastikan dosis yang digunakan sesuai dengan anjuran agar tidak merusak tanaman. Jika infeksi sudah parah, pemangkasan daun yang terdampak dapat membantu mengurangi penyebaran spora jamur ke bagian tanaman yang masih sehat.", // detailRecommendation = "Jika tanaman sudah terinfeksi brown spots, tindakan cepat perlu dilakukan untuk mencegah penyebaran penyakit ke tanaman lain. Salah satu cara yang direkomendasikan adalah menyemprotkan fungisida berbasis tembaga secara berkala, karena tembaga efektif dalam menghambat pertumbuhan jamur penyebab penyakit ini. Penyemprotan harus dilakukan pada pagi atau sore hari untuk memastikan fungisida dapat bekerja secara optimal tanpa cepat menguap akibat sinar matahari. Selain itu, pastikan dosis yang digunakan sesuai dengan anjuran agar tidak merusak tanaman. Jika infeksi sudah parah, pemangkasan daun yang terdampak dapat membantu mengurangi penyebaran spora jamur ke bagian tanaman yang masih sehat.",
date = "2025-02-10" // date = "2025-02-10"
), // ),
DiseaseDiagnose( // DiseaseDiagnose(
id = "D-006", // id = "D-006",
diseaseName = "Healthy", // diseaseName = "Healthy",
diseaseExplanation = "Tanaman dalam kondisi sehat tanpa menunjukkan gejala penyakit atau gangguan pertumbuhan. Semua bagian tanaman, mulai dari daun, batang, hingga akar, berkembang dengan baik dan berfungsi secara optimal. Warna daun hijau segar menandakan tanaman mendapatkan nutrisi yang cukup, sementara batang yang kokoh menunjukkan sistem perakaran yang sehat. Tidak ada tanda-tanda infeksi jamur, bakteri, atau serangan hama yang dapat mengganggu pertumbuhan.", // diseaseExplanation = "Tanaman dalam kondisi sehat tanpa menunjukkan gejala penyakit atau gangguan pertumbuhan. Semua bagian tanaman, mulai dari daun, batang, hingga akar, berkembang dengan baik dan berfungsi secara optimal. Warna daun hijau segar menandakan tanaman mendapatkan nutrisi yang cukup, sementara batang yang kokoh menunjukkan sistem perakaran yang sehat. Tidak ada tanda-tanda infeksi jamur, bakteri, atau serangan hama yang dapat mengganggu pertumbuhan.",
diseaseRecommendation = "Untuk menjaga kondisi tanaman tetap sehat, penting untuk terus melanjutkan pola perawatan yang telah dilakukan. Pastikan tanaman mendapatkan nutrisi yang cukup melalui pemupukan yang seimbang dan sesuai dengan kebutuhannya. Selain itu, lakukan pemantauan secara rutin untuk memastikan tidak ada tanda-tanda awal penyakit atau serangan hama yang berpotensi merusak tanaman. Perhatikan juga faktor lingkungan seperti kelembaban, sirkulasi udara, dan intensitas cahaya, karena keseimbangan faktor-faktor ini sangat berpengaruh terhadap kesehatan tanaman dalam jangka panjang.", // diseaseRecommendation = "Untuk menjaga kondisi tanaman tetap sehat, penting untuk terus melanjutkan pola perawatan yang telah dilakukan. Pastikan tanaman mendapatkan nutrisi yang cukup melalui pemupukan yang seimbang dan sesuai dengan kebutuhannya. Selain itu, lakukan pemantauan secara rutin untuk memastikan tidak ada tanda-tanda awal penyakit atau serangan hama yang berpotensi merusak tanaman. Perhatikan juga faktor lingkungan seperti kelembaban, sirkulasi udara, dan intensitas cahaya, karena keseimbangan faktor-faktor ini sangat berpengaruh terhadap kesehatan tanaman dalam jangka panjang.",
detailExplanation = "Tanaman ini berada dalam kondisi optimal tanpa adanya gejala penyakit atau gangguan pertumbuhan. Daun tampak hijau segar, batang kuat, serta sistem perakaran berkembang dengan baik. Tidak ditemukan bercak, layu, atau tanda-tanda serangan hama dan penyakit. Lingkungan tumbuh yang sehat dengan kadar air, nutrisi, dan pencahayaan yang cukup mendukung pertumbuhan tanaman secara maksimal. Tanaman yang sehat juga menunjukkan tingkat fotosintesis yang baik, sehingga mampu menghasilkan energi yang cukup untuk pertumbuhan dan perkembangan.", // detailExplanation = "Tanaman ini berada dalam kondisi optimal tanpa adanya gejala penyakit atau gangguan pertumbuhan. Daun tampak hijau segar, batang kuat, serta sistem perakaran berkembang dengan baik. Tidak ditemukan bercak, layu, atau tanda-tanda serangan hama dan penyakit. Lingkungan tumbuh yang sehat dengan kadar air, nutrisi, dan pencahayaan yang cukup mendukung pertumbuhan tanaman secara maksimal. Tanaman yang sehat juga menunjukkan tingkat fotosintesis yang baik, sehingga mampu menghasilkan energi yang cukup untuk pertumbuhan dan perkembangan.",
detailPrevention = "Untuk menjaga tanaman tetap sehat, penting untuk memastikan kondisi lingkungan tumbuh yang optimal. Faktor utama yang harus diperhatikan adalah ketersediaan air yang cukup tanpa menyebabkan kelebihan kelembaban, karena kondisi yang terlalu lembab dapat memicu pertumbuhan jamur dan bakteri patogen. Selain itu, penggunaan pupuk yang seimbang sesuai dengan kebutuhan tanaman sangat dianjurkan untuk mendukung pertumbuhan yang kuat. Pengendalian hama secara berkala juga diperlukan, baik dengan cara alami maupun menggunakan pestisida ramah lingkungan jika diperlukan. Rotasi tanaman dan sanitasi lahan dapat membantu mencegah munculnya hama dan penyakit yang dapat mengganggu kesehatan tanaman.", // detailPrevention = "Untuk menjaga tanaman tetap sehat, penting untuk memastikan kondisi lingkungan tumbuh yang optimal. Faktor utama yang harus diperhatikan adalah ketersediaan air yang cukup tanpa menyebabkan kelebihan kelembaban, karena kondisi yang terlalu lembab dapat memicu pertumbuhan jamur dan bakteri patogen. Selain itu, penggunaan pupuk yang seimbang sesuai dengan kebutuhan tanaman sangat dianjurkan untuk mendukung pertumbuhan yang kuat. Pengendalian hama secara berkala juga diperlukan, baik dengan cara alami maupun menggunakan pestisida ramah lingkungan jika diperlukan. Rotasi tanaman dan sanitasi lahan dapat membantu mencegah munculnya hama dan penyakit yang dapat mengganggu kesehatan tanaman.",
detailRecommendation = "Untuk mempertahankan kondisi tanaman yang sehat, lakukan perawatan secara rutin dengan memastikan tanaman mendapatkan nutrisi yang cukup melalui pemupukan yang tepat. Pastikan tanaman mendapatkan sinar matahari yang cukup dan memiliki sistem drainase yang baik agar tidak terjadi genangan air yang dapat merusak akar. Selain itu, lakukan pemantauan berkala terhadap kemungkinan munculnya gejala penyakit atau serangan hama agar dapat segera diatasi jika ditemukan tanda-tanda awal gangguan. Dengan menjaga keseimbangan antara faktor lingkungan, nutrisi, dan perlindungan tanaman, kondisi sehat ini dapat dipertahankan dalam jangka panjang.", // detailRecommendation = "Untuk mempertahankan kondisi tanaman yang sehat, lakukan perawatan secara rutin dengan memastikan tanaman mendapatkan nutrisi yang cukup melalui pemupukan yang tepat. Pastikan tanaman mendapatkan sinar matahari yang cukup dan memiliki sistem drainase yang baik agar tidak terjadi genangan air yang dapat merusak akar. Selain itu, lakukan pemantauan berkala terhadap kemungkinan munculnya gejala penyakit atau serangan hama agar dapat segera diatasi jika ditemukan tanda-tanda awal gangguan. Dengan menjaga keseimbangan antara faktor lingkungan, nutrisi, dan perlindungan tanaman, kondisi sehat ini dapat dipertahankan dalam jangka panjang.",
date = "2025-02-10" // date = "2025-02-10"
), // ),
DiseaseDiagnose( // DiseaseDiagnose(
id = "D-007", // id = "D-007",
diseaseName = "Brown Spots", // diseaseName = "Brown Spots",
diseaseExplanation = "Brown spots adalah penyakit yang menyerang daun tanaman kelapa sawit, ditandai dengan munculnya bercak-bercak coklat yang dapat menyebar dengan cepat. Penyakit ini disebabkan oleh jamur Helminthosporium, yang berkembang biak di lingkungan dengan kelembaban tinggi dan sirkulasi udara yang buruk.", // diseaseExplanation = "Brown spots adalah penyakit yang menyerang daun tanaman kelapa sawit, ditandai dengan munculnya bercak-bercak coklat yang dapat menyebar dengan cepat. Penyakit ini disebabkan oleh jamur Helminthosporium, yang berkembang biak di lingkungan dengan kelembaban tinggi dan sirkulasi udara yang buruk.",
diseaseRecommendation = "Untuk mengatasi penyakit brown spots, diperlukan tindakan yang cepat dan tepat agar tidak menyebar ke seluruh bagian tanaman atau ke tanaman lain di sekitarnya. Salah satu langkah utama yang dapat dilakukan adalah menyemprotkan fungisida berbasis tembaga secara berkala, karena tembaga memiliki sifat fungisida yang efektif dalam menghambat pertumbuhan jamur penyebab penyakit ini.", // diseaseRecommendation = "Untuk mengatasi penyakit brown spots, diperlukan tindakan yang cepat dan tepat agar tidak menyebar ke seluruh bagian tanaman atau ke tanaman lain di sekitarnya. Salah satu langkah utama yang dapat dilakukan adalah menyemprotkan fungisida berbasis tembaga secara berkala, karena tembaga memiliki sifat fungisida yang efektif dalam menghambat pertumbuhan jamur penyebab penyakit ini.",
detailExplanation = "Brown spots adalah penyakit yang umum ditemukan pada tanaman kelapa sawit dan disebabkan oleh jamur Helminthosporium. Jamur ini menyerang bagian daun dan menimbulkan bercak-bercak coklat yang dapat menyebar dengan cepat, terutama di lingkungan yang lembab. Jika tidak segera ditangani, infeksi dapat menyebabkan daun mengering, menurunkan efisiensi fotosintesis, dan pada akhirnya menghambat pertumbuhan tanaman. Penyakit ini sering muncul pada musim hujan atau di daerah dengan tingkat kelembaban yang tinggi.", // detailExplanation = "Brown spots adalah penyakit yang umum ditemukan pada tanaman kelapa sawit dan disebabkan oleh jamur Helminthosporium. Jamur ini menyerang bagian daun dan menimbulkan bercak-bercak coklat yang dapat menyebar dengan cepat, terutama di lingkungan yang lembab. Jika tidak segera ditangani, infeksi dapat menyebabkan daun mengering, menurunkan efisiensi fotosintesis, dan pada akhirnya menghambat pertumbuhan tanaman. Penyakit ini sering muncul pada musim hujan atau di daerah dengan tingkat kelembaban yang tinggi.",
detailPrevention = "Pencegahan penyakit brown spots dapat dilakukan dengan berbagai cara. Salah satu metode efektif adalah dengan memberikan pupuk yang mengandung tembaga, karena tembaga memiliki sifat fungisida alami yang dapat membantu mengurangi risiko infeksi jamur. Selain itu, penting untuk menjaga kebersihan lahan dengan memastikan sirkulasi udara yang baik di sekitar tanaman, sehingga kelembaban tidak terlalu tinggi. Pemangkasan daun yang terlalu lebat juga diperlukan agar sinar matahari dapat mencapai seluruh bagian tanaman dan mengurangi kemungkinan jamur berkembang. Penggunaan varietas kelapa sawit yang lebih tahan terhadap penyakit juga dapat menjadi strategi jangka panjang dalam mengurangi risiko infeksi.", // detailPrevention = "Pencegahan penyakit brown spots dapat dilakukan dengan berbagai cara. Salah satu metode efektif adalah dengan memberikan pupuk yang mengandung tembaga, karena tembaga memiliki sifat fungisida alami yang dapat membantu mengurangi risiko infeksi jamur. Selain itu, penting untuk menjaga kebersihan lahan dengan memastikan sirkulasi udara yang baik di sekitar tanaman, sehingga kelembaban tidak terlalu tinggi. Pemangkasan daun yang terlalu lebat juga diperlukan agar sinar matahari dapat mencapai seluruh bagian tanaman dan mengurangi kemungkinan jamur berkembang. Penggunaan varietas kelapa sawit yang lebih tahan terhadap penyakit juga dapat menjadi strategi jangka panjang dalam mengurangi risiko infeksi.",
detailRecommendation = "Jika tanaman sudah terinfeksi brown spots, tindakan cepat perlu dilakukan untuk mencegah penyebaran penyakit ke tanaman lain. Salah satu cara yang direkomendasikan adalah menyemprotkan fungisida berbasis tembaga secara berkala, karena tembaga efektif dalam menghambat pertumbuhan jamur penyebab penyakit ini. Penyemprotan harus dilakukan pada pagi atau sore hari untuk memastikan fungisida dapat bekerja secara optimal tanpa cepat menguap akibat sinar matahari. Selain itu, pastikan dosis yang digunakan sesuai dengan anjuran agar tidak merusak tanaman. Jika infeksi sudah parah, pemangkasan daun yang terdampak dapat membantu mengurangi penyebaran spora jamur ke bagian tanaman yang masih sehat.", // detailRecommendation = "Jika tanaman sudah terinfeksi brown spots, tindakan cepat perlu dilakukan untuk mencegah penyebaran penyakit ke tanaman lain. Salah satu cara yang direkomendasikan adalah menyemprotkan fungisida berbasis tembaga secara berkala, karena tembaga efektif dalam menghambat pertumbuhan jamur penyebab penyakit ini. Penyemprotan harus dilakukan pada pagi atau sore hari untuk memastikan fungisida dapat bekerja secara optimal tanpa cepat menguap akibat sinar matahari. Selain itu, pastikan dosis yang digunakan sesuai dengan anjuran agar tidak merusak tanaman. Jika infeksi sudah parah, pemangkasan daun yang terdampak dapat membantu mengurangi penyebaran spora jamur ke bagian tanaman yang masih sehat.",
date = "2025-02-10" // date = "2025-02-10"
), // ),
DiseaseDiagnose( // DiseaseDiagnose(
id = "D-008", // id = "D-008",
diseaseName = "Healthy", // diseaseName = "Healthy",
diseaseExplanation = "Tanaman dalam kondisi sehat tanpa menunjukkan gejala penyakit atau gangguan pertumbuhan. Semua bagian tanaman, mulai dari daun, batang, hingga akar, berkembang dengan baik dan berfungsi secara optimal. Warna daun hijau segar menandakan tanaman mendapatkan nutrisi yang cukup, sementara batang yang kokoh menunjukkan sistem perakaran yang sehat. Tidak ada tanda-tanda infeksi jamur, bakteri, atau serangan hama yang dapat mengganggu pertumbuhan.", // diseaseExplanation = "Tanaman dalam kondisi sehat tanpa menunjukkan gejala penyakit atau gangguan pertumbuhan. Semua bagian tanaman, mulai dari daun, batang, hingga akar, berkembang dengan baik dan berfungsi secara optimal. Warna daun hijau segar menandakan tanaman mendapatkan nutrisi yang cukup, sementara batang yang kokoh menunjukkan sistem perakaran yang sehat. Tidak ada tanda-tanda infeksi jamur, bakteri, atau serangan hama yang dapat mengganggu pertumbuhan.",
diseaseRecommendation = "Untuk menjaga kondisi tanaman tetap sehat, penting untuk terus melanjutkan pola perawatan yang telah dilakukan. Pastikan tanaman mendapatkan nutrisi yang cukup melalui pemupukan yang seimbang dan sesuai dengan kebutuhannya. Selain itu, lakukan pemantauan secara rutin untuk memastikan tidak ada tanda-tanda awal penyakit atau serangan hama yang berpotensi merusak tanaman. Perhatikan juga faktor lingkungan seperti kelembaban, sirkulasi udara, dan intensitas cahaya, karena keseimbangan faktor-faktor ini sangat berpengaruh terhadap kesehatan tanaman dalam jangka panjang.", // diseaseRecommendation = "Untuk menjaga kondisi tanaman tetap sehat, penting untuk terus melanjutkan pola perawatan yang telah dilakukan. Pastikan tanaman mendapatkan nutrisi yang cukup melalui pemupukan yang seimbang dan sesuai dengan kebutuhannya. Selain itu, lakukan pemantauan secara rutin untuk memastikan tidak ada tanda-tanda awal penyakit atau serangan hama yang berpotensi merusak tanaman. Perhatikan juga faktor lingkungan seperti kelembaban, sirkulasi udara, dan intensitas cahaya, karena keseimbangan faktor-faktor ini sangat berpengaruh terhadap kesehatan tanaman dalam jangka panjang.",
detailExplanation = "Tanaman ini berada dalam kondisi optimal tanpa adanya gejala penyakit atau gangguan pertumbuhan. Daun tampak hijau segar, batang kuat, serta sistem perakaran berkembang dengan baik. Tidak ditemukan bercak, layu, atau tanda-tanda serangan hama dan penyakit. Lingkungan tumbuh yang sehat dengan kadar air, nutrisi, dan pencahayaan yang cukup mendukung pertumbuhan tanaman secara maksimal. Tanaman yang sehat juga menunjukkan tingkat fotosintesis yang baik, sehingga mampu menghasilkan energi yang cukup untuk pertumbuhan dan perkembangan.", // detailExplanation = "Tanaman ini berada dalam kondisi optimal tanpa adanya gejala penyakit atau gangguan pertumbuhan. Daun tampak hijau segar, batang kuat, serta sistem perakaran berkembang dengan baik. Tidak ditemukan bercak, layu, atau tanda-tanda serangan hama dan penyakit. Lingkungan tumbuh yang sehat dengan kadar air, nutrisi, dan pencahayaan yang cukup mendukung pertumbuhan tanaman secara maksimal. Tanaman yang sehat juga menunjukkan tingkat fotosintesis yang baik, sehingga mampu menghasilkan energi yang cukup untuk pertumbuhan dan perkembangan.",
detailPrevention = "Untuk menjaga tanaman tetap sehat, penting untuk memastikan kondisi lingkungan tumbuh yang optimal. Faktor utama yang harus diperhatikan adalah ketersediaan air yang cukup tanpa menyebabkan kelebihan kelembaban, karena kondisi yang terlalu lembab dapat memicu pertumbuhan jamur dan bakteri patogen. Selain itu, penggunaan pupuk yang seimbang sesuai dengan kebutuhan tanaman sangat dianjurkan untuk mendukung pertumbuhan yang kuat. Pengendalian hama secara berkala juga diperlukan, baik dengan cara alami maupun menggunakan pestisida ramah lingkungan jika diperlukan. Rotasi tanaman dan sanitasi lahan dapat membantu mencegah munculnya hama dan penyakit yang dapat mengganggu kesehatan tanaman.", // detailPrevention = "Untuk menjaga tanaman tetap sehat, penting untuk memastikan kondisi lingkungan tumbuh yang optimal. Faktor utama yang harus diperhatikan adalah ketersediaan air yang cukup tanpa menyebabkan kelebihan kelembaban, karena kondisi yang terlalu lembab dapat memicu pertumbuhan jamur dan bakteri patogen. Selain itu, penggunaan pupuk yang seimbang sesuai dengan kebutuhan tanaman sangat dianjurkan untuk mendukung pertumbuhan yang kuat. Pengendalian hama secara berkala juga diperlukan, baik dengan cara alami maupun menggunakan pestisida ramah lingkungan jika diperlukan. Rotasi tanaman dan sanitasi lahan dapat membantu mencegah munculnya hama dan penyakit yang dapat mengganggu kesehatan tanaman.",
detailRecommendation = "Untuk mempertahankan kondisi tanaman yang sehat, lakukan perawatan secara rutin dengan memastikan tanaman mendapatkan nutrisi yang cukup melalui pemupukan yang tepat. Pastikan tanaman mendapatkan sinar matahari yang cukup dan memiliki sistem drainase yang baik agar tidak terjadi genangan air yang dapat merusak akar. Selain itu, lakukan pemantauan berkala terhadap kemungkinan munculnya gejala penyakit atau serangan hama agar dapat segera diatasi jika ditemukan tanda-tanda awal gangguan. Dengan menjaga keseimbangan antara faktor lingkungan, nutrisi, dan perlindungan tanaman, kondisi sehat ini dapat dipertahankan dalam jangka panjang.", // detailRecommendation = "Untuk mempertahankan kondisi tanaman yang sehat, lakukan perawatan secara rutin dengan memastikan tanaman mendapatkan nutrisi yang cukup melalui pemupukan yang tepat. Pastikan tanaman mendapatkan sinar matahari yang cukup dan memiliki sistem drainase yang baik agar tidak terjadi genangan air yang dapat merusak akar. Selain itu, lakukan pemantauan berkala terhadap kemungkinan munculnya gejala penyakit atau serangan hama agar dapat segera diatasi jika ditemukan tanda-tanda awal gangguan. Dengan menjaga keseimbangan antara faktor lingkungan, nutrisi, dan perlindungan tanaman, kondisi sehat ini dapat dipertahankan dalam jangka panjang.",
date = "2025-02-10" // date = "2025-02-10"
), // ),
) )
diseaseData.forEach{ dao.insert(it) } diseaseData.forEach{ dao.insert(it) }
} }

View File

@ -45,20 +45,12 @@ class HistoryDiagnoseAdapter : ListAdapter<HistoryDiagnose, HistoryDiagnoseAdapt
titleResultDiagnosis.text = historyDiagnose.name titleResultDiagnosis.text = historyDiagnose.name
val date = historyDiagnose.date.replace("-", " ") val date = historyDiagnose.date.replace("-", " ")
dateResultDiagnosis.text = date dateResultDiagnosis.text = date
binding.confidenceResultDiagnosis.text = "Confidence: ${confidenceConverter(historyDiagnose.confidence)}" val confidenceFloat = historyDiagnose.confidence.toFloatOrNull() ?: 0f
binding.confidenceResultDiagnosis.text = "Confidence: %.1f%%".format(confidenceFloat)
} }
} }
} }
fun confidenceConverter(confidence: String): String {
val confidenceValue = confidence.toDouble() * 100
return if (confidenceValue % 1 == 0.0) {
confidenceValue.toInt().toString() + "%"
} else {
String.format("%.1f", confidenceValue) + "%"
}
}
interface OnItemClickCallback { interface OnItemClickCallback {
fun onItemClicked(data: HistoryDiagnose) fun onItemClicked(data: HistoryDiagnose)
} }

View File

@ -3,54 +3,54 @@ import android.graphics.Bitmap
import android.util.Log import android.util.Log
import com.example.palmguardapp.ml.Model import com.example.palmguardapp.ml.Model
import org.tensorflow.lite.DataType import org.tensorflow.lite.DataType
import org.tensorflow.lite.support.common.ops.NormalizeOp
import org.tensorflow.lite.support.image.ImageProcessor import org.tensorflow.lite.support.image.ImageProcessor
import org.tensorflow.lite.support.image.TensorImage import org.tensorflow.lite.support.image.TensorImage
import org.tensorflow.lite.support.image.ops.ResizeOp import org.tensorflow.lite.support.image.ops.ResizeOp
import org.tensorflow.lite.support.tensorbuffer.TensorBuffer import org.tensorflow.lite.support.tensorbuffer.TensorBuffer
class ImageClassifier(private val context: Context) { class ImageClassifier(private val context: Context) {
private val imageSize = 224 private val imageSize = 224
private val classes = arrayOf("Brown Spots", "Healthy")
private val imageProcessor = ImageProcessor.Builder() private val imageProcessor = ImageProcessor.Builder()
.add(ResizeOp(imageSize, imageSize, ResizeOp.ResizeMethod.BILINEAR)) .add(ResizeOp(imageSize, imageSize, ResizeOp.ResizeMethod.BILINEAR))
.add(NormalizeOp(0f, 255f))
.build() .build()
fun classifyImage(image: Bitmap): Pair<String, Float>? { fun classifyImage(image: Bitmap): Pair<String, Float>? {
val model = Model.newInstance(context) val model = Model.newInstance(context)
val tensorImage = TensorImage(DataType.FLOAT32) val tensorImage = TensorImage(DataType.FLOAT32)
tensorImage.load(image) val convertedBitmap = image.copy(Bitmap.Config.ARGB_8888, true)
tensorImage.load(convertedBitmap)
val processedImage = imageProcessor.process(tensorImage) val processedImage = imageProcessor.process(tensorImage)
val inputFeature0 = TensorBuffer.createFixedSize(intArrayOf(1, imageSize, imageSize, 3), DataType.FLOAT32) val inputFeature0 = TensorBuffer.createFixedSize(
intArrayOf(1, imageSize, imageSize, 3),
DataType.FLOAT32
)
inputFeature0.loadBuffer(processedImage.buffer) inputFeature0.loadBuffer(processedImage.buffer)
val outputs = model.process(inputFeature0) val outputs = model.process(inputFeature0)
val outputFeature0 = outputs.outputFeature0AsTensorBuffer val outputFeature0 = outputs.outputFeature0AsTensorBuffer
val yPred = outputFeature0.floatArray[0]
val confidences = outputFeature0.floatArray val confidence = (maxOf(yPred, 1 - yPred) * 100).toFloat()
for (i in confidences.indices) { val label = when {
Log.d("ImageClassifier", "Class $i (${classes[i]}): ${confidences[i]}") yPred < 0.5f -> "Brown Spots"
yPred > 0.5f -> "Healthy"
else -> "Uncertain Input"
} }
val maxPos = confidences.indices.maxByOrNull { confidences[it] } ?: -1 Log.d("ImageClassifier", "y_pred: $yPred")
val maxConfidence = confidences[maxPos] Log.d("ImageClassifier", "Label: $label, Confidence: ${String.format("%.1f", confidence)}%")
model.close() model.close()
return if (maxPos >= 0 && maxConfidence > THRESHOLD_CONFIDENCE) { return if (label == "Uncertain Input") {
Pair(classes[maxPos], maxConfidence)
} else {
null null
} else {
Pair(label, confidence)
} }
} }
companion object {
private const val THRESHOLD_CONFIDENCE = 0.5f
}
} }

View File

@ -39,7 +39,8 @@ class DiagnoseDetailActivity : AppCompatActivity() {
binding.tvTitle.text = historyDiagnose.name binding.tvTitle.text = historyDiagnose.name
binding.ivImgTea.setImageURI(Uri.parse(historyDiagnose.imageUri)) binding.ivImgTea.setImageURI(Uri.parse(historyDiagnose.imageUri))
binding.tvConfidence.text = confidenceConverter(historyDiagnose.confidence) val confidenceFloat = historyDiagnose.confidence.toFloatOrNull() ?: 0f
binding.tvConfidence.text = "Confidence: %.1f%%".format(confidenceFloat)
binding.viewPager.adapter = VPAdapter(this, historyDiagnose) binding.viewPager.adapter = VPAdapter(this, historyDiagnose)
binding.btnHsGallery.setOnClickListener { binding.btnHsGallery.setOnClickListener {
val bundle = Bundle().apply { val bundle = Bundle().apply {
@ -69,12 +70,4 @@ class DiagnoseDetailActivity : AppCompatActivity() {
super.onDestroy() super.onDestroy()
} }
fun confidenceConverter(confidence: String): String {
val confidenceValue = confidence.toDouble() * 100
return if (confidenceValue % 1 == 0.0) {
confidenceValue.toInt().toString() + "%"
} else {
String.format("%.1f", confidenceValue) + "%"
}
}
} }

View File

@ -27,6 +27,7 @@ import com.example.palmguardapp.databinding.FragmentHomeBinding
import com.example.palmguardapp.foundation.utils.saveImageToLocalStorage import com.example.palmguardapp.foundation.utils.saveImageToLocalStorage
import com.example.palmguardapp.ui.ViewModelFactory import com.example.palmguardapp.ui.ViewModelFactory
import com.example.palmguardapp.ui.diagnose.DiagnoseDetailActivity import com.example.palmguardapp.ui.diagnose.DiagnoseDetailActivity
import com.example.palmguardapp.ui.errorDetection.ErrorDetectionActivity
import com.example.palmguardapp.ui.listDisease.DiseaseDetailActivity import com.example.palmguardapp.ui.listDisease.DiseaseDetailActivity
import com.google.android.material.snackbar.Snackbar import com.google.android.material.snackbar.Snackbar
import com.yalantis.ucrop.UCrop import com.yalantis.ucrop.UCrop
@ -46,14 +47,14 @@ class HomeFragment : Fragment(R.layout.fragment_home) {
ViewModelFactory.getInstance(requireContext()) ViewModelFactory.getInstance(requireContext())
} }
private val diseaseToId = mapOf( private val diseaseToId = mapOf(
"Algal Leaf" to "D-001", "Brown Spots" to "D-001",
"Anthracnose" to "D-002", "Healthy" to "D-002",
"Bird Eye Spot" to "D-003", // "Bird Eye Spot" to "D-003",
"Brown Blight" to "D-004", // "Brown Blight" to "D-004",
"Gray Light" to "D-005", // "Gray Light" to "D-005",
"Red Leaf Spot" to "D-006", // "Red Leaf Spot" to "D-006",
"White Spot" to "D-007", // "White Spot" to "D-007",
"Healthy" to "D-008" // "Healthy" to "D-008"
) )
private lateinit var cameraLauncher: ActivityResultLauncher<Intent> private lateinit var cameraLauncher: ActivityResultLauncher<Intent>
@ -89,6 +90,9 @@ class HomeFragment : Fragment(R.layout.fragment_home) {
startCrop(it) startCrop(it)
} }
} else { } else {
val selectedImageUri = result.data?.data
Log.d("galleryLauncher", "Selected URI: $selectedImageUri")
Log.d("galleryLauncher", "ini kenapa woy")
showSnackbarError("Permission denied or image selection failed") showSnackbarError("Permission denied or image selection failed")
} }
} }
@ -191,15 +195,19 @@ class HomeFragment : Fragment(R.layout.fragment_home) {
val classifier = ImageClassifier(requireContext()) val classifier = ImageClassifier(requireContext())
val result = classifier.classifyImage(image) val result = classifier.classifyImage(image)
if(result != null) { if (result != null) {
val (diagnosis, confidence) = result val (diagnosis, confidence) = result
Log.d("HomeFragment", "Diagnosis: $result") Log.d("HomeFragment", "Diagnosis: $result")
saveImageAndFetchData(diagnosis, confidence, image) saveImageAndFetchData(diagnosis, confidence, image)
} else { } else {
showSnackbarError("Gambar tidak sesuai, silahkan foto ulang") showSnackbarError("Gambar tidak sesuai, silahkan foto ulang")
val intent = Intent(requireContext(), ErrorDetectionActivity::class.java)
startActivity(intent)
} }
} }
private fun showSnackbarError(message: String) { private fun showSnackbarError(message: String) {
Snackbar.make(binding.root, message, Snackbar.LENGTH_LONG).show() Snackbar.make(binding.root, message, Snackbar.LENGTH_LONG).show()
} }
@ -208,6 +216,7 @@ class HomeFragment : Fragment(R.layout.fragment_home) {
val imageUri = saveImageToLocalStorage(requireContext(), image) val imageUri = saveImageToLocalStorage(requireContext(), image)
val formatter = SimpleDateFormat("dd-MMMM-yyyy", Locale("id", "ID")) val formatter = SimpleDateFormat("dd-MMMM-yyyy", Locale("id", "ID"))
val date = Date() val date = Date()
Log.d("saveImageAndFetchData", "Date: $date")
val dateNow = formatter.format(date) val dateNow = formatter.format(date)
val diseaseId = diseaseToId[diagnosis] val diseaseId = diseaseToId[diagnosis]
// diseaseId?.let { id -> // diseaseId?.let { id ->
@ -302,18 +311,11 @@ class HomeFragment : Fragment(R.layout.fragment_home) {
binding.titleResultDiagnosis.text = historyDiagnose.name binding.titleResultDiagnosis.text = historyDiagnose.name
val date = historyDiagnose.date.replace("-", " ") val date = historyDiagnose.date.replace("-", " ")
binding.dateResultDiagnosis.text = date binding.dateResultDiagnosis.text = date
binding.confidenceResultDiagnosis.text = "Confidence: ${confidenceConverter(historyDiagnose.confidence)}" val confidenceFloat = historyDiagnose.confidence.toFloatOrNull() ?: 0f
binding.confidenceResultDiagnosis.text = "Confidence: %.1f%%".format(confidenceFloat)
binding.cdHomeScreenAnalyze.visibility = View.VISIBLE binding.cdHomeScreenAnalyze.visibility = View.VISIBLE
} }
fun confidenceConverter(confidence: String): String {
val confidenceValue = confidence.toDouble() * 100
return if (confidenceValue % 1 == 0.0) {
confidenceValue.toInt().toString() + "%"
} else {
String.format("%.1f", confidenceValue) + "%"
}
}
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()

View File

@ -27,12 +27,6 @@ class DiseaseDetailActivity : AppCompatActivity() {
private val diseaseToId = mapOf( private val diseaseToId = mapOf(
"Brown Spots" to "D-001", "Brown Spots" to "D-001",
"Healthy" to "D-002", "Healthy" to "D-002",
"Brown Spots" to "D-003",
"Healthy" to "D-004",
"Brown Spots" to "D-005",
"Healthy" to "D-006",
"Brown Spots" to "D-007",
"Healthy" to "D-008"
) )
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {

View File

@ -50,7 +50,7 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:text="Kesalahan Deteksi" /> android:text="Kesalahan Deteksi" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -335,6 +335,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
app:cardCornerRadius="0dp" app:cardCornerRadius="0dp"
android:visibility="gone"
app:strokeColor="@color/greenGeneral" app:strokeColor="@color/greenGeneral"
app:strokeWidth="1dp" app:strokeWidth="1dp"
android:layout_marginTop="@dimen/margin_component" android:layout_marginTop="@dimen/margin_component"