Teknik Pendeteksian Kerusakan File Dokumen Dengan Metode Cyclic Redundancy Check 32 (CRC32)

(1)

TEKNIK PENDETEKSIAN KERUSAKAN FILE DOKUMEN

DENGAN METODE CYCLIC REDUNDANCY CHECK 32

(CRC32)

SKRIPSI

PUTRI HARTARY HARAHAP

061401062

PROGRAM STUDI SARJANA ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2010


(2)

TEKNIK PENDETEKSIAN KERUSAKAN FILE DOKUMEN

DENGAN METODE CYCLIC REDUNDANCY CHECK 32

(CRC32)

SKRIPSI

PUTRI HARTARY HARAHAP

061401062

PROGRAM STUDI S1 ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA


(3)

TEKNIK PENDETEKSIAN KERUSAKAN FILE DOKUMEN DENGAN METODE CYCLIC REDUNDANCY CHECK 32

(CRC32)

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

PUTRI HARTARY HARAHAP 061401062

PROGRAM STUDI SARJANA ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2010


(4)

PERSETUJUAN

Judul : TEKNIK PENDETEKSIAN KERUSAKAN FILE DOKUMEN DENGAN METODE CYCLIC REDUNDANCY CHECK 32 (CRC32)

Kategori : SKRIPSI

Nama : PUTRI HARTARY HARAHAP

Nomor Induk Mahasiswa : 061401062

Program Studi : SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Drs. Agus Salim Harahap, M.Si Prof. Dr. Muhammad Zarlis NIP 195408281981031004 NIP 195707011986011003 Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Prof. Dr. Muhammad Zarlis NIP 195707011986011003


(5)

PERNYATAAN

TEKNIK PENDETEKSIAN KERUSAKAN FILE DOKUMEN DENGAN METODE CYCLIC REDUNDANCY CHECK 32 (CRC32)

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 23 Juni 2010

Putri Hartary Harahap 061401062


(6)

PENGHARGAAN

Segala puji dan syukur penulis ucapkan kepada Allah SWT yang melimpahan Rahmat dan Karunia-Nya sehingga penulis dapat menyelesaikan tugas akhir ini. Shalawat dan salam kepada Rasulullah Muhammad SAW.

Pada kesepatan ini, penulis menyampaikan rasa terima kasih dan penghargaan yang sebesar-besarnya kepada Bapak Prof. Dr. Muhammad Zarlis selaku pembimbing pertama dan Bapak Drs. Agus Salim Harahap M.Si selaku pembimbing kedua yang telah banyak meluangkan waktunya dalam memberikan pengarahan dengan kesabaran dan penuh kepercayaan kepada penulisan skripsi ini. Ucapan terima kasih juga ditujukan kepada Bapak Syahril Efendi, S.Si,MIT, dan Bapak Drs. Muhammad Firdaus,M.Si selaku dosen pembanding yang telah banyak memberikan petunjuk, saran, dan kritik dalam menyelesaikan skripsi ini. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Departemen Ilmu Komputer, Prof. Dr. Muhammad Zarlis dan Syahriol Sitorus, S.Si, MIT, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen pada Departemen Ilmu Komputer FMIPA USU, dan pegawai di Ilmu Komputer FMIPA USU. Tidak lupa penulis mengucapkan terima kasih kepada yang teristimewa Ayahanda Drs.Ahmad Sofyan Harahap, dan Ibunda Basariah Hanum Tarihoran yang sangat saya sayangi yang telah memberikan segala pengorbanan yang tak pernah bisa dinilai harganya, serta kakak, Abang dan Adik tercinta yang telah memberikan dukungan dan semangat dalam menyelesaikan skripsi ini,buat teman teman saya seluruh rekan-rekan kuliah angkatan ‘06, khususnya Atika Sari Alam Nasution, Habrul Leini Lubis yang selalu membantu dan memberi semangat selama proses skripsi ini dikerjakan.

Akhir kata penulis mengharapkan kiranya tugas akhir ini dapat bermanfaat dan membantu semua pihak yang memerlukannya, terutama rekan mahasiswa Ilmu Komputer.


(7)

ABSTRAK

Dokumen-dokumen digital dihasilkan dengan menggunakan aplikasi-aplikasi pengolah kata seperti Microsoft Word atau Notepad menjadi sebuah file dengan ekstensi yang berbeda sesuai dengan aplikasi pengolah kata yang digunakan. Seperti halnya dokumen yang bersifat manual, dokumen-dokumen digital ini tidak terlepas dari bahaya kerusakan. Salah satu kerusakan yang sering terjadi pada dokumen digital adalah perubahan yang terjadi didalam dokumen tersebut akibat dari serangan virus atau pemadaman komputer dengan paksa. CRC32 (Cyclic Redundancy Check 32 Bit) merupakan suatu metode yang menggunakan fungsi hash dalam membaca sebuah struktur dalam sebuah file dalam transmisi atau penyimpanan sebuah data. CRC32 dapat digunakan untuk mendeteksi error (kerusakan) pada sebuah data yang mungkin terjadi pada saat transmisi data atau pengiriman data. Perangkat lunak yang dirancang mampu mendeteksi apakah suatu file mengalami perubahan atau kerusakan berdasarkan nilai checksum dan nilai CRC dari file tersebut. Perangkat lunak ini memiliki kelemahan dalam hal proses pendeteksian kerusakan file, dimana perangkat lunak tidak dapat mendeteksi lebih dari satu file sekaligus dalam satu proses pendeteksian.


(8)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii Abstrak iv Daftar Isi vi Daftar Gambar viii Bab 1 Pendahuluan 1.1Latar Belakang 1

1.2Rumusan Masalah 2

1.3Batasan Masalah 3

1.4Tujuan Penelitian 3

1.5Manfaat Penelitian 3

1.6Metode Penelitian 4

1.7Sistematika Penulisan 4

Bab 2 Landasan Teori 2.1 Dokumen Digital 6

2.1.1 Pengolahan Dokumen Digital 7

2.2.2 Format Dokumen Digital 9

2.2. Sistem File 12

2.2.1 Manajemen Sistem File 13

2.2.2 Metode Akses Sistem File 15

2.2.3 Organisasi Sistem File 16

2.3 Fungsi Hash 17

2.3.1 Pengertian Fungsi Hash 17

2.4 Checksum 18

2.5 CRC 32 (Cyclic Redundancy Check 32) 20

2.5.1. Kelebihan Metode CRC 32 22

2.5.2 Kelemahan Metode CRC 32 23

2.6 Visual Basic 6.0 23

2.6.1 Pengertian Visual Basic 23


(9)

2.6.3 Komponen Visual Basic 25

Bab 3 Analisis dan Desain

3.1 Analisa Sistem 27

3.2 Desain 28

3.2.1 Rancangan Proses 28

3.2.2 Perancangan Antar Muka 29 3.2.3 Perancangan Struktur Menu 33 Bab 4 Implementasi dan Pengujian

4.1 Implementasi 35

4.1.1 Fasilitas Perangkat Lunak 35 4.1.2 Kebutuhan Perangkat Lunak 36

4.1.3 Tampilan Program 36

4.2 Pengujian Perangkat Lunak 38 4.2.1 Pengujian Scan File 38 4.2.2 Pengujian Pengecekan Kerusakan 40 4.3 Kelebihan dan Kelemahan Perangkat Lunak 43 Bab 5 Kesimpulan dan Saran

5.1 Kesimpulan 44

5.2 Saran 44

Daftar Pustaka 46


(10)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Contoh File RTF 10

Gambar 2.2 Contoh File DOC 11

Gambar 2.3 Contoh File PDF 12

Gambar 2.4 Bentuk Windows Explorer Dalam Windows 14 Gambar 2.5 Pemetaan File Ke Memori Komput er 15

Gambar 2.6 Struktur Direktori 16

Gambar 2.7 Prinsip Kerja Checksum 19

Gambar 2.8 Proses Perhitungan Checksum Pada CRC32 21


(11)

ABSTRAK

Dokumen-dokumen digital dihasilkan dengan menggunakan aplikasi-aplikasi pengolah kata seperti Microsoft Word atau Notepad menjadi sebuah file dengan ekstensi yang berbeda sesuai dengan aplikasi pengolah kata yang digunakan. Seperti halnya dokumen yang bersifat manual, dokumen-dokumen digital ini tidak terlepas dari bahaya kerusakan. Salah satu kerusakan yang sering terjadi pada dokumen digital adalah perubahan yang terjadi didalam dokumen tersebut akibat dari serangan virus atau pemadaman komputer dengan paksa. CRC32 (Cyclic Redundancy Check 32 Bit) merupakan suatu metode yang menggunakan fungsi hash dalam membaca sebuah struktur dalam sebuah file dalam transmisi atau penyimpanan sebuah data. CRC32 dapat digunakan untuk mendeteksi error (kerusakan) pada sebuah data yang mungkin terjadi pada saat transmisi data atau pengiriman data. Perangkat lunak yang dirancang mampu mendeteksi apakah suatu file mengalami perubahan atau kerusakan berdasarkan nilai checksum dan nilai CRC dari file tersebut. Perangkat lunak ini memiliki kelemahan dalam hal proses pendeteksian kerusakan file, dimana perangkat lunak tidak dapat mendeteksi lebih dari satu file sekaligus dalam satu proses pendeteksian.


(12)

BAB 1

PENDAHULUAN

1.1. Latar Belakang

Perkembangan teknologi komputer telah banyak membantu aktivitas manusia. Salah satu aktivitas yang sangat dipengaruhi oleh perkembangan ini adalah pencatatan data dan informasi. Dengan menggunakan komputer, pencatatan data dan informasi menjadi bersifat elektronik dalam bentuk dokumen digital sehingga lebih gampang dalam mengakses serta cepat dan penyampaian informasi yang dibutuhkan.

Dokumen-dokumen digital ini dihasilkan dengan menggunakan aplikasi-aplikasi pengolah kata seperti microsoft word atau notepad menjadi sebuah file dengan ekstensi yang berbeda sesuai dengan aplikasi pengolah kata yang digunakan.

Seperti halnya dokumen yang bersifat manual, dokumen-dokumen digital ini tidak terlepas dari bahaya kerusakan. Salah satu kerusakan yang sering terjadi pada dokumen digital adalah perubahan yang terjadi didalam dokumen tersebut akibat dari serangan virus atau pemadaman komputer dengan paksa. Kerusakan pada dokumen ini biasanya ditandai dengan perubahan pengaturan halaman, ukuran font, perubahan sebagian atau seluruh isi dokumen sampai tidak dapatnya dokumen digital dibuka sama sekali.

