kelompok8-5-simulasi

64
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

Upload: surya-cipta

Post on 04-Aug-2015

222 views

Category:

Documents


14 download

TRANSCRIPT

Page 1: kelompok8-5-simulasi

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

Page 2: kelompok8-5-simulasi

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

Page 3: kelompok8-5-simulasi

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

Page 4: kelompok8-5-simulasi

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

Page 5: kelompok8-5-simulasi

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

Page 6: kelompok8-5-simulasi

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.

Page 7: kelompok8-5-simulasi

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

Page 8: kelompok8-5-simulasi

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)

Page 9: kelompok8-5-simulasi

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 )

Page 10: kelompok8-5-simulasi

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

Page 11: kelompok8-5-simulasi

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.

Page 12: kelompok8-5-simulasi

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

Page 13: kelompok8-5-simulasi

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 :

Page 14: kelompok8-5-simulasi

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

Page 15: kelompok8-5-simulasi

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 :

Page 16: kelompok8-5-simulasi

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

Page 17: kelompok8-5-simulasi

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).

Page 18: kelompok8-5-simulasi

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

Page 19: kelompok8-5-simulasi

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

Page 20: kelompok8-5-simulasi

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

Page 21: kelompok8-5-simulasi

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-

[email protected]

Send bugs, suggestions and mods to <bug

[email protected]>

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

#

Page 22: kelompok8-5-simulasi

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

Page 23: kelompok8-5-simulasi

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

Page 24: kelompok8-5-simulasi

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

Page 25: kelompok8-5-simulasi

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

Page 26: kelompok8-5-simulasi

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:

Page 27: kelompok8-5-simulasi

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]]

Page 28: kelompok8-5-simulasi

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]

Page 29: kelompok8-5-simulasi

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

Page 30: kelompok8-5-simulasi

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]

Page 31: kelompok8-5-simulasi

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 {} {

Page 32: kelompok8-5-simulasi

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

Page 33: kelompok8-5-simulasi

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]

Page 34: kelompok8-5-simulasi

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"

Page 35: kelompok8-5-simulasi

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.

Page 36: kelompok8-5-simulasi

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

Page 37: kelompok8-5-simulasi

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;

Page 38: kelompok8-5-simulasi

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);

}

}

}

Page 39: kelompok8-5-simulasi

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, +, -

Page 40: kelompok8-5-simulasi

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 :

Page 41: kelompok8-5-simulasi

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

Page 42: kelompok8-5-simulasi

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" )

Page 43: kelompok8-5-simulasi

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 :

Page 44: kelompok8-5-simulasi

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 == "+"

Page 45: kelompok8-5-simulasi

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

Page 46: kelompok8-5-simulasi

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

Page 47: kelompok8-5-simulasi

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)

}

Page 48: kelompok8-5-simulasi

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);

Page 49: kelompok8-5-simulasi

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

Page 50: kelompok8-5-simulasi

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

Page 51: kelompok8-5-simulasi

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

Page 52: kelompok8-5-simulasi

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 :

Page 53: kelompok8-5-simulasi

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

Page 54: kelompok8-5-simulasi

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

Page 55: kelompok8-5-simulasi

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 :

Page 56: kelompok8-5-simulasi

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

Page 57: kelompok8-5-simulasi

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.

Page 58: kelompok8-5-simulasi

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

Page 59: kelompok8-5-simulasi

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 :

Page 60: kelompok8-5-simulasi

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

Page 61: kelompok8-5-simulasi

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

Page 62: kelompok8-5-simulasi

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.

Page 63: kelompok8-5-simulasi

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.

Page 64: kelompok8-5-simulasi

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