• Tidak ada hasil yang ditemukan

TUGAS AKHIR SIMULASI PENYANDI DAN PENGAWASANDI SANDI BIORTHOGONAL 8 BIT DENGAN MATLAB

N/A
N/A
Protected

Academic year: 2019

Membagikan "TUGAS AKHIR SIMULASI PENYANDI DAN PENGAWASANDI SANDI BIORTHOGONAL 8 BIT DENGAN MATLAB"

Copied!
110
0
0

Teks penuh

(1)

i

SANDI

BIORTHOGONAL

8 BIT

DENGAN MATLAB

Diajukan untuk memenuhi salah satu syarat

memperoleh gelar Sarjana Teknik pada

Program Studi Teknik Elektro

Jurusan Teknik Elektro

Fakultas Sains dan Teknologi Universitas Sanata Dharma

disusun oleh :

LIA MELINA

NIM : 035114039

PROGRAM STUDI TEKNIK ELEKTRO

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(2)

ii

OF 8 BIT BIORTOGONAL CODES

WITH MATLAB

In partial fulfillment of the requirements

for the degree of Sarjana Teknik

Electrical Engineering Study Program

Electrical Engineering Departement

Science and Technology Faculty Sanata Dharma University

LIA MELINA

NIM : 035114039

STUDY PROGRAM OF ELECTRICAL ENGINEERING

DEPARTMENT OF ELECTRICAL ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

(3)
(4)
(5)
(6)

vi

MOTTO :

YESTERDAY IS A HISTORY

TOMORROW IS A MYSTERY

BUT

TODAY IS A GIFT”

Skripsi ini kupersembahkan untuk :

Yesus Kristus dan Bunda Maria yang selalu Memberkatiku

Pakde dan Bude Totok yang selalu mendukungku

Mbak Lus, Mamayo, Om Kelik dan Yudha yang selalu

(7)

vii

Sandi

biorthogonal adalah penyandian bentuk gelombang yang dapat digunakan

untuk memperbaiki sinyal pesan. Tujuannya untuk membuat sinyal pesan menjadi lebih

handal jika ada gangguan, seperti noise,

fading dan jamming. Jika ada kesalahan, maka

penerima mampu mendeteksi dan mengkoreksi kesalahan sendiri.

Pada tulisan ini, penyandi dan pengawasandi sandi biorthogonal 8 bit akan

disimulasikan menggunakan MATLAB. Sandi biorthogonal 8 bit disusun menggunakan

matrik Hadamard H

7

. Matrik katasandi biorthogonal ini terdiri dari 256 katasandi dengan

panjang 128 bit. Dengan matrik ini, sebuah masukan 2 digit akan diubah menjadi

katasandi 128 bit. Proses pengawasandi terdiri dari proses deteksi dan koreksi error.

Pendeteksian

error menggunakan nilai Zij. Jika Zij = 1, maka kata terima tidak

mengalami kesalahan. Jika 0 < Zij < 1, maka dapat dipastikan bahwa kata terima

mengalami kesalahan. Jika Zij = 0, maka tidak dapat dipastikan bahwa kata terima tidak

mengalami kesalahan. Proses koreksi error menggunakan proses Look up table. Program

simulasi pengawasandi ini mampu mendeteksi 64 bit error dan mengkoreksi 31 bit error.

Hasil simulasi menunjukkan bahwa berapapun jumlah error yang terjadi, program

mampu mendeteksi error. Sedangkan pada proses koreksi, program mampu mengkoreksi

error dengan jumlah error kurang atau sama dengan 31 bit. Jika jumlah error lebih dari

31 bit, program tidak selalu mampu mengkoreksi error.

(8)

viii

Biorthogonal codes is a waveform coding that can be used to repair the information

waveform. The goal of repairing the information waveform is to make the waveform

more reliable to face the disturbance, such as noise, fading and jamming. If there was an

error, the receiver will be able to detect and correct the error by itself.

In this paper, the biorthogonal codes 8-bit encoder and decoder will be simulated

with MATLAB. Biorthogonal codes 8-bit was constructed by using Hadamard matrix H

7

.

This biorthogonal codeword matrix consist of 256 codewords with length of 128 bits.

With this matrix, 2 digits input will be transformed to codeword 128 bits. The decoding

process consist of error detection and error correction. The error detection used Zij

value. If Zij = 1, there is no error in the received word. If 0 < Zij < 1, the received word

is disturbed by an error. If Zij = 0, it can not be sure that there is no error in the received

word. The error correction uses look-up-table process. Decoder simulation program is

able to detect 64 bits error and to correct 31 bits error.

From the result, the simulation shown that the program was able to detect the error

for all of error patern. In the error correction process, the program was able to correct the

error when the error were 31 bits or less. If the error more than 31 bits, the program was

not always able to correct the error.

(9)

ix

Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma :

Nama

: Lia Melina

Nomor Mahasiswa

: 035114039

Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan

Universitas Sanata Dharma Karya Ilmiah saya yang berjudul :

SIMULASI PENYANDI DAN PENGAWASANDI

SANDI

BIORTHOGONAL

8 BIT

DENGAN MATLAB

beserta perangkat, yang diperlukan (bila ada). Dengan demikian saya memberikan kepada

Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam

bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara

terbatas dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis

tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap

mencantumkan nama saya sebagai penulis.

Demikian pernyataan ini saya buat dengan sebenarnya.

Dibuat di Yogyakarta

Pada tanggal : 28 April 2009

Yang menyatakan

(10)

x

Syukur dan terima kasih kepada Tuhan Yesus Kristus atas segala karuniaNya

sehingga tugas akhir ini dapat diselesaikan dengan baik.

Penelitian yang berupa tugas akhir ini merupakan salah satu syarat bagi

mahasiswa Jurusan Teknik Elektro untuk memperoleh gelar Sarjana Teknik di

Universitas Sanata Dharma Yogyakarta. Penelitian ini dapat diselesaikan dengan baik

atas bantuan, gagasan dan dukungan dari berbagai pihak. Oleh karena itu, peneliti ingin

mengucapkan terima kasih kepada :

1.

Bapak Yosef Agung Cahyanta S.T., M.T., selaku Dekan Fakultas Sains dan

Teknologi Universitas Sanata Dharma Yogyakarta.

2.

Ibu Ir. Th. Prima Ari S., M.T., selaku Dosen Pembimbing tugas akhir yang telah

banyak meluangkan waktu untuk menberikan bimbingan.

3.

Bapak A. Bayu Primawan, S.T., M.Eng., selaku Dosen Pembimbing tugas akhir

yang telah banyak meluangkan waktu untuk menberikan bimbingan.

4.

Ibu Wiwien Widyastuti, S.T., M.T., selaku Dosen Penguji tugas akhir yang telah

memberikan masukan dan saran.

5.

Bapak Damar Widjaja, S.T., M.T., selaku Dosen Penguji tugas akhir yang telah

memberikan masukan dan saran.

6.

Pakde dan Bude Pamuji Sugiharto yang telah memberikan dukungan baik moril

(11)
(12)

xii

Halaman Sampul (Bahasa Indonesia) ………...…...… i

Halaman Sampul (Bahasa Inggris) ... ii

Halaman Persetujuan …...…....………...……. iii

Halaman Pengesahan ……...………...…...……...…... iv

Pernyataan Keaslian Karya …...…...……..…...… v

Halaman Persembahan …...………...……...…. vi

Intisari ………...…...………...…...…... vii

Abstract

………...………...………...……... viii

Lembar Pernyataan Persetujuan Publikasi Karya Ilmiah Untuk

Kepentingan Akademis ... ix

Kata Pengantar …………...……...………...………... x

Daftar Isi ………...…...………...……….. xii

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

Daftar Tabel ………...……...………...…...……….. xviii

Daftar Lampiran ………...……….…...…… xix

BAB I : PENDAHULUAN

1.1.

Judul ... 1

1.2.

Latar Belakang Masalah …………...………...…… 1

(13)

xiii

1.6.

Sistematika Penulisan ... 3

BAB II : DASAR TEORI

2.1. Penyandian Kanal (

Channel Coding

)

…...……...…..…...… 5

2.1.1. Penyandian Runtun Struktur (

Structured Sequences

) ... 5

2.1.2.

Penyandian Bentuk Gelombang (

Waveform Coding

) .. 7

2.1.2.1.

Sinyal Antipodal dan Sinyal

Orthogonal

... 7

2.1.2.2.

Penyandian Gelombang dengan Deteksi

