Realisasi Error-Correcting BCH Code Menggunakan Perangkat Enkoder Berbasis ATMega8535 dan Dekoder Menggunakan Program Delphi.

(1)

REALISASI ERROR-CORRECTING BCH CODE MENGGUNAKAN PERANGKAT ENKODER BERBASIS ATMEGA8535 DAN DEKODER

MENGGUNAKAN PROGRAM DELPHI

Disusun Oleh : Reshandaru Puri Pambudi

0522038

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jl. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia

Email : [email protected]

ABSTRAK

Error-correcting Code adalah suatu cara pintar untuk mendeteksi dan

mengkoreksi suatu error pada sistem komunikasi digital, berkat perkembangan teknologi komunikasi, pengkoreksian error menjadi lebih mudah dengan berbagai macam metode, salah satunya dengan kode BCH dalam mencari letak bit error yang berjumlah banyak (multiple error).

Gelombang informasi berupa sinyal digital dikirimkan oleh transmitter lalu sinyal tersebut diubah ke dalam bentuk biner dengan encoder dan melewati kanal, pada perancangan perangkat dengan menggunakan ATMEGA8535, bit-bit yang melewati kanal inilah yang akan diolah dan diberi error agar dapat dideteksi letak bit error yang terjadi dan mengkoreksi bit-bit error tersebut agar menjadi sama dengan sinyal informasinya.

Dari hasil analisa menunjukkan bahwa teknik error-correcting code mampu mendeteksi dan mengkoreksi bit pesan yang terkena error dikarenakan adanya proses decoding. Dengan kode BCH, maka pendeteksian dan pengkoreksian error menjadi lebih baik karena dapat mendeteksi beberapa kesalahan atau multiple error.


(2)

REALIZATION OF THE ERROR-CORRECTING BCH CODES USING ATMEGA8535 BASED ENCODER AND

DELPHI PROGRAM BASED DECODER

Composed by : Reshandaru Puri Pambudi

0522038

Department of Electrical Engineering, Faculty of Techniques, Maranatha Christian University

Jalan Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia Email : [email protected]

ABSTRACT

Error correcting code is a smart way to detect and correct a error in a digital communication system. Because of the development of communication technology, correcting the error becomes easier with a variety of method, one of the method is by BCH code technique, in searching for location of a large number of bit error (multiple error).

The wave information in the form of digital signals transmitted by the transmitter and the signal is converted into a binary form with encoder and through in channel, in the design of devices with using ATMEGA8535, these bits are stores in this channel was the one which will give in though and the error that can be detected where lies the error that occurred and correcting the error bits to be equal to the signal information.

From the result of data analysis shows that error correcting code is able to detect and correct of bit massages which are getting error due to decoding process. With BCH code, detection and correction of error getting better because it can detect some errors or multiple errors.


(3)

DAFTAR ISI

ABSTRAK……… i

ABSTRACT………...……….. ii

KATA PENGANTAR………..…………... iii

DAFTAR ISI………..………... v

DAFTAR TABEL………..……….. viii

DAFTAR GAMBAR………..………. ix

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah………. 1

1.2 Identifikasi Masalah……….... 1

1.3 Tujuan………. 2

1.4 Pembatasan Masalah………... 2

1.5 Sistematika Penulisan……….. 2

BAB 2 LANDASAN TEORI 2.1 Dasar Aljabar..……….. 4

2.1.1 Group……… 4

2.1.2 Ring……….. 4

2.1.3 Fields……… 5

2.1.5 Primitive Polynomial………. 6

2.1.4 Galois Fields………...……….….………. 7

2.2 Kode Blok Linear………...……….….………. 9

2.2.1 Codeword………...……….….……….... 9

2.2.2 Matriks Parity Checks……… 10

2.2.3 Jarak Minimum………...……….….…… 10

2.3 Kode Siklis………...……….….……….…….… 11

2.3.1 Definisi……….. 11

2.3.2 Teorema………...……….….………... 11

2.4 Kode BCH...……….………….. 12


(4)

2.4.2 Komputasi Sindrom……… 15

2.4.3 Algoritma Decoding untuk t=2 atau kesalahan yang lebih kecil………...……….….…… 17

2.5 Dasar Sistem Digital………...……….….……… 19

2.5.1 Tabel Kebenaran………...……….….….. 19

2.5.2 Gerbang Dasar………...……….….……. 19

2.5.3 D Flip-Flop………...……….….………... 20

2.6 Mikrokontroler AVR ATMEGA8535……… 21

