• Tidak ada hasil yang ditemukan

BAB IV. ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB IV. ANALISIS DAN PERANCANGAN PERANGKAT LUNAK"

Copied!
13
0
0

Teks penuh

(1)

Bab ini menjelaskan tentang analisis kebutuhan dan perancangan perangkat lunak sebagai implementasi digital watermarking pada berkas WAV dengan menggunakan teknik Time Base

Modulation yang diberi nama TBMWav.

Pembahasan mengenai tahap analisis perangkat lunak dibagi menjadi analisis kebutuhan, tujuan pengembangan, batasan rancangan sistem dan aliran informasi. Pembahasan mengenai tahap perancancangan perangkat lunak dibagi menjadi perancangan struktur data, batasan perancangan serta dekomposisi modul.

IV.1 Analisis

Perangkat lunak TBMWav memiliki fungsionalitas utama yaitu fungsi penyisipan tanda air (encoding) dan pengambilan kembali tanda air (decoding). Pada proses penyisipan diperlukan masukan berupa berkas suara WAV dan berkas tanda air berformat teks, proses ini menghasilkan keluaran berupa berkas WAV yang telah diberi tanda air. Pada proses ekstraksi tanda air diperlukan masukan berupa berkas WAV asal, berkas WAV bertanda air dan berkas tanda air asal, proses ini menghasilkan berkas tanda air.

IV.1.1 Analisis Kebutuhan

Analisis kebutuhan perangkat lunak yang akan dibangun adalah sebagai berikut: 1. Mampu membagi data audio menjadi fragmen-fragmen waktu

2. Mampu melakukan pemanjangan dan pemendekan pada fragmen waktu untuk proses penyisipan tanda air

3. Mampu menemukan tanda air dari audio yang telah disisipi.

IV.1.2 Tujuan Pengembangan

Perangkat lunak ini dikembangkan dengan tujuan untuk dapat menyisipkan tanda air ke dalam sinyal audio berformat WAV dengan menggunakan teknik time base modulation, dengan berkas tanda air adalah sekumpulan string biner (string dengan isi deretan 0 dan 1 saja), perangkat lunak ini juga harus dapat melakukan proses ekstraksi tanda air yang telah disisipkan.

(2)

IV.1.3 Batasan Rancangan Sistem

Batasan rancangan sistem dalam pengembangan perangkat lunak ini ialah:

1. Tanda air yang disisipkan berupa file teks dalam bentuk string biner dalam format .txt 2. Berkas audio yang digunakan adalah berkas WAV tak terkompresi.

IV.1.4 Aliran Informasi

Dalam sub bab ini dijelaskan aliran informasi yang terjadi dalam perangkat lunak yang akan dibangun. Aliran informasi ini meliputi contex diagram dan DFD proses-proses yang ada. DFD hanya dibuat untuk proses-proses utama yang dipandang perlu untuk dijelaskan lebih lanjut.

IV.1.4.1 Contex Diagram

Pada perangkat lunak ini hanya ada satu jenis pengguna. Pengguna memberikan masukan berkas audio WAV asli dan berkas teks tanda air kepada perangkat lunak. Perangkat lunak akan melakukan penyisipan tanda air ke dalam berkas audio asli dan mengembalikannya sebagai berkas audio baru bertanda air.

Proses pengambilan kembali tanda air dilakukan dengan cara memberi masukan berkas audio WAV asli, berkas audio bertanda air dan berkas tanda air awal kepada perangkat lunak. Perangkat lunak akan membandingkan kedua berkas untuk mendapatkan kembali tanda air itu.

Kedua proses ini dapat dilihat pada Gambar IV-1.

IV.1.4.2 DFD Level 1

Fungsi utama perangkat lunak adalah fungsi penyisipan tanda air ke dalam berkas audio, disebut juga encoding, dan fungsi pengambilan tanda air dari dalam berkas audio atau decoding (Gambar IV-2). Penjelasan proses encoding dan decoding dapat dilihat dalam Tabel IV-1.

Gambar IV-1: Context Diagram TMBWav

Pengguna File teks watermark asli

File audio asli

File audio berwatermark Pengguna

0 TMBWav

+ File audio berwatermark

File audio asli

File teks watermark keluaran File teks watermark asli

(3)

Tabel IV-1: Tabel Proses DFD Level 1

Nama Proses Deskripsi

Encoding Melakukan penyisipan teks tanda air pada

berkas audio Masukan:

1. berkas teks tanda air 2. berkas audio WAV asli Keluaran:

1. berkas audio bertanda air

Decoding Melakukan penngambilan tanda air dari berkas

audio bertanda air Masukan:

1. berkas audio bertanda air 2. berkas audio WAV asli 3. berkas teks tanda airasli Keluaran:

1. berkas teks tanda airkeluaran Gambar IV-2: DFD Level 1

