APLIKASI UTILITAS PENCARI NAMA FILE TERKOMPRESI TANPA PROSES DEKOMPRESI.

(1)

SKRIPSI

Oleh :

FAJAR BAYU ADINATA

0734010252

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”

JAWA TIMUR


(2)

SKRIPSI

Diajukan Untuk Memenuhi Persyaratan Dalam Memperoleh Gelar Sarjana Komputer

Jurusan Teknik Informatika

Oleh :

FAJAR BAYU ADINATA

0734010252

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”

JAWA TIMUR


(3)

Alhamdulillah, dengan mengucapkan puji dan syukur kehadirat Allah SWT atas rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan tugas akhir ini dengan judul “APLIKASI UTILITAS PENCARI NAMA FILE TERKOMPRESI TANPA PROSES DEKOMPRESI” yang merupakan persyaratan dalam memperoleh gelar Sarjana Komputer di Universitas Pembangunan Nasional “VETERAN” Jatim.

Penulis mengucapkan terima kasih yang sebesar-besarnya kepada pihak-pihak yang telah membantu baik materi’il maupun dorongan spiritual untuk menyelesaikan penulisan kerja praktek ini, terutama kepada:

1. Bapak Prof. Dr. Ir. Teguh Soedarto, MP, selaku Rektor UPN “Veteran” Jatim.

2. Bapak Ir. Sutiyono, MT selaku DEKAN FTI UPN “VETERAN” Jatim.

3. Ibu Dr. Ir. Ni Ketut Sari, MT. Selaku Kepala Jur. Teknik Informatika, FTI

UPN “VETERAN” Jatim

4. Bapak Nur Cahyo Wibowo, S.Kom,.M.Kom dan Bapak Cristya Aji Putra,

S.Kom. selaku Dosen Pembimbing yang telah meluangkan waktu untuk memberikan bimbingan selama proses pelaksanaan Tugas Akhir penulis.

5. Bapak Bari Nuqoba, S.Si, M.Kom dan Bapak Firza Prima Aditiawan, S.Kom.

selaku Dosen Penguji yang telah meluangkan waktu untuk menguji Tugas Akhir Penulis.

6. Dosen-dosen Teknik Informatika, staff dan segenap akademika UPN

“VETERAN” Jatim.


(4)

9. Teman-teman seperjuangan Tugas Akhir,terutama kepada bro (fajar bayu) yang selalu menyemangati penulis,pasutri om dan tante (aryo dan vivi) yang selalu bersama-sama dalam suka maupun duka di dalam perjalanan menyelesaikan Tugas Akhir ini, kemana-mana selalu bersama dan kompak,semoga persahabatan kita langgeng selamanya meskipun sudah tidak bersama-sama lagi dalam naungan almamater UPN. Trims om kalau selalu merepotkan dirimu,yang biasanya rumahmu jadi basecampku,seperti koz keduaku saja rumahmu,serta nado(thank you ke perpus ITS bareng-bareng). Tanpa kalian,mungkin aku belum bisa menyelesaikan Tugas Akhir ini.

10.Keluarga Besar KRIPOSOFT Community, ijah (dj sandro.s.kom), Leader

(ananta bayu,s.kom), Eddy Lee , Windy s.kom, Pablo (Anjar Ngebluz), Bebek (Haniarta Bayu), Fery(AlenBig), Ahmad Nur, Fajar Bayu (FB) ,om dan tante (aryo dn vivi)terima kasih atas dukungannya, tanpa kalian semua penulis tidak dapat menikmati perkuliahan yang penuh dengan hangatnya persaudaraan, susah senang bersama, touring dan rekreasi.

11.Teman-teman Teknik Informatika dan Sistem Infomasi angkatan

2007Universitas Pembangunan Nasional “Veteran” Jawa Timur, si rambut cewek (ahong), yusuf (makasih cup atas bantuan revisi lesanku), aris,cino, dion, farid, heru, indra,yurza, dan yang tidak bisa penulis sebutkan satu per satu,terima kasih atas dukungannya baik materil maupun moril.

12.Kawan-kawan koz, mas viktor (john vicko),mbak pur (bayu,maaf panggilan u

dikoz aku cantumin), fakhrur (au’,mksh udh bantuin belajar java), si pecinta cowok sejati (ady), si galau (eza), ryan kyoto, si playboy (Toni sembako),


(5)

13.Teman-teman SMA (ALUTA 07) yang masih kompak,meskipun diantara kalian sudah ada yang lulus duluan dan bekerja tapi masih menyempatkan waktu buat kumpul-kumpul di saat penulis pulang kampung. Makasih sudah membuat penulis termotivasi untuk lulus.

14.Dan masih banyak orang-orang yang sangat berperan dalam mewujudkan

tugas akhir ini yang tidak bisa penulis sebutkan satu per satu.

Penulis menyadari sepenuhnya masih banyak terdapat kekurangan dalam penulisan Tugas Akhir ini. Oleh sebab itu kritik serta saran yang membangun dari pembaca sangat membantu guna perbaikan dan pengembangan di masa yang akan datang.

Akhirnya dengan ridho Allah penulis berharap semoga Tugas Akhir ini dapat memberikan manfaat bagi pembaca sekalian terutama mahasiswa di bidang komputer.

Surabaya, 25 Juni 2012


(6)

HALAMAN JUDUL LEMBAR PENGESAHAN

LEMBAR PENGESAHAN DAN PERSETUJUAN KETERANGAN REVISI

MOTTO

KATA PENGANTAR ...i

DAFTAR ISI ...iv

DAFTAR GAMBAR ...vii

ABSTRAKSI ...viii

BAB I PENDAHULUAN………...1

1.1. Latar Belakang……...………...1

1.2. Perumusan Masalah……...………….………....2

1.3. Batasan Masalah……….………2

1.4. Tujuan………....……….3

1.5. Manfaat………...3

1.6. Metode Penelitian………...3

1.7. Sistematika Penulisan……….4

BAB II TINJAUAN PUSTAKA………..………..6

2.1. Algoritma Dan Pemrograman..…..………6

2.1.1. Internal Subroutines.……....………...7

2.1.2. External Subroutines………..7

2.1.3. Pendekatan Top Down………...8

2.2. Kompresi Data………..10

2.3. Jenis-jenis Kompresi Data………12

2.4. Metode Kompresi Data………13

2.5. Teknik Kompresi Data……….14

2.6. Algorithma Zip……….16

2.7. Algorithma String Pattern Matching………17


(7)

2.10.3. Bentuk Data Flow Diagram………32

BAB III ANALISIS DAN PERANCANGAN SISTEM...………...33

3.1. Desain Penelitian………..33

3.2. Analisis Proses Kompresi……….35

3.3. DFD………..……35

3.4. Analisis Proses Pencarian……….40

3.5. Diagram Alir Sistem……….41

3.6. Pseudocode Proses Pencarian………...42

3.7. Pseudocode Pembuatan Tabel Pencarian String………..43

3.8. Perancangan Antar Muka……….44

BAB IV IMPLEMENTASI ………...……….45

4.1. Implementasi Prosedure Create Form……… ..45

4.2. Implementasi Prosedure ExceptionHandler……….45

4.3. Implementasi Prosedure Keluar………...46

4.4. Implementasi Prosedur Pencarian....………46

4.5. Implementasi Tabel String Pencarian………...47

4.6. Implementasi Tombol Cari………...48

4.7. Implementasi Antar Muka………50

BAB V PENGUJIAN SISTEM……….…...………...54

5.1. Pengujian Aplikasi………...54

5.1.1. Pengujian Aplikasi Dengan Nama File Dan Ekstensinya……54

5.1.2. Pengujian Aplikasi Dengan Nama File Tanpa Ekstensinya….59 5.1.3. Pengujian Aplikasi Dengan Nama File Berupa Bilangan……61

5.1.4. Pengujian Aplikasi Dengan Nama File Berupa Bilangan Yang Sebagian Saja / Tidak Lengkap Penulisannya…....……63

5.1.5. Pengujian Aplikasi Dengan Nama File Berupa Bilangan Tanpa Ekstensi……….………....65

5.1.6. Pengujian Aplikasi Dengan Nama File Berupa Bilangan Disertai Dengan Tanda Baca………..………...……...66

5.1.7. Pengujian Aplikasi Dengan Nama File Berupa Bilangan Disertai Dengan Tanda Spasi………….………..68


(8)

5.1.9. Pengujian Aplikasi Dengan Nama File Berupa Bilangan

Disertai Dengan Kombinasi Huruf Dan Tanda Baca…...…..72

5.1.10. Pengujian Aplikasi Dengan Nama File Berupa Bilangan Disertai Dengan Kombinasi Huruf, Tanda Baca, Dan Spasi...74

5.1.11. Pengujian Aplikasi Dengan Nama File Berupa Huruf Besar...76

5.1.12. Pengujian Aplikasi Dengan Nama File Berupa Huruf Besar Dan Tanda Baca……….………..78

5.1.13. Pengujian Aplikasi Dengan Nama File Berupa Spasi...80

5.1.14. Pengujian Aplikasi Dengan Nama File Berupa Spasi Dan Tanda Baca………..…….82

5.1.15. Pengujian Aplikasi Dengan Nama File Berupa Tanda Baca…83 5.2. Perbandingan Aplikasi Dengan Menu Search Windows 7……….85

5.2.1. Perbandingan Dengan File Kompresi “.zip”………86

5.2.2. Perbandingan Dengan File Kompresi “.Rar”………...88

5.2.3. Pencarian File Kompresi “.Rar dan .Zip” Secara Bersama Dengan Menu Search Win 7………90

5.24. Pengujian Aplikasi Utilitas Pencarian Nama File Terkompresi………..91

BAB VI Penutup……….………...……….92

6.1. Kesimpulan………...……….………...92

6.2. Saran……….93 DAFTAR PUSTAKA


(9)

Gambar 2.1. Struktur Header File Zip………...16

Gambar 2.2. Tampilan Embarcadero Delphi 2010………...24

Gambar 2.3. Entity………...………28

Gambar 2.4. Aliran Data………..28

Gambar 2.5. Proses………...28

Gambar 2.6. Storage…….………29

Gambar 3.1. Desain Penelitian……….34

Gambar 3.2. Decomposite Diagram……….35

Gambar 3.3. DFD Level 0………36

Gambar 3.4. DFD Level 1………37

Gambar 3.5. DFD Level 2 Dari Pilih Drive Dan Folder………..38

Gambar 3.6. DFD Level 2 Cari Nama File………..39

Gambar 3.7. Diagram Alir Sistem Pencarian ………..41

Gambar 3.8. Tabel Proses Pencarian String Di KMP…..………43

Gambar 3.9. Desain Form Pencari File………44

Gambar 4.1. Implementasi Form Pencari File……….………50

Gambar 4.2. Implementasi Komponen Penunjuk Folder……….51

Gambar 4.3. Implementasi Komponen Pencarian File……….52

Gambar 4.4. Implementasi Komponen Tombol Keluar………...52

Gambar 5.1. Isi File TEST.ZIP………54

