• Tidak ada hasil yang ditemukan

ENCODER - DECODER SANDI BLOK LINEAR (15,11) DENGAN DUA PC MENGGUNAKAN BLUETOOTH

N/A
N/A
Protected

Academic year: 2019

Membagikan "ENCODER - DECODER SANDI BLOK LINEAR (15,11) DENGAN DUA PC MENGGUNAKAN BLUETOOTH"

Copied!
115
0
0

Teks penuh

(1)

i

Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik

Program Studi Teknik Elektro

Disusun oleh:

HERI SETIYONO

NIM : 025114062

PROGRAM STUDI TEKNIK ELEKTRO

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(2)

ii

FINAL PROJECT

Presented as Partial Fulfillment of the Requirements

To Obtain the Sarjana Teknik Degree

In Electrical Engineering

By:

HERI SETIYONO

Student ID Number: 025114062

ELECTRICAL ENGINEERING STUDY PROGRAM

ELECTRICAL ENGINEERING DEPARTMENT

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

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

vi

Penget ahuan akan menempat kan anda diant ar a or ang – or ang bij ak. Tindakan akan menempat kan anda diant ar a or ang – or ang sukses.

Penger t ian akan menempat kan anda diant ar a or ang – or ang yang ber bahagia.

(Dr . I br ahim Ellf iky)

Kar ena it u Aku ber kat a kepadamu : apa saj a yang kamu mint a dan doakan, per cayalah bahwa kamu t elah mener imanya, maka hal it u akan diber ikan

kepadamu. (Mat ius 11:24)

Ayun langkah per t ama dalam iman. Anda t idak har us melihat selur uh anak t angga. Hanya mengambil langkah per t ama.

(Dr . Mar t in Lut her King J r .)

Kehor mat an bukanlah apa yang kit a t ampilkan keluar , namun apa yang kit a pancar kan dar i dalam : budi peker t i, ket egar an, dan ket er hor mat an.

(7)

vii

Karya ini kupersembahankan unt uk :

Tuhan Yesus K ristus & Bunda M aria

(

syukur

atas kasih dan rahmatnya

)

&

(8)

viii

Pentingnya sebuah sistem komunikasi data menuntut manusia selalu berusaha untuk mengembangkan teknologi komunikasi agar proses pengiriman data dapat dilakukan dengan baik tanpa ada kesalahan.

Sandi blok linear merupakan salah satu metode penyandian yang dapat digunakan agar komunikasi data dapat dilakukan dengan baik tanpa ada kesalahan. Untuk membantu mempelajari tentang sandi blok linear maka dibuatlah simulasi encoder – decoder sandi blok linear (15,11) menggunakan program Visual Basic. Program simulasi yang dibuat mencakup pembuatan matriks generator, penyandian, pemberian galat, pendeteksian dan pengoreksian galat, serta pengawasandian.

Sistem pengiriman data pada program ini dilakukan melalui media transmisi Bluetooth. Dengan penggunaan Bluetooth, pengiriman data dapat dilakukan lebih efektif dan efisien.

Hasil simulasi menunjukkan dengan pemberian 0 galat (tanpa galat) dan 1 galat di semua posisi bit sandi, proses pendeteksian dan pengoreksian galat dapat dilakukan dengan baik.

(9)

ix

The important of data communicating system demand human to always try their best to develops communication technology so the process of data sending can be done properly without any mistakes.

Linear block code is one of the coding methods which can use so the data communication can be done with properly without any mistakes. To assist learning about linear block code then a linear block code (15,11) encoder-decoder simulation was made using Visual Basic Program. Simulation program that made includes the made of matrix generator, coding, error testing, detecting and correction of error, also coding supervision.

The data sending system on this program was done through Bluetooth transmission. Using Bluetooth, the data sending can be done more effectively and efficiently.

The simulation shows the result of data without error (error given 0) and one error in all of code bit position, detection process and correction of errors was able to do with properly.

(10)

x

Puji syukur penulis panjatkan kepada Tuhan Yesus Kristus, oleh karena kasih dan penyertaan-Nya sehingga penulis dapat meyelesaikan Tugas Akhir yang berjudul “Encoder – Decoder Sandi Blok Linear (15,11) Dengan Dua PC Menggunakan Bluetooth”. Tugas Akhir ini disusun sebagai salah satu syarat untuk

memperoleh gelar Sarjana pada jurusan Teknik Elektro, Fakultas Sains Dan Teknologi Universitas Sanata Dharma Yogyakarta.

Tersusunnya tugas akhir ini tidak terlepas dari bantuan dan dukungan dari berbagai pihak. Pada kesempatan ini tidak lupa penulis mengucapkan terima kasih yang dalam kepada :

1. Bapak Ir. Greg. Heliarko, S.J., S.S., B.S.T., M.A., M.Sc. selaku Dekan Fakultas Sains Dan Teknologi.

2. Bapak Agustinus Bayu Primawan, S.T., M.Eng. selaku Ketua Jurusan Teknik Elektro.

3. Bapak Damar Wijaya, S.T., M.T.,selaku Dosen Pembimbing I yang telah banyak memberikan bimbingan dan pengarahan hingga tugas akhir ini dapat tersusun. 4. Ibu Ir. Th. Prima Ari Setyani, M.T., selaku Dosen Pembimbing II yang telah

memberikan masukan dan saran.

5. Semua Bapak dan Ibu dosen TE yang telah memberikan bimbingan dan pengetahuan.

6. Bapak dan Ibuku atas doa, dukungan dan cinta yang besar yang telah diberikan dengan segenap kasih sayang.

7. Kakakku : Mas Aris, Mba Enik, Mba Nuri, terima kasih atas dukungan dan doanya.

8. Agung Broto, terima kasih pren atas bantuannya.

(11)

xi

Frankie, Sigit, Dino, Vin, Paul, Sinung, Yono, Koko,Widi, Charles terima kasih atas rasa kekeluargaannya

13.Deta, Septi, Nisi, Ari , kapan jalan- jalan lagi 

14.Teman – Teman JKMK semuanya 15.Semua teman – teman TE2002

16.Seluruh teman – temanku yang ada di USD....

17.Dan seluruh teman dan pihak – pihak lain yang tidak dapat saya sebutkan satu persatu.Terima kasih atas bantuan dan dukungannya.Gbu

Penulis sungguh sangat menyadari bahwa masih banyak kekurangan dalam pembuatan dan penyusunan Tugas Akhir ini, maka dari itu segala saran dan kritik yang bersifat membangun sangat diharapkan penulis.

Yogyakarta, September 2007

(12)

xii

HALAMAN PERSETUJUAN... iii

HALAMAN PENGESAHAN... iv

PERNYATAAN KEASLIAN KARYA ... v

HALAMAN MOTTO ... vi

HALAMAN PERSEMBAHAN ... vii

INTISARI ... viii

ABSTRACT ... .... ix

KATA PENGANTAR ... ... x

DAFTAR ISI ... xii

DAFTAR GAMBAR ... xvi

DAFTAR TABEL ... xviii

BAB I PENDAHULUAN ... 1

1.1 Judul ... 1

1.2 Latar Belakang ... 1

1.3 Batasan Masalah ... 3

1.4 Tujuan Penelitian ... 4

1.5 Manfaat Penelitian ... 4

(13)

xiii

2.1.2 Sandi Blok Linear Sistematis ... 10

2.1.3 Matriks Uji Paritas ... 12

2.1.4 Pengujian Sindrom ... 13

2.1.5 Koreksi Galat ... 15

2.1.6 Bobot dan Jarak dari Vektor Biner ... 17

2.1.7 Jarak Minimum dari Sandi Blok ... 18

2.1.8 Kemampuan Deteksi dan Koreksi Galat dari Sandi blok linear ... 19

2.2 Bluetooth ... 20

2.2.1 Pengenalan Bluetooth ... 20

2.2.2 Aplikasi dan Layanan ... 21

2.2.3 Diskripsi Umum Sistem Bluetooth ... 21

2.2.4 Pita Frekuensi dan Kanal RF ... 22

BAB III PERANCANGAN ... 23

3.1 Diagram Alir Program (Flowchart) Pada Menu Utama ... 25

3.1.1 Lay Out Pada Menu Utama ... 26

(14)

xiv

3.2.2 Lay Out Pada Fungsi Pengirim ... 35

3.3 Proses Pengawasandi (Fungsi Penerima) ... 36

3.3.1 Diagram Alir Program (Flowchart) Pada Fungsi Penerima ... 38

3.3.2 Lay Out Pada Fungsi Penerima... 40

3.4 Bluetooth ... 41

BAB IV PEMBAHASAN ... 42

4.1 Hasil Akhir Perancangan ... 42

4.2 Cara Kerja Program ... 42

4.2.1 Menu Utama ... 42

4.2.2 Fungsi Pengirim (Encoder) ... 44

4.2.2.1 Proses Pengubahan Karakter Pesan ke Bentuk Bilangan Biner ... 45

4.2.2.2 Proses Penyandian (Encoder) ... 46

4.2.2.3 Hasil Pengamatan pada Encoder (Pengirim) ... 50

4.2.3 Fungsi Penerima (Decoder)... 57

(15)

xv

DAFTAR PUSTAKA ... 69

(16)

xvi

Gambar 2.1 Sandi Blok... 7

Gambar 3.1 Blok Encoder – Decoder Sandi Blok Linear Secara Umum... 23

