BAB IV HASIL DAN PEMBAHASAN - repository.ipb.ac.id · BAB IV . HASIL DAN PEMBAHASAN . Pada BAB IV...

21
BAB IV HASIL DAN PEMBAHASAN Pada BAB IV ini dibahas tentang permasalahan sebagai berikut: Kajian Teori yang digunakan dalam penelitian, Membahas Aritmetik Aljabar Matriks, Program-program Aritmetik Aljabar Matriks Biner, Program-program Pelacakan Kode Optimal Kuat, Algoritme Konstruksi kode optimal kuat, dan Konstruksi Kode Optimal Kuat Dengan Jarak Minimum 13 dan 15. Kajian Teori Diberikan kode linear C dengan parameter [n, k, d]. Misalkan H merupakan matriks cek paritas untuk C. Dari definisi matriks cekparitas C = , atau dengan kata lain C adalah himpunan solusi dari SPL H = 0 ( C disebut dengan kernel H) . Hal ini karena baris-baris dari matriks H merupakan basis untuk , komplemen orthogonal bagi C. Karena kode linear C merupakan kernel dari matriks cek paritasnya, maka mengkonstruksi suatu kode linear C sama dengan mengkonstruksi matriks cek paritasnya. Berikut ini adalah teorema yang berkaitan dengan konstruksi kode linear biner optimal kuat. Teorema 6 (The Gilbert-Varshamov bound) Diberikan kode linear C dengan parameter [n, k, d]. Jika ketaksamaan 1 + + + + < berlaku maka dapat dikonstruksi kode dengan parameter [n+1, k+1, d]. Bukti : Misal diberikan kode linear yang memiliki parameter [n, k, d]. Berdasarkan Teorema 7, ada matriks cek paritas berordo (n – k) n, yaitu H = yang setiap d – 1 vektor dari adalah bebas linear dalam ruang vektor . Jika ada vektor x yang bukan i kombinasi linear dari vektor-vektor kolom H, untuk i = 1,2,…,d – 2 , maka = adalah matriks cek paritas untuk kode linear yang memiliki parameter [n + 1, k + 1, d].

Transcript of BAB IV HASIL DAN PEMBAHASAN - repository.ipb.ac.id · BAB IV . HASIL DAN PEMBAHASAN . Pada BAB IV...

BAB IV

HASIL DAN PEMBAHASAN

Pada BAB IV ini dibahas tentang permasalahan sebagai berikut: Kajian

Teori yang digunakan dalam penelitian, Membahas Aritmetik Aljabar Matriks,

Program-program Aritmetik Aljabar Matriks Biner, Program-program Pelacakan

Kode Optimal Kuat, Algoritme Konstruksi kode optimal kuat, dan Konstruksi

Kode Optimal Kuat Dengan Jarak Minimum 13 dan 15.

Kajian Teori

Diberikan kode linear C dengan parameter [n, k, d]. Misalkan H merupakan

matriks cek paritas untuk C. Dari definisi matriks cekparitas

C = , atau dengan kata lain C adalah himpunan solusi dari SPL

H = 0 ( C disebut dengan kernel H) . Hal ini karena baris-baris dari matriks H

merupakan basis untuk , komplemen orthogonal bagi C.

Karena kode linear C merupakan kernel dari matriks cek paritasnya, maka

mengkonstruksi suatu kode linear C sama dengan mengkonstruksi matriks cek

paritasnya. Berikut ini adalah teorema yang berkaitan dengan konstruksi kode

linear biner optimal kuat.

Teorema 6 (The Gilbert-Varshamov bound)

Diberikan kode linear C dengan parameter [n, k, d]. Jika ketaksamaan

1 + + + + < berlaku maka dapat dikonstruksi kode

dengan parameter [n+1, k+1, d].

Bukti :

Misal diberikan kode linear yang memiliki parameter [n, k, d]. Berdasarkan

Teorema 7, ada matriks cek paritas berordo (n – k) n, yaitu H =

yang setiap d – 1 vektor dari adalah bebas linear dalam ruang

vektor . Jika ada vektor x yang bukan i kombinasi linear dari

vektor-vektor kolom H, untuk i = 1,2,…,d – 2 , maka = adalah

matriks cek paritas untuk kode linear yang memiliki parameter [n + 1, k + 1, d].

22 Hal ini karena berordo (n – k ) ( k + 1) dan setiap d – 1 vektor dari

adalah bebas linear dalam ruang vektor .

Jika banyaknya kombinasi linear yang mungkin dari kolom-kolom

sehingga tidak ada d – 1 kolom yang bergantung linear lebih besar atau sama

dengan jumlah vektor tak nol dalam , maka bukan matriks cek paritas

untuk kode linear dengan parameter [n + 1, k + 1, d]. Banyaknya vektor-vektor tan

nol dalam yang mungkin dipilih untuk x adalah . Sedangkan

banyaknya kombinasi linear yang mungkin dari kolom-kolom adalah

+ + … + , sehingga jika ada kode linear C dengan parameter

[n, k, d], dan persamaan 1 + + + … + < berlaku, maka

dapat dikonstruksi kode baru dengan parameter [n + 1, k + 1, d] berdasarkan kode

linear C tersebut.

Teorema 7

Diberikan kode linear C dengan panjang n. Jika H adalah matriks cek paritas