Korelasi ... 9

2.2.

Sandi

Biorthogonal

... 9

2.3.

Penyandian Sandi

Biorthogonal

... 11

2.4.

Pengawasandi Sandi

Biorthogonal

... 13

2.4.1.

Bobot dan Jarak

Hamming

... 13

2.4.2.

Jarak Minimum Suatu Sandi Linear ... 14

2.4.3.

Deteksi dan Koreksi

Error

... 15

2.5.

MATLAB ... 15

2.5.1.

Window

utama MATLAB ... 16

2.5.1.1.

Command Window

………...…..……… 16

2.5.1.2.

Current Directory Window

…...…..……… 17

(14)

xiv

2.5.3.

Graphic User Interface

(GUI) …...…… 19

BAB III : PERANCANGAN

3.1.

Proses Penyandian ... 22

3.2.

Pembuatan

Error

... 25

3.3.

Pengawasandi ... 28

BAB IV : PEMBAHASAN

4.1.

Tampilan Awal MATLAB …………...………. 33

4.2.

Pembuatan Matrik Katasandi ……....…..….………. 34

4.3.

Proses Memasukkan Data ………....…..……….…….. 35

4.4.

Proses Penyandian ………..…...……….…. 37

4.5.

Proses Pembuatan

Error

…...…………...………..… 38

4.6.

Proses Pengawasandi …………...….……...…………..… 40

4.6.1.

Proses Deteksi

Error

………...…………..… 40

4.6.2.

Proses Koreksi

Error

…………...…..……….……. 44

4.7.

Analisis Hasil Uji Coba Program ……...…..………. 46

4.7.1.

Hasil Uji Coba I ……...……..…...………. 46

4.7.2.

Hasil Uji Coba II ………...…....……… 49

(15)
(16)

xvi

Halaman

Gambar 2.1. Contoh dari sinyal antipodal …………...………...……...……… 7

Gambar 2.2

Contoh dari sinyal orthogonal ... 8

Gambar 2.3

Window utama MATLAB ……...…………...….…………...….. 16

Gambar 2.4

Command Window ………...………...…....…. 16

Gambar 2.5

Current Directory Window ………...………...…..……...…..…… 17

Gambar 2.6

Workspace Window …………...………...………...….….. 17

Gambar 2.7

Command History Window ………...………...……… 18

Gambar 2.8 MATLAB editor …...………...…...……….. 18

Gambar 2.9

Form designer ... 20

Gambar 2.10

Property Inspector ... 20

Gambar 3.1 Diagram alir program ... 21

Gambar 3.2 Tampilan dari menu utama ... 22

Gambar 3.3

Diagram alir proses penyandian ... 24

Gambar 3.4

Tampilan proses memasukkan data ……...……...……….. 25

Gambar 3.5 Tampilan hasil dari proses penyandian ... 25

Gambar 3.6 Diagram alir pembuatan error ... 26

Gambar 3.7 Tampilan katasandi pada pembuatan error ... 27

Gambar 3.8 Tampilan untuk mengubah-ubah error ... 27

Gambar 3.9 Tampilan kata terima pada pembuatan error ... 27

Gambar 3.10 Tampilan posisi bit yang diubah ... 28

(17)

xvii

Gambar 3.14 Tampilan nilai Zij ... 31

Gambar 3.15 Tampilan pesan proses Look up table …………...………...……... 31

Gambar 3.16 Tampilan hasil deteksi ... 31

Gambar 3.17 Tampilan untuk data yang diterima ... 32

Gambar 3.18 Tampilan jumlah error ... 32

Gambar 3.19 Tampilan untuk data yang diterima ... 32

Gambar 4.1 Tampilan awal MATLAB………...………...………... 34

Gambar 4.2

Tampilan title dari program ...……...…...…..…...………… 34

Gambar 4.3

Tampilan untuk memasukkan data. ...…...……….……… 35

Gambar 4.4 Tampilan tanda perhatian. ………...…...…..………. 36

Gambar 4.5 Tampilan data yang telah dimasukan ... 36

Gambar 4.6 Tampilan dari data yang telah disandikan ... 37

Gambar 4.7 Tampilan dari proses pembuatan error ... 39

Gambar 4.8 Tampilan katasandi pembanding ... 41

Gambar 4.9 Tampilan dari hasil proses deteksi ... 43

(18)

xviii

Halaman

Tabel 4.1 Hasil uji coba dengan masukan data ‘8B’ (heksadesimal) …...……… 46

Tabel 4.2 Hasil uji coba dengan masukan data ‘06’ (heksadesimal) ………...…… 49

(19)

xix

Halaman

Listing Program ... L1

Tabel Hasil Uji Coba ... L6

(20)

1

1.1.

Judul

Simulasi Penyandi dan Pengawasandi Sandi Biorthogonal 8 Bit dengan Matlab

(Encoder and Decoder Simulation of 8 Bit Biorthogonal Codes with Matlab).

1.2.

Latar Belakang Masalah

Kesalahan (error) merupakan masalah pada sistem komunikasi, sebab dapat

mengurangi kinerja dari sistem. Untuk mengatasi masalah tersebut diperlukan suatu

sistem yang dapat mengkoreksi error. Oleh karena itu pada sistem komunikasi diperlukan

penyandian

.

Beberapa studi mengatakan, jika sistem komunikasi menggunakan

penyandian, maka dapat diperoleh kemampuan yang sangat handal untuk mengkoreksi

kesalahan.

Contoh beberapa sandi yang digunakan dalam proses penyandian adalah sandi

orthogonal, sandi biorthogonal, sandi transorthogonal dan lain-lain. Sandi-sandi yang

terkenal dalam penyandian bentuk gelombang (waveform coding) adalah sandi

orthogonal dan biorthogonal [1].

Sandi yang akan dibahas pada tulisan ini adalah sandi biorthogonal (biorthogonal

code). Sebuah program untuk menyimulasikan matrik pembangkit dari sandi

biorthogonal 8 bit, proses penyandian, pembuatan error serta deteksi dan koreksi error

(21)

1.3.

Tujuan dan Manfaat Penelitian

Tujuan dari penulisan tugas akhir ini adalah untuk membuat program simulasi

penyandian dengan sandi biorthogonal serta mengetahui kemampuan deteksi dan koreksi

error dari sandi biorthogonal.

Manfaat dari pembuatan program ini adalah mempermudah kalangan akademisi

untuk memahami penyandian dan pengawasandi sandi biorthogonal.

1.4.

Batasan Masalah

Program simulasi Penyandi dan Pengawasandi Sandi Biorthogonal dibuat dengan

batasan-batasan masalah sebagai berikut :

1.

Program akan diimplementasikan menggunakan Matlab.

2.

Masukan ( input

) berupa pesan 8 bit yang direpresentasikan menggunakan

bilangan heksadesimal 2 digit.

3.

Memasukkan input melalui keyboard.

4.

Kemampuan deteksi error maksimal 63 bit.

5.

Kemampuan koreksi error maksimal 31 bit.

1.5.

Metodologi Penelitian

Metode penelitian untuk membuat program simulasi Penyandi dan Pengawasandi

Sandi Biorthogonal adalah :

1.

Dengan mempelajari referensi-referensi yang berhubungan dengan sandi

(22)

2.

Membuat program untuk simulasi pembangkitan matrik sandi biorthogonal,

proses penyandian, pembuatan error, deteksi dan koreksi error.

3.

Menguji program untuk mengetahui apakah program sudah berjalan sesuai

dengan apa yang diinginkan.

1.6.

Sistematika Penulisan

Penulisan laporan pra tugas akhir ini terdiri dari lima bab yang masing-masing

berisi tentang :

1.

Bab I Pendahuluan

Bab pendahuluan ini berisi tentang latar belakang masalah, rumusan

masalah, batasan masalah, tujuan penulisan, manfaat penelitian, metodologi

penelitian, dan sistematika penulisan.

2.

Bab II Dasar Teori

Bab ini berisi dasar teori tentang sandi yang dibahas dalam tulisan ini

yaitu sandi biorthogonal serta perangkat lunak (software) yang digunakan dalam

merancang program simulasi.

3.

Bab III Perancangan

Bab ini menjelaskan tentang bagaimana membuat program simulasi matrik

pembangkitan sandi biorthogonal 8 bit, proses penyandian, pembuatan error,

deteksi dan koreksi error yang dilengkapi dengan flow chart.

4.

Bab IV Pembahasan

(23)

