SIMULASI PENYANDI DAN PENGAWASANDI SANDI BCH (15,7) DENGAN VISUAL C++ TUGAS AKHIR - Simulasi penyandi dan pengawasandi sandi BCH [15,7] dengan visual C++ - USD Repository

  

SIMULASI PENYANDI DAN PENGAWASANDI SANDI BCH

(15,7) DENGAN VISUAL C++

TUGAS AKHIR

  Diajukan untuk memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik

  Jurusan Teknik Elektro disusun oleh :

  

IDA BAGUS MADE SINARYASA

995114051

PROGRAM STUDI TEKNIK ELEKTRO

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

  

2007

  

AN ENCODER AND DECODER OF BINARY BCH CODE

(15,7) SIMULATION WITH VISUAL C++

FINAL PROJECT

  Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Teknik Degree

  In Electrical Engineering

  

By :

  

IDA BAGUS MADE SINARYASA

995114051

ELECTRICAL ENGINEERING STUDY PROGRAM

ELECTRICAL ENGINEERING DEPARTMENT

ENGINEERING FACULTY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

  

2007

HALAMAN PERSEMBAHAN

  ! " ! # #

  #

PERNYATAAN KEASLIAN KARYA

  “ Saya menyatakan dengan sesungguhnya bahwa Tugas Ahkir yang saya tulis ini tidak memuat karya atau bagian karya atau bagaian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya sebuah karya ilmiah “

  Yogyakarta, 25 Januari 2007 Penulis,

  Ida Bagus Made Sinaryasa

  Judul : Simulasi Penyandi dan Pengawasandi sandi BCH (15,7) dengan Visual C++ Nama Mahasiswa : Ida Bagus Made Sinaryasa No. Mahasiswa : 995114051

  

INTISARI

  Transmisi data adalah suatu proses pengiriman dan penerimaan data. Pada proses ini diharapkan data yang dikirim sama dengan data yang diterima. Dalam prakteknya hal tersebut sulit untuk dicapai, karena adanya error pada media penyalurannya yang begitu peka terhadap derau, distorsi dan interferensi.

  Sandi BCH (15,7) merupakan salah satu metode yang sering digunakan untuk mendeteksi dan mengoreksi data yang salah selama proses pengiriman tersebut. Oleh karena itu untuk mengetahui lebih banyak tentang sandi BCH (15,7) maka dibuatlah simulasi sandi BCH (15,7) yang diimplementasikan dengan

  

visual C++ . Data yang dimasukkan pengguna akan disimilasikan melalui program

  penyandi, pemberi galat dan pengwasandi yang diproses tiap satu bingkai atau maksimal 50 karakter.

  Kata kunci : Sandi BCH (15,7), Visual C++.

  Title : an Encoder and Decoder of Binary BCH Code (15,7) Simulation with Visual C++. Student Name : Ida Bagus Made Sinaryasa Student ID : 995114051 ABSTRACT

  Data transmission is a process about sending and receiving a data, expected result in this process is the received data would be the same as the data that was sent before. But in the fact that was very difficult to achieved, because there was something called error in the media of data transmitting. The media are very sensitive to sound of roaring, distortion, and interference.

  BCH (15,7) codes is one of the methods that often used for data error detection and data error correction along the data transmitting process. To know further about BCH (15,7) codes, a simulation of BCH (15,7) codes was made by using Visual C++ as an implantation device. The encoder, the error maker and the decoder program will make the simulation of the data those inputted by user, which processed every one frame or maximum for 50 character.

  Keyword : BCH (15,7) Code, Visual C++.

