Construction of Strongly Optimal Binary Linear Code with Minimum Distance 9 and 11

KON
NSTRUKS
SI KODE LINEAR BINER O
OPTIMAL
L KUAT
BER
RJARAK MINIMUM 9 DAN
N 11

DI UTOM
MO
PUTRANTO HAD

SEKOLA
AH PASCA
ASARJAN
NA
IN
NSTITUT
T PERTAN
NIAN BOG

GOR
2011

.

PERNYATAAN MENGENAI TESIS DAN SUMBER
INFORMASI
Dengan ini saya menyatakan bahwa tesis (Konstruksi Kode Linear Biner
Optimal Kuat Berjarak Minimum 9 dan 11) adalah karya saya 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, November 2011
Putranto Hadi Utomo
NIM G551090421

.

ABSTRACT


PUTRANTO HADI UTOMO. Construction of Strongly Optimal Binary Linear
Code with Minimum Distance 9 and 11. Supervised by SUGI GURITMAN and
TEDUH WULANDARI MAS’OED.
A binary linear code of length n over Fq is a subspace of Fqn . A code has
three parameters that attached to it, namely length, dimension, and minimum
distance. A code with length n, dimension k and minimum distance d is often
called [ n, k , d ] -code. Usually, when two parameters are given, then we want to
find a code that has the best value for the last parameter. Based on GilbertVarshamov bound, if a [ n, k , d ] -code exists and can not be expanded, we call it a
strongly optimal code. In this paper, we construct strongly optimal code with
minimum distance 9 and 11. In constructing the code, we created a theorem and
algorithm based on Gilbert-Varshamov bound before we implement the algorithm
to MAPLE programming language. Because of computational limitations, the
program can only construct up to k = 10 for d = 9 and k = 12 for d = 11.
Keywords: binary linear code, Gilbert Varshamov bound, strongly optimal code.

.

RINGKASAN


PUTRANTO HADI UTOMO. Konstruksi Kode Linear Biner Optimal Kuat
Berjarak Minimum 9 dan 11. Dibimbing oleh SUGI GURITMAN dan TEDUH
WULANDARI MAS’OED.
Media informasi, seperti sistem komunikasi dan media penyimpanan untuk
data, tidak sepenuhnya reliabel. Hal ini dikarenakan bahwa pada praktiknya ada
gangguan (noise) atau interferensi lainnya sehingga pesan yang dikirim berubah
(terdapat error pada pesan). Salah satu masalah dalam teori koding (coding
theory) adalah untuk mendeteksi atau bahkan mengoreksi galat (error) tersebut.
Suatu kode (code) diciptakan untuk mendeteksi atau mengoreksi galat akibat
saluran yang terganggu.
Dari masalah tersebut, ingin dikonstruksi kode-kode optimal kuat, yaitu
kode dengan parameter [n,k,d] dengan syarat tidak ada kode dengan parameter
[n+1,k+1, d], lebih jauh lagi, diharapkan dapat diperbaiki batas bawah dari Tabel
Brouwer. Untuk mencapai hal tersebut, perlu dilakukan beberapa hal sebagai
berikut, yang selanjutnya menjadi tujuan dari penelitian ini.
1. Mengkaji teorema yang terkait dengan konstruksi kode linear,
terutama Gilbert-Varshamov bound.
2. Menyusun algoritme-algoritme untuk mengontruksi kode linear
biner.
3. Mengimplementasikan algoritme-algoritme tersebut dalam suatu

bahasa pemograman dan mengujicobakan untuk kode linear dengan
jarak minimum 9 dan 11.
Setelah dipelajari teorema Gilbert-Varshamov, disusun teorema konstruksi
sebagai berikut.
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 ( d − i )
untuk i = 2, 3,..., s di mana s = min {d − 1, k} , dan ( d −1) ≤ r ,
maka

H = ( BT | I r ) dan G = ( I k | B )

secara berturut-turut merupakan matriks cek paritas dan matriks generator
untuk kode linear C dengan parameter [ k + r , k , ≥ d ] .
Selanjutnya, untuk membangun metode konstruksi yang efisien, perlu
didefiniskan struktur data yang baru, yang merepresentasikan ruang vektor F2n ,

yaitu himpunan kuasa atas A = {0,1, 2,..., n − 1} . Untuk itu, perlu didefinisikan


korespondensi satu-satu antara suatu vektor di Fqn dengan suatu himpunan
bilangan bulat tak negatif. Selanjutnya, operasi penjumlahan dalam representasi
himpunan didefinisikan sebagai operasi xor/selisih simetri. Karena struktur data

yang digunakan adalah struktur data khusus, maka perlu didefinisikan terlebih
dahulu program-program tentang aritmatik aljabar matriks dalam representasi
himpunan, seperti menghitung penjumlahan dua vektor dan operasi OBD.
Setelah dibangun program-program dasar untuk proses aritmatik aljabarnya,
selanjutnya akan dikonstruksi program pelacakan kode linear biner. Tiga program
terpenting adalah:
k
1. Melacak/mencari satu vektor baris x dalam F2 yang bisa
ditambahkan ke matriks B berdasarkan teorema Gilbert-Vashamov.
2. Menguji apakah dua vektor x dan y bisa ditambahkan ke matriks B
berdasarkan teorema Gilbert-Varshamov.
3. Menguji apakah m+1 vektor bisa ditambahkan ke matriks B
Dalam penelitian ini, kode linear biner yang berhasil dikonstruksi hanya
sampai k = 12, r = 18 untuk d = 9 dan sampai k = 14, r = 22 untuk d = 11. Namun
demikian, sangat sulit untuk mengonstruksi semua kode optimal kuat. Hal ini
disebabkan antara lain oleh:

1. Keterbatasan komputer yang digunakan, sehingga tidak mungkin
melacak semua kemungkinan kombinasi.
2. Pemilihan kode dasar (matriks B awal) yang kurang baik.
3. Program konstruksi yang masih belum sempurna.
Dalam penelitian ini, masih banyak kekurangan yang ada di dalamnya,
diantaranya adalah:
1. Tidak semua kode linear optimal kuat dapat dikonstruksi, walaupun
kode tersebut ada (telah dikonstruksi oleh orang lain).
2. Algoritme konstruksi, walaupun untuk representasi himpunan sudah
cukup baik, masih dapat diperbaiki dalam hal kecepatan pelacakan
kode-kode linear biner, terutama untuk dimensi yang cukup besar.
Untuk ke depannya, dapat diperbaiki algoritme konstruksi sehingga dapat
digunakan untuk mencari/melacak kode dengan lebih cepat dan dapat mencakup
kode linear yang memiliki dimensi yang besar. Selain itu, dapat pula
dikembangkan program untuk mengoleksi kode-kode atas Fq , untuk q > 2 .
Kata kunci: kode linear biner, teorema Gilbert-Varshamov, kode optimal kuat

.

© Hak Cipta milik IPB, tahun 2011