Gambar 3.2 Sistem Komunikasi yang Menggunakan Bluetooth ... 24

Gambar 3.3 Blok Rancangan Program pada Sandi Blok Linear ... 24

Gambar 3.4 Flowchart Menu Utama ...25

Gambar 3.5 Lay Out Menu Utama ... 26

Gambar 3.6 Diagram Blok Proses Penyandian (Fungsi Pengirim) ... ...27

Gambar 3.7 Matriks Generator [G] ... 34

Gambar 3.8 Flowchart Penyandian + Pemberian Galat ... ... 34

Gambar 3.9 Lay Out pada Fungsi Pengirim ... 35

Gambar 3.10 Diagram Blok Proses Pengawasandi ... 36

Gambar 3.11 Matriks HT ... ... ... 37

Gambar 3.12 Flowchart ProsesPengawasandi dan Koreksi Galat ... 38

Gambar 3.13 Lay Out pada Fungsi Penerima ... 40

Gambar 4.1 Tampilan Menu Utama ... 43

Gambar 4.2 Tampilan Fungsi Pengirim (Encoder) ... 44

Gambar 4.3 Tampilan Pengubahan Karakter Pesan Menjadi Bentuk Biner ... 45

Gambar 4.4 Pesan Biner yang telah Disandikan (15 Bit) ... 46

Gambar 4.5 Matrik Generator ………... ... 47

Gambar 4.6 Tampilan Data Posisi Error Salah ... ... 48

Gambar 4.7 Receive Word ... ... 49

Gambar 4.8 Tampilan Penerima Saat Data Belum Terkoneksi... ... 56

Gambar 4.9 Form Tampilan Fungsi Penerima ... 57

(17)
(18)

xviii

Tabel 2.1 Tabel Polinomial Primitif ... 10

Tabel 2.2 Larik Standar... 15

Tabel 2.3 Batas Frekuensi serta kanal RF ... 22

Tabel 2.4 Look Up Table ... 39

Tabel 2.5 Hasil Pengamatan Pada Proses Encoder... 50

Tabel 2.6 Hasil Pengamatan Pada Proses Decoder... 61

Tabel 2.7 Pemberian Error di Semua Posisi Bit ... 66

(19)

BAB I

PENDAHULUAN

1.1 Judul

Encoder – Decoder Sandi Blok Linear (15,11) dengan Dua PC Menggunakan Bluetooth.

1.2 Latar Belakang

Penyandian isyarat digital berguna untuk meningkatkan kinerja komunikasi dengan meningkatkan ketahanan sinyal terhadap berbagai gangguan saluran, seperti derau (noise), pelemahan sinyal (fading), perusakan sinyal oleh sinyal lain (jamming) [1]. Penyandian dikelompokkan dalam dua jenis, penyandian gelombang (waveform coding) dan urutan terstruktur (structured sequences/ structured redudancy). Waveform coding berhubungan dengan pengubahan bentuk gelombang menjadi bentuk gelombang yang ”lebih baik”, sehingga mengurangi terjadinya galat (error). Sedangkan structured sequences berhubungan dengan pengubahan urutan data menjadi urutan yang ”lebih baik” dan mempunyai bit berlebih (redundant bit) yang digunakan untuk mendeteksi dan mengoreksi error.

Ada banyak sandi yang dapat digunakan untuk mendeteksi dan mengoreksi kesalahan dalam pengiriman data, salah satunya adalah sandi blok linear. Sandi

(20)

blok linear adalah salah satu jenis sandi uji paritas yang mempunyai notasi (n, k) dan termasuk jenis sandi structured sequences.

Dalam penyandian data digital antar dua PC diperlukan sebuah media transmisi agar data dapat dikirimkan dari satu komputer ke komputer lainnya. Ada banyak media transmisi yang sekarang ini digunakan seperti serial port, parallel port, dan wireless (tanpa kabel).

Salah satu media transmisi wireless yang sedang populer di masyarakat adalah teknologi Bluetooth. Spesifikasi Bluetooth pertama kali dikembangkan oleh

Ericsson, yang saat ini menjadi Sony Ericsson dan Ericsson mobile Platforms. Bluetooth kemudian diresmikan oleh Special Interest Group (SIG), yang berdiri pada 20 Mei 1999. Organisasi tersebut didirikan oleh Sony Ericsson, IBM, Intel,

Toshiba dan Nokia [2].

Bluetooth adalah sebuah teknologi komunikasi wireless (tanpa kabel) yang beroperasi dalam pita frekuensi 2,4 GHz. Bluetooth menggunakan sebuah frequency hopping transceiver yang mampu menyediakan layanan komunikasi data dan suara secara real-time antara dua host Bluetooth dengan jarak jangkauan layanan yang terbatas (sekitar 10 meter). Bluetooth dapat berupa card yang bentuk dan fungsinya hampir sama dengan card yang digunakan untuk wireless local area network (WLAN).

(21)

layanan kepada user. Untuk melakukan transfer data, Bluetooth memiliki kecepatan kurang dari 1 Mbit/s dan jangkauan yang relatif pendek.

Dengan kelebihan Bluetooth untuk melakukan transfer data, maka penulis akan menggunakan Bluetooth sebagai media transmisi dalam penyandian sandi blok linear dengan dua PC.

1.3 Batasan Masalah

Batasan masalah dari tugas akhir ini adalah: 1. Penyandian sandi blok linear (15,11)

2. Menggunakan dua PC, dan setiap komputer dapat berfungsi sebagai transceiver.

3. Program yang digunakan sebagai simulasi adalah Visual Basic.

4. Pengiriman data dari satu komputer ke komputer lainnya menggunakan Bluetooth.

(22)

1.4

Tujuan Penelitian

Menghasilkan program simulasi yang digunakan untuk mengetahui metode dan proses kerja penyandian sandi blok linear pada dua PC dengan media transmisi Bluetooth.

1.5 Manfaat Penelitian

Beberapa manfaat yang diharapkan dari penelitian ini adalah sebagai berikut: 1. Dapat mempermudah pemahaman mahasiswa mengenai metode

penyandian sandi blok linear.

2. Dapat membantu dosen dalam menjelaskan encoder – decoder sandi blok linear menggunakan Bluetooth sebagai media transmisi.

1.6 Sistematika Penulisan

Sistematika penulisan tugas akhir ini adalah:

BAB I PENDAHULUAN

Bab pendahuluan ini berisi tentang judul, latar belakang, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian dan sistematika penulisan.

BAB II DASAR TEORI

(23)

BAB III PERANCANGAN PENELITIAN

Bab ini menjelaskan tentang diagram blok program dan diagram alir program yang akan dibuat dengan Visual Basic.

BAB IV PEMBAHASAN

Bab ini berisi hasil dari perancangan yaitu berupa program Visual Basic yang telah siap untuk menjalankan proses penyandian pada sandi blok linear beserta dengan pembahasannya.

BAB V KESIMPULAN DAN SARAN

(24)

BAB II

DASAR TEORI

2.1. Sandi Blok Linear (Linear Block Code)

Sandi blok linear adalah salah satu jenis sandi uji paritas yang mempunyai notasi (n, k). Penyandi mengubah blok k digit pesan (vektor pesan) menjadi blok yang lebih panjang dengan n digit katasandi (vektor sandi).

Sandi blok linear yang akan diteliti adalah sandi blok linear (15, 11). Penyandi mengubah blok 11 digit pesan (vektor pesan) menjadi blok yang lebih panjang dengan 15 digit katasandi (vektor sandi).

Pembahasan tentang sandi blok linear dibatasi pada sandi biner. Pada sandi blok linear terdiri dari dua elemen (0 dan 1) atau tersusun menjadi deretan denyut-denyut 0 dan 1, maka sandi tersebut adalah sandi biner yang terdiri dari digit – digit biner (bit).

Sandi blok biner dapat dikatakan linear jika dan hanya jika 2k kata sandi membentuk subspace berdimensi k dari vektor space semua n tuples pada medan biner. Dengan kata lain, sandi blok biner dikatakan linear jika dan hanya jika penjumlahan modulo dua kata sandi juga merupakan kata sandi.

Proses penyandian masing-masing sandi ke dalam suatu blok dengan n bit, yang terdiri dari k bit sandi pesan dan (n-k) bit sandi periksa, seperti pada Gambar 2.1.[3]

(25)

Gambar 2.1 Sandi Blok [3]

Pesan k-bit dari 2k urutan pesan yang berbeda disebut sebagai k-tuples (urutan dari k digit). Blok n-bit dapat membentuk 2n urutan yang berbeda disebut n-tuples. Prosedur penyandian mengalokasikan setiap 2k pesan k-tuples secara unik dipetakan menjadi 2k kata sandi n-tuples.

Satu set n-tuples biner (Vn) disebut vektor space dari medan biner dua

elemen (0 dan 1). Medan biner ini mempunyai dua operasi yaitu penjumlahan dan perkalian, sehingga semua hasil operasi sama dengan elemen biner. Operasi aritmatika penjumlahan dan perkalian ditentukan dengan medan aljabar yang disepakati. Dalam medan biner (binary field), aturan untuk penjumlahan dan perkalian adalah sebagai berikut [1]:

Penjumlahan (XOR) Perkalian

0  0 = 0 0  0 = 0

0  1 = 1 0  1 = 0

1  0 = 1 1  0 = 0