KATA PENGANTAR

  Puji syukur sebesar-besarnya penulis panjatkan kepada Tuhan yang Maha Esa, Ida Sang Hyang Widhi Wasa atas rahmat, berkat, karunia dan penyelenggaraan-Nya yang dilimpahkan kepada penulis, sehingga penulis dapat menyelesaikan Tugas Akhir ini dengan baik.

  Penulisan Tugas Akhir ini merupakan salah satu syarat untuk mengakhiri masa studi penulis dan untuk memperoleh gelar sarjana teknik Jurusan Teknik Elektro di Universitas Sanata Dharma. Penulisan Tugas Akhir ini didasarkan pada hasil-hasil yang penulis peroleh mulai dari perancangan, pembuatan program sampai pada pengujian program yang diajukan, juga kemungkinan pengembangannya.

  Pada kesempatan yang baik ini penulis ingin mengucapkan banyak terima kasih kepada semua pihak yang telah banyak membantu penulis dalam menyelesaikan Tugas Akhir ini. Ucapan terima kasih setulusnya penulis haturkan, terutama kepada:

  1. Ibu Ir. Th Prima Ari Setyani, M.T. selaku dosen pembimbing I Tugas Akhir, dan Ibu Wiwien Widyastuti, S.T, M.T. selaku dosen pembimbing II Tugas Akhir, yang telah banyak memberikan pengarahan, petunjuk serta saran selama pengerjaan Tugas Akhir.

  2. Seluruh staff pengajar di Teknik Elektro yang telah banyak memberikan bimbingan kepada penulis selama menjadi mahasiswa.

  3. Bapak Jito dan seluruh karyawan sekretariat Teknik Elektro Fakultas Teknik Universitas Sanata Dharma.

  4. Bundaku Ida Ayu Tirta atas Support dan doa yang tidak penah ada habisnya, terimakasih untuk menjadi ibu, sahabat, tempat sampah, tempat bergantung dan segalanya dalam hidupku.

  5. Bapak Ida Bagus Putu Sapta, atas pengertian dan pengalaman hidup yang menjadi pelajaran berharga dalam hidupku. Terimakasih untuk menjadi Ayah, sahabat, pembimbing, penasehat dan segalanya dalam hidupku.

  6. Abangku Ida Bagus Putu “Paul” Wismaya dan adikku Ida Ayu Nyoman “Enyung” Puspadewi atas pengalaman hidup bersama, support, doa dan perasaan penuh cinta diantara kita.

  7. Ida Ayu Putu Dewi Anggriyani, pribadi istimewa yang dikaruniakan Tuhan untukku, atas kebersamaan dalam pendewasaan pribadi.

  8. Keluarga Pak Yan Sukadana, Mek Ngah, Iluh, Dek Bodrex, Komang terima kasih atas perhatian, cinta, semangat dan segalanya yang tak tergantikan.

  9. Sahabat dan teman-teman penulis, Djiwo “Gembul” Prasojo, pribadi yang keras dan tangguh (aku bersyukur karena boleh memiliki tempat bekeluh kesah, terimakasih atas suport yang tiada henti untukku), Wahyu “Ableh” Prasetyo (pribadi yang tegar dan giat), Hadrianus S (Pribadi yang kalem dan menghanyutkan), L. “Si-Boss” Chrisnawan (pribadi yang luwes, tenang, dan juga so..cutee..), Agus “Boim” Budiono (pribadi yang aneh, sampai bingung mau nulis apa), sisa – sisa angkatan ’99 : Giri, Agung,

  Tutus,Oscar dan yang lainnya yang belum disebut jangan marah (tetap semangat ya....).

  10. Pande (suka duka yang takkan terlupakan), Bli Ngurah, Wayan santra dan teman – teman KMHD yang yang telah menyemarakkan perjalan hidupku.

  11. Berbagai pihak yang tidak dapat penulis sebutkan satu persatu di sini.

  Penulis menyadari bahwa dalam karya tulis ini masih terdapat banyak kekurangan dan jauh dari sempurna. Oleh karena itu segala bentuk kritik dan saran serta masukan yang membangun sangat penulis harapkan dari pembaca, demi perbaikan dan kesempurnaan karya tulis ini.

  Terima kasih Yogyakarta, 25 Januari 2007

  Penulis

  DAFTAR ISI

  HALAMAN JUDUL ……………………………………………………........... i LEMBAR PERSETUJUAN PEMBIMBING …………………………...…….. iii LEMBAR PENGESAHAN PENGUJI ………………………………….……... iv HALAMAN PERSEMBAHAN ........................................................................... v LEMBAR KEASLIAN KARYA......................................................................... vi

  INTISARI.....................................………………………………….………........vii ABSTRACT ……………..………………………………………...…………... viii KATA PENGANTAR...………………………………………………………... ix DAFTAR ISI. ……………...…………………………………………………... xii DAFTAR GAMBAR ………………………………………....……………….. xv DAFTAR LAMPIRAN ......................................................................................xvii

  BAB I PENDAHULUAN I.1 Judul .................................................................................................. 1 I.2 Latar Belakang ................................................................................... 1 I.3 Batasan Masalah ................................................................................ 3 I.4 Tujuan Penelitian ............................................................................... 4 I.5 Manfaat Penelitian ............................................................................. 4 I.6 Sistematika Penulisan ........................................................................ 4 BAB II DASAR TEORI ...................................................................................... 6 II.1 Sandi BCH ........................................................................................ 7 4 II.1.1 Galois field GF (2 ) ......................................................... 8

  II.1.2 Generator polinomial ........................................................ 9

  II.2 Penyandian sandi BCH .................................................................... 11

  II.2.1 Penyandian sistematis sandi BCH dengan register geser.. 12

  II.3 Pengawasandian sandi BCH ............................................................ 14

  II.3.1 Sindrom galat .................................................................. 14

  II.3.2 Koreksi galat ................................................................... 15

  II..4 Visual C++ ..................................................................................... 18

  II.4.1 Sekilas tenyang Visual C++ ........................................... 18

  II.4.2 Mengenal lingkungan Visual C++ .................................. 20

  II.4.3 Konsep pemrograman Visual C++ ................................. 22

  II.4.4 Langkah-langkah pembuatan aplikasi ............................ 23

  BAB III RANCANGAN PENELITIAN ............................................................ 25 III.1 Penyandian ..................................................................................... 26 III.2 Deteksi dan koreksi kesalahan ...................................................... 27 III.3 Diagram Alir Program .................................................................... 30 III.3.1 Diagram alir untuk Penyandian .................................... 30 III.3.1.1 Sub Program diagram alir untuk pengubah ASCII ke biner ............................................................ 31

  III.3.1.2 Sub Program diagram alir Penyandian register geser .................................................................. 32

  III.3.2 Diagram alir untuk program pemberian kesalahan ........ 34

  III.3.3 Diagram alir untuk Program deteksi dan koreksi error ... 35

  III.3.3.1 Sub Program diagram alir untuk sindrom error

  .......................................................................... 36

  III.3.3.2 Sub Program Diagram Alir untuk algoritma Berlekemp ...................................................... 37

  III.3.3.3 Sub Program diagram alir untuk Chien's search ......................................................................... 39

  BAB IV ANALISA DAN PEMBAHASAN ...................................................... 41 IV.1 Hasil Akhir dari Perancangan ......................................................... 41 IV.2 Cara Kerja Program ........................................................................ 42 IV.2.1 Penyandian ................ ...................................................... 42 IV.3 Pemberian Error ............................................................................ 47 IV.4 Pendeteksian dan koreksi kesalahan .............................................. 50 BAB V KESIMPULAN dan SARAN ............................... ................................ 59 V.1 Kesimpulan ...................................................................................... 59 V.2 Saran ................................................................................................ 60 DAFTAR PUSTAKA LAMPIRAN

  DAFTAR GAMBAR

