analisis dan implementasi watermarking dengan …yang digunakan pada proses penyisipan dan ekstraksi...

178
i ANALISIS DAN IMPLEMENTASI WATERMARKING DENGAN ALGORITMA AES UNTUK PEMBERIAN DATA HAK CIPTA PADA FILE AUDIO Skripsi Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer Oleh : Muhamad Soleh 103091029579 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 2010 M/1431 H

Upload: others

Post on 24-Jan-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

i

ANALISIS DAN IMPLEMENTASI WATERMARKING

DENGAN ALGORITMA AES UNTUK PEMBERIAN DATA

HAK CIPTA PADA FILE AUDIO Skripsi

Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer

Oleh :

Muhamad Soleh

103091029579

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA

2010 M/1431 H

ii

ANALISIS DAN IMPLEMENTASI WATERMARKING

DENGAN ALGORITMA AES UNTUK PEMBERIAN DATA

HAK CIPTA PADA FILE AUDIO

Skripsi

Sebagai Salah Satu Syarat untuk Memperoleh

Gelar Sarjana Komputer

Pada Fakultas Sains dan Teknologi

Universitas Islam Negeri Syarif Hidayatullah Jakarta

Oleh:

Muhamad Soleh

103091029579

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH

JAKARTA

2010 M/1431 H

vi

ABSTRAK

Muhamad Soleh – 103091029579, Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio, dibimbing oleh Yusuf Durrachman, M.Sc, MIT dan Arini, MT.

Watermarking pada file audio telah menjadi fokus perhatian pada masa sekarang ini. Hal ini berhubungan dengan transmisi data yang lebih cepat melalui Internet, yang telah memungkinkan pertumbuhan file audio digital yang tidak sah. Watermarking memberikan kemampuan untuk melindungi hak cipta terhadap produk file audio. Yang menjadi masalah watermarking pada audio terletak pada kualitas file audio dan watermark yang disisipkan harus tetap ada setelah mengalami berbagai operasi file audio yang dapat merusak file audio tersebut. Penelitian ini membahas mengenai watermarking pada file audio dengan algoritma AES (Advanced Encryption Standard) – Rinjdael pada prosedur penyisipan dan ekstraksi yang bertujuan untuk proteksi. Metode watermarking yang digunakan pada proses penyisipan dan ekstraksi adalah metode low bit coding. Transformasi dari dan ke domain frekuensi pada proses penyisipan dan ekstraksi tidak dilakukan. Hasil pengujian menunjukkan bahwa kualitas file audio setelah disisipi data menunjukkan hasil tidak pasti dan data yang disisipkan kedalam sinyal audio sulit dideteksi oleh sistem pendengaran manusia.

Kata Kunci : Watermarking, AES (Advanced Encryption Standard), low bit coding, file audio, hak cipta

vii

KATA PENGANTAR

Dengan mengucapkan rasa syukur kehadirat Allah SWT, atas rahmat dan

karunia-Nya penulis dapat menyelesaikan laporan Tugas Akhir ini dengan judul

“Analisis dan Implementasi Watermarking dengan Algoritma AES untuk

Pemberian Data Hak Cipta pada File Audio”, yang sekaligus merupakan salah

satu syarat dalam menyelesaikan program studi Strata Satu (S1) pada jurusan

Teknik Informatika, Unicersitas Islam Negeri (UIN) Syarif Hidayatullah Jakarta.

Berhasilnya penyusunan laporan Tugas Akhir ini tidak terlepas dari semua

pihak yang telah memberikan bimbingan, dukungan serta dorongan semangat

kepada penulis. Karena itu pada kesempatan ini penulis menyampaikan rasa

terima kasih kepada :

1. Dr. Syopiansyah Jaya Putra, M.Sis, selaku Dekan Fakultas Sains dan

Teknologi Universitas Islam Negeri (UIN) Jakarta.

2. Yusuf Durrachman, M.Sc, MIT, selaku Ketua Program Studi Teknik

Informatika dan Viva Arifin, MMSi, selaku Sekretaris Program Studi

Teknik Informatika.

3. Yusuf Durrachman, M.Sc, MIT, dan Arini, MT, selaku dosen pembimbing

I dan II, yang telah meluangkan perhatian dan waktu untuk membimbing

dan mendidik dalam penyusunan skripsi ini.

4. Bapak dan Ibu dosen Jurusan Teknik Informatika Universitas Islam Negeri

Syarif Hidayatullah Jakarta, yang telah memberikan ilmunya kepada

viii

penulis selama kulia di Universitas Islam Negeri Syarif Hidayatullah

Jakarta.

5. Seluruh staff Jurusan TI/SI dan staff Akademik FST yang telah membantu

peneliti dalam masa perkuliahan.

Penulis menyadari bahwa penulisan skripsi ini masih jauh dari sempurna,

oleh karena itu saran dan kritik yang membangun sangat penulis harapkan guna

penyempurnaan penulisan yang akan datang.

Akhir kata penulis mempersembahkan skripsi ini dengan segala kelebihan

dan kekurangannya, semoga dapat bermanfaat bagi kita semua, amien

Ciputat, September 2010

Muhamad Soleh

ix

LEMBAR PERSEMBAHAN

Betapa saya sangat menyadari bahwa hidup ini adalah perjuangan yang

bahan bakarnya adalah pengorbanan, ketulusan, kearifan, keistikomahan dan

keikhlasan. Skripsi ini adalah salah satu bagian dalam perjuangan hidup saya,

dimana tempat saya meletakan beberapa harapan dan citi-cita dalam hidup. Tidak

peduli seberapa banyak orang meragukan kemampuan saya untuk menyelesaikan

skripsi ini. Namun saya sangat yakin dan percaya tanpa seizin Allah SWT, skripsi

ini tidak akan terselesaikan dengan baik, karena Dialah yang Maha Berkehendak

dan Maha Memiliki segala kekuatan untuk menentukan sesuatu.

Dalam proses penyusunan skripsi ini banyak sekali masukan, pengalaman

serta motivasi yang menuntunku menuju proses pendewasaan berfikir dan

bertingkah laku. Alhamdulillah dan terima kasih Aku ucapkan kepada semua

pihak yang telah menjadi perantara Allah SWT, agar Aku terus bisa merasakan

karunia-Nya itu, diantaranya:

1. Ayahanda H. Asmat, Ibunda Hj. Taslimah, serta kakak-kakak yang tak

henti-hentinya memberikan dukungan baik moril maupun materil bagi

peneliti dalam menjalani hidup ini.

2. My Computer yang telah menemaniku dan menghiburku dalam

penyusunan skripsi ini, sampai selesainya skripsi ini.

3. Keluarga besar Teknik Informatika kelas C angkatan 2003, yang telah

melewati waktu bersama, terimakasih atas saran-saran serta dukungan

yang tidak pernah disadari menjadi tambahan semangat untuk penulis.

x

4. Andi, Ambon, Ardi ,Dimaz dan Yuni, yang telah memberikan banyak

fasilitas serta kemudahan, fasilitas dari kalian jadi suatu semangat

tersendiri untuk penulis.

5. Anwar, Iswan, Lukman, Oman, Rizki, Tri, Wuri dan teman-teman

seperjuangan yang telah memberikan banyak informasi dan telah bersedia

meluangkan waktu untuk berdiskusi dan selalu memberi penulis inspirasi

dan dukungan.

6. Teman-teman dari Prodi Teknik Informatika angkatan 2003 kelas A, B &

D.

7. Nurlela (Alm) terimakasih atas dukungan yang menjadi tambahan

semangat untuk penulis.

8. Teman-teman dari masa SMU, Farhan, Hari, Rindu dan Sidqi, terimakasih

atas dukungan yang tidak pernah disadari menjadi tambahan semangat

untuk penulis.

Dan kepada seluruh pihak dan teman-teman peneliti yang lain yang

tidak bisa disebutkan namanya satu per satu yang telah memberi dukungan

kepada peneliti sehingga skripsi ini dapat terselesaikan dengan baik.

Semoga Allah membalas semua kebaikan dan ketulusan hati kalian.

Ciputat, September 2010

Muhamad Soleh

xi

DAFTAR ISI

Halaman Sampul ............................................................................................. i

Halaman Judul ................................................................................................. ii

Lembar Pengesahan Pembimbing ................................................................... iii

Lembar Pengesahan Ujian ............................................................................. iv

Lembar Pernyataan ......................................................................................... v

Abstrak ............................................................................................................ vi

Kata Pengantar ................................................................................................ vii

Lembar Persembahan ...................................................................................... ix

Daftar Isi ........................................................................................................ xi

Daftar Gambar ................................................................................................ xvi

Daftar Tabel ................................................................................................... xx

Daftar Lampiran .............................................................................................. xxi

Daftar Istilah .................................................................................................. xxii

BAB I PENDAHULUAN

1.1. Latar Belakang Masalah ....................................................... 1

1.2. Rumusan Masalah ................................................................. 3

1.3. Batasan Masalah ................................................................... 3

1.4. Tujuan Penelitian .................................................................. 4

1.5. Manfaat Penelitian ................................................................ 4

1.6. Metode Penelitian ................................................................ 5

1.7. Sistematika Penulisan .......................................................... 6

xii

BAB II LANDASAN TEORI

2.1. Pengertian Analisis ................................................................. 8

2.2. Hak Cipta …………………………………………………….. 9

2.3. Watermarking ........................................................................ 9

2.3.1. Tujuan Penggunaan Watermarking ............................ 10

2.3.2. Karakteristik Watermarking ....................................... 11

2.3.3. Cara Kerja Watermarking ........................................... 12

2.3.4. Trade-Off dalam Watermarking ................................. 14

2.3.5. Metode Watermarking ................................................ 15

2.4. Wave Audio Format (WAV) ................................................ 18

2.5. Kriptografi ............................................................................. 19

2.5.1. Pengertian Kriptografi ................................................ 20

2.5.2. Istilah-istilah dalam kriptografi .................................. 21

2.5.3. Tujuan Kriptografi .................................................... 24

2.5.4. Kriptografi Kunci-Simetri dan Nirsinetri .................. 26

2.5.4.1. Kriptografi Kunci-Simetri ................................ 26

2.5.4.2. Kriptografi Kunci-Nirsimetri .......................... 27

2.6. Advanced Encryption Standard (AES) ................................ 28

2.6.1. Representasi Data ....................................................... 29

2.6.2. Algoritma AES ........................................................... 31

2.6.2.1. Enkripsi ........................................................... 31

2.6.2.1.1. SubBytes ........................................... 32

xiii

2.6.2.1.2. ShiftRows .......................................... 33

2.6.2.1.3. MixColumns ..................................... 34

2.6.2.1.4. AddRoundKey ................................... 35

2.6.2.2. Dekripsi ........................................................... 35

2.6.2.2.1. InvShiftRows ..................................... 36

2.6.2.2.2. InvSubBytes ...................................... 37

2.6.2.2.3. InvMixColumns ................................ 37

2.6.2.2.4. Inverse AddRoundKey ...................... 38

2.6.2.3. Ekspansi Kunci ................................................ 38

2.7. Bahasa Pemrograman C# ..................................................... 40

2.7.1. Mengenal Struktur Program C# .................................. 43

2.7.2. Eksekusi Program ...................................................... 45

2.8. Perancangan Program ........................................................... 46

2.8.1. Rapid Application Development (RAD) .................... 46

2.8.2. State-Transition Diagram (Diagram) ......................... 48

2.8.3. Flow-Chart ................................................................. 49

2.9. Studi Literatur ...................................................................... 53

BAB III METODE PENELITIAN

3.1. Metode Pengumpulan Data .................................................. 58

3.1.1. Studi Pustaka .............................................................. 58

3.1.2. Studi Literatur ............................................................. 59

3.2. Metode pengembangan Sistem .............................................. 59

3.2.1. Fase Perencanaan Syarat-Syarat ................................. 60

xiv

3.2.2. Fase Perancangan ........................................................ 60

3.2.2.1. Perancangan Proses ........................................ 61

3.2.2.2. Perancangan Antar Muka Pemakai

(User Interface) ............................................... 62

3.2.3. Fase Konstruksi .......................................................... 62

3.2.4. Fase Pelaksanaan ........................................................ 63

BAB IV ANALISIS DAN PERANCANGAN

4.1. Fase Perencanaan Syarat-syarat ............................................ 65

4.2.1. Analisis Kebutuhan ..................................................... 65

4.2.2. Menentukan Tujuan .................................................... 66

4.2.3. Menentukan Syarat-syarat .......................................... 66

4.2. Fase Perancangan ................................................................... 68

4.2.1. Perancangan Proses .................................................... 68

4.2.1.1. Proses Penyisipan ............................................ 69

4.2.1.2. Proses Ekstraksi .............................................. 69

4.2.1.3. Flow-chart Proses Penyisipan

dan Ekstraksi Pesan ....................................... 70

4.2.2. Perancangan Antar Muka ........................................... 75

4.2.2.1. Perancangan Form Utama ............................. 75

4.2.2.2. Perancangan Form Ekstrak ........................... 79

4.2.2.3. Perancangan Form About .............................. 80

4.2.2.4. Perancangan Form Bantuan .......................... 81

4.3. Fase Konstruksi ..................................................................... 82

xv

4.4. Fase Pelaksanaan .................................................................... 83

4.4.1. Implementasi ................................................................ 83

4.4.1.1. Cara Penggunaan Aplikasi ............................ 83

4.4.1.2. Proses Penyisipan ......................................... 84

4.4.1.3. Proses Ekstraksi ............................................ 89

4.4.1.4. Form About ................................................... 93

4.4.1.5. Form Bantuan ............................................... 94

4.4.2. Pengujian Aplikasi ...................................................... 95

4.4.2.1. Pengujian Spesifikasi Sistem ........................ 98

4.4.2.2. Pengujian Ukuran File Terhadap File Carrier 104

4.4.2.3. Pengujian Ketahanan Data ............................ 105

4.4.3. Analisis Hasil Pengujian Aplikasi .............................. 108

4.4.3.1. Analisis Hasil Uji Spesifikasi Sistem ........... 108

4.4.3.2. Analisis Hasil Uji Ukuran File Terhadap

File Carrier .................................................... 111

4.4.3.3. Analisis Hasil Uji Ketahanan Data ............... 113

BAB V PENUTUP

5.1. Kesimpulan ............................................................................ 115

5.2. Saran ....................................................................................... 116

DAFTAR PUSTAKA ................................................................................... 117

LAMPIRAN

xvi

DAFTAR GAMBAR

Gambar 2.1 Proses pemberian Watermark pada dokumen ......................... 13

Gambar 2.2 Trade-Off dalam watermarking .............................................. 14

Gambar 2.3 Susunan bit .............................................................................. 18

Gambar 2.4 Cabang-cabang bidang ilmu kriptografi .................................. 24

Gambar 2.5 Skema kriptografi kunci-Simetri ............................................. 26

Gambar 2.6 Skema kriptografi kunci Nir-Simetri ....................................... 27

Gambar 2.7 Masukan dan keluaran Array State ......................................... 30

Gambar 2.8 Diagram alir proses enkripsi ................................................... 32

Gambar 2.9 Transformasi SubBytes ............................................................ 33

Gambar 2.10 Transformasi ShiftRows .......................................................... 34

Gambar 2.11 Diagram alir proses dekripsi ................................................... 36

Gambar 2.12 Transformasi InvShiftRows ..................................................... 36

Gambar 2.13 Pseudcode proses ekspansi kunci ............................................ 39

Gambar 2.14 Komposisi bahasa C# .............................................................. 41

Gambar 2.15 Tampilan visual C# ................................................................. 42

Gambar 2.16 Console Application ................................................................ 43

Gambar 2.17 Sintakis kode program ............................................................ 44

Gambar 2.18 Contoh penamaan fungsi class ................................................ 45

Gambar 2.19 Hasil eksekusi dari gambar 2.18 ............................................. 45

Gambar 2.20 Fase-fase RAD James Martin ................................................. 46

Gambar 2.21 Pengembangan sistem model RAD ......................................... 48

xvii

Gambar 2.22 State Transition Diagram yang disederhanakan untuk

untuk software foto kopi .......................................................... 49

Gambar 2.23 Contoh diagram alir ................................................................. 52

Gambar 3.1 Metodologi penelitian pengembangan aplikasi watermarking

dengan algoritma AES pada file audio .................................... 64

Gambar 4.1. Proses penyisipan ................................................................... 69

Gambar 4.2. Proses ekstraksi ........................................................................ 70

Gambar 4.3. Flow-chart proses penyisipan pesan ....................................... 71

Gambar 4.4. Flow-chart proses enkripsi dengan metode AES di sebelah

kiri dan flow-chart proses penyisipan pesan menggunakan

metode LSB di sebelah kanan .................................................. 72

Gambar 4.5. Flow-chart proses ekstraksi pesan ........................................... 73

Gambar 4.6. Flow-chart proses pengambilan pesan menggunakan

metode LSB di sebelah kiri dan flow-chart proses dekripsi

dengan metode AES di sebelah kanan ..................................... 74

Gambar 4.7. Rancangan form utama ........................................................... 77

Gambar 4.8a. State Transition Diagram ........................................................ 78

Gambar 4.8b. State Transition Diagram ........................................................ 79

Gambar 4.9. Rancangan form extract Message ........................................... 80

Gambar 4.10. Rancangan form about ............................................................ 81

Gambar 4.11. Rancangan form help .............................................................. 81

Gambar 4.12. Tampilan aplikasi AudioWater ............................................... 84

xviii

Gambar 4.13. Tampilan form utama .............................................................. 85

Gambar 4.14. Tampilan open file audio ........................................................ 86

Gambar 4.15. Tampilan save output .............................................................. 87

Gambar 4.16. Tampilan cari audio ................................................................. 90

Gambar 4.17. Tampilan form extract ............................................................ 90

Gambar 4.18. Tampilan file save output ........................................................ 91

Gambar 4.19. Tampilan form about ............................................................... 94

Gambar 4.20. Tampilan form help ................................................................. 95

Gambar 4.21. Spectrum suara file rocketrockers hari untukmu.wav asli ...... 98

Gambar 4.22. Spectrum suara file rocketrockers hari untukmu.wav

setelah disisipi pesan ................................................................ 99

Gambar 4.23. Spectrum suara hari untukmu.wav asli

dengan filter bandstop ............................................................... 99

Gambar 4.24. Spectrum suara hari untukmu.wav yang sudah disispi pesan

dengan filter bandstop .............................................................. 100

Gambar 4.25. Spectrum suara file rocketrockers hari untukmu.wav Asli ...... 100

Gambar 4.26. Spectrum suara file rocketrockers hari untukmu.wav

Setelah disisipi pesan .............................................................. 101

Gambar 4.27. Spectrum suara hari untukmu.wav Asli

dengan filter bandstop ............................................................... 101

Gambar 4.28. Spectrum suara hari untukmu.wav yang sudah disispi pesan

dengan filter bandstop ................................................................ 102

Gambar 4.29. Pesan asli .................................................................................. 103

xix

Gambar 4.30. Pesan asli yang telah di enkripsi pada file audio hari untukmu

asli ......................................................................................... 103

Gambar 4.31. File pesan yang diambil dari file audio hari untukmu ............. 103

Gambar 4.32. Tampilan aplikasi xilisoft ........................................................ 106

Gambar 4.33. Tampilan add file .................................................................... 106

Gambar 4.34. Tampilan menu list file profile ................................................ 107

Gambar 4.35. Tampilan proses encode .......................................................... 107

xx

DAFTAR TABEL

Tabel 2.1. Tiga buah versi AES .................................................................. 31

Tabel 2.2. Tabel S-box dalam transformasi Subbytes () .............................. 32

Tabel 2.3. Tabel Inverse S-box dalam transformasi InvSubbytes () ........... 37

Tabel 2.4. Bagian-bagian halaman kerja visual C# 2005 ............................ 42

Tabel 2.5. Perbandingan metode RAD, Sekuensial Linear, Prototype

dan Spiral .................................................................................... 46

Tabel 2.6. Simbol-simbol program flow-chart menurut ANSI

(American National Standard Institute) ...................................... 50

Tabel 2.7. Studi literature yang digunakan ................................................. 53

Tabel 4.1. Tabel spesifikasi file carrier yang akan diuji ............................ 97

Tabel 4.2. Pengujian proses dan kesesuaian data ........................................ 104

Tabel 4.3. Tabel uji ukuran file pesan terhadap file carrier ........................ 104

Tabel 4.4. Tabel uji ketahanan data ............................................................. 108

Tabel 4.5. Tabel hasil uji spesifikasi sistem ................................................ 109

Tabel 4.6. Tabel hasil uji Ukuran file pesan terhadap file carrier ............... 112

Tabel 4.7. Tabel hasil uji ketahanan data wav to mp3 ................................ 113

Tabel 4.8. Tabel hasil uji ketahanan data wav to aac .................................. 114

Tabel 4.9. Tabel hasil uji ketahanan data wav to midi ................................ 114

xxi

DAFTAR LAMPIRAN

LAMPIRAN I …………………..……………………………………………. 120

GRAFIK SINYAL SUARA WAV…………………..………………………. 120

LAMPIRAN II ………...……………..………………………..………..….... 124

FILE INPUT ………...……………..…………………………..………..….... 124

LAMPIRAN III ………...……………..………………………….……..….... 128

LISTING PROGRAM …………………………...……………..………….... 128

xxii

DAFTAR ISTILAH

Istilah Arti

Analisis

Penyelidikan terhadap suatu peristiwa (karangan, perbuatan, dan sebagainya) untuk mengetahui keadaan yang sebenarnya (sebab-musabab, duduk perkaranya, dan sebagainya.)

Algoritma Urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis

Data

Data adalah fakta berupa angka, karakter, symbol, gambar, tanda-tanda, isyarat, tulisan, suara, bunyi yang merepresentasikan keadaan sebenarnya yang selanjutnya digunakan sebagai masukan suatu Sistem Informasi.

Hak cipta

Hak eksklusif bagi pencipta atau penerima hak untuk mengumumkan atau memperbanyak ciptaannya atau memberikan izin untuk itu dengan tidak mengurangi pembatasan-pembatasan menurut peraturan perundang-undangan yang berlaku

Hardware

Perangkat keras (hardware) mengacu kepada obyek memungkinkan untuk disentuh, seperti disket, disk drive, layar monitor, keybord, printer, scanner dan chip.

Internet

Suatu jaringan komputer global terbentuk dari jaringan-jaringan komputer lokal dan regional, memungkinkan komunikasi data antar komputer-komputer yang terhubung ke jaringan tersebut.

Kualitas Tingkat baik buruknya atau taraf atau derajat sesuatu.

WAV merupakan format standar berkas audio yang dikembangkan Microsoft dan IBM.

PCM File wave yang tidak terkompresi, akibatnya ukuran file sangat besar jika file mempunyai durasi yang panjang.

Software

Perangkat Lunak (software) adalah perintah-perintah atau data komputer. Semua yang dapat disimpan secara elektronik adalah software. Software sering dibagi menjadi dua kaktegori: - Software sistem (system software): yang meliputi sistem operasi dan semua utilitas yang menjalankan komputer - Software aplikasi (application software): yang meliputi program yang digunakan oleh pengguna untuk melakukan pekerjaan tertentu, seperti pengolah kata (word processors), sehingga mudah untuk membuah

xxiii

dan menguji program-program sederhana. chipertext Bentuk pesan yang tidak dapat dibaca atau dipahami plaintext pesan yang dapat dibaca

1

BAB I

PENDAHULUAN

1.1. Latar Belakang Masalah

Perkembangan teknologi komputer saat ini telah membawa

perubahan bagi kita untuk melakukan akses serta mendistribusikan

berbagai informasi dalam bentuk format digital. Sehingga saat ini sering

disebut sebagai era digital, atau dunia digital. Dengan perkembangan

komputer digital dan perangkat-perangkat lainnya yang serba digital dalam

hal ini audio digital, telah membuat data digital semakin banyak

digunakan dan mudah diduplikasi. Sehingga seringkali menimbulkan

konflik. Konflik yang sering timbul adalah adanya sengketa antara

beberapa pihak yang mengklaim bahwa pihaknya adalah pemilik sah dari

sebuah audio digital.

Konflik tersebut yang kemudian menyebabkan timbulnya

kebutuhan untuk melindungi hak kepemilikan (hak cipta) pada file audio

dengan memberikan data hak cipta pada audio digital untuk keaslian

(otentikasi) pemilik. Perlindungan hak cipta dengan pengontentifikasian

dari isi data audio dapat digunakan untuk membuktikan keaslian dari suatu

file audio yang disimpan atau beredar masih asli atau sudah mengalami

perubahan. Jika isi data audio yang diekstraksi tidak sama dengan isi data

audio asli, maka dapat disimpulkan file audio sudah otentik lagi.

Keontentikan kepemilikan juga dapat ditunjukan karena hanya pemilik

2

yang mengetahui kunci untuk mengestrak atau membuka informasi yang

disisipkan.

