Showing posts with label (on) explain. Show all posts
Showing posts with label (on) explain. Show all posts

Tuesday, January 8, 2013

List Variable Global $_SERVER pada PHP 5

No comments :
PHP memiliki beberapa variable global yang jarang di perhatikan (ane sendiri kale....), salah satu varible global yang perlu diperhatikan lebih adalah $_SERVER. Mengapa? Karena begini gan... Situs php.net menjelaskan bahwa $_SERVER berisi informasi mengenai header, lokasi path, dan lokasi script yang dibangun oleh web server, sehingga informasi mengenai user yang mengakses web server dan apa yang sedang dijalankan web server bisa di dapatkan datanya menggunakan variable $_SERVER.

okeh tanpa bertele - tele lagi langsung saja jalankan script dibawah ini pada web server local anda...


';
echo '$_SERVER[\'PHP_SELF\']            : '.$_SERVER['PHP_SELF']." 
";
echo '$_SERVER[\'GATEWAY_INTERFACE\']   : '.$_SERVER['GATEWAY_INTERFACE']." 
";
echo '$_SERVER[\'SERVER_ADDR\']         : '.$_SERVER['SERVER_ADDR']." 
";
echo '$_SERVER[\'SERVER_NAME\']         : '.$_SERVER['SERVER_NAME']." 
";
echo '$_SERVER[\'SERVER_SOFTWARE\']     : '.$_SERVER['SERVER_SOFTWARE']." 
";
echo '$_SERVER[\'SERVER_PROTOCOL\']     : '.$_SERVER['SERVER_PROTOCOL']." 
";
echo '$_SERVER[\'REQUEST_METHOD\']      : '.$_SERVER['REQUEST_METHOD']." 
";
echo '$_SERVER[\'REQUEST_TIME\']        : '.$_SERVER['REQUEST_TIME']." 
";
echo '$_SERVER[\'QUERY_STRING\']        : '.$_SERVER['QUERY_STRING']." 
";
echo '$_SERVER[\'DOCUMENT_ROOT\']       : '.$_SERVER['DOCUMENT_ROOT']." 
";
echo '$_SERVER[\'HTTP_ACCEPT\']         : '.$_SERVER['HTTP_ACCEPT']." 
";
echo '$_SERVER[\'HTTP_ACCEPT_ENCODING\']    : '.$_SERVER['HTTP_ACCEPT_ENCODING']." 
";
echo '$_SERVER[\'HTTP_ACCEPT_LANGUAGE\']    : '.$_SERVER['HTTP_ACCEPT_LANGUAGE']." 
";
echo '$_SERVER[\'HTTP_CONNECTION\']         : '.$_SERVER['HTTP_CONNECTION']." 
";
echo '$_SERVER[\'HTTP_HOST\']           : '.$_SERVER['HTTP_HOST']." 
";
echo '$_SERVER[\'HTTP_USER_AGENT\']     : '.$_SERVER['HTTP_USER_AGENT']." 
";
echo '$_SERVER[\'REMOTE_ADDR\']         : '.$_SERVER['REMOTE_ADDR']." 
";
echo '$_SERVER[\'REMOTE_PORT\']         : '.$_SERVER['REMOTE_PORT']." 
";
echo '$_SERVER[\'SERVER_ADMIN\']        : '.$_SERVER['SERVER_ADMIN']." 
";
echo '$_SERVER[\'SERVER_PORT\']         : '.$_SERVER['SERVER_PORT']." 
";
echo '$_SERVER[\'SERVER_SIGNATURE\']    : '.$_SERVER['SERVER_SIGNATURE']." 
";
echo '$_SERVER[\'SCRIPT_NAME\']         : '.$_SERVER['SCRIPT_NAME']." 
";
echo '$_SERVER[\'REQUEST_URI\']         : '.$_SERVER['REQUEST_URI']." 
";
?>
output :
//List Variable $_SERVER 
$_SERVER['PHP_SELF']      : /test.php 
$_SERVER['GATEWAY_INTERFACE']    : CGI/1.1 
$_SERVER['SERVER_ADDR']     : ::1 
$_SERVER['SERVER_NAME']     : localhost 
$_SERVER['SERVER_SOFTWARE']     : Apache 
$_SERVER['SERVER_PROTOCOL']     : HTTP/1.1 
$_SERVER['REQUEST_METHOD']     : GET 
$_SERVER['REQUEST_TIME']     : 1334284051 
$_SERVER['QUERY_STRING']     : vthink=5&team=5 
$_SERVER['DOCUMENT_ROOT']     : /Applications/MAMP/htdocs 
$_SERVER['HTTP_ACCEPT']     : text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
$_SERVER['HTTP_ACCEPT_ENCODING']    : gzip, deflate 
$_SERVER['HTTP_ACCEPT_LANGUAGE']    : en-us 
$_SERVER['HTTP_CONNECTION']     : keep-alive 
$_SERVER['HTTP_HOST']     : localhost 
$_SERVER['HTTP_USER_AGENT']     : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22 
$_SERVER['REMOTE_ADDR']     : ::1 
$_SERVER['REMOTE_PORT']     : 50032 
$_SERVER['SERVER_ADMIN']     : you@example.com 
$_SERVER['SERVER_PORT']     : 80 
$_SERVER['SERVER_SIGNATURE']     :  
$_SERVER['SCRIPT_NAME']     : /test.php 
$_SERVER['REQUEST_URI']     : /test.php?vthink=5&team=5
Nah, informasi yang anda lihat pada hasil output yang ditampilkan pada output diatas tentunya tidak sama dengan output pada web server local anda. Jadi, informasi yang dihasilkan oleh web server anda tergantung pada siapa yang membuka dan web server apa yang anda gunakan. Seperti pada bagian $_SERVER['HTTP_USER_AGENT'] anda bisa melihat bahwa saya sedang menggunakan web browser safari dengan system operasi Mac OSX versi Intel Max OS X 10.7.2. Kemudian pada output $_SERVER['REQUEST_URI'] anda bisa melihat saya mengakses melalui web browser dengan url /test.php?vthink=5&team=5 (yups, coz ane jalanin di http://localhost/test.php?vthink=5&team=5)..... Jika anda ingin mempersingkat penulisan sintaks diatas dan melihat beberapa variable $_SERVER yang belum ane tulis, silahkah tulis sintaks di bawah ini :

<PRE>

<?php

print_r($_SERVER);

?> 

</PRE>

output :

Array

(

[HTTP_HOST] => localhost

[HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22

[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

[HTTP_CACHE_CONTROL] => max-age=0

[HTTP_ACCEPT_LANGUAGE] => en-us

[HTTP_ACCEPT_ENCODING] => gzip, deflate

[HTTP_CONNECTION] => keep-alive

[PATH] => /bin:/sbin:/usr/bin:/usr/sbin:/usr/libexec:/System/Library/CoreServices

[SERVER_SIGNATURE] => 

[SERVER_SOFTWARE] => Apache

[SERVER_NAME] => localhost

[SERVER_ADDR] => ::1

[SERVER_PORT] => 80

[REMOTE_ADDR] => ::1

[DOCUMENT_ROOT] => /Applications/MAMP/htdocs

[SERVER_ADMIN] => you@example.com

[SCRIPT_FILENAME] => /Applications/MAMP/htdocs/test.php

[REMOTE_PORT] => 50164

[GATEWAY_INTERFACE] => CGI/1.1

[SERVER_PROTOCOL] => HTTP/1.1

[REQUEST_METHOD] => GET

[QUERY_STRING] => vthink=5&team=5

[REQUEST_URI] => /test.php?vthink=5&team=5

[SCRIPT_NAME] => /test.php

[PHP_SELF] => /test.php

[REQUEST_TIME] => 1334284637

[argv] => Array

(

[0] => vthink=5&team=5

)



[argc] => 1

)

Okey, silahkan mencoba dan semoga beberapa variable diatas bisa bermanfaat untuk anda gunakan pada aplikasi web yang anda bangun (terutama yang tidak menggunakan framework)... sumber : http://www.php.net/manual/en/reserved.variables.server.php
Read More

Instalasi CodeIgniter Spark pada Ubuntu

No comments :
Salah satu framework PHP tercepat di dunia yang dinyatakan oleh founder bahasa pemrograman PHPRasmus Ledorf, telah merelease package management system yang dikenal dengan spark. Spark merupakan sebuah inovasi pemrograman pada CodeIgniter, karena dengan menggunakan spark programmer tidak perlu repot - repot menambah library pada codeigniter. Semua library bisa di install dengan menggunakan terminal pada Linux atau command prompt pada Windows. Dukungan list repository  pada situs http://getsparks.org memudahkan programmer untuk mencari library - library yang akan digunakan untuk integrasi maupun pengembangan aplikasi web yang mereka bangun.



Okey mari kita coba install spark, tetapi langkah yang saya bahas hanya berlaku pada sistem operasi linux.

Langkah pertama lakukan instalasi paket php5-curl agar spark paket management bisa digunakan oleh codeigniter spark:

apt-get install php5-curl

Setelah itu restart service apache anda dengan sitaks berikut ini :


service apache2 restart

Setelah itu, Download CodeIgniter Reactor pada link berikut ini : CodeIgniter-Reactor-v.2.0.3
Kemudian ekstrak file tersebut pada directory apache anda, misalnya seperti /var/www/ dan setelah itu ketik pada terminal anda perintah berikut ini :

cd /var/www/codeigniter/
php -r "$(curl -fsSL http://getsparks.org/go-sparks)"

Okey jika anda telah selesai maka sekarang anda bisa melakukan instalasi contoh paket spark dengan perintah berikut ini :

php tools/spark install -v1.0.0 example-spark



dalam proses instalasi kemungkinan anda akan melihat output pada terminal seperti ini :


[ SPARK ]  Retrieving spark detail from getsparks.org
[ SPARK ]  From Downtown! Retrieving spark from Mercurial repository at https://github.com/katzgrau/example-spark
[ SPARK ]  Installing spark
[ SPARK ]  Spark installed to ./sparks/example-spark/1.0.0 - You're on fire!

Okey, coba anda perhatikan susunan folder anda pada /var/www/codeigniter/, anda mungkin akan melihat susunan folder yang seperti berikut ini :
/var/www/codeigniter/application
/var/www/codeigniter/sparks
/var/www/codeigniter/system
/var/www/codeigniter/tools
/var/www/codeigniter/user_guide

okey, paket example-spark yang telah anda install dengan terminal tadi sudah berada pada folder /var/www/codeigniter/sparks/example-spark. soo, what the next??

selanjutnya adalah memanggil paket spark tadi dengan sintaks berikut pada controller anda :

Salah satu framework PHP tercepat di dunia yang dinyatakan oleh founder bahasa pemrograman PHPRasmus Ledorf, telah merelease package management system yang dikenal dengan spark. Spark merupakan sebuah inovasi pemrograman pada CodeIgniter, karena dengan menggunakan spark programmer tidak perlu repot - repot menambah library pada codeigniter. Semua library bisa di install dengan menggunakan terminal pada Linux atau command prompt pada Windows. Dukungan list repository  pada situs http://getsparks.org memudahkan programmer untuk mencari library - library yang akan digunakan untuk integrasi maupun pengembangan aplikasi web yang mereka bangun.



Okey mari kita coba install spark, tetapi langkah yang saya bahas hanya berlaku pada sistem operasi linux.

Langkah pertama lakukan instalasi paket php5-curl agar spark paket management bisa digunakan oleh codeigniter spark:
apt-get install php5-curl

Setelah itu restart service apache anda dengan sitaks berikut ini :
service apache2 restart

Setelah itu, Download CodeIgniter Reactor pada link berikut ini : CodeIgniter-Reactor-v.2.0.3
Kemudian ekstrak file tersebut pada directory apache anda, misalnya seperti /var/www/ dan setelah itu ketik pada terminal anda perintah berikut ini :
cd /var/www/codeigniter/
php -r "$(curl -fsSL http://getsparks.org/go-sparks)"

Okey jika anda telah selesai maka sekarang anda bisa melakukan instalasi contoh paket spark dengan perintah berikut ini :
php tools/spark install -v1.0.0 example-spark

dalam proses instalasi kemungkinan anda akan melihat output pada terminal seperti ini :

[ SPARK ]  Retrieving spark detail from getsparks.org
[ SPARK ]  From Downtown! Retrieving spark from Mercurial repository at https://github.com/katzgrau/example-spark
[ SPARK ]  Installing spark
[ SPARK ]  Spark installed to ./sparks/example-spark/1.0.0 - You're on fire!

Okey, coba anda perhatikan susunan folder anda pada /var/www/codeigniter/, anda mungkin akan melihat susunan folder yang seperti berikut ini :
/var/www/codeigniter/application
/var/www/codeigniter/sparks
/var/www/codeigniter/system
/var/www/codeigniter/tools
/var/www/codeigniter/user_guide

okey, paket example-spark yang telah anda install dengan terminal tadi sudah berada pada folder /var/www/codeigniter/sparks/example-spark. soo, what the next??

selanjutnya adalah memanggil paket spark tadi dengan sintaks berikut pada controller anda :

$this->load->sparks('example-spark/1.0.0');



ATAU

jika ingin menjalankan secara otomatis gunakan autoload pada folder /var/www/codeigniter/config/autoload.php, dan tambahkan sintaks berikut ini :

    $autoload['sparks']=array('example-spark/1.0.0');

Sekarang anda siap untuk beraksi...
silah mencoba.....

referensi : getsparks.org $this->load->sparks('example-spark/1.0.0');

ATAU

jika ingin menjalankan secara otomatis gunakan autoload pada folder /var/www/codeigniter/config/autoload.php, dan tambahkan sintaks berikut ini :

    $autoload['sparks']=array('example-spark/1.0.0');

Sekarang anda siap untuk beraksi...
silah mencoba.....

referensi : getsparks.org
Read More

Enkripsi MD5 dengan Java

No comments :
Okeh bagi - bagi source lagi ney... ane mau bagi enkripsi MD5 untuk agan - agan sekalian... tapi Enkripsi MD5 ini hanya untuk text aja, kalau untuk file silahkan kembangkan lagi dengan class FileInputStream dan StringBuilder... Java juga mendukung banyak jenis enkripsi pada kelasMesageDiggest dengan method getInstance(); . Soo silahkan coba - coba untuk membuat enkripsi yang lain. Suatu saat mungkin anda membutuhkan class yang telah anda buat.

Okeh ini sourcenya :

[sourcecode language="java"]
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
*
* @author Lalu Erfandi Maula Yusnu
*/
public class ConverterUtil {

/**
* This nethod is used for encrypt String to MD5
* @param text String
* @return String
*/
public static String MD5(String text){
String output = null;
try {
MessageDigest dg = MessageDigest.getInstance("MD5");
dg.reset();
dg.update(stringToBytes(text));
byte[] hasher = new byte[32];
hasher = dg.digest();
return bytesToHexString(hasher);
} catch (NoSuchAlgorithmException e) {
System.out.println("There is No MessageDigest Instance of MD5");
System.exit(1);
}

return output;
}

/**
* This method used for converting byte array to hex string
*
* @param hasher byte[]
* @return String
*/
public static String bytesToHexString(byte[] hasher){
String HEXES = "0123456789abcdef";
StringBuilder hex = new StringBuilder( 2 * hasher.length );
for ( final byte b : hasher ) {
hex.append(HEXES.charAt((b & 0xF0) >> 4))
.append(HEXES.charAt((b & 0x0F)));
}
return hex.toString();
}

/**
* This method used for converting byte array to string
* @param hasher byte[]
* @return String
*/
public static String bytesToString(byte[] hasher){
String hex = bytesToHexString(hasher);
return hexToString(hex);
}

/**
* This method used for converting string to bytes
* @param str String
* @return byte[]
*/
public static byte[] stringToBytes(String str){
int len = str.length();
byte[] out = new byte[len];
for (int i=0; i<len; i++) out[i] = (byte) ( str.charAt(i) & 0xFF);
return out;
}


/**
* This method used for converting hex to string
* @param hexString String
* @return String
*/
public static String hexToString(String hexString){
StringBuilder sb = new StringBuilder();
for(int i=0; i<hexString.length()-1; i+=2 ){
int decimal = Integer.parseInt(hexString.substring(i, (i + 2)), 16);
sb.append((char)decimal);
}
return sb.toString();
}

}
[/sourcecode]

nah untuk menggunakan source ini ini sintaksnya:

[sourcecode language="java"]
Public class Test {
public static void main(String[] args){
String text="Ini text yang akan di enkripsi dengan MD5";
String md5 = ConverterUtil.MD5(text);
System.out.println(md5);
}
}
[/sourcecode]

Hasilnya kurang lebih seperti ini :
6ddc9d6e411d0dfe769750b07d5ffb08

Semoga bermanfaat, sekian dan terima kasih....
Read More

Ngoprek MikroTik Api Client Berbasis Python

No comments :
Okeh, jika anda ingin menjadi pengembang MikroTik API client sepertinya anda perlu mencoba MikroTik API client berbasis python untuk melakukan reverse engineering. Langkah ini diperlukan untuk mengetahui setiap inputan dan hasilnya...

Okeh script ini ane ambil dari http://wiki.mikrotik.com/wiki/Manual:API pada bagian paling bawah, berikut ini  scriptnya :

[sourcecode language="python"]
#!/usr/bin/python

import sys, posix, time, md5, binascii, socket, select

class ApiRos:
"Routeros api"
def __init__(self, sk):
self.sk = sk
self.currenttag = 0

def login(self, username, pwd):
for repl, attrs in self.talk(["/login"]):
chal = binascii.unhexlify(attrs['=ret'])
md = md5.new()
md.update('\x00')
md.update(pwd)
md.update(chal)
self.talk(["/login", "=name=" + username,
"=response=00" + binascii.hexlify(md.digest())])

def talk(self, words):
if self.writeSentence(words) == 0: return
r = []
while 1:
i = self.readSentence();
if len(i) == 0: continue
reply = i[0]
attrs = {}
for w in i[1:]:
j = w.find('=', 1)
if (j == -1):
attrs[w] = ''
else:
attrs[w[:j]] = w[j+1:]
r.append((reply, attrs))
if reply == '!done': return r

def writeSentence(self, words):
ret = 0
for w in words:
self.writeWord(w)
ret += 1
self.writeWord('')
return ret

def readSentence(self):
r = []
while 1:
w = self.readWord()
if w == '': return r
r.append(w)

def writeWord(self, w):
print "<<< " + w self.writeLen(len(w)) self.writeStr(w) def readWord(self): ret = self.readStr(self.readLen()) print ">>> " + ret
return ret

def writeLen(self, l):
if l < 0x80:
self.writeStr(chr(l))
elif l < 0x4000: l |= 0x8000 self.writeStr(chr((l >> 8) & 0xFF))
self.writeStr(chr(l & 0xFF))
elif l < 0x200000: l |= 0xC00000 self.writeStr(chr((l >> 16) & 0xFF))
self.writeStr(chr((l >> 8) & 0xFF))
self.writeStr(chr(l & 0xFF))
elif l < 0x10000000: l |= 0xE0000000 self.writeStr(chr((l >> 24) & 0xFF))
self.writeStr(chr((l >> 16) & 0xFF))
self.writeStr(chr((l >> 8) & 0xFF))
self.writeStr(chr(l & 0xFF))
else:
self.writeStr(chr(0xF0))
self.writeStr(chr((l >> 24) & 0xFF))
self.writeStr(chr((l >> 16) & 0xFF))
self.writeStr(chr((l >> 8) & 0xFF))
self.writeStr(chr(l & 0xFF))

def readLen(self):
c = ord(self.readStr(1))
if (c & 0x80) == 0x00:
pass
elif (c & 0xC0) == 0x80:
c &= ~0xC0
c <<= 8
c += ord(self.readStr(1))
elif (c & 0xE0) == 0xC0:
c &= ~0xE0
c <<= 8
c += ord(self.readStr(1))
c <<= 8
c += ord(self.readStr(1))
elif (c & 0xF0) == 0xE0:
c &= ~0xF0
c <<= 8
c += ord(self.readStr(1))
c <<= 8
c += ord(self.readStr(1))
c <<= 8
c += ord(self.readStr(1))
elif (c & 0xF8) == 0xF0:
c = ord(self.readStr(1))
c <<= 8
c += ord(self.readStr(1))
c <<= 8
c += ord(self.readStr(1))
c <<= 8
c += ord(self.readStr(1))
return c

def writeStr(self, str):
n = 0;
while n < len(str):
r = self.sk.send(str[n:])
if r == 0: raise RuntimeError, "connection closed by remote end"
n += r

def readStr(self, length):
ret = ''
while len(ret) < length:
s = self.sk.recv(length - len(ret))
if s == '': raise RuntimeError, "connection closed by remote end"
ret += s
return ret

def main():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((sys.argv[1], 8728))
apiros = ApiRos(s);
apiros.login(sys.argv[2], sys.argv[3]);

inputsentence = []

while 1:
r = select.select([s, sys.stdin], [], [], None)
if s in r[0]:
# something to read in socket, read sentence
x = apiros.readSentence()

if sys.stdin in r[0]:
# read line from input and strip off newline
l = sys.stdin.readline()
l = l[:-1]

# if empty line, send sentence and start with new
# otherwise append to input sentence
if l == '':
apiros.writeSentence(inputsentence)
inputsentence = []
else:
inputsentence.append(l)

if __name__ == '__main__':
main()
[/sourcecode]

Simpan file diatas dengan nama routeros.py, dan untuk menjalankan nya masukan perintah berikut ini :

[sourcecode language="bash"]
chmod 777 routeros.py
python routeros.py 192.168.88.1 admin admin
[/sourcecode]


jika login anda benar maka akan muncul hasil seperti dibawah ini :

[sourcecode language="bash"]
<<< /login
<<< >>> !done
>>> =ret=3febe34367f76733cbece5c7822ebf7c
>>>
<<< /login
<<< =name=admin
<<< =response=0043af609b070655d06d5c1a7984377b6f
<<< >>> !done
>>>
[/sourcecode]

dan jika password anda salah maka akan tampil pesan berikut ini :

[sourcecode language="bash"]
<<< /login
<<< >>> !done
>>> =ret=8b5b3964ffd9422d920b6497960bfddd
>>>
<<< /login
<<< =name=admin
<<< =response=00f3f3219cdea9fc3861b19551f3457af6
<<< >>> !trap
>>> =message=cannot log in
>>>
>>> !done
>>>
[/sourcecode]

Okey, sekarang mari mencoba menampilakan semua interface pada mikrotik dengan MikroTik API client berbasis python ini. Ketik perintah dibawah ini dan ketik enter :

[sourcecode language="bash"]
/interface/print
[/sourcecode]

pada laptop ane muncul nya seperti ini,:

[sourcecode language="bash"]
/interface/print

<<< /interface/print
<<< >>> !re
>>> =.id=*1
>>> =comment=
>>> =name=ether1
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*2
>>> =comment=
>>> =name=ether2
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*3
>>> =comment=
>>> =name=ether3
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*4
>>> =comment=
>>> =name=ether4
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*5
>>> =comment=
>>> =name=ether5
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*6
>>> =comment=
>>> =name=vlan1
>>> =mtu=1500
>>> =type=vlan
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*7
>>> =comment=
>>> =name=vrrp1
>>> =mtu=1500
>>> =type=vrrp
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*8
>>> =comment=
>>> =name=vlan2
>>> =mtu=1500
>>> =type=vlan
>>> =dynamic=false
>>> =running=true
>>>
>>> !done
>>>
[/sourcecode]

bagaimana dengan laptop anda.....??? pengen tau, coba aja di ketik ...
Okey, kalau laptop ane, ada banyak interface yang sudah di add, jadi untuk memilih interface secara spesifik ketik perintah berikut :

[sourcecode language="bash"]
/interface/print
?=type=vlan
[/sourcecode]

Hasilnya anda akan menampilkan interface yang type vlan saja, berikut ini hasilnya :

[sourcecode language="bash"]
/interface/print
?=type=vlan

<<< /interface/print
<<< ?=type=vlan
<<< >>> !re
>>> =.id=*6
>>> =comment=
>>> =name=vlan1
>>> =mtu=1500
>>> =type=vlan
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*8
>>> =comment=
>>> =name=vlan2
>>> =mtu=1500
>>> =type=vlan
>>> =dynamic=false
>>> =running=true
>>>
>>> !done
>>>
[/sourcecode]

Okeh, sekarang bagaimana kalau ingin menampilkan interface ether1 dan ether2? coba ketik perintah berikut ini :

[sourcecode language="bash"]
/interface/print
?=name=ether1
?=name=ether2
?#|
[/sourcecode]

Hasilnya akan seperti ini :

[sourcecode language="bash"]
<<< /interface/print
<<< ?=name=ether1
<<< ?=name=ether2
<<< ?#|
<<< >>> !re
>>> =.id=*1
>>> =comment=
>>> =name=ether1
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*2
>>> =comment=
>>> =name=ether2
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !done
>>>
[/sourcecode]

Okeh, sekali lagi, bagaimana kalau ingin menampilkan interface ether saja dan selain daripada ether1 dan ether2? coba ketik perintah ini :

[sourcecode language="bash"]
/interface/print
?=type=ether
?#&
?=name=ether1
?#!
?=name=ether2
?#!
[/sourcecode]

maka hasilnya akan seperti dibawah ini :

[sourcecode language="bash"]
<<< /interface/print
<<< ?=type=ether
<<< ?#&
<<< ?=name=ether1
<<< ?#!
<<< ?=name=ether2
<<< ?#!
<<< >>> !re
>>> =.id=*3
>>> =comment=
>>> =name=ether3
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*4
>>> =comment=
>>> =name=ether4
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*5
>>> =comment=
>>> =name=ether5
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !done
>>>
[/sourcecode]

Mengapa hasilnya bisa seperti itu ??? bagaimana rumusan nya??? Topik apa yang sedang kita bahas saat ini???
Okey, jadi yang sedang ane uji coba sekarang ini adalah tentang MikroTik API bagian Queries yang hanya disupport pada RouterOS versi 3.22 ke atas...
begini rumusan nya (walaupun sebenarnya ane masih belum terlalu faham betul, but ini asumsi ane okeh!!)

kalau berdasarkan situs http://wiki.mikrotik.com/wiki/Manual:API, berikut keterangan nya:
Okeh, jadi kalau di terjemahkan (pake google translate and di perbaiki) :

QUERIES
perintah cetak menerima kata-kata yang telah di kirimkan dan akan mengatur ulang satu set kalimat . Fitur ini tersedia sejak RouterOS 3.21.


Query dimulai dengan tanda '?' (tanpa tanda petik)
Urutan kata - kata Query sifatnya signifikan. Query di evaluasi mulai dari kata pertama.
Query akan di evaluasi pertiap item yang berada dalam daftar, jika query berhasil, item akan diproses dan jika query gagal item akan diabaikan.
Query di evaluasi menggunakan tumpukan (stack) nilai boolean (true/false). Awalnya tumpukan (stack) berisi jumlah nilai 'true' tak terbatas. Pada akhir proses evaluasi, jika tumpukan (stack) berisi setidaknya satu nilai 'false' maka query menjadi gagal.
Pengoperasian kata - kata dalam query adalah berdasar pada aturan berikut ini :































QueryDesciption
?nameStack akan mengirim 'true' jika item mempunyai value (nilai) dari property name, dan Stack akan mengirim 'false' jika hal sebaliknya terjadi.
?-nameStack akan mengirim 'true' jika item tidak memiliki value (nilai) dari property name, dan Stack akan mengirim 'false' jika hal sebaliknya terjadi.
?name=x
?=name=x
Stack akan mengirim 'true' jika property name memiliki value (nilai) sama dengan x, dan Stack akan mengirim 'false' jika hal sebaliknya terjadi.
?<name=xStack akan mengirim 'true' jika property name memiliki nilai kurang dari x, dan Stack akan mengirim 'false' jika hal sebaliknya terjadi.
?>name=xStack akan mengirim 'true' jika property name lebih besar dari x, dan Stack akan mengirim 'false' jika hal sebaliknya terjadi.
?#operationsberikut ini aturan operasi yang berlaku dalam stack: string operasi di evaluasi dari kiri ke kanan.

urutan digit desimal di ikuti dengan sembarang karakter atau akhir kata ditafsirkan sebagai index stack dimana nilai index pada stack pertama adalah 0.

index  yang di ikuti oleh karakter akan mendorong salinan (copy) pada nilai tersebut. index yang di ikuti kata akhiran akan menggantikan semua nilai dengan nilai pada index tersebut.

'!' (not) karakter akan menggantikan nilai atas dengan nilai yang berlawanan dengan nya.

'&' (and) karakter akan membuang dua nilai (value) dan sebagai hasilnya karakter ini akan melakukan operasi logis 'and'.

'|' (or) karakter akan membuang dua nilai (value) dan sebagai hasilnya karakter ini akan melakukan operasi logis 'or'.

'.' (dot) karakter tidak akan menjadikan error

'.' (dot) karakter setelah karakter lain akan mendorong atau mengirim salinan pada nilai di bagian atas.

Audience : Wah masih bingung gan???
Penulis : Tenang ane juga bingung kok, abis bahasanya baku bangets... tapi mari kita bahas sama - sama siapa tau kita bisa mengerti...
jadi begini, misalnya ada sintaks seperti ini:

[sourcecode language="bash"]
/interface/print
?=type=vlan
?=type=ether
?#|
?=name=ether1
?#!
?#&
[/sourcecode]

kemudian misalnya, kita anggap masing - masing baris dengan kode seperti ini :
?=type=vlan adalah P1
?=type=ether adalah P2
?#| adalah L1
?=name=ether1 adalah P3
?#! adalah L2
?#& adalah L3

okey kalau kita susun dalam bentuk ke kanan jadinya seperti ini :
P1 P2 L1 P3 L2 L3

seperti yang telah dijelaskan dalam tabel diatas, setiap operasi yang ditandai dengan ?# maka dia memiliki rumusan sendiri. Dan setelah ane analisa maka bentuk tadi akan diubah menjadi seperti ini :
P1 L1 P2 L3 L2 P3

dan hasilnya akan menjadi seperti sintaks dibawah ini saat dibaca oleh MikroTik RouterOS :

[sourcecode language="bash"]
?=type=vlan
?#|
?=type=ether
?#&
?#!
?=name=ether1
[/sourcecode]

sehingga seolah - olah sintaks yang diterima oleh mikrotik menjadi seperti ini :

[sourcecode language="bash"]
?=type=vlan ?#| ?=type=ether ?#& ?#! ?=name=ether1
[/sourcecode]

masih belibet kan??? sama... tapi mari coba ubah bentuknya agar lebih mudah dimengerti menjadi seperti ini :

[sourcecode language="bash"]
type=vlan or type=ether and name!=ether1
[/sourcecode]

Pertanyaan nya adalah bagaimana bentuk seperti ini bisa di analogikan???
Hal ini karena mikrotik mengimplementasikan stack, yang mana setiap operasi logika and dan or akan membuang dua perintah dari stack dan akan mengubahnya menjadi bentuk operasi logis.
Nah itu asumsi ane... jadi benar atau salahnya masih belum bisa ane pertanggung jawabkan, untuk mendapat contoh - contoh yang lebih banyak silahkan buka link pada wiki mikrotik ini : http://wiki.mikrotik.com/wiki/API_command_notes

Okeh, semoga bermanfaat... sekian dan terima kasih...
Read More

Instalasi Graphical Network Simulator (GNS) sebagai Lab Virtual Cisco pada Ubuntu

No comments :
Menurut situs GNS, Graphical Network Simulator (GNS) adalah sebuah simulator yang digunakan untuk membangun sebuah simulasi jaringan yang kompleks.  GNS berjalan dengan integrasi aplikasi-aplikasi lain untuk menyediakan simulasi yang akurat dan komperhensif. Aplikasi-aplikasi tersebut antara lain :

  • Dynamips, yang berfungsi untuk simulator Cisco IOS

  • Dynagen, interface berbasis text yang berfungsi mengontrol Dynamips

  • Qemu, emulator dan virtulisasi open source

  • VirtualBox, perangkat lunak virtualisasi yang powerfull


GNS adalah sebuah perangkat lunak pelengkap yang sangat baik untuk simulasi yang mendekati nyata (laboratorium nyata) bagi insinyur jaringan, administrator jaringan dan tentunya bagi mereka yang sedang dalam proses untuk mendapatkan sertifikasi seperti, Cisco CCNA, CCNP, dan CCIE dan juga untuk mereka yang ingin mengejar sertifikasi Juniper JNCIA, JNCIS, dan JNCIE.

Dukungan dan  integrasi VirtualBox (unofficial version) saat ini memungkinkan system engineer dan Administrator untuk membangun sebuah lab virtual  untuk RedHat (RHCE, RHCT), Microsoft (MSCE, MSCA), Novell(CLP) dan sertifikasi-sertifikasi lain. Selain itu, GNS bersifat open sources dan multiplatform, sehingga memungkinkan GNS bisa digunakan pada berbagai sistem operasi seperti Microsoft Windows, Linux, dan MacOS.

GNS juga menyediakan dukungan untuk integrasi dengan wireshark untuk melakukan analisa segment, packet, ataupun frame padal layer TCP/IP. Dukungan integrasi ini memungkinkan Anda bisa untuk mengetahui setiap layer TCP/IP yang bekerja pada Lab Virtual anda. Sifat GNS yang virtual memungkinkan rancangan jaringan virtual yang Anda bangun bisa diakses melalui komputer lain dengan port-port yang telah Anda ataupun GNS tentukan.

Secara sederhana saya dapat menilai GNS salah satu bentuk Lab Virtual yang sangat baik untuk pembelajaran terutama bagi mereka yang sedang mengejar sertifikasi dan network engineer. Menggunakan GNS sebagai Lab Virtual serasa memiliki perangkat asli tapi palsu(virtual ghitu loh). Bagi yang kurang uang saku di dompet untuk membeli perangkat asli dengan jumlah yang memadai untuk membangun sebuah uji coba maka GNS salah satu solusi terbaik yang anda punya saat ini.

Cisco sendiri memiliki perangkat lunak simulator untuk mempermudah proses belajar Anda seperti Packet Tracer, namun Packet Tracer bisa dikatakan Lab Virtual yang tertutup dan terbatas. Sementara GNS, batasan nya hanya resource komputer anda (RAM, CPU dan lain sebagainya), hal ini karena GNS menggunakan Cisco IOS langsung untuk bisa berjalan. Di setiap kelebihan selalu ada kekurangan, begitu pula dengan GNS. Kelebihan yang dimiliki GNS sebagai Lab Virtual di isi dengan kekurangan bahwa GNS tidak bisa berjalan kecuali Anda memilki Cisco IOS yang berasal dari perangkat Cisco Anda langsung, sehingga untuk bisa menggunakan GNS anda harus melakukan ekstrak Cisco IOS dari perangkat Cisco anda yang asli.

Okeh, cukup bicara teori nya....

Sekarang mari mencoba untuk menginstall GNS pada Ubuntu anda... tuliskan sintaks dibawah ini pada terminal linux ubuntu anda:

[sourcecode language="bash"]
sudo apt-get install gns3 dynamips qemu wireshark
[/sourcecode]

Okey setelah proses instalasi anda selesai, buka unity dan ketik gns kemudian klik icon GNS maka akan tampil antarmuka sebagai berikut :

GNS3_020

Pada bagian samping kiri pada antarmuka diatas Anda disediakan perangkat-perangkat Jaringan Cisco, Juniper, Swicth, ATM, IDS Qemu Host dan Cloud. Perangkat-perangkat virtual diatas bisa anda tambahkan pada jika anda memiliki Firmware atau IOS. Okey selanjutnya buka menu Edit->IOS image and hypervisor seperti pada gambar dibawah ini :

Menu_021

Setelah itu akan muncul antarmuka sebagai berikut :

Preferences_030

Pada tab IOS Image, anda disediakan sebuah fitur untuk menambah Image dari system operasi dari Cisco, Juniper maupun Qemu. Seperti yang Anda lihat pada gambar diatas pada label Settings, Anda bisa memilih OS Image dan mengatur platform serta model dari OS Image anda. Biasanya jika Anda memiliki Image Cisco IOS, Default RAM yang digunakan oleh Cisco sudah secara default ditentukan akan tetapi anda bisa menambah jumlah penggunaan RAM sesuai kebutuhan Anda. Jika Anda telah mengisi field-filed pada label Setting jangan lupa untuk mengklik tombol save untuk menyimpan OS Image yang telah Anda inputkan.

Untuk melakukan pengaturan terhadap Qemu Host (Virtual Machine) agar anda bisa membuat sebuah mesin virtual untuk menjalankan Sistem Operasi yang berbeda, buka menu Preference->Qemu seperti pada gambar dibawah in :
Menu_022

Preferences_030

 

Pada gambar diatas anda bisa memasukan OS Image untuk sistem operasi yang akan berjalan sebagai virtual machine. Field-field yang dibutuhkan antara lain :

  • Identifier name sebagai nama virtual machine

  • Binary Image sebagai path OS Image Sistem Operasi Anda

  • RAM yang akan digunakan untuk menjalankan virtual machine

  • Number of NICs untuk mengatur jumlah kartu jaringan Anda

  • NIC Model untuk menentukan Model kartu jaringan yang Anda inginkan

  • Qemu Option jika anda memerlukan opsional untuk pengaturan tambahan dalam menjalankan Qemu

  • Use KQemu untuk menjalankan Qemu dalam bentuk KDE

  • Use KVM (Linux Only) untuk mengatur kernell based virtual machine (tentunya ini khusus untuk sistem operasi linux)


Jika anda telah seleasi maka langkah selanjutnya mengklik tombol save untuk menyimpan inputan data Anda.

 

Okey, tutorial dengan kasus akan dibahas selanjtunya... to be continued....

Sumber Rujukan : http://www.gns3.net
Read More

Tutorial Cisco Static Routing

No comments :
Okey kali ini ane akan membahas mengenai static routing pada cisco. Tools yang ane gunakan adalah Cisco Packet Tracer versi 5.3, soo untuk bisa mengikuti tutorial ini download terlebih dahulu cisco packet tracer versi 5.3. Okey begini topology nya...

Screen_Shot_2012-04-06_at_3.42_.12_AM_


berikut ini tabel nya :



























































NoNama PerangkatInterfaceIP AddressSubnet MaskGateway
1R1Fa0/0172.30.0.2255.255.255.252N/A
R1Fa0/1172.30.2.1255.255.255.0N/A
2R2Fa0/0172.30.0.1255.255.255.252N/A
R2Fa0/1172.30.1.1255.255.255.0N/A
3PC AFastEthernet172.30.2.2255.255.255.0172.30.2.1
4PC BFastEthernet172.30.1.2255.255.255.0172.30.1.1

Okey... ane akan berikan contoh melakukan konfigurasi berdasarkan tabel diatas. Langsung saja....

Konfigurasi R1

Klik pada R1 dan masukan sintaks berikut ini :

[sourcecode language="bash"]
Router>enable
Router#conf t
Router(config)#hostname R1
R1(config)#int fa0/0
R1(config-if)#ip address 172.30.0.2 255.255.255.252
R1(config-if)#no shutdown
R1(config-if)#ip address 172.30.2.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#ip route 172.30.1.0 255.255.255.0 172.30.0.1
R1(config)#end
R1#copy run start
[/sourcecode]

Konfigurasi R2
Klik R2 dan masukan sintaks berikut ini :

[sourcecode language="bash"]
Router>enable
Router#conf t
Router(config)#hostname R2
R2(config)#int fa0/0
R2(config-if)#ip address 172.30.0.1 255.255.255.252
R2(config-if)#no shutdown
R2(config-if)#ip address 172.30.1.1 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#ip route 172.30.2.0 255.255.255.0 172.30.0.2
R2(config)#end
R2#copy run start
[/sourcecode]

Okey selanjutnya lakukan konfigurasi pada PC A dan PC B berikut ini contoh gambarnya :
PC A

Screen_Shot_2012-04-06_at_3.45_.39_AM_

PC B

Screen_Shot_2012-04-06_at_3.46_.09_AM_

Silahkan di analisa apa yang sedang terjadi dengan perintah show ip route pada masing-masing router untuk bisa memahai apa yang sedang terjadi... dan satu lagi... teman terbaik anda adalah google... silahkan cari dengan kata kunci routing table cisco untuk bisa memahai lebih lanjut....
selamat mencoba....
Read More

Installasi Oracle JDK 7 pada Ubuntu 11.10

1 comment :
Okey, setelah menginstall Oracle JDK 7 tanpa synaptic atau apt,  browser google chrome saya menjadi tidak berfungsi dengan baik ketika berhadapan dengan java applet dan sejenisnya. Setelah bergoogling ria akhirnya saya mendapat pencerahan (beeeiihhh mudah!!!!)... Supaya sama - sama cerah bagi yang merasa gelap pikiran, saya bagi oprekan script plus langkah - langkah nya.

 

Langkah Pertama ,

  1. Download JDK 7 pada link berikut ini : http://download.oracle.com/otn-pub/java/jdk/7u1-b08/jdk-7u1-linux-i586.tar.gz

  2. Pastikan anda mendownload JDK dengan extensi file tar.gz


Jika anda telah selesai mendownload tulis sintaks berikut ini pada terminal anda :

[sourcecode language="bash"]
cp jdk-7u1-linux-i586.tar.gz /opt/
cd /opt/
tar -xvzf jdk-7u1-linux-i586.tar.gz
[/sourcecode]

Langkah Kedua,

Buka Text Editor atau nano dan isi dengan sintaks berikut ini :

[sourcecode language="bash"]
#!/bin/bash
#Iseng - Iseng VTHINK

echo "Please Enter Your JAVA HOME (e.g /opt/jdk1.7.0) : "
read java_dir

echo "Creatng symlink in /usr/lib/jvm/java-7-sun.."
ln -s $java_dir /usr/lib/jvm/java-7-sun

echo "Creating Environment JAVA_HOME.."
JAVA_HOME=/usr/lib/jvm/java-7-sun
export JAVA_HOME

echo "Creating PATH Environment JAVA_HOME.."
PATH=$PATH:$JAVA_HOME/bin:
export PATH

echo "Creating CLASSPATH Environment JAVA_HOME.."
CLASSPATH=$JAVA_HOME/lib/:.
export CLASSPATH

echo "Please Enter Your Java Architecture (i386/amd64) : "
read java_arch


echo "Do update-alternatives..."
update-alternatives --quiet --install /usr/lib/xulrunner-addons/plugins/libjavaplugin.so xulrunner-1.9-javaplugin.so /usr/lib/jvm/java-7-sun/jre/lib/$java_arch/libnpjp2.so 63
update-alternatives --quiet --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /usr/lib/jvm/java-7-sun/jre/lib/$java_arch/libnpjp2.so 63
update-alternatives --quiet --install /usr/bin/appletviewer appletviewer /usr/lib/jvm/java-7-sun/bin/appletviewer 63 --slave /usr/share/man/man1/appletviewer.1 appletviewer.1 /usr/lib/jvm/java-7-sun/man/man1/appletviewer.1
update-alternatives --quiet --install /usr/bin/apt apt /usr/lib/jvm/java-7-sun/bin/apt 63 --slave /usr/share/man/man1/apt.1 apt.1 /usr/lib/jvm/java-7-sun/man/man1/apt.1
update-alternatives --quiet --install /usr/bin/extcheck extcheck /usr/lib/jvm/java-7-sun/bin/extcheck 63 --slave /usr/share/man/man1/extcheck.1 extcheck.1 /usr/lib/jvm/java-7-sun/man/man1/extcheck.1
update-alternatives --quiet --install /usr/bin/idlj idlj /usr/lib/jvm/java-7-sun/bin/idlj 63 --slave /usr/share/man/man1/idlj.1 idlj.1 /usr/lib/jvm/java-7-sun/man/man1/idlj.1
update-alternatives --quiet --install /usr/bin/jar jar /usr/lib/jvm/java-7-sun/bin/jar 63 --slave /usr/share/man/man1/jar.1 jar.1 /usr/lib/jvm/java-7-sun/man/man1/jar.1
update-alternatives --quiet --install /usr/bin/jarsigner jarsigner /usr/lib/jvm/java-7-sun/bin/jarsigner 63 --slave /usr/share/man/man1/jarsigner.1 jarsigner.1 /usr/lib/jvm/java-7-sun/man/man1/jarsigner.1
update-alternatives --quiet --install /usr/bin/javac javac /usr/lib/jvm/java-7-sun/bin/javac 63 --slave /usr/share/man/man1/javac.1 javac.1 /usr/lib/jvm/java-7-sun/man/man1/javac.1
update-alternatives --quiet --install /usr/bin/javadoc javadoc /usr/lib/jvm/java-7-sun/bin/javadoc 63 --slave /usr/share/man/man1/javadoc.1 javadoc.1 /usr/lib/jvm/java-7-sun/man/man1/javadoc.1
update-alternatives --quiet --install /usr/bin/javah javah /usr/lib/jvm/java-7-sun/bin/javah 63 --slave /usr/share/man/man1/javah.1 javah.1 /usr/lib/jvm/java-7-sun/man/man1/javah.1
update-alternatives --quiet --install /usr/bin/javap javap /usr/lib/jvm/java-7-sun/bin/javap 63 --slave /usr/share/man/man1/javap.1 javap.1 /usr/lib/jvm/java-7-sun/man/man1/javap.1
update-alternatives --quiet --install /usr/bin/jconsole jconsole /usr/lib/jvm/java-7-sun/bin/jconsole 63 --slave /usr/share/man/man1/jconsole.1 jconsole.1 /usr/lib/jvm/java-7-sun/man/man1/jconsole.1
update-alternatives --quiet --install /usr/bin/jdb jdb /usr/lib/jvm/java-7-sun/bin/jdb 63 --slave /usr/share/man/man1/jdb.1 jdb.1 /usr/lib/jvm/java-7-sun/man/man1/jdb.1
update-alternatives --quiet --install /usr/bin/jhat jhat /usr/lib/jvm/java-7-sun/bin/jhat 63 --slave /usr/share/man/man1/jhat.1 jhat.1 /usr/lib/jvm/java-7-sun/man/man1/jhat.1
update-alternatives --quiet --install /usr/bin/jinfo jinfo /usr/lib/jvm/java-7-sun/bin/jinfo 63 --slave /usr/share/man/man1/jinfo.1 jinfo.1 /usr/lib/jvm/java-7-sun/man/man1/jinfo.1
update-alternatives --quiet --install /usr/bin/jmap jmap /usr/lib/jvm/java-7-sun/bin/jmap 63 --slave /usr/share/man/man1/jmap.1 jmap.1 /usr/lib/jvm/java-7-sun/man/man1/jmap.1
update-alternatives --quiet --install /usr/bin/jps jps /usr/lib/jvm/java-7-sun/bin/jps 63 --slave /usr/share/man/man1/jps.1 jps.1 /usr/lib/jvm/java-7-sun/man/man1/jps.1
update-alternatives --quiet --install /usr/bin/jrunscript jrunscript /usr/lib/jvm/java-7-sun/bin/jrunscript 63 --slave /usr/share/man/man1/jrunscript.1 jrunscript.1 /usr/lib/jvm/java-7-sun/man/man1/jrunscript.1
update-alternatives --quiet --install /usr/bin/jsadebugd jsadebugd /usr/lib/jvm/java-7-sun/bin/jsadebugd 63 --slave /usr/share/man/man1/jsadebugd.1 jsadebugd.1 /usr/lib/jvm/java-7-sun/man/man1/jsadebugd.1
update-alternatives --quiet --install /usr/bin/jstack jstack /usr/lib/jvm/java-7-sun/bin/jstack 63 --slave /usr/share/man/man1/jstack.1 jstack.1 /usr/lib/jvm/java-7-sun/man/man1/jstack.1
update-alternatives --quiet --install /usr/bin/jstat jstat /usr/lib/jvm/java-7-sun/bin/jstat 63 --slave /usr/share/man/man1/jstat.1 jstat.1 /usr/lib/jvm/java-7-sun/man/man1/jstat.1
update-alternatives --quiet --install /usr/bin/jstatd jstatd /usr/lib/jvm/java-7-sun/bin/jstatd 63 --slave /usr/share/man/man1/jstatd.1 jstatd.1 /usr/lib/jvm/java-7-sun/man/man1/jstatd.1
update-alternatives --quiet --install /usr/bin/native2ascii native2ascii /usr/lib/jvm/java-7-sun/bin/native2ascii 63 --slave /usr/share/man/man1/native2ascii.1 native2ascii.1 /usr/lib/jvm/java-7-sun/man/man1/native2ascii.1
update-alternatives --quiet --install /usr/bin/rmic rmic /usr/lib/jvm/java-7-sun/bin/rmic 63 --slave /usr/share/man/man1/rmic.1 rmic.1 /usr/lib/jvm/java-7-sun/man/man1/rmic.1
update-alternatives --quiet --install /usr/bin/schemagen schemagen /usr/lib/jvm/java-7-sun/bin/schemagen 63 --slave /usr/share/man/man1/schemagen.1 schemagen.1 /usr/lib/jvm/java-7-sun/man/man1/schemagen.1
update-alternatives --quiet --install /usr/bin/serialver serialver /usr/lib/jvm/java-7-sun/bin/serialver 63 --slave /usr/share/man/man1/serialver.1 serialver.1 /usr/lib/jvm/java-7-sun/man/man1/serialver.1
update-alternatives --quiet --install /usr/bin/wsgen wsgen /usr/lib/jvm/java-7-sun/bin/wsgen 63 --slave /usr/share/man/man1/wsgen.1 wsgen.1 /usr/lib/jvm/java-7-sun/man/man1/wsgen.1
update-alternatives --quiet --install /usr/bin/wsimport wsimport /usr/lib/jvm/java-7-sun/bin/wsimport 63 --slave /usr/share/man/man1/wsimport.1 wsimport.1 /usr/lib/jvm/java-7-sun/man/man1/wsimport.1
update-alternatives --quiet --install /usr/bin/xjc xjc /usr/lib/jvm/java-7-sun/bin/xjc 63 --slave /usr/share/man/man1/xjc.1 xjc.1 /usr/lib/jvm/java-7-sun/man/man1/xjc.1
update-alternatives --quiet --install /usr/bin/java-rmi.cgi java-rmi.cgi /usr/lib/jvm/java-7-sun/bin/java-rmi.cgi 63
update-alternatives --quiet --install /usr/bin/ControlPanel ControlPanel /usr/lib/jvm/java-7-sun/jre/bin/ControlPanel 63
update-alternatives --quiet --install /usr/bin/java java /usr/lib/jvm/java-7-sun/jre/bin/java 63
update-alternatives --quiet --install /usr/bin/java_vm java_vm /usr/lib/jvm/java-7-sun/jre/bin/java_vm 63
update-alternatives --quiet --install /usr/bin/javaws javaws /usr/lib/jvm/java-7-sun/jre/bin/javaws 63
update-alternatives --quiet --install /usr/bin/jcontrol jcontrol /usr/lib/jvm/java-7-sun/jre/bin/jcontrol 63
update-alternatives --quiet --install /usr/bin/keytool keytool /usr/lib/jvm/java-7-sun/jre/bin/keytool 63
update-alternatives --quiet --install /usr/bin/pack200 pack200 /usr/lib/jvm/java-7-sun/jre/bin/pack200 63
update-alternatives --quiet --install /usr/bin/policytool policytool /usr/lib/jvm/java-7-sun/jre/bin/policytool 63
update-alternatives --quiet --install /usr/bin/rmid rmid /usr/lib/jvm/java-7-sun/jre/bin/rmid 63
update-alternatives --quiet --install /usr/bin/rmiregistry rmiregistry /usr/lib/jvm/java-7-sun/jre/bin/rmiregistry 63
update-alternatives --quiet --install /usr/bin/unpack200 unpack200 /usr/lib/jvm/java-7-sun/jre/bin/unpack200 63
update-alternatives --quiet --install /usr/bin/orbd orbd /usr/lib/jvm/java-7-sun/jre/bin/orbd 63
update-alternatives --quiet --install /usr/bin/servertool servertool /usr/lib/jvm/java-7-sun/jre/bin/servertool 63
update-alternatives --quiet --install /usr/bin/tnameserv tnameserv /usr/lib/jvm/java-7-sun/jre/bin/tnameserv 63
update-alternatives --quiet --install /usr/bin/jexec jexec /usr/lib/jvm/java-7-sun/jre/lib/jexec 63

echo "Updating Done!"
[/sourcecode]

Setelah itu simpan dengan nama java_config.sh, kemudian ketik sintaks berikut ini :

[sourcecode language="bash"]
chmod +x java_config.sh
sudo ./java_config.sh
[/sourcecode]

hasilnya akan seperti berikut ini :
[sourcecode language="bash"]
root@Dell:~/Desktop# ./java_config
Please Enter Your JAVA HOME (e.g /opt/jdk1.7.0) :
/opt/jdk1.7.0_01
Creatng symlink in /usr/lib/jvm/java-7-sun..
Creating Environment JAVA_HOME..
Creating PATH Environment JAVA_HOME..
Creating CLASSPATH Environment JAVA_HOME..
Please Enter Your Java Architecture (i386/amd64) :
i386
Do update-alternatives...
Updating Done!
[/sourcecode]

Sekian dan Terima Kasih...

Referensi : http://brunoreis.com/tech/intalling-java-ubuntu-natty/
Read More

Mini NSLOOKUP dengan Java

No comments :
hmmmm…. nslookup… apaan ntu??? nslookup itu fungsi untuk mencari ns (name server), contohnya: nslookup nanya ke dns server, domain google.com berapa ipnya nah atau sebaliknya ip ini ada domain nya gak??? gampang nya gene ketik aja di terminal kayak gene :

nslookup google.com

Server: 114.127.208.84
Address: 114.127.208.84#53


Non-authoritative answer:
Name:    google.com
Address: 209.85.132.104


nah ntu hasil dari terminal saya…  sekarang karena ane lagi belajar java gan… ane posting ney caranya buat mini nslookup pake java ney sintaksnya :

[sourcecode language="java"]
/**
*
* @author gen5x4
*/
import java.net.InetAddress;
import javax.swing.JOptionPane;

public class Hostname {
public static void main(String[] args) throws Exception {
//ini inputan berupa panel dialog
String host = JOptionPane.showInputDialog("Masukan Domain");

//pemroses yang mencari ip dari domain yang di inputkan
InetAddress addr = InetAddress.getByName(host);

//mencetak hasil yang telah di proses
JOptionPane.showMessageDialog(null, addr);
}
}

[/sourcecode]

abis ntu compile dengan sintaks :
javac Hostname.java
truz jalankan dengan sintaks :
java Hostname.class

hasilnya ntar kayak gene :





selamat mencoba……

seeeep mantab….
Read More

Enkripsi dan Dekripsi di PHP

No comments :
okeh ketemu lagi dengan saya di acara yang sama dan channel yang sama…. wkwkwkwkwkw… hmmm… sekarang ane mau bahas tentang enkripsi sekaligus dekripsi soalnya ney pasangan gak bisa dipisahin… seperti adam dan hawa, alah lebay ane… hehehehe… okeh, ane cukupun dulu lebuy bin maun….

jadi begini… enkripsi itu bahasa gampangnya kayak gene… ane punya surat yang mau dikirim ke orang, misalnya surat cinta… (teringat masa SMP, gak ada Ponsel) nah supaya gak ketauan sama orang gimana caranya ya??? ada bermacam – macam cara… salah satunya kirim lewat mimpi…. minta bantuan kawan dan masih banyak lage… nah misalnya kita pilih cara kirim lewat teman… yang jadi masalah… surat ini sangat rahasia, bahkan si temen deket yang ngirim ney juga gak boleh tau… trus gimana dunkz…??? di situlah kita bisa menggunakan metode enkripsi… jadi simple nya, lok jaman om dulu, tinggal ngerubah susunan kata nya kayak gini misalnya :

A = I, B = A, I=B, C=F

jadi kalau kita mau nulis AKU CINTA KAMU, berati nulisnya gene IKU FANTI KIMU…. hehehe….

untuk alasan keamanan kayak gene kemudian dikembangkan juga di komputer tentang enkripsi dan dekripsi… ane mungkin gak panjang lebar ngebahas konsep nya… soalnya anda masih bisa googling dan masih banyak di luar sana…  (lah yang anda bahas ini juga kan bisa di googling?) apa yang ane buat ini mungkin hanya menambah sedikit dari perbendaharaan aja ghitu loh…

okeh langsung aja… di PHP ada beberapa fungsi yang digunakan untuk melakukan proses enkripsi, misalnya kayak gene….

[sourcecode language="php"]
<?php
$crypt_md5=md5("dicoba");
$crypt_sha1=sha1("dicoba");
$crypt_crc32=crc32("dicoba");

echo "enkripsi kata 'dicoba' <br>";
echo "enkripsi md5 : ".$crypt_md5."<br>";
echo "enkripsi sha1 : ".$crypt_sha1."<br>";
echo "enkripsi crc32 : ".$crypt_crc32."<br>";
?>
[/sourcecode]

ya misalnya hasilnya kayak gene :

[sourcecode language="php"]
enkripsi kata ‘dicoba’
enkripsi md5 : 9c271c6bdbff33bbe7b0f6e2b24f60ed
enkripsi sha1 : 9774c4ed3143b4a7378118fe3fab5ffa0c0d93e8
enkripsi crc32 : -1310493240
[/sourcecode]

sintaks diatas untuk mengenkripsi aja… nah untuk dekrispi nya gimana??? kalau ane mau cari cepetnya ane pake sintaks ney :

[sourcecode language="php"]
<?php
$string="sembunyikan aku ya";

$encrypt=base64_encode($string);
$decrypt=base64_decode($encrypt);

echo "Kata Yang di Enkripsi : ".$string."<br>";
echo "Hasil Enkrispi : ".$encrypt."<br>";
echo "Hasil Dekripsi : ".$decrypt."<br>";
?>
[/sourcecode]

hasilnya kurang lebih kayak gene :

[sourcecode language="php"]
Kata Yang di Enkripsi : sembunyikan aku ya
Hasil Enkrispi : c2VtYnVueWlrYW4gYWt1IHlh
Hasil Dekripsi : sembunyikan aku ya
[/sourcecode]

cuman lok diatas tinggal di dekrip aja langsung keliatan… bagi orang yang juga ngerti tentang enkripsi… sekarang lok mau yang sedikit lebih ribet pake metode enkripsi BlowFish gmana???
ane dapet dari http://phpclasses.org ada beberapa class php yang bisa dipake buat enkrispi dan dekripsi dengan algoritma enkrispi BlowFish… cara make nya gimana????
sekarang buat dua File… File yang pertama dengan Nama : Cipher.php dan contoh.php… abis ntu kopas sintaks di bawah ini… jangan tanya apa artinya… ane sendiri belum ngerti… tapi itu gunaya class… tinggal dipake aja… okeh copy dan paste sintaks di bawah ini pada file Cipher.php

Cipher.php

[sourcecode language="php"]
<?php
/**
* Cipher
*
* Simple mcrypt interface.
*
* Cipher is a simple class for working with mcrypt.
*
* @package Cipher
* @author Nathan Lucas <nathan@gimpstraw.com>
* @link http://www.gimpstraw.com/
* @copyright Copyright (c) 2008, Nathan Lucas
* @version 2.0.0
*
* Added $iv to both encrypt() and decrypt() allowing you to use preset IVs
* while encrypting/decrypting data.
*
* Also added getIV(), which returns the instance's current IV in base64
* allowing you to store this IV for use on other instances of Cipher.
*/
class Cipher {

/**
* Algorithm to use.
*
* @access private
* @var string
*/
private $algo;

/**
* Encryption mode.
*
* @access private
* @var string
*/
private $mode;

/**
* Randomization source.
*
* @access private
* @var integer
*/
private $source;

/**
* Initialization vector.
*
* @access private
* @var string
*/
private $iv = null;

/**
* Encryption key.
*
* @access private
* @var string
*/
private $key = null;

/**
* Cipher($algo, $mode, $source)
*
* Cipher constructor. Sets the algorithm being used, the encryption
* mode, and the IV.
*
* @param string $algo
* @param string $mode
* @param integer $source (randomization source)
* @access public
* @return void
*/
public function __construct($algo = MCRYPT_3DES, $mode = MCRYPT_MODE_CBC, $source = MCRYPT_RAND) {
$this->algo = $algo;
$this->mode = $mode;
$this->source = $source;

if (is_null($this->algo) || (strlen($this->algo) == 0)) {
$this->algo = MCRYPT_3DES;
}
if (is_null($this->mode) || (strlen($this->mode) == 0)) {
$this->mode = MCRYPT_MODE_CBC;
}
}

/**
* encrypt($data, $key, $iv)
*
* Returns encrpyted $data, base64 encoded. $key must be specified at
* least once, it can be changed at any point.
*
* @param string $data
* @param mixed $key
* @param string $iv
* @access public
* @return string
*/
public function encrypt($data, $key = null, $iv = null) {
$key = (strlen($key) == 0) ? $key = null : $key;

$this->setKey($key);
$this->setIV($iv);

$out = mcrypt_encrypt($this->algo, $this->key, $data, $this->mode, $this->iv);
return base64_encode($out);
}

/**
* decrypt($data, $key, $iv)
*
* Returns decrypted $data. $key must be specified at least once, it can
* be changed at any point.
*
* @param mixed $data
* @param mixed $key
* @param string $iv
* @access public
* @return string
*/
public function decrypt($data, $key = null, $iv = null) {
$key = (strlen($key) == 0) ? $key = null : $key;

$this->setKey($key);
$this->setIV($iv);

$data = base64_decode($data);
$out = mcrypt_decrypt($this->algo, $this->key, $data, $this->mode, $this->iv);
return trim($out);
}

/**
* getIV()
*
* Returns the IV used for encryption so you can use it again in another
* Cipher instance to decrypt data.
*
* @access public
* @return string
*/
public function getIV() {
return base64_encode($this->iv);
}

/**
* setIV($iv)
*
* Sets IV. If $iv is specified, the instance IV will be set to this. If not,
* the instance will generate an IV.
*
* @param string $iv
* @access private
* @return void
*/
private function setIV($iv) {
if (!is_null($iv)) {
$this->iv = base64_decode($iv);
}
if (is_null($this->iv)) {
$iv_size = mcrypt_get_iv_size($this->algo, $this->mode);
$this->iv = mcrypt_create_iv($iv_size, $this->source);
}
}

/**
* setKey($data, $key)
*
* Sets Cipher::key. This will be the key used for the encrypt and decrypt
* methods until another $key is specified. This will trigger an error if
* no initial key is set.
*
* @param mixed $key
* @access private
* @return void
*/
private function setKey($key) {
if (!is_null($key)) {
$key_size = mcrypt_get_key_size($this->algo, $this->mode);
$this->key = hash("sha256", $key, true);
$this->key = substr($this->key, 0, $key_size);
}
if (is_null($this->key)) {
trigger_error("You must specify a key at least once in either Cipher::encrpyt() or Cipher::decrypt().", E_USER_ERROR);
}
}
}
?>
[/sourcecode]

nah lok udah di copy dan di paste sekarang tinggal uji coba hasilnya dengan membuat file bernama contoh.php dengan sintaks sebagai bverikut :

[sourcecode language="php"]
<?php
require_once("Cipher.php");
$cipher = new Cipher(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);

$kunci = "%^$%^&%*HJGHJK";
$string="sembunyikan aku";

$en = $cipher->encrypt($string, $kunci);
$de = $cipher->decrypt($en, $kunci);

echo "Enkrispi Kata : $string <br>";
echo "Hasil Enkripsi : $en <br>";
echo "Hasil Dekrispi : $de <br>";
?>
[/sourcecode]

hasilnya kurang lebih kayak gini :

[sourcecode language="php"]
Enkrispi Kata : sembunyikan aku
Hasil Enkripsi : rCRslGlylLiPRzv6A4+mdg==
Hasil Dekrispi : sembunyikan aku
[/sourcecode]

okeh… gini penjelasan sintaks diatas… require_once(“Cipher.php”) fungsinya untuk memanggil file yang pertama kita buat dengan nama Cipher.php , kemudian sintaks  $cipher = new Cipher(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB); fungsinya untuk membuat sebuah objek dari class supaya bisa dipake nantinya… kata – kata MCRYPT_BLOWFISH memiliki arti metode enkripsi dan dekripsi yang digunakan adalah dengan algoritma Blowfish… trus $kunci dengan isinya yang gak karuan… fungsinya sebagai kunci yang digunakan untuk mengenkripsi dan mendekripsi… kalau kunci nya gak sama isinya, hasil dekripsi gak akan sukses… $string adalah kata – kata yang akan di enkripsi… trus sintaks $en = $cipher->encrypt($string, $kunci) adalah sintak untuk memproses enkrispi dan sintak $de = $cipher->decrypt($en, $kunci) adalah sintak untuk memproses dekripsi….

sepertinya itu aja dulu… di cobain ya moga berhasil ya….

jangan lupa mantra nya seeeppp…. mantaaaabbb…

sumber code Cipher.php dari : http://phpclasses.org oleh Nathan Lucas <nathan@gimpstraw.com>
Read More

Saturday, May 5, 2012

Macam - Macam Pola Radiasi Antenna

No comments :
Okey langsung saja, beberapa gambar dibawah ini merepresentasikan antenna dan pola radiasi nya:

 

OMNI

 

 

 

 

 

YAGI (Omni Directional)



 

SECTORAL WAVEGUIDE 120 Degree



Read More

Sunday, August 15, 2010

Rumus Kalkulasi Wireless

No comments :
bulan ramadhan iseng – iseng ney ngumpulin rumus – rumus wireless… cpa tau bermanfaat…
langsung aja gan…

Mengitung Panjang Gelombang


λ = c/f

keterangan :
λ = panjang gelombang (meter)
c = kecepatan cahaya (300.000 km/s atau 300.000.000 m/s)
f = frekuensi (Hz)

misalnya kita ingin mengetahui panjang gelombang sinyal wifi yang bekerja pada frekuensi 2,4 GHz maka :

λ = c/f
λ = 300.000.000 m/s / 2400.000.000 Hz
λ = 0,125 meter
λ = 12,5 cm

maka panjang gelombang dari sinyal wireless yang bekerja pada frekuensi 2,4 GHz adalah 12,5 cm artinya pada frekuensi ini panjang satu buah gelombang adalah 12,5 cm…

Menghitung dBm (dBmW)

X = 10 Log P

Keterangan  :
X = jumlah desibel yang di hasilkan (dBm)
P = daya dalam miliwatt (mW)

misalnya pada kasus ini Radio (Perangkt Wireless seperti access point atau wireless pada laptop) yang kita miliki mengeluarkan power sebesar 100 miliWatt maka :

X = 10 Log P
X = 10 Log (100)
X = 20 dBm

maka daya yang dikeluarkan oleh radio adalah sebesar 20 dBm….

Menghitung Freznel Zone

r = 0,6 * 17,31 * sqrt((d1*d2)/(f*d))

keterangan :
r  = area freznel zone
d = jarak antar kedua antenna yang saling terkoneksi (meter)
f  = frekuensi (MHz)
d1 = jarak antenna pertama dari penghalang (meter)
d2 = jarak antenna kedua dari penghalang (meter)

okeh kita bahas dikit kapan di pake rumus ney… permisalan kita masang antenna dari satu titik ke titik yang laen…. nah pas masang ada penghalang di tengah – tengah kayak gini ney misalnya …

misalnya jarak antar antenna (d) 4 kilometer trus jarak antenna pertama dari pohon 1,5 kilometer trus jarak antenna kedua dari penghalang 2,5 kilometer berapa area freznel zone nya…. berarti begini perhitungannya …

r =  17,31 * sqrt((d1*d2)/(f*d))
r =  17,31 * sqrt((1500/2500) / (2437*4000))
r =  17,31 *sqrt(3750000 / 9748000)
r = 10.736307495 meter

jika seandainya tinggi antenna pertama dan antenna kedua 15 meter maka freznel zone akan berada 15 meter – 10.736307495 meter =  4.26 meter diatas tanah… jika kita ingin hanya 60% area bebas hambatan maka kita perlu memodifikasi sedikit rumusnya gan… jadinya kayak gene….

r = 0,6 * 17,31 * sqrt((d1*d2)/(f*d))

Sooo ntar lok dapet hasilnya tinggal dikurangis sama ketinggian antenna… lok seandainya masih terhalang dengan ketinggian tade berarti antenna harus di tinggikan lage supaya area bebas hambatan tambah banyak… akhirnya sinyal kuat lah…. gila geto…..

Menghitung Link Budget

untuk menghitung link budget anda bisa mendownload kalkulator yang sudah buat di link ini :http://gen5x4.wordpress.com/2010/11/17/link-budget-calculator/ , tapi anda juga perlu tau cara menghitung dan rumus nya kalau kebetulan lagi di hutan trus listrik gak ada pake nyalain laptop, so ini rumusnya :

Pemancar —-> Total Gain = (TX1 + AG1  – CL1 ) + (AG2 – CL2)

keterangan :
TX1 = TX Power Radio 1 (dBm)
AG1 = Antenna Gain Radio 1 (dBi)
CL1 = Cable Loss Radio 1 (dB)
AG2 = Antenna Gain Radio 2 (dBi)
CL2 = Cable Loss Radio 2 (dB)

Penerima ——– > Total Gain = (TX2 + AG2  – CL2 ) + (AG1 – CL1)

keterangan :
TX2 = TX Power Radio 2 (dBm)
AG2 = Antenna Gain Radio 2 (dBi)
CL2 = Cable Loss Radio 2 (dB)
AG1 = Antenna Gain Radio 1 (dBi)
CL1 = Cable Loss Radio 1 (dB)

Dan Rumus ini juga

LFSL = 40 + 20 * Log r


keterangan
LFSL = Hambatan bebas udara atau Path Loss (dB)
r  = jarak antar kedua antenna (meter)

okeh misalnya kasus nya kayak gene gan :

Pada sebuah sambungan antar dua buah antenna wireless yang jarak antara keduanya adalah 5 km, radio di titik pertama memiliki daya sebesar 150 miliWatt dengan menggunakan antenna grid yang memiliki gain sebesar 24 dBi serta menggunakan kabel sepanjang 1 meter dimana 1 meter kabel akan mengurangi gain sebesar 1 dB. Sementara itu radio titik kedia memiliki daya sebesar 100 miliWatt dengan menggunakan antenna wajan bolic yang memiliki gain sebesar 20 dBi serta menggunakan kabel sepanjang 2 meter  dimana 1 meter kabel akan mengurangi sinyal sebesar  1 dB. Sensivitas Penerima pada Radio di titik pertama adalah -90 dB dan Sensivitas Penerima pada Radio di titik kedua adalah -95 dB.

Hitung
a. Kekuatan Sinyal yang didapatkan oleh Radio di titik pertama.
b. Kekuatan Sinyak yang didapatkan oleh Radio di titik kedua.

okeh ane jawab ney…

jawaban yang (a)
X = 10 Log P
X = 10 Log 150
X = 21.76 dBm
X = 22 dBm

berarti

Total Gain = (22 dBm + 24 dBi – 1 dB) + (20 dBi – 2 dB)
Total Gain = 63 dB

nah sekarang tinggal hitung Path Loss :

LFSL = 40 + 20 * log r
LSFL = 40 + 20 * log (5000)
LSFL = 113,97 dB
LSFL = 114 dB

setelah kita mendapatkan redaman ruang bebas (Path Loss) tinggal dikurangi aja sama Total Gain

Kekuatan Sinyal = 63 dB – 114 dB = -51 dB

Jika sensitivitas penerima pada radio kedua (di sisi client) adalah -95 dB maka kita tinggal mengurangi dengan kekuatan sinyal dari radio pertama…

95 dB -  51 dB = 44 dB

dari hasil perhitungan diatas ntu berarti sinyal bisa diterima cukup baik gan…. pokoknya yang normal ntu 15 dB dah… supaya lok antenna di goyang sinyal masih stabil… nah sekarang coba kita liat apa sinyal dari radio di titik kedua (client) bisa ngirim balik nggak ke pemancar… (radio di titik pertama)…

jawaban yang (b)

X = 10 log P
X = 10 log 100
X = 20 dBm

Total Gain  = (TX2 + AG2 – CL2) + (AG1 – CL1)
Total Gain  = (20 dBm + 20 dBi -2 dB) + (24 dB – 1 dB)
Total Gain = 61 dB

Kekuatan Sinyal = 64 dB – 114 dB = -53 dB

Jika Sensitivitas Radio Penerima pada titik pertama (pemancar) sebesar -90 dB tinggal kurangi aja gan….

90 dB – 53 dB = 37 dB

seep koneksi sejauh 5 kilometer lancar – lancar aja gan…

sepertinya ney aja dulu coz udah deket sahur ney… ntar keburu sahur….
masih cupu seperti dulu gan… lok tau ya berbagi lok gak tau ya apa yang mau di bagi….

ambil dari sini :

http://wndw.net

http://www.wlanmall.com/media/article/fresnelzone.jpg
Read More
Showing posts with label (on) explain. Show all posts
Showing posts with label (on) explain. Show all posts

Tuesday, January 8, 2013

List Variable Global $_SERVER pada PHP 5

PHP memiliki beberapa variable global yang jarang di perhatikan (ane sendiri kale....), salah satu varible global yang perlu diperhatikan lebih adalah $_SERVER. Mengapa? Karena begini gan... Situs php.net menjelaskan bahwa $_SERVER berisi informasi mengenai header, lokasi path, dan lokasi script yang dibangun oleh web server, sehingga informasi mengenai user yang mengakses web server dan apa yang sedang dijalankan web server bisa di dapatkan datanya menggunakan variable $_SERVER.

okeh tanpa bertele - tele lagi langsung saja jalankan script dibawah ini pada web server local anda...


';
echo '$_SERVER[\'PHP_SELF\']            : '.$_SERVER['PHP_SELF']." 
";
echo '$_SERVER[\'GATEWAY_INTERFACE\']   : '.$_SERVER['GATEWAY_INTERFACE']." 
";
echo '$_SERVER[\'SERVER_ADDR\']         : '.$_SERVER['SERVER_ADDR']." 
";
echo '$_SERVER[\'SERVER_NAME\']         : '.$_SERVER['SERVER_NAME']." 
";
echo '$_SERVER[\'SERVER_SOFTWARE\']     : '.$_SERVER['SERVER_SOFTWARE']." 
";
echo '$_SERVER[\'SERVER_PROTOCOL\']     : '.$_SERVER['SERVER_PROTOCOL']." 
";
echo '$_SERVER[\'REQUEST_METHOD\']      : '.$_SERVER['REQUEST_METHOD']." 
";
echo '$_SERVER[\'REQUEST_TIME\']        : '.$_SERVER['REQUEST_TIME']." 
";
echo '$_SERVER[\'QUERY_STRING\']        : '.$_SERVER['QUERY_STRING']." 
";
echo '$_SERVER[\'DOCUMENT_ROOT\']       : '.$_SERVER['DOCUMENT_ROOT']." 
";
echo '$_SERVER[\'HTTP_ACCEPT\']         : '.$_SERVER['HTTP_ACCEPT']." 
";
echo '$_SERVER[\'HTTP_ACCEPT_ENCODING\']    : '.$_SERVER['HTTP_ACCEPT_ENCODING']." 
";
echo '$_SERVER[\'HTTP_ACCEPT_LANGUAGE\']    : '.$_SERVER['HTTP_ACCEPT_LANGUAGE']." 
";
echo '$_SERVER[\'HTTP_CONNECTION\']         : '.$_SERVER['HTTP_CONNECTION']." 
";
echo '$_SERVER[\'HTTP_HOST\']           : '.$_SERVER['HTTP_HOST']." 
";
echo '$_SERVER[\'HTTP_USER_AGENT\']     : '.$_SERVER['HTTP_USER_AGENT']." 
";
echo '$_SERVER[\'REMOTE_ADDR\']         : '.$_SERVER['REMOTE_ADDR']." 
";
echo '$_SERVER[\'REMOTE_PORT\']         : '.$_SERVER['REMOTE_PORT']." 
";
echo '$_SERVER[\'SERVER_ADMIN\']        : '.$_SERVER['SERVER_ADMIN']." 
";
echo '$_SERVER[\'SERVER_PORT\']         : '.$_SERVER['SERVER_PORT']." 
";
echo '$_SERVER[\'SERVER_SIGNATURE\']    : '.$_SERVER['SERVER_SIGNATURE']." 
";
echo '$_SERVER[\'SCRIPT_NAME\']         : '.$_SERVER['SCRIPT_NAME']." 
";
echo '$_SERVER[\'REQUEST_URI\']         : '.$_SERVER['REQUEST_URI']." 
";
?>
output :
//List Variable $_SERVER 
$_SERVER['PHP_SELF']      : /test.php 
$_SERVER['GATEWAY_INTERFACE']    : CGI/1.1 
$_SERVER['SERVER_ADDR']     : ::1 
$_SERVER['SERVER_NAME']     : localhost 
$_SERVER['SERVER_SOFTWARE']     : Apache 
$_SERVER['SERVER_PROTOCOL']     : HTTP/1.1 
$_SERVER['REQUEST_METHOD']     : GET 
$_SERVER['REQUEST_TIME']     : 1334284051 
$_SERVER['QUERY_STRING']     : vthink=5&team=5 
$_SERVER['DOCUMENT_ROOT']     : /Applications/MAMP/htdocs 
$_SERVER['HTTP_ACCEPT']     : text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
$_SERVER['HTTP_ACCEPT_ENCODING']    : gzip, deflate 
$_SERVER['HTTP_ACCEPT_LANGUAGE']    : en-us 
$_SERVER['HTTP_CONNECTION']     : keep-alive 
$_SERVER['HTTP_HOST']     : localhost 
$_SERVER['HTTP_USER_AGENT']     : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22 
$_SERVER['REMOTE_ADDR']     : ::1 
$_SERVER['REMOTE_PORT']     : 50032 
$_SERVER['SERVER_ADMIN']     : you@example.com 
$_SERVER['SERVER_PORT']     : 80 
$_SERVER['SERVER_SIGNATURE']     :  
$_SERVER['SCRIPT_NAME']     : /test.php 
$_SERVER['REQUEST_URI']     : /test.php?vthink=5&team=5
Nah, informasi yang anda lihat pada hasil output yang ditampilkan pada output diatas tentunya tidak sama dengan output pada web server local anda. Jadi, informasi yang dihasilkan oleh web server anda tergantung pada siapa yang membuka dan web server apa yang anda gunakan. Seperti pada bagian $_SERVER['HTTP_USER_AGENT'] anda bisa melihat bahwa saya sedang menggunakan web browser safari dengan system operasi Mac OSX versi Intel Max OS X 10.7.2. Kemudian pada output $_SERVER['REQUEST_URI'] anda bisa melihat saya mengakses melalui web browser dengan url /test.php?vthink=5&team=5 (yups, coz ane jalanin di http://localhost/test.php?vthink=5&team=5)..... Jika anda ingin mempersingkat penulisan sintaks diatas dan melihat beberapa variable $_SERVER yang belum ane tulis, silahkah tulis sintaks di bawah ini :

<PRE>

<?php

print_r($_SERVER);

?> 

</PRE>

output :

Array

(

[HTTP_HOST] => localhost

[HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22

[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

[HTTP_CACHE_CONTROL] => max-age=0

[HTTP_ACCEPT_LANGUAGE] => en-us

[HTTP_ACCEPT_ENCODING] => gzip, deflate

[HTTP_CONNECTION] => keep-alive

[PATH] => /bin:/sbin:/usr/bin:/usr/sbin:/usr/libexec:/System/Library/CoreServices

[SERVER_SIGNATURE] => 

[SERVER_SOFTWARE] => Apache

[SERVER_NAME] => localhost

[SERVER_ADDR] => ::1

[SERVER_PORT] => 80

[REMOTE_ADDR] => ::1

[DOCUMENT_ROOT] => /Applications/MAMP/htdocs

[SERVER_ADMIN] => you@example.com

[SCRIPT_FILENAME] => /Applications/MAMP/htdocs/test.php

[REMOTE_PORT] => 50164

[GATEWAY_INTERFACE] => CGI/1.1

[SERVER_PROTOCOL] => HTTP/1.1

[REQUEST_METHOD] => GET

[QUERY_STRING] => vthink=5&team=5

[REQUEST_URI] => /test.php?vthink=5&team=5

[SCRIPT_NAME] => /test.php

[PHP_SELF] => /test.php

[REQUEST_TIME] => 1334284637

[argv] => Array

(

[0] => vthink=5&team=5

)



[argc] => 1

)

Okey, silahkan mencoba dan semoga beberapa variable diatas bisa bermanfaat untuk anda gunakan pada aplikasi web yang anda bangun (terutama yang tidak menggunakan framework)... sumber : http://www.php.net/manual/en/reserved.variables.server.php

Instalasi CodeIgniter Spark pada Ubuntu

Salah satu framework PHP tercepat di dunia yang dinyatakan oleh founder bahasa pemrograman PHPRasmus Ledorf, telah merelease package management system yang dikenal dengan spark. Spark merupakan sebuah inovasi pemrograman pada CodeIgniter, karena dengan menggunakan spark programmer tidak perlu repot - repot menambah library pada codeigniter. Semua library bisa di install dengan menggunakan terminal pada Linux atau command prompt pada Windows. Dukungan list repository  pada situs http://getsparks.org memudahkan programmer untuk mencari library - library yang akan digunakan untuk integrasi maupun pengembangan aplikasi web yang mereka bangun.



Okey mari kita coba install spark, tetapi langkah yang saya bahas hanya berlaku pada sistem operasi linux.

Langkah pertama lakukan instalasi paket php5-curl agar spark paket management bisa digunakan oleh codeigniter spark:

apt-get install php5-curl

Setelah itu restart service apache anda dengan sitaks berikut ini :


service apache2 restart

Setelah itu, Download CodeIgniter Reactor pada link berikut ini : CodeIgniter-Reactor-v.2.0.3
Kemudian ekstrak file tersebut pada directory apache anda, misalnya seperti /var/www/ dan setelah itu ketik pada terminal anda perintah berikut ini :

cd /var/www/codeigniter/
php -r "$(curl -fsSL http://getsparks.org/go-sparks)"

Okey jika anda telah selesai maka sekarang anda bisa melakukan instalasi contoh paket spark dengan perintah berikut ini :

php tools/spark install -v1.0.0 example-spark



dalam proses instalasi kemungkinan anda akan melihat output pada terminal seperti ini :


[ SPARK ]  Retrieving spark detail from getsparks.org
[ SPARK ]  From Downtown! Retrieving spark from Mercurial repository at https://github.com/katzgrau/example-spark
[ SPARK ]  Installing spark
[ SPARK ]  Spark installed to ./sparks/example-spark/1.0.0 - You're on fire!

Okey, coba anda perhatikan susunan folder anda pada /var/www/codeigniter/, anda mungkin akan melihat susunan folder yang seperti berikut ini :
/var/www/codeigniter/application
/var/www/codeigniter/sparks
/var/www/codeigniter/system
/var/www/codeigniter/tools
/var/www/codeigniter/user_guide

okey, paket example-spark yang telah anda install dengan terminal tadi sudah berada pada folder /var/www/codeigniter/sparks/example-spark. soo, what the next??

selanjutnya adalah memanggil paket spark tadi dengan sintaks berikut pada controller anda :

Salah satu framework PHP tercepat di dunia yang dinyatakan oleh founder bahasa pemrograman PHPRasmus Ledorf, telah merelease package management system yang dikenal dengan spark. Spark merupakan sebuah inovasi pemrograman pada CodeIgniter, karena dengan menggunakan spark programmer tidak perlu repot - repot menambah library pada codeigniter. Semua library bisa di install dengan menggunakan terminal pada Linux atau command prompt pada Windows. Dukungan list repository  pada situs http://getsparks.org memudahkan programmer untuk mencari library - library yang akan digunakan untuk integrasi maupun pengembangan aplikasi web yang mereka bangun.



Okey mari kita coba install spark, tetapi langkah yang saya bahas hanya berlaku pada sistem operasi linux.

Langkah pertama lakukan instalasi paket php5-curl agar spark paket management bisa digunakan oleh codeigniter spark:
apt-get install php5-curl

Setelah itu restart service apache anda dengan sitaks berikut ini :
service apache2 restart

Setelah itu, Download CodeIgniter Reactor pada link berikut ini : CodeIgniter-Reactor-v.2.0.3
Kemudian ekstrak file tersebut pada directory apache anda, misalnya seperti /var/www/ dan setelah itu ketik pada terminal anda perintah berikut ini :
cd /var/www/codeigniter/
php -r "$(curl -fsSL http://getsparks.org/go-sparks)"

Okey jika anda telah selesai maka sekarang anda bisa melakukan instalasi contoh paket spark dengan perintah berikut ini :
php tools/spark install -v1.0.0 example-spark

dalam proses instalasi kemungkinan anda akan melihat output pada terminal seperti ini :

[ SPARK ]  Retrieving spark detail from getsparks.org
[ SPARK ]  From Downtown! Retrieving spark from Mercurial repository at https://github.com/katzgrau/example-spark
[ SPARK ]  Installing spark
[ SPARK ]  Spark installed to ./sparks/example-spark/1.0.0 - You're on fire!

Okey, coba anda perhatikan susunan folder anda pada /var/www/codeigniter/, anda mungkin akan melihat susunan folder yang seperti berikut ini :
/var/www/codeigniter/application
/var/www/codeigniter/sparks
/var/www/codeigniter/system
/var/www/codeigniter/tools
/var/www/codeigniter/user_guide

okey, paket example-spark yang telah anda install dengan terminal tadi sudah berada pada folder /var/www/codeigniter/sparks/example-spark. soo, what the next??

selanjutnya adalah memanggil paket spark tadi dengan sintaks berikut pada controller anda :

$this->load->sparks('example-spark/1.0.0');



ATAU

jika ingin menjalankan secara otomatis gunakan autoload pada folder /var/www/codeigniter/config/autoload.php, dan tambahkan sintaks berikut ini :

    $autoload['sparks']=array('example-spark/1.0.0');

Sekarang anda siap untuk beraksi...
silah mencoba.....

referensi : getsparks.org $this->load->sparks('example-spark/1.0.0');

ATAU

jika ingin menjalankan secara otomatis gunakan autoload pada folder /var/www/codeigniter/config/autoload.php, dan tambahkan sintaks berikut ini :

    $autoload['sparks']=array('example-spark/1.0.0');

Sekarang anda siap untuk beraksi...
silah mencoba.....

referensi : getsparks.org

Enkripsi MD5 dengan Java

Okeh bagi - bagi source lagi ney... ane mau bagi enkripsi MD5 untuk agan - agan sekalian... tapi Enkripsi MD5 ini hanya untuk text aja, kalau untuk file silahkan kembangkan lagi dengan class FileInputStream dan StringBuilder... Java juga mendukung banyak jenis enkripsi pada kelasMesageDiggest dengan method getInstance(); . Soo silahkan coba - coba untuk membuat enkripsi yang lain. Suatu saat mungkin anda membutuhkan class yang telah anda buat.

Okeh ini sourcenya :

[sourcecode language="java"]
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
*
* @author Lalu Erfandi Maula Yusnu
*/
public class ConverterUtil {

/**
* This nethod is used for encrypt String to MD5
* @param text String
* @return String
*/
public static String MD5(String text){
String output = null;
try {
MessageDigest dg = MessageDigest.getInstance("MD5");
dg.reset();
dg.update(stringToBytes(text));
byte[] hasher = new byte[32];
hasher = dg.digest();
return bytesToHexString(hasher);
} catch (NoSuchAlgorithmException e) {
System.out.println("There is No MessageDigest Instance of MD5");
System.exit(1);
}

return output;
}

/**
* This method used for converting byte array to hex string
*
* @param hasher byte[]
* @return String
*/
public static String bytesToHexString(byte[] hasher){
String HEXES = "0123456789abcdef";
StringBuilder hex = new StringBuilder( 2 * hasher.length );
for ( final byte b : hasher ) {
hex.append(HEXES.charAt((b & 0xF0) >> 4))
.append(HEXES.charAt((b & 0x0F)));
}
return hex.toString();
}

/**
* This method used for converting byte array to string
* @param hasher byte[]
* @return String
*/
public static String bytesToString(byte[] hasher){
String hex = bytesToHexString(hasher);
return hexToString(hex);
}

/**
* This method used for converting string to bytes
* @param str String
* @return byte[]
*/
public static byte[] stringToBytes(String str){
int len = str.length();
byte[] out = new byte[len];
for (int i=0; i<len; i++) out[i] = (byte) ( str.charAt(i) & 0xFF);
return out;
}


/**
* This method used for converting hex to string
* @param hexString String
* @return String
*/
public static String hexToString(String hexString){
StringBuilder sb = new StringBuilder();
for(int i=0; i<hexString.length()-1; i+=2 ){
int decimal = Integer.parseInt(hexString.substring(i, (i + 2)), 16);
sb.append((char)decimal);
}
return sb.toString();
}

}
[/sourcecode]

nah untuk menggunakan source ini ini sintaksnya:

[sourcecode language="java"]
Public class Test {
public static void main(String[] args){
String text="Ini text yang akan di enkripsi dengan MD5";
String md5 = ConverterUtil.MD5(text);
System.out.println(md5);
}
}
[/sourcecode]

Hasilnya kurang lebih seperti ini :
6ddc9d6e411d0dfe769750b07d5ffb08

Semoga bermanfaat, sekian dan terima kasih....

Ngoprek MikroTik Api Client Berbasis Python

Okeh, jika anda ingin menjadi pengembang MikroTik API client sepertinya anda perlu mencoba MikroTik API client berbasis python untuk melakukan reverse engineering. Langkah ini diperlukan untuk mengetahui setiap inputan dan hasilnya...

Okeh script ini ane ambil dari http://wiki.mikrotik.com/wiki/Manual:API pada bagian paling bawah, berikut ini  scriptnya :

[sourcecode language="python"]
#!/usr/bin/python

import sys, posix, time, md5, binascii, socket, select

class ApiRos:
"Routeros api"
def __init__(self, sk):
self.sk = sk
self.currenttag = 0

def login(self, username, pwd):
for repl, attrs in self.talk(["/login"]):
chal = binascii.unhexlify(attrs['=ret'])
md = md5.new()
md.update('\x00')
md.update(pwd)
md.update(chal)
self.talk(["/login", "=name=" + username,
"=response=00" + binascii.hexlify(md.digest())])

def talk(self, words):
if self.writeSentence(words) == 0: return
r = []
while 1:
i = self.readSentence();
if len(i) == 0: continue
reply = i[0]
attrs = {}
for w in i[1:]:
j = w.find('=', 1)
if (j == -1):
attrs[w] = ''
else:
attrs[w[:j]] = w[j+1:]
r.append((reply, attrs))
if reply == '!done': return r

def writeSentence(self, words):
ret = 0
for w in words:
self.writeWord(w)
ret += 1
self.writeWord('')
return ret

def readSentence(self):
r = []
while 1:
w = self.readWord()
if w == '': return r
r.append(w)

def writeWord(self, w):
print "<<< " + w self.writeLen(len(w)) self.writeStr(w) def readWord(self): ret = self.readStr(self.readLen()) print ">>> " + ret
return ret

def writeLen(self, l):
if l < 0x80:
self.writeStr(chr(l))
elif l < 0x4000: l |= 0x8000 self.writeStr(chr((l >> 8) & 0xFF))
self.writeStr(chr(l & 0xFF))
elif l < 0x200000: l |= 0xC00000 self.writeStr(chr((l >> 16) & 0xFF))
self.writeStr(chr((l >> 8) & 0xFF))
self.writeStr(chr(l & 0xFF))
elif l < 0x10000000: l |= 0xE0000000 self.writeStr(chr((l >> 24) & 0xFF))
self.writeStr(chr((l >> 16) & 0xFF))
self.writeStr(chr((l >> 8) & 0xFF))
self.writeStr(chr(l & 0xFF))
else:
self.writeStr(chr(0xF0))
self.writeStr(chr((l >> 24) & 0xFF))
self.writeStr(chr((l >> 16) & 0xFF))
self.writeStr(chr((l >> 8) & 0xFF))
self.writeStr(chr(l & 0xFF))

def readLen(self):
c = ord(self.readStr(1))
if (c & 0x80) == 0x00:
pass
elif (c & 0xC0) == 0x80:
c &= ~0xC0
c <<= 8
c += ord(self.readStr(1))
elif (c & 0xE0) == 0xC0:
c &= ~0xE0
c <<= 8
c += ord(self.readStr(1))
c <<= 8
c += ord(self.readStr(1))
elif (c & 0xF0) == 0xE0:
c &= ~0xF0
c <<= 8
c += ord(self.readStr(1))
c <<= 8
c += ord(self.readStr(1))
c <<= 8
c += ord(self.readStr(1))
elif (c & 0xF8) == 0xF0:
c = ord(self.readStr(1))
c <<= 8
c += ord(self.readStr(1))
c <<= 8
c += ord(self.readStr(1))
c <<= 8
c += ord(self.readStr(1))
return c

def writeStr(self, str):
n = 0;
while n < len(str):
r = self.sk.send(str[n:])
if r == 0: raise RuntimeError, "connection closed by remote end"
n += r

def readStr(self, length):
ret = ''
while len(ret) < length:
s = self.sk.recv(length - len(ret))
if s == '': raise RuntimeError, "connection closed by remote end"
ret += s
return ret

def main():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((sys.argv[1], 8728))
apiros = ApiRos(s);
apiros.login(sys.argv[2], sys.argv[3]);

inputsentence = []

while 1:
r = select.select([s, sys.stdin], [], [], None)
if s in r[0]:
# something to read in socket, read sentence
x = apiros.readSentence()

if sys.stdin in r[0]:
# read line from input and strip off newline
l = sys.stdin.readline()
l = l[:-1]

# if empty line, send sentence and start with new
# otherwise append to input sentence
if l == '':
apiros.writeSentence(inputsentence)
inputsentence = []
else:
inputsentence.append(l)

if __name__ == '__main__':
main()
[/sourcecode]

Simpan file diatas dengan nama routeros.py, dan untuk menjalankan nya masukan perintah berikut ini :

[sourcecode language="bash"]
chmod 777 routeros.py
python routeros.py 192.168.88.1 admin admin
[/sourcecode]


jika login anda benar maka akan muncul hasil seperti dibawah ini :

[sourcecode language="bash"]
<<< /login
<<< >>> !done
>>> =ret=3febe34367f76733cbece5c7822ebf7c
>>>
<<< /login
<<< =name=admin
<<< =response=0043af609b070655d06d5c1a7984377b6f
<<< >>> !done
>>>
[/sourcecode]

dan jika password anda salah maka akan tampil pesan berikut ini :

[sourcecode language="bash"]
<<< /login
<<< >>> !done
>>> =ret=8b5b3964ffd9422d920b6497960bfddd
>>>
<<< /login
<<< =name=admin
<<< =response=00f3f3219cdea9fc3861b19551f3457af6
<<< >>> !trap
>>> =message=cannot log in
>>>
>>> !done
>>>
[/sourcecode]

Okey, sekarang mari mencoba menampilakan semua interface pada mikrotik dengan MikroTik API client berbasis python ini. Ketik perintah dibawah ini dan ketik enter :

[sourcecode language="bash"]
/interface/print
[/sourcecode]

pada laptop ane muncul nya seperti ini,:

[sourcecode language="bash"]
/interface/print

<<< /interface/print
<<< >>> !re
>>> =.id=*1
>>> =comment=
>>> =name=ether1
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*2
>>> =comment=
>>> =name=ether2
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*3
>>> =comment=
>>> =name=ether3
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*4
>>> =comment=
>>> =name=ether4
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*5
>>> =comment=
>>> =name=ether5
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*6
>>> =comment=
>>> =name=vlan1
>>> =mtu=1500
>>> =type=vlan
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*7
>>> =comment=
>>> =name=vrrp1
>>> =mtu=1500
>>> =type=vrrp
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*8
>>> =comment=
>>> =name=vlan2
>>> =mtu=1500
>>> =type=vlan
>>> =dynamic=false
>>> =running=true
>>>
>>> !done
>>>
[/sourcecode]

bagaimana dengan laptop anda.....??? pengen tau, coba aja di ketik ...
Okey, kalau laptop ane, ada banyak interface yang sudah di add, jadi untuk memilih interface secara spesifik ketik perintah berikut :

[sourcecode language="bash"]
/interface/print
?=type=vlan
[/sourcecode]

Hasilnya anda akan menampilkan interface yang type vlan saja, berikut ini hasilnya :

[sourcecode language="bash"]
/interface/print
?=type=vlan

<<< /interface/print
<<< ?=type=vlan
<<< >>> !re
>>> =.id=*6
>>> =comment=
>>> =name=vlan1
>>> =mtu=1500
>>> =type=vlan
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*8
>>> =comment=
>>> =name=vlan2
>>> =mtu=1500
>>> =type=vlan
>>> =dynamic=false
>>> =running=true
>>>
>>> !done
>>>
[/sourcecode]

Okeh, sekarang bagaimana kalau ingin menampilkan interface ether1 dan ether2? coba ketik perintah berikut ini :

[sourcecode language="bash"]
/interface/print
?=name=ether1
?=name=ether2
?#|
[/sourcecode]

Hasilnya akan seperti ini :

[sourcecode language="bash"]
<<< /interface/print
<<< ?=name=ether1
<<< ?=name=ether2
<<< ?#|
<<< >>> !re
>>> =.id=*1
>>> =comment=
>>> =name=ether1
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*2
>>> =comment=
>>> =name=ether2
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !done
>>>
[/sourcecode]

Okeh, sekali lagi, bagaimana kalau ingin menampilkan interface ether saja dan selain daripada ether1 dan ether2? coba ketik perintah ini :

[sourcecode language="bash"]
/interface/print
?=type=ether
?#&
?=name=ether1
?#!
?=name=ether2
?#!
[/sourcecode]

maka hasilnya akan seperti dibawah ini :

[sourcecode language="bash"]
<<< /interface/print
<<< ?=type=ether
<<< ?#&
<<< ?=name=ether1
<<< ?#!
<<< ?=name=ether2
<<< ?#!
<<< >>> !re
>>> =.id=*3
>>> =comment=
>>> =name=ether3
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*4
>>> =comment=
>>> =name=ether4
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !re
>>> =.id=*5
>>> =comment=
>>> =name=ether5
>>> =mtu=1500
>>> =type=ether
>>> =dynamic=false
>>> =running=true
>>>
>>> !done
>>>
[/sourcecode]

Mengapa hasilnya bisa seperti itu ??? bagaimana rumusan nya??? Topik apa yang sedang kita bahas saat ini???
Okey, jadi yang sedang ane uji coba sekarang ini adalah tentang MikroTik API bagian Queries yang hanya disupport pada RouterOS versi 3.22 ke atas...
begini rumusan nya (walaupun sebenarnya ane masih belum terlalu faham betul, but ini asumsi ane okeh!!)

kalau berdasarkan situs http://wiki.mikrotik.com/wiki/Manual:API, berikut keterangan nya:
Okeh, jadi kalau di terjemahkan (pake google translate and di perbaiki) :

QUERIES
perintah cetak menerima kata-kata yang telah di kirimkan dan akan mengatur ulang satu set kalimat . Fitur ini tersedia sejak RouterOS 3.21.


Query dimulai dengan tanda '?' (tanpa tanda petik)
Urutan kata - kata Query sifatnya signifikan. Query di evaluasi mulai dari kata pertama.
Query akan di evaluasi pertiap item yang berada dalam daftar, jika query berhasil, item akan diproses dan jika query gagal item akan diabaikan.
Query di evaluasi menggunakan tumpukan (stack) nilai boolean (true/false). Awalnya tumpukan (stack) berisi jumlah nilai 'true' tak terbatas. Pada akhir proses evaluasi, jika tumpukan (stack) berisi setidaknya satu nilai 'false' maka query menjadi gagal.
Pengoperasian kata - kata dalam query adalah berdasar pada aturan berikut ini :































QueryDesciption
?nameStack akan mengirim 'true' jika item mempunyai value (nilai) dari property name, dan Stack akan mengirim 'false' jika hal sebaliknya terjadi.
?-nameStack akan mengirim 'true' jika item tidak memiliki value (nilai) dari property name, dan Stack akan mengirim 'false' jika hal sebaliknya terjadi.
?name=x
?=name=x
Stack akan mengirim 'true' jika property name memiliki value (nilai) sama dengan x, dan Stack akan mengirim 'false' jika hal sebaliknya terjadi.
?<name=xStack akan mengirim 'true' jika property name memiliki nilai kurang dari x, dan Stack akan mengirim 'false' jika hal sebaliknya terjadi.
?>name=xStack akan mengirim 'true' jika property name lebih besar dari x, dan Stack akan mengirim 'false' jika hal sebaliknya terjadi.
?#operationsberikut ini aturan operasi yang berlaku dalam stack: string operasi di evaluasi dari kiri ke kanan.

urutan digit desimal di ikuti dengan sembarang karakter atau akhir kata ditafsirkan sebagai index stack dimana nilai index pada stack pertama adalah 0.

index  yang di ikuti oleh karakter akan mendorong salinan (copy) pada nilai tersebut. index yang di ikuti kata akhiran akan menggantikan semua nilai dengan nilai pada index tersebut.

'!' (not) karakter akan menggantikan nilai atas dengan nilai yang berlawanan dengan nya.

'&' (and) karakter akan membuang dua nilai (value) dan sebagai hasilnya karakter ini akan melakukan operasi logis 'and'.

'|' (or) karakter akan membuang dua nilai (value) dan sebagai hasilnya karakter ini akan melakukan operasi logis 'or'.

'.' (dot) karakter tidak akan menjadikan error

'.' (dot) karakter setelah karakter lain akan mendorong atau mengirim salinan pada nilai di bagian atas.

Audience : Wah masih bingung gan???
Penulis : Tenang ane juga bingung kok, abis bahasanya baku bangets... tapi mari kita bahas sama - sama siapa tau kita bisa mengerti...
jadi begini, misalnya ada sintaks seperti ini:

[sourcecode language="bash"]
/interface/print
?=type=vlan
?=type=ether
?#|
?=name=ether1
?#!
?#&
[/sourcecode]

kemudian misalnya, kita anggap masing - masing baris dengan kode seperti ini :
?=type=vlan adalah P1
?=type=ether adalah P2
?#| adalah L1
?=name=ether1 adalah P3
?#! adalah L2
?#& adalah L3

okey kalau kita susun dalam bentuk ke kanan jadinya seperti ini :
P1 P2 L1 P3 L2 L3

seperti yang telah dijelaskan dalam tabel diatas, setiap operasi yang ditandai dengan ?# maka dia memiliki rumusan sendiri. Dan setelah ane analisa maka bentuk tadi akan diubah menjadi seperti ini :
P1 L1 P2 L3 L2 P3

dan hasilnya akan menjadi seperti sintaks dibawah ini saat dibaca oleh MikroTik RouterOS :

[sourcecode language="bash"]
?=type=vlan
?#|
?=type=ether
?#&
?#!
?=name=ether1
[/sourcecode]

sehingga seolah - olah sintaks yang diterima oleh mikrotik menjadi seperti ini :

[sourcecode language="bash"]
?=type=vlan ?#| ?=type=ether ?#& ?#! ?=name=ether1
[/sourcecode]

masih belibet kan??? sama... tapi mari coba ubah bentuknya agar lebih mudah dimengerti menjadi seperti ini :

[sourcecode language="bash"]
type=vlan or type=ether and name!=ether1
[/sourcecode]

Pertanyaan nya adalah bagaimana bentuk seperti ini bisa di analogikan???
Hal ini karena mikrotik mengimplementasikan stack, yang mana setiap operasi logika and dan or akan membuang dua perintah dari stack dan akan mengubahnya menjadi bentuk operasi logis.
Nah itu asumsi ane... jadi benar atau salahnya masih belum bisa ane pertanggung jawabkan, untuk mendapat contoh - contoh yang lebih banyak silahkan buka link pada wiki mikrotik ini : http://wiki.mikrotik.com/wiki/API_command_notes

Okeh, semoga bermanfaat... sekian dan terima kasih...

Instalasi Graphical Network Simulator (GNS) sebagai Lab Virtual Cisco pada Ubuntu

Menurut situs GNS, Graphical Network Simulator (GNS) adalah sebuah simulator yang digunakan untuk membangun sebuah simulasi jaringan yang kompleks.  GNS berjalan dengan integrasi aplikasi-aplikasi lain untuk menyediakan simulasi yang akurat dan komperhensif. Aplikasi-aplikasi tersebut antara lain :

  • Dynamips, yang berfungsi untuk simulator Cisco IOS

  • Dynagen, interface berbasis text yang berfungsi mengontrol Dynamips

  • Qemu, emulator dan virtulisasi open source

  • VirtualBox, perangkat lunak virtualisasi yang powerfull


GNS adalah sebuah perangkat lunak pelengkap yang sangat baik untuk simulasi yang mendekati nyata (laboratorium nyata) bagi insinyur jaringan, administrator jaringan dan tentunya bagi mereka yang sedang dalam proses untuk mendapatkan sertifikasi seperti, Cisco CCNA, CCNP, dan CCIE dan juga untuk mereka yang ingin mengejar sertifikasi Juniper JNCIA, JNCIS, dan JNCIE.

Dukungan dan  integrasi VirtualBox (unofficial version) saat ini memungkinkan system engineer dan Administrator untuk membangun sebuah lab virtual  untuk RedHat (RHCE, RHCT), Microsoft (MSCE, MSCA), Novell(CLP) dan sertifikasi-sertifikasi lain. Selain itu, GNS bersifat open sources dan multiplatform, sehingga memungkinkan GNS bisa digunakan pada berbagai sistem operasi seperti Microsoft Windows, Linux, dan MacOS.

GNS juga menyediakan dukungan untuk integrasi dengan wireshark untuk melakukan analisa segment, packet, ataupun frame padal layer TCP/IP. Dukungan integrasi ini memungkinkan Anda bisa untuk mengetahui setiap layer TCP/IP yang bekerja pada Lab Virtual anda. Sifat GNS yang virtual memungkinkan rancangan jaringan virtual yang Anda bangun bisa diakses melalui komputer lain dengan port-port yang telah Anda ataupun GNS tentukan.

Secara sederhana saya dapat menilai GNS salah satu bentuk Lab Virtual yang sangat baik untuk pembelajaran terutama bagi mereka yang sedang mengejar sertifikasi dan network engineer. Menggunakan GNS sebagai Lab Virtual serasa memiliki perangkat asli tapi palsu(virtual ghitu loh). Bagi yang kurang uang saku di dompet untuk membeli perangkat asli dengan jumlah yang memadai untuk membangun sebuah uji coba maka GNS salah satu solusi terbaik yang anda punya saat ini.

Cisco sendiri memiliki perangkat lunak simulator untuk mempermudah proses belajar Anda seperti Packet Tracer, namun Packet Tracer bisa dikatakan Lab Virtual yang tertutup dan terbatas. Sementara GNS, batasan nya hanya resource komputer anda (RAM, CPU dan lain sebagainya), hal ini karena GNS menggunakan Cisco IOS langsung untuk bisa berjalan. Di setiap kelebihan selalu ada kekurangan, begitu pula dengan GNS. Kelebihan yang dimiliki GNS sebagai Lab Virtual di isi dengan kekurangan bahwa GNS tidak bisa berjalan kecuali Anda memilki Cisco IOS yang berasal dari perangkat Cisco Anda langsung, sehingga untuk bisa menggunakan GNS anda harus melakukan ekstrak Cisco IOS dari perangkat Cisco anda yang asli.

Okeh, cukup bicara teori nya....

Sekarang mari mencoba untuk menginstall GNS pada Ubuntu anda... tuliskan sintaks dibawah ini pada terminal linux ubuntu anda:

[sourcecode language="bash"]
sudo apt-get install gns3 dynamips qemu wireshark
[/sourcecode]

Okey setelah proses instalasi anda selesai, buka unity dan ketik gns kemudian klik icon GNS maka akan tampil antarmuka sebagai berikut :

GNS3_020

Pada bagian samping kiri pada antarmuka diatas Anda disediakan perangkat-perangkat Jaringan Cisco, Juniper, Swicth, ATM, IDS Qemu Host dan Cloud. Perangkat-perangkat virtual diatas bisa anda tambahkan pada jika anda memiliki Firmware atau IOS. Okey selanjutnya buka menu Edit->IOS image and hypervisor seperti pada gambar dibawah ini :

Menu_021

Setelah itu akan muncul antarmuka sebagai berikut :

Preferences_030

Pada tab IOS Image, anda disediakan sebuah fitur untuk menambah Image dari system operasi dari Cisco, Juniper maupun Qemu. Seperti yang Anda lihat pada gambar diatas pada label Settings, Anda bisa memilih OS Image dan mengatur platform serta model dari OS Image anda. Biasanya jika Anda memiliki Image Cisco IOS, Default RAM yang digunakan oleh Cisco sudah secara default ditentukan akan tetapi anda bisa menambah jumlah penggunaan RAM sesuai kebutuhan Anda. Jika Anda telah mengisi field-filed pada label Setting jangan lupa untuk mengklik tombol save untuk menyimpan OS Image yang telah Anda inputkan.

Untuk melakukan pengaturan terhadap Qemu Host (Virtual Machine) agar anda bisa membuat sebuah mesin virtual untuk menjalankan Sistem Operasi yang berbeda, buka menu Preference->Qemu seperti pada gambar dibawah in :
Menu_022

Preferences_030

 

Pada gambar diatas anda bisa memasukan OS Image untuk sistem operasi yang akan berjalan sebagai virtual machine. Field-field yang dibutuhkan antara lain :

  • Identifier name sebagai nama virtual machine

  • Binary Image sebagai path OS Image Sistem Operasi Anda

  • RAM yang akan digunakan untuk menjalankan virtual machine

  • Number of NICs untuk mengatur jumlah kartu jaringan Anda

  • NIC Model untuk menentukan Model kartu jaringan yang Anda inginkan

  • Qemu Option jika anda memerlukan opsional untuk pengaturan tambahan dalam menjalankan Qemu

  • Use KQemu untuk menjalankan Qemu dalam bentuk KDE

  • Use KVM (Linux Only) untuk mengatur kernell based virtual machine (tentunya ini khusus untuk sistem operasi linux)


Jika anda telah seleasi maka langkah selanjutnya mengklik tombol save untuk menyimpan inputan data Anda.

 

Okey, tutorial dengan kasus akan dibahas selanjtunya... to be continued....

Sumber Rujukan : http://www.gns3.net

Tutorial Cisco Static Routing

Okey kali ini ane akan membahas mengenai static routing pada cisco. Tools yang ane gunakan adalah Cisco Packet Tracer versi 5.3, soo untuk bisa mengikuti tutorial ini download terlebih dahulu cisco packet tracer versi 5.3. Okey begini topology nya...

Screen_Shot_2012-04-06_at_3.42_.12_AM_


berikut ini tabel nya :



























































NoNama PerangkatInterfaceIP AddressSubnet MaskGateway
1R1Fa0/0172.30.0.2255.255.255.252N/A
R1Fa0/1172.30.2.1255.255.255.0N/A
2R2Fa0/0172.30.0.1255.255.255.252N/A
R2Fa0/1172.30.1.1255.255.255.0N/A
3PC AFastEthernet172.30.2.2255.255.255.0172.30.2.1
4PC BFastEthernet172.30.1.2255.255.255.0172.30.1.1

Okey... ane akan berikan contoh melakukan konfigurasi berdasarkan tabel diatas. Langsung saja....

Konfigurasi R1

Klik pada R1 dan masukan sintaks berikut ini :

[sourcecode language="bash"]
Router>enable
Router#conf t
Router(config)#hostname R1
R1(config)#int fa0/0
R1(config-if)#ip address 172.30.0.2 255.255.255.252
R1(config-if)#no shutdown
R1(config-if)#ip address 172.30.2.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#ip route 172.30.1.0 255.255.255.0 172.30.0.1
R1(config)#end
R1#copy run start
[/sourcecode]

Konfigurasi R2
Klik R2 dan masukan sintaks berikut ini :

[sourcecode language="bash"]
Router>enable
Router#conf t
Router(config)#hostname R2
R2(config)#int fa0/0
R2(config-if)#ip address 172.30.0.1 255.255.255.252
R2(config-if)#no shutdown
R2(config-if)#ip address 172.30.1.1 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#ip route 172.30.2.0 255.255.255.0 172.30.0.2
R2(config)#end
R2#copy run start
[/sourcecode]

Okey selanjutnya lakukan konfigurasi pada PC A dan PC B berikut ini contoh gambarnya :
PC A

Screen_Shot_2012-04-06_at_3.45_.39_AM_

PC B

Screen_Shot_2012-04-06_at_3.46_.09_AM_

Silahkan di analisa apa yang sedang terjadi dengan perintah show ip route pada masing-masing router untuk bisa memahai apa yang sedang terjadi... dan satu lagi... teman terbaik anda adalah google... silahkan cari dengan kata kunci routing table cisco untuk bisa memahai lebih lanjut....
selamat mencoba....

Installasi Oracle JDK 7 pada Ubuntu 11.10

Okey, setelah menginstall Oracle JDK 7 tanpa synaptic atau apt,  browser google chrome saya menjadi tidak berfungsi dengan baik ketika berhadapan dengan java applet dan sejenisnya. Setelah bergoogling ria akhirnya saya mendapat pencerahan (beeeiihhh mudah!!!!)... Supaya sama - sama cerah bagi yang merasa gelap pikiran, saya bagi oprekan script plus langkah - langkah nya.

 

Langkah Pertama ,

  1. Download JDK 7 pada link berikut ini : http://download.oracle.com/otn-pub/java/jdk/7u1-b08/jdk-7u1-linux-i586.tar.gz

  2. Pastikan anda mendownload JDK dengan extensi file tar.gz


Jika anda telah selesai mendownload tulis sintaks berikut ini pada terminal anda :

[sourcecode language="bash"]
cp jdk-7u1-linux-i586.tar.gz /opt/
cd /opt/
tar -xvzf jdk-7u1-linux-i586.tar.gz
[/sourcecode]

Langkah Kedua,

Buka Text Editor atau nano dan isi dengan sintaks berikut ini :

[sourcecode language="bash"]
#!/bin/bash
#Iseng - Iseng VTHINK

echo "Please Enter Your JAVA HOME (e.g /opt/jdk1.7.0) : "
read java_dir

echo "Creatng symlink in /usr/lib/jvm/java-7-sun.."
ln -s $java_dir /usr/lib/jvm/java-7-sun

echo "Creating Environment JAVA_HOME.."
JAVA_HOME=/usr/lib/jvm/java-7-sun
export JAVA_HOME

echo "Creating PATH Environment JAVA_HOME.."
PATH=$PATH:$JAVA_HOME/bin:
export PATH

echo "Creating CLASSPATH Environment JAVA_HOME.."
CLASSPATH=$JAVA_HOME/lib/:.
export CLASSPATH

echo "Please Enter Your Java Architecture (i386/amd64) : "
read java_arch


echo "Do update-alternatives..."
update-alternatives --quiet --install /usr/lib/xulrunner-addons/plugins/libjavaplugin.so xulrunner-1.9-javaplugin.so /usr/lib/jvm/java-7-sun/jre/lib/$java_arch/libnpjp2.so 63
update-alternatives --quiet --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /usr/lib/jvm/java-7-sun/jre/lib/$java_arch/libnpjp2.so 63
update-alternatives --quiet --install /usr/bin/appletviewer appletviewer /usr/lib/jvm/java-7-sun/bin/appletviewer 63 --slave /usr/share/man/man1/appletviewer.1 appletviewer.1 /usr/lib/jvm/java-7-sun/man/man1/appletviewer.1
update-alternatives --quiet --install /usr/bin/apt apt /usr/lib/jvm/java-7-sun/bin/apt 63 --slave /usr/share/man/man1/apt.1 apt.1 /usr/lib/jvm/java-7-sun/man/man1/apt.1
update-alternatives --quiet --install /usr/bin/extcheck extcheck /usr/lib/jvm/java-7-sun/bin/extcheck 63 --slave /usr/share/man/man1/extcheck.1 extcheck.1 /usr/lib/jvm/java-7-sun/man/man1/extcheck.1
update-alternatives --quiet --install /usr/bin/idlj idlj /usr/lib/jvm/java-7-sun/bin/idlj 63 --slave /usr/share/man/man1/idlj.1 idlj.1 /usr/lib/jvm/java-7-sun/man/man1/idlj.1
update-alternatives --quiet --install /usr/bin/jar jar /usr/lib/jvm/java-7-sun/bin/jar 63 --slave /usr/share/man/man1/jar.1 jar.1 /usr/lib/jvm/java-7-sun/man/man1/jar.1
update-alternatives --quiet --install /usr/bin/jarsigner jarsigner /usr/lib/jvm/java-7-sun/bin/jarsigner 63 --slave /usr/share/man/man1/jarsigner.1 jarsigner.1 /usr/lib/jvm/java-7-sun/man/man1/jarsigner.1
update-alternatives --quiet --install /usr/bin/javac javac /usr/lib/jvm/java-7-sun/bin/javac 63 --slave /usr/share/man/man1/javac.1 javac.1 /usr/lib/jvm/java-7-sun/man/man1/javac.1
update-alternatives --quiet --install /usr/bin/javadoc javadoc /usr/lib/jvm/java-7-sun/bin/javadoc 63 --slave /usr/share/man/man1/javadoc.1 javadoc.1 /usr/lib/jvm/java-7-sun/man/man1/javadoc.1
update-alternatives --quiet --install /usr/bin/javah javah /usr/lib/jvm/java-7-sun/bin/javah 63 --slave /usr/share/man/man1/javah.1 javah.1 /usr/lib/jvm/java-7-sun/man/man1/javah.1
update-alternatives --quiet --install /usr/bin/javap javap /usr/lib/jvm/java-7-sun/bin/javap 63 --slave /usr/share/man/man1/javap.1 javap.1 /usr/lib/jvm/java-7-sun/man/man1/javap.1
update-alternatives --quiet --install /usr/bin/jconsole jconsole /usr/lib/jvm/java-7-sun/bin/jconsole 63 --slave /usr/share/man/man1/jconsole.1 jconsole.1 /usr/lib/jvm/java-7-sun/man/man1/jconsole.1
update-alternatives --quiet --install /usr/bin/jdb jdb /usr/lib/jvm/java-7-sun/bin/jdb 63 --slave /usr/share/man/man1/jdb.1 jdb.1 /usr/lib/jvm/java-7-sun/man/man1/jdb.1
update-alternatives --quiet --install /usr/bin/jhat jhat /usr/lib/jvm/java-7-sun/bin/jhat 63 --slave /usr/share/man/man1/jhat.1 jhat.1 /usr/lib/jvm/java-7-sun/man/man1/jhat.1
update-alternatives --quiet --install /usr/bin/jinfo jinfo /usr/lib/jvm/java-7-sun/bin/jinfo 63 --slave /usr/share/man/man1/jinfo.1 jinfo.1 /usr/lib/jvm/java-7-sun/man/man1/jinfo.1
update-alternatives --quiet --install /usr/bin/jmap jmap /usr/lib/jvm/java-7-sun/bin/jmap 63 --slave /usr/share/man/man1/jmap.1 jmap.1 /usr/lib/jvm/java-7-sun/man/man1/jmap.1
update-alternatives --quiet --install /usr/bin/jps jps /usr/lib/jvm/java-7-sun/bin/jps 63 --slave /usr/share/man/man1/jps.1 jps.1 /usr/lib/jvm/java-7-sun/man/man1/jps.1
update-alternatives --quiet --install /usr/bin/jrunscript jrunscript /usr/lib/jvm/java-7-sun/bin/jrunscript 63 --slave /usr/share/man/man1/jrunscript.1 jrunscript.1 /usr/lib/jvm/java-7-sun/man/man1/jrunscript.1
update-alternatives --quiet --install /usr/bin/jsadebugd jsadebugd /usr/lib/jvm/java-7-sun/bin/jsadebugd 63 --slave /usr/share/man/man1/jsadebugd.1 jsadebugd.1 /usr/lib/jvm/java-7-sun/man/man1/jsadebugd.1
update-alternatives --quiet --install /usr/bin/jstack jstack /usr/lib/jvm/java-7-sun/bin/jstack 63 --slave /usr/share/man/man1/jstack.1 jstack.1 /usr/lib/jvm/java-7-sun/man/man1/jstack.1
update-alternatives --quiet --install /usr/bin/jstat jstat /usr/lib/jvm/java-7-sun/bin/jstat 63 --slave /usr/share/man/man1/jstat.1 jstat.1 /usr/lib/jvm/java-7-sun/man/man1/jstat.1
update-alternatives --quiet --install /usr/bin/jstatd jstatd /usr/lib/jvm/java-7-sun/bin/jstatd 63 --slave /usr/share/man/man1/jstatd.1 jstatd.1 /usr/lib/jvm/java-7-sun/man/man1/jstatd.1
update-alternatives --quiet --install /usr/bin/native2ascii native2ascii /usr/lib/jvm/java-7-sun/bin/native2ascii 63 --slave /usr/share/man/man1/native2ascii.1 native2ascii.1 /usr/lib/jvm/java-7-sun/man/man1/native2ascii.1
update-alternatives --quiet --install /usr/bin/rmic rmic /usr/lib/jvm/java-7-sun/bin/rmic 63 --slave /usr/share/man/man1/rmic.1 rmic.1 /usr/lib/jvm/java-7-sun/man/man1/rmic.1
update-alternatives --quiet --install /usr/bin/schemagen schemagen /usr/lib/jvm/java-7-sun/bin/schemagen 63 --slave /usr/share/man/man1/schemagen.1 schemagen.1 /usr/lib/jvm/java-7-sun/man/man1/schemagen.1
update-alternatives --quiet --install /usr/bin/serialver serialver /usr/lib/jvm/java-7-sun/bin/serialver 63 --slave /usr/share/man/man1/serialver.1 serialver.1 /usr/lib/jvm/java-7-sun/man/man1/serialver.1
update-alternatives --quiet --install /usr/bin/wsgen wsgen /usr/lib/jvm/java-7-sun/bin/wsgen 63 --slave /usr/share/man/man1/wsgen.1 wsgen.1 /usr/lib/jvm/java-7-sun/man/man1/wsgen.1
update-alternatives --quiet --install /usr/bin/wsimport wsimport /usr/lib/jvm/java-7-sun/bin/wsimport 63 --slave /usr/share/man/man1/wsimport.1 wsimport.1 /usr/lib/jvm/java-7-sun/man/man1/wsimport.1
update-alternatives --quiet --install /usr/bin/xjc xjc /usr/lib/jvm/java-7-sun/bin/xjc 63 --slave /usr/share/man/man1/xjc.1 xjc.1 /usr/lib/jvm/java-7-sun/man/man1/xjc.1
update-alternatives --quiet --install /usr/bin/java-rmi.cgi java-rmi.cgi /usr/lib/jvm/java-7-sun/bin/java-rmi.cgi 63
update-alternatives --quiet --install /usr/bin/ControlPanel ControlPanel /usr/lib/jvm/java-7-sun/jre/bin/ControlPanel 63
update-alternatives --quiet --install /usr/bin/java java /usr/lib/jvm/java-7-sun/jre/bin/java 63
update-alternatives --quiet --install /usr/bin/java_vm java_vm /usr/lib/jvm/java-7-sun/jre/bin/java_vm 63
update-alternatives --quiet --install /usr/bin/javaws javaws /usr/lib/jvm/java-7-sun/jre/bin/javaws 63
update-alternatives --quiet --install /usr/bin/jcontrol jcontrol /usr/lib/jvm/java-7-sun/jre/bin/jcontrol 63
update-alternatives --quiet --install /usr/bin/keytool keytool /usr/lib/jvm/java-7-sun/jre/bin/keytool 63
update-alternatives --quiet --install /usr/bin/pack200 pack200 /usr/lib/jvm/java-7-sun/jre/bin/pack200 63
update-alternatives --quiet --install /usr/bin/policytool policytool /usr/lib/jvm/java-7-sun/jre/bin/policytool 63
update-alternatives --quiet --install /usr/bin/rmid rmid /usr/lib/jvm/java-7-sun/jre/bin/rmid 63
update-alternatives --quiet --install /usr/bin/rmiregistry rmiregistry /usr/lib/jvm/java-7-sun/jre/bin/rmiregistry 63
update-alternatives --quiet --install /usr/bin/unpack200 unpack200 /usr/lib/jvm/java-7-sun/jre/bin/unpack200 63
update-alternatives --quiet --install /usr/bin/orbd orbd /usr/lib/jvm/java-7-sun/jre/bin/orbd 63
update-alternatives --quiet --install /usr/bin/servertool servertool /usr/lib/jvm/java-7-sun/jre/bin/servertool 63
update-alternatives --quiet --install /usr/bin/tnameserv tnameserv /usr/lib/jvm/java-7-sun/jre/bin/tnameserv 63
update-alternatives --quiet --install /usr/bin/jexec jexec /usr/lib/jvm/java-7-sun/jre/lib/jexec 63

echo "Updating Done!"
[/sourcecode]

Setelah itu simpan dengan nama java_config.sh, kemudian ketik sintaks berikut ini :

[sourcecode language="bash"]
chmod +x java_config.sh
sudo ./java_config.sh
[/sourcecode]

hasilnya akan seperti berikut ini :
[sourcecode language="bash"]
root@Dell:~/Desktop# ./java_config
Please Enter Your JAVA HOME (e.g /opt/jdk1.7.0) :
/opt/jdk1.7.0_01
Creatng symlink in /usr/lib/jvm/java-7-sun..
Creating Environment JAVA_HOME..
Creating PATH Environment JAVA_HOME..
Creating CLASSPATH Environment JAVA_HOME..
Please Enter Your Java Architecture (i386/amd64) :
i386
Do update-alternatives...
Updating Done!
[/sourcecode]

Sekian dan Terima Kasih...

Referensi : http://brunoreis.com/tech/intalling-java-ubuntu-natty/

Mini NSLOOKUP dengan Java

hmmmm…. nslookup… apaan ntu??? nslookup itu fungsi untuk mencari ns (name server), contohnya: nslookup nanya ke dns server, domain google.com berapa ipnya nah atau sebaliknya ip ini ada domain nya gak??? gampang nya gene ketik aja di terminal kayak gene :

nslookup google.com

Server: 114.127.208.84
Address: 114.127.208.84#53


Non-authoritative answer:
Name:    google.com
Address: 209.85.132.104


nah ntu hasil dari terminal saya…  sekarang karena ane lagi belajar java gan… ane posting ney caranya buat mini nslookup pake java ney sintaksnya :

[sourcecode language="java"]
/**
*
* @author gen5x4
*/
import java.net.InetAddress;
import javax.swing.JOptionPane;

public class Hostname {
public static void main(String[] args) throws Exception {
//ini inputan berupa panel dialog
String host = JOptionPane.showInputDialog("Masukan Domain");

//pemroses yang mencari ip dari domain yang di inputkan
InetAddress addr = InetAddress.getByName(host);

//mencetak hasil yang telah di proses
JOptionPane.showMessageDialog(null, addr);
}
}

[/sourcecode]

abis ntu compile dengan sintaks :
javac Hostname.java
truz jalankan dengan sintaks :
java Hostname.class

hasilnya ntar kayak gene :





selamat mencoba……

seeeep mantab….

Enkripsi dan Dekripsi di PHP

okeh ketemu lagi dengan saya di acara yang sama dan channel yang sama…. wkwkwkwkwkw… hmmm… sekarang ane mau bahas tentang enkripsi sekaligus dekripsi soalnya ney pasangan gak bisa dipisahin… seperti adam dan hawa, alah lebay ane… hehehehe… okeh, ane cukupun dulu lebuy bin maun….

jadi begini… enkripsi itu bahasa gampangnya kayak gene… ane punya surat yang mau dikirim ke orang, misalnya surat cinta… (teringat masa SMP, gak ada Ponsel) nah supaya gak ketauan sama orang gimana caranya ya??? ada bermacam – macam cara… salah satunya kirim lewat mimpi…. minta bantuan kawan dan masih banyak lage… nah misalnya kita pilih cara kirim lewat teman… yang jadi masalah… surat ini sangat rahasia, bahkan si temen deket yang ngirim ney juga gak boleh tau… trus gimana dunkz…??? di situlah kita bisa menggunakan metode enkripsi… jadi simple nya, lok jaman om dulu, tinggal ngerubah susunan kata nya kayak gini misalnya :

A = I, B = A, I=B, C=F

jadi kalau kita mau nulis AKU CINTA KAMU, berati nulisnya gene IKU FANTI KIMU…. hehehe….

untuk alasan keamanan kayak gene kemudian dikembangkan juga di komputer tentang enkripsi dan dekripsi… ane mungkin gak panjang lebar ngebahas konsep nya… soalnya anda masih bisa googling dan masih banyak di luar sana…  (lah yang anda bahas ini juga kan bisa di googling?) apa yang ane buat ini mungkin hanya menambah sedikit dari perbendaharaan aja ghitu loh…

okeh langsung aja… di PHP ada beberapa fungsi yang digunakan untuk melakukan proses enkripsi, misalnya kayak gene….

[sourcecode language="php"]
<?php
$crypt_md5=md5("dicoba");
$crypt_sha1=sha1("dicoba");
$crypt_crc32=crc32("dicoba");

echo "enkripsi kata 'dicoba' <br>";
echo "enkripsi md5 : ".$crypt_md5."<br>";
echo "enkripsi sha1 : ".$crypt_sha1."<br>";
echo "enkripsi crc32 : ".$crypt_crc32."<br>";
?>
[/sourcecode]

ya misalnya hasilnya kayak gene :

[sourcecode language="php"]
enkripsi kata ‘dicoba’
enkripsi md5 : 9c271c6bdbff33bbe7b0f6e2b24f60ed
enkripsi sha1 : 9774c4ed3143b4a7378118fe3fab5ffa0c0d93e8
enkripsi crc32 : -1310493240
[/sourcecode]

sintaks diatas untuk mengenkripsi aja… nah untuk dekrispi nya gimana??? kalau ane mau cari cepetnya ane pake sintaks ney :

[sourcecode language="php"]
<?php
$string="sembunyikan aku ya";

$encrypt=base64_encode($string);
$decrypt=base64_decode($encrypt);

echo "Kata Yang di Enkripsi : ".$string."<br>";
echo "Hasil Enkrispi : ".$encrypt."<br>";
echo "Hasil Dekripsi : ".$decrypt."<br>";
?>
[/sourcecode]

hasilnya kurang lebih kayak gene :

[sourcecode language="php"]
Kata Yang di Enkripsi : sembunyikan aku ya
Hasil Enkrispi : c2VtYnVueWlrYW4gYWt1IHlh
Hasil Dekripsi : sembunyikan aku ya
[/sourcecode]

cuman lok diatas tinggal di dekrip aja langsung keliatan… bagi orang yang juga ngerti tentang enkripsi… sekarang lok mau yang sedikit lebih ribet pake metode enkripsi BlowFish gmana???
ane dapet dari http://phpclasses.org ada beberapa class php yang bisa dipake buat enkrispi dan dekripsi dengan algoritma enkrispi BlowFish… cara make nya gimana????
sekarang buat dua File… File yang pertama dengan Nama : Cipher.php dan contoh.php… abis ntu kopas sintaks di bawah ini… jangan tanya apa artinya… ane sendiri belum ngerti… tapi itu gunaya class… tinggal dipake aja… okeh copy dan paste sintaks di bawah ini pada file Cipher.php

Cipher.php

[sourcecode language="php"]
<?php
/**
* Cipher
*
* Simple mcrypt interface.
*
* Cipher is a simple class for working with mcrypt.
*
* @package Cipher
* @author Nathan Lucas <nathan@gimpstraw.com>
* @link http://www.gimpstraw.com/
* @copyright Copyright (c) 2008, Nathan Lucas
* @version 2.0.0
*
* Added $iv to both encrypt() and decrypt() allowing you to use preset IVs
* while encrypting/decrypting data.
*
* Also added getIV(), which returns the instance's current IV in base64
* allowing you to store this IV for use on other instances of Cipher.
*/
class Cipher {

/**
* Algorithm to use.
*
* @access private
* @var string
*/
private $algo;

/**
* Encryption mode.
*
* @access private
* @var string
*/
private $mode;

/**
* Randomization source.
*
* @access private
* @var integer
*/
private $source;

/**
* Initialization vector.
*
* @access private
* @var string
*/
private $iv = null;

/**
* Encryption key.
*
* @access private
* @var string
*/
private $key = null;

/**
* Cipher($algo, $mode, $source)
*
* Cipher constructor. Sets the algorithm being used, the encryption
* mode, and the IV.
*
* @param string $algo
* @param string $mode
* @param integer $source (randomization source)
* @access public
* @return void
*/
public function __construct($algo = MCRYPT_3DES, $mode = MCRYPT_MODE_CBC, $source = MCRYPT_RAND) {
$this->algo = $algo;
$this->mode = $mode;
$this->source = $source;

if (is_null($this->algo) || (strlen($this->algo) == 0)) {
$this->algo = MCRYPT_3DES;
}
if (is_null($this->mode) || (strlen($this->mode) == 0)) {
$this->mode = MCRYPT_MODE_CBC;
}
}

/**
* encrypt($data, $key, $iv)
*
* Returns encrpyted $data, base64 encoded. $key must be specified at
* least once, it can be changed at any point.
*
* @param string $data
* @param mixed $key
* @param string $iv
* @access public
* @return string
*/
public function encrypt($data, $key = null, $iv = null) {
$key = (strlen($key) == 0) ? $key = null : $key;

$this->setKey($key);
$this->setIV($iv);

$out = mcrypt_encrypt($this->algo, $this->key, $data, $this->mode, $this->iv);
return base64_encode($out);
}

/**
* decrypt($data, $key, $iv)
*
* Returns decrypted $data. $key must be specified at least once, it can
* be changed at any point.
*
* @param mixed $data
* @param mixed $key
* @param string $iv
* @access public
* @return string
*/
public function decrypt($data, $key = null, $iv = null) {
$key = (strlen($key) == 0) ? $key = null : $key;

$this->setKey($key);
$this->setIV($iv);

$data = base64_decode($data);
$out = mcrypt_decrypt($this->algo, $this->key, $data, $this->mode, $this->iv);
return trim($out);
}

/**
* getIV()
*
* Returns the IV used for encryption so you can use it again in another
* Cipher instance to decrypt data.
*
* @access public
* @return string
*/
public function getIV() {
return base64_encode($this->iv);
}

/**
* setIV($iv)
*
* Sets IV. If $iv is specified, the instance IV will be set to this. If not,
* the instance will generate an IV.
*
* @param string $iv
* @access private
* @return void
*/
private function setIV($iv) {
if (!is_null($iv)) {
$this->iv = base64_decode($iv);
}
if (is_null($this->iv)) {
$iv_size = mcrypt_get_iv_size($this->algo, $this->mode);
$this->iv = mcrypt_create_iv($iv_size, $this->source);
}
}

/**
* setKey($data, $key)
*
* Sets Cipher::key. This will be the key used for the encrypt and decrypt
* methods until another $key is specified. This will trigger an error if
* no initial key is set.
*
* @param mixed $key
* @access private
* @return void
*/
private function setKey($key) {
if (!is_null($key)) {
$key_size = mcrypt_get_key_size($this->algo, $this->mode);
$this->key = hash("sha256", $key, true);
$this->key = substr($this->key, 0, $key_size);
}
if (is_null($this->key)) {
trigger_error("You must specify a key at least once in either Cipher::encrpyt() or Cipher::decrypt().", E_USER_ERROR);
}
}
}
?>
[/sourcecode]

nah lok udah di copy dan di paste sekarang tinggal uji coba hasilnya dengan membuat file bernama contoh.php dengan sintaks sebagai bverikut :

[sourcecode language="php"]
<?php
require_once("Cipher.php");
$cipher = new Cipher(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);

$kunci = "%^$%^&%*HJGHJK";
$string="sembunyikan aku";

$en = $cipher->encrypt($string, $kunci);
$de = $cipher->decrypt($en, $kunci);

echo "Enkrispi Kata : $string <br>";
echo "Hasil Enkripsi : $en <br>";
echo "Hasil Dekrispi : $de <br>";
?>
[/sourcecode]

hasilnya kurang lebih kayak gini :

[sourcecode language="php"]
Enkrispi Kata : sembunyikan aku
Hasil Enkripsi : rCRslGlylLiPRzv6A4+mdg==
Hasil Dekrispi : sembunyikan aku
[/sourcecode]

okeh… gini penjelasan sintaks diatas… require_once(“Cipher.php”) fungsinya untuk memanggil file yang pertama kita buat dengan nama Cipher.php , kemudian sintaks  $cipher = new Cipher(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB); fungsinya untuk membuat sebuah objek dari class supaya bisa dipake nantinya… kata – kata MCRYPT_BLOWFISH memiliki arti metode enkripsi dan dekripsi yang digunakan adalah dengan algoritma Blowfish… trus $kunci dengan isinya yang gak karuan… fungsinya sebagai kunci yang digunakan untuk mengenkripsi dan mendekripsi… kalau kunci nya gak sama isinya, hasil dekripsi gak akan sukses… $string adalah kata – kata yang akan di enkripsi… trus sintaks $en = $cipher->encrypt($string, $kunci) adalah sintak untuk memproses enkrispi dan sintak $de = $cipher->decrypt($en, $kunci) adalah sintak untuk memproses dekripsi….

sepertinya itu aja dulu… di cobain ya moga berhasil ya….

jangan lupa mantra nya seeeppp…. mantaaaabbb…

sumber code Cipher.php dari : http://phpclasses.org oleh Nathan Lucas <nathan@gimpstraw.com>

Saturday, May 5, 2012

Macam - Macam Pola Radiasi Antenna

Okey langsung saja, beberapa gambar dibawah ini merepresentasikan antenna dan pola radiasi nya:

 

OMNI

 

 

 

 

 

YAGI (Omni Directional)



 

SECTORAL WAVEGUIDE 120 Degree



Sunday, August 15, 2010

Rumus Kalkulasi Wireless

bulan ramadhan iseng – iseng ney ngumpulin rumus – rumus wireless… cpa tau bermanfaat…
langsung aja gan…

Mengitung Panjang Gelombang


λ = c/f

keterangan :
λ = panjang gelombang (meter)
c = kecepatan cahaya (300.000 km/s atau 300.000.000 m/s)
f = frekuensi (Hz)

misalnya kita ingin mengetahui panjang gelombang sinyal wifi yang bekerja pada frekuensi 2,4 GHz maka :

λ = c/f
λ = 300.000.000 m/s / 2400.000.000 Hz
λ = 0,125 meter
λ = 12,5 cm

maka panjang gelombang dari sinyal wireless yang bekerja pada frekuensi 2,4 GHz adalah 12,5 cm artinya pada frekuensi ini panjang satu buah gelombang adalah 12,5 cm…

Menghitung dBm (dBmW)

X = 10 Log P

Keterangan  :
X = jumlah desibel yang di hasilkan (dBm)
P = daya dalam miliwatt (mW)

misalnya pada kasus ini Radio (Perangkt Wireless seperti access point atau wireless pada laptop) yang kita miliki mengeluarkan power sebesar 100 miliWatt maka :

X = 10 Log P
X = 10 Log (100)
X = 20 dBm

maka daya yang dikeluarkan oleh radio adalah sebesar 20 dBm….

Menghitung Freznel Zone

r = 0,6 * 17,31 * sqrt((d1*d2)/(f*d))

keterangan :
r  = area freznel zone
d = jarak antar kedua antenna yang saling terkoneksi (meter)
f  = frekuensi (MHz)
d1 = jarak antenna pertama dari penghalang (meter)
d2 = jarak antenna kedua dari penghalang (meter)

okeh kita bahas dikit kapan di pake rumus ney… permisalan kita masang antenna dari satu titik ke titik yang laen…. nah pas masang ada penghalang di tengah – tengah kayak gini ney misalnya …

misalnya jarak antar antenna (d) 4 kilometer trus jarak antenna pertama dari pohon 1,5 kilometer trus jarak antenna kedua dari penghalang 2,5 kilometer berapa area freznel zone nya…. berarti begini perhitungannya …

r =  17,31 * sqrt((d1*d2)/(f*d))
r =  17,31 * sqrt((1500/2500) / (2437*4000))
r =  17,31 *sqrt(3750000 / 9748000)
r = 10.736307495 meter

jika seandainya tinggi antenna pertama dan antenna kedua 15 meter maka freznel zone akan berada 15 meter – 10.736307495 meter =  4.26 meter diatas tanah… jika kita ingin hanya 60% area bebas hambatan maka kita perlu memodifikasi sedikit rumusnya gan… jadinya kayak gene….

r = 0,6 * 17,31 * sqrt((d1*d2)/(f*d))

Sooo ntar lok dapet hasilnya tinggal dikurangis sama ketinggian antenna… lok seandainya masih terhalang dengan ketinggian tade berarti antenna harus di tinggikan lage supaya area bebas hambatan tambah banyak… akhirnya sinyal kuat lah…. gila geto…..

Menghitung Link Budget

untuk menghitung link budget anda bisa mendownload kalkulator yang sudah buat di link ini :http://gen5x4.wordpress.com/2010/11/17/link-budget-calculator/ , tapi anda juga perlu tau cara menghitung dan rumus nya kalau kebetulan lagi di hutan trus listrik gak ada pake nyalain laptop, so ini rumusnya :

Pemancar —-> Total Gain = (TX1 + AG1  – CL1 ) + (AG2 – CL2)

keterangan :
TX1 = TX Power Radio 1 (dBm)
AG1 = Antenna Gain Radio 1 (dBi)
CL1 = Cable Loss Radio 1 (dB)
AG2 = Antenna Gain Radio 2 (dBi)
CL2 = Cable Loss Radio 2 (dB)

Penerima ——– > Total Gain = (TX2 + AG2  – CL2 ) + (AG1 – CL1)

keterangan :
TX2 = TX Power Radio 2 (dBm)
AG2 = Antenna Gain Radio 2 (dBi)
CL2 = Cable Loss Radio 2 (dB)
AG1 = Antenna Gain Radio 1 (dBi)
CL1 = Cable Loss Radio 1 (dB)

Dan Rumus ini juga

LFSL = 40 + 20 * Log r


keterangan
LFSL = Hambatan bebas udara atau Path Loss (dB)
r  = jarak antar kedua antenna (meter)

okeh misalnya kasus nya kayak gene gan :

Pada sebuah sambungan antar dua buah antenna wireless yang jarak antara keduanya adalah 5 km, radio di titik pertama memiliki daya sebesar 150 miliWatt dengan menggunakan antenna grid yang memiliki gain sebesar 24 dBi serta menggunakan kabel sepanjang 1 meter dimana 1 meter kabel akan mengurangi gain sebesar 1 dB. Sementara itu radio titik kedia memiliki daya sebesar 100 miliWatt dengan menggunakan antenna wajan bolic yang memiliki gain sebesar 20 dBi serta menggunakan kabel sepanjang 2 meter  dimana 1 meter kabel akan mengurangi sinyal sebesar  1 dB. Sensivitas Penerima pada Radio di titik pertama adalah -90 dB dan Sensivitas Penerima pada Radio di titik kedua adalah -95 dB.

Hitung
a. Kekuatan Sinyal yang didapatkan oleh Radio di titik pertama.
b. Kekuatan Sinyak yang didapatkan oleh Radio di titik kedua.

okeh ane jawab ney…

jawaban yang (a)
X = 10 Log P
X = 10 Log 150
X = 21.76 dBm
X = 22 dBm

berarti

Total Gain = (22 dBm + 24 dBi – 1 dB) + (20 dBi – 2 dB)
Total Gain = 63 dB

nah sekarang tinggal hitung Path Loss :

LFSL = 40 + 20 * log r
LSFL = 40 + 20 * log (5000)
LSFL = 113,97 dB
LSFL = 114 dB

setelah kita mendapatkan redaman ruang bebas (Path Loss) tinggal dikurangi aja sama Total Gain

Kekuatan Sinyal = 63 dB – 114 dB = -51 dB

Jika sensitivitas penerima pada radio kedua (di sisi client) adalah -95 dB maka kita tinggal mengurangi dengan kekuatan sinyal dari radio pertama…

95 dB -  51 dB = 44 dB

dari hasil perhitungan diatas ntu berarti sinyal bisa diterima cukup baik gan…. pokoknya yang normal ntu 15 dB dah… supaya lok antenna di goyang sinyal masih stabil… nah sekarang coba kita liat apa sinyal dari radio di titik kedua (client) bisa ngirim balik nggak ke pemancar… (radio di titik pertama)…

jawaban yang (b)

X = 10 log P
X = 10 log 100
X = 20 dBm

Total Gain  = (TX2 + AG2 – CL2) + (AG1 – CL1)
Total Gain  = (20 dBm + 20 dBi -2 dB) + (24 dB – 1 dB)
Total Gain = 61 dB

Kekuatan Sinyal = 64 dB – 114 dB = -53 dB

Jika Sensitivitas Radio Penerima pada titik pertama (pemancar) sebesar -90 dB tinggal kurangi aja gan….

90 dB – 53 dB = 37 dB

seep koneksi sejauh 5 kilometer lancar – lancar aja gan…

sepertinya ney aja dulu coz udah deket sahur ney… ntar keburu sahur….
masih cupu seperti dulu gan… lok tau ya berbagi lok gak tau ya apa yang mau di bagi….

ambil dari sini :

http://wndw.net

http://www.wlanmall.com/media/article/fresnelzone.jpg