Pages

Subscribe:

Monday, October 20, 2008

Setting Dasar Router OS Mikrotik

Ok pren, dah lama nih gak nulis sesuatu. Ok langsung saja, kita akan melanjutkan ke tingkat selanjutnya dari instalasi Router OS Mikrotik yaitu untuk setup dasar router tersebut.

Untuk mengubah hostname.

Secara default awal pada waktu selesai instalasi maka hostname atau identity adalah sebagai berikut :
[admin@MikroTik] >
Untuk mengganti nama “MikroTik” tersebut kamu bisa lakukan cara berikut :
[admin@MikroTik] > system identity set name=

Untuk mengganti password.

Untuk mengganti password admin, bisa kalian ikuti command berikut :
[admin@infonesia] > password
old password:
new password:
retype new password:
Untuk set IP Address.

Untuk set IP, bisa kalian jalankan perintah berikut :
[admin@infonesia] > ip address add address= netmask= interface=

Untuk set gateway.

Untuk set gateway mikrotik, bisa jalankan perintah berikut :
[admin@infonesia] > ip route add gateway=

Untuk set DNS.

Untuk set DNS mikrotik, bisa jalankan perintah berikut :
[admin@infonesia] > ip dns set primary-dns= secondary-dns= allow-remote-requests=yes

Ok, mungkin itu setting dasar yang bisa gw jelasi, kalo ada sekiranya yang salah silahkan japri gw buat dibenerin. :)

Cara setting CISCO Router untuk ke Astinet


1. Tahap Awal

Bukalah cisco anda, dan pasangkan pada modem yang sudah di sediakan oleh pihak astinet. pastikan modem sudah pada kualitas A. dan sudah sesuai dengan permintaan bandwith yang di inginkan.

Buka email atau surat yang telah di faxkan oleh pihak Astinet dan catat untuk ip serial dan ip public yang diberikan kepada anda oleh pihak telkom sbb :

ip serial : 192.x.x.x , netmask 255.x.x.x

ip public : 222.x.x.x

kalu data ini anda sudah siap berarti anda sudah bisa melakukan konfigurasi terhadap rooter saudara.

2. Tahap Setting Router secara umum

a. Pertama yang dilakukan adalah setting ip untuk fastethernetnya terlebih dahulu ini penting karena untuk mempermudah setting di kemudian untuk proses telnet dsb.

b. Colok lah router ke modem leaseline, kemudian colok kabel console yang berwarna biru , untuk melakukan konfigurasi lewat pc.

c. Dari pc jalankan HyperTerminal untuk mengkonfigurasi awal cisco router

d. Setelah terpasang kabel console, restartlah cisco router anda. dan pertama kali booting cisco akan mengeluarkan pertanyaan pertanyaan default mengenai konfigurasi awal cisco, seperti hostname , passsword dsb

e. Yang pertama kali kita lakukan adalah

1. Setting lah password console, aux, vty dan secret password caranya adalah cara :

router# config t

router(config)# enable secret (pass-anda)

router(config)# enable password (pass-anda)

settung untuk console , vty, dan aux

cara :

router(config)# line console 0

router(config-line)#login

router(config-line)#password ( password anda )

begitu juga dengan setting vty dan aux

lakukan satu setting lagi untuk password biar pada saat di sh run password di encrypt. dan semua password terencryption.

cara :

router(config)# service password-encryption

router(config)# enable password (password anda )

router(config)#line vty 0 4

router(config-line)#login

router(config-line)#password (pass anda )

router(config-line)#line con 0

router(config-line)#login

router(config-line)#password ( pass anda )

router(config-line)# exit

router(config)# no service password-encryption

router(config)# ^Z

router(config)# wr mem

setelah selesai melakukan setting password, kita bisa sekarang mengubah hostname dengan cara :

router#config t

router(config)# hostname (nama hostname anda )

router(config)#^Z

router(config)#wr mem

(nama host anda)#

jika anda perlu setting benner silahkan setting banner pada cisco anda, disini saya tidak masukan karena saya tidak penting ini.

3. Setting Konfigurasi

1. Setting terhadap FastEthernet fa 0/0

caranya :

router#config t

router(config)# int fa0/0

router(config-if)# ip address 222.x.x.x 255.x.x.x

router(config-if#ip address 192.168.x.x 255..x.x.x secondary

2. Setting terhadap Serial 0/0

caranya :

router# config t

router(config)# int serial0/0

router(config-if)# ip address 192..x.x.x 255..x.x.x

router(config-if)# bandwith 512

router(config-if)#^Z

router# wr mem

3. Setting ip route biar bisa melewati paket ke luar dari ip mana saja lewat serial0

caranya :

router(config)# ip route 0.0.0.0 0.0.0.0 serial0/0

4. Settingan untuk access-list

router(config)# access-list 1 permit 192.168.x.x 0.0.0.255

router(config)#^Z

router# wr mem

ok.. semua settingan untuk astinet sudah kelar.. sekarang anda tinggal coba melakukan ping ke ip address yang ada di internet bila suda ok berarti kerja anda berhasil.

dan jangan lupa untuk menset Gateway pada client anda ke ip privet yang ada pada fastEthernet anda di cisco router.

Setting Router Warnet


|eth0
|
|-------|
| MGW |
|---|---|
|
|eth1
|
|
|--------------------hub----------------------|
| | |
| | |
| | |
|---------| |---------| |---------|
|Client 01| |Client 02| |Client 03|
|---------| |---------| |---------|

Pertama yang harus di lakukan adalah mensetting mgw(main gateway)
supaya bisa connect ke internet
Sebelum Mensetting :
1.Minta IP public ke ISP lengkap dengan netmask,broadcast dan dns nya
misalnya :
RANGE : 202.159.121.0/29
IP : 202.159.121.2
GATEWAY : 202.159.121.1
Nemast : 255.255.255.248
broadcast : 202.159.121.7
DNS1 : 202.159.0.10
DNS2 : 202.159.0.20
berarti kita mendapatkan ip 5 buah dari 202.159.121.2 - 202.159.121.6

2.Menentukan IP local yang akan kita gunakan buat client

Setting IP MGW :
1.[root@mgw cachak]$ vi /etc/sysconfig/network
lalu isi dengan :

NETWORKING=yes
HOSTNAME=mgw.domain.com
GATEWAY=202.159.121.1

lalu simpen dengan menekan :wq

2.Menconfigurasi IP eth0(default)

[root@mgw root]$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
lalu isi dengan :

DEVICE=eth0
BOOTPROTO=static
IPADDR=202.159.121.2
BROADCAST=202.159.121.7
NETMASK=255.255.255.249
ONBOOT=yes
USERCTL=no

lalu simpen dengan menekan :wq

3.Setting dns resolve

[root@mgw root]$ vi /etc/resolv.conf
lalu isi dengan nameserver dari isp kita tadi :

nameserver 202.159.0.10
nameserver 202.159.0.20

lalu simpen dengan menekan :wq

4.Setting ip_forwarding

[root@mgw cachak]$ vi /etc/sysctl.conf

rubah net.ipv4.ip_forward = 0 menjadi net.ipv4.ip_forward = 1
atau kalau gak ada net.ipv4.ip_forward = 0 tambahin net.ipv4.ip_forward = 1

simpen dengan menekan :wq

5.restart network
[root@mgw cachak]$ /etc/init.d/network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Disabling IPv4 packet forwarding: [ OK ]
Setting network parameters: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]

[root@www root]#chkconfig --level 2345 network on
[root@www root]#

6.testing dengan ngeping ke default gateway 202.159.121.1

[root@mgw cachak]$ ping 202.159.121.1
PING 202.159.121.1 (202.159.121.1) 56(84) bytes of data.
64 bytes from 202.159.121.1: icmp_seq=1 ttl=63 time=0.356 ms
64 bytes from 202.159.121.1: icmp_seq=2 ttl=63 time=0.269 ms
64 bytes from 202.159.121.1: icmp_seq=3 ttl=63 time=0.267 ms
64 bytes from 202.159.121.1: icmp_seq=4 ttl=63 time=0.268 ms

--- 202.159.121.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 0.267/0.290/0.356/0.038 ms

7.testing untuk ngeping google.com untuk ngecek dns nya
kalau muncul :
PING google.com (216.239.39.99) 56(84) bytes of data.
berarti dns kita untuk mgw dah bekerja, tapi kalau muncul :
ping: unknown host google.com
berarti dns yang kita isikan di /etc/resolve.conf masih salah,
silahkan cek lagi ke ISP nya :)

nah bereskan sudah setting IP untuk mgw nya :)
supaya mgw ini bisa sekaligus di gunakan sebagai ns server
oleh client maka harus di install daemon bind atau
daemon nameserver yang lain
ataukalau sudah ada tinggal idupin Bind nya

