• Tidak ada hasil yang ditemukan

MEMBANGUN MODEL PETRI NET LAMPU LALULINTAS DAN SIMULASINYA

N/A
N/A
Protected

Academic year: 2021

Membagikan "MEMBANGUN MODEL PETRI NET LAMPU LALULINTAS DAN SIMULASINYA"

Copied!
415
0
0

Teks penuh

(1)

TESIS SM2310

MEMBANGUN MODEL PETRI NET

LAMPU LALULINTAS DAN SIMULASINYA

DIEKY ADZKIYA NRP. 1205 201 009 DOSEN PEMBIMBING Dr. Subiono M.S PROGRAM MAGISTER JURUSAN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT TEKNOLOGI SEPULUH NOPEMBER

SURABAYA 2008

(2)
(3)

TESIS SM2310

MEMBANGUN MODEL PETRI NET

LAMPU LALULINTAS DAN SIMULASINYA

DIEKY ADZKIYA NRP. 1205 201 009 DOSEN PEMBIMBING Dr. Subiono M.S PROGRAM MAGISTER JURUSAN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT TEKNOLOGI SEPULUH NOPEMBER

SURABAYA 2008

(4)
(5)

MEMBANGUN MODEL PETRI NET LAMPU LALULINTAS DAN SIMULASINYA

Tesis disusun untuk memenuhi salah satu syarat memperoleh gelar Magister Sains (M.Si)

di

Institut Teknologi Sepuluh Nopember

oleh : Dieky Adzkiya Nrp. 1205 201 009

Tanggal Ujian : 31 Juli 2008 Periode Wisuda : September 2008

Disetujui oleh:

1. Dr. Subiono M.S (Pembimbing)

NIP: 131 413 442

2. Drs. Hariyanto M.Si (Penguji)

NIP: 131 124 884

3. Drs. Sulistiyo MT (Penguji)

NIP: 131 651 249

4. Drs. I Gusti Ngurah Rai Usadha M.Si (Penguji) NIP: 131 846 103

Direktur Program Pascasarjana

Prof. Dr. Ir. Suparno MSIE NIP. 130 532 035

(6)
(7)

MEMBANGUN MODEL PETRI NET LAMPU LALULINTAS DAN SIMULASINYA

Nama Mahasiswa : Dieky Adzkiya

NRP : 1205 201 009

Pembimbing : Dr. Subiono M.S

ABSTRAK

Petri net dapat digunakan untuk memodelkan sistem event diskrit. Salah satu contoh sistem event diskrit adalah dinamika lampu lalulintas yang menyala. Dalam penelitian ini dibangun Petri net lampu lalulintas yang men-cantumkan waktu tunggu di persimpangan dengan jumlah jalur sebarang da-lam bentuk algoritma. Petri net yang dibangun kemudian dianalisis dan di-reduksi. Analisis Petri net meliputi keterbatasan (boundedness), konservasi (conservation) dan coverability keadaan. Reduksi bertujuan mengurangi di-mensi ruang keadaan.

Jumlah place dan transisi Petri net lampu lalulintas di persimpangan masing-masing sebanyak 5ℓ dan 4ℓ dengan ℓ menyatakan jumlah jalur di per-simpangan. Sifat Petri net adalah terbatas (bounded ), tidak konservatif dan banyak keadaan yang coverable berhingga. Reduksi keadaan menyebabkan jumlah place Petri net menjadi ℓ + 4 tetapi tidak mengubah sifatnya.

Distribusi normal dan uniform digunakan untuk mendekati jumlah ke-datangan pengguna di persimpangan. Jumlah keke-datangan yang dibangkitkan dengan distribusi normal dibulatkan ke bilangan bulat terdekat. Pendekatan ini digunakan untuk mensimulasikan jumlah pengguna di persimpangan. Dari hasil simulasi dapat dihitung mean dan maksimum jumlah pengguna di setiap jalur. Kedua hasil tersebut dapat digunakan untuk menentukan kestabilan sistem. Jika mean dan maksimum jumlah pengguna konvergen maka sistem stabil tetapi jika keduanya tidak konvergen maka sistem tidak stabil.

(8)
(9)

MODELING TRAFFIC LIGHTS USING PETRI NET AND ITS SIMULATION

By : Dieky Adzkiya

Student Identity Number : 1205 201 009

Supervisor : Dr. Subiono M.S

ABSTRACT

We use Petri net to model discrete event systems. An example of these systems is traffic lights dynamics. In this research we design algorithms to build Petri net for traffic lights with waiting times in an intersection. Then we analyze the Petri net and reduce its state. The analysis consists of bounded-ness, conservation and state coverability. We reduce state of the Petri net to minimize its state space dimension.

Petri net for traffic lights in intersection has 5ℓ place and 4ℓ transition with ℓ represents number of lanes in intersection. Properties of the Petri net are bounded, not conservative and finite coverable state. Number of place in Petri net become ℓ + 4 after we reduce its state. Properties of the Petri net don’t changed.

We approximate number of vehicle’s arrival using normal and uniform distribution. Number of vehicle’s arrival generated from normal distribution is rounded to closest integer. We use these approximation to simulate number of vehicle in intersection. We calculate number of vehicle’s mean and maximum in each lanes to check stability of the system. If number of vehicle’s mean and maximum is converge then the system is stable but if these don’t converge then the system is not stable.

(10)
(11)

KATA PENGANTAR

Segala puji bagi Allah SWT yang telah memberikan karunia-Nya berupa kekuatan iman serta kesehatan sehingga penulis dapat menyele-saikan tesis dengan judul

“Membangun Model Petri net Lampu Lalulintas dan Simulasinya”

sesuai dengan keinginan dan tepat waktu. Keinginan penulis adalah membuat laporan dengan LATEX dan memanfaatkan perangkat lunak yang gratis. Dalam

mengerjakan penelitian ini, penulis tidak lepas dari bantuan beberapa pihak diantaranya:

1. Prof. Dr. Ir. Suparno MSIE selaku Direktur Program Pascasarjana ITS.

2. Dr. M. Isa Irawan MT selaku Koordinator Program Studi Pascasarjana Matematika ITS.

3. Dr. Subiono M.S selaku dosen pembimbing telah mengarahkan dan memotivasi penulis untuk segera menyelesaikan studi.

4. Dosen penguji atas saran dan informasi yang telah diberikan.

5. Drs. Sadjidon M.Si selaku dosen wali penulis.

6. Seluruh dosen Jurusan Matematika FMIPA ITS yang telah mendidik penulis baik di dalam kuliah maupun di luar kuliah.

7. Kedua Orang Tua dan seluruh keluarga atas perhatian, doa dan segala dukungannya selama ini. Baity Jannaty dan Via Salavia yang telah memberikan suntikan semangat kepada penulis.

8. Mas Hanif, mas Ibad, Lubab, Afif, Arif, pak Zaenal dan Rudi yang telah mengobati kegundahan hati penulis selama ini.

9. Budi, Zaenal dan Erdy yang telah menemani dan membantu penulis dalam suka maupun duka.

10. Mas Ghozali yang selalu menjadi teman dalam mencurahkan segala isi hati penulis.

(12)

Semoga Allah SWT membalas segala budi baik yang telah diberikan kepada penulis dengan limpahan rahmat dan hidayah. Dalam menyusun la-poran ini, penulis berusaha memberikan keterangan yang lengkap dan contoh yang sederhana agar materi yang disajikan mudah dipahami.

Akhirnya penulis menyadari bahwa tesis ini masih banyak terdapat kekurangan yang semuanya disebabkan oleh kelemahan dan keterbatasan pe-nulis. Saran dan kritik demi perbaikan di masa datang akan sangat penulis hargai.

Surabaya, Agustus 2008

(13)

DAFTAR ISI

LEMBAR PENGESAHAN . . . i

ABSTRAK . . . iii

ABSTRACT . . . v

KATA PENGANTAR . . . vii

DAFTAR ISI . . . viii

DAFTAR GAMBAR . . . xii

DAFTAR TABEL . . . xv

DAFTAR ALGORITMA . . . xxi

BAB 1 PENDAHULUAN . . . 1

1.1 Latar Belakang . . . 1

1.2 Rumusan Masalah . . . 3

1.3 Batasan Masalah . . . 3

1.4 Tujuan dan Manfaat . . . 3

BAB 2 KAJIAN PUSTAKA DAN TEORI DASAR . . . 5

2.1 Notasi dan Definisi . . . 5

2.2 Tanda Petri net dan Ruang Keadaan . . . 8

2.3 Dinamika Petri net . . . 16

2.4 Representasi Petri net Menggunakan Matriks . . . 23

2.5 Analisis Model Sistem Event Diskrit Tak Berwaktu . . . 27

2.5.1 Liveness dan Deadlocks . . . 28

2.5.2 Coverability Tree . . . 30

2.5.2.1 Definisi Coverability Tree . . . 36

2.5.2.2 Menentukan parent bertingkat . . . 39

2.5.2.3 Menguji hubungan dominasi . . . 45

2.5.2.4 Mencari Keberadaan Node Duplicate . . . 49

2.5.2.5 Membangun Coverability Tree . . . 53

2.5.3 Keterbatasan (boundedness) . . . 62

2.5.4 Konservasi (conservation) . . . 67

2.5.5 Coverability Keadaan . . . 70

BAB 3 METODA PENELITIAN . . . 75

3.1 Tahap-tahap Penelitian . . . 75

3.2 Diagram Alir Penelitian . . . 76

BAB 4 PETRI NET DAN SIMULASI PENGGUNA . . . 77

(14)

4.2 Petri net Lampu Lalulintas Sederhana . . . 78

4.2.1 Matriks Incidence . . . 80

4.2.2 Coverability Tree . . . 81

4.2.3 Konservasi . . . 82

4.3 Petri net Lampu Lalulintas Dengan Waktu Tunggu . . . 82

4.3.1 Matriks Incidence . . . 85

4.3.2 Coverability Tree . . . 86

4.3.3 Konservasi . . . 89

4.4 Petri net Lampu Lalulintas Tanpa Waktu Idle . . . 90

4.4.1 Matriks Incidence . . . 93

4.4.2 Coverability Tree . . . 95

4.4.3 Konservasi . . . 97

4.5 Petri net Lampu Lalulintas di Persimpangan . . . 98

4.5.1 Matriks Incidence . . . 104

4.5.2 Coverability Tree . . . 109

4.5.3 Konservasi . . . 118

4.6 Reduksi Keadaan Petri net Lampu Lalulintas . . . 121

4.6.1 Matriks Incidence . . . 124

4.6.2 Coverability Tree . . . 128

4.6.3 Konservasi . . . 137

4.7 Simulasi Jumlah Pengguna di Persimpangan . . . 140

4.7.1 Kedatangan Berdistribusi Normal . . . 142

4.7.2 Kedatangan Berdistribusi Uniform . . . 158

BAB 5 IMPLEMENTASI DAN EVALUASI . . . 171

5.1 Pengujian Sifat Pure pada Petri net . . . 171

5.2 Menentukan Transisi Enabled . . . 172

5.3 Pemfirean Transisi . . . 173

5.4 Pengujian Dominasi . . . 174

5.5 Membangun Coverability Tree . . . 176

5.6 Menentukan Batas Atas Place di Petri net . . . 179