dari suatu kode dengan panjang n, maka kode tersebut mempunyai dimensi

(n – r) jika dan hanya jika ada r kolom dari H yang bebas linear tetapi tidak ada

r + 1 kolom dari H yang bebas linear (r adalah rank dari H).

Bukti:

Diberikan kode linear C dengan panjang n. Misalkan H adalah matriks cek

paritas bagi kode linear C. Misalkan pula G adalah matriks generator bagi kode

linear C. Kode linear C memiliki pangkat (n – r) jika dan hanya jika rank

(G) = (n – k). [karena G adalah basis, dan banyaknya baris di G menunjukkan

dimensi suatu kode]. Karena G dan H saling orthogonal, maka rank (G) = (n – r)

jika dan hanya jika rank (H) = r.

Teorema 8

Diberikan kode linear C dengan panjang n. Jika H adalah matriks cek paritas

dari suatu kode dengan panjang n maka kode tersebut mempunyai jarak minimum

d jika dan hanya jika setiap d – 1 kolom dari H yang bebas linear dan ada d kolom

dari H yang tidak bebas linear.

23 Bukti :

Diberikan kode linear C dengan panjang n. Misalkan H adalah matriks cek

paritas bagi kode linear C. Kode linear C berbobot minimum d jika dan hanya jika

kedua sarat berikut terpenuhi

i. Ada vektor v ϵ dengan wt (v) = d sehingga =

ii. untuk setiap w ϵ dengan wt (w) < d. (jika =

maka w ϵ C. Kontradiksi dengan fakta bahwa wt (w) < d).

Disisi lain, kedua sarat di atas (i dan ii) dapat terjadi jika dan hanya jika ada d

kolom dari H yang tidak bebas linear dan setiap d – 1 kolom dari H yang bebas

linear.

Teorema 9 (The Singleton bound)

Diberikan kode linear C. Jika C adalah kode dengan parameter [n, k, d]

maka (n – k) (d – 1).

Bukti :

Misal diberikan kode kode linear C dengan parameter [n, k, d], maka kode

linear C memiliki matriks cek paritas H berukuran (n – k) x n, sehingga

rank (H) ≤ (n – k). Dari teorema 7, matriks H memiliki d – 1 kolom yang bebas

linear. Sehingga rank (H) = (d – 1), dengan kata lain (d – 1) ≤ (d – k).

Mengonstruksi suatu kode, sama artinya dengan mengonstruksi matriks cek

paritas H. Berdasarkan teorema-teorema yang telah disebutkan di landasan teori,

maka cukup dikonstruksi bentuk standar dari H, yaitu H = . Dan atas

pertimbangan efisiensi komputasi, cukup dikonstruksi matriks B berukuran k r.

Dari teorema Gilbert-Vashamov diturunkan suatu teorema baru yaitu Teorema 10.

Dalam tulisan ini konstruksi kode linear biner optimal kuat dilakukan atas

dasar Teorema 10 berikut ini.

Teorema 10

Jika matriks B berukuran k r dikonstruksi berdasarkan sifat-sifat sebagai

berikut :

1. Semua vektor baris dari B berbeda, dan

2. Jumlah setiap i vektor baris dari B berbobot paling sedikit (d – i) untuk

i = 2, 3, …, s dimana s = min {d – 1 , k}, dan (d – 1) ≤ r,

24 maka H = dan G = 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 ditunjukan bahwa H = 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 ditunjukan bahwa kode linear C memiliki jarak

minimum ≥ d. Andaikan ada v C dengan wt < d dan ditulis

v = dimana merupakan vektor pesan dengan wt = i dan

adalah vektor cek dengan wt = j , maka berlaku

i + j < d d – i wt < d – i ( 1.1 )

dan

H = = + = = ( 1.2 )

Karena wt = i , dan berdasarkan sifat 2 dari Teorema 10, maka

wt ≥ d – i ( 1.3 )

Dari persamaan 1.2 diperoleh bahwa = , sehingga persamaan 1.3

ekivalen dengan wt ≥ d – i. Hal ini kontradiksi dengan persamaan 1.1.

Sehingga dapat disimpulkan bahwa kode linear C memiliki jarak

minimum ≥ d.

Dari Teorema 10 , 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 (d – i),

untuk i = 2, 3, …, s dengan s = min { d – 1 , k }, dan (d – 1) < r.

Membahas Aritmetik Aljabar Matriks

Untuk kepentingan efisiensi komputasi maka data pada penelitian ini

disajikan dalam representasi himpunan. Sebelum melakukan eksplorasi untuk

mengonstruksi kode optimal kuat maka kita perlu melakukan pendefinisian data

25 yang kita gunakan dalam representasi himpunan. Adapun langkah-langkah yang

dilakukan dalam membangun aritmetik aljabar matriks mengacu pada tesis

Putranto HU (2011).

Langkah-langkah untuk membangun aritmetik aljabar matriks adalah sebagai

berikut:

a. Mendefinisikan Ruang Vektor Biner sebagai himpunan Kuasa

(power set) dari = {0, 1, 2, …., n – 1}.

Dalam penelitian ini sembarang vektor biner dengan panjang n secara

komputasi merupakan subhimpunan dari , sedangkan operasi jumlah

dari dua vektor diartikan sebagai selisih simetrik dari dua himpunan, dan

