Pertama kita harus mengerti bagaimana cara kerja
sebuah AV sederhana, pada dasarnya sebuah software AV mempunyai
komponen-komponen :
1. Engine scanner, ini merupakan komponen utama AV
dalam mengenali sebuah pattern virus. Engine ini dapat dikelompokkan
menjadi statis dan dinamis. Statis dalam hal ini dapat disebut menjadi
spesifik terhadap pattern tertentu dari sebuah file virus. Checksum
merupakan salah satu contoh dari engine statis ini. Dinamis dalam
artian dia mengenali perilaku ‘umum’ sebuah virus. Heuristic menjadi
salah satu contohnya.
2. Database definition, menjadi sebuah referensi dari sebuah pattern
file virus. Engine statis sangat bergantung kepada komponen ini.
3. Decompress atau unpacking engine, khusus untuk pengecekan file-file
yang terkompresi (*.rar, *.zip, dll) atau kompresi atau packing untuk
file PE seperti UPX, MeW , dll.
Tidak jarang hasil dari pengecekan terhadap file
suspect virus menghasilkan false-positive bahkan false-negative (–
false-positive berarti file yang bersih dianggap thread oleh AV, dan
false-negative berarti file yang 100% thread akan dianggap bersih).
Semua itu dapat diakibatkan oleh ketidak-sempurnaan dari engine scanner
itu sendiri. Misal
pada contoh kasus Engine String scanner (–Engine scanner yang
menyeleksi string-string dari file text-based), bila diterapkan rule 3
out of 5 (– bila AV menemukan 3 dari daftar 5 string kategori
malicious) maka AV akan memberikan bahwa file terindikasi sebuah thread
yang positif. Padahal file tsb nyatanya tidak menimbulkan efek
berbahaya bila dijalankan atau dieksekusi. Kesalahan scanning macam ini
lazim ditemukan untuk file-file *.VBS, *.HTML, dll. Untuk penggunaan
engine checksum sangat banyak ditemui di beberapa software AV lokal.
Checksum yang lazim digunakan diantaranya CRC16, CRC32, MD5, dll.
Dikarenakan mudah untuk diimplementasikan. Engine ini sendiri bukannya
tanpa cacat, Checksum bekerja dengan memproses byte demi byte dari
sebuah file dengan sebuah algoritma tertenu (– tergantung dari jenis
checksum yang digunakan) sehingga menghasilkan sebuah format tertentu
dari file tsb. Contoh checksum menggunakan CRC32 dan MD5 :
* calCrc = CRC32(file_name_and_path)
* calMD5 = MD5(file_name_and_path)
Maka isi dari string calCrc adalah 7AF9E376,
sedangkan untuk MD5nya adalah 529CA8050A00180790CF88B63468826A. Perlu
diketahui bila virus menerapkan rutin yang mengubah byte tertentu dari
badan virus tsb setiap kali maka penggunaan engine checksum ini akan
kurang optimal karena bila 1 byte berubah dari file maka checksum juga
akan berubah.
Mari kita belajar membuat sebuah AV sederhana, yang diperlukan :
1. Software Visual Basic 6.0
2. Sedikit pemahaman akan pemograman Visual Basic 6.0
3. Sampel file bersih atau virus (– opsional)
First#
Sekarang kita akan belajar membuat sebuah rutin sederhana untuk :
- Memilih file yang akan dicek
- Membuka file tersebut dalam mode binary
- Memproses byte demi byte untuk menghasilkan Checksum
Buka MS-Visual Basic 6.0 anda, lalu buatlah sebuah
class module dan Form dengan menambahkan sebuah objek Textbox,
CommonDialog dan Command Button. (Objek CommonDialog dapat ditambahkan
dengan memilih Project -> COmponent atau Ctrl-T dan memilih
Microsoft Common Dialog Control 6.0) Ketikkan kode berikut pada class
module (kita beri nama class module tsb clsCrc) :
================= START HERE ====================
Private crcTable(0 To 255) As Long ‘crc32
Public Function CRC32(ByRef bArrayIn() As Byte, ByVal lLen As Long, Optional ByVal lcrc As Long = 0) As Long
‘bArrayIn adalah array byte dari file yang dibaca, lLen adalah ukuran atau size file
Dim lCurPos As Long ‘Current position untuk iterasi proses array bArrayIn
Dim lTemp As Long ‘variabel temp hasil perhitungan
If lLen = 0 Then Exit Function ‘keluar fungsi apabila ukuran file = 0
lTemp = lcrc Xor &HFFFFFFFF
For lCurPos = 0 To lLen
lTemp = (((lTemp And &HFFFFFF00) \\ &H100) And &HFFFFFF) Xor (crcTable((lTemp And 255) Xor bArrayIn(lCurPos)))
Next lCurPos
CRC32 = lTemp Xor &HFFFFFFFF
End Function
Private Function BuildTable() As Boolean
Dim i As Long, x As Long, crc As Long
Const Limit = &HEDB88320
For i = 0 To 255
crc = i
For x = 0 To 7
If crc And 1 Then
crc = (((crc And &HFFFFFFFE) \\ 2) And &H7FFFFFFF) Xor Limit
Else
crc = ((crc And &HFFFFFFFE) \\ 2) And &H7FFFFFFF
End If
Next x
crcTable(i) = crc
Next i
End Function
Private Sub Class_Initialize()
BuildTable
End Sub
================= END HERE ====================
Lalu ketikkan kode berikut dalam event Command1_Click :
================= START HERE ====================
Dim namaFileBuka As String, HasilCrc As String
Dim CCrc As New clsCrc ‘bikin objek baru dari class ClsCrc
Dim calCrc As Long
Dim tmp() As Byte ‘array buat file yang dibaca
Private Sub Command1_Click()
CommonDialog1.CancelError = True ‘error bila user mengklik cancel pada CommonDialog
CommonDialog1.DialogTitle = “Baca File” ‘Caption commondialog
On Error GoTo erorhandle ‘label error handle
CommonDialog1.ShowOpen
namafilbuka = CommonDialog1.FileName
Open namafilbuka For Binary Access Read As #1 ‘buka file yang dipilih dengan akses baca pada mode binary
ReDim tmp(LOF(1) – 1) As Byte ‘deklarasi ulang untuk array, # Bugs Fixed #
Get #1, , tmp()
Close #1
calCrc = UBound(tmp) ‘mengambil ukuran file dari array
calCrc = CCrc.CRC32(tmp, calCrc) ‘hitung CRC
HasilCrc = Hex(calCrc) ‘diubah ke format hexadesimal, karena hasil perhitungan dari class CRC masih berupa numeric
Text1.Text = HasilCrc ‘tampilkan hasilnya
Exit Sub
erorhandle:
If Err.Number <> 32755 Then MsgBox Err.Description ‘error number
32755 dalah bila user mengklik tombol cancel pada saat memilih file
================= END HERE ====================
COba anda jalankan program diatas dengan memencet
tombol F5, lalu klik Command1 untuk memilih dan membuka file. Maka
program akan menampilkan CRC32nya.
Second#
Kode diatas dapat kita buat menjadi sebuah rutin pengecekan file
suspect virus dengan antara membandingkan hasil CRC32nya dan database
CRC kita sendiri. Algoritmanya adalah :
- Memilih file yang akan dicek
- Membuka file tersebut dalam mode binary
- Memproses byte demi byte untuk menghasilkan Checksum
- Buka file database
- Ambil isi file baris demi baris
- Samakan Checksum hasil perhitungan dengan checksum dari file
Format file database dapat kita tentukan sendiri, misal :
- FluBurung.A=ABCDEFGH
- Diary.A=12345678
Dimana FluBurung.A adalah nama virus dan ABCDEFGH dalah Crc32nya. Jika
kita mempunyai format file seperti diatas, maka kita perlu membaca file
secara sekuensial per baris serta memisahkan antara nama virus dan
Crc32nya. Dalam hal ini yang menjadi pemisah adalah karakter ‘=’.
Buat 1 module baru (– diberi nama module1) lalu isi dengan kode :
================= START HERE ====================
Public namaVirus As String, CrcVirus As String
‘deklarasi variabel global untuk nama dan CRC virus Public pathExe as
String ‘deklarasi variabel penyimpan lokasi file EXE AV kita
Public Function cariDatabase(Crc As String, namaFileDB As String) As Boolean
Dim lineStr As String, tmp() As String ‘variabel penampung untuk isi file
Open namaFileDB For Input As #1 ‘buka file dengan mode input
Do
Line Input #1, lineStr
tmp = Split(lineStr, “=”) ‘pisahkan isi file bedasarkan pemisah karakter ‘=’
namaVirus = tmp(0) ‘masukkan namavirus ke variabel dari array
CrcVirus = tmp(1) ‘masukkan Crcvirus ke variabel dari array
If CrcVirus = Crc Then ‘bila CRC perhitungan cocok/match dengan database
cariDatabase = True ‘kembalikan nilai TRUE
Exit Do ‘keluar dari perulangan
End If
Loop Until EOF(1)
Close #1
End Function
================= END HERE ====================
Lalu tambahkan 1 objek baru kedalam Form, yaitu
Command button2. lalu ketikkan listing kode berikut kedalam event
Command2_Click :
================= START HERE ====================
If Len(App.Path) <= 3 Then ‘bila direktori kita adalah root direktori
pathEXE = App.Path
Else
pathEXE = App.Path & “\\”
End If
CommonDialog1.CancelError = True ‘error bila user mengklik cancel pada CommonDialog
CommonDialog1.DialogTitle = “Baca File” ‘Caption commondialog
On Error GoTo erorhandle ‘label error handle
CommonDialog1.ShowOpen
namafilbuka = CommonDialog1.FileName
Open namafilbuka For Binary Access Read As #1 ‘buka file yang dipilih dengan akses baca pada mode binary
ReDim tmp(LOF(1) – 1) As Byte ‘deklarasi ulang untuk array # Bugs Fixed #
Get #1, , tmp()
Close #1
calCrc = UBound(tmp) ‘mengambil ukuran file dari array
calCrc = CCrc.CRC32(tmp, calCrc) ‘hitung CRC
HasilCrc = Hex(calCrc) ‘diubah ke format hexadesimal, karena hasil perhitungan dari class CRC masih berupa numeric
If cariDatabase(HasilCrc, pathEXE & “DB.txt”) Then ‘bila fungsi bernilai TRUE
MsgBox “Virus ditemukan : ” & namaVirus ‘tampilkan message Box
End If
Exit Sub
erorhandle:
If Err.Number <> 32755 Then MsgBox Err.Description ‘error number
32755 dalah bila user mengklik tombol cancel pada saat memilih file
================= END HERE ====================
Fitur AV sederhana ini dapat ditambahkan dengan
fitur process scanner, akses registry, real-time protection (RTP) dan
lain lain. Untuk process scanner pada dasarnya adalah teknik enumerasi
seluruh proses yang sedang berjalan pada Sistem Operasi, lalu mencari
letak atau lokasi file dan melakukan proses scanning.
Kamis, 16 Juni 2011
MENINGKATKAN KINERJA WINDOWS XP
Saya beberapa kali menjumpai komputer (PC) atau Laptop dengan spesifikasi komputer yang relatif menengah keatas, tetapi ketika menjalankan program / browsing di windows explorer, sering terasa lambat. Setelah diperiksa, seringkali pengguna kurang memperhatikan bagaimana [tip] meningkatkan kinerja windows XP yang digunakan.
Sebenarnya banyak cara/tips untuk meningkatkan kinerja Windows, bisa dilakukan secara software maupu hardware. Yang akan dibahas disini adalah meningkatkan kinerja Windows (secara software) dengan 3 langkah sederhana.
1. Mengatur Seting “Performance Options”
Klik kanan My Computer pilih tab Advanced dan Klik Setting pada bagian Performance
Agar komputer berkerja lebih cepat, maka bisa dipilih Adjust for best performance, tetapi jika ingin tetap menggunakan tampilan XP, pilih saja (beri tanda cek) pada pilihan :
Use visual styles on windows and buttons
Smooth edges of screen fonts
Use drop shadows for icon labels on the desktop (jika icon desktop diaktifkan)
Animasi lainnya tidak begitu penting, jadi di hilangkan tanda cek-nya.
2. Mengatur aplikasi yang berjalan dengan windows
Ini mungkin akan banyak berpengaruh ke kinerja dan penggunaan Memori. Sebagian pengguna tidak begitu memperhatikan apa saja aplikasi yang otomatis berjalan bersama windows ketika start up. Padahal banyak aplikasi yang tidak penting, tetapi selalu berjalan di backround, sehingga ikut memakan Memory (RAM) komputer dan kadang memperberat kinerja.
Jika anda menggunakan laptop, maka biasanya aplikasi yang otomatis berjalan dengan windows akan semakin banyak. Salah satu indikasinya adalah banyaknya icon yang ada di sistem tray. Bagaimana mengatur dan memeriksa aplikasi-aplikasi yang berjalan dengan windwos ini ?
Cara paling mudah dan disarankan adalah menggunakan software gratis Autorun, bisa di download di http://technet.microsoft.com/en-us/sysinternals/bb963902.aspx atau Download langsung (zip) Autorun
Selain ukuran yang kecil, software ini bersifat portable. Tetapi mungkin ini adalah aplikasi autorun terbaik yang ada selama ini. Setelah di download, jalankan dan pilih tab Logon. Nah daftar yang ditampilkan adalah daftar aplikasi yang otomatis berjalan bersama windows. Hilangkan tanda cek agar aplikasi tidak otomatis berjalan.
Aplikasi yang tidak penting misalnya fasilitas auto update / registration dari program-program seperti Printer, Adobe acrobat, CorelDraw dan lainnya. Selain itu berikut beberapa aplikasi yang sering ikut berjalan bersama windows, tetapi tidak begitu penting :
Adobe Acrobat SpeedLauncher
Alcmtr ( Realtek Azalia Audio – Event Monitor)
EPSON Status Monitor ( jika menggunakan printer lain, seperti HP, Canon dan lainnya biasanya juga ada )
RTHDCPL (Realtek HD Audio Control Panel)
Skytel (Realtek Voice Manager)
SunJavaUpdSched ( Java(TM) Platform SE binary)
dan lain-lainnya
Tip ini seharusnya juga akan mempercepat proses booting komputer. Jika masih lambat, coba baga juga artikel Tips mengatasi booting/loading komputer yang lambat
Perhatian..!! Jangan menghilangkan tanda chek (centang) di 2 komponen yang berada atas, yaitu userinit.exe dan explorer.exe, karena bisa menyebabkan windows tidak ada bisa masuk (login).. Jika hal ini terjadi, maka ketika booting (setelah restart) tekan-tekan tombol F8 sampai muncul pilihan booting, untuk selanjutnya pilih Safe Mode. Kemudian login dengan user seperti yang dipakai sebelumnya. Setelah masuk safe Mode, buka/jalankan Autoruns dan aktifkan kembali 2 komponen diatas, kemudian restart ulang.
3. Mematikan Indexing Service
Indexing service merupakan fasilitas windows untuk membuat dan mengupdate index file/folder secara berkala, sehingga ketika menggunakan fasilitas Search di explorer, maka pencarian bisa lebih cepat. Kadang fitur ini sering membuat kinerja PC menjadi lambat, apalagi jika jarang menggunakan fasilitas Search/Find. Untuk menon aktifkannya melalui langkah berikut :
Buka Control Panel > Add or Remove Programs
Pilih Add/ Remove Windows Components
Hlangkan tanda cek pada Indexing Service klik saja next
Tunggu proses sampai selesai
Yang jelas maih banyak tips yang lain untuk meningkatkan kinerja windows [XP], tetapi minimal dengan dua langkah pertama tersebut, akan terasa perbedaannya.
Sebenarnya banyak cara/tips untuk meningkatkan kinerja Windows, bisa dilakukan secara software maupu hardware. Yang akan dibahas disini adalah meningkatkan kinerja Windows (secara software) dengan 3 langkah sederhana.
1. Mengatur Seting “Performance Options”
Klik kanan My Computer pilih tab Advanced dan Klik Setting pada bagian Performance
Agar komputer berkerja lebih cepat, maka bisa dipilih Adjust for best performance, tetapi jika ingin tetap menggunakan tampilan XP, pilih saja (beri tanda cek) pada pilihan :
Use visual styles on windows and buttons
Smooth edges of screen fonts
Use drop shadows for icon labels on the desktop (jika icon desktop diaktifkan)
Animasi lainnya tidak begitu penting, jadi di hilangkan tanda cek-nya.
2. Mengatur aplikasi yang berjalan dengan windows
Ini mungkin akan banyak berpengaruh ke kinerja dan penggunaan Memori. Sebagian pengguna tidak begitu memperhatikan apa saja aplikasi yang otomatis berjalan bersama windows ketika start up. Padahal banyak aplikasi yang tidak penting, tetapi selalu berjalan di backround, sehingga ikut memakan Memory (RAM) komputer dan kadang memperberat kinerja.
Jika anda menggunakan laptop, maka biasanya aplikasi yang otomatis berjalan dengan windows akan semakin banyak. Salah satu indikasinya adalah banyaknya icon yang ada di sistem tray. Bagaimana mengatur dan memeriksa aplikasi-aplikasi yang berjalan dengan windwos ini ?
Cara paling mudah dan disarankan adalah menggunakan software gratis Autorun, bisa di download di http://technet.microsoft.com/en-us/sysinternals/bb963902.aspx atau Download langsung (zip) Autorun
Selain ukuran yang kecil, software ini bersifat portable. Tetapi mungkin ini adalah aplikasi autorun terbaik yang ada selama ini. Setelah di download, jalankan dan pilih tab Logon. Nah daftar yang ditampilkan adalah daftar aplikasi yang otomatis berjalan bersama windows. Hilangkan tanda cek agar aplikasi tidak otomatis berjalan.
Aplikasi yang tidak penting misalnya fasilitas auto update / registration dari program-program seperti Printer, Adobe acrobat, CorelDraw dan lainnya. Selain itu berikut beberapa aplikasi yang sering ikut berjalan bersama windows, tetapi tidak begitu penting :
Adobe Acrobat SpeedLauncher
Alcmtr ( Realtek Azalia Audio – Event Monitor)
EPSON Status Monitor ( jika menggunakan printer lain, seperti HP, Canon dan lainnya biasanya juga ada )
RTHDCPL (Realtek HD Audio Control Panel)
Skytel (Realtek Voice Manager)
SunJavaUpdSched ( Java(TM) Platform SE binary)
dan lain-lainnya
Tip ini seharusnya juga akan mempercepat proses booting komputer. Jika masih lambat, coba baga juga artikel Tips mengatasi booting/loading komputer yang lambat
Perhatian..!! Jangan menghilangkan tanda chek (centang) di 2 komponen yang berada atas, yaitu userinit.exe dan explorer.exe, karena bisa menyebabkan windows tidak ada bisa masuk (login).. Jika hal ini terjadi, maka ketika booting (setelah restart) tekan-tekan tombol F8 sampai muncul pilihan booting, untuk selanjutnya pilih Safe Mode. Kemudian login dengan user seperti yang dipakai sebelumnya. Setelah masuk safe Mode, buka/jalankan Autoruns dan aktifkan kembali 2 komponen diatas, kemudian restart ulang.
3. Mematikan Indexing Service
Indexing service merupakan fasilitas windows untuk membuat dan mengupdate index file/folder secara berkala, sehingga ketika menggunakan fasilitas Search di explorer, maka pencarian bisa lebih cepat. Kadang fitur ini sering membuat kinerja PC menjadi lambat, apalagi jika jarang menggunakan fasilitas Search/Find. Untuk menon aktifkannya melalui langkah berikut :
Buka Control Panel > Add or Remove Programs
Pilih Add/ Remove Windows Components
Hlangkan tanda cek pada Indexing Service klik saja next
Tunggu proses sampai selesai
Yang jelas maih banyak tips yang lain untuk meningkatkan kinerja windows [XP], tetapi minimal dengan dua langkah pertama tersebut, akan terasa perbedaannya.
MENINGKATKAN KINERJA PC(KOMPUTER)
Seiring dengan banyaknya software/program yang di install di komputer, sering kita merasa kinerja komputer kita menjadi semakin lambat. Atau kadang kita tahunya komputer kita semakin lambat kinerjanya. Hal ini wajar apalagi dengan semakin lamanya penggunaan komputer dengan berbagai program didalamnya.
Sebenarnya kinerja komputer bisa dipengaruhi oleh banyak faktor, baik software maupun hardware. Ada berbagai tips yang dapat dilakukan agar kinerja komputer menjadi lebih baik. Berikut beberapa tips yang mungkin dapat dilakukan dan mungkin sebagian sudah umum kita lakukan atau kita dengar.
1. Uninstall program yang tidak dipakai
Meskipun tidak dijalankan, program yang jarang atau tidak pernah digunakan bisa ikut mempengaruhi kinerja komputer. Terutama program yang menyimpan seting-setingnya di registry. Mengapa ? karena setiap kali komputer dijalankan, registry windows akan di load di memory, sehingga semakin besar ukurannya, memori yang digunakan akan semakin besar pula.
2. Periksa program-program yang otomatis berjalan dengan Windows
Hal ini bisa di cek dengan program seperti autoruns. Biasanya ada beberapa program yang selalu berjalan yang sebenarnya tidak begitu penting atau kurang penting.
3. Defragment hardisk
Ini bisa dilakukan melalui menu Properties > System Tools > Disk Defragment. Yang tujuannya untuk menata kembali file-file sesuai prioritasnya.
4. Mematikan service yang tidak terpakai
Hal ini memerlukan sedikit pengetahuan tentang komputer. Services merupakan program/library juga yang dijalankan (di load) setiap komputer hidup. Bisa dilihat melalui Control Panel > Administrative Tools > Services. Jika komputer tidak pernah digunakan online (internet), ada beberapa service yang bisa di non aktifkan. Misalnya Windows Time dan beberapa service lainnya ( bisa di cek keterangannya). Tapi hal ini juga perlu berhati-hati, jika salah bisa menyebabkan beberapa fungsi windows tidak berjalan.
5. Hindari penggunakan Skin windows
Kadang penggunaan tampilan/skin tambahan windows bisa mempengaruhi kinerja cukup signifikan. Terutama penggunaan software tambahan. Sebaiknya jika ingin tampilan yang berbeda gunakan saja Windows Themes (bawaan windows).
6. Matikan beberapa efek Visual Windows
Selain itu beberapa efek windows [xp] yang tidak begitu penting bisa di matikan. Bisa di dilakukan melalui klik kanan di My Computer pilih Properties. Di tab Advanced di bagian Performance klik tombol Settings. Bisa di non aktifkan Visual efek yang tidak begitu penting.
7. Batasi tambahan jumlah font
Ini berpengaruh ke aplikasi yang menggunakan Pilihan font seperti Microsoft Office. Dengan banyaknya font tambahan akan mempengaruhi ke memori yang digunakan dan loading akan terasa lebih lambat.
8. Hapus icon di desktop yang tidak penting
Sering program yang di install di komputer akan membuat shortcut baru (icon) di desktop. Jika kita jarang menggunakan icon-icon ini, lebih baik di hapus saja, bisa sedikit mengurangi pemakaian memori.
9. Scan komputer dari Virus, Spyware, trojan dan sejenisnya
Jika komputer terinfeksi virus, sebagian besar kinerjanya akan menurun, bahkan bisa-bisa komputer menjadi sangat lambat. Oleh karena itu sebaiknya selalu dijaga agar komputer bebas virus. kemudian jika komputer sering terkoneksi ke Internet, maka sebaiknya sekitar sebulan sekali komputer di scan dari spyware, mallware dan sejenisnya.
10. Gunakan alternatif software yang lebih ringan
Beberapa software kandang hanya digunakan untuk beberapa hal yang sederhana. Misalnya menggunakan ACDSee hanya untuk melihat-lihat gambar atau foto saja. Jika hanya ingin melihatl lihat gambar dengan format standard, maka bisa menggunakan Fasilitas bawaan windows, karena ACDSee cukup berat terutama versi-versi terbaru.
11. Menggunakan Software TuneUp, defragment dan sejenisnya.
Jika kita kesulitan dengan optimalisasi sistem manual dan ingin cara mudah, maka kita bisa menggunakan program-program TuneUp, Defragment registry, dan sejenisnya.
12. Upgrade hardware
Jika memiliki dana tambahan dan spesifikasi komputer masih pas-pasan maka bisa di upgrade hardwarenya seperti Memory, CPU atau VGA. Yang paling berpengaruh biasanya Memory dan CPU.
13. Install Ulang
Kadang sistem yang sangat lama dan penuh dengan program yang banyak tidak/jarang terpakai, meski sudah di optimalisasi masih saja lambat. Jika seperti itu, mungkin install ulang adalah solusi yang terbaik, karena biasanya dengan system yang lebih “fresh” kinerja bisa maksimal.
Cara-cara diatas mungkin hanya sebagian tips yang bisa dilakukan dan saya yakin masih banyak tips lain termasuk optimalisasi setting hardware. Jika ada tambahan tips lainnya,
Sebenarnya kinerja komputer bisa dipengaruhi oleh banyak faktor, baik software maupun hardware. Ada berbagai tips yang dapat dilakukan agar kinerja komputer menjadi lebih baik. Berikut beberapa tips yang mungkin dapat dilakukan dan mungkin sebagian sudah umum kita lakukan atau kita dengar.
1. Uninstall program yang tidak dipakai
Meskipun tidak dijalankan, program yang jarang atau tidak pernah digunakan bisa ikut mempengaruhi kinerja komputer. Terutama program yang menyimpan seting-setingnya di registry. Mengapa ? karena setiap kali komputer dijalankan, registry windows akan di load di memory, sehingga semakin besar ukurannya, memori yang digunakan akan semakin besar pula.
2. Periksa program-program yang otomatis berjalan dengan Windows
Hal ini bisa di cek dengan program seperti autoruns. Biasanya ada beberapa program yang selalu berjalan yang sebenarnya tidak begitu penting atau kurang penting.
3. Defragment hardisk
Ini bisa dilakukan melalui menu Properties > System Tools > Disk Defragment. Yang tujuannya untuk menata kembali file-file sesuai prioritasnya.
4. Mematikan service yang tidak terpakai
Hal ini memerlukan sedikit pengetahuan tentang komputer. Services merupakan program/library juga yang dijalankan (di load) setiap komputer hidup. Bisa dilihat melalui Control Panel > Administrative Tools > Services. Jika komputer tidak pernah digunakan online (internet), ada beberapa service yang bisa di non aktifkan. Misalnya Windows Time dan beberapa service lainnya ( bisa di cek keterangannya). Tapi hal ini juga perlu berhati-hati, jika salah bisa menyebabkan beberapa fungsi windows tidak berjalan.
5. Hindari penggunakan Skin windows
Kadang penggunaan tampilan/skin tambahan windows bisa mempengaruhi kinerja cukup signifikan. Terutama penggunaan software tambahan. Sebaiknya jika ingin tampilan yang berbeda gunakan saja Windows Themes (bawaan windows).
6. Matikan beberapa efek Visual Windows
Selain itu beberapa efek windows [xp] yang tidak begitu penting bisa di matikan. Bisa di dilakukan melalui klik kanan di My Computer pilih Properties. Di tab Advanced di bagian Performance klik tombol Settings. Bisa di non aktifkan Visual efek yang tidak begitu penting.
7. Batasi tambahan jumlah font
Ini berpengaruh ke aplikasi yang menggunakan Pilihan font seperti Microsoft Office. Dengan banyaknya font tambahan akan mempengaruhi ke memori yang digunakan dan loading akan terasa lebih lambat.
8. Hapus icon di desktop yang tidak penting
Sering program yang di install di komputer akan membuat shortcut baru (icon) di desktop. Jika kita jarang menggunakan icon-icon ini, lebih baik di hapus saja, bisa sedikit mengurangi pemakaian memori.
9. Scan komputer dari Virus, Spyware, trojan dan sejenisnya
Jika komputer terinfeksi virus, sebagian besar kinerjanya akan menurun, bahkan bisa-bisa komputer menjadi sangat lambat. Oleh karena itu sebaiknya selalu dijaga agar komputer bebas virus. kemudian jika komputer sering terkoneksi ke Internet, maka sebaiknya sekitar sebulan sekali komputer di scan dari spyware, mallware dan sejenisnya.
10. Gunakan alternatif software yang lebih ringan
Beberapa software kandang hanya digunakan untuk beberapa hal yang sederhana. Misalnya menggunakan ACDSee hanya untuk melihat-lihat gambar atau foto saja. Jika hanya ingin melihatl lihat gambar dengan format standard, maka bisa menggunakan Fasilitas bawaan windows, karena ACDSee cukup berat terutama versi-versi terbaru.
11. Menggunakan Software TuneUp, defragment dan sejenisnya.
Jika kita kesulitan dengan optimalisasi sistem manual dan ingin cara mudah, maka kita bisa menggunakan program-program TuneUp, Defragment registry, dan sejenisnya.
12. Upgrade hardware
Jika memiliki dana tambahan dan spesifikasi komputer masih pas-pasan maka bisa di upgrade hardwarenya seperti Memory, CPU atau VGA. Yang paling berpengaruh biasanya Memory dan CPU.
13. Install Ulang
Kadang sistem yang sangat lama dan penuh dengan program yang banyak tidak/jarang terpakai, meski sudah di optimalisasi masih saja lambat. Jika seperti itu, mungkin install ulang adalah solusi yang terbaik, karena biasanya dengan system yang lebih “fresh” kinerja bisa maksimal.
Cara-cara diatas mungkin hanya sebagian tips yang bisa dilakukan dan saya yakin masih banyak tips lain termasuk optimalisasi setting hardware. Jika ada tambahan tips lainnya,
Kamis, 09 Juni 2011
kasus normalisasi
CONTOH KASUS NORMALISASI
- 1. STUDI KASUS TOKO ABC
No. Faktur :
Tanggal :
Kepada :
No. | Nama | Jumlah | Harga | Total |
Total Bayar | ||||
Diskon | ||||
Jumlah Bayar |
2. Data Dictionary
- No.Faktur - Jumlah - Diskon
- Tanggal - Harga - Jumlah Bayar
- Kepada - Total
- Nama - Total bayar
3. Tahap Normalisasi
TAHAP-TAHAP NORMALISASI DATA
Mendasar pada faktur yang tertera di atas, maka gambaran database yang belum ternormalisasi adalah sebagai berikut :- Tabel yang memiliki field dengan banyak data / tidak tungga
No_Faktur | Tanggal | Nama_pelanggan | Daftar_Belanja |
05070101 | 29/05/07 | Pitoyo | Bedak, Beras, Minyak Tanah, Buku |
05070102 | 29/05/07 | Bowo | Baby Oil, Garam, Gula, Pensil |
05070103 | 30/05/07 | Erlina | Sikat gigi, Sabun, Odol, Sampo |
06070001 | 01/06/07 | Dayat | Beras |
2. Tabel dengan field yang mengalami repeating groups
No_Faktur | Tanggal | Nama_pelanggan | Belanja1 | Harga1 | Belanja2 | Harga2 | Belanja3 | Harga3 | Belanja4 | Harga4 |
05070101 | 29/05/07 | Pitoyo | Bedak | 1500 | Beras | 10000 | Minyak Tanah | 3500 | Buku | 2000 |
05070102 | 29/05/07 | Bowo | Baby Oil | 5600 | Garam | 2500 | Gula | 4000 | Pensil | 1500 |
05070103 | 30/05/07 | Erlina | Sikat gigi | 12000 | Sabun | 2500 | Odol | 13000 | Sampo | 16000 |
06070001 | 01/06/07 | Dayat | Beras | 25000 |
First Normal form (1-NF)
Implementasi 1-NF dari table data yang belum ternormalisasi di atas adalah dengan cara mengeliminasi keberadaan repeating groups dan dekomposisi relasi menjadi dua atau lebih dengan syarat “tidak boleh ada informasi yang hilang karena proses dekomposisi”
Adapun caranya adalah :
1. Membuat 3 tabel yang memiliki fungsi sebagai berikut :
- TBFaktur, berfungsi untuk menyediakan atribut-atribut yang bersifat atomic dari tiap nomor faktur (ID_Faktur), seperti : Tanggal, Nama_Pelanggan, Total_Bayar, Diskon dan Nama_Petugas
- TBProduk, berfungsi untuk menyediakan atribut-atribut yang berulang atau tidak bernilai tunggal pada tiap nomor faktur (ID_Faktur), seperti : Nama_Barang dan harga
- TBTransaksiDetail, berfungsi sebagai penghubung antara nomor faktur (ID_Faktur) dengan kode barang (ID_Barang) agar proses dekomposisi tidak menyebabkan kerusakan informasi.
- Menentukan type data dari tiap atribut dan membuat digram relasional sebagai berikut
Id_Transaksi | Id_Faktur | Id_Barang | Harga | Jumlah |
01 | 05070101 | A01 | 1.500 | 1 |
01 | 05070101 | A02 | 10.000 | 1 |
01 | 05070101 | S02 | 3.500 | 1 |
01 | 05070101 | B01 | 2.000 | 1 |
02 | 05070102 | S01 | 5.600 | 1 |
02 | 05070102 | S03 | 2.500 | 1 |
02 | 05070102 | B02 | 4.000 | 1 |
02 | 05070102 | B03 | 1.500 | 1 |
03 | 05070103 | C01 | 12.000 | 1 |
03 | 05070103 | C02 | 2.500 | 1 |
03 | 05070103 | C03 | 13.000 | 1 |
03 | 05070103 | D02 | 16.000 | 1 |
04 | 06070001 | D03 | 25.000 | 1 |
Tabel Produk
Id_Barang | Nama_Barang | Harga_default |
A01 | Bedak | 1.500 |
A02 | Beras | 10.000 |
S01 | Baby Oil | 5.600 |
S02 | Minyak tanah | 3.500 |
S03 | Garam | 2.500 |
B01 | Buku | 2.000 |
B02 | Gula | 4.000 |
B03 | Pensil | 1.500 |
C01 | Sikat Gigi | 12.000 |
C02 | Sabun | 2.500 |
C03 | Odol | 13.000 |
D02 | Sampo | 16.000 |
D03 | Beras01 | 25.000 |
Table Faktur
Id_faktur | Tanggal | Id_Pelanggan | Nama_Pelanggan | Total_Bayar | Diskon | Id_Petugas | Nama_Petugas |
05070101 | 29/05/07 | P01 | Pitoyo | 20.600 | 0% | K01 | Didin |
05070102 | 29/05/07 | B01 | Bowo | 11.000 | 0% | J01 | Rina |
05070103 | 30/05/07 | E01 | Erlina | 41.500 | 0% | L02 | Rudi |
06070001 | 01/06/07 | D01 | Dayat | 25.000 | 0% | X02 | Amelia |
3. Pada table TBTransaksiDetail terdapat atribut “Harga”yang berfungsi untuk menyimpan harga per transaksi, sedangkan atribut “Harga_Default” yang terdapat pada table TBProduk adalah atribut yang berfungsi untuk menyimpan harga barang terbaru dari tiap jenis barang.Hal ini berguna untuk mengantisipasi adanya perubahan harga barang dari waktu ke waktu.
4. Primary key yang digunakan pada TBTransaksiDetail adalah “ID_Transaksi”. Atribut kunci tersebut merupakan candidate key yang dibentuk dari superkey hasil penggabungan 2 atribut yaitu : ID_Faktur dan ID_Barang
Second Normal form (2-NF)
Suatu relasi berada dalam 2nd normal form jika dan hanya jika :
<–>Berada dalam bentuk first normal form (1-NF)
<–>Semua atribut bukan kunci memiliki dependensi sepenuhnya dengan kunci primer (Primary Key)
Jika ditelaah kembali relasi bentuk 1-NF yang telah dibuat sebelumnya, maka atribut bukan kunci pada table TBFaktur yang tidak memiliki dependensi sepenuhnya dengan primary key (ID_Faktur), yaitu : “Nama_Petugas”.
Oleh sebab itu dekomposisi relasi perlu dilakukan kembali dengan cara :
- Mengeliminasi atribut “Nama_Petugas” dari table TBFaktur
- Membuat tabel TBPetugas, menyediakan atribut-atribut yang terkait dengan identitas dan data pelanggan
Id_Faktur | Id_Barang | Harga | Jumlah |
05070101 | A01 | 1.500 | 1 |
05070101 | A02 | 10.000 | 1 |
05070101 | S02 | 3.500 | 1 |
05070101 | B01 | 2.000 | 1 |
05070102 | S01 | 5.600 | 1 |
05070102 | S03 | 2.500 | 1 |
05070102 | B02 | 4.000 | 1 |
05070102 | B03 | 1.500 | 1 |
05070103 | C01 | 12.000 | 1 |
05070103 | C02 | 2.500 | 1 |
05070103 | C03 | 13.000 | 1 |
05070103 | D02 | 16.000 | 1 |
06070001 | D03 | 25.000 | 1 |
Table Faktur
Id_faktur | Id_pelanggan | Nama_pelanggan | Id_petugas | tanggal | Total_bayar | Diskon |
05070101 | P01 | Pitoyo | K01 | 29/05/07 | 20.600 | 0% |
05070102 | B01 | Bowo | J01 | 29/05/07 | 11.000 | 0% |
05070103 | E01 | Erlina | L02 | 30/05/07 | 41.500 | 0% |
06070001 | D01 | Dayat | X02 | 01/06/07 | 25.000 | 0% |
Table Petugas
Id_petugas | Nama_petugas | Alamat | Telp |
K01 | Didin | Jl.aceh 12bandung | 0853335555 |
L02 | Rudi | Jl.Kiircon 23bandung | 0816334466 |
J01 | Rina | Jl.Buah batu 04 bandung | 022778652 |
X02 | Amelia | Jl.Jakarta 45bandung | 022998776 |
Tabel Produk
Id_Barang | Nama_Barang | Harga_default |
A01 | Bedak | 1.500 |
A02 | Beras | 10.000 |
S01 | Baby Oil | 5.600 |
S02 | Minyak tanah | 3.500 |
S03 | Garam | 2.500 |
B01 | Buku | 2.000 |
B02 | Gula | 4.000 |
B03 | Pensil | 1.500 |
C01 | Sikat Gigi | 12.000 |
C02 | Sabun | 2.500 |
C03 | Odol | 13.000 |
D02 | Sampo | 16.000 |
D03 | Beras01 | 25.000 |
Third Normal form (3-NF)
Pada Second Normal Form (2-NF) atribut yang terkait dengan “Nama_Pelanggan” tidak didekomposisi dari table TBFaktur karena atribut tersebut masih memiliki dependensi fungsional dengan primary key (ID_Faktur) karena tiap nomor faktur akan berbeda untuk tiap pembeli/pelanggan.
Tetapi pada tahap 3-NF (Third Normal Form), atribut “Nama_Pelanggan” harus didekomposisi relasi karena pada tahap ini atribut bukan kunci tidak boleh ada yang berdependensi transitif dengan kunci primer.
Atribut “Nama_Pelanggan” dikatakan berdependensi transitif terhadap primary key (ID_Faktur) karena :
- ID_Pelanggan Nama_Pelanggan (Nama_Pelanggan berdependensi fungsional terhadap ID_Pelanggan)
- ID_Faktur ID_Pelanggan (ID_Pelanggan berdependensi fungsional terhadap ID_Faktur, karena tiap nomor faktur akan dikeluarkan untuk suatu ID_Pelanggan tertentu)
- Sehingga dikatakan bahwa ID_Faktur memiliki dependensi transitif terhadap atribut Nama_Pelanggan
Tabel Transaksi Detail
Id_Faktur | Id_Barang | Harga | Jumlah |
05070101 | A01 | 1.500 | 1 |
05070101 | A02 | 10.000 | 1 |
05070101 | S02 | 3.500 | 1 |
05070101 | B01 | 2.000 | 1 |
05070102 | S01 | 5.600 | 1 |
05070102 | S03 | 2.500 | 1 |
05070102 | B02 | 4.000 | 1 |
05070102 | B03 | 1.500 | 1 |
05070103 | C01 | 12.000 | 1 |
05070103 | C02 | 2.500 | 1 |
05070103 | C03 | 13.000 | 1 |
05070103 | D02 | 16.000 | 1 |
06070001 | D03 | 25.000 | 1 |
Table Faktur
Id_faktur | Id_pelanggan | Id_petugas | tanggal | Total_bayar | Diskon |
05070101 | P01 | K01 | 29/05/07 | 20.600 | 0% |
05070102 | B01 | J01 | 29/05/07 | 11.000 | 0% |
05070103 | E01 | L02 | 30/05/07 | 41.500 | 0% |
06070001 | D01 | X02 | 01/06/07 | 25.000 | 0% |
Table petugas
Id_petugas | Nama_petugas | Alamat | Telp |
K01 | Didin | Jl.aceh 12bandung | 0853335555 |
L02 | Rudi | Jl.Kiircon 23bandung | 0816334466 |
J01 | Rina | Jl.Buah batu 04 bandung | 022778652 |
X02 | Amelia | Jl.Jakarta 45bandung | 022998776 |
Tabel produk
Id_Barang | Nama_Barang | Harga_default |
A01 | Bedak | 1.500 |
A02 | Beras | 10.000 |
S01 | Baby Oil | 5.600 |
S02 | Minyak tanah | 3.500 |
S03 | Garam | 2.500 |
B01 | Buku | 2.000 |
B02 | Gula | 4.000 |
B03 | Pensil | 1.500 |
C01 | Sikat Gigi | 12.000 |
C02 | Sabun | 2.500 |
C03 | Odol | 13.000 |
D02 | Sampo | 16.000 |
D03 | Beras01 | 25.000 |
Tabel pelanggan
Id_pelanggan | Nama_pelanggan | Alamat | Telp |
P01 | Pitoyo | Jl.Cibiru 12bandung | 0852222702382 |
B01 | Bowo | Jl.Ciwastra 02bandung | 081395210395 |
E01 | Erlina | Jl.Stasiun lama kircon 03bandung | 085722028127 |
D01 | Dayat | Jl.suci 24bandung | 02233445 |
- 2. STUDI KASUS NORMALISASI PENJUALAN BARANG PT. ALAMANDA
Membuat Bentuk Tidak Ternormalisasi
Bentuk tidak ternormalisasi dari kasus mengenai faktur penjualan barang, adalah sebagai berikut:
Nomor Faktur | Kode Pelanggan | Nama Pelanggan | Nama Barang | Kode Barang | Tanggal | Pelunasan | Jml | Harga | Total | Total Faktur |
F101 | P002 | Ir. Anjani | B001 B002 | Kulkas JVC TV Sony | 06/10/07 | 20/10/07 | 3 5 | 1.500.000 1.000.000 | 4.500.000 5.000.000 | 9.500.000 |
F106 | P004 | Ir. Adi Susanto | B001 B004 | Kulkas JVC TV Sharp | 08/10/07 | 22/10/07 | 4 5 | 1.500.000 800.000 | 6.000.000 4.000.000 | 10.000.000 |
Yaitu suatu tabel dikatakan dalam bentuk normal pertama hanya jika setiap kolom bernilai tunggal untuk setiap baris (Abdul kadir, 2003).
Bentuk normal pertama mempunyai cirri bahwa setiap data dibentuk dalam flat tabel (tabel datar/rata). Data dibentuk dalam satu record demi satu record dan nilai dari field-field.
Bentuk Normal Pertama dari kasus mengenai faktur penjualan barang, adalah sebagai berikut :
Nomor Faktur | Kode Pelanggan | Nama Pelanggan | Nama Barang | Kode Barang | Tanggal | Pelunasan | Jml | Harga | Total | Total Faktur |
F101 | P002 | Ir. Anjani | B001 | Kulkas JVC | 06/10/07 | 20/10/07 | 3 | 1.500.000 | 4.500.000 | 9.500.000 |
F101 | P002 | Ir. Anjani | B002 | TV Sony | 06/10/07 | 20/10/07 | 5 | 1.000.000 | 4.500.000 | 9.500.000 |
F106 | P004 | Ir. Adi Susanto | B001 | Kulkas JVC | 08/10/07 | 22/10/07 | 4 | 1.500.000 | 5.000.000 | 10.000.000 |
F106 | P004 | Ir. Adi Susanto | B004 | TV Sharp | 08/10/07 | 22/10/07 | 5 | 800.000 | 4.000.000 | 10.000.000 |
Bentuk Normal Kedua
Suatu tabel berada dalam bentuk normal kedua jika :
- Tabel berada dalam bentuk normal pertama
- Semua kolom bukan-kunci-primer tergantung sepenuhnya terhadap kunci primer.
Bentuk Normal Kedua dari kasus mengenai faktur penjualan barang, adalah sebagai berikut :
Tabel Barang
Kode_Barang(*) | Nama_Barang |
B001 | Kulkas JVC |
B002 | TV Sony |
B004 | TV Sharp |
Kode_Pelaggan(*) | Nama_Pelanggan |
P002 | Ir. Anjani |
P004 | Ir. Adi Sumanto |
Nomor Faktur(*) | Kode Pelanggan(**) | Tanggal | Pelunasan | Jml | Harga | Total Faktur |
F101 | P001 | 06/10/07 | 20/10/07 | 3 | 1.500.000 | 9.500.000 |
F101 | P001 | 06/10/07 | 20/10/07 | 5 | 1.000.000 | 9.500.000 |
F106 | P004 | 08/10/07 | 22/10/07 | 4 | 1.500.000 | 10.000.000 |
F106 | P004 | 08/10/07 | 22/10/07 | 5 | 800.000 | 10.000.000 |
*: kunci Primer dari tabel
**:kunci tamu/foreign key
Bentuk Normal Ketiga
Suatu tabel dikatakan dalam bentuk normal ketiga, apabila :
ü Berada dalam bentuk normal kedua,
ü Setiap kolom bukan kunci primer yang tidak memiliki ketergantungan secara transitif terhadap kunci primer
Bentuk Normal Ketiga dari kasus mengenai faktur penjualan barang, adalah sebagai berikut :
Tabel Barang
Kode_Barang(*) | Nama_Barang |
B001 | Kulkas JVC |
B002 | TV Sony |
B004 | TV Sharp |
Kode_Pelaggan(*) | Nama_Pelanggan |
P002 | Ir. Anjani |
P004 | Ir. Adi Sumanto |
Nomor Faktur(*) | Kode Pelanggan(**) | Tanggal | Pelunasan | Total Faktur |
F101 | P001 | 06/10/07 | 20/10/07 | 9.500.000 |
F101 | P001 | 06/10/07 | 20/10/07 | 9.500.000 |
F106 | P004 | 08/10/07 | 22/10/07 | 10.000.000 |
F106 | P004 | 08/10/07 | 22/10/07 | 10.000.000 |
Nomor Faktur(*) | Kode Barang(**) | Jml | Harga |
F101 | B001 | 3 | 1.500.000 |
F101 | B002 | 5 | 1.000.000 |
F106 | B001 | 4 | 1.500.000 |
F106 | B004 | 5 | 800.000 |
Keterangan :
*:kunci Primer dari tabel
**:kunci tamu/foreign keyilmu92.blogspot.com
Langganan:
Postingan (Atom)