BAB6. PENGEMBANGANMODEL Tujuan Instruksional Umum Tujuan Instruksional Khusus
Mahasiswa dapat merancang model 1. Mahasiswa dapat membangun model konseptual 2. Mahasiswa dapat membangun modellogika 3. Mahasiswa dapat mengembangkan model simulasi
6.1. Model Konseptual Model konseptual merupakan metode visualisasi (diagram) suatu sistem. Visualisasi dilakukan dengan menggambarkan relasi kausal antar faktor yang diyakini mempengaruhi kinerja sistem. Model yang bagus adalah model yang dapat menggambarkan dengan jelas hubungan antara faktor dalam sistem, baik faktor keunggulan maupun ancaman, dan strategi yang diterapkan untuk mempengaruhi faktor tersebut. Model yang bagus juga akan mengindikasikan tahap atau fase monitoring harus dilakukan, asumsi yang dibuat dalam menggambarkan hubungan kausal, danjalur mana dari aktivitas strategi yang dapat digunakan untuk mengubah atau mempengaruhi secara positif relasi antar faktor. Model konseptual harus dilengkapi dengan deskripsi tekstual dimana penjelasan secara verbal dari model konseptual dibuat. Secara ringkas, model konseptual menggambarkan secara grafis situasi sebenarnya dan menyediakan dasar untuk menentukan dimana kita harus campur tangan dengan aktivitas strategis. Pada dasamya, model konseptual dirancang untuk proyek, tapijuga akhir-akhir ini banyak digunakan untuk pemrograman. Model konseptual dan logika dapat digunakan untuk menggambarkan logika dari suatu sistem. Model konseptual berbeda dari modellogika hanya pada model logika menggambarkan tujuan dan aktivitas sistem dalam bentuk tabular hirarki (mulai dari input dan aktivitas sampai ke output dan tujuan yang diinginkan), dimana model konseptual merepresentasikan keseluruhan sistem, termasuk hubungan yang tidak dipertimbangkan dalam penyelesaian permasalahan. Keunggulan model konseptual adalah sifat visualnya. Ketika model konseptual sederhana, sistem akan mudah diikuti. Penelusuran biasanya dilakukan dengan langkah mundur. Karena penelusuran dilakukan berdasarkan aliran logis penyebab, maka model konseptual dapat dipahami oleh rekan, pihak yang berkepentingan, dan bagian lainnya dalam sistem. Dengan demikian semua pihak
115
--
--
dapat mengetahui dan menentukan peran mereka dalam sistem. Model konseptual memiliki kelemahan dalam hal bisa menjadi sangat kompleks dan tidak dapat dikelola dengan baik. Untuk mengatasi kelemahan ini, biasanya disarankan untuk membuat model konseptual dengan kotak 25 atau kurang dalam satu halaman. Model konseptual dapat digunakan dalam pengembangan keseluruhan program. Pengembangan model lebih baik dimulai dengan penggambaran target sistem, yaitu elemen sistem yang membuat kita tertarik. Dalam konteks ini, harus ditangkap dengan jelas aneaman dan kesempatan langsung maupun tidak langsung, hubungan satu sarna lainnya, dan bagaimana mereka mempengaruhi target. Dalam beberapa situasi, model konseptual berguna dalam menandai tekanan-tekanan eksplisit (atau pengaruh aneaman pada target), sekaligusjuga hasil umum aneaman. Model konseptual berguna dalam mengembangkan eampur tangan, yaitu aktivitas strategis yang digunakan untuk mempengaruhi faktor aneaman seeara langsung dan yang langsung mengarahkan pada dampak yang diinginkan. Model konseptual dikenal dengan teknik pemodelan data, bersama dengan modellogika dan fisiko Model konseptual seeara eksplisit dipilih bebas dari detil implementasi, seperti concurrency atau penyimpanan data. Tujuan dari pemodelan konseptual adalah menggambarkan arti dari terminologi dan konsep yang digunakan oleh para pakar dalam mendiskusikan permasalahan, dan menemukan relasi yang tepat antar konsep berbeda. Model inijuga dikenal sebagai model semantik. Model konseptual berusaha mengklarifikasi berbagai terminologi yang umumnya raneu, dan meyakinkan bahwa permasalahan dengan interpretasi terminologi dan konsep berbeda tidak dapat terjadi. Interpretasi berbeda seperti ini dengan mudahnya dapat menyebabkan proyek perangkat lunak yang didasarkan pada interpretasi konsep akan gagal. Begitu konsep domain telah dimodelkan, model menjadi basis stabil untuk pengembangan aplikasi selanjutnya. Model konseptual digunakan sebagai dasar desain berorientasi objek dan implementasi ke dalam kode pemrograman, atau lebih tepatnya sebagai kelas dalam bahasa berorientasi objek. Model konseptual dapat digambarkan menggunakan berbagai notasi, seperti UML atau OMT untuk pemodelan objek, dengan IE atau IDEFIX untuk pemodelan relasi entitas. Dalam notasi UML, model konseptual sering digambarkan menggunakan diagram kelas dimana kelas merepresentasikan konsep, penghubung menggambarkan relasi antara konsep, dan tipe peran penghubung menggambarkan tipe peran yang diambil konsep pemodelan dalam berbagai variasi. Dalam notasi relasi entitas, model konseptual digambarkan menggunakan diagram relasi entitas dimana entitas merepresentasikan konsep, kardinalitas dan opsional merepresentasikan relasi antara konsep.
116
Skema konseptual atau model data konseptual adalah peta konsep dan relasi antar konsep. Skema ini menggambarkan semantik organisasi dan rangkaian sifatnya. Secara khusus skema konseptual menggambarkan hal-hal yang signifikan terhadap organisasi (kelas entitas), tentang penekanan kecenderungan pengumpulan informasi, dan karakteristik (atribut) dan asosiasi antar pasangan hal-hal yang signifikan tersebut (relasi). Karena diagram konseptual merupakan semantik organisasi, dan bukan desain basis data, diagram konseptual dapat digambarkan pada berbagai tingkatan abstraksi. Arsitektur diagram-empat ANSI dimulai dengan kumpulan skema eksternal yang masing-masing mewakili pandangan seseorang dari dunia di sekitarnya. Ini adalah konsolidasi ke dalam sebuah diagram konseptual tunggal yang merupakan himpunan bagian dari semua pandangan eksternal. Sebuah model data secara spesifik dapat menggambarkan perspektif masing-masing orang, tapi cenderung tidak fleksibel. Jika seseorang mengubah dunia, model harus berubah. Data model konseptual lebih ke arah perspektif abstrak, mengidentifikasi hal-hal yang mendasar, hal-hal yang merupakan kesepakatan individu dengan hanya merupakan contoh. Model konseptual benar-benar mengikuti apa yang disebut warisan dalam hal berorientasi objek. Himpunan contoh kelas entitas dapat dibagi ke dalam kelas entitas yang merupakan bagiannya. Jadi, setiap contoh dari kelas entitas sub-jenis juga merupakan turunan dari jenis super kelas-entitas. Setiap contoh dari kelas entitas super-jenis, akanjuga merupakan sebuah contoh dari salah satu kelas sub-tipe entitas. Hubungan super-type/sub-type bisa eksklusif atau tidak. Sebuah metodologi mungkin memerlukan setiap contoh dari jenis-super dan mungkin hanya sebuah contoh dari satu sub-tipe. Demikian pula, hubungan super-tipe/sub-tipe bisa lengkap atau tidak. Hal ini lengkap jika metodologi mengharuskan setiap contoh dari jenissuper harnsjuga merupakan sebuah contoh dari tipe-sub. Struktur Diagram Data (SDD) adalah model data atau diagram yang digunakan untuk menggambarkan model konseptual data dengan menyediakan notasi grafis dimana dokumen entitas dan hubungan antar mereka, dan kendala-kendala mengikat mereka.
117
---
--
--
6.1.1. Penggambaran Sistem Pada model konseptual, suatu sistem dapat digambarkan dengan beberapa cara. Beberapa teknik yang dapat digunakan untuk menggambarkan sistem ke dalam model konseptual adalah peta konsep, peta topik, dan grafik konseptual. Peta konsep adalah diagram yang menunjukkan hubungan antara konsep. Konsep adalah alat grafis untuk mengatur dan mewakili pengetahuan. Konsep, biasanya digambarkan sebagai kotak atau lingkaran, dihubungkan dengan panah diberi label dalam struktur hirarkis-bercabang ke bawah. Hubungan antara konsep dapat diartikulasikan dalam menghubungkan frase seperti "menimbulkan", "menghasilkan" diperlukan untuk, "atau" menyumbang." Teknik visualisasi hubungan antara konsep yang berbeda disebut "pemetaan konsep." Sebuah standar industri yang mengimplementasikan aturan formal untuk merancang setidaknya himpunan bagian dari diagram tersebut adalah Unified Modeling Language (UML). Suatu peta konsep merupakan cara untuk mewakili hubungan antara ide, gambar atau kata-kata, dengan cara yang sarna bahwa kalimat merupakan diagram tata kalimat, peta jalan merupakan lokasi jalan raya dan kotakota, dan diagram sirkuit merupakan cara kerja suatu alat listrik. Dalam peta konsep, setiap kata atau frase terhubung ke frase lain dan terhubung kembali ke ide awal, kata atau frase. Peta konsep merupakan cara untuk mengembangkan cara berpikir logis dan kemampuan belajar, dengan mengungkapkan hubungan dan membantu dalam melihat bagaimana ide individu membentuk suatu keutuhan yang lebih besar. Peta konsep dikembangkan dengan maksud untuk meningkatkan pembelajaran yang berarti. Sebuah peta konsep yang dibuat dengan konteks baik didefinisikan oleh pertanyaan "fokus eksplisit," sementara peta pikiran sering hanya memiliki cabang yang memancar keluar dari sebuah gambar pusat. Ada bukti bahwa pengetahuan penelitian disimpan dalam otak dalam bentuk produksi yang bertindak atas isi memori deklaratif yangjuga disebut sebagai potongan atau proposisi. Karena Peta konsep yang dibangun untuk mencerminkan organisasi sistem memori deklaratif memfasilitasi dan merasakan pembelajaran bermakna bagi orang-orang yang membuat peta konsep dan mereka yang menggunakannya. Peta konsep agak mirip dengan peta topik (dimana pada keduanya konsep atau topik dihubungkan melalui grafik), sementara keduanya bisa dikontraskan dengan pemetaan pikiran, yang sering terbatas pada radial hierarki dan struktur pohon. Di antara berbagai skema dan teknik untuk memvisualisasikan ide, proses, dan organisasi, pemetaan konsep, yang dikembangkan oleh Joseph A Novak adalah unik secara filosofis, yang membuat konsep, dan proposisi yang terdiri dari konsep
118
menjadi pusat elemen dalam struktur pengetahuan dan pembangunan makna. Perbedaan lain antara pemetaan konsep dan pemetaan pikiran adalah kecepatan dan spontanitas yang dimiliki oleh peta pikiran. Peta Pikiran mencerminkan apa yang anda pikirkan tentang satu topik, yang dapat berupa fokus grup brainstorming. Sebuah peta konsep dapat menjadi folder, pandangan sistem, atau sistem (abstrak) nyata atau seperangkat konsep. Peta konsep lebih bebas dalam bentuk, bisa dalam bentuk beberapa hub dan cluster, tidak seperti peta pikiran yang hanya dapat fokus pada pusat konseptual tunggal. Teknikpemetaan konsep dikembangkan oleh Joseph D. Novak dan tim peneliti di Cornell University tahoo 1970-an sebagai alat ootuk mewakili ilmu pengetahuan yang muncul dari mahasiswa. Hal ini kemudian digunakan sebagai alat ootuk meningkatkan pembelajaran yang bermakna dalam mata pelajaran ilmu pengetahuan dan lainnya serta ootuk mewakili pengetahuan ahli individu dan tim dalam pendidikan, pemerintah dan bisnis. Konsep peta memiliki asal dalam gerakan pembelajaran yang disebut konstruktivisme. Secara khusus, konstruktivis berpendapat bahwa pengetahuan peserta didik secara aktif membangun pengetahuan. Ketja Novak didasarkan pada teori kognitif David Ausubel (teori asimilasi), yang menekankan pentingnya pengetahuan sebelumnya "ootuk mampu mempelajari konsep-konsep barn." Faktor tunggal paling penting yang mempengarnhi pembelajaran adalah apa yang sudah diketahui pembelajar. Novak mengajar siswa anak-anak dengan umur enam tahoo dalam membuat peta konsep yang mewakili respons mereka untuk fokus pertanyaan seperti" Apa itu air? " "Apa yang menyebabkan musim?" Dalam bukunya "Mempelajari bagaimana Belajar" Novak mengatakan bahwa "belajar bermakna menyangkut asimilasi konsep baru dan proposisi ke struktur kognitifyang sudah ada." Berbagai upaya telah dilakukan ootuk membuat konsep proses pembuatan peta konsep. Ray McAleese, dalam serangkaian artikel, mengusulkan bahwa pemetaan adalah proses pembongkaran. Dalam makalahnya di tahoo 1998,McAleese merujuk pada karya Sowa dan artikel Sweller & Chandler. Pada dasarnya, McAleese menoojukkan bahwa proses pembuatan pengetahuan eksplisit menggunakan simpul dan huboogan, memoogkinkan individu menjadi sadar apa yang mereka ketahui dan sebagai hasil yang akan mampu untuk mengubah apa yang mereka ketahui. Konsep Arena Pengetahuan adalah sugestif dari ruang virtual dimana peserta didik dapat mengeksplorasi apa yang mereka ketahui dan apa yang mereka tidak tahu. Konsep peta digunakan ootuk merangsang penurunan ide, dan dipercaya dapat membantu kreativitas. Sebagai contoh, pemetaan konsep kadang-kadang digunakan
119
--
untuk brainstorming. Meskipun sering bersifat pribadi dan aneh, peta konsep dapat digunakan untuk mengkomunikasikan gagasan yang kompleks. Peta konsep formal digunakan dalam perancangan perangkat lunak, di mana penggunaan umum adalah pada diagram Unified Modeling Language (UML) di antara konvensi sernpa dan metodologi pengembangan. Konsep pemetaan juga dapat dilihat sebagai langkah pertama dalam pembangunan-ontologi, dan juga dapat digunakan secara t1eksibeluntuk mewakili argumen formal. Konsep peta banyak digunakan dalam pendidikan dan bisnis untuk: 1.
Pencatatan dan peringkasan konsep kunci, hubungannya dan hirarki dari dokumen dan sumber daya bahan.
2.
Penciptaan pengetahuan barn: misalnya, mengubah pengetahuan tacit menjadi sumber daya organisasi, pemetaan pengetahuan tim.
3.
Pelestarian (retensi) kelembagaan pengetahuan, misalnya, menjelaskan dan menggambarkan pengetahuan ahli para karyawan sebelum pensiun. Pemodelan pengetahuan kolaboratif dan transferpengetahuan ahli.
4. 5.
Memfasilitasi penciptaan visi bersama dan berbagi pemahaman dalam sebuah tim atau organisasi.
6.
Desain instruksional: peta konsep yang digunakan sebagai "organisator muka", kita memberikan kerangka konseptual awal untuk informasi selanjutnya dan pembelajaran.
7.
8. 9.
Pendidikan: konsep peta yang digunakan sebagai "penyelenggara lanjutan" untuk mewakili konteks pelatihan dan hubungannya dengan pekeIjaan mereka, untuk tujuan strategis organisasi, dan tujuan pelatihan. Meningkatkan pembelajaran bermakna. Mengkomunikasikan idekompleks dan argumen
10.
Evaluasi simetri gagasan kompleks dan argumen dan terminologi yang terkait
11.
Rincian struktur secara menyeluruh sebuah ide, jalan pikiran, atau jalur argumen (dengan tujuan khusus mengungkap kesalahan, kegagalan, atau kesenjangan dalam penalaran) untuk pengawasan lainnya.
12.
Peningkatan metakognisi (belajar untuk belajar, dan berpikir tentang pengetahuan).
13.
Meningkatkan kemampuan bahasa
120
14.
Elisitasi pengetahuan.
15.
Menilai pemahaman pelajar tentang tujuan pembelajaran, konsep, dan hubungan diantara konsep Grafik konseptual adalah notasi untuk logika berdasarkan grafik eksistensial Charles Sanders Peirce dan jaringan semantik kecerdasan buatan. Dalam makalah yang diterbitkan pertama tentang CGS, John F. Sowa menggunakan grafik konseptual untuk mewakili skema konseptual yang digunakan dalam sistem basis data. Buku pertama tentang CGS (Sowa 1984) menggunakan grafik konseptual untuk berbagai topik dalam kecerdasan buatan, ilmu komputer, dan ilmu kognitif. Sebuah notasi linear, yang disebut Conceptual Format Grafik Interchange (CGIF) telah dibakukan dalam standar ISO untuk Logika umum. Grafik konseptual ditampilkan menggunakan bentuk kotak dan oval. Setiap kotak disebut simpul konsep, dan masing-masing oval disebut simpul hubungan. Dalam CGIF, kurung menggambarkan informasi di dalam konsep simpul, dan tanda kurung menggambarkan informasi di dalam hubungan simpul. Huruf x dan y, yang disebut label coreference, menunjukkan bagaimana konsep dan hubungan simpul terhubung. Dalam Common Logic Interchange Format (disingkat CLIF), huruf dipetakan ke variabel. 6.1.2. Representasi Kejadian Sistem Model simulasi kejadian-diskrit dapat digambarkan sebagai sebuah model interaksi kejadian diskrit yang terjadi dalam sistem dan variabel .status sistem. Interaksi ini dapat ditunjukkan dengan graf dimana simpul (verteks) menunjukkan kejadian dan cabang berarah (ruas) menunjukkan penyebab langsung terjadinya suatu kejadian hanya jika kondisi dipenuhi. Simbol yang digunakan dapat dilihat pada Gambar 6.1.
Penghubung
Kejadian, tidak terkondisi
o
Penghubung terkondisi
Gambar 6.1. Simbol Representasi Sistem
121
--
--
Jika mas yang menghubungkan dua kejadian adalah garis terputus, itu menunjukkan bahwa terjadinya satu kejadian bisa menyebabkan pembatalan kejadian lainnya. Jika ada penundaan antara dua kejadian terhubung, penundaan ditunjukkan pada mas di antara kedua kejadian. Jika terjadinya suatu kejadian bersifat kondisional, referensi terhadap kejadian penting ditunjukkan mas penghubung. Contoh:
Diagram di atas menunjukkan bahwa kejadian i akan mengarah ke kejadianj setelah penundaan selama t dan kondisi 1terpenuhi. Sebagai contoh sistem kejadian-diskrit, perhatikan sekumpulan mesin yang ditangani sekelompok operator. Setiap mesin msak perlu diperbaiki oleh operator. Setelah diperbaiki, mesin akan berfungsi kembali. Variabel status sistem adalah sebagai berikut: M(i) status mesin i 0= menunggu perbaikan 1= sedang diperbaiki 2 = beroperasi O(j) status operator 0= menganggur 1= sibuk
Kejadian diskrityang terjadi adalah:
1(i) mesin i menunggu diperbaiki M(i) diaturjadi 0 2(ij) operatorj mulai memperbaiki mesin i M(i) bernilai 1 O(j) bernilai 1 3(ij) operatorj menyelesaikan perbaikan mesin i O(j) bemilai 0 4(i) mesin i mulai beroperasi M(i) bernilai 2
122
Kondisinya adalah: C( 1) beberapa O(j) = 0 (ada operator menganggur) C(2) beberapa M(i) = 0 (ada mesin sedang menunggu untuk diperbaiki) Penundaankejadian: T(r) waktu mesin dijalankan di antara panggilan perbaikan T(s) waktu yang dibutuhkan untuk memperbaiki mesin Grafkejadian sistem tersebut ditunjukkan Gambar 6.2.
Gambar 6.2. Grafkejadian sistem perbaikan mesin 6.2. Model Logika
Alat penting dalam mendetinisikan sistem adalah diagram alir level tinggi. Diagram alir level tinggi membantu praktisi menemukan pemahaman mendasar logika sistem. Diagram alir level tinggi secara gratis menggambarkan bagaimana komponen dan kejadian utama saling berinteraksi. Juga menggambarkan bagaimana input dan output memberikan peran pada model. Komponen dan logika sistem seharusnya sudah diamati sebelumnya dalam aktivitas orientasi yang berhubungan dengan fase perumusan masalah. Karena diagram alir simulasi yang kita bicarakan adalah diagram alir level tinggi, praktisi harus mengusahakan tidak memasukkan begitu banyak data yang sulit untuk diikuti. Diagram dimaksudkan hanya untuk memberikan informasi umum aliran proses. Dapat dipahami bahwa program aktual model simulasi akan membutuhkan detil tambahan. Sayangnya, pengembangan diagram alir level tinggi yang relatif sederhanapun tetap membutuhkan level disipilin tertentu. Sering praktisi duduk dan mulai
123
---
--
--
--
memodelkan sistem tanpa diagram alir fungsionallevel tinggi. Pendekatan seperti ini biasanya akan menghasilkan output yang mengecewakan. Tanpa diagram alir, sangat diragukan bahwa praktisi memiliki pemahaman model yang fundamental. Penulisan program simulasi mernpakan pekerjaan yang sangat sulit. Proses penulisan program simulasi akan semakin sulit jika praktisi bernsaha secara bersamaan mengerjakan pemrograman dan logika model. 6.2.1. Simbol Diagram Alir Standar Ada empat simbol dasar diagram alir, yaitu oval, persegi, jajaran jenjang, dan ketupat. Ada ANSI dasar spesifik untuk keempat simbol ini. Untuk penggunaan praktis pada pemodelan simulasi, standar tersebut dapat dikurangi lagi menjadi hanya beberapa aturan umum. Aturan pertama adalah simbol hams diatur sehingga urutan alur proses ke bawah dan ke kanan sebisa mungkin. Aturan kedua adalah sembarang simbol hanya memiliki satu jalur penghubung masuk (input) dan keluar (output). Untuk simbol keputusan, aturan ini tidak berlaku. Bagaimanapun meskipun dengan ikon keputusan, hanya satujalur output yang bisa keluar pada waktu tertentu. Dan saran terakhir, adalah menolong mencoba mempertahankan diagram alir dalam lembar kertas sesedikit mungkin. Jika detil tambahan diperlukan, sebaiknya menggunakan diagram alir level rendah dari proses tertentu, bukan tambahan dalam bentuk diagram alur level tinggi. Simbol oval digunakan untuk menunjukkan awal dan akhir proses. Simbol awal adalah simbol pertama yang muncul dalam diagram alir. simbol awal biasanya memiliki hanya satu penghubung output. simbol akhir atau henti adalah simbol terakhir yang muncul pada diagram alir. Meskipun proses mungkin memiliki beberapa jalur berbeda, tapi hanya akan ada satu simbol akhir dari keseluruhan jalur tersebut. Semua proses hams berakhir dalam satu simbol. simbol oval yang digunakan seperti yang ditunjukkan Gambar 6.4. Simbol itu juga digunakan untuk menunjukkan akhir diagram alir.
o
1
Gambar 6.4. Simbol oval
124
Segi empat digunakan untuk merepresentasikan proses tujuan umum yang tidak secara khusus sudah ditunjukkan simbollainnya. Segi empat biasanya masuk dari atas atau sisi kiri. Simbol ini keluar dari bawah atau sisi kanan. Dalam diagram alir level tinggi, penundaan waktu pelayanan merupakan contoh yang menggunakan proses ini. Simbol ini dilihat pada Gambar 6.5. 1 process 1
Gambar 6.5. Simbol proses Jajaran genjang digunakan untuk menunjukkan proses yang ada, input dan outputnya. Jajaran genjang biasanya masuk dari atas atau sisi kiri. Simbol ini keluar dari bawah atau sisi kanan. Contoh penggunaanjajaran genjang dalam diagram alir program simulasi adalah penciptaan atau kedatangan entitas ke dalam sistem.
1 Input/output
1
Gambar 6.6. Simbol jajaran genjang Simbol ketupat digunakan untuk menunjukkan keputusan dalam logika diagram alir. Ketupat mempunyai satu penghubung input dan dua penghubung output. Penghubung input tunggal masuk ke sisi atas verteks simbol ketupat. Penghubung output dapat keluar dari kedua sisi verteks atau salah satunya dari bawah. Penghubung output harns secara khusus diberi label sebagai "benar" dan "salah" ,atau dengan "ya" dan "tidak." Karena output ini bersifat mutually eksklusif, hanya satu jalur output tentunya yang akan teIjadi pada waktu tertentu.
125
--
--
---------
6.3. Model Simulasi
6.3.1. Pendahuluan Tujuan dari fase penerjemahan model adalah menerjemahkan sistem ke dalam model komputer yang dapat digunakan untuk menurunkan data percobaan. Fase penerjemahan ini terdiri dari dua (2) fase. Fase pertama dalam penerjemahan ini adalah keputusan akan program komputer yang akan digunakan. Fase kedua adalah pemrograman model simulasi. Fase kedua ini termasuk pemrograman sistem aktual. Meskipun adalah hal yang tidak mungkin menyediakan contoh pemrograman untuk setiap tipe model simulasi dalam setiap tipe bahasa pemrograman, filosofi pemrograman simulasi umum berikut dapat digunakan untuk mengembangkan model simulasi fungsional dan robust: (1) mulai; (2) manajemen versi; (3) jalankan pemrograman; (4) organisasikan pemrograman; (5) konvensi penamaan Mnemonic; (6) perencanaan pemrograman lanjut; dan (7) pengembangan program dengan banyak praktisi. Kadang-kadang bagian yang paling sulit dari pemrograman simulasi adalah memulai. Untungnya, jika model konseptual dan model logika dikembangkan dengan baik dan tepat, praktisi dengan mudah dapat memulai pemrograman. Pada model logika, praktisi harusnya sudah memiliki diagram alur level tinggi berdasarkan perspektif entitas sistem. Dengan diagram alur level tinggi, praktisi dengan mudah dapat membuat pemrograman. Beda diagram alur level tinggi dan pemrograman hanya terletak pada derajat kedetailan. Jika praktisi memiliki pemahaman konseptual level tinggi tentang bagaimana mengoperasikan sistem, akan jauh lebih mudah mengembangkan level tinggi diagram alir ke level rendah kode program. Sayangnya, banyak praktisi awallangsung yakin menerjemahkan ke fase pemrograman tanpa fase model konseptual dan logika. Individu seperti ini berusaha menyerang program dari pemahaman mental mereka tentang proses sistem. Jika diagram alir level tinggi benar-benar dibutuhkan, diagram alir ini biasanya dikembangkan setelah pembuatan kode program selesai. Karena diagram alir level tinggi baru dikembangkan setelah pembuatan kode program selesai, diagram alir ini tidak selalu mewakili level kualitas proyek keseluruhan. Pendekatan ini pasti menyia-nyiakan waktu dan usaha yang dapat dengan mudah dihindarkan j ika diagram alir fungsionallevel tinggi sudah tersedia.
126
Situasi lainnya yang sama-sama bisa diabaikan adalah jika praktisi mengijinkan pengembangan program untuk menjalankan diagram alir level tinggi. Salah satu penyebabnya adalah penemuan informasi sistem tambahan setelah diagram alir level tinggi dikembangkan. Penyebab lainnya adalah peningkatan pemahaman akan sistem saat proses pemodelan dilakukan. Penyebab mana pun yang teIjadi, itu menunjukkan bahwa praktisi bekeIja dalam kegelapan, mungkin tanpa manfaat pemahaman konseptual proses yang barn ditemukan. Salah satu cara terbaik mengatasi ini adalah menunda sementara proses peneIjemahan model sampai diagram alir level tinggi sistem sudah diperbaharui. Manajemen versi berhubungan dengan pekeIjaan administrasi dalam menciptakan dan memelihara sistem berkas program terorganisasi. Kegiatan ini terdiri dari subdirektori proyek, penyimpanan program simulasi, teknik manajemen versi berkas, dan pembuatan duplikat berkas proyek simulasi. Praktisi harns memulai semua proyek simulasi dengan pembuatan subdirektori terpisah untuk setiap individu proyek. Subdirektori ini dapat ditempatkan di subdirekrtori program simulasi asli, yang menyimpan berkas program simulasi yang dapat dijalankan, atau dikumpulan subdirektori data tersendiri. Setiap metode memiliki kelebihan dan kelemahannya. Keuntungan menggunakan subdirektori program simulasi adalah: 1. berkas proyek dapat segera diakses begitu program simulasi dijalankan. 2. berkas proyek ada di tempat yang sama. 3. hanya sedikit navigasi yang dibutuhkan dalam mengakses perpustakaan simulasi pendukung. Keuntungan menggunakan subdirektori tersendiri adalah: 1. subdirektori program simulasi tetap tidak terkluster 2. mudah membuat duplikatnya Meskipun praktisi harns memutuskan lokasi subdirektori secara sendiri, pada umumnya lebih menguntungkan menggunakan subdirektori data tersendiri terpisah. Faktor utama dalam hal ini adalah kebanyakan praktisi sudah membuat duplikat subdirektori data secara teratur tapi tidak keseluruhan driver komputer. Sehingga ketika teIjadi masalah dengan harddisk, akan sangat penting hanya memasang ulang perangkat lunak pada drive lokal barn dan membuat kopi berkas proyek ke subdirektori data barn. Praktisi hams menggunakan pendekatan "penyederhanaan dan pendekorasian" dan "divide and conquer" untuk mengembangkan program simulasi.
127
--
--
Pendekatan ini dapat mengurangi usaha pengembangan sangat banyak. Menggunakan pendekatan ini, praktisi akan memulai dengan program simulasi relatif sederhana. Begitu simulasi sudah dapat dijalankan dengan benar, praktisi dapat menambahkan komponen dan bagian-bagian lainnya. Cara ini akan menghasilkan aliran seimbang model berbeda secara bertambah. Praktisi harns menyimpan model secara kontinu meskipun hanya sesi pengembangan tunggal. Berkas Tunggal Manajernen Versi Pilihan pertama adalah tetap menggunakan nama sarna ke berkas yang sarna. Hal ini berarti bahwa versi tunggal berkas selalu dikembangkan. Jika berkas rnsak, maka semua pekerjaan akan hilang. Sarnaburuknya dengan jika praktisi tidak dapat mempertahankan modifikasi terbarn. Waktu signifikan dapat disia-siakan untuk usaha menemukan kembali kode yang sudah berjalan dengan benar. Meskipun metode ini kelihatannya tidak bagus, tapi banyak praktisi menggunakannya. Kadang-kadang praktisi mengatasi permasalahan ini dengan membuat duplikat berkas ke direktori lain atau media penyimpanan di luar komputer. Dalam kasus seperti ini praktisi harns selalu mengingat menyimpan dan menggunakan versi terbarn. Mengingat harga hardisk yang tidak mahal saat ini, tidak ada alasan kuat bagi praktisi untuk menggunakan pendekatan ini. Sayangnya, masih banyak praktisi pemula menggunakan pendekatan ini. Bahkan beberapa praktisi berpengalaman yang sudah kehilangan data menggunakan metode ini, tetap mempertahankan menggunakan pendekatan ini. Berkas Jarnak Manajernen Versi Teknik manajemen berkas kedua dan yang paling sesuai adalah secara kontinu menyimpan setiap versi barn dengan nama berkas berbeda. Teknik penamaan bisa menggunakan nomor urnt, seperti antrian, antrianO1, antrian02, dan seternsnya. Model harns selalu disimpan dengan nomor barn setiap perkembangan barn diperoleh atau model telah berhasil debugged. Jika model terlalu kompleks, praktisi mungkin bisa mempertimbangkan penggunaan subdirektori terpisah dalam subdirektori proyek. Pada akhir fase penerjemahan model, praktisi akan memiliki sejumlah model yang merepresentasikan peningkatan program secara nyata. Jika terjadi masalah dalam bentuk apapun, akan jauh lebih sedikit kerja yang hilang dibandingkan dengan berkas tunggal. Begitu model awal sudah lengkap, praktisi juga harns membuat modifikasi untuk merepresentasikan ke konfigurasi percobaan lainnya. Setiap konfigurasi percobaan harns disimpan sebagai model berbeda. Sekali lagi, praktisi harns menggunakan seperti metode rasional untuk menjelaskan versi percobaan berbeda.
128
Menggunakan Banyak Komputer untuk Pengembangan Proyek Situasi versi berkas lainnya adalah menggunakan banyak komputer dalam mengembangkan program simulasi. Hal ini dapat terjadi ketika praktisi melakukan beberapa pengembangan pada komputer kerja kantor, notebook, dan komputer di rnmah. Penggunaan banyak komputer dapat menjadi pentingjika komputer kantor misalnya memiliki monitor atau prosesor yang sangat bagus, perjalanan jauh yang membutuhkan notebook, dan perlunya tetap bekerja dari rnmah. Alasan apapun yang menyebabkan penggunaan lebih dari satu komputer, usaha untuk melacak versi berbeda model bisa menjadi masalah. Salah satu cara untuk mengatasi ini adalah menggunakan beberapa ukuran. Ukuran ini tidak dapat menjamin bahwa tidak akan ada data yang hilang, tapi dapat meminimisasi kemungkinan hilangnya data. Ukuran tersebut adalah: 1. Yakinkan bahwa semua pewaktuan komputer tersinkronisasi. Jika pewaktuan semua komputer tersinkronisasi, praktisi dapat mernjuk ke tanggal dan waktu ketika berkas disimpan. Dalam hal bahwa praktisi mengakhiri berkas dengan dua versi berbeda dari berkas dan nama yang sarna, masih ada harapan bahwa versi terakhir dapat diidentifikasi. Indeks tanggal dan waktu dapat juga digunakan sejalan dengan ukuran berkas untuk membantu identifikasi tepat dari berkas terbarn. Hal ini berlaku dengan asumsi bahwa praktisi secara kontinu mengembangkan model dan ukuran model secara kontinu bertambah. 2. Mulai nomor berkas barn pada setiap sesi. Ini mernpakan pendekatan yang lebih aman. Metode ini akan membantu menjamin bahwa tidak ada dua versi berkas terbarn pada waktu tertentu pada dua komputer berbeda. Jika ada keraguan akan urutan bilangan, praktisi harns menggunakan penambahan yang cukup untuk menghindari keraguan. Penambahan nomor urnt dapat dilakukan bukan dengan penambahan satu unit tapi sepuluhan unit. 3. Gunakan perangkat lunak pensinkronisasi. Perangkat lunak ini biasanya tersedia sebagai bagian media penyimpan di luar komputer. Perangkat lunak akan mensinkronisasi versi berkas berbeda dengan level otomasi berbeda. Jika praktisi memilih cara ini, perangkat lunak harns diperiksa secara periodik untuk meyakinkan bahwa perangkat lunak bekerja dengan benar. Membuat Duplikat Berkas Simulasi Isu penyimpanan berkas terakhir adalah pembuatan duplikat berkas program. Meskipun praktisi memiliki banyak versi arsip program,jika semua berkas disimpan pada alat yang sarna, praktisi mungkin berhadapan dengan risiko. Praktisi mungkin merasa bahwa mereka sudah memiliki cukup duplikat berkas karena masing-masing
129
tim menyimpannya. Mereka merasa tidak akan kehilangan data, padahal kemungkinan kehilangan data tetap mereka dapat alami. Pada kebanyakan komputer pribadi, permasalahan bukan apakah hard drive akan rusak melainkan kapan hard drive rusak. Karena itu sebagai praktisi perlu memikirkan hal ini. Tidak cukup hanya membuat duplikat program pada hard drive atau komputer yang sarna. Praktisi harus membuat duplikat program pada mesia terpisah lain atau komputer lainnya. Saat ini banyak media penyimpanan murah yang bisa digunakan, seperti flash disk, dvd, cd, atau hard disk ekstemal. Komentar Seperti program komputer lainnya, program simulasi juga akan mendapatkan manfaat dari komentar liberal. Komentar liberal tidak hanya menolong saat pengembangan program tapi juga ketika kita berusaha memahami kembali program yang sudah dibangun tahunan lalu. Beberapa praktisi menggunakan komentar keamanan pekeIjaan untuk menyesuaikan dengan komentar kelemahan program. Lagipula, jika anda tidak memahami program yang anda buat, siapa lagi yang bisa anda harapkan memahaminya? Mengingat hal ini, salah satu saran yang diberikan adalah pertimbangkan memberikan perhatian pada pekeIjaan yang memerlukan waktu lebih banyak dan lebih sedikit waktu mengkhawatirkan penyimpanannya. Komentar liberal program simulasi pada kenyataannya lebih bermanfaat daripada komentar bahasa pemrograman tujuan umum. Alasannya, pada umumnya pencapaian programmer tujuan umum adalah mengembangkan pengkodean elegan dimana segmen pengkodean tertentu muncul hanya sekali dalam keseluruhan program. Setiap kali fungsi tersebut dibutuhkan, program mengalihkan ke subrutin yang umumnya dapat diakses. Sebaliknya, banyak proyek simulasi mempunyai segmen kode yang hampir semuanya identik. Meskipun demikian, segmen kode akan melaksanakan fungsi yang berhubungan dengan banyak bagian berbeda dari model. Karena itu tidak umum bagi beberapa segmen kode simulasi muncul sangat mirip pada permukaan. Hanya ketika praktisi memeriksa parameter kode, maka perbedaan akan terlihat dengan jelas. Untuk situasi seperti ini, komentar efektif tidak hanya akan menolong menjelaskan kode tetapi juga membantu praktisi lebih cepat mengakses kode segmen yang diinginkan dari antara berbagai segmen serupa yang ada. Pemberian komentar dalam program simulasi dapat dilakukan dalam dua cara berbeda, yaitu pada level struktur dan level model.
130
Pemberian komentar pada level struktur mernpakan eara paling umum dan konvensional. Beberapa program simulasi biasanya memasukkan field komentar pada struktur setiap kotak dialog. Praktisi harns bekerja keras untuk membuat komentar bernpa penjelasan bukan deskriptif. Jika praktisi sedang mempraktekkan mnemonic struktur penamaan yang tepat, seharnsnya tidak akan ada lagi kebutuhan teks tambahan deskriptif. Sebaliknya, teks penjelasan mungkin tidak diperlukan, sebaliknya teks penjelasan membawa nilai yang besar, khususnya ketika struktur tipe peneabangan digunakan. Organisasi Program Pengantarmukaan kebanyakan program simulasi tertentu sering kelihatannya mengarahkan ke pengembangan tidak terorganisasi dari komponen model berbeda. Sebaliknya, bahasa pemrograman level tinggi berbasis teks, tidak ada garis jelas untuk menempatkan struktur program. Faktanya, adalah mungkin menempatkan representasi ikonik komponen model berbeda seeara virtual di sembarang jendela komputer. Meskipun praktisi bernsaha menyimpan program awal terorganisasi, filosofi "penyederhanaan dan pengorganisasian" mungkin akan merepotkan praktisi. Daripada berkutat dengan kode tingkat tinggi yang ada di mana saja jendela pada rnangan yang tersedia, lebih baik praktisi bernsaha mengatur semua struktur kode yang ada sehingga program kelihatan mengalir seeara natural. Kegagalan mengatasi prinsip ini akan menghasilkan struktur penghubung muneul seperti spagetti pada semuajendela program. Kode spagetti muneul karena terlalu banyak menggunakan pemyataan "goto" dalam program. Sarna halnya dengan susahnya mengikuti rangkaian spagetti, juga akan sangat sulit mengikuti kode spagetti yang loneat sana loneat sini dalam bagian program. Dalam usaha untuk mempertahankan program yang terorganisasi, praktisi harns selalu mengingat level berbeda yang dapat digunakan untuk menyajikan program. Praktisi harns bernsaha mempertahankan komponen sernpa atau komponen yang berhubungan satu sarna lain dalam sajian yang sarna. Meskipun semua komponen harns disajikan, level penyajian tidak bisa sangat rendah sehingga tidak memungkinkan untuk mengidentifikasi komponen program individual. Praktisi juga harns bernsaha keras untuk meyakinkan bahwa tidak ada komponen yang saling tidak berhubungan lainnya pada bagian lain model juga terlihat disajikan. Komponen lain ini mungkin akan menjadi selingan yang tidak bemilai bagi praktisi. Dalam hal ini, perbesaran dalam level tertentu dapat dipertimbangkan sarnadengan subroutine program berbasis teks.
131
--
Biasanya praktisi juga akan bernsaha membuat posisi spasial tersaji dengan jelas. Dalam kata lain, meskipun penyajian subroutine digunakan, subroutine yang berhubungan harns secara geografis sejajar. Hal ini akan membantu percepatan perpindahan antara subroutine yang berhubungan. Pendekatan penyajian subroutine ini harns digunakan dalam semua model untuk mempertahankan program terorganisasi sebaik mungkin. Teknik yang paling bermanfaat untuk menavigasi penyajian subroutine model simulasi terorganisasi dengan benar adalah program "hot keys." Hot keys memungkinkan praktisi menghubungkan penyajian tertentu dari suatu model dengan sebuah kunci pada papan ketik komputer, sehingga kapanpun praktisi menginginkan menavigasi ke daerah tertentu, maka yang perlu dia lakukan adalah menekan kunci yang sesuai dengan bagian model tersebut. Meskipun pemrograman awal "hot keys" membutuhkan beberapa menit, tapi penghematan waktu berikutnya akan berlipat ganda. Praktisi harns mengusahakan menggunakan penamaan konvensional mnemonic yang konsisten untuk antrian model, sumber daya, pengangkut, dan konveyor. Konvensi penamaan harns menggambarkan sifat alami dan tipe komponen. Praktisi akan menemukan bahwa teknik mnemonic ini akan sangat mempercepat laju pengembangan program. Jika praktisi gagal menggunakan teknik mnemonic, maka dia akan dipaksa untuk mernjuk secara kontinu bagian lain program. Contoh penamaan mnemonic adalah: Checkoutclrk, Checkoutclerkq, Golfcart, Golfcartq, Bagconv, dan Bagconvq. Checkoutclrk misalnya mungkin digunakan sebagai nama sumber daya petugas pemeriksa. Checkoutclrkq bisa digunakan sebagai antrian pada petugas pemeriksaan. Golfcart bisa saja digunakan sebagai nama pengangkut sementara Golfcartq bisa digunakan untuk menunjukkan antrian alat pengangkut. Bagconv bisa digunakan untuk menunjukkan konveyor dan Bagconvq sebagai nama antrian yang mendahului konveyor. Jika metode menmonik konsisten digunakan untuk penamaan komponen dalam model, maka pendekatan yang sarna harns digunakan untuk penamaan berbagai sumber daya dan antrian. Sebagai contoh, jika model tertentu disebut sebagai machine, kecendernngan alamiah adalah menyebut sumber daya seperti macho Jika ada banyak machine, praktisi harns membuat pembedaan, seperti machb, mach2, dan mach02. Jika sistem penomoran misalnya digunakan, maka mesin
132
pertama dinamai "mach," kedua "mach2," dan seternsnya. Artinya, praktisi dimungkinkan menamai ulang mesin awal yang disebut sebagai "mach" dengan "macha" (jika sistem hurnf digunakan), atau "machl" (jika sistem penomoran satu digit digunakan), atau "machO1" (jika sistem penomoran dua digit digunakan) misalnya. Artinya praktisi hams memodifikasi program yang sudah dikembangkan sebelumnya. Tentu saja penamaan ulang kode awal dapat dihindarkan jika sebelumnya telah dipikirkan pemberian nama sebagai mach 1,atau machO1. Dengan cara sarna, label rujukan struktur program dapat menggunakan nama dasar sarna dengan struktur huruf akhir "lbl" pada nama, seperti Checkoutclrklbl dan Checkoutclrkqlbl. Checkoutclrklbl adalah label untuk pekerja di bagian pemeriksaan. Checkoutclrkqlbl adalah label untuk antrian pekerja pada bagian pemeriksaan. Dalam situasi tertentu, praktisi mungkin membutuhkan bantuan praktisi lainnya dalam menyelesaikan semua komponen program proyek simulasi. Situasi ini mungkin muncul sebagai hasiljadwal yang sangat ketat atau keahlian tertentu yang dimiliki praktisi lainnya. Dalam kasus waktu yang sangat sempit, praktisi mungkin mempunyai keleluasaan memilih dan memanfaatkan praktisi lainnya. Tapi jika masalahnya adalah keahlian, praktisi mempunyai keterbatasan dalam memilih dan memberdayakan praktisi lainnya. Meskipun pendekatan ini kelihatannya sangat bermanfaat dalam pengembangan program, tapi bukan berarti tanpa bahaya yang nyata. Pertama, praktisi hams menjaga pengawasan dalam level tertentu atas komponen yang dikembangkan bersamaan. Permasalahan potensial kedua adalah waktu yang cukup hams dialokasikan untuk mengintegrasikan berbagai komponen sebelum waktu akhir proyek dicapai. Bukan karena komponen individual sudah berhasil dioperasikan dapat diasumiskan bahwa penggabungan program tidak akan menemui kesulitan. Lagi pula program masih hams melewati verifikasi dan validasi sebelum percobaan dapat dimulai. Idealnya, praktisi hams memformalkan penugasan komponen pemrograman berbeda dalam bagan pertanggungjawaban linear yang ada. Jika ini tidak dilakukan sebelumnya, praktisi akan disarankan untuk mengunjungi kembali bagan pertanggungjawaban linear dan memasukkan detilnya. Bagan pertanggungjawaban linear hasil perbaikan hams didistribusikan ke semua praktisi. Tanpapenugasan formal tanggungjawab seperti ini, praktisi mungkin akan diabaikan ketika bernsaha mengumpulkan hasil kerja praktisi lainnya.
133
--
--
6.3.1 Model Simulasi Sederhana Model simulasi harns merefleksikan sifat-sifat penting sistem nyata. Untuk menjelaskan proses pemodelan akan digunakanpercobaanjarum Buffon. Percobaan Disimulasikan Percobaan Jarum Buffon. Jarum sepanjang I dijatuhkan secara acak pada bidang yang memuat sekumpulan garis paralel dengan jarak antar garis d, yang dapat direpresentasikan keramik lantai (lihat Gambar 6.7.). Panjang jarum diasumsikan lebih kecil atau sarna dengan jarak antar garis paralel. Jika percobaan menjatuhkan jarum dilakukan secara berulang-ulang, probabilitas (P) jarum akan menyentuh atau memotong garis dapat diperoleh dari hasil bagi jumlah jarum menyentuh atau memotong garis (NI) dengan jumlah percobaan (NT), atau P = NI/NT. Dilihat dari prosedurnya, percobaan jarum Buffon adalah simulasi Monte Carlo, karena kita menggunakan angka acak dan sampel acak untuk memperkirakan hasil percobaan.
---0
Gambar 6.7. Bidang percobaan jarum Untuk mensimulasikan percobaan ini, kita harns dapat menempatkan jarum secara acak, relatif terhadap garis. Dalam percobaan fisik, hal ini tidak sulit dilakukan, kita hanya perlu menjatuhkanjarum pada bidang yang sudah ditentukan. Tetapi dalam simulasi komputer percobaan akan berbeda. Jarum pada bidang harus ditempatkan secara unik, untuk itu kita harus menentukan lokasi spesifik jarum. Anggap lokasi jarum terhadap garis mempunyai titik tengah m dan sudut 8. Untuk memenuhi posisi acak, variabel jarak diperlakukan sebagai variabel acak dan berdistribusi uniform.
134
Kita hanya perlu mempertimbangkan satu area yang diapit oleh dua garis, karena area lainnya biasanya duplikat dari area ini (Gambar 6.8). Begitu titik tengah jarum m sudah ditentukan, kita harns menentukan garis mana dari antara kedua garis tersebut yang terdekat. Posisi acak bersifat simetris, oleh karena itu kita hanya memerlukan setengah dari jarak kedua garis. Oleh karena itu a yang mernpakan jarak dari m ke garis adalah variabel acak berdistribusi uniform pada kisaran 0 -d/2.
Karena sifat simetris, juga variabel acak yang berdistribusi uniform pada kisaran O-n radian. r_~
r_~_._._.
-.- .-. m
t
a
+
1/2 sin ()
t-.-.-.-.-..
I
Gambar 6.8. Jarak Jarnm dengan garis
Diberikan a dan e acak, metode untuk menentukan apakah jarnm menyentuh atau memotong garis adalah sebagai berikut: hitunglah proyeksi vertikal jarak m ke akhir jarum sebagai (//2) sin, dan bandingkan denganjarak a. Jika a ~ (//2) sin, jarum menyentuh atau memotong garis, seperti yang ditunjukkan di atas. Jika a> (//2) sin , jarum tidak menyentuh atau memotong. Untuk menyelesaikan pengembangan model, kita harns menentukan rata-rata nilai a dan e. Untuk mendapatkan sampel acak a dan e, akan lebih baik menggunakan bilangan pseudo-random, r, dengan 0 ~ r~ 1. Kemudian kita dapat mendefinisikan nilai a dan e untuk percobaan tertentu sebagai : a=(d/2)r e= nr kisaran a dan e yang diinginkan adalah: o ~a~ d/2 o~e~n Logika pemrograman untuk mensimulasikan percobaanjarum ditunjukkan Gambar 6.9.
135
--
--
--
Program akan dijalankan sebanyak 3000 kali dengan panjangjarum (I)= 10cm dan jarak garis (d) = 20cm. Hasil simulasi memperkirakan p (probabilitas jarum akan menyentuh atau memotong garis) sebesar 0.3133. Pertanyaan berikutnya adalah seberapa akurat perkiraan ini? Pilih 1dan d
I
~ I
Turunkanf,
~ I
I
~
Turunkan f2 ~
Hitung e
Hitung 1/2 sin e
~
ya
l a e 1/2sine J
r I
Tambahkan NI
~tidak ]
+
I
Tambahkan NT
I
~
(Jumlah
running sudah cukup
]
tidak
~ ya Cetak hasil ~
S Gambar 6.9. Logika pemrograman percobaanjarum Buffon
136
Keakuratan p ditentukan oleh jumlah ulangan setiap percobaan yang disimulasikan. Dalam pembentukan selang kepercayaan untuk presisi ini, hal berikut dilakukan. Jatuhnya jarum merupakan percobaan Bernoulli, jumlah kesuksesan (NI) dalam ulangan NT adalah variabel acak Binomial, dan P = NI/NT yang merupakan penduga bagi parameter Binom p (probabilitas sukses). Dengan menggunakan P = Pmaka dapat dinyatakan: EIF]= E[NI / NT]= P
karena VAR[NI]= NT x p(l- p)
VAR[P]= p(l- PXT Z
~
karenaE[NI]= px NT
( (f;- Pt~(l- p)t
Dapat diasumsikan bahwa Pmenyebar normal (percobaan sebanyak 3000jauh lebih besar dibandingkan 30), dan oleh karena itu Z diasumsikan berdistribusi normal dengan rata-rata 0 dan ragam 1. Lalu kita dapat menulis probabilitasnya:
1-Z0.025((f;-
J .LlP-ZO.025
p))1/2 ,; ZO.025]
pt{l-
1/2
-(1- -) (p
NTP
)
~
0.95
-Q _ _)
:::;p:::;P+ZO.025
(p
NTP
)
1/2 ] = 0.95
Menggunakan P = 0.3133 (nilai probabilitas hasil simulasi di atas), kita akan mendapatkan: P[0.2967 S ps0.3299] = 0.95 Program simulasi menggunakan FORTRAN adalah sbb: C PERMASALAHAN JARUM BUFFON TYPE *, 'MASUKKAN PANJANG JARUM, LEBAR AREA (JARAK ANTARADUA GARIS), JUMLAH PERCOBAAN' TYPE *, READ *,FNEEDLE,DIST,NTRIALS TYPE*,PANJANG JARUM = ',FNEEDLE, 'LEBAR AREA = ',DIST, 'JUMLAH PERCOBAAN = ',NTRIALS WRITE (6,100) FNEEDLE,DIST,NTRIALS 100 FORMAT (' PANJANG JARUM = ',F7.0,'LEBAR AREA = ',F7.0, 137
-
-
JUMLAH PERCOBAAN =',16) DO lI=l,NTRIALS Y=RAN(ISEED) A=Y*DISTI2 Y=RAN(ISEED) THETA=Y*3.1417 IF(A.LE.(FNEEDLE/2.)*SIN(THETA)) THEN CROSS=CROSS+ I END IF IF(MOD(I,50) .EQ.O)THEN TYPE *,'PERCOBAAN NO. = ',I,'FRACTION CROSSING= ',CROSS/FLOAT(I) 101 FORMAT(' PERCOBAANNO.= ',I,' FRACTION CROSSING= 'F5.4) END IF I CONTINUE THEO_PROB=2.*FNEEDLE/(3.1417*DIST) TYPE*,'PELUANGTEORITIS= ',THEO_PROB WRITE(6,102)THEO PROB 102 FORMAT(' PROB. TEORITIS= ',F6.5) END Sebelum mengembangkan model simulasi kompleks, kita bicarakan dulu daftar pemrosesan dalam simulasi. Untuk model simulasi sederhana, kita dapat menemukan tidak ada daftar atau maksimum hanya satu daftar record dengan I atribut. Tapi untuk model simulasi kompleks kita harns berhadapan dengan beberapa daftar yang memuat banyak records juga dengan banyak atribut. Sering pemrosesan FIFO (First In First Out-yang pertama masuk pertama diproses) tidak efisien. Jika jumlah besar informasi ini tidak disimpan dan dimanipulasi secara efisien, eksekusi model akan membutuhkan waktu yang lama dan memori penyimpanan yang besar akan mengakibatkan model simulasi tidak layak. Ada dua cara penyimpanan daftar records dalam komputer yaitu alokasi sekuensial dan terhubung (linked). Pendekatan alokasi-sekuensial meletakkan records berdekatan secara fisik dalam lokasi penyimpanan, satu demi satu record sesuai dengan hubungannya. Dalam pendekatan alokasi penyimpanan terhubung, setiap record memuat atribut dan pointer (link). Pointer menunjukkan relasi logis dari satu record ke record lainnya dalam daftar. Sehingga record dalam daftar yang
138
saling berhubungan tidak harus diletakkan berdekatan. Pendekatan kedua ini (alokasi penyimpanan terhubung) lebih disukai dalam pemodelan simulasi karena memiliki beberapa keuntungan, yaitu: 1. waktu pemrosesan yang dibutuhkan untuk jenis list tertentu dapat dikurangi secara signifikan. 2. pemrosesan list-kejadian untuk model simulasi dimana daftar (list) kejadian memuat sejumlah besar record kejadian secara simultan dapat dipercepat 3. untuk beberapa model simulasi, kapasitas memori komputer yang dibutuhkan untuk menyimpan bisa lebih kecil. 4. menyediakan kerangka umum yang memungkinkan menyimpan dan memanipulasi banyak daftar secara simultan dengan mudah, dimana records dalam daftar berbeda dapat diproses dengan cara berbeda. 6.3.2. Model Simulasi Kompleks
Simulasi kejadian diskrit memodelkan sistem yang berubah sesuai waktu melalui suatu representasi dimana variabel status berubah secara langsung pada titik terpisah dalam waktu. Titik terpisah dalam waktu adalah keadaan dimana suatu kejadian terjadi. Kejadian didefinisikan sebagai kejadian langsung yang dapat mengubah status sistem. Meskipun simulasi kejadian diskrit dapat dilakukan secara manual, jumlah data yang harus disimpan dan dimanipulasi dalam dunia nyata mengharuskan penggunaan komputer digital. Simulasi jarum Buffon adalah simulasi kejadian-diskrit statis dalam artian bahwa simulasi itu terdiri dari serangkaian kejadian acak dimana setiap kejadian tidak dipengaruhi oleh kejadian sebelumnya. Waktu bukan bagian dari simulasi. Menjatuhkan jarum dilakukan berulang-ulang, memberikan perkiraan yang lebih baik akan probabilitas jarum menyentuh atau memotong garis, tapi simulasi akan tetap sarnajika ke 3000jarum dijatuhkan secara bersama-sama atau dijatuhkan satu demi satu sebanyak 3000 kali. Lebih sering, simulasi bersifat dinamis, dimana interaksi antara kejadian acak dan waktu adalah bagian dari simulasi. Karena sifat dinamis ini, kita harns mengikuti nilai waktu tersimulasi selama simulasi dijalankan, dan kita juga perlu mekanisme mengembangkan waktu tersimulasi dari satu nilai ke nilai lainnya. Kita sebut variabel model simulasi yang memberikan nilai waktu tersimulasi saat ini dengan simulation clock. Unit waktu simulation clock tidak pemah dinyatakan
139
-
--
--
--
secara eksplisit ketika pemrograman model dibuat dengan bahasa pemrograman umum seperti FORTRAN, Pascal atau C, dan diasumsikan dalam unit yang sarna dengan parameter input. Juga, secara umum tidak ada hubungan antara waktu tersimulasi dengan waktu menjalankan simulasi dalam komputer. Dua pendekatan prinsipal disarankan untuk menjalankan simulation clock yaitu next-event time advance dan fixed-increment time advance. Pendekatan pertama digunakan hampir semua bahasa simulasi dan bahasa umum, karena itu kita akan menggunakan pendekatan ini. Dalam next-event time advance, simulation clock diinisiasi dengan 0 dan waktu terjadinya kejadian di masa mendatang ditentukan. Simulation clock kemudian bertambah (maju) dengan waktu terjadinya kejadian berikutnya yang pertama, dimana pada suatu titik status sistem diperbaharui setelah terjadinya suatu kejadian, dan pengetahuan kita akan waktu kejadian berikutnya juga diperbaiki. Proses penambahan simulation clock berlanjut terus dari satu kejadian ke kejadian lainnya sampai kondisi penghentian yang sudah didetinisikan dipenuhi. Karena semua status berubah hanya pada waktu kejadian model simulasi kejadian-diskrit, periode tidak aktif diloncat dari waktu kejadian ke waktu kejadian. Harus diperhatikan bahwa loncatan berurutan simulation clock secara umum bervariasi dalam ukuran (tidak sarna). 6.3.3. Simulasi Monte Carlo
Simulasi Monte Carlo adalah proses menurunkan secara acak nilai variabel tidak pasti secara berulang-ulang untuk mensimulasikan model. Metode Monte Carlo karena itu merupakan teknik stokastik. Kita dapat menemukan metode Monte Carlo diaplikasikan dalam berbagai bidang, mulai dari ekonomi sampai tisika nuklir untuk pengaturan lalu lintas aliran. Tentu saja cara aplikasinya berbeda dari satu bidang ke bidang lainnya, dan ada banyak sekali himpunan bagian Monte Carlo meskipun dalam satu bidang yang sarna. Hal yang menyamakan semua itu adalah bahwa percobaan Monte Carlo membangkitkan bilangan acak untuk memeriksa permasalahan. Metode Monte Carlo dianggap sebagai penemuan dari Stanislaw Ulam, seorang matematikawan cemerlang yang bekerja untuk John Von Neumann di proyek United State's Manhattan selama perang dunia II. Ulam adalah orang utama
140
yang diketahui merancang born hidrogen dengan Edward Teller tahun 1951. Dia menemukan metode Monte Carlo tahun 1946 sewaktu memikirkan peluang memenangkan permainan kartu soliter. Percobaan jarum di atas merupakan contoh metode Monte Carlo. Hal yang kita lakukan dalam lembar kerja adalah mendefinsikan nilai yang mungkin dengan distribusi peluang untuk setiap variabel tidak tentu. Tipe distribusi yang dipilih didasarkan pada kondisi di sekeliling variabel. Metode Monte Carlo, sebagaimana yang dipahami saat ini, melingkupi sampling statistik yang digunakan untuk memperkirakan solusi permasalahan kuantitatif. Ulam tidak menciptakan sampling statistik. Metode ini sebelumnya digunakan untuk menyelesaikan permasalahan kuantitatif dengan proses fisik, seperti pelemparan dadu atau pengocokan kartu untuk menurunkan sampel. W.S. Gosset, yang mempublikasikan karyanya dengan nama "Student", secara acak menarik sampel ukuran jari tengah dari 3000 kriminal untuk mensimulasikan dua distribusi normal berhubungan. Dia mendiskusikan metode Monte Carlo dalam dua publikasinya (1908a dan 1908b). Kontribusi Ulam diakui dalam potensi penemuan baru komputer elektronik untuk mengotomasi penarikan sampel. Bekerja dengan John yon Neuman dan Nicholas Metropolis, dia mengembangkan algoritma untuk
implementasikomputer,juga mengeksploralat transformasipermasalahantidak . acak ke dalam bentuk acak yang akan memfasilitasi solusinya melalui penarikan sampel acak. Nama Monte Carlo diberikan oleh Metropolis, dipublikasikan pertama sekali tahun 1949. Nama simulasi Monte Carlo diberikan sesuai dengan nama salah satu kota di Monaco, yaitu Monte Carlo, tempat utama kasino yang mengandung permainan peluang (kesempatan). Permainan peluang seperti roda rolet, dadu dan mesin slot menunjukkan perilaku acak. Perilaku acak dalam permainan peluang adalah sarna dengan bagaimana simulasi memilih nilai variabel secara acak untuk mensimulasikan model. Ketika kita melempar dadu, kita mengetahui bahwa yang akan muncul mungkin 1,2, 3,4, 5 atau 6, tapi kita tidak mengetahui yang mana pastinya untuk lemparan tertentu. Hal itu sarna dengan variabel yang mempunyai kisaran nilai diketahui tapi tidak diketahui nilai pasti untuk waktu atau kejadian tertentu.
141
Pemahaman metode Monte Carlo dapat dilakukan dengan memikirkan bahwa itu merupakan teknik umum integrasi numerikal. Setiap aplikasi metode Monte Carlo dapat direpresentasikan sebagai integral terbatas. Misalkan kita ingin mengevaluasi integral terbatas multi-dimensional dari: 11 \.fI
= J r.. o0
1
J f(ul'u2,,,.
,u~)du1du2... dUn= J f(lI)dll
0
(0,1)"
[I]
Kebanyakan integral dapat dikonversi ke dalam bentuk ini dengan perubahan variabel yang sesuai, sehingga kita dapat mempertimbangkan ini menjadi aplikasi umum yang sesuai untuk metode Monte Carlo. Integral mereprensentasikan permasalahan bukan acak, tetapi metode Monte Carlo memperkirakan solusi dengan memperkenalkan vector acak U yang berdistribusi normal dapat area integrasi. Dengan mengaplikasikan fungsi f ke U, kita mendapatkan variabel acak f(U). Variabelacak f(U) mempunyai ekspektasi:
E[f( V)] = J f(lI) ~(II) dll
[2]
(0,1)"
Dimana cradalah fungsi densitas peluang U. Karena crsarna dengan 1 pada area integrasi, maka ekspektasi di atas menjadi:
E[f( V)] = J f(lI) dll
[3]
(0,1)"
Dengan membandingkan [1] dan [3] didapatkan ekspresi peluang untuk integral 'I' : \.fI=E[f( lJ)]
[4]
Sehingga variabel acak f(U) mempunyai rata-rata 'I' dan standar deviasi A. Kita detinisikan: [5]
142
Sebagai penduga tidak bias untuk '¥ dengan kesalahan standar (standar error) A. Ini kurang konvensional, karena [5] adalah penduga yang tergantung pada sampel {Ull]}denganukuran 1,tetapi itu tetap sebagai penduga valid. Untuk memperkirakan '¥ dengan kesalahan standar kurang dari A, mari kita generalisasikan penduga kita untuk mengakomodasi sampel yang lebih besar {lP\ U [2], ... , U [m]}. Aplikasikan fungsi f ke setiap sampel ini, akan menghasilkan sejumlah m variabel acak independent and identically distributed (IID)j{UII]),j{U [2]), ... , j{U [m]), dimana masing-masingnyamempunyaiekspektasi dan standar
deviasi A. Generalisasi [5]:
H=
~i: f(U[k]) m k=l
[6]
Adalah penduga tidak bias untuk '¥ dengan kesalahan standar: (j
...f;
[7]
Jika kita mempunyai realisasi {ull], U[2],... , u[m]}untuk sampel kita, kita dapat
memperkirakan sebagai:
[8]
Kita sebut [6] sebagai estimator Monte Carlo kasar. Persamaan [7] adalah penting karena dua alasan. Pertama, persamaan itu menunjukkan bahwa kesalahan standar analisis Monte Carlo menurun sebesar pangkat dua dari ukuran sampel. Kedua, kesalahan standar tidak tergantung pada dimensionalitas integral. Kebanyakan teknik integrasi numerikal, seperti aturan trapezoidal atau metode Simpson, tergantung pada dimensionalitas. Ketika digeneralisasikan ke dimensi jarnak, jumlah perhitungan yang dibutuhkan meningkat secara eksponensial sesuai dengan dimensionalitas integral. Metode Monte Carlo tidak tergantung dengan dimensionalitas.
143
-
--
--
---
Dalam analisis Monte Carlo, peningkatan jumlah sampel akan mengurangi kesalahan standar, tapi itu akan bernilai mahal. Teknik reduksi ragam dapat digunakan untuk memperbaiki solusi. Teknik ini menggabungkan informasi tambahan tentang analisis secara langsung kedalam penduga. Hal ini memungkinkan penduga Monte Carlo lebih deterministik, dan karenanya mempunyai kesalahan standar lebih rendah. Teknik standar pengurangan ragam termasuk antithetic variates, control variates, importance sampling, dan stratified sampling. 6.3.4. Sistem KomputerTime-Shared Perhatikan sistem komputer time-shared, dimana pemakai dihubungkan ke sistem melalui jaringan telepon. Hanya ada sedikit jumlah port Ulltukkoneksi seperti ini, dan ketika semua port digunakan saat panggilan masuk, maka pengguna akan menerima signal sibuk dan hams mencoba membuat koneksi di lain waktu. Sekali koneksi tersambung, port tidak akan dapat digunakan lagi oleh pemakai lain sampai pemakai saat itu memutus hubungan dengan menutup telepon. Skematik sistem ditunjukkan oleh Gambar 6.1O.
CPU Kports
Memory
Gambar 6.10. Sistem komputer time-shared
144
Dengan maksud menyederhanakan permasalahan, kita akan mengasumsikan bahwa pemakai berusaha menghubungi komputer pada waktu acak sepanjang hari dengan laju rata-rata panggilan 35 per jam. Data historis rata-rata waktu, termasuk perhitungan dan bukan perhitungan, 25 menit. Meskipun saat ini ada 14 port, tidak jarang pemakai menemukan bahwa semua port sibuk saat mereka melakukan pemanggilan. Permintaan memperbesar memori CPU dan menambah jumlah port dan kecepatan transmisi sudah sering diajukan untuk meningkatkan level pelayanan. Port relatif mahal karena biaya perangkat keras dan biaya pelayanan telepon per bulan. Harga perangkat keras untUksetiap port sekitar Rp 10,000,000,- dan biaya pelayanan telepon serta perawatan setiap port per bulan sebesar Rp250,000,-. Sistem komputer hanya dapat mendukung 32 port dan kapasitas perhitungan sistem terbatas. Dipercaya bahwa dengan meningkatkan laju transmisi antara sistem komputer dengan pemakai yang memanggil dari 120kpd (karakter per detik) menjadi 960 kpd, lama sesi dapat dikurangi. Diyakini bahwa lama sesi rata-rata dapat dikurangi tiga menit menggunakan laju transmisi lebih tinggi. Peningkatan dari 120 ke 960 kpd membutuhkan biaya Rp4,000,000,- untuk setiap 100 terminal yang dapat dikoneksikan ke sistem. Studi pendahuluan menunjukkan bahwa kinerja sistem akan diperbaiki jika memori CPU diperbesar. Pengaruh peningkatan seperti itu akan menjadi sesi paling sensitif dimana pemakai akan terhubung ke sistem dalam jangka waktu singkat. Memori CPU saat ini 1MB dan dapat diperbesar ke 2 MB atau 3 MB. Tabel 1 menunjukkan biaya dan pengurangan waktu koneksi untuk memori 1MB,2 MB dan 3MB. Dengan maksud mengevaluasi kegunaan penambahan port, peningkatan kecepatan transmisi, atau menambah memori, disarankan untuk mempelajari kinerja sistem dan biaya yang berhubungan dengan bantuan model analitik, model simulasi dan keduanya.
145
--
-
--
Tabel 6.1. Biaya dan pengurangan waktu koneksi Dengan beberapa altematif memori WaktuPerhitungan Rata-rata
Biaya(dolar)
10 8 7
0 20,000 30,000
Peningkatan Konfigurasisaatini Memori2M-Byte Memori3M-Byte
6.3.4.1. Formulasi Masalah Untuk:memformulasikan masalah, kita perlu menjawab pertanyaan : 1. Apa yang kita harapkan untuk:dipelajari dengan membangun model simulasi kasus ini? 2. Informasi apa yang kita inginkan disediakan simulasi? Pertanyaan-pertanyaan ini bisa dikembangkan lagi dan tidak se1alu diungkapkan secara eksplisit. Kita dapat menggunakan model simulasi untuk:memprediksi kinerja sistem sebagai parameter pembahan sistem atau lebih disukai, model simulasi dapat digunakan untuk: mengarahkan pengoptimuman beberapa tujuan yang dibatasi oleh sumber daya terbatas. Untuk: kasus di atas, dengan mencoba konfigurasi sistem berbeda, kita dapat mengamati ukuran kinerja sistem. Pertanyaan yang akan dijawab bisa dalam bentuk:: 1. 2. 3.
Berapa probabilitas keterhubungan ke sistem sebagai fungsi jumlah koneksi terminal (port)? atau Berapa jumlah rata-rata port sibuk, sebagai fungsi memori, koneksi terminal dan kecepatan transmisi? atau Berapa level kepuasan pemakai sebagai fungsi peningkatan sumber daya?
Berbagai pertanyaan lain dapat dibentuk:,setiap pertanyaan membantu analis untuk fokus,padatujuan pemodelan simulasi. Altematifnya, kita dapat menyatakan fungsi objektif yang akan dioptimalkan bersamaan dengan pembatas yang hams dipenuhi untuk:mendapatkan solusi layak.
146
Sebagai contoh, kita mungkin memilih dari salah satu bentuk di bawah ini untuk tujuan dan pembatas : 1. 2. 3. 4.
maksimumkan (kepuasan pengguna) terhadap :biaya total pengeluaran < Co atau minimumkan (total pengeluaran) terhadap :kepuasan pemakai > So atau minimumkan (lama rata-rata sesiper pemakai) terhadap :biaya total < Co atau minimumkan (total biaya) termasuk biaya pemakai dan biaya sumber daya
Beberapa dari tujuan dan pembatas ini perlu diklaritikasi, yang mernpakan langkah penting dalam formulasi masalah. Tanpa mengidentitikasi denganjelas dan lebih dini pertanyaan yang hams dijawab dari model simulasi, proses pemodelan simulasi akan berakhir dengan sendirinya dan analisis akan sangat mudah kehilangan wawasan tujuan akhir dari pemodelan. Detil dan level kompleksitas model hams merefleksikan penggunaan akhir model. Model tidak perlu lebih kompleks atau lebih detil dari pertanyaan yang hams dijawab yang dibuat di awal analisis. Kita akan detinisikan variabel dan paramater sistem. Variabel Eksogenus tidak dapat dikontrol Simbol ko 9(t) Cr CH Cu L
penjelasan Jumlah port saat ini Rata-rata laju kedatangan pada waktu t Biaya per bulan setiap penambahan satu line telepon Biaya perangkat keras untuk setiap penambahan port Biaya upgrading semua pemakai ke 960 kpd umur ekspekstasi perangkat keras
147
-
-
Variabel Eksogenus dapat dikontrol (variabel keputusan) Simbol penjelasan Kl CR K U E(T)
Jumlah port tambahan Investasi sumberdava komputer tambahan Jumlah total po rt = k 0 + k 1 Biayaupgrading semua pemakai sampai 960 kpd,Cu [0,jk pemakai tdk diupgradel Ekspektasijumlah pemakai terhubung per sesi
Variabel Endogenus / varia bel status N(t)
I Jumlah pada
pemakai -waktu t
terkoneksi
ke sistem
Variabel Endogenus / ukuran kinerja Simbol TC PK Pc
penjelasan Biaya total per tahun = CR + klCH + UjL+12klCT Peluang pemakai berusaha koneksi dan menemukan semua port terpakai Peluang pemakai berusaha koneksi dan menemukan tidak semua port terpakai(juga disebut level pelayanan) = I-PK
Karena tujuan pengembangan model adalah untuk mendukung pengambilan keputusan, maka selanjutnya kita harns mempertimbangkan kriteria pengambilan keputusan termasuk tujuan dan kendala yang dihadapi. Berbagai kriteria keputusan ada, tapijika kita membatasi pilihan pada pengukuran biaya dan levelpelayanan, kita dapat mempertimbangkan kriteria seperti berikut: 1. minimumkan TC 2. minimumkan TC dengan kendala PK < Po 3. minimumkan PKdengan kendala TC < Tco 4. minimumkan biaya total sistem (termasuk nilai waktu pemakai, biaya perangkat keras dan telepon). Kriteria terakhir ini adalah yang umum, tapi kita akan menghadapi model yang lebih kompleks. Kompleksitasnya ada karena kita hams mengukur nilai waktu pemakai. Untuk selanjutnya kita akan menggunakan kriteria keputusan no. 2. Nilai Podibuat 0.02 dan level pelayanan paling tidak 0.98.
148
6.3.4.2.ModelAnalitik Sebelum mengembangkan model simulasi, pertama-tama harns selalu dipertimbangkan apakah model analitik dapat digunakan. Pengembangan dan penggunaan model analitik lebih murah dibandingkan model simulasi, dan bahkan jika model analitik sempuma tidak dapat dikembangkan, model analitik pendekatan akan sangat berguna untuk menganalisis sistem. Model analitik untuk kasus komputer time-shared di atas dapat dikembangkan dengan membuat beberapa asumsi terlebih dahulu : 1. 2. 3. 4.
Waktu koneksi berdistribusi secara eksponensial dengan rata-rata konstan. Waktu antara dua panggilan berdistribusi eksponensial dengan rata-rata konstan. Pengaruh jumlah awal pemakai yang terhubung ke sistem pada permulaan hari menghilang dengan cepat Distribusi waktu di antara panggilan tidak berubah (paling tidak secara mendasar) ketika semuaport terpakai.
Misalkan :Pi= peluang secara tepat sejumlah ipemakai terhubung, i = 0, 1,..., K A = lIwaktu rata-rata antara kedatangan J..L=
lIrata-ratawaktuterhubung
Maka, K
L~/J..LJ i=O Po= I..J
-1
(I)
dan
(2)
l~i~K
Dalam model ini, PK adalah probabilitas bahwa semua port digunakan atau probabilitas bahwa pengguna yang akan masuk ke sistem tidak dapat terhubung. Menggabungkan kedua persamaan di atas akan diperoleh:
[AI
J..L
P K-_
f
K!
K
)1
L[A/J..LJ
. I
149
i=O
-
--
---
Ada 108 pilihan altematif berbeda (2 kecepatantransmisi, 3 ukuran memori dan sampai 18 ports). Dari sudut pandang model antrlan, setiap altematif pilihan dapat direpresentasikan dengan waktu koneksi rata-rata (1/~) dan jumlah port K. Menggunakan Persamaan (3), level pelayanan Pc dapat dihitung untuk setiap altematif. Tabel 6.2. menunjukkan waktu terhubung rata-rata untuk himpunan bagian pilihan kecepatan transmisi dan 3 memori.
Tabel 6.2. Waktu terhubung rata-rata memon
Kecepatan transmisi (kpd)
30 120
1M byte
2Mbyte
3M byte
25 22
22 19
20 17
6.3.4.3 Model Simulasi
Diagram (graf) kejadian untuk sistem di atas adalah: t(a) ~(:;\
CD
c(l)
0~
t(s)
Gambar 6.11. Grafkejadian untuk sistem komputer time-shared Variabel status: N(t) = jumlah port sibuk
Kejadian : 1. pemakai berusaha koneksi ke sistem 2. pemakai terhubung dan sesi mulai 3. pemakai menyudahi sesi Kondisi : C(1):n(t)
150
Variabel model: Variabel Eksogenus tidak dapat dikontrol Simbol penjelasan MEAN_CALL_TIME
Ekspektasi waktu antara dua panggilan
VariabelEksogenus-dapat dikontrol (variabelkeputusan) Simbol K MEAN_CONNECT _TIME
penjelasan Jumlahport lamasesipemakai Ekspektasi
- variabelstatus VariabelEndogenus
N T_NEXT_CALL T_CALL_END(i) PORT_STATUS (i)
Jumlahportyangsedangdigunakan Waktupemanggilanberikutnya Waktuakhirkoneksiport ke-i Mengindikasikanapakahport sibukataumenganggur
VariabelEndogenus- ukurankinerja
Simbol
penjelasan
CUM_CONNECT_TIME N_CALLS N CONNECT
Waktu kumulatif pemakai terhubung ke sistem Jumlah total pemakai memanggil sistem Jumlah total panggilan yang terhubung
N_FAIL_CONNECT PROB- CONNECT PROB - FAIL- CONNECT AVE- NUM- USER
lumlah total panggilan yang gagal terhubung N--CONNECTIN CALLS N- FAIL- CONNECTIN- CALLS
_
CUM- CONNECTTIME/T - FINAL
Parameter simulasi
T
Waktu sekarang
SEEDI
Pembangkitan bilangan acak pemanggilan ke sistem Pembangkitan bilangan acak untuk waktu koneksi Lama simulasi
SEED2 T FINAL Function danSubroutines
F- NEXT- CALL F- CONNECT- TIME FREE PORT
NEXT- CALL- END RANDOM
Hitung waktu sampai ada panggilan masuk berikutnya Hitung lamanya sesi pemakai Tempatkanport yang tersedia Tempatkanport yang sesinya selesai terlebih dahulu Kembalikan distribusi uniform bilangan acak[0,I ] 151
--
-
--
--
Logika pemrograman menggunakan metode penjadwalan kejadian waktu berlanjut ditunjukkan Gambar 6.12. 6.4. Pertimbangan Pemrograman dan Struktur Data Usaha perhitungan dalam simulasi pada umumnya melibatkan banyak kejadian, seperti identifikasi kejadian paling dekat berikutnya dan penjadwalan kejadian berikutnya. Program simulasi akan jauh lebih efisien jika kejadian yang dieksekusi diurutkan berdasarkan waktu kejadian berikutnya, daripada disimpan tidak terurut. Daripada mencari sekumpulan kejadian berikutnya secara fisik di dalam komputer, akan lebih baik melakukan pencarian secara logika. Menggunakan metode penstruktur data, efisiensi simulasi komputer dapat ditingkatkan secara signifikan, khususnya saat simulasi mempunyai banyak kejadian terjadwal berikutnya. 6.4.1 Penambahan Waktu dalam Model Simulasi Penambahan waktu dalam model simulasi harus diperhatikan. Dua sisi sering harus dihadapi dalam penambahan waktu model simulasi. Pertama, dalam banyak kasus, waktu (T) ditambah dengan selisih waktu (T+delta) tanpa ada kejadian selama interval waktu (T,T+delta), menyebabkan pencarian kejadian selama interval waktu menjadi sia-sia. Kedua, akan terjadi kehilangan akurasijika kejadian dimungkinkan terjadi hanya pada waktu delta dan kelipatannya. Jika delta dinaikkan, permasahihan yang pertama akan dikurangi tetapi akan menyebabkan penurunan akurasi. Sebaliknya, ukuran delta dikurangi. Keakuratan akan lebih baik, tetapi frekuensi pembaharuan (dan pencarian berurutan kejadian) meningkat, menyebabkan komputasi model tidak efisien. Metode altematif untuk memperbaharui waktu (T) adalah dengan memeriksa semua kejadian di masa mendatang secara berurut dan memperbaharui T dengan waktu kejadian paling dulu terjadi. Dengan melangkah ke kejadian terjadwal terdekat, baik permasalahan pembaharuan yang tidak penting dan akurasi dapat dihilangkan, tapi logikanya akan lebih kompleks pada kebanyakan simulasi kejadian-diskrit. Pelacakan kejadian adalah metode yang paling disukai dalam penambahan waktu dan merupakan metode paling banyak dilakukan dalam bahasa simulasi.
152
_
READ:K,T FINAL;MEAN _CONN ECT _TIME;MEAN _ CALL_TIME; RANDOM_NUMBER_SEEDS
T=O;N=O;N
_ CALLS=O;N
_ CONNE
CT=O;CUM_ CONNECT _TIME=O; T_NEXT_CALL=F _NEXT_CALL; Set all ports idle
PRINT: CUM _CONNECT _TIME/T ; I-(CUM _CONNECT IN_CALLS) Panggilan pemakai Panggilan berakhit palla port (i)
N _ CALLS=N_ CALLS+
CUM _CONNECT_ TIME=CUM _C ONNECT _TIME+(T _CALL_END( i)-T)*N.N=N-I.T=T CALL· END(i); set poin_sTATUs (i) menganggur
I;CUM_
CONNECT_TIME=CUM_CON NECT_ TIME+(T_NEXT _CALL _ T)*N;T=T_NEXTCALL;T_NEXT _CALL=T+F_N EXT_CALL
es
no
N=N + I; cari port yang menganggur (i);T_CALL_END(i)=T+F _CONNE CT_ TIME;CUM_ CONNECT=CUM ._CONNECT+l
Gambar 6.12. Logika pemrogaman time-shared computer
153
6.4.2. Manajemen Kejadian : Daftar Terhubung Kejadian dalarn sistem perIu disimpan sehingga mudah dieari, karena itu manajemen kejadian harus dilakukan dengan baik. Struktur data yang diperIukan untuk tujuan ini dinarnakan daftar terhubung (Linked list). Dalarn model simulasi, kita harus memiliki metode penarnbahan dan penghapusan elemen ke/dari daftar. Jika elemen tersortir pertama dihilangkan, kepala (head) elemen baru akan menjadi elemen yang akan ditunjukkan oleh kepala saat ini. Jika elemen baru ditarnbahkan ke daftar, penunjuk daftar harus diubah untuk memasukkan elemen baru ke dalarn urutan terhubung. Penyisipan elemen baru ke dalam daftarmemerIukan tiga operasi: 1. Tempatkan elemen baru di lokasi yang sesuai. 2. Atur ulang penunjuk elemen sebelumnya sehingga penunjuk sekarang menunjuk elemen baru. 3. atur penunjuk ke elemen baru sehingga penunjuk mengarah ke elemen yang pendahulunya tadi ditunjuk. Logika simulasi perIu diubah untuk memungkinkan metode baru dalam penempatan kejadian yang paling dekat (pemilihan elemen pada kepala daftar) dan menyisipkan kejadian mendatang ke dalam daftar terhubung. 6.5. ImplementasiAntrian
dalam Model Simulasi
Jika kita mensimulasikan sistem dimana kedatangan dapat mengantri, menunggu ketersediaan fasilitas, mungkin akan diinginkan mengumpulkan informasi tentang pengalarnan kedatangan, seperti rata-rata, ragam dan kisaran waktu kedatangan. Ada beberapa metode untuk menangani informasi kedatangan: 1. array tidak tersortir yang memuat prioritas pada setiap kedatangan. 2. daftar terhubung dengan kedatangan tersortir sesuai dengan prioritas. 3. array kedatangan tersortir sesuai dengan prioritas. Metode pertarna mudah diimplementasikan tapi tidak efisien jika arraynya panjang, karena penearian harus dilakukan terhadap semua array dengan tujuan untuk meneari kedatangan berikutnya yang akan dilayani. Pendekatan yang kedua sarna, menyimpan daftar untuk kejadian mendatang dan disortir sesuai dengan daftar terhubung, tetapi informasi kedatangan dihubungkan sesuai dengan prioritas setiap kedatangan. Kebanyakan simulasi menggunakan metode ini untuk antrian. '
154
6.5.1. Manajemen Memori dalam model Simulasi Dalam kebanyakan model simulasi adalah sulit memprediksi jumlah maksimum kejadian yang akan datang yang akan dijadwalkan, panjang maksimum setiap antrian atau jumlah maksimum entitas (seperti pelanggan) yang akan hadir. Salah satu solusi untuk permasalahan ini adalah mengalokasikan memori besar untuk daftar, antrian dan entitas dengan kemungkinan kecil memori kurang dari yang dibutuhkan dalam penjalanan simulasi. Tetapi tentu saja hal ini tidak diinginkan. Altematif lain adalah mengalokasikan memori sesuai dengan kebutuhan sewaktu simulasi dijalankan. Ketika satu elemen ditambahkan ke daftar, memori untuk itu dialokasikan dari memori penyimpanan umum yang tidak digunakan. Dengan cara sarna, ketika memori tidak dibutuhkan lagi, akan dikembalikan ke memori penyimpanan umum untuk tujuan penggunaan di masa mendatang. Dengan cara seperti ini, memori tidak dikhususkan untuk penggunaan tertentu, tetapi dapat dialokasikan sesuai dengan kebutuhan. Struktur data yang memungkinkan pengalokasian dan penarikan kembali adalah stack. Stack adalah lokasi memori terhubung bersama dimana urutan yang terakhir masuk akan menjadi yang pertama keluar. Awalnya, stack memuat sejumlah L elemen dimana elemen 2 menunjuk ke elemen 1,elemen 3 menunjuk ke elemen 2, dan seterusnya. Variabel yang disebut penunjuk stack diatur ke elemen terakhir dalam daftar. Awalnya, penunjuk stack diatur ke L, atau menunjuk ke elemen terakhir dalam daftar yang pada gilirannya akan menunjuk ke elemen L-l, dan seterusnya. Menghilangkan elemen dari stack biasanya disebut dengan popping stack dan penambahan elemen ke stack umumnya disebut dengan pushing stack. Ketika sebuah elemen dibutuhkan untuk penjadwalan kejadian masa mendatang, elemen L dipilih dan penunjuk stack diatur ke nilai elemen itu. Untuk mengembalikan elemen ke stack setelah kejadian dijalankan, kita hanya membutuhkan himpunan nilai elemen dikembalikan ke nilai penunjuk stack dan kemudian diatur penunjuk stack ke indeks elemen yang sedang dikembalikan.
155
--
Daftar Pustaka
1. 2. 3. 4.
Hoover, Stewart V. Dan Perry, Ronald F. Simulation: A Problem Solving Approach. Addison-WesleyPublishing-Company, Massachusetts. 1989. Banks, Jerry, Carson II, J. Dan Nelson, B.L. Discrete-Event System Simulation. Prentice-Hall International, Inc., London. 1984. Law, Averill M. Dan Kelton, David W. Simulation Modeling and Analysis. McGraw-Hill Inc., Singapore. 1991. Pegden, C. Dennis, Shannon, Robert E. Dan Sadowski, Randall P. Introduction to Simulation Using SIMAN. McGraw-Hill, Inc., Singapore. 1995.
156