OMNeT++ adalah simulator
kejadian diskrit berorientasi objek. Simulator dapat digunakan untuk pemodelan:
protokol komunikasi, jarignan komputer dan pemodelan lalu lintas,
multi-processors dan sistem terdistribusi, dan lain-lain.OMNeT++ mendukung animasi
dan penjalanan.
OMNet++ juga menyediakan infrastruktur dan tools untuk memrogram simulasi sendiri. Pemrograman OMNet++ bersifat object-oriented
dan bersifat hirarki. Objek-objek yang besar dibuat dengan cara
menyusun objek-objek yang lebih kecil. Objek yang paling kecil disebut simple module, akan memutuskan algoritma yang akan digunakan dalam simulasi tersebut.
Berbagai tipe objek pada OMNet++ adalah :
-
Module (Simple Module dan Compound Module) adalah objek yang kita buat, kita program dan kita susun. Compound Module adalah sebuah modul yang dibuat dengan cara menggabungkan beberapa Simple Module.
-
Gate adalah pintu keluar/masuk message. Setiap modul hanya bisa berinteraksi dengan modul lainnya melalui gate.
-
Message adalah komunikasi yang dilakukan antar modul. Message adalah konsep inti dari simulasi OMNet++. Sebuah modul bisa mengirimkan message pada modul lain atau dirinya sendiri (self message).
-
Connection adalah jalur tempat dimana message mengalir. Disini kita bisa mendefinisikan parameter/variabel yang berkaitan dengan koneksi, misalnya hambatan udara, datarate dan lain sebagainya.
kelebihan Omnet++ dibandingkan dengan software simulasi lainnya:
1.Pemrograman Omnet++ lebih mudah karena menggunakan eclipse yang memudahkan penggunaan secara tekstual maupun grafis.
2.Omnet++ juga menggunakan bahasa pemrograman NED, yaitu bahasa tingkat tinggi yang digunakan untuk topologi jaringan.
3.Tool simulasi Omnet++ yang non-komersial dapat bersaing dengan beberapa versi komersial seperti opnet yang memiliki cukup banyak model protokol yang ready-mode
4.Omnet++ mendukung dua programming model yaitu thread/corountine-based programming dan FSM
kekurangan Omnet++
1.Omnet++ membutuhkan memori yang besar dan waktu yang lama pada saat instalasi danpenambahan modul.
2.Omnet++ hanya menyediakan modul dan tidak mempunyai library seperti software simulasiNS2.
Instalasi OMNet++ dapat dilihat http://omnetpp.org/documentation dan anda bisa mendownload OMNet++ secara gratis di http://www.omnetpp.org/omnetpp/cat_view/17-downloads/1-omnet-releases. Setelah instalasi, maka tampilan OMNet++ kira-kira akan menjadi seperti ini:
Tampilan IDE OMNet++
Di Project Explorer sudah terdapat beberapa project yang bisa anda buka dan pelajari. Tapi, bagi yang ingin memulai konsep dari awal, mari kita mulai!
Pertama, buat dulu project baru. Klik pada File – New – OMNet++ Project. Masukkan nama project baru anda, misalnya ‘Tes”. Klik Finish dan project baru anda akan terpampang di Project Explorer.
Membuat Project Baru
Sebelum bergerak lebih jauh,
kita harus mengerti konsep bahasa NED. NED (Network Description) adalah
bahasa yang digunakan untuk merancang simulasi dan menyusun objek-objek yang
akan digunakan. Ingat, bahasa NED hanya digunakan untuk merancang simulasi
di bagian fisiknya saja! Algoritma simulasi akan diprogram pada C++
Class yang akan dibahas nanti.
Pertama, tentu kita harus
membuat sebuah Simple Module, karena bagian ini adalah bagian atomik
(paling kecil) dari simulasi kita. Bagian ini memegang peranan terpenting
karena algoritma simulasi akan diprogram pada C++ Class dari Simple
Module. Klik kanan pada project Tes dan pilih New – Simple Module.
Beri nama “Node”, pilih Next
dan pilih A Simple Module. Klik Finish dan akan muncul sebuah pointer tipe
objek bernama Node.
Membuat Simple Module “Node”
Bagi yang sudah terbiasa dengan pemrograman visual, tentu senang dengan adanya 2 tab, yaitu Design dan Source. Bagian Design adalah bentuk visual dari objek kita, sedangkan Source adalah bentuk kodenya.
Sekarang mari kita ubah lambang Node kita. Klik kanan pada gambar Node, lalu pilih Properties. Di bagian Image, silakan pilih gambar yang akan kita gunakan. Saya akan menggunakan gambar Tux (Penguin Linux).
Sekarang buka tab Source dan lihat. Akan bertambah sebuah kode sesuai dengan gambar yang kita pilih. Saya mendapatkan “@display(“i=abstract/penguin”);”. Kode “@display” akan mengatur tampilan objek Node kita tadi.
Berikutnya, kita akan menambahkan gate. Buka tab source dan tambahkan kode berikut setelah kode @display :
gates :
input gerbangmasuk;
output gerbangkeluar;
Kita
telah membuat sebuah gerbang input bernama “gerbangmasuk” dan sebuah
gerbang output bernama “gerbangkeluar”. Dengan ini, kita hampir selesai
memrogram berkas NED dari Node. Apa yang berikutnya kita lakukan? Kita
akan menambahkan connection!
Sebelum masuk ke pengenalan connection, kita akan sedikit membahas Network. Network adalah tempat dimana seluruh simulasi kita akan berjalan. Tempat semua modul, koneksi dan algoritma beroperasi. Network sendiri termasuk sebuah Compund Module, karena diciptakan dari gabungan-gabungan rangkaian Simple Module (atau Compound Module lainnya).
Kita akan membuat network untuk menaruh simulasi kita. Klik kanan pada project Tes
kita, pilih New – Network. Masukkan namanya, klik Next, pilih Empty
Network dan Finish. Anda bisa mengubah tampilan dengan cara yang sama
seperti Simple Module.
Membuat Network
Untuk menambahkan Node kita ke network tadi, pilih dan klik Node kita di tab submodules (sebelah kanan) dan klik pada network kita. Tambahkan 2 Node pada network kita. Lalu pilih Connection pada tab Pallete. Klik dan gabungkan kedua network sebanyak 2 kali, yaitu dari gerbangkeluar node ke gerbangmasuk node1 dan gerbangkeluar node1 ke gerbangmasuk node. Tampilannya akan menjadi seperti berikut
Menambahkan Simple Module dan Connection
ke dalam Network
Buka tab source pada Network.ned dan lihat bahwa apa yang kita tambahkan tadi telah di-generate juga kodenya :
@display(“bgb=602,135″);
submodules:
node: Node {
@display(“p=46,53;b=56,59″);
}
node1: Node {
@display(“p=540,53;b=61,59″);
}
connections:
node.gerbangkeluar –> node1.gerbangmasuk;
node1.gerbangkeluar –> node.gerbangmasuk;
Kita
telah selesai merancang simulasi pertama kita! Tapi sekali lagi ingat,
kita baru selesai merancang bentuk fisiknya saja. Simulasi ini belum
bisa berjalan karena belum ada event yang akan dijalankannya. Event akan kita program dalam C++ Class dari Simple Module kita.
Untuk sekarang, saya tidak akan menjelaskan arti kode C++ Class untuk simulasi ini. Kita baru hanya akan berkenalan dengan bahasa NED. C++ Class akan saya jelaskan di postingan berikutnya tentang Message Passing. Buka berkas Node.cc dari Project Explorer dan tambahkan kode berikut :
#include“Node.h”
Define_Module(Node);
voidNode::initialize()
{
scheduleAt(simTime(), newcMessage(“Mulai“));
}
voidNode::handleMessage(cMessage *msg)
{
if(msg->isSelfMessage()){
cMessage *pkt = newcMessage;
send(pkt,“gerbangkeluar“);
scheduleAt(simTime() + 0.1,msg);
}
elsedelete(msg);
}
Untuk melakukan compile dan build, klik kanan pada folder utama project di Project Explorer. Untuk menjalankan, klik kanan di folder yang sama dan pilih Run As – OMNet++ Simulations. Hasilnya akan seperti di bawah ini :
Tampilan Simulasi Sederhana
Cukup
sampai disini dulu penjelasan tentang OMNet++, di postingan berikutnya
akan saya bahas lebih mendalam lagi tentang pemrograman simulasi discrete-event ini. Semoga apa yang saya tulis bermanfaat bagi anda semua
sumber:
http://id.scribd.com/doc/175952726/Omnet#scribd
http://en.wikipedia.org/wiki/OMNeT%2B%2B