Hak Cipta dilindungi Undang-Undang
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan
atau menyebutkan sumbernya. Pengutipan hanya untuk kepentingan pendidikan,
penelitian, penulisan karya ilmiah, penyusunan laporan, penulisan kritik, atau
tinjauan suatu masalah; dan pengutipan tersebut tidak merugikan kepentingan
yang wajar IPB
Dilarang mengumumkan dan memperbanyak sebagian atau seluruh karya tulis
dalam bentuk apa pun tanpa izin IPB

.

KONSTRUKSI KODE LINEAR BINER OPTIMAL KUAT
BERJARAK MINIMUM 9 DAN 11

PUTRANTO HADI UTOMO

Tesis
sebagai salah satu syarat untuk memperoleh gelar
Magister Sains pada
Program Studi Matematika Terapan


SEKOLAH PASCASARJANA
INSTITUT PERTANIAN BOGOR
2011

Penguji Luar Komisi pada Ujian Tesis: Dr. Ir. Sri Nurdiati, M.Sc.

Judul Tesis
Nama
NIM

: Konstruksi Kode Linear Biner Optimal Kuat Berjarak Minimum 9
dan 11
: Putranto Hadi Utomo
: G551090421

Disetujui
Komisi Pembimbing

Teduh Wulandari, M. Si.

Anggota

Dr. Sugi Guritman
Ketua
Diketahui

Ketua Program Studi
Matematika Terapan

Dekan Sekolah Pascasarjana

Dr. Ir. Endar H. Nugrahani, M.S.

Dr. Ir. Dahrul Syah, M.Sc.Agr.

Tanggal Ujian: 28 Oktober 2011

Tanggal Lulus:

:


.

Untuk Ayahanda, Ibunda,
serta Adik-adikku tersayang.

.

PRAKATA
Puji dan syukur penulis panjatkan kepada Allah SWT atas segala karuniaNya sehingga tesis ini dapat diselesaikan. Tema yang dipilih dalam penelitian ini
tentang masalah pada coding theory. Tesis ini merupakan syarat untuk
menyelesaikan studi pada Program Magister Matematika Terapan, Departemen
Matematika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian
Bogor.
Terima kasih penulis ucapkan kepada :
• Bapak Sugi Guritman, Ibu Teduh Wulandari, dan Ibu Sri Nurdiati,
selaku dosen pembimbing dan penguji yang telah memberi
bimbingan, masukan, dorongan, nasihat serta segala bantuan
sehingga tugas akhir ini dapat terselesaikan.
• Ayah, ibu, dan adik-adik yang selalu memberi kasih sayang,

perhatian, dukungan moril dan materi.
• Semua staf dan dosen pengajar Departemen Matematika yang telah
memberikan ilmu yang bermanfaat selama menuntut ilmu di
Departemen Matematika.
• Sahabat yang selalu memberi kebahagiaan, semangat, tantangan,
perhatian, bantuan, inspirasi, doa, dan kasih sayang.
• Teman-teman mahasiswa departemen Matematika. Terima kasih atas
segala persahabatan yang telah kita jalin selama beberapa tahun ini.
Penulis menyadari bahwa tulisan ini masih jauh dari kesempurnaan dan
penulis sangat menghargai segala saran dan kritik yang membangun dari
pembaca. Penulis juga mengharapkan tulisan ini dapat bermanfaat bagi semua
pihak yang memerlukan. Terima kasih.

Bogor, November 2011

Putranto

.

RIWAYAT HIDUP
Penulis dilahirkan di Bogor pada tanggal 7 September 1986 sebagai anak
pertama dari 4 bersaudara pasangan Bapak Hadi Sumarno dan Ibu Dwi
Ananingsih.
Pendidikan formal yang ditempuh penulis yaitu di SDN Panaragan 2 Kodya
Bogor lulus pada tahun 1999, SLTPN 1 Darmaga Kab. Bogor lulus pada tahun
2002, SMAN 5 Bogor lulus pada tahun 2005, dan pada tahun yang sama penulis
diterima di Institut pertanian Bogor melalui jalur USMI (Undangan seleksi Masuk
IPB). Pendidikan sarjana ditempuh di Departemen Matematika, Fakultas
Matematika dan Ilmu Pengetahuan Alam, lulus pada tahun 2009. Penulis
melanjutkan studi di Program Studi Matematika Terapan pada Program
Pascasasarjana IPB.
Selama mengikuti perkuliahan, penulis pernah menjadi asisten praktikum
Analisis Numerik pada tahun 2009 dan asisten praktikum Metode Komputasi pada
tahun 2010.

.

DAFTAR ISI
Halaman

DAFTAR TABEL ...................................................................................... xiii 
DAFTAR GAMBAR .................................................................................. xiii
DAFTAR LAMPIRAN .............................................................................. xiii 








PENDAHULUAN ................................................................................ 1 
1.1 

Latar Belakang............................................................................... 1 

1.2 

Tujuan Penelitian ........................................................................... 4 

TINJAUAN PUSTAKA ....................................................................... 6 
2.1 

Definisi Dasar dalam Aljabar dan Teori Koding ........................... 7 

2.2 

Enkoding Kode Linear ................................................................ 15 

2.3 

Dekoding Tetangga Terdekat ...................................................... 16 

2.4 

Dekoding Sindrom ...................................................................... 17 

2.5 

Dasar-dasar Konstruksi Kode ...................................................... 17 

HASIL DAN PEMBAHASAN .......................................................... 20 
3.1 

Formulasi Masalah ...................................................................... 21 

3.2 

Analisis Teori .............................................................................. 23 

3.3 

Metode Komputasi ...................................................................... 30 

3.4 

Hasil yang Diperoleh ................................................................... 52 

KESIMPULAN DAN SARAN .......................................................... 55 

DAFTAR PUSTAKA .................................................................................. 57 
LAMPIRAN ................................................................................................ 59 

.

DAFTAR TABEL
Halaman

Tabel 1. Tabel kebenaran unrtuk sifat asosiatif pada operasi xor................ 36 
Tabel 2. Perbandingan komputasi antara dua representasi data .................. 52 
Tabel 3. Hasil konstruksi untuk kode untuk d = 9 dan d = 11 ..................... 52 

DAFTAR GAMBAR
Halaman

Gambar 1. Proses koding untuk suatu pesan ................................................. 2 
Gambar 2. Contoh enkoding dan dekoding dari suatu pesan ........................ 2 
Gambar 3. Contoh informasi yang gagal terkirim ......................................... 3 

DAFTAR LAMPIRAN
Halaman

Lampiran 1. Tabel Brouwer......................................................................... 61 
Lampiran 2. Program Konstruksi Kode ....................................................... 62 

.

1
1.1

PENDAHULUAN

Latar Belakang

Media informasi, seperti sistem komunikasi dan media penyimpanan untuk
data, tidak sepenuhnya reliabel. Hal ini dikarenakan bahwa pada praktiknya ada
gangguan (noise) atau inferensi lainnya sehingga pesan yang dikirim berubah
(terdapat galat pada pesan). Salah satu masalah dalam teori koding (coding
theory) adalah untuk mendeteksi atau bahkan mengoreksi galat tersebut.
Artikel tentang masalah tersebut pertama kali ditulis oleh C. E. Shannon
pada tahun 1948 dalam artikelnya yang berjudul A Mathematical Theory of
Communication. Masalah 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, misalnya
pesan yang berupa gambar atau suara menjadi tidak jelas. 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.
Suatu kode (code) 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 yang anggotanya kata kode. Pendefinisian
kode ini dilakukan sedemikian sehingga apabila terjadinya perubahan beberapa
simbol pada kata kode, maka galat itu bisa dipulihkan lagi oleh dekoder. Dekoder
merupakan perangkat yang mengubah barisan simbol yang diterima menjadi kata
kode. Suatu model komunikasi dapat digambarkan seperti pada Gambar 1, dan
untuk contohnya dapat dilihat pada Gambar 2.