[root@www root]# /etc/init.d/named restart
Stopping named: [ OK ]
Starting named: [ OK ]
[root@www root]#chkconfig --level 2345 named on
[root@www root]#

misalnya ip ke client adalah :
192.168.0.1/24
IP : 192.168.0.1
netmask : 255.255.255.0
broadcast : 192.168.0.255
RANGE IP CLIENT : 192.168.0.2-192.168.0.254

Setting ip untuk eth1 (yang ke client)
1.memberi IP 192.168.0.1 di eth1
[root@mgw cachak]$ vi /etc/sysconfig/network-scripts/ifcfg-eth1
lalu isi dengan :

DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
BROADCAST=192.168.0.255
ONBOOT=yes
USERCTL=no

lalu simpen dengan menekan :wq

2.Restart networknya

[root@mgw root]$ /etc/init.d/network restart
Shutting down interface eth0: [ OK ]
Shutting down interface eth1: [ OK ]
Shutting down loopback interface: [ OK ]
Disabling IPv4 packet forwarding: [ OK ]
Setting network parameters: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
Bringing up interface eth1: [ OK ]

3.Testing dengan cara ping ip eth1
[root@mgw cachak]$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=63 time=0.356 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=63 time=0.269 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=63 time=0.267 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=63 time=0.268 ms

--- 192.168.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 0.267/0.290/0.356/0.038 ms

Tinggal Setting IP computer client dengan ketentuan di bawah ini :

IP : 192.168.0.2 - 192.168.0.254
GATEWAY : 192.168.0.1
NETMASK : 255.255.255.0
BROADCAST : 192.168.0.255
NAMESERVER : 192.168.0.1

misal :

Client01
===============================
IP : 192.168.0.2
GATEWAY : 192.168.0.1
NETMASK : 255.255.255.0
BROADCAST : 192.168.0.255
NAMESERVER : 192.168.0.1

Client02
===============================
IP : 192.168.0.3
GATEWAY : 192.168.0.1
NETMASK : 255.255.255.0
BROADCAST : 192.168.0.255
NAMESERVER : 192.168.0.1

dan seterusnya sesuai banyaknya client,yang berubah hanya IP
untuk client windows maka setting IP
di bagian Start Menu/Setting/Control Panel/Network

setelah di setting ip client, maka coba ping ke 192.168.0.1
dari client,kalau berhasil berarti client dan MGW nya sudah tersambung.

Setting MGW supaya client bisa internat dengan menggunakan NAT

1.Matikan iptablesnya

[root@mgw root]# /etc/init.d/iptables stop
Flushing all chains: [ OK ]
Removing user defined chains: [ OK ]
Resetting built-in chains to the default ACCEPT policy: [ OK ]
[root@mgw root]#

2.Tambahkan iptables untuk Source NAt sesuai dengan ip di eth0
[root@mgw root]# /sbin/iptables -t nat -A POSTROUTING
-o eth0 -s 192.168.0.0/24 -j SNAT --to-source 202.159.121.2
[root@mgw root]# /sbin/iptables-save > /etc/sysconfig/iptables
[root@mgw root]# /etc/init.d/iptables restart
Flushing all current rules and user defined chains: [ OK ]
Clearing all current rules and user defined chains: [ OK ]
Applying iptables firewall rules: [ OK ]
[root@mgw root]# iptables-save

SNAT sudah,SNAT disini standar sekali dan gak ada proteksi
untuk mengetest nya kita browser di client lalau buka google.com,
kalau jalan berati kita sudah berhasil :)

Setting Mikrotik Wireless Bridge

Sering kali, kita ingin menggunakan Mikrotik Wireless untuk solusi point to point dengan mode jaringan bridge (bukan routing). Namun, Mikrotik RouterOS sendiri didesain bekerja dengan sangat baik pada mode routing. Kita perlu melakukan beberapa hal supaya link wireless kita bisa bekerja untuk mode bridge.

Mode bridge memungkinkan network yang satu tergabung dengan network di sisi satunya secara transparan, tanpa perlu melalui routing, sehingga mesin yang ada di network yang satu bisa memiliki IP Address yang berada dalam 1 subnet yang sama dengan sisi lainnya.

Namun, jika jaringan wireless kita sudah cukup besar, mode bridge ini akan membuat traffic wireless meningkat, mengingat akan ada banyak traffic broadcast dari network yang satu ke network lainnya. Untuk jaringan yang sudah cukup besar, saya menyarankan penggunaan mode routing.

Berikut ini adalah diagram network yang akan kita set.



Konfigurasi Pada Access Point

1. Buatlah sebuah interface bridge yang baru, berilah nama bridge1


2. Masukkan ethernet ke dalam interface bridge


3. Masukkan IP Address pada interface bridge1

4. Selanjutnya adalah setting wireless interface. Kliklah pada menu Wireless (1), pilihlah tab interface (2) lalu double click pada nama interface wireless yang akan digunakan (3). Pilihlah mode AP-bridge (4), tentukanlah ssid (5), band 2.4GHz-B/G (6), dan frekuensi yang akan digunakan (7). Jangan lupa mengaktifkan default authenticated (8) dan default forward (9). Lalu aktifkankanlah interface wireless (10) dan klik OK (11).


5. Berikutnya adalah konfigurasi WDS pada wireless interface yang digunakan. Bukalah kembali konfigurasi wireless seperti langkah di atas, pilihlah tab WDS (1). Tentukanlah WDS Mode dynamic (2) dan pilihlah bridge interface untuk WDS ini (3). Lalu tekan tombol OK.

6. Langkah selanjutnya adalah menambahkan virtual interface WDS. Tambahkan interface WDS baru seperti pada gambar, lalu pilihlah interface wireless yang kita gunakan untuk WDS ini. Lalu tekan OK.

7. Jika WDS telah ditambahkan, maka akan tampak interface WDS baru seperti pada gambar di bawah.


Konfigurasi pada Wireless Station

Konfigurasi pada wireless station hampir sama dengan langkah-langkah di atas, kecuali pada langkah memasukkan IP Address dan konfigurasi wirelessnya. Pada konfigurasi station, mode yang digunakan adalah station-wds, frekuensi tidak perlu ditentukan, namun harus menentukan scan-list di mana frekuensi pada access point masuk dalam scan list ini. Misalnya pada access point kita menentukan frekuensi 2412, maka tuliskanlah scan-list 2400-2500.



Pengecekan link

Jika link wireless yang kita buat sudah bekerja dengan baik, maka pada menu wireless, akan muncul status R (lihat gambar di bawah).


Selain itu, mac-address dari wireless yang terkoneksi juga bisa dilihat pada jendela registration (lihat gambar di bawah).



Konfigurasi keamanan jaringan wireless

Pada Mikrotik, cara paling mudah untuk menjaga keamanan jaringan adalah dengan mendaftarkan mac-address wireless pasangan pada access list. Hal ini harus dilakukan pada sisi access point maupun pada sisi client. Jika penginputan access-list telah dilakukan, maka matikanlah fitur default authenticated pada wireless, maka wireless lain yang mac addressnya tidak terdaftar tidak akan bisa terkoneksi ke jaringan kita.

Jika kita menginginkan fitur keamanan yang lebih baik, kita juga bisa menggunakan enkripsi baik WEP maupun WPA.

Thursday, October 09, 2008

Server CS

KINGS Games Center - Galaxy
Server 1 : cs1.kingscomputer.net:27015
Server 2 : cs2.kingscomputer.net:27016
Server 3 : cs3.kingscomputer.net:27017
Server 4 : cs4.kingscomputer.net:27018
Server 5 : cs5.kingscomputer.net:27019
Server 6 : cs6.kingscomputer.net:27020
Server 7 : cs7.kingscomputer.net:27021

Pub-Vivagamers
[WCG] Pub-1 Vivagamers cs1.vivagamers.com:27015
[WCG] Pub-2 Vivagamers cs2.vivagamers.com:27015
[WCG] Pub-3 Vivagamers cs1.vivagamers.com:27016
[WCG] Pub-4 Vivagamers cs2.vivagamers.com:27016
[WCG] Pub-5 Vivagamers cs1.vivagamers.com:27017
[WCG] Pub-6 Vivagamers cs2.vivagamers.com:27017
[WCG] Pub-7 Vivagamers cs1.vivagamers.com:27018
[WCG] Pub-8 Vivagamers cs2.vivagamers.com:27018
[WCG] Pub-9 Vivagamers cs1.vivagamers.com:27019
[WCG] Pub-10 Vivagamers cs2.vivagamers.com:27019

War-Vivagamers
[WCG] War-1 Vivagamers cs8.vivagamers.com:27015
[WCG] War-2 Vivagamers cs8.vivagamers.com:27016
[WCG] War-3 Vivagamers cs8.vivagamers.com:27017
[WCG] War-4 Vivagamers cs8.vivagamers.com:27018
[WCG] War-5 Vivagamers cs8.vivagamers.com:27019

