Rabu, 20 Mei 2009

Jaringan ISP

Menarik melihat perkembangan ISP di Indonesia. Setelah dilanda "krismon" yang banyak mendera sektor HighTech- yang notabene semuanya Import, ISP lokal satu-persatu mulai menghitung-hitung kembali pada titik/biaya dan skala bisnis berapa dia reasonable untuk beroperasi. Komponen cost yang cukup besar bagi ISP tentunya biaya infrastruktur, biaya telekomunikasi (backbone), dan biaya Internet Access ke Global ISP. Biaya ini berkisar puluhan atau ratusan juta rupiah yang tentu saja harus dikeluarkan setiap bulannya. Banyak jurus-jurus yang dikerluarkan, salah satunya mungkin menganti "Upstream" provider, atau berkoalisi dalam konsorsium.

Banyak beredar "isyu" bahwa beberapa ISP- yang belum tentu benar, secara diam-diam menurunkan kapasitas backbonenya ke Global ISP, saat harga dollar terhadap rupiah gonjang-ganjing. Tentu saja disini pelanggan (baik corporate ataupun retail) tidak punya kemampuan untuk tahu permasalahan tersebut. Hal ini memang disebabkan oleh dua hal: (1) Memang tidak ada tools secara langsung untuk mengetahui itu, dan (2) ISP juga tidak akan mau memberitahu hal tersebut kepada pelanggannya. Yang jelas jika ISP menurunkan kapasitas backbonenya, dan itu menyebabkan dia overload (utilisasi backbone lebih dari 90% pada peak time), maka bagi pelanggan (yaitu Anda sendiri) efek yang dirasakan adalah lambatnya akses internet. Memang hal ini tidak bisa digeneralisir, karena Internet merupakan suatu mata rantai antara ratusan atau ribuan Router. Jadi jika akses internet Anda lambat bisa juga karena link Anda ke ISP sudah overload, ISP Anda ke Global ISP overload, atau situs yang dituju memang overload.

KONEKSI ANDA KE ISP

Anda sebagai pelanggan terkoneksi ke ISP Anda, menggunakan dial/up atau leased line katakan 64 kbps. ISP Anda sendiri terkoneksi juga ke Global ISP di USA dengan bandwidth 2 Mbps (receive) dan –mungkin- 1 Mbps (transmit).

ISP Anda terkoneksi ke Internet (Global ISP) menggunakan link dengan bandwidth 2 Mbps. Secara umum- sekali lagi secara umum: Akses yang anda rasakan secara normal (cepat) jika: (1) bandwidth Anda ke ISP belum overload, atau (2) bandwidth ISP Anda ke Internet belum overload

Untuk mengetahui apakah terjadi (1) bandwidth Anda ke ISP sudah overload atau belum, banyak caranya. Cara yang presisi adalah menggunakan softaware Bandwidth Monitoring, yang berbicara pakai protokol SNMP dengan Router Anda. Atau bisa juga menggunakan hardware, seperti Sniffer Protocol Analyzer. Software Bandwidth Monitoring ada yang freeware, salah satunya MRTG (Multi Router Trafic Grapher), dan hardware tentu saja tidak ada yang Free, kecuali Anda membuatnya sendiri :).

Cara lain adalah dengan tebak-tebakan. Berdasarkan sebuah penelitian (empiris) diketahui per user butuh bandwidth 4 kbps (untuk browsing, tidak untuk ftp). Jadi hitung saja di kantor Anda ada berapa orang yang online pada saat bersamaan. Jika ada 10 orang yang browsing, maka Anda butuh bandwidth 40 kbps. Bila Anda terkoneksi ke ISP dengan menyewa leased line 64 kbps, maka dapat dipastikan bandwindth Anda masih cukup. Sungguhpun demikian beberapa ISP sekarang ada yang mendiferensiasi produknya berdasarkan rasio. Dan ini kasusnya agak lain, dan akan dibahas pada kesempatan lain.

KONEKSI ISP ANDA KE INTERNET

