Construction of Strongly Optimal Linear Binary Codes with Minimum Distance of 5 and 7
KONSTRUKSI KODE LINEAR BINER OPTIMAL KUAT
BERJARAK MINIMUM 5 DAN 7
ASRIZA RAHMA
SEKOLAH PASCASARJANA
INSTITUT PERTANIAN BOGOR
BOGOR
2011
(2)
PERNYATAAN MENGENAI TESIS DAN
SUMBER INFORMASI
Dengan ini saya menyatakan bahwa tesis dengan judul Konstruksi Kode
Linear Biner Optimal Kuat adalah karya saya sendiri dengan arahan dari komisi
pembimbing dan belum diajukan dalam bentuk apapun kepada perguruan tinggi
manapun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan
maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan
dicantumkan dalam Daftar Pustaka di bagian akhir tesis ini.
Bogor Agustus 2011
Asriza Rahma
NIM G551090151
(3)
ABSTRACT
ASRIZA RAHMA. Construction of Strongly Optimal Linear Binary Codes with
Minimum Distance of 5 and 7. Under supervision of SUGI GURITMAN and
NUR ALIATININGTYAS.
A code
which is also a subspace of
is called linear binary code.
If
C has length n,
dimension
k and minimum distance d, then C is an [n, k, d]
code. The main problem in coding theory is optimizing one of the parameters n, k,
and d for given values of the others. In this research, the strongly optimal linear
binary codes are constructed by using Gilbert-Varshamov bound and implemented
using MAPLE software. In this case, the constructed basic code C[n, k, d] is then
extended to obtain the code
[
, ,
], which can not be extended anymore and
which is known from the previus research that
[
+1,
+1,d] does not exist.
As a result,
[
, ,
] is strongly optimal code. The strongly optimal codes that
has been successfully constructed are the codes with parameters [8,2,5], [11,4,5],
[17,9,5], [23,14,5], [31,21,5], [33,23,5], [11,2,7], [15,5,7], [23,12,7], [27,14,7],
[30,16,7] and [31,17,7].
(4)
RINGKASAN
ASRIZA RAHMA. Konstruksi Kode Linear Biner Optimal Kuat Berdimensi 5
dan 7. Dibimbing oleh SUGI GURITMAN dan NUR ALIATININGTYAS.
Kode
diciptakan
untuk
mendeteksi atau mengoreksi galat (error) akibat
saluran terganggu. Dalam hal ini sebelum dikirim , semua pesan akan diubah
menjadi kata kode (codeword) dengan cara menambahkan beberapa simbol ekstra
pada simbol pesan. Proses pengubahan pesan menjadi kata kode disebut
enkoding. Perangkat yang mengubah pesan menjadi kata kode disebut enkoder.
Kode merupakan himpunan kata kode. Pendefinisian kode ini dilakukan
sedemikian sehingga apabila terjadi perubahan beberapa simbol pada kata kode,
maka galat itu bisa dipulihkan oleh dekoder. Dekoder merupakan perangkat yang
mengubah barisan s
ang diterima menjadi kata kode. Kata kode tersebut
dipulihkan menjadi pesan asli.
imbol y
Suatu kode
subruang dari ruang vektor
disebut kode linear
biner. Jika kode C dengan panjang n, dimensi k
dan jarak minimum d maka
disebut kode [n, k, d]. Masalah utama di dalam aljabar teori koding adalah
mengoptimalkan salah satu parameter n, k, dan d ketika dua nilai yang lain telah
ditentukan. Masalah tersebut mengarah pada pendefinisian fungsi
D ( n, k ) = maks { d / kode [ n, k, d ] ada } untuk optimal-D
K ( n, d ) = maks { k / kode [ n, k, d ] ada } untuk optimal-K
N ( k, d ) = min { n / kode [ n, k, d ] ada } untuk optimal-N
Dalam hal ini, suatu kode C dengan parameter [ n, k, d ] disebut optimal-D
(optimal jarak minimum), jika C ada (telah berhasil dikonstruksi) dan telah pula
dibuktikan bahwa tidak ada kode dengan parameter [ n, k, d + 1]. Jika kode linear
[n, k, d] ada dan telah berhasil dibuktikan bahwa kode linear [n-1,
k, d] tidak ada
maka kode disebut optimal-N. Selanjutnya jika kode linear [n, k, d] ada dan telah
berhasil dibuktikan bahwa kode linear [n, k+1,
d] tidak ada, maka kode tersebut
disebut optimal –K. Kode linear C dengan parameter [n, k, d] disebut kode
optimal kuat jika kode [n, k, d] ada dan telah dibuktikan bahwa kode [n+1, k+1, d]
tidak ada.
Pada penelitian ini akan dikonstruksi kode-kode optimal kuat berjarak
minimum 5 dan 7 berdasarkan teorema Gilbert-Varshamov bound dan
pengembangan metode komputasi dengan software
MAPLE. Dalam hal ini
dikonstruksi kode dasar [n, k, d], selanjutnya dari kode dasar ini dikonstruksi
tahap demi tahap kode [n+1,
k+1,d], [n+2,
k+2, d],…dan seterusnya sampai
diperoleh kode C dengan parameter [
, ,
yang tidak bisa diperluas lagi dan
telah diketahui dari hasil penelitian sebelumnya kode dengan parameter [
1,
1,
tidak ada. (informasi terkini eksistensi suatu kode berdasarkan tabel
Brouwer terbarukan secara online). Hasil konstruksi kode C [
, ,
ini yang
disebut kode optimal kuat. Kode C dapat digunakan sebagai kode dasar untuk
diperluas menjadi kode optimal kuat berikutnya.
(5)
Konstruksi kode berarti mendefinisikan matriks generator (
G)
atau matriks
cek paritas (
H)
dalam bentuk standar
G = ( I
k| B )
atau
H = (
|
).
Berdasarkan teorema konstruksi untuk mengurangi beban komputasi cukup
mengkonstruksi matriks
B
berordo
yang semua barisnya berbeda dan
jumlah setiap i vektor baris dari
B
berbobot paling sedikit (d-i) untuk i= 1, 2,…,s,
dengan s =min {d-1, k} dan (d-1)
.
Kode-kode optimal kuat yang telah berhasil dikonstruksi pada penelitian
ini adalah [8,2,5], [11,4,5], [17,9,5], [23,14,5], [31,21,5] [33,23,5], untuk d=7
yaitu [11,2,7], [15,5,7], [23,12,7], [27,14,7], [30,16,7] dan [31,17,7].
(6)
(7)
© Hak Cipta milik IPB, tahun 2011
Hak Cipta dilindungi Undang-undang
1.
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa
mencantumkan atau menyebutkan sumbernya
a.
Pengutipan hanya untuk kepentingan pendidikan, penelitian, penulisan
karya ilmiah, penyusunan laporan, penulisan kritik, atau tinjauan
suatu masalah
b.
Pengutipan tersebut tidak merugikan kepentingan yang wajar IPB
2.
Dilarang mengumumkan dan memperbanyak sebagian atau seluruh karya
(8)
KONSTRUKSI KODE LINEAR BINER OPTIMAL KUAT
BERJARAK MINIMUM 5 DAN 7
ASRIZA RAHMA
Tesis
sebagai salah satu syarat untuk memperoleh gelar
Magister Sains pada
Program Studi Matematika Terapan
SEKOLAH PASCASARJANA
INSTITUT PERTANIAN BOGOR
BOGOR
2011
(9)
Judul Tesis
: Konstruksi Kode Linear Biner Optimal Kuat Berjarak
Minimum 5 dan 7
Nama :
Asriza
Rahma
NRP :
G551090151
Disetujui,
Komisi Pembimbing
Dr. Sugi Guritman
Ketua
Dra. Nur Aliatiningtyas, M.Si.
Anggota
Diketahui,
Ketua Program Studi S2
Matematika Terapan
Dekan Sekolah Pascasarjana IPB
Dr. Ir. Endar H. Nugrahani, M.S.
Dr. Ir.Dahrul Syah, M.Sc.Agr.
(10)
(11)
PRAKATA
Segala puji dan syukur penulis panjatkan kehadirat Allah SWT yang telah
memberikan rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan tesis
yang berjudul “ Konstruksi Kode Linear Biner Optimal Kuat Berjarak Minimum
5 dan 7”.
Dalam kesempatan ini penulis mengucapkan terima kasih yang
sebesar-besarnya kepada yang terhormat:
1.
Bapak Dr. Sugi Guritman dan Ibu Dra. Nur Aliatiningtyas, M.S. selaku
pembimbing, pendidik, dan pengajar yang dengan penuh kesabaran
memberikan bimbingan, arahan, nasehat serta motivasi kepada penulis.
2.
Kementerian Agama Republik Indonesia yang telah memberikan beasiswa
kepada penulis untuk melanjutkan studi di Sekolah Pascasarjana Institut
Pertanian Bogor periode 2009 s/d 2011.
3.
Ibu Dr. Ir. Sri Nurdiati, M.Sc. selaku penguji luar komisi pembimbing yang
telah banyak memberi saran untuk perbaikan tesis ini.
Terima kasih juga penulis sampaikan kepada suami dan anak-anak
tercinta serta
seluruh keluarga atas dukungan, motivasi dan doa yang diberikan selama penulis
menyelesaikan tesis ini.
Penulis menyadari bahwa penulisan tesis ini masih banyak kekurangan,
hal ini disebabkan pengetahuan penulis yang masih terbatas. Dengan segala
keterbatasan yang ada semoga tesis ini bermanfaat.
Bogor, Agustus 2011
Asriza Rahma
(12)
RIWAYAT HIDUP
Penulis dilahirkan di Batusangkar, Sumatera Barat pada tanggal 28
Agustus 1972 dari pasangan Jalius Jalil (Alm) dan Asnimar. Penulis merupakan
putri pertama dari empat bersaudara.
Pada tahun 1996 penulis menyelesaikan pendidikan strata satu di Program
Studi Pendidikan Matematika IKIP Padang. Sejak tahun 1997 bekerja sebagai
guru pada Madrasah Aliyah Negeri 2 Payakumbuh sampai sekarang.
Pada tahun 2009 penulis diberi kesempatan melanjutkan studi di Program
Studi Matematika Terapan, Sekolah Pascasarjana Institut Pertanian Bogor dengan
beasiswa dari Kementerian Agama Republik Indonesia.
(13)
DAFTAR ISI
Halaman
DAFTAR LAMPIRAN………. xiv
1 PENDAHULUAN
1.1 Latar Belakang ………
1
1.2 Tujuan Penelitian ………..
2
2 TINJAUAN PUSTAKA
2.1 Struktur Aljabar ………
3
2.2 Aljabar Linear ………..
4
2.3 Model Aljabar Kode Linear ……….
7
2.4 Matriks Cek Paritas ………..
8
2.5 Enkoding Kode Linear ……….
8
2.6 Dasar-dasar Konstruksi Kode ………...
10
3 HASIL DAN PEMBAHASAN
3.1 Formulasi Masalah ……… 13
3.2 Analisis Teori………. 14
3.3 Algoritme Konstruksi ……… 16
3.4 Hasil Eksplorasi ……….... 20
4
KESIMPULAN DAN SARAN
4.1 Kesimpulan ………... 32
4.2 Saran ……….. 32
DAFTAR PUSTAKA ……….. 33
(14)
DAFTAR LAMPIRAN
Halaman
1 Program Matriks Biner………..
35
1.1
Pendefinisian Prosedur yang digunakan untuk
Konversi Representasi Data ………..
35
1.2 Program Aljabar Matriks Biner dengan Representasi Himpunan…...
36
1.3 Pendefinisian prosedur yang Digunakan untuk Konstruksi
Kode Optimal ……….
43
2 Eksplorasi konstruksi Kode Optimal Kuat untuk d = 5 ………
61
(15)
BAB 1
PENDAHULUAN
1.1
Latar Belakang
Teori koding berasal dari suatu problem di teori informasi yang ditulis
oleh C.E. Shanon pada tahun 1948 dalam artikelnya yang berjudul
A Mathematical Theory of Communication. Problem itu dapat digambarkan
sebagai berikut. Apabila suatu pesan (informasi) dikirim melalui saluran
terganggu (noisy channel), sering kali terjadi bahwa pesan yang diterima tidak
sama dengan yang dikirim. Di dalam komunikasi , pesan direpresentasikan dalam
bentuk digital 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).
Suatu kode diciptakan untuk mendeteksi atau mengoreksi galat (error)
akibat saluran terganggu. Dalam hal ini sebelum dikirim , semua pesan akan
diubah menjadi kata kode (codeword) dengan cara menambahkan beberapa
simbol ekstra pada simbol pesan. Proses pengubahan pesan menjadi kata kode
disebut enkoding. Perangkat yang mengubah pesan menjadi kata kode disebut
enkoder. Kode merupakan himpunan kata kode. Pendefinisian kode ini dilakukan
sedemikian sehingga apabila terjadi perubahan beberapa simbol pada kata kode,
maka galat itu bisa dipulihkan oleh dekoder. Dekoder merupakan perangkat yang
mengubah barisan simbol yang diterima menjadi katakode. Kata kode tersebut
dipulihkan menjadi pesan asli. Proses tersebut diringkas dalam bagan berikut ini:
Ada noisy 1001
1001 1001101 110110 100110
Pesan encoder kata kode kirim kirim galat 1 bit dekod katakode pesan
Gambar 1 skema pengiriman pesan melalui saluran yang terganggu.
(16)
mempunyai metode konstruksi yang berbeda. Eksistensi suatu kode dapat dilihat
berdasarkan tabel Brouwer dan bisa diakses secara on-line.
Dalam penelitian ini akan dikonstruksi kode-kode optimal kuat atas dasar
teorema Gilbert-Varshamov bounds. Konstruksi kode dilakukan perkasus atas
dasar jarak minimum d, yaitu untuk d = 5 dan d = 7. Pemilihan kasus dimulai dari
d = 5 karena untuk d = 3 telah tuntas dikonstruksi sebagai keluarga kode
Hamming.
1.2
Tujuan Penelitian
a.
Mengkaji secara teoritik metode konstruksi.
b.
Membangun metode komputasi untuk konstruksi dengan bantuan
software MAPLE
(17)
BAB II
TINJAUAN PUSTAKA
Pada bab ini akan dituliskan beberapa aspek teoritis berupa definisi,
teorema dan sifat-sifat yang berhubungan dengan aljabar linear, struktur aljabar dan
teori koding yang digunakan sebagai landasan teori untuk penulisan tesis ini.
2.1 Struktur Aljabar
Definisi 2.1.1 Operasi Biner
Operasi biner
pada suatu himpunan
S
adalah suatu fungsi dari
S
S
yang
membawa setiap (a,b)
S
S
ke a b
S
yang unik. Jadi (a,b) a b. Karena a
b juga berada dalam
S
maka dikatakan
S
tertutup di bawah operasi .
( Aliatiningtyas 2002)
Definisi 2.1.2 Grup
Struktur aljabar
G
dengan operasi biner disebut
grup
jika memenuhi
aksioma-aksioma berikut ini:
1. operasi bersifat
assosiatif
(
x
z
=
x
y
,
, ,
.
2. ada unsur iden t
ti as
e
,
sehingga berlaku
e
,
.
3. untuk setiap
x
ada unsur
x
-1sehingga
x
x
-1=
x
-1x
=
e.
(Aliatiningtyas 2002)
Definisi 2.1.3 Subgrup
Misalkan
G
grup dan
H
. Maka
H
disebut subgrup dari
G
jika
H
grup di bawah
operasi biner yang sama dengan
G.
( notasi:
H
).
(Aliatiningtyas 2002)
Teorema 2.1.4 ( teorema Langrange)
Jika
G
grup hingga dan
H
adalah subgrup
G,
maka order dari
H
membagi order
dari
G
.
(Aliatiningtyas
2002)
Definisi 2.1.4
Field
Suatu himpunan yang padanya didefinisikan operasi jumlah (+) dan operasi kali (.)
disebut
fi
eld
, notasi ( , +, . ), jika memenuhi sifat-sifat berikut:
(18)
a.
A
ssosiatif:
(
, , ,
b.
mempunyai unsur identitas: (
!
,
c.
Setiap unsur dari mempunyai invers:
!
,
,
,
dalam hal ini
d.
Ko
mutatif:
,
.
2.
(
, . ), dima
na
=
\
,
merupakan
gru
p komutatif
terhadap ., bersifat:
a.
A
ssosiatif:
, , ,
b.
mempunyai uns
ur
identitas
: (
! 1
1
.
. 1
c.
Setiap unsur dari
mempunyai invers:(
) (
!
)
1,
dalam hal ini
dan
d.
:
(
, ,
.
3.
Berlaku sifat
distributif .
terhadap + :
, ,
atau
.
(Guritman 2005)
2.1.5 Definisi
Finite Field
Suatu
field
dikatakan berhingga (
finite field
) jika himpunannya memiliki banyak
elemen yang berhingga. Order adalah banyaknya anggota
.
(Menezes
et al.
1997)
2.2. Aljabar linear
Definisi 2.2.1: Ruang Vektor
Misalkan
merupakan
field
hingga dengan order
. Himpunan tak kosong
V(dengan penjumlahan vektor dan perkalian skalar oleh elemen
) merupakan ruang
vektor dari
jika untuk semua
q
F
q
F
q
q
F
,
u v∈V
dan untuk semua
λ μ
, ∈Fq, maka berlaku:
1.
u
+ ∈
v V
2.
(u v+ + = + +) w u (v w)3.
∃unsur
0∈Vdimana
0+ = = + ∀ ∈v v v 0, v V4.
∀ ∈u V, ∃ − ∈u V dimana 0u+ − = = − +( )
u( )
u u5.
u v
+ = +
v u
(19)
7.
λ
⋅ +(
u v)
= ⋅ + ⋅λ
uλ
v8.
(
λ μ
+)
⋅ =uλ
u+μ
u9.
( )
λμ
⋅ =uλ μ
(
⋅u)
10.
Jika 1 merupakan unsur identitas untuk perkalian di
F
qmaka 1
u =u.
(Ling & Xing 2004)
Definisi 2.2.2: Penjumlahan Vektor dan Perkalian Skalar di
F
qnMisalkan
F
qnmerupakan himpunan dari vektor-vektor dengan panjang
yang
unsur-unsurnya merupakan elemen dari
, yaitu:
n
q
F
F
qn=
{
u u u
1,
2,
3,
K
,
u
n}
;
u
i∈
F
q.
Misalkan pula
v
=
(
v v
1,
2,
K
,
v
n)
∈
F
qn{
v v
1,
2,
K
,
v
r}
,
w
=
(
w w
1,
2,
K
,
w
n)
∈
nq
F
, dan
q
F
λ
∈.
maka penjumlahan vektor di
F
qndidefinisikan sebagai
, sedangkan perkalian skalar didefinisikan
sebagai
(
1 1,
2 2,
,
n nu
+ =
w
v
+
w v
+
w
K
v
+
w
∈
F
(
1, 2, ,)
.n
n q
v v v v F
λ
⋅ =λ λ
Kλ
∈)
qq
(Ling & Xing 2004)
Definisi 2.2.3: Subruang (
Subspace)
Suatu himpunan tak kosong
dari ruang vektor
Vmerupakan subruang (ruang
bagian) dari
V
jika
merupakan ruang vektor dan memiliki sifat penjumlahan
vektor dan perkalian vektor yang sama dengan
V
.
CC
(Ling & Xing 2004)
Definisi 2.2.4: Kombinasi Linear
Misalkan
V
merupakan ruang vektor atas
Fq,
λ
i∈Fsembarang, maka
1 1u 2u2 rur
λ
+λ
+K+λ
merupakan kombinasi linear dari
u u1, 2,K,ur.elemen
V.
(Ling & Xing 2004)
Definisi 2.2.5: Bebas Linear
Misalkan
V
merupakan ruang vektor terhadap
Fq, himpunan vektor
{
v v
1,
2,
K
,
v
r}
dalam
Vdikatakan saling bebas linear jika
1 1v 2v2 r rv 0 1 2 r 0
λ
+λ
+K+λ
= →λ λ
= =K=λ
=, tak bebas linear jika,
1 1v 2 2v r rv 0 i 0
(20)
(Ling & Xing 2004)
Definisi 2.2.6: Rentang Linear
Misalkan
Vmerupakan ruang vektor atas
Fqdan
S
=
{
v v
1, ,
2K
,
v
k}
S
merupakan
himpunan tak kosong dari
V
. Rentang linear dari
didefinisikan sebagai
{
λ
1 1λ
}
= + 2 2 k k; q
S v v +K+
λ
vλ
i∈F. Jika
S
= ∅
maka didefinisikan
S
=
{ }
0
.
(Ling & Xing 2004)
Definisi 2.2.7: Basis
Misalkan
V
merupakan ruang vektor dari
Fq. Himpunan tak kosong
{
1, ,
2 k}
B
=
v v
K
,
v
dari
V
dikatakan basis untuk
V
jika
V
=
B
dan
Bbebas linear
Misalkan
B
=
{
v v
1, ,
2K
,
v
k}
basis untuk
V
, maka sembarang vektor
v
dapat
dinyatakan sebagai kombinasi linear dari vektor
secara unik.
V
∈
B
Teorema 2.2.1
Misalkan
V
merupakan ruang vektor atas
Fq. Jika
dim
( )
V
=
k
, maka:
i.
V
memiliki
qkelemen
ii.
V
memiliki
(
1 0
1
!
k k i iq
q
k
− =−
∏
)
basis yang berbeda
(Ling & Xing 2004)
Definisi 2.2.8: Hasil Kali Skalar
Misalkan
V
=
(
v v
1, ,
2K
,
v
n)
∈
F
qn, ,
W
=
(
w w
1 2,
K
,
w
n)
F
dan
V
W
V W v w1 1n q
∈
.
Hasil kali skalar (
dot
product
) dari
didefinisikan sebagai
⋅ = +v w2 2+ +K v wn n∈Fq.
Definisi 2.2.9: Komplemen Orthogonal
Misalkan
V
=
(
v v
1, ,
2K
,
v
n)
∈
F
qn, ,
W
=
(
w w
1 2,
K
,
w
n)
∈
F
qnW
.
i.
Vektor
V
dan
dikatakan saling tegak lurus (
orthogonal
) jika
V W
⋅
=
0
ii.
Misalkan
S
merupakan himpunan bagian dari
F
qn. Komplemen orthogonal dari
, yaitu
didefinisikan sebagai
S
S⊥ S⊥ = ∈{
v Fqn|v s⋅ = ∀ ∈0, s S}
. Jika
,
maka didefinisikan
. Jika
merupakan subruang dari ruang vektor
S
= ∅
n q n
q
S
⊥=
F
SF
,
maka
S⊥merupakan subruang dari ruang vektor
F
qndan
S ⊥ =S⊥(21)
Teorema 2.2.2
Diberikan ruang vektor
F
qn. Misalkan
Shimpunan bagian dari
F
qn. Maka
( )
( )
dim S +dim S⊥ =n
(Ling S, Xing C. 2004)
2.3 Model Aljabar Kode Linear
Misalkan
menotasikan vektor berdimensi
n
atas field biner
2={0,1}.
Kode linear biner dengan panjang
n
didefinisikan sebagai sub ruang
C
dari
.
Anggota
suatu kode disebut dengan kata kode (c
odeword
). Kode linear
C
dengan
panjang
n
dan dimensi
k
dinamakan kode linear dengan parameter [
n,
k]. Jika jarak
minimum
d
diketahui
maka
C
dinyatakan sebagai kode linear dengan parameter
[
n,k.d
]. Setiap kata kode dalam kode linear
C
memiliki panjang tetap
n
disebut
blok
yang terbagi menjadi dua bagian yaitu: simbol pesan dan simbol cek. Dimensi
k
merupakan panjang dari simbol pesan. Menurut Mac Williams dan Sloane (1981)
setiap kode akan memiliki kata kode sebanyak 2
k..
Definisi 2.3.1
Jarak (
Hamming distance
) antara dua vektor
x,y
, 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.3.2
Bobot (
Hamming weight
) dari suatu vektor x
, dinotasikan
, adalah
banyaknya simbol taknol dalam
x
.
Bobot minimum (
minimum hamming weight ) dari suatu kode
C
didefinisikan:
min {
|
x
,
≠
0 }.
Berdasarkan definisi 2.3.1 dan 2.3.2 maka diperoleh d(
x,y
)=
. ebagai
ilustrasi, di dalam ruang
, jika
x
=10011 dan
y
=11010,
maka
d
(
x,y
) =
1 11 11 1
1 1
2.
Proposisi 2.3.1
Jarak minimum dari suatu kode linear
C
adalah bobot minimum dari sembarang
(22)
Bukti.
Perhatikan bahwa karena C linear, maka
d(C)
= mi
n {
d
(
x,y
) | x
,y
C,
x
≠
y
}
= min {
|
x,y
C,
x
≠
y
}
= min
) | z
C,
z
≠
0 } =
. ( terbukti ).
Definisi 2.3.3
O ogonal
rt
dari
C
(
dibaca : kode dual dari
C
)
,
notasi
,
didefinisikan
= {y
|
x . y = 0 untuk setiap x
C
}.
Dimana “.” adalah
produk dalam
standa
r
pad
a
yang didefinisikan sebagai :
x . y =
∑
.
,
=
(
, ,
…..
),
y
=
(
, ,….)
.
Dengan demikian , jika
C
berdimensi
k ,
maka
berdimensi r =
n- k.
2.4 Matriks Cek Paritas
Suatu matriks
H
berukuran
r x n
yang semua barisnya merupakan suatu
basis untuk
disebut matriks cek paritas
(
parity check matrix
) dari
C
.
Pengertian matrik paritas ini berimplikasi pada pendefinisian kode linear yang
berkaitan dengan cara konstruksinya, yaitu
C
= { x
|
H
= 0 }.
Dengan kata
lain,
C
adalah ker (
H
).
Mengkonstruksi ( membuat ) kode linear dengan panjang
n
dan
k
sama
artinya dengan mendefinisikan matriks cek paritas seperti yang dimaksud diatas.
Di samping itu matriks cek paritas berfungsi mengubah pesan menjadi katakode,
dengan kata lain ia merupakan parameter didalam enkoding.
2.5 Enkoding Kode Linear
Enkoding kode linear dengan menggunakan matriks cek paritas
H,
diilustrasikan sebagai berikut. Diberikan blok simbol pesan dengan panjang
k
misalnya
u =u u1 2... ,ukakan dienkode menjadi kata kode
x = x x1 2...xndimana
dengan menggunakan matriks cek paritas
H
yang telah didefinisikan
sebelumnya. Maka, pertam kali id inis an
n
≥
k
a
d ef
ik
=
,
=
, …
=
(23)
0 n x ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ ⎠ M M
nilainya bergantung pada nilai simbol pesan. Ketergantungan ini ditentukan oleh
H
dengan menyelesaikan SPL homogen berikut:
1 2 0 0 . T x x ⎛ ⎞ ⎛ ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⇔ =
Hx = 0 H
Untuk memudahkan penyelesaian, matriks
A
biasanya diberikan dalam bentuk
standar, yaitu
(
|
r)
.
H = A I
Dengan
A
adalah matriks biner berukuran
dan I
radalah matriks identitas
berukuran
Jika matriks
H
belum berbentuk standar, maka dilakukan
operasi baris / kolom elementer untuk mendapatkan matriks ekivalen standarnya.
x , r k
x .
r r
Berikut ini diilustrasikan proses kalkulasi enkoding dengan menggunakan
H.
Didefinisikan matriks
cek paritas
H
berikut:
0 1 1 1 0 0
1 0 1 0 1 0
1 1 0 0 0 1
⎛
⎞
⎜
⎟
⎜
⎟
⎜
⎟
⎝
⎠
H =
.
.
Dari ukuran
H
diperoleh
n =6, n – k =3,
sehingga
k = 3.
Terlihat bahwa
H
mempunyai bentuk standar dengan
0 1 1
1 0 1
1 1 0
⎛
⎞
⎜
⎟
⎜
⎟
⎜
⎟
⎝
⎠
A =
Pesan
u =u u u1 2 3
akan dienkode menjadi
x =x x x x x x1 2 3 4 5 6.Hal ini dimulai dari
1 1, , ,2 2 3 3
x =u x =u x =u
kemudian
x
4,x
5,x
6dipilih sehingga memenuhi
sehingga diperoleh
Sistem Persamaan Linear (SPL)
,
T Hx = 0
2 3 4 1 3 5 1 2 6
0,
0,
0.
x
x
x
x
x
x
x
x
x
+ +
=
+ + =
+ +
=
(24)
dan disebut SPL cek paritas. Misalnya pesan
u =110,
maka
x1 =1,
dan dari SPL diperoleh
2 1, x = 3 0, x = 4 5 6
1 1,
1 1,
1 1 1 1 0.
x
x
x
= − =
= − =
= − − = + =
Ini berarti
H
mengubah pesan
menjadi katakode
Secara
keseluruhan, karena
maka ada
110
u =
x =
110110.
3,
k = 23 =8
pesan berbeda yang bertindak
sebagai input dalam enkoding, sehingga
H
mendefinisikan kode
C
dengan
anggota 8 katakode
C
= {000000, 001110, 010101, 011011, 100011, 101101, 110110, 111000}
Selain menggunakan matriks cek paritas
H,
untuk mengkonstruksi
C
juga
dapat menggunakan
matriks generator
dari
C
, biasanya dinotasikan dengan
G
.
Semua baris dari
G
merupakan basis untuk
C
. Akibatnya G berukuran
k x n
dan setiap kata kode merupakan kombinasi linear dari semua vektor baris dari
G,
dengan kata lain
C
= Span({
,
, ….
})
Dimana {
,
, ….
} adalah himpunan semua baris dari
G,
hubungan antara
H
dan
G
dapat dinyatakan dalam persamaan berikut:
G H
T= HG
T2.6 Dasar-dasar konstruksi kode
2.6.1
Penambahan pada matriks cek paritas
(
Adding an overall parity
check/Extending a code
)
Misalkan
C
adalah suatu kode linear biner dengan parameter
[
n k d
, ,
]
yang beberapa kata kode nya berbobot ganjil. Dari kode tersebut akan dibentuk
kode baru
dengan menambahkan bit
"0"
di akhir kata kode yang berbobot
genap, dan bit
"1di akhir kata kode yang berbobot ganjil.
ˆ
C
"
Dengan penambahan ini, jarak tiap pasang kata kode menjadi genap. Jika jarak
minimum kode
ganjil, maka kode yang baru memiliki jarak minimum
,
sehingga
memiliki parameter
C
d
+
1
ˆ
C
[
n
+
1, ,
k d
+
1
]
. Secara umum, proses
penambahan simbol pada matriks cek paritas disebut sebagai
extending a code.
(25)
C
2.6.2
Pemotongan kode dengan cara menghapus koordinat tertentu
(
Puncturing a code by deleting coordinates
)
Misalkan
adalah suatu kode linear. Proses pemotongan kode
(
puncturing)
merupakan invers/kebalikan dari proses memperluas kode (
extending
a code
). Proses ini menghapus satu atau lebih koordinat dari setiap kata kode.
Ketika suatu koordinat dihapus, panjang dan jarak minimum dari kode akan
berkurang satu (namun, pada kasus tertentu, ada kalanya jarak minimum tetap).
Dengan kata lain, jika kode awal
C
memiliki parameter
[
n k d
, ,
]
, kode yang baru
memiliki parameter
[
*
C
n
−
1, ,
k
d
−
1
]
.
(Williams & Sloane 1981)
2.6.3
Penghapusan dengan cara menghilangkan beberapa kata kode
(
Expurgating by thowing away codewords
)
Misalkan kode linear biner
C
memiliki parameter
[
n k d
, ,
]
dan memiliki
kata kode dengan bobot ganjil dan genap. Kata kode dengan bobot ganjil dapat
dihapus untuk mendapatkan kode baru dengan parameter
[
n k
,
−
1, '
d
]
. Pada
umumnya
d
'
>
d
(Williams & Sloane 1981)
2.6.4
Memperbesar suatu kode dengan cara menambahkan kata kode baru (
Augmenting by adding new codeword
)
Salah satu cara untuk memperbesar suatu kode adalah dengan cara
menambahkan satu baris vektor
1pada matriks generator. Jika
adalah suatu
kode dengan parameter
[
C
]
, ,
n k d
dan tidak memiliki kata kode 1 (vektor satu),
kode yang telah diperbesar berbentuk
C
( )a= ∪ +
C
(
1
C
)
(
C
( )amengandung/memiliki kata kode dari kode
C
beserta komplemennya).
Dengan demikian
C
( )amemiliki parameter
⎡
⎣
n k
,
+
1,
d
( )a⎤
⎦
, dengan
( )
{
}
min
,
'
d
a=
d n
−
d
,
d
'
=
bobot terbesar dari kata kode di
C
.
(26)
C
2.6.5 Memperpanjang suatu kode dengan menambahkan simbol pesan
(
Lengthening by adding message symbols
)
Untuk memperpanjang suatu kode linear
, dapat dilakukan dengan cara
menambahkan kata kode baru, yaitu vektor 1 (
augmenting a code
). Setelah itu,
dilanjutkan dengan memperluas (
extending
) kode sebanyak satu bit. Proses ini
akan menambah satu simbol pesan
(Williams & Sloane. 1981)
2.6.6
Memperpendek kode
(
Shortening a code
)
Memperpendek kode merupakan invers/kebalikan dari proses
memperpanjang suatu kode (
length a code
). Untuk memperpendek suatu kode,
diambil kata kode yang dimulai dengan
x1=0(symbol pertama = 0). Selanjutnya
koordinat dari
x1dihapus. Proses seperti ini disebut mengambil
cross-section
dari
suatu kode (
taking a cross-section of the code
).
(27)
BAB III
HASIL DAN PEMBAHASAN
3.1 Formulasi masalah
Misalkan
C
[
n ,k ,d
] adalah kode linear biner yang mempunyai panjang
n
, berdimensi
k
dan jarak minimum
d.
kode
C
dikatakan baik jika
n kecil, k besar
dan
d besar.
Makna fisiknya,
n
harus kecil terkait dengan proses enkoding dan
dekoding, juga terkait dengan memori yang digunakan dalam proses tersebut.
Selanjutnya
k
harus besar terkait dengan banyaknya pesan yang dapat diubah
menjadi kata kode dan
d
harus besar terkait dengan banyaknya galat yang dapat
dikoreksi.
Diberikan sembarang dua parameter, misalnya
n
dan
k
, problemnya:
“Adakah suatu kode [
n,k,d
] untuk nilai
d
yang sebesar besarnya.?”. Pertanyaan itu
mengarah pada pendefinisian fungsi
D (
n, k
) =
maks {
d
/ kode [
n, k, d
] ada }
Dalam hal ini, suatu kode
C
dengan parameter [
n, k, d
] disebut optimal-D
(optimal jarak minimum), jika
C
ada (telah berhasil dikonstruksi) dan telah pula
dibuktikan bahwa tidak ada kode dengan parameter [
n, k, d
+ 1]. Batas bawah
(
lower bound
) dan batas atas (
upper bound
) dari fungsi D(
n, k
) diartikan sebagai
berikut. Misalnya,
l
≤
D (
n, k
)
≤
u
artinya telah berhasil dikonstruksi kode dengan parameter [
n, k, d
≤
l
], dan telah
berhasil pula dibuktikan bahwa tidak ada kode dengan parameter [n, k, d > u],
sedangkan ada/tidaknya kode dengan parameter [
n, k, d
], dengan
l < d
≤
u,
merupakan
open problem
. Untuk memperbaiki satu langkah batas bawah dari
fungsi D (
n, k
) berarti harus mampu mengkonstruksi kode dengan parameter
[ n,
k, l
+ 1]. Perbaikan satu langkah batas atas dari fungsi D(
n, k
) berarti dibuktikan
bahwa tidak ada kode dengan parameter [
n, k, u
]. Penelitian ini hanya untuk
memperbaiki satu langkah batas bawah saja. Informasi terkini (
updated
) basis data
untuk batas fungsi D(
n, k
) dapat dilihat di dalam Tabel Brouwer (Brouwer 1998)
dan bisa diakses secara
on-line
. Secara analog (ekivalen), didefinisikan fungsi
(28)
optimalisasi panjang kode
(optimal-N), dan sekaligus memformulasikan
masalahnya:
K
(
n, d
) =
maks
{
k
/ kode [
n, k, d
] ada }
N
(
k, d
) =
min
{
n
/ kode [
n, k, d
] ada }.
Berdasarkan formulasi umum problem di atas, pada penelitian ini
didefinisikan kode optimal kuat (
strongly optimal codes
) beserta formulasi
problem konstruksinya. Kode linear
C
dengan parameter [
n, k, d
] disebut optimal
kuat jika kode linear-[
n, k, d
] ada dan telah berhasil dibuktikan bahwa kode linear
[
n
+1,
k
+1,
d
] tidak ada. Sedangkan suatu kode disebut optimal –
D
jika kode linear
[
n, k, d
] ada dan telah berhasil dibuktikan bahwa kode linear [
n, k, d
+1] tidak ada.
Jika kode linear [
n, k, d
] ada dan telah berhasil dibuktikan bahwa kode linear [
n
-1,
k, d
] tidak ada maka disebut optimal-
N.
Selanjutnya jika kode linear [
n, k, d
] ada
dan telah berhasil dibuktikan bahwa kode linear [
n, k
+1,
d
] tidak ada, maka kode
tersebut disebut optimal –
K.
2.6
Analisis Teori
Suatu matriks
H
berukuran
yang semua barisnya merupakan suatu
basis untuk
disebut matriks cek paritas dari
C.
Pengertian matriks cek paritas
ini berimplikasi pada pendefinisian kode linear berkaitan dengan cara
konstruksinya, yaitu
| H
.
Mengkonstruksi suatu kode berarti
mendefinisikan matriks cek paritas
H
atau matriks generatornya
G.
Pada bagian ini akan dikaji beberapa teorema yang paling berperan untuk
melandasi konstruksi
H.
Teorema 3.2.1
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. Ini artinya
r
adalah
rank
dari
H.
Bukti
Misalkan
H
adalah matriks cek paritas dari kode linear C dengan panjang
n
dan
G
adalah matriks generator untuk
C
. Maka
C
berdimensi (
n – r
) jika dan hanya
jika
rank
(
G
) = (
n – r
). (karena
G
adalah basis dan banyaknya baris di
G
(29)
menunjukkan
dimensi suatu kode). Karena
G
dan
H
saling orthogonal, maka
rank
(
G
) = (
n - r
)
jika dan hanya jika
rank
(
H
) =
r.
Teorema 3.2.2
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.
Bukti:
Misalkan
H
adalah matriks cek paritas dari kode
C
dengan panjang
n,
maka kode
tersebut berjarak minimum
d
jika dan hanya jika
C
berbobot minimum
d
jika dan
hanya jika ada vektor
v
dengan
wt
(
v) =
d
sehingga
Hv
T= 0
Tdan untuk
setiap
w
dengan
wt
(
w
) <
d
jika dan hanya jika
Hw
T0
T( jika
Hw
T= 0
Tberarti
w
, maka akan terjadi kontradiksi karena
wt
(
w
) <
d
) jika dan hanya
jika ada
d
kolom dari
H
yang tidak bebas linear dan setiap
d
– 1 kolom dari
H
yang bebas linear.
Teorema 3.2.3 (The Singleton Bound)
Jika
C
adalah kode dengan parameter [
n, k, d
], maka (
n – k
) (
d-
1).
Bukti:
Jika
C
kode dengan
parameter
[n, k, d],
maka
C
mempunyai matriks paritas
H
berordo (
n – k
)
n
. Ini berarti rank (
H
) (
n – k
), dan berdasarkan teorema 3
.
2.2,
matriks H memiliki
d
– 1 kolom yang bebas linear, sehingga
rank
(H) = (
d –
1),
maka (
n – k
) (
d-
1).
Teorema 3.2.4 ( Teorema Gilbert-Varshamov bound)
Jika telah diketahui ada kode [
] yang m
1
,
maka ada (dapat dikonstruksi) kode
dengan parameter [
n
+1,
k
+1,
d
].
n,k,d
emenuhi ketaksamaan
Bukti:
Misalkan diketahui kode
C
memiliki parameter [
n, k, d
]. Berdasarkan teorema
3.2.2 ada matriks paritas H berordo (
n - k
)
n
ditulis
H
= (
c
1c
2… c
n)
yang setiap
d
- 1 vektor dari {
c
1, c
2, … c
n}
adalah bebas linear dalam ruang
. Ide dasar pembuktian adalah jika ada vektor
x
yang bukan
i
(30)
adalah matriks berordo (
n - k
) (
n
+ 1) yang setiap
d
-1 vektor dari{
c
1,c
2,… c
n, x }
adalah bebas linear dalam ruang
. Dalam hal ini,
merupakan matriks
paritas untuk kode [
n
+ 1,
k
+ 1,
d
]. Syarat adanya vektor
x
terjadi ketika dipenuhi
ketaksamaan
= (
c
1c
2… c
nx )
1
1
,
dimana ruas kiri menyatakan banyaknya vektor-vektor sebagai hasil
i
kombinasi
linear dari vektor-vektor kolom
H
untuk
i
= 1, 2, …
d
- 2, sedangkan ruas kanan
menyatakan banyaknya vektor-vektor dalam
.
2.7
Algoritme Konstruksi
Mengkonstruksi
kode
linear
[
k+r, k,d
] berarti mengkonstruksi bentuk
standar dari
H,
yaitu
H = (
|
).
Untuk efisiensi komputasi cukup dikonstruksi
matriks
B
berukuran
k
r.
Berdasarkan teorema Gilbert-Vashamov bound
diturunkan teorema konstruksi berikut:
Teorema 3.3.1
Jika matriks
B
berukuran
k
r
dikonstruksi berdasarkan sifat :
1.
Semua vektor baris dari
B
berbeda.
2.
Jumlah setiap
i
vektor baris dari
B
berbobot paling sedikit (
d – i
) untuk
i
= 1,
2, 3,…
s
dimana
s
=
min
{
d –
1,
k
} dan (
d –
1)
r,
maka
H = ( BT | Ir )
merupakan matriks paritas untuk kode
C
dengan parameter [
k
+
r, k,
d
].
Dalam hal ini matriks generator dari
C
adalah
G = ( I
k| B )
Bukti:
Misalkan telah dikonstruksi matriks
B
berukuran
k
sebagaimana disyaratkan
oleh teorema, akan ditunjukkan bahwa
H
merupakan matriks paritas untuk kode
C
[
k + r, k, d
]. Hal pertama yang mudah dilihat dari struktur
H
adalah
C
mempunyai panjang (
k
+
r
) dan berdimensi
k
, sehingga tinggal ditunjukkan
C
(31)
dituliskan
v
= (
v
m,v
c) dimana
v
mvektor pesan dengan
wt
(
v
m) = i dan
v
cvektor
cek dengan
wt
(
vc
) = j, maka berlaku
i + j <
d
j <
d
- i
wt
(
v
c) <
d
– i (i)
dan
H
v
T=
0
T(
B
T| I
r)
= 0
TB
T+ I
r= 0
TB
T=
(
ii)
Karena
wt
(
v
m) =
i
, dan berdasarkan syarat 2 dari konstruksi
B,
maka
wt
(
B
T)
d – i.
(iii)
Dari ekspresi (i), (ii), dan (iii) menunjukkan suatu kontradiksi sehingga dapat
disimpulkan bahwa
C
berbobot minimum
d
atau dengan kata lain
C
memiliki
jarak minimum
d.
Dengan demikian, mengkonstruksi kode
C
[
k
+
r, k, d
] berdasarkan teorema 3.3.1
berarti mengkonstruksi matriks generato y
rn a,
G =
|
cukup dengan mengkonstruksi matriks
B
berukuran
k
r
yang memenuhi
sifat-sifat: semua vektor baris dari
B
berbeda dan jumlah setiap
i
vektor baris dari
B
berbobot paling sedikit (
d
–
i
), untuk
i =
1, 2, …,
s
dimana
s =
min{
d –
1,
k
} dan
(
d
– 1)
r.
Begitu
kode
linear
C
[
n, k, d
] telah terkonstruksi, langkah berikutnya
adalah mendefinisikan himpunan
V
yang beranggotakan semua vektor baris dari
B
dan semua vektor sebagai hasil jumlah
i
vektor baris dari
B
untuk
i
= 2,3,…
s
dimana
s = min
{
d
-1,
k
}. Maka jelaslah bahwa
V
.Jika
V
≠
,maka ada
vektor
dan x
yang bisa ditambahkan ke baris matriks
B
untuk
mendefinisikan matriks
yang berukuran (
k
+1)
r
dan matriks cek paritas
H’
=
T
|
) akan mendefinisikan kode dengan parameter [
n
+1,
k
+1 ,
d
]. Pada
penelitian ini strategi konstruksi kode [
n
+1,
k
+ 1,
d
] memenuhi teorema Gilbert-
Varshamov bound.
Proses ekstensi kode dari [
n, k , d
] ke [
n
+1,
k
+1,
d
] dilakukan tahap
demi tahap sampai diperoleh suatu kode
C
dengan parameter [
n’ , k’ ,d
] yang
sudah tidak bisa diperluas lagi. Ketika diperoleh informasi bahwa telah dibuktikan
bahwa kode dengan parameter [
n
'+1,
k
'+1,
d
] tidak ada, maka
C
merupakan
kode optimal kuat yang telah berhasil dikonstruksi. Akan tetapi, ketika diperoleh
(32)
informasi bahwa ada kode dengan parameter [
n
'+1,
k
'+1,
d
], berarti kode
optimal kuat gagal dikonstruksi. Dalam hal ini, harus dilakukan rekonstruksi
dengan strategi memilih
kode dasar
[
n , k , d
] lain yang berpeluang besar dapat
diperluas menjadi kode optimal kuat
C
. Pemilihan kode dasar yang baik
memerlukan eksplorasi yang baik yang bersifat teoritik maupun komputatif.
Selanjutnya keberhasilan konstruksi kode optimal kuat
C
dapat digunakan sebagai
kode dasar untuk diperluas menjadi kode kode optimal kuat
berikutnya dengan
strategi yang sama.
Algoritme konstruksi kode ini juga berlaku untuk kode linear biner
berjarak minimum bilangan genap berdasarkan sifat dari kode linear yang
menyatakan bahwa jika kode dengan parameter [
n, k, d
] ada untuk
d
ganjil, maka
dapat dikonstruksi kode dengan parameter [
n
+ 1,
k
,
d
+ 1] dan setiap anggotanya
berbobot genap (Williams & Sloane 1981).
Keberhasilan konstruksi kode optimal kuat sangat dipengaruhi oleh
metode komputasi yang digunakan. Berikut ini dideskripsikan pembangunan
metode komputasi yang digunakan dalam penelitian ini.
1
Membangun
fungsi-fungsi aljabar matriks biner
.
Hal pertama yang
dilakukan adalah mempresentasikan ruang vektor biner
sebagai
himpunan kuasa dari
S
n= { 0, 1, 2, …,n-1 }. Ini berarti sembarang vektor
biner dengan panjang n secara komputasi merupakan subhimpunan dari
.
Operasi jumlah dua vektor berarti selisih simetrik dua himpunan.
Produk dalam dua vektor berarti irisan dua himpunan.
adalah keluarga
semua himpunan dari subhimpunan
S
merupakan grup terhadap selisih
simetrik. Jika
S =
{0, 1, 2, 3} maka
. {0, 2} isomorfik dengan (1,
0, 1, 0), { } isomorfik dengan (0, 0, 0) dan {0, 1, 2, 3} isomrfik dengan (1,
1, 1).Dengan demikian, matriks biner
A
berordo
n x p
dapat dipandang
sebagai
list
dari sebanyak p subhimpunan dari
S
n.. Matriks A =
1
1 1
dapat dinyatakan dengan
A
=[3, [{0, 2}, {2}]]. Dari dua konsep
(33)
jumlah, kali, transpose, operasi baris dasar, pencarian matriks kanonik dan
lainnya. Implementasinya menggunakan
software
MAPLE.
2. Membangun prosedur untuk pelacakan kode optimal.
Didefinisikan
matriks
generator
G
= (
I
k|
B
), misalkan
M
matriks
representasi vektor baris dari
B
. Kemudian didefinisikan fungsi berikut:
KombinM
menentukan list semua kombinasi
j
vektor dari vektor-vektor
M
(
representasi baris) untuk suatu nilai
j =
1,2,…,
k.
ListKombM
menentukan list
dari semua list KombinM untuk semua
j = 1,2,3,…,t
degan
t = min
{
k, d-
1
}.
UjiAdd1VekM
menguji apakah vektor
X
bisa ditambahkan ke
M,
menggunakan ListkombM. Misal sudah ada matriks M =
1
1 1
1 1 1
maka
didapat list semua kombinasi
j
vektor L = {1 0 0, 1 1 0, 1 1 1}, {0 1 0, 0 1
1,0 0 1},{1 0 1}. Kemudian diuji apakah satu vektor X bisa ditambahkan ke
M Jika
hamming distance
<
d
– 1 – i.maka tidak terpenuhi. Jika selain itu
berarti vektor X bisa ditambahkan ke matriks
Lacak1VekM
melacak satu vektor baris
X
dalam yang bisa ditambahkan ke
M
berdasarkan Gilbert-Varshamov, menggunakan
UjiAdd1VekM
. Ilustrasi ada
matriks B =
1
1
1
1 1 1
1 1 1
1
kemudian dicatat berapa banyak angka 1 dan
berapa angka 0. Misalkan V baris ke-1, banyak angka 1 = v dan W baris ke-2.
Cari vektor-vektor X yang berjarak
j= d
– 2 sampai batas yang ditentukan. Tanpa
mengurangi keumuman maka V diset yang rapi. Jika (v + j – 2 * i) (
d
– 1) maka
ambil anggota V sebanyak v – i, dan ambil anggota W sebanyak j – 1. Maka
gabungan dari anggota V dan W yang telah dipilih akan didapat vektor X.
Kolek1VekM
menentukan himpunan semua vektor baris
X
yang bisa
ditambahkan ke
M,
menggunakan
UjiAdd1VekM
. Untuk
Kolek1VekM
cara
kerjanya hamper sama dengan
UjiAdd1VekM
kalau sudah dapat satu vektor
(34)
ReduEki1
membuang anggota
out put
Kolek1VekM
dan menyisakan
vektor-vektor yang menghasilkan matriks-matriks yang tidak saling ekivalen jika
ditambahkan ke
M.
Misalkan H adalah
out put
Kolek1VekM
, setiap pasangan
vektor (
X, Y
) anggota H akan menghasilkan vektor
Z = X
+
Y.
Agar dua vektor
X
dan
Y
bisa ditambahkan langsung ke matriks
M
, maka
Z
diuji dengan prosedur
UjiAdd2VekM
berdasarkan
out put
ListkombM.
Kolek2VekM
menentukan
semua pasang (
X, Y
) dalam yang bisa ditambahkan ke
M
berdasarkan teorema 4,
menggunakan
UjiAdd2VekM
.
Kolek2VekMDt
menentukan semua pasang (
X,
Y
) menggunakan data hasil sebelumnya.
ReduEkiX
membuang anggota
out pu
t
Kolek2vekM
dan menyisakan vektor-vektor yang menghasilkan matriks-matriks
tidak saling ekivalen jika ditambahkan ke matriks
M.
Misalkan
H adalah
out put
Kolek2VekM
, setiap pasangan vektor (
X, Y,Z
) anggota H akan menghasilkan
vektor
W
=
X
+
Y
+
Z
agar tiga vektor
X, Y
dan
Z
bisa ditambahkan langsung ke
matriks
M
maka diuji dengan uji AddVek3M berdasarkan
out pu
t
ListKombM
.
Selanjutnya secara induksi agar X vektor bisa ditambahkan langsung ke
M,
maka
diuji dengan
prosedur
UjiAddXVekM
menggunakan
out pu
t
Kolek(X-1)VekM
dan berdasarkan
out put
ListKombM.
Program lengkapnya dapat dilihat pada
Lampiran 2.
3.
Konstruksi kode optimal kuat dengan jarak minimum
d
= 5 dan
d
= 7
Mengkonstruksi matriks cek paritas dalam hal ini matriks
B
dan
melakukan perluasan terhadap matriks tersebut. Bagaimana proses lengkapnya
akan dijelaskan pada sub bab hasil eksplorasi.
3.4 Hasil Eksplorasi
.
Berikut ini akan diilustrasikan konstruksi kode optimal kuat untuk kasus
d
=5 dan
d=
7.
Untuk kasus
double error correcting
(
d
= 5 ), berdasarkan tabel Brouwer
kode-kode optimal kuat mempunyai parameter (terurut dari dimensi rendah):
[8, 2, 5], [11, 4, 5], [17, 9, 5], [23, 14, 5], [31, 21, 5] dan [33, 23, 5], sedangkan
kode optimal kuat untuk k > 23 merupakan
open problem.
Akan dijelaskan
(35)
kode-kode tersebut. Dimulai dari kode-kode [8, 2, 5], dikonstruksi dengan mendefinisikan
matriks
B
berukuran 2
6
berikut
B =
1 1 1 1
1 1
1 1 .
Matriks ini kemudian dipakai sebagai matriks dasar untuk diperluas menjadi
matriks
′berordo 4
7 yang mendefinisikan kode optimal kuat [11, 4, 5]. Proses
perluasan dari
B
ke
′dilakukan dengan menambah satu kolom nol pada
B
,
dilanjutkan menambah dua vektor 7 bit yang memenuhi syarat strategi. Tanpa
memperhatikan relasi ekivalensi, hasil eksplorasi komputatif menunjukkan ada
108 macam
′, salah satunya
=
1 1 1 1
1 1
1 1
1
1
1
1
1
1
1 1
Dengan langkah yang sama
diperluas ke
berordo 9 8 yang
mendefinisikan kode optimal kuat [17, 9, 5]. Tanpa memperhatikan relasi
ekivalensi, hasil eksplorasi komputatif menunjukkan ada 144 macam
, salah
satunya
=
1 1 1 1
1 1
1 1
1
1
1
1
1
1
1 1
1 1
1 1
1 1 1
1
1
1 1 1
1
1 1 1
1
1
1 1 1 1 1 1
Percobaan untuk memperluas
ke
untuk mendapatkan kode optimal
kuat [23, 14, 5] adalah gagal. Dalam hal ini
hanya mampu diperluas ke lebih
dari 872 kode optimal-D [22, 13, 5]. Namun demikian, strategi rekonstruksi
berhasil mendefinisikan 3 kode optimal kuat [23, 14, 5] yang salah satunya
(36)
=
1 1 1 1
1 1
1 1
1 1
1 1
1
1
1
1
1
1
1
1
1 1 1
1
1 1 1
1 1 1
1
1
1
1
1
1
1
1
1
1
1 1
1
1 1
1 1 1 1
1 1
1 1
1
1 1
1 1 1
1
1 1
1 1 1 1 1
Kemudian
diperluas menjadi matriks berukuran 21 10 yang mendefinisikan
kode dengan parameter [31, 21, 5], tetapi konstruksi ini hanya mampu
mendapatkan 423 kode dengan parameter [30, 20 5] yang salah satunya
direpresentasikan oleh matriks
=
1 1
1
1 1
1 1 1
1
1
1
1 1
1 1 1
1 1
1 1 1 1
1 1 1 1
1
1
1
1 1 1
1 1 1
1 1
1
1 1
1 1
1 1
1
1
1 1
1 1 1
1
1
1
1 1
1
1
1 1
1
1
1 1
1 1
1
1
1
1 1
1
1
1
1
1
1
1
1
1
1
1 1
1
1 1
1 1
1
1
1 1
(37)
Dari matriks
disimpan di data, kemudian dijadikan basis untuk mendapatkan
kode [31, 21, 5] dengan cara menghapus lima baris matriks
kemudian
menambahkan enam vektor yang memenuhi syarat strategi, ternyata dengan cara
ini berhasil mendapatkan 1 kode dengan parameter [31, 21, 5] yang
direpresentasikan oleh matriks
berikut:
=
1 1
1
1 1
1 1 1
1
1
1 1
1 1 1
1 1
1 1 1 1
1 1 1 1
1
1
1
1 1 1
1 1 1
1 1
1
1 1
1 1
1 1
1
1
1 1
1 1 1
1
1
1
1 1
1
1
1 1
1 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1 1
1
1 1
1 1
1
1
1 1
1
1 1 1 1
1
1
1 1
1 1 1 1 1
1 1 1 1 1
1 1
1
Percobaan memperluas kode ini untuk meningkatkan dimensi dilakukan
dengan cara menghapus baris ke 21, 20, 19, 18, 17, 9, 8, 6, 2 dan 1 matriks
kemudian ditambahkan 12 vektor baris yang memenuhi syarat, akhirnya diperoleh
satu kode dengan parameter [33, 23, 5]. Kode tersebut direpresentasikan oleh
(38)
=
1 1 1 1
1
1
1
1 1 1
1 1 1
1
1
1
1 1
1 1
1
1 1
1
1
1
1 1 1
1 1
1
1 1
1
1
1
1 1
1
1
1
1
1 1
1 1
1
1 1
1
1
1
1 1
1
1 1 1 1
1
1
1 1 1
1 1
1
1 1 1
1
1 1
1 1
1
1 1 1
1 1
1 1 1 1
1 1 1 1 1
1
1
1
1 1 1 1 1
1
1 1 1 1 1 1 1
1 1 1 1 1
1 1
1 1 1 1 1 1
1 1
1 1 1 1 1
1 1 1
Untuk kasus
d
= 7, dari tabel Brouwer kode optimal kuat mempunyai
parameter terurut dari dimensi terendah [11, 2, 7], [15, 5, 7], [23, 12, 7], [27, 14,
7], dan [31, 17, 7], untuk
k
> 17 merupakan
open problem
. Dimulai dari kode [11,
2, 7], dikonstruksi dengan
mendefinisikan matriks
B
berukura
n 2 9 berikut:
B
=
1 1 1 1 1 1
1 1 1
1 1 1 .
Matriks ini kemudian dipakai sebagai matriks dasar untuk diperluas menjadi
matriks
berordo 5 10 yang mendefinisikan kode [15, 5, 7]. Proses perluasan
dari
B
ke
dilakukan dengan menambah satu kolom nol pada
B
, dilanjutkan
menambah tiga vektor 10 bit yang memenuhi syarat strategi. Tanpa
memperhatikan relasi ekivalensi, hasil eksplorasi komputatif menunjukkan ada
144 macam
, dengan mereduksi kode yang saling ekivalen maka diperoleh 2
kode optimal kuat [15, 5 , 7], salah satunya adalah
=
1 1 1
1 1 1
1 1 1 1 1 1
1 1 1
1 1
1
1 1
1 1
1
1
1
1 1
1 1
1
(39)
Selanjutnya
diperluas
menjadi
yang berordo 12 11 yang
merepresentasikan kode optimal kuat [23, 12, 7]. Dari hasil eksplorasi diperoleh 8
kode optimal kuat [23, 12, 7] yang tidak saling ekivalen. Salah satu dari kode
tersebut adalah
=
1 1 1
1 1 1
1 1 1 1 1 1
1 1 1
1 1
1
1 1
1 1
1
1
1
1 1
1 1
1
1 1
1
1 1 1
1
1
1 1 1
1
1
1 1
1
1 1
1 1
1
1
1 1
1
1
1 1 1
1
1 1 1 1
1
1
1 1 1 1 1 1 1 1 1 1 1
Adding
satu bit paritas dari kode ini menghasilkan kode Golay [24, 12, 8] yang
telah dibuktikan unik. Generator matriks Golay [24,12,8] dinyatakan sebagai
= (I,B) dengan I adalah matriks identitas 12
1
dan matriks
B
berikut:
(Kanemasu,1990).
Kemudian
diperluas menjadi
berordo 14
13 dengan cara
menambahkan dua kolom nol pada
dan dua vektor 13 bit yang memenuhi
syarat strategi, tetapi
gagal didapatkan dengan cara ini. Selanjutnya
dilakukan rekonstruksi untuk mendapatkan kode optimal kuat [27, 14, 7] dengan
menggunakan satu kali basis matriks berikut:
(1)
> NonZeroWt(C17PX);
> save Code71714, "D:\\coding new\\Coding Theory\\DataOutD7Xt\\CdD7k17r14.m";
Eksplorasi dilanjutkan:
> read "D:\\coding new\\Coding Theory\\DataOutD7Xt\\CdD7k17r14.m"; > nops(Code71714);
(2)
89
> i:=17:
> B5:=DelVekM(i,B6): > i:=16:
> B4:=DelVekM(i,B5): > i:=15:
> B3:=DelVekM(i,B4): > i:=14:
> B2:=DelVekM(i,B3): > i:=12:
> B1:=DelVekM(i,B2): > i:=9:
> B:=DelVekM(i,B1);
(3)
> r:=M[2]; d:=7: k:=B[1];
> t:=min(d-1,k);
> L:=ListKombM(M,t): > H:=Kolek1VekM(d,r,r,L): > nops(H);
> P:=[{},{seq(i,i=1..nops(H))}]: > K:=IdxAddXV(d,P,H,L,0,6): > nops(K);
> save K, "D:\\coding new\\Coding Theory\\DataOutD7Xt\\DatKD7.m";
> read "D:\\coding new\\Coding Theory\\DataOutD7Xt\\DatKD7.m"; > H5:=DefHX(K,H): nops(H5);
> H6:=KolekXVM(d,K,H,L): > nops(H6);
> Q:=ReduEkiX(H5,M): > nops(Q);
Akhirnya, diperoleh 4 kode optimal [31,17,7] tidak saling ekivalen. > T:=map(X->AddVekMX(X,M),Q):
(4)
91
> C17PX:=Code71714[4];
>
NonZeroWt(C17PX);
> save Code71714, "D:\\coding new\\Coding Theory\\DataOutD7Xt\\CdD7k17r14.m";
>
(5)
RINGKASAN
ASRIZA RAHMA. Konstruksi Kode Linear Biner Optimal Kuat Berdimensi 5 dan 7. Dibimbing oleh SUGI GURITMAN dan NUR ALIATININGTYAS.
Kode diciptakan untuk mendeteksi atau mengoreksi galat (error) akibat saluran terganggu. Dalam hal ini sebelum dikirim , semua pesan akan diubah menjadi kata kode (codeword) dengan cara menambahkan beberapa simbol ekstra pada simbol pesan. Proses pengubahan pesan menjadi kata kode disebut enkoding. Perangkat yang mengubah pesan menjadi kata kode disebut enkoder. Kode merupakan himpunan kata kode. Pendefinisian kode ini dilakukan sedemikian sehingga apabila terjadi perubahan beberapa simbol pada kata kode, maka galat itu bisa dipulihkan oleh dekoder. Dekoder merupakan perangkat yang mengubah barisan s ang diterima menjadi kata kode. Kata kode tersebut dipulihkan menjadi pesan asli.
imbol y
Suatu kode subruang dari ruang vektor disebut kode linear biner. Jika kode C dengan panjang n, dimensi k dan jarak minimum d maka disebut kode [n, k, d]. Masalah utama di dalam aljabar teori koding adalah mengoptimalkan salah satu parameter n, k, dan d ketika dua nilai yang lain telah ditentukan. Masalah tersebut mengarah pada pendefinisian fungsi
D ( n, k ) = maks { d / kode [ n, k, d ] ada } untuk optimal-D K ( n, d ) = maks { k / kode [ n, k, d ] ada } untuk optimal-K N ( k, d ) = min { n / kode [ n, k, d ] ada } untuk optimal-N
Dalam hal ini, suatu kode C dengan parameter [ n, k, d ] disebut optimal-D (optimal jarak minimum), jika C ada (telah berhasil dikonstruksi) dan telah pula dibuktikan bahwa tidak ada kode dengan parameter [ n, k, d + 1]. Jika kode linear [n, k, d] ada dan telah berhasil dibuktikan bahwa kode linear [n-1, k, d] tidak ada maka kode disebut optimal-N. Selanjutnya jika kode linear [n, k, d] ada dan telah berhasil dibuktikan bahwa kode linear [n, k+1, d] tidak ada, maka kode tersebut disebut optimal –K. Kode linear C dengan parameter [n, k, d] disebut kode optimal kuat jika kode [n, k, d] ada dan telah dibuktikan bahwa kode [n+1, k+1, d] tidak ada.
Pada penelitian ini akan dikonstruksi kode-kode optimal kuat berjarak minimum 5 dan 7 berdasarkan teorema Gilbert-Varshamov bound dan pengembangan metode komputasi dengan software MAPLE. Dalam hal ini dikonstruksi kode dasar [n, k, d], selanjutnya dari kode dasar ini dikonstruksi tahap demi tahap kode [n+1, k+1,d], [n+2, k+2, d],…dan seterusnya sampai diperoleh kode C dengan parameter [ , , yang tidak bisa diperluas lagi dan telah diketahui dari hasil penelitian sebelumnya kode dengan parameter [ 1, 1, tidak ada. (informasi terkini eksistensi suatu kode berdasarkan tabel Brouwer terbarukan secara online). Hasil konstruksi kode C [ , , ini yang disebut kode optimal kuat. Kode C dapat digunakan sebagai kode dasar untuk diperluas menjadi kode optimal kuat berikutnya.
(6)
Konstruksi kode berarti mendefinisikan matriks generator (G) atau matriks cek paritas (H) dalam bentuk standar G = ( Ik | B ) atau H = ( | ). Berdasarkan teorema konstruksi untuk mengurangi beban komputasi cukup mengkonstruksi matriks B berordo yang semua barisnya berbeda dan jumlah setiap i vektor baris dari B berbobot paling sedikit (d-i) untuk i= 1, 2,…,s, dengan s =min {d-1, k} dan (d-1) .
Kode-kode optimal kuat yang telah berhasil dikonstruksi pada penelitian ini adalah [8,2,5], [11,4,5], [17,9,5], [23,14,5], [31,21,5] [33,23,5], untuk d=7 yaitu [11,2,7], [15,5,7], [23,12,7], [27,14,7], [30,16,7] dan [31,17,7].