1 Encoding

+

Audio bertanda air

File audio asli

File teks tanda air asli Teks tanda air

Audio asli

2 Decoding

+

File audio bertanda air

Audio bertanda air

File teks tanda air keluaran Teks tanda air

keluaran Audio asli

(4)

IV.1.4.3 DFD Level 2 Proses Encoding

Proses encoding (Gambar IV-3) dibagi menjadi delapan sub proses yaitu membuka berkas audio masukan, membuka berkas teks tanda air, membuat berkas WAV keluaran, inisiasi phase vocoder

input dan output, membaca berkas WAV per segmen waktu, membuat frame dari tiap segmen, memproses frame, terakhir menulis berkas WAV keluaran. Lebih jelasnya dapat mengacu pada Tabel IV-2.

Tabel IV-2: Proses DFD Level 2 Proses Encoding

Nama Proses Deskripsi

Membuka file teks tanda air Membuka berkas teks tanda air dan menyimpan

isinya ke dalam memori. Masukan:

1. berkas teks tanda air Gambar IV-3: DFD Level 2 Proses Encoding

1.2 Membuka file

wav

1.1 Membuka file teks tanda air

Pengguna

File teks tanda air

File audio asli

1.3 Membuat file wav keluaran 1.4 Menginisialisasi phase vocoder input dan output Parameter optional

1.5 Membaca wav

per segmen Data berkas wav

1.6 membuat frame wav Phase vocoder input

Segmen wav masukan

1.7 Memproses

frame Paremeter perubahan waktu

Phase vocoder output Teks_tanda_air

Teks_tanda_air

berkas_wav _keluaran frame

Segmen wav keluaran

1.8 Menulis file wav

keluaran Berkas wav keluaran

(5)

Keluaran:

1. teks tanda air

Membuka file wav Membuka berkas WAV, melakukan analisa

chunk format dan header berkas tersebut dan mendapatkan datanya.

Masukan: 1. berkas WAV Keluaran:

1. data berkas WAV

Membuat file keluaran Membuat berkas keluaran dan mengeset header

dan chunk format dari berkas keluaran tersebut. Masukan:

1. nama berkas Keluaran:

1. berkas WAV tanpa chunk data

Menginisiasi phase vocoder input dan output Menginisiasi phase vocoder input dan output berdasarkan parameter masukan.

Masukan: 1. bit tanda air

menentukan pemanjangan atau pemendek-an atau besar skala perubahpemendek-an.

2. skala perubahan

menentukan besar perubahan terhadap fragmen waktu.

3. mode

menentukan mode dari phase vocoder 4. tipe skala

menentukan tipe perubahan skala.

5. window type

menentukan tipe window yang dipakai. 6. fftlen

menentukan jumlah sampel per window.

(6)

Nama Proses Deskripsi

menentukan sample rate, nilainya didapat dari berkas WAV masukan

8. overlap type

menentukan besar overlap antar-window Keluaran:

1. input phase vocoder 2. output phase vocoder

Membaca WAV per segmen Membaca berkas WAV per segmen

Masukan:

1. Berkas WAV yang akan dibaca 2. Besar segmen

Keluaran:

1. Segmen WAV

Membuat frame wav Input phase vocoder membuat frame untuk tiap

segmen waktu. Masukan: 1. faktor desimasi 2. segmen wav 3. tipe frame Keluaran: 1. frame WAV

Memproses frame Output phase vocoder memproses frame hasil

dari input phase vocoder. Masukan:

1. frame wav 2. tipe frame Keluaran:

1. frame WAVtermodifikasi

Menulis file keluaran Menulis ke dalam berkas keluaran per segmen

waktu. Masukkan:

1. berkas keluaran 2. segmen waktu

(7)

Keluaran:

1. berkas WAV keluaran

IV.1.4.4 DFD Level 2 Proses Decoding

Proses decoding (Gambar IV-4) dibagi menjadi tujuh sub proses, yaitu membuka berkas WAV, membaca berkas WAV per segmen, membuka file teks, mencari panjang teks tanda air, membandingkan segmen-segmen tersebut, membuat berkas teks tanda air dan menuliskan tanda air hasil proses pembandingan segmen berkas audio ke dalam berkas teks tanda air. Lebih jelasnya dapat mengacu pada Tabel IV-3.

Gambar IV-4: DFD Level 2 Proses Decoding

2.1 Membuka file

wav Pengguna

File audio asli

File audio bertanda air

2.2 Membaca wav

per segmen Berkas audio bertanda air

Berkas audio asli

2.5 Membandingkan antar segmen + 2.7 Menulis berkas

teks tanda air 2.6

Membuat file teks tanda air

File teks tanda air keluaran Segmen audio asli

Segmen audio bertanda air

Bit tanda air

file tanda air keluaran File teks tanda air asli

2.3 Membuka file