Salah satu cara untuk mengatasi permasalahan diatas dapat

menggunakan teknik audio watermarking dengan kriptografi.

Watermarking atau tanda air bisa diartikan sebagai suatu teknik

penyembunyian data atau informasi “rahasia” ke dalam suatu data lainnya

dengan cara “menumpangi” (kadang disebut host data), tanpa orang lain

menyadari adanya data tambahan pada data host-nya (Doni Ariyus,

2007:92). Kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan

pesan dengan cara menyandikannya ke dalam bentuk yang tidak dapat

dimengerti lagi maknanya (Rinaldi Munir, 2006:2). Berdasarkan kunci

yang dipakainya untuk enkripsi dan dekripsi, kriptografi terbagi dua

diantaranya algoritma kriptografi modern yang memakai sistem algoritma

kunci-simetri, yaitu : DES (Data Encryption Standard), Blowfish, Triple-

DES, IDEA, Serpent, AES dan lain-lain, dan algoritma kriptografi modern

yang menggunakan algoritma kunci nirsimetri, yaitu RSA, Diffle Hellman,

dan lain-lain. Penyisipan informasi watermark dengan algoritma AES ke

dalam audio dilakukan sedemikian, sehingga tidak merusak kualitas audio

yang telah disisipi informasi hak cipta. Informasi hak cipta ini harus dapat

diekstrak untuk pembuktian keaslian atas produk audio digital tersebut.

Penggunaan watermarking dan algoritma AES secara bersamaan

dimaksudkan untuk memberikan keamanan berlapis dalam pengamanan

audio. Berdasarkan latar belakang masalah diatas maka tema penulisan

3

skripsi ini, adalah “Analisis dan Implementasi Watermarking dengan

Algoritma AES untuk Penyimpanan Data Hak Cipta Pada File Audio”.

1.2. Rumusan Masalah

Berdasarkan latar belakang masalah diatas, penulis

mengidentifikasi masalah sebagai berikut :

1. Bagaimana menyisipkan atau menyimpan informasi watermark dengan

algoritma AES ke dalam suatu file audio.

2. Bagaimana mengestrak informasi watermark dari file audio.

3. Bagaimana ketahanan informasi watermark pada file audio.

4. Apakah terjadi perubahan kualitas dan besar ukuran data pada file

audio setelah melalui proses penyisipan dan ekstraksi pesan.

1.3. Batasan Masalah

Agar pembahasan dalam skripsi ini dapat mencapai hasil yang

optimal, maka penulis membatasi ruang lingkup pembahasan sebagai

berikut :

1. File audio yang akan disisipi informasi Watermark adalah file audio

yang berformat WAV yang mempunyai audio format berjenis PCM

(Pulse Code Modulation).

2. File audio berwatermark adalah dalam format WAV. File audio

berwatermark merupakan audio WAV yang telah disisipi informasi

watermark.

3. Data hak cipta yang akan disisipkan dan diekstrak ke dan dari file

audio berupa txt.

4

4. Proses penyisipan dan ekstraksi menggunakan metode low bit coding.

5. Algoritma yang digunakan untuk enkripsi menggunakan algoritma

enkripsi Rijndael (Advanced Encryption Standard (AES)).

6. Pokok objek penelitian adalah kualitas file dan besar file keluaran.

7. Program dibuat dengan menggunakan bahasa Visual C#, Microsoft

Visual Studio 2005.

1.4. Tujuan

Berdasarkan latar belakang, rumusan masalah, dan batasan

masalah, maka tujuan penelitian dari pembuatan aplikasi watermarking

dengan algoritma AES dalam menunjang penulisan skripsi ini adalah :

1. Mengimplementasikan proses penyisipan dan ekstraksi informasi

watermarking dengan algoritma AES.

2. Melakukan analisis perbandingan terhadap kualitas dan ukuran data

pada file audio sebelum dan sesudah melalui proses penyisipan dan

ekstraksi.

1.5. Manfaat

Sesuai dengan permasalahan dan tujuan penelitian yang telah

disebutkan di atas, maka manfaat penelitian dapat dirumuskan sebagai

berikut :

a. Bagi Penulis

1. Penulis bisa menerapkan dan mengembangkan ilmu keamanan data

digital watermarking dan kriptografi yang diperoleh selama penulis

kuliah.

5

2. Memahami penerapan watermarking pada data audio.

3. Untuk memenuhi salah satu syarat kelulusan starata satu (S1)

Program Studi Teknik Informatika Fakultas Sains dan Teknologi

UIN Syarif Hidayatulah Jakarta.

b. Bagi Akademik

1. Mengetahui kemampuan mahasiswa dalam menguasai materi teori

keamanan data digital watermarking dan kriptografi yang telah

diperoleh selama kuliah.

2. Mengetahui kemampuan mahasiswa dalam menerapkan ilmu

keamanan data digital watermarking dan kriptografi pada data

digital dalam hal ini audio digital dan sebagai bahan evaluasi.

c. Bagi Pengguna

1. Program aplikasi audio watermarking ini, dapat dijadikan sebagai

salah satu media alternatif untuk pemberian data hak cipta pada file

audio sebagai pembuktian keaslian file (otentikasi).

1.6. Metodologi Penelitian

Metode yang akan digunakan untuk menyelesaikan skripsi ini

adalah :

1. Metode Pengumpulan Data

Metode pengumpulan data yang akan digunakan yaitu :

a. Studi Pustaka

Studi pustaka yaitu metode pengumpulan data dan

informasi dengan mencari dan memperoleh data-data yang

6

diperlukan dari berbagai buku, e-book, website, serta sumber lainya

yang berkaitan dengan penelitian yang dapat dijadikan acuan

dalam penelitian ini.

b. Studi Literatur

Studi literatur merupakan pengembangan instrumen atau

penelitian sejenis yang sudah dibuat sebelumnya

2. Metode Pengembangan Sistem

Metode pengembangan sistem yang digunakan dalam

pembuatan skripsai ini menggunakan empat tahap siklus

pengembangan model Rapid Application Development (RAD),

Kendall & Kendall, (1998 & 2000) yang terdiri dari :

a. Fase menentukan syarat-syarat, yaitu menetukan tujuan dan

kebutuhan sistem.

b. Fase perancangan, yaitu perancangan proses-proses yang akan

terjadi dalam sistem dan perancangan antar muka.

c. Fase kontruksi, pada tahapan ini dilakukan pengkodean terhadap

rancangan-rancangan yang telah didefinisikan.

d. Fase pelaksana, pada tahapan ini dilakukan pengujian terhadap

sistem dan analisa pengujian terhadap sistem.

1.7. Sistematika Penulisan

Untuk memberikan gambaran yang lebih jelas dan sistematis,

skripsi ini dibagi menjadi lima bab dan tiap bab memiliki beberapa sub

bab. Berikut adalah sistematika dari skripsi ini:

7

BAB I Pendahuluan

Penguraian secara singkat mengenai latar belakang

masalah, rumusan masalah, batasan masalah, tujuan dan

manfaat penelitian, metodologi penelitian serta sistematika

penulisan.

BAB II Landasan Teori

Bab ini berisikan semua landasan teori yang digunakan

dalam penyusunan dan penulisan skripsi ini.

BAB III Metodologi Penelitian

Bab ini berisi uraian mengenai metodologi yang dipakai

penulis, metode pengumpulan data dan metode

pengembangan sistem.

BAB IV Analisa dan Perancangan

Bab ini menjelaskan spesifikasi perangkat keras dan

perangkat lunak yang digunakan, implementasi program,

pengujian, analisa pengujian serta tampilan layar hasil

program berikut cara penggunaannya.

BAB V Penutup

Pada bab ini akan berisi kesimpulan dari hasil pembahasan

bab-bab sebelumnya dan berisi saran-saran untuk

pengembangan lebih lanjut.

8

BAB II

LANDASAN TEORI

2.1. Pengetian Analisis

Analisis atau juga disebut dengan analisa menurut Kamus Besar

Bahasa Indonesia adalah Penyelidikan terhadap suatu peristiwa (karangan,

perbuatan, dan sebagainya) untuk mengetahui keadaan yang sebenarnya

(sebab-musabab, duduk perkaranya, dan sebagainya.) (http : // pusat bahasa.

Diknes. Go. Id).

Analisis data merupakan upaya mencari dan menata data secara

sistematis untuk meningkatkan pemahaman peniliti tentang kasus yang

diteliti dan menyajikannya sebagai temuan bagi orang lain. Proses analisis