tentang proses penyandian sandi biorthogonal, pembuatan error serta deteksi dan

koreksi error.

5.

Bab V Kesimpulan dan Saran

Bab ini berisi tentang kesimpulan yang ditulis berdasarkan keseluruhan

dari proses perancangan dan pembuatan program, dan saran untuk perbaikan

(24)

5

Gangguan pada sistem komunikasi, misalnya noise,

fading, dan lain-lain

merupakan masalah yang sering terjadi. Penyandian kanal (channel coding) adalah proses

pengubahan sinyal pesan. Penyandian kanal (channel coding) dilakukan untuk mengatasi

permasalahan di atas dengan cara memperbaiki sinyal pesan yang akan ditransmisikan

agar menjadi lebih handal jika terkena gangguan-gangguan. Jika sampai terdapat

kesalahan bit, maka penerima mampu untuk mendeteksi dan mengoreksi kesalahan

sendiri.

Penyandian kanal dibagi dalam dua kategori, yaitu penyandian bentuk gelombang

(waveform coding) dan penyandian runtun struktur (structured sequences).

Waveform

coding berhubungan dengan penggunaan bentuk sinyal baru yang meningkatkan deteksi

sinyal asli. Structured sequences berhubungan dengan penggunaan redundant bit untuk

menentukan ada tidaknya noise pada kanal [1].

2.1

Penyandian Kanal (

Channel Coding

)

2.1.1

Penyandian Runtun Struktur (

Structured Sequences

)

Penyandian

Structured Sequences menggunakan redundant bit yang

ditambahkan pada data asli sehingga mudah untuk mendeteksi dan mengkoreksi error.

Salah satu contoh dari penyandian Structured Sequences adalah block coding. Pada

penyandian

block codes, sejumlah bit pariti ditambahkan pada bit informasi sehingga

(25)

informasi dikodekan kedalam n bit kode. Dengan demikian jumlah bit redudansi yang

ditambahkan pada data informasinya sebanyak n-k bit. Block code yang dihasilkan dapat

direpresentasikan dalam bentuk (n,k).

Sandi blok mempunyai matrik generator yang digunakan untuk menghasilkan

katasandi sebagai berikut :

G = P I

k

(2.1)

dengan P = matrik pariti bit.

I

k

= matrik identitas.

Vektor kode U dihasilkan dari perkalian data m dengan matrik generator G seperti pada

persamaan berikut :

U = mG (2.2)

dengan U = katasandi

Sebagai contoh sebuah data 1 1 0, dengan menggunakan persamaan (2.2) akan dihasilkan

katasandi sebagai berikut :

jika ,

G =

⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 0 1 1

maka ,

U = mG

U = [1 1 0]

⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 0 1 1

= 1 1 0 1 0 0 + 0 1 1 0 1 0 + 1 0 1 0 0 1

(26)

Dengan cara yang sama diperoleh katasandi untuk data 3 bit yang lain yaitu :

Message vector Code vector

0 0 0 0 0 0 0 0 0

1 0 0 1 1 0 1 0 0

0 1 0 0 1 1 0 1 0

1 1 0 1 0 1 1 1 0

0 0 1 1 0 1 0 0 1

1 0 1 0 1 1 1 0 1

0 1 1 1 1 0 0 1 1

1 1 1 0 0 0 1 1 1

2.2.2.

Penyandian Bentuk Gelombang (

Waveform Coding

)

2.1.2.1

Sinyal Antipodal dan Sinyal

Orthogonal

Sinyal-sinyal antipodal adalah sinyal-sinyal yang berbeda 180

0

atau dengan kata

lain salah satu sinyal adalah negatif dari sinyal yang lain. Contoh dari sinyal-sinyal

antipodal ditunjukkan pada Gambar 2.1.

Analytic Waveform Vector

representation representation representation

S

1

(t)

T

S

1

(t) = sin

ω

0

t

0 t

d =2 E

E

E

S

2

(t) S2 0 S1

Ψ1

( )

t

(c)

S

2

(t) = - sin

ω

0

t

0 t

T t

0

T

(a)

(b)

Gambar 2.1 Contoh dari sinyal antipodal. (a) Persamaan gelombang. (b) Sinyal dalam

(27)

Contoh dari sinyal orthogonal ditunjukkan pada Gambar 2.2. Sin x dan cos x

merupakan fungsi orthogonal karena berbeda fasa sebesar 90

0

. Demikian juga dengan sin

mx dan cos nx, dengan m dan n adalah bilangan bulat dan m

n. Gambar 2.2

menunjukkan bahwa gelombang kotak dideskripsikan sebagai :

S

1

(t) = p(t)

0≤tT

(2.3)

S

2

(t) = p

⎛ −

2

T

t

0≤tT

dengan p(t) adalah gelombang dengan durasi

λ

= T/2, dan T adalah durasi simbol.

Analytic Waveform Vector

representation representation representation

S

1

(t)

1

T

S

1

(t) = p(t) 0 t

T/2 T

E

S

2

d = 2

E

E

Ψ1

( )

t

0 S

1

S

2

(t) (c)

1

T t

S

2

(t) = p

⎛ −

2

T

t

0 T/2 T

(a) (b)

Gambar 2.2 Contoh dari sinyal orthogonal. (a) Persamaan gelombang. (b) Sinyal dalam

(28)

2.1.2.2

Penyandian Gelombang dengan Deteksi Korelasi

Penyandian gelombang mengubah satu set gelombang menjadi satu set

gelombang yang lebih baik. Yang paling populer dari waveform codes adalah

orthogonal

dan

biorthogonal codes. Tujuan dari penyandian ini adalah untuk membuat

setiap gelombang dari sinyal yang dikodekan sebeda mungkin atau membuat nilai

koefisien

cross-correlation (z

ij

) dari setiap pasangan sinyal sekecil mungkin. Nilai

terkecil dari koefisien cross-correlation (z

ij

) dihasilkan jika satu sinyal merupakan

antikorelasi (z

ij

= -1) dari sinyal lainnya, tetapi hal ini hanya dapat dicapai jika jumlah

simbol dalam kelompok sinyal adalah dua (M=2) dan setiap simbol adalah antipodal.

Cross-correlation antara dua sinyal merupakan ukuran jarak antara

vektor-vektor sinyal. Semakin kecil nilai cross-correlation

maka jarak antar vektor semakin

panjang. Hal ini dapat dibuktikan pada Gambar 2.1 yang menunjukkan sinyal-sinyal

antipodal (dengan z

ij

= -1) yang digambarkan dengan vektor yang memiliki jarak yang

berjauhan antara satu dengan yang lain dan pada Gambar 2.2 yang menunjukkan

sinyal-sinyal orthogonal (dengan z

ij

= 0) yang digambarkan dengan vektor yang memiliki jarak

yang lebih dekat satu dengan yang lain jika dibandingkan dengan vektor-vektor antipodal.

2.2

Sandi

Biorthogonal

Sebuah himpunan sinyal biorthogonal dari M total sinyal atau katasandi dapat

disusun dari M/2 sinyal orthogonal ditambah dengan negatif dari setiap sinyal, dengan

kata lain sandi biorthogonal terdiri dari sandi orthogonal dengan setiap

katasandi orthogonal pada satu bagian memiliki katasandi antipodal pada bagian lain.

(29)

( ) ( )

⎪ ⎪ ⎪ ⎩ ⎪ ⎪ ⎪ ⎨ ⎧ ≠ − ≠ = − ≠ − = = =

2 , 0 2 , 1 1 1 0 M j i j i untuk M j i j i untuk j i untuk dt t s t s E z T j i

ij

(2.4)

dengan E = energi sinyal.

Persamaan (2.4) merupakan persamaan koefisien cross-corelation secara umum

untuk sinyal biorthogonal. Jika bentuk gelombang sinyal biorthogonal merupakan

gelombang biner, maka persamaan (2.4) dapat disederhanakan menjadi :

digit

total

jumlah

sama

tidak

yang

digit

jumlah

sama

yang

digit

jumlah

z

ij

=

(2.5)

⎪ ⎪ ⎪ ⎩ ⎪ ⎪ ⎪ ⎨ ⎧ ≠ − ≠ = − ≠ − = = 2 , 0 2 , 1 1 M j i j i untuk M j i j i untuk j i untuk zij

dengan i,j = 1, ..., M.

M = ukuran katasandi.

Koefisien cross-corelation antara dua sinyal merupakan ukuran jarak antara kedua

vektor sinyal. Semakin kecil nilai cross-corelation, jarak antar vektor semakin panjang.

