• Tidak ada hasil yang ditemukan

Analisis algoritma dan waktu dekoding kode BCH dalam pengoreksian galat pada transmisi pesan teks

N/A
N/A
Protected

Academic year: 2017

Membagikan "Analisis algoritma dan waktu dekoding kode BCH dalam pengoreksian galat pada transmisi pesan teks"

Copied!
24
0
0

Teks penuh

(1)

ANALISIS ALGORITMA DAN WAKTU DEKODING KODE BCH

DALAM PENGOREKSIAN GALAT PADA TRANSMISI PESAN TEKS

Oleh :

FITRI

G64102003

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

(2)

Judul

: Analisis Algoritm a dan Waktu Dekoding Kode BCH dalam

Pengoreksian Galat pada Transmisi Pesan Teks

Nama : Fitri

NRP

: G64102003

Menyetujui:

Pembimbing I,

Dr. Sugi Guritman

NIP 131999582

Pembimbing II,

Shelvie Nidya Neyman, S. Kom

NIP 132311916

Mengetahui:

Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam

Institut Pertanian Bogor

Prof. Dr. Ir. Yonny Koesmaryono, MS

NIP 131473999

(3)

ANALISIS ALGORITMA DAN WAKTU DEKODING KODE BCH

DALAM PENGOREKSIAN GALAT PADA TRANSMISI PESAN TEKS

Skripsi

sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer

pada Fakultas Matematika dan Ilmu Pengetahuan Alam

Institut Pertanian Bogor

Oleh :

Fitri

G64102003

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

(4)

ABSTRAK

Fitri. Analisis Algoritma dan Waktu Dekoding Kode BCH dalam Pengoreksian Galat pada Transmisi Pesan Teks. Dibimbing oleh SUGI GURITMAN dan SHELVIE NIDYA NEYMAN.

Pengiriman data melalui saluran terganggu memungkinkan terjadinya galat pada pesan. Hal ini menyebabkan pesan yang diterima tidak sama dengan pesan yang dikirim. Pesan yang akan ditransmisikan akan dienkoding terlebih dahulu. Hasil enkoding tersebut berupa bit -bit tambahan yang kemudian ditempelkan pada pesan asli sehingga pesan asli dapat dilindungi jika terjadi galat. Kemudian penerima pesan akan melakukan proses dekoding terhadap pesan tersebut untuk mengetahui apakah terdapat galat pada pesan yang diterima tersebut dan juga untuk memperoleh data as li yang dikirim. Salah satu algoritma yang dapat digunakan adalah Kode BCH (Bose Chaudhuri Hocquenghem) yang ditemukan oleh A. Hocquenghem, R. C. Bose dan D. K. Ray Chaudhuri.

(5)

RIWAYAT HIDUP

Penulis dilahirkan di Lubuklinggau pada tanggal 13 Februari 19 85 dari ayah Aang Gunawan dan ibu Linda. Penulis merupakan putri pertama dari enam bersaudara. Tahun 2002 penulis lulus dari SMU Xaverius Lubuklinggau dan pada tahun yang sama lulus seleksi masuk IPB melalui jalur Undangan Seleksi Masuk IPB. Penulis memili h Program Studi Ilmu Komputer, Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam.

(6)

PRAKATA

Puji dan syukur Penulis panjatkan kepada Tuhan Yang Maha Esa yang telah melimpahkan rahmat dan karunia-Nya sehingga Penulis dapat menyelesaikan tugas akhir yang merupakan salah satu syarat kelulusan program sarjana pada Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor.

Penulis juga mengucapkan terima kasih kepada Bapak Dr. Sugi Guritman selaku pembimbing I yang telah banyak berbagi ilmu pengetahuannya dan memberikan pengarahan kepada penulis. Terima kasih juga penulis ucapkan kepada Ibu Shelvie Nidya Neyman, S. Kom selaku pembimbing II yang telah banyak memberi masukan dan pengarahan kepada Penulis. Penulis juga ingin mengucapkan terima kasih kepada Bapak Arief Ramadhan, S. Kom selaku moderator dan penguji yang juga telah memberikan masukan kepada Penulis. Selanjutnya Penulis juga ingin mengucapkan terima kasih kepada:

1 Papa, Mama, Lisa, Tira, Sandy, Susan, dan Nicko atas dukungan, semangat, dan rasa sayang yang begitu besar hingga saat ini.

2 Ratna, Alfath dan Fanny yang telah bersedia menjadi pembahas seminar. Anggy, Mutia, Andra, Dany, Zaki M atas kehadirannya pada seminarku.

3 Kakak-kakak senior di Ilkom: Sisilia, Sifilia, Marico, Laura atas pinjaman buku -bukunya, Ifnu atas kebaikannya mengajarkan Matlab pada masa-masa awal perkuliahan dulu, juga kepada Mei Haryanto yang telah memperbolehkan saya melanjutkan penelitiannya.

4 Keluarga Om Hendi di Jakarta yang telah memberikan bantuan selama Penulis berada di Bogor. 5 Bapak Irman Hermadi, S. Kom, MS yang telah bersedia memberikan penjelasan mengenai

kompleksitas algoritma.

6 Teman-teman KMB 39 yang telah menjadi sahabat terbaik dalam memberikan kritikan. 7 Dian, Andra, Setya yang sering membantu selama perkuliahan. Alfath dan Fridolin atas

pinjaman laptopnya. Kepada teman-teman ilkomerz 39 lainnya yang telah menjadi teman yang baik dalam perjalanan studi Penulis.

8 Teman-teman yang berada dalam satu bimbingan: Nurul, Nilam, Alfath, Adi dan Kaspar atas kerjasamanya selama penelitian.

9 Departemen Ilmu Komputer, staf dan dosen yang telah begitu banyak membantu baik selama penelitian maupun pada masa perkuliahan.

Kepada semua pihak lainnya yang telah memberikan kontribusi yang besar selama pengerjaan penelitian ini yang tidak dapat disebutkan satu-persatu, Penulis ucapkan terima kasih banyak.

Semoga penelitian ini dapat memberikan manfaat.

Bogor, Agustus 2006

(7)

DAFTAR ISI

Halaman

DAFTAR TABEL... vi

DAFTAR GAMBAR... vi

DAFTAR LAMPIRAN... vi

PENDAHULUAN... 7

Latar Belakang... 1

Tujuan ... 1

Ruang Lingkup ... 1

Manfaat Penelitian ... 1

TINJAUAN PUSTAKA... 1

Group ... 1

Field... 2

Finite Field ... 2

Polinomial ... 2

Subgrup ... 2

Kode Linear ... 2

Matriks Cek Paritas ... 3

Enkoding Kode Linear ... 3

Dekoding Kode Linear ... 3

Kode BCH ... 4

Enkoding Kode BCH... 4

Dekoding Kode BCH ... 6

Analisis Algoritma ... 6

METODE PENELITIAN ... 7

Pengembangan Proses Enkoding... 7

Proses Dekoding Kode BCH ... 7

Analisis Hasil Implementasi... 7

Analisis Algoritma ... 8

HASIL DAN PEMBAHASAN ... 8

Ukuran Maksimum Kode... 8

Dekoding Kode BCH ... 8

Perbaikan Galat ... 8

Analisis Algoritma ... 9

Analisis Hasil Implementasi... 10

KESIMPULAN DAN SARAN ... 12

Kesimpulan... 12

Saran ... 12

DAFTAR PUSTAKA ... 12

(8)

DAFTAR TABEL

Halaman

1 Contoh tabel sindrom (Guritman & Aliatiningtyas 2004) ...4

2 Representasi elemen-elemen GF(24) dalam bentuk pangkat α, 4-tuple biner dan simbol i, 0≤i≤2m-1, polinomial primitif p(x) = 1 + x + x4 ...5

3 Rataan waktu proses dekoding dengan n=63 dengan t yang berbeda-beda dan terdapat t galat pada pesan yang didekoding ...10