[CSDM #1] Vivagamers cs5.vivagamers.com:27015
[CSDM #2] Vivagamers cs5.vivagamers.com:27016
[CSDM #3] Vivagamers cs5.vivagamers.com:27017

[Soccer Jam] Vivagamers cs5.vivagamers.com:27020

Server Kotak
KoTaK Server #1 : 203.84.154.2:27015
KoTaK Server #2 : 203.84.154.2:27016
KoTaK Server #3 : 203.84.154.2:27017
KoTaK Server #4 : 203.84.154.2:27018
KoTaK Server #5 : 203.84.154.3:27015
KoTaK Server #6 : 203.84.154.3:27016
KoTaK [CSDM] : 203.84.154.2:27019
KoTaK [SoccerJam] : 203.84.154.2:27020

The IdGamers
Pub-1 202.149.90.19:27015
Pub-2 202.149.90.19:27016
Pub-3 202.149.90.19:27017
Pub-4 202.149.90.19:27018
[CSDM] 202.149.90.19:27019

uNo Public Server
uNo Public Server 202.182.52.26:27015
uNo Clanwar Server 202.182.52.26:27016

Indogamers AMPM
[ Indogamers ] CS [ Server 1 ] 122.144.2.12:27015
[ Indogamers ] CS [ Server 2 ] 122.144.2.12:27016
[ Indogamers ] CS [ Server 3 ] 122.144.2.12:27017
[ Indogamers ] CS [ Server 4 ] 122.144.2.12:27019
[ Indogamers ] CS [ Server 5 ] 122.144.2.12:27020
[ Indogamers ] CS [ Server 6 ] 122.144.2.222:27015
[ Indogamers ] CS [ Server 7 ] 122.144.2.222:27016
[ Indogamers ] CS [ Server 8 ] 122.144.2.10:27018
[ Indogamers ] CS [ Server 9 ] 122.144.2.10:27019
[ Indogamers ] CS [ Server 11 ] 122.144.2.222:27019
[ Indogamers ] CS [ Server 12 ] 122.144.2.222:27020
[ Indogamers ] CS [ Server 15 ] 122.144.2.222:27021
[ Indogamers ] CS [ Server 16 ] 122.144.2.222:27022

[ Indogamers- Redzone ] CS [ Server 6 ] 122.144.2.10:27015
[ Indogamers- Redzone ] CS [ Server 7 ] 122.144.2.10:27016

[ Indogamers ] CS [ Blue War ] 122.144.2.222:27018
[ Indogamers ] CS [ Green War ] 122.144.2.10:27017
[ Indogamers ] CS [ Red War ] 122.144.2.12:27018

Spy Server
Pub-1 202.182.51.3:27015

X-Games
X-games Pub 1 202.149.69.45:27015
X-games Pub 2 202.149.69.45:27016
X-games War 202.149.69.45:27020


[EzGames] Arena
202.80.112.62:27015
202.80.112.62:27016
202.80.112.62:27017
202.80.112.62:27018
202.80.112.62:27019

[EzGames] War
202.80.112.61:27015
202.80.112.61:27016
202.80.112.61:27017
202.80.112.61:27018
202.80.112.61:27019

MediaNet Server
Medianet 202.169.224.56:27015
Medianet Clan War 202.169.224.56:27016
Medianet VAC Secure 202.169.224.56:27018

Server CS Cakra
Pub-1 202.133.3.4:27015
Pub-2 202.133.3.4:27016
Pub-3 202.133.3.4:27017
Pub-4 202.133.3.4:27018

Server BIZ NET
Pub-1 cs1.biz.net.id:27015
Pub-2 cs2.biz.net.id:27015
Pub-3 cs3.biz.net.id:27015
Pub-4 cs4.biz.net.id:27015

Hynobius
Pub-1 203.128.72.233:27015
Pub-2 203.84.154.78:27016

Server Combat
COMBAT PUBLIC : 202.158.39.18:27015
COMBAT CLANWAR : 202.158.39.18:270

Server PrimaWave
Pub-1 202.72.215.29:27015
Pub-2 202.72.215.29:27016

KINGS CS Server 1.6
Pub-1 202.74.73.98:27015
Pub-2 202.74.73.98:27016
Pub-3 202.74.73.98:27017
Pub-4 202.74.73.98:27018

Kings Clan War Server
202.74.73.98:27019

Battle-Line
Pub-1 www.battle-line.net:27016
Pub-2 www.battle-line.net:27017
Clanwar Server www.battle-line.net:27020

24Hour - GameNet
Pub-1 202.78.199.235:27016
Pub-2 202.78.199.235:27017
Pub-3 202.78.199.235:27018

GilaGames Server
Pub-1 58.65.244.20:27015

FletNet Server
Pub-1 203.77.221.51:27015

Orbicom Semarang
Pub-1 202.75.25.190:27015

cs-mania
Pub-1 202.129.190.13:27015
Pub-2 202.129.190.13:27016

Tuesday, October 07, 2008

HTTP

HTTP (HyperText Transfer Protocol) adalah protokol yang dipergunakan untuk mentransfer dokumen dalam World Wide Web (WWW). Protokol ini adalah protokol ringan, tidak berstatus dan generik yang dapat dipergunakan berbagai macam tipe dokumen.

Pengembangan HTTP dikoordinasi oleh Konsorsium World Wide Web (W3C) dan grup bekerja Internet Engineering Task Force (IETF), bekerja dalam publikasi satu seri RFC, yang paling terkenal RFC 2616, yang menjelaskan HTTP/1.1, versi HTTP yang digunakan umum sekarang ini.

HTTP adalah sebuah protokol meminta/menjawab antara client dan server. Sebuh client HTTP seperti web browser, biasanya memulai permintaan dengan membuat hubungan TCP/IP ke port tertentu di tuan rumah yang jauh (biasanya port 80). Sebuah server HTTP yang mendengarkan di port tersebut menunggu client mengirim kode permintaan (request), seperti "GET / HTTP/1.1" (yang akan meminta halaman yang sudah ditentukan), diikuti dengan pesan MIME yang memiliki beberapa informasi kode kepala yang menjelaskan aspek dari permintaan tersebut, diikut dengan badan dari data tertentu. Beberapa kepala (header) juga bebas ditulis atau tidak, sementara lainnya (seperti tuan rumah) diperlukan oleh protokol HTTP/1.1. Begitu menerima kode permintaan (dan pesan, bila ada), server mengirim kembali kode jawaban, seperti "200 OK", dan sebuah pesan yang diminta, atau sebuah pesan error atau pesan lainnya.

Saturday, October 04, 2008

Bikin Mail Serv Simple yg Bagus

Bikin mail serv mungkin emang bukan hal yang baru. Tapi ada 1 software yg lumayan bagus buat bikin MTA. Yaitu Communigate.



Dengan interface grafis a la web (kayak yahoo, gmail dll) aplikasi ini mudah bgt buat dijalanin.

Langkah2 nya :

Langkah pertama yaitu dimulai dari menyiapkan PC yang akan digunakan, untuk selanjutnya diberi sistem operasi. Selanjutnya yaitu proses instalasi RedHat Linux 9.0. (instal sendiri ajah ya!)

Kalo udah jadi, donlot software yg mo diinstall. Cari di http://www.stalker.com
Donlot paket dgn extensi rpm, ato tar.gz nya.

Lakukan instalasi aplikasi mail server. Ketikkan perintah sebagai berikut :

$ rpm –ivh CGatePro-Linux.i386.rpm
$ /etc/rc.d/init.d/CommuniGate start

Trus buka lewat browser, ketik IP dengan port 8010, ex http://192.168.11.17:8010 (port 8010 digunakan untuk postmaster ato owner nya )

Klik pada Account, masukkan username dan password. Lihat petunjuk pada file konfigurasi dengan perintah :

$cat /var/CommuniGate/Accounts/postmaster.macnt/account.settings

Defaultnya adalah seperti ini :

{
ExternalINBOX = NO;
Password = 8417;
UseAppPassword = YES;
}

Abis tu, masuk ke Domain Settings dan pada Auto Sign Up Ganti parameter dengan Yes dan Update.

Trus ketik IP dengan port 8100 pada browser, ex http://192.168.11.17:8100 ( 8100 adalah port untuk user ato pengguna email )

Klik pada Sign Up untuk mendaftarkan account user. Lalu isikan informasi sesuai keinginan pada tiap kolom

Setelah itu klik pada Sign Up dan kita akan kembali pada jendela awal. Masukkan nama user sesuai informasi pada waktu pendaftaran. Setelah itu kita akan masuk pada account kita.

Selanjutnya, coba fasilitas lain yang diberikan oleh CommuniGate yaitu mailing list atau yang lebih sering disebut millist. Pertama, masuk ke alamat postmaster pada http://192.168.11.17:8010 kemudian masuk pada Account dan pilih salah satu user yang akan menjadi moderator millist tersebut.

Pada kolom Mailing List ketikkan nama group yang akan dibuat lalu klik Create List. Setelah itu lihat setting grup melalui Settings – List. Edit setting sesuai keinginan dengan cara melilih grup. Klik pada nama grup untuk mengedit pengaturannya

Tip tmpfs buat /tmp

TMPFS adalah sistem file khusus Linux yang jalan di memory, dan kalau penuh otomatis ditaruh ke swap. Kalau anda pakai tmpfs untuk menggantikan /tmp, sistem anda bisa lebih kencang.

Untuk pakai tmpfs, komputer anda sebaiknya punya:
  • Memory yang lumayan, paling tidak 128 MB.
  • Swap filenya dibesarkan, kalau biasanya cuma 2xRAM, sekarang 3xRAM lah.
Kalau itu ada, berikutnya periksa apakah kernel anda sudah punya tmpfs. Caranya begini:
tux:$ cat /proc/filesystems
nodev rootfs
nodev bdev
nodev proc
nodev sockfs
nodev tmpfs *** INI DIA !!!!
nodev shm
nodev pipefs
ext3
ext2
nodev ramfs
umsdos
msdos
vfat
iso9660
nodev nfs
reiserfs
nodev devpts
~
Kalau itu tidak ada, Cilaka. Musti kompile ulang kernel.

Selanjutnya, tinggal edit /etc/fstab, tambah satu baris berikut:

## Mount tmpfs sebagai /tmp, MAXSIZE=128MB
none /tmp tmpfs size=128M 0 0
Kemudian buat security, kita harus yakinkan bahwa sticky bit di-set. Jadi .... edit file /etc/rc.d/rc.local (lain distro rc.local tempatnya lain), tambah baris:
## Atur mode /tmp
chmod 1777 /tmp
Met nyoba. Tapi sebelum repot periksa dulu. Beberapa distro, termasuk Vector Linux 5.x, sudah menyediakan trik ini.

Kompile Kernel 2.6.x dan NVIDIA

KERNEL COMPILATION
1. Get the linux-2.6.14.2.tar.bz2 from www.kernel.org
2. cd /usr/src
3. tar -xjf /home/download/linux-2.6.14.2.tar.bz2
4. rm linux
5. ln -sf linux-2.6.14.2 linux
6. cp /boot/config .config (from VL 5.1 or Slack 10.2 kernel 2.6 config !!!)
7. make menuconfig
8. I especially turned these ON
- processor features : preemptive scheduling ON
- enable different security model ON
- Default Linux ON
9. make
10. make modules_install
11. cp arch/i386/boot/bzImage /boot/vmlinuz-sata-2.6.14.2
12. cp System.map /boot/System.map-sata-2.6.14.2
13. cp /boot/System.map-sata-2.6.14.2
14. cd /boot
15. rm vmlinuz System.map
16. ln -s vmlinuz-sata-2.6.14.2 vmlinuz
16. ln -s System.map-2.6.14.2 System.map
17. vliloconf
18. reboot

NVIDIA COMPILATION
(After successfull kernel 2.6.14.2 rebooting)

1. Download NVIDIA driver from http://www.nvnews.net/vbulletin/showthread.php?t=54863
2. Download NVIDIA patches (four items at this time of writing)
http://www.nvnews.net/vbulletin/showthread.php?t=56150

3. sh /path/to/NVIDIA-Linux-x86_64-1.0-7676-pkg2.run --extract-only
4. cd NVIDIA-Linux-x86_64-1.0-7676-pkg2
5. Apply the patches (all of them one by one)
patch -p0 < /path/to/NVIDIA_kernel-1.0-7676-1361053.diff.txt

6 ./nvidia-installer -n

Good luck.

PS.
Asal tahu saja, seminggu lebih browsing Internet sana-sini sampai berhasil !!!

TroubleShooting TCP/IP

Misalkan komputer Linux anda mestinya tersambung ke network, tapi kok tidak jalan. Bagaimana mencari tahu salahnya, sekaligus membetulkan ? Level: Wannabee

Pertama, bayangkan bahwa kalau anda kirim paket network, urut-urutan jalannya adalah sebagai berikut:
  1. Aplikasi
  2. Protocol TCP/IP
  3. Driver Kernal
  4. Card network
  5. Kabel network
  6. Komputer lain (gateway)
  7. Internet
Secara singkat, algoritma trouble shooting adalah sbb:
  1. TEST DEVICE. Kalau benar loncat ke TEST TCP/IP. Kalau salah SET DEVICE lalu coba lagi. Kalau masih salah juga, periksa CARD dan DRIVER kernel Linux anda.
  2. TEST TCP/IP. Kalau benar loncat ke TEST PING, kalau salah ke SET TCP/IP lalu coba lagi.
  3. TEST PING-GATEWAY. Kalau benar loncat ke TEST PING, kalau salah PERIKSA KABEL.
  4. TEST PING-INTERNET. Kalau benar ya sudah, selesai. Kalau salah, set routing lalu coba lagi. Kalau masih salah juga, tamat riwayat dah. Sambungan Internet anda pasti sedang putus.
Sekarang detailnya. Untuk trouble shooting kita pakai CLI (command line interface) saja. Jadi luncurkan terminal dan su jadi root, atau login di console sebagai root.

TEST DEVICE

Pertama, coba test device network anda memang sudah ada. Caranya ...

root@engrob4:# cat /proc/net/dev
Inter-| Receive | Transmit
face | (dipotong biar tidak kepanjangan)
lo: 83505 .............
eth0: 650720962 ........
Yang penting di sini, lihat kalau sudah ada baris eth0:. Kalau ada, artinya device eth0 anda sudah UP. Silahkan lanjut ke TEST TCP/IP. Kalau belum, siap-siap kerja berat :)

Agar device eth0 UP, Linux anda mesti memuat driver yang sesuai dengan network card anda. Biasanya, hal ini otomatis di autodetect oleh distro anda. Di Vector Linux, coba:

root:# vlautosetup
Kalau tidak bisa autodetect, cilaka deh. Coba cara manual, edit file /etc/modules.conf. Anda mesti tambah baris seperti ini:
## Untuk ethernet card Intel Express 100
alias eth0 e100
## Ini buat NE200 compatible
# alias eth0 ne2k-pci
## Ini buat realtek
# alias eth0 8139too
Secara teknis, baris itu memberi tahu untuk memuat driver yang tepat bagi device eth0. Jadi ... ya anda mesti tahu benar apa tipe network card anda, dan apa driver yang diperlukan. Driver yang disediakan kernal anda bisa dilihat di
## ganti versi sesuai kernel anda
root:# ls /lib/modules/2.4.26/kernel/drivers/net/
Duh, sorry kalau terlalu low level. Habis mau bagaimana lagi. Jadi ... berdoa saja supaya autodetect-nya jalan ;-)

Usaha terakhir, anda bisa coba ganti network card (barangkali rusak) atau kompile ulang kernal (barangkali driver belum ada).

TEST PROTOCOL

Ok, asumsi device sudah UP. Mari test apakah protokol TCP/IP anda sudah jalan

root:# ifconfig
eth0 Link encap:Ethernet HWaddr 00:A0:C9:5F:1E:DF
inet addr:10.0.0.100 Bcast:10.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1963997 errors:0 dropped:0 overruns:0 frame:0
TX packets:1883860 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:650565316 (620.4 Mb) TX bytes:645290505 (615.3 Mb)
Interrupt:5 Base address:0xd800 Memory:e0100000-e0100038

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:756 errors:0 dropped:0 overruns:0 frame:0
TX packets:756 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:83505 (81.5 Kb) TX bytes:83505 (81.5 Kb)

Lihat kalau eth0 sudah ada dan benar IP-nya. Kalau iya, anda bisa langsung loncat ke TEST PING.

Kalau belum seperti itu, anda perlu set ulang TCP/IP. Di Slackware atau Vector Linux, jalankan 'netconfig', atau edit file /etc/rc.d/rc.inet1. Distro lain pasti ada juga menunya, coba dicari. Kalau nggak ketemu, ini cara klasik.

## ganti 10.0.0.100 dan 255.255.255.0 sesuai network anda
root:# ifconfig eth0 10.0.0.100 netmask 255.255.255.0 up

## Coba test lagi
root:# ifconfig eth0
Mestinya network anda akan jalan. Kalau sampai nggak jalan, kernel anda tidak support TCP/IP. Rasanya nggak mungkin deh.

TEST PING GATEWAY

Sampai tahap ini, network internal di komputer anda sudah beres. Kita akan coba koneksi keluarnya. Untuk itu anda harus tahu alamat IP gateway di network anda.

## ganti 10.0.0.254 dengan alamat gateway anda
root:# ping -c 3 10.0.0.254
PING 10.0.0.254 (84) bytes of data.
64 bytes from 10.0.0.254: icmp_seq=1 ttl=255 time=4.61 ms
64 bytes from 10.0.0.254: icmp_seq=2 ttl=255 time=1.10 ms
64 bytes from 10.0.0.254: icmp_seq=3 ttl=255 time=1.05 ms

--- 110.0.0.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2023ms
rtt min/avg/max/mdev = 1.051/2.255/4.614/1.668 ms
Kalau keluarannya seperti di atas, lega. Itu artinya koneksi keluar beres. Kalau sampai timeout tidak ada balasan, coba periksa kabel dan hub ethernet anda. Atau barangkali juga si gateway-nya sedang down.

TEST PING INTERNET

Nah, sekarang coba ping salah satu komputer di Internet. Biasanya, yang aman buat di-ping adalah DNS server si ISP (Internet service provider).

## Ganti 123.123.123.123 dengan alamat IP Internet yang anda tahu
root:# ping 123.123.123.123
Kalau tidak terbalas, coba lihat tabel routing. Mestinya mirip-mirip seperti ini
root:# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 eth0
Perhatikan baris terakhir, destination 0.0.0.0 artinya ke semua network, dan kolom gateway-nya harus seauai dengan IP gateway anda. Konfigurator seperti netconfig mestinya sudah men-set ini buat anda. Kalau belum, coba pakai cara manual:
root:# route add default gw 10.0.0.254
Kalau default gateway sudah betul tapi ping internet masih belum bisa juga, ada beberapa kemungkinan: komputer anda di blok oleh si-gateway, setting firewall digateway salah, koneksi gateway ke ISP putus, dll. Buat tahu putusnya dimana, coba
root:# traceroute 123.123.123.123
Tapi biar sudah tahu, biasanya anda tidak bisa berbuat apa-apa, selain menunggu koneksi pulih kembali.

Segitu dulu. Kesempatan depan kita bahas trouble shooting DNS.

DHCP Server Pakai DNSMasq

DHCP server adalah layanan yang memberikan alamat IP otomatis kepada komputer-komputer client pada suatu LAN. Layanan DHCP ini kini makin penting dengan makin maraknya jaringan wireless. Untungnya, hal ini mudah disetup pakai dnsmasq.

Bayangkan kita punya sebuah LAN dengan banyak komputer. Setiap komputer tentunya perlu alamat IP yang unik. Dengan cara manual, kita harus berikan alamat IP ini secara statik ke masing-masing komputer. kalau komputernya ada 100 atau lebih, pegel juga kan ;-)

