Rabu, 30 April 2008

Membuat Animasi Sederhana (PacMan)

Animasi 2D mau bagaimana bentuknya pada dasarnya sama saja yaitu menampilkan gambar-gambar secara bergiliran. Untuk membuat animasi pada game 2D pada umumnya, sedikitnya ada tiga class yang terlibat. Ketiga class tersebut adalah:

  1. Class yang merepresentasikan citra/image yang akan dianimasikan. Biasanya disebut sprite. Dalam hal ini adalah TSprite.

  2. Container untuk menampung sprite objects. Container ini juga berperan sebagai sprite manager. Pada contoh code diberi nama TSpriteContainer.

  3. Class yang melakukan animasi. Bisa disebut sprite engine. Pada contoh code disebut TSpriteEngine.

Berikut adalah contoh code yang menampilkan teknik untuk melakukan animasi sederhana. Kelihatannya ribet yah. Mungkin iya karena code berikut adalah implementasi sederhana dari sebuah sprite engine untuk game 2D. Walaupun sederhana, mestinya sih sudah cukup untuk menjelaskan konsep animasi dan memperlihatkan bagaimana animasi berjalan tanpa flicker (bug paling menyebalkan dalam animasi). Contoh berikut terdiri atas dua unit, yaitu Sprite.pas dan Main.pas. Unit Sprite berisi empat buah class, yaitu:

  1. TUtils yang berisi method untuk yang bersifat utilisasi dan dipakai bersama-sama oleh semua class.

  2. TSprite yang merupakan class yang berisi informasi image yang akan digambar.

  3. TSpriteContainer yang berfungsi sebagai sprite container dan sprite manager.

  4. TSpriteEngine yang berfungsi melakukan animasi. Berisi sebuah method, yaitu OpenMouth.

Gambar-gambar yang akan di-raster di-load dan ditampung pada TSpriteContainer. Misalkan keempat file gambar tersebut bernama pac-1.bmp, pac-2.bmp, pac-3.bmp, pac-4.bmp, dan bg.bmp. Semuanya disimpan dalam directory “img\” yang path-nya relative terhadap .exe file.

File Sprite.pas:


unit Sprite;

interface

uses Windows, Graphics, Classes;

const
BACKGROUND_PATH = ‘img\\bg.bmp’;

type

TUtils = class
public
class procedure ReleaseItems(AList: TList);
end;

TSprite = class

private
FName: string;
FImage: TGraphic;
FTop: Integer;
FLeft: Integer;
FWidth: Integer;
FHeight: Integer;
public

constructor Create(AImgPath: string);
destructor Destroy; override;

property Name: string read FName write FName;
property Image: TGraphic read FImage;
property Top: Integer read FTop write FTop;
property Left: Integer read FLeft write FLeft;
property Width: Integer read FWidth write FWidth;
property Height: Integer read FHeight write FHeigth;
end;

TSpriteContainer = class

private
FSprites: TList;
public
constructor Create;
destructor Destroy; override;
function Add(ASprite: TSprite): Integer;
function Remove(ASprite: TSprite): Integer;
function GetSprite(ASpriteName: string): TSprite;
procedure Clear;

property Sprites: TList read FSprites;
end;

TSpriteEngine = class

private
FContainer: TSpriteContainer;
FScreen: TCanvas;
FBackground: TGraphic;
public
constructor Create(AContainer: TSpriteContainer);
destructor Destroy; override;
procedure OpenMouth(ADuration: Integer);

property Container: TSpriteContainer read FContainer;
property Screen: TCanvas read FScreen write FScreen;
end;

implementation

{TUtils}

class procedure TUtils.ReleaseItems(AList: TList);
begin
while AList.Count > 0 do

begin
Dispose(AList.First);
AList.Delete(0);
end;
AList.Capacity := 0;
end;

{TSprite}

constructor TSprite.Create(AImgPath: string);

begin
FImage := TBitmap.Create;
FImage.LoadFromFile(AImgPath);

Fwidth := FImage.Width;
FHeigth := FImage.Height;
FTop := 0;
FLeft := 0;
end;

destructor TSprite.Destroy;
begin
FImage.Free;
inherited;

end;

{TSpriteContainer}