Gambar 5.2. Pengujian Untuk Mencari Ikan.docx………...55

Gambar 5.3. Isi File Pencarian.rar………56

Gambar 5.4. Pengujian Untuk Mencari File Pemula.txt………..57

Gambar 5.5. Pengujian Untuk Dengan Hasil Lebih Dari Satu……….58

Gambar 5.6. Pengujian Untuk Berdasarkan Nama File Tanpa Ekstensi………..59

Gambar 5.7. Isi File SIMAKOP.RAR………..60

Gambar 5.8. Pengujian Untuk Mencari Nama File Berupa Bilangan………...61

Gambar 5.9. Struktur File Di Xcode_magazine_19.zip………...62

Gambar 5.10. Pengujian Untuk Mencari Nama File Berupa Bilangan Yang Hanya Ditulis Sebagian Saja……….63


(10)

Tanpa Ekstensi………..………66

Gambar 5.14. Struktur File Xcode_magazine_19.zip………..66

Gambar 5.15. Pengujian Untuk Mencari Nama File Berupa Bilangan Di Sertai Dengan Tanda Baca……….………..67

Gambar 5.16. Struktur File Xcode_magazine_19.zip………..68

Gambar 5.17. Pengujian Untuk Mencari Nama File Berupa Bilangan Di Sertai Dengan Spasi……….………69

Gambar 5.18 Struktur File Xcode_magazine_17.zip………...70

Gambar 5.19. Pengujian Untuk Mencari Nama File Berupa Bilangan Di Sertai Dengan Kombinasi Huruf…………..………71

Gambar 5.20. Struktur File O_Reilly_Google_Hacks_3Ed.rar………...71

Gambar 5.21. Pengujian Untuk Mencari Nama File Berupa Bilangan Di Sertai Dengan Kombinasi Huruf Dan Tanda Baca………...72

Gambar 5.22. Attachments_2011_09_17.zip………...73

Gambar 5.23. Pengujian Untuk Mencari Nama File Berupa Bilangan Di Sertai Dengan Kombinasi Huruf,Tanda Baca,Dan Spasi…...……..74

Gambar 5.24. Attachments_2011_09_17.zip………...75

Gambar 5.25. Pengujian Untuk Mencari Nama File Berupa Huruf Besar…………...76

Gambar 5.26. 4 Free E-Books (Nofia Fitri aka Bunga Mataharry).rar………76

Gambar 5.27. Pengujian Untuk Mencari Nama File Berupa Huruf Besar Dan Tanda Baca……….………...77

Gambar 5.28. 4 Free E-Books (Nofia Fitri aka Bunga Mataharry).rar………78

Gambar 5.29. Pengujian Untuk Mencari Nama File Berupa Spasi………..79

Gambar 5.30. O_Reilly_Google_Hacks_3Ed.rar……….80

Gambar 5.31. Pengujian Untuk Mencari Nama File Berupa Spasi Dan Tanda Baca………..………...81

Gambar 5.32. O_Reilly_Google_Hacks_3Ed.rar……….82

Gambar 5.33. Pengujian Untuk Mencari Nama File Berupa Tanda Baca…………...83


(11)

Penyusun : Fajar Bayu Adinata

ABSTRAK

Saat ini sering dilakukan pencarian data di dalam komputer. Data yang di cari pun terdiri dari berbagai macam ektensi misalnya : .doc ; .exe ; .txt ; .dpr dan

lain sebagainya. Dan yang umum dalam melakukan pencarian data dalam

komputer adalah data yang di cari terdapat dalam file yang tidak terkompresi.

Apabila dalam melakukan pencarian data, data yang dicari ada di dalam file terkompresi maka pencarian tidak dapat dilakukan langsung. Sebelum proses pencarian file terlebih dahulu dilakukan, proses dekompresi terlebih dahulu. Agar pencarian data yang di cari dapat ditemukan.

Dari cerita di atas, penulis mendapatkan inspirasi untuk menangani masalah tersebut. Maka dibuatlah suatu aplikasi utilitas yang bisa di manfaatkan untuk pencarian data dalam file yang terkompresi tanpa melakukan proses

dekompresi. Dengan menggunakan algoritma KMP sebagai algoritma pencarian

string nya. Dimana aplikasi ini mampu mencari file yang dibutuhkan dalam keadaan yang sudah terkompresi untuk mempermudah pengguna tanpa melakukan

proses dekompresi. Dengan adanya aplikasi ini pengguna akan dimudahkan dalam

mencari sebuah file dalam file terkompresi tanpa perlu melakukan proses

dekompresi terlebih dahulu.

Setelah aplikasi dibuat, barulah dilakukan ujicoba terhadap aplikasi ini dengan 10 kali percobaan. Dari 10 kali percobaan yang diacak untuk dites,

aplikasi dapat mengenali format kompresi bertipe .zip dan .rar dengan baik.

Aplikasi mampu mencari file berdasarkan nama file yang di masukkan user, baik

di masukkan secara lengkap dengan ekstensinya ataupun hanya sebagian dari

nama file nya saja. Dan juga aplikasi ini mampu menampilkan hasil kompresi

secara multiple file format apabila ditemukan kesamaan antara nama file yang

dicari dengan nama file yang terdapat dalam file terkompresinya.


(12)

1.1. Latar Belakang

Perkembangan penggunaan komputer yang semakin meningkat dalam berbagai bidang berkontribusi pada semakin bervariasinya format data yang disimpan oleh pengguna. Format data tersebut meliputi data teks, audio dan video

serta kombinasi diantara ketiganya yang lazim disebut data multimedia.

Dengan ditemukannya metode kompresi data, ukuran file atau data yang besar dapat diperkecil. Secara spesifik, kompresi data atau file bertujuan untuk mereduksi tempat (space) penyimpanan data atau file. Sejak era 1940-an, mulai dipikirkannya suatu metode untuk memperkecil ukuran data atau kompresi. Hal ini menunjukkan bahwa di masa lalu, para pakar juga telah memprediksi pertumbuhan data yang akan semakin besar.

Terdapat banyak metode kompresi, tetapi secara umum mempunyai teknik yang terbagi menjadi dua kategori yaitu lossy compression dan lossless compression. Masing-masing teknik tersebut mempunyai kekhasan sendiri terhadap data yang menjadi obyek kompresinya.

Pada teknik lossy compression, lebih tepat digunakan pada obyek data audio, video dan citra digital, sedangkan teknik lossless compression lebih tepat digunakan pada data dokumen yang banyak mengandung teks daripada data multimedia karena mampu mempertahankan kebutuhan informasi yang dikandung oleh data.


(13)

Salah satu proses yang sering dilakukan sebelum data yang sama dibuka oleh aplikasi tertentu adalah pencarian data. Dalam hal ini, semakin banyak file data yang dikompresi dan kurangnya pengaturan struktur penyimpanan folder

menyebabkan kendala dalam mencari file yang dibutuhkan, karena aplikasi file

pencari yang ada sekarang tidak mampu mencari file yang terletak dalam file yang sudah terkompresi. Sehingga pengguna harus menjalankan program kompresinya untuk melihat apakah terdapat file atau data yang dibutuhkan pada file

terkompresi tersebut. Hal ini tentunya memakan waktu yang cukup lama untuk menemukan data tersebut.

Oleh karena itu, dalam tugas akhir ini, penulis mendapatkan ide untuk membuat aplikasi yang mampu mencari file yang dibutuhkan dalam keadaan yang sudah terkompresi untuk mempermudah pengguna tanpa melakukan proses

dekompresi terlebih dahulu.

1.2. Perumusan Masalah

Rumusan masalah yang digunakan dalam tugas akhir ini adalah :

Bagaimana membuat aplikasi pencari file dalam file yang sudah terkompresi tanpa melakukan proses dekompresi terlebih dahulu ?

1.3. Batasan Masalah

Dalam tugas akhir ini batasan masalah yang dipergunakan yaitu :

a. Format file atau ekstensi file yang terkompresi adalah .zip dan .rar

b. File yang dicari dalam format atau ekstensi bebas, pencarian dilakukan berdasarkan nama filenya.


(14)

c. Hasil pencarian hanya pada satu folder saja.

d. Aplikasi ini dapat berjalan baik di microsoft windows 7

e. Aplikasi ini tidak dapat mencari di file kompresi yang terpassword

1.4. Tujuan

Tujuan yang ingin dicapai pada pengerjaan tugas akhir ini adalah: Membangun aplikasi yang dapat mencari data dalam file terkompresi.

1.5. Manfaat

Adapun manfaat yang ingin diperoleh dari pengerjaan tugas akhir ini adalah dapat membuat perangkat lunak untuk mempermudah pengguna dalam mencari file

dalam kumpulan file yang sudah terkompresi.

1.6. Metode Penelitian

Adapun metode penelitian yang dipergunakan dalam pengerjaan tugas akhir ini adalah :

a. Studi Literatur

Mencari referensi dan bahan pustaka tentang teori-teori yang berhubungan dengan permasalahan yang akan dikerjakan dalam tugas akhir ini.

b. Studi Kasus

Mencari contoh-contoh kasus serupa yang berhubungan dengan permasalahan dalam tugas akhir ini.


(15)

c. Analisis dan Perancangan

Membuat analisa berdasarkan data-data yang sudah dimiliki, membuat model matematisnya dan merancang alur penyelesaian berdasarkan algoritma zip dan

rar. Perancangan aplikasi dimulai dengan perancangan antar muka aplikasi, kemudian merancang detail algoritma pencarian file.

d. Implementasi Program

Mengimplementasikan teknik algoritma yang akan digunakan. Detail mengenai implementasi program dilakukan sesuai hasil analisis dan perancangan aplikasi pada tahapan sebelumnya.

e. Pengujian Aplikasi

Pengujian dilakukan pada aplikasi yang telah dibuat. Menguji validitas dan efektifitas algoritma yang diterapkan pada aplikasi.

f. Evaluasi dan Penarikan kesimpulan

Evaluasi dilakukan untuk mengetahui kinerja aplikasi kompresi data teks sesuai ukuran dan format data teksnua, selanjutnya dilakukan penarikan kesimpulan.

1.7. Sistematika Penulisan

Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :


(16)

BAB I PENDAHULUAN

Bab ini berisi latar belakang masalah, identifikasi masalah, maksud dan tujuan yang ingin dicapai, batasan masalah, metodologi penelitian yang diterapkan dalam memperoleh dan mengumpulkan

data, waktu dan tempat penelitian, serta sistematika penulisan. BAB II TINJAUAN PUSTAKA

Membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik masalah yang diambil.

BAB III ANALISIS DAN PERANCANGAN

Menganalisis masalah dari model penelitian untuk memperlihatkan keterkaitan antar proses yang diteliti serta model matematis untuk analisisnya.

BAB IV IMPLEMENTASI SISTEM

Membahas mengenai pengimplementasian aplikasi yang telah dibuat ke perangkat yang akan digunakan. serta melakukan pengujian terhadap aplikasi yang telah diimplementasikan tersebut. BAB V UJI COBA