produk dalam dari dua vektor dipandang sebagai irisan dari dua

himpunan. Pada penelitian ini matriks biner A berordo n p kita pandang

sebagai list dari sebanyak p subhimpunan dari .

b. Mendefinisikan matriks sebagai list (daftar) dari sejumlah anggota .

Sebagai contoh :

* Jika A =

Ini artinya bahwa =

* B =

Artinya =

Program-program Aritmetik Aljabar Matriks Biner

Sebelum melakukan pelacakan kode optimal kuat terlebih dahulu kita

membangun aritmetik aljabar matriks dengan menggunakan program-program

yang mengacu pada tesis Putranto HU (2011). Rincian program-program ada di

Lampiran B.

Berikut ini adalah program-program yang digunakan :

26

a. AcakSet yaitu suatu program yang digunakan untuk membangkitkan

vektor dalam ruang berdimensi n secara acak.

b. Addv yaitu suatu program yang digunaakan untuk menjumlahkan dua

vektor.

c. MtxSetC yaitu program untuk mendefinisikan matriks kolom biner

berordo m n secara acak, dimana m adalah ukuran vektor baris dan n

adalah banyaknya vektor kolom dalam matriks.

d. MtxSetC1 yaitu program yang mendefinisikan matriks kolom biner

berordo m n secara acak, tidak vektor kolom yang nol. Dalam hal ini

m adalah panjang vektor dan n adalah banyaknya vektor kolom dalam

matriks.

e. UbahMtxCR yaitu program yang mengubah tampilan matriks kolom

ke matriks baris berukuran n m.

f. TrpsC yaitu suatu program yang digunakan untuk menentukan

transpose matriks kolom berordo m n menghasilkan matriks kolom

berordo n m.

g. TukarR yaitu suatu program yang digunakan untuk menukar baris ke-

i dan ke-j dalam matriks kolom berordo m n, dimana 0 ≤ i,

j ≤ m – 1.

h. GantiB yaitu suatu program yang digunakan untuk mengganti baris

ke-j dengan bris ke-i ditambah baris ke-j dalam matriks kolom berordo

m x n, dimana 0 ≤ i, j ≤ m – 1.

i. KanonC yaitu suatu program yang digunakan untuk menentukan

bentuk kanonik matriks kolom berordo m n , dimana m ≤ n.

j. AddMtx yaitu program yang digunakan untuk menjumlahkan dua

matriks.

k. DotV yaitu program untuk menentukan produk titik dari dua vektor.

l. MultMtx yaitu program untuk mengalikan matriks kolom m n

dengan matriks kolom n p.

m. InkodG yaitu program yang digunakan untuk mengkoding vektor

pesan P menjadi vektor katakode C menggunakan matriks generator

umum G berordo k n.

27

n. ParG yaitu program untuk menentukan vektor paritas X dari vektor

pesan P menggunakan matriks generator bentuk standar G = ,

dalam hal ini P dan B menjadi input, dan X adalah output. Vektor

C = adalah katakode dari pesan P.

o. InkodS yaitu program yang digunakan untuk mengkoding vektor

pesan P menjadi vektor katakode C menggunakan matriks generator

bentuk standar G = , dalam hal ini P dan B menjadi input.

p. HmDist yaitu suatu program untuk menentukan jarak hamming dari

dua vektor.

q. NonZeroWt yaitu suatu program untuk menentukanbobot tak- nol

dari suatu kode yang direpresentasikan oleh matriks generator G.

Program-program Pelacakan Kode Optimal Kuat

Untuk mengonstruksi kode optimal kuat digunakan program-program

pelacakan kode optimal kuat yang mengacu pada tesis Putranto HU (2011),

sedangkan rincian lengkap dari program-program ada di Lampiran C.

Program-program yang digunakan adalah sebagai berikut :

1. Diberikan matriks generator dalam bentuk standar G = .

2. Misalkan M adalah matriks representasi vektor baris dari B.

3. Menentukan list semua kombinasi j vektor dari vektor-vektor M

(representasi baris) untuk suatu nilai j=1,2,3,…..,k (dengan program

KombinM)

4. Menambah satu baris vektor v ke matriks M (representasi baris) di posisi

terahir (dengan program AddVekM).

5. Menghapus baris ke-i pada matriks M (representasi kolom) dengan

program DelVekM.

6. Menentukan list dari semua list kombinasi M untuk semua j=1,2,3,…..,t

dengan t = min{k,d-1}dengan program ListKombM.

7. Menguji apakah vektor x bisa ditambahkan ke M menggunakan output

ListKombM dengan program UjiAdd1VekM.

28

8. Melacak satu vektor baris x dalam yang bisa ditambahkan ke M

berlandaskan teorema Gilbert-Vashamov dengan program

Lacak1VekM. Prosedur ini menggunakan program UjiAdd1VekM.

9. Menentukan himpunan semua vektor baris x dalam yang bisa

ditambahkan ke M berdasarkan teorema Gilbert-Vashamov dengan

program Kolek1VekM. Prosedur ini menggunakan UjiAdd1VekM.

10. Membuang anggota output dari Kolek1VekM dan menyisakan vektor-

vektor yang menghasilkan matriks-matriks yang tidak saling ekivalen

jika ditambahkan ke M dengan program ReduEkil.

