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 dariH
, 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, dan2. Jumlah setiap
i
vektor baris dariB
berbobot paling sedikit(
d−i)
untuk 2, 3,...,i= s di mana s=min
{
d−1,k}
, dan(
d− ≤1)
r, maka(
T |)
rH = 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 matriksB
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 matriksB
yang berukuran k r× yang semua baris dariB
berbeda dan jumlah setiapi
vektor baris dariB
berbobot paling sedikit(
d−i)
, 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 vektor2
r
x∈F 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 r−v. 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 mengefisiensikankomputasi 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 semua33
kombinasi
i
vektor baris diB
untuk i=1, 2,...,s, dan s=min{
d−1,k}
. Apabila x lulus uji, maka diperoleh satu vektor yang dapat ditambahkan ke matriksB
.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 matriksB
.Misalkan L1 adalah himpunan satu vektor yang dapat ditambahkan ke matriks
B
. Dari L1, dapat dicari pasangan dua vektor yang dapat ditambahkan ke matriksB
sehingga diperoleh kode linear dengan parameter[
n+2,k+2,d]
. Caranya adalah dengan menjumlahkan setiap kemungkinan dua vektor yangberbeda yang ada di L1. Misalkan hasil penjumlahannya adalah vektor
y
. Apabila boboty
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 kombinasii
vektor baris diB
untuk i=1, 2,...,s, dan{
}
min 1,
s= d− k . Apabila vektor
y
tersebut lulus uji, maka diperoleh dua vektor yang dapat ditambahkan ke matriksB
.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 matriksB
.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 matriksB
. Misalkan Lm adalah himpunan dari kumpulan m vektor anggota F2r yang dapat ditambahkan ke matriksB
. Dari Lm, dapat dicari(
m+1)
vektor yang bisa ditambahkan ke matriksB
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
(
y1∪y2) (
− y1∩y2)
dapat ditambahkan ke matriksB
.2. Menguji apakah kedua vektor anggota
(
y1∪y2) (
− y1∩y2)
yang jika ditambahkan dengan setiapi
vektor dalam(
y1∩y2)
, i=1, 2,...m−1 bisa ditambahkan ke matriksB
.Untuk menguji j vektor bisa ditambahkan ke matriks B, caranya adalah dengan menjumlahkan j vektor tersebut, misalkan hasil penjumlahannya adalah vektor
y
. Apabila boboty
lebih besar dari(
d−j)
, proses dilanjutkan dengan menguji bobot vektor(
y b+ i)
sedemikian sehingga wt y b(
+ i)
≥ − −d j i, dengani
b adalah anggota dari semua kombinasi
i
vektor baris diB
untuk i=1, 2,...,s, dan s=min{
d−1,k}
. Apabila vektory
tersebut lulus uji, maka diperoleh m+1vektor 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 matriksB
, dapat diilustrasikan pula dengan menggunakan teori graf, yaitu dengan memisalkan vektor 2ri
x ∈F 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 matriksB
, 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 denganparameter
[
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 diperolehinformasi bahwa ada kode dengan parameter
[
n' 1, ' 1,+ k + d]
, berarti kode optimal kuat tersebut telah gagal dikonstrusi. Dalam hal ini, harus dilakukan rekonstruksi35
ulang dengan strategi memilih kode dasar yang lain yang berpeluang besar dapat diperluas menjadi kode optimal kuat C.