2.6.1 Uraian-uraian Pin……… 24

2.6.2 Clock………... 26

2.6.3 ADC ATMEGA8535………. 27

2.7 Konverter TTL ke RS232 atau Sebaliknya ……… 28

BAB 3 PERANCANGAN DAN REALISASI 3.1 Input……….………..……… 33

3.1.1 Keypad 3x4……… 33

3.1.2 LCD 2x16……….. 34

3.1.3 Power Supply……….. 35

3.2 Proses……….………. 37

BAB 4 PENGUJIAN PERANGKAT DAN HASIL SIMULASI 4.1 Pengukuran Alat………..……….………... 39

4.1.1 Pengukuran Output Power Supply ……..………… 39

4.1.2 Pengukuran Modul RS232 Konverter………. 40

4.2 Pengujian Alat………..……… 40

4.2.1 Pengujian Perangkat Lunak………. 41

4.2.1.1 Pengeditan Program……… 41

4.2.1.2 Compiling Program………. 42

4.2.1.3 Pengisian program ke mikrokontroler……. 42

4.2.2 Pengujian Perangkat Keras……….. 43

4.2.2.1 Pengujian Modul RS232 Konverter………...43


(5)

4.2.2.3 Pengujian Modul LCD………. 44

4.2.2.4 Pengujian Modul Keypad………. 44

4.3 Pengujian Keseluruhan Sistem………. 46

4.3.1 Analisa Data………. 47

4.3.2 Data Pengamatan……….. 49

4.3.3 Hasil Simulasi……… 50

BAB 5 KESIMPULAN DAN SARAN 5.1 Kesimpulan……….………. 53

5.2 Saran……….……… 53

DAFTAR PUSTAKA……….. 54 LAMPIRAN A PROGRAM PADA MIKRO ATMEGA8535


(6)

DAFTAR TABEL

Tabel 2.1 Identintas Penjumlahan……….………..………. 5

Tabel 2.2 Identitas Perkalian ………...… 5

Tabel 2.3 Primitive polynomial pada GF(2) ……… 6

Tabel 2.4 Representasi Elemen GF (24) dengan p(x) = x4+ x + 1……….. 8

Tabel 2.5 Minimal Polynomial elemen pada GF(24) ……… 13

Tabel 2.6 Rincian Minimal Polynomial……… 14

Tabel 2.7 Tabel kebenaran untuk operasi AND dan OR………. 19

Tabel 2.8 Tabel kebenaran D flip flop………. 21

Tabel 3.1 Representasi Elemen GF (24) dengan p(x) = x4+ x + 1………... 30

Tabel 4.1 Hasil pengukuran catu daya +5VDC……… 39

Tabel 4.2 Hasil pengukuran RS232 Converter………. 40

Tabel 4.3 Modul pengujian mikrokontroler……….. 44

Tabel 4.4 Pengujian modul keypad……….. 45

Tabel 4.5 Representatif GF(24) dengan p(x) = x4+ x + 1………. 47

Tabel 4.6 Pengamatan sampel data dengan t=2……… 50


(7)

DAFTAR GAMBAR

Gambar 2.1 Model sistem pengkodean komunikasi digital……….. 3

Gambar 2.2 Blok encoding……… 9

Gambar 2.3 Gerbang dasar……… 20

Gambar 2.4 Rangkaian D flip flop……… 21

Gambar 2.5 Blok Diagram ATMEGA8535………... 23

Gambar 2.6 Konfigurasi pin ATMEGA8535……… 24

Gambar 2.7 Clock eksternal……… 26

Gambar 2.8 Blok Diagram Analog to Digital……… 28

Gambar 2.9 Konfigurasi pin ICL232………. 29

Gambar 3.1 Blok Diagram Perancangan error-correcting code BCH….. 31

Gambar 3.2 Rangkaian skematik error-correcting code BCH………….. 32

Gambar 3.3 Konfigurasi Keypad 3x4 to ATMega8535………. 33

Gambar 3.4 Rangkaian mikrokontroler to LCD 2x16……… 34

Gambar 3.5 ICL232 converter to PC………. 35

Gambar 3.6 Rangkaian Catu Daya………. 35

Gambar 3.7 Diagram alir input kode BCH………. 36

Gambar 3.8 Diagram alir proses error-correcting BCH code……… 38

Gambar 4.1 Pengeditan program……… 41

Gambar 4.2 Proses compiling……… 42

Gambar 4.3 Tampilan program downloader PonyProg………. 42

