TUGAS AKHIR
SIMULASI SISTEM ANTRIAN PADA STATISTICAL TIME DIVISION MULTIPLEXING DENGAN BAHASA PEMROGRAMAN VISUAL C++ 6.0 Diajukan untuk memenuhi salah satu persyaratan dalam menyelesaikan pendidikan sarjana (S-1) pada Departemen Teknik Elektro
Oleh
IPENGADOHAR EZRA PANGARIBUAN 020402048
DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS SUMATERA UTARA MEDAN 2007
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
SIMULASI SISTEM ANTRIAN PADA STATISTICAL TIME DIVISION MULTIPLEXING DENGAN BAHASA PEMROGRAMAN VISUAL C++ 6.0 Oleh : IPENGADOHAR EZRA PANGARIBUAN 020402048 Tugas Akhir ini diajukan untuk melengkapi salah satu syarat untuk memperoleh gelar sarjana Teknik Elektro
Disetujui Oleh : Pembimbing,
MAKSUM PINEM, ST, MT NIP. 132282135
Disetujui Oleh : Ketua Departemen Teknik Elektro FT USU,
Prof. Dr. Ir. USMAN BAAFAI NIP. 130365322
DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS SUMATERA UTARA MEDAN 2007
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
ABSTRAK Teknologi komunikasi merupakan teknologi yang paling pesat perkembangannya pada beberapa tahun terakhir ini. Seiring dengan itu, teknologi multiplexing memiliki peranan yang sangat penting dalam meningkatkan efisiensi penggunaan perangkat komunikasi. Dari beberapa teknik multiplexing, statistical TDM memiliki suatu kelebihan yaitu kemampuannya mengalokasikan time slot secara dinamis sesuai dengan kebutuhan. Sebab pada kenyataannya tidak semua perangkat yang terpasang melakukan transmisi sepanjang waktu, sehingga dengan mengalokasikan time slot secara dinamis, maka tidak akan terjadi pemborosan bandwith. Adapun permasalahan yang dihadapi adalah ketika trafik mencapai kondisi saat laju data input melebihi kapasitas saluran. Salah satu metoda yang dipakai adalah dengan memandang multiplexer sebagai sebuah sistem antrian dengan server tunggal dengan pola kedatangan acak dan pola pelayanan deterministik. Pada Tugas Akhir ini dirancang sebuah perangkat lunak untuk mensimulasikan proses antrian yang terjadi pada statistical TDM. Dari hasil simulasi ini diperoleh kinerja dari sistem seperti delay rata-rata, panjang antrian rata-rata, dan utilisasi sistem.
i Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas segala rahmat dan karunianya sehingga penulis akhirnya dapat menyelesaikan Tugas Akhir ini
dengan judul ”Simulasi Sistem Antrian Pada Statistical Time Division
Multiplexing (TDM) Dengan Bahasa Pemrograman Visual C++ 6.0”. Adapun Tugas Akhir ini dibuat untuk memenuhi syarat kesarjanaan di Departemen Teknik Elektro Fakultas Teknik Universitas Sumatera Utara. Dalam proses pembuatan Tugas Akhir ini penulis banyak menemukan hambatan dan kesulitan. Namun berkat bantuan dan bantuan dari berbagai pihak, penulis akhirnya dapat menyelesaikan Tugas Akhir ini. Untuk itu penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada : 1. Ayah dan Ibu tercinta yang telah banyak memberikan dukungan moril, materil dan doa serta limpahan kasih sayang yang tiada terkira dan tiada mungkin terbalaskan. 2. Bapak Maksum Pinem, ST, MT, selaku dosen Pembimbing Tugas Akhir, atas segala bimbingan, solusi dan motivasi yang telah diberikan dalam menyelesaikan Tugas Akhir ini. 3. Bapak Prof. Dr. Ir. Usman Baafai selaku Ketua Departemen Teknik Elektro Fakultas Teknik Universitas Sumatera Utara. 4. Bapak Ir. Sihar P. Panjaitan, MT, selaku Penasehat Akademik penulis yang telah
memberikan
arahan
dan
bimbingannya
dalam
menyelesaikan
perkuliahan selama ini.
ii Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
5. Seluruh Dosen dan Civitas Akademika Departemen Teknik Elektro Fakultas Teknik Universitas Sumatera Utara. 6. Abang dan adikku, Herbert Pangaribuan, SE dan Exaudi Pangaribuan, yang telah memberikan dukungan dan semangat bagi penulis selama ini. 7. Abang Rudianto, ST yang telah banyak membantu dan memberi masukan yang sangat berarti bagi penulis. 8. Rekan-rekan mahasiswa Teknik Elektro, khususnya teman-teman stambuk 2002, Pak Bos Badu, Esron, Bugi, Denny Dewa, Adhi, Rahmat Ketua, Rahmat Regar, Medison, Agus, Farid, Dodi, Yos, Junaris, Bismar, Hendra, Hamdani Handre, Ardiansyah, Iqbal, Abu, Daniel, Syafril, Sylvia, Berry, Frans, Aritta Andra, Yandi Boy, dan teman-teman 2002 lainnya. 9. Seluruh pihak yang telah banyak membantu penulis yang tidak dapat disebutkan satu persatu.
Berbagai usaha telah penulis lakukan agar Tugas Akhir ini dapat diselesaikan dengan baik, namun penulis menyadari bahwa Tugas Akhir ini masih jauh dari sempurna karena masih banyak terdapat kekurangan baik dari segi isi maupun susunannya. Oleh karena itu penulis mengharapkan saran dan kritik yang sifatnya membangun dari semua pihak demi kesempurnaan Tugas Akhir ini.
iii Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Akhir kata penulis berserah diri kepada Tuhan Yang Maha Esa, semoga Tugas Akhir ini bermanfaat bagi pembaca sekalian terutama bagi penulis sendiri.
Medan,
Desember 2007 Penulis,
Ipengadohar Ezra Pangaribuan NIM : 020402048
iv Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
DAFTAR ISI
ABSTRAK............................................................................................................... i KATA PENGANTAR............................................................................................. ii DAFTAR ISI........................................................................................................... v DAFTAR GAMBAR............................................................................................. . viii DAFTAR TABEL................................................................................................... x BAB I
PENDAHULUAN................................................................................. 1 1.1 Latar Belakang................................................................................. 1 1.2 Rumusan Masalah............................................................................ 2 1.3 Tujuan Penulisan.............................................................................. 2 1.4 Pembatasan Masalah........................................................................ 3 1.5 Metodologi Penulisan....................................................................... 3 1.6 Sistematika Penulisan....................................................................... 4
BAB II
MULTIPLEXING................................................................................. 6 2.1 Umum............................................................................................... 6 2.2 Frequency Division Multiplexing (FDM)......................................... 7 2.3 Synchronous Time Division Multiplexing (TDM)............................ 10 2.3.1 Framing................................................................................ 12 2.3.2 Pulse Stuffing........................................................................ 13 2.4 Statistical Time Division Multiplexing (TDM)………...…..…….... 13 2.4.1 Kinerja Statistical TDM........................................................ 17
v Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
BAB III
PERANCANGAN SIMULASI DENGAN VISUAL C++ 6.0............ 22 3.1 Umum .............................................................................................. 22 3.2 Komponen Visual C++ 6.0............................................................... 22 3.3 Lingkungan Program Visual C++ 6.0.............................................. 24 3.3.1 Jendela Project Wokspace.................................................... 25 3.3.2 Jendela Editor....................................................................... 26 3.3.3 Jendela Output…………………………………………….. 27 3.3.4 Toolbox……………………………………………………. 28 3.3.5 Toolbar…………………………………………………….. 28 3.3.6 Menu Bar.............................................................................. 29 3.4 Perancangan Simulasi...................................................................... 29 3.4.1 Model Sistem........................................................................ 29 3.4.2 Pembangkitan Bilangan Acak............................................... 30 3.4.3 Disiplin Antrian..................................................................... 31 3.4.4 Pola Kedatangan................................................................... 32 3.4.5 Pola Pelayanan...................................................................... 37 3.4.6 Algoritma dan Diagram Alir Simulasi.................................. 38 3.4.7 Prototype Simulasi................................................................ 41 3.4.7.1
Prototype Antarmuka Program.............................. 41
3.4.7.2
Prototype Source Code Program............................ 42
vi Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
BAB IV
SIMULASI PERANGKAT LUNAK.................................................. 44 4.1 Umum.............................................................................................. 44 4.2 Pemodelan Sistem........................................................................... 44 4.3 Asumsi-Asumsi Pembangun Sistem................................................ 45 4.4 Mode Analisis.................................................................................. 45 4.5 Batasan-Batasan Model Sistem....................................................... 46 4.6 Performansi Sistem.......................................................................... 47 4.7 Hasil Akhir....................................................................................... 48 4.8 Tabel Hasil Akhir............................................................................. 49 4.8.1 Tabel Hasil Akhir Kondisi I.................................................. 49 4.8.2 Tabel Hasil Akhir Kondisi II................................................ 50 4.8.3 Tabel Hasil Akhir Kondisi III............................................... 50 4.9 Grafik Hasil Simulasi....................................................................... 56 4.9.1 Grafik Kondisi I.................................................................... 56 4.9.2 Grafik Kondisi II................................................................... 57 4.9.3 Grafik Kondisi III................................................................. 59
BAB V
PENUTUP.............................................................................................. 61 5.1 Kesimpulan....................................................................................... 61 5.2 Saran................................................................................................. 61
DAFTAR PUSTAKA LAMPIRAN
vii Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
DAFTAR GAMBAR
Gambar 2.1
Konsep Dasar Multiplexing.............................................................. 6
Gambar 2.2
Konsep Dasar FDM.......................................................................... 7
Gambar 2.3
Skema Kinerja FDM......................................................................... 9
Gambar 2.4
Skema Kinerja Synchronous TDM................................................... 11
Gambar 2.5
Perbandingan Kinerja Synchronous TDM dan Statistical TDM...... 15
Gambar 2.6
Format Frame Statistical TDM......................................................... 17
Gambar 3.1
Lingkungan Program Visual C++ 6.0............................................... 24
Gambar 3.2
Jendela Project Workspace………………………………………... 25
Gambar 3.3
Jendela Editor……………………………………………………... 27
Gambar 3.4
Jendela Output…………………………………………………….. 27
Gambar 3.5
Toolbox……………………………………………………………. 28
Gambar 3.6
Toolbar............................................................................................. 28
Gambar 3.7
Menu Bar.......................................................................................... 29
Gambar 3.8
Model Sistem Antrian………………………………………........... 30
Gambar 3.9
Proses Kedatangan pada Proses Poisson.......................................... 35
Gambar 3.10 Diagram Alir Simulasi…………………………………………….. 40 Gambar 4.1
Model Sistem Statistical TDM......................................................... 44
Gambar 4.2
Model Sistem yang Disimulasikan................................................... 45
Gambar 4.3
Tampilan Parameter-Parameter dalam Simulasi.............................. 47
Gambar 4.4
Tampilan Performansi Sistem…………………....………………... 48
Gambar 4.5
Tampilan Hasil Akhir……………………………………………... 48
viii Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Gambar 4.6
Tampilan Tabel Hasil Akhir Kondisi I............................................ 49
Gambar 4.7
Tampilan Tabel Hasil Akhir Kondisi II........................................... 50
Gambar 4.8
Tampilan Tabel Hasil Akhir Kondisi III.......................................... 49
Gambar 4.9
Grafik Kondisi I................................................................................ 57
Gambar 4.10 Grafik Kondisi II............................................................................... 58 Gambar 4.11 Grafik Kondisi III…………………………………………………. 60
ix Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
DAFTAR TABEL
Tabel 3.1
Bilangan Acak Metode LCG............................................................... 31
Tabel 3.2
Urutan Waktu Kedatangan dengan λ = 5 kedatangan/s....................... 36
Tabel 3.3
Urutan Waktu Kedatangan dengan λ = 10 kedatangan/s..................... 36
Tabel 3.4
Waktu Interval Antar Kedatangan dengan λ = 5 kedatangan/s............ 37
Tabel 3.5
Waktu Interval Antar Kedatangan dengan λ = 10 kedatangan/s.......... 37
Tabel 4.1
Variansi pada Panjang Antrian Rata-Rata untuk ρ = 0,1..................... 51
Tabel 4.2
Variansi pada Panjang Antrian Rata-Rata untuk ρ = 0,2..................... 53
Tabel 4.3
Variansi pada Delay Antrian Rata-Rata untuk ρ = 0,3........................ 54
x Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
BAB I PENDAHULUAN
1.1 Latar Belakang Perkembangan teknologi komunikasi yang sangat pesat belakangan ini semakin menuntut adanya peningkatan efisiensi penggunaan perangkat komunikasi. Dalam hal ini teknologi multiplexing memiliki peranan yang sangat penting. Multiplexing memungkinkan beberapa sumber transmisi berbagi satu saluran transmisi
yang
sama
sehingga
penggunaan
perangkat
komunikasi
dapat
dimaksimalkan. Salah satu kelebihan dari statistical TDM dibanding synhronous TDM adalah kemampuannya mengalokasikan time slot secara dinamis sesuai dengan kebutuhan. Seperti diketahui pada synchronous TDM, sejumlah time slot telah diperuntukkan bagi masing-masing sumber selama melakukan transmisi. Jika salah satu sumber tidak menggunakan time slot yang dimilikinya, maka time slot tersebut tidak dapat juga digunakan oleh sumber lain, sehingga akan terjadi pemborosan bandwith. Sementara pada kenyataannya tidak semua perangkat yang terpasang melakukan transmisi sepanjang waktu, sehingga dengan mengalokasikan time slot secara dinamis, maka statistical TDM dapat mendukung perangkat yang lebih banyak dibandingkan dengan synchronous TDM dengan kapasitas saluran yang sama. Adapun permasalahan yang dihadapi adalah jika trafik mencapai kondisi puncak pada saat laju data input melebihi kapasitas saluran. Untuk itu perlu diperhatikan hubungan antara ukuran penyangga yang digunakan dengan kapasitas
1 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
saluran. Salah satu metoda yang dipakai untuk menganalisa hal tersebut adalah dengan memandang multiplexer sebagai sebuah sistem antrian dengan server tunggal dengan pola kedatangan acak dan pola pelayanan deterministik. Dalam perkembangannya kinerja dari sistem antrian tersebut dapat diperoleh dari hasil simulasi dengan sebuah perangkat lunak. Oleh karena itu, pada Tugas Akhir ini akan dirancang sebuah perangkat lunak untuk mensimulasikan proses antrian yang terjadi pada statistical TDM. Pada simulasi ini akan dianalisa kinerja sistem seperti delay rata-rata, panjang antrian rata-rata, dan utility sistem.
1.2 Rumusan Masalah Dari latar belakang di atas dapat dirumuskan beberapa permasalahan, antara lain : 1. Apa pengertian multiplexing secara umum? 2. Bagaimana konsep statistical TDM? 3. Apa kelebihan statistical TDM dibandingkan dengan synchronous TDM? 4. Bagaimana proses antrian yang terjadi pada statistical TDM? 5. Mensimulasikan proses antrian pada statistical TDM dengan menggunakan Visual C++ 6.0.
1.3 Tujuan Penulisan Tujuan penulisan Tugas Akhir ini adalah : 1. Mensimulasikan proses antrian pada statistical TDM dengan menggunakan bahasa pemrograman Visual C++ 6.0.
2 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
2. Mendapatkan kinerja dari sistem antrian tersebut, seperti delay (penundaan) ratarata antrian, panjang antrian rata-rata, dan utility sistem.
1.4 Batasan Masalah Untuk mendapatkan hasil yang maksimal dan menghindari pembahasan yang meluas, maka penulis perlu membatasi masalah yang akan dibahas. Adapun batasan masalah dalam Tugas Akhir ini adalah : 1. Menjelaskan konsep dasar multiplexing secara umum. 2. Simulasi yang dilakukan dibatasi hanya pada proses antrian yang terjadi saja. 3. Simulasi tidak membahas proses yang terjadi sebelum proses antrian dan sesudahnya. 4. Pada perancangan perangkat lunak ini, pola kedatangan diasumsikan adalah acak dengan distribusi Poisson. 5. Pada perancangan perangkat lunak ini, pola pelayanan adalah deterministik. 6. Pada perancangan perangkat lunak ini, disiplin antrian yang digunakan adalah FIFO (First In First Out).
1.5 Metodologi Penulisan Metode penulisan yang digunakan dalam pengerjaan Tugas Akhir ini adalah sebagai berikut : 1. Studi Literatur : Berupa tinjauan pustaka dari buku-buku, jurnal ilmiah yang berkaitan dengan statistical TDM disertai dengan konsultasi dan bimbingan
3 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
dengan dosen pembimbing, dosen-dosen lain dan rekan-rekan mahasiswa mengenai masalah yang timbul dalam penulisan. 2. Simulasi : Berupa perancangan simulasi dengan menggunakan Visual C++ 6.0 yang meliputi : a. Menentukan model sistem yang disimulasikan. b. Menentukan parameter-parameter yang digunakan dalam simulasi. c. Membangun simulasi sesuai dengan model dan parameter yang telah ditetapkan. d. Mengambil kesimpulan dari hasil simulasi.
1.6 Sistematika Penulisan Tugas Akhir ini disusun berdasarkan sistematika penulisan sebagai berikut: BAB I
: PENDAHULUAN Pada bab ini dijelaskan latar belakang masalah, tujuan penulisan, rumusan masalah, batasan masalah, metode penulisan dan sistematika penulisan sebagai gambaran umum dari pembahasan keseluruhan.
BAB II
: MULTIPLEXING Pada bab ini dijelaskan tentang teori-teori yang mendukung dan melandasi penulisan Tugas Akhir ini yang memberikan gambaran tentang multiplexing secara umum.
4 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
BAB III
: PERANCANGAN SIMULASI DENGAN VISUAL C++ 6.0 Pada bab ini dijelaskan tentang alasan penggunaan Visual C++ 6.0 sebagai salah satu bahasa pemrograman pembuat perangkat lunak beserta
komponen-komponennya
serta
penjelasan
perancangan
perangkat lunak beserta prinsip kerjanya. BAB IV
: SIMULASI PERANGKAT LUNAK Pada bab ini berisi tentang proses dan hasil simulasi perangkat lunak yang telah dirancang secara utuh.
BAB V
: PENUTUP Bab ini berisikan kesimpulan dari simulasi yang telah dilakukan serta rekomendasi atau saran untuk perbaikan dan pengembangan lebih lanjut.
5 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
BAB II MULTIPLEXING
2.1 Umum Komunikasi jarak jauh merupakan suatu jaringan yang mahal. Seringkali terminal-terminal dipergunakan secara maksimum untuk berkomunikasi, sehingga diperlukan suatu cara untuk mengefektifkan pengguanaan jaringan. Salah satu cara untuk mengatasi permasalahan ini adalah dengan multiplexing. Multiplexing adalah proses untuk mengkombinasikan aliran-aliran data dari sejumlah kanal untuk ditransmisikan pada satu jalur transmisi yang sama[3]. Konsep dasar multiplexing diilustrasikan pada Gambar 2.1[7]. Terdapat sejumlah n buah kanal data yang berbeda dihubungkan ke sebuah multiplexer. Multiplexer akan mengkombinasikan data dari n kanal dan mengirimkannya melalui satu saluran transmisi yang sama. Pada sisi penerima, demultiplexer akan memisahkan data yang diterima sesuai dengan kanal pengirimnya dan mengirimkannya ke kanal yang sesuai.
Gambar 2.1 Konsep Dasar Multiplexing
6 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Pada bab ini hanya akan dibahas tiga teknik multiplexing, yaitu frequency division multiplexing (FDM) dan time division multiplexing (TDM), yang terbagi menjadi synchronous TDM dan statistical TDM.
2.2 Frequency Division Multiplexing Pada sistem FDM sejumlah sinyal secara simultan dibawa menuju media yang sama dengan cara mengalokasikan band frekwensi yang berbeda ke masingmasing sinyal[7]. FDM dimungkinkan bila bandwith dari media transmisi yang digunakan lebih besar dari bandwith kombinasi sinyal-sinyal yang ditransmisikan. Kasus umum dari FDM ditunjukkan pada Gambar 2.2 dimana enam sumber sinyal dimasukkan ke dalam multiplexer yang memodulasi setiap sinyal ke dalam frekwensi yang berbeda (f1, f2, f3, f4, f5, f6)[7].
Gambar 2.2 Konsep Dasar FDM
7 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Masing-masing sinyal yang dimodulasi memerlukan lebar pita tertentu yang dipusatkan di sekitar frekwensi pembawa, yang disebut channel. Untuk mencegah munculnya interferensi, channel dipisahkan oleh band pelindung (guard band), yang merupakan bagian dari spektrum yang tidak digunakan. Gambaran umum dari kinerja sistem FDM ditunjukkan pada Gambar 2.3[7]. Sejumlah sinyal dimultiplex ke satu media transmisi yang sama. Masing-masing sinyal mn(t) dimodulasi ke frekwensi subpembawa fn. Sinyal-sinyal analog termodulasi yang dihasilkan kemudian ditambahkan sehingga menghasilkan sinyal baseband campuran mb(t). Istilah baseband dipergunakan untuk menunjukkan band frekwensi dari sinyal yang dikirim oleh sumber dan potensial untuk dipergunakan sebagai sinyal pemodulasi[7]. Gambar 2.3.b menunjukkan hasilnya. Biasanya spektrum sinyal baseband berada pada band yang terjangkau. Spektrum sinyal mn(t) kemudian digeser ke tengah dari frekwensi fn. Agar proses ini bekerja, harga fi harus dipilih sehingga lebar pita dari sinyal-sinyal yang lain tidak saling tumpang tindih secara signifikan. n
Sinyal FDM s(t) memiliki total bandwith B, dimana B > ∑ B i [7]. Pada ujung i =1
penerima, sinyal FDM kemudian didemodulasi sehingga memperoleh kembali mb(t), yang kemudian disalurkan melalui bandpass filter n, dimana masing-masing filter dipusatkan di fn dan memiliki bandwith Bi, dimana 1 ≤ i ≤ n . Dengan cara ini, maka sinyal dapat dipisahkan kembali menjadi komponen-komponen. Setiap komponen ini kemudian didemodulasi lagi untuk memperoleh sinyal yang asli sesuai dengan kanal pengirimnya.
8 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
∑
...
...
Gambar 2.3 Skema Kinerja FDM
9 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
2.3 Synchronous Time Division Multiplexing Sistem synchronous TDM adalah teknik digital yang melakukan proses interleaving data yang datang dari sejumlah terminal dan mengrimkan sekelompok aliran data secara serial melalui jalur berkecepatan tinggi[7]. Interleaving dapat dilakukan pada level bit atau pada level karakter. Gambaran umum mengenai sistem synchronous TDM disajikan pada Gambar 2.4[7]. Sejumlah sinyal dimultiplex pada media transmisi yang sama. Data yang dibangkitkan dari setiap terminal sumber segera disangga. Setiap penyangga biasanya memiliki panjang satu bit atau satu karakter. Penyangga kemudian secara berturut-turut di-scan sehingga membentuk deretan data digital campuran mc(t). Operasi scan ini berlangsung begitu cepat sehingga setiap penyangga sudah dikosongkan sebelum lebih banyak data yang tiba. Sinyal digital mc(t) yang telah terbentuk kemudian dapat langsung ditransmisikan. Data yang ditransmisikan dapat memiliki format seperti yang ditunjukkan pada Gambar 2.4.b. Data tersebut disusun ke dalam sebuah bingkai. Masing-masing bingkai berisikan siklus dari time slot. Pada setiap bingkai, satu slot atau lebih ditujukan untuk masing-masing terminal sumber. Rangkaian time slot yang ditujukan untuk satu sumber dari bingkai ke bingkai disebut dengan channel. Panjang time slot setara dengan panjang dari penyangga, umumnya satu bit atau satu karakter.
10 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Gambar 2.4 Skema Kinerja Synchronous TDM
Pada receiver, data yang diterima di-demultiplex dan diarahkan ke penyangga tujuan yang sesuai. Untuk setiap terminal sumber mn(t), terdapat terminal tujuan yang sama yang akan menerima data pada laju yang sama seperti saat dibangkitkan.
11 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Synchronous TDM disebut synchronous karena time slot sudah ditetapkan terlebih dahulu untuk sumber. Time slot untuk setiap sumber tetap dtransmisikan, baik sumber tersebut memiliki data untuk ditransmisikan atau tidak. Sebagai konsekwensinya, kapasitas saluran kerap terbuang agar implementasinya tidak terlalu rumit.
2.3.1 Framing Adalah sangat penting untuk mempertahankan sinkronisasi bingkai, sebab bila clock dari sumber dan tujuan tidak sama maka data pada semua channel bisa hilang. Terdapat aturan beberapa aturan dasar dalam hal framing. Karena tidak disediakannya flag atau kararakter SYNC untuk menyusun suatu bingkai, maka diperlukan suatu cara untuk memastikan sinkronisasi bingkai. Adapun mekanisme yang paling umum dalam hal framing adalah yang disebut dengan added-digit framing. Pada skema ini biasanya satu bit kontrol ditambahkan ke setiap bingkai. Sebuah pola bit yang telah diidentifikasi dari bingkai ke bingkai digunakan pada “channel kontrol” ini[7]. Untuk melakukan sinkronisasi, receiver membandingkan pola bit yang diterima dari satu posisi bingkai dengan pola yang diinginkan. Bila polanya tidak sesuai, maka posisi bit yang berurutan tersebut dicari sampai polanya sama sepanjang bingkai. Sekali sinkronisasi bingkai ditetapkan, maka receiver akan terus memonitor channel framing bit. Bila polanya terganggu, maka receiver harus masuk lagi ke mode pencarian bingkai.
12 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
2.3.2 Pulse Stuffing Masalah tersulit adalah dalam merancang synchronous TDM adalah saat mensinkronkan berbagai sumber data. Dengan adanya perbedaan clock di antara masing-masing sumber akan dapat menyebabkan hilangnya sinkronisasi. Di samping itu, pada beberapa kasus tertentu, laju dari deretan data input tidak dihubungkan dengan angka rasional sederhana. Pemecahan untuk kedua masalah tersebut adalah dengan menggunakan metoda yang disebut dengan pulse stuffing. Dengan pulse stuffing, laju data yang keluar dari multiplexer menjadi lebih tinggi dibanding jumlah maksimum laju instan yang datang. Kapasitas tambahan dipergunakan dengan cara mengisikan bit tambahan palsu atau pulsa-pulsa ke dalam sinyal yang datang untuk mensinkronkan clock dari multiplexer pengirim dengan demultiplexer tujuan. Pulsa-pulsa yang diisikan tersebut diselipkan ke lokasi tertentu dalam format bingkai multiplexer sehingga bisa dikenali dan dibuang oleh demultiplexer[7].
2.4 Statistical Time Division Multiplexing Pada synchronous TDM, sering sekali time slot dalam sebuah bingkai terbuang. Salah satu aplikasi khusus pada synchronous TDM melibatkan penyaluran sejumlah terminal menuju port komputer yang sudah terbagi-bagi. Sehingga meskipun semua terminal sedang aktif digunakan, sesungguhnya sering kali tidak ada transfer data yang terjadi pada salah satu terminal. Salah satu cara untuk mengatasi masalah ini adalah dengan menggunakan statistical TDM. Statistical multiplexer bekerja dengan cara mengalokasikan time
13 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
slot secara dinamis sesuai dengan permintaan[7]. Sebagaimana halnya dengan synchronous TDM, statistical multiplexer memiliki sejumlah I/O pada salah satu sisi serta saluran multiplexing pada sisi yang lain. Masing-masing saluran I/O memiliki sebuah penyangga. Bagi input, fungsi multiplexer adalah untuk men-scan penyangga input, mengumpulkan data sampai bingkai menjadi penuh, dan kemudian mengirimkan bingkai tersebut. Bagi output, fungsi multiplexer adalah menerima bingkai dan mendistribusikan slot data ke penyangga output yang tepat. Karena kelebihan yang dimiliki statistical TDM yaitu perangkat yang terpasang tidak semuanya melakukan transmisi sepanjang waktu, maka laju data pada saluran multiplex menjadi lebih kecil dibandingkan dengan jumlah laju data dari perangkat yang terpasang. Sehingga, multiplexer statistical dapat menggunakan laju data yang lebih rendah untuk mendukung perangkat dalam jumlah yang sama dengan multiplexer synchronous. Gambar 2.5 menunjukkan contoh kinerja synchronous TDM dan statistical TDM[7]. Gambar tersebut memperlihatkan empat sumber data serta menunjukkan data yang dihasilkan dalam empat interval waktu (t0, t1, t2, t3).
14 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Gambar 2.5 Perbandingan Kinerja Synchronous TDM dan Statistcal TDM
Pada synchronous TDM, multiplexer memiliki laju data output efektif sebesar empat kali laju data dari masing-masing input. Pada setiap interval waktu, semua data dikumpulkan dari semua sumber dan kemudian mengirimkannya. Misalkan pada interval waktu pertama sumber C dan D tidak memiliki data untuk dikirimkan, maka dua dari empat time slot yang dikirimkan oleh multiplexer adalah time slot kosong.
15 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Sebaliknya, statistical multiplexer tidak akan mengirimkan time slot yang kosong bila ada data yang dikirim. Dimana pada peluang waktu pertama, hanya slot A dan B saja yang dikirim. Akan tetapi, posisi penting dari slot menjadi hilang dalam skema seperti ini. Tidak diketahui sebelumnya data dari sumber mana yang ada pada suatu slot tertentu. Karena suatu data yang diterima tidak dapat diperkirakan berasal dari sumber yang mana serta didistribusikan ke saluran I/O yang mana, maka diperlukan informasi pengalamatan untuk memastikan bahwa pengiriman yang dilakukan tepat. Sehingga ada lebih banyak bit overhead pada TDM statistik karena setiap slot itu selain membawa data juga membawa informasi pengalamatan. Struktur bingkai yang digunakan oleh TDM statistik akan sangat mempengaruhi kinerjanya. Tujuannya adalah untuk meminimumkan jumlah bit overhead untuk meningkatkan proses transmisi. Gambar 2.6 menunjukkan dua struktur yang mungkin[7]. Pada Gambar 2.6.b hanya satu sumber data dimasukkan per bingkainya. Sumber tersebut diidentifikasi melalui alamatnya. Panjang bidang data ini bervariasi, dimana ujungnya ditandai dengan akhir dari sebuah bingkai. Skema ini dapat bekerja dengan baik pada beban yang ringan, tetapi kurang efisien dengan beban yang berat.
16 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Flag
Alamat
Kontrol
Subbingkai Statistical TDM
FCS
Flag
(a) Keseluruhan bingkai
Alamat
Data
(b) Subbingkai dengan satu sumber per bingkai
Alamat
Panjang
Data
.
.
.
Alamat
Panjang
Data
(c) Subbingkai dengan banyak sumber per bingkai
Gambar 2.6 Format Bingkai Statistical TDM
Salah satu cara untuk meningkatkan efisiensi adalah dengan memungkinkan beberapa sumber data dipaketkan ke dalam sebuah bingkai. Untuk itu perlu ditentukan panjang data dari setiap sumber. Dengan demikian, subbingkai TDM statistik terdiri dari beberapa rangkaian data, yang masing-masing diberi label alamat dan panjangnya[7]. Usaha-usaha untuk meningkatkan efisiensi pengiriman ini masih perlu ditingkatkan.
2.4.1 Kinerja Statistical TDM Seperti diketahui laju data output dari statistical multiplexer lebih kecil dari jumlah keseluruhan laju data input. Hal ini dimungkinkan karena telah diperhitungkan bahwa jumlah rata-rata input lebih kecil dari kapasitas saluran multiplexing. Adapun masalah yang ditemui dengan pendekatan ini adalah sementara rata-rata input lebih kecil dari kapasitas saluran mutiplexing, akan muncul periode dimana rata-rata input tersebut melebihi kapasitas.
17 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Pemecahan untuk masalah ini adalah dengan memasukkan sebuah penyangga ke dalam multiplexer untuk menahan kelebihan input sementara. Terdapat kaitan yang sangat erat antara ukuran dari penyangga yang digunakan dengan laju data dari saluran, pengurangan dalam satu hal dapat menyebabkan peningkatan dalam hal yang lain. Pada bagian ini akan dijelaskan beberapa ukuran perkiraan dalam menganalisa suatu statistical TDM. Berikut ini adalah parameter-parameter yang digunakan[7] : I = Jumlah sumber input R = Laju data setiap sumber (bps) M = Kapasitas efektif dari saluran yang dimultiplex (bps) α = Pecahan rata-rata dari waktu, saat setiap sumber melakukakan transmisi K = Rasio kapasitas saluran yang dimultiplex terhadap total input maksimum Sebelumnya besar kapasitas kanal telah ditentukan terlebih dahulu dengan mempertimbangkan bit-bit overhead yang dimiliki multiplexer, sehingga laju maksimum transmisi dapat diketahui. Parameter K adalah ukuran pemadatan yang dapat dicapai oleh multiplexer. Misalkan, untuk suatu kapasitas kanal tertentu, bila K = 0,25, multiplexer dapat menangani perangkat empat kali lebih banyak dari synchronous TDM pada kapasitas saluran yang sama. Nilai dapat dibatasi menjadi : α
(2.1)
Nilai K = 1 berkaitan dengan synchronous TDM, dimana sistem memiliki kapasitas untuk melayani semua input pada saat yang bersamaan. Sedangkan bila α > K, berarti input akan melebihi kapasitas multiplexer[7].
18 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Multiplexer dapat juga dipandang sebagai sebuah antrian dengan server tunggal. Kondisi antri akan meningkat bila pelanggan yang datang ke dalam sistem menemukan server dalam kondisi sibuk, sehingga pelanggan harus menunggu. Penundaan yang dilakukan oleh pelanggan adalah waktu yang dihabiskan untuk menunggu antrian ditambah waktu untuk pelayanan. Persamaan (2.2), (2.3) dan (2.4) meringkas hasil-hasil yang terjadi dan digunakan untuk kasus kedatangan acak dan menggunakan distribusi Poisson dan waktu pelayanan konstan[7].
ρ = λ Ts
(2.2)
Dengan, ρ = Utilisasi server λ = Jumlah rata-rata kedatangan per detik [bps] Ts = Waktu layanan untuk setiap kedatangan [s]
N=
ρ2
2 (1 - ρ )
+ρ
(2.3)
Dengan, N = Jumlah rata-rata pelanggan di dalam sistem (yang menunggu dan sedang dilayani) ρ = Utilisasi server Tr =
Ts (2 - ρ ) 2 (1 - ρ )
(2.4)
Dengan, Tr = Waktu rata-rata yang dihabiskan pelanggan di dalam sistem [s] Ts = Waktu layanan untuk setiap kedatangan [s] ρ = Utilisasi server
19 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Model ini dapat dihubungkan dengan mudah dengan statistical multiplexer. Untuk menentukan rata-rata laju kedatangan yang terjadi dapat digunakan rumus[7] :
λ =α I R
(2.5)
Dengan, λ = Rata-rata laju kedatangan [bps] I = Jumlah sumber input α = Pecahan rata-rata dari waktu, saat setiap sumber melakukan transmisi R = Laju data setiap sumber [bps] Sedangkan untuk mencari waktu layanan, yaitu waktu untuk mentransmisikan satu bit dapat digunakan rumus[7] : Ts =
1 M
(2.6)
Dengan, Ts = Waktu pelayanan [s] M = Kapasitas efektif saluran multiplexing [bps] Selanjutnya, kinerja dari server atau multiplexer akan dapat dicari dengan menggunakan rumus[7] :
ρ = λ Ts =
α IR M
=
λ M
(2.7)
Dengan, ρ = Kinerja dari server atau multiplexer λ = Rata-rata laju kedatangan [bps] I = Jumlah sumber input α = Pecahan rata-rata dari waktu, saat setiap sumber melakukan transmisi
20 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
R = Laju data setiap sumber [bps] Perlu diingat bahwa akan lebih sedikit jumlah penyangga per sumber yang diperlukan oleh multiplexer yang menangani sumber dalam jumlah yang besar dan rata-rata penundaan akan semakin kecil bila kapasitas jalur meningkat untuk penggunaan yang konstan.
21 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
BAB III PERANCANGAN SIMULASI DENGAN VISUAL C++ 6.0
3.1 Umum Simulasi adalah suatu proses untuk meniru suatu kejadian nyata dengan suatu model dan serangkaian persamaan[5]. Perancangan simulasi pada Tugas Akhir ini akan menampilkan proses perhitungan sistem antrian yang terjadi dan menampilkan hasil akhirnya dalam bentuk sebuah grafik. Bahasa pemrograman yang digunakan untuk merancang perangkat lunak ini adalah Visual C++ 6.0. Visual C++ merupakan perangkat pengembangan aplikasi yang menggunakan C++ sebagai bahasa pemrograman dan dapat digunakan untuk membuat aplikasi berbasis Windows maupun berbasis teks (console application). Perangkat ini menyediakan lingkungan yang dinamakan IDE (integrated development
environment)
yang
memungkinkan
pengguna
membuat,
mengkompilasi, dan menguji program dengan baik.
3.2 Komponen Visual C++ 6.0 Ada beberapa komponen penting yang terdapat pada program Visual C++ 6.0 yang berperan penting dalam pembangunan suatu aplikasi. Beberapa komponen penting itu adalah : 1. Editor Editor menyediakan sarana bagi pemrogam untuk menuliskan program. Editor yang disediakan mampu mengenali kata-kata tercadang C++ dan akan
22 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
memberi warna tersendiri terhadap kata-kata seperti itu. Keuntungannya program akan menjadi lebih mudah dibaca dan sekiranya terjadi kesalahan, maka kesalahan akan lebih cepat terdeteksi. 2. Compiler Ciompiler adalah perangkat lunak yang berfungsi untuk menterjemahkan kode sumber (source code) ke dalam bentuk bahasa mesin. Peranti ini akan dapat memberikan pesan-pesan kesalahan jika terjadi kesalahan kaidah penulisan program yang terdeteksi pada tahap proses kompilasi. 3. Linker Linker adalah perangkat lunak yang berfungsi untuk menggabungkan berbagai modul yang dihasilkan oleh compiler dan modul kode dari berbagai library C++, serta membentuk menjadi kode yang dapat dieksekusi. Sebagaimana compiler, linker juga dapat mendeteksi kesalahan. Kesalahan yang terjadi pada waktu proses linking bisa disebabkan karena ada bagian library atau bagian program yang tidak ditemukan. 4. Library Visual C++ menyediakan berbagai pustaka (library) yang memudahkan pemrogram dalam melakukan berbagai operasi seperti menghitung akar kuadrat hingga mengakses database. Pustaka-pustaka yang tersedia antara lain berupa : a. Standard C++ library, berisi semua rutin yang tersedia pada kebanyakan compiler C++. b. Microsoft Foundation Classes and Templates (MFC&T), yang berkaitan dengan pemrograman Windows.
23 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
5. AppWizard Perangkat ini bermanfaat untuk membangkitkan suatu kerangka dasar aplikasi Windows yang sangat memudahkan pemrogram untuk membuat aplikasi Windows. 6. ClassWizard Perangkat ini bermanfaat untuk mengedit kelas-kelas yang dibangkitkan oleh AppWizard.
3.3 Lingkungan Program Visual C++ 6.0 Lingkungan program Visual C++ 6.0 berisi sarana program yang sangat membantu dalam membangun suatu program Visual C++. Pada Gambar 3.1 dapat dilihat sarana-sarana yang disediakan dalam lingkungan program Visual C++ 6.0.
Gambar 3.1 Lingkungan Program Visual C++ 6.0
24 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
3.3.1 Jendela Project Wokspace Program Visual C++ terdiri dari banyak file dan modul yang digabungkan dan dicompile ketika program tersebut telah rampung dan dieksekusi. Untuk mempermudah pemrogram, Visual C++ telah menyediakan jendela Project Workspace yang berisi semua file yang digunakan selama proses pemrograman. Pada Gambar 3.2 dapat kita lihat contoh tampilan sebuah jendela Project Workspace.
Gambar 3.2 Jendela Project Workspace
Jendela Project Workspace tersebut berisi tiga buah tab, yaitu : 1. Tab ClassView, yang berguna untuk melihat maupun menyunting kelas-kelas dalam proyek.
25 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
2. Tab ResourceView, yang berguna untuk melihat ataupun menyunting resource yang berada dalam aplikasi, yang antara lain meliputi kotak dialog, menu, ikon dan sebagainya. 3. Tab FileView, yang memungkinkan untuk melihat dan menyunting berkas-berkas proyek.
3.3.2 Jendela Editor Jendela Editor adalah jendela yang berfungsi sebagai tempat merancang antarmuka program yang akan dibuat. Pada saat program yang dirancang tersebut dieksekusi, maka tampilan yang terlihat itu adalah tampilan dari jendela Editor. Selain tampilan antarmuka program yang disebut dialog box, jendela Editor juga dapat menampilkan source code dari program yang dirancang. Jendela Editor dapat dilihat pada Gambar 3.3.
26 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Gambar 3.3 Jendela Editor
3.3.3 Jendela Output Jendela Output berfungsi untuk memberikan pesan-pesan kesalahan jika terjadi kesalahan, baik pada saat proses kompilasi maupun sewaktu proses linking. Dengan adanya pesan-pesan kesalahan pada jendela Output, maka kesalahan yang terjadi akan lebih cepat terdeteksi dan diperbaiki. Jendela Output dapat dilihat pada Gambar 3.4.
Gambar 3.4 Jendela Output
27 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
3.3.4 Toolbox Toolbox berfungsi untuk membangun tampilan antarmuka program dengan menggunakan tool atau kontrol yang telah tersedia. Toolbox dapat dilihat pada Gambar 3.5.
Gambar 3.5 Toolbox
3.3.5 Toolbar Pada Toolbar terdapat tombol-tombol sebagai sarana yang sangat membantu pemrogram dalam dalam merancang suatu aplikasi. Tombol-tombol yang terdapat pada Toolbar ini dapat dikurangi atau ditambah melalui menu Customize sesuai dengan kebutuhan dari perancang program. Toolbar dapat dilihat pada Gambar 3.6.
Gambar 3.6 Toolbar
28 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
3.3.6 Menu Bar Menu Bar menyediakan akses untuk perintah-perintah yang mengendalikan program secara umum. Secara umum, fungsi dari menu yang tersedia sama dengan program-program lain yang berbasis Windows. Menu Bar dapat dilihat pada Gambar 3.7.
Gambar 3.7 Menu Bar
3.4 Perancangan Simulasi Model antrian sering digunakan untuk mengukur kinerja dari suatu jaringan komunikasi. Dalam model antrian, “pelanggan” berarti semua hal yang dianggap menghendaki layanan dari sistem. Sedangkan ”server” adalah suatu mekanisme yang memberikan layanan yang dibutuhkan oleh pelanggan. Antrian merupakan proses yang terjadi bila permintaan terhadap pelayanan dari suatu sistem melebihi kapasitas sistem sehingga permintaan tersebut diantrikan.
3.4.1 Model Sistem Model sistem antrian yang digunakan dalam simulasi ini adalah sistem antrian M/D/1, dimana proses kedatangan menggunakan distribusi Poisson, distribusi waktu pelayanannya adalah determinisitik dengan asumsi kapasitas buffer (penyangga) tidak terbatas. Model sistem ditunjukkan pada Gambar 3.8.
29 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
λ
λ
Gambar 3.8 Model Sistem Antrian
3.4.2 Pembangkitan Bilangan Acak Pembangkitan bilangan acak digunakan untuk menghasilkan deretan angkaangka sebagai hasil perhitungan yang diketahui distribusinya sehingga angka-angka tersebut muncul secara acak. Salah satu metode pembangkitan bilangan acak adalah Linear Congruential Generator (LCG). LCG digunakan untuk membangkitkan bilangan acak Z1, Z2, …Zn yang bernilai [0,m], dengan memanfaatkan nilai sebelumnya untuk membangkitkan bilangan acak ke n+1 (Zn+1). Hal ini dapat ditulis dalam Persamaan 3.1. Zi = (aZ i−1 + c)(mod m)
(3.1)
Dengan, 0 ≤ Zi ≤ m −1 m
= modulus
a
= multiplier
c
= increment
30 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Z0
= nilai awal (bilangan bulat positif)
Untuk mendapatkan bilangan acak Ui (i = 1, 2,…) pada interval [0,1], maka Ui = Zi / m
(3.2)
dimana: 0 < m, a < m, c < m, dan Z 0 < m
Bilangan acak yang dihasilkan dengan menggunakan metode LCG ini dapat dilihat pada Tabel 3.1.
Tabel 3.1 Bilangan Acak Metode LCG i 0 1 2 3 4 5 6 7 8 9 10
Zi 2147483647 139646976 82952360 146355436 1700390088 533626304 1901565280 294768512 539969056 1188739904 2013477120
Ui -0.065028190612793 0.038627702742815 0.0681520607322454 0.7918058373034 0.248489111661911 0.885485336184502 0.137262284755707 0.251442685723305 0.553550153970718 0.937598347663879
Pada Tabel 3.1, bilangan acak Ui yang dihasikan berada pada interval [0,1] dengan distribusi uniform. Distribusi ini dilambangkan dengan U(0,1).
3.4.3 Disiplin Antrian Disiplin antrian yang digunakan dalam simulasi ini adalah disiplin antrian First In First Out (FIFO), di mana pelanggan yang datang akan diterima di penyangga dan menunggu di sana. Jika pelanggan yang datang menemui server
31 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
dalam kondisi idle, maka pelanggan akan langsung dilayani oleh server. Akan tetapi jika pelanggan yang datang menemui kondisi server dalam keadaan sibuk (busy), maka pelanggan akan mengantri di dalam penyangga sampai semua pelanggan yang duluan datang selesai dilayani. Selain disiplin antrian FIFO, ada beberapa disiplin antrian lain yang lazim digunakan, yaitu[6] : 1. Last In, First Out (LIFO) Paket yang lebih dahulu tiba, belakangan dilayani. 2. Random service Paket yang akan dilayani dipilih secara acak. 3. Service sharing Setiap paket yang menunggu di dalam antrian akan mendapat porsi pelayanan yang sama meskipun belum lengkap, sehingga dalam hal ini sebenarnya tidak ada antrian yang menunggu. 4. Preemptive priority Jika pelanggan yang memiliki prioritas lebih tinggi datang, maka pelanggan dengan prioritas lebih rendah yang sedang dalam pelayanan akan diinterupsi dan dilanjutkan kembali jika pelanggan dengan prioritas lebih tinggi selesai dilayani.
3.4.4 Pola Kedatangan Pola kedatangan merupakan salah satu komponen utama dalam sistem antrian yang akan sangat mempengaruhi simulasi. Kondisi yang paling realistis adalah pola kedatangan yang bersifat acak, dimana kedatangan berikutnya sama sekali tidak
32 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
tergantung pada kedatangan sebelumnya. Pembangkitan pola kedatangan yang acak dalam penyusunan Tugas Akhir ini menggunakan distribusi Poisson. Kejadian pembangkitan pola kedatangan acak ini dapat dijelaskan dengan suatu fungsi penghitung N(t) yang dibatasi untuk t ≥ 0. Fungsi penghitung ini akan mewakili jumlah kedatangan yang muncul selama interval [0,t]. Proses penghitung {N(t), t ≥ 0} disebut dengan proses Poisson dengan rata-rata kedatangan λ bila memenuhi asumsi berikut ini[1] : 1. Kedatangan yang terjadi hanya satu pada setiap saat. 2. {N(t), t ≥ 0} memiliki pertambahan yang tetap. Distribusi jumlah kedatangan antara t hingga t + s hanya tergantung pada interval kedatangan s, dan tidak tergantung pada waktu awal t. 3. {N(t), t ≥ 0} memiliki pertambahan yang bebas. Jumlah kedatangan pada interval waktu yang tidak bersamaan adalah variabel acak yang bebas. Sehingga besar kecilnya jumlah kedatangan pada suatu interval waktu tertentu tidak mempengaruhi jumlah kedatangan pada interval waktu berikutnya, dengan demikian kedatangan yang berikut benar-benar acak. Jika distribusi kedatangan sesuai dengan proses Poisson dan memenuhi tiga kondisi di atas, maka peluang bahwa N(t) sama dengan t dapat diperoleh dengan rumus[1] : e - λt (λt) n P[N(t) = n] = n!
untuk t ≥ 0 dan n = 0, 1, 2, ...
(3.3)
Dengan, λ = Rata-rata kedatangan per satuan waktu
33 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
n
= Jumlah kedatangan dalam interval waktu tertentu
t
= Perioda waktu
Sedangkan mean dan variance pada proses Poisson adalah[1] : E[N(t)] = V[N(t)] = λt
(3.4)
Dengan, E[N(t)] = Mean V[N(t)] = Variance Untuk sembarang waktu s dan t dimana s < t, maka asumsi pertambahan tetap menunjukkan bahwa variabel acak N(t) - N(s) mewakili jumlah kedatangan pada interval waktu antara s hingga t, sehingga diperoleh[1] : e - λ (t -s) [λ (t - s)] n P[N(t) - N(s)] = n!
untuk n = 0, 1, 2, ...
(3.5)
dan E[N(t) – N(s)] = V[N(t) - N(s)] = λ(t – s)
(3.6)
Jika A adalah waktu antar kedatangan, maka kedatangan pertama terjadi pada saat A1, kemudian kedatangan kedua terjadi pada waktu A1 + A2, demikian seterusnya seperti pada Gambar 3.1. Karena kedatangan pertama terjadi setelah waktu t jika dan hanya jika tidak ada kedatangan selama interval [0,t], maka dapat dituliskan : { A1 > t } = { N(t) = 0 }
(3.7)
sehingga, P(A1 > t) = P[N(t) = 0] = e - λt
(3.8)
34 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Maka, peluang terjadinya kedatangan pada interval waktu [0,t] pada proses Poisson adalah[1] : P(A < t) = 1 - e -λt
(3.9)
Yang merupakan cdf (cumulative distribution function) dari distribusi eksponensial. Maka, A1 adalah terdistribusi secara eksponensial dengan rata-rata E(A1) = 1/λ. Ini juga menunjukkan bahwa waktu antar kedatangan A1, A1, . . . , adalah terdistribusi eksponensial dan tidak memiliki ketergantungan satu sama lain[1].
. . . . t
0 A1
A1
A1 + A2 A2
Gambar 3.9 Proses Kedatangan pada Proses Poisson Proses pembangkitan waktu antar kedatangan yang berdistribusi Poisson berdasar Persamaan 3.10. dengan rata-rata waktu antar kedatangan disimbolkan dengan λ. Dengan algoritma, bangkitkan bilangan acak Ui, lalu dapatkan nilai ti dari Persamaan 3.10. 1 t i = t i-1 - ln U i λ
(3.10)
Pada Tabel 3.2 dan 3.3 dapat dilihat waktu kedatangan yang dihasilkan dengan mengikuti distribusi Poisson untuk beberapa nilai λ.
35 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Tabel 3.2 Urutan Waktu Kedatangan dengan λ = 5 kedatangan/s Kedatangan ke - i 0 1 2 3 4 5 6 7 8 9 10
Waktu Kedatangan 0,0 0,186441 0,245196 0,263828 0,606247 0,782175 0,845165 0,908419 1,00867 1,33441 1,42009
Tabel 3.3 Urutan Waktu Kedatangan dengan λ = 10 kedatangan/s Kedatangan ke - i 0 1 2 3 4 5 6 7 8 9 10
Waktu Kedatangan 0,0 0,0155119 0,0420377 0,107401 0,238285 0,264539 0,343687 0,375621 0,437341 0,616148 0,640373
Sedangkan waktu antarkedatangan pelanggan di atas dapat dilihat pada Tabel 3.4 dan Tabel 3.5.
36 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Tabel 3.4 Waktu Interval Antar Kedatangan dengan λ = 5 kedatangan/s i 1 2 3 4 5 6 7 8 9 10
∆ ti (detik) 0,186441 0,058755
0,018362 0,342419 0,175928 0,06299 0,063254 0,100251 0,35274 0,08568
Tabel 3.5 Waktu Interval Antar Kedatangan dengan λ = 2 kedatangan/s i 1 2 3 4 5 6 7 8 9 10
∆ ti (detik) 0,0155119 0,0265258 0,0653633 0,130884 0,026254 0,079148 0,031934 0,06172 0,178807 0,024225
3.4.5 Pola Pelayanan Salah satu komponen penting dalam sistem antrian adalah karakteristik pelayanan yang dibutuhkan oleh setiap pelanggan. Pada simulasi ini diasumsikan bahwa pelanggan bersifat homogen, sehingga permintaan pelayanan (service
37 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
demand) terdistribusi secara identik dan dikenal sebagai distribusi pelayanan. Kecepatan pelayanan menyatakan seberapa cepat elemen pelayanan menyelesaikan pekerjaannya, yang diperoleh dari persamaan (3.11). Ts =
1 M
(3.11)
Dengan, Ts = Waktu pelayanan [s] M = Kapasitas efektif saluran multiplexing [bps] Dalam hal ini elemen pelayanannya merupakan suatu kanal saluran transmisi, maka kecepatannya dihitung dalam bps atau kbps yang menyatakan kecepatan transmisi.
3.4.6 Algoritma dan Diagram Alir Simulasi Diagram alir dari proses simulasi sistem antrian pada statistical time division multiplexing dapat dapat dilihat pada Gambar 3.10. Sedangkan algoritma dari proses simulasi yang terjadi adalah sebagai berikut : 1. Dilakukan proses inisialisasi variabel yaitu kapasitas kanal, rata-rata transmisi input, dan jumlah sumber input dengan cara memilih nilainya dari pilihan yang telah tersedia. 2. Setelah nilai-nilai ditentukan, maka dibangkitkan waktu kedatangan secara acak dengan distribusi Poisson. 3. Dilakukan perhitungan untuk mendapatkan waktu pelayanan. 4. Dapat dilakukan pengamatan performansi sistem selama proses simulasi berjalan.
38 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
5. Proses simulasi akan berhenti ketika waktu mencapai nilai yang telah ditentukan yaitu 20 detik. 6. Diperoleh hasil akhir berupa utilisasi server, panjang antrian rata-rata, dan penundaan rata-rata. 7. Data hasil akhir yang diperoleh disimpan di tabel kondisi I, II, dan III. 8. Data masukan untuk kondisi I adalah utilisasi server, panjang antrian rata-rata, dan penundaan rata-rata dengan jumlah input yang berubah. 9. Data masukan untuk kondisi II adalah utilisasi server, panjang antrian rata-rata, dan penundaan rata-rata dengan rata-rata transmisi yang berubah. 10. Data masukan untuk kondisi III adalah utilisasi server, panjang antrian rata-rata, dan penundaan rata-rata dengan kapasitas kanal yang berubah. 11. Setelah data untuk masing-masing kondisi lengkap, hasil akhir dapat ditampilkan dalam bentuk grafik untuk masing-masing kondisi.
39 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
α
Gambar 3.10 Diagram Alir Simulasi
40 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
3.4.7 Prototype Simulasi Secara garis besar, simulasi ini terdiri dari dua bagian utama, yaitu bagian tampilan antarmuka program dan source code program.
3.4.7.1 Prototype Antarmuka Program Antarmuka program yang disebut dengan dialog box merupakan tempat perancangan program secara visual seperti tabel, tombol, dan grafik. Dalam simulasi terdapat tujuh buah dialog box, yaitu : 1. Dialog box Utama Dialog box ini merupakan tampilan utama yang menampilkan proses simulasi yang sedang berjalan. 2. Dialog box Grafik A Kondisi I Dialog box ini menampilkan grafik A hasil simulasi dengan kondisi I. 3. Dialog box Grafik B Kondisi I Dialog box ini menampilkan grafik B hasil simulasi dengan kondisi I. 4. Dialog box Grafik A Kondisi II Dialog box ini menampilkan grafik A hasil simulasi dengan kondisi II. 5. Dialog box Grafik B Kondisi II Dialog box ini menampilkan grafik B hasil simulasi dengan kondisi II. 6. Dialog box Grafik A Kondisi III Dialog box ini menampilkan grafik A hasil simulasi dengan kondisi III. 7. Dialog box Grafik B Kondisi III Dialog box ini menampilkan grafik B hasil simulasi dengan kondisi III.
41 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
3.4.7.2 Prototype Source Code Program Prototype source code program berisi file-file dan fungsi-fungsi utama yang digunakan untuk menjalankan program. Berikut adalah file-file utama yang digunakan dalam perancangan program : 1. LayoutDlg.h File ini merupakan sebuah header file, yang berfungsi sebagai tempat pendeklarasian variabel-variabel yang digunakan dalam perancangan tampilan program. 2. LayoutDlg.cpp File ini merupakan sebuah implementation file yang berisi kode C++ yang berfungsi agar tampilan yang telah dirancang sebelumnya dapat melakukan tindakan seperti yang diinginkan.
Berikut ini adalah fungsi-fungsi utama yang digunakan dalam perancangan program : 1. Fungsi yang menginisialisasi sistem BOOL CLayoutDlg::OnInitDialog() {
};
2. Fungsi yang menjalankan timer void CLayoutDlg::OnTimer(UINT nIDEvent) {
};
3. Fungsi yang menjalankan tombol Start. void CLayoutDlg::OnStart() {
};
42 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
4. Fungsi yang menjalankan tombol Simpan (sesuai dengan kondisinya). void CLayoutDlg::OnSimpankondisi1() {
};
5. Fungsi yang menjalankan tombol Grafik (sesuai dengan kondisinya). void CLayoutDlg::OnBtngrafik1() {
};
6. Fungsi yang menjalankan tombol Clear. void CLayoutDlg::OnBersih() {
};
7. Fungsi untuk menjalankan tombol Exit. void CLayoutDlg::OnKeluar() {
};
43 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
BAB IV SIMULASI PERANGKAT LUNAK
4.1 Umum Pada bab ini akan diuraikan parameter-parameter dan batasan-batasan yang digunakan untuk pengukur kinerja sistem. Kinerja sistem yang dianalisis adalah delay rata-rata, panjang antrian rata-rata dan utilisasi sistem.
4.2 Pemodelan Sistem Model sistem berguna sebagai tiruan dari sistem yang akan dianalisis. Adapun model dari sistem antrian pada statistical TDM yang disimulasikan dapat dilihat pada Gambar 4.1.
Gambar 4.1 Model Sistem Statistical TDM
Dengan mengasumsikan bahwa waktu kedatangan dari masing-masing sumber adalah acak dengan distribusi Poisson, maka model di atas dapat disederhanakan menjadi seperti pada Gambar 4.2.
44 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
λ Gambar 4.2 Model Sistem yang Disimulasikan
4.3 Asumsi-Asumsi Pembangun Sistem Ada beberapa asumsi yang digunakan di dalam membangun sistem, yaitu : 1.
Pola kedatangan pelanggan. Pola kedatangan adalah acak dengan menggunakan distribusi Poisson.
2.
Disiplin antrian. Disiplin antrian pelanggan yang digunakan pada simulasi ini adalah FIFO (First In Firs Out).
3.
Pola pelayanan. Pada simulasi ini diasumsikan bahwa pelanggan bersifat homogen, sehingga waktu pelayanan untuk setiap pelanggan adalah identik.
4.
Kapasitas buffer. Pada simulasi ini diasumsikan bahwa kapasitas buffer tidak terhingga.
4.4 Mode Analisis Pada simulasi ini, ada tiga kondisi yang digunakan untuk menganalisi delay rata-rata, panjang antrian rata-rata, dan utilisasi server. 1.
Kondisi I. Dimana kapasitas kanal dan rata-rata transmisi tetap, sedangkan jumlah sumber berubah.
45 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
2.
Kondisi II. Dimana kapasitas kanal dan jumlah sumber tetap, sedangkan rata-rata transmisi berubah.
3.
Kondisi III. Dimana jumlah sumber dan rata-rata transmisi tetap, sedangkan kapasitas kanal berubah.
4.5 Batasan-Batasan Model Sistem Beberapa batasan yang merupakan nilai konstanta dan data masukan sebagai nilai variabel yang digunakan dalam analisis kinerja sistem ini, yaitu : 1.
Nilai konstanta yang ditetapkan dalam simulasi ini adalah : Laju data untuk setiap sumber = 1000 bps.
2.
Data masukan yang ditetapkan dalam simulasi ini adalah : a. Jumlah sumber. Jumlah sumber yang digunakan naik secara bertahap dari 1 s/d 10 dengan interval kenaikan 1. b. Rata-rata transmisi dari masing-masing sumber. Rata-rata transmisi yang digunakan naik secara bertahap dari 0,1 s/d 0,9 dengan interval kenaikan 0,1. c. Kapasitas saluran transmisi. Kapasitas saluran transmisi yang digunakan naik secara bertahap dari 1000 bps s/d 10000 bps dengan interval kenaikan 1000 bps.
46 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Data masukan ini dapat dimasukkan ke dalam program yang dibuat melalui pilihan seperti pada Gambar 4.3.
Gambar 4.3 Tampilan Parameter-Parameter dalam Simulasi
4.6 Performansi Sistem Performansi sistem menunjukkan kejadian-kejadian yang berlangsung selama simulasi berjalan. Ada beberapa hal yang diukur selama proses simulasi berjalan, yaitu : 1. Jumlah pelanggan yang telah memasuki sistem [n]. 2. Jumlah antrian di dalam sistem [Antrian]. 3. Panjang antrian pada waktu t [L(t)]. 4. Penundaan pada waktu t [W(t)]. 5. Perkiraan kedatangan pelanggan. 6. Perkiraan selesai pelanggan. Contoh proses perhitungan performansi sistem dengan salah satu kondisi dapat dilihat pada Gambar 4.4.
47 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Gambar 4.4 Tampilan Performansi Sistem
4.7 Hasil Akhir Ketika telah mencapai waktu yang telah ditentukan, yaitu 20 detik, maka simulasi akan berhenti dan menampilkan hasil akhir proses simulasi sesuai dengan parameter yang dimasukkan. Hasil akhir yang dihitung dalam simulasi adalah : 1. Utilisasi server. 2. Panjang antrian rata-rata [L]. 3. Penundaan rata-rata [W]. Salah satu contoh tampilan hasil akhir yang diperoleh dapat dilihat pada Gambar 4.5
Gambar 4.5 Tampilan Hasil Akhir
48 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
. 4.8 Tabel Hasil Akhir Hasil akhir yang telah diperoleh sebelumnya kemudian akan disimpan pada tabel hasil akhir sesuai dengan kondisinya masing-masing.
4.8.1 Tabel Hasil Akhir Kondisi I Tujuan dari proses simulasi ini adalah untuk melihat kinerja sistem antrian yang terjadi pada multiplexer. Dari tabel akhir kondisi I ini dapat dilihat pengaruh dari parameter jumlah sumber terhadap kinerja sistem antrian. Pada Gambar 4.6 dapat dilihat tabel hasil akhir kondisi I.
Gambar 4.6 Tampilan Tabel Hasil Akhir Kondisi I
49 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
4.8.2 Tabel Hasil Akhir Kondisi II Dari tabel akhir kondisi ini dapat dilihat pengaruh dari parameter rate transmisi terhadap kinerja sistem. Tabel hasil akhir untuk kondisi II dapat dilihat pada Gambar 4.7.
Gambar 4.7 Tampilan Tabel Hasil Akhir Kondisi II
4.8.3 Tabel Hasil Akhir Kondisi III Dari tabel akhir kondisi ini dapat dilihat pengaruh dari parameter kapasitas kanal terhadap kinerja sistem. Tabel hasil akhir untuk kondisi II dapat dilihat pada Gambar 4.8.
50 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Gambar 4.8 Tampilan Tabel Hasil Akhir Kondisi III
Selang kepercayaan dari hasil perhitungan panjang antrian rata-rata untuk beberapa harga utilisasi server disajikan sebagai berikut : 1.
Untuk ρ = 0,1. Tabel 4.1 Variansi pada Panjang Antrian Rata-Rata untuk ρ = 0,1
51 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
n
___
Rata - rata (mean) = X =
∑ Xi i =1
n
= 3,26 30 = 0,10866 n
Variansi (X)
= Var ( X ) =
___
∑ ( Xi - X ) 2 i =1
n
= 0,002529 30 = 0,0000843
σ
=
Var (X )
=
0,0000843
= 0,009811
Dengan menggunakan derajat keyakinan 95 % (0,95) maka diperoleh z = 1,96 pada tabel normal. Jadi selang kepercayaan berada pada : 0,10866 ± 1,96 . 0,009811 0,10866 ± 0,019229 atau antara 0,089431 s/d 0,127889
52 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
2.
Untuk ρ = 0,2 Tabel 4.2 Variansi pada Panjang Antrian Rata-Rata untuk ρ = 0,2
n
___
Rata - rata (mean) = X =
∑ Xi i =1
n
= 6,645 30 = 0,22366 n
Variansi (X)
= Var ( X ) =
___
∑ ( Xi - X ) 2 i =1
n
= 0,002028 30 = 0,0000676
53 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
σ
=
Var (X )
=
0,0000676
= 0,008222
Dengan menggunakan derajat keyakinan 95 % (0,95) maka diperoleh z = 1,96 pada tabel normal. Jadi selang kepercayaan berada pada : 0,22366 ± 1,96 . 0,008222 0,22366 ± 0,016115 atau antara 0,207545 s/d 0,239775
Sedangkan selang kepercayaan dari hasil perhitungan delay rata-rata disajikan sebagai berikut :
Tabel 4.3 Variansi pada Delay Antrian Rata-Rata untuk ρ = 0,3
54 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
n
___
Rata - rata (mean) = X =
∑ Xi i =1
n
= 6,49416 30 = 0,216472 n
Variansi (X)
= Var ( X ) =
___
∑ ( Xi - X ) 2 i =1
n
= 0,000057 30 = 0,000019
σ
=
Var (X )
=
0,000019
= 0,004358
Dengan menggunakan derajat keyakinan 95 % (0,95) maka diperoleh z = 1,96 pada tabel normal. Jadi selang kepercayaan berada pada : 0,216472 ± 1,96 . 0,004358 0,216472 ± 0,008541 atau antara 0,207931 s/d 0,225013
55 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
4.9 Grafik Hasil Simulasi Hasil akhir dari perhitungan antrian dengan kondisi-kondisi di atas dapat dilihat melalui grafik yang terdapat pada perangkat lunak tersebut. Tujuan dari grafik ini yaitu untuk mengetahui perbedaan hasil akhir dari seluruh kondisi yang digunakan.
4.9.1 Grafik Kondisi I Grafik hasil akhir perhitungan antrian pada kondisi I dapat dilihat pada Gambar 4.9.(a) dan 4.9.(b). Pada Gambar 4.9.(a) dapat dilihat perubahan panjang antrian rata-rata yang terjadi sesuai dengan kenaikan utitilisasi server. Sedangkan pada Gambar 4.9.(b) dapat dilihat perubahan penundaan rata-rata sesuai dengan perubahan utilisasi server.
56 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Gambar 4.9 Grafik Kondisi I
4.9.2 Grafik Kondisi II Grafik hasil akhir perhitungan antrian pada kondisi I dapat dilihat pada Gambar 4.10.(a) dan 4.10.(b). Pada Gambar 4.10.(a) dapat dilihat perubahan panjang antrian rata-rata yang terjadi sesuai dengan kenaikan utitilisasi server. Sedangkan pada Gambar 4.10.(b) dapat dilihat perubahan penundaan rata-rata sesuai dengan perubahan utilisasi server.
57 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
(a) Panjang Antrian vs Utilisasi Server
(b) Delay Rata-Rata vs utilisasi Server
Gambar 4.10 Grafik Kondisi II
58 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
4.5.3 Grafik Kondisi III Grafik hasil akhir perhitungan antrian pada kondisi I dapat dilihat pada Gambar 4.11.(a) dan 4.11.(b). Pada Gambar 4.11.(a) dapat dilihat perubahan panjang antrian rata-rata yang terjadi sesuai dengan kenaikan utitilisasi server. Sedangkan pada Gambar 4.11.(b) dapat dilihat perubahan penundaan rata-rata sesuai dengan perubahan utilisasi server.
(a) Panjang Antrian vs utilisasi Server
59 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Gambar 4.11 Grafik Kondisi III
60 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
BAB V PENUTUP
5.1 Kesimpulan Dari hasil simulasi yang diperoleh pada Bab IV, maka didapatkan kesimpulan sebagai berikut : 1. Dengan semakin bertambahnya jumlah sumber yang melakukan transmisi, maka akan semakin bertambah pula utilisasi server dan panjang antrian rata-rata pada sistem. 2. Dengan semakin bertambahnya rate transmisi pada masing-masing sumber, maka akan semakin bertambah pula utilisasi server dan panjang antrian rata-rata pada sistem. 3. Dengan semakin besarnya kapasitas saluran transmisi, maka utilisasi server dan panjang antrian rata-rata pada sistem akan semakin kecil.
5.2 Saran Beberapa saran yang dapat penulis berikan adalah : 1. Perangkat lunak yang telah dirancang ini dapat dikembangkan lagi dengan membahas throughput dari statistical TDM. 2. Untuk semakin mempermudah pemahaman, perangkat lunak yang telah dirancang ini dapat dilengkapi dengan animasi dari proses yang terjadi.
61 Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
DAFTAR PUSTAKA
1. Banks, Jerry, John S. Carson and Barry L. Nelson, 1996, “Discrete Event System Simulation”, Second Edition, Prentice Hall International, New Jersey. 2. Balaban, Philip, Michael C. Jeruchim and K. Sam Shanmugan, 2002 “Simulation of Communication System”, Second Edition, Kluwer Academic Publisher, New York. 3. Freeman, Roger L, 2005, “Fundamentals of Telecommunications”, Fourth Edition, John Wiley and Sons, New York. 4. Kadir, Abdul, 2004, “Panduan Pemrograman Visual C++”, Penerbit Andi, Yogyakarta. 5. Law, Averil M. and W. David Kelton, 1991, “Simulation Modeling and Analysis”, Second Edition, McGraw Hill, New York. 6. Mir, Nader F, 2006, “Computer and Communication Networks”, Prentice Hall, Indiana. 7. Stallings, William, 2000, “Data and Computer Communication”, Sixth Edition, Prentice Hall, New Jersey. 8. Young, Minchael J., 1998, “Mastering Visual C++6”, Sybex Inc, San Fransisco.
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
LAMPIRAN A
LISTING PROGRAM PERANGKAT LUNAK SIMULASI SISTEM ANTRIAN PADA STATISTICAL TDM DENGAN BAHASA PEMROGRAMAN VISUAL C++ 6.0
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Source Code Pendeklarasian Variabel-Variabel Program Utama // LayoutDlg.h : header file // #if !defined(AFX_LAYOUTDLG_H__50E40FD7_A3B2_4FD9_8668_6F6CB79F9015__INCL UDED_) #define AFX_LAYOUTDLG_H__50E40FD7_A3B2_4FD9_8668_6F6CB79F9015__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 //////////////////////////////////////////////////////////////////// ///////// // CLayoutDlg dialog class CLayoutDlg : public CDialog { // Construction public: int bataswaktu; int item; double waktuselesai,waktujalan,waktuterakhir; void urutdata(); double daftarselesai[2000]; int jumlah_antri; float w_selesai; double daftartunggu[2000]; double daftarwaktu[2000]; int jumlah; int x; int jmldatang; float w_sebelum; float w_datang; CLayoutDlg(CWnd* pParent = NULL); // standard constructor // Dialog Data //{{AFX_DATA(CLayoutDlg) enum { IDD = IDD_LAYOUT_DIALOG }; CListBox m_listjumlahinput1; CListBox m_listw3; CListBox m_listw2; CListBox m_listw1; CListBox m_listutilserver2; CListBox m_listutilserver1; CListBox m_util2; CListBox m_listrate; CListBox m_listl3; CListBox m_listl2; CListBox m_listl1; CListBox m_listkanal; CListBox m_dwaktutetap; CListBox m_dselesai;
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
CListBox m_as; double m_waktu; double m_test; CString m_kapasitas; double m_ratesumber; CString m_sinput; CString m_alpha; double m_test2; int m_bil; double m_wktlayan; int m_antri; double m_util; int m_N; double m_waktuselesai; double m_Lantrian; double m_Wantrian; double m_LT; double m_WN; int m_statusserver; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CLayoutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); DDX/DDV support //}}AFX_VIRTUAL
//
// Implementation protected: HICON m_hIcon; // Generated message map functions //{{AFX_MSG(CLayoutDlg) virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnStart(); afx_msg void OnTimer(UINT nIDEvent); afx_msg void OnKeluar(); afx_msg void OnBtngrafik1(); afx_msg void OnButton9(); afx_msg void OnGrafik3(); afx_msg void OnSimpankondisi1(); afx_msg void OnBersih(); afx_msg void OnSimpankondisi2(); afx_msg void OnSimpankondisi3(); afx_msg void OnGrafik1b(); afx_msg void OnGrafik2b(); afx_msg void OnGrafik3b(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; //{{AFX_INSERT_LOCATION}}
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_LAYOUTDLG_H__50E40FD7_A3B2_4FD9_8668_6F6CB79F9015__INCL UDED_)
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Source Code Program Utama // LayoutDlg.cpp : implementation file // #include "stdafx.h" #include "Layout.h" #include "LayoutDlg.h" //Include file Untuk Random Metode Poison #include
// define time() #include "randomc.h" // define classes for random number generators #include "mersenne.cpp" // code for random number generator #define RANDOM_GENERATOR TRandomMersenne // define which random number generator to use #include "stocc.h" // define random library classes #include "stoc1.cpp" // random library source code #include "stoc2.cpp" // random library source code #include "userintf.cpp" // define system specific user interface //Akhir Include File Untuk Random Poison #define RANDOM_GENERATOR TRandomMersenne // define which random number generator to use #include "Grafik1.h" #include "Grafik2.h" #include "Grafik3.h" #include "Grafik4.h" #include "Grafik5.h" #include "Grafik6.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif //////////////////////////////////////////////////////////////////// ///////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
//}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) afx_msg void OnBeforeDragOverImage1(LPDISPATCH Cancel, LPDISPATCH Data, float X, float Y, long DragState, LPDISPATCH Effect, short Shift); DECLARE_EVENTSINK_MAP() //}}AFX_MSG DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) //{{AFX_MSG_MAP(CAboutDlg) // No message handlers //}}AFX_MSG_MAP END_MESSAGE_MAP() //////////////////////////////////////////////////////////////////// ///////// // CLayoutDlg dialog CLayoutDlg::CLayoutDlg(CWnd* pParent /*=NULL*/) : CDialog(CLayoutDlg::IDD, pParent) { //{{AFX_DATA_INIT(CLayoutDlg) m_waktu = 0.0; m_test = 0.0; m_kapasitas = _T(""); m_ratesumber = 0.0; m_sinput = _T(""); m_alpha = _T(""); m_test2 = 0.0; m_bil = 0; m_wktlayan = 0.0; m_antri = 0; m_util = 0.0; m_N = 0; m_waktuselesai = 0.0; m_Lantrian = 0.0; m_Wantrian = 0.0; m_LT = 0.0;
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
m_WN = 0.0; m_statusserver = 0; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CLayoutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CLayoutDlg) DDX_Control(pDX, IDC_LISTJLHINPU1, m_listjumlahinput1); DDX_Control(pDX, IDC_LISTW3, m_listw3); DDX_Control(pDX, IDC_LISTW2, m_listw2); DDX_Control(pDX, IDC_LISTW1, m_listw1); DDX_Control(pDX, IDC_LISTUTILSERVER2, m_listutilserver2); DDX_Control(pDX, IDC_LISTUTILSERVER1, m_listutilserver1); DDX_Control(pDX, IDC_LISTUTIL2, m_util2); DDX_Control(pDX, IDC_LISTRATE, m_listrate); DDX_Control(pDX, IDC_LISTL3, m_listl3); DDX_Control(pDX, IDC_LISTL2, m_listl2); DDX_Control(pDX, IDC_LISTL1, m_listl1); DDX_Control(pDX, IDC_LISTKANAL, m_listkanal); DDX_Control(pDX, IDC_waktutetap, m_dwaktutetap); DDX_Control(pDX, IDC_selesai, m_dselesai); DDX_Control(pDX, IDC_LISTtest, m_as); DDX_Text(pDX, IDC_WAKTU, m_waktu); DDX_Text(pDX, IDC_test, m_test); DDX_CBString(pDX, IDC_kapasitas, m_kapasitas); DDX_Text(pDX, IDC_ratesumber, m_ratesumber); DDX_CBString(pDX, IDC_sinput, m_sinput); DDX_CBString(pDX, IDC_alpha, m_alpha); DDX_Text(pDX, IDC_test2, m_test2); DDX_Text(pDX, IDC_bil, m_bil); DDX_Text(pDX, IDC_wktlayan, m_wktlayan); DDX_Text(pDX, IDC_antri, m_antri); DDX_Text(pDX, IDC_util, m_util); DDX_Text(pDX, IDC_N, m_N); DDX_Text(pDX, IDC_waktuselesai, m_waktuselesai); DDX_Text(pDX, IDC_Lantrian, m_Lantrian); DDX_Text(pDX, IDC_Wantrian, m_Wantrian); DDX_Text(pDX, IDC_LT, m_LT); DDX_Text(pDX, IDC_WN, m_WN); DDX_Text(pDX, IDC_STATUSSERVER, m_statusserver); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CLayoutDlg, CDialog) //{{AFX_MSG_MAP(CLayoutDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_START, OnStart) ON_WM_TIMER() ON_BN_CLICKED(IDC_KELUAR, OnKeluar)
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
ON_BN_CLICKED(IDC_BTNGRAFIK1, OnBtngrafik1) ON_BN_CLICKED(IDC_BUTTON9, OnButton9) ON_BN_CLICKED(IDC_GRAFIK3, OnGrafik3) ON_BN_CLICKED(IDC_SIMPANKONDISI1, OnSimpankondisi1) ON_BN_CLICKED(IDC_Bersih, OnBersih) ON_BN_CLICKED(IDC_SIMPANKONDISI2, OnSimpankondisi2) ON_BN_CLICKED(IDC_SIMPANKONDISI3, OnSimpankondisi3) ON_BN_CLICKED(IDC_GRAFIK1B, OnGrafik1b) ON_BN_CLICKED(IDC_GRAFIK2B, OnGrafik2b) ON_BN_CLICKED(IDC_GRAFIK3B, OnGrafik3b) //}}AFX_MSG_MAP END_MESSAGE_MAP() //////////////////////////////////////////////////////////////////// ///////// // CLayoutDlg message handlers BOOL CLayoutDlg::OnInitDialog() { CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here return TRUE; control }
// return TRUE
unless you set the focus to a
void CLayoutDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) {
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID, lParam); } } // If you add a minimize button to your dialog, you will need the code below // to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework. void CLayoutDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } } // The system calls this to obtain the cursor to display while the user drags // the minimized window. HCURSOR CLayoutDlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon; } /*void CLayoutDlg::OnFieldchangedIpaddress1(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here *pResult = 0; }*/
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
void CLayoutDlg::OnStart() { float a,b,c; int posrandom,tmp,z; int ada,i; char s[100]; double nilai; srand( (unsigned) time(NULL)); x=-1; w_datang = 0.1; jumlah_antri =0; int32 seed = time(0); StochasticLib1 sto(seed); library
// random seed // make instance of random
ada=0; UpdateData(true); a=atof(m_alpha); b=atof(m_sinput); c=atof(m_kapasitas);
nilai =0.00; waktuselesai=0.0; item=0; m_ratesumber=1000; m_test= a*b*m_ratesumber; m_util = (a*b*m_ratesumber)/c; jmldatang = m_test*1.0 /1000.0 * 20.0; m_bil= sto.Poisson(jmldatang); jmldatang = m_bil; m_wktlayan = (1/c) * 1000.0;
if (m_wktlayan*1000 >=10 && m_wktlayan*1000 <100) { bataswaktu = 2000; waktujalan=0.01; } else if (m_wktlayan*1000 >=100 && m_wktlayan*1000 <1000) { bataswaktu = 200; waktujalan=0.1; }
for ( i=0 ;i
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
for(int k=0;k<jmldatang ;++k) { daftarselesai[k]=0.0; } for( i = 0;i<jmldatang;++i) { posrandom =rand() % bataswaktu; if (posrandom < bataswaktu) { for (z=0 ;z<jmldatang;++z) { if (daftartunggu[z]==daftarwaktu[posrandom]) { ada=1; } } if ( ada==0) { daftartunggu[i]= daftarwaktu[posrandom]; daftarselesai[i]=daftartunggu[i]+ m_wktlayan; } else { i=i-1; ada=0; } } else { i=i-1; ada=0; } } UpdateData(false); urutdata();
SetTimer(1,1,NULL); } void CLayoutDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default int i,a=0; UpdateData (true); x= x + 1; if (x
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
m_waktu= daftarwaktu[x]; UpdateData(false); for (i=0;i=waktuselesai) { waktuselesai = waktuselesai+m_wktlayan; jumlah_antri = jumlah_antri-1; a=1; } } } m_antri=jumlah_antri; m_waktuselesai = waktuselesai; m_test2=daftartunggu[i]; m_N = m_N +1;
//
m_Lantrian = m_Lantrian + (1*
//
m_Wantrian = m_Wantrian + (1*
waktujalan); waktujalan); UpdateData(false); break; } else { m_statusserver=0;
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
UpdateData(false); } } if (jumlah_antri >0 && a>=1) { m_Lantrian = m_Lantrian + ((jumlah_antri+1)*waktujalan); m_Wantrian =m_Wantrian + ((jumlah_antri+1)*waktujalan); a=0; m_statusserver=1; } else { m_statusserver=0; } if (m_waktu <= waktuterakhir + waktujalan ) { m_Lantrian = m_Lantrian + (1* waktujalan); m_Wantrian = m_Wantrian + (1* waktujalan); m_statusserver=1; } else { m_statusserver=0; } UpdateData(false); } else { UpdateData (true); m_LT = m_Lantrian/20; m_WN = m_Wantrian/m_N; UpdateData(false); KillTimer(1); } CDialog::OnTimer(nIDEvent); } void CLayoutDlg::OnKeluar() { CDialog::OnOK (); } void CLayoutDlg::urutdata() { int x,y; double ds; char s[100]; UpdateData(true); for (x=jmldatang - 2 ; x>=0 ;--x) {
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
for(y = 0 ;y<=x ;++y) { if (daftartunggu [y] > daftartunggu [y+1]) { ds = daftartunggu[y]; daftartunggu [y] = daftartunggu [y+1]; daftartunggu [y+1] = ds; ds= daftarselesai[y]; daftarselesai[y] = daftarselesai[y+1]; daftarselesai[y+1] = ds; } } } for (x=0;x<jmldatang;++x) { gcvt(daftarselesai[x],10,s); m_dselesai.AddString (s); gcvt(daftartunggu[x],10,s); m_as.AddString (s); gcvt(daftarwaktu[x],10,s); m_dwaktutetap.AddString (s);
} } void CLayoutDlg::OnBtngrafik1() { char s[100]; int p; Grafik1 grafik1; for(p=0;p < m_listutilserver1.GetCount();++p) { m_listutilserver1.GetText(p,s); //MessageBox(s); grafik1.xaxis[p]= atof(s); } for(p=0;p < m_listl1.GetCount();++p) { m_listl1.GetText(p,s); grafik1.yaxis[p]= atof(s); } grafik1.DoModal (); } void CLayoutDlg::OnButton9() { int p; char s[100];
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Grafik2 grafik2; for(p=0;p < m_listutilserver2.GetCount();++p) { m_listutilserver2.GetText(p,s); //MessageBox(s); grafik2.xaxis[p]= atof(s); } for(p=0;p < m_listl2.GetCount();++p) { m_listl2.GetText(p,s); grafik2.yaxis[p]= atof(s); } grafik2.DoModal (); } void CLayoutDlg::OnGrafik3() { int p; char s[100]; Grafik3 grafik3; for(p=0;p < m_util2.GetCount();++p) { m_util2.GetText(p,s); //MessageBox(s); grafik3.xaxis[p]= atof(s); } for(p=0;p < m_listl3.GetCount();++p) { m_listl3.GetText(p,s); grafik3.yaxis[p]= atof(s); } grafik3.DoModal (); } void CLayoutDlg::OnSimpankondisi1() { char s[100]; gcvt(m_util,10,s); m_listutilserver1.AddString(s); gcvt(m_LT,10,s); m_listl1.AddString(s); gcvt(m_WN,10,s); m_listw1.AddString(s); m_listjumlahinput1.AddString(m_sinput);
}
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
void CLayoutDlg::OnBersih() { waktuselesai=0.0; item=0; x=-1; m_ratesumber=1000; w_datang = 0.1; jumlah_antri =0; m_waktu =0; m_sinput =""; m_util=0; m_LT=0; m_WN=0; m_Lantrian=0; m_Wantrian=0; m_N=0; m_antri =0; m_alpha=""; m_kapasitas=""; m_wktlayan = 0; m_statusserver =0; UpdateData(false); } void CLayoutDlg::OnSimpankondisi2() { char s[100]; gcvt(m_util,10,s); m_listutilserver2.AddString(s); gcvt(m_LT,10,s); m_listl2.AddString(s); gcvt(m_WN,10,s); m_listw2.AddString(s); m_listrate.AddString(m_alpha); } void CLayoutDlg::OnSimpankondisi3() { char s[100]; gcvt(m_util,10,s); m_util2.AddString(s); gcvt(m_LT,10,s); m_listl3.AddString(s); gcvt(m_WN,10,s); m_listw3.AddString(s); m_listkanal.AddString(m_kapasitas); } BEGIN_EVENTSINK_MAP(CAboutDlg, CDialog) //{{AFX_EVENTSINK_MAP(CAboutDlg) ON_EVENT(CAboutDlg, IDC_IMAGE1, 3 /* BeforeDragOver */, OnBeforeDragOverImage1, VTS_DISPATCH VTS_DISPATCH VTS_R4 VTS_R4 VTS_I4 VTS_DISPATCH VTS_I2)
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
//}}AFX_EVENTSINK_MAP END_EVENTSINK_MAP() void CAboutDlg::OnBeforeDragOverImage1(LPDISPATCH Cancel, LPDISPATCH Data, float X, float Y, long DragState, LPDISPATCH Effect, short Shift) { // TODO: Add your control notification handler code here } void CLayoutDlg::OnGrafik1b() { char s[100]; int p; Grafik4 grafik4; for(p=0;p < m_listutilserver1.GetCount();++p) { m_listutilserver1.GetText(p,s); //MessageBox(s); grafik4.xaxis[p]= atof(s); } for(p=0;p < m_listw1.GetCount();++p) { m_listw1.GetText(p,s); grafik4.yaxis[p]= atof(s); } grafik4.DoModal (); } void CLayoutDlg::OnGrafik2b() { int p; char s[100]; Grafik5 grafik5; for(p=0;p < m_listutilserver2.GetCount();++p) { m_listutilserver2.GetText(p,s); //MessageBox(s); grafik5.xaxis[p]= atof(s); } for(p=0;p < m_listw2.GetCount();++p) { m_listw2.GetText(p,s); grafik5.yaxis[p]= atof(s); } grafik5.DoModal (); }
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
void CLayoutDlg::OnGrafik3b() { int p; char s[100]; Grafik6 grafik6; for(p=0;p < m_util2.GetCount();++p) { m_util2.GetText(p,s); //MessageBox(s); grafik6.xaxis[p]= atof(s); } for(p=0;p < m_listw3.GetCount();++p) { m_listw3.GetText(p,s); grafik6.yaxis[p]= atof(s); } grafik6.DoModal (); }
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
LAMPIRAN B
PETUNJUK PEMBUATAN USER INTERFACE SIMULASI SISTEM ANTRIAN PADA STATISTICAL TDM DENGAN BAHASA PEMROGRAMAN VISUAL C++ 6.0
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Pembuatan Project Adapun langkah-langkah pembuatan project baru adalah sebagai berikut : 1. Pilih menu File, lalu pilih New. 2. Pilih MFCAppWizard (exe). 3. Atur lokasi penyimpanan program dan isi nama project yang dirancang. 4. Selanjutnya tekan tombol OK, maka proses akan memasuki tahap pertama pembuatan project baru. 5. Selanjutnya klik tombol Dialog based, karena bentuk kotak dialog yang akan dirancang. 6. Klik tombol Next>, maka proses akan memasuki tahap kedua pembuatan project baru. 7. Isi nama dari kotak dialog yang dirancang. 8. Klik tombol Next>, maka proses akan memasuki tahap ketiga pembuatan project baru. 9. Klik tombol Next>, maka proses akan memasuki tahap terakhir pembuatan project baru. 10. Klik tombol Finish, maka project baru telah tersedia.
Menambahkan Static Text Adapun langkah-langkah menambahkan Static Text adalah sebagai berikut : 1. Klik pada kontrol Static Text yang terdapat pada Toolbox. 2. Arahkan penunjuk mouse pada ke jendela aplikasi dan klik di tempat yang kita diinginkan. 3. Klik kanan pada Static Text yang berada pada jendela aplikasi dan pilih pilihan Properties. 4. Isi ID dan Caption dari Static Text yang dirancang sesuai dengan keinginan.
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
Menambahkan Tombol Adapun langkah-langkah menambahkan Tombol adalah sebagai berikut : 1. Klik pada kontrol Button yang terdapat pada Toolbox. 2. Arahkan penunjuk mouse pada ke jendela aplikasi dan klik di tempat yang kita diinginkan. 3. Klik kanan pada Button yang berada pada jendela aplikasi dan pilih pilihan Properties. 4. Isi ID dan Caption dari Button yang dirancang sesuai dengan keinginan.
Menambahkan Edit Box Adapun langkah-langkah menambahkan Edit Box adalah sebagai berikut : 1. Klik pada kontrol Edit Box yang terdapat pada Toolbox. 2. Arahkan penunjuk mouse pada ke jendela aplikasi dan klik di tempat yang kita diinginkan. 3. Klik kanan pada Edit Box yang berada pada jendela aplikasi dan pilih pilihan Properties. 4. Isi ID dan Caption dari Edit Box yang dirancang sesuai dengan keinginan.
Menambahkan Group Box Adapun langkah-langkah menambahkan Group Box adalah sebagai berikut : 1. Klik pada kontrol Group Box yang terdapat pada Toolbox. 2. Arahkan penunjuk mouse pada ke jendela aplikasi dan klik di tempat yang kita diinginkan. 3. Klik kanan pada Group Box yang berada pada jendela aplikasi dan pilih pilihan Properties. 4. Isi ID dan Caption dari Group Box yang dirancang sesuai dengan keinginan.
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
LAMPIRAN C TABEL DISTRIBUSI NORMAL
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009
TABEL DISTRIBUSI NORMAL
Ipengadohar Ezra Pangaribuan : Simulasi Sistem Antrian Pada Statistical Time Division Multiplexing Dengan Bahasa Pemrograman Visual C++ 6.0, 2007. USU Repository © 2009