ISP Anda terkoneksi ke Internet atau ke Global ISP. Jadi ISP Anda terkoneksi ke ISP juga. Lalu Internet itu mana? Ini yang sering rancu. Internet itu semua yang berpartisipasi dalam NET, jadi semua kumpulan ISP-ISP, dan Anda sendiri jika terkoneksi ke ISP maka, Anda sendiri sebenarnya Internet juga. Lalu ujung pangkal internet itu dimana? Jawabnya: tidak ada. Tetapi sungguhpun demikian Internet masih didominasi oleh perusahaan besar di USA, yang mempunya Backbone Regional dan Nasional. Dan kesinilah memang banyak traffik Internet transit alias lalu-lalang.

Sekarang bagaimana anda tahu jawaban no (2), bandwidth ISP Anda sudah overload atau belum? Anda tidak bakalan bisa tahu. Hanya ISP Anda yang tahu. Kenapa? "Perang" bandwidth merupakan tools juga yang digunakan oleh sesama ISP untuk menggaet calon pelanggannya. Ada ISP yang bilang "bandwidth kami sekarang sudah X Mbps redundant, dan bulan depan akan meningkat jadi Y Mbps" dst … dst…
Disamping "perang" besar bandwidth, Anda juga tidak akan tahu berapa utilisasi dari Bandwidth, sudah 50% kah, sudah 80% kah, atau sudah 100%. Bagaimana distribusinya, jam sibuknya jam berapa, dst … dst… Kenapa begitu? Karena sekali lagi ini juga merupakan sesuatu yang dianggap, "pelanggang tidak perlu tahu", karena bisa saja jika bandwidth ISP tersebut sudah terpakai 100%, pertanyaan pertama yang akan muncul oleh pelanggan: "Kapan Anda nambah bandwidth Anda?". Buat ISP, tentu saja ini pertanyaan merepotkan karena bukan investasi yang sedikit untuk menambah Bandwidth. Jadi bagi ISP "daripada saya dibikin repot oleh pertanyaan-pertanyaan seperti itu, yah mendingan saya simpan saja informasi tersebut untuk konsumsi manajemen".

Faktor lain yang menjadi pertimbangan bagi ISP, adalah : pasar (pengguna Internet) belum ter-educate dengan baik. Persepsi pasar "Makin besar Bandwidth ISP ke Internet makin cepat aksesnya". Persepsi seperti itu **tidaklah** benar. Jika ada ISP yang pandai memanage bandwidth walaupun memiliki bandwidtth yang lebih kecil, tetapi dia dapat menjaga utilisasi bandwidthnya pada level tertentu, dan menggunakan teknik load balancing **akan jauh lebih bagus** dibandingkan ISP yang punya bandwidth besar (katakan 15 Mbps) tetapi sudah 100% utilized.

