Pemodelan Sistem Kompleks berdasarkan Prinsip Active Walker dan Cellular Automata

PEMODELAN SISTEM KOMPLEKS
BERDASARKAN PRINSIP ACTIVE WALKER
DAN CELLULAR AUTOMATA

RYAN SUGIHAKIM

DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2014

PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA*
Dengan ini saya menyatakan bahwa skripsi berjudul Pemodelan Sistem
Kompleks berdasarkan Prinsip Active Walker dan Cellular Automata adalah benar
karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam
bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang
berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari
penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di
bagian akhir skripsi ini.

Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut
Pertanian Bogor.
Bogor, September 2014
Ryan Sugihakim
NIM G74100055

ABSTRAK
RYAN SUGIHAKIM. Pemodelan Sistem Kompleks berdasarkan Prinsip Active
Walker dan Cellular Automata. Dibimbing oleh HUSIN ALATAS.
Sistem kompleks memiliki dinamika yang sangat rumit. Metode analitik
sulit untuk memecahkan sebagian besar masalah dinamika sistem kompleks.
Baru-baru ini, ada paradigma baru yang digunakan untuk memodelkan sistem
kompleks, yaitu prinsip active walker dan cellular automata. Kami melakukan
penggabungan kedua paradigma ini untuk memodelkan sistem kompleks. Hasil
yang diperoleh berupa model dinamika diskret. Model yang dibuat kemudian
diterapkan pada masalah arus lalu lintas dan filtrasi sederhana.
Kata kunci: active walk, cellular automata, filtrasi membran, lalu lintas, sistem
kompleks

ABSTRACT

RYAN SUGIHAKIM. Modelling The Complex Systems based on Active Walker
Principle and Cellular Automata. Supervised by HUSIN ALATAS.
Complex systems have very complicated dynamics. It is hard to solve them
by using analytic methods. More recently, there is a new paradigm that is used to
model complex systems, namely the principle of active walker and cellular
automata. We merge these two paradigms to model complex systems. Results
obtained in the form of discrete dynamical model. The model made is then applied
to the traffic flow and a simple filtration problem.
Keywords: active walk, cellular automata, complex systems, membrane filtration,
traffic flow

PEMODELAN SISTEM KOMPLEKS BERDASARKAN
PRINSIP ACTIVE WALKER
DAN CELLULAR AUTOMATA

RYAN SUGIHAKIM

Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Sains

pada
Departemen Fisika

DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2014

Judul Skripsi : Pemodelan Sistem Kompleks berdasarkan Prinsip Active Walker
dan Cellular Automata
Nama
: Ryan Sugihakim
NIM
: G74100055

Disetujui oleh

Dr Husin Alatas
Pembimbing Utama


Diketahui oleh

Dr Akhiruddin Maddu
Ketua Departemen

Tanggal Lulus:

PRAKATA
Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas
segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang
dipilih pada penelitian ini yaitu sistem kompleks yang ruang lingkup dan
aplikasinya sangat luas meliputi berbagai bidang, termasuk ilmu alam dan ilmu
sosial.
Tanpa bantuan dari orang lain, tidak mungkin karya ilmiah ini dapat
diselesaikan dengan baik, penulis mengucapkan terimakasih kepada:
1. Ibu, Ayah, Kakang, Sandi, dan Arya yang selalu memberi semangat dan
selalu menjadi inspirasi bagi penulis.
2. Bapak Husin Alatas yang telah memberikan motivasi, bimbingan, serta
pengetahuannya kepada penulis.

3. Bapak Kiagus Dahlan, Bapak Sidikrubadi Pramudito, Bapak Irmansyah,
dan Bapak Mamat Rahmat yang telah memberi masukan dan kritikan.
4. Bapak Ardian Arif selaku pembimbing akademik saya.
5. Bapak Faozan Ahmad yang telah memberikan pengetahuan dan saran
kepada penulis.
6. Seluruh staf di departemen Fisika FMIPA IPB atas pelayanannya.
7. Asmareta yang selalu menemani dan memberi dukungannya kepada
penulis.
8. Rekan-rekan fisika 47, Kharis, Habib, Nofi, Hadyan, Vivi, Setiawan,
Ratna, Yuyun, Afgan, Eer, Arman, Alvin, Yagus, Adam, fisika 48, dan
fisika 49 yang telah memberi semangat bagi penulis.
9. Rekan-rekan kontrakan Tjipenk House dan Deboy atas kebersamaannya.
10. Semua pihak yang belum disebutkan yang telah memberi dukungan
moral maupun material.
Semoga karya ilmiah ini bermanfaat.

Bogor, September 2014
Ryan Sugihakim

DAFTAR ISI

DAFTAR TABEL

vi

DAFTAR GAMBAR

vi

DAFTAR LAMPIRAN

vi

PENDAHULUAN

1

Latar Belakang

1


Perumusan Masalah

1

Tujuan Penelitian

1

Manfaat Penelitian

2

Ruang Lingkup Penelitian

2

TINJAUAN PUSTAKA

2


Cellular Automata (CA)

2

Active walker (AW)

2

METODE

3

Alat

3

Model

3


HASIL DAN PEMBAHASAN

5

Aplikasi untuk Arus Lalu Lintas

5

Aplikasi untuk Filtrasi Sederhana

10

SIMPULAN DAN SARAN

13

Simpulan

13


Saran

13

DAFTAR PUSTAKA

13

LAMPIRAN

15

RIWAYAT HIDUP

30

DAFTAR GAMBAR
Unit sel dalam ruang tiga dimensi
Skema seri (kiri) dan paralel (kanan)
Tipe-tipe neighborhood

Neighborhood untuk aturan simulasi lalu lintas
Hubungan entropi dengan banyak kendaraan
Susunan awal simulasi lalu lintas
Entropi lalu lintas
Variasi kondisi awal simulasi lalu lintas
Entropi per lajur dengan variasi kondisi awal (atas kiri: lajur 1, atas
kanan: lajur 2, bawah: lajur 3)
Daerah stabil dan tidak stabil
Entropi total dan jumlah kendaraan
Neighborhood untuk simulasi filtrasi sederhana
Aturan transisi konfigurasi untuk simulasi membran
Aturan transisi momentum untuk simulasi membran
Skema simulasi filtrasi sederhana
Hasil simulasi untuk N = 300 partikel
Hasil simulasi untuk N = 480 partikel

3
4
5
6
7
7
8
8
9
9
10
10
11
11
11
12
12

DAFTAR LAMPIRAN
Program Matlab untuk simulasi filtrasi sederhana
Program pemanggil simulasi filtrasi sederhana
Fungsi Matlab: multiagent81.m
Fungsi Matlab: timur.m
Fungsi Matlab: barat.m
Fungsi Matlab: utara.m
Fungsi Matlab: selatan.m
Program Matlab untuk simulasi arus lalu lintas
Fungsi pemanggil untuk simulasi arus lalu lintas
Fungsi Matlab: SimulasiMultiAgent102.m
Fungsi Matlab: maju1.m
Fungsi Matlab: maju2.m
Fungsi Matlab: kekanan.m
Fungsi Matlab: kekiri.m
Fungsi Matlab: kekanankiri.m
Fungsi Matlab: mencacah.m
Fungsi Matlab: TrafficEntropy.m
Fungsi Matlab: tampilkan.m

15
15
16
24
24
24
25
25
25
26
27
27
27
27
28
28
28
28

