Tutorial ini memimpin anda melalui proses membangun model secara komplet, dari tahap ke tahap, dengan penjelasannya.
Agen dan Prosedur
Tutorial #2 mengajarkan bagaimana menggunakan “command center” dan “Agent monitor” untuk melihat dan mengubah agen dan bagaimana membuat mereka mengerjakan tugas. Sekarang anda siap untuk belajar tentang isi utama dari NetLogo: Coding.
Anda melihat bahwa agen di NetLogo dibagi menjadi patches, turtles, links dan observer. Patches adalah grid stasioner dan tertata. Turtles bergerak di sepanjang grid. Links menghubungkan dua turtles. Observer melihat semua yang berlangsung dan mengerjakan apa yang turtles, patches, dan links tidak dapat lakukan sendiri.
Kesemua empat tipe agen dapatn menjalankan perintah NetLogo. Keempatnya juga dapat menjalankan “prosedur”. Sebuah prosedur menggabungkan rangkaian perintah NetLogo ke dalam perintah tunggal yang kita tentukan.
Sekarang kita akan belajar bagaimana prosedur menggerakkan turtles, makan, reproduksi dan mati. Anda juga akan belajar bagaimana membuat monitor, slider, dan plot. Model yang kita buat adalah model ekosistem sederhana tidak seperti Wolf Sheep Predation dari Tutorial #1.
Membuat Tombol Setup
Untuk memulai model baru, pilih “New” dari menu File.
• Klik ikon “Add” pada tab Interface di bagian atas..
• Selanjutnya pilih Add > Button.
• Klik dimanapun anda inginkan pada layar putih di area Interface.
• Dialog box untuk Button terbuka. Ketik setup di box berlabel “Commands”.
• Klik OK.
Sekarang anda memiliki tombol “Setup”. Menekan tombol “setup” akan menjalankan prosedur bernama “setup”. Sebuah prosedur adalah urutan perintah NetLogo yang kita tetapkan. Kita akan melakukannya nanti. Karena kita belum memberikan prosedur, maka tombol setup akan memiliki tulisan berwarna merah.
Kalau anda ingin memeriksa pesan eror aktual, klik tombol setup tersebut. Sekarang kita akan membuat prosedur “setup” agar pesan eror menghilang.
• Switch to the Code tab.
• Type the following:
• to setup
• clear-all
• create-turtles 100 [ setxy random-xcor random-ycor ]
• reset-ticks
• end
Hasil yang kita harapkan adalah sebagaimana berikut:
Perhatikan bahwa beberapa baris masuk ke dalam. Umumnya orang merasa bahwa cara ini memudahkan mereka. Tentunya ini tidak diharuskan, tapi apabila anda merasa cara ini akan mempermudah dalam membaca dan mengubah kode, silahkan gunakan cara ini.
Prosedur kita saat ini dimulai dengan perintah to dan diakhiri dengan end. Setiap prosedur akan selalu diawali dan diakhiri dengan kata ini.
Mari melihat apa yang anda ketik dan apa artinya setiap baris tersebut bagi prosedur anda.
• to setup memulai prosedur bernama “setup”.
• clear-all mereset tampilan (world) kembali ke awal, pada posisi kosong. Semua patches berubah menjadi hitam dan setiap turtles yang mungkin anda buat akan menghilang. Pada dasarnya, perintah ini akan menghapus semua tampilan untuk memulai sebuah model baru.
• create-turtles 100 membuat turtles sebanyak 100. Pada kondisi awal, semua turtles akan berada pada titik mula yaitu tepat di tengah patch 0,0.
• Setelah perintah create-turtles kita dapat memberikan perintah pada setiap turtle baru untuk berjalan, caranya dengan memberikan perintah pada kurung kotak “[ ]”.
• setxy random-xcor random-ycor adalah perintah menggunakan “reporters”. Perintah ini, kebalikan dari “command”, dimaksudkan untuk melaporkan hasil.
Catatan: logika jalannya perintah adalah sebagai berikut; awalnya setiap turtle akan menjalankan perintah untuk mengambil angka random (random-xcor) dari rentang yang diperbolehkan pada sumbu X, selanjutnya turtle tersebuut akan mengambil angka random yang diperbolehkan pada sumbu Y (random-ycor). Kemudian, setiap turtle akan menjalankan perintah (setxy) yang berarti bahwa setiap turtle akan berada pada posisi tersebut sebagai posisi awal.
• reset-ticks memulai hitungan tick, dengan kata lain setup kita telah selesa.
• end menyelesaikan definisi perintah dalam prosedur “setup”.
Setelah anda menyelesaikan penulisan prosedur, buka kembali tab Interface dan klik tombol setup yang telah dibuat. Anda akan melihat semua turtles akan tersebar secara random di seluruh bagian layar (world).
Tekan tombol setup beberapa kali, anda akan melihat bahwa posisi masing-masing turtle akan berubah secara random. Perhatikan juga bahwa beberapa turtles mungkin berada tepat diatas turtle lain. Mengapa hal ini terjadi?
Dalam NetLogo, anda mungkin perlu menyelesaikan beberapa langkah untuk dapat membuat sebuah prosedur bekerja. Anda mungkin akan mengalaminya pada tutorial-tutorial selanjutnya. Apabila anda mengalami hal ini perhatikan langkah-langkah lanjutan, apakah anda perlu melakukan hal lain agar sebuah prosdur bekerja. Apabila anda merasa semua langkah sudah diselesaikan namun prosedur tersebut tidak bekerja dengan baik, anda harus meneliti kembali, mungkin ada langkah yang anda lewatkan.
Mengubah perbaruan layar berbasis tick
Karena kita menggunakan tick untuk menandai berlangsungnya proses kerja kita (dengan perintah reset-ticks), kita harus memberitahukan pada NetLogo bahwa kita hanya akan memperbaharui perintah layar setiap satu tick, bukan memperbaharuinya setiap saat.
• Pada menu “view updates”, kondisi default adalah “continuous”.
• Ubah pilihan menjadi “on ticks”.
Proses ini membuat model anda berjalan lebih cepat dan memastikan bahwa tampilan konsisten (karena pembaharuan hanya terjadi pada waktu yang konsisten). Lihat “Programming Guide” untuk diskusi yang lebih lengkap mengenai “view update”.
Membuat Tombol “GO”
Tugas kita sekarang adalah membuat tombol “Go”. Cara yang diperlukan kurang lebih sama dengan pada saat anda membuat tombol “setup”, kecuali :
• Masukan go pada pilihan Command.
• Centang pilihan “Forever” pada jendela edit.
• Centang pilihan “Disable until ticks start” juga.
Hasilnya akan terlihat seperti gambar dibawah ini:
Cekbox “Forever” memberi perintah agar setiap kali tombol “go” ditekan satu kali, perintah akan dijalankan secara terus menerus, bukan satu kali.
Perintah “Disable until ticks start” menghindarkan anda dari menekan tombol “go” sebelum menekan tombol “setup”.
• Selanjutnya, tambahkan prosedur “go” pada tab Code:
• to go
• move-turtles
• tick
• end
tick adalah perintah standar NetLogo untuk memajukan perhitungan tick 1 angka kedepan.
Bagaimana dengan move-turtles? Apakah ini juga perintah standar dalam NetLogo? Bukan, ini adalah prosedur yang lain dan harus anda tambahkan sendiri. Sampai sejauh ini, anda telah diperkenalkan dengan dua prosedur yang anda tambahkan sendiri yaitu setup dan go.
• Tambahkan prosedur move-turtles setelah prosedur go:
• to go
• move-turtles
• tick
• end
•
• to move-turtles
• ask turtles [
• right random 360
• forward 1
• ]
• end
perhatikan bahwa tidak ada spasi diantara tanda -. Pada tutorial #2 kita menggunakan red – 2, spasi, untuk menambahkan operasi matematika, tapi saat ini kita tidak menambahkan spasi pada move-turtles, ini menyatakan bahwa kata move dan turtles merupakan satu perintah.
Logika perintah move-turtles adalah sebagai berikut:
• ask turtles [ … ] says that each turtle should run the commands in the brackets.
• right random 360 is another command that uses a reporter. First, each turtle picks a random whole number between 0 and 359. (random doesn’t include the number you give it as a possible result.) Then the turtle turns right this number of degrees.
• forward 1 makes the turtle move forward one step.