2

sumber pesan

mesin penerima

enkoder sumber

dekoder sumber

enkoder saluran

saluran

dekoder saluran

gangguan

Gambar 1. Proses koding untuk suatu pesan.

Apel

Apel

00

00

00000

channel

01000

gangguan

Gambar 2. Contoh enkoding dan dekoding dari suatu pesan.

Ilustrasi tentang source coding dan channel coding akan dijelaskan pada
paragraf berikut ini.
Source coding terdiri dterdiri atasari dua bagian, yaitu source encoding dan
source decoding. Source encoding meliputi perubahan pesan asal (message
source) menjadi kode yang bersesuaian sehingga dapat dikirimkan melalui suatu
saluran/jalur data, sedangkan source decoding meliputi perubahan kode yang
dikirimkan menjadi pesan asal. Kode ASCII adalah salah satu contoh source
coding yang mengubah setiap karakter menjadi suatu “byte” yang terdiri atas
delapan bit.
Sebagai contoh, misalkan source encoding untuk empat jenis buah-buahan
didefinisikan sebagai berikut.


Apel = 00



Pisang = 01



Ceri = 10



Anggur = 11

3

Misalkan pula pesan “Apel”, yang dikodekan sebagai “00” akan dikirimkan
melalui noisy channel (jalur bergangguan). Pesan tersebut dapat saja
menyimpang/ berubah dan diterima sebagai “10”. Dalam kasus ini, mesin
penerima tidak dapat mendeteksi kesalahan tersebut, sehingga komunikasi
tersebut gagal (lihat Gambar 3).

Apel

00

Pisang

channel

01

gangguan

Gambar 3. Contoh informasi yang gagal terkirim.

Pesan yang telah dikodekan oleh source encoder dapat saja berubah jika
melalui noisy channel. Ide dari channel coding adalah untuk mendeteksi
kesalahan tersebut dengan cara men-enkode lagi pesan yang akan dikirimkan
dengan cara menambahkan unsur redundansi/unsur ekstra sehingga kesalahan
tersebut dapat dideteksi atau bahkan dikoreksi.
Untuk mengilustrasikan channel encoding, misalkan ditambahkan satu bit
data redundansi pada contoh sebelumnya sebagai berikut.


00 = 000



01 = 011



11 = 110

Misalkan pula pesan “apel” yang dikodekan sebagai “000” (setelah
dilakukan source dan channel encoding) dikirimkan melalui saluran yang
terganggu (noise) memiliki kesalahan satu bit, sehingga pesan yang diterima dapat
berubah menjadi “001”, 010”, atau “100”.
Dalam kasus ini, kesalahan dapat dideteksi karena tidak ada satupun dari
“001”, “010”, dan “100” yang merupakan pesan awal. Untuk contoh di atas,
kesalahan pesan dapat dideteksi dengan kompensasi kecepatan transfer, karena
untuk mengirim pesan berukuran dua bit, perlu ditransmisikan kata kode
berukuran tiga bit. Walaupun kesalahan pada pesan dapat dideteksi, mesin

4

penerima tidak dapat memperbaiki kesalahan tersebut, karena jika yang diterima
adalah “100”. Ada kemungkinan kata kode tersebut berasal dari “000”, “110”,
atau “101”. Namun, dengan ditambahkan lagi unsur redundansi, kesalahan
tersebut dapat dikoreksi. Sebagai contoh, dapat didesain skema koding sebagai
berikut.


00 = 00000



01 = 01111



10 = 10110



11 = 11001

Untuk dapat membandingkan dengan contoh sebelumnya, misalkan pesan
“apel” akan dikirimkan melalui sinyal terganggu dan hanya terjadi satu bit
kesalahan. Dengan demikian, pesan yang diterima adalah salah satu dari lima
kemungkinan berikut: “10000”, “01000”, “00100”, “00010”, atau “00001”.
Misalkan yang sampai adalah “10000”, mesin penerima akan dapat mengambil
kesimpulan bahwa pesan tersebut berasal dari “0000”, karena kesalahan yang
terjadi hanya satu bit, sehingga tidak mungkin pesan tersebut berasal dari
“01111”, “10110”, dan “11001”. Namun, dengan skema seperti ini, lebih banyak
waktu yang terbuang.
Secara umum, tujuan dari teori koding adalah untuk mengonstruksi suatu
kode (enkoder dan dekoder) sehingga
1. dapat meng-enkode suatu pesan dengan cepat,
2. dapat mentransmisi pesan yang sudah di-enkode dengan mudah,
3. dapat men-dekode suatu pesan yang diterima dengan cepat,
4. dapat memaksimumkan informasi yang ditransfer per satuan waktu,
dan
5. dapat secara maksimal dalam mendeteksi dan mengoreksi kesalahan.
1.2

Tujuan Penelitian

Berdasarkan latar belakang yang dipaparkan di atas, maka tujuan dari
penelitian ini adalah:
1. Mengkaji teorema yang terkait dengan konstruksi kode linear, terutama
Gilbert-Vashamov bound.
2. Menyusun algoritme-algoritme untuk mengontruksi kode linear biner.

5

3. Mengimplementasikan algoritme-algoritme tersebut dalam suatu bahasa
pemograman dan mengujicobakan untuk kode linear dengan jarak
minimum 9 dan 11.
Dari tujuan-tujuan tersebut, penelitian ini diharapkan dapat memberikan
suatu hal yang baru dalam teori koding, yaitu memperbaiki batas bawah dari
Tabel Brouwer.

.

2

TINJAUAN PUSTAKA

Pada bab ini diberikan definisi dan teorema dalam aljabar linear maupun
dalam teori koding yang melandasi penelitian yang dilakukan.
2.1

Definisi Dasar dalam Aljabar dan Teori Koding

Berikut adalah definisi dan teorema dasar dalam aljabar yang melandasi
teori koding.
2.1.1

Definisi: Ruang Vektor

Misalkan Fq merupakan lapangan hingga dengan order q . Himpunan tak
kosong V (dengan penjumlahan vektor dan perkalian skalar oleh elemen Fq )
merupakan ruang vektor dari Fq jika untuk semua u, v ∈V dan untuk semua

λ , μ ∈ Fq , berlaku:
i.

u + v ∈V

ii.

(u + v ) + w = u + ( v + w)

iii.

∃ unsur 0 ∈V dimana 0 + v = v = v + 0, ∀v ∈V

iv.

∀u ∈ V , ∃ − u ∈ V dimana u + ( −u ) = 0 = ( −u ) + u

v.

u +v = v+u

vi.

λ ⋅ v ∈V