Kerusakan yang diakibatkan oleh virus maupun pemadanan komputer secara paksa ini mengakibatkan cluster-cluster pada dokumen digital berubah. Cluster yang


(13)

berubah ini mengakibatkan informasi yang dibaca pada saat dokumen digital dibuka berubah dari aslinya. Cluster-cluster ini merupakan informasi penting yang dibutuhkan sistem untuk dapat mengenali identitas dokumen digital serta isi dari dokumen digital tersebut. Perubahan cluster ini sangat menggangu pengguna apabila dokumen digital yang terkena kerusakan merupakan dokumen yang penting.

CRC32 (Cyclic Redundancy Check 32 Bit) merupakan suatu metode yang menggunakan fungsi hash dalam membaca sebuah struktur dalam sebuah file dalam transmisi atau penyimpanan sebuah data. CRC32 dapat digunakan untuk mendeteksi error (kerusakan) pada sebuah data yang mungkin terjadi pada saat transmisi data atau pengiriman data. Metode ini menghitung nilai checksum dari panjang bit sebuah data yang kemudian membandingkannya dengan aturan CRC dengan menggunakan kunci 32 bit untuk mendeteksi apakah data tersebut mengalami kerusakan atau tidak.

Dengan menggunakan CRC32, dapat dirancang sebuah perangkat lunak yang dapat mendeteksi kerusakan pada sebuah dokumen digital sehingga kerusakan dapat ditangani lebih dini dan tidak menyebar ke dokumen-dokumen digital yang lain.

Berdasarkan uraian diatas, penulis ingin merancang sebuah perangkat lunak dengan menggunakan teknik CRC32 ini untuk melakukan deteksi terhadap kerusakan dokumen digital dan menuangkannya dalam sebuh tugas akhir dengan judul “TEKNIK

PENDETEKSIAN KERUSAKAN DOKUMEN DENGAN MENGGUNAKAN CRC32” dengan menggunakan Visual Basic 6.0.


(14)

1.2. Rumusan Masalah

Perumusan masalah dalam penulisan skripsi ini adalah bagaimana merancang sebuah perangkat lunak yang dapat mendeteksi kerusakan terhadap kerusakan sebuah dokumen digital dengan menggunakan metode CRC32.

1.3. Batasan Masalah

Adapun yang menjadi batasan masalah dalam penulisan skripsi ini adalah :

1. Dokumen digital yang dapat dideteksi adalah dokumen digital dengan format DOC(dokumen) yang dihasilkan dari aplikasi Microsoft word 2000 atau Microsoft word 2003 dengan kondisi tidak mengandung password didalamnya.

2. Metode yang digunakan adalah CRC32 (Cyclic Redundancy Check) yang dibatasi pada CRC yang menggambarkan isi sebuah file dalam ukuran 32 bit.

3. Perangkat lunak hanya dibatasi untuk mendeteksi kerusakan, tidak untuk memperbaiki kerusakan yang terjadi pada dokumen digital tersebut.

4. Dalam merancang perangkat lunak, peneliti menggunakan bahasa pemrograman Visual Basic 6.0.


(15)

1.4 Tujuan Penelitian

Adapun tujuan dari penulisan tugas akhir ini adalah :

1. Untuk mengetahui bagaimana cara kerja metode CRC32 dalam melakukan deteksi pada sebuah dokumen digital.

2. Untuk merancang sebuah perangkat lunak yang dapat mendetksi kerusakan pada sebuah dokumen digital dengan format DOC dengan menggunakan metode CRC32.

1.5 Manfaat Penelitian

Sedangkan manfaat yang diharapkan dari penulisan skripsi ini adalah membantu dalam melakukan pendeteksian terhadap kerusakan dokumen digital pengguna komputer.

1.6 Metode Penelitian

Adapun metode penelitian yang digunakan dalam penulisan skripsi ini adalah :

1. Studi literatur: Metode ini dilaksanakan dengan melakukan studi kepustakaan melalui hasil penelitian lainnya yang relevan serta buku-buku maupun artikel–artikel yang didapatkan melalui internet

2. Analisis: Pada tahap ini dilakukan analisis permasalahan yang ada, batasan yang dimiliki dan kebutuhan yang diperlukan.

3. Pengujian: Pada tahap ini dilakukan pengujian terhadap aplikasi yang telah dirancang apakah berjalan dengan baik sesuai dengan yang diharapkan.


(16)

I.7 Sistematika Penulisan

Sistematika penulisan dari skripsi ini terdiri dari beberapa bagian utama sebagai berikut:

BAB 1 : PENDAHULUAN

Bab ini berisi pembahasan masalah umum yang meliputi latar belakang pemilihan judul skripsi, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, dan sistematika penulisan.

BAB 2 : LANDASAN TEORI

Bab ini berisi dasar teori yang berfungsi sebagai sumber atau alat dalam memahami permasalahan yang berkaitan dengan pengertian dokumen digital, sistem file, fungsi hash, Checksum, CRC 32 serta alat bantu pengembangan sistem.

BAB 3 : ANALISIS DAN DESAIN

Bab ini berisi analisis mengenai perangkat lunak yang dirancang seperti analisa metode CRC 32, fasilitas perangkat lunak, kebutuhan perangkat lunak dan desain antar muka perangkat lunak.

BAB 4 : IMPLEMENTASI PROGRAM

Bab ini berisi tentang implementasi hasil analisis dan desain perangkat lunak yang dirancang yang meliputi tampilan hasil, pengujian terhadap perangkat


(17)

lunak yang dihasilkan serta pembahasan mengenai kelebihan dan kekurangan sistem tersebut.

BAB 5 : KESIMPULAN DAN SARAN

Bab ini berisi tentang kesimpulan yang penulis peroleh mengenai perangkat lunak pendeteksi kerusakan file dengan CRC 32 serta saran dari penulis untuk pengembangan perangkat lunak lebih lanjut.


(18)

BAB 2

LANDASAN TEORI

2.1. Dokumen Digital

Menurut Wikipedia, dokumen adalah sebuah tulisan yang memuat data dan informasi. Biasanya, dokumen ditulis di kertas dan informasinya ditulis memakai tinta baik memakai tangan atau memakai media elektronik (seperti printer).

Dokumen merupakan suatu sarana transformasi informasi dari satu orang ke orang lain atau dari suatu kelompok ke kelompok lain. Dokumen meliputi berbagai kegiatan yang diawali dengan bagaimana suatu dokumen dibuat, dikendalikan, diproduksi, disimpan, didistribusikan, dan digandakan. Dokumen sangat penting, baik dalam kehidupan sehari-hari, organisasi, maupun bisnis. (Hariyanto, 2009)

Dokumen digital merupakan setiap informasi elektronik yang dibuat, diteruskan, dikirimkan, diterima, atau disimpan dalam bentuk analog, digital, elektromagnetik, optikal, atau sejenisnya, yang dapat dilihat, ditampilkan dan/atau didengar melalui komputer atau sistem elektronik, termasuk tetapi tidak terbatas pada tulisan, suara atau gambar, peta, rancangan, foto atau sejenisnya, huruf, tanda, angka, kode akses, simbol atau perforasi yang memiliki makna atau arti atau dapat dipahami oleh orang yang mampu memahaminya. (Hariyanto, 2009)


(19)

Dokumen digital dapat dihasilkan dengan menggunakan aplikasi pengolah kata (word processor) seperti Microsoft Word, Notepad atau OpenOffice untuk menghasilkan sebuah berkas komputer dengan ekstension yang berbeda-beda sesuai dengan aplikasi pengolah kata yang digunakan.

2.1.1 Pengolahan Dokumen Digital

Untuk mengolah suatu dokumen digital, dibutuhkan perangkat lunak (software) khusus yang sering disebut dengan perangkat lunak pengolah kata (Word Processor). Perangkat lunak pengolah kata adalah suatu aplikasi komputer yang digunakan untuk menyusun, menyunting, memformat dan mencetak segala jenis bahan yang dapat dicetak. Adapun contoh dari perangkat lunak pengolah kata yang sering digunakan adalah Microsoft Word, OpenOffice.org Writer, Adobe Acrobat dan Foxit PDF Creator. (Hariyanto, 2009).

1. Microsoft Word

Microsoft Word atau sering disebut dengan Microsoft Office Word adalah perangkat lunak pengolah kata (word processor) yang diproduksi oleh Microsoft. Perangkat lunak ini pertama diterbitkan pada tahun 1983 dengan nama Multi-Tool Word untuk Xenix. Seiring dengan perkembangan zaman, versi-versi lain kemudian dikembangkan untuk berbagai sistem operasi, misalnya DOS (1983), Apple Macintosh (1984), SCO UNIX, OS/2, dan Microsoft Windows (1989). Perangkat lunak ini kemudian berubah nama menjadi Microsoft Office Word setelah menjadi bagian dari Microsoft Office System 2003 dan 2007.

Konsep yang digunakan oleh Microsoft Office Word adalah WYSIWYG (What You See Is What You Get). WYSIWYG merupakan sebuah konsep sistem dimana konten


(20)

yang sedang disunting akan terlihat sama persis dengan hasil keluaran akhir, yang mungkin berupa dokumen yang dicetak, halaman web, slide presentasi, atau bahkan sebuah animasi bergerak.

Microsoft Office Word merupakan perangkat lunak pengolah kata pertama yang mampu menampilkan tulisan cetak miring atau cetak tebal pada IBM PC sementara perangkat lunak pengolah kata lain hanya menampilkan teks dengan kode markup dan warna untuk menandai pemformatan cetak tebal atau miring.

2. OpenOffice.org Writer

OpenOffice.org Writer adalah salah satu komponen dalam OpenOffice.org yang berfungsi untuk mengedit dokumen adapun dokumen format yang bisa digunakan adalah .doc .odt .rtf dan dapat dikonversi dalam bentuk .pdf dengan sekali klik.

OpenOffice.org Writer memiliki fitur pengolah kata modern seperti AutoCorrect, AutoComplete, AutoFormat, Styles and Formatting, Text Frames, Linking, Tables of Contents, Indexing, Bibliographical References, Illustrations dan Tables.