teks teks tanda air asli

2.4 Mencari panjang teks

tanda air

(8)

Tabel IV-3: Proses DFD Level 2 Proses Decoding

Nama Proses Deskripsi

Membuka file wav Membuka berkas wav, melakukan analisa chunk

format dan header berkas tersebut dan mendapatkan datanya.

Masukan: 1. berkas WAV Keluaran:

1. data berkas WAV

Membaca WAV per segmen Membaca berkas WAV per segmen

Masukan:

1. Berkas WAV yang akan dibaca 2. Besar segmen

Keluaran:

1. Segmen WAV

Membuka file teks Membuka berkas teks tanda air

Masukan:

1. berkas teks tanda air Keluaran:

1. teks tanda air

Menghitung panjang teks Menghitung panjang teks tanda air

Masukan:

1. teks tanda air Keluaran:

1. panjang teks tanda air

Membandingkan antarsegmen Membandingkan segmen WAV asli dengan

segmen WAV bertanda air untuk mencari tanda air yang disisipkan

Masukan:

1. Segmen WAV asli

2. Segmen WAV bertanda air 3. Panjang tanda air tanda airasli

(9)

Keluaran: 1. Bit tanda air

Membuat berkas teks tanda air Menginisiasi berkas teks penampung tanda air

Masukan: 1. Nama berkas Keluaran:

1. Berkas teks

Menulis berkas teks tanda air Menulis bit-bit tanda air ke dalam berkas teks

tanda air. Masukan:

1. Bit tanda air Keluaran:

1. Berkas teks berisi tanda air

IV.1.4.5 DFD Level 3 Proses Membandingkan Antarsegmen

Proses ini adalah inti dari proses decoding, pada proses ini (Gambar IV-5) tiap segmen WAV dikenai proses FFT untuk mendapatkan representasi spektralnya (frekuensi dan magnitude yang bersesuaian). Komponen spektral tesebut kemudian dijumlahkan. Hasil penjumlahan komponen spektral segment berkas asli akan dibandingkan dengan dibandingkan hasil penjumlahan komponen spektral segmen yang bersesuaian dari berkas bertanda air. Untuk lebih jelasnya lihat Gambar IV-5. Penjelasan proses-proses pada Gambar IV-5 dapat dilihat pada Tabel IV-4.

Tabel IV-4: Proses DFD Level 3 Proses membandingkan segmen

Nama Proses Deskripsi

FFT Mengenakan Fast Fourrier Transform

pada masing-masing segmen berdasar-kan besar window FFT.

Masukan:

1. Segment WAV 2. Besar window FFT Keluaran:

(10)

Nama Proses Deskripsi

Menjumlahkan magnitude Menjumlahkan magnitude per segmen

Masukan:

1. Data analisis spektral segmen Keluaran:

1. Data magnitude total segmen Membuat perbandingan antara dua buah segmen

terdekat

Membuat perbandingan jumlah

magnitude antara dua buah segmen. Caranya dengan mengurangi data

magnitude total suatu segmen dengan segmen yang mendahului.

Masukan:

1. Data magnitude total segmen Keluaran:

1. Data perbandingan magnitude

Membandingkan hasil perbandingan Membandingkan data perbandingan

magnitude antara segmen bertanda air dengan segmen asli, untuk setiap segmen yang bersesuaian antara berkas asli dengan berkas keluaran.

Masukan:

1. Data perbandingan magnitude

segmen bertanda air

2. Data perbandingan magnitude

segmen asli Keluaran:

(11)

IV.2 Perancangan

Dalam sub bab ini akan dijelaskan tahap perancangan hasil dari tahap analisis perangkat lunak. Tahap perancangan ini menjelaskan tentang perancangan struktur data, batasan perancangan dan dekomposisi modul.

IV.2.1 Perancangan Struktur Data

Perangkat lunak ini akan memakai struktur data:

1. Struktur data phasevocoder tidak dirancang dalam tugas akhir ini.

2. Struktur data riffwav_fmt akan dipakai untuk merepresentasikan format dari berkas

audio. Tipe bentukan riffwav_fmt mempunyai elemen-elemen: jumlah channel audio

Gambar IV-5: DFD Level 3 Proses membandingkan segmen

2.5.1 FFT

Segmen berkas WAV bertanda air Segmen berkas WAV asli

2.5.2 Menjumlahkan magnitude 2.5.3 Membuat perbandingan antar dua segmen terdekat

2.5.4 Membandingkan

hasil perbandingan

Bit tanda air Data analisis frekuensi

segmen bertanda air

Data analisis frekuensi segmen asli

Data penjumlahan magnitude segment asli

Data penjumlahan magnitude segment bertanda air

Data hasil perbandingan segmen asli Data hasil perbandingan segmen bertanda air

(12)

