Jumat, 06 Juli 2012

Bahasa Simulasi


BAHASA SIMULASI


Pemrograman model simulasi, seperti yang disebutkan sebelumnya, 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.  Msialnya, 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 lanjt, 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 yagn dibutuhkan untuk mengembangkan mdoel valid yang relatif mudah didebug  dan yang meneydiakan 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.  Meskipuns ecara 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 mengehmat waktu eksekusi model secara signifikan.

Karakteristik Bahasa Simulasi

Struktur dinamis dan statis bahasa simulasi menyediakan kebutuhan jelas untuk mengeksekusi mode 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 amsih 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.  

Tidak ada komentar:

Posting Komentar