aplikasi untuk menghapus file secara permanen pada …
Post on 17-Mar-2022
13 Views
Preview:
TRANSCRIPT
APLIKASI UNTUK MENGHAPUS FILE SECARA PERMANEN
PADA SISTEM OPERASI WINDOWS XP DENGAN FILE SISTEM FAT
MENGGUNAKAN VISUAL BASIC 6.0
Skripsi
Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
Disusun oleh: Raditya Pratomo Nim : 025314031
JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
2007
APLICATION FOR ERASING FILE PERMANENTLY
ON OPERATING SYSTEM WINDOWS XP WITH FAT SYSTEM
USING MICROSOFT VISUAL BASIC 6.0
A Thesis
Presented as Partial Fullfilment of the Requirements
To Obtain the Sarjana Teknik Degree
In Informatics Engineering
By :
Raditya Pratomo
Student Number : 025314031
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY
YOGYAKARTA 2007
iv
I presented this thesis for
My Lord JESUS So Much
Dad and Mom, my lovely brother
I’m done in my college
Nonik I Love You
Memories from Tarakan
Linda Maniez, Che2, To’I, Adit I miss u All
Batang
Rock n Roll man!
Memories from Permata Bunda - Cisalak Siomay and Widhi
I miss u both
All the people that helping me To find my self
Suroso Kost
I miss u all there
Informatics 2002 USD I will see u again
v
MOTTO
An Eye for seeing
An Ear for hearing
and Mouth for speaking
do it precisely the rule!
Sometimes we have doin’ stupidity and become
nasty in this life, but if we have pair of ear,
listen what the people said about ourself.
Do it now !
Before it late
vi
ABSTRAKSI Di jaman sekarang ini hampir setiap orang menyimpan sebuah informasi di dalam
komputer. Ketika informasi tersebut ingin dihapus kita tidak ingin orang lain mengetahui
infomasi tersebut. Faktanya ketika file dihapus (bukan ke recycle bin) dari media
penyimpanan, sistem operasi tidak menghapus datanya dari file tersebut, oleh karena itu
masih ada kemungkinan file dapat dikembalikan secara utuh dan dapat dibaca kembali.
Jika itu adalah informasi yang sangat penting misalnya dokumen rahasia, password, data
pribadi maka akan merugikan bagi pemilik data tersebut.
Oleh karena itu dibutuhkan cara untuk dapat menghapus file secara permanen dari
media penyimpanan, agar data tidak dapat di kembalikan lagi.
vii
ABSTRACT Nowadays many people save the information in computer. When the information
want to erase, it guaranted that other people don’t know about the information. In Fact,
when a file erase from storage, Operating System did not destroy the data, in order that
file possible to recover in whole content and can be read. If that the information is very
important like secret document, password, personal data then it would be disaster.
In that case we need some way to erase data permanenly, which data can’t be
recover.
viii
KATA PENGANTAR
Puji Syukur kepada Tuhan Yesus atas berkat dan karunia-Nya yang telah
diberikan pada penulis sehingga dapat menyelesaikan tugas akhir ini.
Skripsi ini disusun dalam rangka memenuhi syarat untuk memperoleh
gelar sarjana S1 pada program Sarjana Teknologi Informasi jurusan Teknik
Informatika, Fakultas Sains dan Teknologi, Universitas Sanata Dharma
Yogyakarta.
Dalam penulisan skripsi ini, penulis banyak sekali menemui hal-hal baru
dan kesulitan sehingga diperlukan pemahaman dan pola pikir yang lebih
mendalam, namun berkat bantuan dan masukan dari berbagai pihak akhirnya
kesulitan tersebut dapat diatasi.
Dengan rasa syukur penulis mengucapkan terima kasih kepada :
1. Ibu A.M. Polina, S.Kom., M.Sc selaku dosen pembimbing akademik yang
banyak membantu dalam proses kelulusan.
2. Bapak JB Budi Darmawan, S.T., M.Sc yang telah banyak membimbing
dalam skripsi ini.
3. Kedua Orang Tua-ku, Bapak dan Ibu Yoseph.
4. Nonik, yang selalu memberikan semangat dan nasehat.
5. Semua temen-temen yang telah banyak membantu saya menyelesaikan
kuliah ini sampai mengerjakan skripsi.
ix
Penulis menyadari bahwa Skripsi ini masih jauh dari kesempurnaan
sehingga penulis mengharapkan kritik dan saran dari pembaca demi
kesempurnaan laporan ini. Semoga laporan ini dapat bermanfaat bagi kita semua.
Yogyakarta, September 2007
Penulis,
Raditya Pratomo
xvi
HALAMAN PERNYATAAN
Dengan ini saya menyatakan bahwa dalam skripsi ini tidak terdapat karya
yang pernah diajukan untuk memperoleh gelar kesarjanaan di suatu perguruan
tinggi dan sepanjang pengetahuan saya juga tidak terdapat karya atau pendapat
yang pernah ditulis atau diterbitkan oleh orang lain, kecuali yang secara tertulis
diacu dalam naskah ini dan disebutkan dalam daftar pustaka.
Yogyakarta, September 2007
Penulis,
Raditya Pratomo
x
DAFTAR ISI
Halaman Judul...........................................................................................................i
Halaman Persetujuan............................................................................................... ii
Halaman Pengesahan ............................................................................................. iii
Halaman Persembahan ............................................................................................iv
Halaman Motto ........................................................................................................v
Abstraksi .................................................................................................................vi
Abstract ................................................................................................................. vii
Kata Pengantar ..................................................................................................... viii
Daftar Isi....................................... ...........................................................................x
Daftar Gambar...................................................................................................... xiii
Daftar Tabel ...........................................................................................................xv
Pernyataan Keaslian Karya ...................................................................................xvi
BAB I PENDAHULUAN............................ ............................................................1
1.1 Latar Belakang Masalah.............................................................................1
1.2 Rumusan Masalah ......................................................................................2
1.3 Batasan Masalah ........................................................................................2
1.4 Tujuan dan Manfaat ..................................................................................3
1.5 Metodologi Penelitian ...............................................................................3
1.6 Sistematika Penulisan ................................................................................3
BAB II LANDASAN TEORI.................. ................................................................5
2.1 Media Penyimpanan...................................................................................5
xi
2.2 Data dalam media penyimpanan ................................................................6
2.3 Konsep Recovery Data...............................................................................9
2.3.1 Scanning Disk File yang dihapus....................................................9
2.4 Use Case...................................................................................................10
2.5 Bahasa Visual Basic 6..............................................................................16
2.5.1 Struktur Aplikasi Visual Basic.....................................................17
2.5.2 Windows API dengan Visual Basic .............................................18
2.5.2.1 Fungsi-fungsi API........................................................... 18
BAB III ANALISIS DAN PERANCANGAN SISTEM .......................................25
3.1 Analisa Sistem..........................................................................................25
3.1.1 Model Use Case ..........................................................................25
3.2 Perancangan Sistem .................................................................................26
3.2.1 Class Diagram .............................................................................26
3.2.2 Flowchart ....................................................................................28
3.2.3 Kelas dan Module .......................................................................30
3.3 Uji Coba dalam media penyimpanan .......................................................34
BAB IV IMPLEMENTASI DAN ANALISA .......................................................38
4.1 Implementasi Program ............................................................................38
4.1.1 Form Utama ................................................................................38
4.1.2 Form Progress .............................................................................40
4.1.3 Proses Wiping .............................................................................41
4.2 Analisa Hasil ............................................................................................50
xii
4.3 Kelebihan dan Kekurangan program .......................................................58
4.3.1 Kelebihan Program .....................................................................58
4.3.1 Kekurangan Program ..................................................................59
BAB V KESIMPULAN.........................................................................................60
5.1 Kesimpulan ..............................................................................................60
5.2 Saran.........................................................................................................61
Daftar Pustaka ........................................................................................................62
xiii
DAFTAR GAMBAR
Gambar 2.1 Media Penyimpanan.............................................................................6
Gambar 3.1 Use Case Diagram..............................................................................25
Gambar 3.2 Kelas untuk pencarian ........................................................................32
Gambar 3.3 Kelas WipeFile...................................................................................27
Gambar 3.4 Flowchart Running Program ..............................................................28
Gambar 3.5 Flowchart Menghapus ........................................................................29
Gambar 3.6 Keadaan Directory dengan Hex Editor ..............................................35
Gambar 3.7 Data pada file Readme.txt ..................................................................35
Gambar 3.8 Keadaan File hello.txt dengan Hex Editor .........................................36
Gambar 3.9 Data pada file hello.txt .......................................................................36
Gambar 3.10 File Readme.txt dihapus...................................................................37
Gambar 3.11 Data pada file Readme.txt setelah dihapus.......................................37
Gambar 4.1 Form Load ..........................................................................................39
Gambar 4.2 Potongan Listing Program pada Form Load ......................................39
Gambar 4.3 Potongan Listing Program pada Fungsi PathChange() ......................40
Gambar 4.4 Form Progress ....................................................................................40
Gambar 4.5 Potongan Listing Program pada tombol STOP..................................41
Gambar 4.6 Diagram metode NonSecure ..............................................................42
Gambar 4.7 Potongan Listing Program pada timer NonSecure.............................43
Gambar 4.8 Potongan Listing Program pada Fungsi NonSecure ..........................43
Gambar 4.9 Fungsi FlushBuffer.............................................................................44
xiv
Gambar 4.10 Konfigurasi metode NonSecure .......................................................44
Gambar 4.11 Diagram Metode Secure...................................................................45
Gambar 4.12 Potongan Listing Program pada Fungsi Secure 1 ............................45
Gambar 4.13 Potongan Listing Program pada Fungsi Secure 2 ............................46
Gambar 4.14 Potongan Listing Program pada Fungsi Secure 3 ............................47
Gambar 4.15 Konfigurasi metode Secure ..............................................................47
Gambar 4.16 Diagram Metode Medium ................................................................48
Gambar 4.17 Potongan Listing Program pada timer Medium ...............................49
Gambar 4.18 Potongan Listing Program pada Fungsi Medium 1..........................49
Gambar 4.19 Potongan Listing Program pada Fungsi Medium 2..........................50
Gambar 4.20 Konfigurasi metode Medium ...........................................................50
Gambar 4.21 Hasil Recovery pada Program Smart Recovery...............................51
Gambar 4.22 Randomize Timer.............................................................................52
Gambar 4.23 Fungsi RenameAndKill....................................................................52
Gambar 4.24 Kill File ............................................................................................53
Gambar 4.25 Hasil NonSecure pada Hex Editor ...................................................53
Gambar 4.26 Hasil Medium pada Hex Editor........................................................54
Gambar 4.27 Hasil Secure pada Hex Editor ..........................................................55
Gambar 4.30 Hasil Uji Coba Program pada jaringan ............................................56
Gambar 4.31 Hasil Uji Coba Program pada CD RW.............................................56
xv
DAFTAR TABEL
Tabel 2.2 Struktur Directory Entry FAT32..............................................................6
Tabel 4.28 Tabel Kesimpulan Proses Kehilangan Data.........................................56
Tabel 4.29 Tabel Hasil Uji Coba Program berdasarkan waktu................................6
1
BAB I
PENDAHULUAN 1.1 Latar Belakang Masalah
Dengan maju pesatnya teknologi informasi banyak orang telah memilih untuk
mengatur informasinya dengan mengggunakan komputer. Selain lebih cepat diakses juga
dapat menghemat tempat penyimpanan, juga informasi dapat dibawa kemana saja dengan
lebih ringkas daripada memindahkan setumpuk kertas dari lemari yang satu ke lemari
yang lain, memakan banyak waktu, juga resiko kehilangan atau rusak lebih besar.
Informasi yang disimpan dengan sebuah komputer disimpan dalam sebuah media
penyimpanan seperti hardisk, disket, flashdisk, juga sebuah CD (Compact Disk).
Komputer tidak berjalan sendiri, ada seperangkat software didalamnya yang mengatur
bagaimana komputer harus bekerja, software ini dinamakan Sistem Operasi atau sering
disebut Operating System (OS). Sistem Operasi dijalankan oleh manusia walaupun ada
beberapa proses yang berjalan otomatis. Pada dasarnya Sistem Operasi menjembatani
antara manusia dengan perangkat keras didalamnya.
Pengaturan informasi dalah sebuah komputer disimpan dalam media
penyimpanan dalam bentuk file. Setiap orang dapat membuat, menghapus, menyalin,
memindahkan file dalam sebuah media penyimpanan dan setiap prosesnya dikerjakan
oleh Sistem Operasi. Setiap orang atau organisasi kemungkinan mempunyai informasi
yang penting yang disimpan dalam sebuah komputer dan hanya boleh diakses oleh orang-
2
orang tertentu sehingga data tersebut dilindungi dengan berbagai cara dengan software
keamanan. Tetapi bagaimana jika informasi tersebut sudah tidak terpakai lagi dan masih
sangat penting. Tentu saja informasi tersebut akan dihapus dari media penyimpanan.
Apakah data yang sudah dihapus tadi dapat kembali lagi? Jawabannya ya. Pernah
mendengar software recovery files? Tidak mustahil data anda akan kembali diakses oleh
orang lain dan mungkin akibatnya seseorang mengetahui rahasia atau hal penting yang
seharusnya mereka tidak boleh tahu.
Dari uraian diatas, dalam naskah ini maka penulis akan mencoba untuk membuat
program untuk menghapus file secara permanen.
1.2 Rumusan Masalah
Dengan adanya latar belakang tersebut maka dapat dirumuskan masalahnya
sebagai berikut:
1. Membuat program yang dapat menghapus file secara permanen sehingga file tidak
dapat di-recovery kembali.
1.3 Batasan Masalah
Adapun batasan masalahnya sebagai berikut:
1. Program diimplementasikan dalam sistem operasi Windows XP.
2. Sampel media penyimpanan yaitu hardisk dan flashdisk dengan file sistem FAT.
3. File yang akan dihapus juga melingkupi file yang ada dalam directory dan sub
directory
3
1.4 Tujuan dan Manfaat
Membuat aplikasi untuk menghapus file agar tidak dapat direcovery kembali
menggunakan Microsoft Visual Basic 6.0
1.5 Metodologi
Metode yang digunakan:
1. Membaca dan mempelajari referensi berupa buku (Metode Desain dan Analisis
Sistem).
2. Surfing dari situs-situs di internet yang berhubungan dengan aplikasi ini
3. Analisa program, menentukan fungi dan prosedur yang dibutuhkan, mendebug
program untuk memeriksa kesalahan pada saat dijalankan.
4. Mendesain program, menentukan alur jalannya program dan merancang
Graphical User Interface.
5. Implementasi dan pengujian, memeriksa hasil dari kode program yang sudah
dijalankan, apakah sudah sesuai dengan keingingan atau belum
1.6 Sistematika Penulisan
BAB I PENDAHULUAN
Berisi latar belakang masalah, rumusan masalah, batasan masalah, tujuan sistem,
manfaat sistem dan metode penelitian serta sistematika penulisan laporan.
BAB II LANDASAN TEORI
Bab ini berisi landasan teori yang dipakai untuk pembahasan laporan tugas akhir.
BAB III ANALISA DAN PERANCANGAN SISTEM
Bab ini berisi tentang tahap-tahap analisis dan perancangan sistem.
4
BAB IV IMPLEMENTASI
Bab ini berisi tentang bagaimana mengimplementasikan program kedalam
komputer, serta kendala yang dihadapi.
BAB V PENUTUP
Bab ini berisi tentang penutup dan kesimpulan dari implementasi program.
5
BAB II
DASAR TEORI 2.1 Media Penyimpanan
Setiap orang yang memulai pekerjaannya dengan komputer tidak pernah dari media
penyimpanan, seperti disket, hardisk, compact disk, flash disk, dan lain sebagainya. Pada
dasarnya media penyimpanan semacam ini adalah media penyimpanan secara permanen
artinya data akan tetap tersimpan walaupun tidak ada aliran listrik dan data bisa diakses
kembali ketika terhubung (plug) dengan komputer. Ada juga media penyimpanan yang
bersifat sementara atau tidak permanen (temporary), yang disebut RAM (Random Access
Memory). RAM ini hanya digunakan untuk memproses data di dalam komputer, berbeda
dengan disket dan hardisk, digunakan untuk menyimpan data secara permanen sehingga
dapat dipindahkan secara fleksibel. RAM tidak tidak dapat dipindahkan seperti disket dan
hardisk, karena ketika aliran listrik putus maka data didalam RAM akan hilang. Berikut
adalah contoh gambar media penyimpanan :
Disket Hardisk Flashdisk
6
Compact Disk Zip Disk RAM Gambar 2.1
2.2 Data dalam media penyimpanan
Informasi tentang file dan direktori dalam sebuah media penyimpanan disimpan
dalam sebuah lokasi yang bernama directory entry, berikut adalah tabel struktur dari
directory entry :
Tabel 2.2 Struktur Directory Entry FAT32
Nama Field Offset
(bytes)
Size
(bytes) Deskripsi
DIR_Name 0 11 Nama File format 8.3
DIR_Attr 11 1 File Attibut
ATTR_READ_ONLY 0x01
ATTR_HIDDEN 0x02
ATTR_SYSTEM 0x04
ATTR_VOLUME_ID 0x08
ATTR_DIRECTORY 0x10
ATTR_ARCHIVE 0x20
ATTR_LONG_NAME
DIR_NTRes 12 1 Dicadangkan untuk digunakan oleh
Windows NT. Nilainya selalu diset 0
setelah file diciptakan dan tidak pernah
7
diubah setelah itu
DIR_CrtTimeTenth 13 1 Stamp untuk waktu milli detik pada
waktu file diciptakan
DIR_CrtTime 14 2 Waktu file diciptakan
DIR_CrtDate 16 2 Tanggal file diciptakan
DIR_LstAccDae 18 2 Tanggal terakhir file diakses, nilainya
harus sama dengan DIR_WrtDate
DIR_FstClusHI 20 2 Menunjukkan nilai tertinggi dari cluster
pertama file.
DIR_WrtTime 22 2 Waktu terakhir file ditulisi
DIR_WrtDate 24 2 Tanggal terakhir file ditulisi
DIR_FstClusLO 26 2 Nilai terendah dari cluster pertama file
DIR_FileSize 28 2 32-bit DWORD, berisi infomasi ukuran
file
DIR_Name[0]
• Jika DIR_Name[0] == 0xE5 menunjukkan lokasi ini bebas atau tidak terpakai.
• Jika DIR_Name[0] == 0x00 menunjukkan lokasi ini bebas atau tidak terpakai,
sama dengan 0xE5 dan tidak ada alokasi memori.
• Nilai DIR_Name[0] terdapat karakter restricted atau tidak boleh dipakai, seperti
0x22, 0x2A, 0x2B, 0x2C, 0x2E, 0x2F, 0x3A, 0x3B, 0x3D, 0x3E, 0x3F, 0x5B,
0x5C, 0x5D dan 0x7C, juga karakter spasi (0x20) tidak boleh digunakan. Selain
karakter 0xE5, 0x00 dan restricted boleh dipakai untuk menamai file.
DIR_Attr
• ATTR_READ_ONLY, menunjukkan file tidak boleh ditulis atau dirubah isi dan
namanya.
8
• ATTR_HIDDEN, menunjukkan file tidak terlihat dalam direktori
• ATTR_SYSTEM, menunjukkan file sistem kepunyaan Sistem Operasi.
• ATTR_VOLUME_ID, menunjukkan volume label pada disk.
• ATTR_DIRECTORY, menunjukkan bahwa file ini berisikan file-file didalamnya.
• ATTR_ARCHIEVE, menunjukkan bahwa file ini bisa di-backup. Software
backup biasanya selalu mendeteksi file-file dengan atribut ini.
Format Waktu dan Tanggal
• Format Waktu
Bits 0-4 : detik 2 digit (0-59)
Bits 5-10 : menit (0-59)
Bits 11-15 : jam (0-23)
• Format Tanggal
Bits 0-4 : hari (0-31)
Bits 5-8 : bulan (1-12)
Bits 9-15 : pertambahan waktu sejak tahun 1980 (0-127)
DIR_FileSize :
• Menunjukkan ukuran file dalam format 32bit.
• Untuk FAT32, ukuran chain cluster tidak boleh lebih besar dari 0x100000000
bytes. Dan ukuran file tidak ada yang boleh lebih dari 0xFFFFFFFF bytes.
http://staff.washington.edu/dittrich/misc/FatFormat.pdf, 23 April 2007, 12:02
9
2.3 Konsep Recovery Data.
2.3.1 Scanning Disk File yang dihapus
Scan disk adalah proses enumerasi semua data di root directory pada FAT12,
FAT16, FAT32 atau pada lokasi Master File Table (MFT) pada NTFS. Meskipun file
sistemnya berbeda, informasi file mengandung tentang name, ukuran, atribut, tanggal dan
waktu diciptakan, status sudah dihapus atau belum, dan lain-lain. Dengan melihat struktur
dari root directory atau tabel file, kita dapat melihat catatan tentang informasi file masih
ada didalam media penyimpanan atau tidak, dan kita dapat mencari file-file yang sudah
terhapus didalam media penyimpanan. Entry (catatan) tentang file yang sudah dihapus
ditandai dengan simbol E5 atau nilai 229 dalam desimal.
Contoh scanning folder pada FAT16:
1. Folder yang masih masih ada .
Gambar 2.3
2. MyFiles.txt yang sudah terhapus.
Gambar 2.4
3. File SetupLog.txt yang masih ada.
Gambar 2.5
10
Root Directory ini tedapat 3 entry (catatan), salah satunya informasinya sudah dihapus
Entry pertama adalah MYFOLDER yang masih ada, Entry kedua adalah MyFiles.txt
yang sudah dihapus, dan Entry yang ketiga adalah SetupLog.txt masih ada.
Entry yang sudah dihapus mengandung simbol E5 pada karakter pertamanya,
diasumsikan entry sudah dihapus.
http://www.ntfs.com/disk-scan.htm, 23 April 2007, 14:00
2.4 Use Case
Use case modeling adalah sebuah proses untuk memodelkan fungsi-fungsi system
yang terdapat dalam bisnis even, siapa yang melakukan kejadian dan bagaimana system
memberikan respon terhadap even.
Beberapa keuntungan use case modeling :
1. Menyediakan tool untuk mengcapture kebutuhan fungsional
2. Membantu melakukan dekomposisi system ke dalam bagian-bagian yang
dapat dimanage
3. Menyediakan komunikasi yang berarti antara user dengan stakeholder yang
lain yang berkonsentrasi pada fungsional system
4. Menyediakan kerangka kerja untuk menjalankan proyek pengembangan
system
11
Konsep Sistem untuk Use Case Modeling
1. Use case diagram
Sebuah diagram yang menggambarkan interaksi antara system dan eksternal
system dan user. Berbasis grafik yang menggambarkan siapa yang menggunakan
system dan dengan cara bagaimana user berinteraksi dengan system.
2. Use case narrative
Tektual yang menggambarkan suatu kejadian system dan bagaimana user
berinterkasi dengan system untuk melengkapi tugasnya.
Simbol Dasar Use Case Diagram
Use case merupakan bagian dari seluruh fungsi system.
Digambarkan secara grafik dengan elips yang horizontal
dengan nama dari use case tertera diatas, dibawah atau
di dalam elips.
Actor adalah segala sesuatu yang dibutuhkan untuk
berinteraksi dengan system untuk mengubah informasi.
Dapat berupa orang, organisasi atau system informasi yang lain
Atau juga suatu waktu kejadian.
Temporal event merupakan sebuah waktu kejadian yang ditrigger oleh user. Aktornya
adalah waktu.
12
4 Tipe dari Aktor
1. Primary business actor
Merupakan stakeholder yang mendapatkan keuntungan utama dari proses
melakukan use case. Sebagai contoh : employee yang menerima pembayaran.
2. Primary sisitem actor
Merupakan stakeholder yang secara langsung berhubungan dengan system untuk
menginisiasi atau mentrigger kejadian bisnis atau system. Contoh : teller bank
memasukkan informasi deposit.
3. External server actor
Stakeholder yang memberikan respon terhadap permintaan dari use case. Contoh :
credit beureau mengotorisasi credit card.
4. External receiver actor
Stakeholder yang bukan actor utama tetapi menerima sesuatu nilai dari use case.
Contoh : gudang menerima slip paket
Use Case Association Relationship
Associaton adalah relasi antara actor dan sebuah use case dimana terjadi interaksi
diantara mereka. Association dimodulkan dengan garis lurus yang menghubungkan
antara actor dan use casenya. Association dengan sebuah panah menyentuh use case yang
mengidentifikasikan bahwa use case diinitiate oleh actor ( anak panah menuju use case).
Association dengan anak panah keluar dari use case menuju ke actor berarti actor
menerima use case. Association bisa bidirectional atau unidirectional.
Contoh
13
Gambar 2.6
Use Case Extends Relationship
Extension use case adalah sebuah use case yang berisi langkah-langkah yang
diekstrak dari sebuah use case yang lebih kompleks agar menjadi use case yang lebih
sederhana dan kemudian diberikan tambahan fungsinya. Relationship antara extention
use case and use case yang diextend disebut dengan extends relationship. Digambarkan
dengan garis anak panah yang dimulai pada extension use case dan berakhir pada use
case yang diextending. Setiap relasi extend diberi label “<<extends>>”.
Contoh
pendaftaran anggota
bayar biaya pendaftaran isi data anggota
extension use case
<<extends>> <<extends>>
Gambar 2.7
Pencarian judul film
14
Use Case Uses Relationship
Abstract use case merupakan sebuah use case yang mengurangi redundancy antara
satu atau lebih use case dengan cara mengkombinasikan langkah-langkah yang umum
ditemukan dalam casenya. Sebuag abstract case digunakan oleh use case yang lain yang
meminta fungsinya. Relationship antara abstract use case dan use case yang
digunakannya disebut denga uses (or include) relationship. Digambarkan dengan ujung
anak panah dimulai dari use case original dan menunjukkan ke use case yang digunakan.
Setiap garis yang menunjukkan uses relationship dinamakan dengan “<<uses>>”.
Contoh
Gambar 2.8
Use Case Depends on Relationship
Depends on merupakan sebuah relasi use case yang menentukan bahwa use case
yang lain harus dibuat sebelum current use case. Digambarkan sebagai garis anak panah
yang dimulai dari satu use case dan menunjukkan ke use case yang depends on
kepadanya. Setiap relasi diberi label “<<depends on>>”.
Contoh
<<depends on>>
<<uses>>
memasukkan data transaksi
pembelian
memasukkan data obat
Update database
Login
15
Use Case Inheritance Relationship
Inheritance merupakan use case yang tingkah laku pada umumnya menggambarkan
dua aktor yang menginitiating use case yang sama akan ditugaskan dan diextrapolasi
dalam abstract actor yang baru untuk mengurangi redundancy. Aktor yang lain dapat
menurunkan interaksi dari abstract actor. Digambarkan dengan garis anak panah yang
dimulai pada satu aktor dan menunjukkan ke abstract actor yang memiliki interaksi
dengan turunan dari actor yang pertama.
Contoh
Gambar 2.9
searching buku
update data buku
pendaftaran
pendaftaran
update data buku
searching buku
customer
Inheritance relationship
patron visitor
visitor
patron
16
Contoh sebuah Use Case utuh
<<depend on>>
admin penyewa
Gambar 2.10 2.5 Bahasa Visual Basic 6
Visual Basic 6 merupakan pemrograman yang berbasis visual yang berjalan pada
Micosoft Windows. Visual Basic pada versi sebelumnya disebut bahasa BASIC dalam
aplikasi DOS. Visual Basic 6 merupakan event-driven programming artinya program
menunggu sampai adanya respon dari user berupa kejadian (event) tertentu, seperti
memilih menu, mengklik tombol, danlain-lain. Visual Basic juga termasuk pemrograman
yang didasarkan pada objek.
login
pencarian judul film
edit database
pembuatan laporan
17
2.5.1 Struktur aplikasi Visual Basic
Struktur dalam aplikasi Visual Basic dapat dibagi menjadi beberapa bagian sebagai
berikut:
Form
Form adalah jendela untuk membuat tampilan (user interface).
Control
Control adalah tampilan yang berbasi grafis yang dimasukkan pada form untuk membuat
interaksi dengan user, seperti textbox, label, button, dan lain sebagainya)
Properties
Nilai/karakteristik yang dimiliki oleh sebuah objek Visual Basic. Contohnya seperti:
name, caption, size, color, text, dan lain sebagainya.
Method
Kumpulan dari perintah yang sudah tersedia pada objek yang dapat diminta untuk
mengerjakan tugas khusus.
Event
Sama seperti method hanya saja event lebih dikendalikan oleh kejadian yang dikerjakan
oleh user.
General Procedure
Kode yang tidak berhubungan dengan suatu objek
Module
Kumpulan dari prosedur umum, deklarasi variabel dan definisi nilai aygn digunakan oleh
aplikasi.
18
2.5.2 Windows API dengan Visual Basic
Untuk keperluan pengembangan aplikasi berbasis Windows yang handal, Microsoft
menciptakan sebuah antarmuka (interface) pemrograman berupa sekumpulan prosedur
dan fungsi yang memiliki kemampuan mengakses kekuatan sistem. Sekumpulan prosedur
dan fungsi tersebut kemudian dikenal dengan dengan istilah Aplication Programming
Interface atau yang lebih familiar dengan sebutan API. Setiap tugas yang dilakukan
program lewat fungsi API selalu memanfaatkan file .dll yang terdapat dalam direktori
Windows. Beberapa yang sering digunakan adalah:
user32.dll. File ini dipakai untuk mengkontrol objek-objek yang terlihat pada layar.
gdi32.dll. Merupakan gudang kode pemrograman berorientasi grafik dari API.
kernel32.dll. Di dalamnya terdapat fitur-fitur untuk mengakses sistem operasi tingkat
bawah.
DLL (Dinamic Link Library) adalah kode yang sudah dikompilasi dan dapat digunakan
oleh program lain. DLL ini dapat digunakan dari bermacam-macam bahasa pemrograman
seperti Assembly, Delphi, C++.
Pendeklarasian fungsi API dalam Visual Basic sebagai berikut :
Declare Sub/Function) Nama_Fungsi Lib “Nama_Library”
[Alias _ “Alias_Fungsi”] ( [[byVal/byRef] variabel [as
type] [,byVal/byRef variabel [as type]]…)
19
Contoh dari pendeklarasian API :
Public Declare Function GetFileSize Lib “kernel32.dll”
(byVal hFile As Long, _lpFileSizeHigh As Long) as Long
Setelah fungsi API dideklarasikan, maka berikut adalah contoh dari pemangilan fungsi
API pada form pada bagian event load.
Private Sub Form1_Load()
Dim x As Long
Dim hFile Aa Long
Dim FileSize as long
X=GetFileSize(hFile, FileSize)
End Sub
2.5.2.1 Fungsi-Fungsi API
Beberapa fungsi API dalam windows yang digunakan dalam program program ini :
a) Membuat atau membuka file.
Fungsi API uintuk membuat atau membuka file pada media penyimpanan adalah
menggunakan fungsi CreateFile. Format Pendeklarasiannya sebagai berikut :
Declare Function CreateFile Lib “kernel32.dll” Alias
“CreateFileA” (byVal lpFileName as String, byVal _
dwDesiredAccess As Long, byVal , dwShareMode As Long,
lpSecurityAttribute As SECURITY_ATTIBUTE, byVal _
dwCreationDisposition As Long, byVal dwFlagAndAttribute _
As Long, byVal hTemplateFile As Long) As Long
20
Keterangan:
Parameter untuk fungsi CreateFile :
lpFileName
Nama File yang akan dibuka atau dibuat.
dwDesiredAccess
Dapat berisi nilai 0 atau salah satu flag berikut :
• GENERIC_READ : untuk membaca data dari file
• GENERIC_WRITE : untuk menulis data ke dalam file
dwShareMode
Dapat berisi 0 atau nilai flag berikut:
• FILE_SHARE_READ : mode share untuk membaca.
• FILE_SHARE_WRITE : mode share untuk menulis.
lpSecurityAttribute
Attibut untuk membuat atau membuka file. Untuk penggunaan di Windows 95 nilai harus
diset dengan 0.
dwCreationDisposition
Flag untuk membuat file atau membuka file, dan bergantung pada ada atau tidaknya file.
• CREATE_NEW : membuat file baru. Fungsi akan gagal, jika file tidak ada.
21
• CREATE_ALWAYS : membuat file baru, jika ada nama file yang sama maka akan
tertimpa.
• OPEN_EXISTING : membuka file. Fungsi akan gagal jika file tidak ditemukan.
• OPEN_ALWAYS : membuka file. Jika file tidak ada maka akan dibuatkan yang
baru.
dwFlagAndAttribute
Kombinasi flag berikut menspesifikasikan antara attibut file dengan akses file :
• FILE_ATTRIBUTE_ARCHIEVE : file arsip.
• FILE_ATTRIBUTE_HIDDEN : file yang disembunyikan.
• FILE_ATTRIBUTE_NORMAL : file yang tidak ada kombinasi atribut lainnya.
• FILE_ATTRIBUTE_READONLY : file yang hanya bisa dibaca.
• FILE_ATTRIBUT_SYSTEM : file sistem.
hTemplateFile
Handle dari berkas yang terbuka untuk menyalin atribut yang dispesifikasikan, atau nilai
0 jika tidak ingin menyalin atribut file.
b) Mengubah atribut file.
Fungsi API untuk mengubah atribut file menggunakan SetFileAttributes.
Format pendeklarasiannya sebagai berikut :
22
Public Declare Function SetFileAttributes Lib "kernel32"_
Alias "SetFileAttributesA" (ByVal lpFileName As String,_
ByVal dwFileAttributes As Long) As Long
Keterangan :
Parameter untuk fungsi SetFileAttributes:
lpFileName
Nama file yang akan diubah atributnya.
dwFileAttributes
Spesifikasi flag atribut untuk file yang akan diubah, dapat berupa kombinasi sebagai
berikut :
• FILE_ATTRIBUTE_ARCHIVE : file arsip.
• FILE_ATTRIBUTE_HIDDEN : file yang disembubyikan.
• FILE_ATTRIBUTE_NORMAL : menset file jika tidak punya atribut.
• FILE_ATTRIBUTE_READONLY : file yang hanya boleh dibaca.
• FILE_ATTRIBUTE_SYSTEM : file sistem.
Jika berhasil maka keluarannya akan berupa nilai tidak 0, jika gagal akan mengeluarkan
nilai 0.
c) Mendapatkan atribut file
Fungsi API untuk mendapatkan atribut file mengginakan GetFileAttributes.
Format pendeklarasiannya sebagai berikut :
23
Public Declare Function GetFileAttributes Lib_
"kernel32" Alias "GetFileAttributesA" (ByVal_
lpFileName As String) As Long
Keterangan :
Parameter untuk fungsi GetFileAttributes:
lpFileName
Nama file yang akan didapatkan atributnya
Jika berhasil maka keluarannya adalah nilai atribut, selain keluaran nilai bukan atribut
maka dianggap gagal.
d) Menutup handle.
Fungsi API untuk menutup handle dari objek yang terbuka adalah menggunakan
CloseHandle. Format pendeklarasiannya sebagai berikut :
Public Declare Function CloseHandle Lib "kernel32"
Alias "CloseHandle" (ByVal hObject As Long) As Long
Keterangan :
Parameter untuk fungsi CloseHandle:
hObject
Identitas dari handle objek yang sedang terbuka. Dalam hal ini membuka file
menggunakan CreateFile adalah sama seperti membuka sebuah objek.
24
e) Memflush buffer data file.
Fungsi API untuk memflush data pada handle file menggunakan
FlushFileBuffer. Format pendeklarasiannya sebagai berikut :
Public Declare Function FlushFileBuffers Lib_
"kernel32" Alias "FlushFileBuffers" (ByVal hFile As_
Long) As Long
Keterangan :
Parameter untuk fungsi FlushFileBuffers :
hFile
Handle dari file yang akan diflush datanya.
25
BAB III
ANALISIS dan PERANCANGAN SISTEM 3.1 Analisis Sistem
3.1.1 Model Use Case
User Gambar 3.1 Use Case Diagram
Menghapus file dengan metode fast
Menghapus file dengan metode medium
Menghapus file dengan metode secure
Menjelajahi media penyimpanan
Pencarian file
Keluar dari program
26
-FindClose() : Long-FindFirstFile() : Long-FindNextFile() : Long-StripNull() : String+CompareString() : Boolean+FindEnd() : Boolean+findFile() : Long+getCountFolder() : Integer+getFolder() : Boolean+SearchFilePath() : Long+ResetArray() : void
-hFile : Long-hFileClose : Long-findNext : Long-searchNext : Long-countFolder : Long-fData : FileData-WFD : Win32_Find_Data-LastErrorNumber : Long-LastErrorString : String-LastErrorProc : String-subDir : String
Search
+FileType() : String+isArchieve() : String+isCompresses() : Boolean+isDirectory() : Boolean+isHidden() : Boolean+isNormal() : Boolean+isReadOnly() : Boolean+isSystem() : Boolean+isTemporary() : Boolean
+FileName : String+pathName : String+fileAtribute : String+fileSize : Double
FileData
+dwAttributes : Long+ftCreationTime : FileTime+ftLastAccessTime : FileTime+ftLastWriteTime : FileTime+nFileSizeHigh : Long+nFileSizeLow : Long+dwReserved0 : Long+dwReserved1 : Long+cFileName : String+cAlternate : String
Win32_Find_Data
+dwLowDateTime : Long+dwHighDateTime : Long
FileTime
Gambar 3.1 menunjukkan hubungan user dengan program, user dapat melakukan
3 operasi penghapusan yaitu dengan metode Fast, Medium dan Secure.
3.2 Perancangan Sistem 3.2.1 Class Diagram
Didalam program ini terdapat beberapa kelas penting, yaitu kelas Search untuk
pencarian file dan kelas WipeFile untuk me-wipe file. Berikut adalah gambar dari kelas
tersebut.
Kelas Search
Gambar 3.2 Kelas untuk pencarian
27
Pada program yang dibuat oleh penulis dilengkapi dengan fasilitas pencarian file
untuk memudahkan proses penghapusan. Gambar 3.2 adalah rancangan kelas diagram
dari kelas Search yang berfungsi untuk mencari file.
Kelas Wipe
+nonSecureDelete() : Boolean+SecureDelete() : Boolean+setChunk() : void-setReminder() : void+FileExist() : Boolean+isUseByProcess() : Boolean+getPercentProcess() : Integer+getLastErrNumber() : Long+getLastErrString() : String+getLastErrProc() : String+isValidAttribute() : Boolean+isDirectory() : Boolean+stopSecureWipe() : void+setAttributeToNormal() : void+RenameAndKill() : Boolean-FlushFileBuffers() : Long-GetFileAttributes() : Long-SetFileAttributes() : Long-CloseHandle() : Long-CreateFile() : Long+mediumDelete() : Boolean
-handle : Long-fNext : Long-reminder : Long-Pointer : Double-strTemp : String-strRemind : String-totalLoop : Long-countLoop : Long-fileSize : Double-percentProcess : Integer-LastErrorNumber : Long-LastErrorString : String-LastErrorProc : String
WipeFile
+DeleteTreeDir() : void+WipeFileInFolder() : Boolean+WipeFileNonSecure() : Boolean+WipeFileSecure() : Boolean
+WipeNextProcess : Boolean+WipeProgress : Boolean+FileCounter : Integer+stepFolder : Integer+tvSorting : Boolean+arry : String+FileSizeWipe : Long
WipeFileMod
Gambar 3.3 Kelas WipeFile Gambar 3.3 adalah rancangan dari kelas WipeFile yang berfungsi untuk
menghapus file secara permanen.
28
3.2.2 Flowchart
Flowchart atau diagram alir dari ssstem ini dapat dibagi menjadi dua bagian, yaitu
diagram alir jalannya program secara keseluruhan dan proses menghapus file secara
permanen.
Gambar 3.4 Ruuning Program
29
Gambar 3.5 Proses Menghapus
30
3.2.3 Kelas dan Module
Beberapa module yang terkait dalam pembuatan program ini :
a. WipeFileMod
Module ini berisi fungsi-fungsi untuk menghapus file.
Public Function WipeFileNonSecure(path As String, fName As String) As Boolean
Fungsi diatas adalah untuk menghapus file dengan metode NonSecure dan fungsi
ini gabungan beberapa fungsi yang ada pada class WipeFile, akan dijelaskan pada
sub bab Metode Penghapusan dalam bab ini
Public Function WipeFileSecure(path As String, fName As String, WipeNext As Boolean) As Boolean
Fungsi diatas adalah untuk menghapus file dengan metode Secure dan fungsi ini
gabungan beberapa fungsi yang ada pada class WipeFile, akan dijelaskan pada
sub bab Metode Penghapusan dalam bab ini.
Public Function WipeFileInFolder() As Boolean
Fungsi diatas untuk menghapus file-file yang berada di dalam directory dan sub
directory, juga akan menghapus sub directory.
Public Function DeleteTreeDir()
Fungsi diatas untuk menghapus directory dan sub directory didalamnya.
31
b. TableViewMod
Module ini berisi fungsi-fungsi untuk pengaturan User Interface, seperti icon,
nama file, dan pengaturan tabel pada form utama.
Beberapa kelas yang terkait dalam pembuatan program :
a. WipeFile
Class ini berisi fungsi-fungsi dan variable untuk menghapus file
Konstanta untuk mendeklarasikan status atribut file.
Private Const FILE_ATTRIBUTE_READONLY = &H1
Private Const FILE_ATTRIBUTE_HIDDEN = &H2
Private Const FILE_ATTRIBUTE_SYSTEM = &H4
Private Const FILE_ATTRIBUTE_ARCHIVE = &H20
Private Const FILE_ATTRIBUTE_NORMAL = &H80
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10
Konstanta untuk mendeklarasikan status ketika membuka file..
Private Const GENERIC_WRITE = &H40000000
Private Const TRUNCATE_EXISTING = 5
Private Const FILE_FLAG_NO_BUFFERING = &H20000000
Private Const FILE_FLAG_WRITE_THROUGH = &H80000000
Private Const OPEN_EXISTING = 3
Beberapa fungsi yang terkait :
Public Function nonSecureDelete(nFile As String) As Boolean
Fungsi diatas untuk menghapus file dengan modus nonSecure.
Public Function SecureDelete(nFile As String) As Boolean
Fungsi diatas untuk menghapus file dengan modus Secure.
32
Public Sub setChunk(chunk As Integer)
Fungsi diatas untuk mengeset chunk atau buffer yang digunakan untuk menghapus
file, fungsi ini digunakan khusus pada modus Secure.
Private Sub setReminder(remind As Long)
Fungsi diatas untuk mengeset buffer yang digunakan menghapus file, berbeda
dengan fungsi setChunk, fungsi ini hanya mengambil nilai sisa pembagian dari
besarnya file.
Public Function FileExist(aFile As String) As Boolean
Fungsi diatas untuk mengecek keberadaan file, apakah ada atau tidak? Akan
mengembalikan nilai true jika file ada, false sebaliknya.
Public Function isUseByProcess(fName As String) As Boolean
Fungsi ini untuk mengecek apakah file sedang digunakan oleh proses lain atau
tidak? Jika sedang digunakan proses lain maka nilai baliknya adalah true, dan
false bila tidak digunakan proses lain.
Public Function isValidAttribute(fName As String) As Boolean
Fungsi ini untuk mengecek apakah atribut file layak untuk dihapus atau tidak.
Public Function isDirectory(fName As String) As Boolean
Fungsi diatas untuk mengecek atribut file, apakah file tersebut directory atau
bukan?
33
Public Sub stopSecureWipe()
Fungsi diatas untuk menghentikan proses wipe secara paksa, hanya bisa dilakukan
dengan metode Secure.
Public Function setAttributeToNormal(nFile As String)
Fungsi diatas untuk mengeset nilai atribut file apa saja ke atribut file normal, agar
bisa dihapus.
Private Function RenameAndKill(rFile As String) As Boolean
Fungsi diatas untuk me-rename dan menghapus file. Fungsi ini seperti
menghilangkan jejak, agar file tidak dapat di recovery.
Beberapa fungsi API Windows yang terkait Private Declare Function FlushFileBuffers Lib "kernel32" (ByVal hFile As Long) As Long
Fungsi diatas digunakan untuk menghapus spesifik buffer yang digunakan untuk
menulis ke file.
Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal
lpFileSpec As String) As Long
Fungsi diatas digunakan untuk mendapatkan atribut file.
Private Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal
lpFileSpec As String, ByVal dwFileAttributes As Long) As Long
Fungsi diatas digunakan untuk mengeset atribut file.
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
34
Fungsi diatas digunakan untuk menutup handle.
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As
String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes
As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal
hTemplateFile As Long) As Long
Fungsi diatas digunakan untuk membuka handle
b. Search
Class ini berisi fungsi-fungsi untuk pencarian file.
Beberapa fungsi yang ada di dalamnya :
Public Function findFile(path As String, filetype As String, fData As FileData) As Long
Fungsi diatas untuk mencari file didalam directory yang sedang aktif.
Public Function searchFilePath(path As String, fData As FileData, filetype As String, strWord As
String, stopSearch As Boolean) As Long
Fungsi diatas untuk mencari file didalam directory dan sub directory, fungsi ini
juga memakai fungsi findFile yang sebelumnya sudah dijelaskan.
Public Function CompareString(strWord As String, Word As String) As Boolean
Fungsi diatas untuk membanding kan nama file dengan kata yang ingin dicari.
3.3 Uji Coba dalam media penyimpanan
Penulis telah melakukan percobaan berdasarkan dasar teori yang ada untuk melihat
keadaan sebuah file ketika diciptakan dan dihapus didalam sebuah media penyimpanan.
Penulis menggunakan sampel media penyimpanan flashdisk 128Mb yang dipartisi
35
menjadi 2 bagian, yaitu 8 Mb dan 120 Mb, karena dirasa menggunakan hardisk akan
sangat sulit mencari lokasi file, jadi lebih baik menggunakan media penyimpanan yang
ukurannya lebih kecil agar lokasi file dapat dicari dengan mudah. Penulis menggunakan
tools program HEX Editor untuk membuka media penyimpaan dan Snapshot untuk
merekam hasilnya. Berikut adalah hasil dari percobaan :
1. Pertama-tama menciptakan file Readme.txt, tampak pada gambar 3.6 adalah keadaan
directory entry menggunakan Hex Editor. Dan gambar 3.7 adalah data dari file
Readme.txt, terlihat letak nama file dan data-nya ditempatkan pada posisi yang
berbeda, posisi nama file terletak pada alamat 0x20 dan datanya pada alamat 0x40
(alamat cluster pertama).
Gambar 3.6
Gambar 3.7
2.Penulis mencoba membuat directory yang bernama MYFOLDER dan menyalin file
hello.txt kedalamnya, nampak pada gambar 3.8 ada tambahan informasi setelah file
36
readme.txt, tetapi informasi file hello.txt tidak ada, dikarenakan file hello.txt adalah
bagian dari directory MYFOLDER, jadi akan ditempatkan sebagai data. Dan gambar
3.9 adalah rekaman data dari file hello.txt
Gambar 3.8
Gambar 3.9
3.Penulis menghapus file readme.txt dari media penyimpan menggunakan tombol
shift+del. Gambar 3.10 adalah hasil rekamannya. Terlihat ada nilai 0xE5 pada karakter
pertama, menandakan bahwa tempat itu bebas sekarang dan boleh dipakai, artinya jika
ada file lain yang masuk, kemungkinan informasi yang lalu akan tertimpa begitu juga
dengan datanya. Dan gambar 3.11 memperlihat data dari file readme.txt belum diubah
sama sekali, ini menandakan bahwa Sistem Operasi hanya mengubah nilai pada
directory entry saja tetapi tidak pada datanya, dan kemungkinan data akan bisa di-
recovery kembali, jika belum ada file yang menempati ruang bebas itu.
37
Gambar 3.10
Gambar 3.11
38
BAB IV
IMPLEMENTASI DAN ANALISA 4.1 Implementasi Program
Pada bab ini akan menjelaskan cara kerja program untuk menghapus file dan
menjelaskan fungsi-fungsi dari module dan class yang ada.
4.1.1 Form Utama Form utama memiliki peranan untuk menyediakan fasilitas yang disediakan oleh
program, seperti menu, interface yang menyerupai explorer, toolbar menu untuk
pengaksesan secara cepat. Didalam form ini juga menginisialisasi beberapa class dan
variable yang akan digunakan pada proses selanjutnya, terdapat pada fungsi
form_load(), juga terdapat fungsi untuk melihat file didalam directory dan sub directory,
yang diatur oleh fungsi pathchange(). Dan fungsi untuk me-wipe file.
39
Gambar 4.1 Form_load
Fungsi ini adalah ketika pertama kali program di dijalankan, program akan
menginisialisasi beberapa variabel dan kelas. Berikut adalah potongan listing programnya
pada gambar 4.2.
... Dim path As String, FileType As String Set srcEng = New search ' -- Create Object Search Set fData = New FileData ' -- Create Object FileData Set Wipe = New WipeFile ' -- Create Object WipeFile Set FileProcess = New ProcessFile ' -- Create Object FileProcess Wipe.setChunk (31 * 1024) ' -- Set Chunk ...
Gambar 4.2
PathChange()
Fungsi ini untuk mengkontrol komponen yang menyerupai explorer, berguna
untuk merefresh tampilan. Berikut adalah potongan listing programnya pada gambar 4.3.
40
Public Sub PathChange() On Error GoTo erlLabel RefreshView Exit Sub erlLabel: retn = SaveLastError("ErrorLog.txt", "frmMain::PathChange") MsgBox "An Error is occure!" + " Please check at ErrorLog.txt" + vbCrLf + "Application will shutdown now!", vbCritical, "Error" CloseUp End End Sub
Gambar 4.3 4.1.2 Form Progress Form progress akan muncul ketika proses wiping file sedang berjalan dan
menghitung waktu yang sudah terlewat. Juga ada tombol stop untuk menghentikan proses
di tengah-tengah. Tombol stop ini digunakan untuk membatalkan proses wiping file,
tetapi file yang sudah terhapus dalam proses wiping tidak bisa kembali, hanya file yang
belum terkena proses wiping yang akan tetap utuh. Gambar 4.4 adalah bentuk dari Form
progress.
Gambar 4.4
41
Tombol Stop
Fungsi ini berguna untuk menghentikan program secara paksa ketika proses
wiping sedang berlangsung. Berikut adalah listing programnya pada gambar 4.5
Private Sub btnStop_Click() frmMain.tmrNonSecureDelete.Enabled = False frmMain.tmrSecureDelete.Enabled = False Wipe.stopSecureWipe frmMain.Enabled = True frmMain.Visible = True Unload Me End Sub
Gambar 4.5
4.1.3 Proses Wiping
Proses wiping dikendalikan oleh fungsi timer pada form utama, dimana
dikategorikan menjadi 3 bagian yaitu proses wiping dengan metode NonSecure, proses
wiping dengan metode Secure dan metode Medium yang merupakan gabungan metode
Secure dan NonSecure. Proses wiping NonSecure terletak pada fungsi
tmrNonSecureDelete() pada form utama dan proses wiping Secure terletak pada fungsi
tmrSecureDelete().. Dan ada satu fungsi penting lagi yaitu tmrWipeInFolder() yang
berguna ketika melakukan wiping file didalam directory dan sub directory.
Metode NonSecure
Didalam fungsi tmrNonSecureDelete() terdapat fungsi WipeFileNonSecure()
dimana fungsi ini yang berguna untuk me-wiping file dengan mengakses class Wipe..
Gambar 4.6 adalah urutan fungsinya :
42
Gambar 4.6
Fungsi tmrNonSecureDelete() berfungsi untuk mengendalikan proses agar tidak
terlalu cepat. Dan fungsi WipeFileNonSecure() berguna untuk me-wipe file dimana dia
akan mengakses 2 fungsi yang bergantung pada : jika terdapat directory maka akan
mengakses fungsi tmrWipeInFolder() terlebih dahulu. Dan fungsi
Wipe.nonSecureDelete() untuk me-wipe file.
tmrNonSecureDelete()
Program mendeteksi atribut file, apakah directory atau bukan.
Jika file beratribut directory maka fungsi tmrWipeInFolder() akan dijalankan, jika bukan
directory maka fungsi WipeFileNonSecure() akan dijalankan. Gambar 4.7 adalah
potongan dari listing programnya.
tmrNonSecureDelete()
WipeFileNonSecure()
Wipe.nonSecureDelete()
tmrWipeInFolder()
WipeInFolder()
WipeFileNonSecure()
43
Private Sub tmrNonSecureDelete_Timer()
On Error GoTo erlLabel
...
If Wipe.isDirectory(path + tableView.ListItems(FileCounter)) Then
tmrNonSecureDelete.Enabled = False
tmrWipeInFolder.Enabled = True
...
Else
retn = WipeFileNonSecure(path, tableView.ListItems(FileCounter))
...
End If
...
Gambar 4.7
Wipe.nonSecureDelete()
Program akan secara paksa menciptakan file dengan nama yang sama dengan file
yang akan dihapus, ini menyebabkan ukuran file yang baru menjadi 0 bytes. Gambar 4.8
adalah potongan lisitng programnya
...
fhnd = CreateFile(nFile, GENERIC_WRITE, 0, 0, TRUNCATE_EXISTING, 0, 0)
If fhnd = -1 Then
CloseHandle fhnd
nonSecureDelete = False
Exit Function
Else
...
Gambar 4.8
44
Program akan membersihkan segala buffer yang berhubungan dengan file yang
akan dihapus. Proses ini dilakukan untuk mencegah apabila masih ada buffer yang ingin
menulis ke file yang akan dihapus maka akan dikosongkan. Gambar 4.9 adalah potongan
listing programnya.
...
FlushFileBuffers (fhnd) 'Flush any buffers the system used for the file
...
Gambar 4.9
Kita dapat memilih pilihan untuk metode NonSecure lewat konfigurasi program
seperti pada gambar 4.10.
Gambar 4.10
Metode Secure
Didalam fungsi tmrSecureDelete() terdapat fungsi WipeFilenSecure() dimana
fungsi ini yang berguna untuk me-wiping file dengan mengakses class Wipe. Berikut
gambar 4.11 adalah urutan fungsinya :
45
Gambar 4.11
Fungsi tmrSecureDelete() berfungsi untuk mengendalikan proses agar tidak
terlalu cepat. Dan fungsi WipeFileSecure() berguna untuk me-wipe file dimana dia akan
mengakses 2 fungsi yang bergantung pada : jika terdapat directory maka akan mengakses
fungsi tmrWipeInFolder() terlebih dahulu. Dan fungsi Wipe.SecureDelete() untuk me-
wipe file.
tmrSecureDelete()
Program mendeteksi atribut file, apakah directory atau bukan?
Jika file beratribut directory maka fungsi tmrWipeInFolder() akan dijalankan, jika bukan
directory maka fungsi WipeFileSecure() akan dijalankan.
... If Wipe.isDirectory(path + tableView.ListItems(FileCounter)) Then tmrSecureDelete.Enabled = False tmrWipeInFolder.Enabled = True ... Else If WipeNextProcess = False Then retn = WipeFileSecure(path, tableView.ListItems(FileCounter), False): WipeNextProcess = True If WipeNextProcess = True Then retn = WipeFileSecure(path, tableView.ListItems(FileCounter), True) frmProgress.txtFileName.Text = tableView.ListItems(FileCounter) frmProgress.barProcess1.Value = Wipe.getPercentProcess End If ...
Gambar 4.11
tmrSecureDelete()
WipeFileSecure()
Wipe.SecureDelete()
tmrWipeInFolder()
WipeInFolder()
WipeFileSecure()
46
Wipe.SecureDelete()
Program menginisialisasi variable terlihat pada potongan listing program pada
gambar 4.12
... If fNext = False Then handle = FreeFile Pointer = 1 countLoop = 0 percentProcess = 0 fileSize = FileLen(nFile) nChunk = Len(strTemp) ...
Gambar 4.12 Program akan menghitung besarnya file yang akan dihapus terlihat pada potongan
listing program pada gambar 4.13
... If fileSize <> 0 Then If fileSize < nChunk Then reminder = 0 totalLoop = 1 Else reminder = fileSize Mod nChunk setReminder reminder totalLoop = CLng(Fix(fileSize / nChunk)) End If Else ' -- This code adding to delete file with Zero Length retn = nonSecureDelete(nFile) percentProcess = 100 SecureDelete = False fNext = False Exit Function End If ...
Gambar 4.13
47
Proses menghancurkan data terlihat pada potongan listing program pada gambar 4.14
... ElseIf fNext = True Then If countLoop <> totalLoop Then Put handle, Pointer, strTemp percentProcess = CInt((Pointer / fileSize) * 100) Pointer = Pointer + Len(strTemp) countLoop = countLoop + 1 SecureDelete = True ElseIf countLoop = (totalLoop) Then Put handle, Pointer, strRemind Close handle retn = nonSecureDelete(nFile) percentProcess = 100 SecureDelete = False fNext = False End If End If Exit Function ...
Gambar 4.14
Kita dapat memilih pilihan untuk metode Secure lewat konfigurasi program
seperti pada gambar 4.15.
Gambar 4.15 Metode Medium
Metode ini merupakan gabungan dari metode NonSecure dengan Secure, yaitu
dengan cara menghapus beberapa byte header saja untuk memastikan bahwa data yang
akan kemungkinan di-recovery tidak dapat dijalankan, seperti program executable
contohnya. Berikut adalah urutan fungsinya pada gambar 4.16
48
Gambar 4.16
Fungsi tmrMediumDeleted() berfungsi untuk mengendalikan proses agar tidak
terlalu cepat. Dan fungsi WipeFileMedium() berguna untuk me-wipe file dimana dia akan
mengakses 2 fungsi yang bergantung pada : jika terdapat directory maka akan mengakses
fungsi tmrWipeInFolder() terlebih dahulu. Dan fungsi Wipe.MediumDelete() untuk me-
wipe file.
tmrMediumDelete()
Program mendeteksi atribut file, apakah directory atau bukan.
Jika file beratribut directory maka fungsi tmrWipeInFolder() akan dijalankan, jika bukan
directory maka fungsi WipeFileMediume() akan dijalankan. Gambar 4.17 adalah
potongan dari listing programnya.
tmrMediumDeleted()
WipeFileMedium()
Wipe.MediumDelete()
tmrWipeInFolder()
WipeInFolder()
WipeFileMedium()
49
Private Sub tmrMediumDeleted_Timer()
On Error GoTo erlLabel
...
If Wipe.isDirectory(path + tableView.ListItems(FileCounter)) Then
tmrMediumDeleted.Enabled = False
tmrWipeInFolder.Enabled = True ...
Else
retn = WipeFileMedium(path, tableView.ListItems(FileCounter))
...
End If
...
Gambar 4.17
Wipe.MediumDelete()
Program akan menghitung besarnya file yang akan dihapus dan mengeset nilai
besarnya byte yang akan dihapus yaitu 30 bytes terlihat pada potongan listing program
pada gambar 4.18
...
fileSize = FileLen(nFile)
If fileSize <> 0 Then
If fileSize < 30 Then ‘ –- setting byte
setChunk CInt(fileSize)
Else
setChunk 30
End If
...
Gambar 4.18
50
Program akan menghapus beberapa bytes pertama dari data terlihat pada potongan
listing program pada gambar 4.19
... Pointer = 1 Open nFile For Binary As handle Put handle, Pointer, strTemp Close handle ...
Gambar 4.19
Kita dapat memilih pilihan untuk metode Medium lewat konfigurasi program
seperti pada gambar 4.20.
Gambar 4.20
4.2 Analisa Hasil
Analisa hasil didapat dari uji coba program menggunakan media penyimpanan
flashdisk 256mb yang telah di fomat terlebih dahulu. Dalam uji coba ini akan
menggunakan program recovery untuk melihat hasil dari program yang ini setelah file
dihapus dari disk. Contoh program recovery yang akan dipakai adalah Smart FAT
Recovery. Berikut adalah hasilnya :
51
Gambar 4.21 Smart FAT Recovery dapat mendeteksi nama file yang ada, dan atribut yang ada
pada file, tetapi ukuran file yang dideteksi adalah 0 bytes, ini yang menyebabkan file
tersebut tidak dapat direcovery. Jika kita melakukannya sekali lagi dengan cara metode
Secure, caranya hampir sama dengan langkah diatas, hanya pada setting program dipilih
Secure, secara sepintas lewat program recovery sama, tetapi ada perbedaan yang sangat
mendasar yaitu dengan metode Secure yaitu data terlebih dahulu dihancurkan baru
dihapus.
Dari hasil yang didapat dari program Smart FAT Recovery pada gambar 4.21
terdapat 3 nama file secara acak. Ini disebabkan oleh fungsi RenameAndKill() pada class
Wipe. Fungsi ini berguna untuk mengubah nama file dan menghapusnya agar nama file
tidak mudah dilacak.
52
RenameAndKill()
Fungsi ini memakai bilangan acak terlihat pada potongan listing program pada gambar
4.22
Randomize Timer
...
Gambar 4.22
Dan memilih nama file secara acak lalu me-rename nama filenya terlihat pada potongan
listing program pada gambar 4.23
...
strList = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-_ "
For i = 1 To 30
TempName = ""
For J = 1 To 100
tmpchr = CLng((Rnd * Len(strList)) + 1)
TempName = TempName + Mid(strList, tmpchr, 1)
Next
TempName = fDrive & TempName
Name rFile As TempName
rFile = TempName
Next
...
Gambar 4.23
53
Bagian terakhir adalah menghapus filenya terlihat pada potongan listing program pada
gambar 4.24
...
Kill TempName
RenameAndKill = True
...
Gambar 4.24
Perbedaan metode Fast, Medium dan Secure pada proses kehilangan data Untuk dapat melihat persentase kehilangan datanya, dapat di uji coba
menggunakan flashdisk 128Mb yang dipartisi menjadi 2 bagian 8Mb dan 120Mb. Dan
untuk proses penghapusannya menggunakan partisi yang berukuran 8Mb dan file
berukuran 4Kb. Berikut adalah hasil uji coba pada setiap metode :
a. Non Secure
Gambar 4.25
54
Pada gambar 4.25 dapat dilihat keadaan data didalam disk setelah dihapus menggunakan metode nonSecure, data tidak ada yang hilang. b. Medium
Gambar 4.26
Pada gambar 4.26 dapat dilihat keadaan data didalam disk setelah dihapus
menggunakan metode Medium, data dihancurkan pada 30 bytes pertama.
55
c. Secure
Gambar 4.27
Pada gambar 4.27 dapat dilihat keadaan data didalam disk setelah dihapus
menggunakan metode Secure, data dihancurkan seluruhnya.
56
Dapat disimpulkan dengan tabel pada gambar 4.28
Metode Proses kehilangan data Fast / NonSecure Data 100% utuh, tidak dihancurkan.
Medium Data hanya kehilangan 30 bytes pertama.
Secure Data dihancurkan 100%, sehingga tidak dapat dikembalikan.
Gambar 4.28
Hasil Uji coba program berdasarkan waktu
Waktu Spesifikasi komputer NonSecure Medium Secure
Ukuran
AMD Athlon(tm)XP 3000+ 2.16 Ghz 512 Mb Windows XP
4 detik 4 detik 5 menit 20 detik
585.253.001 bytes
AMD Athlon(tm) 64 3000+ 2.71 Ghz 1.00 Gb Windows XP
4 detik 17 detik 7 menit 33 detik
1.224.780.793 bytes
Pentium(R) 4 CPU 3.20Ghz 3.21 Ghz 512 Mb Windows XP
10 detik 3 menit 18 detik
11 menit 52 detik
465.727.459 bytes
Gambar 4.29
Dapat dilihat pada gambar 4.29 bahwa perbedaan waktu antara metode
NonSecure dan Medium tidak terpaut jauh. Sedangkan untuk metode NonSecure dan
Secure terpaut jauh. Perbedaan waktu ini dikarenakan metode Secure lebih sering
menulis ke I/O disk, metode Medium juga menulis ke I/O disk tetapi tidak sesering
metode Secure, dan metode NonSecure dianggap diabaikan dalam menulis ke I/O disk.
Dan kecepatan proses penghapusan juga akan tergantung juga pada kecepatan I/O disk
57
Hasil Uji coba program pada jaringan Windows XP dengan file sistem FAT Program akan diuji didalam jaringan komputer berbasis Windows XP dengan file
sistem FAT. Sebelumnya sharing directory diberi akses untuk dapat merubah semua isi
directory, sehingga dapat ditulisi oleh program. Berikut gambar 4.30 adalah hasilnya :
Gambar 4.30 Dapat dilihat pada gambar 4.30 program tidak dapat melakukan proses
penghapusan, nama file masih tercantum pada lokasi sharing directory. Dapat
disimpulkan bahwa program tidak dapat melakukan proses pada jaringan komputer.
58
Hasil Uji coba program pada CD-RW
Program akan diujikan pada CD-RW, berikut gambar 4.31 adalah hasil dari
percobaannya :
Gambar 4.31 Dapat terlihat pada gambar 4.31 program mengalami kesalahan dalam proses
penghapusan dan data yang ada pada CD-RW tidak berhasil dihapus. Dapat disimpulkan
bahwa program tidak mampu melakukan proses penghapusan pada CD-RW.
4.3 Kelebihan dan Kekurangan Program.
4.3.1 Kelebihan Program
1. Dapat mengakses file-file yang akan dihapus dengan mudah, karena ada kotak
yang menyerupai explorer, sehingga dapat menjelajahi media penyimpanan
lebih user-friendly.
2. User dapat memilih metode penghapusan, yaitu dengan cara Secure
NonSecure dan Medium.
3. Dilengkapi dengan fasilitas Search untuk mencari file dengan mudah.
59
4.3.2 Kekurangan Program
1. Program ini belum dapat menghilangkan jejak pada file seperti tanggal, waktu
dan nama file, dapat terlihat hasilnya pada gambar 4.21
2. Program ini belum dapat berjalan pada jaringan komputer Windows XP.
60
BAB V
KESIMPULAN 5.1 Kesimpulan
Berdasarkan pengujian dan analisa yang telah dilakukan maka dapat diambil
beberapa kesimpulan dari pembuatan tugas akhir ini.
1. Program sudah berhasil berjalan dengan baik pada sistem operasi Windows pada
file sistem FAT.
2. Program sudah berhasil dibuat dan dapat berjalan dengan baik, menggunakan 3
metode yaitu metode NonSecure, Medium dan Secure.
3. Metode Non Secure dapat melakukan proses penghapusan secara cepat pada file
dengan ukuran apapun, tetapi datanya tidak dihancurkan, kemungkinan data dapat
dikenali dan di-recovery.
4. Metode Medium menggabungkan kedua metode yaitu NonSecure dan Secure,
yaitu untuk memperoleh kecepatan dan keamanan. Data tidak dihancurkan
seluruhnya tetapi hanya 30 bytes pertama saja, hanya untuk mencegah file tidak
dapat dieksekusi atau format file tidak dapat dikenali.
5. Metode Secure prosesnya berjalan lebih lambat dibandingkan metode NonSecure,
tergantung dari besarnya file yang akan dihapus. Dengan metode ini data
dihancurkan terlebih dahulu seluruhnya, sehingga data tidak dapat di-recovery.
6. Program ini memberi kemudahan untuk menghapus file lewat User Interfacenya
menyerupai kotak explorer.
61
7. Program ini juga dilengkapi fasilitas Search untuk mencari file yang akan
dihapus.
8. Program ini belum dapat menghilangkan jejak file yang dihapus seperti tanggal,
waktu dan nama file walaupun isi dari file tersebut dapat dihancurkan, sehingga
dapat diketahui informasi tentang file yang dihapus sebelumnya, tetapi file tidak
dapat dibaca kembali.
9. Program tidak dapat melakukan proses penghapusan pada jaringan Windows XP
10. Program tidak dapat melakukan proses penghapusan pada CD-RW
5.2 Saran
1. Program ini dapat dikembangkan dengan memperbaiki Grapical User Interface
yang lebih sederhana, seperti Context Menu.
2. Dapat dikembangkan metode lain, yaitu dengan menambah enkripsi pada proses
penghapusannya.
3. Program ini dapat dikembangkan dengan adanya jadwal untuk menghapus file
pada lokasi directory tertentu.
4. Program ini dapat ditambahkan keamanannya dengan dapat menghilangkan jejak
file yang dihapus.
5. Program ini dapat ditambahkan kemampuannya untuk dapat menghapus lewat
jaringan komputer berbasis Windows dan dapat menghapus data pada CD-RW.
96
DAFTAR PUSTAKA
Putra, Indra, Membuat Program Aplikasi Nyata dengan Visual Basic, 2004 Pandia, Henry, Visual Basic 6 Tingkat Lanjut, 2002 Whitten, J.L., Bentley, L.D., Dittman, K.C., Metode Desain dan Analisis Sistem
edisi 6, McGraw-Hill, 2002 http://staff.washington.edu/dittrich/misc/FatFormat.pdf http://www.ntfs.com/disk-scan.htm
LAMPIRAN
Petunjuk Pemakaian Tampilan Utama
Gambar 1 Gambar 1 menunjukkan Tampilan Utama dari program RX-ERASER. Disini pemakai
dapat melihat dan dengan cepat mengoperasikan menu-menu yang ada. User interface ini
dibuat untuk memberikan kemudahan bagi pemakai agar dapat belajar dengan cepat
bagaimana cara pemakaian program ini, juga sekaligus memperkenalkan fungsi dari
program ini.
Menu Program
Kontrol menu mengkonfigurasi program
dan keluar dari program
gambar 2
Kontrol Menu yang tidak asing bagi pemakai, yaitu untuk
mengoperasikan program dengan memilih item yang ada.
gambar 3
Kontrol Menu untuk melakukan proses penghapusan atau Wipe
gambar 4
Kontrol Menu untuk melihat author
gambar 5
gambar 6 Menu Toolbar yang dilengkapi dengan icon agar mudah dikenali oleh user berfungsi
untuk mengakses program secara cepat dengan menekan 1 tombol, terlihat pada gambar
6.
Konfigurasi Program
gambar 7 Program dapat dikonfigurasi menjadi 3 operasi utama seperti yang terlihat pada gambar
7, yaitu Fast/NonSecure, Medium dan Secure. Dan pilihan Forced attribute jdigunakan
untuk menghapus semua file dengan atribut apa saja.
Fasilitas Program
Program mempunyai fasilitas yaitu kotak yang menyerupai
explorer pada windows terlihat pada gambar 8, berfungsi
untuk memberikan kemudahan pada pemakai agar dapat
menyeleksi dan memilih file pada lokasi media
penyimpanan. Dan dapat memilih file yang akan dihapus
seperti yang terlihat pada gambar 9.
gambar 8
gambar 9
Program juga dapat melakukan pencarian file guna untuk
menyeleksi file yang akan dihapus. Terlihat pada gambar
10.
gambar 10
Cara Pemakaian
Pemakai dapat menseleksi file menggunakan kotak yang menyerupai explorer seperti
yang terlihat pada gambar 8 dan gambar 9. Dan dapat langsung memilih menu Wipe pada
Menu Toolbar seperti pada gambar 11 atau menggunakan pulldown seperti pada gambar
12.
gambar 11
gambar 11
Tips
1. Gunakan metode Fast, jika ukuran file relatif besar.
2. Metode Medium sebaiknya digunakan pada program aplikasi atau file yang bisa
dieksekusi.
3. Jika anda mempunyai file dokumen seperti Word, Excel, Power Point, Rich Text
Document atau fie dcoument dengan format laiinya, lebih baik menggnakan metode
Secure untuk menghapusnya.
top related