(nChannels), jumlah sampel per detik (nSamplesPerSec), rata-rata jumlah byte per detik (nAvgBytesPerSec), jumlah block align (nBlockAllign), jumlah bit per sampel (wBitsPerSample).

riffwav_waveformat = <

nChannels : integer tak bertanda nSamplesPerSec : integer tak bertanda nAvgBytesPerSec : integer tak bertanda nBlockAlign : integer tak bertanda wBitsPerSample : integer tak bertanda >

3. Struktur data riffwav_struct akan dipakai untuk merepresentasikan berkas WAV. riffwav_struct adalah tipe bentukan dengan elemen-elemen: berkas audio itu sendiri

(file), nama berkas audio (filename), ukuran berkas audio (filesize), pencatat posisi frame saat ini, untuk proses pembacaan data (curframepos), jumlah frame (nFrames), letak data audio (dataoffset), letak data peak, data format audio (fmt), dan data channel(s) peak (pPeaks).

riffwav_struct = <

file : FILE filename : string;

filesize : integer tak bertanda curframepos : integer tak bertanda nFrames : integer tak bertanda dataoffset : integer tak bertanda fmtoffset : integer tak bertanda peakoffset : integer tak bertanda fmt : riffwav_waveformat pPeaks : wav_chpeak

>

4. Struktur data wav_chpeak akan dipakai untuk merepresentasikan channel peak. Tipe

bentukan mempunyai dua elemen, nilainya (val) dan posisinya (pos).

wav_chpeak = <

val : float

pos : integer tak bertanda >

IV.2.2 Batasan Perancangan

Batasan dari perancangan ini adalah:

1. Berkas audio yang diterima dan dihasilkan hanya berkas bertipe WAV 2. Berkas teks tanda air berisi bilangan biner.

(13)

IV.2.3 Dekomposisi Modul

Perangkat lunak ini dapat dibagi menjadi tiga modul utama yaitu modul phase vocoder, modul riffwav, modul encoding dan decoding.

IV.2.3.1 Modul Phase Vocoder

Modul ini tidak dikembangkan dalam pembuatan perangkat lunak ini. Modul ini dibuat oleh Richard Dobson. Penjelasan lebih lanjut mengenai modul ini dapat mengacu sub bab III.1.1. Modul ini didapat dari alamat: http://dream.cs.bath.ac.uk/researchdev/pvocex/pvocex2_src01.zip, revisi terakhir dari modul ini adalah 5 Agustus 2000.

IV.2.3.2 Modul Riffwav

Modul ini berisi tentang format data berkas WAV dan operasi-operasi pada berkas tersebut. Operasi yang didukung adalah membuka untuk membaca dan menulis, membaca dan menulis

header berkas WAV, membaca dan menulis chunk format WAV, membaca dan menulis chunk data berkas WAV.

IV.2.3.3 Modul Encoding dan Decoding

Modul ini berisi proses encoding atau penyisipan tanda air, dan proses decoding atau pengambilan kembali tanda air. Modul ini adalah modul utama dari perangkat lunak yang dibangun.

Gambar

Gambar IV-1: Context Diagram TMBWav
Tabel IV-1: Tabel Proses DFD Level 1
Tabel IV-2: Proses DFD Level 2 Proses Encoding
Tabel IV-3: Proses DFD Level 2 Proses Decoding
+3

Referensi

Dokumen terkait

Selama proses penyimpanan kode sumber tersebut, cryptIDE akan melakukan enkripsi berkas tab page tersebut dengan kunci yang dibangkitkan dari nomor registrasi

Use case Membaca Pesan digunakan untuk melakukan pembacaan data pesan dan validasi ukuran pesan terhadap video, sedangkan use case Menyimpan Pesan memasukkan data pesan

Pada kelas ini terdapat komponen-komponen yang berfungsi untuk memilih cover-image, menyimpan stego-image, memilih stego-image, melakukan pemilihan arsip pesan, menyimpan

Secara umum, GXUnit harus mampu membantu pengguna dalam me-manage kasus uji, men-generate kasus ujinya dalam format XML dan kemudian menerjemahkan kasus uji XML

Setelah dilakukan normalisasi file audio kemudian dibagi per pengucapan satu huruf hijaiyah seperti di Gambar 4.3, yaitu dengan memisahkan suara berdasarkan silence,

Rancangan file bcrbcntuk matrik dengan baris pertama berisi kode gudang, panjang gudang dan lebar gudang baris kedua berisi jumlah barang yang akan diproses, kemudian pada baris

Sesuai dengan paparan metoda similar sequence matching pada bab sebelumnya bahwa data masukan untuk proses ini dihasilkan dari proses pemotongan matrik Rt dengan parameter yang

Maksudnya adalah aktor timer dapat melakukan keseluruhan tahapan yang dilakukan pada fase aktivasi dalam protokol SMS-Banking yang dirancang untuk bagian server..