Gambar 2.1 Diagram Blok Sistem Pengiriman Data Secara Umum .................... 6Gambar 2.2 Rangkaian Penyandian Untuk Sandi Siklis (n,k) dengan Pembangkit

  Polinomial ....................................................................................... 13

Gambar 2.3 Blok diagram pengawasandi secara umum ................................... 14Gambar 3.1 Rancangan Program Encoding pada sandi BCH ............................. 26Gambar 3.2 Diagram Blok Penyandian dengan register geser ........................... 27Gambar 3.3 Rangkaian untuk menghitung sindrom sandi BCH (15,7) ............... 28Gambar 3.4 Rangkaian Chien’s searching untuk sandi BCH (15,7) ............... 30Gambar 3.5 Diagram Alir untuk Penyadian ........................................................ 31Gambar 3.6 Sub Program Diagram Alir untuk Pengubah ASCII ke Biner ......... 32Gambar 3.7 Sub Program Diagram Alir untuk penyandian register geser ......... 33Gambar 3.8 Diagram Alir program pemberian Kesalahan ................................. 34Gambar 3.9 Diagram Alir untuk Program deteksi dan koreksi galat.... ............... 35Gambar 3.10 Sub program Diagram Alir untuk sindrom galat .......... .... ............ 36Gambar 3.11 Sub program Diagram Alir untuk algoritma Berlekemp ................ 38Gambar 3.12 Sub program Diagram Alir untuk Chien’s search ......................... 39

  Gambar 4.1.a Tampilan penyandian sebelum terjadinya proses ......................... 42 Gambar 4.1.b Tampilan penyandian pengubahan ke biner ................................ 43 Gambar 4.1.c Tampilan penyandian setelah proses penyandian ........................ 44 Gambar 4.1.d Tampilan Penyandian untuk menyimpan data ............................. 46 Gambar 4.2.a Tampilan pemberian error sebelum terjadinya proses ................... 47 Gambar 4.2.b Tampilan untuk membuka data .................................................... 48 Gambar 4.2.c Tampilan untuk mengisi letak galat ............................................ 49 Gambar 4.2.d Tampilan setelah pemberian galat ................................................ 49 Gambar 4.2.e Tampilan setelah pemberian galat acak ...................................... 50 Gambar 4.3.a Tampilan Decoder sebelum terjadinya proses ............................ 51 Gambar 4.3.b Tampilan Decoder setelah data dibuka ....................................... 52 Gambar 4.3.c Tampilan setelah proses dekode .................................................. 52 Gambar 4.3.d Tampilan untuk deteksi dan koreksi tanpa galat............................ 54

  Gambar 4.3.f Tampilan untuk deteksi dan koreksi 2 galat................................... 57 Gambar 4.3.g Tampilan untuk koreksi dan deteksi 3 galat................................... 58 Gambar 4.3.g Tampilan untuk koreksi dan deteksi 3 galat diluar blok................ 60

  DAFTAR LAMPIRAN

  Lampiran A Listing Program ............................................................................... L1 Lampiran B BCH Code ................................. ..................................................... L2 Lampiran C Tabel ASCII ......................................................................................L3