Gambar 4.4 Matriks keypad 3x4……… 45

Gambar 4.5 Tampilan awal program kode BCH……… 46

Gambar 4.6 Tampilan data sampel d(x) = 0110110 dengan error t=2…….50

Gambar 4.7 Tampilan pengujian data dengan dua kesalahan……… 51


(8)

LAMPIRAN A

Program Mikrokontroler $regfile = "8535def.dat" $crystal = 11059200 $baud = 9600

Dim Keypad As Byte Dim Datakeypad As Byte Dim Databit As String * 15 Dim Dataword As Word Dim Jumdata As Byte

Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6

Config Lcd = 16 * 2

Config Kbd = Portc , Debounce = 200 Cursor Off Noblink

Cls Wait 1 Cls

Rem 1111111111111111 Lcd " TUGAS AKHIR" Wait 1

Lowerline

Lcd " RESHANDARU" Wait 2

Cls

Databit = "" Jumdata = 0 Lcd "Data = " Do


(9)

If Keypad < 16 Then

Datakeypad = Lookup(keypad , Tabel) Cls

Jumdata = Jumdata + 1

Databit = Databit + Chr(datakeypad) Lcd "Data = "

Lcd Databit Waitms 500

If Jumdata = 3 Then

Databit = Databit + chr(13) Print Databit

Jumdata = 0 Databit = "" Lowerline

Lcd " KIRIM DATA" Wait 2

Cls

Lcd "Data = " End If

End If Loop End Tabel:

Data &H31 , &H34 , &H37 , &H2A , &H32 , &H35 , &H38 , &H30 , &H33 , &H36 , &H39 , &H23 , &H41 , &H42 , &H43 , &H44


(10)

LAMPIRAN B

Program Delphi

unit Unit1; interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, QCCom32, Buttons;

type

TForm1 = class(TForm) Pdatamasuk: TPanel; Label1: TLabel; Label2: TLabel;

Pdatamasukerror: TPanel; Timer1: TTimer;

com: TQCCom32; Label3: TLabel;

Pdataterkoreksi: TPanel; BitBtn1: TBitBtn; Label4: TLabel;

GroupBox1: TGroupBox; RadioButton2: TRadioButton; RadioButton3: TRadioButton; Label5: TLabel;

ps1: TPanel; ps3: TPanel; Label6: TLabel; Label7: TLabel;

procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject);

procedure RadioButton1Click(Sender: TObject); procedure RadioButton2Click(Sender: TObject); procedure RadioButton3Click(Sender: TObject);


(11)

procedure modulo; procedure tertinggi;

procedure kosongkanbuffer; procedure berierror;

procedure tabelbinertoalfa; procedure tabelalfatobiner;

procedure tabelbinernormaltoalfa; private

{ Private declarations } public

{ Public declarations } end;

var

Form1: TForm1; posisi:byte; ketemu:boolean;

data:array[0..14] of byte; dibagi:array[0..14] of byte; hasil:array[0..14] of byte; sisa:array[0..14] of byte; hasilXor:array[0..14] of byte; dataterkoreksi:array[0..14] of byte;

x,xsisa,xhasil,xpembagi,xdibagi,posisitambah,posisiXor,posisiT:byte; M1,M3,dataSTR,S1STR,S3STR:string;

datars232,datamasuk,datamasukerror,dataterkoreksi:string; s_in:byte;

code,ts,clock:integer;

m1_x,m3_x,s1_x,s3_x:integer; kpk:integer;

jumerror,posrandom,poserror1,poserror2,jum:integer; total,binerdata,dataambil:string;

Cx,Gx,Vx,tupple:string;

A,A1,A2,A3,A23,BitPos1,BitPos2:byte;


(12)

implementation {$R *.dfm}

procedure tform1.tabelbinernormaltoalfa; begin

if bineralfa=0 then A:=0; if bineralfa=1 then A:=1; if bineralfa=2 then A:=1; if bineralfa=3 then A:=4; if bineralfa=4 then A:=2; if bineralfa=5 then A:=8; if bineralfa=6 then A:=5; if bineralfa=7 then A:=10; if bineralfa=8 then A:=3; if bineralfa=9 then A:=14; if bineralfa=10 then A:=9; if bineralfa=11 then A:=7; if bineralfa=12 then A:=6; if bineralfa=13 then A:=13; if bineralfa=14 then A:=11; if bineralfa=15 then A:=12; end;

procedure tform1.tabelbinertoalfa; begin