Nilai-nilai koefisien cross-corelation (Zij) ini dapat dikelompokkan menjadi :

1.

Nilai Zij = 1, jika semua digit dari katasandi yang diterima sama dengan semua

digit dari katasandi pembanding.

2.

Nilai 0 < Zij < 1, jika jumlah digit yang berbeda tidak sama dengan jumlah digit

yang sama. Katasandi yang diterima ini bukan merupakan sinyal orthogonal.

(30)

3.

Nilai Zij = 0, jika jumlah digit yang berbeda sama dengan jumlah digit yang sama,

atau jumlah digit yang berbeda dan yang sama masing-masing adalah 64 digit.

Katasandi yang diterima ini merupakan sinyal orthogonal, tetapi belum tentu

merupakan sandi biorthogonal.

Kelebihan sandi biorthogonal dibandingkan sandi orthogonal adalah untuk data

yang sama sandi biorthogonal membutuhkan setengah katasandi dari sandi orthogonal,

sehingga

bandwidth yang dibutuhkan untuk sandi biorthogonal adalah setengah dari

kebutuhan bandwidth sandi orthogonal [1].

2.3

Penyandian Sandi

Biorthogonal

Himpunan katasandi biorthogonal disusun menggunakan setengah dari katasandi

orthogonal, dengan matrik katasandi biorthogonal ini berdimensi 2

k

×

2

(k-1)

. Sebagai

contoh, untuk data 3 bit dapat ditransformasikan ke dalam katasandi biorthogonal sebagai

berikut :

data katasandi biorthogonal

0 0 0 0 0 0 0

0 0 1 0 1 0 1

0 1 0 0 0 1 1

0 1 1 0 1 1 0

B

3

=

1 0 0 1 1 1 1

1 0 1 1 0 1 0

1 1 0 1 1 0 0

1 1 1 1 0 0 1

(31)

Sebagai perbandingan data 3 bit dapat ditransformasikan ke dalam katasandi orthogonal

sebagai berikut :

data katasandi orthogonal

0 0 0 0 0 0 0 0 0 0 0

0 0 1 0 1 0 1 0 1 0 1

0 1 0 0 0 1 1 0 0 1 1

0 1 1 0 1 1 0 0 1 1 0

H

3

=

1 0 0 0 0 0 0 1 1 1 1

1 0 1 0 1 0 1 1 0 1 0

1 1 0 0 0 1 1 1 1 0 0

1 1 1 0 1 1 0 1 0 0 1

Secara umum, matrik katasandi biorthogonal B

k

dengan data k-bit dapat disusun dari

matrik H

k-1

, sebagai berikut :

=

− −

1 1

k k k

H

H

B

(2.6)

dengan matrik H

1

adalah :

data katasandi orthogonal

1

0

=

1

0

0

0

1

H

Dengan diketahuinya matrik H

1

maka matrik H

2

dapat disusun sebagai berikut :

data katasandi orthogonal

0 0 0 0 0 0

0 1 0 1 0 1

H

2

=

1 0 0 0 1 1

(32)

Secara umum, matrik katasandi, H

k

, dengan dimensi 2

k

×

2

k

untuk k-bit data dapat

disusun dari matrik H

k-1

, seperti di bawah ini :

=

− −

− −

1 1

1 1

k k

k k

k

H

H

H

H

H

(2.7)

Pada penyandian sandi orthogonal data yang berjumlah k-bit akan disandikan

menjadi katasandi dengan jumlah bit 2

k

. Sebagai contoh, data yang berjumlah 3 bit akan

disandikan menjadi katasandi dengan jumlah bit 2

3

atau sama dengan 8 bit. Sedangkan

untuk penyandian sandi biorthogonal, karena merupakan setengah dari sandi orthogonal,

maka data yang berjumlah k-bit akan disandikan menjadi katasandi dengan jumlah bit

2

k

/2. Sehingga jika data 3 bit akan disandikan dengan sandi biorthogonal, maka data akan

menjadi katasandi dengan jumlah bit 2

3

/2 atau sama dengan 4 bit.

2.4

Pengawasandi Sandi

Biorthogonal

2.4.1

Bobot dan Jarak

Hamming

Bobot Hamming (Hamming weight) dari suatu vektor U didefinisikan

sebagai jumlah elemen nonzero di dalam U. Untuk suatu vektor biner, bobot

Hamming adalah setara dengan jumlah bit 1 pada vektor biner tersebut. Sebagai contoh,

jika U = 001010011, maka :

4

)

(

U

=

w

(33)

Sedangkan jarak Hamming

(Hamming distance) antara dua vektor sandi didefinisikan

sebagai banyaknya elemen yang berbeda, contohnya :

U = 0 0 1 0 1 0 0 1 1

V = 1 0 1 0 0 0 1 1 1

d(U,V) = 3

Dengan penambahan modulo-2, diketahui bahwa penjumlahan dua vektor sandi

biner menghasilkan vektor baru. Dalam vektor baru ini bit 1 terletak pada posisi saat

kedua vektor tersebut berbeda seperti ditunjukkan pada contoh di bawah ini :

U + V = 1 0 0 0 1 0 1 0 0

Sehingga jarak Hamming antara dua vektor sandi sama dengan bobot Hamming dari

penjumlahan kedua vektor tersebut yaitu :

)

(

)

,

(

U

V

w

U

V

d

=

+

(2.8)

2.4.2

Jarak Minimum Suatu Sandi Linear

Penjumlahan dua vektor sandi akan menghasilkan vektor sandi baru yang tetap

merupakan anggota subspace. Jika U dan V adalah vektor sandi maka W = U + V harus

pula merupakan vektor sandi, sehingga jarak antara dua vektor sandi sama dengan bobot

vektor sandi yang baru, yaitu :

)

(

)

(

)

,