Perangkat lunak ini sangat mudah digunakan untuk membuat memo cepat, sangat stabil dan mampu untuk membuat dokumen dengan banyak halaman serta banyak gambar dan judul heading. Selain itu, kelebihannya adalah pengaturan formating untuk bullet and number yang sangat mudah (diatur terintegrasi melalui satu toolbar).


(21)

3. Foxit PDF Creator

Foxit PDF Creator merupakan sebuah perangkat lunak pengolah kata yang cepat dan mudah dalam membuat dokumen digital dengan format PDF dan mampu mengubah dokumen digital dengan format DOC, XLS, PPT, TXT, E-MAIL atau HTML ke format PDF.

Foxit PDF Creator menyediakan cara cepat dan dapat diandalkan untuk membuat dokumen PDF sehingga membantu penggunanya untuk menghasilkan file PDF yang akurat dalam waktu yang singkat dengan tetap mempertahankan tata letak asli dokumen digital yang dikonversi.

Dengan kemampuan pencarian yang kuat dan kinerjanya yang tinggi, Foxit PDF Creator mampu menampilkan dan mengolah PDF dalam ukuran yang kecil, dalam waktu yang cepat dan tingkat akurasi yang tinggi menjadi format yang diinginkan pengguna.

4. Adobe Acrobat

Adobe Acrobat merupakan sebuah perangkat lunak pengolah kata yang dapat mengkonversi suatu dokumen digital menjadi sebuah file dalam format PDF.

Dokumen digital yang dihasilkan oleh adobe acrobat dapat ditampilkan pada sebuah web browser dengan tampilan dan isi yang sama dengan dokumen aslinya. Adobe Acrobat menyediakan tools keamanan untuk membatasi akses terhadap file hasil konversi, misalnya mencegah orang lain untuk melakukan pencetakan atau pengubahan terhadap dokumen digital. Adobe Acrobat berbeda dengan Acrobat Reader, dimana


(22)

adobe reader hanya dapat membaca file PDF tanpa dapat mengkoversi suatu file ke format PDF.

2.1.2 Format Dokumen Digital

Dokumen digital memiliki beberapa format sesuai dengan perangkat lunak pengolahan yang digunakan untuk menghasilkan dokumen digital tersebut. Adapun beberapa jenis format dokumen digital yang sering dijumpai pada komputer adalah DOC, RTF dan PDF. (Tanenbaum, 1990).

1. RTF (Rich Text Format)

Rich Text Format (RTF) adalah sebuah format dokumen yang dibuat oleh Microsoft, yang dibuat berdasarkan spesifikasi Document Content Architecture (DCA) yang dibuat oleh IBM untuk System Network Architecture (SNA). Format dokumen ini, dapat digunakan untuk mentransfer dokumen teks terformat antar aplikasi, baik itu di dalam satu platform atau platform yang berbeda seperti IBM PC dan Macintosh.

Meskipun termasuk ke dalam kelas dokumen teks terformat, format RTF ini tetap menggunakan standar pengodean ANSI ASCII, PC-8, Macintosh, Unicode atau IBM PC Character Set untuk mengontrol representasi dan pemformatan dari sebuah dokumen, baik itu ketika ditampilkan di layar ataupun ketika dicetak di atas kertas.

Meskipun hanya berisi teks biasa, format ini dapat mendukung grafik dan tabel dalam sebuah dokumen, meski jika dalam dokumen terdapat gambar, ukurannya jauh lebih besar jika dibandingkan dengan format biner seperti format dokumen biner semacam Microsoft Word (*.doc) atau StarOffice Writer (*.sxw). Adapun bentuk


(23)

tampilan dari file RTF yang diolah menggunakan Microsoft Word seperti terlihat pada Gambar 2.1.

Gambar 2.1 Contoh File RTF

2. DOC (Document)

DOC (document) merupakan jenis file untuk dokumen yang dibuat dengan perangkat lunak pengolah kata seperti Microsoft Word, Open Office Writer atau Abiword. Format file ini sangat populer dari dulu sampai sekarang dan sudah menjadi standard bagi format dokumen digital. Adapun contoh file DOC yang diolah menggunakan Microsoft Word seperti terlihat pada Gambar 2.2.


(24)

Gambar 2.2 Contoh File DOC

3. PDF (Portable Document Format)

PDF (Portable Document Format) adalah sebuah format berkas yang dibuat oleh Adobe System pada tahun 1993 untuk keperluan pertukaran dokumen digital. Format PDF digunakan untuk merepresentasikan dokumen dua dimensi yang meliputi teks, huruf, citra dan grafik vektor dua dimensi.

Antarmuka dokumen PDF pada umumnya tersusun atas kombinasi teks, grafik vektor, dan grafik raster. Grafik vektor digunakan untuk menampilkan ilustrasi yang terbentuk dari garis dan kurva, sedangkan grafik raster digunakan untuk menampilkan foto dan citra. Pada perbaikan format selanjutnya, dokumen PDF juga mampu


(25)

mendukung hyperlink, forms, javascript, dan berbagai kemampuan lain yang dapat didukung dengan melakukan penambahan plugin. Dokumen PDF versi 1.6 telah memiliki kemampuan untuk menampilkan grafik tiga dimensi interaktif.

Berkas PDF dapat dibuat secara spesifik agar dapat diakses oleh orang-orang dengan cacat/keterbatasan fisik. Format berkas PDF dapat dilengkapi dengan label (tag) XML, teks ekuivalen, perbesaran visual teks (magnifier), penambahan fasilitas audio/suara, dan sebagainya. Berkas PDF dapat disandikan sehingga untuk dapat membuka atau mengeditnya diperlukan katakunci tertentu. Penyandian berkas PDF dilakukan dalam dua tingkat, yakni 40-bit dan 128-bit dengan menggunakan sistem sandi kompleks RC4 dan MD5. Berkas PDF juga dapat diberi pembatasan DRM untuk membatasi aktivitas penggandaan, penyuntingan, maupun pencetakan berkas tersebut. Adapun contoh file PDF yang diolah menggunakan Foxit Reader seperti terlihat pada Gambar 2.3.


(26)

Gambar 2.3 Contoh File PDF

2.2 Sistem File

File adalah entitas dari data yang disimpan didalam sistem file yang dapat diakses dan diatur oleh pengguna. Sebuah file memiliki nama yang unik dalam direktori di mana ia berada. Alamat direktori dimana suatu berkas ditempatkan diistilahkan dengan path.

Sebuah file berisi aliran data (atau data stream) yang berisi sekumpulan data yang saling berkaitan serta atribut berkas yang disebut dengan properties yang berisi informasi mengenai file yang bersangkutan seperti informasi mengenai kapan sebuah berkas dibuat. (Hariyanto, 2003)


(27)

Sistem file (File System) adalah metode untuk memberi nama pada file dan meletakkannya pada media penyimpanan. Semua sistem operasi mulai dari DOS, Windows, Macintosh dan turunan UNIX memiliki sistem file sendiri untuk meletakkan file dalam sebuah struktur hirarki.

Contoh dari sistem file termasuk di dalamnya FAT, NTFS, HFS dan HFS+, ext2, ext3, ISO 9660, ODS-5, dan UDF. Beberapa sistem file antara lain juga journaling file system atau versioning file system. Sistem file juga menentukan konvensi penamaan berkas dan peletakan berkas pada stuktur direktori.

2.2.1 Manajemen Sistem File

Sistem file akan memberikan sebuah nama terhadap sebuah file agar dapat dikelola dengan mudah. Meski oleh sistem file penamaan dilakukan dengan menggunakan angka-angka biner, sistem operasi dapat menerjemahkan angka-angka-angka-angka biner tersebut menjadi karakter yang mudah dipahami.

File dalam komputer secara fisik dapat diatur oleh sistem file yang digunakan oleh media penyimpanan di mana berkas disimpan. Secara logis, pengguna membutuhkan sebuah utilitas untuk melakukan manajemen berkas, yang sering disebut sebagai File Manager atau manajer file. Contoh dari file manager adalah Windows Explorer, seperti terlihat pada Gambar 2.4, Norton Commander, Konqueror, Nautilus, Midnight Commander, dan DOS Shell.


(28)

Gambar 2.4 Bentuk Windows Explorer Dalam Windows

Dalam sebuah sistem operasi, tugas sistem file meliputi pencarian direktori untuk masukan yang berhubungan dengan file. Untuk menghindari pencarian tetap, beberapa sistem akan membuka file bila file tersebut aktif pertama kali. Sistem operasi menyimpan tabel kecil yang berisi informasi tentang semua file yang terbuka (open-file table). Dalam hal ini, sistem file melakukan pemetaan file tersebut kedalam memori , seperti terlihat pada Gambar 2.5, agar file dapat ditampilkan kepada pengguna. Bila file tidak digunakan lagi, dilakukan penutupan oleh proses dan sistem operasi memindahkan file dari open-file table.


(29)

Gambar 2.5 Pemetaan File Ke Memori Komputer

2.2.2 Metode Akses Sistem File

Dalam mengakses sebuah file, sistem file menggunakan dua jenis metode yaitu metode akses berurutan (sequential access) dan metode akses langsung (direct access). (Hariyanto, 2003)

1. Sequential Access

Akses berurutan merupakan metode akses paling sederhana. Informasi pada file diproses secara berurutan, satu record diakses setelah record yang lain. Metode akses ini


(30)

berdasarkan model tape dari suatu file yang bekerja dengan perangkat sequential-access atau random-access. Adapun bentuk skema metode sequential access seperti terlihat pada Gambar 2.6.

Operasi read membaca bagian selanjutnya dari file dan otomatis menambah file pointer yang melacak lokasi I/O. Operasi write menambah ke akhir file dan ke akhir material pembacaan baru (new end of file). File dapat di-reset ke awal dan sebuah program untuk meloncat maju atau mundur ke n record.

2. Direct Access

File merupakan logical record dengan panjang tetap yang memungkinkan program membaca dan menulis record dengan cepat tanpa urutan tertentu. Metode akses langsung berdasarkan model disk dari suatu file, memungkinkan acak ke sembarang blok file, memungkinkan blok acak tersebut dibaca atau ditulis.

Operasi file dimodifikasi untuk memasukkan nomor blok sebagai parameter. Nomor blok ditentukan user yang merupakan nomor blok relatif, misalnya indeks relatif ke awal dari file. Blok relatif pertama dari file adalah 0, meskipun alamat disk absolut aktual dari blok misalnya 17403 untuk blok pertama. Metode ini mengijinkan sistem operasi menentukan dimana file ditempatkan dan mencegah user mengakses posisi dari sistem file yang bukan bagian dari file tersebut.