BAB I PENDAHULUAN

  1.1 Judul

  Simulasi Penyandi dan Pengawasandi sandi BCH (15,7) dengan Visual C++ (an Encoder and Decoder of Binary BCH Code (15,7) Simulation with Visual C++).

  1.2 Latar Belakang

  Kemajuan teknologi yang sangat pesat yang terjadi pada akhir-akhir ini merupakan sesuatu yang tidak dapat dihindari dari kehidupan manusia, hal tersebut muncul sebagai akibat dari tuntutan manusia yang menginginkan segala sesuatu secara cepat. Termasuk dalam dunia komunikasi, manusia tidak lagi dibatasi oleh jarak berkat kemajuan dalam dunia komunikasi.

  Untuk berkomunikasi manusia menggunakan alat bantu, diantaranya : telepon, faksimili, telepon genggam dan lain sebagainya. Semua sistem ini melakukan proses trasmisi data guna menyampaikan informasi dan bertujuan untuk menyamakan atau menyelaraskan antara data yang dikirim oleh pengirim serta data yang diterima oleh penerima.

  Tetapi dalam kenyataannya, hal seperti ini sulit dicapai karena adanya kesalahan atau galat (error) yang menyebabkan data yang diterima oleh penerima tidak sesuai dengan data yang dikirim oleh pengirim. Terjadinya kesalahan tergantung pada media penyaluran yang sangat peka terhadap derau, distorsi dan interferensi sehingga perlu dicari suatu sandi yang dapat mengoreksi kesalahan tersebut sehingga data yang dikirim dapat diterima secara benar dan sesuai.

  Dalam pengiriman atau transmisi data secara digital dikenal istilah menyandikan suatu data (encoding) yaitu proses pengubahan data yang akan dikirimkan menjadi suatu bentuk sandi atau kode tertentu. Dalam proses transmisi data sering terjadi perbedaan antara data yang dikirim dengan data yang diterima yang disebabkan oleh kegagalan dalam sistem transmisi dan media penyaluran.

  Kesalahan dalam transmisi data secara digital didefinisikan sebagai perubahan dari “1” menjadi “0” dan sebaliknya “0” menjadi “1” antara pengirim dan penerima. Kesalahan yang terjadi seperti ini merupakan hal yang fatal bila terjadi dalam sistem pengiriman data. Oleh sebab itu kesalahan seperti ini perlu dideteksi untuk kemudian dikoreksi.

  Salah satu sandi yang digunakan untuk mendeteksi dan mengoreksi kesalahan pada pengiriman data adalah sandi BCH (Bose-Chaudhuri- Hocquenghem). Sandi BCH adalah salah satu sandi yang terkemuka untuk pengoreksian galat dalam teori dan prakteknya. Beberapa alasan kenapa sandi ini disebut terkemuka adalah : (1) panjang blok yang digunakan tidak terlalu banyak atau panjang. (2) Relatif sederhana serta teknik penyandian dan pengawasandiannya cukup banyak diketahui. (3) Pengertian yang mendalam pada sandi BCH mungkin adalah salah satu langkah awal untuk mempelajari sandi – sandi yang lainnya.

  Sandi ini akan menghasilkan polinomial kata sandi yang berasal dari penyandian sandi BCH dengan berbagai cara yaitu struktur aljabar, pembagi polinomial dan register geser, sehingga kesalahan dapat terdeteksi jika polinomial kata sandi yang diterima tidak sama dengan polinomial kata sandi yang dikirim.

  Secara garis besar dapat dijelaskan sebagai berikut, bahwa terjadi kesalahan jika sindrom (hasil bagi antara vektor kata sandi dengan generator polinomial) ≠ 0 atau = 1, sedangkan tidak terjadi kesalahan jika sindrom = 0, sehingga bit yang mengalami kesalahan akan diperbaiki, hingga data yang diterima akan sama dengan data yang dikirim.

  Dalam tugas akhir ini penulis akan membuat simulasi penyandian sandi siklis yang diimplimentasikan dengan bahasa C. Tahapan dalam pembuatan simulasi ini adalah pembuatan desain tampilan yang menggunakan visual C++ yang memuat tampilan tentang penyandian (encoding); pemberian kesalahan (error) serta tampilan tentang pendeteksian dan koreksi kesalahan.

  Pengujian secara keseluruhan dilakukan dengan cara simulasi untuk memasukkan data (input) menggunakan keyboard, sedangkan pada tampilan keluaran (output) menggunakan monitor pada suatu personal computer (PC).

1.3 Batasan Masalah

  Pada pelaksanaan dan penyusunan tugas akhir ini, penulis membatasi permasalahan yang ada dan yang akan timbul adalah sebagai berikut:

  1. Masukan data dari keyboard berupa teks (maksimal 50 karakter).

  2. Sandi terdiri atas 15 bit dengan 7 bit pesan dan 8 bit paritas.

  3. Pemberian kesalahan secara manual dan acak maksimal 2 bit galat.

  4. Proses penyandian, pendeteksian dan koreksi galat akan ditampilkan.

  1.4 Tujuan Penelitian

  Adapun tujuan yang akan dicapai dalam penulisan tugas akhir ini adalah:

  1. Menghasilkan suatu program bantu untuk memudahkan pemahaman tentang sandi BCH (15,7)

  2. Memvisualkan suatu metode simulasi untuk mengetahui lokasi kesalahan pada sandi BCH

  3. Memanfaatkan program visual C++ dalam mensimulasikan sandi BCH

  1.5 Manfaat penelitian

  Adapun manfaat yang dapat diambil dalam melakukan penelitian ini adalah:

  1. Mempermudah dalam pemahaman penyandian dengan sandi BCH dalam bentuk visual.

  2. Langkah awal implementasi ke perangkat keras.

  1.6 Sistematika Penulisan

  Laporan tugas akhir ini ditulis berdasarkan hasil penelitian yang dilakukan selama pembuatan program terebut. Adapun sistematika penulisan ini terdiri atas:

  BAB I PENDAHULUAN Pada bab pendahuluan ini berisi tentang judul, latar belakang,

  perumusan masalah, pembatasan masalah, tujuan penelitian, manfaat penelitian dan sistematika penulisan.

  BAB II DASAR TEORI Dasar teori akan menjelaskan tentang penyandian sandi BCH

  secara keseluruhan termasuk juga pendeteksian dan pengoreksian kesalahan (detection and error correction). Juga disertakan penjelasan tentang Visual C++ yang digunakan dalam perancangan program ini.

  BAB III PERANCANGAN PROGRAM Dalam bab ini dijelaskan juga tentang diagram blok program dan diagram alir dari program tersebut. BAB IV ANALISIS DAN PEMBAHASAN Bab IV membahas tentang analisis program encoder, program

  pemberian kesalahan (error), serta program pendeteksian dan pengkoreksian kesalahan.

  BAB V PENUTUP Untuk bab penutup berisi tentang kesimpulan dan saran dari

  perancang yang telah dilakukan untuk pengembangan aplikasi lebih lanjut.