5.7 Menentukan Place yang terbatas (bounded ) . . . 180

5.8 Keterbatasan (boundedness) pada Petri net . . . 181

5.9 Pengujian Konservasi (Conservation) . . . 182

5.10 Pengujian Cover Dua Keadaan . . . 184

5.11 Pengujian Coverable . . . 185

5.12 Keadaan Setelah Pemfirean Transisi yang Enabled . . . 186

(15)

5.14 Petri net Lampu Lalulintas . . . 191

5.14.1 Lampu Lalulintas Sederhana . . . 191

5.14.2 Lampu Lalulintas dengan Waktu Tunggu . . . 192

5.14.3 Lampu Lalulintas Tanpa Waktu Idle . . . 194

5.14.4 Lampu Lalulintas di Persimpangan . . . 195

5.14.5 Lampu Lalulintas Tereduksi . . . 198

5.15 Simulasi Jumlah Pengguna di Persimpangan . . . 199

5.16 Identifikasi Petri net yang dibuat dengan PIPE . . . 201

5.17 Simulasi Petri net berbasis GUI . . . 202

5.18 Simulasi Petri net yang dibuat dari PIPE . . . 207

5.19 Representasi Grafik dari Coverability Tree . . . 208

5.20 Simulasi Jumlah Pengguna Berbasis GUI . . . 210

5.21 Simulasi Lampu Lalulintas di Persimpangan . . . 213

5.22 Simulasi Lampu Lalulintas Berbasis GUI . . . 216

5.23 Evaluasi Hasil Simulasi . . . 217

5.23.1 Kedatangan Berdistribusi Normal . . . 218

5.23.1.1 Mean Keberangkatan Ketika Lampu Hijau Me-nyala . . . 220

5.23.1.2 Jumlah Jalur di Persimpangan . . . 222

5.23.1.3 Mean Keberangkatan Ketika Lampu Hijau Me-nyala . . . 224

5.23.1.4 Mean Kedatangan . . . 225

5.23.1.5 Lama Lampu Kuning Menyala . . . 226

5.23.1.6 Lama Lampu Hijau Menyala . . . 227

5.23.1.7 Keadaan Awal . . . 229

5.23.2 Kedatangan Berdistribusi Uniform . . . 230

5.23.2.1 Mean Keberangkatan Ketika Lampu Hijau Me-nyala . . . 231

5.23.2.2 Jumlah Jalur di Persimpangan . . . 233

5.23.2.3 Mean Keberangkatan Ketika Lampu Hijau Me-nyala . . . 234

5.23.2.4 Maksimum Kedatangan . . . 235

5.23.2.5 Lama Lampu Kuning Menyala . . . 236

5.23.2.6 Lama Lampu Hijau Menyala . . . 237

5.23.2.7 Keadaan Awal . . . 239

BAB 6 PENUTUP . . . 241

(16)

6.2 Saran . . . 241

LAMPIRAN A SOURCE CODE . . . 243

A.1 File ispure.sci . . . 243

A.2 File findenabled.sci . . . 243

A.3 File isdominate.sci . . . 244

A.4 File buildtree.sci . . . 244

A.5 File findbound.sci . . . 245

A.6 File boundedplace.sci . . . 246

A.7 File ispetrinetbounded.sci . . . 246

A.8 File isconservation.sci . . . 246

A.9 File iscovers.sci . . . 247

A.10 File iscoverable.sci . . . 247

A.11 File findchild.sci . . . 247

A.12 File firingorder.sci . . . 248

A.13 File firingorderbig.sci . . . 249

A.14 File tlintersection.sci . . . 252

A.15 File tlreduced.sci . . . 254

A.16 File intersection.sci . . . 255

A.17 File intersectionext.sci . . . 258

A.18 File readpipe.sci . . . 260

A.19 File petrinetsimulation.sci . . . 264

A.20 File pipesimulation.sci . . . 270

A.21 File treeposition.sci . . . 271

A.22 File covtree.sci . . . 272

A.23 File covpipe.sci . . . 274

A.24 File intersectiongui.sci . . . 275

A.25 File intersectionguiext.sci . . . 279

A.26 File lightsgui.sci . . . 284

A.27 File lightsguiext.sci . . . 291

A.28 File lightsimulation.sci . . . 299

A.29 File lightsimulationext.sci . . . 305

A.30 File buildmacros.sce . . . 310

A.31 File loadmacros.sce . . . 310

A.32 File builder.sce . . . 311

A.33 File loader.sce . . . 311

LAMPIRAN B HASIL SIMULASI . . . 313

(17)

DAFTAR GAMBAR

2.1 Petri net Sederhana . . . 6

2.2 Petri net dengan Transisi yang Tidak Mempunyai Place Input 7 2.3 Contoh Transisi yang Tidak Enabled . . . 9

2.4 Contoh Transisi yang Enabled . . . 10

2.5 Keadaan Awal Petri net . . . 12

2.6 Sebelum Transisi t1 Difire . . . 17

2.7 Sesudah Transisi t1 Difire . . . 18

2.8 Keadaan Awal Petri net Bertanda . . . 20

2.9 Keadaan Petri net Setelah Transisi t1 Difire . . . 21

2.10 Keadaan Petri net Setelah Transisi t1 Difire Kemudian t2 . . . 22

2.11 Keadaan Petri net Setelah Transisi t1 Difire Kemudian t3 . . . 22

2.12 Transisi dengan Liveness Berbeda-beda . . . 29

2.13 Keadaan Awal Petri net . . . 30

2.14 Coverability Tree untuk Petri net di Gambar 2.13 . . . 31

2.15 Keadaan Awal Petri net . . . 32

2.16 Sebagian Coverability Tree Petri net di Gambar 2.15 . . . 32

2.17 Representasi Hingga Coverability Tree di Gambar 2.16 . . . . 35

2.18 Input Algoritma 2.10 adalah idparent = 0 dan idtran = 0 . . 56

2.19 Input Algoritma 2.10 adalah idparent = 1 dan idtran = 1 . . 57

2.20 Input Algoritma 2.10 adalah idparent = 2 dan idtran = 2 . . 58

2.21 Input Algoritma 2.10 adalah idparent = 3 dan idtran = 1 . . 59

2.22 Input Algoritma 2.10 adalah idparent = 4 dan idtran = 2 . . 59

2.23 Algoritma dijalankan dengan Menggunakan Input idparent = 4 dan idtran = 3 . . . 60

2.24 Input Algoritma 2.10 adalah idparent = 2 dan idtran = 3 . . 61

2.25 Petri net Antrian Sederhana . . . 62

2.26 Coverability Tree untuk Petri net Antrian Sederhana . . . 64

3.1 Diagram Alir Penelitian . . . 76

4.1 Petri net Antrian Sederhana . . . 78

4.2 Petri net Sederhana untuk Satu Lampu Lalulintas . . . 79

4.3 Coverability Tree untuk Petri net di Gambar 4.2 . . . 82

4.4 Petri net yang Mengandung Informasi Lama Lampu Lalulintas Menyala . . . 83

(18)

4.6 Keadaan Petri net yang Menyatakan Semua Lampu Lalulintas

Padam . . . 90

4.7 Petri net Lampu Lalulintas Tanpa Waktu Idle . . . 91

4.8 Coverability Tree untuk Petri net di Gambar 4.7 . . . 96

4.9 Model Persimpangan Sederhana . . . 99

4.10 Modifikasi Model Petri net Sebelumnya . . . 100

4.11 Hubungan Place Merah dengan Transisi pada Jalur yang Lain 101 4.12 Modifikasi Petri net untuk Menyatakan Perubahan Jalur . . . 101

4.13 Petri net untuk Dua Lampu Lalulintas . . . 102

4.14 Coverability Tree untuk Petri net di Gambar 4.13 . . . 110

4.15 Hasil Reduksi Keadaan pada Petri net Lampu Lalulintas di Per-simpangan dengan Dua Jalur . . . 122

4.16 Coverability Tree untuk Petri net di Gambar 4.15 . . . 129

4.17 Grafik Perubahan Jumlah Pengguna Terhadap Waktu di Per-simpangan dengan Dua Jalur . . . 158

4.18 Grafik Perubahan Jumlah Pengguna Terhadap Waktu di Per-simpangan Dengan Dua Jalur . . . 169

5.1 Bobot Arc dari Transisi ke Place yaitu Elemen Tidak Nol pada Matriks Forward Incidence . . . 203

5.2 Bobot Arc dari Place ke Transisi yaitu Elemen Tidak Nol pada Matriks Backward Incidence . . . 204

5.3 Jumlah Token Awal pada Setiap Place di Petri net . . . 205

5.4 Nama Transisi yang Enabled . . . 205

5.5 Urutan Transisi yang Difire Sebelumnya . . . 206

5.6 Petri net Mengalami Deadlock . . . 206

5.7 Memilih File xml yang Dibuat dengan PIPE . . . 208

5.8 Coverability Tree Petri net Antrian Sederhana . . . 209

5.9 Menginputkan Jumlah Jalur dan Waktu Simulasi . . . 211

5.10 Menginputkan Data Kondisi Awal, Mean Kedatangan dan Va-rian Kedatangan pada Masing-Masing Jalur . . . 212

5.11 Simulasi Jumlah Pengguna dengan Kedatangan Berdistribusi Normal . . . 213

5.12 Simulasi Lampu Lalulintas di Persimpangan dengan Kedatangan Berdistribusi Normal . . . 214

5.13 Simulasi Lampu Lalulintas di Persimpangan dengan Kedatangan Berdistribusi Uniform . . . 215

(19)

5.15 Memilih Lampu Lalulintas yang Ditampilkan . . . 217 5.16 Perbandingan Jumlah Pengguna Simulasi yang Pertama dan

Ke-dua . . . 221 5.17 Simulasi Jumlah Pengguna dengan Kedatangan Berdistribusi

(20)
(21)

DAFTAR TABEL

5.1 Mean Jumlah Pengguna pada Simulasi Pertama dengan Keda-tangan Berdistribusi Normal . . . 219 5.2 Maksimum Jumlah Pengguna pada Simulasi Pertama dengan

Kedatangan Berdistribusi Normal . . . 219 5.3 Mean Jumlah Pengguna pada Simulasi Kedua dengan

Keda-tangan Berdistribusi Normal . . . 220 5.4 Maksimum Jumlah Pengguna pada Simulasi Kedua dengan

Ke-datangan Berdistribusi Normal . . . 220 5.5 Mean Jumlah Pengguna pada Simulasi Ketiga dengan

Keda-tangan Berdistribusi Normal . . . 222 5.6 Maksimum Jumlah Pengguna pada Simulasi Ketiga dengan

Ke-datangan Berdistribusi Normal . . . 222 5.7 Mean Jumlah Pengguna pada Simulasi Keempat dengan

Keda-tangan Berdistribusi Normal . . . 224 5.8 Maksimum Jumlah Pengguna pada Simulasi Keempat dengan

Kedatangan Berdistribusi Normal . . . 224 5.9 Mean Jumlah Pengguna pada Simulasi Kelima dengan

Keda-tangan Berdistribusi Normal . . . 225 5.10 Maksimum Jumlah Pengguna pada Simulasi Kelima dengan