constructor TSpriteContainer.Create;
begin
FSprites := TList.Create;
end;

destructor TSpriteContainer.Destroy;

begin
FSprites.Free;
inherited;
end;

function TSpriteContainer.Add(ASprite: TSprite): Integer;
begin
Result := FSprites.Add(ASprite);

end;

function TSpriteContainer.Remove(ASprite: TSprite): Integer;
begin
Result := Fsprites.Remove(ASprite);
end;

function TSpriteContainer.GetSprite(ASpriteName: string): TSprite;

var
i: Integer;
sprite: TSprite;
begin
Result := nil;
for i := 0 to FSprites.Count-1 do

begin
sprite := FSprites.Items[i];
if sprite.Name = ASpriteName then
begin
Result := sprite;
Exit;
end;
end;

end;

procedure TSpriteContainer.Clear;
begin
TUtils.ReleaseItems(FSprites);
end;

{TSpriteEngine}

constructor TSpriteEngine.Create(AContainer: TSpriteCOntainer);

begin
FContainer := AContainer;
FBackground := TBitmap.Create;
FBackground.LoadFromFile(BACKGROUND_PATH);
end;

destructor TSpriteEngine.Destroy;
begin
FBackground.Free;
inherited;
end;

procedure TSpriteEngine.OpenMouth(APosition: TPoint;
ADuration: integer);
var
startTick, deltaTick: Cardinal
frameDuration: Cardinal;
spriteIndex: Integer;
buffer: TBitmap;

begin
startTick := GetTickCount;
spriteIndex := 0;
desltaTick := 0;
frameDuration := ADuration div FContainer.Sprites.Count;

buffer := TBitmap.Create;
buffer.Width := FBackground.Width;
buffer.Height := FBackground.Height;

while (deltaTick <= ADuration) and

(spriteIndex < color="#ff0066">-1) do
begin
deltaTick := GetTickCount - startTick;
spriteIndex := deltaTick div frameDuration;

{ Teknik double buffer, yaitu gambar diolah dulu dimemory
sebelum ditampilkan. Teknik ini digunakan untuk menghindari
flicker }

buffer.Canvas.Draw(0, 0, FBackground);
buffer.Canvas.Draw(APosition.X, APosition.Y,
TSprite(FContainer.Sprites.Items[spriteIndex]).Image);

{ Screening }
FScreen.Draw(0, 0, buffer);
end;

buffer.Free;
end;

end.

Syntax Highlighted with http://delphi-id.org/syntax


Unit Main.pas terdiri dari sebuah form yang berisi sebuah control bertipe TPainBox yang berfungsi sebagai screen, dan sebuah tombol bertipe TButton. Penggalan Main.pas adalah sebagai berikut:


unit Main;

interface

uses Windows, …, ExtCtrls, Sprite;

const
IMAGES_NUMBER = 4;
PLAYING_DURATION = 200;
LOOP_DELAY = 100;
X = 200;
Y = 100;

type
TformMain = class(TForm)
PaintBox: TPaintBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private

procedure LoadAllImages(AContainer: TSpriteContainer);


end;

implementation

{ TformMain }

constructor TformMain.Create(AOwner: TComponent);
begin
inherited;
FContainer := TSpriteContainer.Create;
{ Load semua image yang akan di-raster, Kemas menjadi object
bertipe TSprite, kemudian simpan di dalam container menjadi
data yang siap raster }
LoadAllImages(FContainer);

FSpriteEngine := TSpriteEngine.Create(FContainer);
FSpriteEngine.Screen := PaintBox.Canvas;

end;



procedure LoadAllImages(AContainer: TSpriteCOntainer);
var
i: Integer;
sprite: TSprite;
spriteName: string;
begin
for i := 0 to IMAGES_NUMBER-1 do

begin
spriteName := ‘pac-’ + IntToStr(i+1) + ‘.bmp’;

sprite := TSprite.Create(‘img\\’ + spriteName);
sprite.Name := spriteName;
AContainer.Add(sprite);
end;

end;

procedure TFormMain.Button1Click(Sender: TObject);
begin
while True do
begin
FSpriteEngine.OpenMouth(Point(X, Y), PLAYING_DURATION);
Sleep(LOOP_DELAY);
end;

end;