(31)

2.2.3 Organisasi Sistem File

Setiap file dalam komputer tersimpan dalam sebuah direktori. Direktori adalah kumpulan titik yang berisi informasi tentang semua file, seperti terlihat pada Gambar 2.6.

Gambar 2.6 Struktur Direktori

Untuk mengatur semua data dalam direktori, sistem file menggunakan organisasi yg dilakukan dalam dua bagian. Pertama, sistem file dipecah ke dalam partisi, yang disebut juga minidisk (pada mesin IBM) atau volume (pada mesin PC dan Macintosh). Setiap disk pada sistem berisi sedikitnya satu partisi, merupakan struktur low-level dimana file dan direktori berada. Terkadang, partisi digunakan untuk menentukan beberapa daerah terpisah dalam satu disk, yang diperlakukan sebagai perangkat penyimpan yang terpisah. Sistem lain menggunakan partisi yang lebih besar dari sebuah disk untuk mengelompokkan disk ke dalam satu struktur logika.

Kedua, setiap partisi berisi informasi mengenai file di dalamnya. Informasi ini disimpan pada entry dalam device directory atau volume table of contents. Direktori menyimpan informasi seperi nama, lokasi, ukuran dan tipe untuk semua file dari partisi tersebut.


(32)

2.3 Fungsi Hash

Hashing adalah transformasi aritmatik sebuah string dari karakter menjadi nilai yang merepresentasikan string aslinya. Menurut bahasanya, hash berarti memenggal dan kemudian menggabungkan.

Hashing digunakan sebagai metode untuk menyimpan data dalam sebuah array agar penyimpanan data, pencarian data, penambahan data, dan penghapusan data dapat dilakukan dengan cepat. Ide dasarnya adalah menghitung posisi record yang dicari dalam array, bukan membandingkan record dengan isi pada array.

2.3.1 Pengertian Fungsi Hash

Fungsi yang mengembalikan nilai atau kunci disebut fungsi hash (hash function) dan array yang digunakan disebut tabel hash (hash table). Secara teori, kompleksitas waktu (T(n)) dari fungsi hash yang ideal adalah O(1). Untuk mencapai itu setiap record membutuhkan suatu kunci yang unik.

Fungsi hash menyimpan nilai asli atau kunci pada alamat yang sama dengan nilai hashnya. Pada pencarian suatu nilai pada tabel hash, yang pertama dilakukan adalah menghitung nilai hash dari kunci atau nilai aslinya, kemudian membandingkan kunci atuau nilai asli dengan isi pada memori yang beralamat nomor hashnya. Dengan cara ini, pencarian suatu nilai dapat dilakukan dengan cepat tanpa harus memeriksa seluruh isi tabel satu per satu.


(33)

Hash function atau fungsi hash adalah suatu cara menciptakan fingerprint dari berbagai data masukan. Hash function akan mengganti atau mentranspose-kan data tersebut untuk menciptakan fingerprint, yang biasa disebut hash value. Hash value biasanya digambarkan sebagai suatu string pendek yang terdiri atas huruf dan angka yang terlihat random (data biner yang ditulis dalam notasi heksadesimal).

Suatu hash function adalah sebuah fungsi matematika, yang mengambil sebuah panjang variabel string input, yang disebut pre-image dan mengkonversikannya ke sebuah string output dengan panjang yang tetap dan biasanya lebih kecil, yang disebut message digest5. Hash function digunakan untuk melakukan fingerprint pada pre-image, yaitu menghasilkan sebuah nilai yang dapat menandai (mewakili) pre-image sesungguhnya.

2.4 Checksum

Checksum adalah teknologi untuk menandai sebuah file, dimana setiap file yang sama harus memiliki checksum yang sama, dan bila nilai checksumnya berbeda meskipun satu bit saja, maka file tersebut merupakan file yang berbeda walaupun memiliki nama file yang sama. (Anhar, 2009).

Checksum digunakan untuk verifikasi suatu data yang disimpan atau yang dikirim dan diterima. Setiap kali terjadi proses pengiriman data, checksum akan mengenali file tersebut untuk melihat apakah data yang diterima sudah sesuai dengan data yang dikirimkan. Fungsi inilah yang menjadikan checksum sangat efektif untuk melakukan pengecekan terhadap proses transfer suatu data.


(34)

Checksum akan membaca ulang, menghitung dan membandingkan file yang diterima dengan file yang ditransfer. Bila ada perbedaan nilai, maka checksum akan menganggap bahwa telah terjadi kesalahan, distorsi atau korupsi selama penyimpanan atau pengiriman.

Fungsi checksum akan selalu menghasilkan checksum dengan panjang yang tetap dan cukup identik satu sama lain. Dengan kata lain, bila pesan yang dimasukan berbeda, maka checksum-nya juga akan berbeda. Adapun bentuk dari mekanisme checksum seperti terlihat pada Gambar 2.12. (Setiawan, 2009)


(35)

2.5 CRC 32 (Cyclic Redundancy Check 32)

CRC (Cyclic Redundancy Check) adalah algoritma untuk memastikan integritas data dan mengecek kesalahan pada suatu data yang akan ditransmisikan atau disimpan. Data yang hendak ditransmisikan atau disimpan ke sebuah media penyimpanan rentan sekali mengalami kesalahan, seperti halnya noise yang terjadi selama proses transmisi atau memang ada kerusakan perangkat keras. (Narapratama, 2006).

CRC dapat digunakan untuk memastikan integritas data yang hendak ditransmisikan atau disimpan. CRC bekerja secara sederhana, yakni dengan menggunakan perhitungan matematika terhadap sebuah bilangan yang disebut sebagai Checksum, yang dibuat berdasarkan total bit yang hendak ditransmisikan atau yang hendak disimpan.

Dalam transmisi jaringan, khususnya dalam jaringan berbasis teknologi Ethernet, checksum akan dihitung terhadap setiap frame yang hendak ditransmisikan dan ditambahkan ke dalam frame tersebut sebagai informasi dalam header atau trailer. Penerima frame tersebut akan menghitung kembali apakah frame yang ia terima benar-benar tanpa kerusakan, dengan membandingkan nilai frame yang dihitung dengan nilai frame yang terdapat dalam header frame. Jika dua nilai tersebut berbeda, maka frame tersebut telah berubah dan harus dikirimkan ulang.

CRC didesain sedemikian rupa untuk memastikan integritas data terhadap degradasi yang bersifat acak dikarenakan noise atau sumber lainnya (kerusakan media


(36)

dan lain-lain). CRC tidak menjamin integritas data dari ancaman modifikasi terhadap perlakukan yang mencurigakan oleh para hacker, karena memang para penyerang dapat menghitung ulang checksum dan mengganti nilai checksum yang lama dengan yang baru. (Wijayanto, 2006).

CRC32 merupakan salah satu algoritma Cyclic Redundancy Check yang menghasilkan checksum sebesar 32 bit. Prinsip utama yang digunakan CRC32 adalah dengan melakukan pembagian polinomial dengan mengabaikan bit-bit carry.

CRC menggunakan prinsip modulo bilangan. Data dianggap sebagai sebuah bilangan, dan untuk menghitung checksum, sama dengan menambahkan digit untuk data dengan digit untuk checksum (berisi 0) kemudian dibagi dengan pembilang tertentu, dan sisa pembagiannya menjadi checksum untuk data tersebut. Tergantung pemilihan bilangan pembagi, CRC dapat mendeteksi single-bit error, double bit error, error berjumlah ganjil, burst error dengan panjang maksimum r. Bilangan pembagi tersebut disebut sebagai generator (polinomial).

Dalam penghitungan CRC, operasi pengurangan dan penjumlahan dilakukan dengan melakukan operasi XOR pada bit-bit, jika operasi tersebut ekivalen dengan operasi pengurangan pada aljabar biasa. Perhitungan CRC juga mengabaikan bit carry setelah bit tersebut melewati suatu operasi. Adapun proses penghitungan checksum pada CRC32 seperti telihat pada Gambar 2.13 berikut. (Narapratama, 2006).


(37)

Gambar 2.8 Proses Perhitungan Checksum Pada CRC32

Pada CRC32, generator pembagi data sering disebut generator polinomial karena nilai pembagi ini dapat direpresentasikan dalam bentuk polinomial peubah banyak, tergantung pada jenis atau nilai pembagi yang digunakan.


(38)

Berdasarkan analisa yang penulis lakukan terhadap proses kerja CRC 32 dalam melakukan pendeteksian kerusakan terhadap sebuah file, penulis menemukan kelebihan dari metode ini, yaitu :

1. CRC 32 merupakan metode yang sangat akurat dalam mendeteksi kerusakan terhadap sebuah file. Dengan menggunakan nilai checksum sebuah file, dimana nilai checksum merupakan identitas file tersebut, metode ini dapat mendeteksi perubahan-perubahan yang terjadi pada file tersebut.

2. CRC 32 merupakan metode yang sangat cocok untuk digunakan dalam mendeteksi kerusakan sebuah file yang disebabkan oleh serangan virus. Karena sebagian besar virus menyerang file dengan cara mengubah nilai checksum file tersebut, untuk mengubah atribut file atau mengubah struktur file yang terinfeksi, CRC 32 dapat mendeteksi pada bagian mana perubahan yang terjadi pada file berdasarkan hasil perbandingan fungsi hash dari nilai cheksum file tersebut dengan nilai checksum yang diperoleh dari registry sistem.

3. Karena kemampuannya dalam mendeteksi perubahan yang terjadi pada sebuah file berdasarkan nilai checksum file tersebut,CRC 32 dapat dijadikan sebagai tameng untuk mencegah sebuah virus menyerang sistem komputer. Karena sebagian besar virus menggunakan sebuah file autorun untuk menginfeksi sistemkomputer, CRC 32 dapat digunakan untuk mendeteksi dan menangkal setiap file yang tidak terdaftar dalam registry sistem sehingga tidak memperoleh akses untuk memasuki sistem.


(39)

Walaupun memiliki kemampuan yang sangat baik dalam mendeteksi kerusakan terhadap suatu file, CRC 32 memiliki beberapa kelemahan sebagai berikut :

1. CRC 32 tidak dapat mendeteksi kerusakan dua atau lebih file sekaligus. Hal ini dapat mengakibatkan waktu pendeteksian yang sangat lama bila file yang ada dalam satu folder atau drive memiliki jumlah yang sangat banyak.

