APLIKASI UNTUK MENGHAPUS FILE SECARA PERMANEN PADA SISTEM OPERASI WINDOWS XP DENGAN FILE SISTEM FAT MENGGUNAKAN VISUAL BASIC 6.0
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
I pr es ent ed t hi s t hes i s f or
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
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
v
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.
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.
KATA PENGANTAR
viii
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
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 xviDAFTAR 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
x2.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 xi
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 xii
DAFTAR GAMBAR
Gambar 2.1 Media Penyimpanan.............................................................................6Gambar 3.1 Use Case Diagram..............................................................................25Gambar 3.2 Kelas untuk pencarian ........................................................................32Gambar 3.3 Kelas WipeFile...................................................................................27Gambar 3.4 Flowchart Running Program ..............................................................28Gambar 3.5 Flowchart Menghapus ........................................................................29Gambar 3.6 Keadaan Directory dengan Hex Editor ..............................................35Gambar 3.7 Data pada file Readme.txt ..................................................................35Gambar 3.8 Keadaan File hello.txt dengan Hex Editor .........................................36Gambar 3.9 Data pada file hello.txt .......................................................................36Gambar 3.10 File Readme.txt dihapus...................................................................37Gambar 3.11 Data pada file Readme.txt setelah dihapus.......................................37Gambar 4.1 Form Load ..........................................................................................39Gambar 4.2 Potongan Listing Program pada Form Load ......................................39Gambar 4.3 Potongan Listing Program pada Fungsi PathChange() ......................40Gambar 4.4 Form Progress ....................................................................................40Gambar 4.5 Potongan Listing Program pada tombol STOP ..................................41Gambar 4.6 Diagram metode NonSecure ..............................................................42Gambar 4.7 Potongan Listing Program pada timer NonSecure.............................43Gambar 4.8 Potongan Listing Program pada Fungsi NonSecure ..........................43Gambar 4.9 Fungsi FlushBuffer.............................................................................44 xiiiGambar 4.10 Konfigurasi metode NonSecure .......................................................44Gambar 4.11 Diagram Metode Secure...................................................................45Gambar 4.12 Potongan Listing Program pada Fungsi Secure 1 ............................45Gambar 4.13 Potongan Listing Program pada Fungsi Secure 2 ............................46Gambar 4.14 Potongan Listing Program pada Fungsi Secure 3 ............................47Gambar 4.15 Konfigurasi metode Secure ..............................................................47Gambar 4.16 Diagram Metode Medium ................................................................48Gambar 4.17 Potongan Listing Program pada timer Medium ...............................49Gambar 4.18 Potongan Listing Program pada Fungsi Medium 1..........................49Gambar 4.19 Potongan Listing Program pada Fungsi Medium 2..........................50Gambar 4.20 Konfigurasi metode Medium ...........................................................50Gambar 4.21 Hasil Recovery pada Program Smart Recovery...............................51Gambar 4.22 Randomize Timer .............................................................................52Gambar 4.23 Fungsi RenameAndKill....................................................................52Gambar 4.24 Kill File ............................................................................................53Gambar 4.25 Hasil NonSecure pada Hex Editor ...................................................53Gambar 4.26 Hasil Medium pada Hex Editor........................................................54Gambar 4.27 Hasil Secure pada Hex Editor ..........................................................55Gambar 4.30 Hasil Uji Coba Program pada jaringan ............................................56Gambar 4.31 Hasil Uji Coba Program pada CD RW.............................................56 xiv
DAFTAR TABEL
Tabel 2.2 Struktur Directory Entry FAT32..............................................................6Tabel 4.28 Tabel Kesimpulan Proses Kehilangan Data.........................................56Tabel 4.29 Tabel Hasil Uji Coba Program berdasarkan waktu................................6
xv
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- 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
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.
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.
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
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 FAT32Offset Size Nama Field Deskripsi (bytes) (bytes)
DIR_Name
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 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.
- 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
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
Root Directory ini tedapat 3 entry (catatan), salah satunya informasinya sudah dihapus
pertama adalah MYFOLDER yang masih ada, Entry kedua adalah MyFiles.txt
Entry 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:002.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
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.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
Pencarian judul film 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
extension use case bayar biaya pendaftaran isi data anggota
<<extends>> <<extends>> pendaftaran anggota
Gambar 2.7
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
memasukkan data memasukkan transaksi data obat pembelian <<uses>>
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 Login
<<depends on>>
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
searching
Inheritance
bukurelationship
pendaftaran customer visitor update data searching buku buku pendaftaran update datapatron
buku visitor patronGambar 2.9
Contoh sebuah Use Case utuh login
<<depend on>>
pencarian judul film edit database
admin penyewa
pembuatan laporan 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.
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
adalah tampilan yang berbasi grafis yang dimasukkan pada form untuk membuat
Control
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.
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]]…) 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
CreateFil
menggunakan fungsi
e. 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 Keterangan:
CreateFile :
Parameter untuk fungsi
lpFileName Nama File yang akan dibuka atau dibuat. dwDesiredAccess
Dapat berisi nilai 0 atau salah satu flag berikut :
: untuk membaca data dari file
- GENERIC_READ
- 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.
- 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 :
Public Declare Function SetFileAttributes Lib "kernel32"_ Alias "SetFileAttributesA" (ByVal lpFileName As String,_ ByVal dwFileAttributes As Long) As Long
Keterangan :
SetFileAttributes:
Parameter untuk fungsi
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
GetFileAttributes Fungsi API untuk mendapatkan atribut file mengginakan .
Format pendeklarasiannya sebagai berikut :
Public Declare Function GetFileAttributes Lib_ "kernel32" Alias "GetFileAttributesA" (ByVal_ lpFileName As String) As Long
Keterangan :
GetFileAttributes:
Parameter untuk fungsi
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 :
CloseHandle:
Parameter untuk fungsi
hObject
Identitas dari handle objek yang sedang terbuka. Dalam hal ini membuka file
CreateFile menggunakan adalah sama seperti membuka sebuah objek. 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 :
FlushFileBuffers :
Parameter untuk fungsi
hFile Handle dari file yang akan diflush datanya.
BAB III ANALISIS dan PERANCANGAN SISTEM
3.1 Analisis Sistem
3.1.1 Model Use Case
Menghapus file dengan metode fast Menghapus file dengan metode medium Menghapus file dengan metode secure Menjelajahi media penyimpanan
User Pencarian file Keluar dari program
Gambar 3.1 Use Case DiagramGambar 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 Win32_Find_Data Search FileTime
+dwAttributes : Long
-hFile : Long- dwLowDateTime : Long +ftCreationTime : FileTime
- hFileClose : Long
- dwHighDateTime : Long +ftLastAccessTime : FileTime
- findNext : Long +ftLastWriteTime : FileTime
- searchNext : Long
+nFileSizeHigh : Long
-countFolder : Long+nFileSizeLow : Long
-fData : FileData +dwReserved0 : Long
-WFD : Win32_Find_Data+dwReserved1 : Long
-LastErrorNumber : Long +cFileName : String -LastErrorString : String +cAlternate : String -LastErrorProc : String
FileData
- subDir : String
- FileName : String -FindClose() : Long
- pathName : String -FindFirstFile() : Long
- fileAtribute : String -FindNextFile() : Long
- fileSize : Double -StripNull() : String
- FileType() : String +CompareString() : Boolean +isArchieve() : String +FindEnd() : Boolean
- isCompresses() : Boolean +findFile() : Long
- isDirectory() : Boolean +getCountFolder() : Integer +isHidden() : Boolean +getFolder() : Boolean
- isNormal() : Boolean +SearchFilePath() : Long
- isReadOnly() : Boolean +ResetArray() : void
- isSystem() : Boolean +isTemporary() : Boolean
Kelas Wipe WipeFile
- handle : Long -fNext : Long -reminder : Long -Pointer : Double -strTemp : String
WipeFileMod
- strRemind : String +WipeNextProcess : Boolean -totalLoop : Long +WipeProgress : Boolean -countLoop : Long +FileCounter : Integer -fileSize : Double +stepFolder : Integer -percentProcess : Integer +tvSorting : Boolean -LastErrorNumber : Long +arry : String -LastErrorString : String +FileSizeWipe : Long -LastErrorProc : String +DeleteTreeDir() : void
- nonSecureDelete() : Boolean +WipeFileInFolder() : Boolean +SecureDelete() : Boolean +WipeFileNonSecure() : Boolean +setChunk() : void
- WipeFileSecure() : Boolean -setReminder() :
- 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
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 ProgramGambar 3.5 Proses Menghapus3.2.3 Kelas dan Module
Beberapa module yang terkait dalam pembuatan program ini :
a. WipeFileMod Module ini berisi fungsi-fungsi untuk menghapus file.