PENDAHULUAN
Latar Belakang
Dua puluh tahun yang lalu, sistem kompleks menjadi studi interdisiplin
yang mengubah paradigma ilmu pengetahuan.1 Sistem kompleks yaitu sistem
yang terdiri dari banyak subunit yang saling berinteraksi.2 Metode yang digunakan
untuk meneliti sistem kompleks di antaranya adalah analitik atau komputasi.
Metode analitik biasanya menyelesaikan persamaan matematik dalam bentuk
persamaan diferensial untuk meneliti perilaku sistem, sedangkan metode
komputasi dilakukan dengan bantuan komputer. Terkadang sulit untuk
memecahkan masalah dalam sistem kompleks dengan metode analitik. Persamaan
dalam sistem kompleks dapat berupa persamaan nonlinear, dan bisa juga terkopel
(setiap persamaan saling terhubung), yang penyelesaian analitiknya sulit
diperoleh. Oleh karena itu, dikembangkan metode komputasi untuk membantu
masalah tersebut.
Baru-baru ini, ada paradigma yang dapat memodelkan sistem kompleks.
Yaitu prinsip active walker,3 dan cellular automata.4 Prinsip active walker (AW)
dan cellular automata (CA) dalam penelitian ini dimaksudkan untuk menjadi
basis dari permodelan sistem kompleks. AW sudah bisa mendeskripsikan
fenomena kompleks seperti dielectric breakdown.5 CA sudah banyak digunakan
sebagai alat simulasi dalam magnetisasi dan menentukan kalor spesifik,6 lalu
lintas,7 dan hidrodinamika.8 Dengan menggabungkan kedua prinsip ini, kami
dapat membuat sebuah permodelan yang menggambarkan dinamika sistem
kompleks. Model yang kami buat diaplikasikan ke dalam sistem filtrasi sederhana
dan arus lalu lintas.

Perumusan Masalah
Berdasarkan uraian dari latar belakang, perumusan masalah penelitian ini
yaitu
1. Bagaimana permodelan sistem kompleks dapat dibuat dari prinsip active
walker (AW) dan cellular automata (CA)?
2. Apa sifat yang dimiliki oleh model yang dibuat?
3. Apa hasil yang diperoleh dari simulasi?

Tujuan Penelitian
Tujuan penelitian ini yaitu membuat model sistem kompleks berbasis AW
dan CA, dan menerapkannya untuk masalah filtrasi sederhana dan arus lalu lintas.

2
Manfaat Penelitian
Model yang kami buat bermanfaat untuk pemodelan yang melibatkan sistem
kompleks dengan partikel yang sangat banyak dan interaksinya bersifat lokal.
Beberapa aplikasinya yaitu untuk pemodelan filtrasi sederhana dan arus lalu lintas.

Ruang Lingkup Penelitian
Ruang lingkup penelitian ini yaitu membuat permodelan untuk sistem
kompleks. Model yang telah dibuat diterapkan untuk sistem filtrasi sederhana dan
arus lalu lintas.

TINJAUAN PUSTAKA
Cellular Automata (CA)
Awal dari kemunculan istilah CA dimulai saat John von Neumann mencoba
untuk membuat mesin (automaton) yang dapat mereplikasi dengan sendirinya,
tanpa bantuan manusia.9 Mekanisme replikasi automaton mencontoh pada
replikasi DNA. Stanislaw Ulam memberi saran kepada Neumann untuk membuat
konsep yang sekarang dikenal dengan nama cellular automata (tunggal: cellular
automaton). Stephen Wolfram kemudian menemukan 256 CA elementer, dalam
buku A New Kind of Science. Setelah itu, dibentuk formalisme matematik untuk
CA.10
CA terdiri dari subunit yang disebut sel. Bentuk sel dapat berupa apa saja,
tetapi pada umumnya berbentuk persegi. Nilai-nilai tertentu sel disebut sebagai
keadaan (state) yang berbeda satu dengan yang lain. Banyak state lebih dari sama
dengan 2, dan berhingga.11 Tiap sel akan berubah keadaannya sesuai dengan
keadaan sel-sel di sekitarnya. Evolusi sel ditampilkan dalam interval waktu diskret.
Ada tiga sifat fundamental dari CA, yaitu keseragaman (semua sel berubah
berdasarkan set aturan yang sama), sinkronitas (semua sel berubah dalam waktu
bersamaan), dan lokalitas (aturan bersifat lokal). CA dapat berdimensi satu atau
lebih. Khusus untuk satu dimensi, kumpulan sel ini berupa barisan sel dengan
state tertentu. Untuk menggambarkan perubahan dalam jumlah iterasi tertentu,
terdapat sejumlah baris dalam sejumlah iterasi. Baris pertama merupakan keadaan
awal atau suatu input, keadaan sel pada iterasi selanjutnya ditentukan berdasarkan
aturan yang telah dibuat.

Active walker (AW)
AW ditemukan oleh Lui Lam et. al.12 Model ini ditujukan untuk
menjelaskan pattern formation, self-organization, dan dinamika sistem
kompleks.12 AW sudah digunakan untuk formasi antrian pada semut,13 formasi
pola pada koloni bakteri, simulasi material granular.14 Ada dua istilah penting
dalam AW yaitu dari landscape, dan walker. Landscape memiliki konfigurasi

3
potensial, walker berjalan di landscape bergantung kepada konfigurasi potensial
landscape, pergerakan walker akan merubah landscape di sekitarnya dan
pergerakan selanjutnya bergantung kepada landscape yang sudah berubah tadi.
Banyak sistem adaptif, dan self-organization dapat dideskripsikan oleh model ini.
Ide dasar AW yaitu setiap komponen dalam sistem merupakan walker, dan
berinteraksi dengan walker di sekitarnya melalui landscape.

METODE
Penelitian ini dimulai dari studi pustaka mengenai lalu lintas, sistem filtrasi,
CA dan AW. Selanjutnya membuat program simulasi melalui Matlab dan
menerapkan program simulasi untuk sistem filtrasi membran dan arus lalu lintas.

Alat
Alat yang digunakan pada penelitian ini adalah alat tulis, netbook, dan
komputer. Piranti lunak yang digunakan untuk komputasi yaitu Matlab
(Mathworks Inc.).

Model
Sel
Dinamika sistem dapat dimodelkan dengan persamaan diferensial, dan
dalam model diskret.4 Model diskret dapat diturunkan dari persamaan diferensial,
seperti finite difference method, dan finite element analysis.15 Selain itu, dapat
dimodelkan secara first principle melalui himpunan aturan yang menggambarkan
transisi sistem. CA termasuk ke dalam tipe ini. Dalam model diskret, ruang dan
waktu dibuat dalam interval tertentu. Dinamika sistem dalam model diskret
memiliki keuntungan lebih mudah ditangani dengan komputer.

Gambar 1 Unit sel dalam ruang tiga dimensi

4
Tinjau suatu ruang 3 dimensi, dengan sumbu i, j, dan k. Nilai-nilai dari i, j,
dan k merupakan kelipatan bilangan bulat dari suatu nilai real Δα, Δ , dan Δ .
Dengan demikian
n Δα

nΔ.
(1)
Sebuah sel merupakan unit kubus dengan volume ΔαΔ Δ . Dan secara umum,
untuk ruang berdimensi m, unit sel memiliki volume sebesar Δα1Δα2...Δαm.
State
Misalkan Aijk adalah sebuah sel pada ruang 3 dimensi, state yang dimiliki
oleh Aijk merupakan kumpulan informasi yang mencirikan Aijk, misalnya massa,
momentum, atau energi. State (S) merupakan kumpulan himpunan informasi yang
mencirikan sistem, kita notasikan sebagai berikut
‫س‬, ‫ش‬, ‫ص‬,