Sebagai contoh: ada ISP yang jumlah usernya masih sedikit dan pandai memanage bandwidthnya yang cuma 384 kbps (http://www.netinc.ca/ABOUT/ournetwork.html) tapi dapat memantain bandwidthnya dengan kapasitas sekitar 60% utilisasi. Sayang ISP tersebut bukan di Indonesia. Untuk skala Indonesia saya belum menemukan ISP yang "berani" menampilkan kapasitas utilisasi backbonenya, kecuali mungkin CBN (http://noc.cbn.net.id/bandwidth.html), tetapi inipun sebenarnya belum cukup karena informasi yang ditampilkan adalah aggregate bandwidth. Yang lebih baik lagi jika dapat menampilkan utilisasi link per link (ke C&W, UUNET ataupun SingTel). Walaupun terlihat bandwidthnya sudah terutilize hampir 100% pada jam sibuk, tapi setidaknya bagi saya pribadi, lebih baik ada dari pada tidak ada informasi tersebut. Pertanyaannya: kenapa CBN berani "mempertontonkan" bandwidthnya yang sudah overload tersebut? Entahlah! Mungkin dianggap toh ISP lain mungkin juga overload, dan sekalian memperlihatkan "kebesaran" bandwidth yang dimiliki.
Cukup dengan pengantar diatas. Sekarang masuk ke hal yang lebih teknis, tetapi sebelumnya akan disinggung sedikit mengenai aspek redundancy atau Backup dari ISP.

PENGANTAR XML

XML kependekan dari eXtensible Markup Language, dikembangkan mulai tahun 1996 dan mendapatkan pengakuan dari W3C pada bulan Februari 1998. Teknologi yang digunakan pada XML sebenarnya bukan teknologi baru, tapi merupakan turunan dari SGML yang telah dikembangkan pada awal 80-an dan telah banyak digunakan pada dokumentasi teknis proyek-proyek berskala besar. Ketika HTML dikembangkan pada tahun 1990, para penggagas XML mengadopsi bagian paling penting pada SGML dan dengan berpedoman pada pengembangan HTML menghasilkan markup language yang tidak kalah hebatnya dengan SGML.
Seperti halnya HTML, XML juga menggunakan elemen yang ditandai dengan tag pembuka (diawali dengan ‘<’ dan diakhiri dengan ‘>’), tag penutup(diawali dengan ‘’) dan atribut elemen(parameter yang dinyatakan dalam tag pembuka misal
). Hanya bedanya, HTML medefinisikan dari awal tag dan atribut yang dipakai didalamnya, sedangkan pada XML kita bisa menggunakan tag dan atribut sesuai kehendak kita. Untuk lebih jelasnya lihat contah dibawah:

MIS Manager
HRD Manager
Bagian rekrut
Computer Suport team
Permohonan Tenaga kerja baru
Mohon diberikan tenaga kerja baru untuk mengisi lowongan di Departemen MIS

pada contoh diatas , ,dan bukanlah tag standard yang telah di tetapkan dalam XML. Tag-tag itu kita buat sendiri sesuai keinginan kita. Sampai di sini XML tidak melakukan apapun. Yang ada hanyalah informasi yang di kemas dengan tag-tag XML. Kita harus membuat software lagi untuk untuk mengirim, menerima atau menampilkan informasi di dalamnya.

XML untuk saat ini bukan merupakan pengganti HTML. Masing-masing dikembangkan untuk tujuan yang berbeda. Kalau HTML digunakan untuk menampilkan informasi dan berfokus pada bagaimana informasi terlihat, XML mendeskripsikan susunan informasi dan berfokus pada informasi itu sendiri. XML terutama dibutuhkan untuk menyusun dan menyajikan informasi dengan format yang tidak mengandung format standard layaknya heading, paragraph, table dan lain sebagainya. Sebagai contoh apa bila kita ingin menyimpan dan menyajikan informasi notasi musik pada lagu “Indonesia raya”, kita bisa menyimpannya dengan xml seperti contoh dibawah ini.







...


...



Kemudian dengan bantuan software lain misalnya MIDI generator kita bisa mendengarkan musiknya atau kita juga bisa membuat software sendiri yang menampilkan informasi ini dalam bentuk not balok.

Sama dengan HTML, File XML berbentuk teks sehingga bila diperlukan kita bisa membacanya tanpa memerlukan bantuan software khusus. Hal ini memudahkan pengembang aplikasi yang menggunakan XML untuk mendebug programnya. XML lebih fleksible dibanding HTML dalam hal kemampuannya menyimpan informasi dan data. Pada XML kita bisa menyimpan data baik dalam atribut maupun sebagai isi elemen yang diletakkan diantara tag pembuka dan tag penutup.
Kelebihan lain yang dimiliki XML adalah bahwa informasi bisa di pertukarkan dari satu system ke system lain yang berbeda platform. Misalnya dari Windows ke Unix, atau dari PC ke Machintosh bahkan dari internet ke handphone dengan teknologi WAP.

PERKEMBANGAN HARDWARE KOMPUTER

DEFINISI KOMPUTER

Istilah komputer mempunyai arti yang luas dan berbeda bagi setiap orang. Istilah komputer (computer) diambil dari bahasa Latin computare yang berarti menghitung (to compute atau to reckon).
Menurut Blissmer (1985), komputer adalah suatu alat elektronik yang mampu melakukan beberapa tugas, yaitu menerima input, memproses input sesuai dengan instruksi yang diberikan, menyimpan perintah-perintah dan hasil pengolahannya, serta menyediakan output dalam bentuk informasi.
Sedangkan menurut Sanders (1985), komputer adalah sistem elektronik untuk memanipulasi data yang cepat dan tepat serta dirancang dan diorganisasikan supaya secara otomatis menerima dan menyimpan data input, memprosesnya, dan menghasilkan output berdasarkan instruksi-instruksi yang telah tersimpan di dalam memori. Dan masih banyak lagi ahli yang mencoba mendefinisikan secara berbeda tentang komputer. Namun, pada intinya dapat disimpulkan bahwa komputer adalah suatu peralatan elektronik yang dapat menerima input, mengolah input, memberikan informasi, menggunakan suatu program yang tersimpan di memori komputer, dapat menyimpan program dan hasil pengolahan, serta bekerja secara otomatis.
Dari definisi tersebut terdapat tiga istilah penting, yaitu input (data), pengolahan data, dan informasi (output). Pengolahan data dengan menggunakan komputer dikenal dengan nama pengolahan data
elektronik (PDE) atau elecronic data processing (EDP). Data adalah kumpulan kejadian yang diangkat dari suatu kenyataan (fakta), dapat berupa angka-angka, huruf, simbol-simbol khusus, atau gabungan dari ketiganya. Data masih belum dapat bercerita banyak sehingga perlu diolah lebih lanjut.
Pengolahan data merupakan suatu proses manipulasi dari data ke dalam bentuk yang lebih berguna dan lebih berati, yaitu berupa suatu informasi. Dengan demikian, informasi adalah hasil dari suatu kegiatan pengolahan data yang memberikan bentuk yang lebih bermakna dari suatu fakta. Oleh karena itu, pengolahan data elektronik adalah proses manipulasi dari data ke dalam bentuk yang lebih bermakna berupa suatu informasi dengan menggunakan suatu alat elektronik, yaitu komputer.

SISTEM KOMPUTER

Supaya komputer dapat digunakan untuk mengolah data, maka harus berbentuk suatu sistem yang disebut dengan sistem komputer. Secara umum, sistem terdiri dari elemen-elemen yang saling berhubungan membentuk satu kesatuan untuk melaksanakan suatu tujuan pokok dari sistem tersebut.
Tujuan pokok dari sistem komputer adalah mengolah data untuk menghasilkan informasi sehingga perlu didukung oleh elemen-elemen yang terdiri dari perangkat keras (hardware), perangkat lunak (software), dan brainware. Perangkat keras adalah peralatan komputer itu sendiri, perangkat lunak adalah program yang berisi perintah-perintah untuk melakukan proses tertentu, dan brainware adalah manusia yang terlibat di dalam mengoperasikan serta mengatur sistem komputer.
Ketiga elemen sistem komputer tersebut harus saling berhubungan dan membentuk satu kesatuan. Perangkat keras tanpa perangkat lunak tidak akan berarti apa-apa, hanya berupa benda mati. Kedua perangkat keras dan lunak juga tidak dapat berfungsi jika tidak ada manusia yang mengoperasikannya.

INPUT DEVICE

Input device adalah alat yang digunakan untuk menerima input dari luar sistem, dan dapat berupa signal input atau maintenance input. Di dalam sistem komputer, signal input berupa data yang dimasukkan ke dalam sistem komputer, sedangkan maintenance input berupa program yang digunakan untuk mengolah data yang dimasukkan. Dengan demikian, alat input selain digunakan untuk memasukkan data juga untuk memasukkan program.
Beberapa alat input mempunyai fungsi ganda, yaitu disamping sebagai alat input juga berfungsi sebagai alat output sekaligus. Alat yang demikian disebut sebagai terminal. Terminal dapat dihubungkan ke sistem komputer dengan menggunakan kabel langsung atau lewat alat komunikasi.

Terminal dapat digolongkan menjadi non intelligent terminal, smart terminal, dan intelligent terminal. Non intelligent terminal hanya berfungsi sebagai alat memasukkan input dan penampil output, dan tidak bisa diprogram karena tidak mempunyai alat pemroses. Peralatan seperti ini juga disebut sebagai dumb terminal. Smart terminal mempunyai alat pemroses dan memori di dalamnya sehingga input yang terlanjur dimasukkan dapat dikoreksi kembali. Walaupun demikian, terminal jenis ini tidak dapat diprogram oleh pemakai, kecuali oleh pabrik pembuatnya. Sedangkan intelligent terminal dapat diprogram oleh pemakai.
Peralatan yang hanya berfungsi sebagai alat input dapat digolongkan menjadi alat input langsung dan tidak langsung. Alat input langsung yaitu input yang dimasukkan langsung diproses oleh alat pemroses, sedangkan alat input tidak langsung melalui media tertentu sebelum suatu input diproses oleh alat pemroses.
Alat input langsung dapat berupa papan ketik (keyboard), pointing device (misalnya mouse, touch screen, light pen, digitizer graphics tablet), scanner (misalnya magnetic ink character recognition, optical data reader atau optical character recognition reader), sensor (misalnya digitizing camera), voice recognizer (misalnya microphone). Sedangkan alat input tidak langsung misalnya keypunch yang dilakukan melalui media punched card (kartu plong), key-to-tape yang merekam data ke media berbentuk pita (tape) sebelum diproses oleh alat pemroses, dan key-to-disk yang merekam data ke media magnetic disk (misalnya disket atau harddisk) sebelum diproses lebih lanjut.

OUTPUT DEVICE

Output yang dihasilkan dari pemroses dapat digolongkan menjadi empat bentuk, yaitu tulisan (huruf, angka, simbol khusus), image (dalam bentuk grafik atau gambar), suara, dan bentuk lain yang dapat dibaca oleh mesin (machine-readable form). Tiga golongan pertama adalah output yang dapat digunakan langsung oleh manusia, sedangkan golongan terakhir biasanya digunakan sebagai input untuk proses selanjutnya dari komputer.
Peralatan output dapat berupa:
Hard-copy device, yaitu alat yang digunakan untuk mencetak tulisan dan image pada media keras seperti kertas atau film.

Soft-copy device, yaitu alat yang digunakan untuk menampilkan tulisan dan image pada media lunak yang berupa sinyal elektronik.

Drive device atau driver, yaitu alat yang digunakan untuk merekam simbol dalam bentuk yang hanya dapat dibaca oleh mesin pada media seperti magnetic disk atau magnetic tape. Alat ini berfungsi ganda, sebagai alat output dan juga sebagai alat input.

Output bentuk pertama sifatnya adalah permanen dan lebih portable (dapat dilepas dari alat outputnya dan dapat dibawa ke mana-mana). Alat yang umum digunakan untuk ini adalah printer, plotter, dan alat microfilm. Sedangkan output bentuk kedua dapat berupa video display, flat panel, dan speaker. Dan alat output bentuk ketiga yang menggunakan media magnetic disk adalah disk drive, dan yang menggunakan media magnetic tape adalah tape drive.

Bandwidth dan Throughput

Bandwidth

Seperti telah kita tahu, bandwidth paling banyak digunakan sebagai ukuran kecepatan aliran data.
Tetapi apakah itu bandwidth sebenarnya? Bandwidth adalah suatu ukuran dari banyaknya informasi
yang dapat mengalir dari suatu tempat ke tempat lain dalam suatu waktu tertentu. Bandwidth dapat
dipakaikan untuk mengukur baik aliran data analog mau pun aliran data digital. Sekarang telah
menjadi umum jika kata bandwidth lebih banyak dipakaikan untuk mengukur aliran data digital.
Satuan yang dipakai untuk bandwidth adalah bits per second atau sering disingkat sebagai bps.
Seperti kita tahu bahwa bit atau binary digit adalah basis angka yang terdiri dari angka 0 dan 1.
Satuan ini menggambarkan seberapa banyak bit (angka 0 dan 1) yang dapat mengalir dari satu
tempat ke tempat yang lain dalam setiap detiknya melalui suatu media.
Bandwidth adalah konsep pengukuran yang sangat penting dalam jaringan, tetapi konsep ini
memiliki kekurangan atau batasan, tidak peduli bagaimana cara Anda mengirimkan informasi mau
pun media apa yang dipakai dalam penghantaran informasi. Hal ini karena adanya hukum fisika mau
pun batasan teknologi. Ini akan menyebabkan batasan terhadap panjang media yang dipakai,
kecepatan maksimal yang dapat dipakai, mau pun perlakuan khusus terhadap media yang dipakai.
Berikut adalah contoh tabel batasan panjang medium dan kecepatan maksimum aliran data.

Media Panjang Maksimum Kecepatan Maksimum
Kabel Coaxial 50 Ohm
(Ethernet 10Base2, ThinNet)
200 m 10-100 Mbps
Kable Coaxial 75 Ohm
(Ethernet 10Base5, ThickNet)
500 m 10-100 Mbps
UTP Kategori 5
(Ethernet 10BaseT, 100Base-TX)
100 m 10 Mbps
UTP Kategori 5
(Ethernet 100Base-TX, Fast
Ethernet)
100 m 100 Mbps
Multimode (62.5/125um)
Serat Optik 100Base-FX
2 km 100 Mbps
Singlemode (10um core)
Serat Optik 1000Base-LX
3 km 1000 Mbps (1 Gbps)
Teknologi lain yang sedang diteliti 40 km 2400 Mbps (2,4 Gbps)
Wireless 100 m 2 Mbps
Infra Red (IrDA) 1 m 4 Mbps

Sedangkan batasan terhadap perlakuan atau cara pengiriman data misalnya adalah dengan
pengiriman secara paralel (synchronous), serial (asynchronous), perlakuan terhadap media yang
spesifik seperti media yang tidak boleh ditekuk (serat optis), pengirim dan penerima harus
berhadapan langsung (line of sight), kompresi data yang dikirim, dll.

Throughput

Ternyata konsep bandwidth tidak cukup untuk menjelaskan kecepatan jaringan dan apa yang terjadi
di jaringan. Untuk itulah konsep Throughput muncul. Throughput adalah bandwidth aktual yang
terukur pada suatu ukuran waktu tertentu dalam suatu hari menggunakan rute internet yang spesifik
ketika sedang mendownload suatu file.
Bagaimana cara mengukur bandwidth? Dan bagaimana hubungannya dengan throughput? Seperti
telah diulas di atas, bandwidth adalah jumlah bit yang dapat dikirimkan dalam satu detik. Berikut
adalah rumus dari bandwidth:
s
bits
bandwidth Σ =
Sedangkan throughput walau pun memiliki satuan dan rumus yang sama dengan bandwidth, tetapi
throughput lebih pada menggambarkan bandwidth yang sebenarnya (aktual) pada suatu waktu
tertentu dan pada kondisi dan jaringan internet tertentu yang digunakan untuk mendownload suatu
file dengan ukuran tertentu. Berikut adalah formula pembanding throughput dengan bandwidth:
bandwidth
waktu _ download _ terbaik = ukuran _ file
throughput
waktu _ download _ typical = ukuran _ file
Dengan hanya mempergunakan bandwidth sebagai patokan, Joko Lelono menganggap seharusnya
file yang akan didownloadnya yang berukuran 64 kb seharusnya bisa didownload dalam waktu
sekedip mata atau satu detik, tetapi setelah diukur ternyata memerlukan waktu 4 detik. Jadi jika
ukuran file yang didownload adalah 64 kb, sedangkan waktu downloadnya adalah 4 detik, maka
bandwidth yang sebenarnya atau bisa kita sebut sebagai throughput adalah 64 kb / 4 detik = 16 kbps.

Sayangnya, throughput karena banyak alasan, kadang sangat jauh dari bandwidth maksimum yang
mungkin dari suatu media. Beberapa faktor yang menentukan bandwidth dan throughput adalah:
• Piranti jaringan
• Tipe data yang ditransfer
• Topologi jaringan
• Banyaknya pengguna jaringan
• Spesifikasi komputer client/user
• Spesifikasi komputer server
• Induksi listrik dan cuaca
• Dan alasan-alasan lain.
Akhirnya setelah memahami konsep throughput selain dari konsep bandwidth dan mengapa hal itu
bisa terjadi, Joko Lelono bisa mulai memahami apa yang terjadi sesungguhnya pada jaringannya.
Dengan memahami konsep-konsep tersebut kita dapat mulai memperhitungkan keperluan kecepatan
koneksi internet kita yang sesungguhnya dan pilihan koneksi yang diperlukan. Bukan hanya karena
termakan iklan yang menebarkan janji bandwidth yang tinggi dengan harga yang murah.

MENGENAL VIRUS KOMPUTER

Pertama kali istilah “virus” digunakan oleh Fred Cohen pada tahun 1984 di Amerika Serikat. Virus komputer dinamakan “virus” karena memiliki beberapa persamaan mendasar dengan virus pada istilah kedokteran (biological viruses).
Virus komputer bisa diartikan sebagai suatu program komputer biasa. Tetapi memiliki perbedaan yang mendasar dengan program-program lainnya,yaitu virus dibuat untuk menulari program-program lainnya, mengubah, memanipulasinya bahkan sampai merusaknya. Ada yang perlu dicatat disini, virus hanya akan menulari apabila program pemicu atau program yang telah terinfeksi tadi dieksekusi, disinilah perbedaannya dengan "worm". Tulisan ini tidak akan bahas worm karena nanti akan mengalihkan kita dari pembahasan mengenai virus ini.

KRITERIA VIRUS
Suatu program dapat disebut sebagai suatu virus apabila memenuhi minimal 5 kriteria berikut :
1. Kemampuan untuk mendapatkan informasi
2. Kemampuan untuk memeriksa suatu file
3. Kemampuan untuk menggandakan diri dan menularkan diri
4. Kemampuan melakukan manipulasi
5. Kemampuan untuk menyembunyikan diri.
Sekarang akan coba dijelaskan dengan singkat apa yang dimaksud dari tiap-tiap kemampuan itu dan mengapa ini sangat diperlukan.

1. Kemampuan untuk mendapatkan informasi
Pada umumnya suatu virus memerlukan daftar nama-nama file yang ada dalam suatu directory. Untuk apa? Agar dia dapat memperoleh daftar file yang bisa dia tulari. Misalnya, virus makro yang akan menginfeksi semua file data MS Word, akan mencari daftar file berekstensi *.doc. Disinilah kemampuan mengumpulkan informasi itu diperlukan agar virus dapat membuat daftar/data semua file, lalu memilahnya dengan mencari file-file yang bisa ditulari. Biasanya data ini tercipta saat file yang tertular/terinfeksi virus atau file program virus itu sendiri dibuka oleh user. Sang virus akan segera melakukan pengumpulan data dan menaruhnya (biasanya) di RAM, sehingga apabila komputer dimatikan semua data hilang. Tetapi data-data ini akan tercipta kembali setiap kali virus itu diaktifkan. Biasanya data-data ini disimpan juga sebagai hidden file oleh virus tersebut.

2. Kemampuan memeriksa suatu program
Suatu virus juga harus bisa memeriksa suatu file yang akan ditulari, misalnya dia bertugas menulari program berekstensi *.doc, maka dia harus memeriksa apakah file dokumen tersebut telah terinfeksi ataupun belum, karena jika sudah, akan percuma menularinya lagi. Ini sangat berguna untuk meningkatkan kemampuan suatu virus dalam hal kecepatan menginfeksi suatu file/program. Yang umum dilakukan oleh virus adalah memiliki/memberi tanda pada file/program yang telah terinfeksi sehingga mudah untuk dikenali oleh virus tersebut. Contoh penandaan adalah misalnya memberikan suatu byte yang unik di setiap file yang telah terinfeksi.

3. Kemampuan untuk menggandakan diri
Kalo ini memang virus "bang-get", maksudnya, tanpa kemampuan ini tak adalah virus. Inti dari virus adalah kemampuan mengandakan diri dengan cara menulari file lainnya. Suatu virus apabila telah menemukan calon 2 korbannya maka ia akan mengenalinya dengan memeriksanya. Jika belum terinfeksi maka sang virus akan memulai aksinya penularan dengan cara menuliskan byte pengenal pada file tersebut, dan seterusnya mengcopikan/menulis kode objek virus diatas file sasaran. Beberapa cara umum yang dilakukan oleh virus untuk menulari/menggandakan dirinya adalah :

a. File yang akan ditulari dihapus atau diubah namanya. Kemudian diciptakan suatu file berisi program virus itu sendiri menggunakan nama file yang asli.
b. Program virus yang sudah dieksekusi/load ke memori akan langsung menulari file-file lain dengan cara menumpangi seluruh file yang ada.

4. Kemampuan mengadakan manipulasi
Rutin (routine) yang dimiliki suatu virus akan dijalankan setelah virus menulari suatu file. Isi dari suatu rutin ini dapat beragam mulai dari yang tidak berbahaya sampai yang melakukan perusakan. Rutin ini umumnya digunakan untuk memanipulasi file atau pun mempopulerkan pembuatnya ! Rutin ini memanfaatkan kemampuan dari suatu sistem operasi (Operating System), sehingga memiliki kemampuan yang sama dengan yang dimiliki sistem operasi. Misal :
a. Membuat gambar atau pesan pada monitor
b. Mengganti/mengubah-ubah label dari tiap file, direktori, atau label dari drive di PC
c. Memanipulasi file yang ditulari
d. Merusak file
e. Mengacaukan kerja printer, dsb

5. Kemampuan Menyembunyikan diri
Kemampuan menyembunyikan diri ini harus dimiliki oleh suatu virus agar semua pekerjaan baik dari awal sampai berhasilnya penularan dapat terlaksana.
Langkah langkah yang biasa dilakukan adalah:
- Program virus disimpan dalam bentuk kode mesin dan digabung dengan program lain yang dianggap berguna oleh pemakai
- Program virus diletakkan pada Boot Record atau track pada disk yang jarang diperhatikan oleh komputer itu sendiri
- Program virus dibuat sependek mungkin, dan hasil file yang diinfeksi tidak terlalu berubah ukurannya
- Virus tidak mengubah keterangan/informasi waktu suatu file
- dll

SIKLUS HIDUP VIRUS
Siklus hidup virus secara umum, melalui 4 tahap:
o Dormant phase ( Fase Istirahat/Tidur )
Pada fase ini virus tidaklah aktif. Virus akan diaktifkan oleh suatu kondisi tertentu, semisal: tanggal yang ditentukan, kehadiran program lain/dieksekusinya program lain, dsb. Tidak semua virus melalui fase ini.
o Propagation phase ( Fase Penyebaran )
Pada fase ini virus akan mengkopikan dirinya kepada suatu program atau ke suatu tempat dari media storage (baik hardisk, RAM dsb). Setiap program yang terinfeksi akan menjadi hasil “kloning” virus tersebut (tergantung cara virus tersebut menginfeksinya).
o Trigerring phase ( Fase Aktif )
Di fase ini virus tersebut akan aktif dan hal ini juga di picu oleh beberapa kondisi seperti pada Dormant Phase.
o Execution phase ( Fase Eksekusi )
Pada fase inilah virus yang telah aktif tadi akan melakukan fungsinya. Seperti menghapus file, menampilkan pesan-pesan, dsb