Melakukan pengujian terhadap aplikasi yang telah diimplementasikan tersebut untuk mengetahui apakah program

tersebut telah bekerja dengan benar.

BAB VI PENUTUP

Berisi kesimpulan dan saran yang sudah diperoleh dari hasil penulisan tugas akhir.


(17)

2.1. Algorithma Dan Pemrograman

Pada era tahun 1950 – 1960, kecepatan komputer sangat rendah dan disertai juga dengan keterbatasan dari media penyimpan, sehingga tentunya berakibat juga dengan keterbatasan dalam penulisan program-program komputer. Namun di era saat ini, dengan kecepatan komputer yang cukup handal demikian juga ketersediaan dari media penyimpanan yang cukup handal dan besar, serta didukung juga dengan perkembangan bahasa pemrograman yang ada sehingga dapat dengan mudah membuat suatu program.

Permasalahan yang timbul dalam pembuatan program tersebut adalah bagaimana memahaminya, sehingga apabila terdapat perubahan yang akan dilakukan dapat memperbaikinya secara mudah. Hal ini tentu saja harus diperhatikan terutama apabila dilihat dari biaya yang harus dikeluarkan dalam pembuatan program tersebut. Istilah Pemrograman Terstruktur (Structured Programming) mengacu dari suatu kumpulan tehnik yang dikemukan oleh Edsger Dijkstra.

Dengan tehnik ini akan meningkatkan produktifitas programmer, dengan mengurangi waktu yang dibutuhkan dalam penulisan (write), pengujian (test), penelusuran kesalahan (debug) dan pemeliharan (maintenance) suatu program. Pada pembahasan berikut ini akan melihat bagaimana tehnik ini yang pendekatan yang dilakukan secara modular, dapat membantu dalam membangun suatu program.


(18)

Dalam pemrograman secara modular, suatu program akan dipilah kedalam sejumlah modul, dimana setiap modul menjalankan fungsinya sendiri. Tentunya fungsi yang dijalankan oleh setiap modul sangat terbatas sesuai dengan ruang lingkup yang akan dikerjakan. Dengan adanya sejumlah modul program ini tentu saja kesalahan yang timbul dapat dikurangi. Setiap program tentu akan memiliki program utamanya, yang kemudian akan memanggil sejumlah modul-modul yang ada.

Pemrograman secara modular ini dapat diimplementasikan dengan penggunaan subroutine, suatu kelompok instruksi yang menjalankan suatu pengolahan yang sifatnya terbatas seperti pencetakan, pembacaan untuk proses

input atau untuk proses penghitungan. Subroutine dapat dikelompokkan menjadi

internal subroutine dan external subroutine.

2.1.1. Internal Subroutines

Adalah bagian dari suatu program yang digunakan. Dideklarasikan cukup sekali saja, untuk sejumlah proses yang sama akan dilakukan oleh program tersebut. Program akan memanggil subroutines tersebut jika diperlukan dan apabila telah selesai, kontrol selanjutnya dikembalikan ke instruksi berikutnya. Instruksi yang mengendalikan kontrol transfer ke suatu subroutine umumnya dikenal sebagai call dan return.

2.1.2. External Subroutines

Diletakkan secara terpisah dari program yang menggunakan subroutine


(19)

lain. Untuk menggunakannya tentu seorang programmer harus mengetahui dimana ? , apa namanya ?, bagaimana pengiriman datanya ?, bagaimana jawaban yang akan diperoleh ?. Subroutine ini biasanya digunakan untuk pemrosesan yang komplek, yang dibutuhkan oleh banyak user.

2.1.3. Pendekatan Top Down

Pemrograman terstruktur mempergunakan Pendekatan Top-Down dalam perencanaan program. Merupakan pendekatan yang menggambarkan pemecahan modul kompleks/besar menjadi modul-modul yang lebih sederhana/kecil Berbentuk Struktur Hirarki. Di dalam pemrograman terstruktur, terdapat 3 bentuk struktur perintah yang dipergunakan :

a. Sequence Structure

b. Loop Structure

c. Selection Structure

Struktur perintah yang instruksinya dieksekusi berdasarkan urutannya. Dimulai dari bagian atas dan diakhiri di bagian bawahnya. Digambarkan dengan bujur sangkar, sebagai simbol untuk : Input dan Output Operasi aritmatika. Operasi pemindahan data dalam memori komputer. Menggambarkan perulangan

eksekusi dari satu atau lebih instruksi Menggambarkan struktur yang mengeksekusi suatu instruksi hanya apabila kondisinya terpenuhi.


(20)

Algoritma merupakan sekumpulan langkah-langkah untuk menyelesaikan suatu tugas. Penamaan “Algoritma” diambil dari seorang ahli matematika bernama Al-Khwarizmi. Sebuah algoritma harus:

a. Jelas, tepat dan tidak membingungkan b. Memberikan penyelesaian yang tepat c. Mempunyai akhir

Tujuh langkah dasar dalam pengembangan program : a. Definisi Masalah

b. Outline Solusi

c. Pengembangan outline ke dalam algoritma

d. Melakukan test terhadap algoritma

e. Memindahkan algoritma ke dalam bahasa pemrograman f. Menjalankan program pada komputer

g. Dokumentasi dan pemeliharaan program

h. Pada tahap ini memerlukan pemahaman terhadap permasalahan dengan membaca berulang kali sampai dengan mengerti apa yang dibutuhkan.

Setelah permasalahan didefinisikan, permasalahan dapat di bagi kedalam tugas tugas atau langkah langkah yang lebih kecil dan menghasilkan outline

solusi. Outline solusi pada langkah kedua dikembangakan menjadi algoritma

yaitu sebuah set langkah yang menggambarkan tugas yang akan dikerjakan dan urutan pengerjaannya.


(21)

Tujuan utama dari melakukan test terhadap algoritma adalah adalah untuk menemukan kesalahan utama logika sejak awal, sehingga akan lebih mudah diperbaiki. Data test diperlukan untuk melakukan test terhadap algoritma ini. Setelah ke-empat langkah sebelumnya dilakukan, maka pencodingan dapat dimulai dengan menggunakan bahasa pemrograman yang dipilih. Setelah pengcodingan, maka program dapat dijalankan pada komputer. Jika Program sudah didesain dengan baik, maka akan mengurangi tingkat kesalahan dalam melakukan testing program.

Langkah ini perlu dilakukan beberapa kali, sehingga program yang dijalankan dapat berfungsi dengan benar. Dokumentasi melibatkan eksternal

dokumentasi (hierarchy chart, algoritmasolusi, dan hasil data test) dan internal

dokumentasi (coding program). Pemeliharaan program meliputi perubahan yang dialami oleh program (perbaikan ataupun penambahan modul, dan lain-lain).

(Sumber : Pohan, Husni dan Kusna Sriyanto, Pengantar Perancangan Sistem,

KPC LPPM ITB, Bandung, 2002)

2.2. Kompresi Data

Pada akhir tahun 40-an dimana dimulainya tahun teori informasi, ide pengembangan metode coding yang efisien baru dimulai dan dikembangkan. Dimulainya penjelajahan ide dari entropy, information content dan redudansi. Salah satu ide yang popular adalah apabila probabilitas dari simbol dalam suatu pesan diketahui, maka terdapat cara untuk mengkodekan simbol, sehingga pesan


(22)

memakan tempat yang lebih kecil. Ide inilah yang menjadi cikal bakal dalam terciptanya kompresi data.

Model pertama yang muncul untuk kompresi sinyal digital adalah

Shannon-Fano coding.Berdasarkan web arturo campos, Shannon dan fano terus menerus mengembangkan algoritma ini yang menghasilkan codeord biner untuk setiap symbol (unik) yang terdapat pada data file.

Berdasarkan web arturo campos ,Huffman coding memakai hampir semua karakteristik dari Shannon-fano coding. Huffman coding dapat menghasilkan kompresi data yang efektif dengan mengurangkan jumlah redudansi dalam mengkodingkan simbol. Telah dapat dibuktikan, bahwa Huffman coding

merupakan metode fixed-length yang paling efisien.

Pada limabelas tahun terakhir, Huffman coding telah digantikan oleh

Arithmetic coding. Arithmetic coding melewatkan ide untuk menggantikan sebuah simbol masukan dengan kode yang spesifik. Algoritma ini menggantikan sebuah aliran simbol masukan dengan sebuah angka keluaran single floating-point. Lebih banyak bit dibutuhkan dalam angka keluaran, maka semakin rumit pesan yang diterima.

Algoritma dictionary-based compression menggunakan metode yang sangat berbeda dalam mengkompres data. Algoritma ini menggantikan string variable-length dari simbol menjadi sebuah token. Token merupakan sebuah indek

dalam susunan kata di kamus. Apabila token kecil dari susunan kata, maka token

akan menggantikan prase tersebut dan kompresi pun terjadi.

Kompresi data (pemampatan data) merupakan suatu teknik untuk memperkecil jumlah ukuran data (hasil kompresi) dari data aslinya. Pemampatan


(23)

data umumnya diterapkan pada mesin komputer, hal ini dilakukan karena setiap simbol yang muncul pada komputer memiliki nilai bit-bit yang berbeda. Misal pada ASCII setiap simbol yang dimunculkan memiliki panjang 8 bit, misal kode A pada ASCII mempunyai nilai decimal 65, jika dirubah dalam bilangan biner

menjadi 010000001. Pemampatan data digunakan untuk mengurangkan jumlah

bit-bit yang dihasilkan dari setiap simbol yang muncul. Dengan pemampatan ini diharapkan dapat mengurangi (memperkecil ukuran data) dalam ruang penyimpanan.

