5
BAB 2
TINJAUAN PUSTAKA
Pada bab ini penulis memaparkan teori-teori ilmiah yang didapat dari metode pencarian fakta yang digunakan untuk mendukung penulisan skripsi ini dan sebagai dasar pengembangan sistem sehingga dapat diimplementasikan dengan baik dan benar.
2.1. Kompresi Data Kompresi data adalah proses mengubah sebuah aliran data input menjadi aliran data baru yang memiliki ukuran lebih kecil. Aliran yang dimaksud adalah berupa file ataupun buffer dalam memori. Kebutuhan terhadap kompresi data dipengaruhi oleh dua alasan, yaitu kecenderungan manusia untuk mengumpulkan data dan kebutuhan terhadap proses transfer data yang cepat. Karena itu metode-metode untuk mengkompresi data semakin berkembang (Salomon, 2004). Sering terjadi mispersepsi mengenai data dan informasi, padahal data dan informasi adalah dua hal yang berbeda. Pada data terkandung suatu informasi. Namun tidak semua bagian data terkait dengan informasi tersebut atau pada suatu data terdapat bagian-bagian data yang berulang untuk mewakili informasi yang sama. Bagian data yang tidak terkait atau bagian data yang berulang tersebut disebut dengan data yang berlebihan (redudancy data). Tujuan daripada kompresi data tidak lain adalah untuk mengurangi data berlebihan tersebut sehingga ukuran data menjadi lebih kecil dan lebih ringan dalam proses transmisi (Putra, 2010). Di dalam penelitian ini, file yang akan diteliti berfokus pada jenis file teks, dengan ekstensi txt dan doc. File teks (flat file) adalah salah satu jenis file komputer yang tersusun dalam suatu urutan baris data teks biasanya diwakili oleh 8 bit kode ASCII (Solihin, 2013).
Universitas Sumatera Utara
6
2.1.1. Teknik Kompresi Data Berdasarkan kemungkinan data yang telah dikompresi dapat dikembalikan ke data sebelum dikompresi atau data aslinya, teknik kompresi data dikelompokkan menjadi dua bagian yaitu kompresi data lossless dan kompresi data Lossy (Pu, 2006) : 1.
Kompresi Data Losless
Kompresi data lossless adalah teknik kompresi data dimana data yang telah dikompresi dapat dikembalikan ke data aslinya dengan tidak mengurangi informasi yang ada pada data tersebut. Dalam teknik kompresi ini, pada saat proses kompresi dihasilkan sebuah data yang berbeda dengan data aslinya. Karena setiap bit yang terdapat pada data di-encode sehingga dihasilkan bit yang baru yang lebih pendek. Data tersebut dikembalikan ke data aslinya (data sebelum dikompresi) pada saat proses dekompresi. Teknik kompresi lossless digunakan pada data yang tergolong penting sehingga tidak boleh ada banyak atau sebagian informasi yang hilang. Seperti misalnya pada file teks, jika terdapat sedikit saja perubahan pada data itu maka akan sangat mudah kelihatan.
Gambar 2.1. Kompresi Lossless (Pu, 2006)
Contoh aplikasi lossles compression yaitu WINRAR dan WINZIP. Contoh format file lossles compression: *.zip, *.rar, document file (*.doc, *.xls, *.ppt), file executable (*.exe)
Universitas Sumatera Utara
7
2.
Kompresi Data Lossy
Kompresi data Lossy adalah teknik kompresi data dimana data mengalami sedikit atau banyak kehilangan pada saat proses kompresi.Sama seperti data aslinya hanya saja ada perubahan kerapatan ataupun resolusi pada data tersebut. Oleh karena itu sangat kecil kemungkinan dan bahkan tidak akan pernah bisa data yang telah dikompresi dengan teknik kompresi Lossy dapat dikembalikan seperti data sebelum dikompresi atau data aslinya. Perubahan yang terjadi pada data pada saat proses kompresi tidaklah terlalu kelihatan. Teknik kompresi ini biasanya digunakan pada data berupa gambar, suara dan video. Karena pada data tersebutlah kehilangan akan informasi yang detail itu mungkin tidak dapat dirasakan oleh sistem kerja indera penglihatan dan pendengaran manusia. Contoh algoritma kompresi Lossy adalah Fractal Compression, Wavelet Compression, Wyner-Ziv Coding (WZC), dan lain-lain.
Gambar 2.2. Ilustrasi Kompresi Lossy(Sayood, 2006)
Contoh aplikasi lossy compression : aplikasi pengkompres suara (mp3 compressor),ambar (adobe photoshop, paint), video (xilisoft). Contoh format file lossy compression yaitu MP3, JPEG, MPEG
2.1.2. Pengukuran Kinerja Kompresi Data Pada suatu teknik yang digunakan dalam proses kompresi data terdapat beberapafaktor atau variabel yang biasa digunakan untuk mengukur kualitas dari suatu teknikkompresi data tersebut, yaitu (Salomon & Motta, 2010):
Universitas Sumatera Utara
8
1.
Ratio of Compression (Rc) Ratio of Compression (Rc) adalah perbandingan antara ukuran data sebelum dikompresi dengan ukuran data setelah dikompresi.
=
2.
ℎ
Compression Ratio (Cr) Compression Ratio (Cr) adalah persentasi besar data yang telah dikompresi yang didapat dari hasil perbandingan antara ukuran data setelah dikompresi dengan ukuran data sebelum dikompresi.
=
3.
ℎ
100 %
Space Savings (SS) Space Savings (SS) adalah persentase selisih antara data yang belum dikompresi dengan besar data yang dikompresi.
= 100 % − 4.
Waktu kompresi dan dekompresi Waktu kompresi dan dekompresi adalah waktu yang dibutuhkan untuk melakukan proses kompresi dan dekompresi. Semakin kecil waktu yang diperoleh maka semakin efisien metode yang digunakan dalam proses kompresi dan dekompresi itu.
2.2. Text File Text file (disebut juga dengan flat file) adalah salah satu jenis file komputer yang tersusun dalam suatu urutan baris data teks biasanya diwakili oleh 8 bit kodeAmerican Standard Code for Information Interchange (ASCII) dan Extended Binary Coded
Universitas Sumatera Utara
9
Decimal Interchange Code (EBCDIC) merupakan cikal bakal dari set karakter lainnya. ASCII (American Standard Code for Information Interchange) merupakan suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat universal. ASCII digunakan oleh komputer dan alat komunikasi lain untuk menunjukkan teks. Kode ASCII memiliki komposisi bilangan biner sebanyak 8 bit, dimulai dari 00000000 hingga 11111111. Total kombinasi yang dihasilkan sebanyak 256, dimulai dari kode 0 hingga 255 dalam sistem bilangan desimal. Format file teks yang akan digunakan dalam penelitian ini adalah : 1.
Format data teks
Format data teks merupakan format teks yang digunakan untuk menyimpan huruf, angka, karakter, kontrol (tabulasi, pindah baris, dan sebagainya) atau simbol-simbol lain yang biasa digunakan dalam tulisan seperti titik, koma, tanda petik, dan sebagainya. Satu huruf, angka, karakter, kontrol atau simbol pada arsip teks memakan tempat satu byte. Berbeda dengan jenis teks terformat yang satu huruf saja dapat memakan tempat beberapa byte untuk menyimpan format dari huruf tersebut seperti font, ukuran, tebal atau tidak dan sebagainya. Kelebihan dari format data teks ini adalah ukuran datanya yang kecil karena tiadanya fitur untuk memformat tampilan teks. Saat ini perangkat lunak yang paling banyak digunakan untuk memanipulasi format data ini adalah Notepad. (Pramilo, 2008)
2.
Format data dokumen
Doc merupakan ekstensi arsip dokumen perangkat lunak Microsoft Word yang paling banyak digunakan dalam penulisan laporan, makalah dan sebagainya. Doc merupakan jenis teks terformat yang tidak hanya dapat mengatur tampilan teks seperti styles (font, ukuran huruf dan sebagainya), namun juga dapat menyisipkan gambar. Kekurangan format teks dokumen ini terletak pada ukuran datanya yang besar. (Pramilo, 2008)
Universitas Sumatera Utara
10
2.3. Algoritma Inverted Elias Gamma Inverted Elias Gamma adalah kebalikan dari Elias Gamma Code. Elias Gamma Code adalah salah satu kode yang universal yang dipelopori oleh Peter Elias yang digunakan untuk encode dan decode bilangan bulat positif n bahkan dalam kasus di mana integer terbesar yang tidak diketahui sebelumnya (Salomon, 2007). Juga, kode ini tumbuh perlahan-lahan, untuk itu baik untuk mengompresi data integer dimana jumlah bilangan bulat kecil lebih besar maka bilangan bulat besar.Adapun aturan untuk kode nomor dengan menggunakan kodeEliasGammaadalah sebagai berikut (Salomon, 2007) : 1.
Menulis dalam biner.
2.
Kurangi 1 dari jumlah bit yang ditulis dalam langkah 1 dan tambahkan bahwa banyak angka nol.
Ada cara yang setara dengan lengkah di atas (Salomon, 2007): 1.
Pisahkan integer ke dalam kekuasaan tertinggi 2 mengandung (2N) dan N digit biner yang tersisah dari integer.
2.
Encode N di unary, yaitu sebagai N nol diikuti oleh satu-satu
3.
Menambahkan N digit biner yang tersisa untuk representasi ini N.
Tabel 2.1 Tabel Kode Elias Gamma (Salomon, 2007) 1 = 20 + 0 = 1
10 = 23 + 2 = 0001010
2 = 21 + 0 = 010
11 = 23 + 3 = 0001011
3 = 21 + 0 = 011
12 = 23 + 4 = 0001010
4 = 22 + 0 = 00100
13 = 23 + 5 = 0001101
5 = 22 + 1 = 00101
14 = 23 + 6 = 0001010
6 = 22 + 2 = 00110
15 = 23 + 7 = 0001111
7 = 22 + 3 = 00111
16 = 24 + 0 = 00001000
8 = 23 + 0 = 0001000 17 = 24 + 1 = 00001001 9 = 23 + 1 = 0001001 18 = 24 + 2 = 00001010
Maka, table kode Inverted Elias Gamma sebagai berikut :
Universitas Sumatera Utara
11
Tabel 2.2 Tabel KodeInverted Elias Gamma (Salomon, 2007) 1 = 20 + 0 = 0
10 = 23 + 2 = 1110101
2 = 21 + 0 = 101
11 = 23 + 3 = 1110100
3 = 21 + 0 = 100
12 = 23 + 4 = 1110101
4 = 22 + 0 = 11011
13 = 23 + 5 = 1110010
5 = 22 + 1 = 11010
14 = 23 + 6 = 1110101
6 = 22 + 2 = 11001
15 = 23 + 7 = 1110000
7 = 22 + 3 = 11000
16 = 24 + 0 = 11110111
8 = 23 + 0 = 1110111 17 = 24 + 1 = 11110110 9 = 23 + 1 = 1110110 18 = 24 + 2 = 11110101
Berikut adalah langkah-langkah untuk memecahkan kode bilangan bulat berdasarkan algoritma Elias Gamma Kode (Salomon, 2007): 1.
Bacalah bit string sampai Anda mencapai pertama 1. Panggil 1 sebagai p dan menyebut jumlah ini nol dengan n.
2.
Lanjutkan membaca setelah p dari n.
3.
Ganti kode dengan karakter menurut tabel Elias Gamma Code.
2.4. Algoritma Capocelli Algoritma Capocelli ini diusulkan oleh Renato Capocelli adalah awalan, lengkap, universal, dan juga synchronizable Ini bukan kode Fibonacci umum, tetapi terkait dengan kode C1 dan C2 dari Apostolico dan Fraenkel (Salomon, 2007). Kode tergantung pada parameter r dan dilambangkan dengan S (r + 1, 01R). Setelah r telah dipilih, dua bagian codeword dibangun dengan 01R akhiran dan awalan yang adalah string biner yang tidak mengandung akhiran. Dengan demikian jika r = 2, akhiran adalah 011 dan prefiks adalah semua string biner, dimulai dengan string kosong, yang tidak mengandung 011. Beberapa contoh dari S (3, 011) dan sangat mudah untuk melihat bagaimana awalan adalah string kosong, 0, 1, 00, 01, dan sebagainya, tetapi mereka termasuk tidak ada string dengan 011. The codeword dari N = 9 adalah 010 | 011, tapi codeword dari N = 10 memiliki awalan 100 dan tidak 011, sehingga 100 |
Universitas Sumatera Utara
12
011. Secara umum codeword x. . . x0101y. . . y | 011 akan diikuti oleh x. . . x1000y. . . y | 011 bukan oleh x. . . x0110y. . . y | 011. codeword tersebut memiliki baik bentuk 0β | 011 (di mana β tidak berisi dua berturut-turut 1) atau bentuk 1γ | 011 (di mana γ tidak mengandung 011). Misalnya, hanya 12 dari 16 prefiks 4-bit dapat digunakan oleh kode ini, karena empat prefiks 0011, 0110, 0111, dan 1011 mengandung pola 011. Secara umum, jumlah codeword panjang N + 3 di S (3, 011) adalah FN + 3 - 1. Untuk N = 4 (codeword dari 4-bit awalan dan 3-bit akhiran), jumlah codeword adalah F4 + 3 -1 = F7 - 1 = 12 (Salomon, 2007).
Tabel 2.3. Kode S ( 3 , 011 ) untuk Integer N dan Strings BS (Salomon, 2007). n
S(3,011)
BS
0
011
0
1
0011
1
2
1011
00
3
00011
01
4
01011
10
5
10011
11
6
11011
000
7
000011
001
8
001011
010
9
010011
011
10
100011
100
11
101011
101
12
110011
110
13
111011
111
2.5. Visual Basic .NET Visual Basic .NET adalah sebuah alat untuk mengembangkan dan membangun aplikasi yang bergerak di atas sistem .NET Framework, dengan menggunakan bahasa
Universitas Sumatera Utara
13
BASIC. Dengan menggunakan alat ini, para programmer dapat membangun aplikasi Windows Forms, Aplikasi web berbasis ASP.NET, dan juga aplikasi command-line. Alat ini dapat diperoleh secara terpisah dari beberapa produk lainnya (seperti Microsoft Visual C++, Visual C#, atau Visual J#), atau juga dapat diperoleh secara terpadu dalam Microsoft Visual Studio .NET. Bahasa Visual Basic .NET sendiri menganut paradigma bahasa pemrograman berorientasi objek yang dapat dilihat sebagai
evolusi
dari
Microsoft
Visual
Basic
versi
sebelumnya
yang
diimplementasikan di atas .NET Framework. Peluncurannya mengundang kontroversi, mengingat banyak sekali perubahan yang dilakukan oleh Microsoft, dan versi baru ini tidak kompatibel dengan versi terdahulu (Leong, 2006). VB.NET adalah salah satu bahasa pemrograman Komputer Tingkat Tinggi. Bahasa Pemrograman adalah perintah-perintah yang dimengerti oleh computer untuk melakukan tugas-tugas tertentu bahasa pemrograman VB.NET dikembangkan oleh Microsoft , Merupakan Salah Satu bahasa Pemrograman Yang Object Oriented Program(OOP) atau Pemrograman yang berorientasi pada Object. Kata “Visual” menunjukkan cara yang digunakan untuk membuat Graphical User Interface (GUI). Dengan Cara ini, kita tidak perlu lagi menuliskan instruksi pemrograman dalam kodekode baris hanya untuk membuat sebuah Desaign Form/Aplikasi. Tetapi dengan sangat mudah yakni kita cukup melakukan Drag and drop object-object yang akan kita gunakan. VB.Net dapat kita jadikan alat bantu untuk membuat berbagai macam program computer (Leong, 2006).
2.6. Unified Modeling Language (UML) Unified
Modeling
Language
(UML)
adalah
sebuah
“bahasa”
yang
telah
menjadistandar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem (Yasin, 2012). Semua jenis aplikasi piranti lunak dapat dimodelkan menggunakan UML.Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka UML lebih cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian, UML
Universitas Sumatera Utara
14
tetap dapat digunakan untuk modeling aplikasi procedural dalam VB atau C. Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntaxmendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady BoochOOD (ObjectOriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering). (Yasin, 2012) UML masih terus dikembangkan hingga saat ini. UML 2.5 merupakan versi terbaru yang dikeluarkan pada bulan Oktober 2012. Dalam penelitian ini penulis akan menggunakan 4 jenis UML, diantaranya:
1.
Use Case Diagram
Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana. Use case memiliki unsur aktor, sistem, use case, association, generalization. Aktor merupakan sebuah entitas manusia atau mesing yang berinteraksi dengan sistem untuk melakukan pekerjaanpekerjaan tertentu.(Yasin, 2012)
2.
Activity Diagram
Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Berbeda dengan usecase, activity menggambarkan proses yang berjalan. Unsur yang terdapat pada activity adalah initial node (lingkaran hitam), aktivitas (segiempat dengan sudut membulat), decision (belah ketupat), fork dan join (titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal), activit final (lingkaran hitam di dalam lingkaran kosong) (Yasin, 2012).
Universitas Sumatera Utara
15
3.
Sequence Diagram
Sequence diagram menggambarkan interaksi antarobjek di dalam dan di sekitar sistem berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri dari dimensi vertikal (waktu) dan dimensihorizontal (objek-objek yang terkait). Sequence diagram digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Unsur yang terdapat dalam sequence adalah aktor, lifeline vertikal, message, specification execution(Yasin, 2012).
4.
Class Diagram
Class diagram adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/property) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan objek besertahubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Dalam Class diagram terdapat tiga area pokok, yaitu Nama (dan stereotype), Atribut, dan Metoda (Yasin, 2012).
Universitas Sumatera Utara