end.

Syntax Highlighted with http://delphi-id.org/syntax


Gambar-gambar yang akan dianimasikan adalah:

Yang perlu diingat, code di atas hanyalah prototipe dari sprite engine sebuah dimensi dua yang memperlihatkan bagaimana memanipulasi sprite sehingga bisa menjadi gambar yang bergerak (animasi). Semoga bermanfaat dan silakan dimodifikasi sesuai dengan kebutuhan.

Tags: animasi, game, Object Pascals, pacman, programming, sprite
Posted in Object Pascals | No Comments »

Cara Mendapatkan MAC Address

Aku punya info lagi nich yaitu: fungsi untuk mengambil MAC Address dari ethernet card. Fungsinya beri nama GetMacAddress(AEthNumber: Byte). Kembalian dari fungsi ini adalah string dari MAC address ethernet card ber-index AEthNumber. Kalau PC hanya mempunyai sebuah ethernet card, AEthNumber bisa diisi dengan 0 (nol). Fungsi GetMacAddress memanfaatkan unit NB30 bawaan delphi yang berisi beberapa record serta fungsi untuk mengambil informasi network device melalui NetBios.


uses NB30;

function GetMacAddress(AEthNumber: Byte): string;
var
ncb: PNCB;
errorCode: Char;
adapter: PAdapterStatus;
begin

New(ncb);
{ Inisiasi isi memory pada pointer ncb dengan char 0 };
FillChar(ncb^, SizeOf(TNCB), 0);
ncb^.ncb_command := Char(NCBRESET);
ncb^.ncb_lana_num := Char(AEthNumber);
errorCode := NetBios(ncb);

{ Reset kembali isi memory pointer nbc dengan char 0 };
FillChar(ncb^, SizeOf(TNCB), 0);
ncb^.ncb_command := Char(NCBASTAT);
ncb^.ncb_lana_num := Char(AEthNumber);
{ Harus berisi 16 karakter }

StrPCopy(ncb^.ncb_callname, ‘* ‘);

New(adapter);
FillChar(adapter^, SizeOf(TAdapterStatus), 0);
ncb^.ncb_buffer := Pointer(adapter);
ncb^.ncb_length := SizeOf(TAdapterStatus);

errorCode := NetBios(ncb);
if (errorCode = Char(NRC_GOODRET)) or
(errorCode = Char(NRC_INCOMP)) then

Result := IntToHex(Ord(adapter^.adapter_address[0]), 2) + ‘-’ +
IntToHex(Ord(adapter^.adapter_address[1]), 2) + ‘-’ +
IntToHex(Ord(adapter^.adapter_address[2]), 2) + ‘-’ +
IntToHex(Ord(adapter^.adapter_address[3]), 2) + ‘-’ +
IntToHex(Ord(adapter^.adapter_address[4]), 2) + ‘-’ +
IntToHex(Ord(adapter^.adapter_address[5]), 2)
else

Result := ‘00-00-00-00-00-00′;

Dispose(ncb);
Dispose(adapter);
end;

Syntax Highlighted with http://delphi-id.org/syntax


Begitu saja, semoga bermanfaat. Kali aja ada yang mo ikutan nambahin.

Single Instance Application

Ada beberapa cara yang bisa digunakan untuk membuat single instance application. Saya hanya mau membagi sedikit info gratis yaitu dengan memanfaatkan API dari windows. Fungsi yang digunakan adalah CreateFileMapping dengan sedikit memodifikasi isi dari file project. Cara menggunakannya adalah sebagai berikut:


...

uses Windows, … ;

const
MAX_SIZE_HIGH = 0;
MAX_SIZE_LOW = 32;
{ Bisa diganti dengan string apa saja yang akan menjadi Id
dari aplikasi.}
APP_IDENTIFIER = ‘th3-4ppl1c4t10nk3y’;

var
hMap: THandle;

begin
Application.Initialize;

hMap := CreateFileMapping(0, nil, PAGE_READONLY, MAX_SIZE_HIGH,
MAX_SIZE_LOW, APP_IDENTIFIER);
if (hMap <> 0) and (GetLastError = ERROR_ALREADY_EXIST) then

begin
CloseHandle(hMap);
Application.Terminate;
end;