4 Rataan waktu proses dekoding dengan n yang berbeda-beda, t=30 dan terdapat 30 galat pada pesan yang didekoding...11

5 Rataan waktu proses dekoding untuk n yang berbeda-beda, t=30, dan tidak terdapat galat..11

DAFTAR GAMBAR

Halaman 1 Proses pengiriman pesan melalui saluran terganggu (Guritman & Aliatiningtyas 2004) ...1

2 Larik standar secara umum (Guritman & Aliatiningtyas 2004) ...3

3 Register geser umpan balik dari polinomial primitif p(x)=1+p1x+p2x2+...+pm-1xm-1+xm ...5

4 Proses sistematik konstruksi Kode BCH ...5

5 Format katakode hasil proses enkoding Kode BCH (Haryanto 2004) ...6

6 Proses dekoding ...7

7 Grafik hubungan antara t dan rataan waktu untuk n=63 bila terdapat t galat ...11

8 Grafik hubungan antara n dan rataan waktu untuk t=30 bila terdapat 30 galat ...11

9 Grafik hubungan antara n dan rataan waktu untuk t=30 tanpa galat ...12

DAFTAR LAMPIRAN

Halaman 1 Rincian waktu eksekusi untuk n sama dan t berbeda dengan kesalahan sebanyak t ...14

2 Rincian waktu eksekusi untuk n berbeda dan t sama dengan kesalahan sebanyak 30...15

(9)

1

PENDAHULUAN

Latar Belakang

Perlindungan terhadap pesan dimaksudkan untuk melindungi pesan dari gangguan yang mungkin terjadi selama proses pengiriman pesan. Apabila suatu pesan (informasi) dikirim melalui saluran terganggu, maka ada kemungkinan terjadinya galat pada pesan yaitu pesan yang diterima tidak sama dengan pesan yang dikirim. Di dalam komunikasi, pesan direpresentasikan dalam bentuk dijit al sebagai blok (barisan) simbol, sering kali digunakan simbol biner yang dikenal dengan bitstring. Saluran biasanya berupa jaringan telepon, jaringan radio berfrekuensi tinggi atau jaringan komunikasi satelit. Saluran yang terganggu menyebabkan berubahnya beberapa simbol yang dikirim, sehingga mengurangi kualitas informasi yang diterima (Guritman & Aliatiningtyas 2004).

Proses pengiriman pesan melalui saluran terganggu dapat dilihat pada Gambar 1. P esan yang akan ditransmisikan akan dienkoding terlebih dahulu. Hasil enkoding tersebut adalah berupa bit -bit tambahan yang kemudian ditempelkan pada pesan asli sehingga pesan asli dapat dilindungi jika terjadi galat. Kemudian penerima pesan akan melakukan proses dekoding terhadap pesan tersebut untuk mengetahui apakah terdapat galat pada pesan yang diterima tersebut dan juga untuk memperoleh data asli yang dikirim. Salah satu algoritma yang dapat digunakan adalah Kode BCH (Bose Chaudhuri Hocquenghem) yang ditemukan oleh A. Hocquenghem, R. C. Bose dan D. K. Ray Chaudhuri (Hill 1986) .

Penelitian kali ini mencoba untuk menganalisis kelayakan dan kompleksitas algoritma dekoding Kode BCH dalam pengoreksian galat pada transmisi pesan. Salah satu alasan dipilihnya algoritma dekoding Kode BCH sebagai bahan penelitian adalah karena algoritma Kode BCH dikenal sebagai algoritma yang memiliki proses dekoding yang cepat dan memiliki kemampuan perbaikan galat yang baik (Hankerson et al. 2000).

Tujuan

Tujuan dari penelitian ini adalah:

1 mempelajari dan memahami teknik konstruksi algoritma dekoding Kode BCH, 2 mengimplementasikan algoritma dekoding

pesan untuk menilai kinerja algoritma dekoding Kode BCH, dan

3 menganalisis kompleksitas algoritma dekoding Kode BCH.

Gambar 1 Proses pengiriman pesan melalui saluran terganggu (Guritman & Aliatiningtyas 2004)

Ruang Lingkup

Implementasi algoritma dekoding Kode BCH pada penelitian ini digunakan untuk menyandikan hasil enkoding yang berupa bit-bit biner. Analisis yang dilakukan meliputi analisis kompleksitas algoritma, uji kelayakan panjang kode yang dapat didekoding, dan analisis banyaknya galat yang dapat diperbaiki unt uk panjang kode tertentu yang memiliki kemampuan perbaikan galat yang berbeda-beda.

Manfaat Penelitian

Melalui penelitian ini diperoleh hasil analisis kompleksitas algoritma dekoding Kode BCH dan uji kelayakan dekoding pesan yang bermanfaat unt uk:

1 mengetahui kecepatan dalam proses dekoding Kode BCH , dan

2 mengetahui kemampuan Kode BCH dalam memperbaiki galat.

TINJAUAN PUSTAKA

Group

Group G adalah suatu himpunan dengan operasi * dengan aksioma-aksioma sebagai berikut:

G bersifat tertutup terhadap operasi *. Jika

g, h G maka g* h G.

(10)

2

G memiliki unsur identitas e dengan e * g =

g * e, untuk setiap g G.

• Setiap g G memiliki invers g-1 dengan g *

g-1 = g-1 * g = e.

Group G disebut group komutatif jika g * h

= h * g untuk semua g, hG. Contoh group: Himpunan bilangan bulat dengan operasi penjumlahan (Hill 1986).

Field

Field F adalah suatu himpunan dengan operasi penjumlahan + dan perkalian • dengan aksioma-aksioma sebagai berikut:

F adalah group komutatif terhadap operasi penjumlahan.

F – {0} adalah group komutatif terhadap operasi perkalian.

• Bersifat distributif perkalian terhadap penjumlahan, yaitu: a• (b + c) = (ab) + (a

c), untuk semua a, b, c R.

Contoh field: Himpunan bilangan nyata dengan operasi penjumlahan dan perkalian. Contoh bukan field: Himpunan bilangan bulat terhadap operasi perkalian, karena inversnya bukan merupakan bilangan bulat. Mis alnya: invers dari 2 adalah ½, sedangkan ½ sendiri bukan bilangan bulat.

(Hill 1986)

Finite Field (GF)

Finite Field adalah field yang memiliki jumlah elemen yang berhingga yang disebut orde(order). Field berhingga dikonstruksi oleh matematikawan Perancis Evariste Galois (1811-1832), sehingga field berhingga disebut Galois Field (GF). GF(2m) merupakan field

biner yang beranggotakan semua bitstring

dengan panjang m. GF(2m) juga dapat dinotasikan dalam bentuk (Fq)n dengan q=2 dan

n=m.

Contoh field berhingga: Field berorde prima

p dan operasi aritmatik mod p. Misalkan Z7 atau GF(71) = {0, 1, 2, 3, 4, 5, 6}. Secara khusus untuk GF(21) = {0, 1}disebut field biner.

Field biner memiliki operasi XOR untuk operasi jumlah mod 2 dan opera si AND untuk operasi kali mod 2 (MacWilliams dan Sloane 1983).

Polinomial

Polinomial adalah sebuah ekspresi matematika f(x) = f0 + f1x + f2x2 + ... + fmxm dengan koefisien f0, f1, ..., fm adalah elemen dari GF(q). Jika fm≠ 0, maka m disebut derajat dari

f(x) dan dilambangkan dengan deg f(x). Koefisien fm disebut koefisien pemimpin (leading coefficient). Suatu polinomial

dikatakan monic jika memiliki koefisien pemimpin sama dengan1.

(Hill 1986)

Subgrup

Terdapat tiga pengertian subgrup:

1 Definisi: S disebut subgrup dari G jika S

juga merupakan grup terhadap operasi yang sama dengan yang dimiliki G.

2 Uji dua langkah: S adalah subgrup dari G

jika dan hanya jika

(a) S tertutup terhadap operasi milik G a, bS ? abS, dan (b) S tertutup terhadap invers:

aS ? a-1∈S.

3 Uji satu langkah: S adalah subgrup dari G

jika dan hanya jika a,bS ? ab-1S. Untuk memeriksa apakah suatu himpunan tak kosong S

G merupakan subgrup, kita harus memilih salah satu dari ketiga pengertian di atas sebagai argumennya. Pemilihan ini diusahakan yang paling mudah digunakan. (Guritman & Aliatiningtyas 2004)

Kode Linear

Kode linear dengan panjang n didefinisikan sebagai subruang (subgrup) C dari (Fq)n. Untuk menciptakan kode harus mempertimbangkan parameter-parameter seperti di bawah ini:

a. Jarak minimum d.

Definisi 1 Jarak (hamming distance) antara dua vektor x, y ∈(Fq)n -- dinotasikan

d(x,y) -- adalah banyaknya posisi digit dari x dan y dimana simbol mereka berbeda.

Jarak minimum (minimum hamming

distance) dari suatu kode linear C didefinisikan:

d(C) = min {d(x,y) | x,y C, x y}.

Definisi 2 Bobot (hamming weight) dari suatu vektor x ∈ (Fq)n, dinotasikan wt(x),

adalah banyaknya simbol tak nol dalam x. Bobot minimum (minimum Hamming weight) dari suatu kode C didefinisikan:

wt(C) = min {wt(x) | x C, x 0}.

Berdasarkan definisi 1 dan 2 maka diperoleh d(x, y) = wt(x-y).

Teorema Jarak minimum dari suatu

kode linear C adalah bobot minimum dari sembarang katakode tak nol.

Bukti:

(11)

3

Suatu kode C dengan panjang n dan jarak minimum d dapat mengoreksi [½(d-1)] galat. Jika d genap, kode mampu mengoreksi ½(d-2) dan sekaligus dapat mendeteksi d/2 galat.

b. Panjang kode n.

Setiap katakode dalam kode linear C akan memiliki panjang tetap n disebut blok dan terbagi menjadi dua bagian yaitu: simbol pesan dan simbol cek.

c. Dimensi k.

Kode linear C memiliki dimensi dengan ukuran k yang menentukan banyaknya katakode. Menurut MacWilliams dan Sloane (1983) setiap kode akan memiliki katakode sebanyak 2k. Dimensi k merupakan panjang dari simbol pesan.

Untuk menciptakan kode harus mempertimbangkan parameter-parameter yang telah disebutkan di atas. Jarak minimum d

dibuat sebesar mungkin sebab semakin besar d

semakin banyak galat yang bisa dikoreksi. Panjang kode n dibuat sekecil mungkin. Hal ini berkaitan dengan penggunaan memori dalam implementasinya dan waktu proses enkoding dan dekoding. Dimensi k dibuat sebesar mungkin karena semakin besar k semakin banyak pesan yang bisa dienkoding.

Kode merupakan representasi dari himpunan semua pesan, artinya satu katakode mewakili satu pesan. Kode diciptakan untuk melindungi (koreksi atau deteksi) pesan dari galat saat pengiriman. Dengan demikian di dalam setiap

bitstring katakode harus mengandu ng dua makna, yaitu s imbol pesan dan simbol cek. Simbol pesan telah diketahui (diberikan) sebagai bentuk biner dari pesan, sedangkan simbol cek merupakan simbol ekstra yang ditempelkan pada pesan. Biasanya nilai simbol cek bergantung pada simbol pesan. Simbol cek didefinisikan dengan tujuan untuk melindungi pesan.

(Guritman & Aliatiningtyas 2004)

Matriks Cek Paritas

Matriks cek paritasH adalah matriks dengan ukuran (n - k) × n dalam bentuk H = [A|In - k] dengan A adalah matriks biner berukuran (n - k) × k dan In - k merupakan matriks identitas berukuran n - k.

Berdasarkan pengertian di atas maka kode didefinisikan sebagai:

C = {x∈ (Fq)n | HxT = 0}. (Guritman & Aliatiningtyas 2004)

Enkoding Kode Linear

Misalnya u = (u1u2... uk) akan diubah menjadi katakode x = (x1x2 ... xn) dengan nk maka x berbentuk x1 = u1, x2 = u2, ..., xk = uk diikuti dengan simbol cek xk + 1, ..., xn.

Contoh:

Misalkan H =

    1 0 1 1 0 1 0

1 dan pesan u = (11),

maka:

HxT = 0,

    1 0 1 1 0 1 0 1           4 3 1 1 x

x = 0

0 ,

sehingga diperoleh sistem persamaan linear: 1 + x3 = 0 ⇔x3 = -1 = 1,

1 + 1 + x4 = 0 ⇔x4 = 0.

Dengan demikian pesan u = (11) memiliki katakode x = (1110).

(Guritman & Aliatiningtyas 2004)

Dekoding Kode Linear

Katakode x = x1x2…xn dikirim melalui saluran yang diasumsikan terganggu, maka vektor yang diterima y = y1y2…yn bisa jadi berbeda dari x. Dari proses ini, kita definisikan vektor galat (error vector) e = e1e2…en sebagai selisih antara x dan y, yaitu x = y-e atau (dalam kasus biner) x = y+ e.

Untuk memudahkan ilustrasi proses dekoding kode linear, maka digunakan tabel yang disebut larik standar. Larik standar adalah larik yang semua barisnya adalah semua kemungkinan vektor galat dari suatu kode. Baris pertama dari larik standar adalah kode itu sendiri dengan meletakkan katakode nol pada posisi paling kiri:

, dan diikuti semua kemungkinan vektor galat pada baris ke-2 sampai dengan baris ke-qn-k

dengan meletakkan vektor galat dengan bobot minimum pada posisi paling kiri.

Gambar 2 Larik standar secara umum (Guritman & Aliatiningtyas 2004)

(12)

4

yang mempunyai panjang 4, berdimensi 2, dan dibangkitkan oleh matriks paritas

H =

     1 0 1 1 0 1 0 1 .

Maka larik standar untuk C adalah

Pesan 00 10 01 11

Kode 0000 1011 0101 1110

Vektor Galat 1000 0011 1101 0110

Vektor Galat 0100 1111 0001 1010

Vektor Galat 0010 1001 0111 1100

Cara kerja dekoder pada contoh di atas, yaitu apabila vektor y diterima, misalnya y = 0111, dekoder menemukan posisi y dalam larik. Kemudian dekoder mencari vektor galat (e) pada posisi di ujung paling kiri baris y, yaitu 0010. Akhirnya y didekode sebagai katakode x

= ye = 0101. Pesan yang terkait dengan x

adalah 01.

Cara lain yang cukup mudah untuk mencari vektor galat yang memuat y adalah dengan menghitung vektor S = HyT (dengan H

merupakan matriks paritas) yang disebut sindrom (syndrome) dari y. Dari definisi ini, berikut dirangkum beberapa sifat sindrom: 1 S adalah vektor kolom dengan panjang n - k. 2 S = 0 jika dan hanya jika yC.

3 Jika y = x + e dengan xC, maka S = HyT

= HeT

4 Untuk kasus biner, jika terjadi galat pada posisi dijit ke-i, ke-j, ke-k, ..., maka S = Hi +

Hj + Hk + ..., dimana Hi adalah kolom ke-i dari H.

Contoh penggunaan sindrom untuk proses dekoding adalah dari kode linear C yang telah didefinisikan pada contoh sebelumnya, dapat dibuat tabel sindrom seperti yang disajikan pada Tabel 1.

Tabel 1 Contoh tabel sindrom (Guritman & Aliatiningtyas 2004)

Vektor Galat Sindrom

0000





0

0

1000





1

1

0100





1

0

0010





0

1

Vektor galat tersebut merupakan vektor galat dengan bobot minimum yang terletak pada posisi paling kiri pad a tabel larik standar. Apabila vektor y = 0111 diterima, pertama kali dekoder akan menghitung sindrom dari y, yaitu