Nah di sinilah perlunya DHCP (Dynamic Host Control Protocol). Secara umum, konfigurasi DHCP adalah sebagai berikut:

                   
[dhcp server]--------{LAN}--------[client (banyak sekali)]

Cara kerja sistem ini adalah:
  1. pada suatu LAN, cukup ada SATU DHCP server. DHCP server ini diset untuk membagikan alamat IP dengan rentang tertentu, misal 192.168.0.100 - 192.168.0.199.
  2. Ada banyak komputer client. Setiap komputer diset agar TCP/IP nya memakai mode AUTO.
  3. Saat komputer client dihidupkan, dia akan menyebarkan permintaan alamat IP.
  4. Si DHCP server akan menangkap permintaan ini, lalu memberikan nomor IP unik dalam rentang yang telah ditentukan. Bersamaan dengan itu, juga dapat diberikan informasi lain seperti netmask, alamat dns server, maupun gateway.
  5. Si client bisa men-set TCP/IP-nya sesuai informasi yang diberikan dan mulai bekerja.
  6. Alamat IP ini hanya pinjaman. Setelah selang waktu yang ditentukan, DHCP server akan menagihnya kembali agar dapat dipinjamkan ke client lain. Jadi si client harus memperbaharui pinjamannya (leasing) secara berkala.