11. Misalkan himpunan H adalah output Kolek1VekM, maka setiap pasang

vektor (x, y) anggota H akan menghasilkan vektor z = x + y. Agar dua

vektor x dan y dapat ditambahkan langsung ke matriks M, maka z diuji

dengan prosedur UjiAdd2VekM berdasarkan output ListKombM.

12. Menentukan himpunan semua pasang (x, y) dalam yang bisa

ditambahkan ke M berdasarkan teorema Gilbert-Vashamov dengan

program Kolek2VekM. Prosedur ini menggunakan UjiAdd2VekM.

13. Menentukan himpunan semua pasang (x, y) menggunakan data hasil

sebelumnya dengan program Kolek2VekMDt.

14. Membuang anggota output Kolek2VekM dan menyisakan vektor-vektor

yang menghasilkan matriks-matriks yang tidak saling ekivalen jika

ditambahkan ke M dengan program ReduEkiX.

15. Misalkan himpunan H adalah output Kolek2VekM, maka setiap 3

vektor (x, y, z) anggota H akan menghasilkan vektor w = x + y + z,

agar tiga vektor x, y dan z dapat ditambahkan langsung ke matriks M,

maka W diuji dengan prosedur UjiAdd3VekM berdasarkan output

ListKombM.

16. Menentukan himpunan semua pasang (x, y, z) dalam yang dapat

ditambahkan ke M berdasarkan teorema Gilbert-Vashamov

menggunakan program Kolek3VekM. Prosedur ini menggunakan

program UjiAdd3VekM.

17. Menentukan himpunan semua pasang (x, y, z) menggunakan data hasil

sebelumnya dengan program Kolek3VekMDt.

29

18. Misalkan himpunan H adalah output Kolek3VekM, maka setiap 4

vektor (x, y, z, w) anggota H akan menghasilkan vektor v = w + x +

y + z, agar empat vektor x, y, z dan w dapat ditambahkan langsung ke

matriks M, maka v diuji dengan prosedur UjiAdd4VekM berdasarkan

output ListKombM.

19. Menentukan himpunan semua pasang (x, y, z, w) dalam yang dapat

ditambahkan ke M berdasarkan teorema Gilbert-Vashamov dengan

program Kolek4VekM. Prosedur ini menggunakan UjiAdd4VekM.

20. Menentukan himpunan semua pasang (x, y, z, w) menggunakan data

hasil sebelumnya dengan program Kolek4VekMDt.

21. Misalkan himpunan H adalah output Kolek4VekM, maka setiap lima

vektor (x, y, z, v, w) anggota H akan menghasilkan vektor u = w + v +

x + y + z, agar lima vektor x, y, z, v dan w dapat ditambahkan langsung

ke matriks M, maka u diuji dengan prosedur UjiAdd5VekM

berdasarkan output ListKombM.

22. Menentukan himpunan semua pasang (x, y, z, v, w) dalam yang dapat

ditambahkan ke M berdasarkan teorema Gilbert-Vashamov dengan

program Kolek5VekM. Prosedur ini menggunakan UjiAdd5VekM.

23. Menentukan himpunan semua pasang (x, y, z, v, w) menggunakan hasil

data sebelumnya dengan program Kolek5VekMDt.

24. Misalkan himpunan H adalah output dari Kolek(X-1)VekM, maka

setiap x vektor anggota H akan menghasilkan jumlah. Agar x vektor ini

dapat ditambahkan langsung ke matriks M, maka diuji dengan prosedur

UjiAddXVekM berdasarkan output ListKombM.

25. Menentukan himpunan semua x vektor yang dapat ditambahkan ke M

berdasarkan teorema Gilbert-Vashamov dengan program KolekXVekM.

Prosedur ini menggunakan UjiAddXVekM.

26. Menentukan himpunan semua pasang x vektor menggunakan data hasil

sebelumnya dengan program KolekXVekMDt.

30 Algoritme Konstruksi Kode Optimal Kuat

Dalam mengonstruksi kode optimal kuat digunakan algoritme-algoritme

yang mengacu pada tesis Putranto HU (2011), sedangkan rincian program

konstruksi ada di Lampiran D.

Berikut ini adalah algoritme-algoritme yang digunakan:

Algoritme 1 untuk mengkonstruksi kode optimal kuat adalah sebagai

berikut:

1. Masukan bentuk standar dari matriks H yaitu H =

Untuk mempertimbangkan efisiensi komputasi maka kita cukup

memasukan matriks B berukuran k r yang memenuhi sifst-sifat:

a. Vektor-vektor dari B berbobot paling sedikit ( d-1 ).

b. Jumlah setiap i-vektor baris dari B berbobot paling sedikit ( d-1 )

untuk i = 2, 3, …..s, dimana s = min { d-1, k }.

2. Eksplorasi matriks B dengan cara:

a. Menambahkan beberapa matriks kolom nol pada B sesuai dengan

yang diinginkan.

b. Menentukan list dari semua list kombinasi j vektor dari vektor-

vektor M (representasi baris) untuk semua j = 1, 2, 3,…, t dengan

t = min{k, d - 1}

c. Mengkoleksi semua vektor baris X dalam yang bisa ditambahkan ke

M berdasarkan teorema Gilbert-Vashamov.