vii.

λ ⋅ (u + v ) = λ ⋅ u + λ ⋅ v

viii.

( λμ ) ⋅ u = λ ( μ ⋅ u )

ix.

Jika 1 merupakan unsur identitas untuk perkalian di Fq , maka

1⋅ u = u
(Ling & Xing, 2004)
2.1.2

Definisi: Penjumlahan Vektor dan Perkalian Skalar di Fqn

Misalkan

didefinisikan

ruang

vektor

Fqn

atas

Fq ,

yaitu:

Fqn = {u | u = ( u1 , u 2 , u3 , … , u n ) ; ui ∈ Fq } . Misalkan pula V = ( v1 , v2 ,… , vn ) ∈ Fqn ,

W = ( w1 , w2 ,… , wn ) ∈ Fqn , dan

λ ∈ Fq . Maka penjumlahan vektor di Fqn

8

didefinisikan

sebagai

U + W = ( v1 + w1 , v2 + w2 ,… , vn + wn ) ∈ Fq ,

sedangkan

perkalian skalar didefinisikan sebagai λ ⋅ v = ( λ v1 , λ v2 ,… , λ vn ) ∈ Fqn .
(Ling & Xing, 2004)
2.1.3

Definisi: Subruang (Subspace)

Suatu himpunan tak kosong C dari ruang vektor V merupakan subruang
(ruang bagian) dari V jika C merupakan ruang vektor dan memiliki sifat
penjumlahan vektor dan perkalian vektor yang sama dengan V .
(Ling & Xing, 2004)
2.1.4

Proposisi 1

Suatu himpunan tak kosong C yang merupakan himpunan bagian dari
atas Fq merupakan subruang jika dan hanya jika untuk

ruang vektor V

∀x, y ∈ C & λ ,μ ∈ Fq , berlaku λ x + μ y ∈ C .
(Ling & Xing, 2004)
2.1.5

Definisi: Kombinasi Linear

Misalkan V merupakan ruang vektor atas Fq , λi ∈ Fq sembarang, maka

λ1u1 + λ2u 2 + … + λr u r merupakan kombinasi linear dari u1 , u 2 ,… , u r ∈ V .
(Ling & Xing, 2004)
2.1.6

Definisi: Bebas Linear

Misalkan V

{v1 , v2 ,… , vk }

merupakan ruang vektor atas

dalam

V

dikatakan

saling

Fq , himpunan vektor
bebas

linear

jika

λ1 v1 + λ2 v2 + … + λr vr = 0 mengakibatkan λ1 = λ2 = … = λr = 0 , dan tak bebas
linear jika ada λi ≠ 0 yang mengakibatkan λ1 v1 + λ2 v2 + … + λr vr = 0 .
(Ling & Xing, 2004)
2.1.7

Definisi: Rentang Linear

Misalkan V

merupakan ruang vektor atas Fq dan S = {v1 , v2 ,… , vk }

merupakan himpunan tak kosong dari V . Rentang linear dari S didefinisikan

9

S = {λ1v1 + λ2 v2 + … + λk vk ; λi ∈ Fq } .

sebagai

Jika

S =∅,

didefinisikan

S = {0} .

(Ling & Xing, 2004)
2.1.8

Definisi: Basis

Misalkan V merupakan ruang vektor atas Fq . Himpunan tak kosong
B = {v1 , v2 ,… , vk } dari V dikatakan basis untuk V jika V = B dan B bebas

linear.
Misalkan B = {v1 , v2 ,… , vk } basis untuk V , maka sembarang vektor v ∈V
dapat dinyatakan sebagai kombinasi linear dari vektor B secara unik.
2.1.9

Teorema 1

Misalkan V merupakan ruang vektor atas Fq . Jika dim (V ) = k , maka:
i.

V memiliki q k elemen.

ii.

V memiliki

1 k −1 k i
∏ ( q − q ) basis yang berbeda.
k ! i =0
(Ling & Xing, 2004)

2.1.10 Definisi: Hasil Kali Skalar

Misalkan

V = ( v1 , v2 ,… , vn ) ∈ Fqn , W = ( w1 , w2 ,… , wn ) ∈ Fqn

.

Hasil

kali

skalar (dot product/hasil kali euclidian) dari V dan W didefinisikan sebagai

V ⋅W = v1w1 + v2 w2 + … + vn wn ∈ Fq . Hasil kali skalar merupakan salah satu contoh
dari hasil kali dalam pada Fgn .
Hasil kali dalam pada

Fqn

didefinisikan sebagai pasangan terurut

, : Fqn × Fqn → Fq yang memenuhi : ∀u , v ∈ Fqn , berlaku

i.

u + u , w = u , w + v, w .

ii.

u , v + w = u , w + v, w .

iii.

u , v = 0 untuk semua u ∈ Fqn jhj v = 0 .

iv.

u , v = 0 untuk semua v ∈ Fqn jhj u = 0 .

(Ling & Xing, 2004)

10

2.1.11 Definisi: Komplemen Orthogonal

Misalkan V = ( v1 , v2 ,… , vn ) ∈ Fqn , W = ( w1 , w2 ,… , wn ) ∈ Fqn .
i.

Vektor V dan W dikatakan saling tegak lurus (orthogonal) jika

V ⋅W = 0 .
ii.

Misalkan S merupakan himpunan bagian dari Fqn . Komplemen
orthogonal

dari

S,

yaitu

S⊥

didefinisikan

sebagai

S ⊥ = {v ∈ Fqn | v ⋅ s = 0, ∀s ∈ S } . Jika S = ∅ , didefinisikan S ⊥ = Fqn .

Jika S merupakan subruang dari ruang vektor Fqn , maka S ⊥
merupakan subruang dari ruang vektor Fqn dan S



= S⊥.

(Ling & Xing, 2004)
2.1.12 Teorema 2

Diberikan ruang vektor Fqn . Misalkan S himpunan bagian dari Fqn , maka
dim ( S

) + dim ( S ) = n .


(Ling & Xing, 2004)
2.1.13 Definisi: Kode Linear

Misalkan diberikan lapangan hingga Fq . Misalkan pula Fqn merupakan
himpunan dari vektor-vektor atas Fq dengan panjang n . Kode linear C
didefinisikan sebagai ruang bagian dari ruang vektor Fqn . Kode linear C dengan
panjang n dan dimensi k sering dinamakan q − ary [ n, k ] − code (kode linear
dengan parameter [ n, k ] ). Jika jarak minimum d dari C diketahui, C dapat
disebut kode linear dengan parameter [ n, k , d ] . Atau biasa disebut kode linear-

[ n, k , d ] .

Untuk selanjutnya, jika parameter dari suatu kode tidak ditekankan,

cukup disebutkan bahwa C adalah suatu kode linear. Anggota dari C disebut
dengan kata kode.
(Ling & Xing, 2004)

11

2.1.14 Definisi: Kode dual dan dimensi dari suatu kode

Misalkan C merupakan kode linear, maka
i.


Kode dual (dual code) dari C adalah C , yang merupakan

komplemen othogonal dari C .
ii.

