1. Pendahuluan
Bertani modern dan pertanian semakin mengandalkan otomasi untuk mengoptimalkan penggunaan sumber daya, terutama air — sumber daya yang langka di banyak wilayah. Sebuah pengendali irigasi cerdasmengotomatisasi penyiraman berdasarkan kondisi tanah secara real-time daripada menggunakan timer tetap, mengurangi pemborosan, mencegah penyiraman berlebihan atau kurang, serta mendukung pertumbuhan tanaman yang lebih sehat.
Studi kasus ini berfokus pada pemodelan perilaku sistem semacam itu menggunakan diagram mesin status UML (juga disebut diagram statechart). Diagram ini menangkap siklus hidup sistem, titik keputusan, dan respons terhadap peristiwa seperti pembacaan kelembapan, waktu habis, dan intervensi pengguna.
Desain ini menggunakan PlantUMLsintaks, serupa dengan contoh kedai kopi yang disediakan, yang secara elegan memodelkan status komposit, penjaga (guards), tindakan, serta jalur kesalahan/pemulihan.
2. Pernyataan Masalah & Persyaratan
Sebuah pengendali irigasi otomatis untuk taman rumah atau rumah kaca kecil harus:

- Memulai dalam mode Siagamode sebagian besar waktu.
- Berdasarkan jadwal secara berkala bangun (pemicu timer) untuk memeriksa kondisi.jadwal(pemicu timer) untuk memeriksa kondisi.
- Memasuki status Menginderauntuk membaca tingkat kelembapan tanah (melalui sensor kapasitif atau resistif).
- Jika kelembapan < 30% (ambang batas kering yang dapat dikonfigurasi), mulai Menyiramdengan membuka katup solenoid atau mengaktifkan pompa.
- Jika kelembapan ≥ 30%, kembali ke Siaga (tidak perlu penyiraman).
- Saat Menyiram, terus-menerus (atau secara berkala) pantau kelembapan.
- Hentikan penyiraman dan tutup katup ketika:
- Kelembapan mencapai 80% (ambang basah yang dapat dikonfigurasi) → target tercapai.
- Sebuah Waktu habis Keselamatan habis (misalnya 30 menit) → mencegah banjir, pecahnya pipa, atau masalah listrik jika sensor gagal.
- Setelah menghentikan penyiraman, pindah ke Shutdown keadaan.
- Dalam Shutdown, tunggu konfirmasi manual (tekan tombol atau perintah aplikasi) sebelum kembali ke Siaga — ini memungkinkan pengguna memeriksa sistem atau mengganti jika diperlukan.
- Kelola kesalahan secara baik (misalnya, kegagalan sensor, katup macet) dengan beralih ke keadaan Kesalahan keadaan dengan opsi pemulihan.
Perilaku tambahan yang diinginkan (dipertahankan sederhana di sini):
- Tidak ada penyiraman selama jam-jam tertentu (ditangani oleh jadwal/waktu).
- Pencatatan atau notifikasi berada di luar cakupan mesin keadaan inti ini.
3. Konsep Mesin Keadaan Kunci yang Digunakan
- Keadaan: Idle/Standby, Mendeteksi, Irigasi, Mati, Kesalahan.
- Status komposit: Irigasi mencakup logika pemantauan internal (meskipun dibuat datar di sini untuk kemudahan).
- Transisi:
- Dipicu oleh peristiwa (timer, pembacaan kelembapan, waktu habis).
- Dilindungi oleh kondisi [kelembapan < 30%], [kelembapan >= 80%].
- Tindakan: /buka_katup(), /tutup_katup(), /notifikasi_pengguna(), dll.
- Pseudostate awal / akhir: [*] untuk awal/akhir.
- Transisi diri dan lingkaran pemulihan.
4. Diagram Status dalam PlantUML
Di bawah ini adalah kode PlantUML lengkap yang menerapkan perilaku yang dijelaskan. Ini mengikuti konvensi dari contoh kedai kopi (penyempurnaan skinparam, status komposit di tempat yang sesuai, penjaga dalam [], tindakan dengan /).
@startuml
skinparam {
‘ Gaya keseluruhan
‘ Warna
WarnaPanah #333333
WarnaFontPanah #333333
WarnaLatarBelakang #FFFFFF
WarnaBatas #333333
‘ Gaya status
Status {
WarnaBatas #005073
WarnaLatarBelakang #E6F5FF
WarnaFont #005073
}
}
[*] –> Siaga
Siaga –> Pemantauan : timer_triggers()
Pemantauan –> Irigasi : kelembapan_tanah < 30%
Pemantauan –> Siaga : kelembapan_tanah >= 30%
Irigasi –> Shutdown : kelembapan_tanah >= 80% ATAU safety_timeout()
Irigasi –> Shutdown : safety_timeout() // Perlindungan timeout cadangan
Shutdown –> Siaga : user_confirms_reset()
Siaga –> [*]
@enduml