3. Print salah satu kode optimal kuat hasil eksplorasi.

Dalam melakukan eksplorasi terhadap matriks B ini dilakukan secara

bertahap. Pada langkah 2a matriks kolom yang ditambahkan pada B adalah

matriks kolom nol dan penambahannya bisa satu kolom, dua kolom, tiga kolom,

dan seterusnya tergantung dengan kebutuhan. Pada langkah 2b menentukan semua

list dari peningkatan dimensi yang dapat dilakukan maksimal sama dengan

dimensi dari matriks yang akan diubah. Sebagai contoh jika matriks B yang akan

ditingkatkan dimensinya berukuran k r, maka matriks B ini hanya dapat

ditingkatkan maksimal sebanyak k dimensi. Pada langkah 2c mengoleksi vektor

baris x dalam yang dapat ditambahkan pada M berdasarkan teorema Gilbert-

Vashamov. Maksudnya adalah untuk meningkatkan dimensi dari matriks dasar.

31 Dimulai dengan meningkatkan satu dimensi, dua dimensi, tiga dimensi, empat

dimensi, lima dimensi dan seterusnya. Adapun algoritma yang digunakan adalah

sebagai berikut :

Algoritme 2 : mencari satu vektor x dalam yang dapat ditambahkan ke B

berdasarkan teorema Gilbert-Vashamov

1. Input vektor x ϵ

2. Bobot vektor x + sedemikian sehingga wt (X + ) ≥ d – 1 – i,

dengan adalah anggota dari semua kombinasi i-vektor baris di B

untuk i = 1,2,3,…t, dan t = min {d – 1, k}.

3. Jika x lulus uji lanjutkan langkah 4.

4. Print satu vektor yang dapat ditambahkan ke dalam matriks B.

Algoritme 3 : mencari dua vektor x dan y yang dapat ditambahkan ke dalam

matriks B berdasarkan teorema Gilbert-Vashamov.

1. Input adalah koleksi dari himpunan satu vektor yang dapat ditambahkan

ke matriks B, misalkan .

2. Jika wt ( z) > d – 2, dimana z = x + y untuk setiap x, y ϵ , maka

lanjutkan langkah 3.

3. Uji bobot vektor sedemikian sehingga wt ≥ d – 2 – i,

dengan adalah anggota dari semua kombinasi i-vektor baris di B

untuk i = 1,2,3,…t, dan t = min {d – 1, k}.

4. Jika x dan y lolos uji maka lanjutkan langkah 5.

5. Print dua vektor x dan y yang dapat ditambahkan ke dalam matriks B.

Algoritme 4 : menguji apakah m + 1 vektor bisa ditambahkan ke matriks B.

1. Input adalah koleksi dari himpunan m vektor anggota yang dapat

ditambahkan ke matriks B, misalkan .

2. Misal , ϵ . Jika dan digabung memiliki m + 1 vektor yang

berbeda maka selanjutnya dilakukan pengujian sebagai berikut.

a. Diuji apakah kedua vektor anggota ( ) – ( ) dapat

ditambahkan ke matriks B.

32

b. Diuji apakah kedua vektor anggota ( ) – ( ) yang jika

ditambahkan dengan setiap i vektor dalam ( ), i = 1, 2, …, m-1

bisa ditambahkan ke matriks B.

3. Untuk menguji j vektor yang bisa ditambahkan ke matriks B, yaitu dengan

menjumlahkan j vektor tersebut, misalkan hasil penjumlahannya adalah

vektor y. Jika wt (j) > (d – j) lanjutkan langkah 4.

4. Uji bobot vektor ( y + ) sedemikian sehingga wt ( y + ) ≥ d – j – i,

dengan adalah anggota dari semua kombinasi i vektor baris di B untuk

i = 1, 2, …, s, dan s = min {d – 1, k}.

5. Jika vektor y lolos uji, maka lanjutkan langkah 6.

6. Print m + 1 vektor yang dapat ditambahkan ke matriks B.

Berikut ini adalah program-program yang digunakan untuk meningkatkan

dimensi pada matriks dasar.

Tabel 2 Program dan Prosedur untuk meningkatkan dimensi dari matriks Dasar

Untuk meningkatkan Program Prosedur

1

2

3

4

5

6

Satu dimensi

Dua dimensi

Tiga dimensi

Empat dimensi

Lima dimensi

x dimensi

Kolek1VekM

Kolek2VekM

Kolek3VekM

Kolek4VekM

Kolek5VekM

KolekXVekM

UjiAdd1VekM

UjiAdd2VekM

UjiAdd3VekM

UjiAdd4VekM

UjiAdd5VekM

UjiAddXVekM

33 Konstruksi Kode Optimal Kuat Dengan Jarak Minimum 13 dan 15

Tabel 3 Hasil Eksplorasi Kode Optimal dengan jarak minimum d = 13

Panjang (n) Dimensi (k) Jarak Minimum (d) Kode [n, k, d]

20 2 13 [20, 2, 13]

24 3 13 [24, 3, 13]

27 5 13 [27, 5, 13]

29 6 13 [29, 6, 13]

32 8 13 [32, 8, 13]

34 9 13 [34, 9, 13]

1. Konstruksi kode [20, 2, 13]

Konstruksi dimulai dari kode [20, 2, 13], yaitu dengan mendefinisikan

