kelompok8-5-simulasi
TRANSCRIPT
JARINGAN KOMPUTER LANJUT
TUGAS SIMULASI NS2
Anggota Kelompok :
Putu Gede Surya Cipta Nugraha 1008605006
I Putu Agus Eka Darma Udayana 1008605007
I Wayan Eddy Prayoga 1008605023
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS UDAYANA
2012
ii
KATA PENGANTAR
Om Swastyastu
Puja dan puji syukur penulis panjatkan kehadirat Ida Sang Hyang Widhi
Wasa / Tuhan Yang Maha Esa, atas asung kertha wara nugrahaNya sehingga
penulis dapat menyelesaikan tugas Jaringan Komputer Lanjut yang membahas
mengenai simulasi NS2.
Penulis menyadari masih terdapat banyak kekurangan pada laporan ini,
dikarenakan keterbatasan pengetahuan yang dimiliki penulis terkait materi yang
terkandung dalam laporan ini maka dari itu kritik dan saran yang membangun dari
para dosen mata kuliah Jaringan Komputer Lanjut sangat diharapkan.
Akhir kata penulis mengucapkan semoga pikiran yang baik datang dari
segala penjuru.
Om Santhi Santhi Santhi Om
Denpasar, Oktober 2012
Penulis
iii
DAFTAR ISI
KATA PENGANTAR ............................................................................................ ii
DAFTAR ISI .......................................................................................................... iii
DAFTAR GAMBAR .............................................................................................. v
BAB I PENDAHULUAN ....................................................................................... 1
1.1 Landasan Teori .............................................................................................. 1
1.2 Tujuan ........................................................................................................... 1
1.3 Manfaat ......................................................................................................... 1
BAB II LANDASAN TEORI ................................................................................. 2
2.1 Network Simulator 2 ..................................................................................... 2
2.1.1 Komponen Pembangun NS2 .................................................................. 2
2.1.2 Dasar Bahasa TCL dan OTCL ............................................................... 3
2.1.3 Transport Agen Pada NS2 ...................................................................... 4
2.1.4 Level Aplikasi Pada NS2 ....................................................................... 7
2.1.5 Routing ................................................................................................... 7
2.1.6 Kelebihan NS2 ....................................................................................... 8
2.2 AWK ............................................................................................................. 9
2.3 Pengenalan Gnuplot .................................................................................... 13
2.3.1 Menginstal Gnuplot .............................................................................. 13
2.3.2 Format Data Pada Gnuplot ................................................................... 16
2.3.3 Perintah Sederhana Gnuplot ................................................................. 17
2.3.4 Menyimpan Tampilan Grafik Dalam Format Lain .............................. 20
BAB III HASIL PRAKTIKUM ............................................................................ 23
3.1 Scrip Simulasi NS2 ..................................................................................... 23
3.2 Delay End To End ....................................................................................... 32
3.2.1 Penjelasan Scrip ................................................................................... 34
iv
3.3 Packet Lost .................................................................................................. 37
3.3.1 Penjelasan Scrip ................................................................................... 38
3.3 Troughput .................................................................................................... 41
3.3.1 Penjelasa Scrip ..................................................................................... 44
3.4 Percobaan Pertama ...................................................................................... 47
3.5 Percobaan Kedua ......................................................................................... 52
BAB IV PENUTUP .............................................................................................. 57
4.1 Kesimpulan ................................................................................................. 57
4.2 Saran ............................................................................................................ 58
DAFTAR PUSTAKA ........................................................................................... 59
v
DAFTAR GAMBAR
Gambar 2.1 Komponen NS2 ................................................................................... 2
Gambar 2.2 Pattern Dengan Regular Ekspresi ...................................................... 11
Gambar 2.3 Contoh Hasil Pemplotan Tengan Tipe Boxes ................................... 18
Gambar 2.4 Contoh Hasil Pemplotan Dengan Tipe Tines ................................. 19
Gambar 2.5 Contoh Hasil Pemplotan Dengan Tipe Linespoints .......................... 19
Gambar 2.5 Contoh Hasil Pemplotan Dengan Tipe Toints................................... 20
Gambar 3.1 Scrip Masuk Ke Terminal Dengan Cygwin ...................................... 30
Gambar 3.2 Memanggil File simulasi.tcl .............................................................. 31
Gambar 3.3 Simulasi Dengan Nam ....................................................................... 31
Gambar 3.4 Alur Simulasi .................................................................................... 32
Gambar 3.5 Trace Format ..................................................................................... 34
Gambar 3.6 Trace Format ..................................................................................... 39
Gambar 3.7 Hasil out.tr ......................................................................................... 48
Gambar 3.8 Hasil Dari Delay End To End n0-n4 Dan n1-n5. .............................. 48
Gambar 3.9 Perintah Gnuplot ............................................................................... 49
Gambar 3.10 Hasil Dari Delay End To End n0-n4 dan n1-n5 pada Gnuplot ....... 49
Gambar 3.11 Hasil out.tr ....................................................................................... 50
Gambar 3.12 Hasil Lost Simulasi 1 ...................................................................... 50
Gambar 3.13 Scrip Troughput .............................................................................. 51
Gambar 3.14 Hasil Troughput Simulasi 1 ............................................................ 51
Gambar 3.15 Hasil out.tr ....................................................................................... 52
Gambar 3.16 Delay End To End n0-n4 dan n1-n5................................................ 53
Gambar 3.17 Scrip Gnuplot .................................................................................. 53
Gambar 3.18 Delay End To End n0-n4 dan n1-n5 Pada Gnolput ......................... 54
Gambar 3.19 Hasil out. ......................................................................................... 55
Gambar 3.20 Hasil Lost Simulasi 2 ...................................................................... 55
Gambar 3.21 Scrip Troughput .............................................................................. 56
Gambar 3.22 Hasil dari Troughput Simulasi 2 ..................................................... 56
1
BAB I PENDAHULUAN
1.1 Landasan Teori
Simulasi merupakan suatu model pengambilan keputusan dengan
mencontoh atau mempergunakan gambaran sebenarnya dari suatu sistem
kehidupan dunia nyata tanpa harus mengalaminya pada keadaan yang
sesungguhnya. Dalam simulasi digunakan komputer untuk mempelajari sistem
secara numerik, dimana dilakukan pengumpulan data untuk melakukan estimasi
statistik untuk mendapatkan karakteristik asli dari sistem.
Dalam rangka untuk lebih memahami tentang simulator NS-2, disini akan
dibahas bagaimana cara memakai simulator NS-2. Disini akan diberikan sebuah
contoh simulasi beserta penjelasan bagaimana program tersebut berjalan.
Bagaimana kita bisa menganalisa sebuah masalah yang di simulasikan dengan
NS-2 dan mengambil kesimpulan yang terbaik dari masalah tersebut. Untuk lebih
lanjut kita akan langsung ke teori dan pembahasan nya.
1.2 Tujuan
Tujuan dari jaringan komputer lanjut ini ialah agar mahasiswa :
1. Mahasiswa diharapkan mengetahui apa itu awk
2. Mahasiswa diharapkan mengetahui script awk tersebut
3. Mahasiswa diharapkan mampu menggunakan awk tersebut
1.3 Manfaat
Manfaat dari jaringan computer lanjut kali ini ialah agar mahasiswa dapat:
1. Mahasiswa mampu menjelaskan apa yang dimaksud dengan awk
2. Mahasiswa mengethui sintak / script awk tersebut
3. Mahasiswa mampu menggunakan awk tersebut untuk menghitung
delay, paket loss, throughtput dll.
2
BAB II LANDASAN TEORI
2.1 Network Simulator 2
NS2 (Network Simulator 2) dikembangkan pertama kali tahun di UCB
(University of California Berkeley) yang didukung oleh DARPA. NS2 merupakan
suatu system yang bekerja pada system Unix/Linux , NS2 juga dapat dijalankan
dalam system Windows namun harus menggunakan Cygwin sebagai Linux
Enviromentnya NS2 dibangun dari 2 bahasa pemrograman yaitu C++, sebagai
library yang berisi event scheduler, protokol , dan network component yang
diimplementasikan pada simulasi oleh user. OTcl digunakan pada script simulasi
yang ditulis oeh NS user. Otcl juga berperan sebagai interpreter . Bahasa C++
digunakan pada library karena C++ mampu mendukung runtime simulasi yang
cepat, meskipun simulasi melibatkan simulasi jumlah paket dan sumber data
dalam jumlah besar. Sedangkan bahasa Tcl memberikan respon runtime yang
lebih lambat daripada C++, namun jika terdapat kesalahan , respon Tcl terhadap
kesalahan syntax dan perubahan script berlangsung dengan cepat dan interaktif.
2.1.1 Komponen Pembangun NS2
Pengetahuan tentang komponen pembangun NS2 dan letaknya akan sangat
berguna dalam membangun simulasi. Komponen pembangun NS2 dapat dilihat
seperti gambar dibawah ini.
Gambar 2.1 Komponen NS2
3
Keterangan:
Tcl : Tool command language
Otcl : Object Tcl
TK : Tool Kit
Tclcl : Tcl/C++ Interface
NS2 : NS versi 2
Nam : Network animator
2.1.2 Dasar Bahasa TCL dan OTCL
Tcl adalah bahasa pemrograman yang didasarkan pada string – string
based command. TCL di desain untuk menjadi perekat dalam membangun
software building block untuk menjadi suatu aplikasi. Sedangkan Otcl adalah
ekstensi tambahan pada Tcl yang memungkinkan fungsi object oriented.
Berikut adalah dasar-dasar bahasa tcl yang berguna dalam membangunsimulasi :
Perintah-perintah dasar Tcl :
Syntax dasar
command arg1 arg2 arg3….
Contoh : expr 2*3
puts “ini adalah contoh command”
Variabel dan array
set
Contoh : set x “ini contoh variabel”
set y 20
Pemanggilan variabel dilakukan dengan menggunakan tanda $
puts “$x, semuanya berjumlah $y”
Array ditandai dengan menggunakan tanda kurung setelah nama array
tersebut.
Contoh : set opts (bottlenecklinkrate) 1Mb
set opts (ECN) “on”
set n(0) [$ns node]
set n(1) [$ns node]
Repetisi (loop)
4
1. While
Format : while {condition} {command}
Contoh : set i 0 while {$i <10} {set n($i)} [new node]
incr i}
2. For
Format : for {command1}{condition}{command2}{command}
Contoh : for {set i 0}{$i<100}{incr i}{set n($i)[$ns node]
Perintah kondisional
format : If {condition}{command}
contoh : if {$i<10}{puts “i is less than 10”}
Comment
simbol comment tanda #
Prosedur
1. Prosedur tanpa parameter
Format : Proc name { }{command}
Contoh : proc tampil { }{puts “ ini tampilannya”}
Cara menjalankan prosedur dengan mengetikkan : tampil
2. Prosedur dengan parameter
Format : Proc name {parameter1}{puts “nilai parameter1 adalah
$parameter1”}
Cara menjalankannya : proc2 10
2.1.3 Transport Agen Pada NS2
Pada jaringan internet, kita tahu ada 4 layer komunikasi TCP/IP yaitu:
layer aplikasi, transport, IP dan network. Lapisan transport merupakan layer
komunikasi yang mengatur komunikasi data yang akan digunakan oleh lapisan
aplikasi di atasnya. NS mensimulasikan lapisan transport dengan objek simulasi
yang bernama transport agent. Pada simulasi pengiriman data, transport agent
tidak dapat berdiri sendiri. Transport agent membutuhkan lapisan aplikasi di
atasnya yang berfungsi sebagai traffic generator.
Protokol lapisan transport data yang didukung network simulator 2 antara lain :
1. TCP ( Transport Control Protocol )
5
2. UDP (User Datagram Protocol )
3. RTP ( Real Time Transport Protocol )
1. TCP ( Transport Control protocol )
Network simulator 2 mendukung 2 jenis TCP agent, yaitu one way TCP
agent dan Two way TCP agent. Perbedaan kedua jenis TCP agent ialah:
a. Two way TCP agent mensupport proses handshaking pada saat connection
setup, sehingga koneksi dapat dibangun atau drop tergantung pada kondisi
jaringannya. Sedangkan One way TCP agent tidak mensupport proses
handshaking. Pertukaran data menggunakan agent ini diasumsikan telah
melewati proses handshaking.
b. Two way TCP agent mensupport data transfer dua arah.
c. Penomoran pada jumlah byte yang ditransfer, bukan jumlah paket.
One Way TCP Agent
Simulasi koneksi pada One way TCP dilakukan dengan menggunakan 2
agents yang berpasangan, yaitu TCP sender, dan TCP Sink.
TCP Sender Agent
Network Simulator 2 dapat mendukung beberapa jenis TCP sender agent,
diantaranya :
1. TCP Sender base ( Tahoe TCP )
Agent/TCP
2. Reno TCP
Agent/TCP/Reno
3. New Reno TCP
Agent/TCP/NewReno
4. Vegas TCP
Agent/TCP/Vegas
5. SACK ( Selective ACK ) TCP
Agent/TCP/Sack1
6. FACK ( Forward ACK ) TCP
Agent/TCP/Fack
6
TCP Sink Agent
TCP Sink bertugas mengirimkan ACK per paket yang diterima pada TCP
sender pasangannya. Beberapa macam TCP sink yang disupport oleh NS yaitu
:
1. Base TCP Sink
Agent/TCPSink
2. Delayed ACK
Agent/TCPSink/DelAck
3. Sack TCP Sinkl
Agent/TCPSink/Sack
4. Delayed Ack dengan Sack
Agent/TCPSink/Sack1/DelAck
2. UDP ( User Datagram Protocol )
Koneksi dengan menggunakan UDP pada NS2 dilakukan dengan
menggunakan agent UDP sebagai pengirim dan agent Null sebagai penerima.
UDP Sender Agent
Merupakan agent pengirim, diterapkan pada NS sebagai:
1. UDP sender agent
Agent/UDP
Agent Null
Agent Null merupakan pasangan UDP sebagai tujuan trafik.
1. Agent Null
Agent/Null
3. RTP ( Real Time Transport Protocol )
RTP menyelenggarakan end to end delivery services untuk data yang
memiliki karakteristik real time, seperti ausi (VoIP ) dan video interaktif. Layanan
tersebut termasuk identifikasi tipe payload, pengurutan, timestamping, dan
monitor pengiriman data. Sama seperti UDP, pemakai RTP sebagai agent
pengirim dipasangkan dengan agent Null sebagai penerima.
7
2.1.4 Level Aplikasi Pada NS2
Pada sistem dunia nyata,aplikasi terhubung dengan lapisan transport yang
ada dibawahnya melalui sebuah Aplication Program Interface (API). Jenis API
yang umum digunakan yaitu socket. Ada 2 tipe dasar aplikasi yang disimulasikan
pada NS2, yaitu:
a. Simulated Application
Pada saat ini baru terdapat dua jenis aplikasi yang disimulasikan oleh NS yaitu:
1. FTP
FTP dibangun untuk mensimulasikan bulk data transfer.
2. Telnet
Masing-masing aplikasi diatur oleh transport agent. Jumlah paket yang
ditransmisikan diatur oleh mekanisme flow control dan congestion control TCP.
b. Generator Traffic
Object generator traffic dibagi atas 4 type, yaitu:
1. Eksponensial
Generator traffic ini membangkitkan traffic dengan inter arrival time
antarpaket sesuai dengan fungsi eksponensial.
2. Pareto
Generator traffic ini membangkitkan traffic dengan inter arrival time
antarpaket sesuai dengan fungsi pareto. Contoh pemakaian pada simulasi:
3. CBR
Fungsi ini membangkitkan data secara kontinue dengan bit rate yang
konstan.
4. Traffic Trace
Generator ini membangkitkan traffic dari sebuah file trace.
2.1.5 Routing
Secara umum simulasi routing pada NS2 dilakukan melalui 3 blok fungsi,
yaitu routing agent yang mempertukarkan paket routing antar node, routing logic
yang menggunakan informasi yang dikumpulkan oleh routing agent untuk
8
melakukan perhitungan rute dalam bentuk table routing dan Classifier yang ada
pada node. Ada dua jenis algoritma routing yang didukung oleh NS2, yaitu :
1. Algorima routing Distance Vector
2. Algoritma routing Link-State
1. Distance Vector
Algoritma ini digunakan pada protokol routing RIP ( Routing Information
protocol ) dan IGRP ( Interior Gateway Routing Protocol). Proses
pembentukan tabel pada protokol routing yang menggunakan konsep distance
vector adalah sebagai berikut :
a. Mula – mula tabel routing yang dimiliki oleh masing – masing router
akan berisi informasi alamat jaringan yang terhubung dengan router
tersebut.
b. Secara periodik masing – masing router kan saling bertukar informasi
sehingga isi tabel routing dari semua router terisi lengkap .
Dalam NS2 algoritma routing distance vector dapat ditulis seperti dibawah ini
:
$ns rtproto DV
2. Link-State
Algoritma routing ini digunakan pada protokol routing OSPF (Open
Shortest Path First). OSPF bisa digunakan pada jaringan router dalam skala
besar dan memiliki karakteristik seperti berikut :
1. Metric-nya berdasarkan nilai cost ( bandwidth ).
2. Tidak dibatasi oleh banyaknya hop count.
3. Default administrative distance = 110.
Pada NS2 algoritma routing ini dapat dituliskan dengan perintah berikut:
$ns trproto LS
2.1.6 Kelebihan NS2
NS2 (Network Simulator 2) dikembangkan pertama kali tahun di UCB
(University of California Berkeley) yang didukung oleh DARPA, dimana NS2
(Network Simulator 2) tersebut memiliki beberapa kelebihan diantaranya :
9
1. Sebagai perangkat lunak simulasi pembantu analisis dalam riset atau
penelitian.
2. Memiliki tool validasi yang berfungsi untuk menguji validitas pemodelan
yang ada pada NS2.
3. Pembuatan simulasi lebih mudah dibandingkan dengan software developer
yang lain.
4. Bersifat open source di bawah GPL (Gnu Public License), sehingga NS2
dapat didownload melalui website NS2 di
5. Pada NS2 user tinggal membuat topologi dan skenario simulasi yang
sesuai dengan riset nya. Pemodelan media, protokol dan network
component lengkap dengan perilaku tarfiknya sudah tersedia di library
NS2.
2.2 AWK
Bahasa pemrograman AWK pertama kali dibuat pada tahun 1977 oleh
Alfred Aho, Peter Weinberger, dan Brien Kernigan. AWK adalah bahasa
pemrograman untuk memanipulasi data secara bersama hanya dengan program
yang singkat. Hal ini dikarenakan pada bahasa AWK, kita tidak memerlukan suatu
deklarasi untuk variable. Selain itu, AWK juga akan secara otomatis melakukan
handles input, field splitting, initialization, dan memory management.
Awk adalah sebuah perograman filter untuk teks, Awk dapat digunakan
untuk mencari bentuk/model dalam sebuah file teks. Awk juga dapat mengganti
bentuk satu teks ke dalam bentuk teks lain. AWK merupakan utilitas dengan
kependekan dari nama-nama belakang penciptanya yaitu: Alfred V Aho, Peter J.
Weinberger, Brian W. Kernighan Awk dapat juga digunakan untuk melakukan
proses aritmatika seperti yang dilakukan oleh perintah "expr".
Awk adalah sebuah pemrograman seperti pada shell atau C yang memiliki
karakteristik yaitu sebagai tool yang cocok untuk jobs juga sebagai pelengkap
(complicated) untuk filter standard. Jika kecepatan merupakan hal yang pokok,
awk adalah sesuatu produk bahasa yang sangat sesuai. Tetapi hanya untuk even
jobs dimana kecepatan menjadi sesuatu hal yang esensial/pokok atau utama, maka
awk dapat digunakan sebagai bentuk prototipe-nya. Meskipun awk dan shell
10
keduanya adalah bahasa pemrograman, keduanya adalah spesialis untuk aplikasi
yang berbeda. Awk sangat baik untuk manipulasi file teks, sedangkan shell sangat
baik untuk pelaksana perintah UNIX. Awk sangat cocok untuk menyelesaikan
tugas sederhana, seperti halnya penyuntingan sebuah kata untuk dicetak oleh
perintah date atau tugas komplek lainnya seperti pelayanan pengolahan sebuah
data base sederhana atau paket statistik. Adapun contoh awk untuk aplikasi
sederhana yaitu sebuah program untuk menampilkan hari dan bulan, untuk lebih
jelasnya perhatikan printah-perintah berikut.
$ cat daymonth
date | awk '{print $3}'
$ date
$ daymonth
Cara menjalankan program AWK :
AWK „program‟ input_file(s) : program dan input merupakan perintah.
AWK „program‟ : program bertindak sebagai perintah, input berasal dari
standart input.
AWK –f program_file_name input_files : program dibaca dari suatu file.
Structure dari program AWK adalah :
BEGIN segment ( optional )
Pattern-action pairs ( inputing data )
END segment ( optional )
Sumber – sumber input pemrograman AWK yaitu :
1. File – file : input AWK dapat dari file – file yang kita upload kedalam
program untuk dijadikan sebagi input dalamprogram
2. redirection (pembelokan) : input – input yang diberikan dapat dialihkan
sebagai input yang lain.
3. pipes (pipa) : proses pipa dimana output suatu proses akan dijadikan
sebagai input untuk proses yang lain
4. Standart input : input yang berasal dari keybord sebagai input unutk
suatu proses.
Simple output dari AWK :
11
Dapat menampilkan number of field ( NF )
Dapat melakukan perhitungan pada nilai field dan menampilkannya
sebagai output.
Dapat menampilkan line numbers yang kita inginkan ( NR )
Dapat menambahkan text pada output.
Dapat menampilkan output seluruh line apabila tidak terdapat pattern.
Dapat menampilkan multiple items dengan 1 print statement.
Simple Script
Sebuah awk script terdiri dari 2 bagian; yaitu "pattern dan action". Pattern
adalah serupa dengan regular expressions, dan action sama seperti bahasa C yaitu
aksi dari hasil sebuah perintah. Pattern dengan regular ekspresi diperlihatkan pada
tabel dibawah ini
.
Gambar 2.2 Pattern Dengan Regular Ekspresi
Sedangkan sintak umum dari script awk adalah sebagai berikut:
Sintak: awk -f {awk program file} filename
Pernyataan dalam program AWK
Pattern { action 1 action 2 action N }
Didalam program awk, pattern diikuti oleh action, dengan tanda kurung kurawal {
} yang mengelilingi setiap action. Sebuah action adalah pelaksana jika pattern
12
sesuai dengan sesuatu yang ada didalam baris input. Jika bagian pattern tidak ada,
action akan melakukan aksi untuk tiap-tiap baris dalam file. Jika action
absen/tidak ada, maka default action yaitu mencetak baris dilaksanakan. Bentuk
pattern "paris" didalam standard input diperlihatkan pada contoh berikut:
$ cat findparis
awk /paris/
$ echo an american in Georgia | findparis
$ echo an american in paris | findparis
Diperlihatkan pada contoh program diatas, terdiri dari sebuah pattern |paris| dan
tidak ada action. Ekuivalen program dengan menggunakan default action (print)
seperti contoh dibawah ini.
$ cat findparis
awk '/paris/ {print}'
$ echo an american in Georgia | findparis
$ echo an american in paris | findparis
Tanda kutip didaerah sekitar awk script merupakan suatu kebutuhan, sebab
script akan bernilai kosong jika tanpa tanda kutip. Salah satu tanda kutip tunggal
atau ganda sudah mencukupi untuk contoh diatas. Perintah print didalam program
"findparis" untuk mencetak seluruh baris mungkin juga bisa untuk mencetak
konstanta, karakter dari baris input, dan juga mencetak argument, disamping itu
pada program ini tidak memiliki parameter.
Sebuah contoh print dengan argument dalam awk yang menggunakan parameter
$3 adalah sebagai berikut:
$ date | awk {print $3}‟
Program awk untuk mengambil argumen dari sebuah file seperti berikut ini:
$ cat prarg.awk
{ print $3 }
$ date | awk –f prarg.awk
Pada argumen flag –f dan menyertakan nama file yang berisi awk
digunakan untuk menampilkan isi file program awk. { print $3 } membuat awk
membaca input dari nama file atau dari input standard (keyboard).
13
2.3 Pengenalan Gnuplot
Gnuplot adalah suatu progam grafik interaktif yang berbasis CLI
(command-line interface). Program ini sangat mudah digunakan dan sebenarnya
hanya memiliki 2 perintah untuk membuat suatu gambar plot, yaitu perintah : plot
dan splot. Program ini dapat menghasilkan banyak macam grafik dengan banyak
pilihan untuk mengubahnya dan dapat disimpan ke dalam bermacam-macam
divais grafik (terminal grafik, printer atau ploter). Kemudahan dalam penggunaan
dan keserderhaan perintah-perintahnya tidaklah mengurangi kualitas kemampuan
program ini, oleh karena itu program gnuplot mempunyai beberapa macam
kemampuan, yaitu sebagai berikut :
_ Memplot deretan data univariat (misalnya time series)
Memplot sederhana suatu fungsi yang didefinisikan pengguna baik pada
sistem koordinat Cartesius maupunpolar
Scatter plot data bivariat dengan pilihan errorbar
Grafik batang
Memplot permukaan 3 dimensi suatu fungsi seperti z = f(x,y) dengan
beberapa pilihan
Scatter plot 3 dimensi data trivariat
Memplot 2 dan 3 dimensi suatu fungsi parametrik
Memplot data secara langsung dari tabel yang dihasilkan oleh aplikasi
yang lain
Memplot berulang pada suatu variasi devais grafik yang lain.
2.3.1 Menginstal Gnuplot
Ada beberapa cara untuk menginstal program gnuplot di lingkungan linux
maupun windows. Cara yang paling mudah adalah menginstal gnuplot dari file
biner (*.rpm, *.deb, *.zip, *.exe) atau menginstal dari paket yang terdapat pada
distributor seperti SuSE, EasyLinux, RedHat, Debian, Mandrake, dan lain-lain.
Biasanya setiap distributor memberikan cara tertentu untuk menginstal program
yang ada pada paket program yang dipaketkannya. Lihat panduan instalasi Linux
pada tiap-tiap distributor yang digunakan. Cara yang lain adalah menginstal dari
source code gnuplot yang dapat didownload melalui situs resmi gnuplot (lihat
14
lampiran A). Langkah-langkah pre-instalasi gnuplot dari source code adalah
sebagai berikut (khusus Linux/Unix):
Download file gnuplot-3.7.1.tar.gz dari salah satu server gnuplot. Jika
ingin menginstal library GIF (untuk terminal GIF), download file
gd1.4.tar.gz. Jangan lupa download juga file-file dokumentasinya,
misalnya file gnuplot.pdf.gz, gp-ps.zip, dan lain-lain.
Ekstrak file yang terkompres tar tersebut dengan perintah tar -xvzf
gnuplot-3.7.1.tar.gz pada direktor /usr/src/packages (hanya untuk
memudahkan pencarian). Jangan lupa login sebagai root atau superuser
sebelum memulai instalasi. Proses ekstraksi ini akan membuat direktori
gnuplot-3.7.1 secara otomatis, yang berisi file-file source code gnuplot.
Langkah selanjutnya adalah instalasi.
Pertama, ekstrak dan instal file gd1.4.tar.gz, perintahnya sama dengan
perintah pada instalasi gnuplot yang akan diterangkan berikut ini.
Lokasi default file-file pada program gnuplot:
PREFIX /usr/local
gnuplot PREFIX/bin
gnuplot_x11 PREFIX/bin
gnuplot.1 PREFIX/man/man1
gnuplot.gih PREFIX/share
Perintah instalasi adalah sebagai berikut ($ artinya direktori tempat source code
disimpan, misalnya root@hiranya: /usr/src/packages/gnuplot-3.7.1 >):
$ ./configure
$ make
$ make install
Jika gcc terinstal, akan digunakan sebagai default. Jenis kompiler yang lain dapat
juga digunakan melalu variabel CC:
(Bourne shell atau bsh, atau bash )
$ CC=c89 ./configure
(C shell atau csh)
$ setenv CC c89
$ ./configure
15
File demo gnuplot tidak diinstal secara default. Jika diinginkan, file-file ini
harus disalin secara manual ke suatu direktori yang dipilih, misalnya
/usr/local/share/docs/gnuplot/demo. Menginstal gnuplot di lingkungan windows
dari source code lebih sulit dibandingkan pada lingkungan Linux atau Unix,
karena dibutuhkan suatu kompiler yang harus diinstal terlebih dahulu. Program ini
harus dibeli di luar basis sistem operasi MSWindows/DOS. Beberapa kompiler
yang bisa dipakai untuk menginstal gnuplot di lingkungan MSWindows, meliputi
Microsoft C 7.0, Borland C++, Visual C++, MinGW32 (membutuhkan Microsoft
SDK), dan Cygwin (membutuhkan Microsoft SDK). Perintahnya tidak akan
dijelaskan di sini, karena pada server gnuplot telah tersedia file biner terkompres
program ini. File-file tersebut adalah gp37w16.zip (untuk MSWindows 3.1),
gp37w32.exe dan gp371w32.zip (untuk MS Windows 9x/nt). Untuk menginstal
file ini dapat dilakukan dengan langkah-langkah sebagai berikut:
Ekstrak file gp37w16.zip, gp371w32.zip, atau gp37w32.exe
(autoextracted) pada direktori Programme (hanya untuk pengelompokan
supaya lebih mudah dalam pencarian). Gnuplot akan membuat direktori
baru, gp37w16 atau gp37w32 atau gp371w32 yang berisi file-
file: wgnuplot.exe atau wgnuplot32.exe, wgnuplot.dll,
wgnuplot.hlp, dan wgnuplot.mnu.
Untuk menjalankan gnuplot ini, panggil file wgnuplot.exe atau
wgnuplot32.exe dari perintah run.
File gnuplot terkompres untuk windows 16 bit (gp37w16.zip)
tidak menyertakan file-file demo. Jika file ini diinginkan dapat di ekstrak
dari source code lalu dicopy.
Jika instalasi dilakukan dengan benar dan gnuplot dijalankan, maka tampilan
pembuka gnuplot dapat dilihat seperti berikut ini :
$ gnuplot
G N U P L O T
Linux version 3.7
patchlevel 1
last modified Fri Oct 22 18:00:00 BST 1999
Copyright(C) 1986 - 1993, 1998, 1999
16
Thomas Williams, Colin Kelley and many others
Type ‘help‘ to access the on-line reference manual
The gnuplot FAQ is available from
http://www.ucc.ie/gnuplot/gnuplot-faq.html
Send comments and requests for help to info-
Send bugs, suggestions and mods to <bug
Terminal type set to ’x11’
gnuplot>
2.3.2 Format Data Pada Gnuplot
Gnuplot dapat menghasilkan bermacam-macam grafik dari data yang
tertabulasi. Kaidah penting dari organisasi data adalah mekanisme gnuplot
yang membaca data tiap baris. Contoh data yang paling sederhana adalah data seri
yang terdiri dari koordinat-x dan koordinat-y. Perintah plot ‟<data-filename>‟
akan memplot nilai data seri yang terdapat pada file tersebut.
File yang mengandung data harus disimpan dalam bentuk ASCII dengan
nama misal fileku.dat. Hal yang penting dalam membuat file ASCII ini
adalah data-data berupa angka yang disusun berdasarkan kolom dan di antara
kolom satu dengan lainnya dipisahkan satu atau lebih spasi. Data yang dapat
dibaca oleh program ini adalah teks atau ASCII dalam bentuk baris dan kolom
yang tidak terbatas (tergantung kemampuan komputer untuk mengolahnya).
Format file data adalah sebagai berikut:
# contoh file ---> disimpan dengan nama bebas
# tanda ’#’ tidak dibaca oleh gnuplot, seperti ’rem’ pada program
basic
#
17
Contoh data:
# contoh file fileku.dat
#
0 37.76
1 31.30
2 29.33
4 26.65
8 21.65
16 14.68
32 7.45
42 5.48
Hampir semua jenis program spreadsheet seperti Microsoft Excel,
StarCalc, Lotus 1-2-3, Quatro, Gnumeric atau spreadsheet yang disediakan oleh
program grafik yang lain misalnya Scigraphica, Grapher, Origin, Sigmaplot,
SPSS, dsb. dapat dipakai untuk menghasilkan data dalam format ASCII. Caranya
yaitu dengan memakai perintah save as pada menu File ke dalam format teks
(*.txt) dan dipilih karakter pemisah antar kolomnya. Dalam program spreadsheet
biasanya ada 3 pilihan untuk memisahkan data berdasarkan kolom dalam format
ini, yaitu spasi, tab dan koma. Gnuplot hanya bisa membaca pemisah kolom
berupa spasi dan/atau tab.
2.3.3 Perintah Sederhana Gnuplot
Secara default gnuplot akan menset terminal keluaran ke terminal x11
atau windows (monitor). Perintah utama untuk menampilkan grafik pada
18
program ini adalah plot dan splot. Perintah plot digunakan untuk memplot
grafik dua dimensi, sedangkan perintah splot untuk memplot grafik tiga
dimensi. Mari kita lihat contoh perintah berikut ini.
gnuplot> plot [-pi:pi*2] sin(x)
gnuplot> plot f(x) = sin(x*a), a = .2, f(x), a = .4, f(x)
gnuplot> plot [t=1:10] [-pi:pi*2] tan(t)
Selain untuk memplot fungsi matematis di atas, dengan perintah sederhana dapat
diplot suatu data numerik. Sebagai contoh, membuat diagram balok dari sebuah
penelitian terhadap pertumbuhan rumput laut Gracilaria sp., Sargassum sp. dan
Caulerpa sp. File data hasil penelitian adalah sebagai berikut:
0 3 2 2
3 6 4 5
6 8 7 8
9 10 11 12
Data tersebut disimpan dalam file gambarku.dat. Bila kita ingin menampilkan
grafik ini ke suatu terminal keluaran yang ditentukan dapat dilakukan dengan
menggunakan perintah plot (lihat contoh berikut):
Contoh:
gnuplot> plot "gambarku.dat" using 1:2 with boxes
Adapun hasil dari perintah ini adalah seperti pada gambar di bawah ini.
Gambar 2.3 Contoh Hasil Pemplotan Tengan Tipe Boxes
19
Dari file gambarku.dat dapat dimodifikasi beberapa macam grafik dan itu berasal
dari beberapa perintah tentunya seperti contoh di bawah ini :
gnuplot> plot "gambarku.dat" using 1:2 with lines
gnuplot> plot "gambarku.dat" using 1:2 with linespoints
gnuplot> plot "gambarku.dat" using 1:2 with points
Selain memplot dengan cara pemanggilan file seperti di atas, gnuplot dapat juga
memplot data yang dimasukkan secara interaktif, misalnya jika kita akan memplot
data di atas untuk kolom 1:2 perintahnya adalah sebagai berikut:
Gambar 2.4 Contoh Hasil Pemplotan Dengan Tipe Tines
Gambar 2.5 Contoh Hasil Pemplotan Dengan Tipe Linespoints
20
Gambar 2.5 Contoh Hasil Pemplotan Dengan Tipe Toints
gnuplot> plot "-" with lines
0 3
3 6
6 8
9 10
<CTRL-D>
Dari contoh grafik di atas masih terdapat beberapa kekurangan, misalnya:
Legenda masih default dari program gnuplot
Keterangan sumbu X dan Y belum diset
Ukuran grafik masih ditampilkan secara default
2.3.4 Menyimpan Tampilan Grafik Dalam Format Lain
Apabila dari tampilan grafik yang dihasilkan akan digunakan untuk
melengkapi suatu tulisan atau tujuan lainnya, tentunya tampilan grafik tersebut
harus dapat disimpan dalam format grafik tertentu tergantung keperluan. Gnuplot
menyediakan bermacam-macam terminal keluaran yang bisa digunakan untuk
menyimpan file dalam format grafik, misalnya postscript, cgm, hpgl, cdw, gif,
png, pnm, TeX, dan sebagainya. Jika suatu gambar akan digabungkan ke dalam
teks atau gambar dengan kualitas cetak tinggi, format keluaran jenis postscript
atau TEX sangat bagus digunakan. Perintah untuk menampilkan file dalam format
lain adalah set terminal dan set output. Sebagai contoh untuk keluaran jenis
postscript, perintahnya adalah sebagai berikut:
gnuplot> set term postscript landscape color "Roman" 12
21
gnuplot> set output "gambarku.ps"
gnuplot> plot "gambarku.dat" using 1:2 with lines
Jika perintah ini dijalankan maka di layar monitor tidak akan ada tampilan
apa-apa. Namun untuk melihat hasil tampilan tersebut, diperlukan sebuah program
yang dapat menampilkan file postscript (*.ps). Di lingkungan Linux terdapat
beberapa program yang dapat menampilkan jenis file ini, contohnya adalah PS
Viewer (KDE), ghostview, sedangkan di lingkungan MS Windows ada Aladin
GSView. Penjelasan dari perintah-perintah di atas adalah sebagai berikut :
Set term postscript digunakan untuk menentukan tampilan grafik yang
akan disimpan dalam file postscript.
Landscape atau portrait digunakan untuk menentukan bentuk tampilan
dalam landscape atau portrait.
Color digunakan untuk menentukan tampilan grafik dalam bentuk
berwarna (default monochrom).
"Roman" atau "Helvetica" digunakan untuk menentukan jenis huruf dari
tulisan yang akan digunakan.
Angka 12 menyatakan nilai besar-kecil huruf dari tulisan yang akan
digunakan.
Set output digunakan untuk memberikan nama file yang diinginkan.
Di samping sebagai file postscript yang bisa digabung dengan teks pada
program pengolah teks seperti LATEX, Lyx atau program pengolah gambar
seperti Xfig, Gimp, Tgif, gnuplot dapat juga menghasilkan keluaran dalam format
yang lain tergantung dari terminal yang dipilih. Misalnya untuk keperluan
website, gnuplot bisa menghasilkan format PNG (Portable Network Graphics)
atau GIF (Compuserve Graphics Interchange Format). Sebetulnya bisa juga
dalam bentuk JPEG, tetapi untuk grafik jenis vektor, format ini tidak bagus karena
data yang hilang ketika dilakukan kompresi saat penyimpanan. Untuk melihat
macam-macam terminal yang disediakan oleh gnuplot dapat dilakukan dengan
perintah berikut ini (keluarannya diambil beberapa contoh) :
gnuplot> set term
Available terminal types:
22
unknown Unknown terminal type - not a plotting device
table Dump ASCII table of X Y [Z] values to output
linux Linux PC with (s)vgalib
xlib X11 Window System (gnulib_x11 dump)
x11 X11 Window System
X11 X11 Window System (identical to x11)
aifm Adobe Illustrator 3.0 Format
cgm Computer Graphics Metafile
corel EPS format for CorelDRAW
fig FIG 3.1 graphics language: X graphics editor
postscript PostScript graphics language [mode "fontname"
font_size]
tgif TGIF X11 [mode] [x,y] [dashed] ["font" [fontsize]]
23
BAB III HASIL PRAKTIKUM
Dalam menjalankan simulasi ns-2, semua jenis-jenis file (tcl,awk dll) yang
akan digunakan dalam proses simulasi dapat diletakan pada folder cygwin : C://
cygwin/home/user.
3.1 Scrip Simulasi NS2
#Membuat sebuah objek simulator
set ns [new Simulator]
#Mendefinisikan warna berbeda untuk aliran data (untuk NAM)
$ns color 1 blue
$ns color 2 red
#Buka file trace NAM
set nf [open out.nam w]
$ns namtrace-all $nf
#Buka file trace TraceFile
set trFile [open out.tr w]
$ns trace-all $trFile
#Mendefinisikan Prosedur 'finish'
proc finish {} {
global ns nf
$ns flush-trace
#Close the NAM trace file
close $nf
#Execute NAM on the trace file
exec nam out.nam &
exit 0
}
#Membuat enam buah node
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
24
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]
#Membuat penghubung (link) antara node-node
$ns duplex-link $n0 $n2 4Mb 10ms DropTail
$ns duplex-link $n1 $n2 4Mb 10ms DropTail
$ns duplex-link $n2 $n3 2Mb 20ms DropTail
$ns duplex-link $n4 $n3 4Mb 10ms DropTail
$ns duplex-link $n5 $n3 4Mb 10ms DropTail
#Mengeset ukuran antrian dari link (n2-n3) menjadi 10
$ns queue-limit $n2 $n3 10
#Memberikan posisi node (untuk NAM)
$ns duplex-link-op $n0 $n2 orient right-down
$ns duplex-link-op $n1 $n2 orient right-up
$ns duplex-link-op $n2 $n3 orient right
$ns duplex-link-op $n3 $n4 orient right-up
$ns duplex-link-op $n3 $n5 orient right-down
#Monitor antrian untk link (n2-n3). (untuk NAM)
$ns duplex-link-op $n2 $n3 queuePos 0.5
#Mengatur sebuah koneksi TCP
set tcp [new Agent/TCP]
$tcp set class_ 2
$ns attach-agent $n0 $tcp
set sink [new Agent/TCPSink]
$ns attach-agent $n4 $sink
$ns connect $tcp $sink
$tcp set fid_ 1
#Mengatur FTP melalui koneksi TCP
set ftp [new Application/FTP]
$ftp attach-agent $tcp
$ftp set type_ FTP
25
# Mengatur sebuah koneksi UDP
set udp [new Agent/UDP]
$ns attach-agent $n1 $udp
set null [new Agent/Null]
$ns attach-agent $n5 $null
$ns connect $udp $null
$udp set fid_ 2
#Mengatur CBR melalui koneksi UDP
set cbr [new Application/Traffic/CBR]
$cbr attach-agent $udp
$cbr set type_ CBR
$cbr set packet_size_ 1000
$cbr set rate_ 1mb
$cbr set random_ false
#Jadwal event untuk CBR dan FTP agents
$ns at 0.1 "$cbr start"
$ns at 1.0 "$ftp start"
$ns at 4.0 "$ftp stop"
$ns at 4.5 "$cbr stop"
#Memanggil prosedur finish setelah 5 detik dari waktu simulasi
$ns at 5.0 "finish"
#Mencetak Ukuran paket dan interval CBR
puts "CBR packet size = [$cbr set packet_size_]"
puts "CBR interval = [$cbr set interval_]"
#Menjalankan simulasi
$ns run
Penjelasan Source Code
set ns [new Simulator]
26
Pada proses ini kita akan membuat sebuah simulator, dimana pembuatan
simulator ini menggunakan sebuah objek simulator yaitu ns.
$ns color 1 blue
$ns color 2 red
Untuk proses selanjutnya kita akan menentukan warna dari kedua protocol
yang akan kita gunakan. Warna-warna tersebut bisa kita setting dengan
warna yang kita inginkan
set nf [open out.nam w]
$ns namtrace-all $nf
Pada proses ini kita mensetting code yang kita buat agar bisa dibuka dalam
bentuk animasi, animasi tersebut nantinya akan kita buka dengan NAM
(network animator).
set trFile [open out.tr w]
$ns trace-all $trFile
Pada proses ini kita akan membuat keluaran dari trace file, dimana
keluarannya memiliki nama out.tr. Out.tr tersebut berisikan deretan angka-
angka dari proses pengiriman data yang telah berlangsung. Out.tr ini
digunakan untuk analisa numerik
Trace File (out.tr) ini sangat penting, karena proses ini yang akan
digunakan untuk menghitung suatu delay, packetloss dan throughput dari
suatu pengiriman data.
Kejadian yang dicatat dari ns :
r : receive
+ : enqueque
- : dequeque
D : drop
proc finish {} {
27
global ns nf
$ns flush-trace
#Close the NAM trace file
close $nf
#Execute NAM on the trace file
exec nam out.nam &
exit 0
}
Pada proses ini kita akan membuat prosedur finish, dalam proses ini
setelah proses pemprosesan dari semua code yang telah buat, code-code
tersebut akan di execute dan disimpan dengan nama out.nam
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]
Pada proses ini kita akan membuat node-node dari simulasi yang akan kita
buat.
$ns duplex-link $n0 $n2 4Mb 10ms DropTail
$ns duplex-link $n1 $n2 4Mb 10ms DropTail
$ns duplex-link $n2 $n3 2Mb 20ms DropTail
$ns duplex-link $n4 $n3 4Mb 10ms DropTail
$ns duplex-link $n5 $n3 4Mb 10ms DropTail
Pada proses ini kita akan membuat link, dimana link ini berfungsi untuk
menghubungkan node-node yang telah kita buat tadi.
$ns duplex-link $n0 $n2 4Mb 10ms DropTail
Duplex : suatu metode yang digunakan dalam aliran komunikasi
$n0 $n2 : node yang akan dihubungkan
4 mb : bandwidth yang dimiliki dalam link tersebut
10ms : Delay antara n0 dan n2
Drop Tail : Jenis antrian yang digunakan
28
Berikut ini merupakan hasil dari node-node yang telah dihubungkan.
Dimana pada setiap link sudah memiliki bandwidth dan delay yang sudah
di tentukan.
$ns queue-limit $n2 $n3 10
Pada proses ini kita akan mengeset antrian pada node 2 ke node 3. Jika
makin kecil antrian yang kita set maka packetloss data akan banyak
terjadi.
$ns duplex-link-op $n0 $n2 orient right-down
$ns duplex-link-op $n1 $n2 orient right-up
$ns duplex-link-op $n2 $n3 orient right
$ns duplex-link-op $n3 $n4 orient right-up
$ns duplex-link-op $n3 $n5 orient right-down
Pada proses ini kita akan mengatur posisi node yang akan kita buat.
set tcp [new Agent/TCP]
$tcp set class_ 2
$ns attach-agent $n0 $tcp
set sink [new Agent/TCPSink]
$ns attach-agent $n4 $sink
$ns connect $tcp $sink
$tcp set fid_ 1
Pada proses ini kita akan mengatur protocol TCP. Simulasi TCP
menggunakan koneksi One way. TCP dilakukan dengan menggunakan 2
agents yang berpasangan, yaitu TCP sender, dan TCP Sink.
TCP Sender berfungsi untuk mengirim packet data sedangkan TCP Sink
untuk menerima packet data tersebut
Dalam code diatas kita mengeset node n0 sebagai TCP Agent / Sender
dan node n4 kita set sebagai TCP Sink. Dan protocol TCP menggunakan
warna biru dalam transmisi network animatornya.
set ftp [new Application/FTP]
29
$ftp attach-agent $tcp
$ftp set type_ FTP
Pada proses ini kita akan menyetting protocol FTP, dimana protocol FTP
ini bergerak pada protocol TCP
set udp [new Agent/UDP]
$ns attach-agent $n1 $udp
set null [new Agent/Null]
$ns attach-agent $n5 $null
$ns connect $udp $null
$udp set fid_ 2
Pada proses ini kita akan mengatur protocol UDP. Koneksi dengan
menggunakan UDP pada NS2 dilakukan dengan menggunakan agent UDP
sebagai pengirim dan agent Null sebagai penerima.
UDP Agent berfungsi untuk mengirim data diagram sedangkan UDP Null
untuk menerima data diagram
Dalam code diatas kita menyetting node n1 sebagai UDP Agent dan node
n5 sebagai UDP Null. Dan protocol UDP menggunakan warna merah
dalam transmisi network animatornya.
set cbr [new Application/Traffic/CBR]
$cbr attach-agent $udp
$cbr set type_ CBR
$cbr set packet_size_ 1000
$cbr set rate_ 1mb
$cbr set random_ false
Pada proses diatas kita akan mengatur Object Generator Trafiic CBR.
Dimana CBR ini akan bergerak pada protocol UDP. Pada traffic CBR ini
akan mengirim packet sebesar 1000 byte dan besar rate pengiriman 1mb
$ns at 0.1 "$cbr start"
$ns at 1.0 "$ftp start"
$ns at 4.0 "$ftp stop"
$ns at 4.5 "$cbr stop"
30
Pada proses ini kita mengatur jadwal event atau proses dari protocol TCP
dan UDP.
$ns at 5.0 "finish"
Pada proses diatas kita akan mengatur prosedur finish setelah 5 detik dari
waktu simulasi
puts "CBR packet size = [$cbr set packet_size_]"
puts "CBR interval = [$cbr set interval_]"
Pada proses ini kita akan menampilkan packet size dan CBR interval pada
layar ns 2 setelah simulasi dijalankan. Perintah puts () sebenarnya sama
dengan printf(), yaitu digunakan untuk mencetak string ke layar
$ns run
Proses diatas adalah perintah untuk menjalankan scrip simulasi yang telah
kita buat. Jika proses ini tidak berikan makan proses tidak bisa berjalan.
Proses Menjalankan Simulasi
1. Script simulasi yang tertera diatas tersebut bisa dibuat dengan
menggunakan program aplikasi notepad++
2. Setelah script selesai dibuat simpan script tersebut kedalam folder C//:
Cygwin/home/user dengan format tcl (namafile.tcl)
Gambar 3.1 Scrip Masuk Ke Terminal Dengan Cygwin
3. Selanjutnya buka terminal cygwin untuk menjalankan aplikasi ns 2 (jika
belum terinstall, bisa di install terlebih dahulu) dan ketikan perintah
“startx” untuk menjalankan.
31
4. Setelah mengetikan perintah tersebut, aplikasi ns-2 akan berjalan. Untuk
menjalankan script simulasi yang telah kita buat tadi gunakan perintah : ns
namafile.tcl
Gambar 3.2 Memanggil File simulasi.tcl
5. Setelah perintah tersebut dioperasikan maka akan keluar tampilan NAM,
dimana tampilan tersebut akan menampilkan network animator dari script
yang telah kita buat.
Gambar 3.3 Simulasi Dengan Nam
6. Setalah keluar tampilan NAM seperti gambar diatas, script tersebut bisa
dijalankan dengan menggunakan tombol play pada bagian atas dari NAM
32
Gambar 3.4 Alur Simulasi
7. Pada gambar diatas merupakan hasil dari script yang telah dijalankan
3.2 Delay End To End
Berikut Scrip untuk menentukan delay end to end dari dua percobaan yang
telah kami lakukan :
BEGIN { highest_packet_id=0; }
{
action = $1;
time = $2;
from = $3;
to = $4;
type = $5;
pktsize = $6;
flow_id = $8;
src = $9;
dst = $10;
seq_no = $11;
packet_id = $12;
33
if ( packet_id > highest_packet_id )
highest_packet_id = packet_id;
if ( start_time[packet_id] == 0 )
start_time[packet_id] = time;
if ( flow_id == 2 && action != "d" )
{
if( action == "r" )
{ end_time[packet_id] = time; }
else
{ end_time[packet_id] = -1; }
}
}
END {
for(packet_id=0; packet_id < highest_packet_id; packet_id++)
{
start = start_time[packet_id];
end = end_time[packet_id];
packet_duration = end-start;
if( start < end )
{
printf("%f %f\n",start, packet_duration);
}
}
}
34
3.2.1 Penjelasan Scrip
Untuk dapat memahami scrip awal dari scrip untuk menentukan delay end
to end, kita harus memahami Trace Format dari hasil output dari pengujian yang
berupa out.tr. Brikut penjelasan Trace Format :
Gambar 3.5 Trace Format
action = $1;
time = $2;
from = $3;
to = $4;
type = $5;
pktsize = $6;
flow_id = $8;
src = $9;
dst = $10;
seq_no = $11;
packet_id = $12;
Dari scrip di atas dapat dilihat bahwa setiap Trace Format didefinisikan dengan
$1, $2 dan seterusnya. Dimana secara lebih jelas dapat diartikan bahwa action =
$1; merupakan definisi karakter terdepan dari data out.tr yang dapat berupa r, +, -
35
, dan d. Untuk $2 merupakan karakter ke dua dari data out.tr begitu seterusnya
sampai $12.
if ( packet_id > highest_packet_id )
highest_packet_id = packet_id;
if ( start_time[packet_id] == 0 )
start_time[packet_id] = time;
if ( flow_id == 2 && action != "d" )
{
if( action == "r" )
{ end_time[packet_id] = time; }
else
{ end_time[packet_id] = -1; }
}
}
Scrip di atas merupakan pengkondisian yang nantinya akan mempengaruhi untuk
menentukan start, end dan packet_duration. Misal dalam kasus data out.tr berikut :
r 4.04264 3 4 tcp 1040 ------- 1 0.0 4.0 273 1038
Kondisi 1 :
if ( packet_id > highest_packet_id )
highest_packet_id = packet_id;
if ( 1038 > 0 )
highest_packet_id = 1038;
Jadi kini highest_packet_id bernilai 1038.
Kondisi 2 :
if ( start_time[packet_id] == 0 )
start_time[packet_id] = time;
if ( start_time[packet_id] == 0 )
start_time[packet_id] = time;
Karena pada kasus di atas data oacket_id tidak memenuhi syarat maka start_time
packet_id nilainya tidak berubah.
Kondisi 3 :
36
if ( flow_id == 2 && action != "d" )
{
if( action == "r" )
{ end_time[packet_id] = time; }
else
{ end_time[packet_id] = -1; }
}
Untuk kondisi ketiga flow_id pada kasus bernilai 1, maka ia tidak sesuai dengan
konsisi di atas sehingga sesuai scrip else maka end_time packet_id bernilai -1.
Kondisi Keempat :
END {
for(packet_id=0; packet_id < highest_packet_id;
packet_id++)
{
start = start_time[packet_id];
end = end_time[packet_id];
packet_duration = end-start;
if( start < end )
{
printf("%f %f\n",start, packet_duration);
}
}
}
Scrip di atas merupakan perulangan yang nantinya akan menghasilkan output
berupa variable start, dan packet_duration. Dengan ketentuan :
start = start_time[packet_id];
end = end_time[packet_id];
packet_duration = end-start;
Sehinggan jika nantinya di ekseskusi dengan menggunakan perintah :
%awk -f delay.awk out.tr > delay.txt
37
Hasil dari perintah diatas akan menghasilkan data yang tersimpan dalam format
.txt, dimana isinya adalah sebagai berikut (hanya sebagia data yang ditampilkan)
:
0.468000 0.048000
0.476000 0.048000
0.484000 0.048000
3.3 Packet Lost
Di bawah ini merupakan scrip yang digunakan untuk mengetahui loss
secara global dari simulasi yang kami lakukan :
BEGIN { fsDropsTCP = 0; numFsTCP = 0; fsDropsUDP = 0; numFsUDP =
0; }
{
action = $1;
time = $2;
from = $3;
to = $4;
type = $5;
pktsize = $6;
flow_id = $8;
src = $9;
dst = $10;
seq_no = $11;
packet_id = $12;
if ( from == 0 && to == 2 && action == "+" )
{ numFsTCP++; }
if ( flow_id == 1 && action == "d" )
38
{ fsDropsTCP++; }
if ( from == 1 && to == 2 && action == "+" )
{ numFsUDP++; }
if ( flow_id == 2 && action == "d" )
{ fsDropsUDP++; }
}
END{
a = numFsTCP + numFsUDP;
b = fsDropsTCP + fsDropsUDP;
printf("number of packets sent TCP:%d lost
TCP:%d\n",numFsTCP, fsDropsTCP);
printf("number of packets sent UDP :%d lost UDP
:%d\n",numFsUDP, fsDropsUDP);
printf("number of packets sent Total :%d lost Total:%d\n",a,
b);
}
3.3.1 Penjelasan Scrip
Sama seperti saat membuat scrip delay, yang harus dipahami terlebih
dahulu adalah Trace Format yang merupakan hasil output dari pengujian yang
berupa out.tr. Brikut penjelasan Trace Format :
39
Gambar 3.6 Trace Format
action = $1;
time = $2;
from = $3;
to = $4;
type = $5;
pktsize = $6;
flow_id = $8;
src = $9;
dst = $10;
seq_no = $11;
packet_id = $12;
Dari scrip di atas dapat dilihat bahwa setiap Trace Format didefinisikan dengan
$1, $2 dan seterusnya. Dimana secara lebih jelas dapat diartikan bahwa action =
$1; merupakan definisi karakter terdepan dari data out.tr yang dapat berupa r, +, -
, dan d. Untuk $2 merupakan karakter ke dua dari data out.tr begitu seterusnya
sampai $12.
Kondisi 1 :
if ( from == 0 && to == 2 && action == "+" )
{ numFsTCP++; }
Untuk from == 0 dapat diartikan sebagai node awal datangnya data yaitu dari
node 1. to == 2 merupakan node tujuan dari node 1. action == "+"
40
merupakan karakter terdepan dari hasil out.tr. Jika ketiga variable tersebut
memenuhi syarat maka { numFsTCP++; } atau sent akan terus bertambah, sesuai
dengan data sent yang dikirim dalam simulasi ini. Begitu juga berlaku aturan yang
sama untuk UDP.
Kondisi 2 :
if ( flow_id == 1 && action == "d" )
{ fsDropsTCP++; }
Untuk konisi kedua ini ketika data dari out.tr ada yang bernilai seperti kententuan
( flow_id == 2 && action == "d" ), d Drop maka { fsDropsTCP++; } ,
dengan kata lain paket lost akan terdapat pada simulasi ini dan akan terus
bertambah jika bertemu dengan data yang sesuai dengan kondisi diatas. Begitu
juga berlaku aturan yang sama untuk UDP.
a = numFsTCP + numFsUDP;
b = fsDropsTCP + fsDropsUDP;
printf("number of packets sent TCP:%d lost
TCP:%d\n",numFsTCP, fsDropsTCP);
printf("number of packets sent UDP :%d lost UDP
:%d\n",numFsUDP, fsDropsUDP);
printf("number of packets sent Total :%d lost Total:%d\n",a,
b);
Scrip di atas merupakan scrip yang digunakan untuk menampilkan output dari
packet lost dan sent, dimana paket lost didefinisikan dengan fsDropsTCP dan
yang dikirim didefinisikan dengan numFsTCP. Begitu juga berlaku aturan yang
sama untuk UDP dan total.
Untk mengeksekusi Packet Lost kita gunakan perintah :
%awk -f packetlost.awk out.tr
Sehingga akan menampilkan output seperti berkut :
number of packets sent TCP:639 lost TCP:0
number of packets sent UDP :550 lost UDP :0
number of packets sent Total :1189 lost Total:0
41
3.3 Troughput
Berikut adalah scrip untuk menentukan troughput :
BEGIN {
# TCP
for (i in send) {
send[i] = 0
}
for (i in recv) {
recv[i] = 0
}
tx = 649
drop = 0
pkt_loss = 0
pkt_rcvd = 0
time_obsrv = 15
# UDP
for (z in send) {
send1[z] = 0
}
for (z in recv) {
recv1[z] = 0
}
tz = 550
drop1 = 0
pkt_loss1 = 0
pkt_rcvd1 = 0
time_obsrv1 = 15
}
{
# Trace line format: normal
if ($2 != "-t") {
event = $1
time = $2
node_id_s = $3
node_id_d = $4
42
pkt_type = $5
pkt_size = $6
pkt_attrib = $7
pkt_id = $12
}
# Trace line format: new
#if ($2 == "-t") {
# event = $1
# time = $3
# node_id = $5
# flow_id = $39
# pkt_id = $41
#}
# Store packets sent tcp
if (event == "+" && node_id_s == "0" && pkt_type ==
"tcp") {
send[pkt_id] = 1
#printf("send[%g] = 1\n",pkt_id)
}
# Store packets arrival time tcp
if (event == "r" && node_id_d == "9" && pkt_type ==
"tcp") {
recv[pkt_id] = 1
#printf("\t\trecv[%g] = 1\n",pkt_id)
}
# Store packets sent udp
if (event == "+" && node_id_s == "0" && pkt_type ==
"udp") {
send[pkt_id] = 2
#printf("send[%g] = 2\n",pkt_id)
}
# Store packets arrival time udp
if (event == "r" && node_id_d == "9" && pkt_type ==
"udp") {
recv[pkt_id] = 2
#printf("\t\trecv[%g] = 2\n",pkt_id)
}
43
}
END {
#printf("%10g ",flow)
for (i in send) {
if (send[i] == 1) {
tx
if (recv[i] == 0) {
drop
#printf("pkt %g not recvd\n",i)
}
}
}
if (tx != 0) {
pkt_loss = drop / tx
pkt_rcvd = tx - drop
} else {
pkt_loss = 0
}
for (z in send1) {
if (send1[z] == 2) {
tz
if (recv1[z] == 0) {
drop1
#printf("pkt %g not recvd\n",z)
}
}
}
if (tz != 0) {
pkt_loss1 = drop1 / tz
pkt_rcvd1 = tz - drop1
} else {
pkt_loss1 = 0
}
c=tx+tz;
a=pkt_rcvd+pkt_rcvd1;
b=(pkt_rcvd/time_obsrv) + (pkt_rcvd1/time_obsrv1);
44
d=b*5.6;
print("")
print("Packet sent TCP = ",tx)
print("Packet success received TCP = ",pkt_rcvd)
print("==> Throughput data TCP =
",pkt_rcvd/time_obsrv,"packets/s" )
print(" =
",(pkt_rcvd/time_obsrv)*(8/1000)*700,"kbps" )
print("Packet sent UDP = ",tz)
print("Packet success received UDP = ",pkt_rcvd1)
print("==> Throughput data UDP =
",pkt_rcvd1/time_obsrv1,"packets/s" )
print(" =
",(pkt_rcvd1/time_obsrv1)*(8/1000)*700,"kbps" )
print("Packet sent Total = ",c)
print("Packet success received Total = ",a)
print("==> Throughput data Total = ",b,"packets/s"
)
print(" = ",d,"kbps" )
}
3.3.1 Penjelasa Scrip
# TCP
for (i in send) {
send[i] = 0
}
for (i in recv) {
recv[i] = 0
}
tx = 649
drop = 0
pkt_loss = 0
pkt_rcvd = 0
time_obsrv = 15
45
Pada proses diatas merupakan inputan throughput dari protocol tcp,proses ini
harus diinputkan secara manual dimana data inputannya berasal dari AWK packet
loss
Tx = packet yang telah dikirim pada saat transmisi, Drop & pkt_loss = packet
yang loss pada saat proses transmisi berlangsung, pkt_rcvd = merupakan total
packet yang telah diterima pada saat transmisi.
Untuk proses scrip diatas juga berlaku dengan proses transmisi data pada UDP.
event = $1
time = $2
node_id_s = $3
node_id_d = $4
pkt_type = $5
pkt_size = $6
pkt_attrib = $7
pkt_id = $12
Pada proses diatas merupakan proses inisialisasi dari trace file, trace file ini di
dapatkan pada saat proses simulasi data telah di proses.
if (event == "+" && node_id_s == "0" && pkt_type == "tcp")
{
send[pkt_id] = 1
#printf("send[%g] = 1\n",pkt_id)
}
Proses diatas merupakan proses untuk menghitung total packet yang telah di kirim
pada tcp (packet send).
if (event == "r" && node_id_d == "9" && pkt_type == "tcp") {
recv[pkt_id] = 1
#printf("\t\trecv[%g] = 1\n",pkt_id)
Proses diatas merupakan proses untuk menghitung total packet yang telah
diterima pada tcp sink (packet received)
Untuk proses UDP memiliki fungsi yang sama, yang membedakanya terletak pada
flow diagramnya. TCP =1 dan UDP = 2
46
#printf("%10g ",flow)
for (i in send) {
if (send[i] == 1) {
tx
if (recv[i] == 0) {
drop
#printf("pkt %g not recvd\n",i)
}
}
}
if (tx != 0) {
pkt_loss = drop / tx
pkt_rcvd = tx - drop
} else {
pkt_loss = 0
Pada proses diatas merupakan proses untuk menentukan kondisi dari proses
inputan. Jika masukan bernilai 1 maka proses send yang berjalan,
if (send[i] == 1) {
tx
Jika bernilai 0 maka proses received yang akan berjalan.
if (recv[i] == 0) {
drop
Jika paket yang dikirim tidak 0, maka akan melakukan proses berikut ini. Dimana
proses ini akan menentukan jumlah packet loss dan packet received.
if (tx != 0) {
pkt_loss = drop / tx
pkt_rcvd = tx - drop
} else {
pkt_loss = 0
c=tx+tz;
a=pkt_rcvd+pkt_rcvd1;
b=(pkt_rcvd/time_obsrv) + (pkt_rcvd1/time_obsrv1);
d=b*5.6;
Pada proses diatas adalah proses untuk menentukan jumlah total dari throughtput.
C = punjumlahan paket yang dikirim dari UDP dan TCP
47
A = penjumlahan paket received dari UDP dan TCP
B = penjumlahan paket received dari UDP dan TCP dan dibagi dengan
time_obsry nya
D = penjumalhan total untuk menentukan berapa kbps yang digunakan saat
pengiriman
print("Packet sent Total = ",c)
print("Packet success received Total = ",a)
print("==> Throughput data Total = ",b,"packets/s"
)
print(" = ",d,"kbps"
Pada proses diatas merupakan proses untuk mencetak hasil dari hasil pemrosesan.
3.4 Percobaan Pertama
Dalam percobaan pertama ada beberapa ketentuan yaitu link n2-n3
memiliki 2 mb / 20 ms. Untuk script simulasinya masih menggunakan script yang
telah dijelaskan diatas, tetapi memiliki perubahan pada bagian proses pembuatan
link untuk menghubungkan tiap node. Scriptnya akan menjadi :
$ns duplex-link $n0 $n2 4Mb 10ms DropTail
$ns duplex-link $n1 $n2 4Mb 10ms DropTail
$ns duplex-link $n2 $n3 2Mb 20ms DropTail
$ns duplex-link $n4 $n3 4Mb 10ms DropTail
$ns duplex-link $n5 $n3 4Mb 10ms DropTail
a. Proses Menghitung Delay End To End
Untuk proses menghitung delaynya menggunakan script AWK delay yang
telah dijelaskan diatas. Untuk menjalankan script AWK delay tersebut dapat
dilakukan dengan langkah sebagai berikut :
1. Jalankan script simulasi untuk menghasilkan output trace filenya
(out.tr). Untuk menjalankan script : ns namafile.tcl. Untuk melihat
hasilnya file out.tr dapat dibuka dengan notepad++. Hasilnya sebagai
berikut :
48
Gambar 3.7 Hasil out.tr
Gambar di atas merupakan hasil out.tr, jika di cek sebenarnya hasilnya
sangat banyak sekali kira-kira ± 16000 trace
2. Selanjutnya jalankan script AWK delay pada layar ns-2 menggunakan
perintah : awk –f namafile.awk out.tr. Setelah menjalankan script
AWK delay tersebut akan menghasilkan hasil sebagai berikut :
Gambar 3.8 Hasil Dari Delay End To End n0-n4 Dan n1-n5.
3. Untuk lebih jelasnya melihat delay tersebut, dapat di konversikan ke
dalam bentuk txt, dengan perintah : awk –f namafile.awk out.tr >
namafile.txt
49
4. Setelah sampai ke tahap 3, proses perhitungan delay sebenarnya telah
selesai, tetapi jika ingin menampilkannya dalam bentuk grafik, bisa
menggunakan aplikasi gnuplot atau xgraph.
Jika belum terinstall aplikasi tersebut, bisa dinstall terlebih dahulu
5. Dalam menampilkan grafik kita disini menggunakan aplikasi gnuplot,
untuk proses sinkronisasinya dilakukan dengan cara :
a. Ubahlah hasil delay kedalam format plt : awk –f
namafile.awk out.tr > namafile.plt
b. Selanjunya buka aplikasi gnuplot, untuk menampilkan grafik
gunakan cara : gnuplot > plot “namafile.plt
Gambar 3.9 Perintah Gnuplot
c. Setelah menjalankan perintah tersebut maka akan keluar hasil
sebagai berikut :
Gambar 3.10 Hasil Dari Delay End To End n0-n4 dan n1-n5 pada Gnuplot
50
b. Perhitungan Loss Data Saat Transmisi
Untuk proses menghitung loss data menggunakan script AWK Packet Loss
yang telah dijelaskan diatas. Untuk menjalankan script AWK Packet Loss
tersebut dapat dilakukan dengan langkah sebagai berikut :
1. Jalankan script simulasi untuk menghasilkan output trace filenya
(out.tr). Untuk menjalankan script : ns namafile.tcl. Untuk melihat
hasilnya file out.tr dapat dibuka dengan notepad++. Hasilnya sebagai
berikut :
Gambar 3.11 Hasil out.tr
2. Selanjutnya untuk manampilkan packet loss secara detail, kita gunakan
Scrip.awt, dimana untuk mehasilkan outputnya kita ketikkan perintah :
%awt -f namafile.awt out.tr
Yang akan menghasilkan output seperti screen shoot di bawah :
Gambar 3.12 Hasil Lost Simulasi 1
c. Perhitungan Throughput
Dalam proses penghitungan troughput kita gunakan scrip AWK
Thourghput. Dalam proses ini kita harus inputkan data secara manual.
Hal yang dilakukan adalah :
51
1. Buka script AWK Troughput dengan aplikasi notepad ++ agar kita
bisa melihat script AWK Troughput
2. Selanjutnya inputkan hasil yang kita peroleh pada saat pengujian
packet loss kedalam script troughput
Gambar 3.13 Scrip Troughput
Dari script diatas yang diinputkan pada bagian tx, drop, packet loss
packet drop dan loss diisikan jika terjadi loss pada saat pengujian
loss data.
3. Selanjutnya setelah selesai menginputkan data simpan file tersebut
dengan format awk.
4. Selanjutnya buka aplikasi ns-2 dan ketikan perintah : awk –f
namafile.awk out.tr
5. Setelah script dijalankan, maka hasil yang dihasilkan dapat dilihat
pada gambar berikut.
Gambar 3.14 Hasil Troughput Simulasi 1
52
3.5 Percobaan Kedua
Dalam percobaan kedua ada beberapa ketentuan yaitu link n2-n3 memiliki
10mb / 20 ms. Untuk script simulasinya masih menggunakan script yang telah
dijelaskan diatas, tetapi memiliki perubahan pada bagian proses pembuatan link
untuk menghubungkan tiap node. Scriptnya akan menjadi :
$ns duplex-link $n0 $n2 4Mb 10ms DropTail
$ns duplex-link $n1 $n2 4Mb 10ms DropTail
$ns duplex-link $n2 $n3 2Mb 20ms DropTail ==> $ns duplex-
link $n2 $n3 10Mb 20ms DropTail
$ns duplex-link $n4 $n3 4Mb 10ms DropTail
$ns duplex-link $n5 $n3 4Mb 10ms DropTail
a. Proses Menghitung Delay End To End
Untuk proses menghitung delaynya menggunakan script AWK delay yang
telah dijelaskan diatas. Untuk menjalankan script AWK delay tersebut dapat
dilakukan dengan langkah sebagai berikut :
1. Jalankan script simulasi untuk menghasilkan output trace filenya
(out.tr). Untuk menjalankan script : ns namafile.tcl. Untuk melihat
hasilnya file out.tr dapat dibuka dengan notepad++. Hasilnya sebagai
berikut :
Gambar 3.15 Hasil out.tr
Gambar berikut merupakan hasil out.tr, jika di cek sebenarnya hasilnya
sangat banyak sekali kira-kira ± 16000 trace.
53
2. Selanjutnya jalankan script AWK delay pada layar ns-2 menggunakan
perintah : awk –f namafile.awk out.tr. Setelah menjalankan script
AWK delay tersebut akan menghasilkan hasil sebagai berikut :
Gambar 3.16 Delay End To End n0-n4 dan n1-n5.
3. Untuk lebih jelasnya melihat delay tersebut, dapat di konversikan ke
dalam bentuk txt, dengan perintah : awk –f namafile.awk out.tr >
namafile.txt
4. Setelah sampai ke tahap 3, proses perhitungan delay sebenarnya telah
selesai, tetapi jika ingin menampilkannya dalam bentuk grafik, bisa
menggunakan aplikasi gnuplot atau xgraph.
Jika belum terinstall aplikasi tersebut, bisa dinstall terlebih dahulu
5. Dalam menampilkan grafik kita disini menggunakan aplikasi gnuplot,
untuk proses sinkronisasinya dilakukan dengan cara :
a. Ubahlah hasil delay kedalam format plt : awk –f
namafile.awk out.tr > namafile.plt
b. Selanjunya buka aplikasi gnuplot, untuk menampilkan
grafik gunakan cara : gnuplot > plot “namafile.plt”
Gambar 3.17 Scrip Gnuplot
54
c. Setelah menjalankan perintah tersebut maka akan keluar
hasil sebagai berikut :
Gambar 3.18 Delay End To End n0-n4 dan n1-n5 Pada Gnolput
b. Perhitungan Loss Data Saat Transmisi
Untuk proses menghitung loss data menggunakan script AWK Packet Loss
yang telah dijelaskan diatas. Untuk menjalankan script AWK Packet Loss
tersebut dapat dilakukan dengan langkah sebagai berikut :
1. Jalankan script simulasi untuk menghasilkan output trace filenya
(out.tr). Untuk menjalankan script : ns namafile.tcl. Untuk melihat
hasilnya file out.tr dapat dibuka dengan notepad++. Hasilnya sebagai
berikut :
55
Gambar 3.19 Hasil out.
Gambar di atas merupakan hasil out.tr, jika di cek sebenarnya hasilnya
sangat banyak sekali kira-kira ± 16000 trace.
2. Selanjutnya untuk manampilkan packet loss secara detail, kita gunakan
Scrip.awt, dimana untuk mehasilkan outputnya kita ketikkan perintah :
%awt -f namafile.awt out.tr
Yang akan menghasilkan output seperti screen shoot di bawah :
Gambar 3.20 Hasil Lost Simulasi 2
c. Selanjutnya Perhitungan Throughput
Dalam proses penghitungan troughput kita gunakan scrip AWK
Thourghput. Dalam proses ini kita harus inputkan data secara manual.
Hal yang dilakukan adalah :
1. Buka script AWK Troughput dengan aplikasi notepad ++ agar kita
bisa melihat script AWK Troughput
2. Selanjutnya inputkan hasil yang kita peroleh pada saat pengujian
packet loss kedalam script troughput
56
Gambar 3.21 Scrip Troughput
3. Dari script diatas yang diinputkan pada bagian tx, drop, packet loss
packet drop dan loss diisikan jika terjadi loss pada saat pengujian
loss data.
4. Selanjutnya setelah selesai menginputkan data simpan file tersebut
dengan format awk.
5. Selanjutnya buka aplikasi ns-2 dan ketikan perintah : awk –f
namafile.awk out.tr
6. Setelah script dijalankan, maka hasil yang dihasilkan dapat dilihat
pada gambar berikut.
Gambar 3.22 Hasil dari Troughput Simulasi 2
57
BAB IV PENUTUP
4.1 Kesimpulan
Dalam penulisan laporan Jaringan Komputer Lanjut yang bertemakan
simulasi jaringan menggunakan NS2, penulis dapat menyimpulkan bahwa :
Dalam melakukan Simulasi pertama dengan ketentuan n2 – n3 2Mb/ 20 Ms
Delay yang terjadi pada simulasi ini jika dilihat dengan menggunakan
Gnuplot, maka delay yang terjadi akan lebih banyak dibandingkan dengan
Simulasi kedua dengan ketentuan n2 – n3 10Mb/ 20 Ms.
Secara kasap mata, jika di lihat dari simulasi yang digunakan terdapat
beberapa paket data yang lost baik dari UDP dan TCP. Selanjutnya jika
menggunakan scrip.awk maka akan didapatkan hasil
Packets sent TCP : 290 lost TCP : 6
Packets sent UDP :550 lost UDP : 2
Karena dengan ketentuan n2 – n3 2Mb/ 20Ms, troughput yang dihasilkan
dari simulasi ini akan lebih kecil akibat kecilnya jalur akses data serta
banyaknya terjadi lost akibat jalur yang kecil.
Dalam melakukan Simulasi kedua dengan ketentuan n2 – n3 10Mb/ 20 Ms
Delay yang terjadi pada simulasi ini jika dilihat dengan menggunakan
Gnuplot, maka delay yang terjadi akan lebih rendah dibandingkan dengan
Simulasi pertama dengan ketentuan n2 – n3 2Mb/ 20 Ms.
Secara kasap mata, jika di lihat dari simulasi yang digunakan tidak terdapat
paket data yang lost baik dari UDP dan TCP. Selanjutnya jika menggunakan
scrip.awk maka akan didapatkan hasil
Packets sent TCP: 639 lost TCP : 0
Packets sent UDP :550 lost UDP :0
Kebalikan dari simulai pertama, troughput yang dihasilkan akan lebih besar
karena lebih besarnya jalur lalu lintas data yang diberikan serta minimnya
bahkan dapat dikatakan tidak ada lost yang terjadi pada simulasi ini.
58
4.2 Saran
Saran yang dapat penulis sampaikan dalam penulisan laporan ini adalah
dalam melakukan pemograman menggunakan simulasi NS2, pembaca haruslah
benar- benar memahami Trace Format, sehingga dapat mengetahui struktur dari
data – data yang ada di dalam out.tr. Dengan mengetahui Trace Format pembaca
akan lebih udah dalam membuat scrip.awk baik untuk mengetahui delay,
troughput, dan lost sesuai dengan simulasi yang dipaparkan pada BAB III.
59
DAFTAR PUSTAKA
Min Chen.Introduction to NS-2. http://mmlab.snu.ac.kr/~mchen/weicai/slides/3-
analysis.pdf . Diakses pada tanggal 19 Oktober 2012 pukul 18.20
ABe Susanto dan I Wayan Warmada. Open Source Campus Agreement Modul
Pelatihan Gnuplot Untuk Orang Lugu .http://lecturer.eepis-
its.edu/~reni/modul%20ajar/praktikum%20shell/PrakSh11.pdf. Diakses pada
tanggal 20 Oktober 2012 pukul 21.20
Bahasa Pemrograman AWK
.http://reza-09.blogspot.com/ . Diakses pada tanggal 20 Oktober 2012 pukul 23.20