2. CRC 32 tidak dapat mendeteksi dengan baik file yang memiliki nilai fungsi hash diatas 32 bit. Pada pendeteksian kerusakan sebuah file yang memiliki nilai fungsi hash 128, 192 atau 256 bit hasil yang diperoleh tidak akan seakurat file yang memiliki nilai fungsu hash 32 bit kebawah.

2.6 Visual Basic 6.0

Dalam perancangan perangkat lunak simulasi sistem validasi kartu kredit ini, penulis menggunakan bahasa pemrograman Microsoft Visual Basic 6.0. Berikut ini teori-teori penunjang seputar Microsoft Visual Basic 6.0, seperti pengertian Visual Basic, sejarah Visual Basic, Komponen Visual Basic serta Variabel dan Tipe Data Visual Basic.

2.6.1 Pengertian Visual Basic

Microsoft Visual Basic (sering disingkat sebagai VB saja) merupakan sebuah bahasa pemrograman yang bersifat event driven dan menawarkan Integrated Development Environment (IDE) visual untuk membuat program aplikasi berbasis sistem operasi Microsoft Windows dengan menggunakan model pemrograman Common Object Model (COM). Visual Basic merupakan turunan bahasa BASIC dan menawarkan pengembangan


(40)

aplikasi komputer berbasis grafik dengan cepat, akses ke basis data menggunakan Data Access Objects (DAO), Remote Data Objects (RDO), atau ActiveX Data Object (ADO), serta menawarkan pembuatan kontrol ActiveX dan objek ActiveX. Beberapa bahasa skrip seperti Visual Basic for Applications (VBA) dan Visual Basic Scripting Edition (VBScript), mirip seperti halnya Visual Basic, tetapi cara kerjanya yang berbeda.

Para programmer dapat membangun aplikasi dengan menggunakan komponen-komponen yang disediakan oleh Microsoft Visual Basic. Program-program yang ditulis dengan Visual Basic juga dapat menggunakan Windows API, tapi membutuhkan deklarasi fungsi eksternal tambahan.

Dalam pemrograman untuk bisnis, Visual Basic memiliki pangsa pasar yang sangat luas, dalam sebuah survei yang dilakukan pada tahun 2005, 62% pengembang perangkat lunak dilaporkan menggunakan berbagai bentuk Visual Basic, yang diikuti oleh C++, JavaScript, C# dan Java.

2.6.2 Sejarah Visual Basic

Bill Gates, pendiri Microsoft, memulai bisnis softwarenya dengan mengembangkan interpreter bahasa Basic untuk Altair 8800, untuk kemudian ia ubah agar dapat berjalan di atas IBM PC dengan sistem operasi DOS. Perkembangan berikutnya ialah diluncurkannya BASICA (basic-advanced) untuk DOS. Setelah BASICA, Microsoft meluncurkan Microsoft QuickBasic dan Microsoft Basic (dikenal juga sebagai Basic Compiler).


(41)

Sejarah BASIC di tangan Microsoft sebagai bahasa yang diinterpretasi (BASICA) dan juga bahasa yang dikompilasi (BASCOM) membuat Visual Basic diimplementasikan sebagai gabungan keduanya. Programmer yang menggunakan Visual Basic bisa memilih kode terkompilasi atau kode yang harus diinterpretasi sebagai hasil executable dari kode VB.

2.6.3 Komponen Visual Basic

Di dalam VB terdapat bermacam-macam jenis kontrol, dan dapat juga menambah kontrol dengan cara pilih menu project->components. Dari situ dapat menambah kontrol-kontrol baru yang dibutuhkan.

Sekarang akan dibahas kontrol standar VB, untuk mengetahui nama kontrol, arahkan kursor mouse pada salah satu kontrol, yang ditunjukkan pada Gambar 2.15.


(42)

Gambar 2.9 Toolbox

Keterangan Gambar 2.15 : 1. Pointer

Pointer digunakan untuk memindah atau merubah ukuran kontrol yang ada pada form.

2. PictureBox

Digunakan untuk menampilkan gambar yang bersifat statis dan aktif. 3. Label

Digunakan untuk menampilkan teks sebagai label di dalam form. 4. TextBox

Digunakan sebagai inputan berupa text. 5. Frame

Digunakan untuk mengelompokkan beberapa kontrol. 6. CommandButton


(43)

Digunakan sebagai tombol seperti pada umumnya. 7. CheckBox

Digunakan sebagai opsi pilihan, dapat dipilih beberapa. 8. OptionButton

Digunakan sebagai opsi pilihan, hanya dapat dipilih salah satu. 9. ComboBox

Digunakan sebagai opsi pilihan dalam bentuk 'drop-down-list' 10. ListBox

Digunakan sebagai opsi pilihan dalam bentuk 'full-list'. 11. HscrollBar

Scroll bar yang berada pada posisi horisontal. 12. VscrollBar

Scroll bar yang berada pada posisi vertikal. 13. Timer

Berfungsi sebagai pengatur waktu berdasarkan interval tertentu. 14. DriveListBox

Berfungsi untuk menampilkan drive yang aktif yang berbentuk listbox. 15. DirListBox

Berfungsi untuk menampilkan direktori pada drive yang dipilih. 16. FileListBox

Berfungsi untuk menampilkan file pada direktori dan drive yang dipilih. 17. Shape

Berfungsi untuk menampilkan bentuk-bentuk seperti oval, elips, dll. 18. Line

Berfungsi untuk menampilkan garis lurus. 19. Image


(44)

20. DataControl

Digunakan untuk melakukan akses ke dalam suatu database. 21. OLE


(45)

BAB 3

ANALISIS DAN DESAIN

3.1 Analisis Sistem

Pada bagian ini, penulis melakukan analisa terhadap metode CRC 32 untuk mengamati bagaimana proses kerja metode ini dalam melakukan pendeteksian terhadap kerusakan sebuah file.

Dalam melakukan deteksi terhadap kerusakan sebuah file, CRC 32 menggunakan nilai checksum sebuah file untuk menentukan letak kerusakan file tersebut. Adapun proses kerja dari CRC 32 dalam mendeteksi kerusakan sebuah file adalah sebagai berikut:

1. CRC 32 membaca file yang akan dideteksi kerusakananya untuk mengambil informasi nilai checksum file tersebut.

2. Nilai checksum ini kemudian diolah menjadi sebuah fungsi hash satu arah dengan nilai 32 bit. Fungsi hash 32 bit inilah yang akan digunakan CRC 32 sebagai identitas file yang dideteksi kerusakaannya.

3. CRC 32 kemudian mengakses registry sistem untuk mengambil informasi file yang tercatat dalam registry sistem. Hal ini dilakukan untuk membandingkan nilai checksum yang tercatat pada registry sistem dengan nilai fungsi hash hasil pengolahan.

4. Bila nilai checksum dari registry sistem berbeda dengan nilai fungsi hash hasil pengolahan, maka CRC 32 akan menyatakan bahwa file yang dideteksi dalam kondisi


(46)

rusak, tapi jika nilai checksum dari registry sistem sama dengan nilai fungsi hash hasil pengolahan, maka CRC 32 menyatakan file yang dideteksi tidak dalam kondisi rusak.

5. Bila hasil pendeteksi menyatakan bahwa file dalam kondisi rusak, CRC 32 akan mengolah nilai fungsi hash 32 bit dengan cara membaginya dengan nilai checksum dari registry sistem. Hal ini dilakukan untuk mengetahui dimana lokasi kerusakan pada file tersebut.

3.2 Desain

Pada bagian ini, penulis akan membahas mengenai bentuk desain atau rancangan dari perangkat lunak pendeteksi kerusakan file dengan menggunakan metode CRC 32 ini. Adapun rancangan-rancangan yang penulis lakukan antara lain rancangan proses, rancangan antar muka serta rancangan struktur menu perangkat lunak.

3.2.1. Rancangan Proses

Untuk menjelaskan proses-proses yang terjadi dalam perangkat lunak pendeteksi kerusakan file dengan menggunakan metode CRC 32 ini, penulis menggunakan bagan alir (flowchart). Adapun bentuk flowchart dari rancangan proses yang terjadi pada perangkat lunak ini seperti terlihat pada Gambar 3.1.


(47)

Gambar 3.1 Rancangan Flowchart

Proses kerja sistem dimulai dengan menampilkan form Utama. Sistem kemnudian menunggu penginputan lokasi file yang akan dideteksi. Setelah lokasi file ditentukan, sistem kemudian melakukan penghitungan nilai checksum dari file tersebut. Dari nilai checksum yang diperoleh, sistem kemudian melakukan penghitungan terhadap nilai CRC file tersebut.

Sistem kemudian mengakses registri sistem operasi untuk mengambil nilai registri dari file yang dipilih user. Nilai registri ini kemudian dibandingkan dengan nilai CRC yang telah dihitung sebelumnya. Jika nilai cheksum registri file sama dengan nilai CRC, maka sistem menyatakan bahwa file tersebut tidak mengalami perubahan (tidak mengalami kerusakan). Jika nilai checksum registri file tidak sama dengan nilai CRC, maka sistem menyatakan bahwa file tersebut telah mengalami perubaham (mengalami kerusakan). Start Tampilkan Form Utama Input Lokasi File Hitung nilai Checksum File Hitung nilai CRC File Bandingkan nilai Checksum dan CRC File

Checksum <> CRC Deteksi Lokasi Kerusakan File Tampilkan Hasil Pendeteksian N Y End


(48)

Jika file mengalami perubahan, sistem kemudian melacak lokasi dimana perubahan terjadi dan menampilkan hasilnya kepada user.

3.2.2 Rancangan Antar Muka

Antar muka perangkat lunak pendeteksi kerusakan file dengan menggunakan metode CRC 32 ini penulis rancang menggunakan dua buah form yang bernama Form Utama dan Form About.

Form Utama merupakan form yang berfungsi sebagai input dan output dari perangkat lunak pendeteksi kerusakan file dengan metode CRC 32 ini. Form ini terdiri dari menu-menu dan tombol-tombol yang dapat digunakan oleh user sebagai media input data dalam melakukan interaksi dengan perangkat lunak yang dirancang. Untuk menampilkan output berupa hasil pendeteksian file, penulis menggunakan list view yang berfungsi untuk menampilkan daftar file yang dideteksi beserta status kerusakan pada file tersebut. Adapun bentuk rancangan Form Utama seperti terlihat pada Gambar 3.2.

1

2

3


