• Tidak ada hasil yang ditemukan

3 HASIL DAN PEMBAHASAN 3.1 Formulasi Masalah

3.3 Metode Komputas

3.3.1 Ide dasar konstruksi kode

Untuk mengkonstruksi suatu kode, sama saja artinya dengan mengonstruksi matriks cek paritas

H

. Berlandaskan teorema-teorema yang telah disebutkan di landasan teori, cukup dikonstruksi bentuk standar dari

H

, yaitu

(

T

)

| r

H = B I .

Berdasarkan pertimbangan efisiensi komputasi, cukup dikonstruksi matriks

B

berukuran k r× . Setelah mempelajari teorema-teorema sebelumnya, terutama teorema Gilbert-Varshamov, dapat dibuat teorema baru yang berkaitan dengan konstruksi kode linear biner, yaitu:

31

Teorema 16

Jika matriks

B

berukuran k r× dikonstruksi berdasarkan sifat sebagai berikut.

1. Semua vektor baris dari

B

berbeda, dan

2. Jumlah setiap

i

vektor baris dari

B

berbobot paling sedikit

(

di

)

untuk 2, 3,...,

i= s di mana s=min

{

d−1,k

}

, dan

(

d− ≤1

)

r, maka

(

T |

)

r

H = B I dan G=

(

Ik|B

)

secara berturut-turut merupakan matriks cek paritas dan matriks generator untuk

kode linear C dengan parameter

[

k+r k, ,≥d

]

. Bukti:

Misalkan telah dikonstruksi matriks

B

berukuran k r× sebagaimana disyaratkan teorema. Akan ditunjukkan bahwa H =

(

Bt|Ir

)

merupakan matriks cek paritas untuk kode linear C dengan parameter

[

k+r k, ,≥d

]

.

Karena

H

berukuran r× +

(

k r

)

, maka C memiliki panjang k+r. Karena jumlah baris matriks

B

sama dengan k, maka kode linear C berdimensi k.

Selanjutnya, akan ditunjukkan bahwa kode linear C memiliki jarak minimum kurang dari atau sama dengan d . Andaikan ada v C∈ dengan

( )

wt v <d dan dituliskan v=

(

v vm, c

)

di mana vm merupakan vektor pesan dengan wt v

( )

m =i dan vc adalah vektor cek dengan wt v

( )

c = j, maka berlaku

( )

c i+ < ⇔ < − ⇒j d j d i wt v < −d i (1) dan

(

)

0 | 0 0 T T T T m T T T T T T T T r T m r c m c c v Hv B I B v I v B v v v ⎛ ⎞ = ⇔ = ⇔ + = ⇔ = ⎝ ⎠ . (2)

Karena wt v

( )

m =i, dan berdasarkan pada syarat 2 dari konstruksi B, maka

(

T T

)

m

32

Dari persamaan 2, diperoleh bahwa T T T

m c

B v =v , sehingga persamaan 3 ekivalen dengan wt v

( )

c ≥ −d i. Hal ini kontradiksi dengan persamaan 1. Sehingga dapat disimpulkan bahwa kode linear C memiliki jarak minimum ≥d.

͏

Dari Teorema 16, untuk mengonstruksi kode linear C-

[

k+r k d, ,

]

, sama artinya dengan mengonstruksi matriks

B

yang berukuran k r× yang semua baris dari

B

berbeda dan jumlah setiap

i

vektor baris dari

B

berbobot paling sedikit

(

di

)

, untuk i=1, 2, 3, ...,s, dengan s=min

{

d−1,k

}

, dan

(

d−1

)

r.

Misalkan diberikan matriks

B

untuk kode C dengan parameter

[

n k d, ,

]

, dengan G=

[

I B| k r×

]

adalah matriks generator untuk C. Akan dicari vektor

2

r

xF yang bisa ditambahkan ke matriks

B

sehingga diperoleh kode

[

n+1,k+1,d

]

.

Untuk memilih vektor x, pertama-tama dipilih salah satu baris dari matriks

B

. Misalkan pula banyaknya unsur satu dari baris tersebut sama denganv, dan banyaknya unsur nol sama dengan rv. Dari Teorema 16, salah satu syarat suatu vektor dapat ditambahkan adalah memiliki bobot paling sedikit sebesar d−1, sehingga dipilih vektor

( ) 1 1 1v | 2 r v x x× x × − ⎡ ⎤

= ⎣ ⎦ dengan x1 merupakan vektor biner yang memiliki

( )

v i− unsur satu dengan i=0,1, 2,...,v dan x2 merupakan vektor biner yang memiliki

(

j i

)

unsur satu dengan j = −d 2,d−1, ...r yang memenuhi ketaksamaan v+ −j 2i≥ −d 1 (karena bobot dari x sama dengan banyaknya unsur satu dalam x, yaitu sama dengan

(

v i− + −

) (

j i

)

, atau v− −j 2i). Pemilihan vektor dengan cara di atas dilakukan untuk mengefisiensikan

komputasi yang dilakukan, sehingga tidak semua vektor anggota F2r diuji berdasarkan Teorema 16.

Setelah diperoleh vektor x, langkah selanjutnya adalah menguji apakah vektor x dapat ditambahkan ke matriks

B

dengan menguji bobot vektor x b+ i sedemikian sehingga wt x b

(

+ i

)