S

.

(2)

Mari kita tinjau suatu sistem yang dicirikan oleh informasi sebagai berikut.
Konfigurasi jenis agen/partikel dengan lambang C, momentum dengan lambang P,
dan energi dengan lambang E, maka state sistem tersebut adalah
S
,
(3)
dengan
{c , c , , cl }
{ , , , n}
, , ,
.
Tiga informasi ini akan bermanfaat untuk memodelkan sistem fisis.
Skema Seri dan Paralel
Kita tinjau sistem dengan konfigurasi state S = (C, P, E). Ada dua skema
untuk menghitung perubahan state setiap waktu, yaitu seri dan paralel. Pada
transisi state secara seri, transisi P, C, dan E dilakukan dalam waktu berurutan.
Pada transisi paralel, P, C, dan E mengalami transisi dalam waktu bersamaan.
input
output

input
P

C

P
C,E

E
output
Gambar 2 Skema seri (kiri) dan paralel (kanan)
Tetangga (Neighborhood)
Interaksi setiap sel dianggap bersifat lokal, yaitu transisi state dari suatu sel
bergantung terhadap sel-sel di sekelilingnya. Sehingga ada beberapa tipe interaksi

5
sel dengan sekelilingnya yang disebut tetangga. Beberapa tipe tetangga
diantaranya yaitu tipe Neumann,9 dan tipe Moore9 (lihat Gambar 3).

Neumann

Moore

Gambar 3 Tipe-tipe neighborhood

HASIL DAN PEMBAHASAN
Model yang telah kami buat merupakan gabungan dari ide-ide yang ada
dalam CA dan AW. Menurut CA, sistem dibagi menjadi sejumlah kisi (lattice)
yang tersusun sedemikian rupa sehingga ada interaksi antar kisi tersebut,
kemudian oleh Neumann kisi tersebut diberi nama dengan sel.9 Aturan transisi
dapat dibuat dengan meminjam ide dari AW, yaitu potential landscape, dan
stepping rule. Stepping rule merupakan aturan yang digunakan untuk mengatur
walker berjalan di dalam potential landscape. Potensial dalam AW merupakan
manifestasi dari “energi” sistem. Ketika sebuah agen/partikel berada dalam suatu
medan potensial, agen tersebut akan memiliki energi potensial yang sebanding
dengan potensial di lokasi agen tersebut. Informasi potensial dalam model yang
kami buat disimpan dalam informasi energi (E). Untuk mengubah informasi
potensial menjadi informasi energi, kami memperkenalkan konsep null agent.
Null agent akan memiliki energi potensial yang nilainya sama dengan potensial di
lokasi yang ditempatinya. Lokasi null agent dapat ditempati oleh agen lain, dan
ketika ada lokasi yang tidak ditempati agen, null agent akan menempati lokasi
tersebut.
Sel merupakan unit ruang terkecil yang memiliki state tertentu pada satu
waktu. Sebuah sel tidak boleh memiliki state yang berbeda pada waktu
bersamaan. Ini merupakan prinsip eksklusi. Dalam hal ini, misal sebuah sistem
S
, yaitu sistem dengan state konfigurasi partikel, dengan C = {a, b, ...}. Jika
sistem mematuhi prinsip eksklusi, misal suatu sel di dalam sistem Aijk, maka state
untuk Aijk hanya salah satu dari a, b, ... Prinsip eksklusi telah digunakan untuk
simulasi fenomena transport dengan model ASEP (Asymmetric Simple Exclusion
Process) dan TASEP (Totally Asymmetric Simple Exclusion Process).16

Aplikasi untuk Arus Lalu Lintas
Skema simulasi untuk arus lalu lintas dilakukan dengan cara membagi ruas
menjadi sel-sel yang sedemikian sehingga satu sel hanya memuat satu kendaraan.
Sumbu horizontal merupakan koordinat posisi, sedangkan sumbu vertikal
merupakan koordinat lajur. Kecepatan kendaraan kami sederhanakan hanya 0, 1,
atau 2 sel per waktu iterasi. Setiap kendaraan dapat bergerak ke depan, berpindah

6
lajur ke kiri, atau berpindah lajur ke kanan, atau diam, tergantung keadaan
sekelilingnya.

D1

D2

×

D3

D5

D6

D4

Gambar 4 Neighborhood untuk aturan simulasi lalu lintas
Kami memakai neighborhood tipe Neumann orde 2 untuk membuat aturan
transisi seperti yang ditunjukan oleh Gambar 4. Warna gelap menunjukkan bahwa
bagian sel tersebut tidak kami tinjau untuk pembuatan aturan transisi. Tanda x
menunjukkan posisi kendaraan yang akan melakukan keputusan. Sel yang
ditandai dengan D1, D2, D3, D4, D5, dan D6 kami atur bernilai 0 jika tidak diisi
oleh kendaraan dan 1 jika diisi kendaraan. Kami membuat kode bilangan biner
dengan urutan D6D5D4D3D2D1. Misalkan, hanya D4 yang terisi kendaraan, dan
lainnya tidak terisi kendaraan, maka D4 bernilai 1, dan lainnya bernilai 0, kode
biner keadaan tersebut yaitu 001000. Kemudian untuk state yang dipakai adalah
momentum, yaitu S = (P), dengan P = {0,1,2,3,4}. Angka 0 menunjukkan
kendaraan diam; angka 1 menunjukkan kendaraan bergerak ke sel D3; angka 2
menunjukkan kendaraan bergerak ke sel D4, angka 3 menunjukkan kendaraan
bergerak ke sel D2, dan angka 4 menunjukkan kendaraan bergerak ke sel D6.
Berikut ini penjelasan aturan transisi yang kami buat17
1. Jika D4, dan D3 kosong, maka ambil P menjadi 2, jika tidak maju ke
langkah 2.
2. Jika D4 kosong, maka ambil P menjadi 1, jika tidak maju ke langkah 3.
3. Jika D1, D2, D5, dan D6 kosong, maka ambil salah satu P menjadi 3
atau 4, jika tidak maju ke langkah 4.
4. Jika D1, dan D2 kosong, maka ambil P menjadi 3, jika tidak maju ke
langkah 5.
5. Jika D5, dan D6 kosong, maka ambil P menjadi 4, jika tidak P menjadi 0.
Entropi Lalu Lintas
Entropi dapat menjadi parameter kuantitatif untuk arus lalu lintas. Dengan
besaran entropi, kita dapat mengukur tingkat kompleksitas suatu sistem. Entropi
berkaitan dengan banyak cara yang mungkin dari suatu susunan.
Banyak cara untuk menyusun sejumlah kendaraan dalam suatu lajur sebuah
ruas jalan yaitu
n n

(4)

dengan L adalah panjang ruas jalan, ni adalah jumlah kendaraan, dan nk = L – ni.
Kemudian kita definisikan entropi lalu lintas (ST) sebagai berikut

7
ln

(5)

dengan kT merupakan suatu konstanta. Jika terdapat lebih dari satu lajur, entropi
total merupakan penjumlahan dari entropi tiap lajur.
Menurut ( 4 ) dan ( 5 ), entropi suatu ruas jalan adalah nol ketika tidak ada
kendaraan sama sekali, atau terisi penuh oleh kendaraan. Entropi mencapai
maksimum ketika ni = nk = L/2. Hal ini menunjukkan pada keadaan sebagian ruas
jalan terisi kendaraan, dinamika sistem lebih kompleks dibandingkan dengan ruas
jalan tersebut terisi penuh atau tidak terisi sama sekali. Hubungan entropi lalu
lintas dengan jumlah kendaraan merupakan fungsi cembung yang ditunjukan oleh
Gambar 5.