S =

    1 0 1 1 0 1 0 1             1 1 1 0 =       0 1 .

Dari hasil ini dan berdasarkan tabel sindrom, dekoder akan memutuskan bahwa vektor galatnya adalah e = 0010 dan katakode yang diperoleh adalah x = ye = 0101. Ini berarti pesan yang dikirim adalah 01.

(Guritman & Aliatiningtyas 2004)

Kode BCH

Salah satu kelas yang penting dari error correcting codes adalah Bose-Chaudhuri-Hocquengham codes, atau Kode BCH. Kode BCH menjadi penting karena dua alasan. Pertama, kode tersebut memuat skema dekoding yang relatif mudah dan yang kedua adalah karena Kode BCH dapat memperbaiki galat dalam ruang lingkup yang cukup besar. Dalam hal ini, untuk suatu integer positif r dan t

dengan t ≤ 2r-1-1, terdapat Kode BCH dengan panjang n = 2r-1dengan kemampuanperbaikan galat sebanyak t dan memiliki dimensi kn-rt. (Hankerson 2000)

Enkoding Kode BCH

Proses enkoding Kode BCH telah dikonstru ksi pada penelitian sebelumnya yang dilakukan oleh Hariyanto (2004). Pada penelitian tersebut telah dibuat implementasi dari algoritma konstruksi GF(2m), algoritma konstruksi Kode BCH, dan algoritma proses enkoding Kode BCH dengan menggunakan MATLAB 6.5 dan Maple 8.0.

a. Konstruksi GF(2m)

Proses tersebut melibatkan tahapan-tahapan:

1 Menentukan nilai m untuk memperoleh polinomial primitif p(x).

Nilai m disesuaikan dengan panjang kode yang diinginkan (n). Hubungan antara nilai n dan m

dinyatakan dengan rumus n=2m-1 2 Konstruksi elemen -elemen GF(2m)

(13)

5

= (1, 0, ..., 0, 0). Pergeseran dilakukan sebanyak 2m – 2 atau berhenti setelah isi register geser arus balik sama dengan status inisial s. Elemen 0, status inisial dan hasil setiap pergeseran membentuk elemen-elemen

m -tuple biner GF(2m) (sebelum isi register geser arus balik sama dengan status inisial s). Apabila telah terbentuk elemen-elemen m-tuple biner maka dapat disusun elemen-elemen pangkat αdan simbol i, 0 ≤i≤ 2m-1.

Gambar 3 Register geser umpan balik dari polinomial primitif p(x) = 1 + p1x + p2x2 + … + pm - 1xm - 1 + xm.

Tabel 2 Representasi elemen -elemen GF(24) dalam bentuk pangkat

α, 4-tuple biner dan simbol i,

0 ≤ i ≤ 2m – 1, polinomial primitif p(x) = 1 + x + x4 Pangkat α 4-tuple biner Simbol i

0 0000 0

1 1000 1

α 0100 2

α2 0010 3

α3

0001 4

α4

1100 5

α5 0110 6

α6

0011 7

α7

1101 8

α8 1010 9

α9

0101 10

α10

1110 11

α11 0111 12

α12

1111 13

α13 1011 14

α14 1001 15

3 Melakukan operasi aritmatik GF(2m)

• Operasi penjumlahan

Operasi penjumlahan GF(2m) dilakukan dengan cara melakukan

operasi XOR untuk setiap posisi digit m -tuple biner.

• Operasi perkalian

Operasi perkalian GF(2m)

dilakukan dengan cara menjumlahkan pangkat α mod 2m-1.

• Operasi invers

Operasi invers GF(2m) dilakukan dengan cara mengurangkan 2m – 1 dengan representasi elemen pangkat α. Invers dari αiadalah αn - 1 , dengan

n = 2m – 1, 1 ≤ in.

• Operasi pembagian

Misalkan a dan b merupakan representasi elemen simbol i. Operasi pembagian GF(2m) dilakukan dengan cara mengalikan

a dengan invers b. Operasi yang dimaksudkan adalah operasi perkalian dan invers pada GF(2m).

b. Konstruksi Kode BCH

Langkah-langkah konstruksi Kode BCH dapat disusun secara sistematik seperti yang disajikan pada Gambar 4.

Gambar 4 Proses sistematik konstruksi Kode BCH (Hariyanto 2004)

c. Konstruksi proses enkoding Kode BCH

Terdiri atas tahapan:

1 Menentukan polinomial generator Polinomial generator yang didapatkan pada tahap sebelumnya akan menentukan bentuk sirkuit encoding.

2 Enkoding Kode BCH

Proses encoding kode BCH dilakukan berdasarkan proses kerja

Konstruksi Koset Siklotomik

Konstruksi Polinomial Minimal

Konstruksi Polinomial Generator Kode BCH Panjang Kode BCH

Konstruksi GF(2m)

p1

S0 S1 S2 Sm -1 p2 pm - 1

(14)

6

sirkuit encoding. Proses tersebut akan menghasilkan katakode yang terdiri dari simbol cek (redundant checking part) dan simbol pesan (message part).

Representasi dari katakode disajikan pada Gambar 5.

Gambar 5 Format katakode hasil proses enkoding Kode BCH (Hariyanto 2004)

Dekoding Kode BCH

Proses dekoding Kode BCH terdiri atas tiga tahap utama, yaitu:

1 Menentukan Nilai Sindrom

Jika r(z) merupakan pesan yang diterima dan ai, i = 1, 2, ..., 2t (dengan t adalah batas kemampuan perbaikan galat dari kode) merupakan elemen -elemen dari GF(2m), maka sindrom diperoleh dengan cara:

S

i = r(ai ) =

− = 1 0 n j

rjaij i = 1,2,...,2t.

2 Menentukan Error Location Polynomial (ELP)

Jika sebanyak e galat terjadi (e = t) pada lokasi j1, j2, ..., je. Lokasi galat ke-i dilambangkan dengan Xi. ELP dinyatakan sebagai

M etode yang digunakan untuk menentukan ELP yaitu shift-register synthesis algorithm oleh Berlekamp dan Messey.

Jika derajat dari ELP lebih besar dari t

(batas kemampuan perbaikan galat yang dimiliki oleh kode), maka tidak semua galat dapat diperbaiki. Dalam hal ini, galat dapat dideteksi. Jika derajat dari ELPlebih kecil atau sama dengan t, maka galat dapat dideteksi dan letak galat dapat diperoleh dengan mencari akar-akar dari ELP .

3 Menentukan akar-akar dari Error

Location Polynomial (ELP)

Jika ELP telah diketahui, maka selanjutnya akan ditentukan akar-akarnya. Ini dilakukan dengan menggunakan prosedur yang dinamakan

Chien’s search. Gambaran secara umum dari proses pencarian akar-akar dari ELP adalah:

Misal untuk t = 2, m = 5, yang merupakan Kode BCH dengan (n, k, d) = (31, 21, 5) diperoleh bahwa ELP(z) = 1 + a7z + a15z2, maka hasil pemfaktoran polinomial tersebut adalah (1+a5z)(1+a10z). Dengan demikian diperoleh akar-akar yaitu z1 = a26 dan z2 = a2 1, sehingga disimpulkan bahwa galat terdapat pada bit ke-5 dan bit ke-10.

Dengan menggunakan algoritma Chien’s Search, p encarian akar-akar dari ELP dilakukan dengan menstubstitusikan ai, dengan i=1, .., n, ke dalam ELP untuk memperoleh akar -akar. Melalui akar-akar yang diperoleh dari polinomial tersebut, dapat ditentukan lokasi galat dengan cara menginvers akar-akar dari ELP. Pangkat dari a menunjukkan lokasi galat yang terjadi pada kode.

(Hong et al. 1995)

Analisis Algoritma

