1. Pendahuluan
Pemodelan matematika merupakan suatu aktivitas mentransformasi persoalan dunia nyata
ke dalam ide-ide matematis dan kemudian menentukan solusi (secara matematis) serta
diakhiri dengan merepresentasikan solusi yang diperoleh terhadap masalah yang diberikan.
Dalam diskusi kita, ada dua aktivitas utama yang perlu diperhatikan dalam pemodelan
matematika, yaitu aktivitas matematis yang berkaitan dengan pemodelan matematika dan
bagaimana merancang pembelajaran (problem based) untuk siswa (SMP atau SMA).
Dalam pembahasan ini, kita akan mencoba untuk mengintegrasikan teknologi dalam
membangun atau menentukan solusi dari model matematika. Salah satu program yang
dapat digunakan dalam kegiatan ini yaitu GeoGebra. GeoGebra dipilih karena merupakan
program yang sudah banyak dikenal dan digunakan, baik oleh siswa, guru ataupun umum.
Model matematika yang akan dibahas juga merupakan model-model matematika
sederhana yang dapat digunakan di tingkat sekolah maupun universitas. Diskusi ini
mengikuti buku karangan Jonas Hall dan Thomas Lingefjärd (2017) dengan judul
“Mathematical Modelling : Applications with GeoGebra”. Fokus pembahasan diskusi ini
adalah tentang model Diskrit.
Pada masalah ini kita akan menentukan perbandingan luas suatu persegi dengan
persegi yang berada di dalam persegi tersebut dengan konstruksi tertentu. Misalkan
diberikan suatu persegi ABCD. Masing-masing sisi persegi tersebut ditentukan titik
tengahnya. Kemudian dibentuk suatu persegi yang sisi-sisinya merupakan
perpotongan dari ruas-ruas garis yang ditarik dari masing-masing titik sudut persegi
ABCD ke titik tengah sisi dihadapannya. Sebuah pertanyaan logis yang dapat
dibangun adalah berapa perbandingan luas persegi yang dikonstruksi tersebut
dengan luas persegi awal? Lebih jauh, bagaimana jika konstruksinya tidak hanya
menggunakan titik tengah sisi persegi awal, tetapi juga titik-titik atas perbandingan
tertentu? Apakah terdapat pola hasil perbandingannya?
1 1 1
Gambar 3. Kontruksi persegi dengan perbandingan , ,
2 3 7
Pertanyaan-pertanyaan tersebut akan kita bahas pada bagian ini. Bagian pertama
adalah bagaimana mengkonstruksi suatu titik yang membagi suatu ruas garis
dengan perbandingan tertentu dalam GeoGebra. Dalam Geometri Analitik Bidang,
konsep ini tentunya sudah dibahas. Jika A( x1 , y1 ) dan B( x2 , y2 ) maka koordinat
titik C ( xc , yc ) yang berada diantara titik A dan B sedemikian sehingga
AC : CB m : n , yaitu :
nx1 mx2 ny my2
xc dan yc 1 .
mn mn
Dalam Geogebra hanya disediakan fitur untuk membagi ruas garis menjadi dua
bagian sama panjang (midpoint or center). Jika titik C di atas tidak terletak tepat di
tengah-tengan A dan B, perlu beberapa kontruksi yang perlu dilakukan.
Konstruksi menggunakan Lingkaran
Misalkan titik A( x1 , y1 ) dan B( x2 , y2 ) . Kita ingin membagi ruas garis AB
menjadi 3 bagian yang sama panjang. Pertama-tama, gambar ruas garis AB
pada Geogebra. Selanjutnya, melalui titik A buatlah sebarang garis yang
lain sehingga tidak berimpit dengan ruas garis AB. Buatlah lingkaran yang
berpusat di titik A dengan jari-jari sebarang. Kemudian tentukan titik
potong lingkaran dengan garis yang dibuat sebelumnya. Dari salah satu titik
potongnya, buat kembali lingkaran dengan pusat di titik potong tersebut dan
jari-jari yang sama dengan lingkaran sebelumnya. Lakukan hal yang sama
sehingga terbentuk tiga lingkaran. Pada pusat lingkaran terakhir, hubungkan
dengan titik B. Selanjutnya melalui titik-titik pusat lingkaran yang lain
dibuat garis sejajar dengan garis yang melalui titik pusat lingkaran terakhir
dengan titik B. Garis-garis tersebut akan memotong ruas garis AB. Titik-
titik potong tersebut merupakan titik-titik yang membagi ruas garis AB
menjadi 3 bagian yang sama panjang. Jika ingin membagi ruas garis AB
menjadi n bagian, langkah di atas bisa diulangi sampai membuat n buah
lingkaran.
Nilai-nilai yang ada dalam SpreadSheet di atas adalah nilai-nila rasio antara persegi
dalam dan persegi yang asli (Poly2/Poly1).
Eksplorasi masalah ini bisa dikembangkan lebih jauh, yaitu bagaimana jika kita
tentukan rasio kebalikannya, yaitu Poly1/Poly2. Hasilnya dapat kita lihat pada
gambar berikut.
Gambar 7. Spreadsheet Rasio Poly1/Poly2
Hal yang menarik dari data di atas adalah pada kolom B semua hasilnya berupa
bilangan bulat. Adakah pola bilangan-bilangan bulat tersebut? (sebagai latihan :
Lihat Analisi Barisan Bilangan).
C. Graf
Salah satu topik yang menarik dalam model diskrit adalah teori Graf. Teori Graf
mempunyai banyak penerapan dalam berbagai bidang, misalnya jaringan, optimasi
rute, penjadwalan, dan lain-lain. Geogebra dapat digunakan untuk membuat suatu
graf, baik secara manual ataupun secara otimatis (random). Jika graf yang akan
dibuat secara manual, maka hanya perlu memanfaatkan objek titik (point) dan ruas
garis (segment). Dalam modul ini, kita akan membuat graf secara otomatis, yaitu
titik-titk (vertex) dan sisi-sisi (edges) dibuat secara acak pada Geogebra. Fasilitas
yang digunakan, yaitu Scripting. Scripting pada Geogebra ada tiga model, yaitu 1)
On Click, 2) On Update, dan 3) Global Java Script.
On Click, script bekerja saat object yang dipilih di klik.
On Update, script bekerja saat nilai atau kareakteristik (properties) dari
suatu objek berubah.
Global Java Script, khusus untuk script dalam bahasa pemrograman java.
Tutorial lengkap untuk penggunaan scripting pada Geogebra dapat diakses melalui
tautan https://wiki.geogebra.org/en/Tutorial:Introduction_to_GeoGebraScript.
Langkah-langkah membuat graf pada Geogera, yaitu sebagai berikut.
1. Buatlah sebuah button yang akan diinputkan script untuk membuat graf.
2. Membuat posisi titik-tik graf secara acak, dalam kasus ini akan dibuat graf
dengan 10 titik. Script yang diinput adalah sebagai berikut.
for (var i = 0; i < 10; i++) {
ggbApplet.evalCommand("V_" + i + "=(random()*10,random()*10)");
ggbApplet.setPointSize("V_{" + i + "}", 5);
}
3. Membuat sisi-sisi pada graf. Setiap dua buah titik tidak harus dihubungkan oleh
sisi. Konsep peluang dapat digunakan untuk kemungkinan keterhubungan antar
titik. Semakin besar nilai yang diiputkan maka setiap dua titik mempunyai
kemungkinan yang semakin besar juga dihubungkan oleh sisi. Script yang
diinputkan adalah sebagai berikut.
for (var q = 0; q < i; q++) {
var r = Math.random();
for (var w = 0; w < i; w++) {
var t = Math.random();
if (ggbApplet.exists("e_{" + w + ", " + q + "}")) {
break;
} else {
if (r < 0.7 && t < 0.7) {
if (w == q) {
break;
} else {
ggbApplet.evalCommand("e_{" + q + ", " + w + "}=Segment[V_{"
+ q + "},V_{" + w + "}]");
}
} else {
break;
}
}
}
}
Jika ingin membersihkan tampilan geogebra, kita dapat menambahkan satu button
lagi dengan diinputkan script sebagai berikut.
for (var i = 0; i < 10; i++) {
ggbApplet.deleteObject("V_{" + i + "}");
}
Hasil graf dengan script di atas adalah sebagai berikut.
Gambar 7. Graf di Geogebra
Titik api semula hanya satu (kiri), kemudian seiring berjalan waktu kebakaran mulai
menyebar. Warna kuning akan perlahan-lahan menjadi merah (api semakin
membesar). Setelah api menghabiskan vegetasi lahan perlahan-lahan api akan
padam pada daerah tersebut yang ditandai dengan warna hitam.
Buatlah model matematika untuk menentukan perbandingan luas daerah dalam segitiga
yang terbentuk dengan luas daerah segitiga semula.
DAFTAR PUSTAKA
Barto, Andrew G. (1991). Discrete and Continuous Models. New York : Springer
Science+Business Media.
Jonas Hall dan Thomas Lingefjärd. 2017. Mathematical Modelling Applications with
GeoGebra. New Jersey : John Wiley and Sons, Inc.
Setiap wilayah yang akan dipetakan ditinjau dari segala arah mata angin. Representasi
grafis peta penyebaran digambarkan oleh setiap sel yang terbakar dari arah tertentu. Setiap
wilayah atau sel dikelilingi oleh delapan sel lainnya. Besarnya probabilitas suatu sel terbakar dari
arah tertentu, bergantung pada nilai variabel setiap arah mata angin.
Untuk setiap sel atau wilayah yang tidak terbakar, ditetapkan nilai probabilitas acak di antara 0
dan 1. Jika jumlah intensitas dan probabilitas melebihi angka tersebut, berarti api telah menyebar
pada sel tersebut dan intensitas sel tersebut berubah dari 𝑖 = 0 menjadi 𝑖 = 0,5.
Setelah sel terbakar, api tidak akan terpengaruh oleh faktor sekitarnya lagi. Tahapan api
membakar suatu sel dilihat berdasarkan instensitanya yang akan mengalami perubahan dari
𝑖 = 0 menjadi 𝑖 = 0,5 (api mulai membakar); kemudian 𝑖 = 1 (api membara); api mulai mereda
𝑖 = 0,3 hingga menuju 𝑖 = 0,01.
d) Selanjutnya pembuatan probabilitas suatu sel terbakar dari arah tertentu, yang
bergantung pada nilai variabel setiap arah mata angin.
East (E) = 0,2R West (W) = 0,2R
North East (NE) = 0,3R South West (SW) = 0,1R
North (N) = 0,4R South (S) = 0,05R
North West (NW) = 0,3R South East (SE) = 0,1R
dengan R tingkat kekeringan (poin b)
Sampai dengan tahap ketiga telah tersusun GUI sederhana dan representasi grafis dari Area III.
Namun diperlukan perintah/script yang digunakan untuk mengatur ulang nilai-nilai di cell lahan di
Area I (C3:V22). Karena nilai-nilai pada cell Area I memengaruhi representasi pada cell Area III.
Selain itu juga diperlukan script untuk memperbaharui nilai-nilai pada cell lahan Area II (C27:V46)
setiap kali terjadi perubahan waktu (Time). Script tersebut berlaku untuk setiap cell, dan terdapat
400 cell maka pembuatan script melibatkan bahasa pemrograman lain (Python) untuk
mempercepat penulisan script jumlah banyak
ggbApplet.evalCommand("C27=CopyFreeObject[If[C3==0.01,0.01,If[C3==0.
1,0.01,If[C3==1,0.3,If[C3==0.5,1,If[C3==0,If[RandomUniform[0,1]<B2*N
W+C2*N+D3*NE+B3*W+D3*(E)+B4*SW+C4*S+D4*SE, 0.5, 0]]]]]]]") ….
ggbApplet.evalCommand("V46=CopyFreeObject[If[V22==0.01,0.01,If[V22==
0.1,0.01,If[V22==1,0.3,If[V22==0.5,1,If[V22==0,If[RandomUniform[0,1]
<U21*NW+V21*N+W22*NE+U22*W+W22*(E)+U23*SW+V23*S+W23*SE, 0.5,
0]]]]]]]")
Penggalan output di atas (perintah untuk cell C27 yang terletak di Area II) merupakan
aturan tahapan penyebaran api (proses dari 𝑖 = 0,5 hingga 𝑖 = 0,01) yang dinyatakan
sebagai serangkaian kondisi IF bersarang. Nilai tersebut diperhitungkan berdasarkan
probabilitas cell terbakar dari arah tertentu (perintah baris 15-23) yang variabelnya telah
ditentukan sebelumnya. Seluruh output (400 data) akan akan diinputkan pada Scripting
(JavaScript) slider Time.
b) Meta-script II
Berikut fungsi yang disusun pada python. Penomoran di bawah ini hanya sebagai
petunjuk baris perintah.
1. from __future__ import print_function
2. cols1 = ["", "A", "B", "C", "D", "E", "F", "G", "H"]
3. cols2 = ["I", "J", "K", "L", "M", "N", "O", "P", "Q"]
4. cols3 = ["R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
5. cols = cols1 + cols2 + cols3
6. for v in range(3, 23):
7. for r in range(3, 23):
8. print ('ggbApplet.evalCommand("', end='', sep='')
9. print (c[v], r, '=CopyFreeObject[', end='', sep='')
10. print (c[v], r+24, ']")', sep='')
1. Titik api diasumsikan berawal dari wilayah/cell E10. Klik button Start @E10, sehingga
dapat dilihat pada spreadsheet pada cell E10 dari 0 berubah menjadi 0.5 (intensitas awal
api membakar vegetasi).
2. Selanjutnya klik tombol Start untuk melihat pergerakan api