matriks B yang berukuran 2 18 sebagai berikut

B =

Dengan menggunakan program UbahMtxCR mengubah tampilan matriks kolom

ke matriks baris M. Berikutnya untuk memastikan bahwa jarak minimum d = 13

maka di uji dengan program NonZeroWt.

2. Konstruksi kode [24, 3, 13]

Selanjutnya matriks B berordo 2 18 ini digunakan sebagai matriks dasar

untuk diperluas menjadi matriks yang berordo 3 21 dengan cara: pertama-

tama kita menambahkan tiga vektor kolom nol pada matriks dasar sehingga

matriks B berordo 2 21. Berikutnya kita mengubah tampilan matriks kolom ke

matriks baris M dengan program UbahMtxCR. Untuk memastikan bahwa

matriks dasar memiliki jarak minimum d = 13 maka kita uji dengan program

NonZeroWt. Karena matriks dasar berdimensi dua maka kita dapat

meningkatkanya sampai maksimum dua dimensi. Selanjutnya dengan program

ListKombM mencari semua kemungkinan vektor baris X dalam yang dapat

ditambahkan ke matriks M. Dengan program Kolek1VekM kita meningkatkan

dimensi dari matriks dasar menjadi tiga, sehingga dimensinya menjadi tiga. Tanpa

34 memperhatikan relasi ekivalensi, hasil eksplorasi menunjukan minimal ada

42.875 macam yang berordo 3 21 yang mendefinisikan kode dengan

parameter [24, 3. 13]. Dan dengan program ReduEki1 dihilangkan matriks-

matriks yang saling ekivalen ternyata diperoleh 8 macam yang tidak saling

ekivalen, salah satunya

=

3. Konstruksi kode [27, 5, 13]

Matriks berordo 3 21 ini dijadikan matriks dasar untuk diperluas

menjadi matriks yang berordo 5 22. Caranya adalah; Pertama-tama

matriks ini ditambah satu vektor kolom nol sehingga menjadi matriks dasar

yang berordo 3 22. Kemudian matriks diubah, dari tampilan matriks kolom

menjadi matriks baris M dengan menggunakan program UbahMtxCR. Untuk

memastikan bahwa matriks dasar memiliki jarak minimum d = 13 maka kita uji

dengan program NonZeroWt. Karena M berdimensi 3 maka kita dapat

meningkatkan matriks dasar ini maksimal 3 dimensi. Dengan program

ListKombM mencari semua kemungkinan vektor baris X dalam yang dapat

ditambahkan ke M. Dengan program Kolek1VekM kita tingkatkan dimensi dari

matriks dasar satu tingkat sehingga dimensinya menjadi empat, dan hasilnya

terdapat minimal ada 17.496 kode dengan parameter [26, 4, 13]. Selanjutnya

ditingkatkan lagi dimensinya menjadi menjadi lima dengan cara menambahkan

satu lagi vektor baris X dalam ke M dengan program Kolek2VekMDt. Dari hasil

eksplorasi tanpa melihat relasi ekivalensi ternyata minimal ada 39.432 macam

matriks berordo 5 22 yang mendefinisikan kode dengan parameter

[27, 5, 13]. Dengan program ReduEkiX dihilangkan matriks-matriks yang saling

ekivalen. Hasilnya hanya minimal ada 4 macam matriks yang tidak saling

ekivalen. Salah satunya adalah

35

=

4. Konstruksi kode [29, 6, 13]

Matriks berordo 5 22 ini dijadikan matriks dasar untuk diperluas lagi

menjadi matrik yang berordo 6 23. Dengan cara ; Pertama-tama matriks

dasar ini ditambahkan satu vektor kolom nol sehingga menjadi matriks dasar yang

berordo 5 23. Dengan program UbahMtxCR diubah tampilan matriks, dari

matriks kolom menjadi matriks baris M. Untuk memastikan bahwa matriks dasar

kita mempunyai jarak minimum d = 13, maka kita uji dengan menggunakan

program NonZeroWt. Karena dimensi dari matriks dasar kita adalah lima, maka

kita dapat meningkatkan dimensi dari matriks dasar tersebut maksimal lima

dimensi. Dengan program ListKombM mencari semua kemungkinan vektor

baris X dalam yang dapat ditambahkan ke M. Dengan program Kolek1VekM

kita tingkatkan dimensi dari matriks dasar satu tingkat menjadi enam. Dari hasil

eksplorasi paling tidak ada satu macam matriks berukuran 6 23 yang

mendefinisikan kode dengan parameter [29, 6, 13]. Matriks tersebut adalah

=

5. Konstruksi kode [32, 8, 13]

Matriks berordo 6 23 ini dijadikan matriks dasar untuk diperluas lagi

menjadi matriks berordo 8 24 yang mendefinisikan kode dengan parameter

[32, 8, 13]. Dengan cara; Pertama-tama ditambahkan satu vektor kolom nol dan

menghapus baris ke-1 pada matriks representasi kolom dengan program

DelVekM sehingga didapat matriks dasar yang berordo 5 24. Kemudian

dengan program UbahMtxCR diubah tampilan matriks, dari matriks kolom

menjadi matriks baris M. Karena matriks dasar kita berdimensi lima maka, kita

dapat meningkatkan maksimal sampai lima dimensi. Dengan program