Sementara itu ada hal tak kalah penting yang harus dilakukan. Saat DHCP server meminjamkan nomor IP, nama domain yang bersangkutan harus disinkronkan agar akses ke nama domain tak salah alamat. Jelas bahwa hal ini erat kaitannya dengan DNS server. Karena DNSMASQ adalah sekaligus dns server, hal ini akan otomatis terjadi. Tidak demikian halnya jika kita memakai paket terpisah, misalnya bind + dhcpd.

DHCP SERVER SEDERHANA

Kini mari kita coba setup dnsmasq untuk konfigurasi sebagai berikut

[client]---{LAN}---[gateway (dnsmasq)]---{INTERNET}----[provider (dns server)]

Dalam hal ini, dnsmasq bertindak sebagai dhcp server sekaligus dns server. Misalkan saja LAN ini memiliki data sebagai berikut:
  • Nomor IP : 192.168.0.1 - 192.168.0.254
  • Netmask : 255.255.255.0
  • Gateway : 192.168.0.254
  • DNS server : 192.168.0.254
Kemudian alamat IP yang tersedia kita alokasikan sebagai berikut:
  • Untuk client dengan IP statik : 192.168.0.1 - 192.168.0.127
  • Untuk client dengan IP dinamik : 192.168.0.128 - 192.168.0.191
  • Untuk server eksternal : 192.168.0.192 - 192.168.0.223
  • Untuk server internal : 192.168.0.224 - 192.168.0.254
Oh ya, sekedar tips. Pembagian tersebut diatur demikian rupa menurut rentang kepangkatan angka binari (128 + 64 + 64) sehingga nantinya enak kalau kita pasang firewall.

Nah, kini kita bisa mulai mengkonfigurasi dnsmasq:

  1. Konfigurasi dnsmasq sebagai dnsserver (lihat artikel sebelumnya).
  2. Untuk mengaktifkannya sebagai dhcp server, astaga, ternyata mudah sekali. Cukup edit /etc/dnsmasq.conf pada bagian-bagian berikut:
    # Set the domain for dnsmasq. this is optional, but if it is set, it
    # does the following things.
    # 1) Allows DHCP hosts to have fully qualified domain names, as long
    # as the domain part matches this setting.
    # 2) Sets the "domain" DHCP option thereby potentially setting the
    # domain of all systems configured by DHCP
    # 3) Provides the domain part for "expand-hosts"
    domain=kampus.lan

    # Uncomment this to enable the integrated DHCP server, you need
    # to supply the range of addresses available for lease and optionally
    # a lease time. If you have more than one network, you will need to
    # repeat this for each network on which you want to supply DHCP
    # service.
    dhcp-range=192.168.0.128,192.168.0.191,12h

    # Send options to hosts which ask for a DHCP lease.
    # See RFC 2132 for details of available options.
    # Note that all the common settings, such as netmask and
    # broadcast address, DNS server and default route, are given
    # sane defaults by dnsmasq. You very likely will not need any
    # any dhcp-options. If you use Windows clients and Samba, there
    # are some options which are recommended, they are detailed at the
    # end of this section.
    # For reference, the common options are:
    # subnet mask - 1
    # default router - 3
    # DNS server - 6
    # broadcast address - 28
    dhcp-option=1,255.255.255.0
    dhcp-option=3,192.168.0.254
    dhcp-option=6,192.168.0.254
    dhcp-option=28,192.168.0.255

    # The DHCP server needs somewhere on disk to keep its lease database.
    # This defaults to a sane location, but if you want to change it, use
    # the line below.
    dhcp-leasefile=/var/run/dnsmasq/dnsmasq.leases

  3. Jangan lupa menyediakan tempat untuk lease file
    # mkdir -p /var/run/dnsmasq
    # touch /var/run/dnsmasq/dnsmasq.leases
Silahkan start atau restart dnsmasq. Kini tinggal set client (Linux maupun Windows) agar memakai IP dinamik (auto). Jika semuanya berjalan benar, maka saat diaktifkan client akan mendapat salah satu alamat IP antara 192.168.0.128 s/d 192.168.0.191, demikian pula setting netmask, gateway dan dns server yang sesuai.

DHCP SERVER LEBIH JAUH

Ada beberapa setting di dnsmasq.conf untuk fitur-fitur lebih kompleks, misalkan saja:

  • Atur agar client dengan nama domain tertentu selalu mendapat IP khusus
    # Give the machine which says it's name is "dosen01" IP address
    # 192.168.0.130 and an infinite lease
    dhcp-host=dosen01,192.168.0.130,infinite
    Agar hal ini bisa bekerja, pastikan tiap client memiliki nama yang benar. Di Linux, set /etc/HOSTNAME. Sementara itu di Windows, isikan nama domain pada setting TCP/IP.
  • Atur agar client tertentu mendapat IP yang sesuai dengan nama domain di /etc/hosts
    # Enable the address given for "lab01" in /etc/hosts
    # to be given to a machine presenting the name "lab01" when
    # it asks for a DHCP lease.
    dhcp-host=lab01
    Hal ini memungkinkan sinkronisasi otomatis dengan dns server.
  • Atur agar client dengan MAC address tertentu selalu mendapat IP khusus
    # Always allocate the host with ethernet address 11:22:33:44:55:66
    # The IP address 192.168.0.129
    dhcp-host=11:22:33:44:55:66,192.168.0.129
    Untuk yang satu ini, anda perlu mendata semua MAC address client. Untuk mengetahui MAC address sebuah Linux client, panggil saja ifconfig. Sementara di Windows client gunakan ipconfig.
  • Blok komputer yang anda tahu suka nakal
    # Never offer DHCP service to a machine whose ethernet
    # address is 11:22:33:44:55:66
    dhcp-host=11:22:33:44:55:66,ignore