if tupple='0001' then A:=0; if tupple='0010' then A:=1; if tupple='0100' then A:=2; if tupple='1000' then A:=3; if tupple='0011' then A:=4; if tupple='0110' then A:=5; if tupple='1100' then A:=6; if tupple='1011' then A:=7; if tupple='0101' then A:=8; if tupple='1010' then A:=9; if tupple='0111' then A:=10;


(13)

if tupple='1110' then A:=11; if tupple='1111' then A:=12; if tupple='1101' then A:=13; if tupple='1001' then A:=14; end;

procedure tform1.tabelalfatobiner; begin

if A=0 then begin

tupple:='0001'; bineralfa:=0; end;

if A=1 then begin

tupple:='0010'; bineralfa:=2; end;

if A=2 then begin

tupple:='0100'; bineralfa:=4; end;

if A=3 then begin

tupple:='1000'; bineralfa:=8; end;

if A=4 then begin

tupple:='0011'; bineralfa:=3; end;

if A=5 then begin

tupple:='0110'; bineralfa:=6; end;


(14)

if A=6 then begin

tupple:='1100'; bineralfa:=12; end;

if A=7 then begin

tupple:='1011'; bineralfa:=11; end;

if A=8 then begin

tupple:='0101'; bineralfa:=5; end;

if A=9 then begin

tupple:='1010'; bineralfa:=10; end;

if A=10 then begin

tupple:='0111'; bineralfa:=7; end;

if A=11 then begin

tupple:='1110'; bineralfa:=14; end;

if A=12 then begin

tupple:='1111'; bineralfa:=15; end;


(15)

if A=13 then begin

tupple:='1101'; bineralfa:=13; end;

if A=14 then begin

tupple:='1001'; bineralfa:=9; end;

end;

procedure tform1.berierror; begin

if jumerror=1 then begin

repeat

posrandom:=random(15);

if posrandom=0 then posrandom:=random(15); until posrandom<>0;

poserror1:=posrandom; datamasukerror:=''; for jum:=1 to 15 do begin

ketemu:=false;

dataambil:=copy(datamasuk,jum,1); if jum<>poserror1 then

begin

datamasukerror:=datamasukerror+dataambil; end;

if jum=poserror1 then begin

if dataambil='1' then begin

dataambil:='0';


(16)

ketemu:=true; end;

if (dataambil='0') and not ketemu then begin

dataambil:='1';

datamasukerror:=datamasukerror+dataambil; end;

end;

pdatamasukerror.caption:=datamasukerror;

end; end;

if jumerror=2 then begin

repeat

posrandom:=random(15);

if posrandom=0 then posrandom:=random(15); until posrandom<>0;

poserror1:=posrandom; repeat

posrandom:=random(15);

if posrandom=0 then posrandom:=random(15); until (posrandom<>0) and (posrandom<>poserror1); poserror2:=posrandom;

datamasukerror:=''; for jum:=1 to 15 do begin

ketemu:=false;

dataambil:=copy(datamasuk,jum,1);

if (jum<>poserror1) and (jum<>poserror2) then begin

datamasukerror:=datamasukerror+dataambil; end;


(17)

begin

if dataambil='1' then begin

dataambil:='0';

datamasukerror:=datamasukerror+dataambil; ketemu:=true;

end;

if (dataambil='0') and not ketemu then begin

dataambil:='1';

datamasukerror:=datamasukerror+dataambil; end;

end; end;

pdatamasukerror.caption:=datamasukerror;

end; end;

procedure tform1.kosongkanbuffer; begin

for posisi:=0 to 14 do begin

data[posisi]:=0; dibagi[posisi]:=0; hasil[posisi]:=0; sisa[posisi]:=0; hasilXor[posisi]:=0;

end; end;

procedure tform1.tertinggi; begin

{pencarian dibagi tertinggi} ketemu:=false;


(18)

for posisi:=14 downto 0 do begin

if (dibagi[posisi]=1) and not ketemu then begin

Xdibagi:=posisi; ketemu:=true; end;

end; end;

procedure tform1.modulo; begin

For posisi:=14 downto 0 do begin

if data[posisi]=1 then begin

Xpembagi:=posisi;

if Xpembagi>=Xdibagi then begin

Xhasil:=Xpembagi-Xdibagi; Hasil[Xhasil]:=1;

for x:=0 to 14 do sisa[x]:=0; for posisitambah:=14 downto 0 do begin

if dibagi[posisitambah]=1 then begin