(

U

V

w

U

V

w

W

d

=

+

=

(2.9)

Jadi jarak minimum suatu sandi linear dapat diketahui hanya dengan menguji bobot dari

(34)

2.4.3

Deteksi dan Koreksi

Error

Kemampuan deteksi kesalahan (error) dari suatu sandi dapat dirumuskan sebagai

berikut :

e = d

min

– 1 (2.10)

dengan d

min

= jarak minimum dari sandi

.

Besarnya kemampuan koreksi kesalahan (error) dari suatu sandi tergantung dari

sandi tersebut. Untuk sandi yang berdasarkan bit, kemampuan koreksi kesalahan

dituliskan dalam rumus berikut :

⎥⎦

⎢⎣

=

2

1

min

d

t

(2.11)

Pada rumus tersebut tampak bahwa kemampuan koreksi kesalahan dari sandi yang

berdasarkan bit, ditentukan oleh jarak minimum dari sandi tersebut [2].

2.5

MATLAB

MATLAB adalah pemrograman level tinggi yang dikhususkan untuk komputasi

teknis. MATLAB merupakan singkatan dari MATrix LABoratory. Bahasa ini

mengintegrasikan kemampuan komputasi, visualisasi dan pemrograman dalam sebuah

lingkungan yang mudah digunakan [3].

Sebagaimana bahasa pemrograman lainnya, MATLAB juga menyediakan

lingkungan kerja terpadu yang sangat mendukung dalam pembangunan aplikasi.

Lingkungan terpadu ini terdiri dari beberapa form/window yang memiliki kegunaan

(35)

2.5.1

Window

utama MATLAB

Window ini adalah window induk yang melingkupi seluruh lingkungan kerja

MATLAB. Terdiri dari beberapa window, antara lain Command Window,

Current

Directory Window,

Workspace Window dan Command History Window yang memiliki

fungsinya masing-masing. Namun yang terpenting adalah Command Window, yang

merupakan tempat untuk berinteraksi dengan MATLAB.

Gambar 2.3 Window utama MATLAB

2.5.1.1

Command Window

(36)

Command Window berfungsi sebagai penerima perintah dari pengguna untuk

menjalankan seluruh fungsi-fungsi yang disediakan oleh MATLAB.

2.5.1.2

Current Directory Window

Gambar 2.5 Current Directory Window

Window ini berfungsi sebagai browser direktori aktif, yang hampir sama dengan

window explorer.

2.5.1.3

Workspace Window

(37)

Workspace Window berfungsi sebagai navigator bagi pemakai dalam

menyediakan informasi mengenai variable yang sedang aktif dalam workspace pada saat

pemakaian.

Workspace adalah suatu lingkungan abstrak yang menyimpan seluruh

variable dan perintah yang pernah digunakan selama penggunaan MATLAB berlangsung.

2.5.1.4

Command History Window

Gambar 2.7 Command History Window

Window ini berfungsi sebagai penyimpan perintah-perintah yang pernah

dikerjakan pada suatu workspace.

2.5.2

MATLAB Editor

(38)

Window ini berfungsi untuk membuat skrip program MATLAB. Ketika window

utama MATLAB muncul, window MATLAB editor tidak akan muncul dengan

sendirinya. Cara memanggil window MATLAB editor adalah dengan mengetikkan edit

pada prompt MATLAB, atau dengan cara mengklik pada ikon file < new < M-file.

2.5.3

Graphic User Interface

(GUI)

Graphic User Interface (GUI) adalah media tampilan grafis sebagai pengganti

perintah teks untuk pengguna (user) berinteraksi. Untuk keperluan pemrograman

Window, MATLAB telah menyediakan komponen-komponen standar, seperti pushbotton,

edit,

text,

combo,

checkbox dan lain-lain untuk digunakan sebagai media disain.

MATLAB menyediakan sebuah GUI Designer yang dibungkus dalam fungsi GUIDE.

Untuk menjalankan fungsi ini user harus mengetikkan pada Window MATLAB, sebagai

berikut :

Selanjutnya MATLAB akan merespon dengan menampilkan Form designer

seperti ditunjukkan pada Gambar 2.9. Form designer adalah bagian yang digunakan

untuk meletakkan komponen-komponen window yang dibutuhkan.

Gambar 2.10 adalah form property inspector, melalui form ini

komponen-komponen yang digunakan dapat dikontrol. Tampilan window ini terbagi dua, bagian

pertama (sebelah kiri) adalah daftar property yang dimiliki oleh komponen tersebut.

Setiap komponen akan memiliki property yang berbeda satu dengan yang lainnya. Bagian

kedua (sebelah kanan) adalah daftar nilai parameter

(value property) yang dapat diatur

(39)

Gambar 2.9 Form designer

(40)

21

Program penyandi dan pengawasandi sandi biorthogonal 8 bit ini akan dibuat

menggunakan MATLAB. Diagram alir (flowchart) dari program ini ditunjukkan pada

Gambar 3.1.

Gambar 3.1 Diagram alir program

Pertama-tama program akan meminta pengguna (user) untuk memasukkan

input berupa bilangan heksadesimal 2 digit. Kemudian input akan disandikan

menggunakan sandi biorthogonal.

Input yang telah disandikan dapat diubah-ubah

oleh

user sehingga terjadi error. Selanjutnya program akan mendeteksi untuk

mengetahui apakah katasandi telah diubah sehingga terjadi error atau tidak. Setelah

mendeteksi, program akan menginformasikan ada tidaknya error. Jika terjadi error,

maka program akan mengkoreksi input, sehingga dihasilkan output berupa data yang

mulai

Inputdata

Penyandian

Pembuatan error

Pengawasandian (Deteksi dan koreksierror)

Outputdata

(41)

sama dengan input. Gambar 3.2 menunjukkan tampilan menu utama dari program

penyandi dan pengawasandi.

Gambar 3.2 Tampilan dari menu utama

4.1.

Proses Penyandian

Dalam proses penyandian input data 8 bit biner akan menjadi sebuah

katasandi. Proses penyandian ini dilakukan dengan menggunakan matrik pada

persamaan (2.6). Karena input data berjumlah 8 bit, maka persamaan (2.6) menjadi :

=

7 7 8

H

H

B

(3.1)

(42)

Untuk proses pembuatan matriks sandi biorthogonal 8 bit membutuhkan

matriks sandi orthogonal 7 bit. Pembuatan matriks H

7

diawali dengan diketahuinya

elemen matriks H

1

untuk membuat matriks H

2

. Dengan tersusunnya matriks H

2,

dapat

disusun pula matriks H

3

dan seterusnya seperti rumusan di bawah ini :

=

1

0

0

0

1

H

(3.2)

=

1 1 1 1 2

H

H

H

H

H

(3.3)

=

2 2 2 2 3

H

H

H

H

H

(3.4)

=

3 3 3 3 4

H

H

H

H

H

(3.5)

=

4 4 4 4 5

H

H

H

H

H

(3.6)

=

5 5 5 5 6

H

H

H

H

H

(3.7)

=

6 6 6 6 7

H

H

H

H

H

(3.8)

=

7 7 8

H

H

(43)

Diagram alir dari proses penyandian ditunjukkan pada Gambar 3.3. Pada

proses penyandian ini, program akan meminta user untuk memasukkan data berupa

bilangan heksadesimal. Kemudian program akan memproses data yang masuk. Jika

besarnya nilai data tidak terletak antara 0 s/d FF dalam bilangan heksadesimal, maka

program akan meminta user untuk memasukkan data kembali. Jika data yang

dimasukkan sesuai, maka program akan segera memproses data untuk disandikan.

Tampilan dari proses memasukkan data dalam bilangan heksadesimal ditunjukkan

pada Gambar 3.4. Tampilan untuk hasil dari proses penyandian ditunjukkan pada

Gambar 3.5.

T T

Y

Gambar 3.3 Diagram alir proses penyandian

mulai

Pembuatan Matrik B8

Masukkan pesan berupa bilangan heksadesimal 2 digit

Apakah input

2 digit ? Look Up table B8

Sandi 128 bit

(44)

Gambar 3.4 Tampilan proses memasukkan data

Gambar 3.5 Tampilan hasil dari proses penyandian

3.2

Pembuatan

Error

Dalam proses pembuatan error, katasandi akan diubah sesuai dengan

keinginan user dengan suatu fasilitas untuk mengubah angka 0 atau 1 yang letaknya di

mana saja pada sebuah katasandi. Diagram alir untuk proses pembuatan error

ditunjukkan pada Gambar 3.6.

Setelah

user memasukkan posisi bit yang ingin diubah, program akan

mengecek apakah bit pada posisi yang diinginkan adalah bit 1 atau 0. Jika pada posisi

yang diinginkan adalah bit 1, maka akan diubah menjadi bit 0 dan begitu juga yang

sebaliknya. Selanjutnya user masih dapat mengubah-ubah katasandi dengan cara yang

(45)

T Y

T

Y

T

Y

Y

T

Gambar 3.6 Diagram alir pembuatan error

Gambar 3.7 adalah tampilan katasandi pada pembuatan error. Katasandi yang

ditampilkan pada kotak ini adalah katasandi yang nantinya akan diubah-ubah oleh

user agar terjadi error.

mulai

Katasandi 128

Ingin diubah ?

Masukkan posisi bit yang ingin diubah (g)

Apakah

128

1

g

?

Apakah X[g] = 1?

X[g] = 0

X[g] = 1

Mau menambahkan

error lagi ?

katasandi

(46)

Gambar 3.7 Tampilan katasandi pada pembuatan error

Gambar 3.8 adalah tampilan untuk user mengubah-ubah katasandi supaya

katasandi mengalami error. Jika kita menekan tombol ’UBAH’, maka katasandi pada

posisi yang diinginkan oleh user akan diubah. Sedangkan jika kita menekan tombol

’BATAL’, maka katasandi tidak akan mengalami perubahan.

Gambar 3.8 Tampilan untuk mengubah-ubah error

Gambar 3.9 adalah tampilan untuk kata terima pada pembuatan error. Kata

terima pada tampilan ini merupakan katasandi yang telah diubah-ubah oleh user.

Gambar 3.10 adalah tampilan untuk posisi bit yang diubah. Tampilan ini akan berisi

angka-angka yang menunjukkan pada bit berapa saja katasandi diubah oleh user.

(47)

Gambar 3.10 Tampilan posisi bit yang diubah

3.3

Pengawasandi

Diagram alir dari proses pengawasandi ditunjukkan pada Gambar 3.11. Proses

pengawasandi terdiri dari dua proses yaitu proses deteksi dan koreksi error. Proses

deteksi bertujuan untuk mengetahui ada tidaknya error pada kata terima. Jika terdapat

error pada kata terima, maka proses selanjutnya adalah proses koreksi dan proses

pengawasandi selesai setelah proses koreksi. Tetapi jika tidak ditemukan error pada

kata terima, maka proses pengawasandi selesai setelah proses deteksi.

T

Y

Gambar 3.11 Diagram alir pengawasandi

mulai

Kata terima

Deteksi error

Ada

error ? Koreksierror

(48)

Pada suatu sandi biorthogonal kemampuan deteksi dan koreksi error

berhubungan dengan jarak minimum sandi. Jarak minimum dari sandi biorthogonal

256

×

128 untuk semua katasandi adalah sama yaitu :

64 128 2 1

min

= × =

d

Dengan menggunakan persamaan (2.9) dan persamaan (2.10) kemampuan deteksi dan

koreksi kesalahannya dapat dihitung, yaitu :

Kemampuan deteksi kesalahan :

e = d

min

– 1

= 64 – 1 = 63

Kemampuan koreksi kesalahan :

31

2

1

64

2

1

min

=

⎥⎦

⎢⎣

=

⎥⎦

⎢⎣

=

d

t

Pada proses deteksi error, kata terima dibandingkan dengan salah satu sandi

dari

look up table untuk mendapatkan nilai Z

ij

. Pada proses look up table, jika

berhasil, berarti tidak ada error. Tapi jika look up table gagal, berarti kata terima

mengalami

error. Jika ada error, maka akan dicari nilai d

min

(jarak minimum dari

sandi), kemudian dilakukan proses look up table yang akan menghasilkan data

terkirim 8 bit biner yang akan diubah ke dalam bilangan heksadesimal. Gambar 3.12

(49)

Y T Y T

T

Y

Gambar 3.12 Diagram alir proses deteksi dan koreksi error

mulai

Kata terima

Bandingkan dengan katasandi : 01010101010101010101010101010101 01010101010101010101010101010101 01010101010101010101010101010101 01010101010101010101010101010101

Hitung Zij

Zij= 1 Zij ≠0

Ada error

Look up table B8

Mencari dmin

Mencari indeks kata terima pada matriks

katasandi

Data = indeks - 1 Mengubah data

decimal menjadi heksadesimal Look up table B8

Look up table berhasil ?

Tidak ada error

Data diterima 8 bit

(50)

Gambar 3.13 sampai 3.19 adalah tampilan hasil-hasil dari proses deteksi dan

koreksi

error. Kotak pesan pada Gambar 3.15 akan berisi ”Proses Look up

BERHASIL” atau “Proses Look up GAGAL”. Jika kotak pesan berisi “Proses Look

up BERHASIL”, maka akan ada informasi lain dengan tampilan yang ditunjukkan

pada Gambar 3.16. Pada kotak hasil deteksi Gambar 3.16 akan diinformasikan bahwa

kata terima tidak ada error dan akan muncul pesan ”Tidak ada Error”. Kemudian kata

terima akan ditampilkan dengan tampilan seperti pada Gambar 3.17.

Gambar 3.13 Tampilan kata terima pada pembuatan error

Gambar 3.14 Tampilan nilai Zij

Gambar 3.15 Tampilan pesan proses Look up table

(51)

Gambar 3.17 Tampilan untuk data yang diterima

Jika kotak pesan pada proses look up table berisi ”Proses Look up GAGAL”,

maka informasi lain yang akan ditampilkan adalah pada kotak hasil deteksi akan

diinformasikan bahwa ada error pada kata terima dan akan muncul pesan ”Ada

Error”. Sebagai tambahan informasi, jumlah error yang terdeteksi akan ditampilkan

seperti pada Gambar 3.18. Kemudian kata terima dengan error yang telah dikoreksi

akan ditampilkan dengan tampilan seperti pada Gambar 3.19.

Gambar 3.18 Tampilan jumlah error

(52)

33

Program penyandi dan pengawasandi sandi biorthogonal 8 bit ini dibuat

menggunakan MATLAB. Pembuatan program ini tidak menggunakan GUI (Guide

User Interface) seperti pada perancangan sebelumnya yang ditunjukkan pada Gambar

3.2, hal ini dikarenakan keterbatasan waktu untuk mempelajari lebih dalam mengenai

GUI (Guide User Interface). Maka program akan ditampilkan pada command

window. Skrip program dibuat pada m-editor dan disimpan dalam m-files. Untuk skrip

program penyandi dan pengawasandi sandi biorthogonal 8 bit ini disimpan dengan

nama ’biortho.m’. Program ini terdiri dari beberapa bagian. Setiap bagian terdiri dari

perintah-perintah yang digunakan dalam setiap proses penyandian dan pengawasandi,

yaitu :

1.

Pembuatan matrik katasandi

2.

Proses memasukkan data

3.

Proses penyandian

4.

Proses pembuatan error

5.

Proses deteksi error

6.

Proses koreksi error

5.1.

Tampilan Awal MATLAB

Yang perlu dilakukan untuk menjalankan program ini adalah mengetikkan

(53)

Dengan menekan Enter, program akan dijalankan. Selanjutnya program akan

menampilkan

title program seperti ditunjukkan pada Gambar 4.2 dan meminta user

untuk memasukkan data berupa bilangan heksadesimal.

Gambar 4.1 Tampilan awal MATLAB.

Gambar 4.2 Tampilan title dari program .

4.2

Pembuatan Matrik Katasandi

Matrik

orthogonal 7 bit dibutuhkan untuk mendapatka matrik katasandi

biorthogonal 8 bit. Matrik katasandi orthogonal 7 bit diperoleh dengan diketahuinya

(54)

matrik katasandi biorthogonal

8 bit dengan ordo 256

×

128. Matrik katasandi yang

diperoleh dari proses pembuatan matrik ini selanjutnya akan digunakan untuk proses

penyandian.

Program yang berisi perintah untuk membuat matrik katasandi ditulis sebagai

berikut :

%membuat matrik Biorthogonal 8 bit

H1 = [0 0;0 1];

H2 = [H1 H1;H1 ~H1]; %operator ~ akan menghasilkan negasi (not) dari matrik H1

H3 = [H2 H2;H2 ~H2];

H4 = [H3 H3;H3 ~H3];

H5 = [H4 H4;H4 ~H4];

H6 = [H5 H5;H5 ~H5];

H7 = [H6 H6;H6 ~H6];

B8 = [H7;~H7];

4.3

Proses Memasukkan Data

Proses setelah program dijalankan adalah program meminta user untuk

memasukkan data berupa bilangan heksadesimal seperti ditunjukkan pada Gambar

4.3. Bilangan heksadesimal yang dimasukkan harus berkisar antara 00 s/d FF. Jika

lebih besar dari FF, maka program akan mengeluarkan tanda perhatian seperti

ditunjukkan pada Gambar 4.4.

(55)

Gambar 4.4 Tampilan tanda perhatian.

Setelah data dimasukkan, program akan mengubah data dari bilangan

heksadesimal menjadi bilangan biner dan desimal. Selanjutnya bilangan desimal hasil

dari pengubahan inilah yang akan digunakan untuk mencari katasandi dari data yang

dimasukkan. Untuk mempermudah pengamatan maka data yang telah dimasukkan

dan telah diubah ditampilkan kembali seperti ditunjukkan pada Gambar 4.5.

Gambar 4.5 Tampilan data yang telah dimasukan.

Di bawah ini adalah perintah-perintah program yang digunakan untuk

meminta user memasukkan data dan mengubah data menjadi bilangan lain :

a = inputdlg('Bilangan heksa yang anda inginkan = ','DATA');

disp('PROSES PENYANDI DAN PENGAWASANDI SANDI BIORTHOGONAL');

disp('---');

d = char(a);

if length (d) >= 3

errordlg('Pesan yang anda masukkan lebih dari 2 digit !!!','Perhatian')

else

b=hex2dec(d);

(56)

while length(c)<8

c = strcat('0',c);

end;

while length (d)<2

d = strcat('0',d);

end

disp(['Bilangan Heksadesimal = ',d]);

disp(['Bilangan Desimal = ',num2str(b)]);

disp(['Bilangan Biner = ',c]);

disp([' '] );

4.4

Proses Penyandian

Proses selanjutnya adalah proses penyandian. Data yang telah diubah menjadi

bentuk desimal digunakan untuk mengambil katasandi dari matrik katasandi yang

telah dibuat. Sebagai contoh, data yang dimasukkan adalah ‘8B’ (heksadesimal)

kemudian diubah menjadi bilangan desimal menjadi ‘139’, maka katasandi yang

diambil dari matrik katasandi adalah katasandi pada baris (data + 1) yaitu baris

ke-140, sehingga katasandi dari data ‘8B’ ditunjukkan pada Gambar 4.6. Data yang

diambil dari matrik katasandi harus ditambah 1 (satu) karena data masukan terdiri dari

bilangan desimal 0 s/d 255, sedangkan indeks matrik katasandi mulai dari 1 s/d 256.

(57)

Perintah-perintah program yang digunakan pada proses penyandian ini ditulis

sebagai berikut :

%menampilkan code biorthogonal 8 bit untuk setiap bilangan heksadesimal yang

diinginkan

baris1=' ';

baris2=' ';

baris3=' ';

baris4=' ';

if 0<=b<=255 %data di b adalah bilangan desimal

j = b + 1;

e = B8(j,:);

p = e;

baris1 =[baris1,num2str(p(1:32))];

baris2 =[baris2,num2str(p(33:64))];

baris3 =[baris3,num2str(p(65:96))];

baris4 =[baris4,num2str(p(97:128))];

disp('Sandi yang dikirim = ');

disp(baris1);

disp(baris2);

disp(baris3);

disp(baris4);

disp([' ']);

end

5.5.

Proses Pembuatan

Error

Pembuatan

error ini dimaksudkan sebagai sebuah simulasi terjadinya

gangguan yang dialami oleh data saat dikirimkan. Pada proses ini program meminta

user untuk memasukkan angka yang menunjukkan posisi bit yang ingin diubah.

(58)

otomatis program akan mengubah bit yang bernilai 1 menjadi 0, begitu juga

sebaliknya. Tampilan dari proses pembuatan error ditunjukkan pada Gambar 4.7.

Gambar 4.7 Tampilan dari proses pembuatan error.

Berikut ini adalah perintah-perintah yang digunakan pada proses pembuatan

error.

%proses pembuatan error

maubuaterror = 't';

maubuaterror = input ('Mau membuat error [Y/T]: ', 's');

disp([' ']);

if maubuaterror == 't'

baris5=' ';

baris6=' ';

baris7=' ';

baris8=' ';

baris5 =[baris5,num2str(p(1:32))];

baris6 =[baris6,num2str(p(33:64))];

baris7 =[baris7,num2str(p(65:96))];

baris8 =[baris8,num2str(p(97:128))];

disp ([' '])

disp('code = ');

disp(baris5);

(59)

disp(baris7);

disp(baris8);

else

disp('Error akan diletakkan pada kolom berapa saja ?(Ditulis menggunakan kurung

siku dan dipisah dengan spasi)');

g = input('Kolom yang diinginkan = ');

disp([' '] );

jml = length (g);

for i = 1:jml

if p(:,[g(i)])==0

p(:,[g(i)])=1;

else

p(:,[g(i)])=0;

end

end

end

4.6

Proses Pengawasandi

4.6.1

Proses Deteksi

Error

Pada proses deteksi error satu katasandi dibutuhkan sebagai pembanding.

Tujuannya untuk mendapatkan nilai digit yang berbeda dan nilai digit yang sama

antara katasandi pembanding dengan katasandi dari data yang diterima. Semua

katasandi pada matrik biorthogonal dapat digunakan sebagai pembanding, tetapi

hanya dibutuhkan satu katasandi saja. Pada program ini katasandi yang digunakan

(60)

Gambar 4.8 Tampilan katasandi pembanding.

Dengan membandingkan setiap digit dari kedua katasandi tersebut, akan

diperoleh jumlah digit yang berbeda dan jumlah digit yang sama. Kemudian kedua

hasil ini akan digunakan untuk menghitung besarnya nilai Zij dengan menggunakan

persamaan (2.5).

Di bawah ini adalah perintah-perintah yang digunakan untuk menghitung

jumlah digit yang berbeda dan yang sama serta menghitung nilai Zij.

%proses pendeteksian ada tidaknya error

K = B8(2,:);

digitBenar = 0;

digitSalah = 0;

dmin = 130;

adaError = 'no';

digitUbah = ' ';

for i1 = 1:128

if p(i1)==K(i1)

digitBenar = digitBenar+1;

else

digitSalah = digitSalah+1;

end;

end

zij = abs((digitBenar-digitSalah)/128);

disp([' ']);

disp(['Zij = ', num2str(zij)]);

(61)

Seperti ditunjukkan pada digram alir Gambar 3.13, proses deteksi error

dimulai dengan membandingkan kataterima dengan salah satu katasandi pada matrik

biorthogonal. Pada proses ini katasandi pembanding yang digunakan adalah katasandi

dari data ‘01’ (desimal).

Kemudian akan dihitung nilai Zij dengan membandingkan kata terima dengan

katasandi pembanding. Selanjutnya program akan mendeteksi apakah kata terima

mengalami kesalahan (error) atau tidak dengan melihat nilai Zij yang diperoleh. Jika

nilai Zij yang diperoleh adalah 1 (Zij = 1), maka katasandi yang diterima dianggap

tidak mengalami kesalahan (error), karena katasandi yang diterima sama dengan

katasandi pembanding. Seperti yang telah dijelaskan pada pengelompokan nilai-nilai

Zij di atas, jika nilai Zij yang diperoleh terletak antara 0 dan 1 (0 < Zij < 1), maka

dapat dipastikan bahwa katasandi yang diterima mengalami kesalahan (error).

Sedangkan jika nilai Zij sama dengan 0 (Zij = 0), maka katasandi yang diterima akan

dibandingkan dengan setiap katasandi yang ada pada tabel look up. Proses ini disebut

dengan proses look up table.

Jika proses ini berhasil dalam arti terdapat satu katasandi dalam tabel look up

yang sama dengan katasandi yang diterima, maka pesan yang disampaikan program

kepada

user adalah ‘Proses look up table berhasil’. Hal ini berarti bahwa katasandi

tidak mengalami kesalahan (error). Sebaliknya jika tidak ada satupun katasandi yang

sama, maka pesan yang disampaikan adalah ‘Proses look up table gagal’ yang berarti

(62)

Gambar 4.9 Tampilan dari hasil proses deteksi.

Perintah-perintah program yang digunakan dalam proses deteksi adalah

sebagai berikut :

adaError = 'no';

if zij == 1

disp(['Hasil deteksi : TIDAK ADA ERROR']);

elseif zij ~= 0

disp(['Hasil deteksi : ADA ERROR']);

adaError = 'ya';

elseif zij == 0

hasil= -1;

for i1=1:256

if p == B8(i1,1:128)

%hasil = index dari tabel H8

hasil = i1-1;

break;

end;

end;

if hasil==(-1)

disp('Proses Look up : GAGAL');

disp(' ');

disp(['Hasil deteksi : ADA ERROR']);

adaError='ya';

else

disp('Proses Look up table : BERHASIL');

(63)

disp(['Hasil deteksi : TIDAK ADA ERROR']);

end;

end;

5.6.2

Proses Koreksi

Error

Proses koreksi error akan dilakukan jika proses look up table gagal. Katasandi

yang diterima akan dibandingkan kembali dengan katasandi pada tabel look up.

Tujuan dari proses look up table ini adalah untuk mencari nilai dmin yaitu jumlah

terkecil digit yang berbeda antara katasandi yang diterima dengan katasandi pada

tabel look up. Perintah-perintah program yang digunakan adalah :

%proses koreksi error

dmin = 130;

hmin = 0;

for r1 = 1:256

digitbenar = 0;

digitsalah = 0;

L8 = B8(r1,1:128);

for r2 = 1:128

if L8(r2) == p(r2)

digitbenar = digitbenar + 1;

else

digitsalah = digitsalah + 1;

end ;

end ;

if dmin > digitsalah

dmin = digitsalah;

hmin = r1 - 1;

end ;

(64)

Dengan diperolehnya nilai dmin maka diperoleh pula posisi indeks tabel yang

kemudian diketahui sebagai data yang dikirim. Indeks tabel yang diperoleh ini masih

berupa bilangan desimal sehingga harus diubah menjadi bilangan heksadesimal untuk

mengetahui apakah data yang diterima sama dengan data yang dikirim.

Gambar 4.10 Tampilan hasil dari proses koreksi.

Berikut adalah perintah-perintah program yang digunakan untuk mengubah

bilangan desimal menjadi bilangan heksadesimal.

chmin = dec2bin (hmin);

fhmin = dec2hex (hmin);

while length(chmin)<8

chmin = strcat('0',chmin);

end;

while length(fhmin)<2

fhmin = strcat('0',fhmin);

end;

disp ([' '])

disp (['Nilai dmin = ', num2str(dmin)]);

disp ([' '])

disp (['KATA TERIMA YANG TELAH DIKOREKSI ']);

disp (['---']);

disp (['Hasil (HEKSADESIMAL) : ', num2str(fhmin)]);

disp (['Hasil (DESIMAL) : ', num2str(hmin)]);

disp (['Hasil (BINER) : ', chmin ]);

(65)

4.7

Analisis Hasil Uji Coba Program

Sub bab ini menjelaskan beberapa hasil uji coba program untuk mengetahui

apakah program dapat mendeteksi atau mengkoreksi error sesuai dengan teori yang

telah dijabarkan.

4.7.1

Hasil Uji Coba I

Pesan yang akan dimasukkan pada uji coba yang pertama adalah data ‘8B’

(heksadesimal) yang kemudian akan disandikan menggunakan sandi biorthogonal.

Setelah disandikan, katasandi dari pesan akan diubah-ubah sehingga mengalami

kesalahan (error). Hasil uji coba diperoleh dengan error yang dikombinasi seperti

ditunjukkan pada Tabel 4.1.

Tabel 4.1 Hasil uji coba dengan masukan data ‘8B’ (heksadesimal)

Masukan berupa bilangan heksadesimal = 8B = 10001011 = 139 Sandi yang dikirim :

1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0

Hasil hitungan Hasil program Kata Terima

No. Jml error

Posisi bit yang diubah

Digit beda

Digit

sama Zij dmin Zij,

pesan dmin

Hek sa

Desi

mal Biner

1 2 4, 18 64 64 0 2 0,

ada error 2 8B 139 10001011

2 14

72, 60, 19, 98, 7, 16, 109, 56, 80, 111, 49, 4,

13, 127

64 64 0 14 0,

Ada error 14 8B 139 10001011

3 29

122, 106, 90, 74, 58, 42, 26,

10, 117, 101, 85, 69, 53, 37,

21, 5, 16, 32, 48, 64, 80, 96, 112, 128, 114, 98, 82, 66, 50

51 77 0.20313 29 0.20313,

Ada error 29 8B 139 10001011

4 31

90, 10, 44, 78, 1, 5, 9, 3, 19, 51, 114, 21, 30,

2, 7, 128, 118, 80, 83, 64, 29,

65 63 0.015625 31 0.015625,

(66)

Tabel 4.1 (Lanjutan) Hasil uji coba dengan masukan data ‘8B’ (heksadesimal)

Hasil hitungan Hasil program Kata Terima

No. Jml error Posisi bit yang diubah Digit beda Digit

sama Zij dmin Zij,

pesan dmin

Hek sa

Desi

mal Biner

4 31

37, 48, 53, 69, 74, 85, 93, 103,

109, 116 65 63

0.015625 31 0.015625,

Ada error 31 8B 139 10001011

5 32

88, 49, 100, 4, 75, 61, 10, 117, 22, 108, 39, 64, 81, 17, 54, 1, 29, 113, 124, 70, 44, 93, 27, 104, 35, 14, 8, 20, 84, 73, 97,

47

62 66 0.03125 32 0.03125,

Ada error 32 8B 139 10001011

6 33

2, 18, 34, 50, 66, 81, 97, 113,

5, 21, 37, 53, 69, 85, 101, 117, 11, 27, 43, 59, 75, 91, 107, 123, 16, 32, 48, 64, 80, 96, 112,

128, 14

33 95 0.48438 33 0.48438,

Ada error 33 01 1 00000001

7 63

1, 17, 33, 49, 65, 81, 97, 113,

8, 24, 40, 56, 72, 88, 104, 120, 12, 28, 44, 60, 76, 92, 108, 124, 4, 20, 36, 52, 68, 84, 100, 116, 16, 32, 48, 64, 80, 96, 112, 128, 10, 26, 42, 58, 74, 90, 106, 122, 6, 22, 38, 54, 70, 86, 102, 118, 14, 30, 46, 62, 78, 94, 110,

126

64 64 0 16 0,

Ada error 16 8A 138 10001010

8 64

23, 110, 50, 7, 94, 123, 75, 15,

38, 115, 59, 102, 82, 31, 2, 127, 11, 54, 86, 67, 111, 43, 98, 19, 10 3, 71, 119, 22, 34, 106, 14, 27, 103, 18, 30, 90,

66, 35, 6, 42, 114, 91, 78, 126, 63, 26, 39, 122, 95, 74, 46, 58, 107, 99, 70, 62, 47, 79, 118, 83, 51, 87, 55

64 64 0 0

0, tidak ada

error

0 88 136 10001000

9 65

1, 18, 35, 52, 69, 86, 103, 120, 126, 109, 92, 75, 58, 41, 24, 7, 16, 32, 48, 64, 80, 96, 112, 12, 83, 20,

37, 54, 71, 88,

51 77 0.20313 41 0.20313,

(67)

Tabel 4.1 (Lanjutan) Hasil uji coba dengan masukan data ‘8B’ (heksadesimal)

Hasil hitungan Hasil program Kata Terima

No. Jml error

Posisi bit yang diubah

Digit beda

Digit

sama Zij dmin Zij,

pesan dmin

Hek sa

Desi

mal Biner

9 65

105, 122, 11, 22, 33, 44, 55, 66, 77, 99, 100, 101, 15, 31, 47, 63, 79, 95, 111, 127, 17, 49, 65, 81, 97, 113, 5,

9, 12, 14, 53, 73, 90, 117, 26

51 77 0.20313 41 0.20313,

Ada error 41 1A 26 00011010

Dari tabel 4.1 hasil uji coba dapat dilihat bahwa program simulasi

pengawasandi telah berhasil menyandikan data berupa bilangan heksadesimal 2 digit

menjadi katasandi 128 bit. Untuk proses pendeteksian, dapat dipastikan program

mampu mendeteksi saat jumlah error lebih kecil dari 64 bit (error

< 64 bit). Untuk

jumlah

error sama dengan 64 bit (error = 64 bit), program tidak mampu mendeteksi

error, hal ini sesuai dengan hasil perhitungan kemampuan deteksi error

yang telah

dibahas pada Bab III.

Pendeteksian error ini berdasarkan nilai Zij yang diperoleh. Jika nilai Zij yang

diperoleh diantara 0 dan 1, maka katasandi yang diterima pasti mengalami kesalahan

(error) karena katasandi ini bukan merupakan sinyal orthogonal. Jika nilai Zij yang

diperoleh adalah 0 maka katasandi yang diterima merupakan sinyal orthorgonal tetapi

tidak dapat dipastikan apakah sinyal merupakan sandi biorthogonal atau bukan.

Sehingga belum juga dapat dipastikan bahwa katasandi tidak mengalami kesalahan

(error) seperti ditunjukkan pada Tabel 4.1 no.1 dan no.2.

Untuk mem

Gambar

Gambar 2.1 Contoh dari sinyal antipodal. (a) Persamaan gelombang. (b) Sinyal dalam
Gambar 2.2 Contoh dari sinyal orthogonal. (a) Persamaan gelombang. (b) Sinyal dalam
Gambar 2.4 Command Window
Gambar 2.10 Property Inspector
+7

Referensi

Dokumen terkait

Adanya pengetahuan yang dibangun melalui wacan resmi tuna daksa, rehabilitasi dan pendidikan yang mengklaim bahwa kebebasan bergerak bagi anak tuna daksa saat pelajaran

Sebagian besar dari lumut hati adalah tumbuhan darat, beberapa spesies hidup di air sebagai akuatik sekunder, artinya mereka itu tumbuhan darat yang teradaptasi kembali

kabupaten,  Sengkang,  di  sebelah  barat  lembah  Cenrana.  Bukit  ini  dipercaya 

Lima dimensi untuk mengukur kepuasan kerja menurut Luthans (1992: 114), yaitu (1) Pembayaran (Upah dan Gaji), yaitu balas jasa yang diberikan perusa- haan

Dalam hal Pelaksanaan Kerja Praktek penulis di berikan Intruksi atau arahan terlebih dahulu sebelum melaksanakan Tugas – Tugas yang akan di berikan penulis adalah sistem

Persepsi wisatawan termasuk dalam perilaku wisatawan, menurut Kotler (2009: 190) definisi dari perilaku wisatawan adalah, “Consumer behavior is study of how

Analisis Ergonomi dan Usulan Perbaikan Fasilitas Bermain Anak­Anak TK (Studi Kasus di TK Negeri Pembina, Boyolali)  

Jenis pionir lokal yang dapat direkomendasikan untuk revegetasi lahan pasca tambang batubara adalah jenis Vitex pinnata, Syzygium heteroclada dan Syzygium polyanthum..