Dimensi dari kode linear C sama dengan dimensi C dalam sudut
pandang subruang vektor atas Fq , yaitu dim ( C ) .
(Ling & Xing, 2004)

2.1.15 Teorema 3

Diberikan ruang vektor Fqn . Misalkan C adalah kode linear dengan panjang

n dan dimensi k di Fqn , maka:
=

C = q dim( C ) ↔ dim(C ) = log q C .

i.

Banyaknya unsur di C

ii.

C ⊥ juga merupakan suatu kode linear dan dim(C ) + dim(C ⊥ ) = n .

iii.

(C )

⊥ ⊥

=C.

(Ling & Xing, 2004)
2.1.16 Definisi: Self-orthogonal dan Self-Dual

Misalkan C adalah kode linear.
i.

C dikatakan self- orthogonal jika C ⊆ C ⊥ .

ii.

C dikakatan self-dual jika C = C⊥ .
(Ling & Xing, 2004)

2.1.17 Proposisi 2

Misalkan C adalah kode linear dengan panjang n .
i.

Jika C merupakan kode yang self-orthogonal, maka dim ( C ) ≤

ii.

Jika C merupakan kode yang self-dual, maka dim ( C ) =

n
.
2

n
.
2

(Ling & Xing, 2004)

12

2.1.18 Definisi: Jarak Hamming (Hamming distance)

Diberikan ruang vektor Fqn atas lapangan Fq . Misalkan pula x dan y
adalah anggota dari Fqn

( x, y ∈ F ) .
n
q

Jarak Hamming antara x dan y yang

dinotasikan dengan d ( x , y ) , didefinisikan sebagai berikut.
d ( x, y ) = d ( x1 , y1 ) + d ( x2 , y2 ) + ...d ( xn , yn ) , dengan
⎧1
d ( xi , yi ) = ⎨
⎩0

xi ≠ yi
xi = yi

.
(Ling & Xing, 2004)

2.1.19 Definisi: Jarak minimum suatu kode (Minimum distance of a code)

Misalkan C adalah kode linear yang memiliki kata kode lebih dari satu.
Jarak minimum untuk C , yang dinotasikan d ( C ) , didefinisikan sebagai
d ( C ) = min {d ( x, y ) | x, y ∈ C , x ≠ y} .

(Ling & Xing, 2004)
2.1.20 Definisi: Bobot Hamming (Hamming weight)

Diberikan ruang vektor Fqn . Misalkan pula x ∈ Fqn . Bobot Hamming
(Hamming Distance), yang dinotasikan wt ( x) didefinisikan sebagai jumlah
koordinat/unsur yang tak nol:
wt ( x ) = d ( x, 0)

dengan 0 adalah vektor nol

atau dapat pula didefnisikan sebagai berikut.

⎧1
wt ( x) = d ( x, 0) = ⎨
⎩0

jika x ≠ 0
jika x = 0

.
(Ling & Xing, 2004)

2.1.21 Lema 1.

Diberikan ruang vektor Fqn . Misalkan x, y ∈ Fqn , maka d ( x, y) = wt ( x − y) .
(Ling & Xing, 2004)

13

2.1.22 Lema 2

Misalkan diberikan bilangan prima q sembarang. Misalkan pula Fqn suatu
ruang

vektor

atas

Fq .

Untuk

sembarang

x, y ∈ Fqn ,

berlaku

wt ( x ) + wt ( y ) ≥ wt ( x + y ) ≥ wt ( x ) − wt ( y ) .

(Ling & Xing, 2004)
2.1.23 Definisi: Bobot Minimal Hamming

Diberikan kode linear C . Minimum Hamming weight (bobot minimal
Hamming) dari C , dinotasikan wt ( C ) , didefinisikan sebagai bobot terkecil dari
kata kode tak nol dari C .
(Ling & Xing, 2004)
2.1.24 Teorema 4

Misalkan C adalah suatu kode linear, maka d ( C ) = wt ( C ) .
(Ling & Xing, 2004)
2.1.25 Definisi: Operasi Baris Dasar

Diberikan lapangan hingga Fq . Misalkan A adalah matriks dengan elemenelemen di Fq , yaitu A = ( aij ) , aij ∈ Fq . Matriks A dikatakan dikenakan operasi
baris dasar (elementary row operation) jika


Mempertukarkan baris ke- i dan ke- j .



Mengalikan baris ke- i dengan suatu konstanta k ≠ 0 .



Menambahkan baris ke- i dengan k kali baris ke- j .
(Ling & Xing, 2004)

2.1.26 Definisi: Ekivalen baris

Misalkan A1 dan A2 adalah suatu matriks sembarang. Matriks A1 dikatakan
ekivalen baris (row equivalent) terhadap A2 jika A1 bisa diperoleh dari
sekumpulan operasi baris dasar dari matriks A2 .
(Ling & Xing, 2004)

14

2.1.27 Definisi: Matriks Generator dan Matriks Cek Paritas

Diberikan kode linear C .
i.

G dikatakan matriks generator bagi kode linear C jika barisbarisnya merupakan basis untuk C .

ii.

H dikatakan matriks cek paritas bagi kode linear C jika H

merupakan matriks generator bagi kode dual C .

(Ling & Xing, 2004)
2.1.28 Definisi: Bentuk standar dari H dan G

Diberikan kode linear C . Misalkan H dan G , secara berturut-turut adalah
matriks cek paritas dan matriks generator untuk kode linear C .
i.

Bentuk standar untuk matriks generator G adalah ( I k | X ) , dengan
I k = Matriks identitas berukuran k × k .

ii.

Bentuk standar untuk matriks cek paritas H adalah

(Y | I n − k ) ,

dengan I n − k = Matriks identitas berukuran ( n − k ) × ( n − k ) .
(Ling & Xing, 2004)
2.1.29 Teorema 5

Diberikan kode linear C . Misalkan H adalah suatu matriks cek paritas bagi
kode linear C , maka
i.

d ( C ) (jarak minimum dari C ) ≥ d jika dan hanya jika d − 1 kolom

dari H saling bebas linear.
ii.

d ( C ) (jarak minimum dari C ) ≤ d jika dan hanya jika d kolom

dari H saling bergantung linear.
(Ling & Xing, 2004)
2.1.30 Teorema 6

Diberikan kode linear C . Jika G = ( I k | X ) adalah bentuk standar dari
matriks generator untuk suatu kode C dengan parameter [ n, k ] , maka matriks cek
paritas untuk kode C adalah H = ( − X Τ | I n − k ) .
(Ling & Xing, 2004)

15

2.1.31 Definisi: Ekivalensi dari Kode Linear

Misalkan diberikan sembarang kode linear C1 dan C2 . C1 dan C2 dikatakan
ekivalen jika salah satunya dapat diperoleh dari kode yang lain dengan cara
mengkombinasikan operasi-operasi sebagai berikut.
i.

Mempermutasikan digit-digit yang ada di kata kode tersebut.

ii.

Mengalikan posisi tertentu dengan skalar.
(Ling & Xing, 2004)

2.1.32 Teorema 7

Misalkan C adalah suatu kode linear dengan matriks generator G . Kode C
akan ekivalen dengan kode linear C ' dengan matriks generator yang sudah dalam
bentuk standar.
(Ling & Xing, 2004)
2.2