1  1 = 0 1  1 = 1

Operasi penjumlahan dengan lambang  menunjukkan penjumlahan modulo-2. Untuk menentukan penyandian, vektor subspace harus diketahui lebih dahulu.

(26)

Suatu subset dari S dari vektor space Va disebut subspace jika memenuhi persyaratan sebagai berikut :

1. Vektor dengan semua elemen nol berada di dalam S.

2. Penjumlahan dua vektor di dalam S juga terdapat di dalam S.

Dua hal di atas adalah syarat fundamental dari karakterisasi aljabar sandi blok linear. Jika Vi dan Vj adalah dua kata sandi (vektor sandi) dalam sandi blok biner

(n, k), maka sandi ini disebut linear jika, dan hanya jika, (ViVj) juga merupakan

vektor sandi. Jadi sandi blok linear adalah sandi yang tidak dapat menghasilkan vektor-vektor di luar subspace dari penjumlahan vektor sandi yang benar (anggota subspace).

2.1.1 Matriks Generator

Karena satu set vektor sandi yang membentuk sandi blok mempunyai subspace berdimensi k dari vektor space biner berdimensi n (k < n ), maka akan ada satu himpunan n-tuples, kurang dari 2k

,

yang dapat membangkitkan semua 2k vektor anggota dari subspace. Setiap set dari 2k vektor sandi U dapat ditulis sebagai berikut :

Um1V1m2V2...mkVk ...……...(2.1) dengan m = (0 atau 1) adalah digit pesan.

(27)

m = m1, m2, mk...(2.2)

Pembangkitan vektor sandi U, ditulis dalam notasi matrik sebagai hasil kali dari matrik m dan G:

U = m . G...…..(2.3)

Secara umum matriks generator dapat ditentukan dengan larik kn

G =

Jadi vektor sandi yang sesuai dengan vektor pesan adalah kombinasi linear dari baris matrik G. Karena sandi ditentukan oleh G, penyandi hanya perlu menyimpan k baris dari matrik G (tidak total 2k vektor sandi).

Untuk membuat matriks generator G dan matrik periksa paritas H yang digunakan pada sandi blok linear dengan Hamming, dilakukan langkah sebagai berikut :

1. Memilih polinomial primitif sesuai dengan panjang bit periksa, seperti ditunjukkan

pada Tabel 2.1.

(28)

Tabel 2.1Tabel Polinomial Primitif [3]

Matriks generator dengan bentuk sistematis dapat dibuat dengan polinomial pembangkit. Jika Xn-k+i dibagi dengan polinomial pembangkit g(X), dengan i = 0, 1, 2, … , k-1, maka diperoleh :

Xn-k+i = ai (X) g(X) + bi (X) ... ….(2.5) dengan bi (X) adalah sisa dalam bentuk :

bi (X) = bi0 + bi1X + … + bi,n-k-1Xn-k-1 ... ..(2.6) Sebuah matrik generator dalam bentuk sistematis akan terbentuk dari koefisien sisa bi (X).

2.1.2 Sandi Blok Linear Sistematis

Sandi blok linear sistematis adalah pemetaan vektor pesan berdimensi k ke sandi berdimensi n dengan urutan yang dibangkitkan serupa dengan k digit pesan. Digit (n-k) sisanya merupakan digit paritas. Sandi blok linear sistematis mempunyai matriks generator dalam bentuk [1]:

(29)

G =

dengan P adalah sebagai larik paritas dari matriks generator, pij = (0 atau 1), dan Ik adalah matriks identitas (nilai semua elemen adalah nol kecuali pada diagonal utama sama dengan satu) k x k. Dari persamaan (2.4) dan (2.7), setiap vektor sandi dapat dinyatakan sebagai berikut:

u1,u2,…un=[m1,m2,...,mk]x

Jika pesan k-tuple adalah

m = m1, m2, …,mk...(2.10)

dan vektor sandi n-tuple secara umum adalah

U = u1, u2,…,un... ..(2.11)

maka vektor sandi sistematis dapat dinyatakan sebagai

U = p1, p2, …,pn-k, m1, m2,…, mk...(2.12)

dengan p1, p2,…, pn-k adalah bit-bit paritas

(30)

p1 = m1p11 + m2p21 + … + mkpk1 orgonalitas, komponen matrik H ditulis [1]:

H = In-k  PT ...(2.13)

dengan PT adalah transpose dari matriks P. Dengan adanya matriks H, maka sandi linear (n,k) yang dibangkitkan dari G dapat diungkapkan sebagai berikut : v n-tuple adalah kata sandi yang dibangkitkan dari G jika dan hanya jika v.HT = 0. Matriks H dapat ditulis sebagai berikut :

H = [In-k PT]

(31)

HT =

Perkalian UHT untuk setiap vektor sandi V yang dihasilkan G, dengan matriks HT, menghasilkan vektor nol:

UHT = p1 + p1, p2 + p2, …pn-k + pn-k = 0...(2.16)

dengan p1, p2,…, pn-k adalah bit-bit paritas. Jadi matriks uji paritas, H, yang

dibangun untuk memenuhi ortogonalitas di atas dapat digunakan untuk menguji apakah vektor yang diterima adalah anggota dari set kata sandi yang benar. Matriks U adalah vektor sandi yang dibangkitkan oleh matrik G jika, dan hanya jika, UHT= 0.

2.1.4 Pengujian Sindrom

Jika r = r1

,

r2,….,rn adalah vektor sandi yang diterima, yang merupakan

hasil dari pengiriman U = u1

,

u2,….,un, maka r dapat ditulis [1]:

r = U + e... (2.17)

(32)

S = rHT...(2.18) Sindrom adalah hasil uji paritas yang dilakukan pada r untuk menentukan apakah r merupakan anggota himpunan kata sandi yang benar. Jika r adalah anggota himpunan kata sandi, maka S akan sama dengan 0. Jika r mengandung galat yang dapat terdeteksi, maka S mempunyai elemen bernilai tidak nol yang dapat menandai adanya pola galat tertentu. Substitusi persamaan (2.16) dan (2.17), menghasilkan sindromr yang dapat dituliskan sebagai berikut :

S = (U + e)HT

= UHT + eHT ... ...(2.19) Karena vHT = 0 untuk semua himpunan kata sandi, maka :

S = eHT ... ...(2.20) Pengujian sindrom yang dilakukan dari persamaan (2.18) sampai (2.21) pada vektor sandi yang terkena galat, maupun pada pola galat itu sendiri, menghasilkan sindrom yang sama. Dalam matrik uji paritas terdapat dua hal yang penting adalah 1. Tidak ada kolom H yang semua elemennya bernilai nol, atau galat yang terjadi pada posisi vektor sandi yang bersesuaian tidak akan memberikan efek pada sindrom dan tidak dapat terdeteksi.

(33)

2.1.5 Koreksi Galat

Galat tunggal (single error) dapat dideteksi dan telah ditunjukkan bahwa pengujian sindrom yang dilakukan pada vektor sandi terkena galat, maupun pada pola galat yang menyebabkannya, menghasilkan sindrom yang sama. Karena terdapat korespondensi satu-satu antara pola galat dan sindrom, maka hal ini merupakan petunjuk bahwa pola galat dapat dikoreksi.

Tabel 2.2 menunjukkan larik standar (standard array) yang merupakan 2n , n-tuple yang mewakili kemungkinan vektor yang diterima. Baris pertama larik ini, yang terdiri dari semua vektor sandi dimulai dengan vektor nol (semua elemen adalah nol). Kolom pertama terdiri dari semua pola galat yang dapat dikoreksi. Vektor nol pasti anggota dari set kata sandi. Setiap baris, disebut coset, mengandung pola galat dari kolom pertama (coset leader), diikuti dengan vektor sandi yang terkena pola galat. Format larik standar untuk sandi (n, k) adalah [1]:

Tabel 2.2 Larik Standar [1]

Larik di atas mengandung semua 2nn-tuple dalam space Vn (setiap n-tuple

hanya muncul pada satu lokasi). Setiap coset terdiri dari 2k n-tuple, sehingga terdapat 2n/2k = 2n-k coset. Jika vektor sandi Vi dikirimkan melalui kanal dengan

(34)

vektor yang diterima akan diawasandikan dengan benar menjadi vektor terkirim Vi. Jika pola galat bukan coset leader, akan dapat menyebabkan pengawasandian

yang salah.

Dalam aturan pembuatan larik standar, setiap n-tuple muncul paling tidak satu. Jika n-tuple muncul pada dua baris ke-1 dan ke-m dengan 1<m, maka n-tuple ini pasti sama dengan e1 + vi untuk beberapa i dan sama dengan em + vj untuk

beberapa j, hasilnya e1 + vi = em + vj. Dari persamaan ini diperoleh em = ei + (vi +

vj). Jika vi dan vjadalah sandi vektor dalam C, vi + vj juga sandi vektor dalam C,

misalnya em = e1 + vs. Hal ini menyebabkan n-tuple emberada pada baris ke-1 dari larik, hal ini tidak sesuai dengan aturan pembuatan larik yaitu em (elemen pertama

pada baris ke-m), tidak boleh dipakai pada setiap baris sebelumnya. Oleh karena itu, tidak ada n-tuple yang dapat muncul lebih dari satu baris pada larik.