Xsisa:=Xhasil+posisitambah; Sisa[xsisa]:=1;

end; end;

for posisiXor:=14 downto 0 do begin


(19)

data[posisiXor]:=hasilXor[posisiXor]; end;

end;

end; {data[posisi]=1 } end;

end;

procedure TForm1.Timer1Timer(Sender: TObject); begin

{---Baca Data dari COM komputer---} datars232:=com.read;

if length(datars232)>1 then begin

kosongkanbuffer;

datars232:=copy(datars232,1,3); {caption:=datars232;}

Total:='';

val(datars232,X,code); repeat

Total:=inttostr(X mod 2)+Total; X:=X div 2;

until X=0;

if length(total)=7 then datamasuk:=total; if length(total)=6 then datamasuk:='0'+total; if length(total)=5 then datamasuk:='00'+total; if length(total)=4 then datamasuk:='000'+total; if length(total)=3 then datamasuk:='0000'+total; if length(total)=2 then datamasuk:='00000'+total; if length(total)=1 then datamasuk:='000000'+total; Cx:=datamasuk+'00000000';


(20)

For x:=14 downto 0 do begin

if copy(Cx,15-x,1)='1' then Data[x]:=1 else Data[x]:=0; if copy(Gx,15-x,1)='1' then Dibagi[x]:=1 else Dibagi[x]:=0; end;

Tertinggi; Modulo; Modulo; dataSTR:='';

for x:=14 downto 0 do begin

dataSTR:=dataSTR+inttostr(data[x]); end;

Vx:=datamasuk+copy(dataSTR,8,8); datamasuk:=Vx;

pdatamasuk.caption:=Vx; Berierror;

{--- Pencarian Sindrom S1 ---} pdatamasukerror.Caption:=datamasukerror; Kosongkanbuffer;

Vx:=pdatamasukerror.caption; M1:='000000000010011'; M3:='000000000011111'; For x:=14 downto 0 do begin

if copy(Vx,15-x,1)='1' then Data[x]:=1 else Data[x]:=0; if copy(M1,15-x,1)='1' then Dibagi[x]:=1 else Dibagi[x]:=0; end;

Tertinggi; Modulo; dataSTR:='';


(21)

begin

dataSTR:=dataSTR+inttostr(data[x]); end;

S1STR:=copy(dataSTR,12,4); Ps1.caption:=S1STR;

{--- Pencarian Sindrom S3 ---} Kosongkanbuffer;

Vx:=pdatamasukerror.caption; M1:='000000000010011'; M3:='000000000011111'; For x:=14 downto 0 do begin

if copy(Vx,15-x,1)='1' then Data[x]:=1 else Data[x]:=0; if copy(M3,15-x,1)='1' then Dibagi[x]:=1 else Dibagi[x]:=0; end;

Tertinggi; Modulo; dataSTR:='';

for x:=14 downto 0 do begin

dataSTR:=dataSTR+inttostr(data[x]); end;

S3STR:=copy(dataSTR,12,4); Ps3.caption:=S3STR;

if jumerror=1 then begin

tupple:=S1STR; tabelbinertoalfa; B1:=A;


(22)

S3B3:=0; S3B2:=0; S3B1:=0; S3B0:=0;

if jumerror=2 then begin

{=---} tupple:=S1STR; tabelbinertoalfa; S1alfa:=A; S3B3:=0; S3B2:=0; S3B1:=0; S3B0:=0;

if copy(S3STR,1,1)='1' then S3B3:=9; if copy(S3STR,2,1)='1' then S3B2:=6; if copy(S3STR,3,1)='1' then S3B1:=3; if copy(S3STR,4,1)='1' then S3B0:=1; A:=S3B3;

tabelalfatobiner; S3B3:=bineralfa; A:=S3B2;

tabelalfatobiner; S3B2:=bineralfa; A:=S3B1;

tabelalfatobiner; S3B1:=bineralfa; S3alfa:=S3B3 + S3B2; S3alfa:=S3alfa + S3B1; bineralfa:=S3alfa and $0F;


(23)

tabelbinernormaltoalfa; S3alfa:=A;

{---error locator---} A1:=S1alfa;

A2:=S1alfa*2; A3:=S3alfa-A1; A:=A2;

tabelalfatobiner; A2:=bineralfa; A:=A3;

tabelalfatobiner; A23:=bineralfa; A23:=A23 xor A2; bineralfa:=A23 and $0F; A:=bineralfa;

tabelalfatobiner; {--- Koreksi data ---} for x:=14 downto 0 do begin