BAB II DASAR TEORI Sandi pada sistem komunikasi digital merupakan angka biner yang

  tersusun menjadi deret denyut 0 dan 1. Ada berbagai metode penyandian yang dikenal pada sistem pengiriman data, antara lain Hamming code, linear code ,

  

cyclic code dan masih banyak yang lainnya. Proses pengirimaan data

  diperlihatkan pada gambar 2.1 yang menampilkan diagram kotak sandi secara umum.

  Keluaran dari sumber informasi u(X) akan diteruskan ke bagian penyandi yang berfungsi membangkitkan bit-bit paritas. Pada bagian penyandi ini akan menghasilkan keluaran berupa sandi-sandi yang telah dikodekan C(X), selanjutnya data akan ditrasmisikan melalui suatu media penyalur yang sangat peka terhadap kesalahan sehingga sering terjadi data yang diterima oleh pengawasandi R(X) tidak sama dengan data yang dikirim oleh penyandi.

  Pengawasandi akan mendeteksi dan mengoreksi kesalahan yang terjadi sehingga data yang diterima u'(X) sama dengan data yang dikirim u(X).

Gambar 2.1 diagram blok sistem pengiriman data secara umum. Sandi BCH merupakan bentuk subklas dari sandi siklis dan mempunyai 2 (dua) sifat yang khas yaitu :

  1. Penyandian dan perhitungan sindrom dapat dengan mudah diimplementasikan dengan menggunakan register geser umpan balik (feedback shift register).

  2. Tiap sandi mempunyai susunan yang banyak jumlahnya dan mampu mengoreksi galatnya sendiri secara menyeluruh.

II.1 SANDI BCH

  Sandi BCH merupakan sub bagian dari sandi siklis yang pembangkit polinomial atau generator polinomialnya memiliki akar-akar yang dibangun untuk meningkatkan kemampuaan koreksi kesalahan. Sandi BCH (n,k) yang didefinisikan memiliki kemampuan untuk mengoreksi t galat.

  Pada proses pengkoreksian galat untuk mengoreksi sebanyak t bit galat digunakan prinsip-prinsip pada sandi BCH, sebagai berikut : Panjang blok (n) : n = 2

  m

  • – 1 (2.1) Urutan digit cek paritasnya : n – k < mt (2.2) Jarak minimum (d

  min

  ) : d

  min

  > 2t + 1 (2.3) Dan panjang informasi (k) : k = 2

  m

  • – 1 – r (2.4) t adalah jumlah galat r adalah pangkat dari Generator polynomial. m adalah pangkat dari minimal polinomial.
Syarat yang harus dipenuhi adalah sebagai berikut :

  m -1

  m(m >3) dan t(t < 2 ). (2.5) Perlu diperhatikan bahwa bit paritas r(x) yang dibangkitkan oleh pembangkit polinomial dapat pula berfungsi untuk mengoreksi galat pada bit pesan. Adapun untuk mengoreksi k bit pesan (bit data) diperlukan mt bit paritas :

  m

  2 > n + 1, k = n – mt (2.6) Sandi BCH adalah jenis dari sandi blok karena informasinya dipisah atau dibagi menjadi blok-blok dengan panjang (n) yang telah ditetapkan dan setiap blok disandikan terpisah dan disandi ulang secara bebas untuk blok-blok yang lainnya. 4 II.1.1 Galois Field GF(2 )

  Field

  adalah sebuah letak dari elemen - elemen yang didalamnya dapat dilakukan penjumlahan, pengurangan, perkalian, dan pembagian. Penjumlahan dan perkalian yang dilakukan haruslah memenuhi hukum-hukum asosiatif, komutatif, dan distributif..

  m

  Pada Galois Field (2 ), jika diketahui m = 4 maka primitive polynomial nya

  4

  p x x x

  adalah ( ) 1 (table dari Primitive Polynomial dapat dilihat pada Lamp.

  =

  4

  4 p

  1.1). Dengan menetapkan 1 diperoleh nilai 1 .

  ( ) α α α = α = α + + + =

  4

  4 Dengan menggunakan data ini dapat dibangun GF(2 ). Tabel GF(2 ) dapat dilihat pada tabel 1.

  4 Tabel 1. Representasi untuk elemen – elemen dari GF(2 )

  Representasi Pangkat Representasi Polinomial Representasi 4-Tuple (0 0 0 0)

  1 1 (1 0 0 0) (0 1 0 0)

  α α

  2

  