Application.Run;
end.

Syntax Highlighted with http://delphi-id.org/syntax


Semoga bermanfaat. :)

Rabu, 23 April 2008

ngenet di kmpus abis ujian

ehh..hari ni Q ujian matkul sistem operasi...
Q seneng bgt ujian hari ini adalah open book,
abs ujian hari ni Q ngenet di kmps pakai laptop temen sich...hehehe...
tapi sayangnya bsk matematika,kan pusing lau matkul itu,,hoho

Ujian Praktek Jarkom

Hari ini ak ujian, aduh pusing banget masa' ak dapet modul 6 yang ubuntu sulitnya minta ampun, udah waktunya cuma dikit, diketik gak sukses- sukses ternyata kurang dispasi tapi untungnya asisten dosennya baik jadi ak dibantuin..,hhehehe

Senin, 21 April 2008

Lagi TAS nich...

wah,,hari ini udah saatnya Q TAS nich...
atut gitu dech,hari senin matkul bahasa inggris n admin lg..
Q lum belajar lagi!!! malah servis motor...apex2 motor gk isa diajak kompromi..he
tapi setelah mengerjakan soal2nya ternyata Q emang gk isa....hahaha

Artikel tentang OSPF(Tugas Pak Hendra)

Artikel tentang OSPF(Tugas Pak Hendra)

OSPF,Routing Protocol Untuk jaringan local

Kekuatan dari OSPF ada pada sistem hirarkinya yang diterapkan dalam sistem area. Penyebaran informasi routing menjadi lebih teratur dan juga mudah untuk di-troubleshooting.

Langkah pertama yang harus dilakukan oleh OSPF adalah membentuk komunikasi dengan para router tetangganya. Tujuannya adalah agar informasi apa yang belum diketahui oleh router tersebut dapat diberi tahu oleh router tetangganya.

Begitu pula router tetangga tersebut juga akan menerima informasi dari router lain yang bertindak sebagai tetangganya. Sehingga pada akhirnya seluruh informasi yang ada dalam sebuah jaringan dapat diketahui oleh semua router yang ada dalam jaringan tersebut. Kejadian ini sering disebut dengan istilah Convergence.

Setelah router membentuk komunikasi dengan para tetangganya, maka proses pertukaran informasi routing berlangsung dengan menggunakan bantuan beberapa paket khusus yang bertugas membawa informasi routing tersebut. Paket-paket tersebut sering disebut dengan istilah Link State Advertisement packet (LSA packet). Selain dari hello packet, routing protokol OSPF juga sangat bergantung kepada paket jenis ini untuk dapat bekerja.

OSPF memang memiliki sistem update informasi routing yang cukup teratur dengan rapi. Teknologinya menentukan jalur terpendek dengan algoritma Shortest Path First (SPF) juga sangat hebat. Meskipun terbentang banyak jalan menuju ke sebuah lokasi, namun OSPF dapat menentukan jalan mana yang paling baik dengan sangat tepat. Sehingga komunikasi data Anda menjadi lancar dan efisien.

Namun ada satu lagi keunggulan OSPF, yaitu konsep jaringan hirarki yang membuat proses update informasinya lebih termanajemen dengan baik. Dalam menerapkan konsep hirarki ini, OSPF menggunakan pembagian jaringan berdasarkan konsep area-area. Pembagian berdasarkan area ini yang juga merupakan salah satu kelebihan OSPF.