if poserror1=x then

dataterkoreksi[x]:=datamasukrror XOR B1; if poserror2=x then

dataterkoreksi[x]:=datamasukrror XOR B2; pdataterkoreksi.caption:=dataterkoreksi; end;

end; end;

procedure TForm1.FormCreate(Sender: TObject); begin

com.pick; datamasuk:= '';


(24)

datamasukerror:='';

pdatamasuk.caption:= ''; pdatamasukerror.caption:=''; ps1.caption:= ''; ps3.caption:= ''; jumerror:=0;

end;

procedure TForm1.RadioButton1Click(Sender: TObject); begin

jumerror:=0; end;

procedure TForm1.RadioButton2Click(Sender: TObject); begin

jumerror:=1; end;

procedure TForm1.RadioButton3Click(Sender: TObject); begin

jumerror:=2; end;


(25)

BAB I

PENDAHULUAN

1.1 LATAR BELAKANG

Dalam sistem komunikasi, kanal (saluran transmisi) digital sangat rentan dipengaruhi oleh noise, distorsi, dan interferensi, sehingga output kanal akan berbeda dari input kanalnya, karena adanya kesalahan (error). Jadi, dibutuhkan teknik pengkodean untuk mengatasi hal tersebut. Dalam sistem komunikasi, banyak digunakan metode pengkodean untuk mengirimkan data agar diperoleh kemampuan yang sangat andal dalam mengkoreksi kesalahan transmisi sehingga memperoleh hasil yang maksimal. Error-correcting code (atau pengkodean) adalah cara pintar yang mewakili sistem sehingga dapat memperbaiki data yang terkena error agar sesuai dengan data aslinya. Salah satu teknik untuk mengkoreksi data adalah kode BCH. Asal kata dari Kode BCH berasal dari nama penemunya yaitu Bose, Ray-Chaudhuri, dan Hocquenghem, yang diterbitkan pada tahun 1959 dan 1960. Kode BCH adalah salah satu metoda yang menyusun suatu blok kode linier yang dapat diimplementasikan untuk sistem komunikasi dengan blok kode yang panjang dengan jumlah codeword yang besar. Dengan menggunakan kode BCH, data yang dikirimkan dapat diterima secara akurat. Teori dan praktek yang dibahas adalah mengenai perlindungan informasi digital terhadap error yang terjadi selama transmisi data atau penyimpanan dalam bentuk perangkat kerasnya agar dapat mengetahui dimana letak error nya.

1.2 PERUMUSAN MASALAH

1. Bagaimana membuat perangkat keras error-correcting code untuk melihat dan mengkoreksi kesalahan bit?

2. Bagaimana proses serta hasil pengiriman data apabila diberi error? 3. Bagaimana mengetahui letak bit error di dalam satu blok kode linier?


(26)

BAB I PENDAHULUAN 2

Universitas Kristen Maranatha 1.3 TUJUAN

Mendesain perangkat untuk mendemonstrasikan alat error-correcting

BCH code.

Mendeteksi dan memperbaiki data yang terkena error.

1.4 PEMBATASAN MASALAH

Batasan masalah pada Tugas Akhir ini meliputi:

Kode yang digunakan untuk memperbaiki error adalah kode BCH.

Error(t) dibatasi maksimal 2 bit karena mempunyai panjang kode 15 bit

dan panjang data 7 bit. 1.5 SISTEMATIKA PENULISAN

Sistematika penulisan Tugas Akhir ini dapat diuraikan sebagai berikut :

 BAB I : membahas mengenai latar belakang, Perumusan masalah, tujuan, pembatasan masalah, dan sistematika penulisan Tugas Akhir.

 BAB II : membahas mengenai teori dasar yang menguraikan dasar sistematis untuk dasar blok linier dan kode BCH, dan juga membahas mengenai dasar perancangan sistem digital.

 BAB III : membahas mengenai perancangan perangkat yang akan dibuat serta membahas algoritma kode BCH yaitu pada bagian generator, error, dan proses encoding decoding.

 BAB IV : membahas hasil perancangan kode BCH dalam perangkat keras dan mendemonstrasikan hasilnya bila diberi bit error .

 BAB V : berisi kesimpulan dan saran yang diperoleh dari pengerjaan Tugas Akhir ini.


(27)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Dalam pembuatan tugas akhir ini, penulis mendapatkan beberapa kesimpulan, antara lain:

