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
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
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,
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
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
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
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
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
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 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.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
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
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
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 :
2. Mendapatkan kinerja dari sistem antrian tersebut, seperti delay (penundaan)
rata-rata antrian, panjang antrian rata-rata-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
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
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
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.
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
masing-masing 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].
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.
Sinyal FDM s(t) memiliki total bandwith B, dimana i n
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
.
.
.
∑
.
.
.
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
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
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
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
slot secara dinamis sesuai dengan permintaan[7]. Sebagaimana halnya dengan
synchronous TDM, statisticalmultiplexer 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
Gambar 2.5 Perbandingan Kinerja Synchronous TDM dan Statistcal TDM
Pada synchronous TDM, multiplexer memiliki laju dataoutput 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
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
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
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 datadari
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 :
α< K < 1 (2.1)
Nilai K = 1 berkaitan dengan synchronous TDM, dimana sistem memiliki kapasitas
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].
s
= Jumlah rata-rata kedatangan per detik [bps]
Ts = Waktu layanan untuk setiap kedatangan [s]
( )
1ρ-ρ ρN = Jumlah rata-rata pelanggan di dalam sistem (yang menunggu dan sedang
dilayani)
Tr = Waktu rata-rata yang dihabiskan pelanggan di dalam sistem [s]
Model ini dapat dihubungkan dengan mudah dengan statistical multiplexer.
Untuk menentukan rata-rata laju kedatangan yang terjadi dapat digunakan rumus[7] :
R
α = 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] :
M 1
Ts = (2.6)
Dengan,
Ts = Waktu pelayanan [s]
M = Kapasitas efektif saluran multiplexing [bps]
Selanjutnya, kinerja dari server atau multiplexer akan dapat dicari dengan
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
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
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
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
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
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
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.
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.5Toolbox
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
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.7Menu 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
λ
λ
Gambar 3.8 Model Sistem Antrian
3.4.2 Pembangkitan Bilangan Acak
Pembangkitan bilangan acak digunakan untuk menghasilkan deretan
angka-angka sebagai hasil perhitungan yang diketahui distribusinya sehingga angka-angka-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.
(3.1) )
)(mod
(aZ c m
Zi= i−1+
Dengan,
1 0≤Zi ≤m−
m = modulus
Z0 = nilai awal (bilangan bulat positif)
Untuk mendapatkan bilangan acak Ui (i = 1, 2,…) pada interval [0,1], maka
(3.2)
Bilangan acak yang dihasilkan dengan menggunakan metode LCG ini dapat
dilihat pada Tabel 3.1.
Tabel 3.1 Bilangan Acak Metode LCG
i Zi Ui
0 2147483647 --
1 139646976 0.065028190612793
2 82952360 0.038627702742815
3 146355436 0.0681520607322454
4 1700390088 0.7918058373034
5 533626304 0.248489111661911
6 1901565280 0.885485336184502
7 294768512 0.137262284755707
8 539969056 0.251442685723305
9 1188739904 0.553550153970718
10 2013477120 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
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
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
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] :
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,
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].
0 t A1 A1 + A2
. . . .
A1 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.
i 1
-i
i =t - lnU
t 1 (3.10)
Pada Tabel 3.2 dan 3.3 dapat dilihat waktu kedatangan yang dihasilkan
Tabel 3.2 Urutan Waktu Kedatangan dengan = 5 kedatangan/s
Tabel 3.3 Urutan Waktu Kedatangan dengan = 10 kedatangan/s
Kedatangan
Sedangkan waktu antarkedatangan pelanggan di atas dapat dilihat pada Tabel
Tabel 3.4 Waktu Interval Antar Kedatangan dengan = 5 kedatangan/s
Tabel 3.5 Waktu Interval Antar Kedatangan dengan = 2 kedatangan/s
i ∆ ti (detik)
3.4.5 Pola Pelayanan
Salah satu komponen penting dalam sistem antrian adalah karakteristik
pelayanan yang dibutuhkan oleh setiap pelanggan. Pada simulasi ini diasumsikan
demand) terdistribusi secara identik dan dikenal sebagai distribusi pelayanan.
Kecepatan pelayanan menyatakan seberapa cepat elemen pelayanan menyelesaikan
pekerjaannya, yang diperoleh dari persamaan (3.11).
M 1
Ts = (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.
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
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
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)
{ };
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()
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
λ
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.
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
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
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
. 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
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 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.
Rata - rata (mean) =
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
2. Untuk = 0,2
= 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 :
Rata - rata (mean) =
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
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
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
(a) Panjang Antrian vs Utilisasi Server
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.
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
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
LAMPIRAN A
LISTING PROGRAM PERANGKAT LUNAK
Source Code Pendeklarasian Variabel-Variabel Program Utama
// LayoutDlg.h : header file //
#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_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() };
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif //
Source Code Program Utama
// LayoutDlg.cpp : implementation file //
#include "stdafx.h" #include "Layout.h" #include "LayoutDlg.h"
//Include file Untuk Random Metode Poison
#include <time.h> // 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
//Akhir Include File Untuk Random Poison
#define RANDOM_GENERATOR TRandomMersenne // define which random number generator to use
#include "Grafik1.h"
#define new DEBUG_NEW #undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
//////////////////////////////////////////////////////////////////// /////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog {
// ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg)
protected:
//}}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) {
// 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_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
ON_BN_CLICKED(IDC_START, OnStart) ON_WM_TIMER()
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; // return TRUE unless you set the focus to a control
}