data dalam penelitian adalah sebagai berikut, (http : // www.um-pwr.ac.id) :

1. Menelaah seluruh data yang terkumpul dari berbagai sumber.

2. Mengadakan reduksi data dengan jalan membuat abstraksi.

3. Menyusun dalam satuan-satuan dan kategorisasi.

4. Menafsirkan dan atau memberikan makna terhadap data.

Analisis dapat diartikan sebagai proses atau tahapan dalam penelitian

atau penyelidikan dalam mengevaluasi data yang telah terkumpul untuk

meningkatkan pemahaman sehingga menhasilkan suatu kesimpulan ynag

dapat dipertanggungjawabkan.

9

2.2. Hak Cipta

Hak Cipta adalah hak eksklusif bagi pencipta atau penerima hak

untuk mengumumkan atau memperbanyak ciptaannya atau memberikan izin

untuk itu dengan tidak mengurangi pembatasan-pembatasan menurut

peraturan perundang-undangan yang berlaku (http://www.dgip.go.id). Hak

cipta merupakan hak eksklusif bagi pencipta atau pemegang hak cipta untuk

mengumumkan atau memperbanyak ciptaannya, yang timbul secara

otomatis, setelah suatu ciptaan dilahirkan tanpa mengurangi pembatasan

menurut peraturan perundang-undangan yang berlaku (Yusran Isnaini,

2009:11). Jadi hak cipta adalah hak eksklusif dari pada pencipta atau

pemegang hak cipta atau hasil ciptaanya untuk mengumumkan atau

memperbanyak ciptaannya tanpa mengurangi pembatasan-pembatasan

menurut peraturan perundang-undangan yang berlaku.

2.3. Watermarking

Watermarking atau tanda air bisa diartikan sebagai suatu teknik

penyembunyian data atau informasi “rahasia” ke dalam suatu data lainnya

dengan cara “menumpangi” (kadang disebut host data), tanpa orang lain

menyadari adanya data tambahan pada data host-nya (Doni Ariyus,

2007:92). Disamping itu, data yang ter-watermark harus tahan (robust)

terhadap serangan-serangan, baik secara sengaja maupun tidak sengaja

untuk menghilangkan data watermark didalamanya.

Watermarking ini memanfaatkan kekurangan-kekurangan sistem

indera manusia seperti mata dan telinga (http://digitally1.paume.itb.ac.id).

10

Watermarking merupakan suatu cara untuk penyembunyian atau penanaman

data/informasi tertentu (baik hanya berupa catatan umum maupun rahasia)

ke dalam suatu data digital lainnya, tetapi tidak diketahui kehadirannya oleh

indera manusia (indera penglihatan atau pendengaran), dan mampu

menghadapi proses-proses pengolahan sinyal digital sampai pada tahap

tertentu.

Jadi watermarking dapat juga diartikan sebagai suatu teknik

penyisipan atau penyembunyian data atau informasi “umum maupun

rahasia” ke dalam data digital lainnya (host data) tanpa diketahui adanya

data tambahan pada host datanya oleh indera manusia seperti mata dan

telinga .

2.3.1. Tujuan Penggunaan Watermarking

Dokumen merupakan representasi riwayat organisasi secara

eksplisit (Doni Ariyus, 2007:221). Dokumen dalam bentuk

elektronik dapat memudahkan pembukaan serta penelusuran isi dari

riwayat dokumen tersebut yang sebelumnya susah untuk dilakukan

pada dokumen dalam bentuk kertas, memungkinkan pembagian

informasi (information sharing) yang efektif, serta dapat

memberikan kontribusi pada penyebarluasan pengetahuan pada

lingkungan-lingkungan terkait. Dokumen elektronik mendukung

pengambilan kebijakan berbasis bukti yaitu dengan menyediakan

bukti dari aksi dan keputusan sebelumnya. Namun untuk

menghasilaknnya dokumen elektronik tersebut harus dikelola dengan

11

baik untuk menjamin integritas dan otentitasnya. Dokumen-dokumen

elektronik yang berisi transaksi elektronik yang otentik harus dijaga

sedemikian rupa sehingga tetap terjaga kualitas legal dan bobot

buktinya. Untuk itulah dipelukannya teknik watermarking.

Penyisipan watermark pada dokumen memiliki berbagai

macam tujuan (Doni Ariyus, 2007:222). Untuk aplikasi perlindungan

hak cipta, tanda yang disisipkan pada dokumen (gambar, teks, atau

audio) digunakan sebagai identifier yang menunjukan hak

kepimilikan atau hak penggunaan dokumen. Jenis tanda air

mempengaruhi keefektifan tanda air itu sendiri dalam setiap

aplikasinya. Baik tanda air perceptible maupun inperceptible,

keduanya dapat mencegah terjadinya penyalahgunaan, namun

dengan cara yang berbeda. Tanda air digital digunakan untuk

memberikan identifikasi sebuah dokumen atas informasi sumber

daya, penulis, creator, pemilik, distributor, dan konsumer yang

berhak atas dokumen tersebut.

2.3.2. Karakteristik Watermarking

Ada beberapa karakteristik yang diinginkan dari pengguna

watermark pada suatu dokumen, diantaranya tidak dapat terdeteksi

(imperceptible), robustness, dan security (Doni Ariyus, 2007:222).

1. Imperceptible : Memberikan karakteristik watermark agar sebisa

mungkin harus tidak dapat terlihat atau berbeda dengan dokumen

12

aslinya. Hal ini dimaksudkan untuk tidak merubah status

dokumen yang bernilai tinggi secara hukum maupun komersial.

2. Robustness : Karakteristik ini tergantung aplikasi dari watermark

itu sendiri. Apabila digunakan sebagai identifikasi

kepemilikan/copyright, watermark harus memilki ketahanan

terhadap berbagai macam modifikasi yang mungkin bisa

dilakukan untuk merubah/menghilangkan copyright. Jika

digunakan untuk mengautentifikasi content, watermark sebisa

mungkin bersifat fragile, sehingga apabila isinya telah

mengalami perubahan, maka watermark juga akan mangalamu

perubahan/rusak, sehingga dapat terdeteksi adanya usaha

modifikasi terhadap isi.

3. Security : Teknik watermark harus dapat mencegah usaha-usaha

untuk mendeteksi dan memodifikasi informasi watermark yang

disisipkan ke dalam dokumen. Kunci watermark menjamin

hanya orang yang berhak saja yang dapat melakukan hal tersebut.

Namun aspek ini tidak dapat mencegah siapapun untuk membaca

dokumen yang bersangkutan.

2.3.3. Cara Kerja Watermarking

Dalam watetmark digital, sebuah sinyal low-energy

disisipkan ke sinyal utama sebagai cover signal untuk

menyembunyikan sinyal low-energy tersebut (Doni ariyus,

2007:223). Pada gambar 2.1 diilustrasikan sinyal low-energy adalah

13

watermark, dan cover signal-nya adalah dokumen yang bisa berupa

gambar, video, suara, atau teks dalam format digital.

Gambar 2.1. Proses pemberian watermark pada dokumen (Sumber : Doni Ariyus, 2007:223)

Secara umum, sistem watermarking terdiri atas embedder dan

detector (Doni ariyus, 2007:223). Embedder berkerja untuk

menyisipkan watermark ke dalam dokumen (cover signal) dan

detector akan mendeteksi watermark yang ada di dalam dokumen.

Kunci watermark digunakan selama proses penyisipan dan

pendeteksian. Kunci tersebut bersifat privat dan hanya boleh

diketahui oleh pihak-pihak yang diberi otoritas untuk menyisipkan

atau mendeteksi watermark tersebut.

14

2.3.4. Trade-Off dalam Watermarking

Gambar 2.2. Trade-Off dalam watermarking (Sumber : http://digitally1.paume.itb.ac.id)

Parameter-parameter yang diperlukan dalam penerapan

watermarking (http://digitally1.paume.itb.ac.id) :

1. Jumlah data (bit rate) yang akan disembunyikan.

2. Ketahanan (robustness) terhadap pengolahan sinyal.

Terdapat suatu trade-off diantara kedua parameter (bitrate

dan robustness) tersebut dengan Invisibly (tidak tampak). Bila

diinginkan robustness yang tinggi maka bitrate akan menjadi rendah,

sedangkan akan semakin visible, dan sebaliknya semakin invisible

maka robustness akan menurun. Jadi harus dipilih nilai-nilai dari

parameter tersebut agar memberikan hasil yang sesuai dengan yang

kita inginkan (sesuai dengan aplikasi).

Hubungan Invisibility dengan Robustness dapat diterangkan

sebagai berikut : misalkan suatu data asli diubah (ditambah atau

dikurangi) sedikit mungkin dengan maksud memberikan efek

invisible yang semakin tinggi, maka dengan adanya sedikit proses

15

pengolahan digital saja, perubahan tadi akan berubah/hilang. Dengan

demikian dikatakan robustness rendah, tetapi invisibility tinggi.

2.3.5. Metode Watermarking

Beberapa buah metode watermarking pada suara digital yaitu

phase coding, spread spectrum, echo data hiding, dan low bit coding

(http://digilib.unikom.ac.id).

1. Phase Coding

Cara kerja metode ini adalah dengan mengganti fase

bagian awal sinyal suara dengan fase yang berhubungan yang

mewakili data. Fase bagian lain yang mengikuti diatur untuk

melindungi fase relatif antar bagian.

Phase coding merupakan metode yang paling efektif dari

segi perbandingan noise signal-to-perceived. Jika hubungan fase

antar setiap komponen frekuensi diubah secara dramatis, akan

terjadi dispresi fase yang tampak dengan jelas. Akan tetapi,

selama modifikasi fase cukup kecil (tergantung pada pengamat),

coding yang tidak mungkin terdengar dapat dilakukan.

2. Spread Spectrum

Pada saluran komunikasi normal, konsentrasi informasi

pada spektrum frekuensi yang sesempit mungkin sangat

diinginkan untuk menghemat bandwidth yang tersedia dan

mengurangi tenaga yang dibutuhkan. Dasar teknik spread

spectrum dirancang untuk mengkodekan aliran informasi dengan

16

menyebarkan data melalui spektrum frekuensi yang seluas

mungkin. Hal tersebut menyebabkan resepsi sinyal, walaupun

terdapat interferensi pada beberapa frekuensi.

Salah satu metode komunikasi spread spectrum adalah

Direct Sequence Spread Spectrum Encoding (DSSS). Metode ini

menyebarkan sinyal dengan melipatgandakan dengan sebuah

chip, panjang maksimum urutan pseudorandom yang dimodulasi

pada nilai yang diketahui. Karena sinyal penampung adalah suatu

bentuk waktu diskrit, nilai sampling dapat digunakan sebagai

nilai chip untuk coding.

3. Echo Data Hiding

Metode Echo data hiding dilakukan dengan

menambahkan data pada sinyal suara penampung dengan

memunculkan echo. Data yang akan disembunyikan dalam

bentuk echo dinyatakan dengan variasi dari tiga parameter, yaitu

amplitudo awal, decay rate, dan offset (delay). Amplitudo awal

menyatakan amplitudo asal dari data suara tersebut, decay rate

menyatakan seberapa besar echo yang akan diciptakan, dan offset

menyatakan jarak antara sinyal suara dengan echo dalam bentuk

fase sudut dalam persamaan analog. Jika offset dari sinyal asal

dan echo berkurang, maka kedua sinyal akan bercampur. Echo

ini akan terdengar sebagai resonansi.

17

Selanjutnya, untuk proses pengkodean, sinyal suara asal

dipecah menjadi beberapa bagian. Pada setiap bagian, echo

dimunculkan dengan menggunakan waktu tunda sesuai bit data

yang akan disembunyikan. Waktu tunda tersebut dinyatakan

dalam parameter offset, serta besarnya echo yang akan disisipkan

dinyatakan dengan decay rate. Setelah selesai, semua pecahan

sinyal digabungkan kembali sehingga menjadi sinyal utuh.

4. Low Bit Coding

Metode Low-bit-coding adalah cara yang paling

sederhana untuk menyimpan data kedalam data yang lain.

Dengan mengganti bit yang paling tidak penting atau least

significant bit (LSB) pada setiap titik sampling dengan string

berkode biner (coded binary string), kita dapat mengkode

sejumlah besar data kedalam suara digital. Secara teori, kapasitas

saluran adalah 1 kb per detik (1 kbps) per 1 kHz. Kelamahan

metode ini adalah lemahnya kekebalan terhadap manipulasi.

Least Significant Bit (LSB) termasuk ke dalam teknik

penyisipan data ranah spasial (waktu), yaitu dengan

memodifikasi langsung nilai byte dari covertext (nilai byte dapat

mempresentasikan intensitas atau warna pixel atau amplitudo).

Penyembunyian data dilakukan dengan mengganti bit-bit

data dalam segmen covertext dengan bit-bit dari data yang akan

disembunyikan. Pada susunan bit di dalam sebuah byte (1 byte =

18

8 bit), ada bit yang paling berarti (Most Significant Bit atau MSB)

dan bit yang kurang berarti (Least Significant Bit atau LSB),

contoh:

Gambar 2.3. Susunan bit (Sumber : http://informatika.org)

Bit yang bisa diganti adalah bit LSB, karena

perubahannya hanya akan mengubah nilai byte satu lebih tinggi

atau satu lebih rendah dari nilai sebelumnya. Misalkan byte

tersebut menunjukan warna merah, maka perubahan byte tersebut

tidak memberi perubahan yang berarti pada warna merah

tersebut, karena mata manusia tidak dapat menangkap

perubahannya yang sedikit.

2.4. Waveform Audio Format (WAV)

WAV adalah singkatan dari istilah dalam bahasa inggris Waveform

Audio Format, merupakan format standar berkas audio yang dikembangkan

Microsoft dan IBM. Walaupun WAV dapat menampung audio dalam bentuk

terkompresi, umumnya format WAV merupakan audio yang tidak

terkompres (Telkom, 2009). Kualitas dari file wave ditentukan oleh bitrate,

samplerate, dan jumlah channel (UKP,20008).

19

Bitrate merupakan ukuran bit tiap sample-nya, dapat disimpan per 8-

bits, 16-bits, 32 bits. Makin banyak bitrate dalam satu sample suara makin

baik kualitas suara file tersebut, karena data yang disimpan semakin akurat.

Samplerate menyatakan banyaknya jumlah sample yang dimainkan

setiap detiknya. Samplerate yang umum dipakai adalah 8000Hz (suara yang

dihasilkan menyerupai suara telepon), 11025 Hz (untuk perkaman suara

manusia), 22050 Hz (untuk perekaman suara musik) dan 44100 Hz, (sering

dipakai dalam audio cd karena cocok untuk semua jenis suara).

Jumlah channel akan menentukan suara yang dihasilkan termasuk

mono atau stereo. Mono menggunakan 1 channel suara, sedangkan stereo

menggunakan lebih dari 1 chanel suara (umumnya 2). Suara manusia dapat

direkam secara mono, sedangkan file-file untuk kualitas cd direkam secara

stereo.

2.5. Kriptografi

Penggunaan teknik kriptografi yang bertujuan untuk menjaga

kerahasian pesan sudah banyak diterapkan dalam kehidupan manusia.

Diantaranya transaksi di mesin ATM (Anjungan Tunai Mandiri atau

Automatic Teller Machine), transaksi di bank dengan kartu kredit mengakses

internet sampai mengaktifkan peluru kendali pun menggunakan kriptografi.

Oleh karena itu, kriptografi merupakan seni pengamanan pesan yang

populer, terutama pengamanan pesan yang menggunakan media computer.

20

2.5.1. Pengertian Kriptografi

Kriptografi (cryptography) berasal dari dua kata dari bahasa

Yunani, yaitu “cryptos” yang berate “secret” (rahasia) dan

“graphein” yang berartin “writing” (tulisan), jadi kriptografi bisa

diartikan sebagai tulisan rahasia (secret writing). Menurut

terminologinya kriptografi adalah ilmu dan seni untuk menjaga

keamanan pesan yang dikirim dari suatu tempat ke tempat yang lain.

(Doni Ariyus 2006:9).

Definisi kriptografi yang banyak di buku-buku lama (sebelum

sebelum tahun 1980-an) menyatakan bahwa kriptografi adalah ilmu

dan seni untuk menjaga kerahasian pesan dengan cara

menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi

maknanya (Rinaldi Munir, 2006:2). Definisi ini sudah tidak sesuai

lagi dengan dunia sekarang. Karena kriptograpi tidak hanya

memperhatikan privacy saja tetapi juga harus memperhatikan data

integrity, authentication, dan non-repudiation.

Definisi kriptograpi menurut Bruce Schneier adalah ilmu seni

untuk menjaga keamanan pesan. Sedangkan menurut Alfred j.

Menezes, Paul C. Van Ourschot dan Scott A. Vanstone, kriptografi

adalah ilmu yang mempelajari teknik-teknik matematika yang

berhubungan dengan keamanan informasi seperti kerahasian,

integritas data, serta otentikasi (Rinaldi Munir, 2006:2).

21

Kriptograpi juga bisa diartikan sebagai teknik mengamankan

pesan yang dianggap rahasia dengan cara mengubah pesan dari yang

dapat dibaca menjadi pesan yang tidak dapat dibaca dengan

memperhatikan aspek keamanan pesan seperti kerahasian, integritas

data, otentikasi dan tidak penyangkalan.

2.5.2. Istilah-Istilah Dalam Kriptograpi

Dalam kriptograpi kita akan sering menemukan berbagai

istilah atau terminologi yang harus kita ketahui dan kita pahami. Di

bawah ini merupakan beberapa istilah penting dalam kriptograpi

yang akan sering ditemukan (Rinaldi Munir, 2006:3):

1. Pesan, Plainteks dan Chiperteks

Pesan (message) adalah kumpulan data atau informasi

yang dapat dibaca dan dimengerti maknanya. Nama lain untuk

pesan adalah plainteks (plaintext) atau teks jelas (cleartext).

Pesan dapat berupa data atau informasi yang dikirim (melalui

kurir, saluran telekomunikasi, dan sebagainya) atau yang

disimpan di dalam media perekaman (kertas, storage, dan

sebagainya). Pesan yang tersimpan tidak hanya berupa teks

tetapi juga berbentuk citra (image), suara atau bunyi (audio),

video atau berkas biner lainnya (Rinaldi Munir, 2006:3).

Agar pesan tidak dapat dibaca oleh pihak lain, maka

pesan perlu disandikan ke bentuk lain yang tidak dapat dibaca

atau dipahami dengan menggunakan rumus atau aturan

22

tertentu. Bentuk pesan yang tidak dapat dibaca atau dipahami

disebut chiperteks (chipertext) atau kriptogram (cryptogram).

Melalui proses yang berkebalikan, chiperteks dapat diubah

kembali menjadi pesan yang dapat dibaca atau plainteks.

2. Pengirim dan Penerima

Untuk melakukan komunikasi dua arah kita

memerlukan adanya dua entitas, yaitu pengirim dan penerima

pesan. Pengirim (sender) adalah entitas yang mengirimkan

pesan ke entitas lainya. Sedangkan penerima (receiver) adalah

entitas yang menerima pesan.entitas yang dimaksud tidak

hanya terbatas pada manusia saja, tetapi bisa juga berupa mesin

(computer), kartu kredit, dan sebagainya.

3. Enkripsi dan Deskripsi

Pesan atau informasi yang dapat dibaca disebut sebagai

plaintext atau cleartext. Teknik untuk membuat pesan menjadi

tidak dapat dibaca disebut enkripsi. Pesan yang tidak dapat

dibaca disebut ciphertext. Proses yang merupakan kebalikan

dari enkripsi disebut sebagai deskripsi. Jadi deskripsi akan

membuat ciphertext mejadi plaintext (YusufKurniawan,

2004:1)

4. Cipher dan Kunci

Algotima kriptograpfi disebut juga cipher yaitu aturan

untuk enciphering dan deciphering, atau fungsi matematika

23

yang digunakan untuk enkripsi dan deskripsi (Rinaldi Munir,

2006:5). Sedangkan menurut Jack Febrian (2004:94), cipher

adalah algoritma kriptografi (cryptographic algorithm) berupa

persamaan matematika yang digunakan dalam proses enkripsi

dan dekripsi. Cipher adalah algoritma kriptografi yang

mengunakan konsep matematis dalam proses enkripsi dan

dekripsi pesan.

Kunci dalam kriptografidipakai untuk melakukan

enkripsi dan dekripsi, kunci terbagi menjadi dua jenis, yaitu

kunci pribadi (private key) dan kunci umum (public key) (Doni

Ariyus, 2006:13).

5. Sistem kriptografi

Kriptografi membentuk sebuah sistem yang dinamakan

sistem kriptografi. Sistem kriptografi (cryptosystem) adalah

kumpulan yang terdiri dari algoritma kriptografi, semua

plainteks dan chiperteks yang mungkin, dan kunci. Di dalam

sistem kriptografi, cipher hanya salah satu komponen saja

(Rinaldi Munir, 2006:7).

6. Penyadap

Penyadap (eavesdropper) adalah orang yang mencoba

menangkap pesan selama ditransmisikan. Tujuan penyadapan

adalah untuk mendapatkan informasi sebanyak-banyaknya

mengenai sistem kriptografi yang digunakan untuk

24

berkomunikasi dengan maksud untuk memecahkan cipherteks.

Nama lain untuk penyadap adalah enemy, adversary, intruder,

interceptor, bad guy (Rinaldi Munir, 2006:8).

7. Kriptologi dan Kriptanalis

Kriptologi merupakan bidang ilmu yang mempelajari

semua yang berkaitan dengan kriptografi dan kriptanalisis.

Kriptanalis (cryptanalyst) adalah ilmu untuk

mendapatkan plaintext pesan tanpa harus mengetahui kunci

secara wajar (Yusuf Kurniawan, 2004:4). Pelaku kriptanalisis

disebut kriptanalis. Gambar 2.4 akan memperlihatkan

hubungan antara kriptologi, kriptografi dan kriptoanalisis.

Gambar 2.4. Cabang-cabang bidang ilmu kriptologi (Sumber: Renaldi Munir, 2006:8)

2.5.3. Tujuan kriptografi

Penggunaan kriptografi bertujuan untuk memberikan solusi

perihal layanan keamanan suatu pesan yang mencakup aspek-aspek

dibawah ini (Rinaldi Munir, 2006:9) :

25

1. Kerahasian

Kerahasiaan adalah layanan yang ditunjukan untuk

menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang

tidak berhak. Di dalam kriptografi, layanan ini direalisasikan

dengan menyadikan pesan dari plainteks menjadi cipherteks.

2. Integritas Data (data Integrity)

Untuk menjaga intgeritas data, sistem harus memiliki

kemampuan untuk mendeteksi manipulasi pesan oleh pihak-

pihak yang tidak berhak, anatara lain penyisipan, penghapusan

dan pensubsitusian data lain ke pesan data yang sebenarnya.

3. Otentikasi (authentication)

Otentikasi adalah layanan yang berhubungan dengan

identifikasi, baik itu mengidentifikasi kebenaran pihak-pihak

yang berkumunikasi (user authentication atau entity

authentication) mau pun mengidentifikasi kebenaran sumber

pesan (data origin authentication).

4. Nirpenyangkalan (non-repudiation)

Kriptografi dapat mencegah salah satu pihak yang

berkomunikasi melakukan penyangkalan, yaitu pengirim pesan

menyangkal melakukan pengiriman begitu pun juga dengan

penerima pesan menyangkal telah menerima pesan.

26

2.5.4. Kriptografi Kunci-Simetri dan Nirsimetri

Berdasarkan kunci yang digunakan untuk enkripsi dan

dekripsi, kriptografi kunci-simetri dan kriptografi kunci nirsimetri.

Masing-masing mempunyai kelemahan dan keunggulan. Tetapi,

keduanya mempunyai tujuan yang sama yaitu mengamankan

kerahasiaan pesan.

2.5.4.1. Kriptografi Kunci-Simetri

Kriptografi kunci-simetri atau kriptografi simetri

adalah kriptografi yang memakai kunci yang sama, baik itu

untuk mengubah plainteks menjadi cipherteks atau proses

enkripsi. Juga digunakan untuk mengubah kembali

cipherteks menjadi plainteks atau proses dekripsi.

Kriptografi kunci simetri biasa juga disebut sebagai

kriptografi kunci privat.

Gambar 2.5. Skema kriptografi kunci-Simetri

(Sumber: http://www.ece.cmu.edu)

Kerahasian kunci dalam kriptografi kunci-simetri

sangatlah penting, karena jika kunci jatuh ke tangan yang

salah maka pesan dapat dengan mudah terbaca. Pemberi

27

dan penerima pesan biasanya sudah memastikan kunci yang

sama sebelum pesan dikirimkan.

Berikut merupakan contoh algoritma kriptografi

modern yang memakai sistem algoritma kunci-simetri,

yaitu : DES (Data Encryption Standard), Blowfish, Triple-

DES, IDEA, Serpent, AES dan lain-lain. Kriptografi simetri

dikenal sebagai satu-satunya jenis kriptografi sampai

dengan tahun 1976.

2.5.4.2. Kriptografi Kunci-Nirsimetri

Kriptografi kunci nirsimetri atau kunci public

adalah kriptografi yang memakai dua kunci. Dalam artian

sistem kriptografi ini memakai dua kunci yang berbeda

untuk mengenkripsi dan mendekripsi pesan.

Kunci unutk mengenkripsi pesan dan

mengirimkannya tidak bersifat rahasia atau bisa diketahui

oleh siapa saja. Sedangkan kunci untuk membuka pesan

hanya diketahui oleh pihak yang menerima saja.

Gambar 2.6. Skema kriptografi kunci Nir-Simetri (Sumber:http://www.ece.cmu.edu)

28

Kriptografi kunci publik mempunyai beberapa

keunggulan dibandingkan kunci privat. Pertama, keamanan

kunci lebih terjaga karena kunci yang didistribusikan

adalah kunci publik yang bisa diketahui oleh semua orang.

Kedua, jumlah kunci rahasia dapat ditekan, yaitu

pembuatan kunci rahasia tidak perlu dibuat sebanyak orang

yang melakukan komunikasi, cukup dengan dua kunci saja

kunci public dan privat saja.

Berikut merupakan contoh algoritma kriptografi

modern yang menggunakan algoritma kunci nirsimetri,

yaitu RSA, Diffle Hellman, dan lain-lain.

2.6. Advanced Encryption Standard (AES)

Advanced Encryption Standard (AES) dipublikasikan oleh NIST

(National Institute of Standards and Technology) pada tahun 2001. AES

merupakan simetri block cipher untuk menggantikan DES (Data Encryption

Standard) (Doni Ariyus,2006:84). DES adalah sebuah algoritma kriptografi

simetri dengan panjang kunci 56 bit dan blok data 64 bit (Rinaldi Munir,

2004:136). Pada tahun 1990 panjang kunci DES dianggap terlalu pendek

dan pada tahun 1998 algoritma DES sudah berhasil dipecahkan dalam 96

hari hingga akhirnya dibuatlah mesin khusus untuk memecahkan algoritma

DES (Doni Ariyus, 2006:84).

Dengan alasan tersebut maka, NIST mengadakan kompetisi untuk

standar kriptografi yang terbaru, yang dinamakan AES (Advanced

29

Encryption Standard). Dari hasil seleksi tahap pertama NIST memilih 15

algoritma, dan pada tahap kedua memilih 5 algoritma. NIST akhirnya

mengumumkan standar baru pada November 2001. NIST memilih algoritma

Rijndael yang dibuat oleh Dr. Vincent Rijmen dan Dr. Joan Daemen

kriptografer dari Belgia sebagai algoritma AES (Wiliam Stallings,

2003:140).

2.6.1. Representasi Data

Input dan output dari algoritma AES terdiri dair urutan data

sebesar 128 bit. Urutan data yang sudah terbentuk dalam satu

kelompok 128 bit tersebut disebut juga sebagai blok data atau

plaintext yang nantinya akan dienkripsi mnjadi ciphertext. Cipher key

dari AES terdiri dari key dengan panjang 128 bit, 192 bit, atau 256 bit.

Urutan bit diberi nomor urut dari 0 sampai dengan n-1 dimana

n adalah nomor urutan. Urutan data 8 bit secara beruntun disebut

sebagai byte dimana byte ini adalah unit dasar dari operasi yang akan

dilakukan pada blok data.

Dalam algoritma AES, data sepanjang 128 bit akan dibagi-

bagi menjadi array byte dimana setiap array byte ini terdiri dari 8 bit

data input yang saling berurutan. Array byte ini direpsentasikan dalam

bentuk :

a0a1a2...a15 (2.1)

Dimana :

a0 = { input0, input1,..., input7 }

30

a1 = { input8, input9,..., input15 }

a15 = { input120, input121,..., input127 }

an = { input8n, input8n+1,..., input8n+7 }

Operasi algoritma AES dilakukan pada sebuah state dimana

state sendiri adalah sebuah array byte dua dimensi. Setiap state pasti

mempunyai jumlah baris yang tetap, yaitu 4 baris, sedangkan jumlah

kolom tergantung dari besarnya blok data. Baris pada state

mempunyai indeks nomor row (r) dimana 0 ≤ r < 4, sedangkan kolom

mempunyai indeks nomor coloumn (c) dimana 0 ≤ c < Nb. Nb sendiri

adalah besarnya blok data dibagi 32.

Pada saat permulaan, input bit pertama kali akan disusun

menjadi suatu array byte dimana panjang dari array byte yang

digunakan pada AES adalah sepanjang 8 bit data. Array byte inilah

yang nantinya akan dimasukan atau dikopi ke dalam state dengan

urutan :

s[r,c] = in[r + 4c] untuk 0 ≤ r < 4 dan 0 ≤ c < Nb (2.2)

Sedangkan dari state akan dikopi ke output dengan urutan :

out[r + 4c] = s[r,c] untuk 0 ≤ r < 4 dan 0 ≤ c < Nb (2.3)

Gambar 2.7. Masukan dan keluaran Array State

31

(Sumber: Renaldi Munir, 2006:158)

2.6.2. Algoritma AES

Rinjdael mendukung panjang kunci dari 128 sampai 256 bit

dengan step 32 bit. Karena AES menetapkan panjang kunci adalah

128, 192, dan 256, maka dikenal sebagai AES-128, AES-192, dan

AES-256, yang perbedaannya akan ditunjukan oleh table 2.1.

Tabel 2.1. Tiga buah versi AES (Sumber:Rinaldi Munir, 2006:158)

Panjang Kunci (Nk

words)

Ukuran Blok

(Nb words)

Jumlah Putaran

(Nr)

AES-128 4 4 10

AES-196 6 4 12

AES-256 8 4 14

2.6.2.1. Enkripsi

Proses enkripsi pada algoritma AES terdiri dari 4 jenis

transformasi bytes, yaitu SubBytes, ShiftRows, MixColumns,

dan AddRounkey. Pada awal proses enkripsi, input yang telah

dikopikan ke dalam state akan mengalami transformasi byte

AddRoundKey. Setelah itu state akan mengalami transformasi

SubBytes, ShiftRows, MixColumns, dan AddRoundKey secara

berulang-ulang sebanyak Nr (jumlah putaran). Proses ini

dalam algoritma AES di sebut juga round function. Round

yang terakhir agak berbeda dengan round-round sebelumnya

32

dimana pada round terakhir state tidak mengalami

transformasi MixColumns.

Gambar 2.8. Diagram alir proses enkripsi (Sumber: http//www.cert.or.id)

2.6.2.1.1. SubBytes

Transformasi SubBytes() memetakan setiap

byte dari array state dengan menggunakan table

subsitusi S-box yang ditunjukkan oleh tabel 2.2.

Tabel2.2. Tabel S-box dalam transformasi Subbytes() (Sumber : Wiliam Stalling,2003:152)

33

Cara pensubsitusiannya adalah sebagai

berikut. Untuk setiap byte pada array state, misalkan

S[r, c] = xy adalah digit heksadesimal dari nilai S[r,

c], maka nilai subsitusi yang dinyatakan dengan S[r,

c], adalah elemen dalama S-box yang merupakan

perpotongan garis x dengan kolom y, gambar 2.12

memperlihatkan transformasi SubBytes.

Gambar 2.9. Transformasi SubBytes (Sumber : http://id.wikipedia.org/wiki /Berkas:AES-SubBytes.svg)

2.6.2.1.2. ShiftRows

Transformasi ShiftRows pada dasarnya adalah

proses pergeseran bit dimana bit paling kiri akan

dipindahkan menjadi bit paling kanan (rotasi bit).

Transformasi ini diterapkan pada baris 2, baris3, dan

baris 4. Baris 2 akan mengalami pergeseran bit

sebanyak satu kali, sedangkan baris 3 dan baris 4

masing –masing mengalami pergeseran bit sebanyak

dua kali dan tiga kali.

34

Gambar 2.10. Transformasi ShiftRows (Sumber : http://student.ceid.upatras.gr)

2.6.2.1.3. MixColumns

MixColumns mengoperasikan setiap elemen

yang berada dalam satu kolom pada state. Elemen

pada kolom dikalikan dengan suatu polinomial tetap

a(x) = {03}x3 + {01}x2 + {01}x + {02}. Secara lebih

jelas, transformasi MixColumnsdapayt dilihat pada

perkalian matriks berikut ini :

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

c

c

c

c

c

c

c

c

ssss

ssss

,3

,2

,1

,0

',3

',2

',1

',0

02010103030201010103020101010302

)}02({)}03({

)}03({)}02({

)}03({)}02({

)}03({)}02({

,3,2,1,0',3

,3,2,1,0',2

,3,2,1,0',1

,3,2,1,',0

ccccc

ccccc

ccccc

ccccoc

sssss

sssss

sssss

sssss

•¯¯¯•=

•¯•¯¯=

¯•¯•¯=

¯¯•¯•=

35

2.6.2.1.4. AddRoundKey

Pada proses AddRoundKey sebuah round key

ditambahkan pada state dengan operasi bitwise

XOR. Setiap round key terdiri dari Nb Word dimana

tiap word tersebut akan dijumlahkan dengan word

atau kolom yang bersesuaian dari state sehingga :

[ ] [ ] [ ]

Nbcwssssssss cNbroundcccccccc

0untuk ,,,,,, *,3,2,1,0

',3

',2

',1

',0

££

¯= + (2.5)

[wi] adalah word dari key yang bersesuaian

dimana i = round*Nb+c. Transformasi

AddRoundKey diimplementasikan pertama kali pada

round = 0, dimana key yang digunakan adalah initial

key (key yang dimasukan oleh kriptografer dan

belum mengalami proses key expansion).

2.6.2.2. Dekripsi

Transformasi cipher dapat dibalikan dan

diimplementasikan dalam arah yang berlawanan untuk

menghasilkan inverse cipher yang mudah dipahami untuk

algoritma AES. Transformasi byte yang digunakan pada

invers cipher adalah InvShiftRows, InvSubBytes,

InvMixColumns, dan AddroundKey. Algoritma dekripsi dapat

dilihat pada skema berkut ini :

36

Gambar2.11. Diagram alir proses dekripsi

(Sumber : http://www.cert.or.id)

2.6.2.2.1 InvShiftRows

InShiftRows adalah transformasi byte yang

berkebalikan dengan transformasi ShiftRows. Pada

transformasi InvShiftRows, dilakukan pergeseran bit

ke kanan sedangkan pada ShiftRows dilakukan

pergeseran bit ke kiri. Pada baris kedua, pergeseran

bit dilakukan sebanyak 3 kali, sedangkan pada baris

ketiga dan baris keempat, dilakukan pergeseran bit

sebanyak dua kali dan satu kali.

Gambar 2.12. Transformasi InvShiftRows (Sumber : http://student.ceid.upatras.gr)

37

2.6.2.2.2. InvSubBytes

InvSubBytes juga merupakan transformasi

bytes yang berkebalikan dengan transformasi

SubBytes. Pada InvSubBytes, tiap elemen pada state

dipetakan dengan menggunakan tabel inverse S-Box.

Tabel 2.3. Tabel Inverse S-box dalam transformasi InvSubbytes() (Sumber : William Stalling, 2003:152)

Perkalian invers yang dilakukan pada

transformasi InvSubBytes ini sama dengan perkalian

invers yang dilakukan pada transformasi SubBytes.

2.6.2.2.3. InvMix Columns

Pada InvMix Columns, kolom-kolom pada

tiap state (word) akan dipandang sebagai polinom

atas GF(28) dan mengalikan modulo x4 + 1 dengan

polinom tetap a-1(x) ang diperoleh dari :

a-1(x)= {0B}x3 + {0D}x2 + {09}x + {0E}. (2.6)

38

Atau dalam matriks :

)()()(' xsxaxs ˜= (2.7)

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

c

c

c

c

c

c

c

c

ssss

EDBBEDDBE

DBE

ssss

,3

,2

,1

,0

',3

',2

',1

',0

00900000900000909000

)}02({)}03({

)}03({)}02({

)}03({)}02({

)}03({)}02({

,3,2,1,0',3

,3,2,1,0',2

,3,2,1,0',1

,3,2,1,',0

ccccc

ccccc

ccccc

ccccoc

sssss

sssss

sssss

sssss

•¯¯¯•=

•¯•¯¯=

¯•¯•¯=

¯¯•¯•=

2.6.2.2.4. Inverse AddRoundKey

Transformasi Inverse AddRoundkey tidak

mempunyai perbedaan dengan transformasi

AddRoundKey karena pada tranformasi ini hanya

dilakukan operasi penambahan sederhana dengan

menggunakan operasi bitwise XOR.

2.6.2.3. Ekspansi Kunci

Algoritma AES mengambil kunci cipher, K, dan

melakukan rutin ekspansi kunci (key expansion) untuk

membentuk key schedule. Ekspansi kunci menghasilkan total

Nb(Nr+1) word. Algoritma ini membutuhkan set awal key

yang terdiri dari Nb word, dan setiap round Nr membutuhkan

39

data kunci sebanyak Nb word. Hasil key schedule terdiri dari

array 4 byte word linear yang dinotasikan dengan [wi].

SubWord adalah fungsi yang mengambil 4 byte word

input dan mengaplikasikan S-Box ke tiap-tiap data 4

byteuntuk menghasilkan word output. Fungsi RotWord

mengambil word [a0, a1, a2, a3] sebagai input, melakukan

pergeseran siklik, dan mengembalikan word [a1, a2, a3, a0].

Rcon[i] terdiri dari nilai-nilai yang diberikan oleh [xi-1, {00},

{00}, {00}], dengan xi-1 sebagai pangkat dari x (x dinotasikan

sebagai {02} dalam field GF(28)). Pseudocode dari proses

ekspansi key dapat dilihat seperti yang ada di bawah berikut

ini :

Gambar 2.13. Pseudcode proses ekspansi kunci

(Sumber : http://student.ceid.upatras.gr)

40

Dari pseudocode dapat dilihat bahwa word ke Nk

pertama pada ekspansi kunci berisi kunci cipher. Setiap word

berikutnya, w[i], sama dengan XOR dari word sebelumnya,

w[i-1] dan word Nk yang ada pada posisi sebelumnya, w[i-

Nk]. Untuk word pada posisi yang merupakan kelipatan Nk,

sebuah tranformasi diaplikasikan pada w[i-1] sebelum XOR,

lalu dilanjutkan oleh XOR dengan konstanta round, Rcon[i].

Transformasi ini terdiri dari pergeseran siklik dari byte data

dalam suatu word RotWord, lalu diikuti aplikasi dari lookup

tabel untuk semua 4 byte data dari word SubWord.

2.7. Bahasa Pemrograman C#

C# (dibaca “See-Sharp”) adalah bahasa pemrograman baru yang

diciptakan oleh Microsoft (dikembangkan dibawah kepemimpinan Andres

Heljsberg yang juga telah menciptakan berbagai macam bahasa

pemrograman termasuk Borland Turbo C++ dan Borland Delphi). C# pada

dasarnya bukan bahasa sulit karena intinya mengambil dari berbagai bahasa

pemrograman yang ada. Bahasa yang paling banyak digunakan adalah

bahasa Java. Untuk lebih jelas mengetahui komposisi bahasa C#, dapat

dilihat pada gambar 2.14.

41

Gambar 2.14. Komposisi bahasa C#

(Sumber : Jaenudin, 2006: 17)

Seperti halnya bahasa pemrograman yang lain, C# bias digunakan

untuk membangun berbagai macam jenis aplikasi, seperti aplikasi berbasis

windows (desktop), aplikasi berbasis web serta aplikasi berbasis web service.

Ada beberapa keuntungan menggunakan teknologi C# yang berada

di lingkungan .NET dalam membangun sebuah aplikasi, diantaranya

(Jaenudin, 2006: 18) :

1. Mudah, Visual C# yang sangat sederhana mudah digunakan dalam

mengimpementasikan pengembangan sebuah aplikasi.

2. Efisien, kemudahan saat pembuatan aplikasi sangat berpengaruh pada

efisiensi waktu pengerjaan aplikasi dan berdampak pada efisiensi biaya.

3. Produktivitas, kemudahan pengerjaan aplikasi akan berdampak besar

dalam menghasilkan produk yang berupa aplikasi.

4. Konsisten, kemudahan yang dihadirkan oleh visual C# akan berdampak

pada konsistensi program.

Untuk mengenal lebih dekat Visual C# lihat gambar 2.15 yang

menampilkan ruang kerja Visual C# 2005 dengan berbagai tools dan

fasilitas yang disediakan.

42

Gambar 2.15. Tampilan visual C#

(Sumber : Jaenudin, 2006: 21)

Pada gambar 2.15, bagian yang ditunjuk oleh panah bernomor adalah

bagian penting dari halaman kerja Visual C# dengan fungsi yang berbeda-

beda yang akan dijelaskan Tabel 2.4.

Tabel 2.4 Bagian-bagian halaman kerja visual C# 2005 (Sumber : Jaenudin, 2006:22)

NO NAMA BAGIAN KETERANGAN

1 MenuBar Berisi daftar menu (perintah) yang umum

digunakan oleh setiap aplikasi berbasis

windows, misalnya : Menu File.

2 ToolBar Berisi daftar perintah yang sering digunakan

dan dipresentasikan dalam bentuk tombol.

3 ToolBox Berisi daftar komponen yang dapat

digunakan untuk mendesain tampilan muka

sebuah aplikasi.

1

3 5

2

5

43

4 Solution Explorer Berisi daftar file, reference, dan project yang

sedang dikerjakan.

5 StartPage Merupakan halaman pertama yang tampak

ketika C# dibuka, dan disinilah daftar project

yang sedang dibangun dapat dilihat.

2.7.1. Mengenal Struktur Program C#

Untuk mengenal struktur program dalam C#, perhatikan

gambar 2.16 yang menampilkan beberapa sintakis yang secara

otomatis dibuat oleh Visual C#.

Gambar 2.16. Console Application

(Sumber : Jaenudin, 2006:25)

Untuk lebih jelasnya, perhatikan sintakis dari kode program

berikut ini :

44

using System ;

using System.Collection.Generic;

using System.Text;

namespace Contoh { class Program { static void main (string[] args) { Console.WriteLine(“Belajar Visual C#”); Console.ReadLine();

} } }

Gambar 2.17. Sintakis kode program (Sumber : Jaenudin,2006: 25)

Pada bagian awal program yang dimulai dengan keyword

using, berfungsi untuk memanggil class library yang dibutuhkan

aplikasi. Apabila membutuhkan class library yang lain, maka

Keyword using dapat ditambah sendiri oleh programmer.

Keword namespace menyatakan nama perintah dari paket

aplikasi (package) yang dibuat. Blok paket selalu diawali dengan

tanda “{“ dan diakhiri dengan tanda “}”.

Adanya keyword class menunjukan program telah memasuki

wilayah class. Class merupakan bagian terpenting dalam bahasa

pemrograman C#, karena aplikasi C# dibangun oleh satu atau

beberapa fungsi yang diletakkan di dalam sebuah Class.

Di dalam class terdapat fungsi, nama suatu fungsi pada C#

harus diawali dengan huruf, atau garis bawah “_” yang kemudian

bias diikuti oleh huruf, angka atau garis bawah. Pada bagian akhir

nama fungsi digunakan tanda kurung buka “(“ dan tanda kurung

45

class Program { NamaFungsi1( ) { } } atau class Program { NamaFungsi1( ) { }

}

tutup “)”. Penamaan fungsi tidak boleh mengandung spasi. Awal dan

akhir suatu fungsi di mulai dengan tanda “{“ dan diakhiri dengan

tanda “}”. Berikut contoh penamaan fungsi yang diletakkan di dalam

Class :

Gambar 2.18. Contoh penamaan fungsi class (Sumber : http://otak.csharpindonesia.net)

2.7.2. Eksekusi Program

Untuk mengesekusi program dilakukan perintah berikut ini :

Debug -> Start Debuging atau dengan menekan F5 dari keyboard

File eksekusi akan berekstensi .EXE.Gambar 2.20, memperlihatkan

hasil eksekusi program di gmabar2.17.

Gambar 2.19. Hasil eksekusi dari gambar 2.17 (Sumber : Jaenudin, 2006: 31)

46

2.8. Perancangan Program

Di dalam merancang suatu program, dapat digunakan beberapa alat

bantu diantaranya, metode pengembangan sistem Rapid Application

Development (RAD), Diagram state-transition (STD), dan Flow-chart.

2.8.1. Rapid Application Development (RAD)

Model pengembangan RAD diperkenalkan oleh James

Martin pada tahun 1991 (http://en.wikipedia.org). Adapun metode

pengembangan RAD (Rapid Application Development) menurut

James Martin melingkupi fase-fase sebagai berikut :

Gambar 2.20. Fase-fase RAD James Martin (Sumber : Kendall & Kendall, 2003: 238)

Model RAD digunakan untuk melakukan pendekatan

berorientasi objek terhadap pengembangan sistem yang mencakup

suatu metode pengembangan perangkat-perangkat lunak (Kendall &

Kendall, 2003:237). Pada table 2.5 akan dijelaskan mengenai

perbandingan antara metode RAD dengan metode pengembangan

sistem yang lain yaitu metode sekuensial linear, prototype dan spiral.

Tabel 2.5. Perbandingan metode RAD, Sekuensial Linear, Prototipe dan Spiral (Sumber : http://ilkom.unsri.ac.id)

Metode Kelebihan Kekurangan

RAD 1. Kecepatan adaptasi yg tinggi, dapat

dibuat dgn cepat dgn pendekatan

1. Model yang besar (skala proyek),

membutuhkan resources yg baik dan

47

pembangunan berbasis komponen

2. Jika data, analisa jelas, dan lingkup

kecil maka RAD dapat digunakan dgn

baik.

solid

2. Membutuhkan komitmen pengembang

dan user yang sama agar cepat selesai

sesuai dengan rencana.

Sekuensial

Linier

(Waterfall)

1. Memberikan template di mana metode

analisis, desain, pengkodean, pengujian

dan pemeliharaan bisa dilakukan.

2. Pendekatan pengembangan perangkat

lunak lebih jelas.

1. Iterasi sering terjadi menyebabkan

masalah baru.

2. Client kesulitan untuk menyatakan

semua ke inginannya secara eksplisit

diawal tahap pengembangan.

3. Hasil software yang dikembangkan

baru akan diketahui lama setelah

proyek pengembangan dimulai.

Prototipe 1. Pelanggan bisa langsung melihat sistem

yang sebenarnya.

2. Pengembang bisa membangun proyek

dengan cepat sesuai dengan identifikasi

kebutuhan.

1. Ketidaksadaran user bahwa ini hanya

suatu model awal bukan model akhir.

2. Pengembang kadang-kadang

membuat implementasi yang

sembarangan.

3. Teknik dan tools yang tidak optimal

pada prototipe yang akan tetap

digunakan pada software

sesungguhnya.

Spiral Metode ini dirancang secara revolusioner

dengan tahapan yang jelas, tetapi terbuka

bagi partisipasi pemesan untuk ikut serta

menentukan pemodelan sistem

Metode ini lambat dan mahal karena

setiap tahapan yang dilalui harus

mengikutsertakan pemesan.

48

Kendall & Kendall (2003: 240), mengilustrasikan model RAD seperti pada

Gambar 3.1 berikut :

Gambar 2.21. Pengembangan sistem model RAD

(Sumber : Kendall & Kendall, 2003:240)

2.8.2. State-Transition Diagram (STD)

State-transition Diagram (STD) adalah sebuah model tingkah

laku yang bertumpu pada definisi dari serangkaian keadaan sistem

dan digambarkan dengan persegi panjang yang merepresentasikan

keadaan sistem dan anak panah yang mempresentasikan transisi

antar antar keadaan (Roger S. Pressman, 2002:375). Gambar 2.22

akan memperlihatkan contoh diagram state-transition pada software

mesin foto kopi yang telah disederhanakan.

49

Gambar 2.22. State Transition Diagram yang disederhanakan untuk software foto kopi (Sumber : Roger S. Pressman, 2003: 375)

Notasi-notasi yang dipergunakan dalam diagram state-

transition (STD) adalah:

1. Keadaan sistem (state). Suatu kumpulan dari tingkah laku yang

dapat diobservasi.

2. Perubahan sistem. Untuk menghubungkan suatu keadaan lain,

digunakan jika sistem memiliki transisi dalam prilakunya.

3. Kondisi dan aksi. Kondisi (condition) adalah suatu keadaan pada

lingkungan luar (external environment) yang dapat dideteksi oleh

sistem. Sedangakan aksi (action) merupakan reaksi terhadap

kondisi bila terjadi perubahan state.

2.8.3. Flow-Chart

Bagan alir program (program flow-chart) adalah suatu bagan

yang menggambarkan arus logika dari data yang akan diproses

dalam suatu program dari awal hingga akhir (Jogiyanto Hartono,

2002:662). Bagan alir program merupakan alat yang berguna bagi

50

programmer untuk mempersiapkan program yang rumit. Bagan alir

terdiri dari simbol-simbol yang mewakili fungsi-fungsi langkah

program dan garis alir (flow lines) menunjukan urutan dari simbol-

simbol yang akan dikerjakan. Jadi, flow-chart adalah gambaran

aliran data suatu program dengan menggunakan simbol-simbol suatu

fungsi yang telah ditentukan.

Tabel 2.6. Simbol-Simbol program Flow-chart menurut ANSI (American National Standard Institute) (Sumber : Jogiyanto Hartono, 2002: 262)

SIMBOL NAMA FUNGSI

TERMINATOR Permulaan atau akhir program

GARIS ALIR

(FLOW LINE) Arah aliran program

PREPARATION

Proses inisialisasi atau

pemberian harga awal

PROSES

Proses perhitungan atau proses

pengolahan data

INPUT/OUTPUT

DATA

Proses input atau output data,

parameter, informasi

PREDEFINED

PROCESS

Permulaan sub program atau

proses menjalankan sub

program

51

(SUB PROGRAM)

DECISION

Perbandingan pernyataan,

penyeleksian data yang

memberikan pilihan untuk

langkah selanjutnya

ON PAGE

CONNECTOR

Penghubung bagian-bagian

flow-chart yang berada pada

satu halaman

OFF PAGE

CONNECTOR

Penghubung bagian-bagian

flow-chart yang berada pada

halaman berbeda

ANNOTATION

FLAG

Digunakan untuk memberikan

keterangan keterangan guna

memperjelas symbol-simbol

yang lain

Gambar 2.23. akan ditampilkan contoh bagan alir yang

didalamnya terdapat bentuk-bentuk dasar struktur logika.

52

Gambar 2.23. Contoh diagram alir (Sumber : Jogiyanto Hartono, 2002: 668)

mulai

for

selesai

Struktur seleksi IF-THEN-ELSE

ya

ya

ya

tidak

tidak

tidak

Struktur perulangan

DO-WHILE

Struktur perulangan DO-UNTIL

Struktur seleksi IF

Struktur perulangan

FOR

53

2.9. Studi Literatur

Studi literatur merupakan pengembangan instrumen atau penelitian

sejenis yang sudah dibuat sebelumnya. Hal ini dilakukan dengan melihat

hasil riset yang sudah ada kemudian mengembangkannya dengan melihat

kekurangan yang ada pada riset tersebut.

Studi literatur yang dilakukan dalam penelitian ini dapat dilihat

pada table 2.7.

Table 2.7. Studi literature yang digunakan.

No Abstraksi Uraian

1 Pada skripsi yang disusun oleh Marganda Papar

Sihombing (Mahasiswa Teknik Informatika

UNIKOM) dengan judul “PENYIMPANAN

DATA TEKS KEDALAM SUARA DIGITAL

DENGAN METODE LOW BIT CODING“ tahun

2004. Watermarking pada berkas suara telah

menjadi fokus perhatian pada masa sekarang ini.

Hal ini berhubungan dengan transmisi data yang

lebih cepat melalui Internet, yang telah

memungkinkan pertumbuhan berkas suara digital

yang tidak sah. Watermarking memberikan

kemampuan untuk melindungi hak cipta terhadap

produk berkas suara. Yang menjadi masalah

watermarking pada suara terletak pada kualitas

Pada studi diatas peneliti tersebut

menggunakan watermarking untuk

menyisipkan informasi pada hak cipta

sebagai bukti kepemilikan pada file audio

berformat WAV, dengan audio sebagai file

carrier dan file teks bartipe .txt sebagai

input yang berisi infmasi hak cipta. Pada

proses penyisipan dan ekstraksi peneliti

tersebut menggunakan metode low bit

coding. Pada algoritma peneliti

menggunakan algoritma bilangan acak

semu untuk proteksi file audio. Dan pada

tahap pembuatan peneliti menggunakan

bahasa pemograman C dan kopilator yang

54

berkas suara dan watermark yang disisipkan harus

tetap ada setelah mengalami berbagai operasi

berkas suara yang dapat merusak berkas suara

tersebut. Penelitian ini membahas mengenai

watermarking pada berkas suara dengan metode

low bit coding. Transformasi dari dan ke domain

frekuensi pada proses penyisipan dan ekstraksi

tidak dilakukan. Hasil pengujian menunjukkan

bahwa kualitas berkas suara setelah disisipi data

menunjukkan hasil tidak pasti dan data yang

disisipkan kedalam sinyal suara sulit dideteksi oleh

sistem pendengaran manusia.

dipakai adalah Borland C++ Builder.

2 Pada skripsi yang disusun oleh Ratih Purwasih

Sukandi (Mahasiswa Teknik Informatika, UIN)

dengan judul “PERANCANGAN

IMPLEMENTASI TEKNIK

WATERMARKING PADA CITRA DIGITAL”

tahun 2009. Terdapat dua kebutuhan yang

berkaitan dengan penggunaan citra digital, yaitu

kebutuhan verifikasi dan kebutuhan otentikasi

citra. Kebutuhan verifikasi yaitu kebutuhan untuk

mengetahui apakah suatu citra digital sudah

pernah dimanipulasi atau belum, dengan kata lain

untuk mengetahui keaslian suatu citra. Sedangkan

Pada studi diatas peneliti tersebut

menggunakan watermarking untuk

kebutuhan verifikasi dan kebutuhan

otentikasi citra pada file citra digital,

dengan citra digital sebagai file carrier dan

citra digital bertipe sama sebagai input

yang berisi infmasi hak cipta. Pada proses

penyisipan dan ekstraksi peneliti tersebut

menggunakan metode LSB (Least

Significant Bit). Pada algoritma peneliti

menggunakan algoritma AES untuk

proteksi citra digital. Dan pada tahap

55

kebutuhan otentikasi yaitu kebutuhan kepemilikan

(copyright) suatu citra digital. Digital

watermarking adalah teknik untuk menyisipkan

informasi tertentu ke dalam media digital,

penyisipan watermark dilakukan sedemikian rupa

sehingga tidak merusak media digital yang

dilindungi. Proses watermarking yang digunakan

adalah watermark yang bersifat fragile

watermarking, yaitu watermark yang rentan

perubahan/manipulasi. Sehingga ketika suatu citra

yang disisipi fragile watermark dimanipulasi

kemudian diekstrak akan menyebabkan hasil

ekstraksi menjadi citra yang rusak atau tidak valid.

Algoritma yang digunakan adalah AES (Advanced

Encryption Standard) – Rinjdael pada prosedur

penyisipan dan ekstraksi bertujuan untuk proteksi

citra. Algortma watermarking yang digunakan

adalah LSB modification yang sederhana. Aplikasi

ini menggunakan bahasa pemograman Visual

Basic .Net dalam pembuatannya. Untuk

pengembangan aplikasi penulis menggunakan

metode Rapid Application Development (RAD).

Hasil akhir aplkasi berupa aplikasi

WatermarkTools yang berdimensi 640 x 480 pixel

pembuatan peneliti menggunakan bahasa

pemograman visual basic .Net.

56

dan berbasis desktop installer.

3 Pada skripsi yang disusun oleh BAGUS SETHIA

RAHMATULLOH (Mahasiswa Teknik

Informatika UNIKOM) dengan judul

“WATERMARKING MENGGUNAKAN

KUNCI PUBLIK UNTUK VERIFIKASI

CITRA” tahun 2007. Terdapat dua kebutuhan

yang berkaitan dengan penggunaan citra digital,

yaitu kebutuhan verifikasi dan kebutuhan

otentikasi citra. Kebutuhan verifikasi yaitu

kebutuhan untuk mengetahui apakah suatu citra

dijital sudah pernah dimanipulasi atau belum,

dengan kata lain untuk mengetahui keaslian suatu

citra. Sedangkan kebutuhan otentikasi yaitu

kebutuhan kepemilikan (copyright) suatu citra

digital.Digital watermark adalah informasi

kepemilikan suatu arsip dijital. Informasi tersebut

dapat berupa citra, teks, audio, ataupun video.

Untuk kebutuhan verifikasi citra, digunakan

watermark yang bersifat fragile (fragile

watermark),yaitu watermark yang rentan

perubahan/manipulasi. Sehingga ketika suatu citra

yang sudah disisipi fragile watermark dimanipulasi

kemudian diekstrak, akan menyebabkan hasil

Pada studi diatas peneliti tersebut

menggunakan watermarking untuk

kebutuhan verifikasi dan kebutuhan

otentikasi citra pada file citra digital,

dengan citra digital sebagai file carrier dan

citra digital bertipe sama sebagai input

yang berisi infmasi hak cipta. Pada proses

penyisipan dan ekstraksi peneliti tersebut

menggunakan metode LSB (least

Significant Bit). Pada algoritma peneliti

menggunakan algoritma RSA untuk

proteksi citra digital.

57

ekstraksi menjadi citra yang tidak valid. Salah satu

cara agar untuk membuat fragile watermark adalah

dengan menggunakan algoritma RSA pada

prosedur penyisipan watermark dan ekstraksi

watermark. Algoritma watermarking yang

digunakan adalah LSB modification yang

sederhana. Pada prosedur penyisipan watermark,

pemilik citra menggunakan kunci rahasianya untuk

melakukan enkripsi pada citra berwatermark.

Sedangkan pada prosedur ekstraksi watermark,

setiap orang (publik) dapat menggunakan kunci

publik pemilik untuk melakukan dekripsi pada

citra berwatermark untuk mengekstrak watermark

yang disisipkan. Algoritma kriptografi kunci

publik yang digunakan adalah RSA. Sistem

mampu mengenali citra watermark asli apabila

tidak terdapat perubahan pada citra. Sistem dapat

mengekstrak pesan citra tersebut. Sistem mampu

menjaga keamanan suatu citra dan membuat

pegujian kepemilikan suatu citra (Verifikasi).

58

BAB III

METODE PENELITIAN

Untuk penyusunan skripsi ini dibutuhkan data-data serta informasi untuk

mendukung kebenaran materi dan pembahasan. Maka dari itu pada bab ini penulis

akan menguraikan tentang metode yang digunakan dalam penyusunan skripsi.

Seperti yang telah dibahas pada bab 1, dalam pembuatan aplikasi Watermarking

dengan Algoritma AES pada File audio ini, ada beberapa metode yang dilakukan,

yaitu di antaranya :

3.1. Metode Pengumpulan Data

Untuk memenuhi data yang diperlukan dalam penelitian ini, maka

diperlukan data-data dan informasi yang relatif lengkap sebagai bahan

yang dapat mendukung kebenaran materi uraian pembahasan. Adapun

metode pengumpulan data yang digunakan yaitu :

3.1.1. Studi Pustaka

Studi pustaka yaitu metode pengumpulan data dan

informasi dengan mencari dan memperoleh data-data yang

diperlukan dari berbagai buku, e-book, website, serta sumber lainya

yang berkaitan dengan penelitian yang dapat dijadikan acuan

dalam pembahasan ini. Adapun sumber buku-buku, dan website

yang dipakai dalam skripsi ini dapat dilihat pada daftar pustaka.

59

3.1.2. Studi Literatur

Studi literatur merupakan pengembangan instrumen atau

penelitian sejenis yang sudah dibuat sebelumnya. Hal ini dilakukan

dengan melihat hasil riset yang sudah ada kemudian

mengembangkannya dengan melihat kekurangan yang ada pada

riset tersebut.

Studi literatur ini penulis mengunakan tiga studi literatur

seperti yang telah di bahas pada bab II pada tabel 2.7.Berdasarkan

tiga studi literatur tersebut, yang membedakan aplikasi penulis

adalah :

1. Pada aplikasi penulis menggunakan file audio WAV berjenis

PCM sebagai file carrier.

2. Pada pada proses penyisipan dan ekstraksi aplikasi penulis

menggunakan metode low bit coding.

3. Pada enkripsi, algoritma yang digunakan pada aplikasi penulis

menggunakan algoritma AES.

4. Pada data hak cipta yang akan disispkan dan diekstrak berupa

file txt.

3.2. Metode Pengembangan Sistem

Dalam penelitian ini metode pengembangan sistem yang

digunakan adalah model pendekatan Pengembangan Aplikasi Cepat (PAC)

atau Rapid Application Development (RAD). Model RAD penulis gunakan

untuk melakukan pendekatan berorientasi objek terhadap pengembangan

60

sistem perangkat lunak karena model ini akan bekerja dengan baik apabila

diterapkan pada aplikasi berskala kecil. Tujuan yang lain adalah

mempersingkat waktu pengerjaan aplikasi serta proses yang dihasilkan

didapatkan secara cepat dan tepat.

Dalam pengembangan sistem ini penulis menggunakan empat

tahap siklus pengembangan model RAD (Rapid Application

Development). Berikut adalah tahapan-tahapan tersebut :

3.2.1. Fase Perencanaan Syarat-Syarat

Pada fase ini penulis melakukan analisis kebutuhan untuk

pengidentifikasian tujuan aplikasi atau sistem serta untuk

mengidetifikasi syarat-syarat informasi yang ditimbulkan dari

tujuan-tujuan tersebut. Apabila pengetahuan diformulasikan secara

lengkap, maka tahap implementasi dapat dimulai dengan membuat

garis besar masalah, kemudian memecahkan masalah ke dalam

modul-modul. Untuk memudahkan maka harus diidentifikasikan.

• Apa saja informasi yang diberikan.

• Bagaimana kelengkapan data, kelengkapan hardware dan

software yang digunakan.

• Apa yang menjadi output atau hasil kesimpulan.

3.2.2. Fase Perancangan

Pada tahap ini penulis melakukan perancangan proses dan

perancangan antar muka dari aplikasi.

61

3.2.2.1. Perancangan Proses

Pada tahap perancangan proses penulis akan

melakukan perancangan proses-proses yang terjadi dalam

sistem, evaluasi dan memperbaiki sistem agar sesuai

dengan kebutuhan. Agar sistem yang sedang di buat

dapat dimanfaatkan secara optimal. Pada perancangan

proses ini terdapat dua proses yaitu:

1. Proses penyisipan

Proses penyisipan yaitu proses untuk

menyisipkan file ke data audio digital.

2. Proses Ekstraksi

Proses Ekstraksi yaitu proses untuk

mengestrak atau mengambil pesan dalam file audio

berwatermark.

Perancangan proses pada aplikasi ini digambarkan

oleh flowchart. Flow chart merupakan alat yang cukup

efisien untuk menggambarkan proses sistem. Dengan

flow chart, proses digambarkan dengan sederhana

dengan menggunakan simbol-simbol yang mudah

dimengerti. Proses yang akan digambarkan dengan flow

chart adalah proses penyisipan dan ekstraksi.

62

3.2.2.2. Perancangan Antar Muka Pemakai (User Interface)

Antar muka pemakai memberikan fasilitas

komunikasi antar pemakai dan sistem, memberikan

berbagai fasilitas informasi dan berbagai keterangan

yang bertujuan untuk membantu mengarahkan alur

penelusuran masalah sampai ditemukan solusi. Pada

perancangan antar muka terdapat empat perancangan

sebagai berikut :

1. Perancangan form utama

2. Perancangan form ekstraksi

3. Perancangan form about

4. Perancangan menu help

Pada perancangan antar muka pemakai (user

interface) pada aplikasi ini akan digambarkan oleh state

transition diagram.

3.2.3. Fase Konstruksi

Pada tahapan ini penulis melakukan pengkodean terhadap

rancangan-rancangan yang telah didefinisikan ke dalam suatu

bahasa pemograman. Pengkodean yang dilakukan menggunakan

bahasa pemrograman C# yang dibuat dengan menggunakan Visual

Studio 2005.

63

3.2.4. Fase Pelaksanaan

Pada tahapan ini penulis melakukan pengimplementasian

aplikasi, pengujian aplikasi dan analisa hasil pengujian terhadap

aplikasi yang juga bertujuan untuk mengetahui tingkat

keberhasilan dari aplikasi dalam mencapai hasil yang diinginkan.

Pengujian dan analisa hasil pengujian dilakukan berdasarkan :

1. Pengujian spesifikasi sistem : Pengujian spesifikasi sistem yang

dilakukan meliputi pengujian kesesuaian proses, pengujian

kesesuaian data, dan pengujian kualitas file WAV.

2. Pengujian ukuran file terhadap file carrier.

3. Pengujian ketahanan data.

Skema dari Metodologi Penelitian yang dilakukan dalam pengembangan

aplikasi Watermarking dengan algoritma AES pada File Audio ini dapat dilihat

pada gambar 3.5.

64

Gambar 3.1. Metodologi penelitian pengembangan aplikasi watermarking dengan algoritma AES pada file audio.

65

BAB IV

ANALASIS DAN PERANCANGAN

Pada bab ini akan dibahas secara detail dan terperinci mengenai

pengembangan sistem aplikasi watermarking dengan algoritma AES pada file

audio. Dengan menerapkan metodologi penelitian yang telah penyusun uraikan

pada bab sebelumnya.

Pada bab sebelumnya telah dibahas bahwa metode pengembangan system

yang akan digunakan dalam penelitian adalah metode pengembangan system

Rapid Application Development (RAD), metode ini dilakukan dengan pedekatan

berorientasi objek terhadap pengembangan system perangakt lunak karena model

ini akan bekerja dengan baik apabila diterapkan pada aplikasi berskala kecil. Pada

penelitian ini dimulai dari perencanaan syarat-syarat, perancangan pengguna,

konstruksi dan pelaksanaan.

4.1. Fase Perencanaan Syarat-syarat

Perencanaan syarat-syarat terdiri dari analisis kebutuhan, tujuan dan

syarat-syarat. Proses ini dilakukan untuk mengetahui apa saja syarat-syarat

dan kebutuhan yang diperlukan dalam pembuatan aplikasi untuk memenuhi

tujuan dari pembuatan aplikasi ini.

4.1.1. Analisis kebutuhan

Pada tahap ini semua kebutuhan aplikasi didefinisikan sesuai

dengan sasaran yang ingin dicapai. Adapun analisis tersebut

menyangkut tentang masukan (input) dan keluaran (ouput) dari

aplikasi yang akan dibuat.

66

Adapun data-data yang menjadi masukan bagi aplikasi ini

merupakan file audio yang berekstensi .wav, sedangkan informasi hak

cipta yang akan dimasukkan merupakan file teks yang berekstensi .txt,

sedangkan informasi yang diharapkan sebagai keluaran dari aplikasi

ini merupakan file audio yang berekstensi .wav, yang telah disisipi

watermark dengan metode low bit coding yang telah di enkripsi

dengan algoritma AES.

4.1.2. Menentukan Tujuan

Tujuan dari perancangan aplikasi ini adalah membuat suatu

aplikasi watermarking pada file audio yaitu untuk pemberian data

hak cipta pada file audio sebagai pembuktian keaslian file

(otentikasi).

4.1.3. Menentukan Syarat-Syarat

Syarat-syarat untuk mencapai tujuan dalam pengembangan

aplikasi Watermarking dengan algoritma AES pada file audio,

meliputi hal-hal sebagai berikut :

1. Bahasa Pemrograman C#

Bahasa pemrograman C# adalah salah satu bahasa pemrograman

yang mampu membangun aplikasi berbasis desktop. Bahasa

pemrograman C# sudah didesain untuk memberikan kemudahan

bagi pengguna.

67

2. Microsoft Framework .NET 3.5

Microsoft Framework .NET menyediakan semua tool dan

teknologi yang diperlukan untuk membangun aplikasi. Bahasa

pemrograman yang dapat digunakan dan dijalankan diatas

flatform Framework .NET adalah : Visual Basic, C#, J#, C++ dan

lain-lain.

Spesifikasi perangkat lunak dan perangkat keras yang

digunakan penulis dalam perancangan aplikasi ini adalah sebagai

berikut :

Perangkat Lunak :

1. Microsoft Visual Studio 2005

2. Microsoft Framework .NET 3.5

3. DXperience 9.1.5

4. Microsoft Visio 2003

5. Easy CHM v3.78

6. Macromedia Fireworks MX

7. Sigview 2.2.1

8. Xilisoft 2.1.53.901b

9. Photoshop CS2

Perangkat Keras :

1. Processor Intel (R) Pentium (R) 4 CPU 2.80GHz

2. Harddisk 40 GB

3. Memory 512

68

4. Monitor dengan resolusi 1024x768 pixel

5. DVD RW

4.2. Fase Perancangan

Dalam perancangan aplikasi watermarking dengan algoritma AES ini

terdiri atas perancangan proses dan perancangan antar muka. Perancangan

proses dilakukan untuk merancang alur proses di dalam program sedangkan

perancangan antar muka dilakukan untuk mempermudah pengguna

menggunakan aplikasi ini. Tahap perancangan dilakukan untuk

perancangan, evaluasi, dan memperbaiki sistem sesuai dengan kebutuhan,

agar sistem yang sedang di buat dapat dimanfaatkan secara optimal.

4.2.1. Perancangan Proses

Dalam perancangan sistem aplikasi, aplikasi ini

menggabungkan dua teknik keamanan data yaitu watermark dan

Kriptografi. Penggunaan algoritma AES untuk kriptografi karena

algoritma AES mempunyai panjang kunci paling sedikit 128-bit,

maka AES akan tahan terhadap serangan kriptanalis. Dengan

panjang kunci 128-bit maka terdapat 2128 = 3,4x1038 kemungkinan

kunci, yang berarti dibutuhkan waktu bertahun-tahun untuk mencoba

keseluruhan kemungkinan kunci. Penggunaan metode Low Bit

Coding (LSB) untuk teknik watermark dalam aplikasi ini karena

metode yang paling sederhana untuk menyimpan data kedalam data

yang lain. Dengan mengganti bit yang paling tidak penting atau least

significant bit (LSB).

69

Pada perancangan proses aplikasi watermarking dengan

algoritma AES meliputi proses penyisipan pesan dan proses ekstraksi

pesan.

4.2.1.1. Proses Penyisipan

Pada proses penyisipan pesan, pesan di enkripsi

menggunakan algoritma kriptografi simetris yaitu algoritma

AES (Rinjdael), Kemudian cipherteks yang dihasilkan

disisipkan dengan teknik watermarking menggunakan

metode Low Bit Coding ke media penampung. Untuk

memperjelas gambaran proses penyisipan pesan dapat

dilihat pada gambar 4.1.

Gambar 4.1 Proses penyisipan

4.2.1.2. Proses Ekstraksi

Pada proses ekstraksi pesan cipherteks yang

disembunyikan dipisahkan dari media penampung dengan

70

menggunakan metode low bit coding, kemudian diubah

kembali menjadi informasi rahasia yang dapat di baca

melalui proses deskripsi menggunakan algoritma AES

(Rijndael). Untuk memperjelas gambaran proses ekstraksi

pesan dapat dilihat pada gambar 4.2.

Gambar 4.2 Proses ekstraksi

4.2.1.3. Flow-chart Proses Penyisipan dan Ekstraksi Pesan

Pada tahapan ini akan digambarkan alur proses

penyisipan dan ekstraksi pesan dengan menggunakan Flow-

chart. Proses yang akan digambarkan dengan flow chart

adalah proses penyisipan, ekstraksi, enkripsi dan ekstraksi.

71

Gambar 4.3. Flow-chart proses penyisipan pesan

72

Gambar 4.4. Flow-chart proses enkripsi dengan metode AES di sebelah kiri

dan flow-chart proses penyisipan pesan menggunakan metode low bit coding di sebelah kanan

73

Gambar 4.5. Flow-chart proses ekstraksi pesan

74

Gambar 4.6. Flow-chart proses pengambilan pesan menggunakan metode low bit coding di sebelah kiri dan flow-chart proses dekripsi dengan metode AES di sebelah kanan

75

4.2.2. Perancangan Antar Muka

Dalam perancangan antar muka aplikasi watermark dengan

Algoritma AES pada file audio ini, dibuat beberapa halaman

tampilan yang akan ditampilkan.

4.2.2.1. Perancangan Form Utama

Form utama merupakan tampilan utama dalam

program AudioWater yang didalamnya terdapat 2 buah

buttonEdit, 2 buah button, 2 buah textEdit dan satu buah

memoEdit sebagai berikut :

1. Tombol Buka Audio (ButtonEdit) : Berfungsi untuk

mencari file lokasi media penampung (audio).

2. Tombol Simpan Audio (ButtonEdit) : Berfungsi untuk

menyimpan file media penampung (audio) yang telah

disisipi pesan.

3. Tombol Play (SimpleButton) : Berfungsi untuk

memainkan file audio yang akan dijadikan file carrier.

4. Tombol Stop (SimpleButton) : Berfungsi untuk

menghentikan file audio yang dimainkan.

5. Input Teks (MemoEdit1) : Berfungsi untuk menginput

teks yang ingin disisipkan.

Di dalam form utama terdapat juga menu bar dan

toolbar berisi shortcut ke sebuah menu atau sebuah perintah.

76

a. Menu Bar

Menu bar adalah jajaran menu yang berisikan aneka

menu atau sejumlah perintah. Fungsinya di mulai dari atas

ke bawah adalah sebagai beikut.

1. Open (BarButtonItem) : Menu untuk membuka berkas

WAV dan teks.

2. Save (BarButtonItem) : Menu untuk menyimpan file

audio yang akan disispi pesan.

3. About (BarButtonItem) : Menu tentang pejelasan

program secara singkat serta nama penulis.

4. Close (BarButtonItem) : Menu untuk keluar dari

aplikasi.

b. ToolBar

Menu toolbar adalah bar berisi shortcut ke sebuah

menu atau sebuah perintah.

1. Tombol Open (BarButtonItem) : Berfungsi untuk

mencari file lokasi media penampung (audio).

2. Tombol Sisip (BarButtonItem) : Berfungsi untuk

menjalankan proses penyisipan pesan.

3. Tombol Ekstrak (BarButtonItem) : Berfungsi untuk

membuka form ekstrak.

4. Tombol Set Font (BarButtonItem) : Berfungsi untuk

mengatur tampilan teks pada memoEdit

77

5. Tombol Bantuan (BarButtonItem) : Berfungsi untuk

membuka form bantuan untuk pengguna yang

membutuhkan.

6. Tombol Keluar (BarButtonItem) : Berfungsi untuk

keluar dari aplikasi.

Gambar 4.7. Rancangan form utama

78

Gambar 4.8a. State Trantition Diagram

79

Gambar 4.8b. State Trantition Diagram

4.2.2.2. Perancangan Form Ekstrak

Form ekstraks pesan berfungsi untuk mengambil

pesan dari media penampung dan menyimpan pesan yang

sudah dipisahkan dari media penampung. Form ekstraksi

pesan ini dilengkapi dengan dua buah tombol, yaitu:

80

Gambar 4.9. Rancangan form extrac message

1. Tombol Exstrac message (SimpleButton1) : Berfungsi

untuk menjalankan proses pemisahan pesan.

2. Tombol Play (SimpleButton) : Berfungsi untuk

memainkan file audio yang akan dijadikan file carrier.

3. Tombol Stop (SimpleButton) : Berfungsi untuk

menghentikan file audio yang dimainkan

4. Tombol Cancel (SimpleButton2) : Berfungsi untuk

membatalkan proses ekstraksi.

5. Tombol Save Extract Message (ButtonEdit1) :

Berfungsi untuk menyimpan file media penampung

(audio) yang telah disisipi pesan.

4.2.2.3. Perancangan Form About

Form ini berisi tentang pejelasan program secara

singkat serta profil penulis.

81

Gambar 4.10. Rancangan form about

4.2.2.4. Perancangan Form Bantuan

Form ini berfungsi sebagai menu bantuan bagi

pemakai yang belum mengerti tentang bagaimana cara

menggunakan aplikasi AudioWater.

Gambar 4.11. Rancangan form help

82

4.3. Fase Konstruksi

Pada tahap ini dilakukan pengkodean terhadap rancangan-rancangan

yang telah didefinisikan sebelumnya dengan menggunakan bahasa

pemograman C#. dalam melakukan penulisan kode penulis menggunakan

perangkat lunak Microsoft Visual Studio 2005, dan sebagaian kode penulis

mendapatkannya di http://www.codeproject.com.

Dalam pembuatan aplikasi ini terdapat sembilan buah class, yaitu

“EncryptDecrypt.cs”, “FormUtama.cs:, “FormExtract.cs”, “Program.cs”,

“WaveNative.cs”, ”WaveStream.cs”, “WaveUtility.cs”, ‘WaveOut.cs”, dan

“ColorBox.cs”. Class merupakan bagian terpenting pemrograman C# karena

pada intinya pemrograman berorientasi objek menggunakan struktur class

(Jaenudin 2005:27).

Implementasi proses pengkodean dalam aplikasi ini terbagi dua yaitu

tahap menyisipkan pesan ke dalam media penampung dan tahap

pengambilan kembali pesan dari media penampung. Tetapi sebelumnya

pesan harus sudah dienkripsi dulu. Class “EncryptDecrypt.cs” merupakan

class yang berfungsi untuk mengenkripsi pesan sebelum disembunyikan

kedalam media penampung dan medenkripsi kembali pesan setelah

dipisahkan dari media penampung.

Class “WaveNative.cs” berfungsi mengidentifikasi format WAV,

class “WaveStream.cs” untuk mengencode format WAV, class

“WaveOut.cs” berfungsi untuk memainkan file wav. Di dalam class

“WaveUtility.cs” terdapat fungsi untuk menyisipkan pesan rahasia ke dalam

83

media penampung dan fungsi mengambilnya kembali dari media

penampung.

Class “Program.cs”, berfungsi untuk menampilkan form utama pada

awal pemanggilan program. Class “ColorBox.cs” berfungsi untuk merubah

tampilan (skins) pada FormUtama. Calss “FormUtama.cs” dan

“FormExtract” berfungsi untuk mendesain antar muka untuk menghasilkan

program yang menarik. Source Code dapat dilihat di lampiran.

4.4. Fase Pelaksanaan

Dalam tahapan ini akan dilakukan implementasi, pengujian dan

analisis pengujian terhadap aplikasi yang bertujuan untuk mengetahui

tingkat keberhasilan dari aplikasi dalam mencapai hasil yang diinginkan.

4.4.1. Implementasi

Pada tahap ini akan dilakukan pengimplementasian proses

penyisipan dan ekstraksi informasi watermarking dengan agoritma

AES.

4.4.1.1. Cara Penggunaan Aplikasi

Untuk menggunakan aplikasi ini tidak diperlukan cara

instalasi yang khusus ke dalam komputer pengguna, dengan

alasan pengguna hanya mengikuti sedikit alur untuk proses

instalasinya.

Dibawah ini adalah langkah-langkah instalasi aplikasi

AudioWater ke dalam komputer pengguna :

84

1. Pilih program Setup.exe, kemudian akan ada tampilan pembuka

dari proses instalasi ini menggunakan bahasa inggris. Pilih tombol

install untuk melanjutkan instalasi, atau don’t install untuk

membatalkan instalasi.

2. Tampilan informasi proses installasi program, dan aplikasi

AudioWater akan muncul sebagai tanda bahwa proses instalasi

telah berhasil, maka akan terlihat bentuk tampilan seperti gambar

di bawah ini.

4.12. Tampilan aplikasi AudioWater

4.4.1.2. Proses Penyisipan

Untuk melakukan proses penyisipan pesan maka

pengguna harus di form utama. Form utama adalah halaman awal

yang muncul ketika program dijalankan.

85

Gambar 4.13. Tampilan form utama

Langkah-langkah untuk melakukan proses penyisipan

adalah sebagai berikut.

1. Pilih lokasi file audio yang akan dijadikan sebagai media

penampung dengan mengklik tombol open pada

menu toolbar atau pada menu bar.

86

Gambar 4.14. Tampilan open file audio

2. Masukan informasi yang akan disisipkan pada kolom input

teks.

3. Masukan password di kolom kata kunci. Kombinasi huruf

pada password harus unik sehingga tidak mudah ditebak oleh

orang yang tidak berkepentingan. Kemudian masukan kata

kunci yang sama dengan kolom passkey pada kolom confirm

passkey

4. Selanjutnya tentukan lokasi file akhir dengan memilih tombol

save pada menu file atau pada kolom file

87

output.

Gambar 4.15. Tampilan save output

5. Apabila semua kolom telah terisi maka pengguna cukup

menekan tombol insert pada menu toolbar.

6. Jika terdapat kolom yang belum terisi dan pengguna langsung

menekan menu penyisipan maka akan keluar pesan error

provider sebagai berikut :

a. Lokasi media penampung atau carrier belum di tentukan.

88

b. Kolom passkey belum diisi.

c. Kolom confirm passkey belum terisi

d. Kolom confirm passkey tidak sesuai dengan kolom passkey

e. Lokasi file akhir belum ditentukan.

89

7. Proses penyisipan file berakhir ditandai dengan keluarnya

message box yang menyatakan bahwa file telah sukses

disembunyikan.

8. Tombol bantuan berfungsi untuk memberikan bantuan

kepada pengguna. Untuk mendapatkan menu bantuan

pengguna juga dapat menekan tombol “F1” pada keyboard

atau tombol help pada menu toolbar.

9. Untuk keluar dari aplikasi program pengguna dapat menekan

menu keluar maupun tombol “X”

disebelah kanan atas form aplikasi.

4.4.1.3. Proses Ekstraksi

Untuk melakukan proses ekstraksi pesan maka pengguna

harus memilih tombol ekstraksi pada Form utama. Langkahnya

adalah sebagai berikut :

90

1. Tekan tombol ekstrasi pada toolbar dalam form

utama. Kemudian, pilih lokasi file audio yang telah disisipi

oleh pesan rahasia.

Gambar 4.16. Tampilan cari audio

Gambar 4.17. Tampilan form extract

91

2. Masukan password pada kolom passkey sesuai dengan

password penyisipan pesan. Kemudian masukan kata kunci

yang sama dengan kolom passkey pada kolom confirm

passkey.

3. Selanjutnya tentukan lokasi file akhir pesan dengan menekan

tombol pada kolom save extract message.

Gambar 4.18. Tampilan file save output

4. Apabila semua kolom telah terisi maka pengguna cukup

menekan tombol ekstrak message pada form

eksraksi.

5. Jika terdapat kolom yang belum diisi dan pengguna langsung

menekan menu ekstraksi maka akan keluar pesan error provider

seperti berikut :

a. Lokasi media penampung atau carrier belum di tentukan.

92

b. Kolom passkey belum terisi.

c. Kolom confirm passkey belum terisi.

d. Kolom confirm passkey tidak sesuai dengan kolom passkey

e. Lokasi file akhir pesan belum ditentukan.

93

6. Proses ekstraksi pesan berakhir ditandai dengan keluarnya

message box yang menyatakan bahwa file telah sukses

diekstraksi.

7. Tombol bantuan berfungsi untuk memberikan bantuan kepada

pengguna. Untuk mendapatkan menu bantuan pengguna juga

dapat menekan tombol “F1” pada keyboard atau tombol help

pada menu toolbar.

8. Untuk keluar dari aplikasi program pengguna dapat menekan

menu keluar maupun tombol “X” disebelah

kanan atas form aplikasi.

4.4.1.4. Form About

Form about akan muncul ketika pengguna menekan

tombol about pada menu bar. Form ini berisi tentang pejelasan

program secara singkat serta nama penulis.

94

Gambar 4.19. Tampilan form about

4.4.1.5. Form Bantuan

Form bantuan akan muncul ketika pengguna menekan

menu bantuan . Form bantuan juga dapat pengguna

buka dengan menekan tombol “F1” pada keyboard. Form

bantuan ini dibuat dengan menggunakan software HelpScribble.

Tanpilan form bantuan dapat dilihat pada gambar 4.22

95

Gambar 4.20. Tampilan form bantuan

4.4.2. Pengujian Program

Setelah melakukan proses penyembunyian dan ekstraksi file,

maka untuk melihat apakah hasil dari penyembunyian dan ekstraksi

file telah berhasil seperti yang diinginkan akan dilakukan pengujian.

Pengujian dilakukan berdasarkan spesifikasi sistem dan

pengujian ketahanan data. Pengujian spesifikasi sistem yang

dilakukan meliputi pengujian kesesuaian proses, pengujian

kesesuaian data, pengujian ukuran file, dan pengujian kualitas suara.

Pengujian berdasarkan spesifikasi sistem dan ketahanan data

diuraikan menjadi lima faktor pengujian sebagai berikut:

1. Kesesuaian proses, yaitu perangkat lunak dapat melakukan

proses penyisipan dan ekstraksi.

96

2. Kesesuaian data, yaitu pengujian kesesuaian antara data yang

berhasil diekstrak dengan data yang disisipkan.

3. Kualitas suara, yaitu pengujian sama tidaknya suara WAV

berlabel dengan suara WAV asli.

4. Ukuran file terhadap file carrier

5. Ketahanan data terhadap pemrosesan suara WAV berlabel.

Pengujian terhadap proses dilakukan untuk mengetahui

apakah sistem dapat melakukan proses penyisipan dan ekstraksi.

Kriteria pengujian adalah sistem dapat melakukan proses penyisipan

dan ekstraksi.

Pengujian terhadap kesesuaian data dilakukan untuk

mengetahui apakah data yang berhasil diekstrak dari suara WAV

berlabel bersesuaian dengan data yang disisipkan. Kriteria pengujian

adalah data yang berhasil diekstrak dari suara WAV berlabel

bersesuaian dengan data yang disisipkan.

Pengujian kualitas suara WAV berlabel dilakukan secara

subjektif dan objektif. Pengujian dengan cara subjektif, yaitu dengan

mendengarkan langsung suara WAV berlabel dan suara WAV asli

kemudian dibandingkan. Pengujian dengan cara objektif dilakukan

dengan membandingkan grafik sinyal suara WAV asli dengan grafik

sinyal suara WAV berlabel dan dengan melihat korelasi antara suara

WAV asli dengan suara WAV berlabel. Pengujian dengan korelasi

untuk melihat derajat atau hubungan antara suara WAV sebelum

97

disisipi data teks dengan suara WAV setelah disisipi data teks.

Kriteria pengujian adalah berhasil jika data yang telah disisipkan

kedalam suara WAV tidak dapat dideteksi oleh sistem pendengaran

manusia.

Pengujian ketahanan data dilakukan terhadap suara WAV

berlabel. Pengujian ketahanan data yang akan dilakukan dengan

pengujian kompresi, dengan menggunakan aplikasi xilisoft.

Pengujian dengan kompresi dilakukan untuk melihat apakah data

yang terdapat di dalam suara WAV berlabel masih dapat diekstrak

setelah mengalami kompresi. Pengujian kompresi dilakukan dengan

mengubah suara WAV berlabel menjadi suara dalam format (MP3,

AAC, dan midi) dengan ekstensi berkas (.mp3, .aac, dan .midi),

kemudian suara dalam format (MP3, AAC, dan midi) diubah

kembali menjadi suara dalam format WAV (dengan ekstensi berkas

.wav). Kriteria pengujian adalah berhasil jika data dapat diekstrak

setelah suara WAV berlabel dikompres.

Untuk melakukan pengujian, digunakan beberapa buah

berkas suara WAV dengan spesifikasi yang terdapat pada Tabel 6.1.

Tabel 6.1 Tabel spesifikasi file carrier yang akan diuji

No. Nama File Audio WAV Ukuran

Data (byte) Audio Format

1 Rocket Rockers – Hari Untukmu.wav 1321808 PCM

2 RadioHead – Creep.wav 20805150 PCM

98

3 Luna4Melo – First Time 27265582 PCM

4 Andra And The Backbone – Surrender 46886446 PCM

4.4.2.1. Pengujian Spesifikasi Sistem

Pengujian terhadap spesifikasi sistem yaitu pengujian

kesesuaian proses penyisipan dan ekstraksi, pengujian kualitas

dan pengujian kesesuaian data, maka untuk melihat apakah

hasil dari pengujian spesifikasi sistem telah berhasil seperti

yang akan dilakukan langkah-langkah dibawah ini.

1. Buka lokasi tempat file audio yang telah disisipi pesan.

2. File audio yang telah disisipi data masih dapat didengarkan

dengan baik oleh pengguna, tanpa disadari adanya pesan

yang disisipkan dalam file audio.

Gambar 4.21. Spectrum suara file rocketrockers hari untukmu.wav asli

Gambar 4.21 dan 4.22 memperlihatkan spectrum suara file

hari untukmu.wav sebelum disisipi pesan.

99

Gambar 4.22. Memperlihatkan spectrum suara hari untukmu setelah disisipi pesan ”rocket_rockers.txt”.

Dari Kedua gambar diatas tidak tampak adanya perubahan

dari spectrum suara antara file wav sebelum atau pun

sesudah penyisipan pesan. Akan tetapi Gambar 4.23 dan

4.24 akan memperlihatkan spectrum suara setelah

menggunakan filter bandstop yaitu dengan memindahkan

segmen frekuensi.

Gambar 4.23. Spectrum suara hari untukmu.wav dengan

filter bandstop

100

Gambar 4.24. Spectrum suara file hari untukmu.wav yang

sudah disisipi pesan dengan filter bandstop

Dari Gambar 4.23 dan 4.24 terlihat adanya penurunan

intensitas suara setelah disisipi pesan, dari 53 db menjadi -

18 db ditunjukan oleh garis horizontal biru. Untuk lebih

memperjelas, maka dilakukan perbandingan kembali antara

file first time.wav sebelum dan sesudah penyisipan pesan

yang spectrum suaranya akan ditunjukkan Gambar 4.25 dan

4.26.

Gambar 4.25. Spectrum suara file first time.wav asli

101

Gambar 4.26. Spectrum suara first time.wav setelah disisipi pesan

Sama seperti perbandingan sebelumnya kedua gambar

diatas tidak tampak adanya perubahan spektrum suara

antara file wav sebelum atau pun sesudah penyisipan pesan.

Gambar 4.27 dan 4.28 akan memperlihatkan spectrum

suara setelah menggunakan filter bandstop.

Gambar 4.27. Spectrum suara file first time.wav dengan filter

bandstop

102

Gambar 4.28. Spectrum suara first time.wav setelah disisipi

pesan dengan filter bandstop

Dari Gambar 4.27 dan 4.28 terlihat adanya kenaikan

intensitas suara setelah disisipi pesan, dari -720 db menjadi

-270 db ditunjukan oleh garis horizontal biru. Berdasarkan

gambar 4.23, 4.24, 4.27 dan 4.28, terlihat penyisipan pesan

mempengaruhi kualitas suara dengan adanya perubahan

(kenaikan atau penurunan) intensitas suara.

3. Untuk membuka file data yang telah diambil dari file audio,

pengguna bisa langsung membuka kembali seperti

biasanya. Gambar 4.29 menunjukan file pesan sebelum

disisipkan. Gambar 4.30 menunjukan file pesan yang di

enkripsi. Dan Gambar 4.31 menunjukan file pesan yang

diambil kembali dari file carrier.

103

Gambar 4.29. Pesan asli pada file audio hari untukmu

Gambar 4.30. Pesan asli yang telah di enkripsi pada file audio hari untukmu

Gambar 4.31. File pesan yang diambil dari file audio hari untukmu

Dari hasil pengamatan diatas terlihat tidak adanya

perubahan pesan sebelum dan sesudah penyisipan data ke

dalam file audio.

104

Tabel 4.2 Pengujian proses dan kesesuaian data Nama File Audio

WAV

Ukuran

Data (byte)

Secret File Size

(byte)

Penyisipan

Pesan

Ekstraksi

Pesan

Kesesuaian

Data

Rocket Rockers –

Hari Untukmu.wav 1321808

Hari Untuk

mu.txt

529 Berhasil Berhasil Sesuai

RadioHead –

Creep.wav 20805150

Creep.txt 1747 Berhasil Berhasil Sesuai

Luna4Melo – First

Time 27265582

First Time.txt

2068 Berhasil Berhasil Sesuai

Andra And The

Backbone –

Surrender

46886446

Surrender.txt 3490 Berhasil Berhasil Sesuai

4.4.2.2. Pengujian Ukuran File terhadap File Carrier

Pengujian ini bertujuan untuk mengetahui batasan

ukuran pesan yang dapat disisipkan ke dalam file carrier.

Tabel 4.3. Tabel uji ukuran file pesan terhadap file carrier

Nama File Audio WAV Ukuran

Data (byte)

Secret File Size

(byte)

Rocket Rockers – Hari

Untukmu.wav

1321808 Hari Untuk

mu.txt

529

Rocket Rockers – Hari

Untukmu.wav

1321808 Hari Untuk mu2.txt

1616

105

RadioHead – Creep.wav 20805150 Creep.txt 1747

RadioHead – Creep.wav 20805150 Creep2.txt 21674

Luna4Melo – First Time 27265582 First Time.txt 2068

Luna4Melo – First Time 27265582 First Time2.txt 28796

Andra And The Backbone –

Surrender 46886446

Surrender.txt 3490

Andra And The Backbone –

Surrender 46886446

Surrender2.txt 39305

4.4.2.3. Pengujian Ketahanan Data

Pengujian ketahanan data dilakukan untuk mengetahui

ketahanan data dalam file audio. Pengujian ketahanan data

dilakukan dengan mengkompresi menggunakan aplikasi

xilisoft, yaitu dengan mengkompresi suara dalam format WAV

menjadi (MP3, AAC, dan midi) dan kemudian suara dalam

format (MP3, AAC, dan midi) dikompresi kembali menjadi

format WAV, kemudian file suara yang telah kembali menjadi

format WAV diekstrak, untuk mengetahui apakah file suara

yang telah mengalami kompresi dapat diekstrak kembali.

Kriteria pengujian adalah berhasil jika data dapat diekstrak

setelah suara WAV berlabel dikompres.

Langkahnya adalah sebagai berikut :

106

Gambar 4.32. Tampilan aplikasi xilisoft

1. Tekan tombol add . Kemudian, pilih lokasi file audio

yang telah disisipi oleh data hak cipta.

Gambar 4.33. Tampilan add file

2. Apabila kolom telah terisi maka pengguna memilih menu list

pada kolom profile untuk merubah file wav menjadi file (mp3,

AAC, dan midi).

107

Gambar 4.34. Tampilan menu list file profile

3. Apabila semua kolom telah terisi maka pengguna cukup

menekan tombol encode untuk proses merubah file wav

menjadi file (mp3, AAC dan midi).

Gambar 4.35. Tampilan proses encode

4. Ulangi langkah 1 sampai 3 untuk merubah file mp3/midi/aac

menjadi file wav, kemudian file suara yang telah kembali

menjadi format WAV diekstrak, untuk melihat ketahanan data

hak cipta yang disimpan.

108

Tabel 4.4. Tabel uji ketahanan data Nama File Audio WAV Ukuran Data (byte)

R R.wav 1321808

R R_1.wav 1321808

RadioHead.wav 20805150

RadioHead_1.wav 20805150

Luna4Melo.wav 27265582

Luna4Melo_1.wav 27265582

Andra And The Backbone.wav 46886446

Andra And The Backbone_1.wav 46886446

4.4.3. Analisis Hasil Pengujian Program

Dari hasil pengujian yang telah dilakukan, dapat dilakukan

beberapa analisis terhadap hasil pengujian tersebut. Berikut ini

merupakan analisis terhadap hasil pengujian.

4.4.3.1. Analisis Hasil Uji Spesifikasi Sistem

109

Tabel 4.5. Tabel hasil uji spesifikasi sistem Nama File Audio

WAV

Ukuran

Data (byte)

Secret File Size

(byte)

Output

WAV

Ukuran

data

Size

(byte)

Size

(byte)

Rocket Rockers – Hari

Untukmu.wav 1321808

Hari Untuk

mu.txt

529 R R.wav 1321808

Hari Untuk

mu.txt

529

RadioHead –

Creep.wav 20805150

Creep.txt 1747 RadioHead.wav 20805150

Creep.txt 1747

Andra And The

Backbone – Surrender 46886446

First Time.txt 2068 Andra And The

Backbone.wav 46886446

First Time.txt 2068

Luna4Melo – First

Time 27265582

Surrender.txt 3490 Luna4Melo.wav 27265582

Surrender.txt 3490

110

Berdasarkan hasil uji spesifikasi system pada table

di atas, perangkat lunak berhasil untuk setiap faktor

pengujian yang dilakukan. Pada pengujian kesesuaian

proses, menunjukkan bahwa perangkat lunak dapat

melakukan proses penyisipan dan ekstraksi. Proses berhasil

jika data teks yang akan disisipkan kedalam suara WAV

asli memiliki batasan. Perangkat lunak tidak akan dapat

melakukan proses penyisipan jika data teks yang akan

disisipkan kedalam suara WAV melebihi kapasitas yang

dapat ditampung.

Pada pengujian kesesuaian data, data yang berhasil

diekstrak bersesuaian dengan data yang disisipkan, jika

kunci yang digunakan pada saat penyisipan dan ekstraksi

bernilai sama. Ukuran pesan sebelum dan sesudah proses

pengambilan dari file audio juga tidak mengalami

perubahan. Hal ini membuktikan bahwa proses

watermarking dan kriptografi pada file audio tidak

mempengaruhi ukuran file carrier dan file pesan yang

disisipkan. Hal itu disebabkan karena metode LSB hanya

mengubah byte terakhir dari file wav tersebut jadi tidak ada

perubahan ukuran file carrier.

Pada pengujian kualitas suara, menunjukkan bahwa

penyisipan bit-bit data teks kedalam tiap sampel suara

111

WAV mempengaruhi kualitas suara WAV tersebut dengan

tidak pasti. Hal ini karena pada proses penyisipan, bit yang

paling kecil dari sampel suara yang akan diganti dengan bit

data teks kemungkinan akan berubah maupun tidak

berubah. Secara keseluruhan data teks yang disisipkan

sangat sulit dideteksi secara pendengaran, hal ini karena

sampel suara WAV bersifat lokal, yaitu perubahan terhadap

suatu sampel suara WAV tidak berpengaruh terhadap

sampel suara WAV yang lainnya.

4.4.3.2. Analisis Hasil Uji Ukuran File Terhadap File Carrier

Dari tabel 4.6 terlihat bahwa proses penyisipan

hanya dapat dilakukan apabila byte yang tersedia di dalam

file carrier lebih besar dari pada jumlah byte file pesan.

Jadi, semakin besar file carrier maka jumlah byte yang

disediakan untuk menampung pesan akan lebih banyak.

112

Tabel 4.6. Tabel hasil uji ukuran file pesan terhadap file carrier

Nama File Audio WAV Ukuran

Data (byte)

Secret File Size

(byte)

Penyisipan

Pesan

Dibutuhkan

(byte)

Tersedia

(byte)

Rocket Rockers – Hari

Untukmu.wav

1321808 Hari Untuk mu.txt 529 Berhasil 520954 660858

Rocket Rockers – Hari

Untukmu.wav_1

1321808 Hari Untuk mu2.txt 1616 Tidak 1407850 660858

RadioHead – Creep.wav 20805150 Creep.txt 1747 Berhasil 78459965 10402529

RadioHead – Creep.wav_1 20805150 Creep2.txt 21674 Tidak 16960476 10402529

Luna4Melo – First Time 27265582 First Time.txt 2068 Berhasil 10676543 13632745

Luna4Melo – First Time_1 27265582 First Time2.txt 28796 Tidak 21713176 13632745

Andra And The Backbone –

Surrender 46886446

Surrender.txt 3490 Berhasl 22465656 23443177

Andra And The Backbone –

Surrender_1 46886446

Surrender2.txt 39305 Tidak 38132052 23443177

113

4.4.3.3. Analisis Hasil Uji Ketahanan Data

Pada pengujian terhadap kompresi, secara

keseluruhan hasil pengujian menunjukkan data teks tidak

berhasil diekstrak. Hal ini, karena ukuran suara WAV

berlabel setelah dikompres bertambah besar atau berubah,

sehingga proses ekstraksi tidak dapat dilakukan.

Tabel 4.7. Tabel hasil uji ketahanan data wav to mp3

Nama File Audio WAV Ukuran

Data (byte)

Ekstraksi

Pesan

Secret File

RR – Hari Untukmu.wav 1321808 Berhasil Rocker.txt

RR _1.wav 1321808 Tidak kosong

RadioHead.wav 20805150 Berhasil Hidden.txt

RadioHead_1.wav 20805150 Tidak kosong

Luna4Melo.wav 27265582 Berhasil Andra.txt

Luna4Melo_1.wav 27265582 Tidak kosong

Andra And The Backbone.wav 46886446 Berhasl Luna.txt

Andra And The Backbone_1.wav 46886446 Tidak kosong

114

Tabel 4.8. Tabel hasil uji ketahanan data wav to aac

Nama File Audio WAV Ukuran

Data (byte)

Ekstraksi

Pesan

Secret File

RR – Hari Untukmu.wav 1321808 Berhasil Rocker.txt

RR _1.wav 1321808 Tidak kosong

RadioHead.wav 20805150 Berhasil Hidden.txt

RadioHead_1.wav 20805150 Tidak Kosong

Luna4Melo.wav 27265582 Berhasil Andra.txt

Luna4Melo_1.wav 27265582 Tidak Kosong

Andra And The Backbone.wav 46886446 Berhasl Luna.txt

Andra And The Backbone_1.wav 46886446 Tidak Kosong

Tabel 4.9. Tabel hasil uji ketahanan data wav to midi

Nama File Audio WAV Ukuran

Data (byte)

Ekstraksi

Pesan

Secret File

RR – Hari Untukmu.wav 1321808 Berhasil Rocker.txt

RR _1.wav 1321808 Tidak kosong

RadioHead.wav 20805150 Berhasil Hidden.txt

RadioHead_1.wav 20805150 Tidak kosong

Luna4Melo.wav 27265582 Berhasil Andra.txt

Luna4Melo_1.wav 27265582 Tidak kosong

Andra And The Backbone.wav 46886446 Berhasl Luna.txt

Andra And The Backbone_1.wav 46886446 Tidak kosong

115

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Setelah melakukan pembahasan secara teoritis, implementasi, dan

pengujian, serta analisis hasil pengujian, dapat ditarik beberapa kesimpulan

sebagai berikut:

1. Berdasarkan hasil uji spesifikasi sistem, aplikasi ini berhasil melakukan

prosen penyisipan file pesan ke dalam file audio.

2. Berdasarkan hasil uji spesifikasi sistem, aplikasi ini berhasil melakukan

proses ekstraksi file pesan dari dalam file audio.

3. Berdasarkan hasil uji analisis, penyisipan file pesan ke dalam file audio

mempengaruhi kualitas suara yang dihasilkan, dengan adanya perubahan

intensitas suara antara file asli dan file yang sudah disisipi pesan, hal itu

digambarkan oleh gambar.

4. Berdasarkan uji ketahanan data menunjukan data teks tidak berhasil

diekstrak, dimana artinya pesan dalam wav berlabel tidak dapat

diekstrak setelah melalui konversi.

5. Metode low bit coding tidak menambah ukuran berkas suara WAV

setelah disisipi data teks.

6. Berdasarkan hasil uji analisis pada Tabel dapat dinyatakan bahwa file

masukan dan file hasil keluaran memiliki jumlah bit yang sama persis,

116

dimana artinya penyisipan pesan tidak mempengaruhi besar ukuran

pesan awal maupun akhir.

7. Banyaknya data teks yang dapat disisipkan kedalam suara WAV dengan

metode low bit coding bergantung pada banyaknya data suara WAV dan

jenis channel suara WAV.

5.2. Saran

Berdasarkan penelitian yang diperoleh, ada beberapa saran untuk

pengembangan sistem lebih lanjut, sebagai berikut:

1. Untuk pengembangan selanjutnya penyisipan dapat dilakukan pada

sampel suara dengan frekuensi tertentu, yaitu frekuensi yang tidak akan

dibuang pada saat kompresi,

2. Aplikasi hanya menggunakan WAV sebagai media penampung,

diharapkan dapat dikembangkan sehingga dapat menggunakan file MP3,

MIDI dan lain-lain sebagainya.

3. Aplikasi hanya dapat menyisipkan file txt, htm, cs, xml dan rtf ke media

penampung, diharapkan dapat dikembangkan sehingga dapat

menyisipkan berbagai macam file ke dalam media penampung.

117

DAFTAR PUSTAKA

Anonim. “AES”. Artikel diakses pada tanggal 26 Maret 2010 dari

http://students.ceid.upatras.gr/~mprokala/techarticles/cryptography/AES/aes.htm

Anonim. “AES”. Artikel diakses pada tanggal 26 maret 2010 dari

http://id.wikepidia.org/wiki/AES

Anonim. “AES” Artikel diakses pada tanggal dari 01 Maret 2010

http//www.cert.or.id

Anonim. “Analisa”. Artikel diakses pada tanggal 24 februari 2010 dari

http://pusatbahasa.diknas.go.id/kbbi/index.php

Anonim. “Analisis Kualitatif dalamPenelitian Sosial”. Artikel diakses pada

tanggal 24 Februari 2010 dari http://www.um-pwr.ac.id/publikasi/13/analisis-

kualitatif-dalam-penelitian-sosial

Anonim. “WAV” Artikel diakses pada tanggal dari 01 Maret 2010

http://id.wikipedia.org/wiki/wav

Anonim. “Hak Cipta” Artikel diakses pada tanggal dari 01 Maret 2010

http://www.dgip.go.id

Anonim. “Least Significant Bit” Artikel diakses pada tanggal dari 01 Maret 2010

http://informatika.org

Anonim. “Pembajakan” Artikel diakses pada tanggal dari 28 Maret 2010

http://symphonymusic.com/opini/ketika-pembajakantelahdilegalkan/

Ariyus, Doni. Kriptografi Keamanan Data dan Komunikasi. Yogyakarta: Graha

Ilmu, 2006.

118

Ariyus, Doni. Keamanan Multimedia. Yogyakarta: Andi Offset, 2009.

Deitel. C# How to Program, Introducing .net and Web Services. New jersey:

Prentice Hall, 2002.

Febrian, Jack. Kamus Komputer dan Teknologi Informasi. Bandung: Informatika,

2004.

Hartono, Jogiyanto. Pengenalan Komputer. Yogyakarta: Andi Offset, 1999.

Jaenudin. Belajar sendiri .net dengan Visual C# 2005. Yogyakarta: Andi Offset,

2006.

Isnaini, Yusran. Hak Cipta dan Tantangannya di Era Cyber Space. Jakarta:

Ghalia Indonesia, 2009.

Kendall & kendall. Analisis dan Perancangan Sistem. Jakarta: Renhalindo, 2003.

Kurniawan, Agus. Pengenalan Bahasa C#. Jakarta: Project Otak, 2004.

Kurniawan, Yusuf. Kriptografi Keamanan Internet dan Jaringan Komunikasi.

Bandung: Informatika, 2004.

Munir, Renaldi. Kriptografi. Bandung: Informatika, 2006.

Pressman, Roger S. Rekayasa Perangkat Lunak, Pendekatan Praktisi (Buku 1).

Yogyakarta: Andi, 2002.

Rini, Dian Palupi. “Metodologi Pengembangan Sistem Informasi”.

http:/www.ilkom.unsri.ac.id/dosen/dianpalupirini/materi/algo/BAB%20II%20ME

TODOLOGI.pdf. [diakses pada tanggal 24 Februari 2010].

Stalling, William. Cryptography and Network Security, Principles and Practices,

3rded. New Jersey: Prentice Hall, 2003.

119

Supangkat S. H., Kuspriyanto, Juanda, 2000, “Watermarking sebagai Teknik

Penyembunyian Label Hak Cipta Pada Data Digital”, Departemen Teknik

Elektro, Institut Teknologi Bandung.

http://digilib.unikom.ac.id [diakses pada tanggal 01 Maret 2010].

Sutopo, Ariesto Hadi. Analisis dan Desain Berorientasi Objek. Yogyakarta: J & J

Learning,2002.

Telkom. 2009. Wav. [Online] Tersedia :

http://www2.telkom.net/index.php?option=com_glossary&func=view&Item

id=86&catid=39&term=WAV. [1 Februari 2010].

UKP. 2008. Wav. [Online] Tersedia :

http://digilib.petra.ac.id/viewer.php?page=1&submit.x=0&submit.y=0&qual

=high&fname=/jiunkpe/s1/info/2008/jiunkpenss12008264031539555eliminatorch

apter2.pdf. [12 Juni 2009].

Windiaprana Ramelan, I Made Wiryana, Ratih Dewanti. Pengatar Internet.

LePKom Gunadarma, Depok. 2000.

Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio

1

ANALISIS DAN IMPLEMENTASI WATERMARKING DENGAN ALGORITMA AES UNTUK PEMBERIAN DATA HAK CIPTA PADA FILE AUDIO

Muhamad Soleh Program Studi Teknik Informatika

Fakultas Sains dan Teknologi Universitas Islam Negeri

Syarif Hidayatullah Jakarta E-mail [email protected]

Abstrak

Watermarking pada file audio telah menjadi fokus perhatian pada masa sekarang ini. Hal ini berhubungan dengan transmisi data yang lebih cepat melalui Internet, yang telah memungkinkan pertumbuhan file audio digital yang tidak sah. Watermarking memberikan kemampuan untuk melindungi hak cipta terhadap produk file audio. Yang menjadi masalah watermarking pada audio terletak pada kualitas file audio dan watermark yang disisipkan harus tetap ada setelah mengalami berbagai operasi file audio yang dapat merusak file audio tersebut. Penelitian ini membahas mengenai watermarking pada file audio dengan algoritma AES (Advanced Encryption Standard) – Rinjdael pada prosedur penyisipan dan ekstraksi yang bertujuan untuk proteksi. Metode watermarking yang digunakan pada proses penyisipan dan ekstraksi adalah metode low bit coding. Transformasi dari dan ke domain frekuensi pada proses penyisipan dan ekstraksi tidak dilakukan. Hasil pengujian menunjukkan bahwa kualitas file audio setelah disisipi data menunjukkan hasil tidak pasti dan data yang disisipkan kedalam sinyal audio sulit dideteksi oleh sistem pendengaran manusia. Kata Kunci : Watermarking, AES (Advanced Encryption Standard), low bit coding, file audio, hak cipta

Abstract

Watermarking audio files has recently become the focus of much attention. This is primarily due to faster data transmission rates on the Internet, which has allowed the often illegal proliferation of digital audio files. Watermarking may give the ability to enforce copyright protection of digital audio files products. The difficulties in watermarking audio lie in both the desire to preserve file quality and the need for the watermark to remain intact after a number of possibly damaging file operations. This research discusses about watermarking on audio file with AES (Advanced Encryption Standard) – Rinjdael algorithms with embedding procedure and extraction to purpose protection Watermarking method to used embedding process and extraction is low bit coding methode. None of the transformations to and from frequency domain are performed either in embedding or extraction part of the proposed scheme. In experimental tests, the subjective quality evaluation of the algorithm showed that embedded watermark introduces uncertainly and the embedded watermark into audio signal very is difficult to be detected by human auditory system. Key Word : Watermarking, AES (Advanced Encryption Standard), low bit coding, audio file, copyright

1. Pendahuluan Perkembangan teknologi komputer saat ini

telah membawa perubahan bagi kita untuk melakukan akses serta mendistribusikan berbagai informasi dalam bentuk format digital. Sehingga saat ini sering disebut sebagai era digital, atau dunia digital. Dengan perkembangan komputer digital dan perangkat-perangkat lainnya yang serba digital dalam hal ini audio digital, telah membuat data digital semakin banyak digunakan dan mudah

diduplikasi. Sehingga seringkali menimbulkan konflik. Konflik yang sering timbul adalah adanya sengketa antara beberapa pihak yang mengklaim bahwa pihaknya adalah pemilik sah dari sebuah audio digital.

Konflik tersebut yang kemudian

menyebabkan timbulnya kebutuhan untuk melindungi hak kepemilikan (hak cipta) pada file audio dengan memberikan data hak cipta pada audio digital untuk keaslian (otentikasi) pemilik.

Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio

2

Perlindungan hak cipta dengan pengontentifikasian dari isi data audio dapat digunakan untuk membuktikan keaslian dari suatu file audio yang disimpan atau beredar masih asli atau sudah mengalami perubahan. Jika isi data audio yang diekstraksi tidak sama dengan isi data audio asli, maka dapat disimpulkan file audio sudah otentik lagi. Keontentikan kepemilikan juga dapat ditunjukan karena hanya pemilik yang mengetahui kunci untuk mengestrak atau membuka informasi yang disisipkan.

Salah satu cara untuk mengatasi

permasalahan diatas dapat menggunakan teknik audio watermarking dengan kriptografi. Penyisipan informasi watermark dengan algoritma AES ke dalam audio dilakukan sedemikian, sehingga tidak merusak kualitas audio yang telah disisipi informasi hak cipta. Informasi hak cipta ini harus dapat diekstrak untuk pembuktian keaslian atas produk audio digital tersebut.

Penggunaan watermarking dan algoritma

AES secara bersamaan dimaksudkan untuk memberikan keamanan berlapis dalam pengamanan audio.

2. Watermarking

Watermarking atau tanda air bisa diartikan

sebagai suatu teknik penyembunyian data atau informasi “rahasia” ke dalam suatu data lainnya dengan cara “menumpangi” (kadang disebut host data), tanpa orang lain menyadari adanya data tambahan pada data host-nya (Doni Ariyus, 2007:92). Disamping itu, data yang ter-watermark harus tahan (robust) terhadap serangan-serangan, baik secara sengaja maupun tidak sengaja untuk menghilangkan data watermark didalamanya. Watermarking ini memanfaatkan kekurangan-kekurangan sistem indera manusia seperti mata dan telinga (http://digitally1.paume.itb.ac.id). Watermarking merupakan suatu cara untuk penyembunyian atau penanaman data/informasi tertentu (baik hanya berupa catatan umum maupun rahasia) ke dalam suatu data digital lainnya, tetapi tidak diketahui kehadirannya oleh indera manusia (indera penglihatan atau pendengaran), dan mampu menghadapi proses-proses pengolahan sinyal digital sampai pada tahap tertentu.

Jadi watermarking dapat juga diartikan sebagai suatu teknik penyisipan atau penyembunyian data atau informasi “umum

maupun rahasia” ke dalam data digital lainnya (host data) tanpa diketahui adanya data tambahan pada host datanya oleh indera manusia seperti mata dan telinga.

Ada beberapa karakteristik yang

diinginkan dari pengguna watermark pada suatu dokumen, diantaranya tidak dapat terdeteksi (imperceptible), robustness, dan security (Doni Ariyus, 2007:222).

1. Imperceptible : Memberikan karakteristik

watermark agar sebisa mungkin harus tidak dapat terlihat atau berbeda dengan dokumen aslinya. Hal ini dimaksudkan untuk tidak merubah status dokumen yang bernilai tinggi secara hukum maupun komersial.

2. Robustness : Karakteristik ini tergantung aplikasi dari watermark itu sendiri. Apabila digunakan sebagai identifikasi kepemilikan/copyright, watermark harus memilki ketahanan terhadap berbagai macam modifikasi yang mungkin bisa dilakukan untuk merubah/menghilangkan copyright. Jika digunakan untuk mengautentifikasi content, watermark sebisa mungkin bersifat fragile, sehingga apabila isinya telah mengalami perubahan, maka watermark juga akan mangalamu perubahan/rusak, sehingga dapat terdeteksi adanya usaha modifikasi terhadap isi.

3. Security : Teknik watermark harus dapat mencegah usaha-usaha untuk mendeteksi dan memodifikasi informasi watermark yang disisipkan ke dalam dokumen. Kunci watermark menjamin hanya orang yang berhak saja yang dapat melakukan hal tersebut. Namun aspek ini tidak dapat mencegah siapapun untuk membaca dokumen yang bersangkutan.

3. Metode Low-bit-coding

Metode Low-bit-coding adalah cara yang paling sederhana untuk menyimpan data kedalam data yang lain. Dengan mengganti bit yang paling tidak penting atau least significant bit (LSB) pada setiap titik sampling dengan string berkode biner (coded binary string), kita dapat mengkode sejumlah besar data kedalam suara digital. Secara teori, kapasitas saluran adalah 1 kb per detik (1 kbps) per 1 kHz. Kelamahan metode ini adalah lemahnya kekebalan terhadap manipulasi.

Least Significant Bit (LSB) termasuk ke

dalam teknik penyisipan data ranah spasial (waktu), yaitu dengan memodifikasi langsung nilai byte dari

Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio

3

covertext (nilai byte dapat mempresentasikan intensitas atau warna pixel atau amplitudo).

Penyembunyian data dilakukan dengan

mengganti bit-bit data dalam segmen covertext dengan bit-bit dari data yang akan disembunyikan. Pada susunan bit di dalam sebuah byte (1 byte = 8 bit), ada bit yang paling berarti (Most Significant Bit atau MSB) dan bit yang kurang berarti (Least Significant Bit atau LSB), contoh:

Bit yang bisa diganti adalah bit LSB,

karena perubahannya hanya akan mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya. Misalkan byte tersebut menunjukan warna merah, maka perubahan byte tersebut tidak memberi perubahan yang berarti pada warna merah tersebut, karena mata manusia tidak dapat menangkap perubahannya yang sedikit.

4. Advanced Encryption Standard (AES)

Advanced Encryption Standard (AES)

dipublikasikan oleh NIST (National Institute of Standards and Technology) pada tahun 2001. AES merupakan simetri block cipher untuk menggantikan DES (Data Encryption Standard) (Doni Ariyus,2006:84). DES adalah sebuah algoritma kriptografi simetri dengan panjang kunci 56 bit dan blok data 64 bit (Rinaldi Munir, 2004:136). Pada tahun 1990 panjang kunci DES dianggap terlalu pendek dan pada tahun 1998 algoritma DES sudah berhasil dipecahkan dalam 96 hari hingga akhirnya dibuatlah mesin khusus untuk memecahkan algoritma DES (Doni Ariyus, 2006:84).

Dengan alasan tersebut maka, NIST

mengadakan kompetisi untuk standar kriptografi yang terbaru, yang dinamakan AES (Advanced Encryption Standard). Dari hasil seleksi tahap pertama NIST memilih 15 algoritma, dan pada tahap kedua memilih 5 algoritma. NIST akhirnya mengumumkan standar baru pada November 2001. NIST memilih algoritma Rijndael yang dibuat oleh Dr. Vincent Rijmen dan Dr. Joan Daemen kriptografer dari Belgia sebagai algoritma AES (Wiliam Stallings, 2003:140).

4.1. Algoritma AES

Rinjdael mendukung panjang kunci dari

128 sampai 256 bit dengan step 32 bit. Karena AES menetapkan panjang kunci adalah 128, 192, dan 256, maka dikenal sebagai AES-128, AES-192, dan

AES-256, yang perbedaannya akan ditunjukan oleh table 2.1.

Tabel 1. Tiga buah versi AES

(Sumber:Rinaldi Munir, 2006:158)

5. Metodologi penelitian

Metode penelitian yang digunakan adalah :

1. Metode Pengumpulan Data, yaitu :

a. Studi Pustaka

Studi pustaka yaitu metode pengumpulan data dan informasi dengan mencari dan memperoleh data-data yang diperlukan dari berbagai buku, e-book, website, serta sumber lainya yang berkaitan dengan penelitian yang dapat dijadikan acuan dalam penelitian ini. b. Studi Literatur

Studi literatur merupakan pengembangan instrumen atau penelitian sejenis yang sudah dibuat sebelumnya.

2. Metode Pengembangan Sistem

Dalam penelitian ini metode

pengembangan sistem yang digunakan adalah model pendekatan Pengembangan Aplikasi Cepat (PAC) atau Rapid Application Development (RAD). Menggunakan empat tahap siklus pengembangan model RAD (Rapid Application Development).

Gambar 1. Fase-fase RAD James Martin (Sumber : Kendall & Kendall, 2003: 238)

Panjang Kunci (Nk

words)

Ukuran Blok

(Nb words)

Jumlah Putaran

(Nr)

AES-128 4 4 10

AES-196 6 4 12

AES-256 8 4 14

Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio

4

6. Implementasi

Lingkungan yang digunakan untuk membangun perangkat lunak AudioWater adalah lingkungan berbasis Windows. Bahasa pemrograman yang digunakan untuk membangun AudioWater adalah bahasa pemograman C# dan Microsoft Framework .NET 3.5.

Gambar 2. Tampilan form utama

Gambar 3. Tampilan open file audio

.

Gambar 4. Tampilan save output file audio

Gambar 5. Tampilan form extract

Gambar 6. Tampilan file save output text

Gambar 7. Tampilan form about

Gambar 8. Tampilan form bantuan

Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio

5

7. Pengujian

Pengujian dilakukan berdasarkan spesifikasi sistem dan pengujian ketahanan data. Pengujian spesifikasi sistem yang dilakukan meliputi pengujian kesesuaian proses, pengujian kesesuaian data, pengujian ukuran file, dan pengujian kualitas suara. Pengujian berdasarkan spesifikasi sistem dan ketahanan data diuraikan menjadi lima faktor pengujian sebagai berikut:

1. Kesesuaian proses, yaitu perangkat lunak dapat

melakukan proses penyisipan dan ekstraksi. 2. Kesesuaian data, yaitu pengujian kesesuaian

antara data yang berhasil diekstrak dengan data yang disisipkan.

3. Kualitas suara, yaitu pengujian sama tidaknya suara WAV berlabel dengan suara WAV asli.

4. Ukuran file terhadap file carrier 5. Ketahanan data terhadap pemrosesan suara

WAV berlabel.

Pengujian terhadap proses dilakukan untuk mengetahui apakah sistem dapat melakukan proses penyisipan dan ekstraksi. Kriteria pengujian adalah sistem dapat melakukan proses penyisipan dan ekstraksi.

Pengujian terhadap kesesuaian data

dilakukan untuk mengetahui apakah data yang berhasil diekstrak dari suara WAV berlabel bersesuaian dengan data yang disisipkan. Kriteria pengujian adalah data yang berhasil diekstrak dari suara WAV berlabel bersesuaian dengan data yang disisipkan.

Pengujian kualitas suara WAV berlabel

dilakukan secara subjektif dan objektif. Pengujian dengan cara subjektif, yaitu dengan mendengarkan langsung suara WAV berlabel dan suara WAV asli kemudian dibandingkan. Pengujian dengan cara objektif dilakukan dengan membandingkan grafik sinyal suara WAV asli dengan grafik sinyal suara WAV berlabel dan dengan melihat korelasi antara suara WAV asli dengan suara WAV berlabel. Pengujian dengan korelasi untuk melihat derajat atau hubungan antara suara WAV sebelum disisipi data teks dengan suara WAV setelah disisipi data teks. Kriteria pengujian adalah berhasil jika data yang telah disisipkan kedalam suara WAV tidak dapat dideteksi oleh sistem pendengaran manusia.

Pengujian ketahanan data dilakukan

terhadap suara WAV berlabel. Pengujian ketahanan data yang akan dilakukan dengan pengujian

kompresi, dengan menggunakan aplikasi xilisoft. Pengujian dengan kompresi dilakukan untuk melihat apakah data yang terdapat di dalam suara WAV berlabel masih dapat diekstrak setelah mengalami kompresi. Pengujian kompresi dilakukan dengan mengubah suara WAV berlabel menjadi suara dalam format (MP3, AAC, dan midi) dengan ekstensi berkas (.mp3, .aac, dan .midi), kemudian suara dalam format (MP3, AAC, dan midi) diubah kembali menjadi suara dalam format WAV (dengan ekstensi berkas .wav). Kriteria pengujian adalah berhasil jika data dapat diekstrak setelah suara WAV berlabel dikompres.

Untuk melakukan pengujian, digunakan

beberapa buah berkas suara WAV dengan spesifikasi yang terdapat pada Tabel 6.1.

Tabel 2. Tabel spesifikasi file carrier yang

akan diuji

Gambar 9. Spectrum suara file rocketrockers hari

untukmu.wav asli

No Nama File Audio WAV

Ukuran Data (byte)

Audio Format

1 Rocket Rockers – Hari Untukmu.wav 1321808 PCM

2 RadioHead – Creep.wav 20805150 PCM

3 Luna4Melo – First Time 27265582 PCM

4 Andra And The Backbone – Surrender 46886446 PCM

Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio

6

Gambar 10. Memperlihatkan spectrum suara hari

untukmu setelah disisipi pesan ”rocket_rockers.txt”

Gambar 11. Spectrum suara hari untukmu.wav

dengan filter bandstop

Gambar 12. Spectrum suara file hari untukmu.wav

yang sudah disisipi pesan dengan filter bandstop

Gambar 13. Pesan asli pada file audio hari

untukmu

Gambar 14. Pesan asli yang telah di enkripsi pada file audio hari untukmu

Gambar 15. File pesan yang diambil dari file audio

hari untukmu

Tabel 3. Pengujian proses dan kesesuaian data

Nama File Audio WAV

Ukuran Data (byte)

Secret File

Size (byte)

Penyisipan Pesan

Ekstraksi Pesan

Kesesuaian Data

Rocket Rockers – Hari Untukmu.wav 1321808 Hari Untuk

mu.txt 529 Berhasil Berhasil Sesuai

RadioHead – Creep.wav 20805150 Creep.txt 1747 Berhasil Berhasil Sesuai

Luna4Melo – First Time 27265582 First Time.txt 2068 Berhasil Berhasil Sesuai

Andra And The Backbone – Surrender

46886446 Surrender.txt 3490 Berhasil Berhasil Sesuai

Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio

7

Tabel 4. Tabel uji ukuran file pesan terhadap file

carrier.

Tabel 5. Tabel uji ketahanan data

Tabel 6. Tabel hasil uji spesifikasi sistem

Nama File Audio WAV Ukuran Data (byte)

R R.wav 1321808

R R_1.wav 1321808 RadioHead.wav 20805150 RadioHead_1.wav 20805150

Luna4Melo.wav 27265582 Luna4Melo_1.wav 27265582 Andra And The Backbone.wav 46886446 Andra And The Backbone_1.wav 46886446

Nama File Audio WAV

Ukuran Data (byte)

Secret File Size (byte)

Rocket Rockers – Hari Untukmu.wav

1321808 Hari Untuk mu.txt

529

Rocket Rockers – Hari Untukmu.wav

1321808 Hari Untuk mu2.txt

1616

RadioHead – Creep.wav 20805150 Creep.txt 1747

RadioHead – Creep.wav 20805150 Creep2.txt 21674

Luna4Melo – First Time 27265582 First Time.txt 2068

Luna4Melo – First Time 27265582 First

Time2.txt 28796

Andra And The Backbone – Surrender

46886446 Surrender.txt 3490

Andra And The Backbone – Surrender

46886446 Surrender2.txt 39305

Nama File Audio WAV Ukuran Data (byte)

Secret File Size (byte)

Penyisipan Pesan

Dibutuhkan (byte)

Tersedia (byte)

Rocket Rockers – Hari Untukmu.wav

1321808 Hari Untuk mu.txt 529 Berhasil 520954 660858

Rocket Rockers – Hari Untukmu.wav_1

1321808 Hari Untuk mu2.txt

1616 Tidak 1407850 660858

RadioHead – Creep.wav 20805150 Creep.txt 1747 Berhasil 78459965 10402529 RadioHead – Creep.wav_1 20805150 Creep2.txt 21674 Tidak 16960476 10402529

Luna4Melo – First Time 27265582 First Time.txt 2068 Berhasil 10676543 13632745 Luna4Melo – First Time_1 27265582 First Time2.txt 28796 Tidak 21713176 13632745

Andra And The Backbone – Surrender 46886446 Surrender.txt 3490 Berhasl 22465656 23443177

Andra And The Backbone – Surrender_1 46886446

Surrender2.txt 39305 Tidak 38132052 23443177

Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio

8

Tabel 7. Tabel hasil uji ukuran file pesan terhadap file carrier

Tabel 8. Tabel hasil uji ketahanan data wav to mp3

Tabel 9. Tabel hasil uji ketahanan data wav to aac

Nama File Audio WAV

Ukuran Data (byte)

Secret File Size (byte)

Output WAV

Ukuran data

Size (byte)

Size (byte)

Rocket Rockers – Hari Untukmu.wav 1321808 Hari Untuk

mu.txt 529 R R.wav 1321808 Hari Untuk

mu.txt 529

RadioHead – Creep.wav 20805150

Creep.txt 1747 RadioHead.wav 20805150

Creep.txt 1747

Andra And The Backbone – Surrender

46886446 First Time.txt 2068 Andra And The

Backbone.wav 46886446 First Time.txt 2068

Luna4Melo – First Time 27265582

Surrender.txt 3490 Luna4Melo.wav 27265582

Surrender.txt 3490

Nama File Audio WAV

Ukuran Data (byte)

Ekstraksi Pesan

Secret File

RR – Hari Untukmu.wav

1321808 Berhasil Rocker.txt

RR _1.wav 1321808 Tidak kosong

RadioHead.wav 20805150 Berhasil Hidden.txt

RadioHead_1.wav 20805150 Tidak Kosong

Luna4Melo.wav 27265582 Berhasil Andra.txt

Luna4Melo_1.wav 27265582 Tidak Kosong

Andra And The Backbone.wav 46886446 Berhasl Luna.txt

Andra And The Backbone_1.wav 46886446 Tidak Kosong

Nama File Audio WAV

Ukuran Data (byte)

Ekstraksi Pesan

Secret File

RR – Hari Untukmu.wav

1321808 Berhasil Rocker.txt

RR _1.wav 1321808 Tidak kosong

RadioHead.wav 20805150 Berhasil Hidden.txt

RadioHead_1.wav 20805150 Tidak Kosong

Luna4Melo.wav 27265582 Berhasil Andra.txt

Luna4Melo_1.wav 27265582 Tidak Kosong

Andra And The Backbone.wav 46886446 Berhasl Luna.txt

Andra And The Backbone_1.wav 46886446 Tidak Kosong

Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio

9

Tabel 10. Tabel hasil uji ketahanan data wav to midi

8. Kesimpulan dan Saran

8.1. Kesimpulan

Setelah melakukan pembahasan secara teoritis, implementasi, dan pengujian, serta analisis hasil pengujian, dapat ditarik beberapa kesimpulan sebagai berikut:

1. Berdasarkan hasil uji spesifikasi sistem,

aplikasi ini berhasil melakukan prosen penyisipan file pesan ke dalam file audio.

2. Berdasarkan hasil uji spesifikasi sistem, aplikasi ini berhasil melakukan proses ekstraksi file pesan dari dalam file audio.

3. Berdasarkan hasil uji analisis, penyisipan file pesan ke dalam file audio mempengaruhi kualitas suara yang dihasilkan, dengan adanya perubahan intensitas suara antara file asli dan file yang sudah disisipi pesan, hal itu digambarkan oleh gambar.

4. Berdasarkan uji ketahanan data menunjukan data teks tidak berhasil diekstrak, dimana artinya pesan dalam wav berlabel tidak dapat diekstrak setelah melalui konversi.

5. Metode low bit coding tidak menambah ukuran berkas suara WAV setelah disisipi data teks.

6. Berdasarkan hasil uji analisis pada Tabel dapat dinyatakan bahwa file masukan dan file hasil keluaran memiliki jumlah bit yang sama

persis, dimana artinya penyisipan pesan tidak mempengaruhi besar ukuran pesan awal maupun akhir.

7. Banyaknya data teks yang dapat disisipkan kedalam suara WAV dengan metode low bit coding bergantung pada banyaknya data suara WAV dan jenis channel suara WAV.

8.2. Saran

Berdasarkan penelitian yang diperoleh, ada beberapa saran untuk pengembangan sistem lebih lanjut, sebagai berikut:

1. Untuk pengembangan selanjutnya penyisipan

dapat dilakukan pada sampel suara dengan frekuensi tertentu, yaitu frekuensi yang tidak akan dibuang pada saat kompresi,

2. Aplikasi hanya menggunakan WAV sebagai media penampung, diharapkan dapat dikembangkan sehingga dapat menggunakan

3. file MP3, MIDI dan lain-lain sebagainya. 4. Aplikasi hanya dapat menyisipkan file txt,

htm, cs, xml dan rtf ke media penampung, diharapkan dapat dikembangkan sehingga dapat menyisipkan berbagai macam file ke dalam media penampung.

Referensi

[1] Ariyus, Doni. Keamanan Multimedia. Yogyakarta: Andi Offset, 2009.

[2] Ariyus, Doni. Kriptografi Keamanan Data dan Komunikasi. Yogyakarta: Graha Ilmu, 2006.

[3] Munir, Renaldi. Kriptografi. Bandung: Informatika, 2006.

[4] Kendall & kendall. Analisis dan Perancangan Sistem. Jakarta: Renhalindo, 2003.

[5] Stalling, William. Cryptography and Network Security, Principles and Practices, 3rded. New Jersey: Prentice Hall, 2003.

[6] Supangkat S. H., Kuspriyanto, Juanda, 2000, “Watermarking sebagai Teknik Penyembunyian Label Hak Cipta Pada Data Digital”, Departemen Teknik Elektro, Institut Teknologi Bandung. http://digitally1.paume.itb.ac.id

Nama File Audio WAV

Ukuran Data (byte)

Ekstraksi Pesan

Secret File

RR – Hari Untukmu.wav

1321808 Berhasil Rocker.txt

RR _1.wav 1321808 Tidak kosong

RadioHead.wav 20805150 Berhasil Hidden.txt

RadioHead_1.wav 20805150 Tidak kosong

Luna4Melo.wav 27265582 Berhasil Andra.txt

Luna4Melo_1.wav 27265582 Tidak kosong

Andra And The Backbone.wav 46886446 Berhasl Luna.txt

Andra And The Backbone_1.wav 46886446

Tidak kosong

120

LAMPIRAN I

GRAFIK SINYAL SUARA WAV

Spectrum suara file Andra n backbone Surrender.wav Asli

Spectrum suara file Andra n backbone Surrender.wav setelah disispi pesan

121

Spectrum suara Surrender.wav dengan Filter Bandstop

Spectrum suara Surrender.wav dengan Filter Bandstop

122

Spectrum suara file Radio head Creep.wav Asli

Spectrum suara file Radio head Creep.wav setelah disisipi pesan

123

Spectrum suara Creep.wav dengan Filter Bandstop

Spectrum suara Creep.wav dengan Filter Bandstop

124

LAMPIRAN II

FILE INPUT

Pesan asli pada file audio Surrender.wav

Pesan asli yang telah di enkripsi pada file audio Surrender.wav

125

Pesan asli yang diambil pada file audio Surrender.wav

Pesan asli pada file audio first time.wav

Pesan asli yang telah di enkripsi pada file audio first time.wav

126

Pesan asli yang diambil pada file audio first time.wav

Pesan asli pada file audio creep.wav

Pesan asli yang telah di enkripsi pada file audio creep.wav

127

Pesan asli yang diambil pada file audio creep.wav

128

LAMPIRAN III

SOURCE CODE

//Form Utama//

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.IO; using System.Windows.Forms; using System.Diagnostics; using WMPLib; using DevExpress.XtraEditors; using DevExpress.Skins; using DevExpress.XtraBars.Ribbon; using DevExpress.XtraBars.Ribbon.Gallery; using DevExpress.Utils.Drawing; using DevExpress.Utils; using DevExpress.Tutorials.Controls; using System.Security.Cryptography; using AESencryption; using DevExpress.XtraBars; namespace AudioWater { public partial class frmUtama : DevExpress.XtraBars.Ribbon.RibbonForm { System.Drawing.Color myWatermarkColor; System.Drawing.Font myFont; string PassKey2Encrypt = ""; string EncryptKey = ""; long txtfsize; string namekey; string tempmmPesan = null; public frmUtama() { InitializeComponent(); InitSkinGallery(); InitColorGallery(); myFont = mmPesan.Font; mmPesan.Text = "Your Name " + " (C) " +

129

DateTime.Now.Year.ToString() + ", All Rights Reserved" + "\r\n" + "\r\n" + "Judul Lagu : " + "\r\n" + "Penyanyi : " + "\r\n" + "Pencipta : "; tempmmPesan = mmPesan.Text; } //private AudioWater.WaveOutPlayer m_Player; //private AudioWater.WaveFormat m_Format; //private Stream m_AudioStream; private System.Media.SoundPlayer MyPlayer; #region IO Bitmap GetSkinImage(SimpleButton button, int width, int height, int indent) { Bitmap image = new Bitmap(width, height); using (Graphics g = Graphics.FromImage(image)) { StyleObjectInfoArgs info = new StyleObjectInfoArgs(new GraphicsCache(g)); info.Bounds = new Rectangle(0, 0, width, height); button.LookAndFeel.Painter.GroupPanel.DrawObject(info); button.LookAndFeel.Painter.Border.DrawObject(info); info.Bounds = new Rectangle(indent, indent, width - indent * 2, height - indent * 2); button.LookAndFeel.Painter.Button.DrawObject(info); } return image; } private void rgbiSkins_Gallery_ItemClick(object sender, DevExpress.XtraBars.Ribbon.GalleryItemClickEventArgs e) { DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle(e.Item.Caption); } private void rgbiSkins_Gallery_InitDropDownGallery(object sender, DevExpress.XtraBars.Ribbon.InplaceGalleryEventArgs e) { e.PopupGallery.CreateFrom(rgbiSkins.Gallery); e.PopupGallery.AllowFilter = false; e.PopupGallery.ShowItemText = true; e.PopupGallery.ShowGroupCaption = true; e.PopupGallery.AllowHoverImages = false; foreach (GalleryItemGroup galleryGroup in e.PopupGallery.Groups) foreach (GalleryItem item in galleryGroup.Items) item.Image = item.HoverImage; e.PopupGallery.ColumnCount = 2; e.PopupGallery.ImageSize = new Size(70, 36); }

130

void InitColorGallery() { foreach (Color color in DevExpress.XtraEditors.Popup.ColorListBoxViewInfo.WebColors) { if (color == Color.Transparent) continue; GalleryItem item = new GalleryItem(); item.Caption = color.Name; item.Tag = color; item.Hint = color.Name; } foreach (Color color in DevExpress.XtraEditors.Popup.ColorListBoxViewInfo.SystemColors) { GalleryItem item = new GalleryItem(); item.Caption = color.Name; item.Tag = color; } } #endregion #region Media Player private void btnPlay_Click(object sender, EventArgs e) { MyPlayer = new System.Media.SoundPlayer(); MyPlayer.SoundLocation = btnBukaAudio.Text; MyPlayer.Play(); } private void btnStop_Click_1(object sender, EventArgs e) { MyPlayer.Stop(); } #endregion #region SkinGallery void InitSkinGallery() { SimpleButton imageButton = new SimpleButton(); foreach (SkinContainer cnt in SkinManager.Default.Skins) { imageButton.LookAndFeel.SetSkinStyle(cnt.SkinName); GalleryItem gItem = new GalleryItem(); int groupIndex = 0; if (cnt.SkinName.IndexOf("Office") > -1) groupIndex = 1; rgbiSkins.Gallery.Groups[groupIndex].Items.Add(gItem); gItem.Caption = cnt.SkinName;

131

gItem.Image = GetSkinImage(imageButton, 32, 17, 2); gItem.HoverImage = GetSkinImage(imageButton, 70, 36, 5); gItem.Caption = cnt.SkinName; gItem.Hint = cnt.SkinName; rgbiSkins.Gallery.Groups[1].Visible = false; } } private void frmUtama_Load(object sender, EventArgs e) { ribbonControl1.ForceInitialize(); foreach (DevExpress.Skins.SkinContainer skin in DevExpress.Skins.SkinManager.Default.Skins) { BarCheckItem item = ribbonControl1.Items.CreateCheckItem(skin.SkinName, false); item.Tag = skin.SkinName; item.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(OnPaintStyleClick); } } void OnPaintStyleClick(object sender, ItemClickEventArgs e) { defaultLookAndFeel1.LookAndFeel.SetSkinStyle(e.Item.Tag.ToString()); } #endregion #region Set Font private void bbiSetFont_ItemClick(object sender, ItemClickEventArgs e) { // default the current font and color to that // used in the watermark textbox FontDialog fontDialog1 = new FontDialog(); fontDialog1.ShowColor = true; fontDialog1.Font = mmPesan.Font; fontDialog1.Color = mmPesan.ForeColor; if (fontDialog1.ShowDialog() != DialogResult.Cancel) { myFont = fontDialog1.Font; myWatermarkColor = fontDialog1.Color; mmPesan.Font = fontDialog1.Font; mmPesan.ForeColor = fontDialog1.Color; } } #endregion

132

#region ColorGallery private void gddFontColor_Gallery_CustomDrawItemImage(object sender, GalleryItemCustomDrawEventArgs e) { Color clr = (Color)e.Item.Tag; using (Brush brush = new SolidBrush(clr)) { e.Cache.FillRectangle(brush, e.Bounds); e.Handled = true; } } #endregion #region GalleryItemsChecked GalleryItem GetColorItemByColor(Color color, BaseGallery gallery) { foreach (GalleryItemGroup galleryGroup in gallery.Groups) foreach (GalleryItem item in galleryGroup.Items) if (item.Caption == color.Name) return item; return null; } #endregion #region Watermarking private void bbiSisip_ItemClick_1(object sender, ItemClickEventArgs e) { if (btnBukaAudio.Text == null) { MessageBox.Show("Pilih File Carrier!!!"); } else if (mmPesan.Text.Length <= 92) { MessageBox.Show("Jangan lupa isi data audio!!!"); } else if (txtPasskey.Text.Length == 0) { MessageBox.Show("Jangan lupa ketik password!!!"); } else if (txtConfirmPasskey.Text.Length == 0) { MessageBox.Show("Jangan lupa ketik password confirm!!!"); } else if (btnSaveFileAudio.Text == null)

133

{ MessageBox.Show("Pilih Lokasi file!!!"); } //string ciphertext; try { // Encrypt Message using AES Encryption AES AESencryption = new AES(txtConfirmPasskey.Text); AES dos = new AES("456"); dos.Phrase = "tes"; string te = mmPesan.Text; string te1 = dos.Encrypt(te); Stream sourceStream = null; FileStream destinationStream = null; WaveStream audioStream = null; //create a stream that contains the message, preceeded by its length Stream messageStream = GetMessageStream(); //open the key file Stream keyStream = new FileStream("D:\\" + txtConfirmPasskey.Text + ".txt", FileMode.Open); try { long Samples = AudioWater.WAVFunction.CheckKeyForMessage(keyStream, messageStream.Length); if (Samples > Int32.MaxValue) { throw new Exception("Message too long, this message/key combination requires " + Samples + " samples, only " + Int32.MaxValue + " samples are allowed."); } //Now we open the WAV file sourceStream = new FileStream(btnBukaAudio.Text, FileMode.Open); //Display wait cursor when process in progress this.Cursor = Cursors.WaitCursor; //Create output WAV file destinationStream = new FileStream(btnSaveFileAudio.Text, FileMode.Create); //copy the carrier file's header audioStream = new WaveStream(sourceStream, destinationStream); if (audioStream.Length <= 0) {

134

throw new Exception("Invalid WAV file"); } //Check if there are enough samples in the carrier if (Samples > audioStream.CountSamples) { String errorReport = "The WAV file is too small for this message and Pass Key!\r\n" + "Samples available: " + audioStream.CountSamples + "\r\n" + "Samples needed: " + Samples; throw new Exception(errorReport); } //If everything is OK then we hide the message in destination WAV file AudioWater.WAVFunction utility = new AudioWater.WAVFunction(audioStream, destinationStream); utility.Hide(messageStream, keyStream); MessageBox.Show(te1,"Cipher Result Output",MessageBoxButtons.OK,MessageBoxIcon.Information); MessageBox.Show("Process Complete...!!", "Congratulation",MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { this.Cursor = Cursors.Default; MessageBox.Show(ex.Message); } finally { if (keyStream != null) { keyStream.Close(); } if (messageStream != null) { messageStream.Close(); } if (audioStream != null) { audioStream.Close(); } if (sourceStream != null) { sourceStream.Close(); } if (destinationStream != null) { destinationStream.Close(); } this.Cursor = Cursors.Default; //mmPesan.ResetText(); txtConfirmPasskey.ResetText(); txtPasskey.ResetText(); btnSaveFileAudio.ResetText(); btnBukaAudio.ResetText(); lbl_FileSize.ResetText(); lbl_textsize.ResetText(); lblPasskey.ResetText(); string fpath = "C:\\Program Files\\" + namekey +".txt"; StreamWriter strwrite = new StreamWriter(fpath); strwrite.Write(mmPesan.Text); strwrite.Close(); mmPesan.Text = "Your Name " + char.ConvertFromUtf32(169).ToString() + " " + DateTime.Now.Year.ToString() + ", All Rights Reserved" + "\r\n" + "\r\n" + "Judul Lagu : " + "\r\n" + "Penyanyi : " + "\r\n" + "Pencipta :";

135

} } catch { } } private void bbiEkstraksi_ItemClick(object sender, ItemClickEventArgs e) { RibbonSimplePad.ExtractDialog ds = new RibbonSimplePad.ExtractDialog(); ds.ShowDialog(); } #endregion #region Help and Close of the Application private void bbiHelp_ItemClick(object sender, ItemClickEventArgs e) { System.Diagnostics.Process.Start("D:\\Menu HElp\\aw.chm"); } private void bbiKeluar_ItemClick(object sender, ItemClickEventArgs e) { this.Close(); } private void barButtonItem2_ItemClick(object sender, ItemClickEventArgs e) { this.Close(); } private void barButtonItem5_ItemClick(object sender, ItemClickEventArgs e) { DevExpress.Utils.About.frmAbout dlg = new DevExpress.Utils.About.frmAbout("Audio Watermarking Version 1.0" + "\r\n" + " Created by :" + "\r\n" + "Muhammad Soleh" ); dlg.ShowDialog(); } #endregion private Stream GetMessageStream() { BinaryWriter messageWriter = new BinaryWriter(new MemoryStream()); //messageWriter.Write(EncryptMSG.Length); messageWriter.Write(mmPesan.Text.Length); //messageWriter.Write(Encoding.ASCII.GetBytes(EncryptMSG)); messageWriter.Write(Encoding.ASCII.GetBytes(mmPesan.Text));

136

messageWriter.Seek(0, SeekOrigin.Begin); return messageWriter.BaseStream; } private Stream GetPassKeyStream() { BinaryWriter messageWriter = new BinaryWriter(new MemoryStream()); messageWriter.Write(EncryptKey.Length); messageWriter.Write(Encoding.ASCII.GetBytes(EncryptKey)); messageWriter.Seek(0, SeekOrigin.Begin); return messageWriter.BaseStream; } private string GetFileExtension(string filename) { return filename.Substring(filename.Length - 3, 3); } private void mmPesan_Leave(object sender, EventArgs e) { // Second method to measure text size // // After user input text, we save the text into Temp text file and // // measure the text file // string fpath = System.IO.Path.GetFileNameWithoutExtension(btnBukaAudio.Text); StreamWriter strwrite = new StreamWriter("D:\\" + fpath + ".txt"); strwrite.Write(mmPesan.Text); strwrite.Close(); FileInfo txtfinfo = new FileInfo("D:\\" + fpath + ".txt"); txtfsize = txtfinfo.Length; lbl_textsize.Text = txtfsize.ToString() + " bytes"; } private void txtPasskey_Leave(object sender, EventArgs e) { PassKey2Encrypt = txtPasskey.Text; } private void txtConfirmPasskey_Leave(object sender, EventArgs e) { string passconfirm; string pathkey = "D:\\" + txtConfirmPasskey.Text + ".txt"; passconfirm = txtConfirmPasskey.Text; if (PassKey2Encrypt == null) goto exit_failure; if (PassKey2Encrypt != passconfirm) { MessageBox.Show("PassKey didn't match...!!"); txtConfirmPasskey.ResetText(); txtPasskey.ResetText(); goto exit_failure;

137

} if (passconfirm.Length <= 5) { lblPasskey.Text = "Poor PassKey"; System.IO.StreamWriter file = new StreamWriter(pathkey, true); file.Write(passconfirm.ToString()); file.Close(); } else { lblPasskey.Text = "Good PassKey"; System.IO.StreamWriter file = new StreamWriter(pathkey, true); file.Write(passconfirm.ToString()); file.Close(); } goto exit_success; exit_failure: { MessageBox.Show("Passkey Didn't match, reach this section"); } exit_success: { } } private void barButtonItem1_ItemClick(object sender, ItemClickEventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "WAV audio file (*.wav)|*.wav"; dlg.Title = "Open WAV audio file"; try { if (dlg.ShowDialog() == DialogResult.OK) { btnBukaAudio.Text = dlg.FileName.ToString(); FileInfo finfo = new FileInfo(btnBukaAudio.Text); string extension = finfo.Extension.ToString(); if (extension != "wav" || extension != "WAV") { //goto EXIT_FAILURE; } long fsize = finfo.Length; lbl_FileSize.Text = fsize.ToString() + " bytes"; goto EXIT_SUCCESS; } } catch { goto EXIT_SUCCESS; } //EXIT_FAILURE: //{ MessageBox.Show(" Must be WAV format...!! "); }

138

EXIT_SUCCESS: { } //OpenFile(); } private void btnBukaAudio_MouseClick(object sender, MouseEventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "WAV audio file (*.wav)|*.wav"; dlg.Title = "Open WAV audio file"; try { if (dlg.ShowDialog() == DialogResult.OK) { btnBukaAudio.Text = dlg.FileName.ToString(); FileInfo finfo = new FileInfo(btnBukaAudio.Text); string extension = finfo.Extension.ToString(); if (extension != "wav" || extension != "WAV") { //goto EXIT_FAILURE; } long fsize = finfo.Length; lbl_FileSize.Text = fsize.ToString() + " bytes"; goto EXIT_SUCCESS; } } catch { goto EXIT_SUCCESS; } //EXIT_FAILURE: //{ MessageBox.Show(" Must be WAV format...!! "); } EXIT_SUCCESS: { } //OpenFile(); } private void bbiBukaAudio_ItemClick(object sender, ItemClickEventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "WAV audio file (*.wav)|*.wav"; dlg.Title = "Open WAV audio file"; try { if (dlg.ShowDialog() == DialogResult.OK) { btnBukaAudio.Text = dlg.FileName.ToString(); FileInfo finfo = new FileInfo(btnBukaAudio.Text); string extension = finfo.Extension.ToString();

139

if (extension != "wav" || extension != "WAV") { //goto EXIT_FAILURE; } long fsize = finfo.Length; lbl_FileSize.Text = fsize.ToString() + " bytes"; goto EXIT_SUCCESS; } } catch { goto EXIT_SUCCESS; } //EXIT_FAILURE: //{ MessageBox.Show(" Must be WAV format...!! "); } EXIT_SUCCESS: { } } private void btnSaveFileAudio_MouseClick(object sender, MouseEventArgs e) { SaveFileDialog Savedlg = new SaveFileDialog(); Savedlg.Filter = "WAV audio file (*.wav)|*.wav"; Savedlg.Title = "Save WAV audio file"; try { if (Savedlg.ShowDialog() == DialogResult.OK) { btnSaveFileAudio.Text = Savedlg.FileName.ToString(); FileInfo finfo = new FileInfo(btnSaveFileAudio.Text); namekey = System.IO.Path.GetFileNameWithoutExtension(finfo.ToString()); System.IO.StreamWriter writekey = new StreamWriter("D:\\" + namekey + ".txt"); RibbonSimplePad.AWM_Class AWMClass = new RibbonSimplePad.AWM_Class(); AWMClass.setpassingkey("D:\\" + namekey + ".txt"); writekey.Write(txtConfirmPasskey.Text); writekey.Close(); } } catch { /*goto EXIT_SUCCESS;*/ } } private void barButtonItem4_ItemClick(object sender, ItemClickEventArgs e) { SaveFileDialog Savedlg = new SaveFileDialog(); Savedlg.Filter = "WAV audio file (*.wav)|*.wav"; Savedlg.Title = "Save WAV audio file"; try { if (Savedlg.ShowDialog() == DialogResult.OK) {

140

btnSaveFileAudio.Text = Savedlg.FileName.ToString(); FileInfo finfo = new FileInfo(btnSaveFileAudio.Text); namekey = System.IO.Path.GetFileNameWithoutExtension(finfo.ToString()); System.IO.StreamWriter writekey = new StreamWriter("D:\\" + namekey + ".txt"); RibbonSimplePad.AWM_Class AWMClass = new RibbonSimplePad.AWM_Class(); AWMClass.setpassingkey("D:\\" + namekey + ".txt"); writekey.Write(txtConfirmPasskey.Text); writekey.Close(); } } catch { /*goto EXIT_SUCCESS;*/ } } private void barButtonItem6_ItemClick(object sender, ItemClickEventArgs e) { DevExpress.Utils.About.frmAbout dlg = new DevExpress.Utils.About.frmAbout("Audio Watermarking Version 1.0" + "\r\n" + " Created by :" + "\r\n" + "Muhammad Soleh"); dlg.ShowDialog(); } private void bbiSaveOutput_ItemClick(object sender, ItemClickEventArgs e) { SaveFileDialog Savedlg = new SaveFileDialog(); Savedlg.Filter = "WAV audio file (*.wav)|*.wav"; Savedlg.Title = "Save WAV audio file"; try { if (Savedlg.ShowDialog() == DialogResult.OK) { btnSaveFileAudio.Text = Savedlg.FileName.ToString(); FileInfo finfo = new FileInfo(btnSaveFileAudio.Text); namekey = System.IO.Path.GetFileNameWithoutExtension(finfo.ToString()); System.IO.StreamWriter writekey = new StreamWriter("D:\\" + namekey + ".txt"); RibbonSimplePad.AWM_Class AWMClass = new RibbonSimplePad.AWM_Class(); AWMClass.setpassingkey("D:\\" + namekey + ".txt"); writekey.Write(txtConfirmPasskey.Text); writekey.Close(); } } catch { /*goto EXIT_SUCCESS;*/ } } } }

141

//Form Ekstraksi//

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using AESencryption; using AudioWater; using DevExpress.XtraBars.Ribbon; using DevExpress.XtraBars.Ribbon.Gallery; using DevExpress.Utils.Drawing; using DevExpress.Utils; using DevExpress.Tutorials.Controls; using System.Security.Cryptography; using AESencryption; using DevExpress.XtraBars; namespace RibbonSimplePad { public partial class ExtractDialog : DevExpress.XtraBars.Ribbon.RibbonForm { string EPassKey, PassKeyConfirm, pathfile, savepathfile, pathkey, contentkey; public ExtractDialog() { InitializeComponent(); } private void ExtractDialog_Load(object sender, EventArgs e) { if (status.Text == "1") { OpenFileDialog Extractdlg = new OpenFileDialog(); Extractdlg.Filter = "WAV audio file (*.wav)|*.wav"; Extractdlg.Title = "Open WAV audio file to extract message"; try { if (Extractdlg.ShowDialog() == DialogResult.OK) { txtAudioWater.Text = Extractdlg.FileName.ToString(); }

142

else { this.Close(); } } catch { } } } private Stream GetPassKeyStream() { BinaryWriter messageWriter = new BinaryWriter(new MemoryStream()); messageWriter.Write(txtExtractPassKey.Text.ToString()); messageWriter.Write(Encoding.ASCII.GetBytes(txtExtractPassKey.Text.ToString())); messageWriter.Seek(0, SeekOrigin.Begin); return messageWriter.BaseStream; } private void simpleButton2_Click(object sender, EventArgs e) { this.Close(); } private void simpleButton1_Click(object sender, EventArgs e) { if (txtExtractPassKey.Text != txtExtractcfrmPassKey.Text) { MessageBox.Show("PassKey didn't match...!!"); //txtExtractcfrmPassKey.ResetText(); //txtExtractPassKey.ResetText(); goto Exit_Failure; } else if (txtExtractPassKey.Text.Length == 0) { MessageBox.Show("Jangan lupa ketik password confirm!!!"); } else if (txtExtractcfrmPassKey.Text.Length == 0) { MessageBox.Show("Jangan lupa ketik password!!!"); } else if (btneditPathExtractMsg.Text == null) { MessageBox.Show("Please choose path where extract message to be stored"); btneditPathExtractMsg.ResetText(); txtExtractcfrmPassKey.ResetText(); txtExtractPassKey.ResetText(); goto Exit_Failure; } AES AESencryption = new AES(txtExtractcfrmPassKey.Text);

143

//If everything is Okay, then start the extraction FileStream sourceStream = null; WaveStream audioStream = null; //create an empty stream to receive the extracted message MemoryStream messageStream = new MemoryStream(); //open the key file Stream keyStream = new FileStream(pathkey, FileMode.Open); try { //Open Audio WAV file sourceStream = new FileStream(pathfile, FileMode.Open); audioStream = new WaveStream(sourceStream); AudioWater.WAVFunction utility = new AudioWater.WAVFunction(audioStream); //Extract Message from WAV audio File utility.Extract(messageStream, keyStream); messageStream.Seek(0, SeekOrigin.Begin); FileStream CreateFile = new FileStream(savepathfile, FileMode.Create); StreamWriter WriteFile = new StreamWriter(CreateFile); StreamReader ReadFile = new StreamReader(messageStream); byte[] buffer = new byte[messageStream.Length]; messageStream.Read(buffer, 0, buffer.Length); CreateFile.Write(buffer, 0, buffer.Length); CreateFile.Close(); StreamReader Read = new StreamReader(savepathfile); ////RibbonSimplePad.AWM_Class AWMCLASS = new RibbonSimplePad.AWM_Class(); string tmp = Read.ReadToEnd(); ////string tmpkey = AWMCLASS.passingkey(); Read.Close(); //read keyfile try { // Extract Message from audio WAV but it's still Encrypted.. We must get Decrypt it first..!! string PlainResult = tmp; string pathkey2 = System.IO.Path.GetFileNameWithoutExtension(txtAudioWater.Text); StreamReader ReadKey = new StreamReader("C:\\Program Files\\"+pathkey2+".txt"); contentkey = ReadKey.ReadToEnd(); ReadKey.Close(); System.IO.StreamWriter appendfile = new StreamWriter(btneditPathExtractMsg.Text); appendfile.Write(contentkey); appendfile.Close(); status.Text = "0"; MessageBox.Show("Extract Finished..!!"); this.Close(); } catch

144

{ System.IO.File.Delete(savepathfile); MessageBox.Show("Pass Key error or didn't match with previous one.. Please insert correct Pass Key.","Error",MessageBoxButtons.OK,MessageBoxIcon.Error); } } catch (Exception ex) { this.Cursor = Cursors.Default; MessageBox.Show(ex.ToString()); } finally { if (keyStream != null) { keyStream.Close(); } if (messageStream != null) { messageStream.Close(); } if (audioStream != null) { audioStream.Close(); } if (sourceStream != null) { sourceStream.Close(); } this.Cursor = Cursors.Default; } Exit_Failure: { } } private void txtExtractcfrmPassKey_Leave(object sender, EventArgs e) { PassKeyConfirm = txtExtractcfrmPassKey.Text; if (PassKeyConfirm == null) { MessageBox.Show("PassKey cannot be empty.. Please insert PassKey to Continue", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); txtExtractcfrmPassKey.ResetText(); txtExtractPassKey.ResetText(); } if (PassKeyConfirm != contentkey) { MessageBox.Show("PassKey didn't match...!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); txtExtractcfrmPassKey.ResetText(); txtExtractPassKey.ResetText(); } } private void txtExtractPassKey_Leave(object sender, EventArgs e) { EPassKey = txtExtractPassKey.Text; } private void txtAudioWater_TextChanged(object sender, EventArgs e) { try

145

{ txtAudioWater.Text = txtAudioWater.Text; FileInfo pathinfo = new FileInfo(txtAudioWater.Text); pathfile = pathinfo.ToString(); pathkey = System.IO.Path.GetFileNameWithoutExtension(pathfile); pathkey = "D:\\" + pathkey + ".txt"; StreamReader ReadKey = new StreamReader(pathkey); contentkey = ReadKey.ReadToEnd(); ReadKey.Close(); } catch { } } private void txtAudioWater_EditValueChanged(object sender, EventArgs e) { } private void btneditPathExtractMsg_ButtonPressed(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e) { SaveFileDialog SaveFile = new SaveFileDialog(); SaveFile.Filter = "Text File (*.txt)|*.txt"; SaveFile.Title = "Insert File to save output"; try { if (SaveFile.ShowDialog() == DialogResult.OK) { FileInfo pathinfo = new FileInfo(SaveFile.FileName.ToString()); savepathfile = pathinfo.ToString(); btneditPathExtractMsg.Text = savepathfile.ToString(); status.Text = "0"; } else { this.Close(); } } catch { } } private void btneditPathExtractMsg_MouseEnter(object sender, EventArgs e) { // SaveFileDialog SaveFile = new SaveFileDialog(); // SaveFile.Filter = "Text File (*.txt)|*.txt"; // SaveFile.Title = "Insert File to save output"; // try // { // if (SaveFile.ShowDialog() == DialogResult.OK) // {

146

// FileInfo pathinfo = new FileInfo(SaveFile.FileName.ToString()); // savepathfile = pathinfo.ToString(); // btneditPathExtractMsg.Text = savepathfile.ToString(); // status.Text = "0"; // } // else // { this.Close(); } // } // catch // { } } } }

iii

ANALISIS DAN IMPLEMENTASI WATERMARKING

DENGAN ALGORITMA AES UNTUK PEMBERIAN DATA

HAK CIPTA PADA FILE AUDIO

Skripsi

Sebagai Salah Satu Syarat Untuk Memperoleh

Gelar Sarjana Komputer

Fakultas Sains dan Teknologi

Universitas Islam Negeri Syarif Hidayatullah Jakarta

Oleh:

Muhamad Soleh

103091029579

Menyetujui,

Pembimbing I

Yusuf Durrachman, M.Sc, MIT

NIP. 19710522 200604 1 002

Pembimbing II

Arini, MT

NIP. 19760131 200901 2 001

Mengetahui,

Ketua Program Studi Teknik Informatika

Yusuf Durrachman, M.Sc, MIT

NIP. 19710522 200604 1 002

iv

PENGESAHAN UJIAN

Skripsi berjudul ” Analisis dan Implementasi Watermarking dengan Algoritma AES untuk Pemberian Data Hak Cipta pada File Audio” yang ditulis oleh Muhamad Soleh, NIM 1039091029579 telah diuji dan dinyatakan lulus dalam sidang munaqosah Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta pada hari Selasa, Tanggal 07 September 2010. Skripsi ini telah diterima sebagai salah satu syarat untuk memperoleh gelar sarjana strata satu (S1) pada Program Studi Teknik Informatika.

Jakarta, September 2010

Menyetujui,

Penguji I Penguji II Ir. Bakri La Katjong, MT, M.Kom Ria Hari Gusmita, M.Kom NIP. 470 035 764 NIP. 19820817 200912 2 002

Pembimbing I Pembimbing II

Yusuf Durrachman, M.Sc, MIT Arini, MT NIP. 19710522 200604 1 002 NIP. 19760131 200901 2 001

Mengetahui,

Dekan Fakultas Sains dan Teknologi Ketua Program Studi Teknik Informatika DR. Syopiansyah Jaya Putra M. Sis Yusuf Durrachman, M.Sc, MIT NIP. 19680117 200112 1 001 NIP. 19710522 200604 1 002

v

PERNYATAAN

DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR –

BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN

SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI

ATAU LEMBAGA MANAPUN.

Ciputat, September 2010

Muhamad Soleh

103091029579