1. Sistem pendeteksian dan pengkoreksian dengan menggunakan kode BCH berhasil dirancang dan direalisasikan ke dalam perangkat keras yang menggunakan ATMEGA8535, dan berjalan dengan baik sesuai dengan teori dasar pengkodean.

2. Dari hasil analisa data menunjukkan bahwa teknik error-correcting code mampu mendeteksi dan mengkoreksi bit pesan yang terkena error karena adanya proses decoding.

5.2 Saran

Berikut adalah saran-saran penulis untuk siapa saja yang ingin merevisi dan mengembangkan sistem ini.

1. Dapat dikembangkan dengan menggunakan 2 sampai 4 chip mikrokontroler agar dapat memperlebar panjang kode dan panjang data. Dapat juga dikembangkan dengan menambahkan jumlah error menjadi lebih dari 2 kesalahan.

2. Metode lain yang digunakan untuk merealisasi perangkat ini ialah dengan metode Reed-solomon, konvolusi, dan hamming.


(28)

DAFTAR PUSTAKA

Daftar pustaka sebagai referensi dalam pengerjaan Tugas Akhir ini adalah: 1. Arif Widodo. Mikrokontroler AVR ATMEGA 8/32/16/8535 dan

pemrogramannya. Informatika, Bandung, 2008.

2. Datasheet “MAXIM +5V-Powered, Multichannel RS-232 Drivers/Receivers”, MAXIM, 2003.

3. Kustiawan, 9822018, “Perancangan Core Error Correcting Code dengan kode BCH”, Tugas Akhir Universitas Kristen Maranatha, 2003.

4. Mackay, David, “Information Theory, Interference, and Learning Algorithms”, 2003.

5. Peterson, Wesley and E.J, Weldon, “Error Correcting Codes”, 2nd edition, 1972.

6. Rudra, Atri, Algorithmic Coding Theory, State University of New York, Buffalo.

7. Susanto, Edy, “Analisis Kinerja Kode BCH”, Universitas Sumatera Utara, 2009.

8. Wicker, Stephen, Error Control System, Prentice Hall International Inc, 1995.


(1)

16 tabelbinernormaltoalfa;

S3alfa:=A;

{---error locator---} A1:=S1alfa;

A2:=S1alfa*2; A3:=S3alfa-A1; A:=A2;

tabelalfatobiner; A2:=bineralfa; A:=A3;

tabelalfatobiner; A23:=bineralfa; A23:=A23 xor A2; bineralfa:=A23 and $0F; A:=bineralfa;

tabelalfatobiner; {--- Koreksi data ---} for x:=14 downto 0 do begin

if poserror1=x then

dataterkoreksi[x]:=datamasukrror XOR B1; if poserror2=x then

dataterkoreksi[x]:=datamasukrror XOR B2; pdataterkoreksi.caption:=dataterkoreksi; end;

end; end;

procedure TForm1.FormCreate(Sender: TObject); begin

com.pick; datamasuk:= '';


(2)

datamasukerror:='';

pdatamasuk.caption:= ''; pdatamasukerror.caption:=''; ps1.caption:= ''; ps3.caption:= ''; jumerror:=0;

end;

procedure TForm1.RadioButton1Click(Sender: TObject); begin

jumerror:=0; end;

procedure TForm1.RadioButton2Click(Sender: TObject); begin

jumerror:=1; end;

procedure TForm1.RadioButton3Click(Sender: TObject); begin

jumerror:=2; end;


(3)

1 BAB I

PENDAHULUAN

1.1 LATAR BELAKANG

Dalam sistem komunikasi, kanal (saluran transmisi) digital sangat rentan dipengaruhi oleh noise, distorsi, dan interferensi, sehingga output kanal akan berbeda dari input kanalnya, karena adanya kesalahan (error). Jadi, dibutuhkan teknik pengkodean untuk mengatasi hal tersebut. Dalam sistem komunikasi, banyak digunakan metode pengkodean untuk mengirimkan data agar diperoleh kemampuan yang sangat andal dalam mengkoreksi kesalahan transmisi sehingga memperoleh hasil yang maksimal. Error-correcting code (atau pengkodean) adalah cara pintar yang mewakili sistem sehingga dapat memperbaiki data yang terkena error agar sesuai dengan data aslinya. Salah satu teknik untuk mengkoreksi data adalah kode BCH. Asal kata dari Kode BCH berasal dari nama penemunya yaitu Bose, Ray-Chaudhuri, dan Hocquenghem, yang diterbitkan pada tahun 1959 dan 1960. Kode BCH adalah salah satu metoda yang menyusun suatu blok kode linier yang dapat diimplementasikan untuk sistem komunikasi dengan blok kode yang panjang dengan jumlah codeword yang besar. Dengan menggunakan kode BCH, data yang dikirimkan dapat diterima secara akurat. Teori dan praktek yang dibahas adalah mengenai perlindungan informasi digital terhadap error yang terjadi selama transmisi data atau penyimpanan dalam bentuk perangkat kerasnya agar dapat mengetahui dimana letak error nya.

