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.

text
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:

text
dP/dt = r * P * (1 - P/K)

Bedah suku-sukunya:

SukuMakna
r * Pmesin pertumbuhan: laju sebanding biomassa, sama seperti eksponensial
P / Krasio pemakaian kapasitas lingkungan, dari 0 (kosong) sampai 1 (penuh)
1 - P/Krem: bernilai 1 saat P kecil, mengecil saat P mendekati K, negatif saat P melampaui K
Kkapasitas 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:

ParameterMaknaSatuanNilai proyekRentang wajar
rlaju pertumbuhan intrinsikper hari0.080.02 - 0.20
Kkapasitas lingkungansatuan biomassa10050 - 150
P0biomassa awal (semai)satuan biomassa10.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.

text
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:

text
t50 = ln(K/P0 - 1) / r

Dengan 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 analitikPemakaian kapasitas
01.00001%
3010.019010%
6055.104255%
9093.117593%
12099.334099%

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:

AsumsiBatas yang ditimbulkan
r konstan sepanjang musimmusim kemarau-hujan dan pemupukan bertahap tidak tergambarkan
K konstankerusakan hama yang menurunkan daya dukung tidak dimodelkan
satu variabel Pstruktur umur, akar-vs-daun, dan kompetisi antar tanaman diabaikan
deterministikfluktuasi cuaca dianggap tidak ada; hasil identik tiap dijalankan
P0 < Kmulai 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.