≥ − −d 1 i, dengan bi adalah anggota dari semua

33

kombinasi

i

vektor baris di

B

untuk i=1, 2,...,s, dan s=min

{

d−1,k

}

. Apabila x lulus uji, maka diperoleh satu vektor yang dapat ditambahkan ke matriks

B

.

Jika semua langkah untuk memperoleh satu vektor diulangi sampai tidak

ada vektor anggota F2r yang bisa ditambahkan ke matriks

B

, maka akan diperoleh himpunan satu vektor yang dapat ditambahkan ke matriks

B

.

Misalkan L1 adalah himpunan satu vektor yang dapat ditambahkan ke matriks

B

. Dari L1, dapat dicari pasangan dua vektor yang dapat ditambahkan ke matriks

B

sehingga diperoleh kode linear dengan parameter

[

n+2,k+2,d

]

. Caranya adalah dengan menjumlahkan setiap kemungkinan dua vektor yang

berbeda yang ada di L1. Misalkan hasil penjumlahannya adalah vektor

y

. Apabila bobot

y

lebih besar dari

(

d−2

)

, proses dilanjutkan dengan menguji bobot vektor

(

y b+ i

)

sedemikian sehingga wt y b

(

+ i

)

≥ − −d 2 i, dengan bi adalah anggota dari semua kombinasi

i

vektor baris di

B

untuk i=1, 2,...,s, dan

{

}

min 1,

s= dk . Apabila vektor

y

tersebut lulus uji, maka diperoleh dua vektor yang dapat ditambahkan ke matriks

B

.

Jika semua langkah untuk memperoleh dua vektor diulangi sampai tidak ada

pasangan dua vektor anggota L1 yang bisa ditambahkan ke matriks

B

, maka akan diperoleh himpunan dari kumpulan dua vektor yang dapat ditambahkan ke matriks

B

.

Secara serupa, untuk memperoleh pasangan m+1 vektor yang bisa ditambahkan ke matriks

B

, dapat dicari dari himpunan dari kumpulan m vektor yang bisa ditambahkan ke matriks

B

. Misalkan Lm adalah himpunan dari kumpulan m vektor anggota F2r yang dapat ditambahkan ke matriks

B

. Dari Lm, dapat dicari

(

m+1

)

vektor yang bisa ditambahkan ke matriks

B

dengan cara mencari dua anggota Lm yang jika digabung memiliki m+1 vektor yang berbeda.

Misalkan dua kumpulan m vektor tersebut adalah y1 dan y2. Selanjutnya dilakukan pengujian sebagai berikut.

34

1. Menguji apakah kedua vektor anggota

(

y1y2

) (

y1y2

)

dapat ditambahkan ke matriks

B

.

2. Menguji apakah kedua vektor anggota

(

y1y2

) (

y1y2

)

yang jika ditambahkan dengan setiap

i

vektor dalam

(

y1y2

)

, i=1, 2,...m−1 bisa ditambahkan ke matriks

B

.

Untuk menguji j vektor bisa ditambahkan ke matriks B, caranya adalah dengan menjumlahkan j vektor tersebut, misalkan hasil penjumlahannya adalah vektor

y

. Apabila bobot

y

lebih besar dari

(

dj

)

, proses dilanjutkan dengan menguji bobot vektor

(

y b+ i

)

sedemikian sehingga wt y b

(

+ i

)

≥ − −d j i, dengan

i

b adalah anggota dari semua kombinasi

i

vektor baris di

B

untuk i=1, 2,...,s, dan s=min

{

d−1,k

}

. Apabila vektor

y

tersebut lulus uji, maka diperoleh m+1

vektor yang dapat ditambahkan ke matriks

B

.

Misalkan Lm adalah himpunan dari kumpulan m vektor anggota F2r yang dapat ditambahkan ke matriks

B

. Untuk mencari pasangan

(

m+1

)

vektor yang bisa ditambahkan ke matriks

B

, dapat diilustrasikan pula dengan menggunakan teori graf, yaitu dengan memisalkan vektor 2r

i

xF sebagai suatu verteks. Jika ada j verteks yang membentuk graf lengkap, maka j vektor yang berkaitan dengan verteks tersebut dapat ditambahkan ke matriks

B

. Dengan demikian, untuk memperoleh pasangan

(

m+1

)

vektor yang bisa ditambahkan ke matriks

B

, dipilih graf lengkap (complete graph) yang terdiri atas

(

m+1

)

verteks.

Dari penjabaran di atas, proses ekstensi kode

[

n k d, ,

]

tersebut dilakukan tahap demi tahap. Hal tersebut dilakukan sampai diperoleh suatu kode C dengan

parameter

[

n k d', ', '

]

yang sudah tidak bisa diperluas lagi. Jika telah dibuktikan bahwa kode dengan parameter

[

n' 1, ' 1,+ k + d

]

tidak ada, maka C merupakan kode optimal kuat yang telah berhasil dikonstruksi. Akan tetapi, ketika diperoleh

informasi bahwa ada kode dengan parameter

[

n' 1, ' 1,+ k + d

]

, berarti kode optimal kuat tersebut telah gagal dikonstrusi. Dalam hal ini, harus dilakukan rekonstruksi

35

ulang dengan strategi memilih kode dasar yang lain yang berpeluang besar dapat diperluas menjadi kode optimal kuat C.

Dokumen terkait