2

  (0 0 1 0)

  α α

  3

  

3

  (0 0 0 1)

  α α

  4

α

  • +

    1 (1 1 0 0)

  α

  5

  2

  (0 1 1 0)

  α α + α

  6

  2

  3

  (0 0 1 1)

  α α + α

  7

  3

  (1 1 0 1)

  α

  • 1 α + α

  8

  2

  (1 0 1 0)

  α α

  • 1

  9

  3

  (0 1 0 1)

  α α + α

  10

  2

  (1 1 1 0)

  α

  • 1 α + α

  11

  

2

  3

  (0 1 1 1)

  α α α + + α

  12

  2

  3

  (1 1 1 1)

  α α α

  1 α

  

2

  3

  (1 0 1 1)

  1

  α α + α

  • 13

  14

  3

  (1 0 0 1)

  α

  1 α Untuk perkalian dua elemen dan , diperoleh dengan menjumlahkan

  • i j

  α α

  15

  eksponennya dan menggunakan fakta bahwa α = i j 1 . Untuk pembagian j

  , diperoleh dengan menggunakan perkalian dengan

  α dengan α i i α 15 − multiplicative inverse .

  α dari α

II.1.2 Generator Polinomial

  Generator polinomial bisa dibangun untuk menghasilkan sandi-sandi dengan kemampuan koreksi galat yang lebih besar. Jelasnya sandi ini mampu

  m mengoreksi beberapa kombinasi t galat atau kurang dalam digit blok n = 2 -1.

  Misalkan adalah elemen dalam GF(2). Generator polinomial g(x) dengan

  α m

  panjang 2 -1 adalah polinomial dengan pangkat terendah (LCM : Least Common

  2 3 2t

Multiple ) pada GF(2)yang mempunyai , , , …, sebagai akar-akarnya.

  α α α α

  Generator polinomial ditulis sebagai g(x) = (x + )(x + )…(x + ) (2.7)

  α 1 α 2 α r

  Dapat dilihat bahwa g(x) ditetapkan oleh akar pangkatnya. Minimal polinomial dari elemen field (X) adalah polinomial biner dari pangkat terkecil yang

  φ i

  memiliki sebagai akar. Oleh karena itu, pembangkit polinomial dapat

  φ i

  didefinisikan sebagai

  g

  X LCM x

  X X

  ( ) φ ( ), φ ( ), , φ ( ) (2.8)

  = { Λ }

  1

  2 2 t

  jika i adalah bilangan bulat genap, maka hal ini dapat diekspresikan sebagai perkalian dengan bentuk berikut :

  ' l i i

  2 , (2.9)

  = i i ' l

  2

  dengan i’ adalah bilangan ganjil dan l ≥ 1. Maka ( ) adalah konjugasi i i i ' ' α = α dari α dan oleh karena itu α dan α mempunyai minimal polinomial yang sama, yaitu :

  (

  X ) ( X ) . (2.10) φ = φ i i '

  Karena itu, setiap pangkat genap dari dalam urutan (2.8) mempunyai minimal

  α

  polinomial yang sama seperti pangkat ganjil pada urutan. Sebagai hasilnya, generator polinomial g(X) dari sandi BCH dengan kemampuan koreksi t galat

  m

  dengan panjang 2 -1 dapat diturunkan menjadi

  g ( X ) LCM ( X ), ( X ), , ( X ) . (2.11)

= φ φ Λ φ

  { t }

  1

  3 2 −

  1 Sepanjang pangkat dari setiap minimal polinomial adalah m atau kurang, pangkat

  dari g(X) lebih banyak dari mt. maka dari itu, urutan digit cek paritas, n-k, dari sandi-sandi adalah lebih besar atau sama dengan mt.

  Dengan demikian, diketahui cara untuk membangun suatu generator polynomial adalah sebagai berikut :

  m 1. Pilih prime polynomial dari derajat m dan bangun GF(q ). i 2. Temukan (X), minimal polinomial dari untuk i = 1,…, 2t.

  φ i α

  3. g (

  X ) LCM ( X ), (

X ), , (

X ) = { φ φ Λ φ }

  1

  3 2 t

  1 −