Sekian dulu soal dnsmasq. Silahkan coba, ditanggung beres dalam 30 menit tanpa pusing teori DNS+DHCP yang biasanya harus dibaca dulu kalau mau setting BIND atau DHCPD :)

Pembuatan test case pada test driven development

Test driven development adalah metodologi terbaru dalam pengembangan perangkat lunak. Berbeda dengan metodologi lain yang berbasiskan develop then test, metodologi ini mewajibkan pembuatan kasus-kasus pengujian terlebih dahulu sebelum membuat applikasi.

Langkah umumnya adalah :
1. buat class baru
2. buat class pengujinya
3. buat skeleton class baru
4. buat skeleton class penguji
5. kompilasi
6. jalankan di di nunit
7. jika ada kesalahan perbaiki kode class baru dan class penguji dan lakukan langkah 5 dan 6 lagi

Alasan-alasan yang menyebakan metodologi ini dikembangkan adalah :
• pengujian belakangan sering tidak lengkap
• sulit menguji ketika applikasi sudah komplek
• sulit menguji ketika sudah ada user interface (data entri lambat dan tidak reuse)
• manajemen test case sulit dilakukan kecuali pada tataran dimana perusahaan software sudah besar
• metodologi lain menghasilkan code yang kurang self explainatory (menjelaskan dirinya)

Kesulitan utama dalam pembuatan dalam metodologi ini adalah penciptaan kelengkapan kasus pengujian. Ada beberapa teknik yang akan penulis bagikan sebagai hasil uji coba penulis sejauh ini antara lain refactoring, boundary testing dan cylomatic testing. Semua jenis testing ini adalah white box testing. Inti ketiga testing di atas adalah membandingkan hasil yang diperolah dari method yang kita buat dan hasil kalkulasi yang dilakukan manual. Semuanya akan penulis jelaskan di bagian bawah artikel ini nanti.

Pembangkitan kasus uji pada prinsipnya mengacu pada operasi-operasi yang ada dalam sebuah method yang akan diuji. Secara garis besar operasi elementer dalam sebuah method meliputi :
• kalkulasi
• perulangan
• analisa kasus

Jadi sebagai bagian dari kelengkapan artikel akan dibuat beberapa contoh yang berdasarkan 3 operasi elementer di atas. Sebagai contoh akan dibuat beberapa method.

Refactoring adalah teknik memodifikasi source code. Teknik ini sebenarnya mungkin agak salah kaprah untuk dipakai sebagai bagian dari metodologi ini, karena tujuan refactoring adalah memperbaiki struktur internal source code agar mudah dipahami dan dibaca. Namun penulis merasa teknik ini adalah teknik pengujian parsial yang sangat membantu. Sebagai contoh lihatlah evolusi method penguji bentuk air pada suhu tertentu di bawah ini
Versi 1
Function bentukair(pIntSuhu as integer) as string
Return “padat”
End function

Maka test casenya
• Bentukair(10) akan bernilai benar jika menghasilkan string padat

Versi 2
Function bentukair(pIntSuhu as integer) as string
If pIntSuhu<=0 then
Return “padat”
Else if pIntSuhu>=1 and pIntSuhu<=100 then
Return “Cair”
End if
End function

Maka test casenya
• bentukair(0)) akan bernilai benar jika menghasilkan string “padat”
• bentukair(10)) akan bernilai benar jika menghasilkan string “cair”

Versi 3
Function bentukair(pIntSuhu as integer) as string
If pIntSuhu<=0 then
Return “padat”
Else if pIntSuhu>=1 and pIntSuhu<=100 then
Return “cair”
Else
Return “gas”
End if
End function

Maka test casenya
• bentukair(0)) akan bernilai benar jika menghasilkan string “padat”
• bentukair(10)) akan bernilai benar jika menghasilkan string “cair”
• bentukair(101)) akan bernilai benar jika menghasilkan string “padat”



Boundary testing adalah teknik membangkitkan nilai-nilai test dengan cara menguji nilai-nilai batas yang ada di dalam analisa kasus yang digunakan. Sebagai contoh lihat method penguji bentuk air pada suhu tertentu di bawah ini

Function bentukair(pIntSuhu as integer) as string

If pIntSuhu<=0 then
Return “padat”
Else if pIntSuhu>=1 and pIntSuhu<=100 then
Return “cair”
Else
Return “gas”
End if

End function

Contoh ini akan menghasilkan beberapa kasus uji yaitu :
• bentukair(-1) akan bernilai benar jika menghasilkan string “padat”
• bentukair(0) akan bernilai benar jika menghasilkan string “padat”
• bentukair(1) akan bernilai benar jika menghasilkan string “cair”
• bentukair(2) akan bernilai benar jika menghasilkan string “cair”
• bentukair(99) akan bernilai benar jika menghasilkan string “cair”
• bentukair(100) akan bernilai benar jika menghasilkan string “cair”
• bentukair(101) akan bernilai benar jika menghasilkan string “gas”
Test case di atas diperoleh dari pengurangan dan penambahan angka 1 terhadap nilai nilai yang dijadikan analisa kasus.
If pIntSuhu<=0 menghasilkan -1, 0 dan 1
If pIntSuhu >=1 and pIntSuhu<=100 menghasilkan 1,2,99,100, 101.
Jika angka 1 tidak memadai gunakan 0.1,0.01,0.001 dan seterusnya bergantung pada tipe data (integer atau real)


Cyclomatic testing adalah sebuah testing untuk menguji semua jalur eksekusi yang ada di sebuah program dengan jalan membangkitkan semua test case yang mungkin. Kembali ke contoh penentu suhu air di atas. Kita dapat menambahkan variable lain untuk memperumit kondisi diatas katakanlah x yang berupa integer berisi nilai 1,2,3,4,5,6

Function bentukair(pIntSuhu as integer, x as integer) as string

If pIntSuhu<=0 then
If x= 1 then
Return “padat1”
Else if x=2 then
Return “padat2”
Else
Return “invalid”
End if
Else if pIntSuhu>=1 and pIntSuhu<=100 then
If x=3 then
Return “cair3”
Else x= 4 then
Return “cair4”
Else
Return “invalid”
End if
Else
If x=5 then
Return “gas5”
Else if x= 6 then
Return “gas6”
Else
Return “invalid”
End if

End function

Karena fungsi di atas merupakan pengembangan dari fungsi bentukair sebelumya maka kita dapat menggunakan testcase dari bentuk air sebelumnya menjadi bagian dari test case fungsi sekarang. Berikut ini adalah daftarnya
• bentukair(-1,0) akan bernilai benar jika menghasilkan string “invalid”
• bentukair(-1,1) akan bernilai benar jika menghasilkan string “padat1”
• bentukair(-1,2) akan bernilai benar jika menghasilkan string “padat2”
• bentukair(-1,3) akan bernilai benar jika menghasilkan string “invalid”
• bentukair(0,0) akan bernilai benar jika menghasilkan string “invalid”
• bentukair(0,1) akan bernilai benar jika menghasilkan string “padat1”
• bentukair(0,2) akan bernilai benar jika menghasilkan string “padat2”
• bentukair(0,3) akan bernilai benar jika menghasilkan string “invalid”
• bentukair(1,2) akan bernilai benar jika menghasilkan string “invalid”
• bentukair(1,3) akan bernilai benar jika menghasilkan string “cair3”
• bentukair(1,4) akan bernilai benar jika menghasilkan string “cair4”
• bentukair(1,5) akan bernilai benar jika menghasilkan string “invalid”
• bentukair(2,2) akan bernilai benar jika menghasilkan string “invalid”
• bentukair(2,3) akan bernilai benar jika menghasilkan string “cair3”
• bentukair(2,4) akan bernilai benar jika menghasilkan string “cair4”
• bentukair(2,5) akan bernilai benar jika menghasilkan string “invalid”
• bentukair(99,2) akan bernilai benar jika menghasilkan string “invalid”
• bentukair(99,3) akan bernilai benar jika menghasilkan string “cair3”
• bentukair(99,4) akan bernilai benar jika menghasilkan string “cair4”
• bentukair(99,5) akan bernilai benar jika menghasilkan string “invalid”
• bentukair(100,2) akan bernilai benar jika menghasilkan string “invalid”
• bentukair(100,3) akan bernilai benar jika menghasilkan string “cair3”
• bentukair(100,4) akan bernilai benar jika menghasilkan string “cair4”
• bentukair(100,5) akan bernilai benar jika menghasilkan string “invalid”
• bentukair(101,4) akan bernilai benar jika menghasilkan string “invalid”
• bentukair(101,5) akan bernilai benar jika menghasilkan string “gas5”
• bentukair(101,6) akan bernilai benar jika menghasilkan string “gas6”
• bentukair(101,7) akan bernilai benar jika menghasilkan string “invalid”