Gambar 5 Hubungan entropi dengan banyak kendaraan
Hasil Simulasi
Gambar 6 menunjukkan skema simulasi. Warna putih merupakan sel yang
terisi kendaraan, sedangkan warna hitam adalah sel yang kosong. Pada simulasi
yang kami jalankan, ruas jalan terdiri dari 3 lajur, dan jumlah kendaraan yaitu 151.
Kami definisikan sistem yang kami tinjau berpusat di xrata, yaitu posisi rata-rata
dari semua kendaraan. Panjang sistem (L) yang kami tinjau yaitu 52 sel, dengan
batas kiri yaitu xrata – 0,5L, dan batas kanan yaitu xrata + 0,5L. Dengan begitu,
sistem yang kami tinjau bergerak sesuai dengan posisi rata-rata seluruh kendaraan,
dan panjang sistem dijaga agar tetap.

lajur 1
lajur 2
lajur 3

Gambar 6 Susunan awal simulasi lalu lintas

8
Gambar 7 adalah grafik entropi hasil simulasi. Setelah beberapa waktu,
terlihat entropi sistem menjadi stabil. Hal ini menunjukkan akibat dari aturan yang
telah dibuat, sistem mengatur diri (self-organized) menuju ke ke keadaan stabil.

Gambar 7 Entropi lalu lintas
Kami melakukan percobaan untuk saat kondisi awal sistem diubah. Gambar
8 menunjukkan variasi kondisi awal sistem dengan merubah beberapa posisi
kendaraan, tetapi jumlah kendaraan dijaga tetap.

Gambar 8 Variasi kondisi awal simulasi lalu lintas
Hasil yang diperoleh yaitu terdapat variasi entropi saat terjadi kondisi tidak
stabil. Setelah mencapai kondisi stabil, entropi sistem berubah ke keadaan stabil
dan menuju nilai yang sama. Hal ini terjadi untuk semua lajur (lihat Gambar 9).
Hal yang terjadi dalam dinamika arus lalu lintas yaitu ketika sistem stabil
diganggu, sistem akan mengatur dirinya kembali ke keadaan stabil, namun dengan
kondisi yang berbeda dari keadaan stabil sebelum diganggu. Dalam selforganization, terjadi transisi fasa ketika ada gangguan di dalam sistem (lihat
Gambar 10).

9

Gambar 9 Entropi per lajur dengan variasi kondisi awal (atas kiri:
lajur 1, atas kanan: lajur 2, bawah: lajur 3)

tidak stabil

stabil

Gambar 10 Daerah stabil dan tidak stabil
Di dalam sistem yang kita tinjau, jumlah kendaraan tidak tetap. Ada fluks
kendaraan yang merubah jumlah kendaraan dalam sistem yang ditinjau. Gambar
11 memperlihatkan grafik jumlah kendaraan di dalam sistem dan entropi totalnya.
Terlihat bahwa perubahan entropi total sistem terjadi karena perubahan jumlah
kendaraan di dalam sistem. Selama terjadi self-organization, sistem mengatur
keadaan dengan mengurangi jumlah kendaraan. Sampai pada waktu tertentu, tidak
ada fluks kendaraan, dan pada waktu tersebut juga tidak ada lagi perubahan
entropi total sistem. Ada waktu ketika terjadi pembalikan gradien entropi, dari

10
awalnya gradien entropi positif berubah menjadi negatif. Hal ini terjadi ketika
kepadatan kendaraan (ρ) mengalami transisi ρ > 0,5 menjadi ρ < 0,5 sesuai
Gambar 5.

Gambar 11 Entropi total dan jumlah kendaraan

Aplikasi untuk Filtrasi Sederhana
Skema simulasi filtrasi sederhana menggunakan neighborhood Neumann
untuk pembuatan aturan transisi. Idenya adalah sekumpulan partikel yang saling
berinteraksi dengan partikel partikel di sekelilingnya. Kami batasi simulasi ini
untuk ruang 2 dimensi. Dalam Gambar 12 nilai D1, D2, D3, dan D4 dapat bernilai
0 jika tidak terisi partikel dan 1 jika terisi partikel. Tanda × menunjukkan partikel
yang akan ditinjau, partikel tersebut dapat memiliki 5 kemungkinan nilai yang
berbeda. Sehingga ada 5 × 24 interaksi yang mungkin. Kita buat kode biner
D4D3D2D1 untuk masing-masing keadaan di sekitarnya, misalnya ada partikel di
D2 dan D4, dan D1 dan D3 tidak ada partikel, maka kode binernya adalah 0101,
atau jika diubah ke bilangan desimal menjadi 6.
D1
D4

×

D2

D3

Gambar 12 Neighborhood untuk simulasi filtrasi sederhana
Pergerakan partikel bergantung terhadap momentumnya. Dalam sistem ini
state S = (C, P). Transisi konfigurasi partikel C = {O, N, E, S, W}, dan
momentum P = {0, 1, 2, 3, 4}. Untuk momentum partikel 0, dipilih transisi
konfigurasi partikel tersebut O (diam); untuk momentum 1, transisinya adalah N
(utara); untuk momentum 2, transisinya adalah E (timur); untuk momentum 3,
transisinya adalah S (selatan), dan untuk momentum 5, transisinya adalah W
(barat). Aturan transisi konfigurasi dan momentum terangkum dalam Gambar 13
dan Gambar 14.

11
Konfigurasi selanjutnya

Konfigurasi
saat ini

O

N

E

S

W

O

0

1

2

3

4

N

0

1

2

3

4

E

0

1

2

3

4

S

0

1

2

3

4

W

0

1

2

3

4

Gambar 13 Aturan transisi konfigurasi untuk simulasi membran

Momentum selanjutnya
0

1

2

Momenttum saat ini

3

4

1, 3, 9,
11

2, 3, 6, 7

-

2, 3, 6, 7

0

0, 5, 10, 4, 6, 12, 8, 9, 12,
15
14
13

1

1, 4, 5,
15

2

2, 7, 10, 4, 6, 12,
15
14

0, 1, 4,
5, 8, 9,
12, 13

1, 3, 9,
11

-

3

4, 5, 14,
15

-

8, 9, 12,
13

0, 1, 2,
3, 6, 8,
9, 11

2, 3, 6, 7

4

8, 10,
13, 15

4, 6, 12,
14

-

1, 3, 9,
11

0, 1, 2,
3, 4, 5,
6, 7

0, 2, 4,
8, 9, 12,
6, 8, 10,
13
12, 14

Gambar 14 Aturan transisi momentum untuk simulasi membran
Simulasi menggunakan bidang berbentuk persegi berukuran 150×150 satuan,
dengan dinding tertutup. Diagonal persegi menjadi pembatas antara kompartemen
yang tersaring dengan yang tidak tersaring. Pada awalnya semua partikel berada
di kompartemen kiri atas. Partikel yang tersaring merupakan partikel yang berada
di kompartemen bawah kanan. Dinding filtrasi dibuat dengan porositas tertentu,
yaitu 0.5 dan 0.6.

dinding
filtrasi

150

150
Gambar 15 Skema simulasi filtrasi sederhana