Ke-datangan Berdistribusi Normal . . . 226 5.11 Mean Jumlah Pengguna pada Simulasi Keenam dengan

Keda-tangan Berdistribusi Normal . . . 227 5.12 Maksimum Jumlah Pengguna pada Simulasi Keenam dengan

Kedatangan Berdistribusi Normal . . . 227 5.13 Mean Jumlah Pengguna pada Simulasi Ketujuh dengan

Keda-tangan Berdistribusi Normal . . . 228 5.14 Maksimum Jumlah Pengguna pada Simulasi Ketujuh dengan

Kedatangan Berdistribusi Normal . . . 228 5.15 Mean Jumlah Pengguna pada Simulasi Kedelapan dengan

Ke-datangan Berdistribusi Normal . . . 229 5.16 Maksimum Jumlah Pengguna pada Simulasi Kedelapan dengan

Kedatangan Berdistribusi Normal . . . 230 5.17 Mean Jumlah Pengguna pada Simulasi Pertama dengan

(22)

5.18 Maksimum Jumlah Pengguna pada Simulasi Pertama dengan Kedatangan Berdistribusi Uniform . . . 231 5.19 Mean Jumlah Pengguna pada Simulasi Kedua dengan

Keda-tangan Berdistribusi Uniform . . . 232 5.20 Maksimum Jumlah Pengguna pada Simulasi Kedua dengan

Ke-datangan Berdistribusi Uniform . . . 232 5.21 Mean Jumlah Pengguna pada Simulasi Ketiga dengan

Keda-tangan Berdistribusi Uniform . . . 233 5.22 Maksimum Jumlah Pengguna pada Simulasi Ketiga dengan

Ke-datangan Berdistribusi Uniform . . . 234 5.23 Mean Jumlah Pengguna pada Simulasi Keempat dengan

Keda-tangan Berdistribusi Uniform . . . 235 5.24 Maksimum Jumlah Pengguna pada Simulasi Keempat dengan

Kedatangan Berdistribusi Uniform . . . 235 5.25 Mean Jumlah Pengguna pada Simulasi Kelima dengan

Keda-tangan Berdistribusi Uniform . . . 236 5.26 Maksimum Jumlah Pengguna pada Simulasi Kelima dengan

Ke-datangan Berdistribusi Uniform . . . 236 5.27 Mean Jumlah Pengguna pada Simulasi Keenam dengan

Keda-tangan Berdistribusi Uniform . . . 237 5.28 Maksimum Jumlah Pengguna pada Simulasi Keenam dengan

Kedatangan Berdistribusi Uniform . . . 237 5.29 Mean Jumlah Pengguna pada Simulasi Ketujuh dengan

Keda-tangan Berdistribusi Uniform . . . 238 5.30 Maksimum Jumlah Pengguna pada Simulasi Ketujuh dengan

Kedatangan Berdistribusi Uniform . . . 238 5.31 Mean Jumlah Pengguna pada Simulasi Kedelapan dengan

Ke-datangan Berdistribusi Uniform . . . 239 5.32 Maksimum Jumlah Pengguna pada Simulasi Kedelapan dengan

Kedatangan Berdistribusi Uniform . . . 239 B.1 Mean Simulasi Pertama di Jalur 1 Berdistribusi Normal . . . . 313 B.2 Mean Simulasi Pertama di Jalur 2 Berdistribusi Normal . . . . 314 B.3 Maksimum Simulasi Pertama di Jalur 1 Berdistribusi Normal . 315 B.4 Maksimum Simulasi Pertama di Jalur 2 Berdistribusi Normal . 316 B.5 Waktu Komputasi Simulasi Pertama Berdistribusi Normal . . 316 B.6 Mean Simulasi Kedua di Jalur 1 Berdistribusi Normal . . . 317 B.7 Mean Simulasi Kedua di Jalur 2 Berdistribusi Normal . . . 318

(23)

B.8 Maksimum Simulasi Kedua di Jalur 1 Berdistribusi Normal . . 319 B.9 Maksimum Simulasi Kedua di Jalur 2 Berdistribusi Normal . . 320 B.10 Waktu Komputasi Simulasi Kedua Berdistribusi Normal . . . 320 B.11 Mean Simulasi Ketiga di Jalur 1 Berdistribusi Normal . . . 321 B.12 Mean Simulasi Ketiga di Jalur 2 Berdistribusi Normal . . . 322 B.13 Mean Simulasi Ketiga di Jalur 3 Berdistribusi Normal . . . 323 B.14 Maksimum Simulasi Ketiga di Jalur 1 Berdistribusi Normal . . 324 B.15 Maksimum Simulasi Ketiga di Jalur 2 Berdistribusi Normal . . 325 B.16 Maksimum Simulasi Ketiga di Jalur 3 Berdistribusi Normal . . 326 B.17 Waktu Komputasi Simulasi Ketiga Berdistribusi Normal . . . 326 B.18 Mean Simulasi Keempat di Jalur 1 Berdistribusi Normal . . . 327 B.19 Mean Simulasi Keempat di Jalur 2 Berdistribusi Normal . . . 328 B.20 Mean Simulasi Keempat di Jalur 3 Berdistribusi Normal . . . 329 B.21 Maksimum Simulasi Keempat di Jalur 1 Berdistribusi Normal 330 B.22 Maksimum Simulasi Keempat di Jalur 2 Berdistribusi Normal 331 B.23 Maksimum Simulasi Keempat di Jalur 3 Berdistribusi Normal 332 B.24 Waktu Komputasi Simulasi Keempat Berdistribusi Normal . . 332 B.25 Mean Simulasi Kelima di Jalur 1 Berdistribusi Normal . . . . 333 B.26 Mean Simulasi Kelima di Jalur 2 Berdistribusi Normal . . . . 334 B.27 Maksimum Simulasi Kelima di Jalur 1 Berdistribusi Normal . 335 B.28 Maksimum Simulasi Kelima di Jalur 2 Berdistribusi Normal . 336 B.29 Waktu Komputasi Simulasi Kelima Berdistribusi Normal . . . 336 B.30 Mean Simulasi Keenam di Jalur 1 Berdistribusi Normal . . . . 337 B.31 Mean Simulasi Keenam di Jalur 2 Berdistribusi Normal . . . . 338 B.32 Maksimum Simulasi Keenam di Jalur 1 Berdistribusi Normal . 339 B.33 Maksimum Simulasi Keenam di Jalur 2 Berdistribusi Normal . 340 B.34 Waktu Komputasi Simulasi Keenam Berdistribusi Normal . . 340 B.35 Mean Simulasi Ketujuh di Jalur 1 Berdistribusi Normal . . . . 341 B.36 Mean Simulasi Ketujuh di Jalur 2 Berdistribusi Normal . . . . 342 B.37 Maksimum Simulasi Ketujuh di Jalur 1 Berdistribusi Normal . 343 B.38 Maksimum Simulasi Ketujuh di Jalur 2 Berdistribusi Normal . 344 B.39 Waktu Komputasi Simulasi Ketujuh Berdistribusi Normal . . 344 B.40 Mean Simulasi Kedelapan di Jalur 1 Berdistribusi Normal . . 345 B.41 Mean Simulasi Kedelapan di Jalur 2 Berdistribusi Normal . . 346 B.42 Maksimum Simulasi Kedelapan di Jalur 1 Berdistribusi Normal 347 B.43 Maksimum Simulasi Kedelapan di Jalur 2 Berdistribusi Normal 348 B.44 Waktu Komputasi Simulasi Kedelapan Berdistribusi Normal . 348

(24)

B.45 Mean Simulasi Pertama di Jalur 1 Berdistribusi Uniform . . . 349 B.46 Mean Simulasi Pertama di Jalur 2 Berdistribusi Uniform . . . 350 B.47 Maksimum Simulasi Pertama di Jalur 1 Berdistribusi Uniform 351 B.48 Maksimum Simulasi Pertama di Jalur 2 Berdistribusi Uniform 352 B.49 Waktu Komputasi Simulasi Pertama Berdistribusi Uniform . . 352 B.50 Mean Simulasi Kedua di Jalur 1 Berdistribusi Uniform . . . . 353 B.51 Mean Simulasi Kedua di Jalur 2 Berdistribusi Uniform . . . . 354 B.52 Maksimum Simulasi Kedua di Jalur 1 Berdistribusi Uniform . 355 B.53 Maksimum Simulasi Kedua di Jalur 2 Berdistribusi Uniform . 356 B.54 Waktu Komputasi Simulasi Kedua Berdistribusi Uniform . . . 356 B.55 Mean Simulasi Ketiga di Jalur 1 Berdistribusi Uniform . . . . 357 B.56 Mean Simulasi Ketiga di Jalur 2 Berdistribusi Uniform . . . . 358 B.57 Mean Simulasi Ketiga di Jalur 3 Berdistribusi Uniform . . . . 359 B.58 Maksimum Simulasi Ketiga di Jalur 1 Berdistribusi Uniform . 360 B.59 Maksimum Simulasi Ketiga di Jalur 2 Berdistribusi Uniform . 361 B.60 Maksimum Simulasi Ketiga di Jalur 3 Berdistribusi Uniform . 362 B.61 Waktu Komputasi Simulasi Ketiga Berdistribusi Uniform . . . 362 B.62 Mean Simulasi Keempat di Jalur 1 Berdistribusi Uniform . . . 363 B.63 Mean Simulasi Keempat di Jalur 2 Berdistribusi Uniform . . . 364 B.64 Mean Simulasi Keempat di Jalur 3 Berdistribusi Uniform . . . 365 B.65 Maksimum Simulasi Keempat di Jalur 1 Berdistribusi Uniform 366 B.66 Maksimum Simulasi Keempat di Jalur 2 Berdistribusi Uniform 367 B.67 Maksimum Simulasi Keempat di Jalur 3 Berdistribusi Uniform 368 B.68 Waktu Komputasi Simulasi Keempat Berdistribusi Uniform . 368 B.69 Mean Simulasi Kelima di Jalur 1 Berdistribusi Uniform . . . . 369 B.70 Mean Simulasi Kelima di Jalur 2 Berdistribusi Uniform . . . . 370 B.71 Maksimum Simulasi Kelima di Jalur 1 Berdistribusi Uniform . 371 B.72 Maksimum Simulasi Kelima di Jalur 2 Berdistribusi Uniform . 372 B.73 Waktu Komputasi Simulasi Kelima Berdistribusi Uniform . . . 372 B.74 Mean Simulasi Keenam di Jalur 1 Berdistribusi Uniform . . . 373 B.75 Mean Simulasi Keenam di Jalur 2 Berdistribusi Uniform . . . 374 B.76 Maksimum Simulasi Keenam di Jalur 1 Berdistribusi Uniform 375 B.77 Maksimum Simulasi Keenam di Jalur 2 Berdistribusi Uniform 376 B.78 Waktu Komputasi Simulasi Keenam Berdistribusi Uniform . . 376 B.79 Mean Simulasi Ketujuh di Jalur 1 Berdistribusi Uniform . . . 377 B.80 Mean Simulasi Ketujuh di Jalur 2 Berdistribusi Uniform . . . 378 B.81 Maksimum Simulasi Ketujuh di Jalur 1 Berdistribusi Uniform 379

(25)