(49)

Gambar 3.2 Rancangan Form Utama

Keterangan Gambar 3.2 : 1. Menu

Berisi menu-menu pilihan yang dapat dipilih user untuk berinteraksi dengan perangkat lunak. Menu ini terbagi menjadi dua sub menu, yaitu :

a. Sub Menu File

Berisi menu-menu yang dapat dipilih user seperti Scan File (untuk melakukan pendeteksian kerusakan pada file), Save Result (untuk menyimpan hasil pendeteksian kerusakan kedalam database) serta Exit (untuk menutup form Utama dan mengakihiri perangkat lunak)

b. Sub Menu Help

Berisi sub menu About yang berfungsi untuk menampilkan sekilas informasi mengenai perangkat lunak dan perancang perangkat lunak.

4 5

7 8

9

10


(50)

2. drvDrive

Sebuah drive list box yang menampilkan seluruh daftar drive pada sistem yang digunakan serta menerima input pemilihan drive dari lokasi file yang akan dideteksi. 3. fldFolder

Sebuah folder list yang menampilkan seluruh folder yang ada pada lokasi drive yang dipilih user melalui drvDrive serta menerima input pemilihan folder dari lokasi file yang akan dideteksi.

4. cmdScan

Sebuah command button untuk menerima input perintah memulai proses pendeteksian kerusakan file. Sistem akan mulai melakukan pendeteksian kerusakan file ketika user menekan tombol ini.

5. pbProgress

Sebuah progress bar yang berfungsi untuk menampilkan progress dari proses pendeteksian kerusakan file berdasarkan drive dan folder yang dipilih user.

6. filFile

Sebuah file list yang menampilkan seluruh file yang berekstensi DOC pada folder yang dipilih user. Sistem akan melakukan pendeteksian kerusakan file berdasarkan daftar file pada filFile ini.

7. lblName

Sebuah label yang berfungsi untuk menampilkan informasi nama file ketika user mengklik salah satu file dari daftar file pada filFile.

8. lblValue

Sebuah label yang berfungsi untuk menampilkan informasi nilai CRC 32 file ketika user mengklik salah satu file pada filFile.

9. lblStatus

Sebuah label yang berfungsi untuk menampilkan informasi status perubahan file berdasarkan hasil pendeteksian kerusakan file.


(51)

10.cmdSave

Sebuah command button yang berfungsi untuk menerima input perintah penyimpanan hasil pendeteksian kerusakan file pada database.

11.cmdExit

Sebuah command button yang berfungsi untuk menerima input perintah untuk menutup form Utama dan mengakhiri perangkat lunak

Form About merupakan rancangan antar muka yang penulis rancang untuk menampilkan data perancang perangkat lunak pendeteksi kerusakan file dengan metode CRC 32 ini. Adapun bentuk rancangan Form About seperti terlihat pada Gambar 3.3.

Gambar 3.3 Rancangan Form About Perangkat Lunak Pendeteksi Kerusakan File Dokumen

Dengan Metode CRC 32

Putri Hartary Harahap 061401062

Fakultas MIPA Departemen S1 Ilmu Komputer Universitas Sumatera Utara

Medan OK

Perangkat lunak ini berfungsi untuk mendeteksi perubahan pada file dokumen dengan format DOC dengan cara menghitung nilai checksum file menggunakan metode CRC32. Perangkat lunak mendeteksi seluruh file yang ada pada folder yang telah dipilih sebelumnya.

Perangkat lunak ini diprogram oleh :

1

2

3

4


(52)

Keterangan Gambar 3.3 : 1. lblJudul

Sebuah label yang berisi informasi tentang nama perangkat lunak yang dirancang. 2. lblSistem

Sebuah label yang berisi sekilas informasi mengenai perangkat lunak yang dirancang. 3. lblNama

Sebuah label yang berisi informasi tentang perancang perangkat lunak 4. lblJur

Sebuah label yang berisi informasi mengenai jurusan dan universitas perancang perangkat lunak.

5. cmdOK

Sebuah command button untuk menerima perintah penutupan form About. Ketika user mengklik tombol ini, form About akan ditutup dan tampilan akan kembali kepada form Utama

3.2.3 Rancangan Struktur Menu

Rancangan struktur menu merupakan bagan atau skema dari hirarki menu-menu yang tersedia pada perangkat lunak pendeteksi kerusakan file dengan metode CRC 32 ini. Rancangan struktur menu ini merupakan rancangan yang penulis lakukan berdasarkan rancangan antar muka perangkat lunak. Adapun bentuk rancangan struktur menu pada perancangan perangkat lunak ini seperti terlihat pada Gambar 3.4.


(53)

Gambar 3.4 Rancangan Struktur Menu

Struktur menu utama merupakan sebuah struktur dengan format hirarki. Struktur menu dimulai dari Form Utama. Form Utama memiliki dua cabang menu yaitu menu File dan menu Help.

Menu File memiliki tiga cabang menu, yaitu :

1. Menu Scan File, yang berfungsi untuk melakukan pendeteksian kerusakan file.

2. Menu Save Result, yang berfungsi untuk menyimpan hasil pendeteksian kerusakan file.

3. Menu Exit, yang berfungsi untuk menutup Form Utama dan mengakhiri perangkat lunak.

Menu Help hanya memiliki satu cabang menu yaitu menu About. Menu About ini berfungsi untuk menampilkan form About ketika diklik oleh user.

Form Utama

File

Help

Scan File Save Result Exit


(54)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi

Adapun bentuk implementasi yang penulis lakukan dalam perancangan perangkat lunak pendeteksian kerusakan file menggunakan CRC 32 ini berupa fasilitas yang disediakan pada perangkat lunak, kebutuhan sistem, tampilan perangkat lunak serta pengujian sistem.

4.1.1 Fasilitas Perangkat Lunak

Adapun fasilias-fasilitas yang disediakan oleh perangkat lunak yang penulis rancang ini adalah sebagai berikut :

1. Fasilitas untuk memilih daftar file yang akan dideteksi

Fasilitas ini merupakan fasilitas yang dapat digunakan oleh pengguna untuk memilih folder dimana file yang akan dideteksi berada. Dengan fasilitas ini, pengguna dapat melakukan pengecekan terhadap seluruh file dokumen yang ada di dalam folder yang dipilih.


(55)

2. Fasilitas untuk mendeteksi kerusakan file

Fasilitas ini merupakan fasilitas yang dapat digunakan oleh pengguna untuk melihat apakah ada file dokumen yang mengalami kerusakan berdasarkan folder yang dipilih. 3. Fasilitas untuk menyimpan nilai CRC

Fasilitas ini merupakan fasilitas yang dapat digunakan oleh pengguna untuk menyimpan hasil pendeteksian file dokumen dalam bentuk sebuah daftar yang berisi nilai CRC dari setiap file yang dideteksi. Daftar ini akan menjadi acuan dalam melakukan pendeteksian terhadap file yang sama untuk mendeteksi apakah ada perubahan dalam file tersebut dikemudian hari.

4.1.2 Kebutuhan Perangkat Lunak

Agar perangkat lunak pendeteksian kerusakan file dokumen ini dapat berjalan dengan baik, ada beberapa spesifikasi yang harus dipenuhi, antara lain :

1. Spefisifikasi Hardware (Perangkat Keras) a. Micro Processor Pentium IV

b. Harddisk minimal 10 GB untuk tempat sistem beroperasi dan sebagai media penyimpanan data.

c. Memory minimal 1 GB d. Monitor Super VGA

2. Spesifikasi Software (Perangkat Lunak) a. Sistem operasi Windows XP


(56)

c. Anti Virus untuk mencegah kemungkinan terjadinya kerusakan sistem yang disebabkan oleh virus-virus yang masuk baik dari disket maupun media input lainnya

4.1.3 Tampilan Program

Bentuk tampilan program yang diperoleh dari hasil implementasi perancangan perangkat lunak pendeteksi kerusakan file menggunakan CRC 32 ini terdiri dari dua buah tampilan antara lain tampilan form Utama dan form About.

1. Tampilan Form Utama

Tampilan Form Utama merupakan tampilan induk dari perangkat lunak yang dirancang. Pada form ini ditampilkan daftar file dokumen yang akan atau telah dideteksi kerusakannya serta menu-menu dan tombol-tombol yang dapat digunakan pengguna untuk berinteraksi dengan perangkat lunak. Adapun tampilan Form Utama seperti ditunjukkan pada Gambar 4.1


(57)

Gambar 4.1 Tampilan Form Utama

2. Tampilan Form About

Tampilan Form About merupakan tampilan berisi informasi mengenai perancang perangkat lunak pendeteksi kerusakan file menggunakan CRC 32. Adapun tampilan Form About seperti ditunjukkan pada Gambar 4.2.


(58)

Gambar 4.2 Tampilan Form About

4.2 Pengujian Perangkat Lunak

Untuk memastikan bahwa perangkat lunak telah dapat berjalan dengan baik, penulis melakukan serangkaian pengujian terhadap perangkat lunak yang telah diimplementasikan. Adapun pengujian yang penulis lakukan meliputi pengujian pemilihan scan file serta pengujian pengecekan kerusakan.

4.2.1. Pengujian Scan File

Pengujian scan file penulis lakukan untuk memastikan bahwa perangkat lunak telah dapat membaca nilai CRC 32 dari file pada folder yang dipilih pengguna. Adapun hasil dari pengujian ini sebagaimana terlihat pada Gambar 4.3.


(59)

Gambar 4.3 Pengujian Scan File

Dari hasil yang ditunjukkan pada Gambar 4.3, terlihat bahwa saat penulis memilih file dengan nama ”document.doc”, nilai yang ditampilkan pada text box CRC 32 Value berubah dari ”Lakukan Scan File” menjadi ”E7419FD3”. Hasil ini menunjukkan bahwa perangkat lunak telah dapat menghitung nilai CRC 32 dari file ”document.doc” pada saat dilakukan Scan File.


(60)

Nilai pada text box Status berubah dari ”Lakukan Scan File” menjadi ”Tidak Berubah”. Nilai ”Tidak Berubah” ini dihasilkan karena nilai CRC 32 dari file ”document.doc” belum terdaftar pada file daftar sehingga sistem mengasumsikan bahwa nilai CRC 32 dari file tersebut belum mengalami perubahan.

4.2.2. Pengujian Pengecekan Kerusakan