Larik standar dari sandi linear C (n,k) mengandung 2k kolom yang tidak berhubungan. Setiap kolom mengandung 2n-k n-tuple dengan elemen paling atas sebagai vektor sandi pada C. Jika Dj menyatakan kolom ke-j dari larik standar,

maka :

Dj= {vj, e2 + vj, e3 + vj, …, e2n-k+ vj}...(2.21)

dengan vjadalah vektor sandi dari C dan e2, e3,…, e2n-k adalah coset leader.

Kolom-kolom sebanyak 2k yang tidak berhubungan D1, D2,…, D2k dapat digunakan untuk pengawasandian sandi C. Saat vektor sandi vjdikirim melintasi

jalur berderau, vektor penerima r terdapat dalam Dj jika pola galat disebabkan oleh

(35)

disebabkan oleh jalur bukan coset leader, akan menyebabkan kesalahan pada pengawasandian. Pola galat x yang disebabkan oleh jalur harus dalam beberapa coset dan termasuk vektor tidak nol, misalnya coset ke-1 dan termasuk vektor sandi vi ≠ 0. Maka x = e1b + vidan vektor yang diterima adalah :

r = vj+ x = e1 + (vi + vi) = e1 + vs...(2.22)

Jadi vektor diterima r dalam Ds dan diawasandikan sebagai vs, yang bukan merupakan vektor sandi yang dikirim. Hasilnya adalah pengawasandian yang salah. Oleh karena itu pengawasandian akan benar jika dan hanya jika pola galat yang disebabkan oleh jalur adalah coset leader. Untuk alasan ini semua 2n-kcoset leader (termasuk vektor nol) disebut pola-pola galat yang dapat dikoreksi.

2.1.6 Bobot dan Jarak dari Vektor Biner

Harus dipahami bahwa tidak semua pola galat dapat diawasandikan dengan benar. Kemampuan koreksi galat dari suatu sandi dapat diketahui dengan menentukan strukturnya. Bobot Hamming (Hamming Weight), w(U), dari vektor U didefinisikan sebagai jumlah elemen tidak nol dalam U. Untuk vektor biner, berarti jumlah elemen satu dalam vektor. Contoh, untuk U = 100101101, w(U)=5.

Jarak Hamming (Hamming Distance) antara dua vektor sandi U dan V, d(U, V), adalah jumlah elemen berbeda, contoh:

(36)

Dengan sifat penjumlahan modulo-2, penjumlahan dari dua vektor biner adalah vektor lain dengan angka satu terletak pada posisi dimana dua vektor tersebut berbeda,

contoh:

U + V =111011001

Terlihat bahwa jarak Hamming antara dua vektor sandi merupakan bobot Hamming dari penjumlahannya, d(U, V) = w(U + V). Terlihat pula bahwa bobot Hamming dari vektor sandi sama dengan jarak Hamming dari vektor nol.

2.1.7 Jarak Minimum dari Sandi Blok

Jika terdapat satu set (kelompok) jarak antara semua pasangan vektor-vektor sandi dalam space Vn, maka anggota terkecil dari set tersebut adalah jarak

minimum dari sandi. Jarak minimum, dmin. merupakan kemampuan minimum

dari sandi yang menunjukkan kekuatan sandi.

Sifat dari sandi linear adalah: jika U dan V adalah vektor sandi, maka W = U + V juga merupakan vektor sandi. Sehingga jarak antara dua vektor sama dengan bobot dari vektor sandi ketiga, d(U, V) = w(U + V) = w(W). Jadi jarak minimum dari sandi linear dapat dipastikan tanpa menghitung jarak antara semua kombinasi dari pasangan vektor sandi, tetapi hanya perlu mengetahui bobot setiap vektor sandi (tidak termasuk vektor nol) dalam subspace.

(37)

Bobot minimum sesuai dengan jarak minimum, dmin. Dengan kata lain, dmin

sesuai dengan set terkecil dari jarak antara vektor sandi nol dan vektor sandi yang lain.

2.1.8 Kemampuan Deteksi dan Koreksi Galat dari Sandi blok linear

Kemampuan koreksi galat acak pada sandi blok linear ditentukan oleh jarak minimum dari sandi. Sandi blok linear dengan jarak minimum dmin dapat

mengoreksi galat sampai [(dmin – 1) / 2] dan dapat mendeteksi galat sampai dmin

1 pada setiap kata sandi, dengan [(dmin – 1) / 2] menyatakan bilangan bulat terbesar

yang tidak lebih besar dari (dmin – 1) / 2.

Jika r adalah kata sandi yang diterima, v adalah kata sandi yang dikirim, dan v’ adalah kata sandi yang lain, maka jarak Hamming antara kata sandi v dan v’, d(v, v’), dan jarak d(v, r) dan d(v’, r) memenuhi persamaan : [1]

d(v, r) + d(v’, r) ≥ d(v,v’)... ...(2.23) Jika pola galat t terjadi, maka jarak Hamming antara vektor terkirim v dan vektor yang diterima r adalah d(v, r) = t. Jika sandi dianggap mempunyai jarak dmin d(v, v’) maka:

d(v, v’) ≥ dmin...(2.24)

d(v, r) = t...(2.25) atau

(38)

Sehingga pengawasandi akan mengidentifikasi v sebagai vektor yang dikirim jika d(v, r) lebih kecil dari d(v’, r). Untuk d(v, r) < d(v’, r), banyaknya galat memenuhi pernyataan :

t < dmin

Jadi sandi blok linear dengan jarak minimum dmindapat mengoreksi galat sampai

t, dengan :

t ≤ [(dmin -1) / 2]...(2.27)

2.2 Bluetooth

2.2.1 Pengenalan Bluetooth

(39)

2.2.2 Aplikasi dan Layanan

Protokol Bluetooth menggunakan sebuah kombinasi antara circuit switching dan packet switching. Circuit switching merupakan metode dalam berkomunikasi dengan jalur komunikasi yang tersedia ditetapkan di antara dua perangkat melalui satu simpul perantara atau lebih. Pada packet switching, data-data digital dikirim sebagai deretan bit secara terus menerus. Packet switching merupakan metode pentransmisian pesan yang dibagi menjadi packet-packet pendek yang kemudian ditransmisikan. Packet switching dibagi menjadi dua macam, yaitu teknik data gram dan teknik virtual circuit. Sebelum melakukan transfer data, pada teknik data gram tidak ada proses penentuan rute antara pengirim dan penerima. Pada teknik virtual circuit dibentuk terlebih dulu rute antara penerima dan pengirim sebelum melakukan transfer data [4]. Sebuah perangkat yang memiliki teknologi wireless Bluetooth akan mempunyai kemampuan untuk melakukan transfer data dengan kecepatan kurang dari 1 Mbit/s dan jangkauan yang relatif pendek. Teknologi Bluetooth masih memungkinkan untuk terus berkembang menuju kematangan baik dari sisi standarisasi maupun aplikasi yang dapat diterapkan [2].

2.2.3 Deskripsi Umum Sistem Bluetooth

(40)

manager melakukan aktivitas-aktivitas protokol tingkat tinggi seperti melakukan link setup, autentikasi dan konfigurasi [2].

2.2.5 Pita Frekuensi dan Kanal RF

Walaupun secara global alokasi frekuensi Bluetooth telah tersedia, namun untuk berbagai negara pengalokasian frekuensi secara tepat dan lebar pita frekuensi yang digunakan berbeda. Batas frekuensi serta kanal RF (Radio Frequency) yang digunakan oleh beberapa negara dapat dilihat pada Tabel 2.3 [2]

Tabel 2.3 Batas frekuensi serta kanal RF [2]

Negara Range Frekuensi Kanal RF

(41)

BAB III

PERANCANGAN

Encoder – decoder sandi blok linear merupakan sistem komunikasi dua arah yang menggunakan dua buah komputer sebagai pengirim atau penerima. Garis besar perancangan dapat digambarkan menjadi dua bagian seperti pada Gambar 3.1

Gambar 3.1 Diagram Blok Encoder – Decoder Sandi Blok Linear Secara Umum

Dari diagram blok Gambar 3.1, terlihat bahwa apabila komputer I dipilih sebagai pengirim (encoder), maka komputer II akan berfungsi sebagai penerima (decoder), begitupun sebaliknya. Sistem komunikasi dua arah ini menggunakan media transmisi Bluetooth pada masing – masing komputer seperti yang terlihat pada Gambar 3.2

PC 1(Pengirim) PC 2 (Penerima) (a)

Komputer I Pengirim atau penerima (encoder atau decoder)

(42)

PC 1(Penerima) (b) PC 2 (Pengirim)

Gambar 3.2 Sistem Komunikasi yang Menggunakan Bluetooth

(a) Komunikasi dari PC 1 ke PC 2 (b) Komunikasi dari PC 2 ke PC 1

Diagram blok rancangan program pada sandi blok linear ditunjukkan pada Gambar 3.3

Gambar 3.3 Blok Rancangan Program pada Sandi Blok Linear

Proses penyandian terdiri dari program pembangkit paritas dan program pembuat galat atau error. Data dikirim melalui Bluetooth sebanyak 15 bit data yang terdiri dari 11 bit pesan ditambah 4 bit paritas dengan 1 bit galat.

(43)

Pengawasandi terdiri dari program pendeteksi galat. Pengawasandi mengoreksi galat dan memisahkan bit pesan dengan bit paritasnya menjadi 11 bit pesan.

