Tanaman di kebun tumbuh cepat di awal musim, lalu melambat, dan akhirnya berhenti pada ukuran tertentu — petani tahu pola ini tanpa satu rumus pun. Proyek ini menerjemahkan pola tersebut menjadi model matematis yang bisa dijalankan komputer, mulai dari persamaan diferensialnya sampai laporan otomatisnya. Bagian pertama adalah perancangan: kita menurunkan model, memberi makna dan satuan pada tiap parameter, dan menyiapkan alat validasi sebelum satu baris solver ditulis.
Yang kita tetapkan pada bagian ini:
- fenomena dan pertanyaan yang ingin dijawab simulasi,
- model logistik — penurunan dari eksponensial yang tak terbatas,
- parameter dan satuan r, K, P0 beserta rentang nilainya,
- solusi analitik yang kelak menjadi hakim bagi hasil numerik,
- skema simulasi dan asumsi yang membatasi model.
Fenomena: Pertumbuhan yang Melambat #
Amati satu pot tanaman sejak semai. Biomassa naik lambat di minggu pertama, melesat di pertengahan, lalu mendatar meski masih disiram dan dipupuk. Melambatnya bukan kebetulan: cahaya, hara, dan ruang akar menyediakan sumber daya terbatas, dan makin besar tanaman makin mahal biaya tumbuhnya per satuan biomassa baru. Kurvanya berbentuk S.
Dari pola itu lahir tiga pertanyaan praktis yang simulasi ini harus jawab. Pertama, berapa biomassa pada akhir musim (hari ke-120)? Kedua, kapan pertumbuhan paling cepat — momen terbaik memberi perhatian ekstra? Ketiga, bagaimana jawaban kedua-duanya bergeser bila laju pertumbuhan atau kapasitas lingkungan berubah? Pertanyaan ketiga itulah alasan Bagian 4 menyapu grid parameter. Keempat: hasil mana yang bisa dipercaya tanpa eksperimen sungguhan? Jawabannya menuntut model yang divalidasi — di situlah solusi analitik pada bagian ini berperan.
Dari Eksponensial ke Logistik #
Model paling sederhana untuk pertumbuhan adalah eksponensial: laju perubahan biomassa sebanding dengan biomassa itu sendiri.
dP/dt = r * P → P(t) = P0 * exp(r*t)Model ini jujur untuk beberapa hari pertama, tapi bohong untuk satu musim. Dengan r = 0.08 per hari dan P0 = 1, eksponensial memprediksi biomassa 147 kali lipat kapasitas pot yang realistis pada hari ke-120. Tidak ada rem. Model yang menambahkan rem disebut logistik:
dP/dt = r * P * (1 - P/K)Bedah suku-sukunya:
| Suku | Makna |
|---|---|
r * P | mesin pertumbuhan: laju sebanding biomassa, sama seperti eksponensial |
P / K | rasio pemakaian kapasitas lingkungan, dari 0 (kosong) sampai 1 (penuh) |
1 - P/K | rem: bernilai 1 saat P kecil, mengecil saat P mendekati K, negatif saat P melampaui K |
K | kapasitas lingkungan: batas asimtotik yang tidak bisa dilampaui secara permanen |
Perilakunya persis pola kebun. Saat P jauh di bawah K, rem hampir 1 dan pertumbuhan nyaris eksponensial. Saat P tepat K, rem bernilai 0 dan pertumbuhan berhenti. Bila P somehow melewati K (misalnya pemupukan berlebih menaikkan biomassa di atas daya dukung), rem menjadi negatif dan biomassa menyusut kembali — model berkoreksi diri.
Parameter dan Satuan #
Tiga parameter mengendalikan seluruh kurva, dan semuanya harus membawa satuan yang konsisten:
| Parameter | Makna | Satuan | Nilai proyek | Rentang wajar |
|---|---|---|---|---|
r | laju pertumbuhan intrinsik | per hari | 0.08 | 0.02 - 0.20 |
K | kapasitas lingkungan | satuan biomassa | 100 | 50 - 150 |
P0 | biomassa awal (semai) | satuan biomassa | 1 | 0.5 - 5 |
Satuan biomassa kita biarkan generik (“satuan”) agar simulasi bebas di-skala: bisa gram per pot, ton per hektar, atau persen tutupan kanopi — yang penting K dan P0 memakai satuan yang sama. Waktu selalu hari. Nilai r = 0.08 per hari berarti biomassa berlipat dua setiap ln(2)/r ≈ 8.7 hari selama rem belum bekerja — masuk akal untuk tanaman musiman yang cepat tumbuh. Rentang 0.02-0.20 menampung tanaman lambat (kayu-kayuan) sampai sayuran daun yang agresif. K = 100 satuan memilih skala yang enak dibaca: persentase pemakaian kapasitas tinggal P dibaca langsung sebagai persen.
Solusi Analitik sebagai Alat Validasi #
Keberuntungan model logistik: persamaannya punya solusi eksak yang bisa ditulis dalam satu baris.
P(t) = K / (1 + (K/P0 - 1) * exp(-r*t))Dari solusi itu kita peroleh juga rumus waktu saat biomassa mencapai setengah kapasitas — momen kunci yang kita sebut t50:
t50 = ln(K/P0 - 1) / rDengan parameter proyek (r = 0.08, K = 100, P0 = 1), solusi analitik memberi patokan berikut — angka-angka ini murni hitungan rumus, tanpa komputer:
| t (hari) | P analitik | Pemakaian kapasitas |
|---|---|---|
| 0 | 1.0000 | 1% |
| 30 | 10.0190 | 10% |
| 60 | 55.1042 | 55% |
| 90 | 93.1175 | 93% |
| 120 | 99.3340 | 99% |
Membaca kebalikannya: P menyentuh 30% kapasitas pada hari ke-46.85, tepat 50% pada hari ke-57.44 (t50 = ln(99)/0.08), dan 70% pada hari ke-68.03. Rumus t50 sekaligus jadi alat diagnosis: bila simulasi numerik Bagian 2 melaporkan t50 yang jauh dari 57.44, kesalahannya pasti ada di kode atau toleransi — bukan di model.
Skema Simulasi #
Seluruh proyek mengalir dalam satu pipa: parameter masuk ke model, model diintegrasikan solver, hasil divalidasi, lalu dianalisis dan dilaporkan.
Diagram itu juga adalah peta berkas src/: satu kotak kecil = satu fungsi kecil. Cabang validasi digambar sebagai keputusan karena memang begitu fungsinya di tests — simulasi yang gagal divalidasi tidak boleh dianalisis lebih lanjut.
Asumsi dan Batas Model #
Model sesederhana logistik hanya jujur di dalam pagar asumsinya. Pagar itu perlu dituliskan, bukan disembunyikan:
| Asumsi | Batas yang ditimbulkan |
|---|---|
| r konstan sepanjang musim | musim kemarau-hujan dan pemupukan bertahap tidak tergambarkan |
| K konstan | kerusakan hama yang menurunkan daya dukung tidak dimodelkan |
| satu variabel P | struktur umur, akar-vs-daun, dan kompetisi antar tanaman diabaikan |
| deterministik | fluktuasi cuaca dianggap tidak ada; hasil identik tiap dijalankan |
| P0 < K | mulai dari semai sehat; populasi yang sudah overload di luar cakupan |
Batas-batas ini bukan alasan menolak model. Model sederhana yang divalidasi ketat, dianalisis jeli, dan dibaca dengan kesadaran batasnya justru lebih bisa dipercaya daripada model rumit yang tak pernah dicek — dan tiap asumsi yang dilanggar dunia nyata adalah kandidat pembaruan model: cara model tumbuh dari sederhana ke realistis tanpa kehilangan kepercayaan. Daftar asumsi di atas sekaligus bahan mentah bagian Ide Pengembangan di Bagian 4.
Rancangan sudah lengkap: fenomena, persamaan, parameter, hakim analitik, dan arsitektur. Bagian 2 mengubah persamaan dP/dt = r*P*(1 - P/K) menjadi kode yang berjalan — mulai dari fungsi model tiga baris sampai panggilan ode45 yang deterministik.