Untuk Apa Konsep Area dalam OSPF?
OSPF dibuat dan dirancang untuk melayani jaringan lokal berskala besar. Artinya OSPF haruslah memiliki nilai skalabilitas yang tinggi, tidak mudah habis atau “mentok” karena jaringan yang semakin diperbesar. Namun nyatanya pada penerapan OSPF biasa, beberapa kejadian juga dapat membuat router OSPF kewalahan dalam menangani jaringan yang semakin membesar. Router OSPF akan mencapai titik kewalahan ketika:
Semakin membesarnya area jaringan yang dilayaninya akan semakin banyak informasi yang saling dipertukarkan. Semakin banyak router yang perlu dilayani untuk menjadi neighbour dan adjacence. Dan semakin banyak pula proses pertukaran informasi routing terjadi. Hal ini akan membuat router OSPF membutuhkan lebih banyak sumber memory dan processor. Jika router tersebut tidak dilengkapi dengan memory dan processor yang tinggi, maka masalah akan terjadi pada router ini.
Topology table akan semakin membesar dengan semakin besarnya jaringan. Topology table memang harus ada dalam OSPF karena OSPF termasuk routing protocol jenis Link State. Topology table menrupakan tabel kumpulan informasi state seluruh link yang ada dalam jaringan tersebut. Dengan semakin membesarnya jaringan, maka topology table juga semakin membengkak besarnya. Pembengkakan ini akan mengakibatkan router menjadi lama dalam menentukan sebuah jalur terbaik yang akan dimasukkan ke routing table. Dengan demikian, performa forwarding data juga menjadi lamban.
Topology table yang semakin membesar akan mengakibatkan routing table semakin membesar pula. Routing table merupakan kumpulan informasi rute menuju ke suatu lokasi tertentu. Namun, rute-rute yang ada di dalamnya sudah merupakan rute terbaik yang dipilih menggunakan algoritma Djikstra. Routing table yang panjang dan besar akan mengakibatkan pencarian sebuah jalan ketika ingin digunakan menjadi lambat, sehingga proses forwarding data juga semakin lambat dan menguras tenaga processor dan memory. Performa router menjadi berkurang.

Melihat titik-titik kelemahan OSPF dalam melayani jaringan yang berkembang pesat, maka para pencipta routing protokol ini juga tidak membiarkannya saja. Untuk itu, routing protokol ini dilengkapi dengan sistem hirarki yang berupa pengelompokan router-router OSPF dalam area. Dengan membagi-bagi router dalam jaringan menjadi tersegmen, maka akan banyak keuntungan yang akan didapat, khususnya untuk menangani masalah ketika jaringan semakin membesar dan perangkatnya semakin kehabisan tenaga. Untuk tujuan inilah konsep area diciptakan dalam routing protokol OSPF.

Bagaimana Konsep Area Dapat Mengurangi Masalah?
Ketika sebuah jaringan semakin membesar dan membesar terus, routing protokol OSPF tidak efektif lagi jika dijalankan dengan hanya menggunakan satu area saja. Seperti telah Anda ketahui, OSPF merupakan routing protokol berjenis Link State. Maksudnya, routing protokol ini akan mengumpulkan data dari status-status setiap link yang ada dalam jaringan OSPF tersebut.

Apa jadinya jika jaringan OSPF tersebut terdiri dari ratusan bahkan ribuan link di dalamnya? Tentu proses pengumpulannya saja akan memakan waktu lama dan resource processor yang banyak. Setelah itu, proses penentuan jalur terbaik yang dilakukan OSPF juga menjadi sangat lambat.

Berdasarkan limitasi inilah konsep area dibuat dalam OSPF. Tujuannya adalah untuk mengurangi jumlah link-link yang dipantau dan dimonitor statusnya agar penyebaran informasinya menjadi cepat dan efisien serta tidak menjadi rakus akan tenaga processing dari perangkat router yang menjalankannya.

Bagaimana Informasi Link State Disebarkan?
Untuk menyebarkan informasi Link State ke seluruh router dalam jaringan, OSPF memiliki sebuah sistem khusus untuk itu. Sistem ini sering disebut dengan istilah Link State Advertisement (LSA). Dalam menyebarkan informasi ini, sistem LSA menggunakan paket-paket khusus yang membawa informasi berupa status-status link yang ada dalam sebuah router. Paket ini kemudian dapat tersebar ke seluruh jaringan OSPF. Semua informasi link yang ada dalam router dikumpulkan oleh proses OSPF, kemudian dibungkus dengan paket LSA ini dan kemudian dikirimkan ke seluruh jaringan OSPF.

Apa sih Paket LSA?
Seperti telah dijelaskan di atas, paket LSA di dalamnya akan berisi informasi seputar link-link yang ada dalam sebuah router dan statusnya masing-masing. Paket LSA ini kemudian disebarkan ke router-router lain yang menjadi neighbour dari router tersebut. Setelah informasi sampai ke router lain, maka router tersebut juga akan menyebarkan LSA miliknya ke router pengirim dan ke router lain.