B.82 Maksimum Simulasi Ketujuh di Jalur 2 Berdistribusi Uniform 380 B.83 Waktu Komputasi Simulasi Ketujuh Berdistribusi Uniform . . 380 B.84 Mean Simulasi Kedelapan di Jalur 1 Berdistribusi Uniform . . 381 B.85 Mean Simulasi Kedelapan di Jalur 2 Berdistribusi Uniform . . 382 B.86 Maksimum Simulasi Kedelapan di Jalur 1 Berdistribusi Uniform 383 B.87 Maksimum Simulasi Kedelapan di Jalur 2 Berdistribusi Uniform 384 B.88 Waktu Komputasi Simulasi Kedelapan Berdistribusi Uniform . 384

(26)
(27)

DAFTAR ALGORITMA

2.1 Mencari Transisi Enabled . . . 10 2.2 Alternatif Penentuan Transisi Enabled . . . 14 2.3 Pemfirean Transisi . . . 19 2.4 Himpunan Parent Bertingkat . . . 39 2.5 Modifikasi Parent Bertingkat . . . 43 2.6 Pengujian Dominasi . . . 45 2.7 Pengujian Sederetan Dominasi . . . 47 2.8 Perbandingan Keadaan . . . 49 2.9 Pencarian Node . . . 51 2.10 Membangun Coverability Tree . . . 54 2.11 Menentukan Batas Atas Setiap Place di Petri net . . . 65 2.12 Pengujian Cover . . . 71 2.13 Pengujian Coverable . . . 73 4.1 Petri net Lampu Lalulintas Sederhana . . . 80 4.2 Petri net Lampu Lalulintas Dengan Waktu Tunggu . . . 84 4.3 Petri net Lampu Lalulintas Tanpa Waktu Idle . . . 92 4.4 Petri net Lampu Lalulintas di Persimpangan . . . 104 4.5 Forward Incidence Petri net Lampu Lalulintas di Persimpangan 106 4.6 Backward incidence Petri net Lampu Lalulintas di Persimpangan 108 4.7 Petri net Lampu Lalulintas Tereduksi . . . 123 4.8 Forward Incidence Petri net Lampu Lalulintas Tereduksi . . . 125 4.9 Backward Incidence Petri net Lampu Lalulintas Tereduksi . . 127 4.10 Tahap Inisialisasi Simulasi Jumlah Pengguna . . . 147 4.11 Perpindahan Jalur Simulasi Jumlah Pengguna . . . 150 4.12 Simulasi Jumlah Pengguna di Persimpangan . . . 152 4.13 Modifikasi Tahap Inisialisasi Simulasi Jumlah Pengguna . . . . 160 4.14 Modifikasi Perpindahan Jalur Simulasi Jumlah Pengguna . . . 162 4.15 Modifikasi Simulasi Jumlah Pengguna di Persimpangan . . . . 164

(28)
(29)

BAB 1

PENDAHULUAN

Pada bab ini dibahas latar belakang penelitian yang membahas hasil penelitian dan uraian kegiatan yang telah dilakukan. Berdasarkan uraian ter-sebut, dirumuskan masalah yang diteliti beserta batasan-batasan yang digu-nakan. Selanjutnya dituliskan tujuan yang ingin dicapai dan manfaat yang ingin diperoleh dari penelitian ini.

1.1

Latar Belakang

Dengan perkembangan jaman yang semakin pesat, banyak teknologi yang menjadikan hidup lebih mudah. Salah satu contohnya adalah adanya waktu tunggu di persimpangan jalan. Sebelum adanya hal itu, para peng-guna jalan tidak mengetahui kapan lampu akan berganti menjadi hijau atau merah. Selain itu pengguna diharuskan menunggu untuk waktu yang cukup lama meskipun kondisi jalan saat itu tidak begitu ramai. Hal ini disebabkan penentuan lama lampu lalulintas menyala yang tidak sesuai sehingga berakibat penumpukan pengguna pada suatu jalur.

Jenis persimpangan yang dikaji disini menggunakan urutan jalur pe-layanan tetap. Tujuannya adalah tidak membingungkan pengguna dengan urutan yang selalu berubah-ubah. Batasan penelitian ini adalah pada setiap saat hanya terdapat satu lampu lalulintas hijau yang menyala. Penelitian se-belumnya (De Schutter dkk, 1998) telah mengindentifikasi permasalahan ini sebagai kontrol optimum untuk meminimumkan jumlah pengguna yang me-nunggu atau waktu tunggu. Pada masing-masing lampu lalulintas di setiap jalur terdapat interval lama nyala yang diperbolehkan. Penyelesaian dapat diperoleh menggunakan Extended Linear Complementarity Problem (ELCP). Banyak operasi pada metode ini cukup besar sehingga simulasi tidak dapat dilakukan untuk waktu yang lama.

Permasalahan serupa juga dibahas oleh (Hanzalek dkk, 2006) dengan membandingkan Linear Quadratic Regulator (LQR) dan Nonlinear Model Pre-dictive Controller (NMPC). Perbedaan dengan (De Schutter dkk, 1998) pada batasan lama lampu lalulintas menyala. Waktu untuk melayani semua jalur pada satu periode sudah ditetapkan. Dengan memodelkan permasalahan ini menjadi sistem dengan waktu diskrit maka kontrol optimum dapat digunakan untuk meminimumkan rata-rata waktu tunggu.

(30)

Perubahan lampu lalulintas yang menyala adalah event dan lampu la-lulintas yang menyala pada masing-masing jalur adalah keadaan. Jelas bahwa jumlah semua keadaan yang mungkin adalah berhingga. Berdasarkan kete-rangan sebelumnya maka permasalahan ini termasuk sistem event diskrit. Salah satu kegunaan Petri net adalah memodelkan sistem event diskrit seperti pada (Cassandras, 1993). Dalam penelitian ini akan dibangun model Petri net untuk lampu lalulintas yang menyala di persimpangan dengan jumlah jalur sebarang. Metode membangun Petri net disajikan dalam bentuk algoritma.

Pembahasan dimulai dengan membangun Petri net untuk mensimula-sikan lampu lalulintas yang sederhana. Pada tiap permasalahan disertakan algoritma untuk membangun Petri netnya. Representasi Petri net dalam bentuk matriks incidence merupakan kajian berikutnya. Setelah itu diba-has bagaimana membangun coverability tree dari Petri net. Coverability tree digunakan untuk menganalisis sifat-sifat Petri net. Aspek yang dianalisis me-liputi keterbatasan (boundedness), konservasi (conservation) dan coverability keadaan.

Pada bagian berikutnya dibahas implementasi dari algoritma yang telah dibahas menggunakan Scilab. Implementasi secara garis besar menca-kup simulasi Petri net, analisis Petri net dan membangun Petri net lampu lalulintas. Petri net dibuat terlebih dahulu sebelum melakukan analisis. Pen-definisian Petri net menggunakan Scilab sulit dilakukan karena harus dibuat dalam representasi matriks. Pembuatan Petri net lebih mudah menggunakan Platform Independent Petri net Editor (PIPE) karena menggunakan represen-tasi grafik. Pada penelitian ini dibuat fungsi untuk membaca Petri net yang dibangun menggunakan PIPE agar Petri net tersebut dapat disimulasikan dan dianalisis dengan program yang dibuat menggunakan Scilab. Jika jumlah place dan transisi di Petri net besar maka representasi dalam bentuk grafik menjadi rumit. Pada kasus ini digunakan representasi matriks dari Petri net yang dapat dibuat dengan Scilab.

Simulasi perubahan jumlah pengguna pada setiap jalur di persim-pangan diimplementasikan menggunakan Scilab. Ada dua pendekatan yang digunakan dalam simulasi ini yaitu kedatangan berdistribusi normal dan ke-datangan berdistribusi uniform diskrit (Allen, 2003). Hasil yang diperoleh dari simulasi berupa mean jumlah pengguna dan maksimum jumlah pengguna. Ke-dua informasi tersebut dapat digunakan untuk menentukan kestabilan sistem. Lama setiap lampu lalulintas menyala dapat diketahui dengan simulasi lampu lalulintas pada beberapa jalur di persimpangan.

(31)

1.2

Rumusan Masalah

Permasalahan yang dibahas dalam penelitian ini adalah.

1. Berapa jumlah place pada model Petri net lampu lalulintas di persim-pangan dengan jumlah jalur sebarang.

2. Berapa jumlah place pada Petri net lampu lalulintas di persimpangan setelah direduksi.

3. Bagaimana mensimulasikan perubahan jumlah pengguna pada masing-masing jalur tiap waktu.

4. Bagaimana menentukan kestabilan dari model.

1.3

Batasan Masalah

Ruang lingkup permasalahan dibatasi sebagai berikut.

1. Lama lampu lalulintas menyala merupakan bilangan bulat positif.

2. Urutan jalur yang dilayani sudah ditetapkan sebelumnya.

3. Pengguna yang dibahas adalah pengguna yang tidak dapat melewati persimpangan ketika lampu lalulintas merah menyala.

1.4

Tujuan dan Manfaat

Tujuan yang ingin dicapai dan manfaat yang diperoleh dari penelitian ini se-bagai berikut.

1. Memberikan kepastian waktu tunggu kepada pengguna.

2. Mengurangi waktu tunggu di persimpangan.

3. Mengurangi tingkat kecelakaan lalulintas di persimpangan.

4. Mengurangi tingkat kemacetan karena penumpukan kendaraan di per-simpangan.

(32)
(33)

BAB 2

KAJIAN PUSTAKA DAN TEORI DASAR

Pada bab ini dikaji hal-hal yang berkaitan dengan pemodelan sistem event diskrit menggunakan Petri net. Pembahasan diawali dengan notasi dan definisi yang digunakan. Konsep Petri net bertanda dan ruang keadaan men-jadi topik berikutnya. Selanjutnya dibahas salah satu bagian penting yaitu dinamika Petri net. Bagian terakhir adalah analisis Petri net. Analisis Petri net terdiri dari keterbatasan (boundedness), konservasi (conservation) dan co-verability keadaan. Ketiga analisis tersebut diperoleh dengan menggunakan coverability tree yang dibangun dari Petri net.

2.1

Notasi dan Definisi

Petri net dikembangkan pertama kali oleh C.A. Petri pada awal 1960-an. Petri net merupakan salah satu alat untuk memodelkan sistem event diskrit selain menggunakan automata yang telah dikenal sebelumnya. Setiap automata dapat diubah menjadi Petri net. Pada Petri net event berkaitan dengan transisi. Agar suatu event dapat terjadi, beberapa keadaan harus dipenuhi terlebih dahulu. Informasi mengenai event dan keadaan ini masing-masing dinyatakan dengan transisi dan place. Place dapat berfungsi sebagai input atau output suatu transisi. Place sebagai input menyatakan keadaan yang harus dipenuhi agar transisi dapat terjadi. Setelah transisi terjadi maka keadaan akan berubah. Place yang menyatakan keadaan tersebut adalah out-put dari transisi.

Definisi 2.1 (Cassandras, 1993). Petri net adalah 4-tuple (P, T, A, w) dengan

• P : himpunan berhingga place, P = {p1, p2, . . . , pn},

• T : himpunan berhingga transisi, T = {t1, t2, . . . , tm},