ListKombM mencari semua kemungkinan vektor baris X dalam yang dapat

36 ditambahkan ke M. Dengan program Kolek1VekM kita meningkatkan dimensi

dari matriks dasar satu tingkat sehingga dimensinya menjadi enam. Setelah

ditingkatkan satu dimensi ternyata diperoleh setidaknya ada 14.692 kode dengan

parameter [30, 6 13]. Berikutnya dengan program Kolek2VekMDt dimensinya

ditingkatkan satu tingkat lagi menjadi tujuh, dan didapat paling sedikit ada 1.000

kode dengan parameter [31, 7, 13]. Selanjutnya dengan program

Kolek3VekMDtx, dimensinya ditingkatkan satu tingkat lagi menjadi delapan,

dan diperoleh paling sedikit ada 192 matriks berordo 8 24 yang

mendefinisikan kode dengan parameter [32, 8, 13]. dan setelah dihilangkan

matriks-matriks yang saling ekivalen dengan program ReduEkiX ternyata

semuanya tidak saling ekuivalen, Sehingga didapat paling tidak ada 192 matriks

berukuran 8 24 yang mendefinisikan kode dengan parameter [32, 8, 13].

Salah satunya adalah

=

6. Konstruksi kode [34, 9, 13]

Matriks berordo 8 24 dijadikan matriks dasar untuk diperluas lagi

menjadi matriks berordo 9 25 untuk mendefinisikan kode dengan parameter

[34, 9, 13]. Dengan cara; Pertama-tama ditambahkan satu vektor kolom nol, dan

menghapus baris ke-1 pada matriks representasi kolom dengan program

DelVekM sehingga didapat matriks dasar yang berukuran 7 25. Kemudian

dengan program UbahMtxCR diubah tampilan matriks, dari matriks kolom

menjadi matriks baris M. Karena matriks dasar ini berdimensi tujuh maka kita

dapat meningkatkan matriks dasar ini maksimal sampai tujuh dimensi. Dengan

program ListKombM mencari semua kemungkinan vektor baris X dalam yang

dapat ditambahkan ke M. Dengan program Kolek1VekM kita tingkatkan satu

dimensi sehingga ukuran matriks menjadi 8 25, ternyata didapat paling sedikit

ada 2.107 kode dengan parameter [33, 8, 13]. Selanjutnya dengan program

Kolek2VekMDt dimensinya ditingkatkan lagi satu tingkat sehingga ukuran

37 matriks menjadi 9 25, ternyata didapat paling sedikit ada dua matriks

berukuran 9 25 yang mendefinisikan kode dengan parmeter [34, 9, 13]. Matriks

yang didapat sebagai berikut:

[1] =

Dan

[2] =

Untuk selanjutnya ini gagal untuk diperluas lagi. Seandainya matriks

tersebut dapat diperluas menjadi matriks berukuran 10 25 maka telah berhasil

diperbaiki batas bawah untuk kode yang berjarak minimum d = 13, yaitu kode

dengan parameter [35, 10, 13]. Atau dengan kata lain telah berhasil dikonstruksi

kode baru yaitu kode [35, 10, 13].

Tabel 4 Hasil Eksplorasi Kode Optimal dengan jarak minimum d = 15

Panjang (n) Dimensi (k) Jarak Minimum (d) Kode [ n, k, d ]

23 2 15 [23, 2, 15]

27 3 15 [27, 3, 15]

31 6 15 [31, 6, 15]

35 8 15 [35, 8, 15]

37 9 15 [37, 9, 15]

38

7. Konstruksi kode [23, 2, 15]

Untuk kode [ 23, 2, 15 ] dapat dikonstruksi dengan mudah menggunakan

matriks B berukuran 2 21 sebagai berikut

B =

Tetapi matriks B ini tidak berhasil diperluas untuk mendapatkan kode optimal

berikutnya.

8. Konstruksi kode [27, 3, 15]

Karena matriks B tidak dapat diperluas untuk mendapatkan kode optimal

berikutnya, maka selanjutnya dikonstruksi matriks dasar berukuran 3 24

untuk mendefinisikan kode dengan parameter [ 27, 3, 15 ]. Matriks yang

digunakan adalah sebagai berikut

=

9. Konstruksi kode [31, 6, 15]

Matriks berordo 3 24 ini dijadikan sebagai matriks dasar untuk

diperluas menjadi matriks yang berordo 6 25 untuk mendefinisikan kode

dengan parameter [31, 6, 15]. Dengan cara; pertama menambahkan satu vektor

kolom nol pada matriks dasar sehingga matriks dasar ordonya menjadi 3 25,

dilanjutkan dengan mengubah tampilan matriks, dari matriks kolom menjadi

matriks baris M dengan program UbahMtxCR. Selanjutnya untuk memastikan

bahwa jarak minimum distenya 15 maka digunakan program NonZeroWt.

Karena matriks yang dijadikan matriks dasar mempunyai dimensi tiga, maka

dimensinya dapat ditingkatkan maksimal tiga dimensi. Dengan program

ListKombM mencari semua kemungkinan vektor baris X dalam yang dapat

ditambahkan ke M. Dengan program Kolek1VekM ditingkatkan satu dimensi

sehingga dimensinya menjadi empat dan didapat paling sedikit 34.992 kode