Enkoding Kode Linear

Misalkan C adalah suatu kode linear- [ n, k , d ] , dan G adalah matriks
generator untuk C . Misalkan pula u = ( u1 , u2 ,..., uk ) ∈ Fqk . Jika didefinisikan
v = uG = u1 g1 + u 2 g 2 + ... + u k g k , karena v ∈ Fqn , maka v merupakan salah satu

kata kode di C . Proses membuat u menjadi v dinamakan dengan proses
enkoding.
(Ling & Xing, 2004)
2.2.1

Definisi: Koset

Misalkan C adalah suatu kode linear dengan panjang n . Misalkan pula
u ∈ Fqn merupakan suatu vektor sembarang dengan panjang n . Koset C yang

ditentukan oleh u didefinisikan sebagai C + u = u + C = {v + u | v ∈ C } .
(Ling & Xing, 2004)
2.2.2

Teorema 8

Diberikan ruang vektor Fqn . Misalkan C adalah suatu linear kode dengan
parameter [ n, k , d ] , maka:
i.

Semua vektor dari Fqn ada di dalam koset C .

16

ii.

Untuk semua u ∈ Fqn , C + u = C = q k .

iii.

Untuk semua u , v ∈ Fqn , jika u ∈ C + v , maka C + u = C + v .

iv.

Dua koset dikatakan identik jika irisannya merupakan himpunan
kosong.

v.

Ada q n − k koset yang berbeda untuk C .

vi.

Untuk semua u , v ∈ Fqn , u − v ∈ C jika dan hanya jika u dan v ada
dalam koset yang sama.
(Ling & Xing, 2004)

2.2.3

Definisi: Coset Leader

Diberikan kode linear C . Suatu kata kode dalam C yang memiliki bobot
(Hamming) terkecil, dikatakan sebagai coset leader.
(Ling & Xing, 2004)
2.3

Dekoding Tetangga Terdekat

Diberikan kode linear C . Misalkan kata kode v dikirim dan diterima
sebagai kode w . Misalkan didefinisikan vektor galat e = w − v .
Dari definisi koset, diperoleh e = w − v ∈ w + C atau w − e = v ∈ C . Karena

w − e ∈ C , maka vektor galat e dan kode w yang diterima berada dalam koset
yang sama.
Karena vektor galat dengan bobot terkecil memiliki peluang terbesar untuk
terjadi, maka ketika dekoder menerima kata kode w , dekoder memilih vektor
galat e (dalam koset w + C ) dengan bobot terkecil dan menyimpulkan kode yang
dikirim adalah v = w − e .
(Ling & Xing, 2004)
2.3.1

Definisi: Sindrom

Misalkan C adalah suatu kode linear − [ n, k , d ] dan H adalah matriks cek
paritas untuk C . Untuk sembarang w ∈ Fqn , sindrom dari w didefinisikan sebagai
S ( w ) = wH T ∈ Fqn − k .

(Ling & Xing, 2004)

17

2.3.2

Teorema 9

Misalkan C adalah kode linear − [ n, k , d ] , maka kode C dapat memperbaiki
⎢ d − 1⎥
galat/error sebanyak ⎢
⎥.
⎣ 2 ⎦

(Ling & Xing, 2004)
2.4

Dekoding Sindrom

Dekoding sindrome merupakan perbaikan dari dekoding tetangga terdekat.
Ide dasar dari dekoding ini adalah untuk menghemat memori yang digunakan.
2.4.1

Teorema 10

Misalkan C adalah kode linear − [ n, k , d ] dan H adalah matriks cek paritas
untuk C . Untuk sembarang u , v ∈ Fqn , berlaku
i.

S (u + v ) = S (u ) + S ( v ) .

ii.

S ( u ) = 0 jika dan hanya jika u adalah kata kode dalam C .

iii.

S ( u ) = s ( v ) jika dan hanya jika u dan v ada dalam koset yang

sama.
(Ling & Xing, 2004)
Dari Teorema 10, dapat diambil kesimpulan bahwa suatu koset dapat
didefinisikan oleh sindromnya, dan semua kata kode yang berada dalam suatu
koset menghasilkan sindrom yang sama, atau dapat dikatakan sindrom dari suatu
koset sama dengan sindrom dari anggotanya. Dengan kata lain, ada korespondensi
satu-satu antara koset dan sindromnya.
(Ling & Xing, 2004)
2.5

Dasar-dasar Konstruksi Kode

Apabila suatu kode telah berhasil dikonstruksi, maka kode dengan
parameter yang berbeda dapat pula dikonstruksi, berikut adalah beberapa cara
untuk mendapatkan kode lain tersebut.

18

2.5.1

Adding an overall parity check/Extending a code (Penambahan pada
matriks cek paritas)

Misalkan C adalah suatu kode linear biner dengan parameter [ n, k , d ]
dengan beberapa kata kodenya berbobot ganjil. Dari kode tersebut akan dibentuk
kode baru Ĉ dengan menambahkan bit "0" di akhir kata kode yang berbobot
genap, dan bit "1" di akhir kata kode yang berbobot ganjil.
Dengan penambahan ini, jarak tiap pasang kata kode menjadi genap. Jika
jarak minimum kode C ganjil, maka kode yang baru memiliki jarak minimum

d + 1, sehingga Ĉ memiliki parameter

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

Secara umum, proses

penambahan simbol pada matriks cek paritas disebut sebagai exending a code
(memperluas suatu kode) .
(MacWilliams & Sloane,1981)
2.5.2

Puncturing a code by deleting coordinates (Pemotongan kode dengan
cara menghapus koordinat tertentu)

Misalkan C 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 C * memiliki parameter [ n − 1, k , d − 1] .
(MacWilliams & Sloane,1981)
2.5.3

Expurgating by thowing away codewords (Penghapusan dengan cara
menghilangkan beberapa kata kode)

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 .
(MacWilliams & Sloane,1981)

19

2.5.4

Augmenting by adding new codeword (Memperbesar suatu kode
dengan cara menambahkan kata kode baru)

Salah satu cara untuk memperbesar suatu kode adalah dengan cara
menambahkan satu baris vektor 1 pada matriks generator.
Jika C adalah suatu kode dengan parameter [ n, k , d ] dan tidak memiliki
kata kode 1 (vektor satu), kode yang telah diperbesar berbentuk C ( ) = C ∪ (1 + C )
a

( C(

a)

mengandung/memiliki kata kode dari kode C beserta komplemennya),

sehingga C (

a)