12
Gambar 16 menunjukkan hasil simulasi dengan 300 partikel. Variasi yang
dilakukan yaitu dengan mengatur porositas dinding filtrasi, dari 0, 0.5, dan 0.6.
porositas 0 dimaksudkan untuk menunjukkan bahwa tidak ada dinding filtrasi.
Terlihat bahwa semakin besar porositas maka semakin besar partikel yang
tersaring. Untuk filtrasi dengan porositas 0.5, terlihat bahwa terjadi kondisi tunak,
setelah waktu yang lama, semua partikel berada pada kompartemen masingmasing. Hal yang sama juga terjadi pada filtrasi dengan porositas 0.6.

Gambar 16 Hasil simulasi untuk N = 300 partikel
Gambar 17 adalah hasil simulasi dengan menambah jumlah partikel menjadi
480 partikel. Untuk kasus tanpa dinding filtrasi, jumlah partikel tiap kompartemen
seimbang, jika dibandingkan dengan hasil simulasi 300 partikel, terlihat untuk
partikel yang lebih banyak cenderung menuju ke kondisi kesetimbangan. Selain
itu, hasil lain ditunjukan dengan menggunakan dinding filtrasi juga lebih
cenderung menuju titik setimbang, yaitu di sekitar 0.5 pada sumbu Nf/N (jumlah
partikel yang tersaring dibandingkan dengan jumlah seluruh partikel).

Gambar 17 Hasil simulasi untuk N = 480 partikel

13

SIMPULAN DAN SARAN
Simpulan
Permodelan dengan menggunakan prinsip active walker dan cellular
automata dapat menggambarkan proses dinamika sistem kompleks. Salah satu
aplikasinya yaitu arus lalu lintas dan filtrasi sederhana. Terdapat hasil yang
menarik dari simulasi arus lalu lintas, dimana proses self-organization yang
terjadi dapat digambarkan sebagai transisi fase dari entropi yang tidak stabil
menuju entropi yang stabil.

Saran
Penelitian ini masih menggunakan aturan transisi yang sederhana. Saran
untuk penelitian selanjutnya yaitu memperbaiki aturan transisi yang dibuat untuk
simulasi arus lalu lintas dan filtrasi sederhana.

DAFTAR PUSTAKA
1.
2.
3.

4.
5.
6.

7.
8.
9.
10.
11.
12.

Nicolis, G., & Nicolis, C. (2012). Foundations of Complex Systems:
Emergence, Information and Predicition. World Scientific.
Nicolis, G., & Prigogine, I. (1977). Self-organization in nonequilibrium
systems (Vol. 191977). Wiley, New York.
Lam, L. (1998). Nonlinear physics for beginners: fractals, chaos, solitons,
pattern formation, cellular automata, complex systems (Vol. 338). World
scientific.
Boccara, N., & Boccara, N. (2004). Modeling complex systems (Vol. 1).
New York: Springer.
Lam, L. (2005). Active walker: The first twelve years (Part I). International
Journal of Bifurcation and Chaos, 15(08), 2317-2348.
Nandhini, G., Kumar, M. V., & Sangaranarayanan, M. V. (2010).
Estimation of Magnetization, Susceptibility and Specific heat for the twodimensional Ising Model in a Non-zero Magnetic field. arXiv preprint
arXiv:1006.0351.
Nagel, K., & Schreckenberg, M. (1992). A cellular automaton model for
freeway traffic. Journal de physique I, 2(12), 2221-2229.
Squier, R. K., & Steiglitz, K. (1993). Two-dimensional FHP lattice gases
are computation universal. Complex Systems, 7(4), 297-308.
Ilachinski, A. (2001). Cellular Automata: A Discrete Universe.Singapore:
World Scientific.
Martin, O., Odlyzko, A. M., & Wolfram, S. (1984). Algebraic properties of
cellular automata. Communications in mathematical physics, 93(2), 219-258.
Schiff, J. L. (2011). Cellular automata: a discrete view of the world (Vol.
45). John Wiley & Sons.
Lam, L. (Ed.). (2003). Introduction to nonlinear physics. Springer.

14
13.
14.
15.
16.
17.

Schweitzer, F., Lao, K., & Family, F. (1997). Active random walkers
simulate trunk trail formation by ants. BioSystems, 41(3), 153-166.
Lam, L. (2006). Active walks: The first twelve years (Part II). International
Journal of Bifurcation and Chaos, 16(02), 239-268.
Blazek, J. (2001). Computational Fluid Dynamics: Principles and
Applications: Principles and Applications. Elsevier.
Kokot, B. Totally asymmetric simple exclusion process.
Sugihakim R., Alatas, H. (2014). Pemodelan Lalu Lintas berdasarkan
Prinsip Active Walker (belum terbit).

15
Lampiran 1 Program Matlab untuk simulasi filtrasi sederhana
utara

selatan
Program
pemanggil

multiagent81
barat
tampilkan

timur

Lampiran 2 Program pemanggil simulasi filtrasi sederhana
%input yang dibutuhkan
%Xinit: posisi awal sumbu x
%Yinit: posisi awal sumbu y
%Sinit: state awal
%pinit: momentum awal
%B: background
%T: lama simulasi
clc;
clear;
B = xlsread('kondisi awal.xls','sheet5');
Xinit(1,1:60) = 10:69;
Yinit(1,1:60) = 10;
Xinit(1,61:120) = 10:69;
Yinit(1,61:120) = 11;
Xinit(1,121:180) = 10:69;
Yinit(1,121:180) = 12;
Xinit(1,181:240) = 10:69;
Yinit(1,181:240) = 13;
Xinit(1,241:300) = 10:69;
Yinit(1,241:300) = 15;
Xinit(1,301:360) = 10:69;
Yinit(1,301:360) = 16;
Sinit = zeros(1,360);
pinit = zeros(1,360);
[X,Y,A,P,Nright] = multiagent81(Xinit,Yinit,Sinit,pinit,B,15000);
ukuran = size(P);
E1 = zeros(ukuran(1,1),ukuran(1,2));
for i = 1:ukuran(1,1)
for j = 1:ukuran(1,2)
if P(i,j)==0
E1(i,j) = 0;
else
E1(i,j) = 1;
end
end
end

16
Lampiran 3 Fungsi Matlab: multiagent81.m
function [X,Y,A,p,Nright] =
multiagent81(Xinit,Yinit,Sinit,pinit,B,T)
N = length(Xinit);
% neighborhood type: Neumann
%X fungsi posisi
%S fungsi state {0,1}, P momentum {00,01,0-1,10,-10}
%B background
X = ones(T,N);
Y = ones(T,N);
X(1,:) = Xinit;
Y(1,:) = Yinit;
S = zeros(T,N);
p = zeros(T,N);
S(1,:) = Sinit;
p(1,:) = pinit;
Nright = zeros(T,1);
A = B;
for n=1:N
A(X(1,n),Y(1,n))=1;
end
tampilkan(A);
for t=2:T
%evolusi state & momentum
for n=1:N
if p(t-1,n)==2 %timur
if A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1 && A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t-1,n)1)==1
S(t,n) = 0;
p(t,n) = 1;
elseif A(X(t-1,n),Y(t-1,n)+1)==1 && A(X(t-1,n)-1,Y(t1,n))==1 && A(X(t-1,n),Y(t-1,n)-1)==1
S(t,n) = 1;
p(t,n) = 2;
elseif A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)-1)==1 && A(X(t-1,n)+1,Y(t-1,n))==1
S(t,n) = 1;
p(t,n) = 5;
elseif A(X(t-1,n),Y(t-1,n)-1)==1 && A(X(t-1,n)+1,Y(t1,n))==1 && A(X(t-1,n),Y(t-1,n)+1)==1
S(t,n) = 0;
p(t,n) = 1;
elseif A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1 && A(X(t-1,n)-1,Y(t-1,n))==1
S(t,n) = 1;
p(t,n) = 4;
elseif A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n)-1,Y(t1,n))==1
S(t,n) = 0;
p(t,n) = 1;
elseif A(X(t-1,n),Y(t-1,n)-1)==1 && A(X(t-1,n),Y(t1,n)+1)==1
S(t,n) = 1;
p(t,n) = 2;
elseif A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)-1)==1