Setiap PC dapat digunakan sebagai pengirim atau penerima, sehingga di dalam PC terdiri dari program pembangkit paritas, program pembuat galat, dan pendeteksi galat.

3.1 Diagram Alir Program (Flowchart) Pada Menu Utama

Diagram alir program (flowchart) pada menu utama sandi blok linear ditunjukkan pada Gambar 3.4

(44)

Gambar 3.4 menjelaskan bahwa setelah form menu utama ditampilkan, user dapat memilih program untuk menjalankan fungsi sebagai pengirim atau penerima. Apabila tidak memilih fungsi program sebagai pengirim atau penerima, user dapat menggunakan pilihan keluar.

Setelah pilihan dilakukan, proses pada menu utama tidak ditampilkan dan langsung masuk pada proses pilihan yang dilakukan. Menu utama akan kembali ditampilkan jika proses pilihan sudah selesai.

3.1.1 Lay Out Pada Menu Utama

Lay out untuk menu utama sandi blok linear dapat ditunjukkan pada Gambar 3.5

(45)

Gambar 3.5 menjelaskan bahwa pada menu utama disediakan dua pilihan utama simulasi, yaitu: fungsi pengirim dan fungsi penerima. Apabila user tidak memilih salah satu dari dua pilihan utama tersebut, maka user dapat memilih pilihan keluar.

3.2 Proses Penyandian (Fungsi Pengirim)

Proses penyandian atau proses pada fungsi pengirim secara umum dapat dilihat pada Gambar 3.6

Gambar 3.6 Diagram Blok Proses Penyandian (Fungsi Pengirim)

Langkah-langkah proses penyandian dilakukan secara bertahap, mulai dari mencari kombinasi yang dihasilkan oleh 2k pesan hingga proses pembuatan

matriks generator, kemudian proses penyandian hingga didapatkan vektor sandi, proses pembuatan pola galat, sampai pengiriman data tersandi dilakukan.

Pada perancangan ini, notasi yang digunakan adalah (15,11), sehingga terdapat 215 kemungkinan kombinasi vektor sandi. Banyaknya nilai kombinasi vektor sandi yang diperoleh membutuhkan memori komputer yang sangat besar. Oleh karena itu kombinasi-kombinasi vektor sandi tersebut tidak ditampilkan pada perancangan.

Matrik Generator

Vektor Pesan

Masukan Error Vektor

(46)

Permasalahan ini dapat diatasi dengan cara membuat sebuah matriks generator [G].

Pembuatan matriks generator memerlukan polinomial generator untuk mendapatkan sandi blok dengan format sistematis. Polinomial yang dipilih adalah polinomial yang mempunyai pangkat tertinggi sama dengan panjang bit periksa, sehingga polinomial generator untuk sandi blok linear (15,11) dari tabel 2.1 dipilih dengan m = 4 (sama dengan panjang bit periksa) yaitu g(X) = 1 + X + X4. Sehingga menurut persamaan 2.6 diperoleh:

(47)
(48)
(49)
(50)
(51)

Untuk X14 :

(52)

G =

Gambar 3.7 Matriks Generator [G]

3.2.1 Diagram Alir Program (Flowchart) Pada Fungsi Pengirim

Diagram alir program (flowchart) pada fungsi pengirim sandi blok linear ditunjukkan pada Gambar 3.8

(53)

Gambar 3.8 menjelaskan proses kerja fungsi penyandian secara garis besar melalui potongan-potongan program subroutin. Ketika pertama kali tampilan fungsi pengirim ditampilkan, program akan menjalankan program untuk membentuk matriks generator.

Langkah selanjutnya adalah proses penyandian. Tiap blok vektor pesan (11 bit) dikalikan dengan matriks generator, sehingga diperoleh vektor sandi (codeword) sepanjang 15 bit (11 bit pesan dan 4 bit paritas).

Untuk membuktikan bahwa pada fungsi pengawasandi dapat mendeteksi serta mengkoreksi kesalahan pada penyandian, maka pada fungsi pengirim diberi bit galat. Sehingga data yang dikirimkan (15 bit) merupakan data tersandi yang menggandung galat.

3.2.2 Lay Out Pada Fungsi Pengirim

Lay out pada pengirim sandi blok linear dapat ditunjukkan pada Gambar 3.9

(54)

Gambar 3.9 menjelaskan bahwa pada fungsi pengirim disediakan empat pilihan perintah dalam menjalankan fungsi pengirim, yaitu: code word, kirim data, reset, dan ke menu utama. User dapat memilih perintah code word untuk menampilkan code word dan code word yang sudah diberi error dari data yang sudah dimasukkan.

3.3 Proses Pengawasandi (Fungsi Penerima)

Proses pengawasandi memiliki diagram blok seperti pada gambar 3.10

Gambar 3.10 Diagram Blok Proses Pengawasandi

Dari gambar 3.10 dapat dijelaskan bahwa vektor sandi yang telah diterima pada setiap blok sandi dikalikan dengan matrik HT akan menghasilkan nilai sindrom (4 bit). Untuk memperoleh nilai atau posisi bit yang terkena galat, nilai sindrom yang telah diperoleh dibandingkan dengan look-up table (pada lampiran). Setelah posisi bit yang terkena galat telah diketahui, proses selanjutnya mengembalikan bit data galat menjadi data yang benar yaitu data kebalikan dari biner yang ditunjuk oleh posisi galat yang ditunjukkan oleh nilai sindrom.

Vektor Sandi

Matrik HT

Nilai Sindro m

Tentukan posisi Galat

Koreksi Galat

(55)

Hal ini merupakan kebalikan dari proses penyandian pada fungsi pengirim. Bila bit galat telah dikoreksi, maka akan diperoleh vektor sandi yang terdiri dari blok-blok 15 bit biner yang nantinya akan diubah menjadi vektor sandi yang terdiri dari 11 bit biner sesuai dengan pesan asli.

Pada pengawasandi diperlukan sebuah matriks HT

, adapun bentuk dari matrik HT

dapat dilihat pada Gambar 3.11

(56)

3.3.1 Diagram Alir Program (Flowchart) Pada Fungsi Penerima

Diagram alir program (flowchart) pada fungsi penerima sandi blok linear ditunjukkan pada Gambar 3.12

(57)

Gambar 3.12 menjelaskan bahwa langkah pertama yang dilakukan adalah membentuk matrik HT

dan disimpan pada memori komputer.

Kemudian vektor sandi yang telah diterima (receive word) dikalikan dengan matrik HT. Perkalian antara vektor sandi dengan matrik HT ini akan menghasilkan 4 bit pola sindrom.

Nilai sindrom yang telah diperoleh digunakan untuk mendeteksi serta mengkoreksi pola galat yang terdapat pada vektor sandi terkirim. Pola sindrom yang dihasilkan tersebut akan dibandingkan dengan daftar sindrom pada look-up table seperti yang terlihat pada Tabel 2.3

Tabel 2.3Look Up Table

(58)

diperbaiki menjadi data biner yang benar. Pola perbaikan dan cara perbaikannya yaitu posisi bit galat yang telah diketahui diubah kembali ke bentuk semula atau bit yang dinyatakan sebagai galat diganti dengan bit kebalikannya. Bila ditemukan bit galat adalah “1”, maka diubah menjadi bit kebalikannya yaitu bit “0”, dan bila bit galat adalah “0”, maka diubah menjadi “1”. Sehingga akan diperoleh vektor sandi yang benar. Proses selanjutnya adalah memisahkan bit pesan (15 bit) menjadi bit paritas (4bit) dan bit pesan (11 bit), sehingga diperoleh kembali vektor pesan yang dikirim sebanyak 11 bit per blok.

3.3.2 Lay Out Pada Fungsi Penerima

Lay out pada penerima sandi blok linear dapat ditunjukkan pada Gambar 3.13

(59)

Gambar 3.13 menjelaskan bahwa pada fungsi pengirim disediakan lima pilihan perintah dalam menjalankan fungsi penerima, yaitu: baca data, cek error, terjemahkan data, reset, dan ke menu utama. Saat data sudah diterima dan dibaca, pilihan perintah cek error digunakan untuk menampilkan nilai sindrom dan receive word koreksi.

3.4 Bluetooth

Bluetooth yang digunakan berupa USB adapter, yang dimasukkan ke dalam perangkat komputer. Perancangan menggunakan dua Bluetooth yang berbeda, yaitu Bluetooth ePro dan Bluetooth Bluesoleil. Kedua Bluetooth yang digunakan memiliki spesifikasi yang sama, yaitu:

1. Bluetooth v2.2 compliant

2. USB UHCl / OHCl 2.0 compliant 3. Jangkauan operasi 100 meter

(60)

BAB IV

PEMBAHASAN

4.1 Hasil Akhir Perancangan

Bab sebelumnya telah membahas mengenai perancangan encoder-decoder sandi blok linear dengan dua PC melalui Bluetooth. Bab ini menjelaskan program perangkat lunak dan pembahasannya.

Langkah-langkah proses penyandian meliputi pembuatan matriks generator, penyandian data, pemberian galat, dan pengiriman data melalui Bluetooth. Sedangkan langkah-langkah pada proses pengawasandi meliputi penerimaan data, pengecekan pola galat (dengan sindrom), pendeteksian lokasi galat, pengoreksian, dan penerjemahan pesan sesuai dengan pesan asli. Proses penyandian dan pengawasandi di simulasikan dengan bahasa pemograman Visual Basic.