• A : himpunan arc, A ⊆ (P × T ) ∪ (T × P ),

• w : fungsi bobot, w : A → {1, 2, 3, . . . }.



Berdasarkan Definisi 2.1 maka himpunan place dan transisi tidak ha-rus berupa himpunan berhingga melainkan bisa berupa himpunan takhingga

(34)

terhitung (countable sets). Pada hampir semua kasus yang rumit dapat di-modelkan dengan Petri net yang mempunyai place dan transisi berhingga.

Petri net dapat digambarkan sebagai graph berarah. Node dari graph berupa place yang diambil dari himpunan place P atau transisi yang diambil dari himpunan transisi T . Pada Petri net graph diperbolehkan menggunakan beberapa arc untuk menghubungkan dua node atau ekivalen dengan membe-rikan bobot ke setiap arc yang menyatakan jumlah arc. Struktur ini dikenal dengan struktur multigraph.

Dalam membahas representasi Petri net secara grafik akan digunakan notasi I(tj) dan O(tj) yang masing-masing menyatakan himpunan place input

dan output ke transisi tj. Secara matematis definisi tersebut dapat ditulis

menjadi persamaan berikut (Cassandras, 1993).

I(tj) = {pi : (pi, tj) ∈ A}

O(tj) = {pi : (tj, pi) ∈ A}

(2.1)

Notasi yang sama dapat digunakan untuk mendeskripsikan input dan output transisi untuk place pi sebagai berikut.

I(pi) = {tj : (tj, pi) ∈ A}

O(pi) = {tj : (pi, tj) ∈ A}

(2.2)

Grafik Petri net terdiri dari dua macam node yaitu lingkaran dan garis. Lingkaran menyatakan place sedangkan garis menyatakan transisi. Arc disimbolkan dengan panah yang menghubungkan place dan transisi. Arc yang menghubungkan place pi ke transisi tj berarti pi ∈ I(tj). Jika bobot arc dari

place pi ke transisi tj adalah k ditulis w(pi, tj) = k maka terdapat k arc dari

place pi ke transisi tj atau sebuah arc dengan bobot k.

p1 t1 p2

Gambar 2.1 Petri net Sederhana

Contoh 2.1. Perhatikan Petri net pada Gambar 2.1. Terdapat dua place pada Petri net tersebut yaitu p1 dan p2 ditulis P = {p1, p2}. Untuk menyatakan

bahwa terdapat sebuah transisi yaitu t1maka ditulis T = {t1}. Arc dinyatakan

(35)

kedua menyatakan tujuan misalnya arc dari place p1ke transisi t1ditulis (p1, t1)

dan (t1, p2) menyatakan arc dari transisi t1 ke place p2. Secara lengkap ditulis

A = {(p1, t1), (t1, p2)}. Bobot arc dari place p1 ke transisi t1 adalah dua

yaitu w(p1, t1) = 2 dan bobot dari transisi t1 ke place p2 adalah satu yaitu

w(t1, p2) = 1. Pada contoh ini I(t1) = {p1} dan O(t1) = {p2}.



Terlihat pada Contoh 2.1 bahwa bobot arc dari place p1 ke transisi

t1 adalah 2 dan digambarkan dengan dua buah arc. Bobot arc dari transisi t1 ke place p2 adalah satu. Transisi tidak harus mempunyai place input dan

place output seperti transisi t1 pada Gambar 2.1. Kadang transisi tidak

mem-punyai place input. Ini berarti event yang dinyatakan oleh transisi tersebut tidak membutuhkan kondisi untuk dapat terjadi. Transisi t2 pada Petri net

Contoh 2.2 tidak mempunyai place input.

p1 t1 p2 t2

2

Gambar 2.2 Petri net dengan Transisi yang Tidak Mempunyai Place Input

Berikut merupakan penjelasan dari Petri net pada Gambar 2.2 beserta cara identifikasi dan penulisan place, transisi, arc dan bobotnya.

Contoh 2.2. Petri net pada Gambar 2.2 mempunyai dua place dan dua tran-sisi yang masing-masing dapat ditulis P = {p1, p2} dan T = {t1, t2}. Arc

dinyatakan dengan pasangan berurutan misalnya arc dari place p1 ke transisi

t1 dinotasikan dengan (p1, t1). Jumlah arc pada Petri net tersebut sebanyak 4

yang ditulis A = {(p1, t1), (t1, p2), (p2, t1), (t2, p2)}. Berikut merupakan bobot

pada masing-masing arc

w(p1, t1) = 2, w(t1, p2) = w(p2, t1) = w(t2, p2) = 1 (2.3)

Terlihat dari Gambar 2.2 bahwa I(t1) = P , yang menyatakan bahwa semua

place pada Petri net merupakan input dari transisi t1. Jelas bahwa himpunan

O(t1) = {p2} = O(t2) dan I(t2) = ∅ karena tidak ada place yang menjadi

input dari transisi t2.

(36)

Kadang berguna untuk membedakan antara Petri net yang pure dan impure. Petri net disebut pure jika tidak ada place yang menjadi input dan output untuk suatu transisi. Jika terdapat place yang menjadi input dan output untuk transisi tertentu maka Petri net dikatakan impure.

Definisi 2.2 (Cassandras, 1993). Petri net dikatakan pure jika tidak mempu-nyai place yang menjadi input sekaligus output untuk suatu transisi. Secara formal ditulis

∄ pi ∈ P, tj ∈ T ∋ {(pi, tj), (tj, pi)} ⊆ A (2.4)



Jelas bahwa Petri net pada Gambar 2.1 adalah pure karena tidak ada place yang menjadi input sekaligus output untuk suatu transisi sedangkan Petri net pada Gambar 2.2 adalah impure, karena p2 adalah place input dan output

untuk transisi t1.

2.2

Tanda Petri net dan Ruang Keadaan

Transisi pada Petri net menyatakan event pada sistem event diskrit dan place merepresentasikan kondisi agar event dapat terjadi. Diperlukan me-kanisme untuk mengindikasikan apakah kondisi telah terpenuhi. Token adalah sesuatu yang diletakkan di place yang menyatakan terpenuhi tidaknya suatu kondisi. Secara grafik token digambarkan dengan dot dan diletakkan di dalam place. Jika jumlah token besar maka dituliskan dengan angka.

Definisi 2.3 (Cassandras, 1993). Penanda (marking) x pada Petri net adalah fungsi x : P → {0, 1, 2, . . . }



Penanda dinyatakan dengan vektor yang berisi bilangan bulat tak-negatif yang menyatakan jumlah token yaitu x = [x(p1), x(p2), . . . , x(pn)]T.

Jumlah elemen x sama dengan banyak place di Petri net. Elemen ke-i pada vektor ini merupakan jumlah token pada place pi, x(pi) ∈ {0, 1, 2, . . . }.

Definisi 2.4 (Cassandras, 1993). Petri net bertanda (marked ) adalah 5-tuple (P, T, A, w, x0) dimana (P, T, A, w) adalah Petri net dan x0 adalah penanda

awal

(37)

Selanjutnya Petri net bertanda cukup disebut Petri net. Seperti pemo-delan sistem pada umumnya, maka harus didefinisikan keadaan (state) pada Petri net. Keadaan pada Petri net adalah penanda Petri net.

Definisi 2.5 (Cassandras, 1993). Keadaan (state) Petri net bertanda adalah x = [x(p1), x(p2), . . . , x(pn)]T



Perhatikan bahwa jumlah token pada place adalah sebarang bilangan bulat taknegatif, tidak harus terbatas (bounded ). Secara umum jumlah pe-nanda yang mungkin adalah takhingga. Ruang keadaan (state space) X pada Petri net bertanda dengan n place didefinisikan oleh semua vektor berdimensi n dengan elemen bilangan bulat taknegatif, sehingga X = {0, 1, 2, . . . }n.

Un-tuk selanjutnya digunakan istilah keadaan dan penanda bergantian.

Jika semua keadaan yang diperlukan sudah terpenuhi maka transisi dapat terjadi. Dalam hal ini keadaan merupakan place input dari transisi. Bobot arc dari place input ke transisi menunjukkan jumlah token minimum di place agar transisi enabled. Jika semua place input mempunyai token lebih dari atau sama dengan jumlah token minimum yang dibutuhkan maka transisi enabled.

Definisi 2.6 (Cassandras, 1993). Transisi tj ∈ T pada Petri net bertanda

enabled jika

x(pi) ≥ w(pi, tj), ∀pi ∈ I(tj) (2.5)



Gambar 2.3 merupakan contoh transisi yang tidak enabled. Jelas bahwa I(t1) = {p1}, x(p1) = 1 dan w(p1, t1) = 2 seperti yang terlihat pada

Gambar 2.3 Transisi t1 tidak enabled karena 1 = x(p1) < w(p1, t1) = 2.

p1 t1

2

p2

Gambar 2.3 Contoh Transisi yang Tidak Enabled

Transisi t1 enabled jika jumlah token pada place p1 lebih dari atau

sama dengan 2. Terlihat pada Petri net Gambar 2.4 bahwa x(p1) = 2 sehingga

(38)

transisi tj enabled maka jumlah token pada place pi paling sedikit sebesar

bobot arc yang menghubungkan pi ke tj. Kenyataan ini sesuai dengan definisi

transisi enabled yang telah dituliskan sebelumnya.

••

p1 t1

2

p2

Gambar 2.4 Contoh Transisi yang Enabled

Berdasarkan keterangan sebelumnya didesain algoritma untuk menen-tukan transisi yang enabled pada Petri net. Definisi 2.6 digunakan untuk mencari transisi yang enabled. Seperti terlihat pada Algoritma 2.1 langkah pertama yang dilakukan adalah menginisialisasi variabel En dengan himpu-nan kosong. Setelah itu pengujian dilakukan untuk setiap transisi di Petri net. Ingat bahwa jumlah transisi di Petri net adalah |T |. Variabel i menyatakan place dan diinisialisasi dengan nilai 1 karena indeks terkecil dari place adalah 1. Pertidaksamaan x(pi) ≥ w(pi, tuji) diuji untuk 1 ≤ i ≤ |P | pada perulangan

while. Jika saat keluar dari perulangan ini i ≤ |P | maka x(pi) < w(pi, tuji)

se-hingga place pi tidak memenuhi pertidaksamaan. Jika i > |P | saat keluar dari

perulangan maka semua place memenuhi pertidaksamaan tersebut sehingga transisi tuji enabled dan transisi tersebut merupakan elemen dari En yaitu himpunan transisi enabled.

Algoritma 2.1 Mencari Transisi Enabled Input: P = {p1, p2, . . . , pn}, T, w, x

Output: En/* himpunan transisi enabled */ 1 En ← ∅ /* inisialisasi */

2 for all tuji ∈ T do 3 i ← 1

4 while x(pi) ≥ w(pi, tuji) and i ≤ |P | do 5 i ← i + 1 6 end while 7 if i > |P | then 8 En ← En ∪ {tuji} 9 end if 10 end for

Pengujian algoritma dapat dilakukan dengan mengimplementasikan algoritma tersebut dan dilihat waktu komputasinya. Metode pengujian ini tidak efektif karena memerlukan usaha yang besar dan hasil yang diperoleh

(39)