Pertukaran paket LSA ini tidak terjadi hanya pada saat awal terbentuknya sebuah jaringan OSPF, melainkan terus menerus jika ada perubahan link status dalam sebuah jaringan OSPF. Namun, LSA yang disebarkan kali pertama tentu berbeda dengan yang disebarkan berikutnya. Karena LSA yang pertama merupakan informasi yang terlengkap seputar status dari link-link dalam jaringan, sedangkan LSA berikutnya hanyalah merupakan update dari perubahan status yang terjadi.

Paket-paket LSA juga dibagi menjadi beberapa jenis. Pembagian ini dibuat berdasarkan informasi yang terkandung di dalamnya dan untuk siapa LSA ini ditujukan. Untuk membedakan jenisjenisnya ini, OSPF membagi paket LSA nya menjadi tujuh tipe. Masing-masing tipe memiliki kegunaannya masing-masing dalam membawa informasi Link State. Anda dapat melihat kegunaan masing-masing paket pada tabel “Tipe-tipe LSA packet”.

Tipe-tipe Router OSPF
Seperti telah Anda ketahui, OSPF menggunakan konsep area dalam menjamin agar penyebaran informasi tetap teratur baik. Dengan adanya sistem area-area ini, OSPF membedakan lagi tipe-tipe router yang berada di dalam jaringannya. Tipe-tipe router ini dikategorikan berdasarkan letak dan perannya dalam jaringan OSPF yang terdiri dari lebih dari satu area. Di mana letak sebuah router dalam jaringan OSPF juga sangat berpengaruh terhadap fungsinya. Jadi dengan demikian, selain menunjukkan lokasi di mana router tersebut berada, nama-nama tipe router ini juga akan menunjukkan fungsinya. Berikut ini adalah beberapa tipe router OSPF berdasarkan letaknya dan juga sekaligus fungsinya:
Internal Router
Router yang digolongkan sebagai internal router adalah router-router yang berada dalam satu area yang sama. Router-router dalam area yang sama akan menanggap router lain yang ada dalam area tersebut adalah internal router. Internal router tidak memiliki koneksi-koneksi dengan area lain, sehingga fungsinya hanya memberikan dan menerima informasi dari dan ke dalam area tersebut. Tugas internal router adalah me-maintain database topologi dan routing table yang akurat untuk setiap subnet yang ada dalam areanya. Router jenis ini melakukan flooding LSA informasi yang dimilikinya ini hanya kepada router lain yang dianggapnya sebagai internal router.
Backbone Router
Salah satu peraturan yang diterapkan dalam routing protokol OSPF adalah setiap area yang ada dalam jaringan OSPF harus terkoneksi dengan sebuah area yang dianggap sebagai backbone area. Backbone area biasanya ditandai dengan penomoran 0.0.0.0 atau sering disebut dengan istilah Area 0. Router-router yang sepenuhnya berada di dalam Area 0 ini dinamai dengan istilah backbone router. Backbone router memiliki semua informasi topologi dan routing yang ada dalam jaringan OSPF tersebut.
Area Border Router (ABR)
Sesuai dengan istilah yang ada di dalam namanya “Border”, router yang tergolong dalam jenis ini adalah router yang bertindak sebagai penghubung atau perbatasan. Yang dihubungkan oleh router jenis ini adalah area-area yang ada dalam jaringan OSPF. Namun karena adanya konsep backbone area dalam OSPF, maka tugas ABR hanyalah melakukan penyatuan antara Area 0 dengan area-area lainnya. Jadi di dalam sebuah router ABR terdapat koneksi ke dua area berbeda, satu koneksi ke area 0 dan satu lagi ke area lain. Router ABR menyimpan dan menjaga informasi setiap area yang terkoneksi dengannya. Tugasnya juga adalah menyebarkan informasi tersebut ke masing-masing areanya. Namun, penyebaran informasi ini dilakukan dengan menggunakan LSA khusus yang isinya adalah summarization dari setiap segment IP yang ada dalam jaringan tersebut. Dengan adanya summary update ini, maka proses pertukaran informasi routing ini tidak terlalu memakan banyak resource processing dari router dan juga tidak memakan banyak bandwidth hanya untuk update ini.
Autonomous System Boundary Router (ASBR)
Sekelompok router yang membentuk jaringan yang masih berada dalam satu hak administrasi, satu kepemilikan, satu kepentingan, dan dikonfigurasi menggunakan policy yang sama, dalam dunia jaringan komunikasi data sering disebut dengan istilah Autonomous System (AS). Biasanya dalam satu AS, router-router di dalamnya dapat bebas berkomunikasi dan memberikan informasi. Umumnya, routing protocol yang digunakan untuk bertukar informasi routing adalah sama pada semua router di dalamnya. Jika menggunakan OSPF, maka semuanya tentu juga menggunakan OSPF.

