Model Building Using Solidworks
Model Building Using Solidworks
PERKENALAN 01
Tentang ProModel .............................................................................................. 01
Apa yang bisa didapatkan dari buku ini?.............................................................. 01
Apa ekspektasi penulis terhadap pembaca ......................................................... 01
Panduan membaca buku panduan(?) ..................................................................02
Apakah setelah membaca buku ini saya sudah bisa langsung lulus semua modul
praktikum simulasi komputer? ...........................................................................02
ELEMEN UMUM 03
General Information ........................................................................................... 05
Background Graphics ......................................................................................... 06
Shifts & Breaks .................................................................................................. 06
Mendefinisikan Shift Kerja ............................................................................. 06
Menetapkan Shift Kerja .................................................................................. 08
ELEMEN DASAR 10
Locations .......................................................................................................... 10
Location Graphics Window ............................................................................. 11
Location Edit Table........................................................................................ 13
Capacity & Unit .............................................................................................. 13
Location Routing Rules .................................................................................. 13
Index Number ................................................................................................ 14
Entities.............................................................................................................. 15
Arrivals .............................................................................................................. 16
Processing .........................................................................................................17
Operation Window ..........................................................................................17
Routing Window ............................................................................................ 18
Process Tools Window................................................................................... 18
Process Routing Rules ................................................................................... 19
1
Model Building: Buku Panduan Penggunaan ProModel
ELEMEN PENDUKUNG 21
Resource ........................................................................................................... 21
Resource Graphics Window ........................................................................... 22
Resource Edit Table....................................................................................... 22
Units ............................................................................................................. 23
Resource Specifications Dialog Box (Specs) ................................................... 23
Search ........................................................................................................... 24
Node Logic Editor (Logic) .............................................................................. 25
Resource Points ............................................................................................ 26
Path Network ..................................................................................................... 26
Cost................................................................................................................... 27
Cost Dialog Box ............................................................................................. 27
Locations Costing.......................................................................................... 28
Resource Costing .......................................................................................... 28
Entities Costing ............................................................................................. 29
Attributes .......................................................................................................... 29
Variables ........................................................................................................... 30
Variables Edit Table ....................................................................................... 30
Menampilkan Variabel di Layout Window ........................................................ 30
Local Variable ................................................................................................ 31
Macros............................................................................................................... 31
Scenario Parameters ..................................................................................... 32
ELEMEN LANJUTAN 34
Arrays ................................................................................................................ 34
Initializing Arrays ........................................................................................... 35
Cara Mengimport Data Ke Dalam Array ........................................................... 35
Cara Mengexport Data Ke Dalam Spreadsheet ................................................ 36
Kegunaan Array ............................................................................................. 37
Tank .................................................................................................................. 37
Subroutines ....................................................................................................... 38
Subroutine Format ........................................................................................ 39
Contoh Penggunaan Subroutine..................................................................... 39
Subroutines VS Macros ..................................................................................40
Arrival Cycles .....................................................................................................40
ELEMEN TAMBAHAN 44
Graphic Editor....................................................................................................44
Simulation Options ............................................................................................44
Tracing & Debug ................................................................................................ 45
Tracing .......................................................................................................... 45
Debug ............................................................................................................ 46
Downtimes ........................................................................................................ 47
Location Downtime ....................................................................................... 47
Resource Downtime ...................................................................................... 50
Priorities & Preemption ..................................................................................... 52
Shifts & Breaks Priority .................................................................................. 52
Location Priorities & Preemption ................................................................... 52
Resource Priorities & Preemption .................................................................. 54
Wait .............................................................................................................. 69
Wait Until ...................................................................................................... 70
Warm Up ....................................................................................................... 70
Functions .......................................................................................................... 70
Calyear, calmonth, Caldom, Calday, Calhour, Calmin ....................................... 70
Cap.................................................................................................................71
Char ...............................................................................................................71
Clock ..............................................................................................................71
Ccontents.......................................................................................................71
Ent .................................................................................................................71
Entity .............................................................................................................71
Entries .......................................................................................................... 72
Exp ................................................................................................................ 72
Freecap ......................................................................................................... 72
Freeunits ....................................................................................................... 72
Getcost ......................................................................................................... 72
Getreplication ............................................................................................... 72
Getresrate ..................................................................................................... 72
Groupqty ....................................................................................................... 73
Ln.................................................................................................................. 73
Loc ................................................................................................................ 73
Location ........................................................................................................ 73
Locstate ........................................................................................................ 73
Ownedresource ............................................................................................. 73
Percentop ..................................................................................................... 73
Percentutil .................................................................................................... 74
Preemptedres ............................................................................................... 74
Rand .............................................................................................................. 74
Res ................................................................................................................ 74
Resource ....................................................................................................... 74
Resqty ........................................................................................................... 74
Round............................................................................................................ 74
Sqrt ............................................................................................................... 74
Timesused..................................................................................................... 75
Trunc............................................................................................................. 75
Units ............................................................................................................. 75
STAT::FIT 76
SIMRUNNER 78
MODELLING 101 81
Model Training ............................................................................................... 81
Model Example .............................................................................................. 81
DAFTAR PUSTAKA
Tentang ProModel
ProModel adalah tools yang lengkap dan mudah digunakan untuk memodelkan dan
mensimulasikan sistem discrete-event secara efektif. ProModel juga memiliki kapabilitas
untuk memodelkan aliran kontinu untuk tangki dan wadah lainnya. Dalam ProModel, sebuah
model didefinisikan dengan menggunakan graphical tools, tabel untuk menampung data, dan
kotak dialog yang dapat diisi. Output yang dihasilkan oleh ProModel memberikan gambaran
umum dan rincian untuk setiap ukuran performansi yang menjadi kunci (contoh: utilitasi,
jumlah entitas, persen menganggur, dll). Informasi tersebut dapat disajikan dalam bentuk
grafik, angka, dsb. (Harrell, 2011:93)
1
Model Building: Buku Panduan Penggunaan ProModel
Elemen umum merupakan elemen dalam ProModel yang berpengaruh secara umum
kepada model tersebut. Perubahan dari masing-masing elemen dalam elemen umum tidak
akan mengubah besar nilai output yang dihasilkan. Adapun elemen umum terdiri dari 3 bagian,
yakni general information, background graphics, dan shifts & break.
3
Model Building: Buku Panduan Penggunaan ProModel
Shift editor merupakan tools yang digunakan untuk mendefinisikan shift kerja dalam
suatu sistem setiap minggunya, mulai dari hari minggu hingga sabtu. Setelah shift
perminggu didefinisikan pada shift editor, file tersebut perlu disimpan terlebih dahulu
dalam format SFT. Terdapat beberapa hal yang perlu diperhatikan dalam membuat sebuah
shift, yakni menentukan waktu shift dimulai, waktu shift berakhir, waktu mulai istirahat,
dan lamanya waktu istirahat. Untuk itu, terdapat 3 fungsi utama yang perlu diperhatikan
dalam shift editor, yaitu Define Shift Block, Define Break Block, dan Block Editor.
Pada dasarnya, untuk menentukan waktu bekerja ataupun isrtirahat dalam shift editor,
kita hanya perlu menggambar sebuah block (kotak) dalam kerangka shift, dimana sumbu
horizontal menandakan waktu (jam), dan sumbu vertikal menandakan hari. Untuk
mendefinisikan shift kerja setiap harinya, tekan tombol define shift block, lalu tarik garis
dari jam awal shift dimulai hingga waktu shift berakhir. Dengan begitu, akan muncul kotak
biru yang menandakan shift kerja dan kotak merah yang menandakan waktu istirahat.
Gambar dibawah menunjukkan contoh apabila kita hendak membuat shift kerja yang
berlangsung dari jam 07:00 hingga jam 17:00.
Kita dapat menggunakan block editor untuk memastikan bahwa shift dan break yang
kita tentukan sudah sesuai dengan yang diinginkan. Apabila shift atau break hendak diubah
waktu mulai ataupun waktu berakhirnya, klik block yang ingin diubah, lalu ubah waktu mulai
(begin time) dan waktu selesai (end time) dari block tersebut di bagian block editor. Seperti
terlihat pada contoh sebelumnya, waktu awal dan akhir shift dan break yang didefinisikan
masih belum sesuai, sehingga perlu dilakukan perubahan menjadi seperti berikut.
Selain merubah titik awal dan akhir block shift ataupun break, block shift dan break
dapat diduplikasi pada hari lainnya. Contohnya apabila pada contoh sebelumnya, shift
berlangsung setiap hari (minggu-sabtu), maka klik kanan block shift pada hari minggu, lalu
pilih duplicate, lalu klik hari senin. Ulangi langkah tersebut hingga semua hari memiliki
block shift dan break. Setelah selesai mendefinisikan shift perminggu, simpan file shift
tersebut pada folder yang sama dengan model yang hendak menggunakan shift.
Locations : merupakan daftar lokasi yang menerapkan shift kerja, dapat diisi lebih
dari 1 lokasi. Apabila suatu lokasi diberikan shift, maka diluar jam kerja
lokasi tersebut tidak akan melakukan prosesnya, seperti perintah WAIT()
ataupun perpindahan yang dilakukan oleh conveyor.
Resources : merupakan daftar resource yang menerapkan shift kerja, dapat diisi lebih
dari 1 resource.
Shift Files : file shift kerja (dengan format SFT) yang telah didefinisikan sebelumnya
dan digunakan sebagai acuan shift kerja bagi lokasi dan resource. Kolom
Shift Files akan menampilkan lokasi file shift tersebut pada komputer.
Priorities : merupakan prioritas dari waktu kerja dan waktu istirahat yang
ditentukan. Penjelasan mengenai prioritas dalam shift kerja dijelaskan
pada bagian PRIORITIES & PREEMPTION.
Logic : Dalam shift & breaks, logic dibagi kedalam 4 kategori berdasarkan
kejadian yang berhubungan dengan shift tersebut. Keempat kategori
tersebut adalah Pre-Off-Shift (sebelum mengakhiri shift kerja), Off Shift
(pada saat diluar shift kerja), Pre-Break (sebelum memulai istirahat),
Break (pada saat istirahat berlangsung). Masing-masing kategori
memiliki window yang berbeda-beda.
Disable : menggambarkan apakah shift kerja ini diterapkan atau tidak. Apabila
pada kolom ini tertulis “No”, maka shift kerja tidak akan diterapkan pada
saat simulasi berlangsung.
Dalam membuat model menggunakan ProModel, terdapat beberapa elemen dasar yang
dibutuhkan dalam setiap model. Elemen tersebut adalah Locations, Entities, Arrivals, dan
Processing. Keempat elemen tersebut memiliki perannya masing-masing dan dibutuhkan
dalam memodelkan suatu sistem, khususnya menggunakan ProModel.
2.1 LOCATIONS
Locations merupakan elemen dalam ProModel yang merepresentasikan tempat/lokasi
didalam sistem dimana entitas diolah, disimpan, melakukan aktivitas lain, dan juga
melakukan pemilihan tindakan selanjutnya. Contoh penggunaan lokasi adalah untuk
memodelkan elemen gudang, titik penjemputan, jaringan distribusi, dan lain-lain.
Pengaturan lokasi dapat dilakukan melalui BUILD > LOCATIONS atau dengan menggunakan
hotkey CTRL + L.
Untuk menambahkan lokasi baru, centang kotak “new”. Entitas dapat ditambahkan
dengan memilih graphic yang tersedia, lalu menekan bagian pada layout window dimana
lokasi ingin ditempatkan. Klik 2x untuk mengatur dimensi, warna, dan tampilan lokasi
tersebut.
Pengaturan lokasi memiliki 2 komponen utama, yakni Location Edit Table, Location
Graphics, dan Layout Window. Layout window merupakan tempat lokasi-lokasi tersebut
ditempatkan posisinya, location graphics digunakan untuk membuat, mengatur, dan
menghapus gambar lokasi pada layout window, dan location edit table berfungsi untuk
mengatur karakteristik dari masing-masing lokasi, seperti kapasitas, jumlah, dll.
10
Model Building: Buku Panduan Penggunaan ProModel
Selain lokasi seperti mesin, terminal, dll, terdapat beberapa lokasi yang dapat
digunakan sebagai lokasi penunjang (conveyor, tank, region), dan juga lokasi yang
memberikan informasi dalam suatu lokasi (counter, gauge, text label, status light, dan entity
spot)
Counter dapat digunakan untuk menunjukkan jumlah
entitas dalam suatu lokasi pada saat simulasi
dijalankan. Counter memiliki tampilan yang
menyerupai variabel. Pengaturan counter terdiri dari
warna teks, warna bingkai, dan jenis serta ukuran
teks.
Tank merupakan bar horizontal atau vertical yang menunjukkan aliran dari benda cair
yang bersifat kontinu. Tanks biasanya digunakan untuk memodelkan pergerakan cairan,
contohnya pada saat memindahkan air dari galon menuju ke gelas.
Entity Spot digunakan untuk mengarahkan posisi entitas pada suatu lokasi pada saat
sedang beroperasi dalam lokasi tersebut. Dengan kata lain, posisi entitas pada saat
sedang diproses di lokasi tertentu akan mengikuti posisi entity spot. Untuk lokasi dengan
kapasitas > 1, jumlah entity spot yang dapat digunakan disesuaikan dengan jumlah
kapasitas lokasi tersebut.
Region digunakan untuk menggambarkan area suatu lokasi. Region juga dapat berperan
sebagai lokasi apabila terdapat gambar layout yang telah di-import.
Setelah lokasi diinput kedalam layout window dari location graphics window, data
mengenai lokasi tersebut akan dicatat dalam location index table. Kita dapat mengatur
karakteristik masing-masing lokasi, mulai dari kapasitas, jumlah unit lokasi, hingga ke
aturan pemilihan entitas yang masuk.
Select Incoming Entities digunakan untuk menentukan entitas manakah yang akan dipilih
dari beberapa lokasi asal yang ada. Contohnya apabila terdapat 3 entitas di 3 lokasi Y1, Y2,
dan Y3 menuju ke 1 lokasi X, maka penentuan entitas mana yang akan menuju ke lokasi X
diatur pada bagian ini.
Oldest by priority : menentukan pilihan berdasarkan waktu menunggu
paling lama
Random : menentukan pilihan secara acak
Least available capacity : menentukan pilihan berdasarkan kapasitas lokasi asal
yang paling penuh
Last Selected Location : menentukan pilihan berdasarkan lokasi yang telah
dipilih sebelumnya. Apabila lokasi tersebut sudah
tidak memiliki entitas yang hendak menuju lokasi X,
maka aturan berubah menjadi oldest by priority.
Highest/Lowest Attribute Value : menentukan pilihan berdasarkan nilai atribut entitas
tersebut.
Queueing for Output digunakan untuk menentukan aturan antrian entitas dalam suatu
lokasi. Bagian ini biasanya digunakan untuk antrian.
No Queueing : tidak memiliki pengaturan antrian
First In, First Out (FIFO) : pengaturan antrian didasarkan pada urutan entitas
masuk, dari tercepat hingga terlama.
Last In, First Out (FIFO) : pengaturan antrian didasarkan pada urutan entitas
masuk, dari terlama hingga tercepat.
By Type : pengaturan antrian didasarkan pada tipe entitasnya.
Highest/Lowest Attribute Value : pengaturan antrian didasarkan pada nilai atribut
entitas tersebut.
Selecting a Unit digunakan untuk menentukan unit manakah yang akan dipilih sebagai
tujuan entitas tersebut. Selecting unit dapat dipilih apabila lokasi yang menjadi tujuannya
merupakan lokasi jamak (Multi-Unit Location).
First Available : menentukan pilihan dengan melihat lokasi yang paling
pertama dapat diisi dari baris atas menuju baris
bawah.
By Turn : menentukan pilihan lokasi secara bergantian antara
semua lokasi.
Most Available Capacity : menentukan pilihan lokasi yang memiliki kapasitas
tersedia paling besar.
Fewest Entries : menentukan pilihan berdasarkan lokasi yang paling
jarang dikunjungi.
Random : menentukan pilihan lokasi secara acak
INDEX NUMBER
Setiap lokasi memiliki 2 identitas, dalam bentuk teks dan dalam bentuk nomor. Identitas
lokasi dalam bentuk nomor disebut juga dengan name-index number. Nomor pada name-
index number mengacu pada urutan lokasi tersebut pada kumpulan lokasi di location edit
window. Dengan kata lain, index number merupakan nomor baris dari lokasi tersebut.
Apabila terdapat lokasi jamak, maka masing-masing lokasi akan mendapatkan index
number yang berbeda-beda dan berurutan.
Seperti terlihat pada gambar 1, pintu masuk memiliki index number 1, tempat
pemesanan memiliki index number 2, dst. Untuk keranjang handuk yang merupakan lokasi
jamak, keranjang handuk 1 memiliki index number 6, sedangkan keranjang handuk 2
memiliki index number 7.
Name-index number cocok digunakan untuk mendefinisikan masing-masing lokasi dalam
lokasi jamak, dapat digunakan dengan menggunakan kode LOC().
2.2 ENTITIES
Entitas (Entity) adalah elemen yang merepresentasikan segala sesuatu yang di proses oleh
model. Dokumen-dokumen, orang, panggilan telepon, dsb dimodelkan sebagai entitas.
Entitas dapat dikelompokan seperti beberapa boks yang ditumpuk diatas pallet (dengan
perintah GROUP()), disatukan dalam satu kesatuan seperti perakitan produk (dengan perintah
JOIN()), dipisah menjadi 2 atau lebih entitas (baik dengan perintah SPLIT()) atau diubah
menjadi satu atau lebih entitas baru (dengan perintah RENAME() atau CREATE() atau dengan
menuliskan jumlah kuantitas yang diinginkan dalam routing). Untuk mengakses elemen
entitas, dapat melalui BUILD > ENTITIES atau dengan menggunakan hotkey CTRL + E.
Setiap tipe entitas memiliki nama dan nomor indeks seperti pada lokasi. Sebuah entitas dapat
dirujuk dengan nama atau nomor indeks menggunakan fungsi ENT().
Untuk menambahkan entitas baru, centang kotak “new”. Entitas dapat ditambahkan
dengan memilih graphic yang tersedia. Klik Edit untuk mengubah dimensi entitas, warna
entitas, dan posisi entitas.
Icon : Gambar dari entitas tersebut di layout window.
Name : Nama dari entitas tersebut
Speed : Menggambarkan kecepatan perpindahan dari entitas yang dapat diatur.
Kecepatan ini akan digunakan apabila entitas tersebut bergerak sendiri tanpa
bantuan resource ataupun diatas conveyor.
Stats : Stats dapat diubah untuk menentukan detail dari statistik yang ingin
didapatkan. “Time Series” statistik mempertimbangkan data throughput dari
entitas. Sedangkan “Basic” hanya mempertimbangkan total masing-masing
entitas yang keluar dari sistem.
2.3 ARRIVALS
Arrival merupakan elemen yang mengatur kedatangan entitas yang hendak masuk kedalam
sistem. Setiap entitas yang masuk ke dalam sistem dapat dijadwalkan kedatangannya
menggunakan arrival. Salah satu contoh penggunaan arrival adalah untuk menjadwalkan
kedatangan bahan baku dari supplier. Arrival dapat diakses melalui BUILD > ARRIVALS atau
dengan menggunakan hotkey CTRL + A.
First Time : Opsi ini mengizinkan anda untuk memvariasikan waktu kedatangan entitas
untuk pertama kalinya. Anda dapat menentukan kedatangan yang
terjadwal pada interval yang diberikan atau menggunakan arrival cycle
untuk menentukan random arrival pada periode tertentu. Promodel
hanya mengevaluasi opsi ini pada awal simulasi dimulai. Arrival cycle
dijelaskan secara pada bagian ARRIVAL CYCLES.
Occurences : Jumlah kedatangan entitas tersebut kedalam sistem.
Frequency : Selang waktu (interval) antar kedatangan entitas.
Logic : Anda dapat menambahkan perintah yang akan di eksekusi ketika
kedatangan terjadi.
Disable : Dapat digunakan untuk menonaktifkan arrival tanpa perlu menghapus
arrival yang sudah dibuat.
2.4 PROCESSING
Processing merupakan elemen dalam ProModel yang berperan sebagai pengatur event dan
alur dari masing-masing entitas didalam sistem. Processing memuat tentang semua proses
yang dijalankan didalam sistem tersebut. Pada bagian processing dapat dilihat alur entitas
diproses dalam sistem, skema penentuan keputusan, aktivitas yang dijalankan oleh entitas,
pekerjaan yang dilakukan oleh resource, dan masih banyak lagi. Processing dapat diakses
melalui BUILD > PROCESSING atau dengan menggunakan hotkey CTRL + P.
Terdapat 3 komponen utama dalam processing, yakni operation window, routing window,
dan process tools window.
OPERATION WINDOW
Operation window merupakan tabel yang menggambarkan proses yang dijalani suatu
entitas dalam lokasi. Dengan kata lain, semua proses yang berlangsung dalam lokasi akan
didefinisikan di operation window. Untuk perintah dan fungsi dalam ProModel dijelaskan pada
bagian LOGIC & FUNCTION.
Entity : Menentukan entitas yang hendak diproses.
Location : Menentukan lokasi dimana entitas melakukan proses.
Operation : Menentukan operasi yang dilakukan oleh entitas di lokasi tersebut.
ROUTING WINDOW
Routing window menggambarkan alur entitas menuju lokasi tertentu. Alur entitas
digambarkan dalam layout window dengan tanda panah. Pada routing window, didefinisikan
luaran dari operation window, yaitu entitas hasil proses yang hendak dipindahkan menuju ke
lokasi selanjutnya.
Output : Menentukan entitas setelah diproses.
Destination : Menentukan lokasi tujuan entitas pada saat berpindah.
Rule : Menentukan skema perpindahan entitas tersebut.
Move Logic : Menentukan Logic yang digunakan pada saat perpindahan entitas. Pada
bagian ini dapat diberikan logic MOVE FOR(), MOVE ON(), dan MOVE().
Process tools window berisi mengenai tombol tombol yang dapat digunakan dalam
membentuk alur proses sistem.
New Process : Menambahkan proses baru
Add Routing : Menambahkan alur perpindahan entitas di layout window.
Find Process : Mencari proses yang ada dalam operation window. Untuk
mencari proses klik entitas yang hendak dicari pada bagian
entity, kemudian tekan tombol find process, dan klik lokasi
yang hendak dilihat.
Show Only Current Entity : digunakan untuk menunjukkan panah hanya untuk entitas
yang diklik pada bagian entity.
Operation window dan routing window memiliki keterkaitan dalam membentuk alur yang
sistematis. Setelah sebuah entitas masuk kedalam sistem, entitas tersebut akan
didefinisikan pada operation window, kemudian entitas tersebut akan didefinisikan di routing
window sebagai output dari operasi yang dilakukan. Dengan routing window, entitas akan
diarahkan menuju lokasi lain, dimana lokasi pada lokasi tersebut entitas akan didefinisikan
prosesnya kembali di operation window. Hal tersebut akan berlanjut hingga entitas keluar dari
sistem.
Sama halnya seperti routing rules pada lokasi, process routing rules berisi mengenai skema
pemilihan lokasi dan perpindahannya.
Start New Block : Menambahkan blok baru pada routing window. Blok baru berperan
sebagai rute yang dapat dipilih pada saat pengambilan keputusan.
New Entity : Membuat entitas baru untuk dipindahkan ke lokasi tertentu. Dengan
demikian, terdapat 2 entitas yang dipindahkan yakni entitas awal
dan entitas baru.
Quantity : Mengatur berapa jumlah entitas yang hendak dipindahkan.
Quantity berperan seperti perintah SPLIT().
First Available : Memilih lokasi berdasarkan ketersediaan kapasitas di lokasi
tersebut. ProModel akan melihat berdasarkan urutan index
number lokasi kemudian memilih lokasi yang memungkinkan.
Most Available : Memilih lokasi yang memiliki kapasitas kosong paling banyak
diantara lokasi yang ada. Rule ini cocok digunakan untuk lokasi
tujuan dengan tipe multi-capacity.
By Turn : Memilih 2 atau lebih lokasi secara bergantian / bergiliran. Dengan
demikian, setiap lokasi tujuan memiliki jumlah input entitas yang
seimbang.
Random : Pemilihan lokasi dilakukan secara acak.
If Join Request : Entitas dapat berpindah ke lokasi tersebut JIKA pada lokasi tersebut
terdapat perintah JOIN() untuk entitas dan entitas bukan
merupakan base.
If Load Request : Entitas dapat berpindah ke lokasi tersebut JIKA pada lokasi tersebut
terdapat perintah LOAD() untuk entitas dan entitas bukan
merupakan base.
Elemen pendukung merupakan elemen yang dapat digunakan untuk mendukung jalannya
suatu model agar dapat lebih sesuai dengan kondisi aktual. Tidak seperti elemen dasar,
elemen pendukung tidak harus digunakan dalam membuat model. Model yang dibuat tetap
dapat dijalankan walaupun tidak menggunakan elemen pendukung.
3.1 RESOURCE
Resource merupakan elemen dalam ProModel yang merepresentasikan seseorang atau
peralatan yang berperan dalam menjalankan suatu kegiatan dalam sistem, baik memindahkan
entitas antara satu lokasi menuju lokasi lainnya (forklift, truk, dll), melakukan pemrosesan
pada suatu entitas dalam lokasi (mengemas barang, melakukan pengecekan kualitas, dll),
ataupun kegiatan lain yang membutuhkan peran sumber daya secara aktif. Pengaturan
resource dapat dilakukan dengan mengakses BUILD > RESOURCE atau dengan menggunakan
hotkey CTRL + R.
Untuk menambahkan lokasi baru, centang kotak “new” pada Resource Graphics Window,
kemudian tambahkan resource dengna memilih graphic yang tersedia.
Terdapat dua jenis resource yaitu dynamic resource dan static resource. Semua resource
yang telah ditempatkan dalam path network tertentu merupakan dynamic resource, karena
resource tersebut dapat berpindah lokasi sesuai dengan jalur yang didefinisikan pada path
network. Apabila suatu resource tidak ditempatkan dalam path network tertentu, resource
tersebut tetap dapat beroperasi dalam suatu lokasi, dinamakan static resource. Dengan kata
lain, static resource tidak dapat membantu proses perpindahan entitas antar lokasi.
Pengaturan resource memiliki dua komponen utama, yakni Resource Edit Table dan
Resource Graphics Window. Resource Graphics Window digunakan untuk membuat, mengatur,
dan menghapus gambar resource pada Resource Edit Table. Sedangkan, Resource Edit Table
berfungsi untuk mengatur karakteristik masing-masing resource, seperti jumlah, jalur, nama,
dsb.
21
Model Building: Buku Panduan Penggunaan ProModel
Icon : Representasi gambar resource dalam sistem, diatur melalui Resource Graphics
Window.
Name : Nama yang digunakan sebagai identitas resource tersebut.
Units : Jumlah resource tersebut dalam sistem.
DTs : Skema downtime yang dijalani resource tersebut.
Stats : Tipe data statistik yang diambil (none – tidak mengambil data, summary – data
yang ditampilkan merupakan rata-rata dari semua unit resource, by unit – data
yang dikumpulkan secara kolektif dari masing-masing unit)
Specs : digunakan untuk mengatur spesifikasi resource tersebut, seperti kecepatan
perpindahannya, jalur yang digunakan, tempat istirahat, dsb.
Search : digunakan untuk mendefinisikan work search dan park search.
Logic : digunakan untuk memberikan perintah tertentu apabila suatu resource memasuki
atau keluar dari node tertentu.
Pts : digunakan untuk untuk mendefinisikan posisi resource apabila menempati node
tertentu.
Notes : digunakan untuk memberikan catatan yang tidak akan berpengaruh ke jalannya
simulasi.
UNITS
Units pada resource menggambarkan jumlah resource tersebut dalam sistem. Apabila
terdapat lebih dari satu resource, angka pada kolom Units dapat diganti antara 0 hingga 999,
ataupun dengan macro, yang disebut dengan multi-unit resource. Namun, apabila suatu multi-
unit resource memiliki spesifikasi yang sama, jalur yang sama, namun pekerjaan yang
berbeda-beda sehingga perlu diidentifikasi satu persatu, maka penggunaan multi unit
resource kurang cocok. Untuk kasus tersebut, digunakan multiple single-unit resource,
dimana masing-masing resource perlu didefinisikan secara terpisah menjadi masing-masing
resource dengan jumlah unit satu. Dengan demikian, kita dapat menempatkan pekerjaan
secara spesifik untuk resource tertentu.
Kolom Specs berisi tentang informasi mengenai karakteristik dynamic resource dalam
sistem. Pada bagian ini kita dapat menempatkan resource pada suatu path network,
menentukan kecepatan perpindahan resource, dan sebagainya.
Path network : Jalur yang digunakan oleh resource untuk berpindah dari satu lokasi ke
lokasi lainnya.
Home : Tempat awal resource pada saat simulasi berlangsung. Apabila kotak
‘Return Home If Idle’ diberi centang, maka resource tersebut akan
kembali pada tempat yang telah ditentukan menjadi home apabila tidak
memiliki tugas untuk memproses entitas ataupun sedang menjalani
downtime.
Off Shift : Tempat yang dituju apabila resource tidak berada dalam waktu shift
dimana ia harus bekerja.
Break : Merupakan tempat yang dituju apabila resource tersebut sedang
beristirahat (break).
Resource search : Digunakan bila terdapat lebih dari satu resource yang tersedia untuk
menjalankan suatu proses. Resource akan dipilih berdasarkan aturan
Entity Search : Digunakan apabila terdapat lebih dari satu entitas yang hendak
diproses oleh resource. Entitas yang akan diproses terlebih dahulu
akan dipilih berdasarkan aturan yang ditetapkan pada bagian ini.
Terdapat 4 aturan pemilihan entitas, yaitu Longest Waiting Entity
(entitas yang telah menunggu paling lama), Closest Entities (entitas
dengan jarak terdekat dari resource), Entity With The Minimum Value Of
A Specified Attribute (entitas dengan nilai atribut minimal tertentu), dan
Entity With The Maximum Value Of A Specified Attribute (entitas dengan
nilai atribut maksimal tertentu)
Motion : Merupakan bagian yang mengatur mengenai perpindahan resource.
Pada bagian ini, kita dapat mengatur kecepatan resource saat sedang
tidak membawa barang ataupun saat sedang membawa barang
(entitas), akselerasi dan deselerasi resource, waktu mengambil barang
(pickup time), dan waktu menaruh barang (deposit time).
SEARCH
Search mengacu pada instruksi yang diberikan kepada resource. Terdapat 2 jenis rutinitas
yang dapat diberikan, yakni Work Search dan Park Search.
Work Search merupakan serangkaian lokasi yang kemungkinan besar memiliki entitas yang
perlu diproses. Dengan demikian, resource dapat berfokus pada lokasi tersebut sebelum
melihat lokasi lainnya. Terdapat 2 tipe work search, yakni exclusive dan non-exclusive.
Exclusive work search digunakan untuk memastikan bahwa resource tersebut hanya mencari
pekerjaan hanya berdasarkan lokasi yang ditentukan saja. Apabila terdapat entitas yang perlu
diproses pada lokasi lain, maka resource tersebut tidak akan pergi untuk menjalankan
pekerjaan tersebut. Non-Exclusive work search digunakan untuk mengatur bahwa resource
yang mencari pekerjaan akan melihat lokasi tersebut sebelum melihat lokasi lainnya.
Park Search digunakan untuk menempatkan resource pada lokasi tertentu apabila tidak dapat
menemukan pekerjaan dan tidak sedang menjalankan downtime. Dengan demikian, resource
dapat berpindah dari jalur utama dan menunggu di lokasi lain hingga dipanggil untuk
memproses entitas, lokasi, ataupun menjalankan downtime. Apabila pada node atau ‘titik
lokasi’ tersebut tidak didefinisikan park search menuju lokasi lain, maka resource dapat
menunggu pada lokasi tersebut, ataupun kembali ke node home (apabila kotak ‘Return Home If
Idle’ diberi centang).
Penggunaan perintah NEXT() dan LAST() dapat digunakan pada resource node logic editor
untuk mendefinisikan tujuan dan asal suatu resource pada saat berpindah. Dengan demikian,
dapat digunakan perintah atau kode lain untuk mensimulasikan sistem dengan perpindahan
yang lebih kompleks.
Graphic : Menentukan warna jalur dan menentukan visible tidaknya jalur pada layout
window dan selama simulasi berlangsung.
Name : Nama yang digunakan sebagai identitas jalur tersebut
Type : Menentukan tipe dari jalur yang dibuat. Pilih Non-passing jika anda ingin
entitas mengantri di path network. Entities atau resources dengan speed yang
lebih tinggi tidak akan saling menyusul jika menggunakan tipe non passing.
Pilih tipe passing apabila entitas dapat mendahului entitas lain dalam path
network.
T/S : Menentukan tipe dari path network, Time dipilih apabila perpindahan elemen
diukur berdasarkan waktu. Speed & Distance dipilih apabila perpindahan
elemen diukur menggunakan jarak dan kecepatan elemen.
Paths : Menunjukan jumlah path yang sudah dibuat. Dengan menekan path, kita dapat
menentukan jalur yang akan dibuat. Titik awal dan akhir dari masing-masing
jalur yang dibuat merupakan node, yang dapat disambungkan dengan path
lainnya.
Interfaces : Menentukan node atau titik dari path yang dibuat. Jika entitas akan diambil
dari suatu lokasi oleh resources, maka lokasi tersebut harus terkoneksi
dengan node pada suatu path network.
Mapping : Jumlah entries pada tabel mapping.
Nodes : Jumlah dari titik yang muncul dalam pembuatan jalur. Nodes otomatis terbuat
ketika membuat path network pada setiap awal dan akhir garis yang
dibentuk. Pada tabel nodes, anda dapat menentukan node secara manual
maupun menentukan limit dari node (batasan berapa resource yang dapat
menempati satu node pada saat yang sama).
3.3 COST
ProModel memiliki kemampuan untuk menghitung biaya dalam sistem selama simulasi
berlangsung. Dengan demikian, pengambilan keputusan dapat didasarkan pada efisiensi
biaya. Adapun elemen yang dapat diasosiasikan dengan biaya adalah entitas, lokasi, dan
resource. Satuan biaya yang digunakan oleh ProModel adalah $. Untuk mendefinisikan biaya,
elemen cost dapat diakses melalui BUILD > COST.
LOCATIONS COSTING
Untuk mendefinisikan biaya lokasi, terdapat 2 komponen utama yang perlu ditentukan,
yakni operation rate dan unit of rate (Per). Operation rate merupakan biaya yang dikeluarkan
oleh lokasi tertentu saat memproses suatu unit, dan unit of rate (Per) merupakan satuan waktu
untuk operation rate. Per dapat diisi dengan sec, min, hr, dan day sesuai dengan satuan waktu
yang diinginkan. Komponen yang dihitung menjadi biaya pada lokasi tertentu adalah pada saat
suatu entitas pada lokasi tertentu menjalankan perintah WAIT() atau USE(). Pada contoh
diatas, Bor Duduk akan memerlukan biaya sebesar 100 setiap menit digunakan.
RESOURCE COSTING
ENTITIES COSTING
Untuk mendefinisikan biaya entitas, hanya terdapat 1 komponen yang perlu didefinisikan,
yakni initial cost. Initial cost merupakan biaya yang dikeluarkan untuk entitas yang memasuki
sistem dengan menggunakan perintah CREATE(), ORDER(), maupun dijadwalkan dengan
menggunakan ARRIVALS. Dengan demikian, setiap terdapat satu entitas yang memasuki
sistem, ProModel otomatis akan menghitung initial cost entitas tersebut. Pada contoh diatas,
setiap mendatangkan sebuah resin kedalam sistem dibutuhkan biaya sebesar 3000.
ProModel secara otomatis mengaktifkan pilihan Disable Cost pada simulation options. Dengan
demikian, apabila pada model yang dibuat terdapat elemen biaya, centang pada kotak Disable
Cost perlu dihilangkan terlebih dahulu
3.4 ATTRIBUTES
3.5 VARIABLES
Variables memiliki dua tipe: global dan lokal. Variabel Global adalah variabel yang
mendefinisikan perubahan nilai numerik selama simulasi berlangsung dan dapat diakses oleh
semua elemen dalam sistem (global). Sedangkan variabel lokal adalah variabel yang akan
tersedia jika terdapat perintah yang membangkitkan variabel tersebut. Variabel dapat
mengandung nilai real dan integer, yang biasanya digunakan untuk pengambilan keputusan
dan merekam informasi. Variabel lokal dapat diakses menggunakan perintah INT() dan REAL()
pada logic builder. Variabel global dapat diakses melalui BUILD > VARIABLES atau dengan
menggunakan hotkey CTRL + B.
Icon : Status indikator variabel pada layout window. Apabila kolom icon berisi
‘Yes’, maka variabel memiliki indikator untuk menunjukkan nilainya pada
layout window.
ID : Menunjukan nama dari variabel yang dibuat
Type : Nilai variabel apakah bilangan bulat (Integer) atau bilangan desimal (Real)
Initial Value : Nilai awal dari variable ketika simulasi di mulai
Stats : Tipe data statistik yang diambil
None = Tidak ada data statistik yang diambil selama simulasi
Basic = Mengambil statistik dasar seperti total changes, average
minutes per change, current value, dan average value
Time series = Mengambil semua data statistik dasar dan nilai dari masa
lalu berdasarkan waktu atau observasi. ProModel mengumpulkan
statistik berbasis weighted time atau observasi untuk variable
tergantung pada jenis yang dipilih
LOCAL VARIABLE
Selain dengan menggunakan cara diatas, variabel dapat dibuat secara langsung melalui
logic, yang dinamakan local variable. Local variables adalah atribut sementara yang dapat
digunakan untuk menjelaskan suatu logika tertentu pada model simulasi. Variabel lokal sangat
berguna untuk mendapatkan nilai unik untuk setiap entitas pada suatu lokasi. Contoh dari
variabel lokal adalah sebagai berikut:
Pada logic diatas, setiap entitas yang masuk dalam lokasi akan diberikan unique value
secara random diantara 0 dan 1. Kemudian IF THEN ELSE() digunakan untuk menentukan
kualitas dari bahan yang datang, jika nilainya lebih kecil dari 0.6 maka kualitas material jenis 1,
jika lebih dari 0.6 dan lebih kecil dari 0.9, maka kualitas material jenis 2, jika lebih dari 0.9,
maka kualitas material jenis 3.
3.6 MACROS
Macros merupakan elemen dalam ProModel yang merepresentasikan suatu ekspresi yang
sering digunakan dalam sistem. Berbeda dengan subroutine, macro hanya menggantikan
suatu ekspresi dan tidak dapat melakukan penghitungan atau mendapatkan data tertentu.
Dengan demikian, macros hanya berperan sebagai pengganti suatu nilai. Macros dapat
diakses melalui BUILD > MACROS atau dengan menggunakan hotkey CTRL + M.
Macro dapat digunakan pada berbagai elemen dalam ProModel, namun untuk beberapa
kasus hanya dapat berupa ekspresi numerik seperti 1, 500, N(10,2), Var5, Att3, dll
Pada logic, macro dapat berupa serangkaian teks yang membentuk fungsi.
SCENARIO PARAMETERS
Scenario Parameter memungkinkan sebuah macro untuk diubah nilainya sebelum simulasi
berlangsung. Dengan demikian, simulasi dapat dijalankan untuk beberapa kemungkinan yang
dikehendaki tanpa perlu mengubah model secara langsung.
Kolom From dan To pada bagian bawah scenario parameter window perlu diisi apabila
record range atau numeric range dipilih. Apabila pada numeric range kolom ini berperan
sebagai batas atas dan batas bawah nilai yang memungkinkan, pada record range kolom ini
berperan sebagai jumlah minimum dan maksimum dari index number shift atau arrival yang
hendak diubah. Contohnya apabila terdapat 3 jenis arrival dengan karakteristik yang berbeda
beda seperti contoh dibawah:
Elemen lanjutan merupakan elemen dalam ProModel yang berperan untuk mendukung
jalannya suatu model. Sama halnya dengan elemen pendukung, elemen lanjutan tidak harus
digunakan dalam membuat model. Perbedaan antara elemen pendukung dan elemen lanjutan
adalah elemen lanjutan tidak akan diajarkan ataupun diharuskan untuk digunakan dalam
modul praktikum simulasi komputer. Dengan demikian, elemen lanjutan tidak perlu
menggunakan elemen lanjutan dalam mengerjakan tugas yang diberikan selama praktikum
simulasi komputer berlangsung, tetapi Anda tetap dapat menggunakannya untuk
“mempercantik” model yang anda buat.
Pemaparan materi untuk elemen lanjutan tidak diberikan dengan lengkap, dan hanya
diberikan pemaparan secara sekilas. Untuk mendalami elemen-elemen tersebut, Anda dapat
membaca ProModel User Guide yang memberikan penjelasan lengkan mengenai elemen-
elemen lanjutan (sayangnya dalam bahasa inggris ).
4.1 ARRAYS
Array adalah sebuah matriks atau kumpulan cell yang berisi nilai integer atau real. Setiap
sel dalam array bekerja mirip seperti variable, dan sebuah reference untuk cell dalam array
dapat digunakan dimana saja selama variable dapat digunakan. Sebuah array 1 dimensi dapat
dibayangkan sebagai sebuah kolom nilai. Sebuah array 2 dimensi adalah seperti memiliki dua
atau lebih kolom nilai (mirip seperti spreadsheet). Elemen Array dapat diakses melalui menu
BUILD > ARRAY.
Untuk mereferensikan sebuah cell dalam array, berikan nama dari array dan masukan
nomor dari cell tersebut. Contoh, jika anda memiliki sebuah array dengan 10 nilai di dalamnya
yang diberi nama OpnArray, untuk mereferensikan cell ke 5, anda dapat menggunakan
OpnArray[5]. Sedangkan untuk mereferensikan sebuah cell dalam array 2 dimensi, secara
sederhana gunakan nama array dan nomor dari baris dan kolom, misalnya OpnArray[3,4].
Kemudian untuk mereferensikan cell pada array 3 dimensi, anda dapat memasukan nomor
dimensi ketiga terlebih dahulu, misalnya OpnArray[3,3,4]. Dimensi maksimum dari Array
adalah 20.
Nilai cell pada array dapat dimasukan dengan cara seperti anda memasukan nilai pada
variable. Contoh, anda ingin memasukan nilai 18 ke baris ke 5 dan kolom kedua maka
perintahnya adalah:
34
Model Building: Buku Panduan Penggunaan ProModel
Arr1[5,2]=18
INITALIZING ARRAYS
Secara default, semua cell dalam
sebuah array diisi oleh nilai 0. Inisialisasi
nilai cell ke nilai lain harus dilakukan dalam
initialization logic. Perintah WHILE DO
sangat berguna untuk menginisialisasikan
nilai cell pada array. Contohnya seperti
logic pada contoh disamping.
4. Pada field File Masukan nama file dari spreadsheet yang anda ingin gunakan
5. Pada field Sheet name, masukan nama dari worksheet yang berisi data yang ingin anda
gunakan.
6. Masukan pada field Import Start Cell. Nilai ini akan menjadi posisi awal array
7. Masukan pada field Import End Cell. Nilai ini akan menjadi posisi akhir array.
8. Click OK
Selain mengambil data dari Excel spreadsheet, Import data array juga dapat dilakukan
melalui SQL Database:
KEGUNAAN ARRAY
Dengan menggunakan array, model dapat disederhanakan. Contohnya apabila anda ingin
memodelkan sebuah lini perakitan yang merakit komponen komputer ke motherboard.
Kemudian, anda ingin melacak tingkat penggunaan komponen yang digunakan. Tanpa array,
anda akan membutuhkan ratusan entitas individu dengan tipe yang sangat bervariasi untuk
menggambarkan setiap komponen aktual. Untuk tetap melacak komponen akan sangat
kompleks, belum lagi semua operasi perakitan dan penggabungan. Sebaliknya, berbagai sel
dalam array 1 dimensi dapat melacak jumlah setiap jenis komponen yang digunakan dalam
simulasi.
Sebuah array juga dapat membuat pekerjaan menjadi lebih efisien. Misalnya data
persediaan awal setiap komponen dapat dibaca melalui array ketika simulasi dijalankan. Cell
pertama dapat berisi jumlah persediaan komponen 1, yang kedua berisi persediaan komponen
2, dsb. Ketika komponen assembly datang ke lokasi perakitan maka anda dapat melakukan
perubahan pada nilai array. Dengan demikian, model dapat disederhanakan sehingga entitas
yang dibutuhkan menjadi lebih sedikit.
Jika waktu wam up ditentukan, array tidak akan di reset.
Array dapat disarangkan (nested). Misalnya, jika Arr1[2,3] adalah 3, maka Arr2[5,Arr1[2,3]]
akan sama dengan Arr2[5,3]
Anda dapat memeriksa nilai sel pada array dalam simulasi dengan memilih informasi
kemudian Array. Informasi juga dapat dicetak.
Array dapat digunakan dengan perintah WAIT UNTIL.
Statistik tidak dihasilkan pada Array. Jika anda ingin melihat nilai akhir dari array, anda
dapat menggunakan fitur export ke spreadsheet atau gunakan perintah PAUSE pada
termination logic.
4.2 TANK
Tanks merupakan elemen lokasi dalam
ProModel dimana apabila pada elemen
LOCATIONS digunakan sistem entity routing
(entitas masuk, diproses, kemudian,
dipindahkan ke lokasi lain) pada Tanks
digunakan sistem level. Tanks tidak dapat
mendefinisikan entitas apa saja yang berada
didalam tanks dan berapa jumlahnya, melainkan digantikan dengan menggunakan tingkat
pengisian tangki. Dengan demikian, Tanks cocok untuk memodelkan aliran entitas berupa
cairan yang bersifat continuous. Dan juga, dengan dikombinasikan dengan ProModel yang
merupakan discrete event simulator, dapat dimungkinkan memodelkan proses pemindahan
barang dari satuan continuous menjadi satuan diskrit (Contoh: mengisi galon air dari tangki
air, mengisi minuman pada restoran, dll).
Secara garis besar, tidak terdapat perbedaan yang signifikan antara menggunakan tank
dan menggunakan pendekatan lain seperti multi-capacity location. Beberapa perbedaan yang
muncul antara lain:
Tidak memerlukan entitas untuk mendefinisikan cairan didalam tangki, sehingga tidak
membingungkan
Tank akan dianggap sebagai single capacity location (lokasi dengan kapasitas 1) walaupun
pada kapasitas lokasinya diberi angka lebih dari 1. Hal ini memudahkan dalam melihat
output yang diberikan
4.3 SUBROUTINES
Sebuah subroutine adalah perintah yang dapat dipanggil untuk melalukan sebuah logika
dan secara opsional mengembalikan suatu nilai. Subroutine dapat memiliki parameter (local
variables) dimana akan berperan dalam subroutine dan mengambil nilai dari argumen melewati
subroutine.
Promodel mengatur subroutine dengan 3 cara. Pertama, sebuah subroutine dapat di proses
dengan cara calling logic seolah olah subroutine adala bagian dari calling logic. Cara ini adalah
cara yang paling umum digunakan, dan dilakukan dengan sederhana mereferensikan nama
dari subroutine ke dalam logic. Kedua, sebuah subroutine dapat di proses secara independen
dengan calling logic, maka calling logic dapat dilanjutkan tanpa menunggu subroutine selesai.
Metode ini memerlukan perintah ACTIVATE() diikuti nama dari subroutine yang digunakan.
Lihat ACTIVATE() untuk informasi lebih lanjut. Ketiga, ProModel mengizinkan subroutines
tertulis pada bahasa pemrograman lain yang dapat dipanggil dengan XSUB() function.
Subroutine dapat diakses melalui BUILD > SUBROUTINES atau dengan menggunakan hotkey
CTRL + B.
SUBROUTINE FORMAT
Sebuah subroutine memiliki nama yang unik. Cara yang umum digunakan untuk memanggil
subroutine adalah:
Catatan:
1. Jika tidak ada argumen yang jelas, tanda () tetap diperlukan
2. Pernyataan dalam subroutine harus valid dalam logic pada subroutine yang dipanggil.
Contoh, jika subroutine dipanggil pada suatu operation logic, subroutine seharusnya
hanya berisi perintah yang valid untuk operation logic. Subroutines yang dipanggil
menggunakan ACTIVATE atau dari Interact Menu dapat memiliki perintah umum,
termasuk WAIT.
3. Sebuah subroutine dapat digunakan pada semua logic field. Selain itu, subroutine dapat
digunakan semua expression field asalkan perintah RETURN digunakan pada expression
fields. Expression fields diantaranya adalah kolom Qty each, arrivals edit table dan routing
table untuk processing.
4. Jika sebuah subroutine tidak mengembalikan expression dengan perintah RETURN,
maka nilai 0 akan digunakan pada subroutine bertipe Real dan Integer. Tidak ada nilai
yang akan dikembalikan pada tipe None dan Interactive.
SUBROUTINES VS MACROS
Meskipun bagaiman subroutines dan macros bekerja keduanya mirip, mereka memiliki
beberapa perbedaan. Semua logic bisa digunakan pada macros dan subroutines. Perbedaan
utamanya adalah tujuan penggunaannya. Hanya subroutines yang dapat digunakan ketika
anda ingin melewati argumen dan mendapatkan return value, atau mengatifkan logic
independen pada model. Hanya macros yang dapat digunakan untuk membuat skenario.
Macros dapat digunakan di semua expression field, tetapi macros hanya dapat berisi
expression. Ketika macro digunakan dalam logic field, macro dapat berisi elemen logic yang
valid untuk logic field.
Subroutines juga dapat digunakan pada expression field yang menyediakan perintah
RETURN untuk mengembalikan nilai ke expression field. Ketika subroutine digunakan untuk
mewakili satu atau lebih logic, subroutine dapat memberikan pernyataan valid untuk konten
tertentu.
mewakili satu atau lebih logic, subroutine dapat memberikan pernyataan valid untuk konten
tertentu.
Table Functions merupakan elemen yang digunakan untuk mendapatkan suatu nilai
dependen dari nilai independen yang diberikan. Table Function dapat diakses melalui BUILD >
MORE ELEMENTS > TABLE FUNCTIONS.
Parameter nilai independen yang didefinisikan pada table window harus disusun dan ditulis
secara berurutan untuk menghindari munculnya error.
FILE TYPE
External Files memiliki beberapa tipe file, diantaranya adalah sebagai berikut:
General Read File berisi nilai numerik yang dimodelkan menggunakan perintah READ().
Nilai harus dipisahkan dengan spasi, koma, atau titik. Setiap data non numerik akan
dilewat secara otomatis untuk mendapatkan nilai numerik berikutnya
General Write File berisi text dan nilai numerik yang dimodekan menggunakan perintah
WRITE dan WRITELINE. Text dilampirkan ke dalam file menggunakan tanda “…”, sehingga
anda dapat mengatur output file yang akan dibuat.
Entity-Location File merupakan sebuah spreadsheet yang berisi data numerik mengenai
entitas dan nama lokasi. Entitas akan muncul di baris atas sedangkan lokasi akan muncul
di kolom kiri.
Arrivals File merupakan sebuah spreadsheet yang berisi seperti arrivals editor. Urutan
pengisian kolom pada arrival files harus mengikuti sebagai berikut:
Shift File secara otomatis terbuat ketika anda melakukan define shift pada shift editor.
4.8 STREAMS
Streams merupakan elemen yang mengatur kumpulan bilangan acak yang digunakan oleh
ProModel. Dalam menentukan nilai dalam distribusi, baik untuk menentukan kedatangan,
waktu proses, dll, ProModel membangkitkan bilangan acak untuk mereplikasi sifat sistem
yang memiliki hasil random atau tidak selalu sama. Dengan stream, kita dapat memastikan
bahwa suatu distribusi dapat menghasilkan angka yang sama. Streams dapa diakses melalui
BUILD > MORE ELEMENTS > STREAMS.
Salah satu contoh penggunaan streams adalah untuk memastikan bahwa suatu kejadian
akan dialami oleh 2 elemen secara bersamaan, seperti pada saat menjalani downtime, atau
hal lainnya.
Elemen Tambahan merupakan elemen-elemen yang termasuk kedalam elemen lain, dan
dapat ditambahkan ataupun tidak sesuai dengan kebutuhan pengguna. Elemen tambahan
juga membahas mengenai hal-hal yang perlu diketahui dalam membuat model dengan
menggunakan ProModel.
Untuk menambahkan gambar baru, klik pada kotak kosong pada bagian atas, kemudian klik
EDIT > IMPORT GRAPHIC. File gambar yang hendak dimasukkan harus dalam format WMF,
BMP, PCX, atau GIF. Kemudian, gambar dapat diubah dengan menggunakan toolbar pada
bagian kiri. Apabila hendak menyimpan file gambar, klik tombol save pada bagian kanan atas.
44
Model Building: Buku Panduan Penggunaan ProModel
juga membahas mengenai hal-hal yang perlu diketahui dalam membuat model dengan
menggunakan ProModel.
Simulation options merupakan menu yang memiliki pengaturan mengenai jalannya
simulasi. Dengan demikian, pengaturan seperti jumlah replikasi, run hour, dst dapat diatur
pada simulation options. Simulation options dapat diakses melalui SIMULATION > OPTIONS.
Terdapat 3 bagian utama dalam simulation options, yakni output reporting, clock
precision, dan run length. Output reporting merupakan bagian yang mengatur jumlah
replikasi, dan dapat digunakan apabila hendak menjalankan simulasi secara batch mean
ataupun untuk mencari warm up hour. Clock precision merupakan bagian yang digunakan
untuk mengatur satuan terkecil dari waktu simulasi.
Clock precision berpengaruh terhadap maksimum waktu simulasi yang dapat dijalankan.
Semakin kecil time unit yang dikehendaki, maka maksimum waktu simulasi yang dapat
dijalankan akan semakin kecil. Dengan kata lain, tingkat presisi 0.001 akan memiliki maximum
run length lebih kecil dibandingkan dengan tingkat presisi 0.01. Bagian dibawah time unit
menandakan satuan yang hendak ditampilkan pada saat simulasi berlangsung.
Bagian run length merupakan bagian yang digunakan untuk mengatur lama waktu simulasi
berlangsung. Waktu simulasi dapat berupa time only (waktu simulasi hanya memiliki satuan
jam), weekly time (waktu simulasi memiliki satuan minggu, hari, dan jam) ,ataupun calendar
date (waktu simulasi memiliki satuan tahun, bulan, tanggal, dan jam).
DEBUG
Debug merupakan metode yang digunakan untuk melihat jalannya perintah yang diberikan
pada model selama simulasi berjalan. Dengan menggunakan debug, kita dapat melihat
perintah yang diberikan kepada entitas, nilai atribut entitas yang diamati, posisi entitas, dan
entitas yang diamati. Semua informasi tersebut akan muncul dalam bentuk window.
Debug dibagi menjadi 2 jenis, yakni debug local dan global. Debug local merupakan debug
yang muncul dengan menggunakan perintah DEBUG() pada logic. Dengan demikian, hanya
entitas tertentu dalam lokasi tertentu saja yang mampu memunculkan debugger window.
Sedangkan, debug global diakses pada saat simulasi sedang
berlangsung dengan mengakses OPTIONS > DEBUG.
Dengan menggunakan debug global, semua entitas di
semua lokasi akan memunculkan debugger window. Debug
cocok digunakan untuk melihat letak kesalahan perintah
yang kita berikan secara spesifik, baik dengan melihat nilai
atribut ataupun perintah yang kita berikan.
TRACING
Sama halnya seperti debug, tracing juga berfungsi untuk melihat jalannya perintah yang
dijalankan oleh model selama simulasi berlangsung. Perbedaannya adalah tracing
menampilkan semua proses yang terjadi dalam sistem secara detail. Dengan demikian, kita
dapat mengetahui setiap proses yang dijalankan oleh model, baik itu perubahan nilai variabel,
perubahan nilai atribut, proses split, proses join, dll. Tracing merupakan suatu tools yang
sangat cocok untuk melakukan verifikasi terhadap model. Namun, semakin kompleks model
yang dibuat, maka tracing yang dilakukan akan semakin sulit.
Terdapat 2 jenis trace yang dapat digunakan, antara lain trace step dan trace continuous.
Trace step membuat hasil tracing yang muncul akan muncul secara perlahan, sedangkan trace
continuous membuat hasil tracing muncul secara cepat. Selain
kedua jenis trace tersebut, terdapat juga filtered trace yang
digunakan apabila trace ingin difokuskan kepada elemen-
elemen tertentu saja, dan output to file untuk menyimpan hasil
tracing kedalam bentuk file.
5.4 DOWNTIMES
Downtime merupakan sebuah event yang muncul pada kondisi tertentu, mengakibatkan
elemen yang mengalami downtime tidak dapat digunakan. Downtime dapat digunakan untuk
mendefinisikan waktu maintenance, setup, ataupun waktu untuk mempersiapkan mesin
dalam kondisi tertentu. Dalam ProModel, downtime diatur pada masing-masing elemen yang
memungkinkan adanya downtime. Sehingga, downtime tidak memiliki bagian independen
dalam ProModel. Adapun downtime dapat muncul pada lokasi (location downtime) ataupun
pada resource (resource downtime).
LOCATION DOWNTIME
Location Downtime membuat lokasi berhenti beroperasi. Lokasi dalam kondisi down tidak
dapat dipergunakan untuk sementara waktu, seperti pada saat istirahat, maintenance mesin,
penggantian komponen mesin, dll. Terdapat beberapa jenis downtime, antara lain clock
downtime, entry downtime, usage downtime, setup downtime, dan called downtime.
Clock Downtime: downtime yang muncul pada rentang waktu yang telah ditentukan, seperti
dalam 5 jam, dalam 1 hari, dll. Clock downtime tidak memperhatikan jumlah entitas yang telah
diproses didalam lokasi tersebut. Contoh penggunaan clock downtime adalah untuk
maintenance rutin mesin.
Entry downtime: downtime yang muncul setelah lokasi memproses sejumlah unit entitas.
Kebalikan dari clock downtime, entry downtime tidak memperhatikan waktu lokasi tersebut
berjalan. Salah satu contoh penggunaan entry downtime adalah printer, dimana perlu ada
pengisian kertas apabila kertas pada printer sudah habis.
Usage downtime: downtime yang muncul setelah suatu lokasi telah beroperasi selama jangka
waktu tertentu. Usage downtime memiliki perbedaan dengan clock downtime. Clock
downtime didasarkan pada waktu simulasi berjalan, sedangkan usage downtime didasarkan
pada waktu suatu lokasi berada pada status operating/sedang beroperasi.
Logic : merupakan perintah yang dilakukan pada saat terjadi downtime, umumnya
digunakan perintah WAIT().
Pada tabel diatas, downtime terjadi selama 20 detik setiap mesin potong dijalankan selama
N(2,5) menit
Setup downtime: downtime yang muncul pada karena suatu lokasi membutuhkan setup
untuk memproses entitas yang berbeda. Setup downtime hanya muncul pada saat entitas
yang diproses berbeda. Salah satu contoh penggunaan setup downtime adalah untuk mesin
yang mempunyai cetakan berbeda untuk setiap entitas.
Called downtime: downtime yang muncul pada saat perintah DOWN dijalankan. Dengan
demikian, apabila perintah DOWN dijalankan, maka downtime akan dijalankan.
Name : merupakan nama called downtime yang akan digunakan dalam perintah
DOWN.
Priority : merupakan prioritas terjadinya downtime.
Scheduled : merupakan pilihan untuk menentukan apakah downtime terjadwal atau
tidak. Apabila ya, maka downtime tersebut tidak akan diperhitungkan
dalam menghitung utilisasi, percent down (persentase lokasi tidak dapat
digunakan), dll.
Logic : merupakan perintah yang dilakukan pada saat terjadi downtime, umumnya
digunakan perintah WAIT.
Pada tabel diatas, downtime terjadi selama 20 detik setiap mesin potong dijalankan selama
N(2,5) menit
RESOURCE DOWNTIME
Downtime pada resource mengacu pada waktu resource tersebut tidak dapat beroperasi,
baik karena kejadian yang telah dijadwalkan sebelumnya, maupun karena kejadian khusus
seperti sakit ataupun halangan lainnya. Untuk kejadian yang telah dijadwalkan sebelumnya
(contohnya istirahat) mendefinisikan waktu resource tidak dapat digunakan dapat dilakukan
menggunakan shift editor (lihat bagian SHIFT & BREAKS hlm xx) . Terdapat 2 jenis downtime
yang dapat digunakan pada sebuah resource, yakni clock-based downtime dan usage-based
downtime.
Clock-based downtime: downtime yang muncul setelah simulasi berjalan selama jangka
waktu tertentu. Clock-based downtime berfokus pada waktu simulasi berjalan, sehingga
penggunaan resource tidak diperhatikan.
Kolom List dapat diisi dengan macro. Dengan demikian, dapat didefinisikan perubahan
operator yang menjalani downtime dengan menggunakan macro.
Usage downtime: downtime yang muncul setelah sebuah resource telah beroperasi selama
jangka waktu tertentu. Usage downtime memiliki perbedaan dengan clock downtime. Clock
downtime didasarkan pada waktu simulasi berjalan, sedangkan usage downtime didasarkan
pada waktu suatu resource tersebut digunakan baik untuk perpindahan entitas maupun untuk
memproses entitas.
Logic : merupakan perintah yang dilakukan pada saat terjadi downtime, umumnya
digunakan perintah WAIT.
Pada tabel diatas, downtime terjadi pada operator setiap operator tersebut bekerja selama
10 menit dengan durasi downtime sebesar 1 menit. Operator akan beristirahat di N3
saja. Prioritas diatas 99 digunakan untuk proses preempting (mendahului, baik mengganti
maupun mendahului) entitas ataupun downtime yang sedang menggunakan lokasi tersebut.
Prioritas dibagi kedalam 10 level (0-99,100-199,200-299, … ,900-999). Dengan adanya 10
level prioritas, maka entitas/downtime yang bersifat preemptive (prioritas > 99) dapat
didahului oleh entitas/downtime preemptive lain dengan nilai yang lebih tinggi.
Untuk dapat mendahului entitas yang sedang menggunakan suatu lokasi, entitas/downtime
tersebut harus memiliki prioritas minimal SATU level diatas level prioritas entitas yang sedang
diproses. Untuk dapat mendahului downtime yang sedang berjalan, entitas tersebut harus
memiliki prioritas minimal DUA level diatas level downtime tersebut. Downtime tidak dapat
mendahului downtime lainnya.
Contohnya apabila terdapat model dengan karakteristik sebagai berikut:
Dikarenakan terdapat clock downtime, maka 8 menit pertama loket pembayaran tidak
dapat digunakan. Sehingga rakyat dan pejabat yang memiliki nilai prioritas berturut-turut 0
(level 1) dan 100 (level 2) tidak dapat mendahului clock downtime dengan nilai prioritas 99 (level
1). Namun, CEO dengan nilai prioritas 300 (level 4) dapat mendahului clock downtime, sehingga
setelah menunggu 5 menit CEO dapat langsung menuju loket pembayaran tanpa menunggu
clock downtime selesai. Karena pejabat tidak dapat menempuh rute menuju loket
pembayaran karena terdapat clock downtime, maka pejabat menempuh rute backup yaitu
EXIT.
Setelah CEO selesai diproses di loket pembayaran, maka clock downtime kembali berjalan
dengan waktu yang tersisa (8 menit – 4 menit = 4 menit). Dengan demikian, clock downtime
akan selesai pada menit ke 13.33 (8 menit + 0.33 menit move logic CEO + 5 menit waktu proses
CEO).
Setelah itu, loket pembayaran akan memproses rakyat selama 5 menit hingga menit ke
18.66. Pada menit ke 17, pejabat kembali datang dan karena pejabat memiliki prioritas yang
lebih tinggi dibandingkan rakyat, maka pejabat akan mendahului rakyat dan mulai diproses di
loket pembayaran pada menit ke 17.66 (+0.33 move logic + 0.33 setup downtime).
Dengan demikian, pejabat akan masuk ke wahana pada menit ke 22.99 dan rakyat setelah
melanjutkan prosesnya akan masuk ke wahana pada menit ke 24.66.
scheduled hours (output statistics) tetap sesuai dengan waktu resource tersebut seharusnya
bekerja. Namun, total waktu penggunaan (total usage time) untuk resource tersebut akan
lebih dari scheduled hours yang ditetapkan karena memperhitungkan waktu dia melakukan
proses diluar jam yang ditentukan.
Contohnya apabila seorang teknisi memiliki shift dari jam 08:00-17:00 (9jam), dan pada jam
16:50 teknisi tersebut mendapati adanya mesin yang membutuhkan maintenance yang
memakan waktu sekitar 30 menit dan tidak dapat ditunda, maka teknisi akan melakukan
maintenance pada mesin tersebut hingga pukul 17:20, baru kemudian pulang. Pada contoh
teknisi sebelumnya, waktu yang telah dijadwalkan untuknya adalah selama 9 jam mulai dari
jam 08:00. Namun, total waktu penggunaan resource tersebut adalah sebesar 9 jam 20 menit.
Dengan kata lain, utilisasi teknisi pada hari tersebut mencapai lebih dari 100%.
Apabila suatu entitas hendak mengambil alih resource yang sedang memproses entitas
lain, atau suatu downtime hendak mendahului entitas atau downtime lain yang sedang
berjalan, maka entitas/downtime tersebut harus memiliki prioritas minimal SATU LEVEL
diatas entitas yang akan didahului.
Apabila suatu entitas hendak mengambil alih resource yang sedang menjalani downtime,
maka entitas tersebut harus memiliki prioritas minimal DUA LEVEL diatas prioritas
downtime yang akan didahului.
Pada saat resource dijadwalkan untuk menjalani downtime (beristirahat) pada saat sedang
melakukan pemrosesan, proses tersebut dapat dilakukan oleh resource lain sehingga
entitas/lokasi tersebut tidak perlu menunggu resource yang sama untuk melanjutkan proses
yang tertunda. Hal ini cocok untuk menggambarkan kondisi dimana operator shift 2 akan
melanjutkan pemrosesan operator shift 1 apabila sudah waktunya berganti shift. Untuk
memahami cara kerja prioritas pada resource, terdapat beberapa ilustrasi berikut:
Pada ilustrasi ini, DT1 yang dijadwalkan dari berjalan
dari T1 hingga T4 akan berhenti pada saat DT2
berlangsung dan tidak akan dilanjutkan kembali.
Dengan kata lain, waktu total resource tersebut
menjalani downtime adalah dari T1 hingga T3.
Logic & Function merupakan bahasa pemrograman yang digunakan untuk mendefinisikan
suatu kegiatan, kondisi, ataupun proses yang terjadi. Segala bentuk kegiatan, proses, dan
kondisi yang terjadi dalam sistem diterjemahkan kedalam bentuk logic & function agar dapat
dimengerti oleh ProModel. Logic & Function digunakan pada banyak elemen dalam ProModel,
khususnya elemen PROCESSING. Perbedaan antara logic dan function adalah logic merupakan
perintah yang digunakan untuk melakukan suatu event, kegiatan, atau pemilihan keputusan
tertentu. Sedangkan, function merupakan perintah yang digunakan untuk mendapatkan nilai
dari suatu parameter tertentu.
6.1 LOGIC
Logic merupakan suatu pendekatan yang digunakan untuk memerintahkan ProModel
untuk menjalankan sesuatu pada saat tertentu ataupun untuk melakukan decision making
sesuai dengan kondisi yang telah kita tentukan.
ACCUM
ACCUM <quantity>
ACTIVATE
ACTIVATE <subroutine> (parameters)
57
Model Building: Buku Panduan Penggunaan ProModel
ANIMATE
ANIMATE <speed >
ASSIGNMENT
<identifier> = <value>
Assignment merupakan perintah yang digunakan untuk mengatur nilai dari sebuah
parameter yang ada dalam model, baik variabel, atribut, ataupun array.
BREAK
Break merupakan perintah yang digunakan untuk mengakhiri loop secara langsung tanpa
melihat syarat loop tersebut berakhir. Apabila berada di luar loop, break akan mengakhiri logic
pada saat itu juga. Contohnya apabila melihat pada coding dibawah:
Coding diatas menunjukkan bahwa selama var1 memiliki nilai dibawah 10, entitas tersebut
akan menunggu selama 1 menit dan melakukan perintah ORDER() untuk entitas A menuju loc1.
Namun apabila entitas tersebut memiliki nilai attr1 > 5, entitas tersebut akan menunggu
selama 4 menit dan kemudian langsung melanjutkan perintah berikutnya diluar loop WHILE
DO() tanpa melihat nilai var1.
CLOSE
CLOSE <file_id>
Close merupakan perintah yang digunakan untuk menutup file yang sebelumnya telah
dituliskan dengan menggunakan perintah WRITE(), WRITELINE(), XWRITE(), atau dibaca
dengan menggunakan perintah READ(). Close dapat digunakan apabila pada model yang
dibuat melibatkan penggunaan external files.
COMBINE
COMBINE <quantity> AS <entity>
Combine merupakan perintah yang digunakan untuk menyatukan beberapa entitas menjadi
1 entitas. Berbeda dengan perintah GROUP(), combine menyatukan entitas secara permanen.
Combine memiliki 2 parameter yaitu quantity (jumlah entitas yang hendak disatukan) dan
entity (nama entitas baru setelah disatukan, namun sifatnya opsional).
COMMENT
#<comment>
// <comment>
/* <comment> */
CREATE
CREATE <quantity1> AS <entity> TAKE <quantity2> <resource>
Create merupakan perintah yang digunakan untuk membuat beberapat entitas baru pada
lokasi entitas awal dan menyalin semua atribut dari entitas awal kepada entitas baru.
Terdapat 4 parameter yang perlu diperhatikan, antara lain:
DEBUG
DEBUG
Dec digunakan untuk mengurangi nilai atribut, variabel, ataupun nilai dalam array. Terdapat
2 parameter dalam dec yaitu <identifier> (nama variabel, atribut, atau array) dan <value>
(besar pengurangan yang diberikan). Apabila parameter value tidak didefinisikan, maka
pengurangan yang dilakukan adalah sebesar satu.
Kebalikan dari dec, inc digunakan untuk menambah nilai atribut, variabel, ataupun nilai
dalam array.
DISPLAY
DISPLAY <message>
DO UNTIL
DO <statement> UNTIL <condition>
Do Until merupakan perintah yang digunakan untuk membentuk loop hingga suatu kondisi
tercapai. Selama <condition> tidak tercapai, <statement> akan terus dijalankan. Kondisi
harus berbentuk boolean dimana hanya terdapat 2 keputusan yaitu TRUE atau FALSE.
Contohnya selama nilai atribut suatu entitas belum mencapai nilai minimum sebesar 4, maka
entitas tersebut akan terus diproses di mesin tersebut.
Do While merupakan perintah yang digunakan untuk membentuk loop selama suatu kondisi
terpenuhi. Selama <condition> terpenuhi, maka <statement> akan terus dijalankan. Kondisi
harus berbentuk boolean dimana hanya terdapat 2 keputusan yaitu TRUE atau FALSE.
Contohnya selama nilai variabel yang menandakan jumlah produksi masih < 10, lakukan
perintah ORDER() untuk bahan baku agar dapat diproses.
DOWN
DOWN <downtime>
Down merupakan perintah yang digunakan untuk menandakan mulainya called downtime.
Perintah ini digunakan untuk menjalankan called downtime yang telah didefinisikan
sebelumnya (untuk informasi mengenai called downtime lihat DOWNTIME).
DYNPLOT
DYNPLOT <plotset>
Free merupakan perintah yang digunakan untuk mengubah status resource dari “dipakai”
menjadi “bebas”. Free digunakan untuk melepaskan resource dari suatu entitas yang telah
menyatu sebelumnya menggunakan perintah GET() atau JOINTLY GET(). Resource yang
menyatu dengan entitas berarti resource tersebut akan tetap mengikuti entitas tersebut dan
tidak dapat mengolah atau memindahkan entitas lain. Perintah FREE() memiliki 2 jenis, yaitu
dengan parameter jumlah dan resource yang dapat ditentukan, atau menggunakan FREE ALL
untuk melepaskan semua resource yang menyatu dengan entitas tersebut.
GET
GET <quantity> <resource>, <priority>
Get merupakan perintah yang digunakan untuk menetapkan resource pada suatu entitas
tertentu. Dengan demikian, resource akan ditetapkan untuk entitas tersebut dan tidak dapat
berganti hingga mendapat perintah FREE(). Terdapat 3 parameter dalam get, yaitu <quantity>
(jumlah resource yang hendak ditetapkan), <resource> (resource yang hendak ditetapkan
untuk entitas), dan <priority> (prioritas perintah GET() yang dibuat)
GOTO
GOTO <label ID>
Goto merupakan perintah yang digunakan untuk membuat ProModel langsung berpindah
pada baris tertentu pada logic. Tujuan perpindahan goto ditandai dengan menggunakan label
ID, yang dituliskan dengan nama label ID dan diberikan titik dua disebelah nama tersebut.
Pada contoh diatas, apabila atribut penyedias memiliki nilai 1, maka perintah ORDER()
untuk entA ke storage dilakukan dua kali, menghasilkan dua entitas A. Sedangkan, apabila nilai
penyedias pada entitas tersebut bernilai satu, maka perintah ORDER untuk entA dilakukan
satu kali, menghasilkan satu entA.
GRAPHIC
GRAPHIC <graphic number>
Graphic merupakan perintah yang digunakan untuk mengganti gambar entitas atau
resource. Graphic dapat digunakan untuk mempercantik model yang dibuat dengan mengubah
gambar entitas apabila berada dalam suatu kondisi tertentu.
IF THEN ELSE
IF <condition>THEN <statement1> ELSE <statement2>
If then else merupakan perintah yang digunakan untuk melakukan decision making
terhadap suatu kondisi tertentu. Apabila kondisi terpenuhi, maka statement 1 akan dijalankan.
Namun apabila kondisi tidak terpenuhi, maka statement 2 yang akan dijalankan. Statement
dimulai dengan ‘{‘ atau BEGIN() dan diakhiri dengan ‘}’ atau END().
Ketiga perintah ini digunakan untuk mengubah nilai cost selama simulasi berjalan.
Incentcost merupakan perintah yang digunakan untuk mengubah biaya entitas sebesar
<cost> yang dituliskan. Nilai <cost> dapat berupa angka negatif. Incloccost merupakan
perintah yang digunakan untuk mengubah biaya lokasi sebesar <cost> yang dituliskan. Nilai
<cost> dapat berupa angka negatif. Increscost merupakan perintah yang digunakan untuk
mengubah biaya resource sebesar <cost> yang dituliskan. Nilai <cost> dapat berupa angka
negatif.
INT merupakan perintah yang digunakan untuk membangkitkan suatu variabel lokal
dengan tipe integer (bilangan). Variabel yang dibangkitkan hanya dapat digunakan pada logic
tersebut. Apabila entitas melakukan perpindahan, maka variabel yang dibangkitkan melalui
INT tidak dapat digunakan kembali.
Berbeda dengan INT, REAL merupakan perintah yang digunakan untuk membangkitkan
suatu variabel lokal dengan tipe real (bilangan desimal). Variabel yang dibangkitkan hanya
dapat digunakan pada logic tersebut. Apabila entitas melakukan perpindahan, maka variabel
yang dibangkitkan melalui REAL tidak dapat digunakan kembali.
JOIN
JOIN <quantity> <entity>, <priority>
Join merupakan perintah yang digunakan untuk menyatukan beberapa jenis entitas
menjadi 1 entitas baru. Penyatuan dengan menggunakan JOIN() bersifat permanen. JOIN()
mampu menyatukan beberapa jenis entitas, dan memerlukan base untuk menyatukan entitas.
Base merupakan entitas yang menggunakan perintah JOIN pada logic, sedangkan entitas lain
yang hendak disatukan dapat menggunakan routing rules If Join Request menuju ke lokasi
entitas yang merupakan base. Entitas gabungan akan mewariskan nilai atribut dari entitas
base.
JOINTLY GET
JOINTLY GET <quantity> <resource>, <priority>
Jointly get merupakan perintah yang memiliki fungsi seperti perintah GET() yaitu untuk
menetapkan resource pada suatu entitas tertentu. Dengan demikian, resource akan
ditetapkan untuk entitas tersebut dan tidak dapat berganti hingga mendapat perintah FREE().
Perbedaan JOINTLY GET() dan GET() adalah JOINTLY GET() akan menetapkan beberapa
resource pada entitas secara bersamaan. Apabila tidak terdapat resource yang tersedia, maka
entitas akan menunggu hingga sejumlah resource tersedia baru menetapkannya pada entitas
secara bersamaan. Sedangkan, perintah GET() memperbolehkan resource untuk ditetapkan
satu persatu hingga mencapai jumlah yang diinginkan.
LOAD
LOAD <quantity> IFF <condition> IN <time>, <priority>
UNLOAD <quantity>
Load merupakan perintah yang digunakan untuk menyatukan beberapa entitas secara
sementara. Sama seperti JOIN, LOAD memiliki entitas base yang menjalankan perintah LOAD
di logic dan entitas yang memiliki routing rules If Load Request untuk di-load ke entitas base.
Tidak seperti JOIN, LOAD tidak dapat mendefinisikan entitas apa saja yang hendak di-load,
namun entitas dapat disortir dengan mengatur <condition> yang berupa atribut. Perintah load
perlu diiringi dengan perintah UNLOAD untuk melepaskan entitas yang telah disatukan.
Perintah UNLOAD dapat dilakukan untuk sejumlah entitas tertentu didalam gabungan entitas.
LOG
LOG “<string>”, <value>
Log merupakan perintah yang digunakan untuk menghitung waktu yang telah ditempuh
pada suatu model untuk kondisi tertentu. Dengan demikian, apabila suatu entitas hendak
dilihat waktunya selama berada didalam sistem dapat digunakan perintah LOG. Perintah ini
harus diiringi dengan penggunaan perintah CLOCK().
MATCH
MATCH <attribute>
Match merupakan perintah digunakan untuk membuat entitas menunggu hingga kedua
entitas dengan perintah MATCH mendapatkan nilai atribut yang sama kemudian melanjutkan
logic. Kedua entitas harus memiliki nilai yang sama untuk suatu atribut agar dapat
melanjutkan prosesnya. Untuk menggunakannya, perintah MATCH harus diberikan untuk
kedua entitas yang ingin disamakan nilai atributnya.
Move merupakan perintah yang digunakan untuk mengatur perpindahan entitas. Terdapat
jenis perintah MOVE(), antara lain:
MOVE merupakan perintah dalam move logic yang digunakan untuk menggerakkan
entitas menuju akhir dari conveyor atau antrian.
MOVE FOR merupakan perintah yang digunakan untuk mendefinisikan waktu
perpindahan entitas. Dengan demikian, entitas akan bergerak sesuai dengan waktu yang
telah didefinisikan pada MOVE FOR.
MOVE ON digunakan untuk memaksa entitas untuk menggunakan suatu jaringan jalur
tertentu untuk berpindah. Dengan demikian, entitas akan mengikuti jalur yang telah
didefinisikan dalam path network.
MOVE WITH digunakan untuk memanggil resource untuk memindahkan entitas tersebut.
Pada bagian akhir perintah MOVE WITH perlu ditambahkan THEN FREE untuk
memastikan bahwa resource akan dibebaskan untuk melakukan pekerjaan untuk entitas
lain setelah memindahkan entitas tersebut.
ORDER
ORDER <quantity> <entity> TO <location>
ORDER merupakan perintah yang digunakan untuk menambahkan entitas dalam model
pada saat simulasi berlangsung, seperti perintah CREATE. Perbedaan CREATE dan ORDER
adalah perintah ORDER dapat menentukan lokasi dimana entitas akan ditambahkan. Atribut
dari entitas yang melakukan perintah ORDER akan disalin kepada entitas yang ditambahkan.
PAUSE
PAUSE <message>
PROMPT
PROMPT<message>, <identifier>
READ
READ <file ID>, <identifier>
READ digunakan untuk mendapatkan nilai numerik dari suatu file dan memberikan nama
untuk nilai tersebut. File yang dibaca oleh perintah READ didefinisikan pada external files.
RENAME
RENAME AS <entity>
RENAME digunakan untuk mengganti nama entitas menjadi entitas lain. Setelah di-
rename, entitas tersebut akan mengikuti bentuk entitas baru.
REPORT
REPORT (WITH RESET) AS <report_name>
RESET
RESET <file_id>
RESET digunakan untuk mengulang proses pembacaan file dari awal kembali. Perintah ini
biasanya digunakan pada initialization logic atau termination logic. File yang diberikan
perintah RESET adalah file yang didefinisikan pada external files.
RESET STATS
RESET STATS
ROUTE
ROUTE <block>
ROUTE digunakan untuk mengarahkan entitas menuju salah satu blok rute tertentu yang
didefinisikan pada routing window. ROUTE dapat digunakan untuk kondisi yang memerlukan
decision making, sehingga terdapat lebih dari kemungkinan (blok) rute yang ditempuh.
SEND
SEND <quantity> <entity> TO <location>, <priority>
SEND digunakan untuk mengirimkan suatu entitas kepada lokasi tertentu. Entitas yang
hendak dipindahkan memiliki routing rules If Send. Dengan demikian, entitas yang hendak
dipindahkan dengan SEND akan menunggu hingga perintah SEND dijalankan, kemudian baru
dapat berpindah sesuai dengan lokasi yang ditentukan pada perintah SEND.
SOUND
SOUND <sound_file>
SOUND digunakan untuk memutar file suara (wavefiles) pada saat simulasi berlangsung.
Dengan demikian, ProModel akan memutar file dengan format .WAV.
SPLIT
SPLIT <quantity> AS <entity>
SPLIT digunakan untuk memecah entitas menjadi beberapa entitas baru. Entitas awal akan
keluar dari sistem, dan entitas baru akan memiliki nilai atribut yang serupa dengan entitas
sebelumnya.
STOP
STOP <Message>
STOP digunakan untuk menghentikan simulasi pada saat tertentu, dan menampilkan
pesan dalam bentuk message box. Dengan demikian, simulasi akan langsung berhenti atau
akan berlanjut ke replikasi berikutnya.
TRACE
TRACE <command>
TRACE <message>
TRACE merupakan perintah yang digunakan untuk mengaktifkan tracing pada ProModel
(penjelasan mengenai tracing dapat dilihat pada TRACING & DEBUGGING). Terdapat 2 jenis
perintah trace, menggunakan command dan message. Dengan message, pesan akan tampil
pada trace window pada saat simulasi berlangsung. Terdapat beberapa command untuk
TRACE, yakni STEP (mengaktifkan trace step), CONT (mengaktifkan trace continuous), OFF
(menonaktifkan tracing), CLOSE (menonaktifkan tracing dan menutup tracing window)
USE
USE <quantity> <resource>, <priority> FOR <duration>
USE digunakan untuk menetapkan resource pada entitas tertentu untuk diolah selama
durasi waktu yang telah ditentukan. Setelah durasi waktu tersebut, resource akan dilepaskan
dari entitas dan dapat mengerjakan pekerjaan lain.
VIEW
VIEW <view>
VIEW digunakan untuk mengganti posisi pandangan pada layout window. VIEW perlu
didefinisikan terlebih dahulu pada layout window. VIEW dapat digunakan untuk melihat
bagian-bagian dalam model apabila model yang dibuat besar dan ingin melihat animasi secara
detail.
WAIT
WAIT <time>
WAIT digunakan untuk mensimulasikan waktu yang digunakan entitas untuk diproses pada
lokasi tertentu. Dengan demikian, entitas tersebut akan menunggu sementara model akan
terus berjalan. Daialm output, wait untuk entitas akan dihitung sebagai waktu memproses
entitas tersebut.
WAIT UNTIL
WAIT UNTIL <condition>
WAIT UNTIL digunakan untuk memaksa entitas untuk menunggu hingga suatu kondisi
tercapai. Dengan demikian, selama kondisi tersebut belum tercapai, entitas akan menunggu
pada lokasi tersebut.
WARM UP
WARM UP
WARM UP digunakan untuk mengakhiri simulasi pada waktu tertentu, me-reset semua
statistik, kemudian melanjutkan kembali simulasi. WARM UP digunakan untuk mendefinisikan
periode warm up melalui perintah.
6.2 FUNCTION
Function merupakan perintah yang digunakan untuk mendapatkan suatu nilai terkait
simulasi yang sedang berjalan, untuk digunakan dalam logic. Dengan demikian, function dalam
ProModel sebagian besar akan memberikan hasil berupa angka.
CALMIN : Mendapatkan nilai menit jalannya simulasi pada saat perintah diberikan.
Nilai yang bisa didapatkan berkisar antara 0 hingga 59.
Perintah-perintah diatas dapat digunakan apabila simulasi yang dijalankan menggunakan
calendar date untuk satuan waktunya (dapat dilihat di menu SIMULATION > OPTIONS).
CAP
CAP merupakan perintah yang digunakan untuk mendapatkan nilai kapasitas suatu lokasi.
Apabila lokasi tersebut merupakan multi-unit location, maka nilai kapasitas yang didapatkan
merupakan total kapasitas semua unit lokasi tersebut.
CHAR
CHAR merupakan perintah yang memiliki angka yang merepresentasikan simbol-simbol
tertentu. Dengan demikian, apabila hendak menggunakan karakter dalam logic (contohnya
untuk menampilkan total biaya) dapat menggunakan CHAR dan tidak perlu memasukkan
karakternya secara langsung.
CLOCK
CLOCK memiliki fungsi yang serupa dengan CAL, yaitu untuk mendapatkan nilai waktu
simulasi. Namun, berbeda dengan CAL, CLOCK mendapatkan nilai waktu simulasi dari awal
hingga perintah dijalankan (kumulatif). Dengan demikian, didapatkan nilai yang
merepresentasikan berapa lama simulasi telah berjalan, sesuai dengan satuan waktu yang
didefinisikan pada perintah.
CONTENTS
CONTENT merupakan perintah yang digunakan untuk mengetahui jumlah entitas yang
berada dalam suatu lokasi tertentu. Dengan demikian, data yang didapatkan dapat digunakan
untuk melakukan decision making.
ENT
ENT berfungsi untuk merujuk suatu entitas untuk digunakan dalam logic. Entitas dirujuk
dengan menggunakan index number yang dimiliki masing-masing entitas (lihat bagian INDEX
NUMBER untuk informasi lebih lanjut)
ENTITY
ENTITY berfungsi untuk merujuk suatu entitas untuk digunakan dalam logic, serupa
dengan perintah ENT. Perbedaan dengan ENT adalah ENTITY digunakan untuk mendapatkan
nama entitas yang dirujuk, sedangkan ENT digunakan untuk merujuk pada entitas tersebut
untuk digunakan pada condition yang dibangun.
ENTRIES
ENTRIES digunakan untuk memberikan informasi berupa angka numerik mengenai jumlah
entitas yang memasuki lokasi tertentu.
EXP
EXP digunakan untuk mendapatkan nilai eksponen dari suatu nilai yang diberikan.
FREECAP
FREECAP merupakan perintah yang memberikan hasil yang berkebalikan dari perintah
CONTENTS. Dengan kata lain, FREECAP memberikan data mengenai kapasitas yang tersedia
pada suatu lokasi.
FREEUNITS
FREEUNITS merupakan perintah yang digunakan untuk mendapatkan nilai mengenai
jumlah resource yang tersedia dan tidak sedang mengerjakan tugas apapun ataupun
menjalani downtime.
GETCOST
GETCOST merupakan perintah yang digunakan untuk mendapatkan nilai total biaya yang
dibebankan untuk entitas tersebut. Dengan demikian, biaya yang dikeluarkan untuk mengolah
entitas tersebut dapat diketahui dan digunakan untuk perhitungan lainnya.
GETREPLICATION
GETREPLICATION digunakan untuk mendapatkan nilai numerik mengenai replikasi yang
sedang dijalankan. Dengan demikian, dapat diketahui pada titik tersebut simulasi sedang
berjalan untuk replikasi ke-n.
GETRESRATE
GETRESRATE digunakan untuk mendapatkan nilai numerik mengenai biaya operasional
suatu resource tertentu yang telah didefinisikan pada bagian COST sebelumnya.
GROUPQTY
GROUPQTY merupakan perintah yang digunakan untuk mengetahui jumlah entitas dalam
suatu entitas yang merupakan hasil penggabungan sementara (group atau load).
LN
LN merupakan perintah yang digunakan untuk mendapatkan nilai Natural Logarithm suatu
bilangan.
LOC
LOC berfungsi untuk merujuk suatu lokasi untuk digunakan dalam logic. Lokasi dirujuk
dengan menggunakan index number yang dimiliki masing-masing lokasi (lihat bagian INDEX
NUMBER untuk informasi lebih lanjut)
LOCATION
LOCATION berfungsi untuk merujuk suatu lokasi untuk digunakan dalam logic, serupa
dengan perintah LOC. Perbedaan dengan LOC adalah LOCATION digunakan untuk
mendapatkan nama lokasi yang dirujuk, sedangkan LOC digunakan untuk merujuk pada lokasi
tersebut untuk digunakan pada condition yang dibangun.
LOCSTATE
LOCSTATE digunakan untuk mendapatkan nilai numerik yang mengindikasikan kondisi
lokasi tersebut. Nilai yang didapatkan berkisar antara satu hingga tujuh, dimana masing-
masing nilai merepresentasikan kondisi tertentu
OWNEDRESOURCE
OWNEDRESOURCE digunakan untuk mendapatkan nilai index number dari resource yang
sedang ditetapkan untuk entitas tersebut.
PERCENTOP
PERCENTOP digunakan untuk mendapatkan nilai persentase waktu operasi untuk single-
capacity location pada satu titik waktu tertentu. Apabila digunakan pada multi-capacity
location, maka hasil yang diberikan akan selalu 0.
PERCENTUTIL
PERCENTUTIL digunakan untuk mendapatkan nilai utilisasi lokasi pada satu titik waktu
tertentu.
PREEMPTEDRES
PREEMPTEDRES digunakan untuk mendapatkan index number dari resource yang sedang
didahului.
RAND
RAND merupakan perintah yang digunakan untuk membangkitkan nilai diantara 0 hingga n,
dimana n merupakan nilai yang didefinisikan pada perintah.
RES
RES merupakan perintah yang digunakan untuk merujuk suatu resource dengan
menggunakan index number sebagai acuan.
RESOURCE
RESOURCE berfungsi untuk merujuk suatu resource untuk digunakan dalam logic, serupa
dengan perintah RES. Perbedaan dengan RES adalah RESOURCE digunakan untuk
mendapatkan nama resource yang dirujuk, sedangkan RES digunakan untuk merujuk pada
resource tersebut untuk digunakan pada condition yang dibangun.
RESQTY
RESQTY merupakan perintah yang digunakan untuk mendapatkan jumlah unit resource
yang sedang ditugaskan untuk entitas tertentu.
ROUND
ROUND merupakan perintah yang digunakan untuk membulatkan angka sesuai dengan
ketentuan matematis.
SQRT
SQRT merupakan perintah yang digunakan untuk mendapatkan nilai akar kuadrat dari nilai
tertentu.
TIMESUSED
TIMESUSED digunakan untuk mengetahui berapa kali sebuah resource dipakai.
TRUNC
TRUNC digunakan untuk melakukan pembulatan terhadap angka dengan cara
menghilangkan nilai desimal angka real. Dengan demikian, pembulatan selalu dilakukan
kebawah (round down). ProModel secara default menggunakan trunc untuk membulatkan
angka real menuju integer.
UNITS
UNITS digunakan untuk mendapatkan nilai yang menggambarkan total unit dari suatu
lokasi ataupun resource.
76
Model Building: Buku Panduan Penggunaan ProModel
Salah satu fungsi utama simulasi adalah ntuk mencari suatu cara / solusi yang lebih baik
untuk diterapkan pada sistem sesuai dengan hasi yang diinginkan tanpa perlu mengeluarkan
biaya yang besar untuk melakukannya secara aktual. Dengan kata lain, kita hendak
mengoptimalkan kondisi sistem saat ini dengan melakukan perubahan pada beberapa faktor
tertentu dalam sistem. Dalam ProModel, optimisasi dapat dilakukan dengan menggunakan
bantuan Simrunner. Salah satu contohnya apabila hendak melakukan penambahan tenaga
kerja, dapat dilakukan simulasi dengan mengatur jumlah tenaga kerja sebagai faktor yang
dapat berubah untuk melihat apakah penambahan tenaga kerja akan membuat nilai yang
diamati menjadi lebih baik.
Simrunner memungkinkan kita melihat perubahan suatu nilai dalam sistem apabila
terdapat perubahan pada faktor tertentu. Jumlah skenario yang muncul akan sejalan dengan
jumlah kombinasi yang dimungkinkan. Perubahan faktor diatur dengan menggunakan macros
(lihat bagian MACROS). Semakin banyak jumlah macros dan semakin besar range macros
tersebut, maka jumlah kombinasi yang didapatkan akan semakin besar pula. Simrunner dapat
diakses melalui SIMULATION > SIMRUNNER atau dengan menekan tombol Simrunner pada
shortcut panel.
PENGGUNAAN SIMRUNNER
Untuk menggunakan Simrunner untuk melakukan optimisasi terhadap skenario, terdapat
beberapa langkah yang perlu dilakukan antara lain:
1. Persiapkan model yang hendak diamati.
2. Atur macros pada faktor-faktor yang dapat diubah
3. Buka Simrunner, akan muncul tampilan seperti ini.
78
Model Building: Buku Panduan Penggunaan ProModel
4. Klik Next pada bagian kanan bawah hingga muncul tampilan seperti ini. Kemudian atur
objective (nilai yang hendak dilihat perubahannya). Klik untuk menetapkan nilai tersebut
sebagai objective. Perhatikan juga karakteristik dari objective, apakah maksimasi,
minimasi, atau harus mencapai suatu nilai tertentu. Terdapat weight yang digunakan
apabila terdapat lebih dari 1 objective yang digunakan untuk menandakan bobot dari
masing-masing objective. Kemudian klik Next.
5. Selanjutnya, akan muncul tampilan untuk mengatur input factor (faktor yang diubah untuk
melihat perubahan pada objective). Tetapkan macros yang hendak dijadikan factor ke
6. Akan muncul tampilan analyze model untuk menentukan jumlah replikasi yang
dibutuhkan, klik Next karena penentuan jumlah replikasi tidak dilakukan dengan
menggunakan Simrunner.
7. Klik Next hingga muncul tampilan optimize model. Pada bagian ini hanya perlu mengatur
mengenai optimization profile. Optimization Profile digunakan untuk menentukan besar
populasi yang hendak diamati. Terdapat 3 kategori optimization profile, yakni aggressive
(kecil), moderate (menengah), dan cautious (besar). Kemudian klik Next.
8. Klik Run, hingga muncul window yang menampilkan grafik nilai objective yang dihasilkan
dari masing-masing kombinasi. Tunggu hingga semua kombinasi dijalankan.
“Dari tadi teori terus nih, kasih contoh model dong”. Untuk melatih penggunanya dalam
mengoperasikan ProModel dengan baik, ProModel memiliki beberapa contoh model yang
dikhususkan untuk penggunaan fitur-fitur tertentu dalam ProModel, seperti logic,
Model Training
Dalam model latihan yang diberikan terdapat 9 fase yang dapat anda tempuh untuk
menyelesaikan latihan yang diberikan. Untuk mengakses model latihan dapat melalui folder
MODELS > TRAINING. Secara default, lokasi folder adalah:
Model Example
Selain model latihan, ProModel juga menyediakan model acuan untuk membantu
memahami cara kerja perintah-perintah dalam logic ProModel, seperti ACCUM(), CALDAY(),
COMBINE(), CREATE(), dll. Untuk melihat contoh model acuan tersebut, dapat diakses melalui
folder MODELS > REFS. Untuk instalasi default, lokasi folder adalah:
C:\Program Files\ProModel\Models\Refs
Selain contoh yang disediakan oleh ProModel, terdapat beberapa contoh model yang
dapat anda lihat dengan mengakses drive berikut: https://cutt.ly/9fbZTrJ (data-data yang
digunakan dalam contoh model merupakan data fiktif yang digunakan hanya untuk keperluan
contoh saja)
81
DAFTAR PUSTAKA