Penjelasan Diagram
- Siaga — Status default hemat daya/idle.
- Pemantauan — Pemeriksaan cepat yang dipicu timer; menghindari penyiraman yang tidak perlu.
- Irigasi (komposit) — Tahap penyiraman aktif dengan aktivitas bawah internalPenyiraman aktivitas bawah.
- Keluar saat mencapai kelembapan target atau timeout keselamatan.
- Shutdown — Status tahan pasca-penyiraman yang memerlukan konfirmasi untuk melanjutkan otomasi (fitur keselamatan).
- Kesalahan — Status penahanan kesalahan dengan transisi pemulihan manual.
5. Alasan Desain & Manfaat
- Konservasi air — Hanya menyiram saat benar-benar dibutuhkan (berbasis kelembapan tanah alih-alih berbasis waktu).
- Pencegahan banjir — Kondisi keluar ganda dari Irigasi (target kelembapan + timeout).
- Keselamatan dan kendali pengguna — Konfirmasi manual setelah berhenti tidak normal mencegah restart otomatis setelah masalah potensial.
- Ekstensibilitas — Mudah menambahkan status (misalnya Hujan Terdeteksi, Baterai Rendah, Mode Musim Dingin) atau menyesuaikan ambang batas.
- Kompleksitas rendah — Rata di mana-mana jika memungkinkan, komposit hanya jika pengelompokan logis menambah kejelasan (Penyiraman).
Desain ini menyeimbangkan ketahanan, keamanan, dan kesederhanaan — sesuai untuk implementasi mikrokontroler tertanam (Arduino, ESP32, dll.).
6. Kesimpulan
Mesin statusMesin status menyediakan formalisme yang sangat baik untuk memodelkan sistem kontrol reaktif seperti pengendali irigasi cerdas. Dengan mendefinisikan secara jelas status, peristiwa, penjaga, dan tindakan, insinyur dapat memahami perilaku sistem, kasus-kasus ekstrem, dan pemulihan kesalahan sebelum menulis kode.
Representasi PlantUML di atas berfungsi sebagai dokumentasi sekaligus gambaran rancangan untuk implementasi. Menghasilkan gambar (melalui alat PlantUML atau server online) menghasilkan diagram yang bersih dan profesional siap untuk ulasan kebutuhan, pembuatan kode, atau pengajaran konsep UML.
Ekstensi masa depan dapat mencakup:
- Integrasi API cuaca (lewatkan pemantauan jika prakiraan hujan).
- Beberapa zona dengan ambang kelembapan per zona.
- Notifikasi aplikasi seluler saat timeout atau terjadi kesalahan.
Studi kasus ini menunjukkan bagaimana masalah otomasi yang tampaknya sederhana sangat diuntungkan oleh pemodelan berbasis status yang terstruktur.
- Panduan Lengkap Langkah demi Langkah tentang Mesin Status Printer 3D: Panduan ini menerapkan konsep mesin status pada sistem pencetakan 3D, yang menjelaskan logika operasional dan jalur otomasi mereka.
- Alat Diagram Mesin Status Interaktif: Alat berbasis web khusus untuk membuat dan mengedit diagram mesin status yang memanfaatkan kemampuan GenAI untuk pemodelan perilaku secara real-time.
- Memahami Diagram Mesin Status dalam UML: Tutorial ini menyediakan gambaran menyeluruhgambaran menyeluruhtentang pemodelan perilaku sistem menggunakan diagram mesin keadaan dalam UML.
- Panduan Lengkap tentang Diagram Mesin Keadaan UML dengan AI: Sumber ini memberikan tinjauan mendalam tentang penggunaanalat yang didukung AIuntuk memodelkan perilaku objek secara akurat dengan diagram mesin keadaan UML.
- Cara Menggambar Diagram Mesin Keadaan dalam UML?: Tutorial ini memberikan petunjuk rinci untuk membuat diagram dan menamai transisi untuk memodelkanriwayat entitas dan peristiwa.
- Menguasai Diagram Keadaan dengan Visual Paradigm AI: Panduan untuk Sistem Tol Otomatis: Panduan ini memberikan panduan langkah demi langkah tentang penggunaandiagram keadaan yang ditingkatkan AIuntuk memodelkan dan mengotomatisasi logika kompleks yang dibutuhkan untuk perangkat lunak sistem tol.
- Tutorial Diagram Mesin Keadaan: Tutorial ini menjelaskansimbol dan sintaksyang dibutuhkan untuk memodelkan perilaku dinamis dari objek kelas individu, kasus penggunaan, dan seluruh sistem.
- Visual Paradigm AI Suite: Panduan Lengkap tentang Alat Pemodelan Cerdas: Ringkasan ini menjelaskan bagaimana platformAI Chatbot mendukung pemodelan teknis, termasuk mesin keadaan dan diagram perilaku lainnya.
- Visual Paradigm – Alat Diagram Mesin Keadaan UML: Ringkasan tentang alat daring yang kaya fitur yang dirancang untuk arsitek untukmembangun, mengedit, dan mengekspor model mesin keadaan presisimenggunakan antarmuka berbasis cloud.
- Tutorial Cepat Diagram Keadaan: Kuasai Mesin Keadaan UML dalam Beberapa Menit: Tutorial ramah pemula untuk membuat dan memahami diagram keadaan, dengan fokus padakonsep inti dan teknik pemodelan praktis.