Namun, ada kasus-kasus di mana sebuah segmen jaringan tidak memungkinkan untuk menggunakan OSPF sebagai routing protokolnya. Misalkan kemampuan router yang tidak memadai, atau kekurangan sumber daya manusia yang paham akan OSPF, dan banyak lagi. Oleh sebab itu, untuk segmen ini digunakanlah routing protocol IGP (Interior Gateway Protocol) lain seperti misalnya RIP. Karena menggunakan routing protocol lain, maka oleh jaringan OSPF segmen jaringan ini dianggap sebagai AS lain.

Untuk melayani kepentingan ini, OSPF sudah menyiapkan satu tipe router yang memiliki kemampuan ini. OSPF mengategorikan router yang menjalankan dua routing protokol di dalamnya, yaitu OSPF dengan routing protokol IGP lainnya seperti misalnya RIP, IGRP, EIGRP, dan IS-IS, kemudian keduanya dapat saling bertukar informasi routing, disebut sebagai Autonomous System Border Router (ASBR).

Router ASBR dapat diletakkan di mana saja dalam jaringan, namun yang pasti router tersebut haruslah menjadi anggota dari Area 0-nya OSPF. Hal ini dikarenakan data yang meninggalkan jaringan OSPF juga dianggap sebagai meninggalkan sebuah area. Karena adanya peraturan OSPF yang mengharuskan setiap area terkoneksi ke backbone area, maka ASBR harus diletakkan di dalam backbone area.