belum tentu benar. Pengujian algoritma yang efektif dilakukan dengan meng-hitung kompleksitasnya. Kompleksitas algoritma terdiri dari banyak kerja yang dilakukan dan banyak memori yang dipakai.

Banyak kerja yang dilakukan suatu algoritma dapat dinyatakan dalam notasi big-Oh. Notasi big-Oh adalah O. Big-Oh merupakan himpunan fungsi yang didominasi oleh fungsi tertentu. Dalam ilmu komputasi untuk menyata-kan bahwa fungsi T (n) anggota dari O(f (n)) tidak ditulismenyata-kan T (n) ∈ O(f (n)) melainkan T (n) = O(f (n)). Berikut merupakan definisi big-Oh.

Definisi 2.7 (Shaffer, 1998). Diberikan T (n) fungsi tak negatif. Fungsi T (n) adalah anggota himpunan O(f (n)) jika terdapat dua bilangan c dan n0

sede-mikian hingga T (n) ≤ c f (n) untuk semua n > n0.



Selanjutnya dibahas bagaimana menggunakan Definisi 2.7 untuk me-nentukan apakah suatu fungsi mendominasi fungsi yang lain. Disini definisi tersebut digunakan untuk menentukan apakah fungsi n mendominasi 3n + 9 sehingga T (n) = 3n + 9 dan f (n) = n. Misal dipilih c = 4 sehingga akan di-tentukan n0 agar pertidaksamaan 3n + 9 ≤ 4n dipenuhi untuk setiap n > n0.

Jelas bahwa pertidaksamaan sebelumnya dipenuhi untuk n = 9, 10, 11, . . . se-hingga diperoleh n0 = 8. Jadi fungsi f (n) = n mendominasi T (n) = 3n + 9

yang ditulis 3n + 9 = O(n).

Definisi 2.7 tidak dipenuhi jika untuk setiap c yang mungkin, tidak ada n0 yang menyebabkan pertidaksamaan dipenuhi. Hal ini dapat

diilustra-sikan dengan memilih T (n) = n2 dan f (n) = 3n. Misal dipilih c = 1 maka

pertidaksamaan n2 ≤ 3n dipenuhi untuk 1 ≤ n ≤ 3. Secara umum berapapun

nilai c yang dipilih maka tidak pertidaksamaan n2 ≤ 3cn tidak berlaku untuk

n > 3c sehingga dapat disimpulkan fungsi 3n tidak mendominasi n2.

Dalam menghitung banyak kerja yang dilakukan algoritma, harus di-tentukan jenis operasi yang dihitung. Operasi yang dihitung adalah operasi utama atau operasi dengan kompleksitas yang besar yaitu operasi yang ter-diri dari banyak operasi dasar. Pada umumnya banyak kerja yang dilakukan algoritma tergantung input yang diberikan sehingga terdapat lebih dari satu kemungkinan banyak kerja yang dilakukan. Banyak kerja yang dihitung disini adalah banyak kerja dalam kemungkinan terburuk (worst case).

Jenis operasi yang dihitung pada Algoritma 2.1 adalah operasi utama yaitu perbandingan. Langkah berikutnya yang dilakukan adalah menentukan

(40)

input yang menyebabkan banyak kerja Algoritma 2.1 paling besar. Jelas bahwa operasi x(pi) ≥ w(pi, tuji) dilakukan untuk setiap transisi di Petri net yang

ter-lihat pada baris 2. Dalam kemungkinan terburuk, operasi dilakukan sebanyak jumlah place di Petri net yaitu ketika suatu transisi enabled. Berdasarkan keterangan sebelumnya dapat disimpulkan bahwa input yang menyebabkan banyak kerja Algoritma 2.1 paling besar adalah keadaan Petri net dengan se-mua transisi enabled. Pada kemungkinan terburuk (worst case), banyak kerja algoritma mencari transisi enabled sebanyak |P | × |T | yang dapat dituliskan W (|P |, |T |) = |P | × |T | = O(|P | × |T |).

Faktor yang harus dipertimbangkan dalam kompleksitas algoritma se-lain banyak kerja yang dilakukan adalah banyak memori (memory) yang pakai algoritma seperti telah dijelaskan sebelumnya. Banyak memori yang di-pakai algoritma merupakan banyak memori yang didi-pakai variabel tambahan. Variabel tambahan adalah semua variabel dalam algoritma selain variabel in-put dan outin-put. Jika banyak memori yang dipakai variabel tambahan tetap untuk semua kemungkinan input maka algoritma bekerja di tempat (work in place). Jika banyak memori yang dipakai variabel tambahan tergantung input yang diberikan maka algoritma tidak bekerja di tempat. Algoritma yang baik adalah algoritma yang bekerja di tempat (work in place).

Banyak memori yang dipakai Algoritma 2.1 tergantung variabel bahan sehingga variabel tambahan ditentukan terlebih dahulu. Variabel tam-bahan pada algoritma menentukan transisi enabled adalah i dan t. Jelas bahwa apapun input yang diberikan banyak memori yang dipakai untuk menyimpan kedua variabel tersebut tetap sehingga Algoritma 2.1 bekerja di tempat.

Agar Algoritma 2.1 lebih mudah dipahami maka selanjutnya dibahas proses yang dilakukan oleh algoritma tersebut pada Petri net tertentu. Petri net berikut digunakan sebagai contoh (Cassandras, 1993).

• p1 p2 p3 p4 t1 t2 t3

Gambar 2.5 Keadaan Awal Petri net

Terdapat 4 place dan 3 transisi pada Petri net di Gambar 2.5 sehingga |P | = 4 dan |T | = 3. Himpunan place P mempunyai anggota p1, p2, p3

(41)

anggota yaitu t1, t2 dan t3 yang ditulis T = {t1, t2, t3}. Pada contoh berikut

Algoritma 2.1 digunakan untuk menentukan transisi yang enabled saat keadaan awal x0 = [1, 0, 0, 0]T.

Contoh 2.3. Variabel En diinisialisasi ∅ pada baris 1. Jumlah transisi pada Petri net sebanyak 3 sehingga |T | = 3 dan iterasi dilakukan 3 kali.

Saat iterasi pertama, variabel i diinisialisasi 1 pada baris 3. Terlihat bahwa x(p1) = 1 = w(p1, t1) dan 1 = i ≤ |P | = 4 sehingga pernyataan pada

baris 4 bernilai benar dan variabel i bernilai 2. Place p2 tidak mempunyai

token dan tidak ada arc dari p2 ke t1 menyebabkan x(p2) = 0 = w(p2, t1) dan

2 = i ≤ |P | = 4 sehingga pernyataan pada while bernilai benar dan variabel i ditambah satu menjadi 3.

Perhatikan bahwa jika tidak ada arc dari place p ke t maka w(p, t) = 0 dan ingat jumlah token pada place bilangan bulat tak negatif yaitu x(p) ≥ 0 sehingga berapapun nilai x(p) pernyataan x(p) ≥ w(p, t) selalu benar.

Dengan menggunakan kesimpulan sebelumnya maka untuk i = 3, 4 pernyataan x(pi) ≥ w(pi, t1) dan i ≤ |P | bernilai benar yang menyebabkan

nilai variabel i berubah menjadi 5. Jelas bahwa 5 = i  |P | = 4 sehingga pernyataan pada baris 4 bernilai salah dan dilanjutkan ke baris 7. Pernya-taan 5 = i > |P | = 4 bernilai benar sehingga variabel En = {t1} setelah

menjalankan baris 8. Hal ini menyatakan transisi t1 enabled.

Selanjutnya diproses transisi kedua. Sama dengan sebelumnya yaitu variabel i diisi nilai 1 kemudian menuju ke perulangan while. Tidak ada arc dari p1 ke t2 menyebabkan x(p1) ≥ w(p1, t2) dan 1 = i ≤ |P | = 4 bernilai

benar dan pernyataan pada baris 5 dikerjakan sehingga nilai variabel i menjadi 2. Terlihat pada Gambar 2.5 bahwa 0 = x(p2)  w(p2, t2) = 1 sehingga

pernyataan di while bernilai salah. Kenyataan 2 = i≯ |P | = 4 menyebabkan kondisi pada baris 7 tidak terpenuhi. Hal ini menunjukkan bahwa transisi t2

tidak enabled.

Transisi yang diproses berikutnya adalah transisi ketiga. Nilai variabel i diinisialisasi 1. Jelas bahwa tidak ada arc dari place p1ke t3 sehingga

pernya-taan di while bernilai benar dan nilai variabel i berubah menjadi 2. Kenyapernya-taan bahwa 0 = x(p2) w(p2, t3) = 1 mengakibatkan pernyataan pada baris 4

ber-nilai salah. Variabel En tetap yaitu En = {t1} karena 2 = i ≯ |P | = 4. Jadi

outputnya adalah En = {t1} yang menyatakan bahwa pada keadaan awal

terdapat satu transisi yang enabled yaitu t1.

(42)

Algoritma 2.1 menentukan suatu transisi enabled dengan menguji ke-berlakuan pertidaksamaan (2.5) untuk semua place di Petri net. Berdasarkan Definisi 2.6 dan keterangan pada contoh sebelumnya diperoleh kesimpulan bahwa penentuan transisi yang enabled dilakukan dengan menguji keberla-kuan pertidaksamaan (2.5) untuk setiap place input dari transisi tersebut. Untuk place yang lain pertidaksamaan (2.5) pasti dipenuhi. Diharapkan de-ngan menggunakan pendekatan ini, banyak kerja yang dilakukan untuk menen-tukan transisi yang enabled lebih sedikit dibandingkan sebelumnya. Berikut merupakan perubahan pada algoritma sebelumnya agar penentuan transisi enabled dilakukan dengan menguji keberlakuan pertidaksamaan (2.5) untuk setiap place input dari transisi.

Algoritma 2.2 Alternatif Penentuan Transisi Enabled Input: T, w, x

Output: En/* himpunan transisi enabled */ 1 En ← ∅ /* inisialisasi */

2 for all tuji ∈ T do

3 isenabled ←true; Masukan ← I(tuji) 4 for all pm ∈ Masukan do

5 ifx(pm) < w(pm, tuji) then 6 isenabled ←false; break 7 end if 8 end for 9 if isenabled then 10 En ← En ∪ {tuji} 11 end if 12 end for

Tahap inisialisasi dari Algoritma 2.1 tidak perlu diubah. Perulangan pada baris 2 juga tidak diubah karena perulangan ini bertujuan untuk menguji semua transisi pada Petri net. Variabel i pada Algoritma 2.1 yang berfungsi sebagai indeks place diganti dengan variabel isenabled yang bertipe boolean. Variabel ini bernilai true jika transisi yang diuji enabled dan bernilai false jika transisi yang diuji tidak enabled. Pengujian dilakukan untuk setiap place input dari transisi yang diuji seperti ditunjukkan pada baris 2 di Algoritma 2.2. Jika terdapat place input yang tidak memenuhi pertidaksamaan (2.5), yaitu berlaku x(pm) < w(pm, t) untuk pm ∈ I(t) maka variabel isenabled diganti false dan segera keluar dari perulangan untuk place input pada baris 4 dengan perintah break. Diharapkan banyak kerja yang dilakukan Algoritma 2.2 lebih kecil dibandingkan Algoritma 2.1.

(43)