Untuk operasi elementer kalkulasi sebenarnya cukup sulit dilakukan karena begitu banyaknya data uji yang dapat dibuat. Sebagai contoh lihat fungsi tambah1 dibawah ini

Function tambah1(pint as integer) as integer
Return pint+1
End function

Kelihatannya mudah. Tetapi untuk menjamin sistem ini benar maka data ujinya bisa dari – tak hingga sampai + tak hingga. Sangat banyak. Jadi kita hanya bisa berharap saja.

Untuk operasi elementer perulangan maka dapat digunakan metode yang sama analisa kasus. Sebagai contoh akan dibuat sebuah fungsi yang menentukan apakah sebuah elemen bernilai x ada di dalam sebuah array. Array dinamakan mObjData dan tipe elemennya adalah integer

Function IsExist(x as integer) as boolean
Dim dBolKetemu as boolean =false
Dim I as integer
For i= 0 to mObjData.length-1 do
If x=mObjData[i] then
dBolKetemu=true
exit for
end if
End for
Return dBolKetemu
End function

Maka untuk menguji fungsi diatas adalah
• mObjData kosong tidak memiliki elemen apapun. Akan bernilai benar jika menghasilkan false
• mObjData berisi beberapa buah elemen dan x tidak ada di dalamnya. Akan bernilai benar jika menghasilkan false
• mObjData berisi beberapa buah elemen dan x ada di elemen pertama. Akan bernilai benar jika menghasilkan true
• mObjData berisi beberapa buah elemen dan x ada di elemen terakhir. Akan bernilai benar jika menghasilkan true

jadi pada perulangan yang harus di test adalah jika :
• loop tidak dimasuki sama sekali
• loop dimasuki 1 kali
• loop dimasuki sebanyak n kali

Semoga bermanfaat.

Membuat Linux Boot dalam 5 Detik

Dengan instalasi default, Fedora membutuhkan sekitar 45 detik untuk mulai dari nol hingga menampilkan halaman login GDM, waktu boot Ubuntu juga hanya dua detik lebih cepat. Di konferensi Linux Plumbers, Arjan van de Ven (pencipta PowerTOP) dan Auke Kok dari Intel mendemonstrasikan dua distro Linux yang telah dioptimisasi hanya membutuhkan waktu 5 detik untuk boot. Demonstrasi ini diperlihatkan dengan sistem operasi Fedora dan Moblin yang telah dioptimisasi menggunakan Eee PC dengan SSD. Sebagian cara optimisasi yang diperlihatkan dua Arjan dan Auke sudah dipakai oleh beberapa distro dan akan dikemas ke dalam kernel Linux dalam waktu dekat ini.

Dalam beberapa bulan belakangan ini kita telah melihat bagaimana para pengembang menyadari tentang pentingnya desain yang baik dalam mempercepat kinerja perangkat lunak, mulai dari pengembangan situs, browser, sistem operasi dan kini kecepatan boot yang menjadi sorotan utama di konferensi pengembang Linux yang berlangsung bulan lalu.

Definisi Selesai Boot

Bagaimana mereka menghasilkan terobosan baru ini? Pertama, Arjan mengatakan definisi "selesai boot adalah saat CPU dan hard disk (HD) tidak bekerja lagi," dan ini berarti tidak menampilkan desktop saat masih memulai berbagai aplikasi di balik layar (seperti yang dilakukan Microsoft, itulah sebabnya mengapa saat pertama kali login Anda harus menunggu selama beberapa saat sebelum dapat mulai menggunakan PC).

Waktu "selesai boot" tidak termasuk mendapatkan koneksi jaringan (DHCP), akan tetapi sudah mengikutkan waktu yang dibutuhkan untuk memulai NetworkManager. Sebuah sistem dengan HD akan membutuhkan waktuyang lebih lama untuk boot, tetapi Arjan mengatakan ia telah mencoba menggunakan konfigurasi yang sama di ThinkPad dan mendapatkan waktu boot 10 detik, tetap merupakan kemajuan yang sangat besar.

Konfigurasi Kurang Optimal

Menggunakan aplikasi Bootchart, kita dapat melihat jalannya proses boot Linux (Fedora) seperti yang diperlihatkan grafik di bawah ini:

Bootchart Fedora
Fedora banyak melakukan hal-hal yang tidak berguna:
  • Menghabiskan satu detik penuh untuk memeriksa loopback
  • Menghabiskan dua detik untuk memulai sendmail — "semua orang terpaksa memulai program ini hanya karena ada seseorang di luar sana yang membutuhkan sebuah mail server," ujar Arjan
  • Menghabiskan lima detik untuk memulai "settroubleshootd," aplikasi troubleshooting untuk konfigurasi SELinux
  • X Window System memulai C preprocessor dan compiler saat boot
Begitu juga dengan Ubuntu:
  • Menghabiskan 12 detik untuk "modprobe" yang akhirnya mengaktifkan semua modul yang ada
  • Menghabiskan 2,5 detik untuk memulai aplikasi yang mengaktifkan driver restricted yang tidak dibutuhkan di konfigurasi bawaan Ubuntu
  • Menghabiskan 2,5 detik untuk menampilkan gambar background di GDM
Kedua distribusi di atas menggunakan splash screen, dan Arjan maupun Auke setuju bahwa mereka "ingin bahwa proses boot selesai sebelum splash screen ditampilkan. Waktu yang dihabiskan banyak distro untuk membuat splash screen bahkan jauh lebih banyak dibandingkan waktu yang dibutuhkan Arjan untuk membuat proses boot yang cepat.

Optimisasi Kernel

Langkah pertama untuk mencapai target boot dalam 5 detik adalah mengalokasikan jatah waktu boot:
  1. Kernel diberikan jatah 1 detik untuk mengaktifkan semua modul yang dibutuhkan
  2. Early boot diberikan jatah 1 detik, sudah termasuk skrip init dan background task
  3. X diberikan jatah 1 detik
  4. Desktop environment diberikan jatah 2 detik


Jatah boot
Kernel harus dibangun tanpa "initrd" yang menghabiskan setengah detik walaupun tidak diisi apapun. Semua modul yang dibutuhkan saat boot harus dikemas ke dalam kernel. Cukup logis mengingat "95% laptop yang ada dapat ditangani hanya dengan beberapa modul," kata Arjan.

Beberapa modifikasi kernel memungkinkan inisialisasi beberapa komponen secara bersamaan. Contohnya kernel yang telah dimodifikasi Arjan mengaktifkan Advanced Host Controller Interface (AHCI untuk media penyimpanan) bersamaan dengan Universal Host Controller Interface (UHCI untuk USB). Arjan mengatakan bahwa mereka "kemungkinan besar dapat menyelesaikan boot kernel hanya dalam setengah detik tetapi kita berhenti mengoptimisasi-nya setelah berhasil mencapai target satu detik," tetapi waktu ini seharusnya berkurang menjadi setengah detik di versi 2.6.28 karena AHCI yang sudah diperbaharui.

Kernel selesai boot dalam 1 detik


Satu lagi perubahan di kernel adalah sebuah patch untuk mendukung "readahead."

Readahead dan Init

Fedora menggunakan "Upstart" menggantikan "init" yang biasanya merupakan program userspace pertama yang diaktifkan. Akan tetapi kedua pengembang ini kembali menggunakan "init" untuk memulai tiga kelompok aplikasi secara bersamaan:
  1. Proses "sReadahead" untuk membaca untuk menyimpan isi HD ke dalam memori
  2. Memeriksa filesystem, D-Bus, X kemudian desktop
  3. Hardware Abstraction Layer (HAL), "udev" dan komponen jaringan
Konfigurasi ini memaksimalkan penggunaan CPU. Sebagai contoh, saat dimulai X selalu menunda aktivasi selama setengah detik untuk mencari mode video yang tepat, dan waktu luang ini digunakan HAL untuk melakukan tugas-tugas yang CPU intensif. Utilisasi HD dan CPU selalu maksimal saat boot karena bantuan "sReadahead" yang menyimpan semua konten dari HD ke cache. sReadahead berbasiskan Fedora Readahead, akan tetapi untungnya patch untuk kernel Linux akan dibuat dalam waktu dekat ini sehingga hasil karya Arjan dan Auke akan dapta dinikmati oleh semua pengguna Linux.

Grafik akhir boot dalam 5 detik