Ada Berapa Jenis Area dalam OSPF?
Setelah membagi-bagi jaringan menjadi bersistem area dan membagi router-router di dalamnya menjadi beberapa jenis berdasarkan posisinya dalam sebuah area, OSPF masih membagi lagi jenis-jenis area yang ada di dalamnya. Jenis-jenis area OSPF ini menunjukkan di mana area tersebut berada dan bagaimana karakteristik area tersebut dalam jaringan. Berikut ini adalah jenis-jenis area dalam OSPF:
Backbone Area
Backbone area adalah area tempat bertemunya seluruh area-area lain yang ada dalam jaringan OSPF. Area ini sering ditandai dengan angka 0 atau disebut Area 0. Area ini dapat dilewati oleh semua tipe LSA kecuali LSA tipe 7 yang sudah pasti akan ditransfer menjadi LSA tipe 5 oleh ABR.
Standar Area
Area jenis ini merupakan area-area lain selain area 0 dan tanpa disertai dengan konfigurasi apapun. Maksudnya area ini tidak dimodifikasi macam-macam. Semua router yang ada dalam area ini akan mengetahui informasi Link State yang sama karena mereka semua akan saling membentuk adjacent dan saling bertukar informasi secara langsung. Dengan demikian, semua router yang ada dalam area ini akan memiliki topology database yang sama, namun routing table-nya mungkin saja berbeda.
Stub Area
Stub dalam arti harafiahnya adalah ujung atau sisi paling akhir. Istilah ini memang digunakan dalam jaringan OSPF untuk menjuluki sebuah area atau lebih yang letaknya berada paling ujung dan tidak ada cabang-cabangnya lagi. Stub area merupakan area tanpa jalan lain lagi untuk dapat menuju ke jaringan dengan segmen lain. Area jenis ini memiliki karakteristik tidak menerima LSA tipe 4 dan 5. Artinya adalah area jenis ini tidak menerima paket LSA yang berasal dari area lain yang dihantarkan oleh router ABR dan tidak menerima paket LSA yang berasal dari routing protokol lain yang keluar dari router ASBR (LSA tipe 4 dan 5). Jadi dengan kata lain, router ini hanya menerima informasi dari router-router lain yang berada dalam satu area, tidak ada informasi routing baru di router. Namun, yang menjadi pertanyaan selanjutnya adalah bagaimana area jenis ini dapat berkomunikasi dengan dunia luar kalau tidak ada informasi routing yang dapat diterimanya dari dunia luar. Jawabannya adalah dengan menggunakan default route yang akan bertugas menerima dan meneruskan semua informasi yang ingin keluar dari area tersebut. Dengan default route, maka seluruh traffic tidak akan dibuang ke mana-mana kecuali ke segmen jaringan di mana IP default route tersebut berada.
Totally Stub Area
Mendengar namanya saja, mungkin Anda sudah bisa menangkap artinya bahwa area jenis ini adalah stub area yang lebih diperketat lagi perbatasannya. Totally stub area tidak akan pernah menerima informasi routing apapun dari jaringan di luar jaringan mereka. Area ini akan memblokir LSA tipe 3, 4, dan 5 sehingga tidak ada informasi yang dapat masuk ke area ini. Area jenis ini juga sama dengan stub area, yaitu mengandalkan default route untuk dapat menjangkau dunia luar.
Not So Stubby Area (NSSA)
Stub tetapi tidak terlalu stub, itu adalah arti harafiahnya dari area jenis ini. Maksudnya adalah sebuah stub area yang masih memiliki kemampuan spesial, tidak seperti stub area biasa. Kemampuan spesial ini adalah router ini masih tetap mendapatkan informasi routing namun tidak semuanya. Informasi routing yang didapat oleh area jenis ini adalah hanya external route yang diterimanya bukan dari backbone area. Maksudnya adalah router ini masih dapat menerima informasi yang berasal dari segmen jaringan lain di bawahnya yang tidak terkoneksi ke backbone area. Misalnya Anda memiliki sebuah area yang terdiri dari tiga buah router. Salah satu router terkoneksi dengan backbone area dan koneksinya hanya berjumlah satu buah saja. Area ini sudah dapat disebut sebagai stub area. Namun nyatanya, area ini memiliki satu segmen jaringan lain yang menjalankan routing protokol RIP misalnya. Jika Anda masih mengonfigurasi area ini sebagai Stub area, maka area ini tidak menerima informasi routing yang berasal dari jaringan RIP. Namun konfigurasilah dengan NSSA, maka area ini bisa mengenali segmen jaringan yang dilayani RIP.

Performa Hebat Didukung Perangkat Hebat
Jaringan Anda boleh bertambah besar, berapapun subnet IP di dalamnya, berapapun klien yang harus dilayani, dan berapapun server di belakangnya boleh-boleh saja bertambah. Percayakan saja pada routing protokol OSPF yang mengatur semua penyebaran informasi
routing-nya. Namun ada satu yang perlu Anda perhatikan juga, ketika jaringan membesar dan routing protokol OSPF sudah terpecah-pecah menjadi beberapa area, perangkat router Anda juga harus mendukung kebutuhan tersebut. Perangkat router yang menjalankan routing protokol seperti OSPF, apalagi yang sudah terbagi-bagi menjadi beberapa area, sangat membutuhkan kekuatan processing dan memory.

Jika Anda menerapkan OSPF pada router yang salah, maka kinerjanya tidak akan efektif dan malah membuat performa jaringan menjadi jelek. Untuk itu, sebelum mengonfigurasi dan menerapkannya dalam jaringan Anda, telitilah lebih dahulu apakah router Anda memiliki processor dan memory yang cukup kuat untuk itu. Apakah operating system router Anda memiliki fitur-fitur OSPF yang ada butuhkan, dan banyak lagi hal yang harus diteliti. Jangan sampai setelah berjalan baru diselidiki kebutuhan dan kelemahannya.

Anggota Kelompok:

1.Efi riana

2.irmalita

3.Kushidayati Prasanti

4.Pramesta Haniyuliana

Sabtu, 05 April 2008

malam minggu bro....

mlm minggu ini Q lagi lucu ma peristiwa yang menimpaku....

mulai dari ketemu tmn lamaku ampe nemenin temen bikin fs....
Q g have fun.....hehe