BAB II KAJIAN PUSTAKA 2.1 Tinjauan Mutakhir Adapun hasil penelitian sebelumnya yang memuat teori, proposisi, konsep, atau pendekatan terbaru yang ada hubungannya dengan penelitian yang dilakukan adalah sebagai berikut : Penelitian yang dilakukan oleh Yusuf (2008) yang berjudul Teknik Pembuatan Anti Virus Dengan Metode Pencarian Header File Data SizeOfCode dan AddressOfEntrypoint Sebagai Pattern Virus. Pembuatan aplikasi antivirus komputer yang bertujuan untuk mengetahui efektivitas dan efisiensi dari sebuah sistem
antivirus
AddressOfEntryPoint
yang
menggunakan
sebagai
pattern
header
virus
yang
file
sizeofcode
dirancang,
dan
kemudian
dibandingkan dengan metode cheksum (CRC32). Dari penelitian tersebut diperoleh kesimpulan yaitu metode AddressOfEntrypoint Sebagai Pattern Virus lebih
baik
daripada
metode
checksum
CRC32
namun
metode
AddressOfEntrypoint Sebagai Pattern Virus memiliki kelemahan yaitu terlalu mengandalkan database signature, sehingga bila terdapat varian virus baru maka belum bisa terdeteksi jika hanya menggunakan satu proses scanning. Penelitian yang dilakukan oleh Pradana (2012) yang berjudul Rancang Bangun Software Antivirus dengan menggunakan Metode Pendeteksian Heuristik. Penelitian ini bertujuan untuk membandingkan metode deteksi checksum CRC32 dengan metode heuristic dalam mendeteksi virus dan didapat kesimpulan yaitu antivirus yang dilengkapi dengan metode heuristic akurasi pendeteksiannya lebih tinggi dibandingkan hanya menggunakan metode checksum CRC32 dan aplikasi antivirus ini juga memiliki kelemahan yaitu hanya bisa berjalan sempurna pada sistem operasi 32-bit. Penelitian yang dilakukan oleh Arifiyanto (2010) berjudul Memodifikasi Algoritma Heuristic Arrs Dalam Perancangan Aplikasi Antivirus. Penelitian ini bertujuan untuk membuat suatu sistem aplikasi antivirus dengan memodifikasi 5
6
algoritma heuristic Arrs dan dapat mendeteksi non-printable character pada virus Conficker. Dari beberapa penelitian sebelumnya, penelitian ini memiliki perbedaan yaitu pembuatan suatu aplikasi antivirus menggunakan metode Secure Hash Algorithm 1 (SHA 1) dan Heuristic String. Metode Secure Hash Algorithm merupakan metode pendeteksian file virus berdasarkan pola sidik jari virus jadi akan sulit ditemukan dua file berbeda memiliki pola sidik jari yang sama, sedangkan metode heuristic adalah metode pendeteksian file virus berdasarkan karakteristik atau pola string virus pada file. Dengan menggunakan kedua metode tersebut aplikasi antivirus ini diharapkan mampu mendeteksi file virus atau worm dengan akurat dan mampu menangani virus yang sudah mengimplementasikan teknik polymorph. Aplikasi antivirus ini juga diharapkan mampu memberi kemudahan pada setiap pengguna dengan fitur tambahan yaitu fitur Realtime Protector. 2.2 Tinjauan Pustaka Adapun yang akan dipaparkan pada tinjauan pustaka, yaitu landasan teoriteori yang menunjang penelitian. 2.2.1 Komputer Istilah komputer (computer) berasal dari bahasa latin “computere” yang berarti menghitung. Dalam bahasa Inggris komputer berasal dari kata “to compute” yang artinya menghitung. Jadi komputer dapat diartikan sebagai alat hitung atau mesin hitung (Abidin, 2011). Sehubungan dengan perkembangan zaman maka definisi komputer tidak hanya sebagai alat hitung tetapi menjadi alat pengolah data yang bekerja secara elektronik dengan kecepatan dan ketelitian yang sangat tinggi serta mampu mengerjakan berbagai proses data yang tersimpan dalam memori dengan keterlibatan manusia yang minimum.
7
Dalam pengolahan data diperlukan peralatan-peralatan atau komponenkomponen untuk mendukung proses pengolahan data. Adapun komponenkomponen komputer yaitu : 1. Hardware (Perangkat Keras) Hardware adalah komponen-komponen peralatan yang membentuk suatu sistem komputer dan peralatan lainnya yang memungkinkan komputer dapat melaksanakan tugasnya, contoh monitor, harddisk, keyboard (Abidin, 2011). 2. Software (Perangkat Lunak) Software adalah seluruh fasilitas dari suatu sistem pengolahan data yang bukan peralatan komputernya tapi merupakan susunan instruksi yang harus diberikan pada alat pengolah agar komputer dapat menjalankan pekerjaan sesuai yang dikehendaki. Fasilitas software ini terdiri dari sistem desain, programprogram dan prosedur-prosedur (Abidin, 2011). 3. Brainware (Tenaga Pelaksana) Brainware adalah aspek manusia yang menangani pengolahan komputer maupun pengembangannya dengan menggunakan alat pikirannya, dan dapat digolongkan menjadi: a. Sistem Analis yaitu orang yang akan membentuk dan membangun fasilitas sistem desain. b. Programmer yaitu orang yang menyusun instruksi bagi komputer. c. Operator yaitu orang yang akan menangani secara langsung pengolahan data dalam ruangan komputer. Ketiga komponen tersebut harus saling berhubungan dan membentuk satu kesatuan. Hardware tanpa adanya software, maka tidak akan berfungsi hanya seperti benda mati saja karena software yang akan mengoperasikan hardwarenya. Hardware yang sudah didukung oleh software juga tidak akan berfungsi kalau tidak ada manusia yang mengoperasikannya.
8
2.2.2 Keamanan Sistem Komputer Masalah keamanan merupakan salah satu aspek terpenting dari sebuah sistem komputer. Masalah keamanan sering kali kurang mendapat perhatian dari para pengelola sistem komputer. Sering kali masalah keamanan berada diurutan kedua, ketiga, atau bahkan diurutan terakhir dalam daftar hal-hal yang dianggap penting. konfigurasi keamanan sistem bisa mengganggu performansi dari sistem, namun sering kali masalah keamanan tidak begitu dipedulikan bahkan ditiadakan. Saat ini sistem komputer banyak terhubung dengan jaringan sehingga semakin mudah untuk diakses, sehingga sangat rentan terhadap kelemahan komunikasi data, yaitu kejahatan komputer. Apalagi dewasa ini masyarakat bergantung pada komputer untuk menciptakan, menyimpan dan mengatur informasi informasi-informasi penting seperti informasi keuangan, informasi diri, informasi perusahaan, dan sebagainya. Banyak terjadi pertukaran informasi setiap detik di internet. Banyak terjadi pencurian informasi itu sendiri oleh pihak-pihak yang tidak bertanggung jawab. Ancaman keamanan yang terjadi terhadap informasi adalah : 1. Interruption: Ancaman terhadap availabilitas; informasi, data yang ada dalam sistem komputer dirusak, dihapus, sehingga jika data informasi yang dibutuhkan tidak ada lagi. 2. Interception: Ancaman terhadap kerahasiaan (secrecy). Informasi yang ada disadap atau orang yang tidak berhak mendapat akses ke komputer tempat informasi itu disimpan. 3. Modifikasi: Ancaman terhadap integritas. Orang yang tidak berhak berhasil menyadap lalu lintas informasi yang sedang dikirim dan diubah sesuai dengan keinginan orang tersebut. 4. Fabrician: Ancaman terhadap integritas. Orang yang tidak berhak berhasil meniru (memalsukan) suatu informasi yang ada sehingga orang yang menerima informasi tersebut menyangka informasi tersebut berasal dari orang yang dikehendaki oleh si penerima informasi.
9
Masalah keamanan sistem sangatlah luas dan tidak akan habis untuk dibicarakan, karena perkembangan masalah keamanan berjalan seiring dengan perkembangan dari teknologi komputer dan komunikasi. 2.2.2.1 Internet dan Network Attack Informasi yang ditransmisikan melalui jaringan memiliki resiko keamanan yang lebih tinggi dibandingkan dengan informasi yang stay alone. Serangan melalui internet membahayakan karena meliputi malicious code, yang merupakan kode-kode pada suatu program yang “tersamar” yang tidak diketahui fungsi dan manfaatnya, tetapi sewaktu-waktu dapat aktif dan beraksi membahayakan keadaan sistem. Malicious code merupakan sekumpulan perintah yang bisa mengeksekusi suatu sistem untuk mendapatkan sesuatu yang diinginkan oleh pembuatnya, contoh: virus, worm, trojan horse, dan lain sebagainya (Pangera dan Ariyus, 2010). 2.2.2.1.1 Hacker (Peretas) Hacker atau peretas adalah seseorang yang memiliki kemampuan pada komputer dan sistem jaringan, kemampuan standar yang dimiliki seorang hacker adalah core programming dan network specialist. Hacker merupakan pengguna komputer yang mampu masuk kedalam sistem komputer melalui jaringan, baik untuk keperluan monitoring (melihat sistem), copying (pengambilan/pencurian data), atau crashing (merusak sistem komputer) targetnya. Hacker terdiri dari beberapa jenis sesuai dengan sifatnya. Baik orang itu seorang sistem administrator maupun user yang ingin membobol sistem komputer orang lain. Klasifikasi hacker antaralain sebagai berikut: 1. Whitehat hacker: merupakan golongan hacker bertopi putih, hacker golongan ini lebih mengabdikan dirinya pada dunia security auditor, mereka memiliki peran sangat pada kemajuan IT dan internet. Hacker dari golongan ini biasanya lebih bijak dalam menggunakan kemampuannya, mereka mencari celah-celah keamanan dari sebuah sistem dan melakukan berbagai upaya agar temuan-temuannya bisa berguna dalam menciptakan
10
sebuah era teknologi baru yang aman dan efisien bagi semua orang (Aditya, 2012). 2. Blackhat hacker: merupakangolongan hacker bertopi hitam. Topi hitam merupakan simbol akan tindak tanduknya, mereka adalah golongan hacker jahat, tindakannya cenderung destruktif dan kurang bersahabat, golongan ini biasanya melakukan perusakan-perusakan pada sistem aplikasi, pencurian data sensitif, pelanggaran hak, dan lain sebagainya (Aditya, 2012). 2.2.2.2 Malicious Code 2.2.2.2.1 Virus dan Worm Virus komputer merupakan program komputer yang dapat menggandakan atau menyalin dirinya sendiri dan menyebar dengan cara menyisipkan salinan dirinya ke dalam program atau dokumen lain. Virus komputer dapat dianalogikan dengan virus biologis yang menyebar dengan cara menyisipkan dirinya sendiri ke sel makhluk hidup (Amperiyanto, 2001). Virus komputer dapat merusak (misalnya dengan merusak data pada dokumen), membuat pengguna komputer merasa terganggu, maupun tidak menimbulkan efek sama sekali. Secara garis besar virus dimasukkan dalam daftar malware, yang artinya program jahat. Tidak hanya virus, malware bisa juga berupa trojan, spyware, worm, keylogger, dan jenis lainnya. Pada kenyataannya cara kerja dan tujuan malware hampir sama, tetapi dengan tujuan berbeda (Hirin, 2010). Dari beberapa jenis malware, yang paling menghantui banyak pengguna komputer khususnya di Indonesia adalah worm dan virus. Hal ini dikarenakan virus dan worm dibuat dengan tujuan untuk merusak, mengacaukan sistem komputer, atau sekedar menakut – nakuti pengguna komputer, sehingga masalah ini cukup merepotkan. Berbeda dengan program jahat lainnya, seperti trojan dan keylogger yang biasanya ditujukan untuk mencuri informasi target, artinya tugasnya lebih spesifik ditujukan pada orang-orang tertentu. Walaupun sama-
11
sama tergolong dari jenis program jahat, sebenarnya ada perbedaan antara virus dan worm khususnya dari cara penularan dan duplikasi dirinya. Berikut adalah tabel perbedaan worm dan virus (Hirin, 2010). Tabel 2.1 Perbedaan antara virus dan worm
Worm
Virus
Tidak sanggup melakukan infeksi
Melakukan infeksi terhadap file yang
terhadap file, dalam proses
dapat dijadikan inang seperti exe, scr,
penyebarannya hanya mengendalikan
com
file anak atau duplikasi dijalankan
apabila user menjalankan file yang
baik secara otomatis maupun manual
terinfeksi virus akan ikut berjalan dan
oleh pengguna komputer
menginfeksi sistem.
Manipulasi
yang
dilakukan
dan
pif.
lebih Manipulasi
Dengan
yang
demikian,
dilakukan
lebih
rendah, sehingga beberapa jenis worm tinggi daripada worm, sehingga lebih dapat dibasmi dengan mudah, tetapi bertahan lama jika sudah menginfeksi ada
sebagian
juga
yang
punya sistem.
manipulasi tingkat tinggi. Sebagian besar membuat file duplikat Hampir tidak ada yang membuat lebih banyak, sehingga lebih mudah duplikasi karena dilengkapi dengan dicari
sumber
aslinya.
Biasanya teknik infeksi program lain. Untuk
berupa file exe, scr, pif, com, bat, vbd, mendapatkan db, dan vmx.
mencari
sumbernya,
induknya
yang
harus biasanya
berupa file *.dll Kebanyakan memakai icon-icon yang Memakai icon standar executable. unik, seperti icon folder, dokumen, xls, game, dan lain-lain. Contoh nyata : brontok, tati, conficker, Contoh nyata : alman, sality, virut, dan parents, dan lain-lain
Sumber : Hirin, 2010
lain-lain.
12
2.2.2.2.2 Trojan Horse Secara umum trojan horse dapat diartikan sebagai sebuah software berbahaya (malware) yang memiliki kemampuan dalam pengontrolan atau pengaksesan data antar jaringan. Beberapa jenis trojan berdasarkan fungsi dan kemampuannya (S’to, 2010), yaitu: 1. Trojan Remote Access, yaitu jenis trojan yang bekerja dengan cara membuka sebuah port secara diam-diam sehingga hacker bisa mengendalikan komputer korban. 2. Trojan Data Sending, yaitu suatu jenis trojan yang bertujuan untuk mengirimkan data-data tertentu (password, data credit card, dan sebagainya) yang berada pada komputer korban ke sebuah email khusus yang telah disiapkan. 3. Trojan Destructive, yaitu suatu jenis trojan yang sangat berbahaya karena jika telah menginfeksi sistem komputer maka trojan ini akan menghapus semua file sistem pada komputer korban (seperti file .dll, .ini atau .exe). 4. Trojan DoS Attack, yaitu suatu jenis trojan yang memiliki kemampuan untuk menjalankan Distributed DoS (DDoS) melalui komputer korban. 5. Trojan Proxy, yaitu suatu jenis trojan yang berfungsi untuk membuat komputer korban menjadi seperti sebuah komputer perantara/proxy, sehingga hacker dapat menyembunyikan identitas dirinya ketika melakukan kegiatan ilegal menggunakan komputer tersebut. 6. Trojan FTP, yaitu sebuah jenis trojan yang paling sederhana karena hanya memiliki sebuah fungsi yaitu membuka port 21 di komputer korban. 7. Trojan Software Detection Killers, yaitu jenis trojan yang memiliki kemampuan untuk mendeteksi dan melumpuhkan fungsi antivirus dan firewall pada sistem komputer. 2.2.3 Aplikasi Aplikasi adalah penggunaan dalam suatu komputer, instruksi atau pernyataan yang disusun sedemikian rupa sehingga komputer dapat memproses input menjadi output (Mulyadi, 2010).
13
Aplikasi merupakan program yang berisikan perintah-perintah untuk melakukan pengolahan data. Aplikasi secara umum adalah suatu proses dari cara manual yang ditransformasikan ke komputer dengan membuat sistem atau program agar data diolah lebih berdaya guna secara optimal. Aplikasi dapat di implementasikan pada mobile phone atau smart phone yang dapat menjalankan suatu perintah (Mulyadi, 2010). 2.2.4 Antivirus Antivirus adalah sebuah perangkat lunak yang digunakan untuk mendeteksi dan menghapus virus komputer dari sistem komputer. Antivirus disebut juga Virus Protection Software. Aplikasi ini dapat menentukan sebuah sistem komputer telah terinfeksi virus atau tidak. Umumnya, perangkat lunak ini berjalan dilatar belakang dan melakukan pemindaian terhadap semua berkas yang diakses (dibuka, dimodifikasi, atau ketika disimpan) (Hirin, 2010). 2.2.4.1 Cara Kerja Antivirus Cara kerja antivirus pada umumnya hampir sama antara satu dan lainnya. Hanya teknik pendeteksian dan akurasinya yang berbeda-beda. Semua antivirus akan membaca byte demi byte sebuah file yang diproses, kemudian dilakukan penghitungan nilai checksum file. Hasil perihutngan akan dicocokkan dengan database yang dimiliki oleh antivirus. Nilai checksum inilah yang menjadi dasar sebuah antivirus dalam mengenali virus yang ada. Apabila nilai checksum sebuah file yang diproses, tercatat pada database antivirus yang memproses file tersebut, maka antivirus akan memberikan semacam peringatan bahwa file tersebut adalah sebuah virus dengan nama sesuai penamaan yang diberikan pembuat antivirus itu sendiri. Pada umumnya, proses pengecekan file untuk menentukan sebuah virus atau bukan, tidak hanya sampai pada tahap pencocokan checksum tetapi antivirus yang lebih maju akan memakai metode pendekatan-pendekatan untuk melakukan pencurigaan terhadap sebuah file. Metode ini disebut heuristic, metode inilah yang sangat berperan penting dalam mendapatkan sebuah virus, selain tahap pencocokan checksum. Karena dengan metode pendekatan, atau disebut dengan
14
heuristic, beberapa virus yang baru dibuat pun bisa terdeteksi karena adanya heuristic ini (Hirin 2010). 2.2.5 Secure Hash Algorithm 1 (SHA 1) Secure Hash Algorithm dikembangkan oleh National Institute of Standards and Technology (NIST) dan National Security Agency (NSA) sebagai komponen Digital Signature Standart (DSS). Standart hash adalah Secure Hash Standart (SHS) dengan SHA sebagai algoritma yang digunakan. SHS menetapkan SHA yang diperlukan untuk menjamin keamanan Digital Signature Algorithm (DSA) (). 2.2.5.1 Cara Kerja Secure Hash Algorithm. Algoritma SHA menerima masukan berupa pesan dengan ukuran maksimum 264 bit (2.147.483.648 gigabyte) dan menghasilkan message digest yang panjangnya 160 bit, lebih panjang dari message digest yang dihasilkan oleh MD5. Langkah – langkah pembuatan message digest menggunakan algoritma SHA ditunjukkan pada gambar 2.1: L x 512 bit = N x 32 bit K bit < 264
K
Padding bits (1 - 512 bit)
Pesan
512
512
Y0
Y1 512
ABCD
160
HSHA
160
1000...000
512
... 160
512
...
Yq
512 HSHA
P anjang P esan
YL - 1
512
160
HSHA
160
512
160
HSHA
160 Message Digest
Gambar 2.1 Pembuatan message digest dengan algoritma SHA (Sumber: Alderson, 2002)
1. Penambahan bit-bit pengganjal (padding bits). Pesan ditambah dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan (dalam satuan bit) kongruen dengan 448 modulo 512. Ini berarti panjang pesan setelah ditambahi bit-bit pengganjal adalah 64 bit kurang dari
15
kelipatan 512. Angka 512 ini muncul karena SHA memperoses pesan dalam blokblok yang berukuran 512. Pesan dengan panjang 448 bit pun tetap ditambah dengan bit-bit pengganjal. Jika panjang pesan 448 bit, maka pesan tersebut ditambah dengan 512 bit menjadi 960 bit. Jadi, panjang bit-bit pengganjal adalah antara 1 sampai 512. Bit-bit pengganjal terdiri dari sebuah bit 1 diikuti dengan sisanya bit 0. 2. Penambahan nilai panjang pesan semula. Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula. Setelah ditambah dengan 64 bit, panjang pesan sekarang menjadi 512 bit. 3. Inisialisasi penyangga (buffer) Message Digest. SHA membutuhkan 5 buah penyangga (buffer) yang masing-masing panjangnya 32 bit (MD5 hanya mempunyai 4 buah penyangga). Total panjang penyangga adalah 5 32 = 160 bit. Keempat penyangga ini menampung hasil antara dan hasil akhir. Kelima penyangga ini diberi nama A, B, C, D, dan E. Setiap penyangga diinisialisasi dengan nilai-nilai (dalam notasi HEX) sebagai berikut: A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0 4. Pengolahan pesan dalam blok berukuran 512 bit. Pesan dibagi menjadi L buah blok yang masing-masing panjangnya 512 bit (Y0 sampai YL – 1). Setiap blok 512-bit diproses bersama dengan penyangga MD menjadi keluaran 128-bit, dan ini disebut proses HSHA. Gambaran proses HSHA diperlihatkan pada Gambar 2.2
16
Yq MDq 512
A
B
C
D
E
ABCDE f ( ABCDE, Yq , K 0 )
A
B
C
D
E
ABCDE f ( ABCDE, Yq , K 1 )
... A
C
B
D
E
ABCDE f ( ABCDE, Yq , K 79 )
+
+
+
+
160
MDq + 1
Gambar 2.2 Pengolahan blok 512 bit (Proses HSHA) (Sumber: Alderson, 2002)
Proses HSHA terdiri dari 80 buah putaran (MD5 hanya 4 putaran), dan masingmasing putaran menggunakan bilangan penambah Kt, yaitu: Putaran 0 t 19
Kt = 5A827999
Putaran 20 t 39
Kt = 6ED9EBA1
Putaran 40 t 59
Kt = 8F1BBCDC
Putaran 60 t 79
Kt = CA62C1D6
Pada Gambar, Yq menyatakan blok 512-bit ke-q dari pesan yang telah ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan semula. MDq adalah nilai message digest 160-bit dari proses HSHA ke-q. Pada awal proses, MDq berisi nilai inisialisasi penyangga MD. Setiap putaran menggunakan operasi dasar yang sama (dinyatakan sebagai fungsi f). Operasi dasar SHA diperlihatkan pada Gambar 2.3
17
ai-1
bi-1
ci-1
di-1
ei-1
ft
+
CLS5
+
Wt
+
Kt
+
CLS30
ai
bi
ci
di
ei
Gambar 2.3 Operasi dasar SHA dalam satu putaran (fungsi f) (Sumber: Alderson, 2002)
Operasi dasar SHA yang diperlihatkan pada Gambar 2.3 dapat ditulis dengan persamaan sebagai berikut: a, b, c, d, e (CLS5(a) + ft(b, c, d) + e + Wt + Kt), a, CLS30(b), c, d yang dalam hal ini, a, b, c, d, e = lima buah peubah penyangga 32-bit (berisi nilai penyangga A, B, C, D, E) t
= putaran, 0 t 79
ft
= fungsi logika
CLSs
= circular left shift sebanyak s bit
Wt
= word 32-bit yang diturunkan dari blok 512 bit yang sedang diproses
Kt
= konstanta penambah
+
= operasi penjumlahan modulo 232
18
Fungsi ft adalah fungsi logika yang melakukan operasi logika bitwise. Operasi logika yang dilakukan dapat dilihat pada Tabel 2.2. Tabel 2.2 Fungsi logika ft pada setiap putaran
Putaran
ft (b, c, d)
0 .. 19
(b c) (~b d)
20 .. 39
bcd
40 .. 59
(b c) (b d) (c d)
60 .. 79
bcd (Sumber: Alderson, 2002)
Yang mana pada tabel diatas operator logika AND, OR, NOT, XOR masingmasing dilambangkan dengan , , ~, . Nilai W1 sampai W16 berasal dari 16 word pada blok yang sedang diproses, sedangkan nilai Wt berikutnya didapatkan dari persamaan Wt = Wt – 16 Wt – 14 Wt – 8 Wt – 3 Setelah putaran ke-79, a, b, c, d, dan e ditambahkan ke A, B, C, D, dan E dan selanjutnya algoritma memproses untuk blok data berikutnya (Yq+1). Keluaran akhir dari algoritma SHA adalah hasil penyambungan bit-bit di A, B, C, D, dan E. 2.2.6 Heuristic Heuristic adalah teknik pendekatan untuk mencurigai bahwa sebuah file adalah virus atau bukan. Bahkan, dengan heuristic-heuristic canggih sebuah program visual yang sengaja dibuat untuk menjebak user pun mampu kandungan code-code bahayanya. Ditinjau dari keuntungan yang ada,
manfaat heuristic
sangat besar, karena dengan teknik-teknik heuristic yang ada virus yang belum disebarkan atau belum masuk database antivirus akan dapat ditangani dengan baik. Beberapa jenis heuristic yang digunakan pada sebuah antivirus antara lain sebai berikut : 1. Heuristic Visual Basic Script (VBS) Heuristic VBS adalah pendekatan untuk mencurigai virus dengan script VBS. Heuristic ini yang pertama digunakan dibanding heuristic lainnya karena
19
cenderung lebih mudah. Sesuai dengan perkembangan virus, VBS melakukan enkripsi terhadap script untuk meloloskan diri. Karena pada awalnya heuristic ini didasarkan pada script-script yang dipakai sebuah virus VBS. Heuristic ini juga sudah dikembangkan lagi untuk mengantisipasi kemungkinan virus yang memakai enkripsi (Hirin, 2010). 2. Heuristic Icon Heuristic icon adalah teknik pendekatan untuk mencurigai virus executable berdasarkan icon yang dipakai. Teknik ini didasarkan pada banyaknya icon standar file populer non-executable untuk menipu user. Oleh karena itu, dengan heuristic ini virus-virus dengan mudah ditangkap walaupun tanpa memasukkan informasi checksum. Sesuai perkembangan heuristic ini dilewati dengan memanipulasi icon yang dipakai dengan menambahkan goretan melalui editor icon. Untuk menangkal hal ini, heuristic icon berkembang lagi (Hirin, 2010). 3. Heuristic String Heuristic
string
adalah
heuristic
untuk
melakukan
pencurigaan
berdasarkan string-string yang terkandung dalam sebuah virus. Heuristic ini sangat berguna untuk mengantisipasi virus-virus yang menyusup dalam sebuah file program (Hirin, 2010). 4. Heuristic Autorun Read System Heuristic Autorun Read System adalah heuristic yang dibuat berdasarkan exploitasi virus terhadap file autorun. Heuristic ini sering dipakai pada antivirus karena prosesnya yang sederhana(Hirin, 2010). 2.2.7 Bahasa Pemrograman Visual Basic Microsoft Visual Basic sering disingkat sebagai VB saja, merupakan sebuah bahasa pemrograman yang menawarkan Integrated Development Environment (IDE) visual untuk membuat program perangkat lunak berbasis sistem operasi Microsoft Windows dengan menggunakan model pemrograman (COM).
20
Visual Basic merupakan turunan bahasa pemrograman BASIC dan menawarkan pengembangan perangkat lunak komputer berbasis grafik dengan cepat. Beberapa bahasa script seperti Visual Basic for Applications (VBA) dan Visual Basic Scripting Edition (VBScript), mirip seperti halnya Visual Basic, tetapi cara kerjanya yang berbeda (Jones, 2001). Para programmer dapat membangun aplikasi dengan menggunakan komponen-komponen yang disediakan oleh Microsoft Visual Basic, Programprogram yang ditulis dengan Visual Basic juga dapat menggunakan Windows API, tapi membutuhkan deklarasi fungsi luar (Jones, 2001). Dalam pemrograman untuk bisnis, Visual Basic memiliki pangsa pasar yang sangat luas. Sebuah survey yang dilakukan pada tahun 2005 menunjukkan bahwa 62% pengembang perangkat lunak dilaporkan menggunakan berbagai bentuk Visual Basic, yang diikuti oleh C++, JavaScript, C#, dan Java (Jones, 2001). 2.2.7.1 Sejarah Visual Basic Bill Gates, pendiri Microsoft, memulai bisnis perangkat lunak dengan mengembangkan interpreter bahasa Basic untuk Altair 8800, untuk kemudian ia ubah agar dapat berjalan di atas IBM PC dengan sistem operasi DOS. Perkembangan berikutnya ialah diluncurkannya BASICA (basic-advanced) untuk DOS. Setelah BASICA, Microsoft meluncurkan Microsoft QuickBasic dan Microsoft Basic (dikenal juga sebagai Basic Compiler). Visual Basic adalah pengembangan dari bahasa komputer BASIC (Beginner’s All-purpose Symbolic Instruction Code). Bahasa BASIC diciptakan oleh Professor John Kemeny dan Thomas Eugene Kurtz dari Perguruan Tinggi Dartmouth pada pertengahan tahun 1960-an. Bahasa program tersebut tersusun mirip dengan bahasa Inggris yang biasa digunakan oleh para programer untuk menulis
program-program
komputer
sederhana
yang
pembelajaran bagi konsep dasar pemrograman (Jesse, 2005).
berfungsi
sebagai
21
Sejak saat itu, banyak versi BASIC yang dikembangkan untuk digunakan pada berbagai platform komputer, seperti Microsoft QBASIC, QUICKBASIC, GWBASIC, IBM BASICA, Apple BASIC dan lain-lain. Apple BASIC dikembangkan oleh Steve Wozniak, mantan karyawan Hewlett Packard dan teman dekat Steve Jobs (pendiri Apple Inc.). Steve Jobs pernah bekerja dengan Wozniak sebelumnya (mereka membuat game arcade “Breakout” untuk Atari). Mereka mengumpulkan uang dan bersama-sama merakit PC, dan pada tanggal 1 April 1976 mereka secara resmi mendirikan perusahaan komputer Apple. Popularitas dan pemakaian BASIC yang luas dengan berbagai jenis komputer turut berperan dalam mengembangkan dan memperbaiki bahasa itu sendiri, dan akhirnya berujung pada lahirnya Visual Basic yang berbasis GUI (Graphic User Interface) bersamaan dengan Microsoft Windows. Pemrograman Visual Basic begitu mudah bagi pemula dan programer musiman karena ia menghemat waktu pemrograman dengan tersedianya komponen-komponen siap pakai (Jesse, 2005). Hingga akhirnya Visual Basic juga telah berkembang menjadi beberapa versi, sampai yang terbaru, yaitu Visual Basic 2010. Bagaimanapun juga Visual Basic 6.0 tetap menjadi versi yang paling populer karena mudah dalam membuat programnya dan ia tidak menghabiskan banyak memori (Jesse, 2005). Sejarah BASIC di tangan Microsoft sebagai bahasa yang diinterpretasi (BASICA) dan juga bahasa yang dikompilasi (BASCOM) membuat Visual Basic diimplementasikan sebagai gabungan keduanya. Programmer yang menggunakan Visual Basic bisa memilih kode bahasa pemrograman yang dikompilasi atau kode bahasa pemrograman yang diinterpretasikan sebagai hasil porting dari kode VB. Sayangnya, meskipun sudah terkompilasi jadi bahasa mesin, DLL bernama MSVBVMxx.DLL tetap dibutuhkan (Jesse, 2005).
22
2.2.7.2 Perkembangan Visual Basic Visual Basic 1.0 dikenalkan pada tahun 1991. Konsep pemrograman dengan metode drag-and-drop untuk membuat tampilan aplikasi Visual Basic ini diadaptasi dari prototype generator form yang dikembangkan oleh Alan Cooper dan perusahaannya, dengan nama Tripod. Microsoft kemudian mengontrak Cooper dan perusahaannya untuk mengembangkan Tripod menjadi sistem form yang dapat diprogram untuk Windows 3.0, di bawah kode nama Ruby. Tripod tidak memiliki bahasa pemrograman sama sekali. Ini menyebabkan Microsoft
memutuskan
untuk
mengkombinasikan
Ruby dengan
bahasa
pemrograman Basic untuk membuat Visual Basic. Perkembangan visual basic dari dari waktu ke waktu sebagai berikut : 1. Proyek Thunder dimulai. 2. Visual Basic 1.0 dirilis untuk Windows pada Comdex/Windows Trade Show di Atlanta, Georgia pada Mei 1991. 3. Visual Basic 1.0 untuk DOS dirilis pada September 1992. Bahasa pemrogramannya sendiri tidak terlalu kompatibel dengan Visual Basic untuk Windows, karena sesungguhnya itu adalah versi selanjutnya dari kompiler BASIC berbasis DOS yang dikembangkan oleh Microsoft sendiri, yaitu QuickBASIC. Antarmuka dari program ini sendiri menggunakan antarmuka teks, dan memanfaatkan kode-kode ASCII tambahan untuk mensimulasikan tampilan GUI. 4. Visual
Basic
2.0
dirilis
pada
November
1992.
Lingkungan
pemrogramannya lebih mudah untuk digunakan, dan kecepatannya lebih ditingkatkan. 5. Visual Basic 3.0 dirilis pada musim semi 1993 dan hadir dalam dua versi: Standar dan Professional. VB3 juga menyertakan versi 1.1 dari Microsoft Jet Database Engine yang dapat membaca dan menulis database Jet/Access 1.x. 6. Visual Basic 4.0 (Agustus 1995) adalah versi pertama yang dapat membuat
program
32-bit
seperti
program
16-bit.
VB4
juga
23
memperkenalkan kemampuannya dalam membuat aplikasi non-GUI. Bila versi sebelumnya menggunakan kontrol VBX, sejak VB4 dirilis Visual Basic menggunakan kontrol OLE (dengan ekstensi file *.OCX), yang lebih dikenal kemudian dengan kontrol ActiveX. 7. Dengan versi 5.0 (Februari 1997), Microsoft merilis Visual Basic eksklusif untuk versi 32-bit dari Windows. Para programmer yang lebih memilih membuat kode 16-bit dapat meng-impor program yang ditulis dengan VB4 ke versi VB5, dan program-program VB5 dapat dikonversi dengan mudah ke dalam format VB4. 8. Visual Basic 6.0 (pertengahan 1998) telah diimprovisasi di beberapa bagian, termasuk kemampuan barunya, yaitu membuat aplikasi web. Meskipun kini VB6 sudah tidak didukung lagi, tetapi file runtime-nya masih didukung hingga Windows 7. 2.2.7.3 Kelebihan dan Kekurangan Bahasa Pemrograman Visual Basic 6.0 Visual Basic 6.0 dapat memanfaatkan seluruh fasilitas ataupun kemudahan dan kecanggihan yang dimiliki oleh sistem operasi Windows. Sehingga program aplikasi yang dibuat dengan menggunakan Visual Basic 6.0 dapat menampilkan komponen dengan cara kerja yang sama seperti aplikasi umumnya di lingkungan Windows. Kekurangan dan kelebihan bahasa pemograman ini yaitu : 1. Pemograman sederhana, banyak hal yang mungkin sulit di gunakan dengan menggunakan bahasa pemograman lainnya 2. Karena visual basic sangat popular, maka banyak sumber-sumber yang dapat digunakan untuk dipelajari baik berupa buku ataupun web 3. Bahasa pemograman yang tidak terlalu bagus untuk membuat yang benarbenar memuaskan 4. Lebih lambat dibanding bahasa pemograman lainnya.
24
2.2.8 Flowchart Flowchart adalah penyajian yang sistematis tentang proses dan logika dari kegiatan penanganan informasi atau penggambaran secara grafik dari langkahlangkah dan urut-urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian. Sistem flowchart adalah urutan proses dalam system dengan menunjukkan alat media input, output serta jenis media penyimpanan dalam proses pengolahan data. Program flowchart adalah suatu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses (instruksi) dengan proses lainnya dalam suatu program. 2.2.8.1 Pedoman-pedoman dalam Membuat Flowchart Jika seorang analis dan programmer akan membuat flowchart, ada beberapa petunjuk yang harus diperhatikan, seperti : 1. Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke kanan. 2. Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti oleh pembacanya. 3. Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas. 4. Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja, misalkan Melakukan penggandaan diri. 5. Setiap langkah dari aktivitas harus berada pada urutan yang benar. 6. Lingkup dan range dari aktifitas yang sedang digambarkan harus ditelusuri dengan hati-hati. Percabangan-percabangan yang memotong aktivitas yang sedang digambarkan tidak perlu digambarkan pada flowchart yang sama. Simbol konektor harus digunakan dan percabangannya diletakan pada halaman yang terpisah atau hilangkan seluruhnya bila percabangannya tidak berkaitan dengan sistem. 7. Gunakan simbol-simbol flowchart yang standar.
25
Simbol dan fungsi flowchart ditunjukkan pada tabel 2.3 berikut: Tabel 2.3 Simbol-simbol flowchart
Simbol
Nama Terminator
Fungsi Permulaan / akhir program.
Garis Alir
Arah aliran program.
Preparation
Proses inisialisasi / pemberian harga awal.
Proses
Proses perhitungan / proses pengolahan data.
Input / Output Data
Proses input / output data, parameter, informasi.
Predefined Process
Permulaan sub program / proses menjalankan sub program.
Decision
Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya.
On Page Connector
Penghubung bagian – bagian flowchart yang berada pada satu halaman.
Off Page Connector
Penghubung bagian – bagian flowchart yang berada pada halaman berbeda.
26
Pada gambar 2.4 merupakan contoh flowchart algoritma untuk menghitung sisa bagi antara dua bilangan, apakah sisa ataukah tidak sisa,jika sisa maka maka cetak genap jika tidak sisa maka cetak ganjil. Start
Input bilangan
Hitung sisa bagi antara bilangan 2
Apakah sisa = 0
Tidak
Ya
Cetak genap
Cetak ganjil
End
Gambar 2.4 Contoh flowchart
2.2.9 Pemodelan Sistem Suatu definisi yang dapat dipahami dengan baik dari pengertian Pemodelan Sistem, maka harus mengetahui secara mendalam apa arti dari dua kata Pemodelan (Model) dan Sistem. Model adalah adalah rencana, representasi, atau deskripsi yang menjelaskan suatu objek, sistem, atau konsep, yang seringkali berupa penyederhanaan atau idealisasi. Bentuknya dapat berupa model fisik (maket, bentuk prototipe), model citra (gambar, komputerisasi, grafis dll), atau rumusan matematis (Nugroho, 2005). Sistem adalah suatu kesatuan yang terdiri komponen atau elemen yang dihubungkan bersama untuk memudahkan aliran informasi, materi atau energi.
27
Menurut Anatol Rapoport Sistem adalah “satu kesatuan yang berfungsi sebagai satu kesatuan karena bagian-bagian yang saling bergantung dan sebuah metode yang bertujuan menemukan bagaimana sistem ini menyebabkan sistem yang lebih luas yang disebut sistem teori umum. Pemodelan Sistem adalah suatu bentuk penyederhanaan dari sebuah elemen dan komponen yang sangat komplek untuk memudahkan pemahaman dari informasi yang dibutuhkan (Nugroho, 2005). Karakteristik dari Pemodelan Sistem adalah : 1.
Dibuat dalam bentuk grafis dan tambahan keterangan secara tekstual.
2.
Dapat diamati dengan pola top-down dan partitioned.
3.
Memenuhi persyaratan minimal redundancy.
4.
Dapat mempresentasikan tingkah laku sistem dengan cara yang transparan. Karakteristik pemodelan diatas, dapat diambil kesimpulan bahwa model
dibuat dalam bentuk grafis atau bergambar sehingga dapat memudahkan dan dilengkapi juga dengan keterangan dari gambar atau grafis. Alur dari proses model tersebut dapat di lihat dan diamati, memenuhi syarat minimal reudansi dan dapat mempresentasikan proses dari pada system yang dibuat dan dapat di pahami. Menurut Grady Booch, James Rumbaugh dan Ivar Jacobson Prinsip dari Pemodelan adalah: 1.
Memilih model apa yang di gunakan, bagaimana masalahnya dan bagaimana juga dengan solusinya.
2.
Setiap Model dapat dinyatakan dalam tingkatan yang berbeda
3.
Model yang terbaik adalah yang berhubungan dengan realitas.
4.
Tidak pernah ada model tunggal yang cukup baik, setiap sistem yang baik memilik serangkaian model kecil yang independen. Prinsip pemodelan sistem tidak menitik beratkan pada bentuk model untuk
merancang sebuah sitem, bentuk model bisa menggunakan bentuk apa saja, sesuai dengan keinginan, yang terpenting adalah harus mampu merepresentasikan visualisasi bentuk sistem yang diinginkan oleh user, karena sistem akhir yang dibuat bagi user akan diturunkan dari hasil model tersebut (Nugroho, 2005). Tiga alasan yang menyebabkan sebaiknya dilakukan pemodelan sistem, yaitu dapat melakukan perhatian pada hal-hal penting dalam sistem tanpa mesti
28
terlibat terlalu jauh, mendiskusikan perubahan dan koreksi terhadap kebutuhan pemakai dengan resiko dan biaya minimal, menguji pengertian penganalisa sistem terhadap kebutuhan pemakai dan membantu pendesainsistem dan pemrogram membangun sistem.Perangkat yang digunakan untuk memodelkan suatu sistem diantaranya adalah (Nugroho, 2005): 1.
Context Diagram
2.
Data Flow Diagram
3.
Kamus Data
4.
Spesifikasi Proses Banyak model yang dapat digunakan dalam perancangan sistem antara
lain model narasi, model prototype, model grafis dan lain-lain. Bukan masalah model yang harus digunakan yang jelas harus mampu merepresentasikan visualisasi bentuk sistem yang diinginkan pemakai, karena sistem akhir yang dibuat bagi pemakai akan diturunkan dari model tersebut (Nugroho, 2005). 2.2.9.1 Context Diagram Context Diagram merupakan kejadian tersendiri dari suatu diagram alir data, dimana satu lingkaran merepresentasikan seluruh sistem. Context Diagram harus berupa suatu pandangan yang mencakup masukan-masukan dasar, sistemsistem dan keluaran (Jogiyanto, 2005). Context Diagram merupakan tingkatan tertinggi dalam diagram aliran data dan hanya memuat satu proses, menunjukkan sistem secara keseluruhan. Proses tersebut diberi nomor nol. Semua entitas eksternal yang ditunjukkan pada diagram konteks berikut aliran data-aliran data utama menuju dan dari sistem. Diagram tersebut tidak memuat penyimpanan data dan tampak sederhana untuk diciptakan, begitu entitas-entitas eksternal serta aliran data menuju dan dari sistem diketahui penganalisis
dari
wawancara
dengan
user
dan
sebagai
hasil
analisis
dokumen.Context Diagram menggaris bawahi sejumlah karakteristik penting dari suatu sistem (Jogiyanto, 2005): 1.
Kelompok pemakai, organisasi, atau sistem lain serta sistem melakukan komunikasi yang disebut juga sebagai terminator.
29
2.
Data sistem menerima dari lingkungan dan harus diproses dengan cara tertentu.
3.
Data yang dihasilkan sistem dan diberikan ke dunia luar.
4.
Penyimpanan data yang digunakan secara bersama antara sistem dengan terminator. Data dibuat oleh sistem dan digunakan oleh lingkungan atau sebaliknya, dibuat oleh lingkungan dan digunakan oleh sistem.
5.
Batasan antara sistem dan lingkungan. Gambar 2.5 adalah sebuah contoh Context diagram untuk sistem
pemesanan makanan. Customer
Customer
Receipt
Kitchen
Sistem Pemesanan Makanan
Management Report
Food Order
Manager Restaurant
Gambar 2.5 Contoh context diagram (Sumber: Jogiyanto, 2005)
2.2.9.2 Data Flow Diagram Data Flow Diagram (DFD) adalah alat pembuatan model yang memungkinkan profesional sistem untuk menggambarkan sistem sebagai suatu jaringan proses fungsional yang dihubungkan satu sama lain dengan alur data, baik secara manual maupun komputerisasi. DFD ini sering disebut juga dengan nama Bubble chart, Bubble diagram, model proses, diagram alur kerja, atau model fungsi. DFD adalah salah satu alat pembuatan model yang sering digunakan, khususnya bila fungsi-fungsi sistem merupakan bagian yang lebih penting dan kompleks dari pada data yang dimanipulasi oleh sistem. DFD adalah alat pembuatan model yang memberikan penekanan hanya pada fungsi sistem. (Jogiyanto, 2005)
30
DFD merupakan alat perancangan sistem yang berorientasi pada alur data dengan konsep dekomposisi dapat digunakan untuk penggambaran analisa maupun rancangan sistem yang mudah dikomunikasikan oleh profesional sistem kepada pemakai maupun pembuat program. (Jogiyanto, 2005) Empat simbol dasar yang digunakan untuk memetakan gerakan diagram aliran data adalah, (Jogiyanto, 2005) 1. External Entity (Entitas)/terminator Entitas ini disebut juga sumber atau tujuan data, dan dianggap eksternal terhadap sistem yang sedang digambarkan. Entitas diberi label dengan sebuah nama yang sesuai.
Gambar 2.6 Simbol entitas luar
Kotak tersebut digunakan untuk menggambarkan suatu entitas eksternal (bagian lain, sebuahperusahaan, seseorang atau sebuah mesin) yang dapat mengirim data atau menerima data dari sistem. Meskipun berinteraksi dengan sistem, namun dianggap di luar batas-batas sistem. Entitas tersebut harus diberi nama dengan suatu kata benda entitas yang sama bisa digunakanlebih dari sekali atas suatu diagram aliran data tertentu untuk menghindari persilangan antara jalurjalur aliran data. 2. Data Flow / Arus Data Tanda panah menunjukkan perpindahan data dari satu titik ke titik yang lain, engankepala tanda panah mengarah ke tujuan data
Gambar 2.7 Simbol arus data
Karena sebuah tanda panah menunjukkan seseorang, tempat atau sesuatu, maka harus digambarkan dalam kata benda. 3. Process / Proses Bujur sangkar dengan sudut membulat/lingkaran digunakan untuk menunjukkan adanya
proses transformasi.
Proses-proses tersebut
selalu
31
menunjukkan suatu perubahan dalam di dalam atau perubahan data, aliran data yang meninggalkan suatu proses selalu diberi label yang berbeda dari aliran data yang masuk.
atau Gambar 2.8 Simbol proses
Proses-proses yang menunjukkan hal itu di dalam sistem dan harus diberi nama menggunakan salah satu format berikut ini. Sebuah nama yang jelas memudahkan untuk memahami proses apa yang sedang dilakukan. 4. Data Store (Penyimpanan Data)
Gambar 2.9 Simbol penyimpanan data
Data store dilambangkan dengan bujur sangkar dengan ujung terbuka. Menunjukkan penyimpanan data. Penyimpanan data menandakan penyimpanan manual, seperti lemari file/sebuah file/basisdata terkomputerisasi, karena penyimpanan data mewakili seseorang, tempat atau sesuatu, maka diberi nama dengan sebuah kata benda. Penyimpanan data sementara seperti kertas catatan/sebuah file komputer sementara tidak dimasukkan ke dalam diagram aliran data (Jogiyanto, 2005).