(Sumber: Campos, Arturo, LZ77, http://www.arturocampos.com/ac_lz77.html, 21 Oktober 2011, 20.30 WIB.)

2.3. Jenis-jenis Kompresi Data

Berdasarkan mode penerimaan data oleh manusia, kompresi data dapat dibagi menjadi dua, yaitu :

a. Dialoque Mode

yaitu proses penerimaan data dimana pengirim dan penerima seakan berdialog (real time), dimana kompresi data harus berada dalam batas penglihatan dan pendengaran mausia. Contohnya pada video conference.

b. Retrieval Mode

yaitu proses penerimaan data tidak dilakukan secara real time. Jenis kompresi ini dapat dilakukan random access terhadap data dan dapat bersifat


(24)

(Sumber : Kompresi Data, 2009. http://id.wikipedia.org/wiki/Kompresi_data, 15 Nopember 2011, 19.39 WIB.)

2.4. Metode Kompresi Data

Berdasarkan tipe peta kode yang digunakan untuk mengubah pesan awal (isi file input) menjadi sekumpulan codeword, metode kompresi terbagi menjadi dua kelompok, yaitu :

a. Metode Statik

Menggunakan peta kode yang selalu sama. Metode ini membutuhkan dua

fase (two-pass) : fase pertama untuk menghitung probabilitas kemunculan tiap simbol/karakter dan menentukan peta kodenya dan fase kedua untuk mengubah pesan menjadi kumpulan kode yang akan ditransmisikan. Contohnya pada

Huffman static, arithmetic coding

b. Metode Dinamik (adaptif)

Menggunakan peta kode yang dapat diubah dari waktu ke waktu. Metode ini disebut adaptif karena peta kode mampu beradaptasi terhadap karakteristik isi

file selama proses kompresi berlangsung. metode ini bersifat onepass, karena isi

file selama dikompres hanya diperlakukan satu kali pembacaan terhadap isi file. Contohnya pada algoritma LZW dan DMC.


(25)

Berdasarkan teknik pengkodean atau pengubahan simbol yang digunakan, metode kompresi dapat dibagi ke dalam tiga kategori, yaitu :

a. Metode simbolwise

Menghitung peluang kemunculan dari tiap simbol dalam file input, lalu mengkodekan satu simbol dalam satu waktu, dimana simbol yang lebih sering muncul diberi kode lebih pendek dibandinglan simbol yang lebih jarang muncul. Contohnya pada Huffman coding, arithmetic coding.

b. Metode dictionary

Menggantikan karakter/fragmen dalam file input dengan indeks lokasi dari karakter/fragmen tersebut dalam sebuah kamus (dictionary). Contohnya pada algoritma LZW.

c. Metode predictive

Menggunakan model finite-context atau finite-state untuk memprediksi distribusi probabilitas dari simbol-simbol selanjutnya. Contohnya pada algoritma DMC

(Sumber : Kompresi Data, 2009. http://id.wikipedia.org/wiki/Kompresi_data, 15 Nopember 2011, 19.39 WIB.)

2.5. Teknik Kompresi Data

Teknik kompresi data dapat digolongkan menjadi dua kelompok utama yaitu : lossy dan lossless. Teknik kompresi secara lossy dimaksudkan dengan


(26)

teknik kompresi data dengan menghilangkan ketelitian data utama guna mendapatkan data sekecil mungkin (kompresi data sebesar mungkin). Teknik kompresi data secara lossless yaitu teknik kompresi data dengan mengurangkan jumlah data yang terjadi redudansi (memiliki symbol yang sama) sebelum terjadi kompresi.

a. Lossy Compression

Merupakan teknik kompresi yang menghilangkan beberapa informasi data

yang dianggap tidak penting. Sehingga hasil data yang telah terkompresi tidak sama dengan data yang sebelum dikompresi. Namun data yang telah terkompresi tersebut sudah cukup untuk digunakan, walaupun datanya telah berubah. Keunggulan dari teknik ini adalah file atau data yang telah terkompresi memiliki ukuran yang lebih kecil dari ukuran data aslinya. Biasanya teknik kompresi ini banyak diaplikasikan pada data gambar dan data audio.

b. Lossless Compression

Merupakan teknik kompresi yang mempertahankan kebutuhan informasi yang dikandung oleh data, sehingga informasi yang terkandung pada file yang telah terkompresi tetap terjaga meskipun ukurannya telah berubah dari ukuran

data aslinya. Keunggulan dari teknik ini adalah data yang telah terkompresi, apabila didekompresi kembali akan menghasilkan data yang sama persis dengan


(27)

(Sumber : Kompresi Data, 2009. http://id.wikipedia.org/wiki/Kompresi_data, 15 Nopember 2011, 19.39 WIB.)

2.6. Algorithma Zip

Struktur Zip dapat dilihat pada Gambar 2.6. Setiap file terdiri atas rangkaian dimana header memuat tentang informasi file, kompresi dan enkripsi. Lalu semua file akan dirangkai dalam sebuah arbitrary dan sebuah informasi mengenai keseluruhan Zip. Pada sebuah informasi, masing-masing memiliki file-headers, yang menggandung kedua informasi tentang file dan informasi tentang dimana Zip akan dimulai.

Untuk menguraikan kembali data yang sudah dikompresi sebelumnya, dapat digunakan cara sebagai berikut :

a. Baca bit pertama dari string biner masukan.

b. Lakukan traversal pada pohon string mulai dari akar sesuai dengan bit yang dibaca. Jika bit yang dibaca adalah 0 maka baca anak kiri, tetapi jika bit yang dibaca adalah 1 maka baca anak kanan.

c. Jika anak dari pohon bukan daun (simpul tanpa anak) maka baca bit

berikutnya dari string biner masukan.

d. Hal ini diulang (traversal) hingga ditemukan daun.

e. Pada daun tersebut simbol ditemukan dan proses penguraian kode selesai. f. Proses penguraian kode ini dilakukan hingga keseluruhan string biner


(28)

Berikut ini dapat dilihat struktur header file zip

. Gambar 2.1. Struktur Header File Zip.

Setelah mengetahui dan membaca file header, dilakukan proses pencarian dengan mengakses data pada file entry untuk diperiksa apakah mengandung kata

string yang diinputkan. Jika menemukan file yang dicari, tampilkan file tersebut beserta atribut lainnya.

(Sumber : zip, 2010. http://en.wikipedia.org/wiki/Zip, 25 Oktober 2011 jam 20.07 WIB).

2.7.

Algoritma Knuth-Morris-Pratt (KMP)

Pada algoritma brute force, setiap kali ditemukan ketidakcocokan pattern


(29)

Sedangkan pada algoritma KMP, kita memelihara informasi yang digunakan untuk melakukan jumlah pergeseran. Algoritma menggunakan informasi tersebut untuk membuat pergeseran yang lebih jauh, tidak hanya satu karakter seperti pada algoritma brute force.

Dengan algoritma KMP ini, waktu pencarian dapat dikurangi secara signifikan. Algoritma KMP dikembangkan oleh D. E. Knuth, bersama-sama dengan J. H. Morris dan V. R. Pratt.

1 2 3 4 5 6 7 8 9…

Teks: bimbingan belajar atau bimbel

Pattern: bimbel

j = 5

1 2 3 4 5 6 7 8 9…

Teks: bimbingan belajar atau bimbel

Pattern: bimbel

j = 2


(30)

Misalkan A adalah alfabet dan x = x1x2…xk , k ∈ N, adalah string yang panjangnya k yang dibentuk dari karakter-karakter di dalam alfabet A. Awalan (prefix) dari x adalah upa-string (substring) u dengan u = x1x2…xk – 1 , k ∈ {1, 2,

…, k – 1} dengan kata lain, x diawali dengan u.Akhiran (suffix) dari x adalah upa-string (substring) u dengan u = xkbxkb + 1 …xk , k ∈ {1, 2, …, k – 1} dengan kata lain, x diakhiri dengan v.

Pinggiran (border) dari x adalah upa-string r sedemikian sehingga r =

x1x2…xk – 1 dan u = xkbxkb + 1 …xk , k ∈ {1, 2, …, k – 1},dengan kata lain, pinggiran dari x adalah upa-string yang keduanya awalan dan juga akhiran sebenarnya dari x. Contoh 10.5. Misalkan x = abacab. Awalan sebenarnya dari x

adalah , a, ab, aba, abac, abaca (ket: = string kosong).

Akhiran sebenarnya dari x adalah , b, ab, cab, acab, bacab. Pinggiran dari

x adalah , ab. Pinggiran mempunyai panjang 0, pinggiran ab mempunyai panjang 2.

-Fungsi Pinggiran (Border Function)

Fungsi pinggiran b(j) didefinisikan sebagai ukuran awalan terpanjang dari

P yang merupakan akhiran dari P[1..j]. Sebagai contoh, tinjau patternP = ababaa. Nilai F untuk setiap karakter di dalam P adalah sebagai berikut:


(31)

P

[

j

]

A

b

a

b

A

a

b

(

j

)

0

0

1

2

3

1

Algoritma menghitung fungsi pinggiran adalah sbb :

procedure HitungPinggiran(input m : integer, P : array[1..m] of char,

output b : array[1..m] of integer)

{ Menghitung nilai b[1..m] untuk pattern P[1..m] }

Deklarasi

k,q : integer

Algoritma:

b[1]←0 q←2 k←0

for q←2 to m do

while ((k > 0) and (P[q] ≠ P[k+1])) do k←b[k]

endwhile

if P[q]=P[k+1] then k←k+1


(32)

Contoh:

Teks: abcabcabd

Pattern: abcabd

Mula-mula kita hitung fungsi pinggiran untuk pattern tersebut:

J

1 2 3

4 5 6

P

[

j

]

A b C a b d

b

(

j

) 0 0 0

1 2 0

Teks:

abcabcabd

Pat t ern

:

abcabd

j

= 3

endif

b[q]=k endfor


(33)

Algoritma KMP selengkapnya adalah :

procedure KMPsearch(input m, n : integer, input P : array[1..m] of char, input T : array[1..n] of char,

output idx : integer)

{ Mencari kecocokan pattern P di dalam teks T dengan algoritma Knuth-Morris-Pratt. Jika ditemukan P di dalam T, lokasi awal kecocokan disimpan di dalam peubah idx.

Masukan: pattern P yang panjangnya m dan teks T yang panjangnya n. Teks T direpresentasika sebagai string (array of character) Keluaran: posisi awal kecocokan (idx). Jika P tidak ditemukan, idx = -1. }

Deklarasi

i, j : integer

ketemu : boolean

b : array[1..m] of integer

procedure HitungPinggiran(input m : integer, P : array[1..m] of char, output b : array[1..m] of integer)

{ Menghitung nilai b[1..m] untuk pattern P[1..m] }

Algoritma:

HitungPinggiran(m, P, b)

j←0 i←1

ketemu←false

while (i ≤ n and not ketemu) do

while((j > 0) and (P[j+1]≠T[i])) do j←b[j]

endwhile

if P[j+1]=T[i] then j←j+1

endif

if j = m then ketemu←true else

i←i+1 endif endwhile

if ketemu then


(34)

idx←-1 endif

Kompleksitas Waktu Algoritma KMP :

Untuk menghitung fungsi pinggiran dibutuhkan waktu O(m), sedangkan pencarian string membutuhkan waktu O(n), sehingga kompleksitas waktu algoritma KMP adalah O(m+n).

( Sumber : Rinaldi Munir, 2012, Strategi Algoritmik,/IF2251/BahanKuliah ke-15 )

2.8. Embarcadero Delphi 2010

Delphi merupakan alat bantu pengembangan aplikasi yang berbasis visual. Perangkat ini merupakan hasil pengembangan dari bahasa pemrograman pascal yang diciptakan oleh Niklaus Wirth. Pada masa itu, Wirth bermaksud membuat bahasa pemrograman tingkat tinggi sebagai alat bantu mengajar logika pemrograman komputer kepada para mahasiswanya.

Bahasa pemrograman pascal ini kemudian dikembangkan oleh Borland yang merupakan salah satu perusahaan software menjadi sebuah tools dengan dibuatkan compiler dan dijual ke pasar dengan nama TURBO PASCAL.Seiring dengan ditemukannya metode pemrograman berorientasi obyek, bahasa pemrograman pascal berevolusi menjadi object pascal dan dikembangkan oleh Borland dengan nama Borland Delphi.

Keberhasilan Borland dalam mengembangkan Delphi menjadikan salah satu bahasa yang populer dan disukai oleh banyak programmer, disamping Visual Basic yang dikeluarkan oleh Microsoft di kemudian hari. Karena Delphi lebih


(35)

user friendly dari pada VB. Lingkungan pengembangan Delphi yang mudah,

intuitif dan memudahkan pemakai, berhasil melampaui popularitas rivalnya, yaitu Visual Basic, sehingga pernah menyandang predikat “VB-Killer”.

Gambar 2.2. Tampilan Embarcadero Delphi 2010

Karena tuntutan perkembangan teknologi, Borland berganti nama menjadi Code Gear, tetapi tetap mempergunakan nama Delphi untuk tools yang berbasis object pascal ini. Tidak lama kemudian Code Gear diakuisisi oleh Embarcadero dan namanya pun berubah menjadi Embarcadero RAD Studio dengan tetap mempertahankan Delphi sebagai salah satu tools-nya.


(36)

Beberapa kelebihan yang dimiliki oleh Embarcadero Delphi 2010 ini antara lain : a. Delphi dibangun dengan menggunakan arsitektur native compiler, sehingga

proses kompilasi instruksi menjadi bahasa mesin menjadi lebih cepat.

b. Semua file yang disertakan saat proses kompilasi, digabungkan menjadi satu sesuai dengan arsitektur native compiler, sehingga mengurangi ketergantungan terhadap library ataupun file-file pendukung lainya, sesuai dengan prinsip build once, runs everywhere

c. Delphi mempunyai kemampuan selective object linking, sehingga apabila terdapat pemanggilan sebuah library dan ternyata tidak terdapat instruksi dalam library tersebut yang dipergunakan dalam system, maka secara otomatis, kompiler tidak akan menyertakan library tersebut dalam proses kompilasinya. Hal ini berbeda dengan tools lain yang tidak mempunyai kemampuan seperti itu. Dengan adanya kemampuan tersebut, maka file eksekusi yang dihasilkan delphi menjadi lebih optimal.

d. Lingkungan pengembangan Delphi sangat intuitif karena semua komponen yang menjadi alat utama desain visual telah ditampilkan saat pertama kali langsung dapat diamati oleh user dan dapat digunakan secara langsung.

(Sumber : Embarcadero, 2012. http://id.wikipedia.org/wiki/, 15 Nopember 2011, 19.39 WIB.)


(37)

2.9. Flow Map

Flow Map adalah diagram yang menunjukan aliran data berupa formulir-formulir ataupun keterangan berupa dokumentasi yang mengalir atau beredar dalam suatu sistem. Notasi yang digunakan dalam suatu flow map merupakan penggabungan notasi flow chart program. Hal-hal yang harus diperhatikan dalam menggambarkan flow map adalah sebagai berikut:

a. Penggambaran flow map dimulai dari atas halaman ke bagian bawah, kemudian dari kiri kebagian kanan

b. Penggambaran flow map dilakukan berdasarkan pembagian atau sub sistem

c. Dalam flow map harus jelas dimana awal suatu status informasi, kemudian dimana akhir siklus

d. Semua bagian siklus informasi harus jelas menggunakan kertas kerja yang jelas sesuai dengan yang akan dilakukan dalam sistem

e. Semua sub sistem yang digambarkan, harus mengalami siklus informasi

f. Jika penggambaran suatu siklus informasi terpotong, maka gunakan penghubung antar bagian.


(38)

(Sumber : Flow Map, 2012. http://id.wikipedia.org/wiki/, 10 Nopember 2011, 19.39 WIB.)

2.10. DATA FLOW DIAGRAM

Data Flow Diagram (DFD) adalah alat pembuatan model yang memungkinkan profesional sistem untuk menggambarkan system sebagai suatu jaringan proses fungsional yang dihubungkan satu sama lain dengan alur data, baik secara manual maupun komputerisasi.

DFD ini adalah salah satu alat pembuatan model yang sering digunakan, khususnya bila fungsi-fungsi sistem merupakan bagian yang lebih penting dan kompleks dari pada data yang dimanipulasi oleh sistem. Dengan kata lain, DFD adalah alat pembuatan model yang memberikan penekanan hanya pada fungsi sistem.

DFD ini merupakan alat perancangan sistem yang berorientasi pada alur

data dengan konsep dekomposisi dapat digunakan untuk penggambaran analisa maupun rancangan sistem yang mudah dikomunikasikan oleh profesional sistem kepada pemakai maupun pembuat program. Salah satu tool yang paling penting bagi seorang analis sistem. Penggunaan DFD Sebagai Modeling Tool

dipopulerkan Oleh Demacro and Yordan dan Gane and Sarson dengan menggunakan pendekatan Metode Analisis Sistem Terstruktur.

DFD (Data Flow Diagram) merupakan data yang tersimpan dan proses dengan proses yang terhubung dengan data tersebut. DFD bukan termasuk flowchart. Proses dalam DFD bisa berjalan secara parallel, DFD menggambarkan


(39)

ataupun cabang tetapi dapat menggambarkan semua proses, meskipun proses tersebut terjadi dalam waktu yang berbeda.

Ada beberapa peraturan-peraturan yang penting dalam membuatan DFD tersebut.

a. Semua objek harus mempunyai nama

b. Aliran data harus di awal dan di akhiri oleh proses c. Semua aliran data harus mempunyai tanda panah.

2.10.1. Symbol dalam DFD

Menurut Gene dan Serson didalam DFD terdapat simbol-simbol yang banyak digunakan agar dapat membentuk atau membuat suatu DFD secara utuh, berikut adalah macam-macam symbol yang umum digunakan.

a. Entity

Gambar 2.3. Entity

Entity dapat digambarkan dengan simbol bujur sangkar. Entity Merupakan sumber atau tujuan dari aliran data. Bisa juga menggambarkan secara phisik, yaitu seseorang atau seelompok orang atau system lain.Kadang-kadang diperlukan untuk menduplikasinya agar dapat menghindari anak panah yang simpang siur. Ditandai dengan garis diagonal disudut kanan bawah yang menyatakan kalau entity tersebut lebih dari satu.


(40)

b. Aliran Data

Gambar 2.4. Aliran data

Aliran Data menggambarkan aliran data dari suatu proses ke proses lainnya. Merepresentasikan dengan menggunakan anak panah. Nama proses dapat ditulis untuk menjelaskan arti dalam aliran tersebut dan ditulis untuk mengidentifikasi aliran tersebut. Aliran data juga dapat menyebar atau menyatu.

c. Proses

Gambar 2.5. Proses

Proses merupakan fungsi yang mentransformasikan data secara umum Karena proses adalah suatu kegiatan agar dapat menghasilkan output, maka untuk memberi nama sebuah proses mulailah dengan kata kerja dan diikuti objek.

d. Storage atau Penyimpan


(41)

Storage atau Penyimpanan merupakan komponen yang berfungsi untuk menyimpan data atau file yang dapat berfungsi untuk mentransformasikan data

secara umum.

2.10.2. Level-level DFD

Model ini menggambarkan sistem sebagai jaringan kerja antar fungsi yang berhubungan satu dengan yang dengan aliran dan penyimpan data. Bisa terjadi penurunan level dimana dalam penurunan level yang lebih rendah harus bisa merepresentasikan proses tersebut kedalam spesifikasi proses yang jelas. Dalam DFD level dimulai dari level 0 kemudian turun ke DFD level 1, 2 dan seterusnya sesuai dengan kebutuhan tetapi penurunan tidak dilakukan pada semua bagian sistem.

a. Diagram level Nol.

Pada diagram level nol ini merupakan diagram awal suatu program yang digunakan agar dapat melanjutkan ke diagram level selanjutnya. Perlihatkan data store yang digunakan

- Pada proses yang tidak dirinci lagi, tambahkan tanda * pada akhir penomoran proses


(42)

b. Diagram level Satu

Keseimbangan data store yang digunakan diagram ini merupakan

dekomposisi dari diagram level zero. Dengan cara sebagai berikut :

- Keseimbangan aliran data antara diagram nol dan diagram rinci

- Pada proses yang tidak dirinci lagi, tambahkan tanda * pada akhir penomoran proses

- Tentukan proses yg lebih kecil (sub-proses) dari proses utama yg ada di level zero.

- Tentukan apa yg diberikan atau diterima masing-masing sub-proses pada atau dari sistem dan perhatikan konsep keseimbangan.

- Apabila diperlukan, munculkan data store (transaksi) sebagai sumber maupun tujuan alur data.

- Gambarkan DFD level Satu - Hindari perpotongan arus data.

- Beri nomor pada masing-masing sub-proses yg menunjukkan dekomposisi dari proses sebelumnya. Contoh : 1.1, 1.2, 2.1

c. DFD level dua, tiga.

Diagram ini merupakan dekomposisi dari level sebelumnya. Proses

dekomposisi dilakukan sampai dengan proses siap dituangkan ke dalam program. Aturan yg digunakan sama dengan level satu.


(43)

2.10.3. Bentuk Data Flow Diagram

Menurut Jogiyanto, Terdapat dua bentuk DFD, yaitu Diagram Alur Data Fisik, dan Diagram Alur data Logika. Diagram alur data fisik lebih menekankan pada bagaimana proses dari sistem diterapkan, sedangkan Diagram alur data logika lebih menekankan proses-proses apa yang terdapat di sistem.

a. Diagram Alur Data Fisik (DADF).

DADF lebih tepat digunakan untuk menggambarkan sistem yang ada (sistem yang lama). Penekanan dari DADF adalah bagaimana proses-proses dari sistem diterapkan (dengan cara apa, oleh siapa dan dimana), termasuk proses-proses manual.

b. Diagram Alur Data Logika (DADL).

DADL lebih tepat digunakan untuk menggambarkan sistem yang akan diusulkan (sistem yang baru). Untuk sistem komputerisasi, penggambaran DADL hanya menunjukkan kebutuhan proses dari system yang diusulkan secara logika, biasanya proses-proses yang digambarkan hanya merupakan proses-proses secara komputer saja.

(Sumber : Nugroho, Adi, 2005, Pemodelan Berorientasi Obyek, Bandung, Informatika)


(44)

3.1. Desain Penelitian

Desain penelitian adalah tahapan atau gambaran yang akan dilakukan peneliti dalam melakukan penelitian. Desain penelitian dibuat untuk memudahkan peneliti dalam melakukan tahap-tahap penelitian.

Tahapan-tahapan desain penelitian yang peneliti lakukan diantaranya adalah :

a. Mengumpulkan data yang diperlukan berupa text book, paper dan karya ilmiah lainnya yang membahas kompresi data dan teknik-teknik pencarian file b. Setelah dikumpulkan data yang diperlukan, ditentukan data yang dipakai pada

penelitian ini, yaitu kompresi data format .zip dan string pattern matching.

c. Mempersiapkan alat dan bahan penelitian berupa komputer, bahasa pemrograman dan aplikasi kompresi data.

d. Kemudian memulai proses pembangunan perangkat lunak dengan metode

rapid application development.

e. Hasil pembangunan perangkat lunak adalah aplikasi yang dapat mencari nama

file terkompresi format zip tanpa proses dekompresi.

f. Aplikasi tersebut kemudian diuji untuk mencari nama file terkompresi untuk mengetahui tingkat keberhasilan hasil pencarian.


(45)

Gambar di bawah ini merupakan gambar desain penelitian dari tahapan-tahapan penelitian yang dilakukan di atas :

Gambar 3.1. Desain Penelitian Langkah awal penelitian:

1. Mengumpulkan data yang diperlukan. 2. Menentukan data yang dibutuhkan untuk

penelitian ini.

3. Mempersiapkan alat dan bahan penelitian.

Tahap analisis :

1. Mendeskripsikan perangkat lunak. 2. Analisis kebutuhan perangkat lunak.

Tahap desain : Membuat rancangan aplikasi.

Tahap Pengcodingan:

Implementasi pengenalan format nama file terkompresi dan pencarian nama file terkompresi.

Tahap pengujian:

Perangkat lunak diuji menggunakan

black box.

dat aset

Hasil pengujian:

Hasil pengujian ditarik kesimpulan dan didokumentasikan agar dapat diberikan saran pengembangan untuk penelitian berikutnya.


(46)

3.2. Analisis Proses Kompresi

Berikut ini adalah analisis proses kompresi untuk format zip yang dipergunakan dalam tugas akhir ini : Sistem akan mencari string yang mempunyai tingkat duplikasi yang tinggi dari data yang diinputkan. String kedua (merupakan

string yang sama dari string pertama) akan digantikan oleh pointer yang menunjuk string sebelumnya secara berpasangan (menurut jarak tertentu).

Jarak string dibatasi sebanyak 32 Kbytes dan panjangnya dibatasi sampai 256 bytes. Ketika sebuah string yang ditemukan tidak terdapat pada 32 Kbytes

sebelumnya, maka akan diperlakukan sebagai literal bytes. String dalam konteks ini adalah urutan bytes dan tidak terbatas pada karakter alfabetik. Literal atau

string yang cocok dikompres dengan satu pohon huffman dan dan jarak yang sama dikompres dengan pohon yang lain.

3.3. DFD

Decomposite Diagram


(47)

Sebelum dilakukan pembuatan DFD dibuat dulu Decomposite diagram

untuk mengetahui alur struktur program dari aplikasi utilitas pencari nama file

terkompresi tanpa proses dekompresi. Supaya kita bisa tahu alur program selanjutnya.

Yang pada decomposite diagram ini terdiri dari fungsi pilih drive atau

patch dan cari nama file.Fungsi “pilih drive atau patch” dipecah menjadi 2 sub bagian yaitu membuka isi drive dan pilih lokasi atau folder.Fungsi “cari nama

file” dipecah menjadi 2 sub bagian yaitu lokasi file,file terkompresi dan tampil nama file yang terkompresi

DFD Level 0


(48)

Pada DFD level 0 ini, membahas tentang sistem aplikasi utilities pencari nama file terkompresi tanpa proses dekompresi dengan mengetahui drive dan

folder dari user untuk mengetahui alur pencarian nama file selanjutnya dari program aplikasi pencari file ini.

DFD Level 1

Gambar 3.4. DFD Level 1

Pada DFD level 1 ini dibahas,sistem dari aplikasi utilities pencari nama

file terkompresi tanpa proses dekompresi terdapat 2 fungsi yaitu “pilih drive dan


(49)

DFD Level 2

Gambar 3.5. DFD Level 2 Dari Pilih Drive Dan Folder

Pada DFD level 2 ini, terdapat 2 fungsi yaitu “tampil Isi drive dan folder” yang berfungsi menampilkan isi drive dan isi folder yang dipilih oleh user dan


(50)

fungsi “tampil lokasi folder” yang berfungsi menampilkan nama folder yang akan di cari oleh user.

DFD Level 2

Gambar 3.6. DFD Level 2 Cari Nama File


(51)

dicari user untuk menemukan file yang terkompresi dan fungsi “tampil nama file

yang terkompresi” yang berfungsi untuk output nama file yang dicari.

3.4. Analisis Proses Pencarian

Sedangkan analisis proses pencarian nama file terkompresi dalam file

terkompresi dapat dijelaskan sebagai berikut :

Pertama user akan menginputkan string inputan ke dalam text box. “Supaya sistem dapat mengenali file terkompresi maka sistem akan memeriksa seluruh file yang terdapat pada folder tersebut. Apakah file tersebut mengandung berekstensi .Zip atau .Rar. Jika ya, sistem akan membaca header pada file

kompresi tersebut. Apabila header pada file kompresi tersebut berhasil untuk dikenali, maka sistem akan menciptakan tabel string pencarian. Tabel string

pencarian yaitu tabel yang berisi ekstraksi informasi dari header yang terdiri atas daftar file yang terdapat dalam file terkompresi .Zip dan .Rar. Setelah tabel string

pencarian ini terbentuk, maka sistem akan membaca string yang terdapat pada tabel string pencarian dan membandingkan dengan string yang akan diinputkan oleh user di dalam text box tadi yang telah di inputkan oleh user, secara satu persatu sesuai jumlah indeks yang terdapat pada tabel string pencarian tersebut.” Apabila ditemukan ada yang cocok, maka akan ditampilkan hasilnya. Jika tidak ditemukan yang cocok, maka sistem akan menutup file kompresi .Zip dan

.Rar yang aktif saat ini dan mencari dalam file kompresi .Zip dan .Rar yang lain dengan urutan proses yang sama, sampai seluruh file kompresi .zip atau .rar yang terdapat dalam directory tersebut sudah diperiksa seluruhnya.


(52)

3.5. Diagram Alir Sistem

START

Nama file yang dicari

Baca file .zip dan verifikasi file tersebut

Hasilnya Benar ?

Baca header dan buat tabel string pencarian

For Loop = 1 to jumlah_indeks_tabel

Nama_file_dicari = indeks_tabel[loop] ?

Tampilkan Hasilnya

Break

Next Loop

END Y

T

T


(53)

3.6. Pseudocode Proses Pencarian

Sistem mengenali file terkompresi .zip,maka sistem akan memulai posisi untuk membuat table string pencarian untuk file zip di dalam header.Ketika posisi berada di nol atau sama maka di lakukan perbandingan antara inputan string

dengan nama file yang berada pada header file di file zip.Jika perbandigan sama maka hasil string yang sama tadi di masukkan kedalam temp (temporary).

Kemudian lihat ke depan untuk membandingkan lagi.Perbandingan dilakukan sampai jumlah file yang ada.Jika perbandingan antara inputan string dengan nama yang ada pada header file zip sama maka hasil ditampilkan.

if FileZip is valid then begin Posisi = BuatTable(FileZipHeader) while posisi <> nil do begin

if CompareText(Look.FileName,FileZipHeader) = 0 then begin

Result = FList.IndexOf(Look) Exit

end

Look = Look.NextItem end;

end else begin

for I = 0 to FList.Count - 1 do

if CompareText(Items[I].FileName, FileZipHeader) = 0 then begin

Result = I Exit

end end


(54)

3.7. Pseudocode Pembuatan Tabel Pencarian String

Dengan terlebih dahulu mengalokasikan ukuran tabel T, sesuai dengan ukuran panjang string ditambah satu. Kemudian jika karakter indeks (i-1) pada

string W sama dengan panjang W(j), maka pada tabel T indeks i diisi dengan nilai j + 1. Setelah itu nilai i dan j dinaikkan satu. Apabila nilai i sudah melebihi panjang string W, maka pada tabel T indeks ke i diisi dengan nilai satu, nilai i ditambah dengan satu dan nilai j diisi dengan satu.

SetLength( T, Length( W ) + 1 ); t[1] = 0; t[2] = 1;

while ( i <= Length( W ) ) do begin if ( W[i - 1] = W[j] ) then begin T[i] = j + 1; Inc( j ); Inc( i ); End else if ( j > 1 ) then begin j = T[j]; end else begin

T[i] = 1; Inc( i ); j = 1; end; end;


(55)

3.8. Perancangan Antar Muka

Perancangan antarmuka dibutuhkan untuk mewakili keadaan sebenarnya dari aplikasi yang akan dibangun. Dan seperti developer visual lainnya, Embarcadero RAD Studio sudah menyediakan berbagai macam komponen untuk menghemat waktu pengembangan sesuai dengan kebutuhan developer. Berikut akan disajikan perancangan antarmuka dari aplikasi yang akan dibangun :

Gambar 3.9. Desain Form Pencari File

Tampak pada Gambar 3.9 terdapat komponen drive combo yang digunakan untuk membaca seluruh drive yang aktif pada komputer, directory list box yang digunakan untuk membaca dan menentukan folder yang aktif, file list box yang digunakan untuk menampilkan seluruh file yang terdapat dalam

directory aktif saat ini, edit box yang dipergunakan untuk menginput nama file

yang dicari, list box hasil pencarian, tombol cari, edit box cari nama file dan kotak hasil.


(56)

4.1. Implementasi Prosedur Create Form

Berikut ini adalah implementasi prosedur Create Form yang dipergunakan dalam tugas akhir ini :

Penjelasan source code di atas adalah sebagai berikut :

Pada prosedur form create ini dipergunakan untuk memberikan setting pada sistem untuk penanganan kesalahan, pengaturan icon serta caption pada form.

4.2. Implementasi Prosedur ExceptionHandler

Berikut ini adalah implementasi prosedur penanganan kesalahan yang dipergunakan dalam tugas akhir ini :

Penjelasan source code di atas adalah sebagai berikut :

Pada prosedur form ExceptionHandler ini dipergunakan untuk menangani kesalahan pada form.

Application.OnException := ExceptionHandler; Icon.Handle := Application.Icon.Handle; Caption := Application.Title;

M essageBox(handle,PChar('Follow ing error has occured: '#13 + e.M essage), 'Error', M B_ICONHAND);


(57)

4.3. Implementasi Prosedur Keluar

Berikut ini adalah implementasi prosedur keluar yang dipergunakan dalam tugas akhir ini :

Penjelasan source code di atas adalah sebagai berikut :

Pada prosedur form Button1Click ini dipergunakan untuk keluar dari aplikasi yang sedang berjalan pada form.

4.4. Implementasi Prosedur Pencarian

Berikut ini adalah implementasi prosedur pencarian yang dipergunakan dalam tugas akhir ini :

i := 1;

m := 1;

while ( ( ( m + i ) <= Length( S ) ) and ( i <= Length( W ) ) ) do begin

if ( S[m + i] = W[i] ) then begin Inc( i );

end

else begin

m := m + ( i - T[i] ); if ( i > 1 ) then

i T[i]

i := T[i]; end;

end;

if m = Length( S ) then Result := 0

Else Result := m; Close;


(58)

Penjelasan source code di atas adalah sebagai berikut :

Variabel i dan m dipergunakan untuk mencatat panjang string yang akan dilakukan oleh proses pencarian. Proses pencocokan pola string dimulai di awal dan bergerak dari kiri ke kanan sampai mencapai akhir string. Apabila nilai m sama dengan panjang string S, berarti string yang dicari ditemukan, selain itu jika panjang m tidak sama dengan string S, berarti string yang dicari tidak ditemukan.

4.5. Implementasi Tabel String Pencarian

Penjelasan dari source code di atas adalah :

Variabel j dipergunakan untuk melakukan pembentukan kolom pada tabel,

j := 1;

SetLength( T, Length( W ) + 1 ); t[1] := 0;

t[2] := 1;

while ( i <= Length( W ) ) do begin if ( W[i - 1] = W[j] ) then begin T[i] := j + 1;

Inc( j ); Inc( i ); end

else if ( j > 1 ) then begin j := T[j];

end else begin T[i] := 1;

Inc( i ); j := 1; end; end; Result := T;


(59)

panjang string ditambah satu. Kemudian jika karakter indeks (i-1) pada string W sama dengan panjang W(j), maka pada tabel T indeks i diisi dengan nilai j + 1. Setelah itu nilai i dan j dinaikkan satu. Apabila nilai i sudah melebihi panjang

string W, maka pada tabel T indeks ke i diisi dengan nilai satu, nilai i ditambah dengan satu dan nilai j diisi dengan satu.

4.6. Implementasi Tombol Cari

Edit1.Text:=LowerCase(Edit1.Text); Memo2.Clear;

if FileListBox1.Count=0 then begin

ExceptionHandler(Self, Exception.Create('Tidak ada file yang akan dicari.'));

exit; end;

for i:=0 to FileListBox1.Count-1 do begin AFileSrc :=

DirectoryListBox1.Directory+'\'+FileListBox1.Items[i]; FMain.Caption:=AFileSrc;

Application.ProcessMessages; Memo1.Clear;

if pos('.zip',AFileSrc)>0 then begin

with CreateInArchive(CLSID_CFormatZip) do begin

OpenFile(AFileSrc);

for ix:= 0 to NumberOfItems - 1 do if not ItemIsFolder[ix] then

Memo1.Lines.Add(ExtractFileName(ItemPath[ix])); end;


(60)

Penjelasan source code di atas adalah :

Input string dari user akan dirubah ke bentuk huruf kecil semua. Kemudian jika pada listbox tidak terdapat file yang di cari maka akan tampil pesan 'Tidak ada file yang akan dicari.', tetapi jika tidak kosong, sistem akan mengenali terlebih dahulu ekstensi dari file tersebut apakah .Zip atau .Rar. Jika ekstensi file tersebut adalah .zip, maka pembentukan proses penguraian

header disesuaikan dengan format .zip. Namun jika ekstensi file tersebut adalah .Rar, maka pembentukan proses penguraian header disesuaikan dengan format

end;

if pos('.rar',AFileSrc)>0 then begin

with CreateInArchive(CLSID_CFormatRar) do begin

OpenFile(AFileSrc);

for ix:= 0 to NumberOfItems - 1 do if not ItemIsFolder[ix] then

Memo1.Lines.Add(ExtractFileName(ItemPath[ix])); end; end;

Memo1.Text:=LowerCase(Memo1.Text);

str_to_search_for := Edit1.Text; str_to_search_in := Memo1.Text; if pos(Edit1.Text,Memo1.Text)>0 then Memo2.Lines.Add(AFileSrc);


(61)

input dimulai dan ditampilkan hasilnya bila string yang ada di patttern sama dengan string yang ada di teks.

4.7. Implementasi Antar Muka

Susunan antarmuka pada program yang dibuat dibentuk berdasarkan sketsa rancangan antarmuka sebelumnya. Hasil implementasi seperti yang ditunjukkan pada gambar di bawah ini.

Gambar 4.1. Implementasi Form Pencari File

Tampak pada Gambar 4.1 bahwa antarmuka pada program terbentuk dari beberapa komponen. Komponen ini meliputi bagian lokasi penunjuk drive, bagian hirarki folder, deskripsi konten folder, bagian pencarian file, bagian hasil


(62)

pencarian. Selain itu yang tampak jelas di sini adalah ditunjukkan adanya tombol kontrol program pada tombol.

Gambar 4.2. Implementasi Komponen Penunjuk Folder

Bagian pengaksesan folder sengaja disediakan pada bagian sisi kiri yaitu terdiri dari folder, file, drive. Hal ini dimaksudkan agar mempermudah dalam ilustrasi menunjukkan file berada. Saat pengguna memilih lokasi drive maka akan mempengaruhi kondisi tampilan folder. Struktur folder akan langsung ditampilkan berdasarkan pilihan drive tersebut. Selanjutnya konten dari file juga akan mengikuti dan langsung tampil pada bagian konten di bawahnya. Oleh karena itu sangat tepat meletakkan susunan pengaksesan folder pada sisi yang sama. Yang mana disusun dari atas ke bawah sesuai proses urutan pengaksesan yang saling berhubungan.


(63)

Gambar 4.3. Implementasi Komponen Pencarian File

Bagian sisi kanan adalah mengenai input dan output program. Input

sengaja berada pada lokasi paling atas karena merupakan bagian utama yang dibutuhkkan program. Selanjutnya output berada pada sisi bawah sebagai hasil lanjutan yang terpengaruhi proses sebelumnya sehingga posisinya lebih cocok diposisikan pada bagian bawah. Dengan begitu penerapan mengenai antarmuka aplikasi disesuaikan dengan kemudahan akses penggunanya sebagaimana yang didesain saat merancang dan membangun aplikasi dalam bentuk sketsa.

Gambar 4.4. Implementasi Komponen Tombol Keluar

Bagian kanan atas adalah mengenai tombol keluar .Tombol keluar sengaja berada pada lokasi kanan paling atas karena merupakan bagian utama yang


(64)

dibutuhkan program.Karena penerapan antarmuka disesuaikan dengan kemudahan akses penggunanya sebagaimana yang telah dirancang.


(65)

5.1. Pengujian Aplikasi

Pengujian aplikasi dilakukan dengan cara memasukkan berbagai ekstensi

file ataupun hanya sebagaian nama file untuk menguji akurasi keberhasilan tingkat pencarian. Dalam pengujian ini diasumsikan keseluruhan fungsional prosedural atau fungsi telah berjalan dengan baik. Sebagai tools pembantu digunakan aplikasi WINRAR untuk menunjukkan struktur file yang terdapat dalam file terkompresi yang dipergunakan untuk pengujian.

Sehingga dengan cara tersebut dapat digunakan sebagai alat pemeriksa validasi dan verifikasi hasil pencarian yang dikerjakan oleh aplikasi tugas akhir ini. Berikut ini adalah langkah-langkah pengujian aplikasi :

5.1.1 Pengujian Aplikasi Dengan Nama File Dan Ekstensinya

Pada pengujian ini dikerjakan sebanyak tiga kali dengan berbagai variasinya. Adapun pengujian pertama yang dilakukan adalah dengan menggunakan file test.zip, yang mempunyai struktur sebagai berikut :


(66)

Isi atau struktur file TEST.ZIP yang meliputi jadwal_ngajar_baru.xls, jadwal_proyek.xls, photo_unyil.doc, ikan.docx yang akan digunakan pada pengujian pertama dapat dilihat pada Gambar 5.1. di atas.

Gambar 5.2. Pengujian Untuk Mencari Ikan.docx

Pada pengujian pertama, penulis memasukkan ikan.docx sebagai nama file


(67)

Sedangkan pengujian kedua menggunakan file pencarian.rar, yang mempunyai struktur file sebagai berikut :

Gambar 5.3. Hasil Dekompresi File “Pencarian.rar”

Isi atau struktur file Pencarian.rar yang meliputi folder test, index_html, asher.php, 1.txt, 4.txt, 5.txt, bagi.txt, copyofaku.txt, copyoftest.txt, oyi.txt,

pemula.txt, README.txt yang akan digunakan pada pengujian dapat dilihat pada Gambar 5.3. di atas.


(68)

Gambar 5.4. Pengujian Untuk Mencari File Pemula.txt

Hasil pencarian untuk file kompresi berformat rar, pada pengujian kedua ini juga berhasil dengan baik. Aplikasi tugas akhir ini mampu menampilkan hasil pencarian file pemula.txt terdapat pada file pencarian.rar.

Pada pengujian ketiga ini, penulis ingin mencoba mencari nama file


(69)

Berikut ini adalah hasil nya :

Gambar 5.5. Pengujian Untuk Hasil Lebih Dari Satu

Pada pengujian di atas, dilakukan pencarian terhadap file pemula.txt. Dan ternyata file pemula.txt terdapat di dua file di directory D:\\, yaitu file

pencarian.rar dan file pencarian.zip. Sehingga dapat dikatakan sistem berhasil melakukan pencarian secara multiple file format kompresi.


(70)

5.1.2. Pengujian Aplikasi Dengan Nama File Tanpa Ekstensinya

Pengujian berikutnya, peneliti melakukan pencarian file yang ada di dalam file terkompresi tanpa menyertakan ekstensi dari file yang akan dicari. Berikut ini adalah hasil pengujiannya :

Gambar 5.6. Pengujian Untuk Berdasarkan Nama File Tanpa Ekstensi Pada pengujian di atas, dilakukan pencarian terhadap file “mula”. Dan ternyata file “mula” terdapat di tiga file di directory D:\\, yaitu di dalam file


(71)

Sehingga dapat dikatakan sistem berhasil melakukan pencarian secara multiple file format kompresi.

Gambar 5.7. Hasil Dekompresi File “SIMAKOP.RAR”

Terdapat tanda kotak merah yang menunjukkan bahwa memang terdapat

file yang mengandung string ‘mula’. Hal ini menunjukkan bahwa aplikasi yang dibuat berhasil mencari file walaupun hanya berdasarkan sebagian nama filenya saja dan menampilkan hasilnya dalam multiple file format dapat dilihat pada Gambar 5.7. di atas.


(72)

5.1.3. Pengujian Aplikasi Dengan Nama File Berupa Bilangan.

Pada pengujian berikutnya, peneliti melakukan pencarian file dengan menuliskan nama file berupa bilangan saja ( bukan string ). Berikut ini adalah hasil pengujiannya :

Gambar 5.8. Pengujian Untuk Mencari Nama File Berupa Bilangan

Peneliti melakukan pengujian dengan memasukkan inputan berupa bilangan atau angka “19”. Dan aplikasi menampilkan file kompresi yang mengandung angka “19”. File tersebut berada di lokasi “E : \ E-Book \ xcode_magazine_19.zip”. Dibawah ini merupakan struktur file dari file kompresi “xcode_magazine_19.zip”.


(73)

Dan berikut struktur file kompresi dari “xcode_magazine_19.zip” :

Gambar 5.9. Hasil Dekompresi File “Xcode_magazine_19.zip”

Gambar di atas menunjukkan bahwa memang terdapat file yang nama nya berupa bilangan “19” / bukan string. Hal ini menunjukkan bahwa aplikasi yang dibuat berhasil mencari file walaupun nama file berupa bilangan “19” / bukan


(74)

5.1.4. Pengujian Aplikasi Dengan Nama File Berupa Bilangan Yang Sebagian Saja / Tidak Lengkap Penulisannya.

Pengujian berikutnya, peneliti ingin mencari file dengan menuliskan nama

file berupa bilangan yang hanya sebagian saja / tidak lengkap penulisannya. Berikut ini adalah hasil pengujiannya :

Gambar 5.10. Pengujian Untuk Mencari Nama File Berupa Bilangan Yang Hanya Ditulis Sebagian Saja.

Gambar di atas menunjukkan bahwa folder yang terdeteksi setelah ditekan tombol “CARI”. Dan di dalam folder tersebut terdapat sebuah nama file yang


(75)

berupa bilangan yang hanya ditulis sebagian saja. Dapat dilihat pada Gambar 5.10. di atas.

Gambar 5.11. Hasil Dekompresi File “coba.rar”

Diambil salah satu sebuah file kompresi yaitu file “File coba.rar” yang telah terdeteksi di kotak memo 2 tadi. Dan menunjukkan bahwa aplikasi ini mampu mencari nama file walaupun yang di inputkan hanya sebagian nama file


(76)

5.1.5. Pengujian Aplikasi Dengan Nama File Berupa Bilangan Tanpa Ekstensi.

Pengujian berikutnya, Penulis ingin mencari sebuah file dengan menuliskan nama file berupa bilangan tanpa ekstensinya. Berikut ini adalah hasil pengujiannya :

Gambar 5.12. Pengujian Untuk Mencari Nama File Berupa Bilangan Tanpa Ekstensi

Pada pengujian di atas peneliti melakukan pencarian dengan menuliskan nama file berupa bilangan ( 89 ) tetapi tanpa ekstensi dan aplikasi ini berhasil


(77)

Gambar 5.13. Hasil Dekompresi File “testing.rar”

Gambar di atas menunjukkan bahwa memang benar adanya kalau nama

file “89” ada di file kompresi “testing.rar”. Dan menunjukkan bahwa aplikasi ini mampu mencari nama file berupa bilangan tanpa ekstensi dapat dilihat pada Gambar 5.13. di atas.

5.1.6. Pengujian Aplikasi Dengan Nama File Berupa Bilangan Disertai Dengan Tanda Baca.

Pengujian berikutnya, Penulis mencari file dengan menuliskan nama file

berupa bilangan disertai dengan tanda baca misalnya ?, “, & dan lain sebagainya. Berikut ini adalah hasil pengujiannya :


(78)

Gambar 5.14. Pengujian Untuk Mencari Nama File Berupa Bilangan Di Sertai Dengan Tanda Baca.

Dilakukan pencarian nama file ( 7.1 ) berupa bilangan disertai dengan tanda baca dan aplikasi pun mampu mendeteksi folder tersebut dapat dilihat pada Gambar 5.14. di atas.


(79)

Gambar 5.15. Hasil Dekompresi File “koko.rar”

Gambar di atas menunjukkan bahwa memang benar adanya kalau nama

file “7.1.doc” ada di file kompresi “koko.rar”. Dan menunjukkan bahwa aplikasi ini mampu mencari nama file berupa bilangan di sertai dengan tanda baca dapat dilihat pada Gambar 5.15. di atas.

5.1.7. Pengujian Aplikasi Dengan Nama File Berupa Bilangan Disertai Dengan Tanda Spasi.

Pengujian berikutnya, peneliti ingin mencari file dengan menuliskan nama

file berupa bilangan disertai dengan tanda spasi. Berikut ini adalah hasil pengujiannya:


(80)

Gambar 5.16. Pengujian Untuk Mencari Nama File Berupa Bilangan Di Sertai Dengan Spasi.

Dilakukan pencarian nama file dengan menuliskan spasi terlebih dahulu kemudian nama file berupa bilangan ( 17 ) dan aplikasi pun mampu mendeteksi


(81)

Gambar 5.17. Hasil Dekompresi File “Xcode_magazine_17.zip”

Bahwa memang benar adanya kalau nama file “ 17” ada di folder

xcode_magazine_17.zip. Dan menunjukkan bahwa aplikasi ini mampu mencari nama file berupa bilangan di sertai dengan tanda spasi dapat dilihat pada Gambar 5.17. di atas.

5.1.8. Pengujian Aplikasi Dengan Nama File Berupa Bilangan Disertai Dengan Kombinasi Huruf.

Pengujian berikutnya, Penulis ingin mencari file dengan menuliskan nama

file berupa bilangan disertai dengan kombinasi huruf. Berikut ini adalah hasil pengujiannya :


(1)

89

Gambar 5.38. Hasil Dekompresi File “ALL_ABOUT_TA.rar”

Sebelum dilakukan pencarian terlebih dahulu kita dekompres file kompresi “ALL_ABOUT_TA.rar”. Di dalam file kompresi “ALL_ABOUT_TA.rar” terdapat 10 file dapat dilihat pada Gambar 5.38. di atas.


(2)

Peneliti menutup file kompresi “ALL_ABOUT_TA.rar” yang telah di dekompres tadi. Setelah itu peneliti ingin mencari file “Pengajuan” yang ada di dalam file kompresi “ALL_ABOUT_TA.rar”. Dan hasil nya menu “search” pada win 7 tidak dapat menemukannya dapat dilihat pada Gambar 5.39. di atas.

5.2.3. Pencarian File Kompresi “.Rar dan .Zip” Secara Bersama Dengan Menu Search Win 7

Gambar 5.40. Hasil Pencarian File Kompresi “.Zip dan .Rar”

Dilakukan pencarian file kompresi “.Rar dan .zip” secara bersamaan di menu search pada win 7. Dan menu search win 7 tidak dapat menampilkan file kompresi “.Rar dan .zip” dapat dilihat pada Gambar 5.40. di atas.


(3)

91

5.24. Pengujian Aplikasi Utilitas Pencarian Nama File Terkompresi

Gambar 5.41. Hasil Pencarian Nama File Terkompresi “m”

Pada aplikasi yang di buat oleh peneliti dapat mencarin nama file

terkompresi tanpa perlu melakukan proses dekompresi terlebih dahulu. Pada Gambar diatas di cari sebuah file “m” di folder E:/E-Book dan aplikasi ini mendeteksi semua file kompresi zip dan rar secara bersama. Diantara file zip dan rar yang sudah terkumpul di file list box dicari file “m” dan aplikasi pun berhasil menemukannya dapat dilihat pada Gambar 5.41. di atas.


(4)

6.1 Kesimpulan

Berdasarkan hasil pengujian pada aplikasi utilitas pencarian file dalam file

terkompresi dalam tugas akhir ini, dapat diambil kesimpulan sebagai berikut : Dari hasil uji coba yang dilakukan peneliti sebanyak 15 kali percobaan dan 6 kali perbandingan. Ternyata aplikasi ini berhasil mencari file dalam file yang sudah terkompresi. Peneliti dapat melihat tingkat keberhasilan pencarian 100 %. Karena semua file yang di cari peneliti pada aplikasi ini berhasil di temukan. Dari hasil perbandingan yang telah di lakukan peneliti antara menu search dengan aplikasi yang dibuat peneliti. Didapatkan hasil yaitu pada menu search di win 7 dapat melakukan pencarian file kompresi “.Zip dan .Rar” hanya dengan melakukan 1 klik tombol saja dan itu bisa dilakukan pada pilihan all drive, selected drive, dan pada satu folder saja. Sedangkan pada aplikasi yang dibuat peneliti harus melakukan beberapa prosedur terlebih dahulu dan itu pun hanya bisa dilakukan pada satu folder saja. Tetapi kelebihan pada aplikasi ini yaitu aplikasi dapat mencari file kompresi “.Zip dan .Rar” secara bersama’an dan ditampilkan dalam multiple file. Dan juga dapat mencari nama file terkompresi dalam file kompresi “.Zip dan Rar”. Sedangkan menu search pada win 7 hanya dapat mencari satu file kompresi saja dan tidak dapat dilakukan secara bersama’an Dengan kecepatan pencarian yang cepat. Karena pada aplikasi ini, peneliti menggunakan algoritma KMP ( Knuth Morris Pratt ) sebagai algoritma


(5)

93

pinggiran. Dan fungsi pinggiran tersebut digunakan untuk melakukan jumlah pergeseran pattern terhadap teks.

Algoritma KMP menggunakan fungsi pinggiran tersebut untuk membuat pergeseran yang lebih jauh, tidak hanya satu karakter seperti yang di lakukan pada algoritma Brute Force. Dengan algoritma KMP waktu pencarian dapat di kurangi secara signifikan. Sehingga lebih cepat dari pada menggunakan algoritma Brute Force.

6.2. Saran

Sebagai pertimbangan dalam pengembangan aplikasi ini dalam penelitian berikutnya, penulis menyampaikan saran-saran sebagai berikut :

a. Pengenalan format file kompresi tidak hanya .rar dan .zip saja, melainkan format kompresi lainnya, sepeti .tar, tarz, .cab dan sebagainya, sehingga lebih optimal dan luas pemakaiannya.

b. Aplikasi pencarian file berikutnya juga dapat dikembangkan agar dapat

berjalan dalam perangkat mobile, mengingat semakin meluasnya


(6)

Baizal,

Abdurahman

. 2011. “String Matching”. URL :

http://www.stttelkom.ac.id. ( Di akses tanggal 25 Oktober 2011, jam 20.07 WIB. )

Barbara Haley Wixom, Alan Dennis. 2003. “System Analysis and Design”. John Wiley & Sons. New York. edisi kedua.

Campos, Arturo. 1999. “LZ77”. URL :

http://www.arturocampos.com/ac_lz77.html. ( Di akses tanggal 05 September 2011, 20.30 WIB. )

Canales, Arrul. 2009. “Kompresi Data”. URL :

http://id.wikipedia.org/wiki/Kompresi_data. ( Di akses tanggal 15 Nopember 2011, 19.39 WIB. )

Leman. 1998. “Metodologi Pengembangan Sistem Informasi”. PT Elex

Media Komputindo. Jakarta.

Nugroho, Adi. 2012. “Flow Map”. URL : http://id.wikipedia.org/wiki/flow map. ( Di akses tanggal 10 Nopember 2011, 19.39 WIB. )

Nugroho, Adi. 2005. “Pengantar Perancangan Sistem”. Bandung.

Informatika.

Pressman, Roger S. 1982. “Software Engineering – A practitioner’s

Approach”. edisi kelima. Mc Graw Hill. New York.

Redyka. 2010. “Zip”. URL : http://en.wikipedia.org/wiki/Zip. ( Di akses tanggal 25 Oktober 2011 jam 20.07 WIB. )

Munir, Rinaldi. 2012. “Strategi Algoritmik”. /IF2251/BahanKuliah ke-15.doc. ( Di akses tanggal 25 Mei 2012 jam 20.07 WIB. )

Usman.2012.“EmbarcaderoDelphi”.URL: