bab ii kajian pustaka 2.1 tinjauan mutakhir ii.pdf · atau pendekatan terbaru yang ada hubungannya...
TRANSCRIPT
5
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 yang menggunakan header file sizeofcode dan
AddressOfEntryPoint sebagai pattern virus yang dirancang, 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
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 teori-
teori 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 komponen-
komponen untuk mendukung proses pengolahan data. Adapun komponen-
komponen 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, program-
program 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
terhadap file, dalam proses
penyebarannya hanya mengendalikan
file anak atau duplikasi dijalankan
baik secara otomatis maupun manual
oleh pengguna komputer
Melakukan infeksi terhadap file yang
dapat dijadikan inang seperti exe, scr,
com dan pif. Dengan demikian,
apabila user menjalankan file yang
terinfeksi virus akan ikut berjalan dan
menginfeksi sistem.
Manipulasi yang dilakukan lebih
rendah, sehingga beberapa jenis worm
dapat dibasmi dengan mudah, tetapi
ada sebagian juga yang punya
manipulasi tingkat tinggi.
Manipulasi yang dilakukan lebih
tinggi daripada worm, sehingga lebih
bertahan lama jika sudah menginfeksi
sistem.
Sebagian besar membuat file duplikat
lebih banyak, sehingga lebih mudah
dicari sumber aslinya. Biasanya
berupa file exe, scr, pif, com, bat, vbd,
db, dan vmx.
Hampir tidak ada yang membuat
duplikasi karena dilengkapi dengan
teknik infeksi program lain. Untuk
mendapatkan sumbernya, harus
mencari induknya yang biasanya
berupa file *.dll
Kebanyakan memakai icon-icon yang
unik, seperti icon folder, dokumen,
xls, game, dan lain-lain.
Memakai icon standar executable.
Contoh nyata : brontok, tati, conficker,
parents, dan lain-lain
Contoh nyata : alman, sality, virut, dan
lain-lain.
Sumber : Hirin, 2010
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 mengen-
dalikan 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:
Pesan 1000...000 Panjang Pesan
K bit < 264 Padding bits K
L x 512 bit = N x 32 bit
Y0 ... ...Y
1Y
qY
L - 1
512 512512 512
HSHA
HSHAABCD
512 512
160160 160H
SHA
512
160 160H
SHA
512
160
160
Message Digest
(1 - 512 bit)
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 blok-
blok 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
),,( 0KYABCDEfABCDE q
A B C D
...
A B C D
+ + + +
MDq
MDq + 1
160
Yq
512
E
A B C D E
),,( 1KYABCDEfABCDE q
),,( 79KYABCDEfABCDE q
E
Gambar 2.2 Pengolahan blok 512 bit (Proses HSHA)
(Sumber: Alderson, 2002)
Proses HSHA terdiri dari 80 buah putaran (MD5 hanya 4 putaran), dan masing-
masing 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
+
+
+
+
ai
bi
ci
di
ei
Wt
Kt
CLS5
CLS30
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 b c d
40 .. 59 (b c) (b d) (c d)
60 .. 79 b c d
(Sumber: Alderson, 2002)
Yang mana pada tabel diatas operator logika AND, OR, NOT, XOR masing-
masing 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, Program-
program 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 berfungsi sebagai
pembelajaran bagi konsep dasar pemrograman (Jesse, 2005).
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 benar-
benar 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 langkah-
langkah 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 Fungsi
Terminator 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
Cetak
genapCetak ganjil
End
Ya
Tidak
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, sistem-
sistem 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.
Sistem Pemesanan
Makanan
Customer Kitchen
Manager
Restaurant
Receipt
Food OrderCustomer
Management
Report
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 jalur-
jalur 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).