Selanjutnya menentukan kompleksitas Algoritma 2.2 yaitu menghi-tung banyak kerja yang dilakukan dan memori yang dipakai oleh algoritma tersebut. Sebelum menghitung banyak kerja yang dilakukan algoritma, jenis operasi yang dihitung harus ditentukan terlebih dahulu. Jenis operasi yang di-hitung sama dengan algoritma sebelumnya yaitu operasi perbandingan. Ope-rasi perbandingan yang dimaksud berada pada baris 5. Berikutnya ditentu-kan input yang menyebabditentu-kan kemungkinan terburuk terjadi. Untuk meng-uji suatu transisi tmeng-uji ∈ T maka kemungkinan terburuk (worst case) kerja yang dilakukan sebanyak jumlah place input dari transisi tuji yaitu |I(tuji)|. Hal ini terjadi jika transisi tuji enabled. Algoritma 2.2 menguji semua tran-sisi sehingga input yang menyebabkan banyak kerja yang dilakukan paling besar sama dengan sebelumnya yaitu keadaan Petri net dengan semua tran-sisi enabled. Dengan input ini algoritma tersebut melakukan kerja sebanyak P

t∈T |I(t)| yang ditulis W (|A|, T ) =

P

t∈T |I(t)| = O(|A|). Jelas bahwa

ba-nyak kerja yang dilakukan oleh Algoritma 2.2 lebih kecil atau sama dengan Algoritma 2.1 yaitu P

t∈T |I(t)| ≤ |P | × |T | karena himpunan place input

se-tiap transisi merupakan himpunan bagian dari himpunan place di Petri net yang ditulis I(t) ⊆ P, ∀t ∈ T . Persamaan P

t∈T |I(t)| = |P | × |T | berlaku

jika dan hanya jika himpunan place input dari setiap transisi sama dengan himpunan place yaitu I(t) = P, ∀t ∈ T .

Untuk menghitung banyak memori yang dipakai Algoritma 2.2, harus ditentukan variabel tambahan dari algoritma tersebut. Ada 3 variabel tam-bahan dalam Algoritma 2.2 yaitu Masukan, isenabled dan pinput. Variabel isenabled dan pinput memakai memori tetap sedangkan Masukan tergantung jumlah anggota himpunan place input setiap transisi di Petri net. Jadi algo-ritma ini tidak bekerja di tempat (work in place).

Berikut dibahas urutan proses yang dilakukan oleh Algoritma 2.2. Contoh yang digunakan sama dengan sebelumnya yaitu Petri net dengan ke-adaan awal x0 = [1, 0, 0, 0]T pada Gambar 2.5.

Contoh 2.4. Pada baris 1, variabel En diinisialisasi dengan himpunan kosong. Proses dilanjutkan dengan menguji setiap transisi pada Petri net yang dimulai dengan transisi t1. Variabel isenabled diinisialisasi dengan true pada baris 3.

Jelas bahwa I(t1) = {p1} dan x(p1) = 1 = w(p1, t1) sehingga kondisi pada

baris 5 tidak terpenuhi dan menuju ke baris 9. Nilai variabel isenabled tidak berubah yaitu bernilai true sehingga kondisi pada baris 9 terpenuhi dan nilai variabel En berubah menjadi {t1}.

(44)

Proses dilanjutkan dengan menguji transisi t2. Place input dari

tran-sisi t2 adalah p2 yang ditulis I(t2) = {p2}. Kondisi pada baris 5 terpenuhi

karena 0 = x(p2) < w(pi, tj) = 1 sehingga variabel isenabled berubah menjadi

false dan keluar dari perulangan ini menuju ke baris 9. Kondisi pada baris ini tidak terpenuhi karena variabel isenabled bernilai false sehingga variabel En tidak berubah.

Pengujian terakhir adalah transisi t3. Place input dari transisi ini

adalah p2 dan p3 yang ditulis I(t3) = {p2, p3}. Kondisi pada baris 5 dipenuhi

untuk place p2 dan p3 sehingga place manapun yang dijalankan lebih dahulu

kondisi dipenuhi yang menyebabkan variabel isenabled berubah menjadi false dan keluar dari perulangan forall. Hal ini disebabkan 0 = x(pi) < w(pi, t3) = 1

untuk i = 2, 3. Kondisi pada baris 9 tidak dipenuhi karena variabel isenabled bernilai false. Output dari Algoritma 2.2 sama dengan output Algoritma 2.1 yaitu {t1}.



Berdasarkan pembahasan sebelumnya maka banyak kerja yang dila-kukan oleh Algoritma 2.2 kurang dari atau sama dengan Algoritma 2.1. Jika dilihat dari segi kebutuhan memori maka Algoritma 2.1 membutuhkan memori lebih kecil dibandingkan Algoritma 2.2. Jadi kedua algoritma masing-masing mempunyai kelebihan dan kelemahan. Pemilihan algoritma tergantung keru-mitan permasalahan yang ingin diselesaikan.

Pada bagian berikutnya dibahas bagaimana mekanisme perubahan ke-adaan pada Petri net. Mekanisme ini berperan penting dalam proses pemo-delan Petri net dan simulasinya.

2.3

Dinamika Petri net

Jika Petri net digunakan untuk memodelkan sistem dinamik event diskrit, seharusnya Petri net dilengkapi dengan mekanisme yang mirip dengan transisi keadaan (state transition) pada automata. Mekanisme ini berupa men-jalankan token melewati jaringan (net) ketika transisi menjadi enabled dan proses ini mengubah keadaan Petri net.

Hanya transisi enabled yang dapat difire. Transisi difire saat event yang dinyatakan oleh transisi terjadi. Berikut ini adalah proses yang terjadi pada pemfirean transisi. Semua token di place input dikurangi/diambil se-banyak bobot arc yang menghubungkannya. Berdasarkan Definisi 2.6 maka

(45)

jumlah token di place input setelah dikurangi adalah bilangan bulat taknegatif. Token di place output ditambah sebanyak bobot arc yang menghubungkannya.

Definisi 2.8 (Cassandras, 1993). Fungsi perubahan keadaan pada Petri net bertanda (P, T, A, w, x0) yaitu f : {0, 1, 2, . . . }n×T → {0, 1, 2, . . . }nterdefinisi

untuk transisi tj ∈ T jika dan hanya jika

x(pi) ≥ w(pi, tj), ∀pi ∈ I(tj) (2.6)

Jika f (x, tj) terdefinisi maka ditulis x′ = f (x, tj), dimana

x′(pi) = x(pi) − w(pi, tj) + w(tj, pi), i = 1, 2, . . . , n (2.7)



Kondisi (2.6) menjamin fungsi perubahan keadaan hanya didefinisi-kan untuk transisi yang enabled. Fungsi perubahan keadaan didasardidefinisi-kan pada struktur Petri net. Keadaan berikutnya yang didefinisikan pada (2.7) secara eksplisit tergantung dari fungsi bobot pada setiap input dan output pada tran-sisi.

Berdasarkan (2.7), jika pi adalah place input untuk transisi tj, maka

token pada place pi berkurang sebanyak bobot arc dari pi ke tj. Sebaliknya

jika piadalah place output dari transisi tj maka token pada place pibertambah

sebesar bobot arc dari tj ke pi. Mungkin pi adalah place input dan output

dari transisi tj sehingga menurut (2.7) token pada place piberkurang sebanyak

w(pi, tj) dan bertambah sebanyak w(tj, pi).

Perhatikan bahwa jumlah token pada Petri net bertanda tidak tetap. Jelas dari (2.7) bahwa mungkin w(tj, pi) > w(pi, tj) sehingga token yang

di-tambahkan pada place pi lebih banyak daripada yang diambil ketika transisi

tj difire. Secara umum token pada Petri net mungkin habis setelah beberapa

kali pemfirean atau jumlahnya bertambah menuju takhingga.

••

p1 t1

2

p2

Gambar 2.6 Sebelum Transisi t1 Difire

Berikut dibahas proses pemfirean Petri net pada Gambar 2.6 dan keadaan Petri net setelah terjadi pemfirean transisi.

(46)

Contoh 2.5. Inisialisasi jumlah token pada p1 dan p2 masing-masing adalah

2 dan 1 sehingga penanda awal Petri net adalah x0 = [x(p1), x(p2)]T = [2, 1]T.

Arc dari p1 ke t1 mempunyai bobot 2 ditulis w(p1, t1) = 2.

Jelas bahwa x(p1) = 2 ≥ w(p1, t1) sehingga transisi t1 enabled dan

dapat difire. Untuk memfire transisi t1 dibutuhkan dua token dari place p1

sehingga token di place tersebut habis dan sebuah token ditambahkan di place p2. Penanda Petri net berubah menjadi x′ = [0, 2]T setelah transisi t

1 difire

dan bisa ditulis x′ = f (x

0, t1). Transisi t1 tidak enabled karena tidak ada token

pada place p1. Pada keadaan ini tidak ada transisi yang enabled karena Petri

net pada Gambar 2.6 mempunyai sebuah transisi yaitu t1.



Keadaan dimana tidak ada transisi yang enabled seperti yang terlihat pada Gambar 2.7 disebut keadaan terminal dan Petri net mengalami deadlock. Petri net yang baik seharusnya menghindari terjadinya deadlock. Pembahasan mengenai deadlock secara lebih terperinci dapat dilihat pada bagian analisis Petri net tak berwaktu. Selanjutnya didesain algoritma pemfirean transisi pada Petri net.

p1 t1

2 ••

p2

Gambar 2.7 Sesudah Transisi t1 Difire

Algoritma pemfirean transisi juga dapat disusun dengan menggunakan persamaan (2.7) pada Definisi 2.8. Persamaan (2.7) dijalankan untuk setiap place yang menjadi input atau output dari transisi yang difire. Jumlah token pada place yang lain tidak mengalami perubahan. Proses ini dapat dijelaskan sebagai berikut.

Misal tf adalah transisi yang difire dan place pnt bukan place input atau output dari transisi tf yang ditulis pnt /∈ I(tf ) ∪ O(tf ). Jumlah to-ken pada place pnt tidak mengalami perubahan setelah transisi tf difire. Hal ini disebabkan w(pnt, tf ) = 0 = w(tf, pnt) sehingga x′(pnt) = x(pnt).

De-ngan menggunakan pendekatan tersebut maka place yang dipengaruhi oleh pemfirean transisi adalah gabungan dari himpunan place input dan himpunan place output transisi yang difire. Pada Algoritma 2.3, himpunan place yang dipengaruhi oleh pemfirean transisi tf dinyatakan dengan T erhubung.

(47)

Berikut merupakan algoritma pemfirean transisi menggunakan pen-dekatan yang dibahas sebelumnya.

Algoritma 2.3 Pemfirean Transisi Input: x, tf ∈ T

Output: x′ = f (x)/* keadaan setelah transisi tf difire */

1 x′ ← x; T erhubung ← I(tf ) ∪ O(tf )/* inisialisasi */ 2 for all pt ∈ T erhubung do

3 x′(pt) ← x(pt) − w(pt, tf ) + w(tf, pt) 4 end for

