Pemrograman
model simulasi, dapat dilakukan menggunakan bahasa umum komputer (general purposes
language) atau menggunakan bahasa simulasi.
Pada bagian ini kita akan mempelajari beberapa bahasa simulasi, melihat
dan memahami kelebihan dan kekurangan dari masing-masingnya, sehingga kita
melakukan pemilihan yang tepat saat kita perlu menggunakan bahasa
simulasi. Satu bahasa simulasi tidak
dapat menjadi alat yang tepat untuk semua kasus permodelan simulasi. Pembahasan pada bagian ini akan kita mulai
dengan mempelajari anatomi bahasa simulasi;
lalu dilanjutkan dengan penjelasan berbagai bahasa simulasi lengkap dengan
kelebihan dan kelemahannya.
ANATOMI BAHASA SIMULASI
Bahasa
Simulasi : Awal Mula
Kesuksesan
analisis simulasi merupakan teknik campuran yang sangat tergantung pada
keahlian dan keahlian analis. Elemen dan
struktur bahasa komputer umum seperti Pascal atau FORTRAN, sorce codenya tidak
dengan mudah dapat digunakan untuk memodelkan simulasi sistem. Misalnya, bahasa itu tidak menyediakan
struktur data yang enak digunakan untuk pemrosesan kejadian, sementara hal ini
merupakan elemen logis yang sangat penting dalam permodelan simulasi. Tidak ada perintah dalam FORTRAN misalnya yang dengan jelas menambah
atau mengurangi antrian nasabah atau objek lainnya. Tidak ada perintah dalam FORTRAN yang
mengakumulasikan jumlah objek dalam antrian dan menghitung rata-rata untuk
menyediakan output statistik penting.
Variabel waktu lanjut, yang penting dalam penjalanan model simulasi,
juga tidak dapat ditemukan pada FORTRAN dan bahasa pemrograman umum lainnya.
Untuk
memenuhi fungsi-fungsi di atas dan hal-hal penting lainnya dalam struktur model
program komputer, kode pemrograman yang ekstensif, kompleks dan sulit didebug
harus dibuat. Motivasi mengembangkan dan
menggunakan bahasa simulasi berasal dari keinginan untuk mempersingkat waktu
yang dibutuhkan untuk mengembangkan model valid yang relatif mudah didebug dan yang menyediakan output statistik yang
dibutuhkan dalam pengambilan keputusan.
Bahasa
simulasi pertama yang dihasilkan untuk tujuan itu adalah GPSS (General Purpose Simulation
System) yang dikembangkan oleh Geoffrey Gordon dan dipublikasikan pertama sekali
tahun 1961. bahasa ini telah berevolusi
dalam beberapa versi, yang pada umumnya dikembangkan ole IBM. Pengembangan terpisah versi GPSS, GPSS/H
memungkinkan debugging kode interaktif.
Akhir-akhir ini, GPSS tersedia pada umumnya untuk mainframe dan
minikomputer, dan ada 2 versi untuk mikrokomputer IBM. Elemen GPSS dieknal mempunyai derajat
isomorfis tinggi dengan elemen sistem diskrit.
GPSS
diikuti dengan munculnya SIMSCRIPT tahun 1963, dikembangkan oleh perusahaan RAND. Bahasa ini memiliki kemampuan untuk
permodelan sistem yang lebih kompleks. Untuk
melakukan fungsi ini, elemen bahasa
kurang jelas dihubungkan dengan dunia nyata. Penggunaan
himpunan, kejadian, proses dan sumber daya menggambarkan secara utama pada struktur
dan operasi program SIMSCRIPT.
Bahasa-bahasa
pionir ini tidak lama diikuti pengemabngan bahasa-bahasa simulasi khusus
lainnya
dan jumlahnya sudah sangat banyak sampai saat ini.
Struktur Bahasa Simulasi
Kiviat
mendefinisikan struktur statis bahasa simulasi terdiri dari 3, yaitu
identifikasi objek dan karakteristik
objek, relasa antara objek dan penurunan objek.
Struktur dinamisnya didefinisikan
sebagai metode penambahan waktu simulasi.
Objek
adalah komponen model dan sistem yang menjadi perhatian utama analisis,
misalnya nasabah
bank, komponen dalam lini perakitan, pengguna dalam sistem jaringan, dll. Bahasa yang
berbeda memberikan definisi yang berbeda pada objek, misalnya dalam SIMAN
disebut entities,
dalam GPSS disebut transactions.
Masing-masing objek dalam sistem yang sama mempunyai
karakteristik yang berbeda. Nasabah bank
misalnya, ada yang ingin melakukan penarikan,
ada yang ingin melakukan setoran, dll.
Pendefinisian karakteristik dalam bahasa yang
berbeda juga berbeda. Karakteristik
dalam SIMAN dan SIMSCRIPT misalnya didefinisikan
sebagai attributes sedangkan dalam GPSS didefinisikan sebagai parameters, dan ada
juga yang menggunakan definisi properties, dll.
Meskipun
objek mempunyai karakteristik unik, untuk tujuan pemrosesan dalam model, ada baiknya
karakteristik itu dikelompokkan. Setiap
bahasa mempunyai mekanisme berbeda dalam melakukan pengelompokan ini. Bahkan dalam kasus sistem yang relatif kecil, mempertahankan
semua objek dalam model selama penjalanan simulasi bisa tidak memungkinkan
karena keterbatasan memori komputer.
Akibatnya, alat untuk menurunkan objek
ketika dibutuhkan dan menghapusnya jika sudah tidak dibutuhkan harus
disediakan.
Cara
setiap bahasa simulasi memfasilitasi ini sangat berbeda. Dalam beberapa kasus, mekanisme
digunakan untuk menelusuri karakteristik akar bahasa kompiler darimana bahasa simulasi
dikembangkan. Bahasa simulasi yang
kurang dekat dengan konvensi struktur data dari
kompiler tertentu menurunkan objek yagn sangat mirip dengan sudut pandang dunia bahasa. Sejalan dengan perbaikan kemampuan bahasa
komputer umum (general purposes), bahasa
simulasi khusus pada umumnya telah dikodean kembali seperti assembly, bahasa
bebas mesin
seperti C. Tetapi struktur awal
penurunan objek tetap dalam bahasa simulasi.
Struktur
statis bahasa simulasi menempatkan objek dalam ruangan model, yaitu dimana
objek secara
fisik ditempatkan dalam sistem. Struktur
dinamis dibutuhkan untuk menempatkan objek
dalam waktu dan memungkinkan keberlanjutan dari satu titik waktu ke titik
lainnya. Seperti
yang sudah dijelaskan dalam topik sebelumnya, ada dua pendekatan dasar yang digunakan
dalam struktur dinamis, yaitu fixed-time step dan event-tracking.
Pendekatan
fixed-time memeriksa sistem pada interval waktu tetap untuk menentukan apakah statusnya
sudah berubah atau belum. Jika status
masih sama, variabel waktu akan ditambahkan
sebesar interval waktu-tetap. Meskipun
secara logika pendekatan ini cukup sederhana,
tapi metodenya sangat tidak efisien.
Mungkin ada beberapa titik waktu dimana sistem
tidak berubah statusnya, dan karenanya akan ada banyak pemeriksaan sistem yang
tidak perlu. Akibatnya, tidak ada bahasa simulasi kejadian
diskrit yang menggunakan pendekatan ini
ke struktur dinamis.
Pendekatan
event-tracking memeriksa sistem hanya jika ada perubahan status. Logika diamsukkan
dalam model untuk menentukan kapan kejadian atau status sistem berubah, dan variabel
waktu ditambahkan dengan tepat sampai titik sebelum sistem diperiksa. Logika yang dibutuhkan
untuk melakukan ini lebih kompleks dibandingkan dengan langkah waktu-tetap, tetapi
akan menghemat waktu eksekusi model secara signifikan.
Karakteristik Bahasa Simulasi
Struktur
dinamis dan statis bahasa simulasi menyediakan kebutuhan jelas untuk
mengeksekusi model
simulasi. Beberapa sifat bahasa simulasi
lainnya dibutuhkan atau sangat diinginkan untuk
penggunaan efektif analisis simulasi sebagai teknik pembantu pengambilan
keputusan.
Pengembangan kode model.
Kebanyakan
bahasa simulasi masih membutuhkan pemasukan
pernyataan kode untuk menciptakan kode model, tetapi kemampuan grafik mikrokomputer
telah memungkinkan input grafik.
Cara
ini paling sesuai untuk bahasa yang
fokus pada aliran objek melalui elemen atau blok model.
Debugging model.
Begitu
mode simulasi sudah dikodekan menggunakan bahasa simulasi
yang dipilih, langkah selanjutnya adalah debugging kode sehingga model simulasi
berjalan ke penghentian normal. Syntax
errors (kesalahan sintaks) adalah permasalahan
pertama dalam proses, dan analisis untuk mendeteksi ini sudah ditanam dalam
bahasa simulasi umumnya. Kesulitan
berikutnya yang dihadapi adalah perbaikan
kesalahan selama eksekusi kode. Analisis
bahasa simulasi umumnya tidak sesuai
secara total dengan permasalahan ini.
Setelah menemukan kesalahan seperti ini, program
berhenti dan tidak memberikan alasan dalam bentuk logika model kenapa program
berhenti.
Penurunan variabel acak.
Untuk
kebanyakan simulasi probabilistik, kemampuan
mengekstrak sampel acak dari distribusi probabilitas tertentu sangat
penting. Bahasa simulasi melakukannya
dengan mudah.
Pengumpulan statistik.
Penjalanan
model simulasi tanpa mengumpulkan data ukuran kinerja
sistem sama saja dengan tidak melakukan pengamatan pada sistem dunia nyata yang
sedang berlangsung. Pengamat ada selama
operasi sistem dunia nyata tetapi tidak mengamati
dan mencatat apa yang terjadi. Bahasa
simulasi harus memungkinkan pengguna
dengan mudah menspesifikasikan beragam statistik yang dikumpulkan selama
eksekusi model. Juga untuk membantu
interpretasi output simulasi, kemampuan
penggambaran grafik dan inferensi statistik diperlukan.
Disain
percobaan. Karena analisis simulasi
bersifat deskriptif, kesuksesan aplikasinya tergantung pada percobaan model. Rancangan
percobaan efektif dan efisien benar- benar
meningkatkan kualitas solusi yang didapatkan dari model simulasi.
Animasi grafis dan output dinamis.
Kemampuan
menggunakan bahasa simulasi pada mikrokomputer
memungkinkan kemampuan grafis mesin ini untuk mengilustrasikan penjalanan
mode simulasi atau outputnya. Ilustrasi
objek yang mengalir melalui elemen
model disebut sebagai animasi. Animasi
biasanya menggunakan monitor berwarna dan dengan mudah mengenali simbol objek
dan elemen model. Dengan mengamati
aliran seperti itu, analisis dapat memperhatikan penyebaba permasalahan operasi
dan dapat memperbaikinya. Animasi model
akan memperlambat eksekusi model. Oleh akrena itu, animasi biasanya hanya
dilakukan pada mikrokomputer cepat
dengan
memori besar.
Pemilihan Bahasa Simulasi
Beberapa
hal yang perlu diperhatikan dalam pemilihan bahasa simulasi adalah kemudahan untuk
dipelajari, kemudahan menjelaskan pada orang yang bukan teknik, biaya, kode
standar untuk
semua komputer dan cakupan permasalahan yang dapat ditangani oleh bahasa. Pada umumnya,
semakin mirip elemen bahasa simulasi dengan elemen dunia nyata, semakin mudah elemen
itu dipelajari. Kemudahan menjelaskan
fungsi bahasa simulasi ke manajer yang mengeluarkan
dana untuk pembelian perangkat lunak dan yang tidak memahami secara teknis juga digunakan dalam
memilih bahasa simulasi.
0 comments:
Post a Comment