17
S(t,n) = 1;
p(t,n) = 5;
elseif A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1
S(t,n) = 1;
p(t,n) = 4;
elseif A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 4;
else
p(t,n) = 2;
end
elseif A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)-1)==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 5;
else
p(t,n) = 2;
end
elseif A(X(t-1,n)+1,Y(t-1,n))==1
S(t,n) = 0;
p(t,n) = 1;
elseif A(X(t-1,n),Y(t-1,n)+1)==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 4;
else
p(t,n) = 2;
end
elseif A(X(t-1,n)-1,Y(t-1,n))==1
S(t,n) = 1;
p(t,n) = 2;
elseif A(X(t-1,n),Y(t-1,n)-1)==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 5;
else
p(t,n) = 2;
end
else
S(t,n) = 1;
p(t,n) = 2;
end
elseif p(t-1,n)==3 %barat
if A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1 && A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t-1,n)1)==1
S(t,n) = 0;
p(t,n) = 1;
elseif A(X(t-1,n),Y(t-1,n)+1)==1 && A(X(t-1,n)-1,Y(t1,n))==1 && A(X(t-1,n),Y(t-1,n)-1)==1
S(t,n) = 0;

18
p(t,n) = 1;
elseif A(X(t-1,n)-1,Y(t-1,n))==1
1,n)-1)==1 && A(X(t-1,n)+1,Y(t-1,n))==1
S(t,n) = 1;
p(t,n) = 5;
elseif A(X(t-1,n),Y(t-1,n)-1)==1
1,n))==1 && A(X(t-1,n),Y(t-1,n)+1)==1
S(t,n) = 1;
p(t,n) = 3;
elseif A(X(t-1,n)+1,Y(t-1,n))==1
1,n)+1)==1 && A(X(t-1,n)-1,Y(t-1,n))==1
S(t,n) = 1;
p(t,n) = 4;
elseif A(X(t-1,n)+1,Y(t-1,n))==1
1,n))==1
S(t,n) = 0;
p(t,n) = 1;
elseif A(X(t-1,n),Y(t-1,n)-1)==1
1,n)+1)==1
S(t,n) = 1;
p(t,n) = 3;
elseif A(X(t-1,n)+1,Y(t-1,n))==1
1,n)-1)==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 5;
else
p(t,n) = 3;
end
elseif A(X(t-1,n)+1,Y(t-1,n))==1
1,n)+1)==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 4;
else
p(t,n) = 3;
end
elseif A(X(t-1,n)-1,Y(t-1,n))==1
1,n)+1)==1
S(t,n) = 1;
p(t,n) = 4;
elseif A(X(t-1,n)-1,Y(t-1,n))==1
1,n)-1)==1
S(t,n) = 1;
p(t,n) = 5;
elseif A(X(t-1,n)+1,Y(t-1,n))==1
S(t,n) = 1;
p(t,n) = 3;
elseif A(X(t-1,n),Y(t-1,n)+1)==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 4;
else
p(t,n) = 3;
end
elseif A(X(t-1,n)-1,Y(t-1,n))==1

&& A(X(t-1,n),Y(t-

&& A(X(t-1,n)+1,Y(t-

&& A(X(t-1,n),Y(t-

&& A(X(t-1,n)-1,Y(t-

&& A(X(t-1,n),Y(t-

&& A(X(t-1,n),Y(t-

&& A(X(t-1,n),Y(t-

&& A(X(t-1,n),Y(t-

&& A(X(t-1,n),Y(t-

19
S(t,n) = 0;
p(t,n) = 1;
elseif A(X(t-1,n),Y(t-1,n)-1)==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 5;
else
p(t,n) = 3;
end
else
S(t,n) = 1;
p(t,n) = 3;
end
elseif p(t-1,n)==4 %utara
if A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1 && A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t-1,n)1)==1
S(t,n) = 0;
p(t,n) = 1;
elseif A(X(t-1,n),Y(t-1,n)+1)==1 && A(X(t-1,n)-1,Y(t1,n))==1 && A(X(t-1,n),Y(t-1,n)-1)==1
S(t,n) = 1;
p(t,n) = 2;
elseif A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)-1)==1 && A(X(t-1,n)+1,Y(t-1,n))==1
S(t,n) = 0;
p(t,n) = 1;
elseif A(X(t-1,n),Y(t-1,n)-1)==1 && A(X(t-1,n)+1,Y(t1,n))==1 && A(X(t-1,n),Y(t-1,n)+1)==1
S(t,n) = 1;
p(t,n) = 3;
elseif A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1 && A(X(t-1,n)-1,Y(t-1,n))==1
S(t,n) = 1;
p(t,n) = 4;
elseif A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n)-1,Y(t1,n))==1
S(t,n) = 1;
p(t,n) = 4;
elseif A(X(t-1,n),Y(t-1,n)-1)==1 && A(X(t-1,n),Y(t1,n)+1)==1
S(t,n) = 0;
p(t,n) = 1;
elseif A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)-1)==1
S(t,n) = 1;
p(t,n) = 3;
elseif A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 4;
else
p(t,n) = 3;
end
elseif A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1

20
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 4;
else
p(t,n) = 2;
end
elseif A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)-1)==1
S(t,n) = 1;
p(t,n) = 2;
elseif A(X(t-1,n)+1,Y(t-1,n))==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 4;
else
p(t,n) = 3;
end
elseif A(X(t-1,n),Y(t-1,n)+1)==1
S(t,n) = 1;
p(t,n) = 4;
elseif A(X(t-1,n)-1,Y(t-1,n))==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 4;
else
p(t,n) = 2;
end
elseif A(X(t-1,n),Y(t-1,n)-1)==1
S(t,n) = 0;
p(t,n) = 1;
else
S(t,n) = 1;
p(t,n) = 4;
end
elseif p(t-1,n)==5 %selatan
if A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1 && A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t-1,n)1)==1
S(t,n) = 0;
p(t,n) = 1;
elseif A(X(t-1,n),Y(t-1,n)+1)==1 && A(X(t-1,n)-1,Y(t1,n))==1 && A(X(t-1,n),Y(t-1,n)-1)==1
S(t,n) = 1;
p(t,n) = 2;
elseif A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)-1)==1 && A(X(t-1,n)+1,Y(t-1,n))==1
S(t,n) = 1;
p(t,n) = 5;
elseif A(X(t-1,n),Y(t-1,n)-1)==1 && A(X(t-1,n)+1,Y(t1,n))==1 && A(X(t-1,n),Y(t-1,n)+1)==1
S(t,n) = 1;
p(t,n) = 3;
elseif A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1 && A(X(t-1,n)-1,Y(t-1,n))==1
S(t,n) = 0;
p(t,n) = 1;

21
elseif A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n)-1,Y(t1,n))==1
S(t,n) = 1;
p(t,n) = 5;
elseif A(X(t-1,n),Y(t-1,n)-1)==1 && A(X(t-1,n),Y(t1,n)+1)==1
S(t,n) = 0;
p(t,n) = 1;
elseif A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)-1)==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 3;
else
p(t,n) = 5;
end
elseif A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1
S(t,n) = 1;
p(t,n) = 3;
elseif A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1
S(t,n) = 1;
p(t,n) = 2;
elseif A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)-1)==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 2;
else
p(t,n) = 5;
end
elseif A(X(t-1,n)+1,Y(t-1,n))==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 3;
else
p(t,n) = 5;
end
elseif A(X(t-1,n),Y(t-1,n)+1)==1
S(t,n) = 0;
p(t,n) = 1;
elseif A(X(t-1,n)-1,Y(t-1,n))==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 2;
else
p(t,n) = 5;
end
elseif A(X(t-1,n),Y(t-1,n)-1)==1
S(t,n) = 1;
p(t,n) = 5;
else
S(t,n) = 1;
p(t,n) = 5;