4.2 Cara Kerja Program

4.2.1 Menu Utama

Menu utama menyediakan dua buah menu untuk masuk ke dalam simulasi pengirim dan penerima. Apabila komputer pertama dipilih sebagai fungsi pengirim, maka komputer kedua digunakan sebagai penerima, begitupun sebaliknya. Tombol keluar disediakan untuk keluar dari program. Tampilan menu utama dapat dilihat pada Gambar 4.1

(61)

Gambar 4.1 Tampilan Menu Utama

(62)

4.2.2 Fungsi Pengirim (Encoder)

PC yang berfungsi sebagai pengirim akan mengolah pesan, dengan cara mengubah ke dalam bentuk biner dan disandikan. Setelah proses penyandian selesai, maka pesan yang dituliskan akan menjadi bilangan biner.

Setelah fungsi sebagai pengirim (encoder) setelah dipilih, maka akan ditampilkan sebuah form seperti yang terlihat pada Gambar 4.2

(63)

4.2.2.1 Proses Pengubahan Karakter Pesan ke Bentuk Bilangan Biner

Langkah pertama yang dilakukan, apabila tampilan fungsi pengirim (encoder) telah ditampilkan seperti pada Gambar 4.2, adalah menuliskan pesan pada textbox ”masukkan pesan”. Pengisian textbox dilakukan dengan mengetikkan pesan (alphabets, numbers, symbols) yang terdapat pada keyboard komputer.

Contoh pesan yang dimasukkan pada textbox (pesan yang akan dikirimkan) adalah karakter H. Setelah karakter H diketikkan, karakter H akan berubah menjadi bilangan desimal dan biner. Hasil pengubahan pesan ke desimal dengan sistem code ASCII. Hasil pengubahan karakter ke bilangan biner ini dapat dilihat pada Gambar 4.3

(64)

4.2.2.2 Proses Penyandian (Encoder)

Proses penyandian data pada sandi blok linear harus memenuhi persyaratan bahwa hasil penjumlahan dari dua codeword harus menghasilkan codeword di dalam subspace. Untuk jumlah notasi yang kecil biasanya data dibuat dalam look-up table. Apabila notasi yang digunakan besar, maka membutuhkan memori komputer yang besar. Untuk mengatasi permasalahan tersebut, dibutuhkan sebuah matrik generator. Matrik generator seperti yang terlihat pada Gambar 4.5, akan dikalikan dengan 11 bit pesan dan hasil perkaliannya akan dijumlahkan sehingga diperoleh 15 bit sandi. Saat tombol ”codeword” dipilih, pesan dengan karakter H berubah yang menjadi bilangan biner (11 bit) akan dikalikan dengan matrik generator, menghasilkan data tersandi sepertiGambar4.4.

(65)

Gambar 4.5 Matrik Generator

Bit sandi yang diperoleh dikirim kepada komputer penerima untuk dibaca dan dikembalikan lagi ke bentuk aslinya. Agar proses control kesalahan dapat dibuktikan, maka pada pengirim dibuat sebuah pola error. Data biner tersandi akan diberi satu bit kesalahan (error) di sembarang posisi pada codeword.

(66)

Apabila pengguna salah memasukkan posisi error pada textbox (lebih dari 15), maka akan muncul sebuah pesan seperti pada Gambar 4.6.Bila posisi error diberi masukan 0, artinya codeword tidak diberi error.Jika posisi error diberi masukan 1 sampai dengan 15, artinya codeword diberi error pada posisi 1 sampai dengan 15 mulai dari posisi bit paling kanan.

(67)

Setelah posisi error ditentukan, kemudian tombol ”Receive Word ” dipilih, dan akan ditampilkan receive word seperti yang terlihat pada Gambar 4.7.

Gambar 4.7Receive Word

(68)

4.2.2.3 Hasil Pengamatan pada Encoder (Pengirim)

Pada Proses pengiriman data (encoder), pengguna dapat memasukkan beberapa data yang terdiri dari pesan dan pola error yang berbeda – beda. Hasil pengamatan proses pengiriman data tersebut dapat dilihat pada Tabel 2.5

No. Data Dec Bit Pesan Bit Sandi Error Data yang Dikirim 1. H 72 00001001000 110100001001000 7 110100000001000 2. d 100 00001100100 000000001100100 3 000000001100000 3. ? 63 00000111111 000100000111111 10 000101000111111 4. 7 55 00000110111 011000000110111 15 111000000110111 5. 2 50 00000110010 000000000110010 0 000000000110010

Tabel 2.5 Hasil Pengamatan pada Proses Encoder

Data H yang telah diubah menjadi bit pesan (00001001000) seperti yang terlihat pada Tabel 2.5, akan dikalikan matrik generator menjadi bit sandi (110100001001000). Bit sandi kemudian diberikan error pada bit ke 7, sehingga diperoleh data yang akan dikirim (110100000001000).

(69)

Pada bagian berikut, pembuktian hasil Tabel 2.5 akan dijelaskan secara matematis. Berdasarkan persamaan (2.3) maka :

Untuk data nomor 1 pada Tabel 2.5 : U = m . G

Bit sandi = bit pesan . matrik generator

(70)

= [00001100100] .

Bit sandi = bit pesan . matrik generator

(71)

Untuk data nomor 4 pada Tabel 2.5 : U = m . G

Bit sandi = bit pesan . matrik generator

= [00000110111] . =[010100000100000][111000000010000][111100000000100] [101100000000010][100100000000001]

= [011000000110111]

Untuk data nomor 5 pada Tabel 2.5 : U = m . G

(72)

= [00000110010] .

Berdasarkan perbandingan antara persamaan (2.3) dengan hasil pada Tabel 2.5, maka proses fungsi pengirim telah berjalan dengan baik.

Pengiriman data melalui Bluetooth dari komputer I ke komputer II didapatkan hasil pesan yang sama, begitu pula sebaliknya. Pada fungsi pengirim pesan H yang telah diubah menjadi receive word (110100000001000) akan diterima pada fungsi penerima dengan receive word yang sama (110100000001000). Setelah fungsi penerima menerima receive word, kemudian diolah menjadi pesan yang sama (H).

(73)

Berikut adalah contoh penggunaan properti MSComm pada program Visual Basic :

Private Sub Form_Load ()

MSComm1.CommPort = 7

MSComm1.Settings = “9600,N,8,1” MSComm1.InputLen = 1

MSComm1.PortOpen = True

Penjelasan properti MSComm yang dipakai adalah sebagai berikut :

1. CommPort : Untuk menentukan nomor port yang akan dipakai (Comm 7) 2. Settings : Digunakan untuk menentukan nilai baud rate (9600), pariti, jumlah bit data,jumlah bit stop.

3. PortOpen : Digunakan untuk membuka ataupun menutup port yang dihubungkan dengan MSComm.

(74)

Gambar 4.8 Tampilan Penerima Saat Data Belum Terkoneksi

(75)

4.2.3 Fungsi Penerima (Decoder)

Proses fungsi penerima merupakan kebalikan proses dari fungsi pengirim. Apabila proses pengirim berfungsi membuat pesan tersandi, maka fungsi penerima berfungsi mengembalikan pesan tersandi kembali ke bentuk aslinya.

Komputer penerima mulai bekerja apabila sudah ada data yang diterima dari komputer pengirim. Bentuk form tampilan fungsi penerima dapat dilihat pada Gambar 4.9.

(76)

Apabila komputer pengirim telah melakukan pengiriman data hingga selesai, maka tombol ”Baca data” dapat dipilih dan data langsung ditampilkan. Setelah data ditampilkan dan data dimasukkan, maka komputer penerima sebagai decoder telah siap dijalankan.

Setelah data diterima, langkah selanjutnya adalah melakukan pengecekan error pada data yang diterima. Pengecekan error pada fungsi penerima dilakukan setelah tombol ”Cek error” dipilih. Apabila langkah ini telah dilakukan, maka data akan dikalikan dengan matrik HT seperti yang terlihat pada Gambar 4.10.

Gambar 4.10 Matrik HT

(77)

Setelah sindrom diperoleh dan posisi error diketahui, data akan dikoreksi atau diperbaiki menjadi data biner yang benar. Posisi bit error yang telah diketahui diubah kembali ke bentuk semula atau bit yang dinyatakan error diganti dengan bit kebalikannya. Apabila bit yang dinyatakan error telah diganti dengan bit kebalikannya, maka dapat ditampilkan hasil receiveword koreksinya seperti yang terlihat pada Gambar 4.11. Bila ditemukan bit yang diberi galat adalah ”1”, maka diubah menjadi bit kebalikannya yaitu ”0”, dan bila bit yang diberi galat adalah ”0”, maka diubah menjadi”1”.

(78)

Setelah receiveword koreksi diperoleh, kemudian diubah menjadi vektor pesan. Pengubahan receiveword dilakukan dengan cara memisahkan 4 bit paritasnya dari receiveword koreksi untuk mendapatkan 11 bit vektor pesan.

Apabila vektor pesan telah diperoleh, maka dapat diperoleh karakter yang sama dengan pesan yang dikirim oleh pengirim. Hasil vektor pesan dan pesan (karakter) yang diperoleh dapat lihat pada Gambar 4.12.

(79)

4.2.3.1 Hasil Pengamatan pada Decoder (Penerima)