Selanjutnya dibahas kompleksitas algoritma pemfirean transisi yang terdiri dari banyak kerja yang dilakukan dan banyak memori yang dipakai al-goritma tersebut. Jenis operasi yang dihitung adalah penjumlahan dan operasi lain yang selevel misalnya pengurangan. Terlihat pada Algoritma 2.3 bahwa kedua operasi tersebut dilakukan pada baris 3. Perintah pada baris ini dijalan-kan sebanyak jumlah anggota dari himpunan I(tf ) ∪ O(tf ) dengan tf adalah transisi yang difire. Jelas bahwa gabungan himpunan place input dan him-punan place output dari transisi tf adalah himhim-punan bagian dari himhim-punan place P yang ditulis I(tf ) ∪ O(tf ) ⊆ P sehingga jumlah anggota himpunan tersebut kurang dari atau sama dengan jumlah anggota himpunan place yaitu |I(tf ) ∪ O(tf )| ≤ |P |. Dengan menggunakan notasi big-Oh, banyak kerja yang dilakukan Algoritma 2.3 dapat ditulis W (tf, |P |) = |I(tf ) ∪ O(tf )| = O(|P |) dengan |P | menyatakan banyak place di Petri net. Pada algoritma ini variabel tambahan yang digunakan adalah T erhubung dan pt. Banyak memori yang dipakai untuk T erhubung tergantung jumlah place yang terhubung dengan tf sehingga Algoritma 2.3 tidak bekerja di tempat (work in place).

Telah dibahas pada Contoh 2.3 bahwa transisi yang enabled adalah t1. Pada contoh berikut Algoritma 2.3 digunakan untuk mengetahui keadaan setelah transisi t1 difire.

Contoh 2.6. Input Algoritma 2.3 adalah Petri net pada Gambar 2.5 dengan keadaan x = [1, 0, 0, 0]T dan transisi t

1 ∈ T . Variabel x′ diinisialisasi dengan

x pada baris 1 sehingga x′ = [1, 0, 0, 0]T. Terlihat dari Gambar 2.5 bahwa

place input dari t1 adalah p1 dan place outputnya adalah p2 dan p3 yang

masing-masing ditulis I(t1) = {p1} dan O(t1) = {p2, p3}. Pernyataan pada

baris 3 dijalankan yaitu x′(p

1) = x(p1) − w(p1, t1) + w(t1, p1) = 1 − 1 + 0 = 0

dengan variabel pt = p1 sehingga variabel x′ menjadi [0, 0, 0, 0]T. Selanjutnya

(48)

Untuk pt = p2 diperoleh x′(p2) = x(p2) − w(p2, t1) + w(t1, p2) = 0 − 0 + 1 = 1.

Dengan cara yang sama diperoleh x′(p

3) = x(p3) − w(p3, t1) + w(t1, p3) untuk

pi = p3 sehingga x′(p3) = 0 − 0 + 1 = 1. Jadi keadaan Petri net setelah transisi

t1 difire adalah x′ = [0, 1, 1, 0]T.



Token pada place dan bobot arc ditulis secara ringkas agar penulisan lebih sederhana. Dalam hal ini digunakan notasi vektor. Untuk menyatakan [x(p1), x(p2), . . . , x(pn)]T ditulis x [p1, p2, . . . , pn]T dan untuk menyatakan

[w(p1, tj), w(p2, tj), . . . , w(pn, tj)]T dapat ditulis w [p1, p2, . . . , pn]T, tj dengan

1 ≤ j ≤ m. Pengertian ini dituliskan dalam definisi berikut.

Definisi 2.9. Diberikan (P, T, A, w) Petri net. Jika {p′

1, p′2, . . . , p′n1} ⊆ P dan t ∈ T maka berlaku x [p′1, p′2, . . . , p′n1]Tdef = [x(p′1), x(p′2), . . . , x(p′n1)]T w [p′ 1, p′2, . . . , p′n]T, t def = [w(p′ 1, t), w(p′2, t), . . . , w(p′n, t)]T (2.8) 

Untuk memperjelas penggunaan Definisi 2.9, berikut dibahas penggu-naan notasi vektor pada permasalahan pemfirean transisi. Tujuan penggupenggu-naan notasi vektor adalah mempersingkat penulisan.

•• p1 p2 p3 p• 4 t1 t2 t3

Gambar 2.8 Keadaan Awal Petri net Bertanda

Pada contoh berikut dibahas pemfirean Petri net pada Gambar 2.8. Disini terdapat dua hal yang penting yaitu proses pemfirean dan penggunaan notasi pada Definisi 2.9.

Contoh 2.7. Gambar 2.8 merupakan keadaan awal Petri net sebagai contoh ilustrasi pemfirean transisi dan perubahan keadaan. Place input dari transisi t1

adalah p1 sedangkan place outputnya adalah p2 dan p3 yang dapat dinotasikan

(49)

dan p3 sedangkan p2 dan p4 merupakan place outputnya yang dapat ditulis

I(t2) = {p2, p3} dan O(t2) = {p2, p4}. Transisi t3 mempunyai place input p1,

p3 dan p4 tetapi tidak mempunyai place output, yaitu I(t3) = {p1, p3, p4} dan

O(t3) = ∅.

Keadaan awal Petri net adalah x0 = [x(p1), x(p2), x(p3), x(p4)]T yaitu

x0 = [2, 0, 0, 1]T. Terlihat pada Gambar 2.8 bahwa satu-satunya transisi yang

enabled adalah t1, karena transisi tersebut hanya membutuhkan sebuah

to-ken dari place p1 dan token pada place p1 berjumlah dua, yaitu x(p1) = 2.

Jelas bahwa 2 = x(p1) ≥ w(p1, t1) = 1 sehingga transisi t1 memenuhi

per-samaan (2.6). Transisi t2 tidak enabled karena tidak ada token pada place

p2 dan p3 yang dapat ditulis 0 = x [p2, p3]T



< w [p2, p3]T, t2



= 1. No-tasi 0 dan 1 menyatakan vektor yang semua elemennya masing-masing 0 dan 1. Jumlah elemen pada vektor tergantung kondisi, pada pertidaksamaan tersebut vektor terdiri dari dua elemen. Transisi t3 tidak enabled karena

[2, 0, 1]T = x [p

1, p3, p4]T



 w [p1, p3, p4]T, t3 = 1.

Ketika transisi t1 difire maka sebuah token diambil dari place p1 dan

sebuah token ditambahkan ke place p2 dan p3 seperti pada Gambar 2.9.

Per-samaan (2.7) juga dapat digunakan untuk mengetahui keadaan berikutnya.

• p1 • p2 • p3 • p4 t1 t2 t3

Gambar 2.9 Keadaan Petri net Setelah Transisi t1 Difire

Keadaan Petri net menjadi x1 = 1 seperti terlihat pada Gambar 2.9.

Transisi t1 enabled karena ada satu token di p1, ditulis x(p1) = 1 = w(p1, t1).

Kondisi x [p2, p3]T = 1 = w [p2, p3]T, t2 menyebabkan transisi t2 enabled.

Pemfirean dapat dilakukan pada transisi t3 karena terdapat token pada place

p1, p3 dan p4, yaitu x [p1, p3, p4]T



= 1 = w [p1, p3, p4]T, t3. Jadi pada

keadaan ini semua transisi enabled karena semua place sudah terisi token. Selanjutnya misal transisi t2 difire. Pada setiap place input dari

tran-sisi t2, token dikurangi satu. Dalam hal ini pada place p2 dan p3 sehingga

kedua place tersebut tidak mempunyai token. Place output dari transisi t2

(50)

kembali mempunyai sebuah token. Ingat bahwa place p2 adalah place input

sekaligus place output dari transisi t2 yang ditulis p2 ∈ I(t2) ∩ O(t2). Selain

place p2, place output dari transisi t2 adalah place p4 sehingga pada place

ter-sebut ditambahkan sebuah token. Jumlah token yang berada pada place p4

bertambah menjadi dua.

Keadaan Petri net menjadi x2 = [1, 1, 0, 2]T yang ditunjukkan oleh

Petri net pada Gambar 2.10. Transisi t1 tetap enabled karena place p1

mem-punyai sebuah token dan arc yang menghubungkan place p1 ke transisi t1

mempunyai bobot satu yang dapat ditulis x(p1) = 1 = w(p1, t1). Tidak

adanya token pada place p3 menyebabkan transisi t2 dan t3 tidak enabled.

Hal ini dapat ditulis sebagai [1, 0]T = x [p 2, p3]T   w [p2, p3]T, t2  = 1 dan.[1, 0, 2]T = x [p 1, p3, p4]T 

 w [p1, p3, p4]T, t3 = 1. Jadi pada keadaan

ini satu-satunya transisi yang enabled adalah t1.

• p1 • p2 p3 •• p4 t1 t2 t3

Gambar 2.10 Keadaan Petri net Setelah Transisi t1 Difire Kemudian t2

Mari kembali ke keadaan x1 yaitu Petri net pada Gambar 2.9

di-mana semua transisi enabled. Jika sebelumnya transisi yang difire adalah t1

maka sekarang transisi t3 difire. Token pada setiap place input dari transisi

t3 dikurangi satu yaitu pada place p1, p3 dan p4. Perhatikan bahwa tidak ada

place output dari transisi t3. Keadaan ini juga dinotasikan dengan x2 karena

pemfirean sudah dilakukan dua kali sejak keadaan x0.

p1 • p2 p3 p4 t1 t2 t3

Gambar 2.11 Keadaan Petri net Setelah Transisi t1 Difire Kemudian t3

Keadaan Petri net pada Gambar 2.11 menjadi x2 = [0, 1, 0, 0]T.

Gambar

Gambar 2.4 Contoh Transisi yang Enabled
Gambar 2.8 Keadaan Awal Petri net Bertanda
Gambar 2.9 Keadaan Petri net Setelah Transisi t 1 Difire
Gambar 2.11 Keadaan Petri net Setelah Transisi t 1 Difire Kemudian t 3
+7

Referensi

Dokumen terkait

Kesimpulan yang diperoleh adalah bahwa investor yang rasional akan menginvestasikan dananya ke dalam portofolio optimal yang terdiri dari saham INDF , UNVR dan ASII karena

Berdasarkan hasil implementasi dan pengujian yang dilakukan, aplikasi ini dapat memberikan informasi tentang ular disertai foto dan persebarannya yang ditampilkan dengan map

[r]

Apabila dilihat dari total keseluruhan, rata-rata lama menginap tamu pada hotel non bintang/akomodasi lainnya Desember 2014 mencapai 1,46 hari, atau naik 0,03 hari bila

Dari hasil penelitian menunjukkan bahwa komite audit, kepemilikan institusional memiliki pengaruh signifikan terhadap agresivitas pajak sedangkan agresivitas

Nykyisten ja mahdollisten tulevien asiakkaiden mielenkiinto ylläpidetään tuomalla esiin juuri muista erottuvaa identiteettiä (Vorá č ek 2014: 31). Positiivisen

Objek penelitian adalah tayangan kekerasan verbal dan non verbal pada program acara yang menjadi 5 rating tertinggi di televisi Indonesia.. Batasan ini berdasarkan

Peraturan Daerah Kabupaten Wonosobo Nomor 6 Tahun 2004 tentang Perubahan Kedua Atas Peraturan Daerah Kabupaten Wonosobo Nomor 13 Tahun 1999 tentang Retribusi Tempat