Pengujian pengecekan kerusakan penulis lakukan untuk memastikan bahwa perangkat lunak telah dapat mendeteksi setiap perubahan yang terjadi pada file berdasarkan hasil pendeteksian sebelumnya.

Sebelum melakukan pengujian ini, penulis melakukan pengecekan terhadap isi dari file ”document.doc” yang hasilnya seperti terlihat pada Gambar 4.4.


(61)

Gambar 4.4 Isi Awal Dari File Yang Diuji

Selanjutnya, penulis melakukan perubahan dari isi file ”document.doc” tersebut dengan mengubah tulisan ”PT. MEGA ASPALINDO” menjadi ”PT. MEGAH ASPALINDO” seperti terlihat pada Gambar 4.5. Penulis kemudian menyimpan hasil perubahan tersebut.


(62)

Gambar 4.5 Perubahan Isi Dari File Yang Diuji

Selanjutnya penulis melakukan Scan File sekali lagi untuk melihat apakah ada perbedaan antara nilai CRC 32 sebelum dan sesudah dilakukan perubahan pada file “document.doc”. Adapun hasilnya seperti terlihat pada Gambar 4.6.


(63)

Gambar 4.7 Pengujian Pengecekan Kerusakan

Dari hasil yang ditunjukkan pada Gambar 4.7, terlihat bahwa ada perubahan pada nilai yang ditampilkan pada textbox CRC 32 Value, dimana nilai sebelumnya adalah “E7419FD3” berubah menjadi “982161AB”. Perubahan juga terjadi pada nilai yang ditampilkan pada textbox Status, dimana nilai sebelumnya adalah “Tidak Berubah”, berubah menjadi “Berubah”.


(64)

Dari hasil pengujian ini, terlihat bahwa perangkat lunak telah dapat melakukan pendeteksian kerusakan pada file dimana dengan melakukan sedikit saja perubahan pada file tersebut, sistem dapat mendeteksi adanya perubahan pada file berdasarkan nilai CRC 32 yang dihitung.

4.3 Kelebihan dan Kelemahan Perangkat Lunak

Berdasarkan hasil implementasi dari perancangan perangkat lunak, penulis memperoleh beberapa kelebihan dan kelemahan dari perangkat lunak ini.

Adapun kelebihan dari perangkat lunak ini adalah :

1. Perangkat lunak ini dapat mendeteksi apakah ada perubahan yang terjadi pada file walaupun perubahan yang terjadi sangat kecil.

2. Perangkat lunak dapat menyimpan hasil pendeteksian untuk digunakan sebagai bahan pembanding bagi proses pendeteksian berikutnya.

3. Perangkat lunak dapat melakukan pendeteksian terhadap lebih dari satu file dokumen, selama file tersebut berada dalam satu folder.

Sedangkan kelemahan dari perangkat lunak ini adalah :

1. Walaupun dapat melakukan pendeteksian pada lebih dari satu file, perangkat lunak tidak dapat mendeteksi sekaligus lebih dari satu file. Hal ini akan mengakibatkan waktu pendeteksian akan lama jika dilakukan pendeteksian pada file dengan jumlah yang banyak.

2. Perangkat lunak membutuhkan daftar dari hasil pendeteksian sebelumnya sebelum dapat menentukan apakah terjadi perubahan pada file tersebut.


(65)

3. Perangkat lunak hanya dapat mendeteksi kerusakan file pada dokumen digital dengan format TXT dan DOC saja. Perangkat lunak belum mampu melakukan pendeteksian kerusakan pada file dokumen dengan form


(66)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil dari penelitian yang penulis lakukan mengenai pendeteksian kerusakan file dokumen dengan menggunakan metode CRC 32 yang dirancang, penulis dapat menarik kesimpulan sebagai berikut :

1. CRC 32 dapat mendeteksi perubahan pada sebuah file, sekecil apapun perubahan tersebut.

2. Nilai CRC 32 sebuah file dihasilkan dari nilai empat byte terakhir dari nilai checksum file tersebut dalam bentuk hexadecimal.

3. CRC 32 hanya dapat digunakan untuk menghitung nilai CRC dari sebuah file dengan nilai bit 32 kebawah.

4. Perangkat lunak yang dirancang dapat mendeteksi perubahan pada file berdasarkan daftar nilai CRC dari hasil pendeteksian sebelumnya

5.2 Saran

Adapun saran yang dapat penulis berikan untuk mengembangkan perangkat yang lunak ini adalah sebagai berikut :


(67)

1. Perangkat lunak dapat dikembangkan lebih lanjut agar dapat mendeteksi kerusakan file pada format dokumen digital yang lain, khususnya format DOCX.

2. Perangkat lunak dapat dikembangkan lebih lanjut agar dapat melakukan pendeteksian kerusakan pada dua atau lebih file sekaligus sehingga dapat menghemat waktu proses pendeteksian yang dibutuhkan.

3. Untuk pengembangan lebih lanjut, perangkat lunak dapat dikembangkan agar dapat mendeteksi seluruh file yang terdapat dalam sebuah drive tidak hanya seluruh file yang terdapat dalam sebuah folder saja.


(68)

DAFTAR PUSTAKA

Hariyanto, Bambang. 2003. Sistem Operasi Lanjut. Edisi Pertama. Bandung : Informatika.

Hariyanto, Bambang. 2009. Sistem Operasi. Bandung : Informatika.

Jain, A., Dubes, R. 1988. Algorithms for clustering data. New Jersey : Prentice-Hall Inc.

Jones, David T. 2003. An Improved 64-bit Cyclic Redundancy Check for Protein Sequences. London : University College London.

Joseph, Hammond, Jr., James E. B., Shyan-Shiang L. 1975.

Koopman, P. 2002. 32-Bit Cyclic Redundancy Codes for Internet Applications. The International Conference on Dependable Systems and Networks. USA. Pittsburgh.

Koopman, P., Chakravarty, T. 2004, Cyclic Redundancy Code (CRC) Polynomial Selection For Embedded Networks. USA. Pittsburgh.

Kreith, Frank. 2000. The CRC Handbook of Thermal Engineering. CRC Press.

Narapratama, Ditto. 2006. Perbandingan Performansi Algoritma Adler-32 dan CRC-32 pada Library Zlib. Bandung : Institut Teknologi Bandung.


(69)

Ramabadran, T. V., Gaitonde, S. S. 1988. A tutorial on CRC computations.

Ross, A., and Eli B. 1996. Tiger: A Fast New Hash Function. Fast Software Encryption, FSE’96, LNCS 1039.

Salim, Hartojo. 1989. Virus Komputer, teknik pembuatan & langkah-langkah penaggulangannya. Yogyakarta : Andi OFFSET.

Setiawan, Andi. 2009. Algoritma Adler, CRC, Fletcher dan Implementasi pada Mac. Bandung : Institut Teknologi Bandung.

Stigge, M., Plotz, H., Muller, W., Redlich, J. 2006.

Tanenbaum, Andrew. 1990. Structured Computer Organization. Third edition. Amsterdam : Prentice-hall inc.

Wijayanto, I. S. 2006. Penggunaan CRC32 Dalam Integritas Data. Bandung : Institut Teknologi Bandung.

Anachriz. 1999. CRC and how to Reverse it. http:// www.woodmann.com/ fravia/ crctut1.htm. Diakses tanggal 2 Maret, 2010.

Anhar. 2009. Checksum CRC32.

Greg, Cook. 2009. Catalogue of parameterised CRC algorithms.


(70)

Thaler, Pat. 2003. 16-bit CRC polynomial selection. INCITS T10.

Diakses tanggal 20 Maret,


(71)

LAMPIRAN : LISTING PROGRAM

Source Code Program Form CRC

Private objCRC32 As clsCRC32 Const CHUNK_SIZE = 2048 Dim PathFile As String Dim CRCValus As String Dim Status As Boolean Dim arrCRC() As String

Dim Con As New ADODB.Connection Dim RS As New ADODB.Recordset

Private Sub cmdSave_Click() If Status = True Then CekUbah

End If End Sub

Private Sub cmdScan_Click()

If filFile.ListCount > 0 Then

ReDim arrCRC(filFile.ListCount - 1) pbCRC.Max = filFile.ListCount

For i = 0 To filFile.ListCount - 1 PathFile = filFile.List(i) CekCRC

arrCRC(i) = CRCValus pbCRC.Value = i + 1 Next i

Status = True CekPath

CekUbah

cmdSave.Enabled = True Else

MsgBox "Silahkan Pilih Folder Yang Memiliki File Dengan Ekstension DOC.", vbInformation, App.Title

End If End Sub

Private Sub dirFolder_Change() filFile.Path = dirFolder.Path End Sub

Private Sub drvDrive_Change()

dirFolder.Path = drvDrive.Drive End Sub


(72)

Private Sub filFile_Click()

If RS.State <> 0 Then RS.Close LoadDaftar

If Status = True Then

lblName.Caption = filFile.List(filFile.ListIndex) lblValue.Caption = arrCRC(filFile.ListIndex)

RS.Find "checksum='" & arrCRC(filFile.ListIndex) & "'", 0, adSearchForward, 1

If Not RS.EOF Then

If RS(0) = RS(1) Then

lblStatus.Caption = "Tidak Berubah" Else

lblStatus.Caption = "Berubah" End If

End If Else

lblName.Caption = "Lakukan Scan File" lblValue.Caption = "Lakukan Scan File" lblStatus.Caption = "Lakukan Scan File" End If

End Sub

Private Sub Form_Load()

filFile.Pattern = "*.doc"

lblName.Caption = "Lakukan Scan FIle" lblValue.Caption = "Lakukan Scan File" lblStatus = "Lakukan Scan File"

Status = False

cmdSave.Enabled = False Set objCRC32 = New clsCRC32

Con.ConnectionString = "provider = microsoft.jet.oledb.4.0; data source = " & App.Path & "\daftar.dll"

Con.CursorLocation = adUseClient Con.Open

LoadDaftar End Sub

Private Sub CekCRC()

Dim strTempPath As String

If Right$(dirFolder.Path, 1) <> "\" Then strTempPath = dirFolder.Path + "\" Else

strTempPath = dirFolder.Path End If

If PathFile <> vbNullString Then

CRCValus = CRCFromFile(strTempPath & PathFile) End If


(73)

Private Function CRCFromFile(ByVal strFilePath As String) As String Dim bArrayFile() As Byte

Dim lngCRC32 As Long Dim lngChunkSize As Long Dim lngSize As Long