dengan para meter [29, 4, 15]. Berikutnya dengan program Kolek2VekMDt

dimensinya ditingkatkan satu tingkat lagi menjadi lima, tanpa memperhatikan

relasi ekuivalensi didapat paling sedikit ada 199.904 kode dengan parameter

39 [30, 5, 15]. Dengan program Kolek3VekMDt dimensinya ditingkatkan satu

tingkat lagi menjadi enam, dan tanpa memperhatikan relasi ekuivalensi didapat

paling sedikit ada 9.309 matriks berordo 6 25 yang mendefinisikan kode

dengan parameter [31, 6, 15]. Salah satunya adalah

=

10. Konstruksi kode [35, 8, 15]

Matriks berordo 6 25 ini dijadikan matriks dasar untuk diperluas lagi

menjadi matriks yang berordo 8 27, yaitu untuk mendefinisikan kode

dengan parameter [ 35, 8, 15 ]. Cara mengonstruksi matriks adalah sebagai

berikut ; Yang pertama menambahkan dua vektor kolom nol pada matriks dasar

dan dengan program DelVekM untuk i = 1, menghapus baris ke-1 pada matriks

dasar sehingga didapat matriks dasar yang berordo 5 27. Untuk memastikan

bahwa matriks dasar mempunyai jarak minimum d = 15 maka di uji dengan

program NonZeroWt. Sebelum melakukan eksplorasi lebih lanjut, terlebih dulu

kita mengubah tampilan matriks, dari matriks kolom menjadi matriks baris M

dengan program UbahMtxCR. Karena matriks dasar berdimensi lima maka kita

dapat meningkatkanya sampai maksimal lima dimensi. Selanjutnya Dengan

program ListKombM mencari semua kemungkinan vektor baris X dalam yang

dapat ditambahkan ke M. Dengan program Kolek1VekM kita tingkatkan satu

dimensi sehingga dimensinya menjadi enam, hasilnya minimal ada 3.971 matriks

dasar beerordo 6 27 yang medefinisikan kode dengan parameter [33, 6, 15].

Langkah selanjutnya dengan program Kolek2VekM matriks dasar ini

dimensinya kita tingkatkan satu tingkat lagi menjadi tujuh, hasilnya minimal ada

19930 matriks dasar yang berordo 7 27 yang mendefinisikan kode dengan

parameter [34, 7, 15]. Berikutnya matriks dasar ini kita tingkatkan satu tingkat

lagi dengan program Kolek3VekM sehingga dimensinya menjadi delapan,

hasilnya tanpa memperhatikan relasi ekuivalensi minimal ada 1.699 matriks

berordo 8 27 yang mendefinisikan kode dengan parameter [35, 8, 15]. Dan

setelah dihilangkan matriks-matriks yang saling ekuivalen dengan program

40 ReduEkiX didapat minimal ada 689 kode optimal kuat dengan parameter

[35,8,15]. Salah satunya adalah

=

11. Konstruksi kode [37, 9, 15]

Matriks berordo 8 27 ini dijadikan matriks dasar untuk diperluas lagi

menjadi matriks yang berordo 9 28 untuk mendefinisikan kode dengan

parameter [ 37, 9, 15 ]. Cara mengonstruksi matriks adalah sebagai berikut ;

Yang pertama menambahkan satu vektor kolom nol pada matriks dasar dan

dengan program DelVekM untuk i = 8, menghapus baris ke-8 pada matriks dasar

sehingga didapat matriks dasar yang berordo 7 28. Untuk memastikan bahwa

matriks dasar mempunyai jarak minimum d = 15 maka di uji dengan program

NonZeroWt. Sebelum melakukan eksplorasi lebih lanjut, terlebih dulu kita

mengubah tampilan matriks, dari matriks kolom menjadi matriks baris M dengan

program UbahMtxCR. Karena matriks dasar berdimensi tujuh maka kita dapat

meningkatkanya sampai maksimal tujuh dimensi. Selanjutnya Dengan program

ListKombM mencari semua kemungkinan vektor baris X dalam yang dapat

ditambahkan ke M. Dengan program Kolek1VekM kita tingkatkan satu dimensi

sehingga dimensinya menjadi delapan, hasilnya minimal ada 2.472 matriks dasar

beerordo 8 28 yang medefinisikan kode dengan parameter [36, 8, 15].

Selanjutnya dengan program Kolek2VekM matriks dasar ini dimensinya kita

tingkatkan satu tingkat lagi menjadi sembilan, hasilnya tanpa melihat relasi

ekuivalensi minimal ada 542 matriks dasar yang berordo 9 28 yang

mendefinisikan kode optimal kuat dengan parameter [37, 9, 15]. Dan setelah

dihilangkan matriks-matriks yang saling ekuivalen dengan program ReduEkiX

didapat minimal ada 281 kode optimal kuat dengan parameter [37, 9, 15]. Salah

satunya adalah

41

=

Selanjutnya untuk menjadikan matriks menjadi matriks dasar dan

ditingkatkan ke order yang lebih tinggi mengalami kegagalan. Kegagalan ini

dapat disebabkan oleh beberapa kemungkinan, diantaranya:

1. Pemilihan kode dasar ( matriks B awal ) yang kurang baik.

2. Algoritme konstruksi yang masih belum sempurna.