Analisis algoritma dilakukan untuk menduga besarnya sumber daya waktu yang dibutuhkan untuk sembarang ukuran input n. Kompleksitas, T(n), didefinisikan sebagai waktu yang dibutuhkan oleh suatu algoritma untuk menyelesaikan proses dengan input berukuran n. Analisis tersebut dilakukan dengan asumsi bahwa mesin yang digunakan adalah berprosesor tunggal. Pada mesin ini, instruksi-instruksi program dieksekusi baris demi baris secara berurutan.

Berdasarkan waktu eksekusi program, T(n), dapat ditentukan growth rate-nya, yaitu laju pertumbuhan waktu terhadap variasi ukuran input. Sebagai contoh, analisis suatu algoritma menghasilkan T (n) = an2 + bn + c, dengan a, b, dan c tergantung pada jenis komputer dan

platform bahasa pemrograman yang hanya dapat ditentukan melalui percobaan eksekusi program. Kompleksitas komputasi dari suatu algoritma memberikan gambaran umum bagaimana perubahan T(n) terhadap n.

Pada penelitian kali ini, algoritma dekoding Kode BCH dievaluasi berdasarkan keadaan kompleksitas waktu untuk waktu terburuk, dinotasikan dengan O (big O). Ada tiga alasan mengapa perlu menganalisis waktu komputasi untuk kasus terburuk, yaitu:

1 Kasus terburuk dari suatu algoritma adalah batas atas dari waktu komputasi untuk setiap input.

2 Untuk beberapa algoritma kasus terburuk cukup sering terjadi. Misalnya pada proses

Redundant Checking Part

Message Part

(15)

7

pencarian informasi di basis data, kasus terburuk pada algoritma pencarian akan terjadi ketika informasi yang dicari tidak terdapat pada basis data.

3 Terkadang average case sama buruknya dengan kasus terburuk.

Kompleksitas untuk waktu terburuk dapat ditentukan dengan mengikuti aturan sebagai berikut. Untuk suatu fungsi g(n), penotasian

O(g(n)) dinyatakan sebagai:

O(g(n)) = {f(n): terdapat konstanta positif c dan

n0 sehingga 0 = f(n) = cg(n) untuk semua n=n0}.

(Cormen et al. 1990)

METODE PENELITIAN

Pengembangan Proses Enkoding

Pada implementasi proses enkoding yang sebelumnya telah dibuat oleh Mei Hariyanto (2004), ditambahkan beberapa perintah baru untuk menghasilkan sebuah file teks yang berisi bit-bit biner hasil proses enkoding dan untuk menghubungkan direktori dari implementasi proses enkoding dan implementasi proses dekoding.

Proses Dekoding Kode BCH

Metode yang digunakan dalam penelitian ini mengikuti semua tahapan proses dekoding Kode BCH yang meliputi:

1 Menentukan nilai sindrom

Nilai sindrom diperoleh dari rumusan:

i

S

= r(ai ) =

− = 1 0 n j

rjaij i = 1,2,...,2t. Dalam hal ini, rjbernilai 0 atau 1 (berupa bit-bit biner). Operasi penjumlahan ( ? ) merupakan operasi XOR karena melibatkan field biner. Jika

rj bernilai 0, maka operasi XOR dapat diabaikan karena operasi XOR suatu bit biner terhadap 0 akan menghasilkan nilai bit itu sendiri. aij merupakan elemen GF(2m).

Melalui tahap 1 tersebut, dapat dideteksi apakah telah terjadi galat pada pesan atau tidak. Jika semua sindrom bernilai 0, berarti bahwa tidak terdapat galat pada pesan. Sebaliknya jika terdapat sindrom yang bernilai tidak nol, berarti terdapat galat pada pesan dan proses dilanjutkan ke tahap 2. Dengan hanya menghitung sindrom saja, galat dapat dideteksi.

2 Menentukan Error Location Polynomial

(ELP)

Algoritma yang digunakan untuk menentukan ELP merupakan algoritma Berlekamp. Pada tahapan tersebut akan

terbentuk ELP yang memiliki derajat sebesar banyaknya galat yang terjadi. Koefisien dari ELP adalah elemen-elemen dari GF(2m). 3 Menentukan akar-akar dari Error Location

Polynomial

Setelah memperoleh ELP pada tahap sebelumnya, maka akan ditentukan akar -akar dari ELP dengan menggunakan metode Chien’s Search yang tahapannya dapat dilihat pada tinjauan pustaka algoritma dekoding Kode BCH.

Berikut ini adalah gambaran dari proses dekoding jika terjadi galat pada pesan yang akan didekoding.

Gambar 6 Proses dekoding

Analisis Hasil Implementasi

Pada tahap ini akan dilakukan analisis uji

running time terhadap hasil implementasi proses dekoding Kode BCH. Untuk kode dengan panjang n dan batas kemampuan perbaikan galat t, akan diamati:

• Ukuran maksimum kode yang dapat didekoding berdasarkan spesifikasi komputer yang telah disebutkan sebelumnya.

• Waktu yang dibutuhkan oleh proses dekoding pada kode dengan n yang sama, t

yang berbeda-beda, dan terdapat galat sebanyak t. Pengukuran dilakukan sebanyak sepuluh kali ulangan untuk tiap objek kajian dan diambil rataannya.

• Waktu yang dibutuhkan oleh proses dekoding pada beberapa n yang berbeda, dengan t yang sama, dan terdapat t galat . Pengukuran dilakukan sebanyak sepuluh kali ulangan untuk tiap objek kajian dan diambil rataannya.

(16)

8

sepuluh kali ulangan untuk tiap objek kajian dan diambil rataannya.

• Kemampuan algoritma dekoding untuk mengoreksi galat dengan banyaknya galat lebih kecil atau sama dengan batas kemampuan perbaikan galat dari kode dan dengan banyaknya galat yang lebih besar daripada batas kemampuan perbaikan galat dari kode.

Analisis Algoritma

Pada tahap ini dilakukan analisis terhadap kompleksitas algoritma dekoding kode BCH yang meliputi:

• kompleksitas algoritma penentuan nilai sindrom,

• kompleksitas algoritma penentuan error location polynomial, dan

• kompleksitas algoritma penentuan akar-akar dari error location polynomial untuk memperoleh letak galat.

Lingkungan Penelitian

Lingkungan penelitian yang digunakan adalah sebagai berikut:

a Perangkat keras:

Processor: Intel Pentium IV 2,66 GHz

Memory: 512 MB

Harddisk 80 GB

Mouse dan Keyboard

Monitor dengan resolusi 1024×768 b Perangkat lunak

• Sistem operasi: Microsoft® Windows XP Professional 2002 SP1

• Microsoft® Internet Explorer 6.0

• Macromedia Dreamweaver MX 2004

• Adobe Photoshop CS2 untuk desain tampilan

• XAMPP 1.4.12

HASIL DAN PEMBAHASAN

Ukuran Maksimum Kode

Dengan mengacu pada penelitian sebelumnya, maka telah dibatasi bahwa nilai m

maksimum yang dapat digunakan adalah sebesar 20. Oleh karena itu, ukuran maksimum panjang kode yang dapat didekoding (kode yang merupakan hasil proses enkoding) adalah

n = 2m-1 = 1048575 bit, dengan m sebesar 20. Namun, dikarenakan proses konstruksi Kode BCH (yang telah dibuat pada penelitian sebelumnya) memerlukan waktu sangat lama, dengan menggunakan spesifikasi perangkat seperti yang telah disebutkan sebelumnya, maka pada penelitian kali ini panjang kode yang

diteliti dibatasi 16383 bit, dengan m sebesar 14. D alam hal ini proses dekoding sangat bergantung pada proses enkoding untuk menghasilkan Kode BCH, sehingga ukuran kode maksimum untuk proses dekoding bergantung pada proses enkoding untuk menghasilkan kode yang akan menjadi input bagi proses dekoding. Panjang kode dapat ditingkatkan jika algoritma proses enkoding yang telah dibuat pada penelitian sebelumnya dapat diubah sehingga kompleksitasnya menjadi lebih baik.