22
end
else %momentum nol
if A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1 && A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t-1,n)1)==1
S(t,n) = 0;
p(t,n) = 1;
elseif A(X(t-1,n),Y(t-1,n)+1)==1 && A(X(t-1,n)-1,Y(t1,n))==1 && A(X(t-1,n),Y(t-1,n)-1)==1
S(t,n) = 1;
p(t,n) = 2;
elseif A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)-1)==1 && A(X(t-1,n)+1,Y(t-1,n))==1
S(t,n) = 1;
p(t,n) = 5;
elseif A(X(t-1,n),Y(t-1,n)-1)==1 && A(X(t-1,n)+1,Y(t1,n))==1 && A(X(t-1,n),Y(t-1,n)+1)==1
S(t,n) = 1;
p(t,n) = 3;
elseif A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1 && A(X(t-1,n)-1,Y(t-1,n))==1
S(t,n) = 1;
p(t,n) = 4;
elseif A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n)-1,Y(t1,n))==1
S(t,n) = 0;
p(t,n) = 1;
elseif A(X(t-1,n),Y(t-1,n)-1)==1 && A(X(t-1,n),Y(t1,n)+1)==1
S(t,n) = 0;
p(t,n) = 1;
elseif A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)-1)==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 3;
else
p(t,n) = 5;
end
elseif A(X(t-1,n)+1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 3;
else
p(t,n) = 4;
end
elseif A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)+1)==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 2;
else
p(t,n) = 4;
end

23
elseif A(X(t-1,n)-1,Y(t-1,n))==1 && A(X(t-1,n),Y(t1,n)-1)==1
S(t,n) = 1;
a = randint(1,1,2);
if a == 1
p(t,n) = 2;
else
p(t,n) = 5;
end
elseif A(X(t-1,n)+1,Y(t-1,n))==1
S(t,n) = 1;
p(t,n) = 3;
elseif A(X(t-1,n),Y(t-1,n)+1)==1
S(t,n) = 1;
p(t,n) = 4;
elseif A(X(t-1,n)-1,Y(t-1,n))==1
S(t,n) = 1;
p(t,n) = 2;
elseif A(X(t-1,n),Y(t-1,n)-1)==1
S(t,n) = 1;
p(t,n) = 5;
else
S(t,n) = 0;
p(t,n) = 1;
end
end
end
%evolusi momentum
for n=1:N
if S(t,n)==0
p(t,n)=1;
else
p(t,n)=p(t,n);
end
end
%evolusi posisi
for n=1:N
%jika posisi t-1 + p terisi, maka diam
%jika posisi t-1 + p kosong, maka pindah ke sana
%p(t,n) = 0 tidak bergerak
%p(t,n) = 1 ke utara
%p(t,n) = 2 ke selatan
%p(t,n) = 3 ke timur
%p(t,n) = 4 ke barat
if p(t,n)==2
%ke timur
[X,Y,A] = timur(t,n,X,Y,A);
elseif p(t,n)==3
%ke barat
[X,Y,A] = barat(t,n,X,Y,A);
elseif p(t,n)==4
%ke utara
[X,Y,A] = utara(t,n,X,Y,A);
elseif p(t,n)==5
%ke selatan
[X,Y,A] = selatan(t,n,X,Y,A);
else

24
%berhenti
[X,Y,A] = berhenti(t,n,X,Y,A);
end
end
D = tampilkan(A);
%delay
%delay(10,D)
k = 148;
while k>4
Nright(t,1) = Nright(t,1) + sum(A(k,152-k:148));
k = k-1;
end
end

Lampiran 4 Fungsi Matlab: timur.m
function [X,Y,A] = timur(t,n,X,Y,A)
%ke timur
X(t,n) = X(t-1,n)+1;
Y(t,n) = Y(t-1,n);
%jika X(t,n) dan Y(t,n) kosong maka isi
%jika X(t,n) dan Y(t,n) terisi maka:
%X(t,n) = X(t-1,n);
%Y(t,n) = Y(t-1,n);
if A(X(t,n),Y(t,n))==0
A(X(t,n),Y(t,n))=1;
A(X(t-1,n),Y(t-1,n))=0;
else
X(t,n) = X(t-1,n);
Y(t,n) = Y(t-1,n);
end

Lampiran 5 Fungsi Matlab: barat.m
function [X,Y,A] = barat(t,n,X,Y,A)
%ke barat
X(t,n) = X(t-1,n)-1;
Y(t,n) = Y(t-1,n);
%jika X(t,n) dan Y(t,n) kosong maka isi
%jika X(t,n) dan Y(t,n) terisi maka:
%X(t,n) = X(t-1,n);
%Y(t,n) = Y(t-1,n);
if A(X(t,n),Y(t,n))==0
A(X(t,n),Y(t,n))=1;
A(X(t-1,n),Y(t-1,n))=0;
else
X(t,n) = X(t-1,n);
Y(t,n) = Y(t-1,n);
end

Lampiran 6 Fungsi Matlab: utara.m
function [X,Y,A] = utara(t,n,X,Y,A)
%ke utara
X(t,n) = X(t-1,n);

25
Y(t,n) = Y(t-1,n)-1;
%jika X(t,n) dan Y(t,n) kosong maka isi
%jika X(t,n) dan Y(t,n) terisi maka:
%X(t,n) = X(t-1,n);
%Y(t,n) = Y(t-1,n);
if A(X(t,n),Y(t,n))==0
A(X(t,n),Y(t,n))=1;
A(X(t-1,n),Y(t-1,n))=0;
else
X(t,n) = X(t-1,n);
Y(t,n) = Y(t-1,n);
end

Lampiran 7 Fungsi Matlab: selatan.m
function [X,Y,A] = selatan(t,n,X,Y,A)
%ke selatan
X(t,n) = X(t-1,n);
Y(t,n) = Y(t-1,n)+1;
%jika X(t,n) dan Y(t,n) kosong maka isi
%jika X(t,n) dan Y(t,n) terisi maka:
%X(t,n) = X(t-1,n);
%Y(t,n) = Y(t-1,n);
if A(X(t,n),Y(t,n))==0
A(X(t,n),Y(t,n))=1;
A(X(t-1,n),Y(t-1,n))=0;
else
X(t,n) = X(t-1,n);
Y(t,n) = Y(t-1,n);
end

Lampiran 8 Program Matlab untuk simulasi arus lalu lintas
maju1

kondisiawal

Program
pemanggil

mencacah

maju2

SimulasiMultiAgent102

kekanan

tampilkan
TrafficEntropy

Lampiran 9 Fungsi pemanggil untuk simulasi arus lalu lintas
clc;
clear;
%pemanggil Simulasi Multi Agent

kekiri

kekanankiri