II.2 Penyandian Sandi BCH

  Penyandian sandi BCH berfungsi untuk menghasilkan polinomial kata sandi yang didalamnya berisi bit-bit paritas dan bit-bit pesan. Proses penyandian sandi BCH pada bahasan ini adalah menggunakan register geser, tetapi ada baiknya mengetahui dulu proses penyandian secara sistematis, karena nantinya juga akan dipergunakan.

  Dalam penyandian sebuah sandi BCH (n,k) dalam bentuk sistematis terdiri atas tahap-tahap berikut: n-k

  1. Mengalikan pesan polinomial u(X) dengan X n-k n-k n-k+1 n-1

  X = u X + u X + … + u

  X

  u(X) n-k 1 k-1

  2. Membagi X u(X) dengan g(X) hingga diperoleh sisa hasil bagi r(X) n-k n-k

  2 n-k-1

  Dengan r(X) = r + r X + r 1 2 n-k-1 X + … + r

  X n- k

  3. Menjumlahkan sisa hasil bagi r(X) dengan X u(X) sehingga terbentuk polinomial kata sandi yang sesuai vektor sandi C n-k C(X) = r(X) + X u(X)

  2 n-k-1 n-k n-k+1 n-1

  = r + r X + r X + … + r X + u X + u X + … + u

  X

  1 2 n-k-1 1 k-1

  hingga terbentuk C = ( r r … , r u , u , … , u

  0 , 1 , n-k-1 , 1 k-1 ) (n-k) bit paritas k bit pesan

II.2.1 Penyandian Sistematis Sandi BCH dengan Register Geser

  Pada penyandian ini masih menggunakan bentuk sistematis dari sandi

  n-k

  BCH yang melibatkan perhitungan bit paritas sebagai hasil dari X u(X) modulo g(X). Pergeseran hanya untuk memberikan tempat kepada bit paritas yang ditambahkan pada bit pesan, untuk menghasilkan vektor sandi dalam bentuk yang sistematis.

  Polinomial paritas adalah sisa setelah dibagi dengan polinomial pembangkit, dan tersedia didalam register setelah pergeseran ke-n pada register umpan balik (n-k) tingkat seperti pada gambar 2.2. Untuk n-k pergeseran pertama hanya mengisi register dan tidak diperoleh umpan balik, sampai tingkat paling kanan terisi. Siklus pergeseran dapat di perpendek dengan memberikan data input ke output tingkat terahkir seperti pada gambar 1. Umpan balik yang diberikan ke tingkat paling kiri adalah jumlah dari input dan tingkat paling kanan. Penjumlahan ini dihasilkan dengan g = g = 1 untuk setiap polinomial pembangkit g(X).

  n-k Sambungan umpan balik rangkaian berhubungan dengan koefisien dari polinomial pembangkit, yang dapat ditulis :

  

2 n-k-1 n-k

  g(X) = 1 + g

  X + g X + … + g

  X + X (2.11)

  1 2 n-k-1

  Berikut ini mengenai tahap-tahap dalam prosedur penyandian yang menggunakan register geser pada: 1) Saklar 1 tertutup selama k pergeseran pertama, agar bit-bit pesan dapat terkirim ke register geser penyandian n-k tingkat.

  2) Saklar 2 pada posisi ke bawah, agar bit-bit pesan terkirim langsung ke register output selama k pergeseran pertama.

  3) Setelah pengiriman bit pesan ke-k, saklar 1 terbuka dan saklar 2 berpindah ke posisi atas.

  4) n-k pergeseran yang tersisa membersihkan register penyandi dengan memindah bit-bit paritas ke register output.

  5) Jumlah total pergeseran sama dengan n, dan isi dari register output n-k adalah polinomial kata sandi r(X) + X u(X)

  Gambar 2.2 Rangkaian Penyandian untuk sandi siklis (n,k) dengan Generator

polinomial

  II.3 Pengawasandian Sandi BCH

  Dari gambar 2.3, dapat dijelaskan dengan singkat bagaimana proses Pengawasandian tersebut berlangsung. Data yang keluar dari hasil penyandian yang kemudian ditransmisikan tentunya akan mendapatkan galat selama proses pengiriman datanya, data ini akan diterima oleh rangkaian pengawasandi untuk memperbaiki galat tersebut. Pertama tama data yang diterima oleh pengawasandi akan diproses dengan perhitungan Sindrom galat (Syndrome Error) sehingga diketahui ada atau tidaknya error dalam data tersebut, selanjutnya data akan diproses pada rangkaian Error Locator Polynomial (ELP) dengan menggunakan algoritma Berlekemp. Setelah lokasi galat ditemukan proses diteruskan dengan memperbaiki galat dengan prosedur Chien,s.

  Gambar 2.3

  Blok diagram Pengawasandi secara umum

  II.3.1 Sindrom Galat

  Langkah pertama didalam proses Pengawasandian pada sandi BCH adalah menghitung komponen-komponen sindrom 2t yaitu S , S , , S . Komponen

  Λ

  1

  2 2 t

  • = =

