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 xvi

  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

x

  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 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 FAT32

  Offset 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: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

  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

buku

relationship

pendaftaran customer visitor update data searching buku buku pendaftaran update data

patron

buku visitor patron

  Gambar 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

Gambar 3.2 Kelas untuk pencarian 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 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

Gambar 3.3 Kelas WipeFileGambar 3.3 adalah rancangan dari kelas WipeFile yang berfungsi untuk menghapus file secara permanen.

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 Menghapus

3.2.3 Kelas dan Module

  Beberapa module yang terkait dalam pembuatan program ini :

  a. WipeFileMod Module ini berisi fungsi-fungsi untuk menghapus file.