a
a
memiliki parameter ⎡ n, k + 1, d ( ) ⎤ , dengan d ( ) = min {d , n − d '} ,



dan d ' = bobot terbesar dari kata kode di C .
(MacWilliams & Sloane,1981)
2.5.5

Lengthening by adding message symbols (Memperpanjang suatu kode
dengan menambahkan simbol pesan)

Untuk memperpanjang suatu kode linear C , 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.
(MacWilliams & Sloane,1981)
2.5.6

Shortening a code (Memperpendek kode)

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 (simbol pertama = 0). Selanjutnya
koordinat dari x1 dihapus. Proses seperti ini disebut mengambil cross-section dari
suatu kode (taking a cross-section of the code) .
(MacWilliams & Sloane,1981)

.

3
3.1

HASIL DAN PEMBAHASAN

Formulasi Masalah

Sejauh ini telah diperkenalkan bahwa terdapat tiga parameter yang terkait
dengan konstruksi suatu kode, yaitu panjang, dimensi, dan jarak minimum. Jika

C adalah kode linear biner yang mempunyai panjang n , berdimensi k , dan
berjarak minimum d , maka C dikatakan baik jika n kecil, k besar dan d besar.
Makna fisiknya, n harus kecil terkait dengan kecepatan proses enkoding dan
dekoding, dan juga terkait dengan besarnya memori yang digunakan dalam proses
itu. Sementara itu k harus besar terkait dengan banyaknya pesan yang dapat
diubah menjadi kata kode, sedangkan d harus besar terkait dengan banyaknya
galat yang dapat dikoreksi.
Misalkan diberikan sembarang dua parameter, yaitu

n

dan

k.

Permasalahannya, apakah ada suatu kode [ n, k , d ] untuk nilai d yang sebesarbesarnya?

Pertanyaan

tersebut

mengarah

pada

pendefinisian

fungsi

D ( n, k ) = max {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 tidak ada kode dengan parameter [ n, k , d + 1]
(telah pula dibuktikan). Batas bawah l dan batas atas u dari fungsi D ( n, k )
diartikan sebagai berikut. Misalnya D ( n, k ) terletak di antara l dan u

( l ≤ D ( n, k ) ≤ u ) ,
[ n, k , d ≤ l ]
parameter

artinya telah berhasil dikonstruksi kode dengan parameter

dan telah berhasil pula dibuktikan bahwa tidak ada kode dengan

[ n, k , d > u ] ,

sedangkan ada atau tidaknya kode dengan parameter

[ n, k , d ] dengan l < d ≤ u

merupakan masalah terbuka (open problem).

Untuk memperbaiki satu langkah batas bawah dari fungsi D ( n, k ) , perlu
dikonstruksi kode dengan parameter [ n, k , l + 1] , sedangkan untuk perbaikan satu
langkah batas atas dari fungsi D ( n, k ) sama dengan membuktikan bahwa tidak
ada kode dengan parameter

[ n, k , u ] .

Informasi terkini untuk batas fungsi

22

D ( n, k ) dapat dilihat di dalam Tabel Brouwer dan bisa diakses secara on-line

pada alamat http://codetables.de (cuplikan dari Tabel Brouwer dapat dilihat pada
Lampiran 1). Jika berhasil diperbaiki satu saja batas (bawah atau atas) dari Tabel
Brouwer, berarti telah berhasil "dipecahkan satu rekor dunia".
Secara analog (ekivalen), untuk optimalisasi dimensi (optimal-K) dapat
didefinisikan fungsi K ( n, k ) atau fungsi N ( n, k ) untuk optimalisasi panjang
kode (optimal-N), dan sekaligus memformulasikan masalahnya.


K ( n, d ) := max {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 akan
didefinisikan kode optimal kuat (strongly optimal codes) beserta formula
konstruksinya berlandaskan teorema-teorema yang telah didefinisikan pada
tinjauan pustaka. Kode linear C dengan parameter [ n, k , d ] disebut kode 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 kode tersebut 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 .
Berdasarkan dasar-dasar konstruksi kode, dalam penelitian ini juga dianalisis
hubungan antara kode yang memiliki sifat optimal-D, optimal-K, optimal-N, dan
optimal kuat.
Konstruksi kode yang dilakukan dalam penelitian ini dilakukan atas dasar
teori konstruksi langsung (direct constructions). Ide dasarnya adalah sebagai
berikut. Jika suatu kode memenuhi pertaksamaan Gilber-Varshamov, maka kode
tersebut dapat diperluas [Brouwer, 1997].
Dalam penelitian ini, konstruksi kode dibatasi hanya untuk jarak minimum

d = 9 dan d = 11 . Selain itu, kode yang akan dikonstruksi hanya untuk kode linear

23

n
biner, yaitu kode yang ada dalam ruang vektor F2 . Pemilihan kasus cukup untuk

d ganjil, hal ini didasarkan pada salah satu sifat kode linear yang dinyatakan
sebagai berikut.
3.1.1

Teorema 11

Jika kode dengan parameter

[ n, k , d ]

dikonstruksi kode dengan parameter

ada untuk d ganjil, maka dapat

[ n +1, k, d +1]

dan setiap anggotanya

berbobot genap.
Bukti:

Misalkan telah dikonstruksi kode linear dengan parameter [ n, k , d ] , dengan

d ganjil. Dengan melakukan penambahan pada matriks cek paritas (dasar
konstruksi kode yang pertama) akan diperoleh kode dengan parameter

[ n +1, k, d +1] .
͏
3.2

Analisis Teori

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

cek

paritas

untuk

C.

Dari

definisi

matriks

cek

paritas,

C = { x ∈ Fqn | HxT = 0} , atau dengan kata lain, C = ker ( H ) . Hal ini karena baris-

baris dari matriks H merupakan basis untuk C ⊥ , komplemen orthogonal bagi C .
Karena kode linear C merupakan kernel dari matriks cek paritasnya, maka
mengonstruksi suatu kode linear C sama dengan mengonstruksi matriks cek
paritasnya.
3.2.1

Teorema 12

Diberikan kode linear C dengan panjang n . Jika H adalah matriks cek
paritas untuk C , 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:

24

Diberikan kode linear C dengan panjang n . Didefinisikan r = n-k.
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 .
͏
3.2.2

Teorema 13

Diberikan kode linear C dengan panjang n . Jika H adalah matriks cek
paritas untuk C , 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:

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 butir berikut
terpenuhi
i.
ii.

n
Ada vektor v ∈ F2 dengan wt ( v ) = d sehingga HvT = 0T .

HwT ≠ 0T untuk setiap w ∈ F2 dengan wt ( w) < d . (Jika HwT = 0T ,
n

maka w ∈ C . Kontradiksi dengan fakta bahwa wt ( w) < d ).
Di sisi lain, kedua butir 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 bebas
linear.
͏
3.2.3

Teorema 14: The Singleton Bound

Diberikan kode linear C . Jika C adalah kode dengan parameter [ n, k , d ]
maka ( n − k ) ≥ ( d −1) .

25

Bukti:

Misalkan diberikan kode linear C dengan parameter [ n, k , d ] , maka kode
linear C memiliki matriks cek paritas H berukuran

(n − k)×n,

sehingga

rank ( H ) ≤ ( n − k ) .
Dari Teorema 13, matriks H memiliki d − 1 kolom yang bebas linear,
sehingga rank ( H ) = ( d − 1) , dengan kata lain ( d − 1) ≤ ( n − k ) .
͏
3.2.4

Teorema 15: The Gilbert-Varshamov Bound

Diberikan kode linear C dengan parameter

⎛n⎞ ⎛n⎞
1+ ⎜ ⎟ + ⎜ ⎟ +
⎝1⎠ ⎝2⎠

[ n, k , d ] .

Jika ketaksamaan

⎛ n ⎞
+ ⎜ ⎟ < 2n− k berlaku, maka dapat dikonstruksi kode dengan
⎝ d −2 ⎠

parameter [ n + 1, k + 1, d ] .
Bukti:

Misalkan diberikan kode linear yang memiliki parameter
Berdasarkan Teorema 5, ada matriks cek paritas berordo

[ n, k , d ] .

(n − k)×n,

yaitu

H = ( c1 c2 ... cn ) yang setiap d − 1 vektor dari {c1, c2 ,..., cn } adalah bebas
n−k
n−k
yang bukan i
linear dalam ruang vektor F2 . Jika ada vektor x ∈ F2

kombinasi linear dari vektor-vektor kolom H , untuk i = 1, 2,..., d − 2 , maka

H ' = ( c1 c2 … cn

x ) adalah matriks cek paritas untuk kode linear yang

memiliki parameter [ n + 1, k + 1, d ] . Hal ini karena H ' berorde ( n − k ) × ( k + 1)
dan setiap d − 1 vektor dari

{c1, c2 ,..., cn , x}

adalah bebas linear dalam ruang

n−k
vektor F2 .

Jika banyaknya kombinasi linear yang mungkin dari kolom-kolom H '
sehingga tidak ada d − 1 kolom yang bergantung linear lebih besar atau sama
n−k
dengan jumlah vektor tak nol dalam F2 , maka H ' bukan matriks cek paritas

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

26

n−k
yang mungkin dipilih untuk x adalah 2n − k − 1 , sedangkan
nol dalam F2

banyaknya kombinasi linear yang mungkin dari kolom-kolom H ' adalah

⎛n⎞ ⎛n⎞
⎜ ⎟+⎜ ⎟+
⎝1⎠ ⎝2⎠

⎛ n ⎞
+ ⎜ ⎟ . Dengan demikian, jika ada kode linear C dengan parameter
⎝ d −2 ⎠

⎛n⎞ ⎛n⎞
dan pertaksamaan 1 + ⎜ ⎟ + ⎜ ⎟ +
⎝1⎠ ⎝2⎠

[ n, k , d ]

⎛ n ⎞
+ ⎜ ⎟ < 2n− k berlaku, maka dapat
⎝ d −2 ⎠

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

C tersebut.
͏
3.2.5

Lema 3

Misalkan C adalah suatu kode linear dengan panjang n , maka jumlah unsur
satu pada setiap kata kode di posisi ke- i sama dengan nol atau setengah dari
jumlah kata kode yang ada di C .
Bukti:

Misalkan X adalah himpunan kata kode yang memiliki unsur nol pada
koordinat ke- i dan Y adalah himpunan kata kode yang memiliki unsur satu pada
koordinat ke- i , maka C = X ∪ Y . Jika Y = ∅ , maka C = X , sehingga tidak ada
kata kode yang memiliki unsur satu pada posisi ke- i . Namun demikian, jika

Y ≠ ∅ , ambil c ∈ Y sembarang, karena c + Y ⊆ X , maka Y ≤ X . Selanjutnya,
karena c + X ⊆ Y , maka X ≤ Y . Oleh karena itu, dapat diambil kesimpulan
bahwa Y = X .
͏
3.2.6

Proposisi 1

i.

Jika ada kode linear dengan parameter [ n, k , d ] , maka ada kode
linear dengan parameter [ n − 1, k , d − 1] , di di manamana d > 1 .

ii.

Jika ada kode linear dengan parameter [ n, k , d ] , maka ada kode
linear dengan parameter [ n + 1, k , d ] .

27

iii.

Jika ada kode linear dengan parameter [ n, k , d ] , maka ada kode
linear dengan parameter [ n, k − 1, d ] , di mana k > 1 .

iv.

Jika ada kode linear dengan parameter [ n, k , d ] , maka ada kode
linear dengan parameter [ n − 1, k − 1, d ] , di mana k > 1 .

Bukti:

i.

Misalkan C adalah kode linear dengan parameter [ n, k , d ] dengan

d > 1 . Karena C memiliki jarak minimal d , maka ada kata kode
c ∈ C dimana wt ( c ) = wt ( C ) = d . Misalkan kata kode c memiliki
unsur satu pada koordinat ke- i . Dengan menghapus unsur ke- i pada
semua kata kode dalam C , akan diperoleh kode linear C ' dengan
panjang ( n −1) dan c berubah menjadi c ' . Karena wt ( c ') = d −1 ,
maka wt ( C ') = d −1 . Untuk menunjukkan dim ( C ') = k , misalkan

