Analisis dan implementasi watermarking dengan algoritma aes untuk pemberian data hak cipta pada file audio

(1)

i 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


(2)

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


(3)

vi

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


(4)

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


(5)

viii 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


(6)

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.


(7)

x

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


(8)

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


(9)

xii

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. AdvancedEncryption Standard (AES) ... 28

2.6.1. Representasi Data ... 29

2.6.2. Algoritma AES ... 31

2.6.2.1. Enkripsi ... 31


(10)

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


(11)

xiv

(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


(12)

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


(13)

xvi

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


(14)

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. Rancanganform about ... 81

Gambar 4.11. Rancanganform help ... 81


(15)

xviii

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


(16)

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


(17)

xx

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


(18)

xxi

DAFTAR LAMPIRAN

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

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

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

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

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


(19)

xxii

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


(20)

xxiii

dan menguji program-program sederhana.

chipertext Bentuk pesan yang tidak dapat dibaca atau dipahami plaintext pesan yang dapat dibaca


(21)

1 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


(22)

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


(23)

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.


(24)

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.


(25)

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


(26)

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


(27)

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.


(28)

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.


(29)

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


(30)

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


(31)

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


(32)

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,


(33)

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.


(34)

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


(35)

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


(36)

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.


(37)

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 =


(38)

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


(39)

Bitrate merupakan ukuran bit tiap sample-nya, dapat disimpan per 8-bits, 16-8-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.


(40)

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


(41)

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


(42)

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


(43)

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


(44)

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


(45)

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.


(46)

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


(47)

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


(48)

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


(49)

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 :


(50)

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


(51)

(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


(52)

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


(53)

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.


(54)

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

s

s

s

s

s

s

s

s

, 3 , 2 , 1 , 0 ' , 3 ' , 2 ' , 1 ' , 0

02

01

01

03

03

02

01

01

01

03

02

01

01

01

03

02

({

03

}

)

({

02

}

)

)

}

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 c c c c c c c c c c c c c c c c c c c o c

s

s

s

s

s

s

s

s

s

s

s

s

s

s

s

s

s

s

s

s

¯

¯

¯

=

¯

¯

¯

=

¯

¯

¯

=

¯

¯

¯

=


(55)

2.6.2.1.4.AddRoundKey

Pada proses AddRoundKey sebuah round key

ditambahkan pada state dengan operasi bitwise

XOR. Setiap round key terdiri dari NbWord dimana tiap word tersebut akan dijumlahkan dengan word atau kolom yang bersesuaian dari state sehingga :

[

]

[

]

[

]

Nb

c

w

s

s

s

s

s

s

s

s

c c c c c c c c roundNbc

0

untuk

,

,

,

,

,

,

1', 2', 3', 0, 1, 2, 3, * ' , 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 :


(56)

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


(57)

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 :


(58)

38

Atau dalam matriks :

(

)

(

)

(

)

'

x

s

x

a

x

s

=

˜

(2.7)

=

c c c c c c c c

s

s

s

s

E

D

B

B

E

D

D

B

E

D

B

E

s

s

s

s

, 3 , 2 , 1 , 0 ' , 3 ' , 2 ' , 1 ' , 0

0

09

0

0

0

0

09

0

0

0

0

09

09

0

0

0

)

}

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 c c c c c c c c c c c c c c c c c c c o c

s

s

s

s

s

s

s

s

s

s

s

s

s

s

s

s

s

s

s

s

¯

¯

¯

=

¯

¯

¯

=

¯

¯

¯

=

¯

¯

¯

=

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


(59)

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)


(60)

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.


(61)

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


(62)

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


(63)

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 :


(64)

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


(65)

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)


(66)

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


(67)

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.


(68)

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.


(69)

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


(70)

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


(71)

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


(1)

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) {


(2)

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) // {


(3)

146

// FileInfo pathinfo = new FileInfo(SaveFile.FileName.ToString()); // savepathfile = pathinfo.ToString();

// btneditPathExtractMsg.Text = savepathfile.ToString(); // status.Text = "0";

// } // else

// { this.Close(); } // }

// catch // { } } } }


(4)

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


(5)

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


(6)

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