Proses decoder menerima beberapa data dari pengirim yang terdiri dari vektor sandi yang berbeda – beda. Hasil pengamatan proses decoder tersebut dapat dilihat pada Tabel 2.6

No. Data diterima Sindrom Error Koreksi Data Bit Data Data 1. 110100000001000 1010 7 110100001001000 0000100

1000

H 2. 000000001100000 1111 3 000000001100100 0000110

0100

d 3. 000101000111111 0110 10 000100000111111 0000011

1111

? 4. 111000000110111 1000 15 011000000110111 0000011

0111

7 5. 000000000110010 0000 0 000000000110010 0000011

0010

2

Tabel 2.6 Hasil Pengamatan pada Proses Decoder

Data diterima (110100000001000) seperti yang terlihat pada Tabel 2.6, dikalikan dengan matrik HT menghasilkan sindrom (1010). Setelah sindrom diperoleh, maka dapat diketahui posisi error pada bit ke 7. Data diterima pada bit ke 7 diubah dengan bit kebalikannya, sehingga diperoleh koreksi data (110100001001000). Koreksi data akan dipisahkan 4 bit paritasnya dan diperoleh bit data (00001001000), kemudian bit data diubah menjadi pesan ”H”.

(80)

Pada bagian berikut, pembuktian hasil Tabel 2.6 akan dijelaskan secara matematis. Berdasarkan persamaan (2.20) maka :

(81)
(82)
(83)

Berdasarkan perbandingan antara persamaan (2.20) dengan hasil pada Tabel 2.6, maka proses fungsi penerima telah berjalan dengan baik

(84)

No. Data Dec Bit Pesan Bit sandi Eror Data yang dikirim 1. H 72 00001001000 110100001001000 0 110100001001000 2. H 72 00001001000 110100001001000 1 110100001001001 3. H 72 00001001000 110100001001000 2 110100001001010 4. H 72 00001001000 110100001001000 3 110100001001100 5. H 72 00001001000 110100001001000 4 110100001000000 6. H 72 00001001000 110100001001000 5 110100001011000 7. H 72 00001001000 110100001001000 6 110100001101000 8. H 72 00001001000 110100001001000 7 110100000001000 9. H 72 00001001000 110100001001000 8 110100011001000 10. H 72 00001001000 110100001001000 9 110100101001000 11. H 72 00001001000 110100001001000 10 110101001001000 12. H 72 00001001000 110100001001000 11 110110001001000 13. H 72 00001001000 110100001001000 12 110000001001000 14. H 72 00001001000 110100001001000 13 111100001001000 15. H 72 00001001000 110100001001000 14 100100001001000 16. H 72 00001001000 110100001001000 15 010100001001000

Tabel 2.7 Pemberian Error di semua posisi bit

(85)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Kesimpulan tentang simulasi encoder – decoder sandi blok linear (15,11) dengan dua PC menggunakan Bluetooth, adalah :

1. Program simulasi encoder – decoder sandi blok linear (15, 11) dengan program Visual Basic, untuk masukan pesan satu karakter (alphabets, numbers, symbols) dapat dilakukan dengan baik.

2. Simulasi program dengan pemberian satu pola error di semua posisi bit sandi dapat dilakukan dengan baik. Posisi error dapat dideteksi dan dikoreksi dengan benar.

3. Simulasi program encoder – decoder sandi blok linear (15, 11) tanpa pemberian pola error masih dapat dilakukan dengan baik.

5.2 Saran

Dari program simulasi yang telah dibuat dan diselesaikan, masih banyak terdapat kekurangan. Untuk menghindari hal yang sama maka penulis menyarankan :

1. Perancangan simulasi encoder – decoder sandi blok linear dengan media transmisi Bluetooth perlu ditingkatkan jumlah (n, k)nya.

(86)
(87)

Daftar Pustaka

1. Sklar, Bernard., 1998, Digital Communications, Prentice Hall, Inc. New Jersey.

2. www.elekroindonesia.com, 15 Oktober 2005. “Bluetooth SIG”

3. Lin, Shu, and Costello, Daniel J., Jr., 1983, Error Control Coding : Fundamentals and Aplications, Prentice Hall, Inc. Englewood Cliffs, New Jersey.

4. Kusumo, Ario Suryo. 2002. “Buku pelatihan Microsoft Visual Basic 6.0”

5. Ir. Pamungkas, 2000, Tip dan Trik Microsof Visual Basic 6.0., Elex Media

Komputindo, Jakarta

(88)

LAMPIRAN

(89)

MENU UTAMA

Private Sub CmdDecoder_Click() Unload Me

FrmDecoder.Show End Sub

Private Sub CmdEncoder_Click() Unload Me

FrmEncoder.TxtKey.Text = "" FrmEncoder.TxtBin11.Text = "" FrmEncoder.TxtBin10.Text = "" FrmEncoder.TxtBin9.Text = "" FrmEncoder.TxtBin8.Text = "" FrmEncoder.TxtBin7.Text = "" FrmEncoder.TxtBin6.Text = "" FrmEncoder.TxtBin5.Text = "" FrmEncoder.TxtBin4.Text = "" FrmEncoder.TxtBin3.Text = "" FrmEncoder.TxtBin2.Text = "" FrmEncoder.TxtBin1.Text = ""

FrmEncoder.TxtCodeWord1.Text = "" FrmEncoder.TxtCodeWord2.Text = "" FrmEncoder.TxtCodeWord3.Text = "" FrmEncoder.TxtCodeWord4.Text = "" FrmEncoder.TxtCodeWord5.Text = "" FrmEncoder.TxtCodeWord6.Text = "" FrmEncoder.TxtCodeWord7.Text = "" FrmEncoder.TxtCodeWord8.Text = "" FrmEncoder.TxtCodeWord9.Text = "" FrmEncoder.TxtCodeWord10.Text = "" FrmEncoder.TxtCodeWord11.Text = "" FrmEncoder.TxtCodeWord12.Text = "" FrmEncoder.TxtCodeWord13.Text = "" FrmEncoder.TxtCodeWord14.Text = "" FrmEncoder.TxtCodeWord15.Text = "" FrmEncoder.TxtError.Text = ""

(90)

FrmEncoder.TxtCodeWordError11.Text = "" FrmEncoder.TxtCodeWordError12.Text = "" FrmEncoder.TxtCodeWordError13.Text = "" FrmEncoder.TxtCodeWordError14.Text = "" FrmEncoder.TxtCodeWordError15.Text = "" FrmEncoder.Show

End Sub

Private Sub CmdKeluar_Click() End

End Sub

Private Sub FrmMenuUtama_Load() Unload Me

End Sub PENGIRIM

Dim strKey As String Dim strAscii As String Dim Counter As Integer Private Sub Check1_Click() End Sub

Private Sub CmdBin_Click() End Sub

Private Sub Command6_Click() End Sub

Private Sub CmdCodeWord_Click()

Dim n, sum1, sum2, sum3, sum4, sum5, sum6, sum7, sum8, sum9, sum10, sum11, sum12, sum13, sum14, sum15 As Integer

sum1 = 0: sum2 = 0: sum3 = 0: sum4 = 0: sum5 = 0: sum6 = 0 sum7 = 0: sum8 = 0: sum9 = 0: sum10 = 0: sum11 = 0: sum12 = 0 sum13 = 0: sum14 = 0: sum15 = 0

Static I(10), C1(10), C2(10), C3(10), C4(10), C5(10), C6(10), C7(10), C8(10), C9(10), C10(10), C11(10), C12(10), C13(10), C14(10), C15(10), G1(10), G2(10), G3(10), G4(10), G5(10), G6(10), G7(10), G8(10), G9(10), G10(10), G11(10), G12(10), G13(10), G14(10), G15(10) As Integer

(91)

I(2) = 0

I(3) = TxtBin8.Text I(4) = TxtBin7.Text I(5) = TxtBin6.Text I(6) = TxtBin5.Text I(7) = TxtBin4.Text I(8) = TxtBin3.Text I(9) = TxtBin2.Text I(10) = TxtBin1.Text

G1(0) = 1: G1(1) = 0: G1(2) = 0: G1(3) = 1: G1(4) = 1: G1(5) = 0 G1(6) = 1: G1(7) = 0: G1(8) = 1: G1(9) = 1: G1(10) = 1

G2(0) = 1: G2(1) = 1: G2(2) = 0: G2(3) = 1: G2(4) = 0: G2(5) = 1 G2(6) = 1: G2(7) = 1: G2(8) = 1: G2(9) = 0: G2(10) = 0

G3(0) = 0: G3(1) = 1: G3(2) = 1: G3(3) = 0: G3(4) = 1

G3(5) = 0: G3(6) = 1: G3(7) = 1: G3(8) = 1: G3(9) = 1: G3(10) = 0 G4(0) = 0: G4(1) = 0: G4(2) = 1: G4(3) = 1: G4(3) = 1: G4(4) = 0 G4(5) = 1: G4(6) = 0: G4(7) = 1: G4(8) = 1: G4(9) = 1: G4(10) = 1 G5(0) = 1: G5(1) = 0: G5(1) = 0: G5(2) = 0: G5(3) = 0: G5(4) = 0 G5(5) = 0: G5(6) = 0: G5(7) = 0: G5(8) = 0: G5(9) = 0: G5(10) = 0 G6(0) = 0: G6(1) = 1: G6(2) = 0: G6(3) = 0: G6(4) = 0: G6(5) = 0 G6(6) = 0: G6(7) = 0: G6(8) = 0: G6(9) = 0: G6(10) = 0