Dekoding Kode BCH

Berikut ini adalah hasil yang diperoleh dari implementasi proses dekoding Kode BCH pada penelitian kali ini. Parameter dari kode adalah (n, k, d) = (15, 7, 5). Pesan yang dienkoding adalah 1110011 dan menghasilkan katakode 000110111110011. Misalkan terjadi galat pada posisi bit ke-1 dan bit ke-5, maka kode berubah menjadi 010111111110011. Kode yang telah mengalami galat tersebut menjadi input bagi dekoder (hasil implementasi yang dibuat pada penelitian kali ini). Keluaran yang diperoleh adalah:

• Sindrom = 2 4 14 8 yang merupakan representasi dari a2, a4, a14, a8

• Koefisien dari ELP = 2 6 yang merupakan representasi dari ELP = 1 + a2z + a6z2

• Pemfaktoran dari ELP adalah 1 + a2z + a6z2 = (1 + a1z)(1 + a5z) Dari pemfaktorkan tersebut diperoleh akar-akar yaitu z1= a1 4 dan z2= a10. Dengan demikian dapat disimpulkan bahwa terdapat galat pada posisi bit ke-1 dan bit ke-5. Untuk memperoleh pesan asli, pada bit-bit yang merupakan posisi terjadinya galat dilakukan operasi XOR terhadap 1, kemudian dilakukan pemotongan sebesar n-k sehingga diperoleh pesan asli.

Perbaikan Galat

Jarak minimum d dari kode menentukan batas kemampuan perbaikan galat yang dimiliki oleh kode. Hal ini dapat dilihat melalui rumus bahwa t = (d-1)/2. Dengan demikian, semakin besar d, maka semakin banyak galat yang dapat diperbaiki.

Analisis perbaikan galat dimaksudkan untuk mengetahui apakah sistem yang dibuat mampu untuk memperbaiki galat yang jumlahnya lebih kecil dari batas kemampuan perbaikan galat (v<t), v=t dan v>t.

v<t

(17)

9

yang terjadi dapat diperbaiki. Hal ini diperoleh setelah dilakukan berkali -kali pengujian terhadap sistem dan hasilnya menunjukkan hal tersebut.

v=t

Setelah dilakukan pengujian terhadap sistem, diperoleh bahwa hasil implementasi tersebut juga mampu mendeteksi dan memperoleh letak galat yang sama banyaknya dengan batas kemampuan perbaikan galat sehingga galat tersebut dapat diperbaiki. Hal ini diperoleh setelah dilakukan berkali-kali pengujian terhadap sistem dan hasilnya menunjukkan hal tersebut.

v>t

Jika banyaknya galat yang terjadi lebih banyak daripada batas kemampuan perbaikan galat yang dimiliki oleh kode (t), ada tiga kemungkinan yang terjadi, yaitu:

1 Sistem dapat memperbaiki beberapa galat yang terjadi . Hal ini sangat jarang terjadi, oleh karena itu sulit untuk diberikan contohnya. Selama melakukan pengujian terhadap sistem, hanya baru terjadi satu kali dan pada saat itu penulis tidak mendokumentasikannya.

2 Sistem tidak mampu memperbaiki galat pada pesan karena tidak dapat diketahui letak galat, namun sistem dapat mendeteksi bahwa telah terjadi galat pada pesan. Contohnya adalah untuk kode dengan n,k,d

masing-masing sebesar 63,51,5 dan memiliki batas kemampuan perbaikan galat sebesar 2 (t=2). Jika galat yang terjadi sebanyak 3 bit yaitu pada bit ke 15, 24, dan 30, setelah melalui proses dekoding, sistem memberikan informasi bahwa telah terjadi galat, namun sistem tidak dapat menentukan posisi galat.

3 Sistem mendeteksi telah terjadi galat pada pesan, sistem memberikan informasi letak galat namun informasi yang diberikan tersebut salah. Contohnya adalah untuk kode dengan n,k,d masing-masing sebesar 63,51,5 dan memiliki batas kemampuan perbaikan galat sebesar 2 (t=2). Jika galat yang terjadi sebanyak 3 bit yaitu pada bit ke 13, 15, dan 24, setelah melalui proses dekoding, sistem memberikan informasi bahwa telah terjadi galat pada posisi bit ke 37 dan 56.

Analisis Algoritma

Pada penelitian kali ini dilakukan analisis terhadap algoritma dekoding Kode BCH. A lgoritma tersebut dibagi menjadi tiga bagian utama yaitu algoritma penentuan nilai sindrom, algoritma penentuan error location polynomial

dan algoritma untuk mencari akar-akar dari

error location polynomial. Masing-masing algoritma (berupa pseudocode) tersebut dapat dilihat pada analisis di bawah ini.

1 Analisis algoritma penentuan nilai

sindrom

Algoritma penentuan nilai sindrom adalah sebagai berikut:

[1] for iß1 to 2×t

[2] s[i]ß0 [3] for jß0 to n

[4] if recv[j]<>0