1.2 PERUMUSAN MASALAH

1. Bagaimana membuat perangkat keras error-correcting code untuk melihat dan mengkoreksi kesalahan bit?

2. Bagaimana proses serta hasil pengiriman data apabila diberi error? 3. Bagaimana mengetahui letak bit error di dalam satu blok kode linier?


(4)

BAB I PENDAHULUAN 2

1.3 TUJUAN

Mendesain perangkat untuk mendemonstrasikan alat error-correcting BCH code.

Mendeteksi dan memperbaiki data yang terkena error.

1.4 PEMBATASAN MASALAH

Batasan masalah pada Tugas Akhir ini meliputi:

Kode yang digunakan untuk memperbaiki error adalah kode BCH.

Error(t) dibatasi maksimal 2 bit karena mempunyai panjang kode 15 bit dan panjang data 7 bit.

1.5 SISTEMATIKA PENULISAN

Sistematika penulisan Tugas Akhir ini dapat diuraikan sebagai berikut :

 BAB I : membahas mengenai latar belakang, Perumusan masalah, tujuan, pembatasan masalah, dan sistematika penulisan Tugas Akhir.

 BAB II : membahas mengenai teori dasar yang menguraikan dasar sistematis untuk dasar blok linier dan kode BCH, dan juga membahas mengenai dasar perancangan sistem digital.

 BAB III : membahas mengenai perancangan perangkat yang akan dibuat serta membahas algoritma kode BCH yaitu pada bagian generator, error, dan proses encoding decoding.

 BAB IV : membahas hasil perancangan kode BCH dalam perangkat keras dan mendemonstrasikan hasilnya bila diberi bit error .

 BAB V : berisi kesimpulan dan saran yang diperoleh dari pengerjaan Tugas Akhir ini.


(5)

53

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Dalam pembuatan tugas akhir ini, penulis mendapatkan beberapa kesimpulan, antara lain:

1. Sistem pendeteksian dan pengkoreksian dengan menggunakan kode BCH berhasil dirancang dan direalisasikan ke dalam perangkat keras yang menggunakan ATMEGA8535, dan berjalan dengan baik sesuai dengan teori dasar pengkodean.

2. Dari hasil analisa data menunjukkan bahwa teknik error-correcting code mampu mendeteksi dan mengkoreksi bit pesan yang terkena error karena adanya proses decoding.

5.2 Saran

Berikut adalah saran-saran penulis untuk siapa saja yang ingin merevisi dan mengembangkan sistem ini.

1. Dapat dikembangkan dengan menggunakan 2 sampai 4 chip mikrokontroler agar dapat memperlebar panjang kode dan panjang data. Dapat juga dikembangkan dengan menambahkan jumlah error menjadi lebih dari 2 kesalahan.

2. Metode lain yang digunakan untuk merealisasi perangkat ini ialah dengan metode Reed-solomon, konvolusi, dan hamming.


(6)

DAFTAR PUSTAKA

Daftar pustaka sebagai referensi dalam pengerjaan Tugas Akhir ini adalah: 1. Arif Widodo. Mikrokontroler AVR ATMEGA 8/32/16/8535 dan

pemrogramannya. Informatika, Bandung, 2008.

2. Datasheet “MAXIM +5V-Powered, Multichannel RS-232 Drivers/Receivers”, MAXIM, 2003.

3. Kustiawan, 9822018, “Perancangan Core Error Correcting Code dengan kode BCH”, Tugas Akhir Universitas Kristen Maranatha, 2003.

4. Mackay, David, “Information Theory, Interference, and Learning Algorithms”, 2003.

5. Peterson, Wesley and E.J, Weldon, “Error Correcting Codes”, 2nd edition, 1972.

6. Rudra, Atri, Algorithmic Coding Theory, State University of New York, Buffalo.

7. Susanto, Edy, “Analisis Kinerja Kode BCH”, Universitas Sumatera Utara, 2009.

8. Wicker, Stephen, Error Control System, Prentice Hall International Inc, 1995.