lngSize = FileLen(strFilePath) lngChunkSize = CHUNK_SIZE If lngSize <> 0 Then

Open strFilePath For Binary Access Read As #1 Do While Seek(1) < lngSize

If (lngSize - Seek(1)) > lngChunkSize Then Do While Seek(1) < (lngSize - lngChunkSize) ReDim bArrayFile(lngChunkSize - 1) Get #1, , bArrayFile()

lngCRC32 = objCRC32.CRC32(lngCRC32, bArrayFile, lngChunkSize - 1)

Loop Else

ReDim bArrayFile(lngSize - Seek(1)) Get #1, , bArrayFile()

lngCRC32 = objCRC32.CRC32(lngCRC32, bArrayFile, UBound(bArrayFile))

End If Loop

Close #1

CRCFromFile = Right$("00000000" & Hex$(lngCRC32), 8) Else

CRCFromFile = "00000000" End If

End Function

Private Sub LoadDaftar()

RS.Open "select * from crc", Con, adOpenKeyset, adLockPessimistic End Sub

Private Sub CekPath()

For i = 0 To filFile.ListCount - 1

RS.Find "path='" & dirFolder.Path & "\" & filFile.List(i) & "'", 0, adSearchForward, 1

If RS.EOF Then RS.AddNew

RS(0) = arrCRC(i) RS(1) = arrCRC(i)

RS(2) = dirFolder.Path & "\" & filFile.List(i) RS.Update

End If Next i End Sub


(74)

If RS.State <> 0 Then RS.Close LoadDaftar

If RS.RecordCount > 0 Then

For i = 0 To filFile.ListCount - 1 RS.MoveFirst

While Not RS.EOF

If RS(2) = dirFolder & "\" & filFile.List(i) Then If arrCRC(i) <> RS(0) Then

RS(1) = RS(0) RS(0) = arrCRC(i)

RS(2) = dirFolder & "\" & filFile.List(i) RS.Update End If End If RS.MoveNext Wend Next i End If End Sub

Private Sub mnuHelp_Click(Index As Integer) If Index = 1 Then frmAbout.Show 1

End Sub

Private bolTableReady As Boolean

Private lngArrayCRCByte(0 To 255) As Long

Public Function CRC32(ByVal lngCRC32 As Long, ByRef bArrayIn() As Byte, ByVal dblLength As Double) As Long

Dim dblCurPos As Double Dim lngTemp As Long

If Not bolTableReady Then bolTableReady = BuildTable If UBound(bArrayIn) < LBound(bArrayIn) Then

CRC32 = 0 Else

lngTemp = lngCRC32 Xor &HFFFFFFFF For dblCurPos = 0 To dblLength

lngTemp = (((lngTemp And &HFFFFFF00) \ &H100) And &HFFFFFF) Xor (lngArrayCRCByte((lngTemp And &HFF) Xor bArrayIn(dblCurPos)))

Next dblCurPos

CRC32 = lngTemp Xor &HFFFFFFFF End If


(75)

Class Modules

Private Function BuildTable() As Boolean Dim intBytePos As Integer

Dim bBitPos As Byte

Const lngLimit = &HEDB88320 Dim lngCRC As Long

For intBytePos = 0 To 255 Step 1 lngCRC = intBytePos

For bBitPos = 0 To 7 Step 1 If lngCRC And 1 Then

lngCRC = (((lngCRC And &HFFFFFFFE) \ 2) And &H7FFFFFFF) Xor lngLimit

Else

lngCRC = ((lngCRC And &HFFFFFFFE) \ 2) And &H7FFFFFFF End If

Next bBitPos

lngArrayCRCByte(intBytePos) = lngCRC Next intBytePos

BuildTable = True End Function

Private Sub Class_Initialize() bolTableReady = BuildTable End Sub


(1)

Thaler, Pat. 2003. 16-bit CRC polynomial selection.

INCITS T10.

Diakses tanggal 20 Maret,


(2)

LAMPIRAN : LISTING PROGRAM

Source Code Program

Form CRC

Private objCRC32 As clsCRC32 Const CHUNK_SIZE = 2048 Dim PathFile As String Dim CRCValus As String Dim Status As Boolean Dim arrCRC() As String

Dim Con As New ADODB.Connection Dim RS As New ADODB.Recordset

Private Sub cmdSave_Click() If Status = True Then CekUbah

End If End Sub

Private Sub cmdScan_Click()

If filFile.ListCount > 0 Then

ReDim arrCRC(filFile.ListCount - 1) pbCRC.Max = filFile.ListCount

For i = 0 To filFile.ListCount - 1 PathFile = filFile.List(i) CekCRC

arrCRC(i) = CRCValus pbCRC.Value = i + 1 Next i

Status = True CekPath

CekUbah

cmdSave.Enabled = True Else

MsgBox "Silahkan Pilih Folder Yang Memiliki File Dengan Ekstension DOC.", vbInformation, App.Title

End If End Sub

Private Sub dirFolder_Change() filFile.Path = dirFolder.Path End Sub

Private Sub drvDrive_Change()

dirFolder.Path = drvDrive.Drive End Sub


(3)

Private Sub filFile_Click()

If RS.State <> 0 Then RS.Close LoadDaftar

If Status = True Then

lblName.Caption = filFile.List(filFile.ListIndex) lblValue.Caption = arrCRC(filFile.ListIndex)

RS.Find "checksum='" & arrCRC(filFile.ListIndex) & "'", 0, adSearchForward, 1

If Not RS.EOF Then

If RS(0) = RS(1) Then

lblStatus.Caption = "Tidak Berubah" Else

lblStatus.Caption = "Berubah" End If

End If Else

lblName.Caption = "Lakukan Scan File" lblValue.Caption = "Lakukan Scan File" lblStatus.Caption = "Lakukan Scan File" End If

End Sub

Private Sub Form_Load()

filFile.Pattern = "*.doc"

lblName.Caption = "Lakukan Scan FIle" lblValue.Caption = "Lakukan Scan File" lblStatus = "Lakukan Scan File"

Status = False

cmdSave.Enabled = False Set objCRC32 = New clsCRC32

Con.ConnectionString = "provider = microsoft.jet.oledb.4.0; data source = " & App.Path & "\daftar.dll"

Con.CursorLocation = adUseClient Con.Open

LoadDaftar End Sub

Private Sub CekCRC()

Dim strTempPath As String

If Right$(dirFolder.Path, 1) <> "\" Then strTempPath = dirFolder.Path + "\" Else

strTempPath = dirFolder.Path End If

If PathFile <> vbNullString Then

CRCValus = CRCFromFile(strTempPath & PathFile) End If


(4)

Private Function CRCFromFile(ByVal strFilePath As String) As String Dim bArrayFile() As Byte

Dim lngCRC32 As Long Dim lngChunkSize As Long Dim lngSize As Long

lngSize = FileLen(strFilePath) lngChunkSize = CHUNK_SIZE If lngSize <> 0 Then

Open strFilePath For Binary Access Read As #1 Do While Seek(1) < lngSize

If (lngSize - Seek(1)) > lngChunkSize Then Do While Seek(1) < (lngSize - lngChunkSize) ReDim bArrayFile(lngChunkSize - 1) Get #1, , bArrayFile()

lngCRC32 = objCRC32.CRC32(lngCRC32, bArrayFile, lngChunkSize - 1)

Loop Else

ReDim bArrayFile(lngSize - Seek(1)) Get #1, , bArrayFile()

lngCRC32 = objCRC32.CRC32(lngCRC32, bArrayFile, UBound(bArrayFile))

End If Loop

Close #1

CRCFromFile = Right$("00000000" & Hex$(lngCRC32), 8) Else

CRCFromFile = "00000000" End If

End Function

Private Sub LoadDaftar()

RS.Open "select * from crc", Con, adOpenKeyset, adLockPessimistic End Sub

Private Sub CekPath()

For i = 0 To filFile.ListCount - 1

RS.Find "path='" & dirFolder.Path & "\" & filFile.List(i) & "'", 0, adSearchForward, 1

If RS.EOF Then RS.AddNew

RS(0) = arrCRC(i) RS(1) = arrCRC(i)

RS(2) = dirFolder.Path & "\" & filFile.List(i) RS.Update

End If Next i End Sub


(5)

If RS.State <> 0 Then RS.Close LoadDaftar

If RS.RecordCount > 0 Then

For i = 0 To filFile.ListCount - 1 RS.MoveFirst

While Not RS.EOF

If RS(2) = dirFolder & "\" & filFile.List(i) Then If arrCRC(i) <> RS(0) Then

RS(1) = RS(0) RS(0) = arrCRC(i)

RS(2) = dirFolder & "\" & filFile.List(i) RS.Update

End If End If RS.MoveNext Wend

Next i End If End Sub

Private Sub mnuHelp_Click(Index As Integer) If Index = 1 Then frmAbout.Show 1

End Sub

Private bolTableReady As Boolean

Private lngArrayCRCByte(0 To 255) As Long

Public Function CRC32(ByVal lngCRC32 As Long, ByRef bArrayIn() As Byte, ByVal dblLength As Double) As Long

Dim dblCurPos As Double Dim lngTemp As Long

If Not bolTableReady Then bolTableReady = BuildTable If UBound(bArrayIn) < LBound(bArrayIn) Then

CRC32 = 0 Else

lngTemp = lngCRC32 Xor &HFFFFFFFF For dblCurPos = 0 To dblLength

lngTemp = (((lngTemp And &HFFFFFF00) \ &H100) And &HFFFFFF) Xor (lngArrayCRCByte((lngTemp And &HFF) Xor bArrayIn(dblCurPos)))

Next dblCurPos

CRC32 = lngTemp Xor &HFFFFFFFF End If


(6)

Class Modules

Private Function BuildTable() As Boolean Dim intBytePos As Integer

Dim bBitPos As Byte

Const lngLimit = &HEDB88320 Dim lngCRC As Long

For intBytePos = 0 To 255 Step 1 lngCRC = intBytePos

For bBitPos = 0 To 7 Step 1 If lngCRC And 1 Then

lngCRC = (((lngCRC And &HFFFFFFFE) \ 2) And &H7FFFFFFF) Xor lngLimit

Else

lngCRC = ((lngCRC And &HFFFFFFFE) \ 2) And &H7FFFFFFF End If

Next bBitPos

lngArrayCRCByte(intBytePos) = lngCRC Next intBytePos

BuildTable = True End Function

Private Sub Class_Initialize() bolTableReady = BuildTable End Sub