Kesimpulannya, Arjan mengatakan bahwa pernyataan "membuat proses boot lebih cepat" adalah target yang salah. Target yang benar adalah "membuat boot cepat" dan jangan membuat semua pengguna menunggu hanya karena segelintir pengguna menggunakan filesystem atau aplikasi tertentu seperti "sendmail" di laptop mereka. Hanya beberapa hari setelah itu, Kyle McMartin mengumumkan bahwa baik Fedora maupun Ubuntu telah memperbaiki beberapa hal di proses boot mereka.

AMD vs Intel

Tidak bisa dipungkiri, persaingan pasar prosesor akhir-akhir kian memanas dengan dua kubu sebagai pemain utama persaingan, yaitu Intel yang telah lama mendominasi pasar dan AMD yang baru-baru ini banyak meluncurkan produk yang unjuk kerjanya cukup mengancam dominasi Intel.

---

Tanpa memihak pada Intel maupun AMD, dan membiarkan Anda mengerti sebagai konsumen, persaingan keras kedua perusahaan ini untuk mendominasi pasar dari musim ke musim berikutnya tidak selalu membuat produk dari perusahaan yang satu menjadi lebih baik dari produk perusahaan yang lain, begitu pula sebaliknya.

Sebenarnya akan lebih baik jika mempunyai pilihan ketiga, namun sayangnya semua teknologi terbaik dari Transmeta masih diperdebatkan keabsahan HAKI-nya. Masih saja tentang proses penghematan energi yang dianggap lebih penting pada setiap perbandingan unjuk kerja dari hari ke hari.

Seperti yang kita ketahui sekarang, Intel mendominasi pasar prosesor, baik dari segi harga, unjuk kerja, dan tentu saja dari segi kepastian mutu. Tentu saja pendapat ini timbul tanpa memperhitungkan AMD didalamnya.

Selama ini AMD telah lambat dalam menangani 'kekakuan' dalam pengembangan teknologinya, melesetnya tanggal peluncuran mungkin telah mengakibatkan AMD mati langkah dalam menghadapi pesaingnya, dan apapun hasilnya itu telah membuat AMD berhutang $5 Milyar kepada ATI di permulaan tahun ini.

Chipset AMD 690G adalah salah satu contoh sukses yang terkenal, dan jika Intel telah mengajarkan kita segalanya, semua itu menyamaratakan jalan dominasi chipset di pasar PC. AMD tidak tertidur dalam perputaran roda teknologi prosesor. Mungkin banyak terlambat, tetapi tidak mati. Saat ini AMD telah menyiapkan sebuah prosesor tangguh yang dijuluki ‘K10’, dan sebuah prosesor perbaikan dari 'Barcelona'. Tidak banyak yang tahu tentang unjuk kerja prosesor desktop AMD yang akan datang (K10 Phenom X2 dan X4) saat ini, namun kita harus mencari tahu dengan cepat apakah ‘Agena’ dan ’Kuma’ ini akan dapat membuat Intel merugi.

Ketika banyak produk AMD yang sukses belakangan ini, maka akan banyak rekannya yang mengikuti jejaknya, sedangkan Intel menjamin bahwa kesuksesan prosesor Core 2 Duo akan menjadi rancangan sempurna bagi sebuah chipset masa depan. Seperti yang mereka katakan, “Inilah yang namanya chipset”.

Prosesor Intel Core 2 Duo adalah prosesor yang sangat efesien, nilai dengan TDP (Thermal Design Power) hanya kurang lebih setengah dari yang digunakan seri Pentium 4/D, dan dalam test pemakaian nyata menunjukkan bahwa sistem komputer yang mempergunakan Intel Core 2 Duo memang menghemat banyak tenaga.

Itu semua memang baik, hal ini sangat mengangkat Intel bukan karena selisih beberapa point kecepatannya, namun karena Core 2 Duo memang lebih cepat dan harganya yang sangat kompetitif. Mungkin nilai dari sebuah prosesor masih seringkali tidak kita perhatikan selama ini. Yang perlu diingat adalah walaupun Extreme Edition dari Intel masih dihargai sangat tinggi, namun masih dipandang sangat pantas untuk inovasi CPU desktop. Bandingkan dengan prosesor AMD yang dengan harga yang relatif sama, Intel tetap masih berada di atasnya.

< style="margin-bottom: 0in" align="justify">Jadi sebagaimana telah dibahas di atas, sebenarnya kapankan waktu yang tepat untuk AMD ataupun Intel? Intel masih memenangkan babak ini. Intinya bahwa manuver Intel masih melebihi AMD, juga seluruh generasi prosesor ganda yang ada. Unjuk kerja Core 2 Duo memang sangat memuaskan, itulah sebabnya banyak yang merekomendasikannya.

Namun sebelum menutup pembicaraan ini, ada satu hal lagi yang harus diingat. Sepanjang perbandingan kita berdasarkan pada kesetiaan pada merk dan uji unjuk kerja saja, maka tidak akan ada banyak pilihan dari teknologi yang terbaru dan terbaik. Yang terpenting saat ini adalah jika komputer yang Anda pakai sekarang telah mampu memenuhi semua kebutuhan komputasi Anda, maka Anda tidak perlu lagi repot memilih antara Intel dan AMD.('dna)

Tip dan Trik Menghindari Virus Menyerang HandPhone Anda

Anda pengguna smartphone atau hp yang canggih dengan fitur lengkap, semisal handphone dengan fasilitas Os Java atau Symbian atau Windows mobile? Anda pernah mengalami handphone anda terkena virus yang menyebabkan hp anda error atau nge-hang atau data-data penting anda hilang! Berikut ini ada beberapa tips yang dapat anda terapkan untuk menghindari agar handphone anda terhindar dari serangan virus.

1. Pastikan Bluetooth dalam Kondisi Hidden Mode

Jika ponsel Anda dilengkapi Bluetooth, pastikan fitur ini berada dalam kondisi hidden mode atau invisible untuk mencegah perangkat Bluetooth orang lain mendeteksi perangkat Anda kecuali memang Anda menghendakinya. Selain itu, matikan Bluetooth jika tidak terpakai. Langkah ini akan cukup melindungi ponsel dari serangan virus yang menyebar melalui Bluetooth.

2. Hati-hati Saat Menerima Kiriman Asing

Ketika menerima aplikasi yang dikirim via Bluetooth atau membuka attachment MMS, berhati-hatilah dari kemungkinan adanya program jahat. Pastikan kiriman itu berasal dari sumber terpercaya. Bahkan jikalaupun kiriman itu berasal dari teman, lebih baik Anda tak membukanya dan menghapusnya jika terdapat konten yang tidak familiar.

3. Download dari Sumber Terpercaya

Pastikan juga selalu men-download konten dari sumber resmi yang terpercaya sehingga ancaman virus bisa tereliminir. Namun hati-hatilah karena bisa jadi kaum kriminal mampu mengkreasi sumber download yang kelihatan terpercaya meskipun sejatinya adalah gudang virus.

4. Pakai Anti Virus

Beberapa software khusus telah ditawarkan untuk menjaga ponsel Anda dari ancaman virus. Pakailah jika Anda merasa memerlukannya.

5. Hubungi Produsen Ponsel Anda

Jika Anda menduga ponsel Anda telah terinfeksi virus, segera kontak produsen ponsel Anda untuk mengambil langkah yang tepat dalam menghindari kerusakan.

" CiNtaKu tLah uSai "

Ku berjalan diantara semaknya dunia
Skilas ku lihat drimu diujung sana
Ku hampiri dan ku sapa
Namun kau tak sendiri,kau bersmanya

Hancur hatiku saat itu
Ternyata sia2 penantianku
Kni kau tak akan ku miliki
Skalipun ku letih menanti

Dngan hati menangis
Ku tu2p crita cinta ini
Jika kau memintaku kembali
Anggaplah ku tlah mati..!!!

iSI HATI INI

malam mendung tanpa bintang
bagaikan hati tanpa kasih
setetes embun yg jatuh meresap ke tanah
bagai cinta yg terungkap namun tanpa ada balas

walau telah berulang kali rasa cinta ini ku ungkapkan padamu
namun mungkin kau hanya menganggapnya sebagai candaan yg lalu kau lupakan

andaikan mimpi yg semalam ku alami itu sama dengan mimpi yg kau alami
akan kah kau mengerti apa yg kurasakan ini

sejak pertama ku malihatmu
mengapa wajahmu begitu cepat ku ingat dan mengapa wajahmu slalu ada dalam khayalku

keinginan hati ini untuk memilikimu adalah mimpi yg harus ku ubah menjadi kenyataan

akankah aku berhasil...??
semoga tuhan berkehendak dan membuat mimpiku menjadi kenyataan

dengan beberapa ini ku ungkapkan smua isi hatiku padamu
dan dengan beberapa kalimat ini semoga kau dapat mengerti apa yang ada dalam hatiku ini.