1 R R R R R S

  dan 1.Untuk single error, e(X) berasal dari X

  2

  • … + S

  2t

  x

  2t .

  Dalam pendeteksian dan pengoreksian suatu vektor sandi yang diterima mengalami galat atau tidak maka dari pihak penerima data dapat mendesain generator polinomialnya karena mungkin dalam proses pengiriman data generator polinomial tersebut tidak diikut sertakan dalam pengiriman. Berikut ini ada beberapa pola rancangan untuk mendesain generator polinomialnya:

  g(X) berisi paling sedikit dua syarat yaitu X

  n

  dan g(X) tidak dapat dibagi dengan e(X) tanpa remainder.

  i

  2. Galat Ganda (All double error) Untuk 2 buah error, digunakan pola e(X) = X

  i

  j

  untuk n -1>i>j>0 sehingga e(X) = X

  j

  (X

  i-j

  x

  2

  x + S

  1

  Sindrom ini dapat diperoleh dengan mensubstitusikan elemen t

  2

  2

  , , ,

  α α α Λ

  ke pesan polinomial yang diterima R(x). Pensubstitusian ) ( ke x R i

  α

  didapat dengan cara :

  ( ) ( ) ( )

  1

  2

  2

  1

  i n

i

n n i n i i

  − − − −

  α α α α Λ

  Sindrom polinomial dapat dibentuk dari hasil sindrom 2t. Polinomial memiliki semua sindrom-sindrom seperti koefisien-koefisien dan mengikuti : S(x) = S

II.3.2 Koreksi galat

1. Galat Tunggal (Single Error)

  • X
  • 1). Sedangkan g(X) tidak harus dibagi dengan
Xp+1, untuk beberapa p sampai dengan n-1. Dapat dikatakan bahwa untuk double eror syaratnya bahwa g(X) terdiri dari 3 bit atau kurang.

  3. Galat Genap e(X) = (X+1)g(X)q(X), yang berarti bahwa q(X) adalah hasil dari pembagian (tanpa remainder). Apabila diperoleh hasil bahwa X=1, tepat pada sisi kiri suatu nomer genap, sehingga penjumlahan mod-2 adalah 1.

  Pada sisi kanan, (X+1) akan selalu diberi nilai 0. Dimaksudkan untuk

  error genap rancangan generatornya berisi (X+1) 4. Galat Penuh (burst) dengan panjang < n dan error burst yang besar.

  Untuk error burst dengan jarak p < n, e(X) adalah urutan dari

  m m-p+1 p-1

  X +...+X (X +...+1) tetapi bukan g(X) dengan pangkat n yang tidak dapat dibagi tanpa remainder.

  Ketika galat ditambahkan ke kata sandi atau code word oleh chanel, kita dapat menulis polinomial yang diterima sebagai jumlah dari penyandian sandi polinomial dan sebuah polinomial galat. Itu adalah R(x) = C(x) + e(x), C(x) adalah vektor sandi yang dikirim dan e(x) adalah galat yang dimasukkan oleh

  j

  chanel. Jika kita menilai R( ) dimana j rentang pada pangkat urutan akar 2t dari

  α j j j

  , kita tahu bahwa C( ) = 0 oleh batasan BCH, oleh karena itu R( ) = e( ),

  α α α α

  yang mana akan memberikan lokasi dari error tersebut. Semua perhitungan dari

  j m sindrom R( ), 1 ≤ j ≤ 2t, adalah dihitung pada GF(2 ).

  α

  Sekarang kita dapat menjalankan Algoritma Berlekemp yang mencoba untuk menemukan sebuah solusi lokasi galat polinomial dengan mengikuti :

  • =

  2

  ; dan k k

  d x T x

  ) ( ) (

  ) 1 ( −

  = σ

  Set : ) ( ) ( x T x x T

  ⋅ =

  7. Jika

  t k

  <

  6. Set : L k L

  , kerjakan langkah ke-2

  8. Hasil akar-akar dari ) ( ) (

  )

2 (

x x

t

  σ σ =

  Setelah lokasi galat polynomial (ELP) ditemukan dilanjutkan dengan prosedur chien’s untuk mencari akar – akar dari ELP tersebut.

  Langkah pertama chien’s search adalah memerlukan perkalian t untuk mengalikannya dengan t

  2

  2

  , , ,

  α α α Λ

  − =

  2 , kerjakan langkah ke-7

  Berlekamp’s binary BCH decoding Algorithm:

  = − −

  1. Inisialisasi nilai awal : ( 1 )

  ) ( = x

  σ = k

  = L x x T

  =

  ) (

  2. Set

  1

  k k , hitung : ∑

  − = L i k k i k k S S d

  L k

  1

  1 ) 1 (

  σ

  3. Jika

  = k d kerjakan langkah ke-7

  4. Hitung : ) ( ) ( ) (

  ) ( 1 ) T x d x x

k

k k

  ⋅ − = −

  σ σ

  5. Jika

  . Langkah kedua adalah menginisialisasi

  , , kemudian dimasukkan ke register. Perkalian ini memerlukan

  Λ σ σ σ t

  1

  2

  pergeseran n-kali. Pada akhir pergeseran ke-l register akan berisi l l tl

  2

  , , , . Kemudian akan dijumlahkan dengan1, menjadi

  σ α σ α Λ σ α

  1 l 2 t 2 l tl n l

  1 , , , . Jika hasil penjumlahan adalah 0, maka adalah

  σ α σ α Λ σ α α +

  1 2 t n l

  lokasi galatnya. Jika sebaliknya, maka bukanlah lokasi galat. Proses

  α

  perbaikan galat dilakukan dengan me-NOT kan data pada lokasi galat yang ditemukan sehingga hasilnya adalah kebalikan (inverse) dari data tersebut.