[5] s[is[i] XOR a[ij] [6] if s[i]<>0

[7] terdapat galat

Kompleksitas dari algoritma di atas secara keseluruhan ditentukan oleh baris [1] dan [3]. Baris [1] dieksekusi sebanyak 2×t kali dengan t

merupakan batas kemampuan perbaikan galat . Baris [3] dilakukan sebanyak n+1 kali dengan n

merupakan panjang kode hasil enkoding. Jadi total eksekusi adalah (2 ×t) × (n+1) = 2nt + 2t. Dengan semakin besarnya panjang kode (n), maka 2t dapat diabaikan untuk memperoleh kompleksitas untuk waktu terburuk. Nilai t

selalu lebih kecil daripada n dan tidak pernah melebihi n. Namun, dalam hal ini t tidak dapat diabaikan karena dengan semakin besarnya panjang kode maka nilai t juga semakin besar. Untuk menghitung kompleksitas waktu terburuk, t dapat dianggap menyamai n,

sehingga perhitungan total eksekusi menjadi 2n2

+ 2n. Selanjutnya akan dibuktikan terdapat c1

dan n0 sehingga cn2 = 2n2+2n untuk n= n0. N ilai yang memenuhi adalah bahwa c1=2 dan

n0=1. D engan demikian algoritma tersebut memiliki kompleksitas O(n2).

2 Analisis algoritma penentuan error

location polynomial

Algoritma penentuan error location polynomial secara garis besar adalah sebagai berikut:

[1] for iß1 to 2×t

[2] temukan tahapan sebelumnya (tahap ke

?) dengan diff terbesar dan d? ? 0. [3] pembentukan ELP

Baris [1] dieksekusi sebanyak 2t kali. Baris [2] maksimal dieksekusi sebanyak 2t kali karena banyaknya tahapan yang digunakan dalam pembentukan ELP adalah sebanyak 2t

(18)

10

derajat dari ELP adalah sebesar banyaknya galat yang terjadi. Dikarenakan adanya perulangan bersarang, maka total eksekusi adalah 2t(2t+v) = 4t2+ 2tv. Dalam kasus terburuk, banyaknya galat yang terjadi adalah sama dengan panjang kode, sehingga total eksekusi menjadi 4t2+2tn. Untuk n (panjang kode) yang semakin besar, maka batas kemampuan perbaikan galat (t) juga semakin besar. Untuk menghitung kompleksitas waktu terburuk, t dianggap menyamai n sehingga total waktu eksekusi adalah 4n2+2n2 = 6n2. Selanjutnya akan ditunjukkan bahwa terdapat c1 dan n0 sehingga cn2 = 6n2 untuk

n= n0. Diperoleh bahwa c1=6 dan n0= 1 sehingga berhasil dibuktikan bahwa waktu eksekusi dari algoritma tersebut tidak akan melebihi n2. Dengan demikian kompleksitas dari algoritma tersebut adalah O(n2).

3 Analisis algoritma pencarian akar-akar error location polynomial

Algoritma pencarian akar-akar error location polynomial adalah sebagai berikut: [1] for iß1 to v

[2] temp[i]ßpolinomial[miu][i] [3] for iß1 to n

[4] qß1 [5] for jß1 to v

[6] if koefisien x pangkat j<>-1

[7] koefisien x pangkat jß(koefisien itu sendiri + j) mod n

[8] qßq xor a [koefisien x pangkat j] [9] if q=0

[10] lokasi galatßn-i

Kompleksitas dari algoritma di atas secara keseluruhan ditentukan oleh baris [1], [3], dan [5]. Baris [1] dan baris [5] dieksekusi sebanyak

v, dengan v merupakan banyaknya galat yang terjadi. Baris [3] dieksekusi sebanyak n kali dengan n merupakan panjang kode hasil enkoding. Jadi total eksekusi adalah v + nv. Dalam kasus terburuk, banyaknya galat yang terjadi adalah sama dengan panjang kode sehingga total eksekusi dari algoritma tersebut untuk kasus terburuk menjadi n2+n. Selanjutnya akan ditunjukkan bahwa terdapat c1 dan n0 sehingga cn2 = n2+n untuk n=n0. Pembuktian tersebut adalah untuk menunjukkan bahwa eksekusi dari algoritma tersebut tidak akan melebihi n2. Diperoleh bahwa c1=2 dan n0= 1. D engan demikian algoritma tersebut memiliki kompleksitas O(n2).

Analisis Hasil Implementasi

Implementasi algoritma dekoding Kode BCH dilakukan dengan menggunakan PHP

Hypertext Preprocessor. Dengan menggunakan implementasi tersebut dilakukan pengukuran waktu proses dekoding. Ada beberapa pengukuran yang dilakukan. Pertama, pengukuran yang dilakukan adalah untuk mengetahui pengaruh banyaknya galat terhadap waktu eksekusi. Dalam hal ini dilakukan pengukuran dengan menggunakan panjang Kode BCH sebesar 63 bit, dengan panjang pesan (k) yang berbeda-beda sesuai dengan batas kemampuan perbaikan galat (t) yang dimiliki oleh kode.

Pada kode hasil proses enkoding dilakukan pengubahan pada bit-bit sebanyak t untuk menunjukkan bahwa kode mengalami galat . Pengukuran dilakukan sebanyak sepuluh kali untuk tiap -tiap input yang berbeda dan diambil rataannya. Rincian dari waktu proses dekoding untuk masing-masing perulangan dapat dilihat pada Lampiran 1. Waktu rataan dari proses tersebut disajikan pada Tabel 3.

Tabel 3 Rataan waktu proses dekoding dengan

n = 63 dengan t berbeda-beda dan terdapat t galat pesan yang did ekoding

t (n,k,d) Rataan Waktu (ms)

1 (63,57,3) 3,396773

2 (63,51,5) 4,005146

3 (63,45,7) 4,60906

4 (63,39,9) 5,10335

5 (63,36,11) 5,762267

6 (63,30,13) 6,39317

7 (63,24,15) 7,264352

8 (63,18,17) 8,867955

9 (63,18,19) 9,085464

10 (63,18,21) 9,47 9976 11 (63,16,23) 10,773015 12 (63,10,25) 11,580515 13 (63,10,27) 12,525153

14 (63,7,29) 14,295578

15 (63,7,31) 15,492892

Dari Tabel 3 dapat diketahui bahwa Kode BCH dapat memperbaiki galat dalam ruang lingkup yang cukup besar. Dalam hal ini untuk

(19)

11

Gambar 7 Grafik hubungan antara t dan rataan waktu untuk n = 63 bila terdapat t galat

Selain itu, dilakukan juga pengukuran untuk mengetahui dengan t yang sama, bagaimanakah pengaruh pertambahan panjang Kode BCH terhadap waktu eksekusi proses dekoding. Dalam hal ini dipilih t=30 dan dilakukan sepuluh kali perulangan untuk panjang kode yang berbeda-beda dan diambil rataannya. Rincian dari waktu proses dekoding untuk masing-masing perulangan dapat dilihat pada Lampiran 2. Waktu rataan dari proses tersebut dapat dilihat pada Tabel 4.

Tabel 4 Rataan waktu proses dekoding untuk n

yang berbeda-beda dan t=30 dan terdapat 30 galat pada pesan yang didekoding

(n,k,d) Rataan Waktu (ms) (255,63,61) 75,61085224 (511,259,61) 131,1789513 (1023,728,61) 245,3273535 (2047,1717,61) 486,2621307 (4095,3735,61) 930,5595636 (8191,7801,61) 1873,512125 (16383,15963,61) 3727,724051

Dari Tabel 4 juga terlihat bahwa dengan semakin besar panjang kode, maka waktu proses dekoding juga semakin meningkat. Untuk menggambarkan hubungan ini, diberikan grafik hubungan antara t dan rataan waktu yang dapat dilihat pada Gambar 8. Pada gambar tersebut terlihat bahwa hubungan antara t dan rataan waktu adalah linear.

Gambar 8 Grafik hubungan antara n dan rataan waktu untuk t = 30 bila terdapat 30 galat

Dengan menggunakan data seperti di atas, dilakukan analisis terhadap kode yang tidak mengalami galat dengan sepuluh kali perulangan untuk perhitungan waktu proses dekoding dengan panjang kode yang berbeda-bed a dan diambil rataannya. M aka rataan waktu eksekusi yang diperoleh melalui proses dekoding adalah seperti yang disajikan pada Tabel 5.

Tabel 5 Rataan waktu proses dekoding untuk n

yang berbeda-beda dan t=30 dan tidak terdapat galat

(n,k,d) Rataan Waktu ( ms) (255,63,61) 34,7918272 (511,259,61) 71,82013988 (1023,728,61) 138,8659239 (2047,1717,61) 288,1123543 (4095,3735,61) 590,5050516 (8191,7801,61) 1172,235799 (16383,15963,61) 2324,543214

(20)

12

Gambar 9 Grafik hubungan antara n dan rataan waktu untuk t = 30 tanpa galat

KESIMPULAN DAN SARAN

Kesimpulan

Dari penelitian tersebut, diperoleh beberapa kesimpulan, yaitu:

1 Kode BCH baik digunakan untuk mengatasi galat yang jumlahnya lebih kecil atau sama dengan kemampuan perbaikan galat yang dimiliki oleh kode (v=t). Jika v>t, maka ada tiga kemungkinan yang terjadi dalam hal perbaikan galat , yaitu:

• ada galat yang dapat diketahui letaknya sehingga dapat diperbaiki,

• dapat dideteksi bahwa telah terjadi galat pada pesan, namun letak galat tidak dapat diketahui,

• dapat dideteksi bahwa telah terjadi galat, namun informasi letak galat yang diperoleh tidak benar

2 Proses dekoding Kode BCH dengan menggunakan algoritma pada penelitian tersebut memiliki wakt u proses yang cepat jika dibandingkan dengan menggunakan algoritma dekoding secara umum.

3 Algoritma proses dekoding Kode BCH memiliki tiga bagian utama yaitu penentuan nilai sindrom, penentuan error location polynomial dan pencarian akar -akar dari

error location polynomial. Masing-masing algoritma tersebut memiliki kompleksitas O(n2), O(n2), dan O(n2).

4 Kode BCH dapat memperbaiki galat dalam ruang lingkup yang cukup besar.

Saran

Beberapa saran yang dapat diberikan untuk penelitian selanjutnya antara lain:

1 Pada penelitian kali ini hanya dibuat simulasi untuk proses dekoding dalam

menangani galat yang mungkin terjadi pada transmisi pesan melalui saluran (channel). Pada penelitian selanjutnya memungkinkan untuk diimplementasikan pada saluran yang sebenarnya.

2 Bagi para aplikan, diharapkan dapat melakukan pengukuran tingkat galat rata-rata saluran (channel). Hal ini akan bermanfaat untuk memilih jenis Kode BCH dengan kemampuan koreksi galat yang sesuai untuk diterapkan pada saluran.

DAFTAR PUSTAKA

Cormen TH, Leiserson CE, Rivest RL. 1990.

Introduction to Algorithms.

Massachusetts -London: The MIT Press. Guritman S, Aliatiningtyas N. 200 4. Struktur

Aljabar. Bogor: Departemen Matematika, FMIPA -IPB.

Hankerson DR. 2000. Coding Theory and

Cryptography. Ed ke-2. New York:

Marcel Dekker, Inc.

Hariyanto M. 2004. Komputasi Aritmatik GF(2m) untuk Konstruksi Kode

Bose-Chaudhuri-Hocquenghem (BCH) [skripsi]. Bogor: Departemen Ilmu Komputer, FMIPA -IPB.

Hill R. 1986. A First Course in Coding Theory. New York: Oxford University Press Inc. Hong J, Vetterli M. 1995. Simple Algorithms for

BCH Decoding. IEEE.

(21)

13

(22)

14

Lampiran 1 Rincian waktu eksekusi untuk n sama dan t berbeda dengan kesalahan sebanyak t

(n,k,d) 1 2 3 4 5 6 7 8 9 10 rataan

(63,57,3) 3,314018 3,329992 3,522873 3,515959 3,398895 3,379107 3,305912 3,507853 3,360033 3,333092 3,396773

(63,51,5) 3,895044 3,901958 3,859997 4,276991 3,946066 4,028797 4,577875 3,914833 3,777027 3,872871 4,005146

(63,45,7) 4,652977 4,436016 4,63891 4,698992 4,41885 4,386902 4,668951 5,13196 4,590988 4,466057 4,60906

(63,39,9 5,068064 5,103827 4,964828 4,9541 5,833864 5,049944 5,028963 4,924059 4,968882 5,136967 5,10335

(63,36,11) 5,960941 5,85103 5,688906 5,62501 5,764008 5,804062 5,831957 5,743027 5,684853 5,668879 5,762267

(63,30,13) 6,188869 6,253958 6,306887 6,934881 6,267071 6,318092 6,322861 6,686926 6,35314 6,299019 6,39317

(63,24,15) 7,468939 7,117033 7,259846 7,563114 7,101059 7,274866 7,607937 6,941795 7,019043 7,289886 7,264352

(63,18,17) 8,558035 10,57696 8,021832 7,889986 7,885933 9,914875 9,881973 9,043932 9,155989 7,750034 8,867955

(63,18,19) 10,23483 8,806944 8,145094 8,657932 9,912968 9,603977 8,290052 8,249044 10,51688 8,436918 9,085464

(63,18,21) 9,264946 9,398937 9,264946 9,349108 9,244919 9,349823 9,222031 9,350061 9,311914 11,04307 9,479976

(63,16,23) 10,05697 12,26306 10,12206 10,07605 12,0399 10,45394 10,22911 9,929895 12,43806 10,12111 10,77302

(63,10,25) 11,03997 10,76198 11,39689 10,93292 11,35492 10,62393 11,36279 12,88986 10,81991 14,62197 11,58052

(63,10,27) 12,13884 12,02607 12,00295 14,34398 12,03895 13,8309 12,48503 12,02202 11,95693 12,40587 12,52515

(63,7,29) 13,66901 12,92801 14,75906 12,959 14,77099 16,17098 12,7759 15,54894 14,4949 14,87899 14,29558

(63,7,31) 13,76891 13,9358 17,12298 16,51406 16,84094 13,93199 18,53609 13,60297 17,02714 13,64803 15,49289

(23)

15

Lampiran 2 Rincian waktu eksekusi untuk n berbeda dan t sama dengan kesalahan sebanyak 30

(n,k,d) 1 2 3 4 5 6 7 8 9 10 rataan

(255,63,61) 73,586941 72,54982 78,482866 74,557066 72,27397 76,943874 74,984074 75,498104 77,684879 79,546928 75,610852

(511,259,61) 132,84397 127,98786 130,07903 132,82681 140,14697 128,91197 128,56388 129,19402 127,77209 133,46291 131,17895

(1023,728,61) 241,20688 238,53588 249,76301 241,13393 257,828 248,36802 234,18903 251,32394 253,57199 237,35285 245,32735

(2047,1717,61) 467,17095 495,7118 481,13585 495,51606 506,91891 469,45095 482,49578 495,61501 500,44394 468,16206 486,26213

(4095,3735,61) 927,06895 909,65796 941,24603 905,65896 904,49691 910,15601 941,44797 976,88293 936,373 952,60692 930,55956

(8191,7801,61) 1850,2848 1883,4569 1880,7809 1857,9159 1893,7728 1863,476 1894,875 1875,7269 1868,1309 1866,7009 1873,5121

(16383,15963,61) 3711,6728 3799,2129 3702,1489 3709,506 3711,5099 3697,5589 3734,4918 3743,1381 3728,2081 3739,7931 3727,7241

(24)

16

Lampiran 3 Rincian waktu eksekusi untuk n berbeda, t s ama dan tidak terjadi kesalahan

(n,k,d) 1 2 3 4 5 6 7 8 9 10 rataan

(255,63,61) 36,104918 33,095837 34,619093 37,490845 38,275003 36,196947 36,053896 30,675888 32,867908 32,537937 34,791827

(511,259,61) 71,681023 67,73591 67,594051 74,330807 70,359945 68,312883 78,981876 69,745064 78,594923 70,864916 71,82014

(1023,728,61) 139,22095 137,17794 137,27188 138,60202 139,04285 139,3199 139,49394 141,03889 143,90397 133,58688 138,86592

(2047,1717,61) 282,53698 283,40197 285,68888 293,9589 281,52108 302,34194 294,3089 284,47795 286,82709 286,05986 288,11235

(4095,3735,61) 607,22589 599,8199 592,74888 572,52097 606,97794 582,84211 609,51495 572,05796 576,86591 584,47599 590,50505

(8191,7801,61) 1180,5429 1141,712 1142,637 1141,937 1186,2631 1222,837 1173,1679 1180,8691 1184,33 1168,062 1172,2358

(16383,15963,61) 2286,3801 2318,428 2272,7358 3709,506 3711,5099 3697,5589 3734,4918 3743,1381 3728,2081 3739,7931 2324,5432

Gambar

Gambar 1 Proses pengiriman pesan melalui saluran terganggu (Guritman & Aliatiningtyas 2004)
Tabel 1.  konstruksi Kode BCH, dan algoritma proses enkoding Kode BCH dengan menggunakan
Tabel 2
Gambar 6 Proses dekoding
+4

Referensi

Dokumen terkait

Tujuan dari rapat ini adalah untuk (a) mendiskusikan masa depan organisasi, dan bagaimana Asosiasi bisa memberikan manfaat secara optimal dengan mekanisme dari, oleh

Selain itu, value tersebut juga didapatkan berdasarkan faktor-faktor yang bisa dieliminasi, dikurangi untuk menekan biaya yang tidak diperlukan serta faktor yang perlu

Tujuan dari program penjas dan olahraga berorientasi kecakapan hidup adalah agar setiap peserta, ketika menyelesaikan programnya, mempunyai pengertian bahwa (a) terdapat

Merujuk pengertian ini sasaran dari pembanguan HTR adalah masyarakat yang berada di dalam dan atau di sekitar hutan, masyarakat disini terdiri dari perorangan

Persentase tingkat depresi narapidana non residivis di Lembaga Pemasyarakatan Klas II A Banceuy sebesar 62,96% dengan kelompok depresi sedang adalah yang terbanyak yaitu

Untuk membantu menyusun pedoman wawancara dalam penelitian ini, peneliti menggunakan hasil penelitian Danu Jati Pradipta mengenai hasil analisis cara belajar

Hal ini karena postur tubuh pekerja pada saat melakukan pewarnaan motif batik sebelumnya dalam posisi membungkuk dalam durasi paling cepat 2 jam untuk