• Tidak ada hasil yang ditemukan

APLIKASI UTILITAS PENCARI NAMA FILE TERKOMPRESI TANPA PROSES DEKOMPRESI.

N/A
N/A
Protected

Academic year: 2017

Membagikan "APLIKASI UTILITAS PENCARI NAMA FILE TERKOMPRESI TANPA PROSES DEKOMPRESI."

Copied!
105
0
0

Teks penuh

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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.

(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

(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 = x1x2xk , 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 =

x1x2xk – 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

(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

(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

(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

(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,

(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

(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

(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

(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.

(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,

(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

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

(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

(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

(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

(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;

(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;

(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;

(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

(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

Gambar

Gambar 2.2. Tampilan Embarcadero Delphi 2010
Gambar 3.1. Desain Penelitian
Gambar 3.2. Decomposite Diagram
Gambar 3.4. DFD Level 1
+7

Referensi

Dokumen terkait

Berikut ini adalah perancangan antarmuka input nama single player dari game Autonomic Drugames yang dapat dilihat pada gambar 3.15.

dengan tipe bebas (dapat berupa file gambar, dokumen, text, media dan sebagainya) yang hendak disembunyikan ke dalam citra digital, dengan menggabungkan kedua file

Jenis parameter input dalam Wanulcas.stm dibagi tiga yaitu yang berupa daftar, sliders, dan grafik seperti dapat dilihat pada Gambar 5, yang berupa daftar contohnya adalah

Dan mengacu pada gambar 4-7 dapat dilihat bahwa aplikasi dapat memberikan output yang berupa informasi alternatif atau solusi dalam memilih angkutan umum lyn dan bis

Activity Diagram untuk user melakukan daftar user dapat dilihat pada gambar 4 dan untuk proses user melengkapi keterangan group pada gambar 5. Activity Diagram

Dalam penelitian ini, hasil adsorpsi porous carbon yang telah dikarbonisasi dengan berbagai variasi waktu dapat dilihat pada gambar 5. Kemampuan adsorpsi benzena semakin

Rancangan form menu data supplier dapat dilihat pada gambar 4.10 di bawah ini: Gambar 4.10 Form Menu Data Supplier 4.4.5 Form Transaksi Pembelian Form transaksi pembelian berupa

40 Adapaun diagram dari Activity Diagram Ekstraksi dapat dilihat pada gambar 3.8 dibawah ini Sistem User Menekan tombol Open File Teks Menampilkan jendela Open File Menekan Tombol