26
B = zeros(5,400);
B(1,:) = 0.5;
B(5,:) = 0.5;
xinit = xlsread('kondisi awal.xls','sheet3');
yinit = xlsread('kondisi awal.xls','sheet4');
N = length(xinit);
a = 1;
b = 52;
L = b-a+1;
T = 60;
lajur = 3;
[X,Y,A,nl] = SimulasiMultiAgent102(xinit,yinit,B,T,L,lajur);
[Sl,W] = TrafficEntropy(nl,L,T,lajur);

Lampiran 10 Fungsi Matlab: SimulasiMultiAgent102.m
function [X,Y,A,nl] =
SimulasiMultiAgent102(Xinit,Yinit,B,T,l,lajur)
N = length(Xinit);
%X fungsi posisi
%S fungsi state {0,1}, P momentum {00,01,0-1,10,-10}
%B background
X = ones(T,N);
Y = ones(T,N);
nl = zeros(T,lajur);
X(1,:) = Xinit;
Y(1,:) = Yinit;
C = B;
A = B;
for n=1:N
A(Y(1,n),X(1,n))=1;
end
tampilkan(A);
xrata = sum(X(1,:))/N;
xrata1 = round(xrata);
nl(1,:) = mencacah(A,xrata1-0.5*l,xrata1+0.5*l,lajur);
for t=2:T
A = C;
%evolusi posisi
for n=1:N
if A(Y(t-1,n),X(t-1,n)+1)==0 && A(Y(t-1,n),X(t-1,n)+2)==0
%maju
[X,Y,C] = maju2(t,n,X,Y,C);
elseif A(Y(t-1,n),X(t-1,n)+1)==0 && A(Y(t-1,n),X(t1,n)+2)~=0
%maju
[X,Y,C] = maju1(t,n,X,Y,C);
elseif A(Y(t-1,n)-1,X(t-1,n)+1)==0 && A(Y(t-1,n)+1,X(t1,n)+1)==0
%ke kanan/kiri
[X,Y,C] = kekanankiri(t,n,X,Y,C);
elseif A(Y(t-1,n)-1,X(t-1,n)+1)==0
%ke kiri
[X,Y,C] = kekiri(t,n,X,Y,C);
elseif A(Y(t-1,n),X(t-1,n)+1)==0
%ke kanan
[X,Y,C] = kekanan(t,n,X,Y,C);
else

27
%berhenti
[X,Y,C] = berhenti(t,n,X,Y,C);
end
end
D = tampilkan(C);
%delay
%delay(10,D)
xrata = sum(X(t,:))/N;
xrata1 = round(xrata);
nl(t,:) = mencacah(C,xrata1-0.5*l,xrata1+0.5*l,lajur);
end

Lampiran 11 Fungsi Matlab: maju1.m
function [X,Y,A] = maju1(t,n,X,Y,A)
X(t,n) = X(t-1,n)+1;
Y(t,n) = Y(t-1,n);
if A(Y(t,n),X(t,n))==0
A(Y(t,n),X(t,n))=1;
A(Y(t-1,n),X(t-1,n))=0;
else
X(t,n) = X(t-1,n);
Y(t,n) = Y(t-1,n);
end

Lampiran 12 Fungsi Matlab: maju2.m
function [X,Y,A] = maju2(t,n,X,Y,A)
X(t,n) = X(t-1,n)+2;
Y(t,n) = Y(t-1,n);
if A(Y(t,n),X(t,n))==0
A(Y(t,n),X(t,n))=1;
A(Y(t-1,n),X(t-1,n))=0;
else
X(t,n) = X(t-1,n);
Y(t,n) = Y(t-1,n);
end

Lampiran 13 Fungsi Matlab: kekanan.m
function [X,Y,A] = kekanan(t,n,X,Y,A)
X(t,n) = X(t-1,n)+1;
Y(t,n) = Y(t-1,n)+1;
if A(Y(t,n),X(t,n))==0
A(Y(t,n),X(t,n))=1;
A(Y(t-1,n),X(t-1,n))=0;
else
X(t,n) = X(t-1,n);
Y(t,n) = Y(t-1,n);
end

Lampiran 14 Fungsi Matlab: kekiri.m
function [X,Y,A] = kekiri(t,n,X,Y,A)

28
X(t,n) = X(t-1,n)+1;
Y(t,n) = Y(t-1,n)-1;
if A(Y(t,n),X(t,n))==0
A(Y(t,n),X(t,n))=1;
A(Y(t-1,n),X(t-1,n))=0;
else
X(t,n) = X(t-1,n);
Y(t,n) = Y(t-1,n);
end

Lampiran 15 Fungsi Matlab: kekanankiri.m
function [X,Y,A] = kekanankiri(t,n,X,Y,A)
a = randint(1,1,2);
if a == 1
X(t,n) = X(t-1,n)+1;
Y(t,n) = Y(t-1,n)+1;
else
X(t,n) = X(t-1,n)+1;
Y(t,n) = Y(t-1,n)-1;
end
if A(Y(t,n),X(t,n))==0
A(Y(t,n),X(t,n))=1;
A(Y(t-1,n),X(t-1,n))=0;
else
X(t,n) = X(t-1,n);
Y(t,n) = Y(t-1,n);
end

Lampiran 16 Fungsi Matlab: mencacah.m
function nl = mencacah(C,a,b,lajur)
nl = zeros(1,lajur);
for n=1:lajur
nl(1,n) = sum(C(n+1,a:b));
end

Lampiran 17 Fungsi Matlab: TrafficEntropy.m
function [Sl,W] = TrafficEntropy(nl,L,T,lajur)
W = ones(T,lajur);
Sl = ones(T,lajur+1);
for t=1:T
for n=1:lajur
W(t,n)=factorial(L)/(factorial(nl(t,n))*factorial(Lnl(t,n)));
Sl(t,n) = log(W(t,n));
end
Sl(t,lajur+1) = sum(Sl(t,:));
end

Lampiran 18 Fungsi Matlab: tampilkan.m
function D = tampilkan(C)

29
M = size(C);
D = zeros(M(1,1),M(1,2));
for i = 1:M(1,1)
D(i,:) = C(i,:);
end
figure(2)
imshow(D,'InitialMagnification',200);

30

RIWAYAT HIDUP
Penulis dilahirkan di Cianjur, 18 Juli 1991 dari pasangan Saepudin dan
Nenah. Penulis adalah anak kedua dari empat bersaudara. Riwayat pendidikan
dimulai dari RA Al Islamiyah (1997-1998), SDN Girimukti (1998-2004), SMPN
1 Cipanas (2004-2007), SMAN 1 Sukaresmi (2007-2010), dan masuk ke IPB
tahun 2010 melalui jalur USMI.
Penulis pernah menjadi asisten praktikum mata kuliah Eksperimen Fisika I,
Eksperimen Fisika II, dan asisten responsi mata kuliah Fisika Matematika II, serta
aktif dalam keorganisasian Himpunan Mahasiswa Fisika (HIMAFI) sebagai staf
Departemen Komunikasi dan Informasi, di antaranya pernah menjadi ketua
panitia Temu Alumni Fisika dan Fieldtrip. Selain itu penulis pernah mengikuti
kegiatan Seminar Nasional dan Rapat Tahunan MIPA 2014, Conference on
Theoretical Physics and Nonlinear Physics 2013, Physics Expo, Seminar Robotika,
Pesta Sains Nasional, dan Physics Goes to School. Serta pada tahun 2013
mendapat hibah Program Kreativitas Mahasiswa di bidang karsa cipta.