G7(0) = 0: G7(1) = 0: G7(2) = 1: G7(3) = 0: G7(4) = 0: G7(5) = 0 G7(6) = 0: G7(7) = 0: G7(8) = 0: G7(9) = 0: G7(10) = 0

G8(0) = 0: G8(1) = 0: G8(2) = 0: G8(3) = 1: G8(4) = 0: G8(5) = 0 G8(6) = 0: G8(7) = 0: G8(8) = 0: G8(9) = 0: G8(10) = 0

G9(0) = 0: G9(1) = 0: G9(2) = 0: G9(3) = 0: G9(4) = 1: G9(5) = 0 G9(6) = 0: G9(7) = 0: G9(8) = 0: G9(9) = 0: G9(10) = 0

G10(0) = 0: G10(1) = 0: G10(2) = 0: G10(3) = 0: G10(4) = 0: G10(5) = 1 G10(6) = 0: G10(7) = 0: G10(8) = 0: G10(9) = 0: G10(10) = 0

G11(0) = 0: G11(1) = 0: G11(2) = 0: G11(3) = 0: G11(4) = 0: G11(5) = 0 G11(6) = 1: G11(7) = 0: G11(8) = 0: G11(9) = 0: G11(10) = 0

G12(0) = 0: G12(1) = 0: G12(2) = 0: G12(3) = 0: G12(4) = 0: G12(5) = 0 G12(6) = 0: G12(7) = 1: G12(8) = 0: G12(9) = 0: G12(10) = 0

G13(0) = 0: G13(1) = 0: G13(2) = 0: G13(3) = 0: G13(4) = 0: G13(5) = 0 G13(6) = 0: G13(7) = 0: G13(8) = 1: G13(9) = 0: G13(10) = 0

G14(0) = 0: G14(1) = 0: G14(2) = 0: G14(3) = 0: G14(4) = 0: G14(5) = 0 G14(6) = 0: G14(7) = 0: G14(8) = 0: G14(9) = 1: G14(10) = 0

G15(0) = 0: G15(1) = 0: G15(2) = 0: G15(3) = 0: G15(4) = 0: G15(5) = 0 G15(6) = 0: G15(7) = 0: G15(8) = 0: G15(9) = 0: G15(10) = 1

(92)

C4(n) = I(n) * G4(n) sum4 = C4(n) + sum4 C5(n) = I(n) * G5(n) sum5 = C5(n) + sum5 C6(n) = I(n) * G6(n) sum6 = C6(n) + sum6 C7(n) = I(n) * G7(n) sum7 = C7(n) + sum7 C8(n) = I(n) * G8(n) sum8 = C8(n) + sum8 C9(n) = I(n) * G9(n) sum9 = C9(n) + sum9 C10(n) = I(n) * G10(n) sum10 = C10(n) + sum10 C11(n) = I(n) * G11(n) sum11 = C11(n) + sum11 C12(n) = I(n) * G12(n) sum12 = C12(n) + sum12 C13(n) = I(n) * G13(n) sum13 = C13(n) + sum13 C14(n) = I(n) * G14(n) sum14 = C14(n) + sum14 C15(n) = I(n) * G15(n) sum15 = C15(n) + sum15 Next n

If sum1 Mod 2 = 0 Then sum1 = 0

Else: sum1 = 1 End If

If sum2 Mod 2 = 0 Then sum2 = 0

Else: sum2 = 1 End If

If sum3 Mod 2 = 0 Then sum3 = 0

Else: sum3 = 1 End If

If sum4 Mod 2 = 0 Then sum4 = 0

Else: sum4 = 1 End If

If sum5 Mod 2 = 0 Then sum5 = 0

Else: sum5 = 1 End If

(93)

sum6 = 0 Else: sum6 = 1 End If

If sum7 Mod 2 = 0 Then sum7 = 0

Else: sum7 = 1 End If

If sum8 Mod 2 = 0 Then sum8 = 0

Else: sum8 = 1 End If

If sum9 Mod 2 = 0 Then sum9 = 0

Else: sum9 = 1 End If

If sum10 Mod 2 = 0 Then sum10 = 0

Else: sum10 = 1 End If

If sum11 Mod 2 = 0 Then sum11 = 0-1

Else: sum11 = 1 End If

If sum12 Mod 2 = 0 Then sum12 = 0

Else: sum12 = 1 End If

If sum13 Mod 2 = 0 Then sum13 = 0

Else: sum13 = 1 End If

If sum14 Mod 2 = 0 Then sum14 = 0

Else: sum14 = 1 End If

If sum15 Mod 2 = 0 Then sum15 = 0

Else: sum15 = 1 End If

(94)

TxtCodeWord8 = sum8 TxtCodeWord9 = sum9 TxtCodeWord10 = sum10 TxtCodeWord11 = sum11 TxtCodeWord12 = sum12 TxtCodeWord13 = sum13 TxtCodeWord14 = sum14 TxtCodeWord15 = sum15 End Sub

Private Sub CmdCodeWordError_Click() Dim EW As Integer

EW = TxtError

TxtCodeWordError1 = TxtCodeWord1 TxtCodeWordError2 = TxtCodeWord2 TxtCodeWordError3 = TxtCodeWord3 TxtCodeWordError4 = TxtCodeWord4 TxtCodeWordError5 = TxtCodeWord5 TxtCodeWordError6 = TxtCodeWord6 TxtCodeWordError7 = TxtCodeWord7 TxtCodeWordError8 = TxtCodeWord8 TxtCodeWordError9 = TxtCodeWord9 TxtCodeWordError10 = TxtCodeWord10 TxtCodeWordError11 = TxtCodeWord11 TxtCodeWordError12 = TxtCodeWord12 TxtCodeWordError13 = TxtCodeWord13 TxtCodeWordError14 = TxtCodeWord14 TxtCodeWordError15 = TxtCodeWord15 If EW = 1 Then

If TxtCodeWord15 = 1 Then TxtCodeWordError15 = 0 Else: TxtCodeWordError15 = 1 End If

End If If EW = 2 Then

If TxtCodeWord14 = 1 Then TxtCodeWordError14 = 0 Else: TxtCodeWordError14 = 1 End If

End If If EW = 3 Then

(95)

End If If EW = 4 Then

If TxtCodeWord12 = 1 Then TxtCodeWordError12 = 0 Else: TxtCodeWordError12 = 1 End If

End If If EW = 5 Then

If TxtCodeWord11 = 1 Then TxtCodeWordError11 = 0 Else: TxtCodeWordError11 = 1 End If

End If If EW = 6 Then

If TxtCodeWord10 = 1 Then TxtCodeWordError10 = 0 Else: TxtCodeWordError10 = 1 End If

End If If EW = 7 Then

If TxtCodeWord9 = 1 Then TxtCodeWordError9 = 0 Else: TxtCodeWordError9 = 1 End If

End If If EW = 8 Then

If TxtCodeWord8 = 1 Then TxtCodeWordError8 = 0 Else: TxtCodeWordError8 = 1 End If

End If If EW = 9 Then

If TxtCodeWord7 = 1 Then TxtCodeWordError7 = 0 Else: TxtCodeWordError7 = 1 End If

End If

If EW = 10 Then

If TxtCodeWord6 = 1 Then TxtCodeWordError6 = 0 Else: TxtCodeWordError6 = 1 End If

End If

If EW = 11 Then

Gambar

Gambar 2.1 Sandi Blok [3]
Tabel 2.1 Tabel Polinomial Primitif [3]
Tabel 2.2  Larik Standar [1]
Tabel 2.3 Batas frekuensi serta kanal RF [2]
+7

Referensi

Dokumen terkait

Fungi mikoriza multispora dapat menerima karbohidrat dan faktor pertumbuhan dari tanaman inang sebagai sumber energi untuk pertumbuhan dan perkembangannya sedangkan

Proses input adalah data nilai pelamar yang mengikuti masing-masing test kemudian dilakukan dengan pendekatan fuzzy mamdani akan menghasilkan hasil seleksi tiap test

dalam upaya meningkatkan kompetensi guru menyusun RPP berkarakter, yang bermanfaat bagi Kepala Sekolah untuk meningkatkan profesionalisme dan bagi guru untuk

Pengaruh Penerapan Media Audio Visual Terhadap Penguasaan Gerak Kata Heian Nidan Dalam Pembelajaran Karate di SMP Negeri 1 Bandung.. Universitas Pendidikan Indonesia |

Kinerja SDM adalah prestasi kerja atau hasil kerja (output) baik kualitas maupun kuantitas yang dicapai SDM persatuan periode waktu dalam melaksanakan tugas kerjanya

Dalam Peraturan Rektor Universitas Negeri Semarang Nomor 14 Tahun 2012 tentang “ Pedoman Praktik Pengalaman Lapangan (PPL) bagi Mahasiswa Program Kependidikan Universitas

Penyelenggaraan pelatihan yang dilaksanakan di Bapelkes Batam khususnya pelatihan Emergency Nursing 2 Tahun 2012 didapati data kinerja input dengan kategori Baik,

Upaya penegakan HAM yang dilakukan oleh pemerintah tidak akan berhasil tanpa didukung oleh sikap dan perilaku warga negaranya yang mencerminkan perhormatan terhadap hak asasi