dim ( C ') < k , maka ada x , y ∈ C , sehingga x + c = y di mana

wt ( c ) = 1 . Kontradiksi dengan d > 1 . Haruslah dim ( C ') = k .
Dengan demikian, C ' memiliki parameter [ n − 1, k , d − 1] .
ii.

Misalkan G k × n adalah matriks generator untuk kode linear C dengan
parameter [ n, k , d ] . Tambahkan vektor nol pada kolom terakhir G
sehingga membentuk matriks G ' yang berukuran k × ( n +1) . Karena
yang ditambahkan adalah vektor nol, maka banyaknya kombinasi
linear dari baris-barisnya tidak akan berubah, sehingga jarak
minimumnya tidak berubah. Dengan kata lain, telah diperoleh kode
linear dengan parameter [ n + 1, k , d ] .

iii.

Misalkan C adalah kode linear dengan parameter [ n, k , d ] dengan

k > 1 . Karena C memiliki jarak minimal d , maka ada kata kode

c ∈ C di mana wt ( c ) = wt ( C ) = d . Misalkan Gk ×n adalah matriks
generator untuk C dan c ada di salah satu baris dari G . Misalkan

28

pula baris ke- r dari G yang tidak sama dengan c dihapus sehingga
membentuk kode baru, yaitu C ' dengan matriks generator G ' .
Karena baris-baris di G saling bebas linear, maka semua baris di G '
juga saling bebas linear, sehingga

dim ( C ') = k − 1. Karena

wt ( C ) = wt ( c ) = d dan kata kode c tetap ada di C ' , maka
wt ( C ') = d , sehingga kode linear

C'

memiliki parameter

[ n, k −1, d ] .
iv.

Misalkan C adalah kode linear dengan parameter [ n, k , d ] dengan

k > 1 . Karena C memiliki jarak minimal d , maka ada kata kode
c ∈ C di mana wt ( c ) = wt ( C ) = d . Misalkan G dan H adalah
matriks generator dan matriks cek paritas untuk C . Misalkan pula
kata kode c memiliki unsur nol pada koordinat ke- i . Ada dua kasus
yang mungkin terjadi, kasus pertama adalah semua kata kode di C
memiliki unsur nol pada koordinat ke- i , sedangkan kasus kedua
tidak semua kata kode memiliki unsur nol pada koordinat ke- i . Jika
kasus pertama yang terjadi, maka koordinat ke- i pada semua kata
kode dapat dihapus sehingga menghasilkan kode dengan parameter

[ n −1, k, d ] (Proposisi 1 butir i), selanjutnya dengan menghapus satu
baris dari matriks generator untuk kode d