38
BAB 3
ANALISIS DAN PERANCANGAN
Perancangan program aplikasi dalam skripsi ini menggunakan aturan linear sequential (waterfall). Metode ini terdiri dari empat tahapan yaitu analisis, perancangan, pengkodean/pembuatan, dan percobaan/implementasi (Pressman, 2001: 29). Tahap analisis, perancangan, dan pembuatan akan dibahas dalam Bab 3 ini, sedangkan tahap percobaan atau implementasi akan dilanjutkan di Bab 4.
3.1 Analisis Permasalahan
Objek penelitian dalam analisis permasalahan ini adalah PT. Sahabat Sejati Gemilang. Analisis terdiri dari 3 bagian, yaitu Latar Belakang Perusahaan, Perumusan Masalah, dan Usulan Pemecahan Masalah.
3.1.1 Latar Belakang PT. Sahabat Sejati Gemilang
PT. Sahabat Sejati Gemilang yang didirikan pada tahun 2003 adalah perusahaan yang bergerak di bidang penyediaan barang dan jasa secara umum, mulai dari penyediaan perlengkapan kantor, peralatan pertukangan, perlengkapan rumah tangga, bahan kimia, obat-obatan, hingga penyediaan jasa seperti pengiriman barang dan percetakan. Perusahaan ini berlokasi di Jl. Jembatan Dua Raya No. 16-8, dengan pusat di Jakarta. Perusahaan ini dapat melayani kebutuhan barang dan jasa secara nasional maupun internasional.
Dipimpin oleh Komisaris dan Direktur, struktur organisasi perusahaan ini terbagi menjadi empat divisi, yaitu divisi Sales and Marketing, Finance and Accounting, Human
39
Resources Development, dan Logistics. Masing-masing divisi kemudian terbagi lagi menjadi staff-staff tersendiri. Struktur organisasi dalam bentuk bagan dapat dilihat pada Gambar 3.1.
Gambar 3. 1 Struktur Organisasi PT. Sahabat Sejati Gemilang
Sumber: HRD Department, PT. Sahabat Sejati Gemilang
Tugas dan kewajiban masing-masing personil di perusahaan tersebut adalah sebagai berikut:
1. Komisaris
Komisaris bertugas mengawasi jalannya perusahaan serta menentukan arah kebijakan perusahaan untuk mendorong kemajuan perusahaan
2. Direktur
Direktur bertanggung jawab atas kelancaran kegiatan operasional perusahaan sesuai dengan kebijakan yang telah ditentukan
Komisaris
Julius Chandra
Direktur
Indra Agung
Sales & Marketing Manager Andreas Sugiharto Finance & Accounting Manager Peggy Berhitu HRD Manager Netty Bernata Logistics Manager Kartika Sari
40
3. Sales & Marketing Manager
Sales & Marketing Manager bertugas menyusun strategi penjualan, menjalankan kegiatan penjualan perusahaan, serta memastikan target penjualan tercapai
4. Finance & Accounting Manager
Finance & Accounting Manager bertanggung jawab atas pembuatan laporan keuangan perusahaan
5. HRD Manager
HRD Manager bertanggung jawab atas perekrutan karyawan, penggajian karyawan, administrasi dan masalah personalia
6. Logistics Manager
Logistics manager bertanggung jawab atas penyimpanan dan pengiriman barang
7. Staf Divisi
Staf divisi bertanggung jawab atas tugas dan kewajiban sesuai dengan fungsi divisi masing-masing agar kegiatan operasional perusahaan dapat berjalan lancar.
3.1.2 Perumusan Masalah
Sehubungan dengan jangkauan pelayanan PT. Sahabat Sejati Gemilang yang semakin meluas dan meningkat, maka komunikasi internal yang lancar dan aman menjadi kebutuhan perusahaan yang penting untuk menjaga kerahasiaan dan keamanan informasi. Para pegawai perusahaan semakin sering berkomunikasi jarak jauh dengan satu sama lain, yaitu dengan mengirimkan data-data yang bersifat rahasia ataupun internal, seperti harga penawaran barang, jumlah stock, informasi data pelanggan, omzet, memo internal, dan gaji pegawai. Karena sifat datanya yang rahasia, maka timbul kekhawatiran bahwa data dapat diakses oleh orang yang tidak berkepentingan dalam
41
proses pengirimannya. Oleh karena itu, terdapat kebutuhan sistem komunikasi yang aman dan terpercaya, sehingga data-data tersebut tidak dapat diakses oleh orang yang tidak berkepentingan.
3.1.3 Usulan Pemecahan Masalah
Masalah keamanan komunikasi dapat diatasi dengan menggunakan program pengamanan data yang menggunakan Elliptic Curve Cryptography serta dilanjutkan dengan LSB embedding. Dengan program ini, informasi yang hendak dikirim dapat diamankan dan disembunyikan terlebih dahulu, sehingga orang-orang yang tidak berkepentingan tidak dapat mengakses ataupun mengetahui keberadaan informasi tersebut. Dengan demikian, informasi yang mungkin penting dan rahasia, seperti misalnya omzet, penawaran harga barang, gaji, dan nomor telepon, dapat dikirim dengan keamanan yang lebih memadai. Untuk ke depannya, program pengamanan dan informasi apa saja yang dapat dikirim dengan program tersebut dapat dirancang sesuai dengan kebutuhan masing-masing perusahaan atau lembaga.
3.2 Perancangan dan Pembuatan Program
Perancangan dan pembuatan program terbagi menjadi 5 bagian, yaitu diagram hirarki, State Transition Diagram, perancangan modul, perangkat pemograman dan algoritma pemograman.
3.2.1 Diagram Hirarki
Perancangan diagram hirarki dibuat dengan tujuan untuk memberikan gambaran program aplikasi yang akan dibuat sehingga mempermudah proses perancangannya.
42
aplikasi ini akan terdiri dari satu menu utama program yang terdiri dari tiga menu, yaitu menu File, menu Process, dan menu Help.
Menu File terdiri dari tiga submenu, yaitu Open, Save dan Exit. Menu Process terdiri dari empat submenu, yaitu Encryption, Embedding, Extracting, Decryption,dan e-RMS. Dan yang terakhir menu Help terdiri dari dua submenu, yaitu Content dan About. Diagram hirarki untuk program aplikasi ini dapat dilihat pada Gambar 3.2.
Gambar 3. 2 Diagram Hirarki
3.2.2 State Transition Diagram
STD atau State Transition Diagram menggambarkan sebuah sistem yang real-time dan sistem yang on-line. STD merupakan suatu keadaan yang menggambarkan suatu keadaan pada waktu tertentu (Yourdon, 2006). Perubahan keadaan disebabkan oleh adanya suatu kejadian dan sebagai akibat dari kejadian tersebut maka akan muncul suatu aksi yang akan menyebabkan keadaan berubah. STD membantu dalam memberikan gambaran secara keseluruhan dari program. STD untuk menu utama, file,
Menu Utama Menu File Menu Process Menu Help Submenu Open Submenu Save Submenu Exit Submenu Encryption Submenu Embedding Submenu Extracting Submenu Decryption Submenu e-RMS Submenu Content Submenu About
43
process, dan help dapat dilihat pada Gambar 3.3, Gambar 3.4, Gambar 3.5, dan Gambar 3.6.
Gambar 3. 3 STD Menu Utama
44
Gambar 3. 5 STD Process
45
3.2.3 Perancangan Modul
Pada perancangan program aplikasi ini, dibuat enam modul, yaitu modul encryption, modul embedding, modul extracting, modul decryption, modul e-RMS,dan modul help.
a. Perancangan Modul Encryption
Modul encryption dirancang untuk melakukan proses enkripsi terhadap pesan yang di-input oleh pengguna serta meminta pengguna untuk memasukkan key. Dalam modul ini terdapat tiga menu utama yaitu menu File, Process, dan Help. Ketiga menu beserta submenu-submenu di dalamnya adalah sebagai berikut:
1. Menu File, dengan tiga submenu, yaitu submenu Open Audio, Save Audio, dan Exit.
2. Menu Process, dengan lima submenu di dalamnya, yaitu submenu Encryption, Embedding, Extracting, Decryption,dan e-RMS.
3. Menu Help, dengan dua submenu, yaitu Content dan About.
46
Gambar 3. 7 Rancangan Layar Modul Encryption
b. Perancangan Modul Embedding
Modul embedding dirancang untuk melakukan proses penyembunyian pesan pada audio digital yang telah dienkripsi sebelumnya dengan modul encryption serta meminta input berupa stego-key. Dalam modul ini yang disembunyikan bukan hanya pesan tapi juga stego-key serta panjang pesan pada bagian belakang file audio dimulai dari stego-key, panjang pesan dan pesannya secara berturut-turut dengan pembacaan dari belakang ke depan. Bit-bit stego-key dan panjang pesan disembunyikan secara berturut-turut dimulai pada byte yang paling akhir. Sedangkan bit-bit pesan disembunyikan tidak berdekatan tapi setiap seratus byte disubstitusikan satu bit pesan. Banyak bit yang akan disubstitusikan dengan bit pesan tiap byte-nya hanya satu bit. Sehingga tiap satu karakter membutuhkan cover file minimal berukuran 900 byte.
47
Pada modul ini terdapat tiga menu utama yaitu menu File, Process ,dan Help. Pada menu File terdiri dari tiga submenu yaitu submenu Open Audio, Save Audio,dan Exit. Submenu Open Audio berguna untuk mengambil input berupa file audio dengan format .WAV yang akan digunakan sebagai cover dari pesan yang akan disembunyikan, Submenu Save Audio berguna untuk menyimpan hasil embedding yaitu inconspicious file dan Submenu Exit untuk keluar dari program aplikasi. Rancangan layar untuk modul embedding dapat dilihat pada Gambar 3.8.
Gambar 3. 8 Rancangan Layar Modul Embedding
c. Perancangan Modul Extracting
Modul extracting dirancang untuk melakukan proses ekstrak pesan yang telah disembunyikan pada file audio(.WAV), modul ini juga akan meminta pengguna untuk
48
memasukkan stego-key. Pada modul ini terdapat tiga menu utama yaitu menu FILE, Process ,dan Help. Pada menu FILE terdiri dari dua submenu yang aktif yaitu submenu Open Audio,dan Exit. Submenu Open Audio berguna untuk mengambil input berupa file audio dengan format .WAV yang akan mengandung pesan tersembunyi. Exit berguna untuk keluar dari program aplikasi. Rancangan layar untuk modul extracting dapat dilihat pada Gambar 3.9.
Gambar 3. 9 Rancangan Layar Modul Extracting
d. Perancangan Modul Decryption
Modul decryption dirancang untuk melakukan proses dekripsi terhadap pesan yang telah diekstrak pada modul extracting sebelumnya modul ini akan meminta
49
pengguna untuk memasukkan key. Modul ini akan menampilkan pesan yang telah berhasil diekstrak dari file audio (.WAV) serta telah didekripsi. Modul ini juga terdapat tiga menu utama yaitu menu File, Process, dan Help. Rancangan layar untuk modul decryption dapat dilihat pada Gambar 3.10.
Gambar 3. 10 Rancangan Layar Modul Decryption
e. Perancangan Modul e-RMS
Modul e-RMS Modul ini memberikan informasi mengenai nilai error dari frekuensi file cover audio sebelum proses embedding dengan frekuensi file audio hasil embedding, Jika nilai e-RMS untuk perbandingan antara frekuensi file cover audio dengan frekuensi file audio hasil embedding kecil, maka hasil embedding dinilai sukses. Rancangan layar untuk modul e-RMS dapat dilihat pada Gambar 3.11.
50
Gambar 3. 11 Rancangan Layar Modul E-RMS
f. Perancangan Modul Help
Modul help sangat berguna untuk memberikan informasi tentang program aplikasi yang dibuat, bagaimana cara menggunakannya, dan informasi mengenai pembuat program. Modul ini terdiri dari dua bagian, yaitu Content dan About. Content berisi informasi tentang program dan cara menggunakan program aplikasi ini dan About berisi informasi mengenai pembuat program aplikasi ini. Rancangan layar untuk modul Help dapat dilihat pada Gambar 3.12 dan Gambar 3.13.
51
Gambar 3. 13 Rancangan Layar Modul About
3.2.4 Perangkat Pemograman
Setelah melakukan proses perancangan, tahap selanjutnya adalah pembuatan program aplikasi untuk merealisasikan rancangan. Untuk membuat program ini, spesifikasi perangkat pemograman adalah sebagai berikut:
1. Prosesor Intel Pentium 4 1,6 G 2. Memori DDRAM 256 MB. 3. Harddisk berkapasitas 40 GB. 4. Soundcard C-Media
5. Speaker Altec Lansing
Sedangkan perangkat lunak yang digunakan dalam pembuatan program aplikasi ini mempunyai spesifikasi sebagai berikut :
1. Sistem operasi Microsoft Windows XP Professional. 2. Borland Delphi 7.0 Enterprise Edition
52
Kode program dibuat dengan bahasa pemrograman Pascal. Alasan dipilihnya Borland Delphi 7 sebagai bahasa pemrograman adalah karena Delphi 7 merupakan suatu bahasa pemrograman visual yang berbasis windows sehingga akan lebih mudah dalam perancangan secara visual. Selain itu, Borland Delphi 7.0 juga dilengkapi dengan compiler yang handal sehingga dapat mendeteksi kesalahan-kesalahan yang ditemukan selama penulisan program yang akan sangat membantu dalam pembuatan program.
HelpScribble digunakan untuk membuat modul help pada program aplikasi ini. HelpScribble merupakan perangkat lunak dengan prosedur yang cukup mudah untuk membuat help.
3.2.5 Algoritma Pemograman
Dalam pembuatan program ini, diperlukan algoritma pemograman Elliptic Curve Cryptography serta alogoritma Proposed LSB Embedding.
A. Algoritma Elliptic Curve Cryptography
Berikut ini adalah beberapa buah algoritma aritmatika elliptic curve yang menjadi dasar bagi proses enkripsi dan dekripsi program nantinya. Algoritma- algoritma tersebut antara lain adalah algoritma untuk mencari negasi sebuah point yang ada di elliptic curve, algoritma untuk penjumlahan dua buah point, algoritma pengurangan point, algoritma untuk perkalian sebuah point dengan sebuah integer yang sangat besar (IEEE, 1999)
a. Algoritma Negasi Titik (Point Negation)
53
Output : titik -P=(x1,y1)
Algoritma :
1. if P = point at infinity then output=point at infinity 2. x1 ← x0.
y1 ← -(y0).
3. Output (x1,y1).
b. Algoritma Penambahan Point (Point Addition) Input: suatu bilangan prima p > 3
koefisien a, b untuk sebuah kurva eliptik E: y2 = x3 + ax + b modulo p titik P0 = (x0,y0) dan P1=(x1,y1) pada E
Output: titik P2 = P0 + P1
Algoritma :
1. if P0 = ϕ then P2 ← P1 dan berhenti.
2. if P1 = ϕ then P2 ← P0 dan berhenti.
3. if x0 ≠ x1 then
3.1. set λ ← (y0-y1)/(x0-x1) mod p
3.2. go to step 7.
4. if y0 ≠ y1 or y1 = 0 then P2 ← ϕ dan berhenti.
5. set λ ← (3x12+a)/(2y1) mod p
54
7. set y2 ← λ (x1-x2) - y1 mod p
8. output P2 ← (x2,y2)
c. Algoritma Pengurangan Point (Point Subtraction) Input: suatu bilangan prima p > 3
koefisien a, b untuk sebuah kurva eliptik E: y2 = x3 + ax + b modulo p titik P0 = (x0,y0) dan P1=(x1,y1) pada E
Output: titik P2 = P0 - P1
Algoritma :
1. if P0 = ϕ then P2 ← P1 dan berhenti.
2. if P1 = ϕ then P2 ← P0 dan berhenti.
3. if x0 ≠ x1 then
3.1. set λ ← (y0-y1)/(x0-x1) mod p
3.2. go to step 7.
4. if y0 ≠ y1 or y1 = 0 then P2 ← ϕ dan berhenti.
5. set λ ← (3x12+a)/(2y1) mod p
6. set x2 ← λ2 - x0 - x1 mod p
7. set y2 ← λ (x1-x2) - y1 mod p
8. output P2 ← (x2,y2)
55
Input : suatu integer n dan sebuah titik kurva eliptik P Output : point nP
Algoritma :
1. If n = 0 then output ϕ dan berhenti.
2. If n < 0 then set Q ← (-P) dan k ← (-n), else set Q ← P dan k ← n.
3. Misalkan hLhL-1 ... h1h0 adalah representasi biner 3k, dengan MSB hL adalah 1.
4. Misalkan kLkL-1 ... k1k0 merupakan representasi biner k.
5. Set S ← Q.
6. For i from L-1 down to 1 do Set S ← 2S.
if hi=1 and ki=0 then S ← S + Q (algoritma 3.2.2).
if hi=0 and ki=1 then S ← S - Q (algoritma 3.2.3).
7. Output S.
B. Algoritma Proposed LSB Embedding
Pada algoritma embedding, LSB layer(bit ai) diubah terlebih dahulu dengan
mensubstitusi bit pada pesan yang akan disembunyikan kemudian algoritma Proposed LSB embedding digunakan. Algoritma Proposed LSB embedding adalah sebagai berikut (Cvejic & Seppanen, 2005: 3):
If bit 0 is to be embedded
If ai-1=0 then ai-1,ai-2...a0 = 11...1
If ai-1=1 then ai-1,ai-2...a0 = 00...0
56
Else if ai+2=0 then ai+2=1
...
Else if a7=0 then a7=1
Else If bit 1 is to be embedded
If ai-1=1 then ai-1,ai-2...a0 = 00...0
If ai-1=0 then ai-1,ai-2...a0 = 11...1
If ai+1=1 then ai+1=0
Else if ai+2=1 then ai+2=0
...
Else if a7=1 then a7=0
Kedua jenis algoritma di atas digunakan untuk pembuatan program aplikasi pengamanan data dalam penulisan ini. Listing Program dalam pembuatan program tersebut dapat dilihat selengkapnya di Lampiran 1.