SlideShare a Scribd company logo
1 of 73
LAPORAN PERKULIAHAN
PENGANTAR TEORI PENGKODEAN
Tanggal
28 Februari 2013
HIRWANTO
(09/283098/PA/12442)
PROGRAM STUDI MATEMATIKA
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS GADJAH MADA
YOGYAKARTA
2013
2
Kata Pengantar
Alhamdulillah, segala puji bagi Allah yang telah melimpahkan rahmat dan
hidayah-Nya sehingga dapat terselesainya laporan perkuliahan Pengantar Teori Pengkodean.
Laporan ini dibuat berdasarkan setiap pertemuan perkuliahan yang ada ditambah dengan
buku pendukung seperti ”Coding Theory” dan ”Error Correctin Codes”. Selain itu, soal
pertanyaan dan penyelesaiannya didalam buku ini diambil dari buku pendukung diharapkan
dengan adanya latihan soal ini dapat menambah pengetahuan penulis dalam mempelajari teori
pengkodean. Pengantar Teori Pengkodean merupakan mata kuliah dalam bidang Aljabar dan
merupakan penerapan dari sifat, struktur, operasi dalam aljabar.
Beberapa penerapan yang dipelajari dalam Pengantar Teori Pengkodean meliput pengiriman
pesan yang melalu sistem komunikasi atau ke media penyimpanan data, mendeteksi dan
mengoreksi kesalahan pesan yang diterima.
Yogyakarta, 30 Maret 2013
Hirwanto
i
ii KATA PENGANTAR
Daftar Isi
Kata Pengantar i
BAB 1 Pendahuluan 1
Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
BAB 2 Deteksi, Koreksi Kesalahan dan Decoding 3
2.1. Communication Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. Maximum likehood decoding . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3. Hamming distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4. Nearest neighbour  minimum distance decoding . . . . . . . . . . . . . . 6
2.5. Distance of a code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
BAB 3 Lapangan Berhingga 11
3.1. Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2. Polynomial Rings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3. Structure of Finite Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
BAB 4 Linear Code 21
4.1. Vector Space over finite fields . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2. Linear Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3. Hamming Weight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
BAB 5 First Order Reed Muller Codes 25
5.1. Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2. Generator Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.3. Parity Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.3.1. Hamming Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.4. Hadamard Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.4.1. Hadamard Transform . . . . . . . . . . . . . . . . . . . . . . . . . 28
BAB 6 Cyclic Codes 33
6.1. Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.2. Generator Polinomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.3. Generator dan Matriks Parity-Check . . . . . . . . . . . . . . . . . . . . . 36
6.4. Decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.4.1. Algoritma Decoding Cyclic Codes . . . . . . . . . . . . . . . . . . 40
6.5. Burst Error Correcting Codes . . . . . . . . . . . . . . . . . . . . . . . . . . 41
iii
iv DAFTAR ISI
6.5.1. Algoritma Decoding Burst-error-code . . . . . . . . . . . . . . . . 42
BAB 7 BCH Code 45
7.1. Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.1.1. Finite Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.1.2. Ring Polynomial . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.1.3. Minimal Polynomial . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.1.4. Cyclotomic Coset . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.1.5. BCH codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.1.6. BCH Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.1.7. Parameter dari BCH Codes . . . . . . . . . . . . . . . . . . . . . . . 51
7.1.8. Decoding BCH Codes . . . . . . . . . . . . . . . . . . . . . . . . 53
BAB 8 Self-Dual Codes dan Binary Golay Code 57
8.1. Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.1.1. Linear Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.1.2. Hamming Distance dan Hamming Weight . . . . . . . . . . . . . . 60
8.2. Self-Dual Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.1. Extended Binary Golay Code . . . . . . . . . . . . . . . . . . . . 62
8.2.2. Decoding Extended Binary Golay Code . . . . . . . . . . . . . . . 64
DAFTAR PUSTAKA 67
Bab 1
Pendahuluan
Pertumbuhan media informasi semakin cepat hampir di setiap aspek kehidupan dan dituntut
untuk dapat memberikan informasi secara cepat dan akurat. Media informasi seperti sistem
komunikasi dan tempat penyimpanan data tidak secara mutlak benar dalam prakteknya
karena bisa saja terjadi ganguaan atau diubah ke bentuk lain. Salah satu tugas didalam
teori pengkodean adalah untuk mendeteksi(detect), atau membenarkan(correct) kesalahan.
Biasanya, Kode didefinisikan sebagai Kode sumber(source coding) dan saluran kode(channel
coding) mengubah pesan menjadi kode yang cocok kemudian ditransmisikan melalui saluran.
Sebagai contoh, kode sumber ASCII yaitu setiap karakter diubah kedalam bentuk byte(1 byte
= 8 bits).
Contoh 1.0.1. Misalkan diberikan empat kode nama buahan yaitu Apel, Belimbing, Pisang,
dan Duku yaitu sebagai berikut :
Apel → 00, Belimbing → 01, Pisang → 10, Duku → 11
Andaikan kita akan mengirimkan pesan ”Apel” dengan kode 00 yang ditransmisikan melalui
saluran dengan ada gangguan, maka pesannya kemungkinan diterima sebagai 01. Penerima
tidak tahu bahwa pesan yang diterima itu rusak sehingga komunikasi semacam ini dianggap
gagal. Tentunya, ide dari pengkodean adalah mengkode pesan yang telah dikirimkan oleh
kode sumber kemudian dikirimkan melalui saluran dengan beberapa bentuk pengulangan agar
pesannya yang disampaikan dapat dideteksi ataupun dibenarkan kesalahannya.
Contoh 1.0.2. Didalam contoh 1.0.1 kita menunjukkan bahwa pengulangan 1 bits yaitu
00 → 000, 01 → 001, 10 → 101, 11 → 110
Andaikan pesan yang dikirim adalah ’Apel’ dengan kode 000 kemudian setelah dikirimkan
melalu kode sumber ditransmisikan melalui saluran dengan ada gangguan dan hanya ada satu
kesalahan. Salah satu diantara 3 kemungkinan yaitu 001, 010, 100. Dengan jalan ini, kita
hanya mendeteksi kesalahan tetapi tidak membenarkan kesalahan yang ada, misalkan kita
menerima kode ”100”,maka apakah kode itu berasal dari ”000, 001, 101, 110”. Jadi kita perlu
lebih banyak pengulangan yaitu sebagai berikut :
00 → 00000, 01 → 01111, 10 → 10110, 11 → 11001
Andaikan pesan yang disampaikan ”Apple” dengan adanya gangguannya dan hanya ada satu
kesalahan. Maka harusnya kita menerima salah satu dari kode ini :”10000, 01000,00100,
00010, 00001”. Jika kita menerima 10000, maka kita yakin bahwa kode 10000 berasal dari
00000 sebab dapat dilihat dibawah ini :
10000 → 00000 (perlu 1 kesalahan) 10000 → 01111 (perlu 5 kesalahan)
10000 → 10110 (perlu 2 kesalahan) 10000 → 11001 (perlu 2 kesalahan)
Jadi kita mengambil yang memiliki sedikit kesalahan yaitu ”00000”.
1
2 BAB 1. PENDAHULUAN
Latihan
1.1 Buatlah skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan
untuk sumber kode dari {00, 10, 01, 11}. Bisakah kamu menemukan salah satu skema
terbaik didalam mentransmisikan pesan tersebut ?
Penyelesaian :
Diketahui kode yang diberikan yaitu {00,10,01,11}. Untuk mendeteksi dua atau lebih
sedikitnya kesalahan maka dapat dilihat skema dibawah ini :
00 → 000, 10 → 101, 01 → 011, 11 → 110
Skema diatas merupakan yang terbaik sebab jika kita mengirimkan kode ”000” dan
hanya satu kesalahan yang ada maka kita akam menerima salah satu diantara tiga kode
yaitu : ”100, 010, atau 001”, sehingga kita mendeteksi kesalahan bahwa kode yang
kirimkan bukan salah satu diantara kode tersebut.
1.2 Buatlah skema channel coding untuk membenarkan dua atau lebih sedikitnya untuk
kode sumber {00, 10, 01, 11}. Bisakah kamu menemukan skema terbaik didalam
mentransmisikan pesan tersebut ?
Penyelesaian :
Diketahu kode yang diberikan {00, 10, 01, 11}. Untuk membenarkan kesalahan dua
atau lebih sedikitnya maka dapat dilihat skema dibawah ini :
00 → 00000 01 → 01111
10 → 10110 11 → 11001
Skema diatas merupakan skema yang terbaik sebab jika kita mengirimkan kode ”00000”
dan hanya satu kesalahan yanga ada maka kita akan menerima salah satu dari lima kode
yaitu : 10000, 01000, 00100, 00010, 00001. Misalkan kita menerima kode ”10000”,
maka kita yakin bahwa kode itu berasal dari kode ”00000”,sebab dapat dilihat dibawah
ini.
10000 → 00000 (perlu 1 kesalahan) 10000 → 01111 (perlu 5 kesalahan)
10000 → 10110 (perlu 2 kesalahan) 10000 → 11001 (perlu 2 kesalahan)
Jadi kita mengambil yang memiliki sedikit kesalahan yaitu ”00000”.
1.3 Buatlah skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan
untuk sumber kode dari {000, 100, 001, 110, 101, 011, 111}. Bisakah kamu menemuk-
an salah satu skema terbaik didalam mentransmisikan pesan tersebut ?
Penyelesaian :
Diketahui kode yang diberikan yaitu {000, 100, 001, 110, 101, 011, 111}. Untuk
mendeteksi satu kesalahan maka dapat dilihat skema dibawah ini :
000 → 0000 100 → 1001 001 → 0011
110 → 1100 101 → 1010 011 → 0110
111 → 1110
Skema diatas merupakan yang terbaik sebab jika kita mengirimkan kode ”0000” dan
hanya satu kesalahan yang ada maka kita akam menerima salah satu diantara tiga kode
yaitu : ”1000, 0100, 0010 atau 0001”, sehingga kita mendeteksi kesalahan bahwa kode
yang kirimkan bukan salah satu diantara kode tersebut.
1.4 Buatlah skema channel coding untuk membenarkan dua atau lebih sedikitnya kesalahan
untuk sumber kode dari {000, 100, 001, 110, 101, 011, 111}. Bisakah kamu menemuk-
an salah satu skema terbaik didalam mentransmisikan pesan tersebut ?
Penyelesaian :
Bab 2
Deteksi, Koreksi Kesalahan dan
Decoding
Kita melihat pada Bab 1 pentingnya mempelajari channel coding dengan pengulangan in-
formasi pesan sehingga kesalahan bisa dideteksi atau dibenarkan. Didalam bab ini, kita
merumuskan dan mendefinisikan error-detection dan error-correction. Kita juga memperke-
nalkan atau mendecode dengan baik.
2.1 Communication Channel
Definisi 2.1.1. Misalkan A = {a1,a2,...,aq} himpunan dengan size q , atau disebut juga
sebagai code alfabet , dan anggotanya disebut sebagai code symbols.
(i) q-ary word dengan panjang n atas A adalah barisan w, ∀wi ∈ A,∀i ekuivalen dengan
w sebagai vektor (w1,...,wn)
(ii) q-ary block code dengan panjang n atas A adalah himpunan tak kosong C q-ary code
yang mempunyai panjang yang sama yaitu n.
(iii) Anggota C disebut codeword di C
(iv) Banyak codeword di C dinotasikan |C| disebut sebagai size C
(v) informasi rate code C dengan panjang n didefinisikan (logq)|C|/n
(vi) Code dengan panjang n dan size M disebut (n,M)− code
Contoh 2.1.2. Diberikan code alfabet atas F2 = {0,1} disebut sebagai binary code. Beberapa
contoh dari code nya adalah
(i) C1 = {00,01,10,11} adalah (2,4)-code
(ii) C2 = {000,011,101,110} adalah (3,4)-code
(iii) C3 = {0011,0101,1010,1100,1001,0110} adalah (4,6)-code
Code ata code alfabet F3 = {01,2} disebut sebagai ternary code, sementara quarternary code
terkadang code atas code alfabet F4
3
4 BAB 2. DETEKSI, KOREKSI KESALAHAN DAN DECODING
Definisi 2.1.3. Sebuah Communication channel terdiri atas berhingga banyak channel alfabet
A = {a1,..aq} sebagai himpunan beserta forward channel probabilitas
P(aj|ai) = Probabilitas bahwa aj diterima jika yang dikirim ai
yang memenuhi
q
∑
j=1
P(ai|aj) = 1
Jadi,∀i
P(a1|ai)+P(a2|ai)+P(a3|ai)+···+P(aq|ai)
Definisi 2.1.4. Sebuah communication channel dikatakan memorylesss jika keluaran seba-
rang satu transmisi adalah bebas dari keluaran transmisi sebelumnya ; jika c = c1c2 ...cn
dan x = x1x2 ...xn dengan panjang word adalah n maka
P(x diterima | c terkirim ) = ∏n
i=1 P(xi diterima | ci terkirim )
Definisi 2.1.5. ”q -ary symmetrics channel” adalah memoryless memenuhi sifat
1. Setiap simbol mempunyai probabilitas yang sama yaitu p, untuk yang diterima dengan
kesalahan p < 1
2.
2. Jika suatu simbol diterima dengan salah maka setiap q−1 (simbol yang salah) mem-
punyai probabilitas yang sama untuk diterima yaitu 1− p.
Secara khususnya, binary symmetric channel(BSC) adalah memoryless channel yang
mempunyai channel alfabet {0,1} dan channel probabilitas adalah
P(1 diterima | 0 terkirim) = P(0 diterima | 1 terkirim ) = p.
P(1 diterima | 0 terkirim) = P(1 diterima | 1 terkirim ) = 1− p.
Jadi, probabilitas kesalahannya di BSC adalah p. Ini disebut sebagai crossover probabilitas
dari BSC.
Contoh 2.1.6. Andaikan kodeword dari {000,111} yang terkirim lewat BSC jika diketahui
adanya error dalam pengiriman suatu bit adalah p = 0,005. Misalkan word yang diterima
adalah 011.
Penyelesaian :
P(011 | 001) = P(0 | 0).P(1 | 0).P(1 | 0)
= (1− p).p.p
= (1− p).p2
= (0,95).(0,005)2
= 0,002375
P(011 | 111) = P(0 | 1).P(1 | 1).P(1 | 1)
= p.(1− p)2
= (0,05)(0,95)2
= 0,045125
Maka code word yang terima kemungkinan 111 karena mempunyai probabilitas yang besar.
2.2. MAXIMUM LIKEHOOD DECODING 5
2.2 Maximum likehood decoding
Andaikan bahwa codeword dari code C terkirim melalui channel. Jika sebuah word x diterima,
kita bisa menghitung probabilitas forward channel
P(x diterima — c terkirim)
Untuk semua codeword c ∈ C. Maximum likehood decoding(MLD) rule menyimpulkan
bahwa cx adalah yang paling banyak ditransmisikan jika cx probabilitasnya maksimum.
P (x diterima — cx terkirim)= maxc∈C P(x diterima — c terkirim).
Ada dua jenis dari MLD yaitu sebagai berikut :
1. Complete maximum likehood decoding(CMLD). Jika word x diterima, temukan code-
word yang paling banyak ditransmisikan. Jika ditemukan lebih dari satu maka pilhlah
salah satunya sebarang.
2. Incomplete maximum likehood decoding(IMLD). Jika x diterima , temukan yang paling
banyak codeword yang ditransmisikan. Jika ada lebih dari satu codewordnya, maka
meminta untuk mentransmisikan ulang.
2.3 Hamming distance
Definisi 2.3.1. Misalkan diberikan x dan y word dengan panjang n atas alfabet A. Hamming
distance dari x ke y dinotasikan oleh d(x,y) didefinisikan banyak tempat(posisi) koordinat
dimana x dan y berbeda. Jika x = x1 ...xn dan y = y1 ...yn maka
d(x,y) = d(x1,y1)+···+d(xn,yn) (2.1)
dimana xi dan yi sebagai panjang word adalah 1 dan
d(x,y) =
1 jika xi = yi
0 jika xi = yi.
Contoh 2.3.2. (i) Misalkan A = {0,1} dan misalkan x = {01010}, y = {01101}, z =
{11101}, maka
d(x,y) = 3.
d(y,z) = 1.
d(z,x) = 4.
(ii) Misalkan A = {0,1,2,3,4} dan misalkan x = 1234, y = 1423, z = 3214
d(x,y) = 3.
d(y,z) = 4.
d(z,x) = 2.
Proposisi 2.3.3. Misalkan x,y, z word dengan panjang n atas A. Maka kita mempunyai
(i) 0 ≤ d(x,y) ≤ n
(ii) d(x,y) = 0 jika dan hanya jika x,y
(iii) d(x,y) = d(y,x)
(iv) (Ketidaksamaan Segitiga) d(x,z) ≤ d(x,y)+d(y,z)
6 BAB 2. DETEKSI, KOREKSI KESALAHAN DAN DECODING
2.4 Nearest neighbour  minimum distance decoding
Andaikan bahwa codeword dari code C yang terkirim melalui commincation channel. Jika
word x yang diterima, maka nearest neighbour decoding rule(mininum distance decoding
rule) akan mengkode x ke cx jika d(x,cx) adalah minimal semua codeword di C,
d(x,cx) = min
c∈C
d(x,c). (2.2)
Didalam kasus maximum likehoode decoding, kita bisa menetapkan antara complete dan
incomplete decoding untuk nearest neighbour decoding rule. Jika diberikan word yang
diterima x, jika dua atau leboh codeword cx memenuhi 2.2, maka dengan complete decoding
rule adalah secara sebarang memilih salah satu dari terbanyak word yang terkirim, sedangkan
incomplete decoding rule meminta pengiriman ulang codeword.
Teorema 2.4.1. Untuk BSC dengan crossover probabilitas dengan p < 1
2, maximum likehood
decoding rule adalah sama sebagai nearest neighbour decoding rule.
Bukti. Misalkan C dinotasikan code yang digunakan dan misalkan x dinotasikan sebagai
word yang diterima dengan panjang n. Untuk sebarang vektor c dengan panjang n, dan untuk
sebarang 0 ≤ i ≤ n.
d(x,c)= i ⇔ P(x diterima | c terkirim)= pi(1− p)n−1
Ketika p < 1
2, didapat
p0
(1− p)n
> p1
(1− p)n−1
> p2
(1− p)n−2
> ··· > pn
(1− p)0
Menggunakan definisi, makximum likelihood decoding rule decode x ke c ∈ C dengan de-
mikian P(x diterima | c terkirim) adalah terbesar, sehingga d(x,c) adalah yang terkecil. Jadi
sama seperti nearest neighbour decoding rule.
Contoh 2.4.2. Diberikan codeword dari binary code
C = {0000,0011,1000,1100,0001,1001}
merupakan codeword yang terkirim lewat BSC. Asumsikan bahwa x = 0111 yang diterima,
maka
d(0111,0000) = 3.
d(0111,0011) = 1.
d(0111,1000) = 4.
d(0111,1100) = 3.
d(0111,0001) = 2.
d(0111,1001) = 3.
Menggunakan nearest neighbour decoding, kita decode x ke 0011.
Contoh 2.4.3. Misalkan C = {000,011} binary code. Dengan melihat tabel IMLD untuk C
yang ditunjukkan pada tabel 2.1, dimana tanda ’-’ artinya transmisi ulang diperlukan.
2.5. DISTANCE OF A CODE 7
Received x d(x,000) d(x,011) Decode to
000 0 2 000
100 1 3 000
010 1 1 -
001 1 1 -
101 2 2 -
011 2 0 011
111 3 1 011
Tabel 2.1: Tabel IMLD untuk C
2.5 Distance of a code
Definisi 2.5.1. Untuk code C memuat paling sedikitnya dua word, minimum distance dari C,
dinotasikan d(C) adalah
d(C) = min{d(x,y) : x,y ∈ C,x = y}.
Definisi 2.5.2. Code dengan panjang n, size M dan distance d disebut sebagai (n,M,d)-code.
Bilangan n,M, dan d disebut sebagai parameter dari code.
Contoh 2.5.3. (i) Misalkan C = {00000,00111,11111} binary code, maka d(C) = 2 ka-
rena dapat dilihat dibawah ini
d(00000,00111) = 3,
d(00000,11111) = 5,
d(00111,11111) = 2
Jadi, C adalah binary (5,3,2)-code.
(ii) MisalkanC = {000000,000111,111222} ternary code atau dengan code alfabet {0,1,2},
maka d(C) = 3, ketika
d(000000,000111) = 3,
d(000000,111222) = 6,
d(000111,111222) = 6,
Jadi, C adalah ternary code (6,3,3)-code.
Teorema 2.5.4. Suatu code C mempunyai kemampuan untuk mendeteksi u−kesalahan jika
dan hanya jika d(C) ≥ u+1
Bukti. Andaikan d(C) ≥ u+1. Jika c ∈ C dan x dengan demikian bahwa 1 ≤ d(x,c) ≤ u <
d(C), maka x /∈ C; Jadi C adalah u−error-detecting.
Disisi lain, jika d(C) < u+1,d(C) ≤ u, maka terdapat c1,c2,∈ C dengan demikian bahwa
1 ≤ d(c1,c2) = d(C) ≤ u. Apabila c1 dikirim dan kemudian ada u−error kesalahan pada
pengiriman tersebut, maka si penerima akan mendapatkan (mungkin) c2 dengan demikian ka-
rena c2 ∈ C maka si penerima akan menyimpulkan bahwa c2 sebagai codeword yang dikirim.
Dengan kata lain, tifak bisa mendeteksi adanya kesalahan. Jadi Kontradiksi sehingga terbukti
bahwa d(C) ≥ u+1.
8 BAB 2. DETEKSI, KOREKSI KESALAHAN DAN DECODING
Teorema 2.5.5. Code C merupakan u−error correcting code jika dan hanya jika d(C) ≥
2v+1.
Bukti. ’⇐’ Andaikan bahwa d(C) ≥ 2v+1. Misalkan c codeword yang dikirim dan misalkan
x word yang diterima. Jika v atau lebih sedikitnya error dalam transmisi, maka d(x,c) ≤ v.
Jadi, untuk sebarang codeword c ∈ C,c = c , kita mempunyai
d(x,c ) ≥ d(c.c )−d(x,c)
≥ 2v+1−v
= v+1
> d(x,c)
Jadi, x akan didecode(secara langsung) ke c jika minimum distance decoding rule digunakan.
Ini menunjukkan bahwa C adalah v−error-correcting.
’⇒’ Andaikan bahwa C adalah v−error correcting. Jika d(C) < 2v + 1, maka terdapat
codeword yang berbeda c,c ∈ C dengan d(c,c ) = d(C) ≤ 2v. Asumsikan bahwa c yang
dikirim dan muncul v error dalam pengiriman sehingga sistem ini mengoreksi tidak dengan
benar. Misalkan d(c,c ) < u+1 maka kemudian yang dikirim c maka yang diterima c = c
kontradiksi padahal c adalah v−error correcting code. Jadi v+1 ≤ d(c,c ) ≤ 2v. Kita dapat
mengambil x sebagai berikut :
x = x1x2 ...xv
c
xv+1 ...xd
c
xd+1 ...xn
keduanya
adalah yang diterima, kita mempunyai
d(x,c ) = d −v ≤ v = d(x,c)
Sehingga salah satunya adalah d(x,c ) = d(x,c),didalam kasus x adalah terjadi kesalahan
yaitu didecode sebagai c atau d(x,c) = d(x,c ) harusnya ke v2.
Latihan
2.1 Jelaskan mengapa binary communication channel dimana p < 1
2 disebut useless channel.
2.2 Andaikan bahwa codeword dari binary code {000,100,111} dikirimkan atas BSC
dengan crossover probabilitas p = 0,03. Menggunakan maximum likehood decoding
rule untuk mendecode word yang diterima dibawah ini :
(a) 010 (b)011 (c)001
2.3 Pertimbangkan memoryless binary channel dengan probabilitas
P(0 diterima — 0 terkirim) = 0,7 P(1 diterima — 1 terkirim) = 0,8
Jika codewords dari binary code {000,100,111} yang terkirim atas channel ini, meng-
gunakan maximum likehood decoding rule untuk mendecode word yang diterima
dibawah ini :
(a) 010 (b) 011 (c) 001
2.4 Misalkan C = {001,011} binary code
2.5. DISTANCE OF A CODE 9
(a) Andaikan bahwa kita mempunyai memoryless binary channel dengan probabilitas
dibawah ini :
P = (0 diterima — 0 terkirim) = 0,1, P(1 diterima — 1 terkirim ) = 0,5. Meng-
gunakan maximum likehood decoding rule untuk mendecode word yang diterima
adalah 000
(b) Menggunakan nearest neighbour decoding rule untuk mendecode 000.
2.5 Untuk binary code C = {01101,00011,10110,11000}, menggunakan channel neighbo-
ur decoding rule untuk mendecode word diterima dibawah ini :
(a) 00000 (b) 01111, (c) 10110 (d) 10011, (e) 11011.
2.6 Untuk tenary codeC = {00122,12201,20110,22000}, menggunakan nearest neighbour
decoding rule untuk mendecode word yang diterima dibawah ini :
(a) 01122, (b) 10021, (c) 22022, (d) 20120.
2.7 Kontruksikan IMLD tabel untuk setiap binary code dibawah ini :
C = {101,111,011} C = {000,001,010,011}
2.8 Hitunglah banyaknya bianry code dengan dengan parameter (n,2,n), untuk n ≥ 2
10 BAB 2. DETEKSI, KOREKSI KESALAHAN DAN DECODING
Bab 3
Lapangan Berhingga
Kita mengetahui bersama bahwa code alfabet A merupakan himpunan yang berhingga(finite
set). Sebagaimana kita ketahui juga bahwa sebuah lapangan(field) seperti real field R dan
complex field C mempunyai operasi penjumlahan dan perkalian. Ide kita menghubungkan A
dengan field, namun yang memiliki elemen yang berhingga atau finite field. Finite field ini
cukup berbeda dari yang sebelumnya kita pelajari. Didalam bab ini kita hanya mempelajari
sedikit bagian dari finite field.
3.1 Fields
Definisi 3.1.1. Field adalah himpunan tak kosong F dengan dua opeasi + dan . memenuhi
aksioma dibawah ini. ∀a,b,c ∈ F :
(i) F tertutup terhadap + dan . , a+b dan a.b ∈ F.
(ii) a+b = b+a, a.b = b.a (sifat komutatif).
(iii) (a+b)+c = a+(b+c), a.(b.c) = (a.b).c (sifat assosiatif).
(iv) a.(b+c) = a.b+a.c (sifat distributif).
(v) a+0 = 0+a = a,∀a ∈ F.
(vi) a.1 = a dan a.0 = 0,∀a ∈ F.
(vii) Untuk sebarang a ∈ F, terdapat elemen invers penjumlahan (−a) ∈ F dengan demikian
(a)+(−a) = 0
(viii) Untuk sebarang a = 0 ∈ F, terdapat elemen invers perkalian a−1 ∈ F dengan demikian
a.a−1 = 1
Kita biasanya menuliskan a.b dengan ab dan F∗ sebagai himpunan F{0}
Contoh 3.1.2. Q,R,C adalah merupakan field.
Lemma 3.1.3. Misalkan a,b sebarang dua anggota dari field F, maka
(i) (−1).a = −a
(ii) ab = 0 maka a = 0 atau b = 0
11
12 BAB 3. LAPANGAN BERHINGGA
Contoh 3.1.4. (i) Himpunan semua bilangan bulat
Z = {0,±1,±2,...}
merupakan bentuk ring terhadap penjumlahan dan perkalian, disebut sebagai ring
integer.
(ii) Himpunan semua polynomial atas field F,
F[x] := {a0 +a1x+···+anxn
: ai ∈ F,n ≥ 0}
merupakan bentuk ring dengan penjumlahan dan perkalian polynomial.
Definisi 3.1.5. Misalkan a,b dan m > 1 bilangan bulat. Kita katakan bahwa a kongruen ke
b modulo m, dituliskan sebagai
a ≡ b(mod m)
jika m|(a−b) artinya m membagi habis a−b.
Contoh 3.1.6. (i) 90 ≡ 30 (mod 60) dan 15 ≡ 3(mod 12).
(ii) a ≡ 0 (mod m) artinya m|a
(iii) a ≡ 0 (mod 2) artinya a bilangan genap.
(iv) a ≡ 1 (mod 2) artinya a bilangan ganjil.
Jika field dengan |F| < ∞, maka F disebut Finite Field
Teorema 3.1.7. Zm adalah field jika dan hanya jika m prima.
Bukti. Andaikan bahwa m merupakan bilangan komposit. Mislakan m = ab untuk dua
bilangan bulat yang memenuhi 1 < a,b,< m. Selanjutnya a = 0,b = 0.Jadi 0 = m = 0 ∈ Zm.
Ini kontradiksi dengan yang diketahui di Lemma 3.1.3. Jadi Zm bukan field.
Sekarang misalkan m merupakan bilangan prima. Untuk sebarang anggota a ∈ Zm, 0 < a < m,
kita mengetahui bahwa a adalah prima ke n. Jadi, ada dua bilangan bulat u,v dengan sifat
0 ≤ u ≤ m − 1 dengan demikian ua + vm = 1, ua ≡ 1 (mod m). Selanjutnya u = a−1. Ini
mengatakan bahwa aksioma (viii) di definisi 3.1.1 juga memenuhi. Jadi Zm adalah field.
Untuk ring R, bilangan bulat n ≥ 0 dan a ∈ R, kita notasikan dengan na atau n.a element
n
∑
i=1
a = a+a+···+a
n
.
Definisi 3.1.8. Misalkan F field characteristic dari F adalah bilangan bulat positif terkecil
p sehingga p.1 = 0, dimana 1 elemen identitas dari F. Jika tidak demikian p ada, kita
definisikan characteristicnya 0.
Contoh 3.1.9. (i) Karakteristik Q,C,R adalah 0
(ii) Karateristik dari field Zp adalah p untuk sebarang p prima.
Kita mendapatkan teorema dibawah ini yang mengatakan karakteristik dari field bukan
bilangan komposit.
3.1. FIELDS 13
Teorema 3.1.10. Karakteristik dari field salah satunya 0 atau bilangan prima.
Bukti. Jelas bahwa 1 bukan merupakan karateristik sebab 1.1 = 1 = 0.
Andaikan bahwa karakteristik dari field p adalah bilangan komposit. Misalkan p = nm untuk
suatu bilangan bulat 1 < n,m < p. Ambil a = n.1 dan b = m.1, dimana 1 element identitas
perkalian dari F. Maka
a.b = (n.1)(m.1) = (
n
∑
i=1
1)(
m
∑
j=1
1) = (mn).1 = p.1 = 0
Menggunakan Lemma 3.1.3(ii), a = 0 atau b = 0. Ini artinya m.1 = 0 atau n.1 = 0. Kontradiksi
dengan definisi karateristik.
Misalkan E,F dua fields dan misalkan F subfiled dari E,. F disebut sebagai subfield dari E
jika penjumlahan dan perkalian yang sama dengan E .
Contoh 3.1.11. (i) Bilangan rasional Q adalah merupakan subfield dari bilangan real R
dan C dan R merupakan subfield dari C .
(ii) Misalkan F field dengan karakteristik p maka Zp bisa dipandang sebagai subfield F .
Teorema 3.1.12. Finite field F dengan karaterisktik p memuat pn elemen untuk suatu bilangn
bulat n ≥ 1 .
Bukti. Dipilih elemen α1 dari F∗. Kita mengklaim bahwa 0.α1.1.α1.....(p − 1).α1 me-
rupakan pasaangan yang berbeda. Jika i.α1 = j.α1 untuk suatu 0 ≤ i ≤ j ≤ p − 1, maka
(j −1).α1 = 0 dan 0 ≤ (j −1) ≤ p−1. Karakteristik dari F adalah p sehingga j −i = 0.Jadi
i = j.
Jika F = {0.α1.1.α1.....(p − 1).α1}, maka bukti selesai. Dilain pihak, jika kita memilih
elemen α2 ∈ F{0.α1.1α1.....(p−1).α1} . Kita mengklaim bahwa a1α1 +a2α2 merupakan
pasangan yang berbeda untuk semua 0 ≤ a1,a2 ≤ p−1 sehingga
a1α1 +a2α2 = b1α1 +b2α2 (3.1)
untuk suatu 0 ≤ a1,a2,b1,b2 ≤ p − 1, maka harus mempunyai a2 = b2. Disisi lain, kita
seharusnya mempunyai dari 3.1 bahwa α2 = (b2 −a2)−1(a1 −b1)−1α2. Ini kontradiksi ke
pilihan kita α2. Ketika a2 = b2, dari 3.1 didapat (a1,a2) = (b1,b2) . Karena F mempunyai
elemen berhingga maka kita dapat melanjutkannya dan didapatkan elemen-elemen α1,...,αn
dengan demikian
αi ∈ F{a1α1 +···+ai−1αi−1 : a1,...,ai−1 ∈ Zp} untuk semua 2 ≤ i ≤ n,
dan
F = {a1α1 +···+anαn : a1,...,an ∈ Zp}
Didalam masalah yang sama, kita bisa menunjukkan bahwa a1α1 + ··· + anαn adalah me-
rupakan pasangan yan berbeda untuk semua ai ∈ Zp i = 1,...,n . Ini mengatakan bahwa
|F| = pn .
14 BAB 3. LAPANGAN BERHINGGA
3.2 Polynomial Rings
Definisi 3.2.1. Misalkan F merupakan field. Himpunan
F[x] = {
n
∑
i=0
aixi
: ai ∈ F,n ≥ 0}
disebut sebagai polynomial ring atas F.
F adalah ring menurut aksioma (i)-(iv) dari definisi 3.1.1 terpenuhi. Elemen dari F[x]
disebut polynomial atas F . Untuk polynomial f(x) = ∑n
i=1 aixi, bilangan n disebut degree
dari f(x), dinotasikan sebagai deg(f(x)), jika an = 0 atau kita definisikan deg(0) = −∞ .
Lebih jauh,dapat dilihat jenis polynomialnya sebagai berikut :
1. Polynomial tak nol f(x) = ∑n
i=0 aixi mempunyai degree ndikatakan monic jika an = 1 .
2. Polynomial dikatakan reducible jika terdapat dua polynomial g(x) dan h(x) atas F de-
ngan demikian deg(g(x)) < deg(f(x)) dan deg(h(x) < deg(f(x)) dan f(x) = g(x)h(x).
3. Polynomial yang tidak reducible disebut irreducible.
Contoh 3.2.2. (i) Polynomial f(x) = x4 +2x6 ∈ Z3[x] dengan degree 6 merupakan redu-
cible sebab f(x) = x4(1+2x2)
(ii) Polynomial g(x) = 1 + x + x2 ∈ Z2[x] dengan degree 2 merupakan irreducible sebab
tidak mempunyai faktor linear seharusnya mempunyai faktor linear linear yaitu x dan
x+1 atau 0 dan 1 tetapi g(1) = g(0) = 1 ∈ Z2.
(iii) Menggunakan alasan yang sama dengan (ii), kita bisa menunjukkan bahwa bahwa
2+x3 +x dan 1+x2 +x3 juga merupakan irreducible atas Z2.
Definisi 3.2.3. Misalkan f(x) ∈ F[x] polynomial dengan degree n ≥ 1. Maka untuk sebarang
polynomial g(x) ∈ F[x], terdapat dengan tunggal pasangan (s(x),r(x)) polynomial dengan
degree(r(x)) < degree(f(x)) atau r(x) = 0 dengan demikian g(x) = s(x)f(x) + r(x). Po-
lynomial r(x) disebut (principal) remainder dari g(x) dibagi oleh f(x), dinotasikan oleh
(g(x)(mod f(x))).
Contoh 3.2.4. Misalkan f(x) = 1+x2 dan g(x) = x+2x4 dua polynomial di Z5[x]. Ketika
kita mempunyai g(x) = x + x4 = (3 + 2x2)(1 + x2)(2 + x) = (3 + 2x2)f(x) + (2 + x), dan
remainder(sisa) g(x) dibagi oleh f(x) adalah 2+x.
Definisi 3.2.5. Misalkan f(x) dan g(x) ∈ F[x] merupakan dua polynomial tak nol. Greatest
common divisor dari f(x),g(x) dinotasikan oleh gcd(f(x),g(x)) adalah polynomial monic
dengan degree terbesar adalah pembagi keduanya f(x) dan g(x). Khususnya, kita katakan
bahwa f(x) adalah co-prime atau prime ke g(x) jika gcd(f(x),g(x)) = 1. Least common
multiple dari f(x),g(x) dinotasikan oleh lcm(f(x),g(x)) adalah polynomial monic degree
terendah adalah perkalian keduanya f(x) dan g(x).
Contoh 3.2.6. Diketahui Z2 = {0,1} merupakan field dan
Z2[x] = {0,1,1+x,1+x+x2
0,...}
= {a0 +a1x+a2x2
+···+anxn
|ai ∈ Z2,n ∈ Z+
{0}}
3.2. POLYNOMIAL RINGS 15
Ring Integral Z Ring Polynomial F[x]
Integer m Polynomial f(x)
Bilangan prima p polynomial irreducible p(x)
Tabel 3.1: Analogi antara Z
dan F[x]
Catatan 3.2.7. (i) Jika kita mempunyai dua faktorisasi dibawah ini:
f(x) = a.p1(x)e1 ... pn(x)en, g(x) = b.p1(x)d1 ... pn(x)dn, Dimana a,b ∈ F∗,ei,di ≥
0 dan pi(x) adalah polynomial monic irreducible yang berbeda(eksistensi dan ketung-
galan faktorisasi polynomial yang kita ketahui dengan baik),maka
Zm = {0,1,...,m−1} F[x]/(f(x)) := {∑n
i=0 −1aixi : ai ∈ F,n ≥ 1}
a⊕b := (a+b (mod(m)) g(x)⊕h(x) := (g(x)+h(x)) (mod f(x)))
a b := (ab (mod m)) g(x) h(x) := (g(x)h(x)) (mod f(x)))
Zm ring F[x] / f(x) ring
Zm field ⇔ m prima F[x] / (f(x)) field ⇔ f(x) irreducible
Tabel 3.2: Analogi lebih lanjut Z dan F[x]
gcd(f(x),g(x)) = p1(x)min{e1,d1}
... pn(x)min{en,dn}
.
dan
lcm(f(x),g(x)) = p1(x)max{e1,d1}
... pn(x)max{en,dn}
.
(ii) Misalkan f(x),g(x) ∈ F[x] merupakan dua polynomial tak nol. Maka terdapat dua po-
lynomial u(x),v(x) dengan degree(u(x)) < degree(g(x)) dan degree(v(x)) < degree(f(x)),
dengan demikian bahwa
gcd(f(x),g(x)) = u(x)f(x)+v(x)g(x).
(iii) Dari (ii), dengan mudah ditunjukkan bahwa gcd(f(x)h(x),g(x)) = gcd(f(x),g(x)) jika
gcd(h(x),g(x)) = 1.
Disana banyak analogi antara Z Ring Integral dengan ring polynomial F[x]. Kita daftark-
an pada tabel 3.1 dan hasil lebih lanjut dapat dilihat di tabel 3.2.
Teorema 3.2.8. Misalkan f(x) polynomial atas F dengan degree ≥ 1. Maka F[x]/(f(x))
bersama dengan penjumlahan dan perkalian yang didefinisikan pada tabel 3.2, berbentuk
Ring. Lebih jauh, F[x]/(f(x)) adalah field jika dan hanya jika irreducible.
Catatan 3.2.9. (i) Kita akan menotasikan ⊕ untuk penjumlahan dan untuk perkalian
di F[x]/(f(x)).
(ii) Jika f(x) adalah polynomial linear maka field F[x]/(f(x)) adalah field F dengan
dirinya sendiri.
16 BAB 3. LAPANGAN BERHINGGA
Contoh 3.2.10. (i) Diberikan ring dengan R[x]/(1+x2) = {a+bx : a,b ∈ R} merupakan
field ketika 1+x2 adalah irreducible atas R. Faktanya, juga merupakan field C, untuk
melihatnya kita hanya mengganti x di R[x]/(1+x2) dengan bilangan imaginer i.
(ii) Diberikan ring
Z2[x]/(1+x2
) = {0,1,x,x+1}
Kita selanjutnya mengkontruksikan penjumlahan dan perkalian didapat bahwa Z2[x]/(1+
x2) bukan field sebab (1+x)(1+x) = 0.
(iii) Diberikan ring
Z2[x]/(1+x+x2
) = {0,1,x,1+x}.
1+x+x2 irreducible atas Z2[x]. Jadi ring Z2[x]/(1+x+x2) adalah field.
3.3 Structure of Finite Fields
Lemma 3.3.1. Untuk setiap elemen β dari finite field F dengan q elemen, kita mempunyai
βq = β
Bukti. Untuk β = 0 jelas. Untuk β = 0 dan
F∗
= {β1,β2,...,βq−1 | βi = 0 : i = 1,2,...,q−1}.
Selanjutnya βF∗ = {ββ1,ββ2,...,ββq−1}. Jika i = j maka ββi = ββj sehingga βF∗ = F.
Jadi
β1β2,...,βq−1 = ββ1ββ2ββ3,...,ββq−1
= βq−1
β1β2,...,βq−1
Karena field maka βq−1 = 1.Jadi βq = β.
Akibat 3.3.2. Misalkan F merupakan subfield dari E dengan |F = q. Maka anggota β dari
E di F jika dan hanya jika βq = β
Bukti. ⇒ Jelas, karena diketahui β ∈ E dan β ∈ F. Menurut Lemma 3.3.1, β ∈ F ⇔ βq = β.
⇐ Diketahui β ∈ E dan βq = β. Akan dibuktikan β ∈ F. Perhatikan polynomial f(x) =
xq − x ∈ E(x). Banyak akan atau pembuat nol dari f(x) paling banyak ada q. Dan telah
diketahui semua anggota F merupakan akar dari f(x) sehingga F = { akar -akar dari xq −x
dalam E(x) }
Teorema 3.3.3. Untuk sebarang bilangan prima p dan bilangan bulat n ≥ 1, terdapat dengan
tunggal finite field dengan pn elemen.
Bukti. (Eksistensinya) Pilih irreducible polynomial berderajat n(monic)atas Zp maka Zp[x] |
f(x) = GF(pn) adalah field dengan banyak anggota pn dengan p bilangan prima.
(Ketunggalannya) Jika E dan F finite field dengan | E |=| F |= pn, maka E ≤ E.F dan F ≤ E.F.
Kita perhatikan polynomial xpn
−x atas E.F.
Definisi 3.3.4. Anggota α didalam finite field Fq disebut primitive element atau generator
dari Fq jika Fq = {0,α,α2,...,αq−1}.
3.3. STRUCTURE OF FINITE FIELDS 17
Contoh 3.3.5. Diberikan field F4 = F2[α], dimana α adalah akar dari polynomial irreducible
1+x+x2 ∈ F2[x]. Maka kita mempunyai
α2 = −(1+α) = 1+α, α3 = α(α)2
= α(1+α) = α +α2 = α +1+α = 1 Jadi, F4 =
{0,α,1+α,1} = {0,α,α2,α3} sehingga α elemen primitif.
Definisi 3.3.6. Order dari elemen tak nol α ∈ Fq, dinotasikan sebagai ord(α) adalah meru-
pakan bilangan bulat positif terkecil k sehingga α2 = 1.
Contoh 3.3.7. Diketahui GF(9)GF(32), dan f(x) = 1+x2 ∈ Z3[x] yang merupakan polyno-
mial irreducible. Jika α ∈ GF(9) = F3[α] sehingga α merupakan akar dari f(x) = 1 + x2
didapat 1+α2 = 0. Jadi
α2 = −1 = 2, α3 = α.α22.α, α4 = α2.α.α = 2.α2 = 2.(−1) = 4 = 1
Jadi, order dari α adalah 4.
Lemma 3.3.8. 1. Untuk setiap α ∈ GF(q)∗ berlaku ord(α) membagi habis (q−1).
2. ∀α,β ∈ GF(q)∗, jika gcd(ord(α),ord(β)) = 1 maka ord(α.β) = ord(α).ord(β).
Bukti.
1. Misalkan m ∈ Z+ adalah bilangan dengan sifat αm = 1, maka m = a.ord(α)+b,0 ≤
b < ord(α). Didapat 1 = αm = αa.ord(α)+b = [αord(α)]a.αb = 1a.αb = αb. Karena
α ∈ GF(q∗) maka αq−1 = 1. Jadi ord(α) | (q−1), karena q−1 = a.ord(α)+b dengan
b = 0.
2. Misalkan γ = ord(α).ord(β), maka αγ = βγ. Karena
α = αord(α).ord(β) = [αord(α)]ord(β) = 1ord(β) = 1 sehingga (α.β)γ = 1. Akibatnya
ord(α.β) ≤ γ = ord(α).ord(β). Jika ord(α.β) = t maka
1 = (α.β)t.ord(α) = αt.ord(α).βt.ord(α) = βt.ord(α).
Menurut bukti sebelumnya, ord(β) membagi t.ord(α) sehingga ord(β) | t.ord(α) dan
gcd(ord(α).ord(β)) = 1, maka ord(β) | t. Dengan jalan yang sama bisa ditunjukk-
an bahwa ord(α) | t. Akibatnya ord(α).ord(β) | t sehingga ord(α).ord(β) ≤ t =
ord(α.β). Jadi terbukti ord(α).ord(β) = ord(α.β).
Proposisi 3.3.9. 1. α ∈ GFq
∗
elemen primitive jika dan hanya jika ord(α) = q−1
2. Setiap finite field mempunyai sekurang -kurangnya satu elemen primitive.
Bukti.
1. Jika α ∈ GF∗ dan ord(α) = q−1 maka {α,α2,...,αq−1} elemen -elemennya berbeda.
Jadi GF∗ = {αi | i > 0}.
2. Misalkan m adalah least common multiple(lcm) dari order semua elemen dari Fq dengan
m = lcm{ord(αi) | αi ∈ Fq
∗
}. Katakan m = r1
k1,r2
k2,...,rn
kn dengan ri bilangan-
bilangan prima yang berbeda k ≥ 0. Jika rk adalah salah satu diantara para ri
ki maka
terdapat α ∈ Fq
∗
sehingga rk | ord(α). Akibatnya, α
ord(α)
rk mempunyai order rk sehingga
untuk setiap i = 1,2,...,n terdapat βi ∈ Fq
∗
dengan ord(βi) = ri
ki. Menurut Lemma
3.3.8, terdapat β ∈ Fq
∗
dengan ord(β) = m dan m | q−1 sehingga m ≤ q−1. Dilain
pihak (q − 1) merupakan elemen dari Fq
∗
merupakan akar dari xm − 1. Akibatnya,
m ≥ q−1. Jadi ord(β) = m = q−1.
18 BAB 3. LAPANGAN BERHINGGA
Catatan 3.3.10. Jika α akar dari irreducible polynomial berderajat m atas Fq dan α juga
elemen primitive dari Fm
q
∗
maka anggotanya Fm
q dapat disajikan dengan 2 cara yaitu sebagai
berikut :
1. Fm
q = {a0 +a1α1 +a2α2 +···am−1αm−1 | ai ∈ Fq}
2. Fm
q = {0,α1,α2,...,αqm−1}
Contoh 3.3.11. Diberikan f(x) = 1+x+x2 ∈ F2[x] dan f(x) irreducible. Jika α merupakan
akar dari f(x) maka F8 = F2[α].
F8 = {a0 +a1x+a2x2
| ai ∈ F2}
= {0,1,α,1+α,α +α2
,1+α2
,1+α +α2
}
Apakah α merupakan elemen primitive ? Ingat ord(α) | (8−1). Jadi ord(α) | 7, kemudian
kemungkinan ord(α) = 1 atau ord(α) = 7. Karena ord(α) = 1 maka ord(α) = 7. Karena
| F8 |= 7. Jadi didapat bahwa α elemen primitive sehingga F8 = {0,α,α2,α3,α4,α5,α6,α7}
sebab 0 = 0, 1 = α7, α = α1, 1+α = α3, α2 = α, 1+α2 = α6, α +α2 = α4,dan 1+α +
α2 = α5.
Zech’s Log Table
Misalkan α elemen primitive dari Fq. Untuk setiap 0 ≤ i ≤ q−2 atau i = ∞, kita kontruksikan
tabel Z(i) sehingga 1 + αi = αZ(i) dan α∞ = 0 sehingga ∀αi,α j ∈ Fq,0 ≤ i ≤ j ≤ q − 2.
Selanjutnya diperoleh αi +α j = αi(1+α j−1) = αi+Z(q−1).
Contoh 3.3.12.
α3
+α5
= α3
(1+α2
)
= α3
.αZ(2)
= α3+Z(2)
Latihan
3.1 Tunjukkan bahwa sisa setiap bilangan bulat pangkat dua dibagi oleh 4 adalah salah
satunya 0 atau 1. Selanjuntya, tunjukkan bahwa tidak ada bilangan bulat x dan y dengan
demikian x2 +y2 = 40403.
3.2 Kontruksikan tabel penjumlahan dan perkalian untuk ring Z5 dan Z8.
3.3 Temukan invers perkalian setiap elemen dibawah ini :
(a) 2,5 dan 8 di Z11
(b) 4,7 dan 11 di Z17
3.4 Misalkan p bilangan prima.
3.3. STRUCTURE OF FINITE FIELDS 19
(i) Tunjukkan bahwa
p
j
≡ 0 (mod p) untuk sebarang 1 ≤ j ≤ p−1.
(ii) Tunjukkan bahwa
p−1
j
≡ (−1)j (mod p) untuk sebarang 1 ≤ j ≤ p−1.
(iii) Tunjukkan bahwa, untuk sebarang dua elemen α,β didalam field dengan chara-
cteristic p, kita mempunyai
(α +β)pk
= αpk
+β pk
Untuk sebarang k ≥ 0.
3.5 (i) Verifikasikan bahwa f(x) = x5 −1 ∈ F31[x] bisa dituliskan sebagai hasil kali dari
(x2 −3x+2)(x3 +3x2 +7x+5).
(ii) Tentukan sisa dari f(x) dibagi oleh x2 −3x+2.
(iii) Hitunglah sisa f(x) dibagi oleh x5,x7, dan x4 +5x3.
3.6 Verifikasikan bahwa polynomial dibawah ini merupakan irreducible :
(a) 1+x+x2 +x3 +x4, 1+x+x4, dan 1+x3 +x4 atas F2.
(b) 1+x2, 2+x+x2 dan 2+2x+x2 atas F3.
3.7 Setiap polynomial kuadrat atau pangkat tiga salah satunya irreducible atau mempunyai
faktor linear
(a) Temukan banyaknya polynomial monic kuadrat atas Fq.
(b) Temukan banyaknya polynomial monic pangkat tiga atas Fq.
(c) Hitunglah semua polynomial irreducible kuadrat dan pangkat tiga atas F2.
(d) Hitunglah semua polynomial monic kuadrat irreducible atas F3.
3.8 Misalkan f(x) = (2 + 2x2)(2 + x2 + x3)2(−1 + x4) ∈ F3[x] dan g(x) = (1 + x2)(−2 +
2x2)(2+x2 +x3) ∈ F3[x]. Carilah gcd(f(x),g(x)) dan lcm(f(x),g(x)).
3.9 Temukan dua polynomial u(x) dan v(x) ∈ F2[x] dengan demikian bahwa deg(u(x)) < 4,
deg(v(x)) < 3 dan
u(x)(1+x+x3
)+v(x)(1+x+x2
+x3
+x4
) = 1
20 BAB 3. LAPANGAN BERHINGGA
Bab 4
Linear Code
Sebuah kode linear dengan panjang n atas lapangan berhinggga (finite field) secara sederhana
ruang bagian dari ruang vektor Fq
n
. Ketika kode linear adalah merupakan ruang vektor
menjadi lebih mudah untuk menjelaskannya dan menggunakannya daripada yang bukan kode
linear.
4.1 Vector Space over finite fields
Definisi 4.1.1. Misalkan Fq merupakan lapangan berhingga dengan banyaknya q. V him-
punan tak kosong bersama dengan operasi penjumlahan(+) dan perkalian skalar dengan
elemen Fq adalah ruang vektor(ruang linear) jika memenuhi semua kondisi dibawah ini :
(i) u+v ∈ V
(ii) (u+v)+w = u+(v+w);
(iii) Terdapat elemen 0 dengan sifat 0+v = v = v+0 untuk semua v ∈ V.
(iv) Untuk setiap v ∈ V terdapat elemen V yang disebut −u sehingga u + (−u) = 0 =
(−u)+u;
(v) u+v = v+u
(vi) λv ∈ V
(vii) λ(u+v) = λu+λv,(λ +u) = λu+λu
(viii) (λµ)u = λ(µu)
(ix) Jika 1 merupakan elemen identitas perkalian dari Fq, maka 1.u = u.
Definisi 4.1.2. Himpunan bagian C dari ruang vektor V adalah ruang bagiansubspace V jika
ruang vekto yang mempunyai penjumlahan dan perkalian vektor yang sama dengan V.
Proposisi 4.1.3. Himpunan bagian C dari ruang vektor V atas Fq adalah subspace jika dan
hanya jika terpenuhi syarat dibawah ini:
jika x,y ∈ C dan λ,µ ∈ Fq, maka λx+ µy ∈ C.
21
22 BAB 4. LINEAR CODE
4.2 Linear Code
Kita akan memperkenalkan linear code. Misalkan himpunan semua pesan yang kita harapkan
dapat ditransmisikan adalah himpunan semua k−tuple yang mempunyai suatu field F dengan
q elemen. Kita notasikan semua himpunan k−tuple atas F menggunakan Vk(F) maka ada
qk elemen. Himpunan ini disebut sebagai ”ruang vektor” dan disini kita sebut sebagai
”message space”. Misalkan kita memerlukan untuk mendeteksi atau mengoreksi kesalahan,
kita harusnya menambah beberapa pengulangan yang ada. Selanjutnya, pesan(message)
k−tuple disisipkan kedalam n− tuple dengan n ≥ k. Jadi kita akan mengatur korespodensi
satu-satu antara qk pesan dan qk n−tuple didalam Vn(F). Teknik ini secara aljabar dikatakan
sebagai bentuk ruang bagian berdimensi-k di dalam Vn(F). Kita bisa mendapat ruang bagian
berdimensi-k dengan k vektor- vektor yang bebas linear di Vn(F). Kita bisa memilih k vektor
-vektor yang bebas linear adalah
(qn
−1)(qn
−q)(qn
−q2
)···(qn
−qk−1
) (4.1)
Ketentuannya sebagai berikut :
• (qn −1) didapat dengan memilih sebarang vektor tak nol.
• (qn −q) didapat dengan memilih sebarang vektor yang bebas linear dari vektor pertama
yang terpilih
• (qn −q2) didapat dengan memilih sebarang vektor yang bebas linear dari vektor kedua
yang terpilih
...
• (qn − qk−1) didapat dengan memilih sebarang vektor yang bebas linear dari vektor
(k −1) dengan
Kita dapat memilih qn −qi cara tetapi ini hanyalah menghitung banyak himpunan terurut dari
k− vektor yang bebas linear. Dengan cara yang sama, ruang bagian berdimensi-k memuat
(qk
−1)(qk
−q)···(qk
−qk−1
) (4.2)
Jadi total banyaknya ruang bagian berdimensi-k di Vn(F) adalah
s =
(qn −1)(qn −q)···(qn −qk−1)
(qk −1)(qk −q)···(qk −qk−1)
=
(qn −1)(qn−1 −1)···(qn−k+1)
(qk −1)(qk−1 −1)···(q−1)
Jadi, Kode linear(linear code) atas F adalah ruang bagian dari Vn(F) berdimensi k(n,k,d).
Contoh 4.2.1. Diberikan V3(Z3) = {a1a2a3 | ai ∈ Z3}. Tentukan banyaknya dua vektor yang
bebas linear didapat (23 −1)(23 −2) = 7.6 = 42.
Jika kita memilih sebarang satu dari s ruang bagian, maka kita bisa mendefinisikan
korepedensi satu-satu antara vektor di ruang bagian S dan ruang pesan M adalah pertama
memilih sebuah basis katakan B = {v1,v2,...,vk} untuk S dan kemudian kita definisikan
korespodensinya adalah
f : M → S
dengan f(m) = ∑k
i=1 mivi, dimana m = {m1,m2,...,mk} adalah message k−tuple,i.e m ∈ M.
Contoh 4.2.2. Misalkan diberikan basis β = {β1,β2} dengan β1 = {110} dan β2 = {0110},
maka didapatkan sebagai berikut :
00 → 0.β1 +0.β2 = 0000 01 → 0.β1 +1.β2 = 0110
10 → 1.β1 +0.β2 = 1100 11 → 1.β1 +1.β2 = 1010
4.3. HAMMING WEIGHT 23
4.3 Hamming Weight
Hamming Weight dari suatu vektor v, dengan notasi w(v) adalah banyaknya transisi koordinat
dari v yang komponennya bukan nol. Hamming Wight dari (n,k)− code C adalah
w(C) = min{w(C) | c ∈ C,c = 0}
Contoh 4.3.1. V = (1011001) → w(v) = 4
Contoh 4.3.2. Diberikan himpunan kode dibawah ini :
S1 = {01000,00100,01100,00001}
S2 = {00000,01100,00011,01111}
S2 dan S1 masing -masing merupakan ruang bagian dari V5(Z2) yang berdimensi 2. S1 dan S2
masing - masing merupakan (5,2)− code.
Salah satu keuntungan kode linear yaitu distancenya sama dengan weight dari kode linear
tersebut.
Teorema 4.3.3. Jika d merupakan distance dari (n,k) code C, maka berlaku d = w(C).
Bukti. d(C) = min{d(x,y) | x,y ∈ C,x = y}, bisa dicek d(x,y) = w(x−y) sehingga d(C) =
min{w(x−y) | x,y ∈ C,x = y} = min{w(a) | a ∈ C,a = 0} = w(C)
Contoh 4.3.4. Diketahui GF(4) = {0,1,x,1 + x} merupakan polynomial irreduciblenya
1+x+x2, GF(4) = {1,2,3,4} dan V = (01230112), dan W = {02311113} didapat w(v) = 5
dan w(w) = 7, serta w.(v−w) = 5.
Contoh 4.3.5. Diberikan (5,3)−kode C dengan basis dibawah in :
V1 = (10001)
V2 = (00010)
V3 = (00100)
C = {10001,00010,00100,10010,10100,00110,10111,00000}
G =


V1
V2
V3

 =


1 0 0 0 1
0 0 0 1 0
0 0 1 0 0

 → generator matriks untuk (5,3)− code C
Jika pesan m = (a,b,c) disandikan ke
m.G = A = a b c =


1 0 0 0 1
0 0 0 1 0
0 0 1 0 0

 = a 0 b c a
Jika basis yang kita pilih berbeda
katakan
V1 = (10010)
V2 = (01011)
V3 = (00101)
Maka pesan m = a b c akan disandikan menjadi
m.G = a b c =


1 0 0 1 0
0 1 0 1 1
0 0 1 0 1

 = a b c a+b b+c
24 BAB 4. LINEAR CODE
Diketahui (n,k)− codeC dengan generator matrik G =





V1
V2
...
Vr





dengan V1 V2 ... Vk
bebas linear dan Span V1 V2 ... Vk = C
G =





a11 a12 ... a1n
a21 a22 ... a2n
...
...
...
ak1 ak2 ... akn





→ G =





b11 b12 ... b1n
b21 b22 ... b2n
...
...
...
bk1 bk2 ... bkn





Generator matrik G untuk (n,k)− code C dikatakan sama dalam bentuk standar(standard
form) jika G berbentuk
G = Ik A
dengan Ik adalah matriks identitas bertipe k ×k :





1 0 ... 0
0 1 ... 0
...
...
...
...
0 0 1





k×k
dan A matriks bertipe k ×(n−k)
Contoh 4.3.6.
G =


1 0 0 1 0
0 1 0 1 1
0 0 1 0 1


Jika basis yang kita pilih berbeda, katakan
V1 = (00010)
V2 = (00001)
V3 = (00101)
Definisi 4.3.7. (n,k)− code C dikatakan ekuivalen dengan (n,k)− code C jika dapat dike-
nakan matrik permutasi P sehingga C = GP.
Definisi 4.3.8. Diberikan (n,k)− code C, terdapat generator matriks G = [Ik A] untuk C atau
ekuivalen code C .
Definisi 4.3.9. Diketahui x,y ∈ Vn(F dengan
Teorema 4.3.10. C⊥ ini merupakan (n,n−k)− code atas F
1. C⊥ ruang vektor atas F
2. dim(C⊥) = n−k
Teorema 4.3.11. Diketahui H merupakan parity check matrix untuk (n,k)− code C atas F,
setiap s−1 kolom dari H bebas linear jika dan hanya jika C merupakan distance sekurang-
kurangnya S.
G = [Ik A] Generator untuk C
H = [−At In−k] Generator untuk C⊥
Bab 5
First Order Reed Muller Codes
5.1 Pendahuluan
Sebelum dibahas mengenai Reed Muller Code akan dibahas terlebih dahulu mengenai linear
code. Linear code menjadi dasar teori dari Reed Muller Code sebab Reed Muller Code
merupakan kelas spesial dari linear code.
Definisi 5.1.1. Suatu linear code−(n,k) atas F adalah subruang berdimensi k atas Vn(F).
Linear code dengan panjang n, berdimensi k dan berdistance d dinotasikan dengan (n,k,d).
Pada linear code didefinisikan Hamming weight yang analog dengan Hamming distance.
Berikut ini definisi Hamming weight.
Definisi 5.1.2. Hamming weight dari suatu vektor v ∈ Vn(F) dinotasikan w(v) yang meru-
pakan jumlah dari koordinat tak nol di v.
Untuk memperjelas definisi di atas, berikut diberikan definisi Hamming weight atas
(n,k)-code C.
Definisi 5.1.3. Hamming weight atas (n,k)-code C adalah
w(C) = min{w(x) : x ∈ C,x = 0}
.
Untuk memperjelas definisi 5.1.2 dan definisi 5.1.3 berikut diberikan contoh.
Contoh 5.1.4. Diberikan
P1 = {(0000),(0101),(1000),(1110)}
P2 = {(0000),(1100),(0011),(1111)}
P1 dan P2 keduanya merupakan subruang berdimensi 2 atas V4(Z2). Hamming distance dan
Hamming weight dari P1 kedua-duanya bernilai 1, sedangkan untuk P2 kedua-duanya bernilai
2.
Dari contoh di atas Hamming distance dari masing-masing code sama dengan Hamming
weight. Hal ini bukan merupakan suatu kebetulan. Untuk memperjelas hal tersebut, berikut
ini berikan suatu teorema.
Teorema 5.1.5. Diberikan d yang merupakan distance dari (n,k)-code C. Sehingga
d = w(C)
.
25
26 BAB 5. FIRST ORDER REED MULLER CODES
5.2 Generator Matrices
Suatu linear code dapat dikarakterisasi oleh suatu generator matrik.
Definisi 5.2.1. Suatu generator matriks G untuk (n,k)−code C adalah suatu matriks beru-
kuran k ×n dimana baris-barisnya merupakan basis dari C.
Untuk memperjelas definisi generator matriks berikut ini diberikan suatu teorema.
Teorema 5.2.2. Jika C merupakan suatu (n,k)-code atas lapangan F, kemudian terdapat
suatu generator matriks G untuk C atau ekuivalen dengan C maka
G = Ik A
5.3 Parity Check
Berikut ini diberikan definisi parity check.
Definisi 5.3.1. Jika G merupakan generator matriks dari C, maka H generator matriks dari
C⊥ . Kemudian misalkan C merupakan (n,k)−code atas lapangan F. Jika H generator
matriks untuk C⊥ maka H disebut parity-check matriks untuk C.
5.3.1 Hamming Code
Berikut ini diberikan definisi Hamming code.
Definisi 5.3.2. Suatu Hamming code dari order r atas GF(q) adalah suatu (n,k) -code
dimana n = (qr −1) (q−1) dan k = n−r, dengan parity-check Hr yaitu matriks berukuran
r × n, sehingga entri dari kolom-kolom matriks Hr bukan nol dan kolom yang lain bukan
kelipatan kolom lainnya.
Diberikan Hr matriks parity check untuk ((2r)−1,(2r)−1−r)- binary Hamming Code
seperti yang dijelaskan pada dasar teori. Didefinsikan Br = [Hr0], dengan Hr kolom kolom
0 nya adjoint. Diberikan v1,v2,...,vr adalah vektor vektor baris dari Br dan 1 adalah baris
vektor semua 1 dengan panjang 2r .
Definisi 5.3.3. First Order Reed Muller Codes, dinotasikan R(1,r) sebagai Ruang bagian
yang dibangun oleh vektor-vektor 1,v1,v2,...,vr. R(1,r) adalah binary code dengan generator
matriks
G = [1/Br] = [1/(Hr0)]
Berikut ini teorema yang menjamin First Order Reed Muller Code merupakan Linear
Code
Teorema 5.3.4. R(1,r) adalah (2r,r +1,2r −1)-code.
Bukti.
Akan dibuktikan bahwa R(1,r) memiliki panjang 2r berdimensi r +1 dan distance 2r −1 .
Karena generator memiliki 2r maka n = 2r . Karena G memiliki r+1 dan baris baris tersebut
saling bebas linear. Karena dapat ditemukan submatriks Br berupa matriks identitas r × r,
dan baris terakhirnya bebas linear, tentu baris pertama juga bebas linear dengan baris yang
lain, Oleh karena itu k = r +1. Sekarang akan ditunjukkan jarak atau distance kode adalah
d = 2r −1 yaitu jarak atau distance minimum R(q,r) adalah 2r −q . Didefinisikan R(q,r) =
{(x,x + y) : x ∈ R(q,r − 1),y ∈ R(q − 1,r − 1)} Jelas bahwa R(q − 1,r − 1) ⊆ R(q,r − 1).
Dapat ditemukan bahwa x+y ∈ R(q,r −1). Sehingga diperoleh 2 kasus, yaitu:
5.4. HADAMARD MATRIX 27
1. x = y Dengan hipotesis induktive, weight dari x+y paling tidak 2(r−1) −q. Demikian
juga weight x paling tidak 2(r−1) − q. Sehingga : ω(x,x + y) = ω(x + y) + ω(x) ≥
2.2r −q−1 = 2r −q
2. x = y Karena x = y maka (x,x + y) = (x,0) = (y,0), dan karena y ∈ R(q − 1,r − 1),
sehingga di peroleh: ω(x,x+y) = ω(y,0) = ω(y) ≥ 2(r−1) −(q−1) = 2r −q Sehingga
distance kode adalah 2r −q. Karena R(1,r) dengan q = 1. Maka distance kode adalah
2r −1.
Contoh 5.3.5. Diberikan First Order Reed Muller Code R(1,r) untuk r = 3.
H =


1 0 0 1 0 1 1
0 1 0 1 1 0 1
0 0 1 0 1 1 1


B3 = [H30] =


1 0 0 1 0 1 1
0 1 0 1 1 0 1
0 0 1 0 1 1 1


G = [1/Br]
= [1/(Hr0)]
=




1 1 1 1 1 1 1
1 0 0 1 0 1 1
0 1 0 1 1 0 1
0 0 1 0 1 1 1




5.4 Hadamard Matrix
Definisi 5.4.1. Hadamard Matriks Hn order n adalah n×n matriks dengan entri bilangan
bulat +1 dan -1 dimana baris-barisnya saling orthogonal.
Contoh 5.4.2. Hadamard matriks untuk order 1, 2, dan 4 sebagai berikut :
H1 = 1
H2 =
1 1
1 −1
H4 =




1 1 1 1
1 −1 1 −1
1 1 −1 −1
1 −1 −1 1




Menurut definisi 5.4.1 diperoleh
HnHT
n = nIn
Beberapa sifat Hn
28 BAB 5. FIRST ORDER REED MULLER CODES
1. Hn = nHT
n dan HT
n Hn = nIn
2. Menukar baris atau kolom pada suatu matriks Hadamard akan menghasilkan matriks
Hadamard yang lain.
3. Mengalikan baris atau kolom dengan -1 pada suatu matriks Hadamard akan mengha-
silkan matriks Hadamard yang lain.
Diberikan matrik Hadamard Hn dengan order n, dapat dibentuk matriks
H2n =
Hn Hn
Hn −Hn
Matriks diatas disebut sebagai Matriks Kronecker product.
Definisi 5.4.3. Diberikan A = [aij] dan B = [bij] matriks persegi berorde m dan n Kronecker
product A dengan B, dinotasikan A×B adalah matriks berukuran mn×mn
A×B = [aijB]
. yang diperoleh dengan cara menukarkan elemen ke−(i, j) dari A dengan matriks aijB ,
matriks B yang tiap elemennya dikalikan dengan aij.
Definisi 5.4.4. Proper ordering Pr binary r−tupel adalah order yang didefinisikan secara
rekursif dengan aturan :
1. P1 = [0,1]
2. Jika Pi = [b1,b2,,b(2i)] maka P(i+1) = [b10,b20,,b(2i))0,b11,b21,,b(2i)1], untuk 1 ≤
i ≤ r −1
5.4.1 Hadamard Transform
Berikut diberikan suatu definisi Hadamard transform.
Definisi 5.4.5. Hadamard Transform dari 2r tuple R adalah 2r tuple ˆR dimana komponen
yang bersesuaian dari R bersesuaian dengan r−tuple u ∈ Vr adalah
ˆR(u) = ∑
v∈Vr
(−1)u.v
.R(v)
Dengan komponen dari R merupakan bilangan bulat +1 dan -1. Komponen dari ˆR meru-
pakan bilangan bulat karena
R(v) = (−1)r(v)
,
Maka akan dipunya
ˆR(u) = ∑
v∈Vr
(−1)u.v+r(v)
Sebagai alternatif definisi, didefinisikan ˆR sebagai berikut
ˆR = RH
Dimana H adalah Hadammard matrix berorder 2r dengan baris dan kolom diindex dengan 2r
vektor biner yang berbeda di Vr .
5.4. HADAMARD MATRIX 29
Contoh 5.4.6. Untuk u = (110)T , karena u bersesuaian dengan kolom ke-4 maka R dikalikan
dengan kolom ke -4 dari Hadamard matriks sehingga diperoleh
ˆR = (1)·(1)+(1)+1·(1)+(1)·1+(1)·1+(1)(1)+1·(1)+1·1 = −2
Misalkan n = 2r dan u1,u2,,u(n−1) merupakan binary r−tuples dalam proper order. Di-
bentuk sebuah matriks dengan elemen-elemennya +1 dan -1. Didefinisikan elemen H = [hij]
dengan elemen ke−(i, j), yaitu :
hij = (−1)(uiuj)
Diberikan r merupakan binary 2r−tuple.Untuk binary r−tuples u didefinisikan scalar r(u)
sebagai komponen r yang bersesuaian dengan u. Dari r kita bentuk suatu 2r−tuple R dimana
komponen dari vector R yang bersesuaian dengan u adalah scalar bilangan real.
R(u) = (−1)(r(u))
R merupakan suatu vector dengan entri +1 dan -1, dan karena r adalah vector biner maka r(u)
adalah 0 atau 1.
Contoh 5.4.7. Untuk r = 3, diberikan r = (1101 1100). Misalkan untuk (110)T bersesuaian
dengan kolom ke-4 dari matriks B3 (pada Contoh 5.3.5). Sehingga r((110)) mengambil dari
komponen ke-4 dari r. Oleh sebab itu r(110) = 1. Dari r kita memperoleh R, komponen R
yang bersesuaian dengan (110) didefinisikan
R((110)) = (−1)(r(110))
= (−1)1
= −1
Maka komponen ke-4 dari R adalah -1. Dengan menghitung komponen yang lain diperoleh
R = (−1,−1,1,−1,−1,−1,1,1)
Teorema berikut memberikan basis untuk skema pengkodean untuk R(1,r)
Teorema 5.4.8. ˆR(u) adalah banyaknya angka 0 dikurangi banyaknya angka 1 di vektor
biner
t = r +
r
∑
i=1
uivi
dimana u = (u1;u2;...;ur)T adalah r−tupel dan vi adalah baris ke−i dari Br.
Bukti.
Ambil vi = (ai1,ai2,.....,ain), n = 2r, 1 ≤ i ≤ r.
diberikan n−tuple biner
r
∑
i=1
uivi = [
r
∑
i=1
uiai1,
r
∑
i=1
uiai2,.....,
r
∑
i=1
uiain]
= (uI1,uI2,.....,uIn)
= uBr
dimana Ij merupakan vektor kolom ke- j di Br. Dengan menggunakan kolom dari Br yang
berhubungan dengan komponen r−tuple biner. Dengan menggunakan definisi diperoleh
r = (r(I1),r(I2),....,r(In)).
30 BAB 5. FIRST ORDER REED MULLER CODES
maka
t = r +
r
∑
i=1
uivi
= (uI1 +r(I1),uI2 +r(I2),...,u(In)+r(In))
jelas bahwa (−1)u.Ij+r(Ij) akan memiliki 2 kemungkinan nilai yaitu −1 jika u.Ij +r(Ij) = 1
dan +1 jika u.Ij +r(Ij) = 0. menurut definisi Hadamard Transform maka diperoleh
ˆR(u) = ∑
v∈Vr
(−1)u.v
.R(v).
karena kolom Ij dari Br merupakan r−tuple yang berbeda semua maka dimungkinkan untuk
ditulis sebagai
ˆR(u) =
n
∑
j=1
(−1)u.Ij+r(Ij)
dimana ˆR(u) dihitung +1 untuk komponen di t yang bernilai 0, dan -1 untuk setiap komponen
yang bdrnilai 1.
Dari teorema 5.4.8 akan diperoleh persamaan berikut:
d(r,1+
r
∑
i=1
uivi) = 1/2(2r
+ ˆR(u)).
Sekarang akan dibahas bagaimana menggunakan persamaan di atas. Misalkan r adalah
vektor yang di terima, r dapat disandikan ke codeword terdekat. Pesan (r +1)−tuple seperti
m = (u0;u) dengan u adalah suatu r−tuple dan u0 = 0 atau 1. Dengan menggunakan persamaan
di atas, jarak minimum adalah
min{2r
− ˆR(u),2r
+ ˆR(u)}.
Berikut algoritma untuk First Order Reed muller Codes Diberikan r yang merupakan vektor
biner dengan panjang 2r Diberikan kolom dari Br yang adalah proper ordering Pr Diberikan
H yang merupakan Hadammard matrix H = H(2r)
1. Hitung R dan ˆR dimana R(u) = (−1)r(u) dan ˆR = RH
2. Temukan komponen ˆR(u) dari ˆR yang mana magnitude nya maximum. ambil u =
(u1,...,ur)T
3. Jika ˆR(u) > 0 maka r dikodekan ke ∑r
i=1 uivi
4. Jika ˆR ≤ 0 maka r dikodekan ke 1+∑r
i=1 uivi
Contoh 5.4.9. Dikonstruksikan generator matrix untuk R(1,3)
B3 =


0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1


5.4. HADAMARD MATRIX 31
maka akan diperoleh :
G =




1 1 1 1 1 1 1 1
0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1




dengan menggunakan proper ordering P3 diperoleh matriks Hadamark sebagai berikut :
H =












1 1 1 1 1 1 1 1
1 −1 1 −1 1 −1 1 −1
1 1 −1 −1 1 1 −1 −1
1 −1 −1 1 1 −1 −1 1
1 1 1 1 −1 −1 −1 −1
1 −1 1 −1 −1 1 −1 1
1 1 −1 −1 −1 −1 1 1
1 −1 −1 1 −1 1 1 −1












Andaikan r = (01110110) yang diterima decoder. Maka
R = (1,−1,−1,−1,1,−1,−1,1)
Dan dengan perkalian matriks akan diperoleh
ˆR = RH = (−2,2,2,6,−2,2,2,−2)
komponen magnitude yang terbesar terletak pada posisi ke 4. Komponen yang berkores-
pondensi dengan kolom ke4 dari B3 diperoleh u = (110)T karena ˆR(110) = 0 positif maka r
dekodekaan ke
c =
r
∑
i=1
uivi = 1.v1 +1.v2 +0.v3 = (01100110)
32 BAB 5. FIRST ORDER REED MULLER CODES
Bab 6
Cyclic Codes
6.1 Pendahuluan
Cyclic codes merupakan salah satu linear codes yang banyak digunakan karena beberapa
keunggulan seperti kode yang mudah untuk dikodekan (encoded), dapat digunakan untuk
membaca kode (decoding) serta banyak kode - kode penting yang dapat disajikan ke dalam
cyclic codes misalnya Golay codes dan BCH codes. Pada bab didefinisikan kode - kode
mana saja yang dapat digolongkan sebagai cyclic codes, sifat-sifat cyclic codes, algoritma
pengkodeannya sampai aplikasinya pada Burst-error-correcting codes.
Definisi 6.1.1. Subruang S dari Vn(F) disebut Subruang Siklik jika
(a1,a2,...,an−1,an) ∈ S
maka (an,a1,a2...,an−1) ∈ S
Selanjutnya diberikan definisi Cyclic Code sebagai berikut.
Definisi 6.1.2. Linear Code C disebut Cyclic Code jika C merupakan subruang siklik
Contoh 6.1.3. S = {(000),(210),(021),(102),(201),(120),(012),(222),(111)} merupakan
cyclic code dari V3(Z3). Untuk meenghubungkan struktur cyclic codes dengan struktur aljabar,
dibuat fungsi π dari Fn
q ke Fq[x]/(xn −1) sebagai berikut :
Fn
q → Fq[x]/(xn
−1)
(a0,a1,...,an−1) → a0 +a1x+...+an−1xn−1
(6.1)
Dari hubungan diatas, jika suatu kode dipandang sebagai suatu vektor (a0,a1,
...,an−1) maka kode tersebut bersesuaian dengan polinomial a0 +a1x+...+an−1xn−1
Contoh 6.1.4. Cyclic code C = {000,110,101,011} besesuaian dengan
π(C) = {0,1+x,1+x2
,x+x2
} ⊂ F2[x]/(x3
−1)
Telah kita ketahui bahwa Fq[x]/(xn −1) merupakan ring, selanjutnya akan ditunjukkan bahwa
Fq[x]/(xn −1) merupakan ring atas ideal-ideal utama. Artinya, setiap elemennya merupakan
ideal yang hanya dibangun oleh satu elemen.
Teorema 6.1.5. Fq[x]/(xn −1) merupakan ring atas ideal-ideal utama
33
34 BAB 6. CYCLIC CODES
Bukti.
Diambil sebarang ideal, namakan J ∈ Fq[x]/(xn − 1). Untuk J yang berisi polinomial nol,
jelas bahwa J ideal utama. Diambil sebarang polinomial nonzero g(x) di J dengan derajat
terkecil, maka untuk sebarang f(x) ∈ J kita dapat
f(x) = s(x)g(x)+r(x)
untuk suatu s(x),r(x) ∈ Fq[x] dengan deg(r(x)) < deg(g(x)). Karena g(x) memiliki dera-
jat terkecil, maka r(x) = 0 = f(x) − s(x)g(x). Dengan kata lain, untuk sebarang f(x) ∈
J danr(x) ∈ Fq[x]/(xn −1), f(x) = s(x)g(x). Artinya J =< g(x) > dan Fq[x]/(xn −1) meru-
pakan ring atas ideal-ideal utama.
Dari teorema ini dapat kita ketahui bahwa polinomial yang dipetakan oleh π dengan vektor
atas lapangan Fq diatas, hanya dibangun oleh satu buah elemen. Pada sub bab selanjutnya
akan dijelaskan hubungan pemetaan π tersebut dengan cyclic codes.
6.2 Generator Polinomial
Dari definisi diatas didapat beberapa hubungan antara ideal dengan cyclic codes sebagai
berikut
Teorema 6.2.1. Diberikan π pemetaan. C ⊆ Fn
q dan C = /0 adalah cyclic code jika dan hanya
jika π(C) merupakan ideal atas Fq[x]/(xn −1)
Bukti. (⇐) Diberikan π(C) ideal dari Fq[x]/(xn − 1). Diambil sebarang α, β ∈ Fq ⊂
Fq[x]/(xn − 1). Dengan definisi ideal didapat απ(a) ∈ π(C) dan βπ(b) ∈ π(C). sehing-
ga
απ(a)+π(b) ∈ π(C)
karena transformasi linear,
π(αa+βb) ∈ π(C)
Akibatnya, αa+βb codeword di C. Dengan kata lain C linear code.
misal
c = (c0,c1,c2,...,cn−1)
codeword dari C
perhatikan,
π(c) = c0 +c1x+....+c(n−2)xn−2
+cn−1xn−1
∈ π(C)
karena π(C) ideal maka,
x.π(C) = c0x+c1x2
+....+c(n−2)xn−1
+cn−1xn
∈ π(C)
= cn−1 +c0x+c1x2
+....+c(n−2)xn−1
+cn−1(xn
−1)
karenaxn −1 = 0,
= cn−1 +c0x+c1x2
+....+c(n−2)xn−1
∈ π(C)
(6.2)
sehingga (cn−1,c0,c1,...,cn−2) merupakan codeword di C. Dengan kata lain C merupakan
siklik. Jadi,C cyclic code.
6.2. GENERATOR POLINOMIAL 35
(⇒) Diberikan C ⊆ Fn
q dan C = /0 adalah cyclic code.Akan dibuktikan π(C) merupakan
ideal atas Fq[x]/(xn − 1). Jelas Fq[x]/(xn − 1) merupakan ring polinmial. Ambil sebarang
g(x) ∈ Fq[x]/(xn −1) dengan g(x) = g0 +g1x+...+gn−1xn−1 dan f(x) ∈ π(C).
Untuk sebarang polinomial dengan (f0, f1,..., fn−1) ∈ π(C) :
f(x) = f0 + f1x+...+ fn−2xn−2
+ fn−1xn−1
= π(f0, f1,..., fn−1)
karenaCsiklik,
x f(x) = fn−1 + f0x+ f1x2
+...+ fn−2xn−1
∈ π(C)
x2
f(x) = x(x f(x)) ∈ π(C)
.
.
.
xi
f(x) = x(xi−1
f(x)) ∈ π(C)
(6.3)
Karena C linear code dan π adalah tranformasi linear maka π(C) adalah subruang atas Fq
sehingga,
g(x).f(x) =
n−1
∑
i=0
gi(xi
f(x)) ∈ π(C)
dengan kata lain π(C) merupakan ideal atas Fq[x]/(xn −1). Jadi C ⊆ Fn
q merupakan cyclic
code, C = /0 ⇔ π(C) merupakan ideal atas Fq[x]/(xn −1)
Teorema 6.2.2. Diberikan I ideal tak kosong di Fq[x]/(xn −1).Jika g(x) monic polinomial tak
kosong dengan derajat terkecil pada I maka g(x) adalah generator dari I dan g(x) membagi
habis (xn −1), serta tunggal.
Bukti.
Bagian pertama jelas dari teorema (1.3). Selanjutnya dengan algoritma pembagi
xn
−1 = s(x).g(x)+r(x)
jelas degr(x) < degg(x)⇔ r(x) = (xn −1)−s(x).g(x) karena (xn −1) = 0 dan s(x).g(x) ∈ I,
jelas r(x) ∈ I, dan deg(r(x)),deg(g(x)). Dan karena g(x) derajat terkecil pada I maka r(x) = 0.
Oleh sebab itu g(x) pembagi dari xn −1. Dengan kata lain g(x)|xn −1
Diberikan gi(x), i=1,2. yaitu dua monic generator berbeda dengan derajat terkecil dari ideal I.
Maka
g1(x)−g2(x)
adalah monic polinomial tak kosong dengan derajat terkecil di I.(Kontradiksi) Dengan kata
lain g(x) monic generator tunggal.
Definisi 6.2.3. Monic polinomial tunggal dengan derajat lebih kecil dari ideal I tak nol atas
Fq[x]/(xn − 1) disebut generator polinomial untuk I. Dan untuk cyclic code C, generator
polinomial dari π(C) disebut generator polinomial dari C.
Teorema 6.2.4. Setiap pembagi monic dari xn −1 adalah polinomial generator dari beberapa
cyclic code di Fn
q .
36 BAB 6. CYCLIC CODES
Bukti. Diberikan g(x) yang membagi habis xn − 1 dan I ideal yang dibangun oleh g(x)
yaitu < g(x) > atas Fq[x]/(xn −1). Diberikan C cyclic code yang berkorespondensi dengan
I =< g(x) >. Katakan h(x) adalah generator polinomial dari C, maka terdapat polinomial
b(x), sementara h(x) harus di dalam I sehingga,
h(x) ≡ g(x)b(x)mod(xn
−1)
Jadi g(x) membagi habis h(x), padahal h(x) berderajat lebih kecial dan monic. Sehingga
g(x) = h(x).
Akibat 6.2.5. Terdapat korespondesi 1-1 antara cyclic code di Fn
q dan pembagi monic dari
xn −1 ∈ Fq(x)
Teorema 6.2.6. Jika g(x) merupakan generator dari suatu ideal di ring Fq[x]/(xn −1) dengan
deg(g(x)) = n−k maka cyclic code yang ber-sesuaian dengan g(x) memiliki dimensi k
Bukti. Diambil sebarang g(x) dari suatu ideal di Fq[x]/(xn − 1) dengan deg(g(x)) = n − k.
Dibentuk himpunan
A = {g(x)c(x)|c(x) ∈ Fq[x]/(xn
−1),deg(c(x)) ≤ k −1}
Perhatikan bahwa untuk setiap c1(x) = c1(x) yang memiliki deg(ci(x)) ≤ k−1(i = 1,2) tidak
berlaku g(x)c1(x) ≡ g(x)c2(x) (mod(xn −1)) sehingga A memiliki qk elemen.
Akan dibuktikan A =< g(x) >, jelas bahwa A ⊂< g(x) >. Selanjutnya, perhatikan bahwa
untuk setiap g(x)a(x) dengan a(x) ∈ Fq[x]/(xn − 1) menurut algoritma pembagian dapat
dituliskan sebagai,
p(x) = g(x)a(x) = u(x)(xn
−1)+v(x)
⇔ v(x) = a(x)g(x)−u(x)(xn
−1)
(6.4)
dengan deg(v(x)) < n. Karena (xn −1) membagi g(x), maka v(x) dapat dituliskan sebagai
v(x) = g(x)b(x), untuksuatu polinomial b(x)
mengakibatkankan deg(b(x) < k. Artinya v(x) ∈ A. Dari sini terbukti A =< g(x) >, sehingga
dimensi dari kode yang bersesuaian dengan g(x) ada sebanyak k.
6.3 Generator dan Matriks Parity-Check
Pada subbab ini akan diidentifikasi generator matrik sekaligus matrik parity-check dari cyclic
code beserta contoh-contoh penerapannya.
Teorema 6.3.1. (Genarator Matrik cylcic codes) Diberikan g(x) = g0 +g1x+...+gn−kxn−k
adalah generator polinomial dari cyclic code C di Fn
q dengan deg(g(x)) = n−k. Matriks
G =








g(x)
xg(x)
.
.
.
xk−1g(x)








=








g0 g1 . . . gn−k 0 0 0 . . 0
0 g0 g1 . . . gn−k 0 0 . . 0
. .
. .
. .
0 0 . . . g0 g1 . . . . gn−k








merupakan generator matrik dari C.
6.3. GENERATOR DAN MATRIKS PARITY-CHECK 37
Bukti.
Cukup dibuktikan bahwa g(x),xg(x),...,xk−1g(x) basis dariC. Jelas bahwa g(x),xg(x),...,xk−1g(x)
bebas linear atas Fq. Berdasarkan teorema (2.6) sebelumnya diperoleh dim(C) = k.
Dengan demikian g(x),xg(x),...,xk−1g(x) merupakan basis dari C.
Contoh 6.3.2. Diberikan binary [7,4] cyclic code dengan generator polynomial g(x) = 1+
x2 +x3. Didapat generator matriknya sebagai berikut :
G =




g(x)
xg(x)
x2g(x)
x3g(x)



 =




1 0 1 1 0 0 0
0 1 0 1 1 0 0
0 0 1 0 1 1 0
0 0 0 1 0 1 1




Generator matrik tersebut bukan dalam bentuk standart. Jika dengan melaku kan operasi baris
elementer akan didapat generator matrik dalam bentuk standar. jika baris ke 4 ditambahkan
ke baris 2 dan baris ke 4 ditambahkan baris 1 didapat :
G =




1 0 1 0 0 1 1
0 1 0 0 1 1 1
0 0 1 0 1 1 0
0 0 0 1 0 1 1




Kemudian baris ke 3 ditambahkan ke baris 1 didapat generator matrik standar sebagai berikut
:
G =




1 0 0 0 1 0 1
0 1 0 0 1 1 1
0 0 1 0 1 1 0
0 0 0 1 0 1 1




kemudian parity check matrik dapat dicari dengan mudah dari G’.
Berdasarkan contoh diatas didapat bahwa parity-check matrik dari cyclic code dapat diperoleh
dari generator matriknya dengan melakukan operasi baris elementer. Karena dual code dari
cyclic code C juga merupakan cyclic code maka dapat diperoleh parity-check matrik dari
generator polinomial dari dual code. Selanjutnya akan dibahas cara mendapatkan generator
polynomial dari dual code C⊥.
Definisi 6.3.3. Diberikan h(x) = ∑k
i=0 aixi merupakan polynomial dengan degree k(ak = 0)
atas Fq. Didefinisikan reciprocal polynomial hR dari h(x) dengan
hR(x) := xh
(1/x) =
k
∑
i=0
ak−ixi
Dari sini diperoleh jika h(x) pembagi dari xn −1 maka hR(x) juga pembagi dari xn −1
Contoh 6.3.4. 1. Diberikan polynomial h(x) = 1+2x+3x5 +x7 ∈ F5[x] didapat reciprocal
polinomial dari h(x) adalah
hR(x) = x7
h(1/x) = x7
(1+2(1/x)+3(1/x)5
+(1/x)7
) = 1+3x2
+2x6
+x7
38 BAB 6. CYCLIC CODES
2. h(x) = 1+x+x3 ∈ F2 pembagi dari x7 −1. Akibatnya
hR(x) = X3
h(1/x) = x3
(1+1/x+1/x3
) = 1+x2
+x3
merupakan pembagi dari x7 −1
Teorema 6.3.5. Diberikan g(x) generator polynomial dari q-ary [n,k]-cyclic code C. Diambil
h(x) = (xn −1)/g(x) maka h−1
0 hR(x) merupakan generator polinomial dari C⊥ dengan h0
merupakan bentuk konstan dari h(x)
Bukti.
Diberikan g(x) = ∑n−1
i=0 dan h(x) = ∑n−1
i=0 hixi maka didapat
hR(x) = (1/xn−k−1
n−1
∑
i=0
hn−i−1xi
dengan k = deg(h(x))
Perhatikan bahwa,
0 ≡ g(x)h(x)
≡ (g0h0 +g1hn−1 +...+gn−1h1)+(g0h1 +g1h0 +...+gn−1h2)x
+(g0h2 +g1h1 +...+gn−1h3)x2
+...
+(g0hn−1 +g1hn−2 +...+gn−1h0)xn−1
)(modxn−1
)
(6.5)
Koefisien dari setiap x pada baris terakhir harus 0. Hal ini mengakibatkan gi.(hn−1,hn−2,...,h1,h0) =
0 untuk setiap i = 0,1,...,n−1 dengan gi adalah vektor yang diperoleh dari (g0,g1,...,gn−1)
yang digeser secara siklik sejauh i posisi.
Oleh karena itu, (hn−1,hn−2,...,h1,h0) adalah codeword dari C⊥ sebab (g0,g1,
...,gn−1) membangun C dari teorema (3.1).
Vektor (hn−1,hn−2,...,h1,h0) digeser secara siklik sejauh k+1 posisi sehingga vektor tersebut
berkorespondensi ke hR(x). Dengan kata lain hR(x) adalah codeword dari C⊥ yang juga meru-
pakan cyclic code. Karena deg(hR(x)) = deg(h(x)) = k, himpunan hR(x),xhR(x),...,xn−k−1hR(x)
merupakan basis dari C⊥. Oleh karena itu C⊥ dibangun oleh hR(x). Kemudian monic polyno-
mial h−1
0 hR(x) adalah generator polinomial dari C⊥.
Definisi 6.3.6. Diberikan C merupakan q-ary cyclic code dengan panjang n. Diberikan
h(x) = (xn −1)/g(x). Kemudian, h−1
0 hR(x) disebut parity-check polynomial dari C dengan
h0 merupakan bentuk konstan dari h(x).
Akibat 6.3.7. (Matrik Parity-check Cyclic Codes) Diberikan C sebuah q-ary[n,k] cyclic co-
de dengan generator polynomial g(x). Diberikan h(x) = (xn − 1)/g(x). Diberikan h(x) =
h0 +h1x+...+hkxk. Matrik
H =








hR(x)
xhR(x)
.
.
.
xn−k−1hR(x)








=








hk hk−1 . . . h0 0 0 0 . . 0
0 hk hk−1 . . . h0 0 0 . . 0
. .
. .
. .
0 0 . . . hk hk−1 . . . . h0








merupakan parity-chech matrix dari C.
6.4. DECODING 39
Contoh 6.3.8. Diberikan C merupakan binary [7,4] cyclic code yang dibangun oleh g(x) =
1+x2 +x3. Diambil h(x) = (x7 −1)/g(x) = 1+x2 +x3 +x4. Didapat hR(x) = 1+x+x2 +x4
yang merupakan parity-check polinomial dari C. Oleh karena itu
H =


1 1 1 0 1 0 0
0 1 1 1 0 1 0
0 0 1 1 1 0 1


merupakan parity-check dari C.
6.4 Decoding
Decoding cyclic code terdiri dari 3 langkah yang sama dengan decoding linear code yakni:
menghitung syndrome, tentukan error pattern yang berkorespondensi dengan syndrome,
perbaiki error.
Dari akibat sebelumnya untuk cyclic code, kita dapat menghasilkan matrik parity-check dalam
bentuk
H = (In−k|A)
dengan operasi baris elementer.
Teorema 6.4.1. Diberikan H = (In−k|A) adalah matrik parity check dari q-ary cyclic code C.
Bila g(x) adalah polinomial generator C, maka syndrome dari xεFn
q adalah sama dengan
w(x)mod(g(x)).
note: w = (w0w1w2...wn−1) maka w(x) = w0 +w1x+w2x2 +...+wn−1xn−1
Bukti. Untuk tiap-tiap kolom matrik A kita asosiasikan dengan polinomial derajat paling
besar n−k −1 dan tulis A sebagai
A = (a0(x)a1(x)a2(x)....ak−1(x))
dari sebelumnya kita ketahui bahwa G = (−AT |Ik) adalah matrik generator untuk C. Oleh
karena itu xn−k+i − ai(x) adalah codeword dari C. Ambil xn−k+i − ai(x) = qi(x)g(x) untuk
suatu qi(x)ε Fq[x]/xn −1
ai(x) = xn−k+i
−qi(x)g(x)
misalkan w(x) = w0 +w1x+w2x2 +...+wn−1xn−1.Untuk syndrome s = wHT dari w,korespondensi
polinomial s(x) adalah
s(x) = w0 +w1x+w2x2
+...+wn−k−1xn−k−1
+wn−ka0(x)+...wn−1ak−1(x)
=
n−k−1
∑
i=0
wixi
−
k−1
∑
j=0
wn−k+j(xn−k+j
−qj(x)g(x))
=
n−1
∑
i=0
wixi
− (
k−1
∑
j=0
wn−k+jqj(x))g(x)
≡ w(x)(modg(x))
(6.6)
Dimana polinomial s(x) memiliki derajat paling besar n−k −1, dan s(x) adalah sisa pemba-
gian w(x) oleh g(x).
40 BAB 6. CYCLIC CODES
Akibat 6.4.2. Diberikan g(x) adalah polinomial generator cyclic code C. Untuk code w(x)
yang diterima, jika sisa pembagian s(x) dari w(x) oleh g(x) memiliki weight kurang dari atau
sama dengan (d(C)−1)/2 , maka s(x) adalah error pattern dari w(x); dengan kata lain
w(x) di decode(perbaiki) menjadi w(x)−s(x)
Bukti. Dari theorema sebelumnya kita peroleh bahwa w(x) dan s(x) ada di dalam satu koset.
Kemudian karena w(x) ≤ (d(C)−1)/2 maka s(x) adalah koset leader(tunggal) maka w(x)
akan diperbaiki(decode) menjadi w(x)−s(x).
Lemma 6.4.3. Diberikan C adalah q-ary [n,k]-cyclic code dengan polinomial generator g(x).
Jika s(x) = ∑n−k−1
i=0 sixi adalah syndrome dari w(x), maka syndrome dari cyclic shift xw(x)
adalah sama dengan xs(x)−sn−k−1g(x)
Bukti.
Dari theorema sebelumnya, dapat kita tunjukkan bahwa
xs(x)−sn−k−1g(x)
adalah sisa pembagian dari xw(x) oleh g(x). Diketahui w(x) = q(x)g(x)+s(x), maka
xw(x) = xq(x)g(x)+xs(x) = (xq(x)+sn−k−1)g(x)+(xs(x)−sn−k−1g(x))
jelas bahwa deg(xs(x)−sn−k−1g(x)) < n−k = deg(g(x)), dengan kata lain xs(x)−sn−k−1g(x)
adalah syndrome dari xw(x).
Secara induksi kita dapat menghitung syndrome dari xw(x),x2w(x),x3w(x),.....
Definisi 6.4.4. Cyclic run of 0 dengan panjang l dari n-tuple adalah rangkaian cyclic l
berurutan komponen 0
Contoh 6.4.5. 1. e=(1,3,0,0,0,0,0,1,0) memiliki cyclic run of 0 panjang 5
2. e=(0,0,1,2,0,0,0,1,0,0) memiliki cyclic run 0f 0 panjang 4
6.4.1 Algoritma Decoding Cyclic Codes
Diberikan C adalah q-ary [n,k,d]-cyclic code dengan polinomial generator g(x). Jika w(x)
diterima dengan error pattern e(x), dimana e(x) ≤ (d(C)−1)/2 dan e(x) memiliki cyclic
runs of 0 sepanjang tidak lebih besar dari k. Langkah untuk menentukan e(x):
1. Hitung syndrome dari xiw(x), untuk i = 1,2,... dan notasikan syndrome sebagai
si(x)(xiw(x)mod(g(x)))
2. Temukan m sedemikian weight dari syndrome sm(x) untuk xmw(x) kurang dari atau
sama dengan (d(C)−1)/2 .
3. Hitung sisa pembagian e(x) dari xn−msm(x) dibagi oleh xn −1. perbaiki w(x) menjadi
w(x)−e(x).
6.5. BURST ERROR CORRECTING CODES 41
6.5 Burst Error Correcting Codes
Sejauh ini kita hanya berkosentrasi pada code yang dapat mengkoreksi random error. Padahal
pada beberapa jaringan komunikasi seperti saluran telepon dan sistem penyimpanan magnetik,
gangguan terjadi dalam waktu yang sangat singkat. Sehingga error yang diterima lebih bersifat
localize error dibandingan random error. error yang bersifat localize itulah nantinya yang kita
namakan burst error.
Secara umum, code yang digunakan untuk mengkoreksi random error tidak efektif untuk
mengkoreksi burst error. Tetapi kita dapat mengkontruksi code yang lebih spesifik untuk
mengkoreksi burst error, code jenis ini nantinya dinamakan burst error correcting codes dan
cyclic codes sangat efisien untuk mengkoreksi burst errors.
Definisi 6.5.1. Burst dengan panjang l adalah vektor biner yang komponen-komponen tak
nol nya memuat barisan siklik dengan panjang l,dimana komponen pertama dan komponen
terakhir barisan siklik tersebut tidak bernilai nol.
Contoh 6.5.2. 1. e1 = (01010110000) burst dengan panjang 6 di V11(Z2)
2. e2 = (00000010001) burst dengan panjang 5 di V11(Z2)
3. e3 = (01000000100) burst dengan panjang 5 di V11(Z2)
Teorema 6.5.3. Linear code C adalah sebuah l-burst-error-correcting code jika dan hanya
jika seluruh burst error dengan panjang l atau kurang berada di koset yang berbeda dari C.
Bukti. Andaikan dua burst error berbeda b1 dan b2 dengan panjang l atau kurang berada di
koset yang sama dari C, maka c = b1 −b2 adalah codeword yang tak nol. Sehingga jika b1
diterima, maka b1 dapat disandikan ke 0 dengan error b1 dan dapat disandikan ke c dengan
error b2. Jadi linear code C bukan l-burst-error-correcting code, kontradiksi dengan yang
diketahui. Pengandaian salah, harus diingkar. Yang benar seluruh burst error dengan panjang
l atau kurang harus berada di koset yang berbeda dari C.
Akibat 6.5.4. Katakan C =[n,k] linear l-burst-error-correcting code, maka
1. tidak ada burst tak nol dengan panjang ≤ 2l yang dapat menjadi codeword.
2. n−k ≥ 2l.
Bukti.
1. katakan terdapat codeword c dengan panjang burst ≤ 2l. Tanpa mengurangi keumuman,
c dapat berbentuk (0,1,u,v,1,0), dengan u dan v masing-masing vektor dengan panjang
≤ l.Dipilih w = (0,1,u,0,0,0) burst dengan panjang ≤ l,
maka,
x = (0,0,0,v,1,0) = c−w
juga burst dengan panjang ≤ l. Sehingga c,w dan x = c−w berada pada koset yang
sama dari C. Didapat w dan x dua burst tak nol dengan panjang ≤ l berada pada koset
yang sama, kontradiksi dengan teorema, sehingga terbukti tidak ada burst tak nol dengan
panjang ≤ 2l yang dapat menjadi codeword.
42 BAB 6. CYCLIC CODES
2. Katakan u1,u2,...un−k+1 adalah n−k+1 vektor kolom pertama dari parity check matrik
C, maka ui,i = 1,2,...,n−k +1 ada di Fn−k
2 dan oleh karena itu vektor-vektor tersebut
tidak bebas linear. Berarti terdapat c1,c2,...cn−k+1 ∈ F2 dengan tak semuanya nol dan
berlaku
n−k+1
∑
i=1
ciui = 0
akibatnya (c1,c2,...cn−k+1) adalah codeword sekaligus burst dengan panjang ≤ n−k +
1.
Dari teorema, syarat burst merupakan codeword adalah panjangnya harus lebih dari 2l.
Jadi haruslah n-k+1¿2l, yang berarti n-k≥2l.
Dari sini kita dapat menyimpulkan bahwa [n,k] linear l-burst-error-correcting code jika
dan hanya jika l≤ n−k
2
6.5.1 Algoritma Decoding Burst-error-code
Katakan C adalah l-burst-error-correcting code dengan generator polynomialnya adalah g(x)
dan r(x) dan juga merupakan vektor yang diterima. untuk mencari error dan codeword yang
dikirim, maka dilakukan langkah sebagai berikut:
(1) hitung s0(x) dengan menggunakan algoritma pembagian
(r(x) = a(x)g(x)+s0(x))
(2) i=0
(3) hitung si(x)(modg(x)), dengan si(x) = xis0(x)
(4) hitung syndrome dari si(x)
(5) jika si(x) adalah burst dengan panjang ≥l, maka berhenti dan error didapat, yaitu e(x) =
xn−i(si,0)
jika si(x) adalah burst dengan panjang ¿l,maka i=i+1
(6) Jika i=n,berhenti, error tidak didapat
jika i¡n, kembali ke (3)
Dengan algoritma ini, akan didapat error yaitu e(x), dengan ini maka r(x) yang diterima akan
dapat dikoreksi ke r = r(x)−e(x).
Contoh 6.5.5. g(x) = 1+x4 +x6 +x7 +x8 adalah pembangun dari (15,7)−cycliccode atas
z2 dan diterima vektor r = (110011101100010), akan dicari codeword yang dikirim.
Jawab:
l≤ n−k
2 = 15−7
2 = 4 didapat C adalah 4-burst-error-correcting.
6.5. BURST ERROR CORRECTING CODES 43
untuk r = (110011101100010)
diperoleh
r(x) = 1+x+x4
+x5
+x6
+x8
+x9
+x13
= (x+x2
+x4
+x5
)g(x)+(1+x2
+x5
+x7
)
sehingga
s0(x) = (1+x2
+x5
+x7
)
(6.7)
i=0 s0(x) = 1+x2 +x5 +x7
syndrome s0(x) = (10100101)
i=1 s1(x) = x+x3 +x6 +x8(modg(x))
s1(x) = 1+x+x3 +x4 +x7
syndrome s1(x) = (11011001)
i=2 s2(x) = x+x2 +x4 +x5 +x8(modg(x))
s2(x) = 1+x+x2 +x5 +x6 +x7
syndrome s2(x) = (11100111)
i=3 s3(x) = x+x2 +x3 +x6 +x7 +x8(modg(x))
s3(x) = 1+x+x2 +x3 +x4
syndrome s3(x) = (11111000)
i=4 s4(x) = x+x2 +x3 +x4 +x5
syndrome s4(x) = (01111100)
i=5 s5(x) = x2 +x3 +x4 +x5 +x6
syndrome s5(x) = (00111110)
i=6 s6(x) = x3 +x4 +x5 +x6 +x7
syndrome s6(x) = (00011111)
i=7 s7(x) = x4 +x5 +x6 +x7 +x8(modg(x))
s7(x) = 1+x5
syndrome s7(x) = (10000100)
44 BAB 6. CYCLIC CODES
didapat l = 4 untuk syndrome s7(x), sehingga
e(x) = xn−i
(s7,0)
e(x) = x15−7
(s7,0)
e(x) = x8
(s7,0)
e(x) = x8
(100001000000000)
maka,e = (000000001000010)
sehinggarkitakodekanke
r −e = (110011101100010)−(000000001000010)
r −e = (110011100100000)
(6.8)
Bab 7
BCH Code
7.1 Pendahuluan
Pada bagian ini akan dijelaskan beberapa hal yang mendasar seperti lapangan hingga(finite
field), gelanggang suku banyak(ring polynomial), suku banyak minimal(minimal polynomial),
dan cyclotomic coset.
7.1.1 Finite Field
Field dengan | F |< ∞ disebut lapangan hingga(finite field) dan F∗ sebagai himpunan F{0}.
Teorema 7.1.1. Zn adalah lapangan hingga jika hanya jika n bilangan prima.
Definisi 7.1.2. Misalkan F lapangan. Karakteristik F adalah bilangan bulat positif terkecil
m dengan demikian bahwa
m
∑
i=1
1 = 1+1+...+1 = 0
dimana 1 ∈ F. Jika m tidak ada maka karakteristiknya 0.
Dibawah ini akan diberikan definisi dari elemen primitif. Selanjutnya yang dimaksud
dengan GF(q) adalah Galois Field atau Lapangan Galois dengan q elemen.
Catatan bahwa q harus mempunyai bentuk pn dengan p dan n bilangan prima. Sedangkan
lapangan Zp secara sama didefinisikan sebagai GF(p).
Lemma 7.1.3. Jika α,β ∈ F mempunyai karakteristik p, maka
(α +β)p
= αp
+β p
Definisi 7.1.4. Anggota α ∈ F lapangan hingga dikatakan generator F∗ atau elemen primitif
jika
{αi
: i ≥ 0} = F∗
Lemma 7.1.5. Untuk setiap anggota tak nol α ∈ GF(q),αq−1 = 1. Selanjutnya, α ∈ GF(qm)
jika hanya jika αq = α.
Contoh 7.1.6. Diberikan GF(9) yang dikontruksikan menggunakan polynomial yang irredu-
cible f(x) = x2 +1 ∈ Z3[x]. Carilah elemen primitif. Kita akan mencoba bahwa α = x+1
merupakan elemen primitif maka
45
46 BAB 7. BCH CODE
(1+x)0 = 1 (1+x)4 = 2
(1+x)1 = 1+x (1+x)5 = 2+2x
(1+x)2 = 2x (1+x)6 = x
(1+x)3 = 1+2x (1+x)7 = 2+x
Jadi α = 1+x merupakan elemen primitif untuk GF(9)
7.1.2 Ring Polynomial
Definisi 7.1.7. Misalkan F merupakan lapangan. Himpunan
F[x] = {
n
∑
i=0
aixi
: ai ∈ F,n ≥ 0}
disebut sebagai ring polynomial atas F.
Teorema 7.1.8. Misalkan f(x) suku banyak atas F dengan derajat(degree) ≥ 1. Maka
F[x]/(f(x)) bersama dengan operasi penjumlahan dan perkalian berbentuk gelanggang.
Lebih jauh, F[x]/(f(x)) adalah lapangan jika dan hanya jika irreducible.
Lemma 7.1.9. Untuk setiap elemen β dari finite field F dengan q elemen, kita mempunyai
βq = β
7.1.3 Minimal Polynomial
Definisi 7.1.10. Misalkan F lapangan dengan karakteristik p dan misalkan α ∈ F∗. Suku
banyak minimal α terhadap GF(p) merupakan suku banyak monic m(x) derajat terkecil di
GF(p)[x] dengan demikian m(α) = 0.
Teorema 7.1.11. Suku banyak minimal anggota α tunggal.
Bukti.
Andaikan F = GF(q) dan F mempunyai karakteristik p. Mengikuti Lemma 7.1.5 bahwa α
memenuhi suku banyak xq−1 −1 ∈ GF(p)[x]. Ketika terdapat suatu suku banyak GF(p)[x]
dengan α akarnya maka ada salah satu dari akarnya dengan derajat terkecil. Ini mengatakan
bahwa ada suku banyak minimal yaitu m(x). Andaikan ada dua suku banyak monic m1(x)
dan m2(x) dengan derajat terkecil mempunyai akar α. Dengan menggunakan algoritma
pembagian suku banyak didapat
m1(x) = l(x)m2(x)+r(x)
dimana deg r(x) < deg m2(x) atau r(x) = 0
Ketika m1(α) = 0 dan m2(α) = 0, kita mempunyai r(α) = 0, tetapi karena m2(x) mempu-
nyai derajat terkecil maka r(x) = 0, sehingga m2(x) membagi m1(x). Dengan cara yang
sama, m1(x) membagi m2(x) dan ketika keduanya merupakan suku banyak monic, maka
m1(x) = m2(x) sehingga terbukti α tunggal.
Teorema 7.1.12. Untuk α ∈ F∗, suku banyak minimal α, maka m(α)(x) adalah suku banyak
yang irreducible.
7.1. PENDAHULUAN 47
Definisi 7.1.13. Untuk α ∈ F, misalkan t bilangan bulat positif terkecil dengan demikian
αpt
= α, maka himpunan konjugat dari α(terhadap GF(p)) adalah
C(α) = {α,αp
,αp2
,αp3
,...,αpt−1
}
C(α) = C(αpi
),∀i ∈ F lapangan dengan karakteristik p
Lemma 7.1.14. Misalkan F lapangan hingga dengan karakteristik p, misalkan α ∈ F∗, dan
C(α) himpunan konjugat α terhadap GF(q), maka
m(x) = ∏
β∈C(α)
(x−β)
Bukti.
Misalkan m(x) = ∑t
i=0 mixi dengan koefisien mi ∈ F, kita catatan bahwa
m(x)p = ∏β∈C(α)(xβ )p = ∏β∈C(α)(xp −βp)
= ∏β∈C(α)(xp −β) = m(xp)
= ∑t
i=1 xip
Dengan mengikuti Lemma 7.1.3 didapat bahwa
{β : β ∈ C(α)} = {β p
: β ∈ C(α)}
Dilain pihak, kita dapatkan bahwa
m(x)p
=
t
∑
i=1
(mixi
)p
=
t
∑
i=1
mp
i xip
Jadi, mi = mp
i dan dengan menggunakan Lemma 7.1.5 sehingga terbukti bahwa mi ∈ GF(p),0 ≤
i ≤ t.
Teorema 7.1.15. Untuk α ∈ F, suku banyak minimal α diberikan oleh
mα(x) = ∏
β∈C(α)
(x−β)
Contoh 7.1.16. Kontruksikan lapangan F = GF(23). Hal pertama yang diperlukan adalah
suku banyak pangkat tiga atas Z2. Misalkan kita mengambil f(x) = x3 +x+1 dan anggota-
anggota F adalah
{0,1,x,x+1,x+x2
,x2
,1+x2
,1+x+x2
}.
Ketika x3 + x + 1 = 0 mod f(x), maka kita mempunyai x3 ≡ −x − 1 = x + 1(mod(f(x))),
dan 1 = −1 ∈ Z2. Selanjutnya kita tuliskan anggota lapangan dengan a0 +a1x+a2x2, maka
didapatkan
0 = (000) x2 = (001)
1 = (100) 1+x2 = (101)
x = (010) x+x2 = (011)
1+x = (110) 1+x+x2 = (111)
Jika kita mengambil α, maka dengan mudah kita dapatkan bahwa α merupakan generator F.
Andaikan kita mengambil β = (101) dan kita akan dicari mβ (x) dan dengan menggunakan
Teorema didapat
mβ (y) = ∏
δ∈C(β)
(y−β)(y−β2
)(y−β4
)
48 BAB 7. BCH CODE
dan ketika β8 = β dan kita akan menghitung
(y−β)(y−β2)(y−β3)= y3 +(β +β2 +β4)y2 +(ββ2 +ββ4 +β2β4)y+ββ2β4
Dengan menggunakan representasi setiap anggota tak nol sebagai akar dari generator α,
dengan mengambil α = x, kita dapatkan
α0 = (100) α4 = (011)
α1 = (010) α5 = (111)
α2 = (001) α6 = (101)
α3 = (110) α7 = (100)
Ketika β = α6, maka β2 = α12 = α5 = dan β4 = α24 = α3, diperoleh
β +β2 +β4 = α6 +α5 +α3
= (101)+(111)+(110)
= 100
ββ2 +ββ4 +β2β4 = β3 +β5 +β6
= α18 +α30 +α36
= α4 +α2 +α
= 0
ββ2β4 = β7
= α42
= 1
Jadi, didapat suku banyak minimal β2 dan β4 yaitu
mβ (y) = y3
+y2
+1
Sedangkan suku banyak minimal α juga merupakan suku banyak minimal α2 dan α4 yaitu
mα(y) = y3
+y+1
Darimana dapat dicari sendiri.
7.1.4 Cyclotomic Coset
Dibawah ini akan diberikan definisi dan contoh dari Cyclotomic coset.
Definisi 7.1.17. Diberikan q dan n bilangan bulat i,0 ≤ i ≤ n−1, cyclotomic coset (q modulo
n) memuat i didefinisikan oleh
Ci = {i,iq,iq2
,...,iqn−1
}
dimana anggota-anggota himpunan modulo n, dan s bilangan bulat terkecil dengan demikian
iqs ≡ i(modn). C = {Ci : 0 ≤ i ≤ n−1} disebut himpunan cyclotomic coset q modulo n
Untuk penjelasan lebih lanjut dapat dilihat di [?]
Contoh 7.1.18. Untuk n = 9 dan q = 2, didapat
C1 = [1,2,4,8,7,5] = C2 = C4 = C8 = C7 = C5
C3 = [3,6] = C6
C0 = [0]
Teorema 7.1.19. Misalkan f(x) = xn −1 suku banyak atas GF(q). Banyaknya faktor irredu-
cible dari f(x) adalah sama dengan banyak cyclotomic coset q modulo n.
7.1. PENDAHULUAN 49
7.1.5 BCH codes
Suku banyak monic g(x) ∈ GF(q)[x] dikatakan sebagai split didalam perluasan field GF(qm)
dari GF(q) jika g(x) bisa difaktorkan sebagai hasil kali suku banyak linear di GF(qm), kita
bisa menuliskannya ;
g(x) = (x−α1)(x−α2)...(x−αn)
dimana αi ∈ GF(qm) dan GF(qm) disebut sebagai splitting field dari g(x). Secara umum, da-
pat didefinisikan bahwa splitting field dari g(x) ∈ GF(qm) sebagai lapangan terkecil GF(qm),
dengan kata lain lapangan terkecil yang memuat semua akar -akar dari g(x). Splitting field
g(x) bisa didapatkan dari derajat faktor irreducible atas GF(q). Catatan bahwa g(x) boleh
irreducible atas GF(q), tetapi selalu faktor- faktornya sebagai hasil kali suku banyak linear
yang berbeda di splitting field. Untuk contoh, g(x) = x2 +x+1 adalah merupakan irreducible
atas GF(2) dan tidak mempunyai akar di GF(2), tetapi atas GF(4),
g(x) = (x+α)(x+α2
)
dan mempunyai akar-akarnya adalah α dan α2, dimana GF(4) = {0,1,α,α2} dengan α2 +
α +1 = 0
Contoh 7.1.20. Diberikan suku banyak dibawah ini
g(x) = 1+x3
+x5
+x6
+x8
+x9
+x10
atas GF(2), dapat dicek bahwa g(x) tidak mempunyai akar di GF(2), ataupun GF(22),GF(23),
dan GF(24), tetapi menggunakan GF(25) didapat akar -akar α dari h(x) = 1+x2 +x5 yaitu
α,α3, dan anggota konjugatnya adalah
α,α2,α4,α8,α16 dan α3,α6,α12,α24,α17
adalah merupakan akar -akar dari g(x), dan semua akar dari g(x) di GF(25)
Contoh 7.1.21. Diberikan suku banyak dibawah ini :
g(x) = 2+2x+x4
+2x5
+x6
+x7
atas GF(3) dan hanya memiliki satu akar dengan yaitu 1, dan tidak ada akar dari persamaan
tersebut di GF(32), sedangkan dengan mengggunakan GF(33) didapat akar α dari h(x) =
1+2x2 +x3 yaitu;
1,α2
,α6
,α18
,α4
,α12
,α10
Akar -akar diatas merupakan akar α dari g(x).
7.1.6 BCH Codes
Kita akan mendefinisikan kelipatan persekutuan terkecil lcm(f(x), f(x)) suku banyak tak
nol f(x), f(x) ∈ Fq[x] menjadi suku banyak monic dengan derajat terkecil yang merupakan
perkalian dari f1(x) dan f2(x).
Definisi 7.1.22. Misalkan kita mempunyai sebanyak t suku banyak f1(x), f2(x),..., ft(x) ∈
F[x], maka kelipatan persekutuan terkecil dari f1(x), f2(x),..., ft(x) adalah suku banyak mo-
nic dengan derajat terkecil dan merupakan perkalian dari semua suku banyak f1(x), f2(x),..., ft(x).
Selanjutnya, dinotasikan sebagai lcm(f1(x), f2(x),..., ft(x)).
50 BAB 7. BCH CODE
Jika f1(x), f2(x),..., ft(x) ∈ Fq[x] dapat difaktorisasi menjadi
f1(x) = a1.p1(x)e1,1... pn(x)e1,n
f2(x) = a2.p1(x)e2,1... pn(x)e2,n
...
...
ft(x) = at.p1(x)et,1... pn(x)et,n
dimana pi(x) merupakan suku banyak monic yang irreducible atas Fq maka
lcm(f1(x), f2(x),..., ft(x)) = p1(x)max{e1,1,...,et,1}
...pn(x)max{e1,n,...,et,n}
Contoh 7.1.23. Diberikan polinomial biner,
f1(x) = (1+x)2(1+x+x4)3
f2(x) = (1+x)(1+x+x2)2
f3(x) = x2(1+x+x4)
sehingga, lcm(f1(x), f2(x), f3(x)) = x2(1+x)2(1+x+x2)2(1+x+x4)3
Lemma 7.1.24. Diberikan f1(x),f2(x),..., ft(x) suku banyak atas Fq. Jika f(x) habis dibagi
oleh semua suku banyak fi(x),∀i = 1,2,...,t maka f(x) habis dibagi oleh lcm(f1(x), f2(x),..., ft(x))
Bukti. Ambil g(x) = lcm(f1(x), f2(x),..., ft(x)). Menggunakan algoritma pembagian maka
ada dua suku banyak u(x) dan r(x) atas Fq dengan demikian deg(r(x)) < deg(g(x)) dan
f(x) = u(x)g(x)+r(x). Jadi, r(x) = f(x)−u(x)g(x), dan selanjutnya r(x) juga habis dibagi
oleh semua fi(x). Ketika g(x) mempunyai derajat terkecil,dengan jelas bahwa r(x) = 0.
Contoh 7.1.25. Suku banyak f(x) = x15 −1 ∈ F2[x] habis dibagi oleh f1(x) = 1+x+x2 ∈
F2[x], f2(x) = 1 + x + x4 ∈ F2[x], dan f3(x) = (1 + x + x2)(1 + x3 + x4) ∈ F2[x]. Maka f(x)
habis dibagi oleh lcm(f1(x), f2(x), f3(x)) = (1+x+x2)(1+x+x4)(1+x3 +x4).
Dibawah ini akan dijelaskan tentang definisi BCH Codes.
Definisi 7.1.26. Misalkan α elemen primitif dari Fqm dan dinotasikan oleh Mi(x) merupakan
polynomial minimal dari αi terhadap Fq. Sebuah primitif BCH code atas Fq dengan pan-
jang n = qm −1 didesain dengan distance δ adalah q-ary cyclic code yang dibangun oleh
g(x) :=lcm(M(a)(x),M(a+1)(x),...,M(a+δ−2)(x)) untuk suatu bilangan bulat a. Lebih jauh,
code ini disebut sebagai narrow sense jika a = 1.
Contoh 7.1.27. Misalkan α elemen primitif dari F2m, maka narrow sense binary BCH code
didesain dengan distance 2 adalah cyclic code yang dibangun oleh M(1)(x).
Contoh 7.1.28. Misalkan α ∈ F8 akar -akar dari 1+x+x3 merupakan elemen primitif dari
F8. Polynomial M(1)(x) dan M(2)(x) keduanya sama dengan 1+x+x3. Selanjutnya, narrow
sense binary BCH code dengan panjang 7 dibangun oleh lcm(M(1)(x),M(2)(x)) = 1+x+x3
adalah [7,4]−code. Dengan fakta bahwa [7,4,3]−Hamming code.
Contoh 7.1.29. Misalkan β merupakan akar dari 1+x+x2 ∈ F2[x], maka F4 = F2[β]. Mi-
salkan α menjadi akar dari β +x+x2 ∈ F4[x]. Maka α elemen primitif dari F16. Diberikan
narrow-sense 4−ary BCH code dengan panjang 15 didesain dengan distance 4, maka generator
polynomialnya adalah
g(x) = lcm(M(1)
(x),M(2)
(x),M(3)
(x)) = 1+βx+βx2
+x3
+x4
+β2
x5
+x6
.
7.1. PENDAHULUAN 51
7.1.7 Parameter dari BCH Codes
Diketahui bahwa panjang dari BCH code adalah qm −1. Selanjutnya akan dicari dimensi dari
BCH code terlebih dahulu.
Teorema 7.1.30. Diketahui panjang dari BCH code adalah qm −1.
(i) Dimensi dari q−ary BCH code dengan panjang qm −1 yang dibangun oleh
g(x) := lcm(M(α)
(x),M(α+1)
(x),...,M(α+δ−2)
(x)
tidak tergantung dari pemilihan elemen primitif α
(ii) q−ary BCH code dengan panjang qm −1 yang didesain dengan distance δ memiliki
dimensi setidaknya qm −1−m(δ −1)
Akan diberikan contoh dari Teorema 7.1.30 di atas dan dapat dilihat dibawah ini.
Contoh 7.1.31. (i) Diberikan cyclotomic cosets 2 modulo 15 dibawah ini :
C2 = {1,2,4,8} C3 = {3,6,12,9}.
Maka dimensi dari binary BCH Codes dengan panjang 15 dan didesign dengan distance
3 yang dibangun oleh g(x) :=lcm(M(2),M(3)(x)) adalah
15− | C2 ∪C3 |= 15−8 = 7
(ii) Cyclotomic cosets dari 3 modulo 26 yaitu,
C1 = C3 = {1,3,9}
C2 = {2,6,18}
C4 = {4,10,12}
Kemudian dimensi dari ternary BCH codes dengan panjang 26 dan didesain dengan
distance 5 yang dibangun oleh g(x) := lcm(M(1)(x),M(2)(x),M(3)(x),M(4)(x)) adalah
26−|C1 ∪C2 ∪C3 ∪C4| = 26−9 = 17
Proposisi 7.1.32. Narrow-sense q-ary BCH code dengan panjang qm −1 dan didesain dengan
distance δ mempunyai dimensi qm −1−m(δ −1) jika q = 2 dan gcd(qm −1,e) = 1 untuk
semua 1 ≤ e ≤ δ −1.
Proposisi 7.1.33. Narrow sense binary BCH code dengan panjang n = 2m −1 dan didesain
dengan distance δ = 2t +1 mempunyai dimensi sedikitnya n−m(δ −1)/2.
Bukti.
Sebagaimana cyclotomic cosets Ci dan C2i adalah sama, maka dimensi k memenuhi
k = 2m
−1− |
2t
i=1
Ci |
= 2m
−1− |
t
i=1
C2i−1 |
≤ 2m
−1−
t
∑
i=t
| C2i−1 |
≤ 2m
−1−tm
= 2m
−1−m(δ −1)/2
52 BAB 7. BCH CODE
Contoh 7.1.34. Narrow sense binary BCH code dengan panjang 63 didesain dengan distance
δ = 5 mempunyai dimensi 51 = 63−6(5−1)/2. Bagiamanapun, narrow sense binary BCH
code dengan panjang 31 didesain dengan distance δ = 11 mempunyai dimensi 11 yang lebih
besar daripada 31−5(11−2)/2.
Selanjutnya, kita akan mempelajari minimum distance BCH codes.
Lemma 7.1.35. Misalkan C q-ary cyclic code dengan panjang n dan generator polynomial
g(x). Andaikan α1,...,αr akar -akar dari g(x) dan polynomial g(x) tidak mempunyai akar
ganda. Maka elemen c(x) ∈ Fq[x]/(xn − 1) adalah codeword C jika hanya jika c(αi) = 0,
untuk setiap i = 1,...,r.
Bukti. Jika c(x) codeword C, maka ada polynomial f(x) dengan demikian c(x) = g(x)f(x).
Jadi kita mempunyai c(αi) = g(αi)f(αi) = 0 untuk semua i = 1,...,r. Secara konvers, jika
c(αi) = 0 untuk i = 1,...,r maka c(x) habis dibagi oleh g(x) ketika g(x) tidak mempunyai
akar ganda. Ini mengartikan bahwa c(x) adalah codeword C.
Contoh 7.1.36. Diberikan binary [7,4]−Hamming code dengan generator polynomial g(x) =
1 + +x + x3. Semua elemen dari F8{0,1} adalah akar-akar c(x) = 1 + x + x2 + x3 + x4 +
x5 +x6 = (x7 −1)/(x−1), semua akar dari g(x) adalah akar-akar c(x). Jadi, 1111111 adalah
codeword.
Dibawah ini teorema yang akan menjelaskan tentang ’designed distance’
Teorema 7.1.37. BCH code didesain dengan distance(designed distance) δ mempunyai
minimum distance sedikitnya δ.
Bukti.
Misalkan α merupakan elemen primitif dari Fqm dan misalkan C adalah BCH code yang di-
bangun oleh g(x) :=lcm(M(a)(x),M(a+1)(x),...,M(a+δ−2)(x)). Dengan jelas bahwa elemen
αa,...,αa+δ−2 adalah akar-akarnya g(x).
Andaikan bahwa minimum distance d dari C lebih kecil daripada δ. Maka ada codeword
tak nol c(x) = c0 +c1x+···+cn−1xn−1 dengan demikian wt(c(x)) = d < δ. Menggunakan
Lemma 7.1.35, kita mempunyai c(αi) = 0 untuk semua i = a,...,a+δ −2;







1 αa (αa)2 ... (αa)n−1
1 αa+1 (αa+1)2 ... (αa+1)n−1
1 αa+2 (αa+2)2 ... (αa+2)n−1
...
...
... ...
...
1 αa+δ−2 (αa+δ−2)2 ... (αa+δ−2)n−1














c0
c1
c2
...
cn−1







= 0. (7.1)
Asumsikan bahwa c(x) adalah R = {i1,...,id},cj = 0 jika hanya jika j ∈ R. Maka persamaan
(7.1) menjadi







(αa)i1 (αa)i2 (αa)i3 ... (αa)id
(αa+1)i1 (αa+1)i2 (αa+1)i3 ... (αa+1)id
(αa+2)i1 (αa+2)i2 (αa+2)i3 ... (αa+2)id
...
...
...
...
...
(αa+δ−2)i1 (αa+δ−2)i2 (αa+δ−2)i3 ... (αa+δ−2)id














ci1
ci2
ci3
...
cid







= 0. (7.2)
7.1. PENDAHULUAN 53
Ketika d ≤ δ −1, kita mendapatkan sistem persamaan dibawah ini dengan memilih persamaan
d yang pertama sistem persamaan diatas sehingga didapatkan :







(αa)i1 (αa)i2 (αa)i3 ... (αa)id
(αa+1)i1 (αa+1)i2 (αa+1)i3 ... (αa+1)id
(αa+2)i1 (αa+2)i2 (αa+2)i3 ... (αa+2)id
...
...
... ...
...
(αa+d−1)i1 (αa+d−1)i2 (αa+d−1)i3 ... (αa+d−1)id














ci1
ci2
ci3
...
cid







= 0. (7.3)
Determinan D koefisien matriks persamaan diatas adalah sama dengan
D =
d
∏
j=1
(αa
)ij
det







1 1 1 ... 1
αi1 αi2 αi3 ... αid
(α2)i1 (α2)i2 (α2)i3 ... (α2)id
...
...
... ...
...
(αd−1)i1 (αd−1)i2 (αd−1)i3 ... (αd−1)id







(7.4)
=
d
∏
j=1
(αa
)ij
∏
k>l
(αik −αil ) = 0.
Dengan mengkombinasikan persamaan (7.3) dan (7.4), kita mendapatkan (ci1,...,cid
) = 0
sehingga kontradiksi. Jadi terbukti.
Contoh 7.1.38. Misalkan α akar dari 1+x+x3 ∈ F2[x], dan misalkan C binary BCH code
dengan panjang 7 didesain dengan distance 4 yang dibangun oleh
g(x) = lcm(M(0)
(x),M(1)
(x),M(2)
(x)) = 1+x2
+x3
+x4
Maka d(C) ≤ wt(g(x)) = 4. Disisi lain dengan menggunakan teorema 7.1.37 didapat d(C) ≥ 4.
Jadi, d(C) = 4.
7.1.8 Decoding BCH Codes
Pada bagian akan diberikan algoritma dalam decoding BCH code yang dibagi menjadi 3 yaitu
:
(i) Menghitung syndrome
(ii) Menemukan error locator polynomial
(iii) Menemukan semua akar dari error locator polynomial
Untuk menyederhanakannya, kita hanya akan mendiskusikan decoding narrow sense binary
BCH codes. Misalkan C narrow sense binary BCH codes dengan panjang n = 2m −1 dan
design distance δ = 2t +1 yang dibangun oleh g(x) := lcm(M(1)(x),M(2)(x),...,M(δ−1)(x)),
dimana M(i)(x) adalah polynomial minimal dari αi terhadap F2 untuk elemen primitif α ∈ F2m.
Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100
Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100
Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100
Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100
Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100
Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100
Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100
Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100
Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100
Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100
Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100
Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100
Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100
Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100

More Related Content

What's hot

Teorema multinomial dan prinsip sarang merpati
Teorema multinomial dan prinsip sarang merpatiTeorema multinomial dan prinsip sarang merpati
Teorema multinomial dan prinsip sarang merpatiArdika MathEdu
 
Ruang Hasil kali Dalam ( Aljabar Linear Elementer )
Ruang Hasil kali Dalam ( Aljabar Linear Elementer )Ruang Hasil kali Dalam ( Aljabar Linear Elementer )
Ruang Hasil kali Dalam ( Aljabar Linear Elementer )Kelinci Coklat
 
Pengantar metode numerik
Pengantar metode numerikPengantar metode numerik
Pengantar metode numerikputra_andy
 
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanCliquerz Javaneze
 
Aljabar matriks-its
Aljabar matriks-itsAljabar matriks-its
Aljabar matriks-itsMasnia Siti
 
Tugas Metode Numerik Golden ratio Pendidikan Matematika UMT
Tugas Metode Numerik Golden ratio Pendidikan Matematika UMTTugas Metode Numerik Golden ratio Pendidikan Matematika UMT
Tugas Metode Numerik Golden ratio Pendidikan Matematika UMTrukmono budi utomo
 
5 permutasi dan kombinasi
5 permutasi dan kombinasi5 permutasi dan kombinasi
5 permutasi dan kombinasiHeni Widayani
 
Teori bilangan
Teori bilanganTeori bilangan
Teori bilanganUjang Kbm
 
Bahan ajar alin 2 rev 2014 pdf
Bahan ajar alin 2 rev 2014 pdfBahan ajar alin 2 rev 2014 pdf
Bahan ajar alin 2 rev 2014 pdfPawit Ngafani
 
Modul 4 kongruensi linier
Modul 4   kongruensi linierModul 4   kongruensi linier
Modul 4 kongruensi linierAcika Karunila
 
Analisis bab1 bab2
Analisis bab1 bab2Analisis bab1 bab2
Analisis bab1 bab2Charro NieZz
 
Metode numerik [rifqi.ikhwanuddin.com]
Metode numerik [rifqi.ikhwanuddin.com]Metode numerik [rifqi.ikhwanuddin.com]
Metode numerik [rifqi.ikhwanuddin.com]Tri Jayanti
 
Matematika Diskrit - 07 teori bilangan - 03
Matematika Diskrit - 07 teori bilangan - 03Matematika Diskrit - 07 teori bilangan - 03
Matematika Diskrit - 07 teori bilangan - 03KuliahKita
 

What's hot (20)

Teorema multinomial dan prinsip sarang merpati
Teorema multinomial dan prinsip sarang merpatiTeorema multinomial dan prinsip sarang merpati
Teorema multinomial dan prinsip sarang merpati
 
Analisis real
Analisis realAnalisis real
Analisis real
 
Ruang Hasil kali Dalam ( Aljabar Linear Elementer )
Ruang Hasil kali Dalam ( Aljabar Linear Elementer )Ruang Hasil kali Dalam ( Aljabar Linear Elementer )
Ruang Hasil kali Dalam ( Aljabar Linear Elementer )
 
Pengantar metode numerik
Pengantar metode numerikPengantar metode numerik
Pengantar metode numerik
 
Bab 4 aljabar boolean
Bab 4 aljabar booleanBab 4 aljabar boolean
Bab 4 aljabar boolean
 
Struktur aljabar-2
Struktur aljabar-2Struktur aljabar-2
Struktur aljabar-2
 
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi boolean
 
Transformasi elementer
Transformasi elementerTransformasi elementer
Transformasi elementer
 
Aljabar matriks-its
Aljabar matriks-itsAljabar matriks-its
Aljabar matriks-its
 
Tugas Metode Numerik Golden ratio Pendidikan Matematika UMT
Tugas Metode Numerik Golden ratio Pendidikan Matematika UMTTugas Metode Numerik Golden ratio Pendidikan Matematika UMT
Tugas Metode Numerik Golden ratio Pendidikan Matematika UMT
 
Contoh ruang metrik
Contoh ruang metrikContoh ruang metrik
Contoh ruang metrik
 
5 permutasi dan kombinasi
5 permutasi dan kombinasi5 permutasi dan kombinasi
5 permutasi dan kombinasi
 
Teori bilangan
Teori bilanganTeori bilangan
Teori bilangan
 
Pembuktian dalam matematika
Pembuktian dalam matematikaPembuktian dalam matematika
Pembuktian dalam matematika
 
Teori bilangan
Teori bilanganTeori bilangan
Teori bilangan
 
Bahan ajar alin 2 rev 2014 pdf
Bahan ajar alin 2 rev 2014 pdfBahan ajar alin 2 rev 2014 pdf
Bahan ajar alin 2 rev 2014 pdf
 
Modul 4 kongruensi linier
Modul 4   kongruensi linierModul 4   kongruensi linier
Modul 4 kongruensi linier
 
Analisis bab1 bab2
Analisis bab1 bab2Analisis bab1 bab2
Analisis bab1 bab2
 
Metode numerik [rifqi.ikhwanuddin.com]
Metode numerik [rifqi.ikhwanuddin.com]Metode numerik [rifqi.ikhwanuddin.com]
Metode numerik [rifqi.ikhwanuddin.com]
 
Matematika Diskrit - 07 teori bilangan - 03
Matematika Diskrit - 07 teori bilangan - 03Matematika Diskrit - 07 teori bilangan - 03
Matematika Diskrit - 07 teori bilangan - 03
 

Similar to Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100

Buku Ajar Mikrokontroler dan Interface.pdf
Buku Ajar Mikrokontroler dan Interface.pdfBuku Ajar Mikrokontroler dan Interface.pdf
Buku Ajar Mikrokontroler dan Interface.pdfSiswantoSpd
 
Pengembangan Aplikasi Cloud Computing Menggunakan Node.js
Pengembangan Aplikasi Cloud Computing Menggunakan Node.jsPengembangan Aplikasi Cloud Computing Menggunakan Node.js
Pengembangan Aplikasi Cloud Computing Menggunakan Node.jsBambang Purnomosidi D. P.
 
Supriyanto s komputasi untuk sains dan teknik menggunakan matlab edisi 4 - ...
Supriyanto s   komputasi untuk sains dan teknik menggunakan matlab edisi 4 - ...Supriyanto s   komputasi untuk sains dan teknik menggunakan matlab edisi 4 - ...
Supriyanto s komputasi untuk sains dan teknik menggunakan matlab edisi 4 - ...Kira R. Yamato
 
LaTeX InDesign Crative Cloud
LaTeX InDesign Crative Cloud LaTeX InDesign Crative Cloud
LaTeX InDesign Crative Cloud Hirwanto Iwan
 
Membuat Dokumen LaTeX Eleventh Edition
Membuat Dokumen LaTeX  Eleventh EditionMembuat Dokumen LaTeX  Eleventh Edition
Membuat Dokumen LaTeX Eleventh EditionHirwanto Iwan
 
2. abstrak dan daftar isi, tabel dan gambar
2. abstrak dan daftar isi, tabel dan gambar2. abstrak dan daftar isi, tabel dan gambar
2. abstrak dan daftar isi, tabel dan gambarIan March
 
Membuat dokumen la tex edisi 12
Membuat dokumen la tex edisi 12Membuat dokumen la tex edisi 12
Membuat dokumen la tex edisi 12Hirwanto Iwan
 
Membuat Dokumen LaTeX edisi 13
Membuat Dokumen LaTeX edisi 13Membuat Dokumen LaTeX edisi 13
Membuat Dokumen LaTeX edisi 13Hirwanto Iwan
 
Modul c-revisi borland c++
Modul c-revisi borland c++Modul c-revisi borland c++
Modul c-revisi borland c++teknisi7
 
Modul c-revisi borland c++
Modul c-revisi borland c++Modul c-revisi borland c++
Modul c-revisi borland c++HerGeous
 
Elektronika digital lanjut
Elektronika digital lanjutElektronika digital lanjut
Elektronika digital lanjutEko Supriyadi
 
LaTeX InDesign with Smart Diagram Miicrosoft Word 2013
LaTeX InDesign with Smart Diagram Miicrosoft Word 2013LaTeX InDesign with Smart Diagram Miicrosoft Word 2013
LaTeX InDesign with Smart Diagram Miicrosoft Word 2013Hirwanto Iwan
 
Membuat Dokumen LaTeX Edisi ke - 33
Membuat Dokumen LaTeX Edisi ke - 33Membuat Dokumen LaTeX Edisi ke - 33
Membuat Dokumen LaTeX Edisi ke - 33Hirwanto Iwan
 

Similar to Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100 (20)

Buku Ajar Mikrokontroler dan Interface.pdf
Buku Ajar Mikrokontroler dan Interface.pdfBuku Ajar Mikrokontroler dan Interface.pdf
Buku Ajar Mikrokontroler dan Interface.pdf
 
Pengembangan Aplikasi Cloud Computing Menggunakan Node.js
Pengembangan Aplikasi Cloud Computing Menggunakan Node.jsPengembangan Aplikasi Cloud Computing Menggunakan Node.js
Pengembangan Aplikasi Cloud Computing Menggunakan Node.js
 
Supriyanto s komputasi untuk sains dan teknik menggunakan matlab edisi 4 - ...
Supriyanto s   komputasi untuk sains dan teknik menggunakan matlab edisi 4 - ...Supriyanto s   komputasi untuk sains dan teknik menggunakan matlab edisi 4 - ...
Supriyanto s komputasi untuk sains dan teknik menggunakan matlab edisi 4 - ...
 
LaTeX InDesign Crative Cloud
LaTeX InDesign Crative Cloud LaTeX InDesign Crative Cloud
LaTeX InDesign Crative Cloud
 
Tik.pr02.003.01 b informasi2
Tik.pr02.003.01 b informasi2Tik.pr02.003.01 b informasi2
Tik.pr02.003.01 b informasi2
 
Membuat Dokumen LaTeX Eleventh Edition
Membuat Dokumen LaTeX  Eleventh EditionMembuat Dokumen LaTeX  Eleventh Edition
Membuat Dokumen LaTeX Eleventh Edition
 
Letech indesign cc
Letech indesign ccLetech indesign cc
Letech indesign cc
 
2. abstrak dan daftar isi, tabel dan gambar
2. abstrak dan daftar isi, tabel dan gambar2. abstrak dan daftar isi, tabel dan gambar
2. abstrak dan daftar isi, tabel dan gambar
 
Membuat dokumen la tex edisi 12
Membuat dokumen la tex edisi 12Membuat dokumen la tex edisi 12
Membuat dokumen la tex edisi 12
 
Pembahasan
Pembahasan Pembahasan
Pembahasan
 
Membuat Dokumen LaTeX edisi 13
Membuat Dokumen LaTeX edisi 13Membuat Dokumen LaTeX edisi 13
Membuat Dokumen LaTeX edisi 13
 
Tik.pr02.002.01 b informasi fix
Tik.pr02.002.01 b informasi fixTik.pr02.002.01 b informasi fix
Tik.pr02.002.01 b informasi fix
 
Buku c++
Buku c++Buku c++
Buku c++
 
Modul c-revisi borland c++
Modul c-revisi borland c++Modul c-revisi borland c++
Modul c-revisi borland c++
 
Modul c-revisi borland c++
Modul c-revisi borland c++Modul c-revisi borland c++
Modul c-revisi borland c++
 
Dasar dasar c++
Dasar dasar c++Dasar dasar c++
Dasar dasar c++
 
Tik.pr02.001.01 b informasi
Tik.pr02.001.01 b informasiTik.pr02.001.01 b informasi
Tik.pr02.001.01 b informasi
 
Elektronika digital lanjut
Elektronika digital lanjutElektronika digital lanjut
Elektronika digital lanjut
 
LaTeX InDesign with Smart Diagram Miicrosoft Word 2013
LaTeX InDesign with Smart Diagram Miicrosoft Word 2013LaTeX InDesign with Smart Diagram Miicrosoft Word 2013
LaTeX InDesign with Smart Diagram Miicrosoft Word 2013
 
Membuat Dokumen LaTeX Edisi ke - 33
Membuat Dokumen LaTeX Edisi ke - 33Membuat Dokumen LaTeX Edisi ke - 33
Membuat Dokumen LaTeX Edisi ke - 33
 

More from Hirwanto Iwan

01. integral fungsi aljabar
01. integral fungsi aljabar01. integral fungsi aljabar
01. integral fungsi aljabarHirwanto Iwan
 
Analisis Butir Soal PG Matematika Wajib Kelas XII IPA-IPS NFBS Serang
Analisis Butir Soal PG Matematika Wajib Kelas XII IPA-IPS NFBS SerangAnalisis Butir Soal PG Matematika Wajib Kelas XII IPA-IPS NFBS Serang
Analisis Butir Soal PG Matematika Wajib Kelas XII IPA-IPS NFBS SerangHirwanto Iwan
 
Analisis Butir Soal Pilihan Ganda Matematika Wajib Kelas XII IPA
Analisis Butir Soal Pilihan Ganda Matematika Wajib Kelas XII IPAAnalisis Butir Soal Pilihan Ganda Matematika Wajib Kelas XII IPA
Analisis Butir Soal Pilihan Ganda Matematika Wajib Kelas XII IPAHirwanto Iwan
 
Materi Limit Aljabar dan Turunan Aljabar
Materi Limit Aljabar dan Turunan Aljabar Materi Limit Aljabar dan Turunan Aljabar
Materi Limit Aljabar dan Turunan Aljabar Hirwanto Iwan
 
Pembahasan Soal Matematika Wajib PTS Kelas XI IPS
Pembahasan Soal Matematika Wajib PTS Kelas XI IPSPembahasan Soal Matematika Wajib PTS Kelas XI IPS
Pembahasan Soal Matematika Wajib PTS Kelas XI IPSHirwanto Iwan
 
Pembahasan Soal Matematika Wajib PTS Kelas XI IPA
Pembahasan Soal Matematika Wajib PTS Kelas XI IPAPembahasan Soal Matematika Wajib PTS Kelas XI IPA
Pembahasan Soal Matematika Wajib PTS Kelas XI IPAHirwanto Iwan
 

More from Hirwanto Iwan (20)

01. integral fungsi aljabar
01. integral fungsi aljabar01. integral fungsi aljabar
01. integral fungsi aljabar
 
Analisis Butir Soal PG Matematika Wajib Kelas XII IPA-IPS NFBS Serang
Analisis Butir Soal PG Matematika Wajib Kelas XII IPA-IPS NFBS SerangAnalisis Butir Soal PG Matematika Wajib Kelas XII IPA-IPS NFBS Serang
Analisis Butir Soal PG Matematika Wajib Kelas XII IPA-IPS NFBS Serang
 
Analisis Butir Soal Pilihan Ganda Matematika Wajib Kelas XII IPA
Analisis Butir Soal Pilihan Ganda Matematika Wajib Kelas XII IPAAnalisis Butir Soal Pilihan Ganda Matematika Wajib Kelas XII IPA
Analisis Butir Soal Pilihan Ganda Matematika Wajib Kelas XII IPA
 
Materi Limit Aljabar dan Turunan Aljabar
Materi Limit Aljabar dan Turunan Aljabar Materi Limit Aljabar dan Turunan Aljabar
Materi Limit Aljabar dan Turunan Aljabar
 
Pembahasan Soal Matematika Wajib PTS Kelas XI IPS
Pembahasan Soal Matematika Wajib PTS Kelas XI IPSPembahasan Soal Matematika Wajib PTS Kelas XI IPS
Pembahasan Soal Matematika Wajib PTS Kelas XI IPS
 
Pembahasan Soal Matematika Wajib PTS Kelas XI IPA
Pembahasan Soal Matematika Wajib PTS Kelas XI IPAPembahasan Soal Matematika Wajib PTS Kelas XI IPA
Pembahasan Soal Matematika Wajib PTS Kelas XI IPA
 
Fitur Baru WinEdt 9.1
Fitur Baru WinEdt 9.1Fitur Baru WinEdt 9.1
Fitur Baru WinEdt 9.1
 
Pemasangan WinEdt 9.1
Pemasangan WinEdt 9.1Pemasangan WinEdt 9.1
Pemasangan WinEdt 9.1
 
Kumpulan Soal UM UGM
Kumpulan Soal UM UGMKumpulan Soal UM UGM
Kumpulan Soal UM UGM
 
LATEX OR INDESIGN
LATEX OR INDESIGN LATEX OR INDESIGN
LATEX OR INDESIGN
 
AGH Beamer
AGH BeamerAGH Beamer
AGH Beamer
 
AFIT Beamer
AFIT BeamerAFIT Beamer
AFIT Beamer
 
Hackd Beamer
Hackd BeamerHackd Beamer
Hackd Beamer
 
LUH Beamer
LUH BeamerLUH Beamer
LUH Beamer
 
Cambridge Beamer
Cambridge BeamerCambridge Beamer
Cambridge Beamer
 
ESOP Beamer
ESOP BeamerESOP Beamer
ESOP Beamer
 
AP Beamer
AP BeamerAP Beamer
AP Beamer
 
Naked Beamer
Naked BeamerNaked Beamer
Naked Beamer
 
TUDelft Beamer
TUDelft BeamerTUDelft Beamer
TUDelft Beamer
 
GC3 Beamer
GC3 BeamerGC3 Beamer
GC3 Beamer
 

Recently uploaded

421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptx421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptxGiftaJewela
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxmawan5982
 
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxBAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxJamhuriIshak
 
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxDESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxFuzaAnggriana
 
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...MarwanAnugrah
 
04-Gemelli.- kehamilan ganda- duo atau triplet
04-Gemelli.- kehamilan ganda- duo atau triplet04-Gemelli.- kehamilan ganda- duo atau triplet
04-Gemelli.- kehamilan ganda- duo atau tripletMelianaJayasaputra
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASKurniawan Dirham
 
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5ssuserd52993
 
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptxKONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptxawaldarmawan3
 
soal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxsoal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxazhari524
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxRezaWahyuni6
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMmulyadia43
 
Dinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapDinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapsefrida3
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BAbdiera
 
Lembar Catatan Percakapan Pasca observasidocx
Lembar Catatan Percakapan Pasca observasidocxLembar Catatan Percakapan Pasca observasidocx
Lembar Catatan Percakapan Pasca observasidocxbkandrisaputra
 
Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5KIKI TRISNA MUKTI
 
tugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDtugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDmawan5982
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxRezaWahyuni6
 
442539315-ppt-modul-6-pend-seni-pptx.pptx
442539315-ppt-modul-6-pend-seni-pptx.pptx442539315-ppt-modul-6-pend-seni-pptx.pptx
442539315-ppt-modul-6-pend-seni-pptx.pptxHendryJulistiyanto
 
Demonstrasi Kontekstual Modul 1.2. pdf
Demonstrasi Kontekstual  Modul 1.2.  pdfDemonstrasi Kontekstual  Modul 1.2.  pdf
Demonstrasi Kontekstual Modul 1.2. pdfvebronialite32
 

Recently uploaded (20)

421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptx421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptx
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
 
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxBAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
 
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxDESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
 
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
 
04-Gemelli.- kehamilan ganda- duo atau triplet
04-Gemelli.- kehamilan ganda- duo atau triplet04-Gemelli.- kehamilan ganda- duo atau triplet
04-Gemelli.- kehamilan ganda- duo atau triplet
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
 
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
 
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptxKONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
 
soal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxsoal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptx
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptx
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
 
Dinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapDinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genap
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
 
Lembar Catatan Percakapan Pasca observasidocx
Lembar Catatan Percakapan Pasca observasidocxLembar Catatan Percakapan Pasca observasidocx
Lembar Catatan Percakapan Pasca observasidocx
 
Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5
 
tugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDtugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SD
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptx
 
442539315-ppt-modul-6-pend-seni-pptx.pptx
442539315-ppt-modul-6-pend-seni-pptx.pptx442539315-ppt-modul-6-pend-seni-pptx.pptx
442539315-ppt-modul-6-pend-seni-pptx.pptx
 
Demonstrasi Kontekstual Modul 1.2. pdf
Demonstrasi Kontekstual  Modul 1.2.  pdfDemonstrasi Kontekstual  Modul 1.2.  pdf
Demonstrasi Kontekstual Modul 1.2. pdf
 

Berikut skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode {000, 100, 001, 110, 101, 011, 111}:000 → 0000000100 → 1000001 001 → 0000011110 → 1100010101 → 1010001011 → 0110010111 → 1110001Skema ini dapat mendeteksi dua kesalahan atau lebih karena:- Jika dikirim kode 000 dan terjadi 1 kesalahan, akan diterima 0000001, 0000010, 0000100

  • 1. LAPORAN PERKULIAHAN PENGANTAR TEORI PENGKODEAN Tanggal 28 Februari 2013 HIRWANTO (09/283098/PA/12442) PROGRAM STUDI MATEMATIKA JURUSAN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA YOGYAKARTA 2013
  • 2. 2
  • 3. Kata Pengantar Alhamdulillah, segala puji bagi Allah yang telah melimpahkan rahmat dan hidayah-Nya sehingga dapat terselesainya laporan perkuliahan Pengantar Teori Pengkodean. Laporan ini dibuat berdasarkan setiap pertemuan perkuliahan yang ada ditambah dengan buku pendukung seperti ”Coding Theory” dan ”Error Correctin Codes”. Selain itu, soal pertanyaan dan penyelesaiannya didalam buku ini diambil dari buku pendukung diharapkan dengan adanya latihan soal ini dapat menambah pengetahuan penulis dalam mempelajari teori pengkodean. Pengantar Teori Pengkodean merupakan mata kuliah dalam bidang Aljabar dan merupakan penerapan dari sifat, struktur, operasi dalam aljabar. Beberapa penerapan yang dipelajari dalam Pengantar Teori Pengkodean meliput pengiriman pesan yang melalu sistem komunikasi atau ke media penyimpanan data, mendeteksi dan mengoreksi kesalahan pesan yang diterima. Yogyakarta, 30 Maret 2013 Hirwanto i
  • 5. Daftar Isi Kata Pengantar i BAB 1 Pendahuluan 1 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 BAB 2 Deteksi, Koreksi Kesalahan dan Decoding 3 2.1. Communication Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2. Maximum likehood decoding . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3. Hamming distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4. Nearest neighbour minimum distance decoding . . . . . . . . . . . . . . 6 2.5. Distance of a code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 BAB 3 Lapangan Berhingga 11 3.1. Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2. Polynomial Rings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.3. Structure of Finite Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 BAB 4 Linear Code 21 4.1. Vector Space over finite fields . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.2. Linear Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.3. Hamming Weight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 BAB 5 First Order Reed Muller Codes 25 5.1. Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.2. Generator Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.3. Parity Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.3.1. Hamming Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.4. Hadamard Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.4.1. Hadamard Transform . . . . . . . . . . . . . . . . . . . . . . . . . 28 BAB 6 Cyclic Codes 33 6.1. Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.2. Generator Polinomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.3. Generator dan Matriks Parity-Check . . . . . . . . . . . . . . . . . . . . . 36 6.4. Decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 6.4.1. Algoritma Decoding Cyclic Codes . . . . . . . . . . . . . . . . . . 40 6.5. Burst Error Correcting Codes . . . . . . . . . . . . . . . . . . . . . . . . . . 41 iii
  • 6. iv DAFTAR ISI 6.5.1. Algoritma Decoding Burst-error-code . . . . . . . . . . . . . . . . 42 BAB 7 BCH Code 45 7.1. Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 7.1.1. Finite Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 7.1.2. Ring Polynomial . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 7.1.3. Minimal Polynomial . . . . . . . . . . . . . . . . . . . . . . . . . 46 7.1.4. Cyclotomic Coset . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7.1.5. BCH codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 7.1.6. BCH Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 7.1.7. Parameter dari BCH Codes . . . . . . . . . . . . . . . . . . . . . . . 51 7.1.8. Decoding BCH Codes . . . . . . . . . . . . . . . . . . . . . . . . 53 BAB 8 Self-Dual Codes dan Binary Golay Code 57 8.1. Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 8.1.1. Linear Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 8.1.2. Hamming Distance dan Hamming Weight . . . . . . . . . . . . . . 60 8.2. Self-Dual Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 8.2.1. Extended Binary Golay Code . . . . . . . . . . . . . . . . . . . . 62 8.2.2. Decoding Extended Binary Golay Code . . . . . . . . . . . . . . . 64 DAFTAR PUSTAKA 67
  • 7. Bab 1 Pendahuluan Pertumbuhan media informasi semakin cepat hampir di setiap aspek kehidupan dan dituntut untuk dapat memberikan informasi secara cepat dan akurat. Media informasi seperti sistem komunikasi dan tempat penyimpanan data tidak secara mutlak benar dalam prakteknya karena bisa saja terjadi ganguaan atau diubah ke bentuk lain. Salah satu tugas didalam teori pengkodean adalah untuk mendeteksi(detect), atau membenarkan(correct) kesalahan. Biasanya, Kode didefinisikan sebagai Kode sumber(source coding) dan saluran kode(channel coding) mengubah pesan menjadi kode yang cocok kemudian ditransmisikan melalui saluran. Sebagai contoh, kode sumber ASCII yaitu setiap karakter diubah kedalam bentuk byte(1 byte = 8 bits). Contoh 1.0.1. Misalkan diberikan empat kode nama buahan yaitu Apel, Belimbing, Pisang, dan Duku yaitu sebagai berikut : Apel → 00, Belimbing → 01, Pisang → 10, Duku → 11 Andaikan kita akan mengirimkan pesan ”Apel” dengan kode 00 yang ditransmisikan melalui saluran dengan ada gangguan, maka pesannya kemungkinan diterima sebagai 01. Penerima tidak tahu bahwa pesan yang diterima itu rusak sehingga komunikasi semacam ini dianggap gagal. Tentunya, ide dari pengkodean adalah mengkode pesan yang telah dikirimkan oleh kode sumber kemudian dikirimkan melalui saluran dengan beberapa bentuk pengulangan agar pesannya yang disampaikan dapat dideteksi ataupun dibenarkan kesalahannya. Contoh 1.0.2. Didalam contoh 1.0.1 kita menunjukkan bahwa pengulangan 1 bits yaitu 00 → 000, 01 → 001, 10 → 101, 11 → 110 Andaikan pesan yang dikirim adalah ’Apel’ dengan kode 000 kemudian setelah dikirimkan melalu kode sumber ditransmisikan melalui saluran dengan ada gangguan dan hanya ada satu kesalahan. Salah satu diantara 3 kemungkinan yaitu 001, 010, 100. Dengan jalan ini, kita hanya mendeteksi kesalahan tetapi tidak membenarkan kesalahan yang ada, misalkan kita menerima kode ”100”,maka apakah kode itu berasal dari ”000, 001, 101, 110”. Jadi kita perlu lebih banyak pengulangan yaitu sebagai berikut : 00 → 00000, 01 → 01111, 10 → 10110, 11 → 11001 Andaikan pesan yang disampaikan ”Apple” dengan adanya gangguannya dan hanya ada satu kesalahan. Maka harusnya kita menerima salah satu dari kode ini :”10000, 01000,00100, 00010, 00001”. Jika kita menerima 10000, maka kita yakin bahwa kode 10000 berasal dari 00000 sebab dapat dilihat dibawah ini : 10000 → 00000 (perlu 1 kesalahan) 10000 → 01111 (perlu 5 kesalahan) 10000 → 10110 (perlu 2 kesalahan) 10000 → 11001 (perlu 2 kesalahan) Jadi kita mengambil yang memiliki sedikit kesalahan yaitu ”00000”. 1
  • 8. 2 BAB 1. PENDAHULUAN Latihan 1.1 Buatlah skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode dari {00, 10, 01, 11}. Bisakah kamu menemukan salah satu skema terbaik didalam mentransmisikan pesan tersebut ? Penyelesaian : Diketahui kode yang diberikan yaitu {00,10,01,11}. Untuk mendeteksi dua atau lebih sedikitnya kesalahan maka dapat dilihat skema dibawah ini : 00 → 000, 10 → 101, 01 → 011, 11 → 110 Skema diatas merupakan yang terbaik sebab jika kita mengirimkan kode ”000” dan hanya satu kesalahan yang ada maka kita akam menerima salah satu diantara tiga kode yaitu : ”100, 010, atau 001”, sehingga kita mendeteksi kesalahan bahwa kode yang kirimkan bukan salah satu diantara kode tersebut. 1.2 Buatlah skema channel coding untuk membenarkan dua atau lebih sedikitnya untuk kode sumber {00, 10, 01, 11}. Bisakah kamu menemukan skema terbaik didalam mentransmisikan pesan tersebut ? Penyelesaian : Diketahu kode yang diberikan {00, 10, 01, 11}. Untuk membenarkan kesalahan dua atau lebih sedikitnya maka dapat dilihat skema dibawah ini : 00 → 00000 01 → 01111 10 → 10110 11 → 11001 Skema diatas merupakan skema yang terbaik sebab jika kita mengirimkan kode ”00000” dan hanya satu kesalahan yanga ada maka kita akan menerima salah satu dari lima kode yaitu : 10000, 01000, 00100, 00010, 00001. Misalkan kita menerima kode ”10000”, maka kita yakin bahwa kode itu berasal dari kode ”00000”,sebab dapat dilihat dibawah ini. 10000 → 00000 (perlu 1 kesalahan) 10000 → 01111 (perlu 5 kesalahan) 10000 → 10110 (perlu 2 kesalahan) 10000 → 11001 (perlu 2 kesalahan) Jadi kita mengambil yang memiliki sedikit kesalahan yaitu ”00000”. 1.3 Buatlah skema channel coding untuk mendeteksi dua atau lebih sedikitnya kesalahan untuk sumber kode dari {000, 100, 001, 110, 101, 011, 111}. Bisakah kamu menemuk- an salah satu skema terbaik didalam mentransmisikan pesan tersebut ? Penyelesaian : Diketahui kode yang diberikan yaitu {000, 100, 001, 110, 101, 011, 111}. Untuk mendeteksi satu kesalahan maka dapat dilihat skema dibawah ini : 000 → 0000 100 → 1001 001 → 0011 110 → 1100 101 → 1010 011 → 0110 111 → 1110 Skema diatas merupakan yang terbaik sebab jika kita mengirimkan kode ”0000” dan hanya satu kesalahan yang ada maka kita akam menerima salah satu diantara tiga kode yaitu : ”1000, 0100, 0010 atau 0001”, sehingga kita mendeteksi kesalahan bahwa kode yang kirimkan bukan salah satu diantara kode tersebut. 1.4 Buatlah skema channel coding untuk membenarkan dua atau lebih sedikitnya kesalahan untuk sumber kode dari {000, 100, 001, 110, 101, 011, 111}. Bisakah kamu menemuk- an salah satu skema terbaik didalam mentransmisikan pesan tersebut ? Penyelesaian :
  • 9. Bab 2 Deteksi, Koreksi Kesalahan dan Decoding Kita melihat pada Bab 1 pentingnya mempelajari channel coding dengan pengulangan in- formasi pesan sehingga kesalahan bisa dideteksi atau dibenarkan. Didalam bab ini, kita merumuskan dan mendefinisikan error-detection dan error-correction. Kita juga memperke- nalkan atau mendecode dengan baik. 2.1 Communication Channel Definisi 2.1.1. Misalkan A = {a1,a2,...,aq} himpunan dengan size q , atau disebut juga sebagai code alfabet , dan anggotanya disebut sebagai code symbols. (i) q-ary word dengan panjang n atas A adalah barisan w, ∀wi ∈ A,∀i ekuivalen dengan w sebagai vektor (w1,...,wn) (ii) q-ary block code dengan panjang n atas A adalah himpunan tak kosong C q-ary code yang mempunyai panjang yang sama yaitu n. (iii) Anggota C disebut codeword di C (iv) Banyak codeword di C dinotasikan |C| disebut sebagai size C (v) informasi rate code C dengan panjang n didefinisikan (logq)|C|/n (vi) Code dengan panjang n dan size M disebut (n,M)− code Contoh 2.1.2. Diberikan code alfabet atas F2 = {0,1} disebut sebagai binary code. Beberapa contoh dari code nya adalah (i) C1 = {00,01,10,11} adalah (2,4)-code (ii) C2 = {000,011,101,110} adalah (3,4)-code (iii) C3 = {0011,0101,1010,1100,1001,0110} adalah (4,6)-code Code ata code alfabet F3 = {01,2} disebut sebagai ternary code, sementara quarternary code terkadang code atas code alfabet F4 3
  • 10. 4 BAB 2. DETEKSI, KOREKSI KESALAHAN DAN DECODING Definisi 2.1.3. Sebuah Communication channel terdiri atas berhingga banyak channel alfabet A = {a1,..aq} sebagai himpunan beserta forward channel probabilitas P(aj|ai) = Probabilitas bahwa aj diterima jika yang dikirim ai yang memenuhi q ∑ j=1 P(ai|aj) = 1 Jadi,∀i P(a1|ai)+P(a2|ai)+P(a3|ai)+···+P(aq|ai) Definisi 2.1.4. Sebuah communication channel dikatakan memorylesss jika keluaran seba- rang satu transmisi adalah bebas dari keluaran transmisi sebelumnya ; jika c = c1c2 ...cn dan x = x1x2 ...xn dengan panjang word adalah n maka P(x diterima | c terkirim ) = ∏n i=1 P(xi diterima | ci terkirim ) Definisi 2.1.5. ”q -ary symmetrics channel” adalah memoryless memenuhi sifat 1. Setiap simbol mempunyai probabilitas yang sama yaitu p, untuk yang diterima dengan kesalahan p < 1 2. 2. Jika suatu simbol diterima dengan salah maka setiap q−1 (simbol yang salah) mem- punyai probabilitas yang sama untuk diterima yaitu 1− p. Secara khususnya, binary symmetric channel(BSC) adalah memoryless channel yang mempunyai channel alfabet {0,1} dan channel probabilitas adalah P(1 diterima | 0 terkirim) = P(0 diterima | 1 terkirim ) = p. P(1 diterima | 0 terkirim) = P(1 diterima | 1 terkirim ) = 1− p. Jadi, probabilitas kesalahannya di BSC adalah p. Ini disebut sebagai crossover probabilitas dari BSC. Contoh 2.1.6. Andaikan kodeword dari {000,111} yang terkirim lewat BSC jika diketahui adanya error dalam pengiriman suatu bit adalah p = 0,005. Misalkan word yang diterima adalah 011. Penyelesaian : P(011 | 001) = P(0 | 0).P(1 | 0).P(1 | 0) = (1− p).p.p = (1− p).p2 = (0,95).(0,005)2 = 0,002375 P(011 | 111) = P(0 | 1).P(1 | 1).P(1 | 1) = p.(1− p)2 = (0,05)(0,95)2 = 0,045125 Maka code word yang terima kemungkinan 111 karena mempunyai probabilitas yang besar.
  • 11. 2.2. MAXIMUM LIKEHOOD DECODING 5 2.2 Maximum likehood decoding Andaikan bahwa codeword dari code C terkirim melalui channel. Jika sebuah word x diterima, kita bisa menghitung probabilitas forward channel P(x diterima — c terkirim) Untuk semua codeword c ∈ C. Maximum likehood decoding(MLD) rule menyimpulkan bahwa cx adalah yang paling banyak ditransmisikan jika cx probabilitasnya maksimum. P (x diterima — cx terkirim)= maxc∈C P(x diterima — c terkirim). Ada dua jenis dari MLD yaitu sebagai berikut : 1. Complete maximum likehood decoding(CMLD). Jika word x diterima, temukan code- word yang paling banyak ditransmisikan. Jika ditemukan lebih dari satu maka pilhlah salah satunya sebarang. 2. Incomplete maximum likehood decoding(IMLD). Jika x diterima , temukan yang paling banyak codeword yang ditransmisikan. Jika ada lebih dari satu codewordnya, maka meminta untuk mentransmisikan ulang. 2.3 Hamming distance Definisi 2.3.1. Misalkan diberikan x dan y word dengan panjang n atas alfabet A. Hamming distance dari x ke y dinotasikan oleh d(x,y) didefinisikan banyak tempat(posisi) koordinat dimana x dan y berbeda. Jika x = x1 ...xn dan y = y1 ...yn maka d(x,y) = d(x1,y1)+···+d(xn,yn) (2.1) dimana xi dan yi sebagai panjang word adalah 1 dan d(x,y) = 1 jika xi = yi 0 jika xi = yi. Contoh 2.3.2. (i) Misalkan A = {0,1} dan misalkan x = {01010}, y = {01101}, z = {11101}, maka d(x,y) = 3. d(y,z) = 1. d(z,x) = 4. (ii) Misalkan A = {0,1,2,3,4} dan misalkan x = 1234, y = 1423, z = 3214 d(x,y) = 3. d(y,z) = 4. d(z,x) = 2. Proposisi 2.3.3. Misalkan x,y, z word dengan panjang n atas A. Maka kita mempunyai (i) 0 ≤ d(x,y) ≤ n (ii) d(x,y) = 0 jika dan hanya jika x,y (iii) d(x,y) = d(y,x) (iv) (Ketidaksamaan Segitiga) d(x,z) ≤ d(x,y)+d(y,z)
  • 12. 6 BAB 2. DETEKSI, KOREKSI KESALAHAN DAN DECODING 2.4 Nearest neighbour minimum distance decoding Andaikan bahwa codeword dari code C yang terkirim melalui commincation channel. Jika word x yang diterima, maka nearest neighbour decoding rule(mininum distance decoding rule) akan mengkode x ke cx jika d(x,cx) adalah minimal semua codeword di C, d(x,cx) = min c∈C d(x,c). (2.2) Didalam kasus maximum likehoode decoding, kita bisa menetapkan antara complete dan incomplete decoding untuk nearest neighbour decoding rule. Jika diberikan word yang diterima x, jika dua atau leboh codeword cx memenuhi 2.2, maka dengan complete decoding rule adalah secara sebarang memilih salah satu dari terbanyak word yang terkirim, sedangkan incomplete decoding rule meminta pengiriman ulang codeword. Teorema 2.4.1. Untuk BSC dengan crossover probabilitas dengan p < 1 2, maximum likehood decoding rule adalah sama sebagai nearest neighbour decoding rule. Bukti. Misalkan C dinotasikan code yang digunakan dan misalkan x dinotasikan sebagai word yang diterima dengan panjang n. Untuk sebarang vektor c dengan panjang n, dan untuk sebarang 0 ≤ i ≤ n. d(x,c)= i ⇔ P(x diterima | c terkirim)= pi(1− p)n−1 Ketika p < 1 2, didapat p0 (1− p)n > p1 (1− p)n−1 > p2 (1− p)n−2 > ··· > pn (1− p)0 Menggunakan definisi, makximum likelihood decoding rule decode x ke c ∈ C dengan de- mikian P(x diterima | c terkirim) adalah terbesar, sehingga d(x,c) adalah yang terkecil. Jadi sama seperti nearest neighbour decoding rule. Contoh 2.4.2. Diberikan codeword dari binary code C = {0000,0011,1000,1100,0001,1001} merupakan codeword yang terkirim lewat BSC. Asumsikan bahwa x = 0111 yang diterima, maka d(0111,0000) = 3. d(0111,0011) = 1. d(0111,1000) = 4. d(0111,1100) = 3. d(0111,0001) = 2. d(0111,1001) = 3. Menggunakan nearest neighbour decoding, kita decode x ke 0011. Contoh 2.4.3. Misalkan C = {000,011} binary code. Dengan melihat tabel IMLD untuk C yang ditunjukkan pada tabel 2.1, dimana tanda ’-’ artinya transmisi ulang diperlukan.
  • 13. 2.5. DISTANCE OF A CODE 7 Received x d(x,000) d(x,011) Decode to 000 0 2 000 100 1 3 000 010 1 1 - 001 1 1 - 101 2 2 - 011 2 0 011 111 3 1 011 Tabel 2.1: Tabel IMLD untuk C 2.5 Distance of a code Definisi 2.5.1. Untuk code C memuat paling sedikitnya dua word, minimum distance dari C, dinotasikan d(C) adalah d(C) = min{d(x,y) : x,y ∈ C,x = y}. Definisi 2.5.2. Code dengan panjang n, size M dan distance d disebut sebagai (n,M,d)-code. Bilangan n,M, dan d disebut sebagai parameter dari code. Contoh 2.5.3. (i) Misalkan C = {00000,00111,11111} binary code, maka d(C) = 2 ka- rena dapat dilihat dibawah ini d(00000,00111) = 3, d(00000,11111) = 5, d(00111,11111) = 2 Jadi, C adalah binary (5,3,2)-code. (ii) MisalkanC = {000000,000111,111222} ternary code atau dengan code alfabet {0,1,2}, maka d(C) = 3, ketika d(000000,000111) = 3, d(000000,111222) = 6, d(000111,111222) = 6, Jadi, C adalah ternary code (6,3,3)-code. Teorema 2.5.4. Suatu code C mempunyai kemampuan untuk mendeteksi u−kesalahan jika dan hanya jika d(C) ≥ u+1 Bukti. Andaikan d(C) ≥ u+1. Jika c ∈ C dan x dengan demikian bahwa 1 ≤ d(x,c) ≤ u < d(C), maka x /∈ C; Jadi C adalah u−error-detecting. Disisi lain, jika d(C) < u+1,d(C) ≤ u, maka terdapat c1,c2,∈ C dengan demikian bahwa 1 ≤ d(c1,c2) = d(C) ≤ u. Apabila c1 dikirim dan kemudian ada u−error kesalahan pada pengiriman tersebut, maka si penerima akan mendapatkan (mungkin) c2 dengan demikian ka- rena c2 ∈ C maka si penerima akan menyimpulkan bahwa c2 sebagai codeword yang dikirim. Dengan kata lain, tifak bisa mendeteksi adanya kesalahan. Jadi Kontradiksi sehingga terbukti bahwa d(C) ≥ u+1.
  • 14. 8 BAB 2. DETEKSI, KOREKSI KESALAHAN DAN DECODING Teorema 2.5.5. Code C merupakan u−error correcting code jika dan hanya jika d(C) ≥ 2v+1. Bukti. ’⇐’ Andaikan bahwa d(C) ≥ 2v+1. Misalkan c codeword yang dikirim dan misalkan x word yang diterima. Jika v atau lebih sedikitnya error dalam transmisi, maka d(x,c) ≤ v. Jadi, untuk sebarang codeword c ∈ C,c = c , kita mempunyai d(x,c ) ≥ d(c.c )−d(x,c) ≥ 2v+1−v = v+1 > d(x,c) Jadi, x akan didecode(secara langsung) ke c jika minimum distance decoding rule digunakan. Ini menunjukkan bahwa C adalah v−error-correcting. ’⇒’ Andaikan bahwa C adalah v−error correcting. Jika d(C) < 2v + 1, maka terdapat codeword yang berbeda c,c ∈ C dengan d(c,c ) = d(C) ≤ 2v. Asumsikan bahwa c yang dikirim dan muncul v error dalam pengiriman sehingga sistem ini mengoreksi tidak dengan benar. Misalkan d(c,c ) < u+1 maka kemudian yang dikirim c maka yang diterima c = c kontradiksi padahal c adalah v−error correcting code. Jadi v+1 ≤ d(c,c ) ≤ 2v. Kita dapat mengambil x sebagai berikut : x = x1x2 ...xv c xv+1 ...xd c xd+1 ...xn keduanya adalah yang diterima, kita mempunyai d(x,c ) = d −v ≤ v = d(x,c) Sehingga salah satunya adalah d(x,c ) = d(x,c),didalam kasus x adalah terjadi kesalahan yaitu didecode sebagai c atau d(x,c) = d(x,c ) harusnya ke v2. Latihan 2.1 Jelaskan mengapa binary communication channel dimana p < 1 2 disebut useless channel. 2.2 Andaikan bahwa codeword dari binary code {000,100,111} dikirimkan atas BSC dengan crossover probabilitas p = 0,03. Menggunakan maximum likehood decoding rule untuk mendecode word yang diterima dibawah ini : (a) 010 (b)011 (c)001 2.3 Pertimbangkan memoryless binary channel dengan probabilitas P(0 diterima — 0 terkirim) = 0,7 P(1 diterima — 1 terkirim) = 0,8 Jika codewords dari binary code {000,100,111} yang terkirim atas channel ini, meng- gunakan maximum likehood decoding rule untuk mendecode word yang diterima dibawah ini : (a) 010 (b) 011 (c) 001 2.4 Misalkan C = {001,011} binary code
  • 15. 2.5. DISTANCE OF A CODE 9 (a) Andaikan bahwa kita mempunyai memoryless binary channel dengan probabilitas dibawah ini : P = (0 diterima — 0 terkirim) = 0,1, P(1 diterima — 1 terkirim ) = 0,5. Meng- gunakan maximum likehood decoding rule untuk mendecode word yang diterima adalah 000 (b) Menggunakan nearest neighbour decoding rule untuk mendecode 000. 2.5 Untuk binary code C = {01101,00011,10110,11000}, menggunakan channel neighbo- ur decoding rule untuk mendecode word diterima dibawah ini : (a) 00000 (b) 01111, (c) 10110 (d) 10011, (e) 11011. 2.6 Untuk tenary codeC = {00122,12201,20110,22000}, menggunakan nearest neighbour decoding rule untuk mendecode word yang diterima dibawah ini : (a) 01122, (b) 10021, (c) 22022, (d) 20120. 2.7 Kontruksikan IMLD tabel untuk setiap binary code dibawah ini : C = {101,111,011} C = {000,001,010,011} 2.8 Hitunglah banyaknya bianry code dengan dengan parameter (n,2,n), untuk n ≥ 2
  • 16. 10 BAB 2. DETEKSI, KOREKSI KESALAHAN DAN DECODING
  • 17. Bab 3 Lapangan Berhingga Kita mengetahui bersama bahwa code alfabet A merupakan himpunan yang berhingga(finite set). Sebagaimana kita ketahui juga bahwa sebuah lapangan(field) seperti real field R dan complex field C mempunyai operasi penjumlahan dan perkalian. Ide kita menghubungkan A dengan field, namun yang memiliki elemen yang berhingga atau finite field. Finite field ini cukup berbeda dari yang sebelumnya kita pelajari. Didalam bab ini kita hanya mempelajari sedikit bagian dari finite field. 3.1 Fields Definisi 3.1.1. Field adalah himpunan tak kosong F dengan dua opeasi + dan . memenuhi aksioma dibawah ini. ∀a,b,c ∈ F : (i) F tertutup terhadap + dan . , a+b dan a.b ∈ F. (ii) a+b = b+a, a.b = b.a (sifat komutatif). (iii) (a+b)+c = a+(b+c), a.(b.c) = (a.b).c (sifat assosiatif). (iv) a.(b+c) = a.b+a.c (sifat distributif). (v) a+0 = 0+a = a,∀a ∈ F. (vi) a.1 = a dan a.0 = 0,∀a ∈ F. (vii) Untuk sebarang a ∈ F, terdapat elemen invers penjumlahan (−a) ∈ F dengan demikian (a)+(−a) = 0 (viii) Untuk sebarang a = 0 ∈ F, terdapat elemen invers perkalian a−1 ∈ F dengan demikian a.a−1 = 1 Kita biasanya menuliskan a.b dengan ab dan F∗ sebagai himpunan F{0} Contoh 3.1.2. Q,R,C adalah merupakan field. Lemma 3.1.3. Misalkan a,b sebarang dua anggota dari field F, maka (i) (−1).a = −a (ii) ab = 0 maka a = 0 atau b = 0 11
  • 18. 12 BAB 3. LAPANGAN BERHINGGA Contoh 3.1.4. (i) Himpunan semua bilangan bulat Z = {0,±1,±2,...} merupakan bentuk ring terhadap penjumlahan dan perkalian, disebut sebagai ring integer. (ii) Himpunan semua polynomial atas field F, F[x] := {a0 +a1x+···+anxn : ai ∈ F,n ≥ 0} merupakan bentuk ring dengan penjumlahan dan perkalian polynomial. Definisi 3.1.5. Misalkan a,b dan m > 1 bilangan bulat. Kita katakan bahwa a kongruen ke b modulo m, dituliskan sebagai a ≡ b(mod m) jika m|(a−b) artinya m membagi habis a−b. Contoh 3.1.6. (i) 90 ≡ 30 (mod 60) dan 15 ≡ 3(mod 12). (ii) a ≡ 0 (mod m) artinya m|a (iii) a ≡ 0 (mod 2) artinya a bilangan genap. (iv) a ≡ 1 (mod 2) artinya a bilangan ganjil. Jika field dengan |F| < ∞, maka F disebut Finite Field Teorema 3.1.7. Zm adalah field jika dan hanya jika m prima. Bukti. Andaikan bahwa m merupakan bilangan komposit. Mislakan m = ab untuk dua bilangan bulat yang memenuhi 1 < a,b,< m. Selanjutnya a = 0,b = 0.Jadi 0 = m = 0 ∈ Zm. Ini kontradiksi dengan yang diketahui di Lemma 3.1.3. Jadi Zm bukan field. Sekarang misalkan m merupakan bilangan prima. Untuk sebarang anggota a ∈ Zm, 0 < a < m, kita mengetahui bahwa a adalah prima ke n. Jadi, ada dua bilangan bulat u,v dengan sifat 0 ≤ u ≤ m − 1 dengan demikian ua + vm = 1, ua ≡ 1 (mod m). Selanjutnya u = a−1. Ini mengatakan bahwa aksioma (viii) di definisi 3.1.1 juga memenuhi. Jadi Zm adalah field. Untuk ring R, bilangan bulat n ≥ 0 dan a ∈ R, kita notasikan dengan na atau n.a element n ∑ i=1 a = a+a+···+a n . Definisi 3.1.8. Misalkan F field characteristic dari F adalah bilangan bulat positif terkecil p sehingga p.1 = 0, dimana 1 elemen identitas dari F. Jika tidak demikian p ada, kita definisikan characteristicnya 0. Contoh 3.1.9. (i) Karakteristik Q,C,R adalah 0 (ii) Karateristik dari field Zp adalah p untuk sebarang p prima. Kita mendapatkan teorema dibawah ini yang mengatakan karakteristik dari field bukan bilangan komposit.
  • 19. 3.1. FIELDS 13 Teorema 3.1.10. Karakteristik dari field salah satunya 0 atau bilangan prima. Bukti. Jelas bahwa 1 bukan merupakan karateristik sebab 1.1 = 1 = 0. Andaikan bahwa karakteristik dari field p adalah bilangan komposit. Misalkan p = nm untuk suatu bilangan bulat 1 < n,m < p. Ambil a = n.1 dan b = m.1, dimana 1 element identitas perkalian dari F. Maka a.b = (n.1)(m.1) = ( n ∑ i=1 1)( m ∑ j=1 1) = (mn).1 = p.1 = 0 Menggunakan Lemma 3.1.3(ii), a = 0 atau b = 0. Ini artinya m.1 = 0 atau n.1 = 0. Kontradiksi dengan definisi karateristik. Misalkan E,F dua fields dan misalkan F subfiled dari E,. F disebut sebagai subfield dari E jika penjumlahan dan perkalian yang sama dengan E . Contoh 3.1.11. (i) Bilangan rasional Q adalah merupakan subfield dari bilangan real R dan C dan R merupakan subfield dari C . (ii) Misalkan F field dengan karakteristik p maka Zp bisa dipandang sebagai subfield F . Teorema 3.1.12. Finite field F dengan karaterisktik p memuat pn elemen untuk suatu bilangn bulat n ≥ 1 . Bukti. Dipilih elemen α1 dari F∗. Kita mengklaim bahwa 0.α1.1.α1.....(p − 1).α1 me- rupakan pasaangan yang berbeda. Jika i.α1 = j.α1 untuk suatu 0 ≤ i ≤ j ≤ p − 1, maka (j −1).α1 = 0 dan 0 ≤ (j −1) ≤ p−1. Karakteristik dari F adalah p sehingga j −i = 0.Jadi i = j. Jika F = {0.α1.1.α1.....(p − 1).α1}, maka bukti selesai. Dilain pihak, jika kita memilih elemen α2 ∈ F{0.α1.1α1.....(p−1).α1} . Kita mengklaim bahwa a1α1 +a2α2 merupakan pasangan yang berbeda untuk semua 0 ≤ a1,a2 ≤ p−1 sehingga a1α1 +a2α2 = b1α1 +b2α2 (3.1) untuk suatu 0 ≤ a1,a2,b1,b2 ≤ p − 1, maka harus mempunyai a2 = b2. Disisi lain, kita seharusnya mempunyai dari 3.1 bahwa α2 = (b2 −a2)−1(a1 −b1)−1α2. Ini kontradiksi ke pilihan kita α2. Ketika a2 = b2, dari 3.1 didapat (a1,a2) = (b1,b2) . Karena F mempunyai elemen berhingga maka kita dapat melanjutkannya dan didapatkan elemen-elemen α1,...,αn dengan demikian αi ∈ F{a1α1 +···+ai−1αi−1 : a1,...,ai−1 ∈ Zp} untuk semua 2 ≤ i ≤ n, dan F = {a1α1 +···+anαn : a1,...,an ∈ Zp} Didalam masalah yang sama, kita bisa menunjukkan bahwa a1α1 + ··· + anαn adalah me- rupakan pasangan yan berbeda untuk semua ai ∈ Zp i = 1,...,n . Ini mengatakan bahwa |F| = pn .
  • 20. 14 BAB 3. LAPANGAN BERHINGGA 3.2 Polynomial Rings Definisi 3.2.1. Misalkan F merupakan field. Himpunan F[x] = { n ∑ i=0 aixi : ai ∈ F,n ≥ 0} disebut sebagai polynomial ring atas F. F adalah ring menurut aksioma (i)-(iv) dari definisi 3.1.1 terpenuhi. Elemen dari F[x] disebut polynomial atas F . Untuk polynomial f(x) = ∑n i=1 aixi, bilangan n disebut degree dari f(x), dinotasikan sebagai deg(f(x)), jika an = 0 atau kita definisikan deg(0) = −∞ . Lebih jauh,dapat dilihat jenis polynomialnya sebagai berikut : 1. Polynomial tak nol f(x) = ∑n i=0 aixi mempunyai degree ndikatakan monic jika an = 1 . 2. Polynomial dikatakan reducible jika terdapat dua polynomial g(x) dan h(x) atas F de- ngan demikian deg(g(x)) < deg(f(x)) dan deg(h(x) < deg(f(x)) dan f(x) = g(x)h(x). 3. Polynomial yang tidak reducible disebut irreducible. Contoh 3.2.2. (i) Polynomial f(x) = x4 +2x6 ∈ Z3[x] dengan degree 6 merupakan redu- cible sebab f(x) = x4(1+2x2) (ii) Polynomial g(x) = 1 + x + x2 ∈ Z2[x] dengan degree 2 merupakan irreducible sebab tidak mempunyai faktor linear seharusnya mempunyai faktor linear linear yaitu x dan x+1 atau 0 dan 1 tetapi g(1) = g(0) = 1 ∈ Z2. (iii) Menggunakan alasan yang sama dengan (ii), kita bisa menunjukkan bahwa bahwa 2+x3 +x dan 1+x2 +x3 juga merupakan irreducible atas Z2. Definisi 3.2.3. Misalkan f(x) ∈ F[x] polynomial dengan degree n ≥ 1. Maka untuk sebarang polynomial g(x) ∈ F[x], terdapat dengan tunggal pasangan (s(x),r(x)) polynomial dengan degree(r(x)) < degree(f(x)) atau r(x) = 0 dengan demikian g(x) = s(x)f(x) + r(x). Po- lynomial r(x) disebut (principal) remainder dari g(x) dibagi oleh f(x), dinotasikan oleh (g(x)(mod f(x))). Contoh 3.2.4. Misalkan f(x) = 1+x2 dan g(x) = x+2x4 dua polynomial di Z5[x]. Ketika kita mempunyai g(x) = x + x4 = (3 + 2x2)(1 + x2)(2 + x) = (3 + 2x2)f(x) + (2 + x), dan remainder(sisa) g(x) dibagi oleh f(x) adalah 2+x. Definisi 3.2.5. Misalkan f(x) dan g(x) ∈ F[x] merupakan dua polynomial tak nol. Greatest common divisor dari f(x),g(x) dinotasikan oleh gcd(f(x),g(x)) adalah polynomial monic dengan degree terbesar adalah pembagi keduanya f(x) dan g(x). Khususnya, kita katakan bahwa f(x) adalah co-prime atau prime ke g(x) jika gcd(f(x),g(x)) = 1. Least common multiple dari f(x),g(x) dinotasikan oleh lcm(f(x),g(x)) adalah polynomial monic degree terendah adalah perkalian keduanya f(x) dan g(x). Contoh 3.2.6. Diketahui Z2 = {0,1} merupakan field dan Z2[x] = {0,1,1+x,1+x+x2 0,...} = {a0 +a1x+a2x2 +···+anxn |ai ∈ Z2,n ∈ Z+ {0}}
  • 21. 3.2. POLYNOMIAL RINGS 15 Ring Integral Z Ring Polynomial F[x] Integer m Polynomial f(x) Bilangan prima p polynomial irreducible p(x) Tabel 3.1: Analogi antara Z dan F[x] Catatan 3.2.7. (i) Jika kita mempunyai dua faktorisasi dibawah ini: f(x) = a.p1(x)e1 ... pn(x)en, g(x) = b.p1(x)d1 ... pn(x)dn, Dimana a,b ∈ F∗,ei,di ≥ 0 dan pi(x) adalah polynomial monic irreducible yang berbeda(eksistensi dan ketung- galan faktorisasi polynomial yang kita ketahui dengan baik),maka Zm = {0,1,...,m−1} F[x]/(f(x)) := {∑n i=0 −1aixi : ai ∈ F,n ≥ 1} a⊕b := (a+b (mod(m)) g(x)⊕h(x) := (g(x)+h(x)) (mod f(x))) a b := (ab (mod m)) g(x) h(x) := (g(x)h(x)) (mod f(x))) Zm ring F[x] / f(x) ring Zm field ⇔ m prima F[x] / (f(x)) field ⇔ f(x) irreducible Tabel 3.2: Analogi lebih lanjut Z dan F[x] gcd(f(x),g(x)) = p1(x)min{e1,d1} ... pn(x)min{en,dn} . dan lcm(f(x),g(x)) = p1(x)max{e1,d1} ... pn(x)max{en,dn} . (ii) Misalkan f(x),g(x) ∈ F[x] merupakan dua polynomial tak nol. Maka terdapat dua po- lynomial u(x),v(x) dengan degree(u(x)) < degree(g(x)) dan degree(v(x)) < degree(f(x)), dengan demikian bahwa gcd(f(x),g(x)) = u(x)f(x)+v(x)g(x). (iii) Dari (ii), dengan mudah ditunjukkan bahwa gcd(f(x)h(x),g(x)) = gcd(f(x),g(x)) jika gcd(h(x),g(x)) = 1. Disana banyak analogi antara Z Ring Integral dengan ring polynomial F[x]. Kita daftark- an pada tabel 3.1 dan hasil lebih lanjut dapat dilihat di tabel 3.2. Teorema 3.2.8. Misalkan f(x) polynomial atas F dengan degree ≥ 1. Maka F[x]/(f(x)) bersama dengan penjumlahan dan perkalian yang didefinisikan pada tabel 3.2, berbentuk Ring. Lebih jauh, F[x]/(f(x)) adalah field jika dan hanya jika irreducible. Catatan 3.2.9. (i) Kita akan menotasikan ⊕ untuk penjumlahan dan untuk perkalian di F[x]/(f(x)). (ii) Jika f(x) adalah polynomial linear maka field F[x]/(f(x)) adalah field F dengan dirinya sendiri.
  • 22. 16 BAB 3. LAPANGAN BERHINGGA Contoh 3.2.10. (i) Diberikan ring dengan R[x]/(1+x2) = {a+bx : a,b ∈ R} merupakan field ketika 1+x2 adalah irreducible atas R. Faktanya, juga merupakan field C, untuk melihatnya kita hanya mengganti x di R[x]/(1+x2) dengan bilangan imaginer i. (ii) Diberikan ring Z2[x]/(1+x2 ) = {0,1,x,x+1} Kita selanjutnya mengkontruksikan penjumlahan dan perkalian didapat bahwa Z2[x]/(1+ x2) bukan field sebab (1+x)(1+x) = 0. (iii) Diberikan ring Z2[x]/(1+x+x2 ) = {0,1,x,1+x}. 1+x+x2 irreducible atas Z2[x]. Jadi ring Z2[x]/(1+x+x2) adalah field. 3.3 Structure of Finite Fields Lemma 3.3.1. Untuk setiap elemen β dari finite field F dengan q elemen, kita mempunyai βq = β Bukti. Untuk β = 0 jelas. Untuk β = 0 dan F∗ = {β1,β2,...,βq−1 | βi = 0 : i = 1,2,...,q−1}. Selanjutnya βF∗ = {ββ1,ββ2,...,ββq−1}. Jika i = j maka ββi = ββj sehingga βF∗ = F. Jadi β1β2,...,βq−1 = ββ1ββ2ββ3,...,ββq−1 = βq−1 β1β2,...,βq−1 Karena field maka βq−1 = 1.Jadi βq = β. Akibat 3.3.2. Misalkan F merupakan subfield dari E dengan |F = q. Maka anggota β dari E di F jika dan hanya jika βq = β Bukti. ⇒ Jelas, karena diketahui β ∈ E dan β ∈ F. Menurut Lemma 3.3.1, β ∈ F ⇔ βq = β. ⇐ Diketahui β ∈ E dan βq = β. Akan dibuktikan β ∈ F. Perhatikan polynomial f(x) = xq − x ∈ E(x). Banyak akan atau pembuat nol dari f(x) paling banyak ada q. Dan telah diketahui semua anggota F merupakan akar dari f(x) sehingga F = { akar -akar dari xq −x dalam E(x) } Teorema 3.3.3. Untuk sebarang bilangan prima p dan bilangan bulat n ≥ 1, terdapat dengan tunggal finite field dengan pn elemen. Bukti. (Eksistensinya) Pilih irreducible polynomial berderajat n(monic)atas Zp maka Zp[x] | f(x) = GF(pn) adalah field dengan banyak anggota pn dengan p bilangan prima. (Ketunggalannya) Jika E dan F finite field dengan | E |=| F |= pn, maka E ≤ E.F dan F ≤ E.F. Kita perhatikan polynomial xpn −x atas E.F. Definisi 3.3.4. Anggota α didalam finite field Fq disebut primitive element atau generator dari Fq jika Fq = {0,α,α2,...,αq−1}.
  • 23. 3.3. STRUCTURE OF FINITE FIELDS 17 Contoh 3.3.5. Diberikan field F4 = F2[α], dimana α adalah akar dari polynomial irreducible 1+x+x2 ∈ F2[x]. Maka kita mempunyai α2 = −(1+α) = 1+α, α3 = α(α)2 = α(1+α) = α +α2 = α +1+α = 1 Jadi, F4 = {0,α,1+α,1} = {0,α,α2,α3} sehingga α elemen primitif. Definisi 3.3.6. Order dari elemen tak nol α ∈ Fq, dinotasikan sebagai ord(α) adalah meru- pakan bilangan bulat positif terkecil k sehingga α2 = 1. Contoh 3.3.7. Diketahui GF(9)GF(32), dan f(x) = 1+x2 ∈ Z3[x] yang merupakan polyno- mial irreducible. Jika α ∈ GF(9) = F3[α] sehingga α merupakan akar dari f(x) = 1 + x2 didapat 1+α2 = 0. Jadi α2 = −1 = 2, α3 = α.α22.α, α4 = α2.α.α = 2.α2 = 2.(−1) = 4 = 1 Jadi, order dari α adalah 4. Lemma 3.3.8. 1. Untuk setiap α ∈ GF(q)∗ berlaku ord(α) membagi habis (q−1). 2. ∀α,β ∈ GF(q)∗, jika gcd(ord(α),ord(β)) = 1 maka ord(α.β) = ord(α).ord(β). Bukti. 1. Misalkan m ∈ Z+ adalah bilangan dengan sifat αm = 1, maka m = a.ord(α)+b,0 ≤ b < ord(α). Didapat 1 = αm = αa.ord(α)+b = [αord(α)]a.αb = 1a.αb = αb. Karena α ∈ GF(q∗) maka αq−1 = 1. Jadi ord(α) | (q−1), karena q−1 = a.ord(α)+b dengan b = 0. 2. Misalkan γ = ord(α).ord(β), maka αγ = βγ. Karena α = αord(α).ord(β) = [αord(α)]ord(β) = 1ord(β) = 1 sehingga (α.β)γ = 1. Akibatnya ord(α.β) ≤ γ = ord(α).ord(β). Jika ord(α.β) = t maka 1 = (α.β)t.ord(α) = αt.ord(α).βt.ord(α) = βt.ord(α). Menurut bukti sebelumnya, ord(β) membagi t.ord(α) sehingga ord(β) | t.ord(α) dan gcd(ord(α).ord(β)) = 1, maka ord(β) | t. Dengan jalan yang sama bisa ditunjukk- an bahwa ord(α) | t. Akibatnya ord(α).ord(β) | t sehingga ord(α).ord(β) ≤ t = ord(α.β). Jadi terbukti ord(α).ord(β) = ord(α.β). Proposisi 3.3.9. 1. α ∈ GFq ∗ elemen primitive jika dan hanya jika ord(α) = q−1 2. Setiap finite field mempunyai sekurang -kurangnya satu elemen primitive. Bukti. 1. Jika α ∈ GF∗ dan ord(α) = q−1 maka {α,α2,...,αq−1} elemen -elemennya berbeda. Jadi GF∗ = {αi | i > 0}. 2. Misalkan m adalah least common multiple(lcm) dari order semua elemen dari Fq dengan m = lcm{ord(αi) | αi ∈ Fq ∗ }. Katakan m = r1 k1,r2 k2,...,rn kn dengan ri bilangan- bilangan prima yang berbeda k ≥ 0. Jika rk adalah salah satu diantara para ri ki maka terdapat α ∈ Fq ∗ sehingga rk | ord(α). Akibatnya, α ord(α) rk mempunyai order rk sehingga untuk setiap i = 1,2,...,n terdapat βi ∈ Fq ∗ dengan ord(βi) = ri ki. Menurut Lemma 3.3.8, terdapat β ∈ Fq ∗ dengan ord(β) = m dan m | q−1 sehingga m ≤ q−1. Dilain pihak (q − 1) merupakan elemen dari Fq ∗ merupakan akar dari xm − 1. Akibatnya, m ≥ q−1. Jadi ord(β) = m = q−1.
  • 24. 18 BAB 3. LAPANGAN BERHINGGA Catatan 3.3.10. Jika α akar dari irreducible polynomial berderajat m atas Fq dan α juga elemen primitive dari Fm q ∗ maka anggotanya Fm q dapat disajikan dengan 2 cara yaitu sebagai berikut : 1. Fm q = {a0 +a1α1 +a2α2 +···am−1αm−1 | ai ∈ Fq} 2. Fm q = {0,α1,α2,...,αqm−1} Contoh 3.3.11. Diberikan f(x) = 1+x+x2 ∈ F2[x] dan f(x) irreducible. Jika α merupakan akar dari f(x) maka F8 = F2[α]. F8 = {a0 +a1x+a2x2 | ai ∈ F2} = {0,1,α,1+α,α +α2 ,1+α2 ,1+α +α2 } Apakah α merupakan elemen primitive ? Ingat ord(α) | (8−1). Jadi ord(α) | 7, kemudian kemungkinan ord(α) = 1 atau ord(α) = 7. Karena ord(α) = 1 maka ord(α) = 7. Karena | F8 |= 7. Jadi didapat bahwa α elemen primitive sehingga F8 = {0,α,α2,α3,α4,α5,α6,α7} sebab 0 = 0, 1 = α7, α = α1, 1+α = α3, α2 = α, 1+α2 = α6, α +α2 = α4,dan 1+α + α2 = α5. Zech’s Log Table Misalkan α elemen primitive dari Fq. Untuk setiap 0 ≤ i ≤ q−2 atau i = ∞, kita kontruksikan tabel Z(i) sehingga 1 + αi = αZ(i) dan α∞ = 0 sehingga ∀αi,α j ∈ Fq,0 ≤ i ≤ j ≤ q − 2. Selanjutnya diperoleh αi +α j = αi(1+α j−1) = αi+Z(q−1). Contoh 3.3.12. α3 +α5 = α3 (1+α2 ) = α3 .αZ(2) = α3+Z(2) Latihan 3.1 Tunjukkan bahwa sisa setiap bilangan bulat pangkat dua dibagi oleh 4 adalah salah satunya 0 atau 1. Selanjuntya, tunjukkan bahwa tidak ada bilangan bulat x dan y dengan demikian x2 +y2 = 40403. 3.2 Kontruksikan tabel penjumlahan dan perkalian untuk ring Z5 dan Z8. 3.3 Temukan invers perkalian setiap elemen dibawah ini : (a) 2,5 dan 8 di Z11 (b) 4,7 dan 11 di Z17 3.4 Misalkan p bilangan prima.
  • 25. 3.3. STRUCTURE OF FINITE FIELDS 19 (i) Tunjukkan bahwa p j ≡ 0 (mod p) untuk sebarang 1 ≤ j ≤ p−1. (ii) Tunjukkan bahwa p−1 j ≡ (−1)j (mod p) untuk sebarang 1 ≤ j ≤ p−1. (iii) Tunjukkan bahwa, untuk sebarang dua elemen α,β didalam field dengan chara- cteristic p, kita mempunyai (α +β)pk = αpk +β pk Untuk sebarang k ≥ 0. 3.5 (i) Verifikasikan bahwa f(x) = x5 −1 ∈ F31[x] bisa dituliskan sebagai hasil kali dari (x2 −3x+2)(x3 +3x2 +7x+5). (ii) Tentukan sisa dari f(x) dibagi oleh x2 −3x+2. (iii) Hitunglah sisa f(x) dibagi oleh x5,x7, dan x4 +5x3. 3.6 Verifikasikan bahwa polynomial dibawah ini merupakan irreducible : (a) 1+x+x2 +x3 +x4, 1+x+x4, dan 1+x3 +x4 atas F2. (b) 1+x2, 2+x+x2 dan 2+2x+x2 atas F3. 3.7 Setiap polynomial kuadrat atau pangkat tiga salah satunya irreducible atau mempunyai faktor linear (a) Temukan banyaknya polynomial monic kuadrat atas Fq. (b) Temukan banyaknya polynomial monic pangkat tiga atas Fq. (c) Hitunglah semua polynomial irreducible kuadrat dan pangkat tiga atas F2. (d) Hitunglah semua polynomial monic kuadrat irreducible atas F3. 3.8 Misalkan f(x) = (2 + 2x2)(2 + x2 + x3)2(−1 + x4) ∈ F3[x] dan g(x) = (1 + x2)(−2 + 2x2)(2+x2 +x3) ∈ F3[x]. Carilah gcd(f(x),g(x)) dan lcm(f(x),g(x)). 3.9 Temukan dua polynomial u(x) dan v(x) ∈ F2[x] dengan demikian bahwa deg(u(x)) < 4, deg(v(x)) < 3 dan u(x)(1+x+x3 )+v(x)(1+x+x2 +x3 +x4 ) = 1
  • 26. 20 BAB 3. LAPANGAN BERHINGGA
  • 27. Bab 4 Linear Code Sebuah kode linear dengan panjang n atas lapangan berhinggga (finite field) secara sederhana ruang bagian dari ruang vektor Fq n . Ketika kode linear adalah merupakan ruang vektor menjadi lebih mudah untuk menjelaskannya dan menggunakannya daripada yang bukan kode linear. 4.1 Vector Space over finite fields Definisi 4.1.1. Misalkan Fq merupakan lapangan berhingga dengan banyaknya q. V him- punan tak kosong bersama dengan operasi penjumlahan(+) dan perkalian skalar dengan elemen Fq adalah ruang vektor(ruang linear) jika memenuhi semua kondisi dibawah ini : (i) u+v ∈ V (ii) (u+v)+w = u+(v+w); (iii) Terdapat elemen 0 dengan sifat 0+v = v = v+0 untuk semua v ∈ V. (iv) Untuk setiap v ∈ V terdapat elemen V yang disebut −u sehingga u + (−u) = 0 = (−u)+u; (v) u+v = v+u (vi) λv ∈ V (vii) λ(u+v) = λu+λv,(λ +u) = λu+λu (viii) (λµ)u = λ(µu) (ix) Jika 1 merupakan elemen identitas perkalian dari Fq, maka 1.u = u. Definisi 4.1.2. Himpunan bagian C dari ruang vektor V adalah ruang bagiansubspace V jika ruang vekto yang mempunyai penjumlahan dan perkalian vektor yang sama dengan V. Proposisi 4.1.3. Himpunan bagian C dari ruang vektor V atas Fq adalah subspace jika dan hanya jika terpenuhi syarat dibawah ini: jika x,y ∈ C dan λ,µ ∈ Fq, maka λx+ µy ∈ C. 21
  • 28. 22 BAB 4. LINEAR CODE 4.2 Linear Code Kita akan memperkenalkan linear code. Misalkan himpunan semua pesan yang kita harapkan dapat ditransmisikan adalah himpunan semua k−tuple yang mempunyai suatu field F dengan q elemen. Kita notasikan semua himpunan k−tuple atas F menggunakan Vk(F) maka ada qk elemen. Himpunan ini disebut sebagai ”ruang vektor” dan disini kita sebut sebagai ”message space”. Misalkan kita memerlukan untuk mendeteksi atau mengoreksi kesalahan, kita harusnya menambah beberapa pengulangan yang ada. Selanjutnya, pesan(message) k−tuple disisipkan kedalam n− tuple dengan n ≥ k. Jadi kita akan mengatur korespodensi satu-satu antara qk pesan dan qk n−tuple didalam Vn(F). Teknik ini secara aljabar dikatakan sebagai bentuk ruang bagian berdimensi-k di dalam Vn(F). Kita bisa mendapat ruang bagian berdimensi-k dengan k vektor- vektor yang bebas linear di Vn(F). Kita bisa memilih k vektor -vektor yang bebas linear adalah (qn −1)(qn −q)(qn −q2 )···(qn −qk−1 ) (4.1) Ketentuannya sebagai berikut : • (qn −1) didapat dengan memilih sebarang vektor tak nol. • (qn −q) didapat dengan memilih sebarang vektor yang bebas linear dari vektor pertama yang terpilih • (qn −q2) didapat dengan memilih sebarang vektor yang bebas linear dari vektor kedua yang terpilih ... • (qn − qk−1) didapat dengan memilih sebarang vektor yang bebas linear dari vektor (k −1) dengan Kita dapat memilih qn −qi cara tetapi ini hanyalah menghitung banyak himpunan terurut dari k− vektor yang bebas linear. Dengan cara yang sama, ruang bagian berdimensi-k memuat (qk −1)(qk −q)···(qk −qk−1 ) (4.2) Jadi total banyaknya ruang bagian berdimensi-k di Vn(F) adalah s = (qn −1)(qn −q)···(qn −qk−1) (qk −1)(qk −q)···(qk −qk−1) = (qn −1)(qn−1 −1)···(qn−k+1) (qk −1)(qk−1 −1)···(q−1) Jadi, Kode linear(linear code) atas F adalah ruang bagian dari Vn(F) berdimensi k(n,k,d). Contoh 4.2.1. Diberikan V3(Z3) = {a1a2a3 | ai ∈ Z3}. Tentukan banyaknya dua vektor yang bebas linear didapat (23 −1)(23 −2) = 7.6 = 42. Jika kita memilih sebarang satu dari s ruang bagian, maka kita bisa mendefinisikan korepedensi satu-satu antara vektor di ruang bagian S dan ruang pesan M adalah pertama memilih sebuah basis katakan B = {v1,v2,...,vk} untuk S dan kemudian kita definisikan korespodensinya adalah f : M → S dengan f(m) = ∑k i=1 mivi, dimana m = {m1,m2,...,mk} adalah message k−tuple,i.e m ∈ M. Contoh 4.2.2. Misalkan diberikan basis β = {β1,β2} dengan β1 = {110} dan β2 = {0110}, maka didapatkan sebagai berikut : 00 → 0.β1 +0.β2 = 0000 01 → 0.β1 +1.β2 = 0110 10 → 1.β1 +0.β2 = 1100 11 → 1.β1 +1.β2 = 1010
  • 29. 4.3. HAMMING WEIGHT 23 4.3 Hamming Weight Hamming Weight dari suatu vektor v, dengan notasi w(v) adalah banyaknya transisi koordinat dari v yang komponennya bukan nol. Hamming Wight dari (n,k)− code C adalah w(C) = min{w(C) | c ∈ C,c = 0} Contoh 4.3.1. V = (1011001) → w(v) = 4 Contoh 4.3.2. Diberikan himpunan kode dibawah ini : S1 = {01000,00100,01100,00001} S2 = {00000,01100,00011,01111} S2 dan S1 masing -masing merupakan ruang bagian dari V5(Z2) yang berdimensi 2. S1 dan S2 masing - masing merupakan (5,2)− code. Salah satu keuntungan kode linear yaitu distancenya sama dengan weight dari kode linear tersebut. Teorema 4.3.3. Jika d merupakan distance dari (n,k) code C, maka berlaku d = w(C). Bukti. d(C) = min{d(x,y) | x,y ∈ C,x = y}, bisa dicek d(x,y) = w(x−y) sehingga d(C) = min{w(x−y) | x,y ∈ C,x = y} = min{w(a) | a ∈ C,a = 0} = w(C) Contoh 4.3.4. Diketahui GF(4) = {0,1,x,1 + x} merupakan polynomial irreduciblenya 1+x+x2, GF(4) = {1,2,3,4} dan V = (01230112), dan W = {02311113} didapat w(v) = 5 dan w(w) = 7, serta w.(v−w) = 5. Contoh 4.3.5. Diberikan (5,3)−kode C dengan basis dibawah in : V1 = (10001) V2 = (00010) V3 = (00100) C = {10001,00010,00100,10010,10100,00110,10111,00000} G =   V1 V2 V3   =   1 0 0 0 1 0 0 0 1 0 0 0 1 0 0   → generator matriks untuk (5,3)− code C Jika pesan m = (a,b,c) disandikan ke m.G = A = a b c =   1 0 0 0 1 0 0 0 1 0 0 0 1 0 0   = a 0 b c a Jika basis yang kita pilih berbeda katakan V1 = (10010) V2 = (01011) V3 = (00101) Maka pesan m = a b c akan disandikan menjadi m.G = a b c =   1 0 0 1 0 0 1 0 1 1 0 0 1 0 1   = a b c a+b b+c
  • 30. 24 BAB 4. LINEAR CODE Diketahui (n,k)− codeC dengan generator matrik G =      V1 V2 ... Vr      dengan V1 V2 ... Vk bebas linear dan Span V1 V2 ... Vk = C G =      a11 a12 ... a1n a21 a22 ... a2n ... ... ... ak1 ak2 ... akn      → G =      b11 b12 ... b1n b21 b22 ... b2n ... ... ... bk1 bk2 ... bkn      Generator matrik G untuk (n,k)− code C dikatakan sama dalam bentuk standar(standard form) jika G berbentuk G = Ik A dengan Ik adalah matriks identitas bertipe k ×k :      1 0 ... 0 0 1 ... 0 ... ... ... ... 0 0 1      k×k dan A matriks bertipe k ×(n−k) Contoh 4.3.6. G =   1 0 0 1 0 0 1 0 1 1 0 0 1 0 1   Jika basis yang kita pilih berbeda, katakan V1 = (00010) V2 = (00001) V3 = (00101) Definisi 4.3.7. (n,k)− code C dikatakan ekuivalen dengan (n,k)− code C jika dapat dike- nakan matrik permutasi P sehingga C = GP. Definisi 4.3.8. Diberikan (n,k)− code C, terdapat generator matriks G = [Ik A] untuk C atau ekuivalen code C . Definisi 4.3.9. Diketahui x,y ∈ Vn(F dengan Teorema 4.3.10. C⊥ ini merupakan (n,n−k)− code atas F 1. C⊥ ruang vektor atas F 2. dim(C⊥) = n−k Teorema 4.3.11. Diketahui H merupakan parity check matrix untuk (n,k)− code C atas F, setiap s−1 kolom dari H bebas linear jika dan hanya jika C merupakan distance sekurang- kurangnya S. G = [Ik A] Generator untuk C H = [−At In−k] Generator untuk C⊥
  • 31. Bab 5 First Order Reed Muller Codes 5.1 Pendahuluan Sebelum dibahas mengenai Reed Muller Code akan dibahas terlebih dahulu mengenai linear code. Linear code menjadi dasar teori dari Reed Muller Code sebab Reed Muller Code merupakan kelas spesial dari linear code. Definisi 5.1.1. Suatu linear code−(n,k) atas F adalah subruang berdimensi k atas Vn(F). Linear code dengan panjang n, berdimensi k dan berdistance d dinotasikan dengan (n,k,d). Pada linear code didefinisikan Hamming weight yang analog dengan Hamming distance. Berikut ini definisi Hamming weight. Definisi 5.1.2. Hamming weight dari suatu vektor v ∈ Vn(F) dinotasikan w(v) yang meru- pakan jumlah dari koordinat tak nol di v. Untuk memperjelas definisi di atas, berikut diberikan definisi Hamming weight atas (n,k)-code C. Definisi 5.1.3. Hamming weight atas (n,k)-code C adalah w(C) = min{w(x) : x ∈ C,x = 0} . Untuk memperjelas definisi 5.1.2 dan definisi 5.1.3 berikut diberikan contoh. Contoh 5.1.4. Diberikan P1 = {(0000),(0101),(1000),(1110)} P2 = {(0000),(1100),(0011),(1111)} P1 dan P2 keduanya merupakan subruang berdimensi 2 atas V4(Z2). Hamming distance dan Hamming weight dari P1 kedua-duanya bernilai 1, sedangkan untuk P2 kedua-duanya bernilai 2. Dari contoh di atas Hamming distance dari masing-masing code sama dengan Hamming weight. Hal ini bukan merupakan suatu kebetulan. Untuk memperjelas hal tersebut, berikut ini berikan suatu teorema. Teorema 5.1.5. Diberikan d yang merupakan distance dari (n,k)-code C. Sehingga d = w(C) . 25
  • 32. 26 BAB 5. FIRST ORDER REED MULLER CODES 5.2 Generator Matrices Suatu linear code dapat dikarakterisasi oleh suatu generator matrik. Definisi 5.2.1. Suatu generator matriks G untuk (n,k)−code C adalah suatu matriks beru- kuran k ×n dimana baris-barisnya merupakan basis dari C. Untuk memperjelas definisi generator matriks berikut ini diberikan suatu teorema. Teorema 5.2.2. Jika C merupakan suatu (n,k)-code atas lapangan F, kemudian terdapat suatu generator matriks G untuk C atau ekuivalen dengan C maka G = Ik A 5.3 Parity Check Berikut ini diberikan definisi parity check. Definisi 5.3.1. Jika G merupakan generator matriks dari C, maka H generator matriks dari C⊥ . Kemudian misalkan C merupakan (n,k)−code atas lapangan F. Jika H generator matriks untuk C⊥ maka H disebut parity-check matriks untuk C. 5.3.1 Hamming Code Berikut ini diberikan definisi Hamming code. Definisi 5.3.2. Suatu Hamming code dari order r atas GF(q) adalah suatu (n,k) -code dimana n = (qr −1) (q−1) dan k = n−r, dengan parity-check Hr yaitu matriks berukuran r × n, sehingga entri dari kolom-kolom matriks Hr bukan nol dan kolom yang lain bukan kelipatan kolom lainnya. Diberikan Hr matriks parity check untuk ((2r)−1,(2r)−1−r)- binary Hamming Code seperti yang dijelaskan pada dasar teori. Didefinsikan Br = [Hr0], dengan Hr kolom kolom 0 nya adjoint. Diberikan v1,v2,...,vr adalah vektor vektor baris dari Br dan 1 adalah baris vektor semua 1 dengan panjang 2r . Definisi 5.3.3. First Order Reed Muller Codes, dinotasikan R(1,r) sebagai Ruang bagian yang dibangun oleh vektor-vektor 1,v1,v2,...,vr. R(1,r) adalah binary code dengan generator matriks G = [1/Br] = [1/(Hr0)] Berikut ini teorema yang menjamin First Order Reed Muller Code merupakan Linear Code Teorema 5.3.4. R(1,r) adalah (2r,r +1,2r −1)-code. Bukti. Akan dibuktikan bahwa R(1,r) memiliki panjang 2r berdimensi r +1 dan distance 2r −1 . Karena generator memiliki 2r maka n = 2r . Karena G memiliki r+1 dan baris baris tersebut saling bebas linear. Karena dapat ditemukan submatriks Br berupa matriks identitas r × r, dan baris terakhirnya bebas linear, tentu baris pertama juga bebas linear dengan baris yang lain, Oleh karena itu k = r +1. Sekarang akan ditunjukkan jarak atau distance kode adalah d = 2r −1 yaitu jarak atau distance minimum R(q,r) adalah 2r −q . Didefinisikan R(q,r) = {(x,x + y) : x ∈ R(q,r − 1),y ∈ R(q − 1,r − 1)} Jelas bahwa R(q − 1,r − 1) ⊆ R(q,r − 1). Dapat ditemukan bahwa x+y ∈ R(q,r −1). Sehingga diperoleh 2 kasus, yaitu:
  • 33. 5.4. HADAMARD MATRIX 27 1. x = y Dengan hipotesis induktive, weight dari x+y paling tidak 2(r−1) −q. Demikian juga weight x paling tidak 2(r−1) − q. Sehingga : ω(x,x + y) = ω(x + y) + ω(x) ≥ 2.2r −q−1 = 2r −q 2. x = y Karena x = y maka (x,x + y) = (x,0) = (y,0), dan karena y ∈ R(q − 1,r − 1), sehingga di peroleh: ω(x,x+y) = ω(y,0) = ω(y) ≥ 2(r−1) −(q−1) = 2r −q Sehingga distance kode adalah 2r −q. Karena R(1,r) dengan q = 1. Maka distance kode adalah 2r −1. Contoh 5.3.5. Diberikan First Order Reed Muller Code R(1,r) untuk r = 3. H =   1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1   B3 = [H30] =   1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1   G = [1/Br] = [1/(Hr0)] =     1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1     5.4 Hadamard Matrix Definisi 5.4.1. Hadamard Matriks Hn order n adalah n×n matriks dengan entri bilangan bulat +1 dan -1 dimana baris-barisnya saling orthogonal. Contoh 5.4.2. Hadamard matriks untuk order 1, 2, dan 4 sebagai berikut : H1 = 1 H2 = 1 1 1 −1 H4 =     1 1 1 1 1 −1 1 −1 1 1 −1 −1 1 −1 −1 1     Menurut definisi 5.4.1 diperoleh HnHT n = nIn Beberapa sifat Hn
  • 34. 28 BAB 5. FIRST ORDER REED MULLER CODES 1. Hn = nHT n dan HT n Hn = nIn 2. Menukar baris atau kolom pada suatu matriks Hadamard akan menghasilkan matriks Hadamard yang lain. 3. Mengalikan baris atau kolom dengan -1 pada suatu matriks Hadamard akan mengha- silkan matriks Hadamard yang lain. Diberikan matrik Hadamard Hn dengan order n, dapat dibentuk matriks H2n = Hn Hn Hn −Hn Matriks diatas disebut sebagai Matriks Kronecker product. Definisi 5.4.3. Diberikan A = [aij] dan B = [bij] matriks persegi berorde m dan n Kronecker product A dengan B, dinotasikan A×B adalah matriks berukuran mn×mn A×B = [aijB] . yang diperoleh dengan cara menukarkan elemen ke−(i, j) dari A dengan matriks aijB , matriks B yang tiap elemennya dikalikan dengan aij. Definisi 5.4.4. Proper ordering Pr binary r−tupel adalah order yang didefinisikan secara rekursif dengan aturan : 1. P1 = [0,1] 2. Jika Pi = [b1,b2,,b(2i)] maka P(i+1) = [b10,b20,,b(2i))0,b11,b21,,b(2i)1], untuk 1 ≤ i ≤ r −1 5.4.1 Hadamard Transform Berikut diberikan suatu definisi Hadamard transform. Definisi 5.4.5. Hadamard Transform dari 2r tuple R adalah 2r tuple ˆR dimana komponen yang bersesuaian dari R bersesuaian dengan r−tuple u ∈ Vr adalah ˆR(u) = ∑ v∈Vr (−1)u.v .R(v) Dengan komponen dari R merupakan bilangan bulat +1 dan -1. Komponen dari ˆR meru- pakan bilangan bulat karena R(v) = (−1)r(v) , Maka akan dipunya ˆR(u) = ∑ v∈Vr (−1)u.v+r(v) Sebagai alternatif definisi, didefinisikan ˆR sebagai berikut ˆR = RH Dimana H adalah Hadammard matrix berorder 2r dengan baris dan kolom diindex dengan 2r vektor biner yang berbeda di Vr .
  • 35. 5.4. HADAMARD MATRIX 29 Contoh 5.4.6. Untuk u = (110)T , karena u bersesuaian dengan kolom ke-4 maka R dikalikan dengan kolom ke -4 dari Hadamard matriks sehingga diperoleh ˆR = (1)·(1)+(1)+1·(1)+(1)·1+(1)·1+(1)(1)+1·(1)+1·1 = −2 Misalkan n = 2r dan u1,u2,,u(n−1) merupakan binary r−tuples dalam proper order. Di- bentuk sebuah matriks dengan elemen-elemennya +1 dan -1. Didefinisikan elemen H = [hij] dengan elemen ke−(i, j), yaitu : hij = (−1)(uiuj) Diberikan r merupakan binary 2r−tuple.Untuk binary r−tuples u didefinisikan scalar r(u) sebagai komponen r yang bersesuaian dengan u. Dari r kita bentuk suatu 2r−tuple R dimana komponen dari vector R yang bersesuaian dengan u adalah scalar bilangan real. R(u) = (−1)(r(u)) R merupakan suatu vector dengan entri +1 dan -1, dan karena r adalah vector biner maka r(u) adalah 0 atau 1. Contoh 5.4.7. Untuk r = 3, diberikan r = (1101 1100). Misalkan untuk (110)T bersesuaian dengan kolom ke-4 dari matriks B3 (pada Contoh 5.3.5). Sehingga r((110)) mengambil dari komponen ke-4 dari r. Oleh sebab itu r(110) = 1. Dari r kita memperoleh R, komponen R yang bersesuaian dengan (110) didefinisikan R((110)) = (−1)(r(110)) = (−1)1 = −1 Maka komponen ke-4 dari R adalah -1. Dengan menghitung komponen yang lain diperoleh R = (−1,−1,1,−1,−1,−1,1,1) Teorema berikut memberikan basis untuk skema pengkodean untuk R(1,r) Teorema 5.4.8. ˆR(u) adalah banyaknya angka 0 dikurangi banyaknya angka 1 di vektor biner t = r + r ∑ i=1 uivi dimana u = (u1;u2;...;ur)T adalah r−tupel dan vi adalah baris ke−i dari Br. Bukti. Ambil vi = (ai1,ai2,.....,ain), n = 2r, 1 ≤ i ≤ r. diberikan n−tuple biner r ∑ i=1 uivi = [ r ∑ i=1 uiai1, r ∑ i=1 uiai2,....., r ∑ i=1 uiain] = (uI1,uI2,.....,uIn) = uBr dimana Ij merupakan vektor kolom ke- j di Br. Dengan menggunakan kolom dari Br yang berhubungan dengan komponen r−tuple biner. Dengan menggunakan definisi diperoleh r = (r(I1),r(I2),....,r(In)).
  • 36. 30 BAB 5. FIRST ORDER REED MULLER CODES maka t = r + r ∑ i=1 uivi = (uI1 +r(I1),uI2 +r(I2),...,u(In)+r(In)) jelas bahwa (−1)u.Ij+r(Ij) akan memiliki 2 kemungkinan nilai yaitu −1 jika u.Ij +r(Ij) = 1 dan +1 jika u.Ij +r(Ij) = 0. menurut definisi Hadamard Transform maka diperoleh ˆR(u) = ∑ v∈Vr (−1)u.v .R(v). karena kolom Ij dari Br merupakan r−tuple yang berbeda semua maka dimungkinkan untuk ditulis sebagai ˆR(u) = n ∑ j=1 (−1)u.Ij+r(Ij) dimana ˆR(u) dihitung +1 untuk komponen di t yang bernilai 0, dan -1 untuk setiap komponen yang bdrnilai 1. Dari teorema 5.4.8 akan diperoleh persamaan berikut: d(r,1+ r ∑ i=1 uivi) = 1/2(2r + ˆR(u)). Sekarang akan dibahas bagaimana menggunakan persamaan di atas. Misalkan r adalah vektor yang di terima, r dapat disandikan ke codeword terdekat. Pesan (r +1)−tuple seperti m = (u0;u) dengan u adalah suatu r−tuple dan u0 = 0 atau 1. Dengan menggunakan persamaan di atas, jarak minimum adalah min{2r − ˆR(u),2r + ˆR(u)}. Berikut algoritma untuk First Order Reed muller Codes Diberikan r yang merupakan vektor biner dengan panjang 2r Diberikan kolom dari Br yang adalah proper ordering Pr Diberikan H yang merupakan Hadammard matrix H = H(2r) 1. Hitung R dan ˆR dimana R(u) = (−1)r(u) dan ˆR = RH 2. Temukan komponen ˆR(u) dari ˆR yang mana magnitude nya maximum. ambil u = (u1,...,ur)T 3. Jika ˆR(u) > 0 maka r dikodekan ke ∑r i=1 uivi 4. Jika ˆR ≤ 0 maka r dikodekan ke 1+∑r i=1 uivi Contoh 5.4.9. Dikonstruksikan generator matrix untuk R(1,3) B3 =   0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1  
  • 37. 5.4. HADAMARD MATRIX 31 maka akan diperoleh : G =     1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1     dengan menggunakan proper ordering P3 diperoleh matriks Hadamark sebagai berikut : H =             1 1 1 1 1 1 1 1 1 −1 1 −1 1 −1 1 −1 1 1 −1 −1 1 1 −1 −1 1 −1 −1 1 1 −1 −1 1 1 1 1 1 −1 −1 −1 −1 1 −1 1 −1 −1 1 −1 1 1 1 −1 −1 −1 −1 1 1 1 −1 −1 1 −1 1 1 −1             Andaikan r = (01110110) yang diterima decoder. Maka R = (1,−1,−1,−1,1,−1,−1,1) Dan dengan perkalian matriks akan diperoleh ˆR = RH = (−2,2,2,6,−2,2,2,−2) komponen magnitude yang terbesar terletak pada posisi ke 4. Komponen yang berkores- pondensi dengan kolom ke4 dari B3 diperoleh u = (110)T karena ˆR(110) = 0 positif maka r dekodekaan ke c = r ∑ i=1 uivi = 1.v1 +1.v2 +0.v3 = (01100110)
  • 38. 32 BAB 5. FIRST ORDER REED MULLER CODES
  • 39. Bab 6 Cyclic Codes 6.1 Pendahuluan Cyclic codes merupakan salah satu linear codes yang banyak digunakan karena beberapa keunggulan seperti kode yang mudah untuk dikodekan (encoded), dapat digunakan untuk membaca kode (decoding) serta banyak kode - kode penting yang dapat disajikan ke dalam cyclic codes misalnya Golay codes dan BCH codes. Pada bab didefinisikan kode - kode mana saja yang dapat digolongkan sebagai cyclic codes, sifat-sifat cyclic codes, algoritma pengkodeannya sampai aplikasinya pada Burst-error-correcting codes. Definisi 6.1.1. Subruang S dari Vn(F) disebut Subruang Siklik jika (a1,a2,...,an−1,an) ∈ S maka (an,a1,a2...,an−1) ∈ S Selanjutnya diberikan definisi Cyclic Code sebagai berikut. Definisi 6.1.2. Linear Code C disebut Cyclic Code jika C merupakan subruang siklik Contoh 6.1.3. S = {(000),(210),(021),(102),(201),(120),(012),(222),(111)} merupakan cyclic code dari V3(Z3). Untuk meenghubungkan struktur cyclic codes dengan struktur aljabar, dibuat fungsi π dari Fn q ke Fq[x]/(xn −1) sebagai berikut : Fn q → Fq[x]/(xn −1) (a0,a1,...,an−1) → a0 +a1x+...+an−1xn−1 (6.1) Dari hubungan diatas, jika suatu kode dipandang sebagai suatu vektor (a0,a1, ...,an−1) maka kode tersebut bersesuaian dengan polinomial a0 +a1x+...+an−1xn−1 Contoh 6.1.4. Cyclic code C = {000,110,101,011} besesuaian dengan π(C) = {0,1+x,1+x2 ,x+x2 } ⊂ F2[x]/(x3 −1) Telah kita ketahui bahwa Fq[x]/(xn −1) merupakan ring, selanjutnya akan ditunjukkan bahwa Fq[x]/(xn −1) merupakan ring atas ideal-ideal utama. Artinya, setiap elemennya merupakan ideal yang hanya dibangun oleh satu elemen. Teorema 6.1.5. Fq[x]/(xn −1) merupakan ring atas ideal-ideal utama 33
  • 40. 34 BAB 6. CYCLIC CODES Bukti. Diambil sebarang ideal, namakan J ∈ Fq[x]/(xn − 1). Untuk J yang berisi polinomial nol, jelas bahwa J ideal utama. Diambil sebarang polinomial nonzero g(x) di J dengan derajat terkecil, maka untuk sebarang f(x) ∈ J kita dapat f(x) = s(x)g(x)+r(x) untuk suatu s(x),r(x) ∈ Fq[x] dengan deg(r(x)) < deg(g(x)). Karena g(x) memiliki dera- jat terkecil, maka r(x) = 0 = f(x) − s(x)g(x). Dengan kata lain, untuk sebarang f(x) ∈ J danr(x) ∈ Fq[x]/(xn −1), f(x) = s(x)g(x). Artinya J =< g(x) > dan Fq[x]/(xn −1) meru- pakan ring atas ideal-ideal utama. Dari teorema ini dapat kita ketahui bahwa polinomial yang dipetakan oleh π dengan vektor atas lapangan Fq diatas, hanya dibangun oleh satu buah elemen. Pada sub bab selanjutnya akan dijelaskan hubungan pemetaan π tersebut dengan cyclic codes. 6.2 Generator Polinomial Dari definisi diatas didapat beberapa hubungan antara ideal dengan cyclic codes sebagai berikut Teorema 6.2.1. Diberikan π pemetaan. C ⊆ Fn q dan C = /0 adalah cyclic code jika dan hanya jika π(C) merupakan ideal atas Fq[x]/(xn −1) Bukti. (⇐) Diberikan π(C) ideal dari Fq[x]/(xn − 1). Diambil sebarang α, β ∈ Fq ⊂ Fq[x]/(xn − 1). Dengan definisi ideal didapat απ(a) ∈ π(C) dan βπ(b) ∈ π(C). sehing- ga απ(a)+π(b) ∈ π(C) karena transformasi linear, π(αa+βb) ∈ π(C) Akibatnya, αa+βb codeword di C. Dengan kata lain C linear code. misal c = (c0,c1,c2,...,cn−1) codeword dari C perhatikan, π(c) = c0 +c1x+....+c(n−2)xn−2 +cn−1xn−1 ∈ π(C) karena π(C) ideal maka, x.π(C) = c0x+c1x2 +....+c(n−2)xn−1 +cn−1xn ∈ π(C) = cn−1 +c0x+c1x2 +....+c(n−2)xn−1 +cn−1(xn −1) karenaxn −1 = 0, = cn−1 +c0x+c1x2 +....+c(n−2)xn−1 ∈ π(C) (6.2) sehingga (cn−1,c0,c1,...,cn−2) merupakan codeword di C. Dengan kata lain C merupakan siklik. Jadi,C cyclic code.
  • 41. 6.2. GENERATOR POLINOMIAL 35 (⇒) Diberikan C ⊆ Fn q dan C = /0 adalah cyclic code.Akan dibuktikan π(C) merupakan ideal atas Fq[x]/(xn − 1). Jelas Fq[x]/(xn − 1) merupakan ring polinmial. Ambil sebarang g(x) ∈ Fq[x]/(xn −1) dengan g(x) = g0 +g1x+...+gn−1xn−1 dan f(x) ∈ π(C). Untuk sebarang polinomial dengan (f0, f1,..., fn−1) ∈ π(C) : f(x) = f0 + f1x+...+ fn−2xn−2 + fn−1xn−1 = π(f0, f1,..., fn−1) karenaCsiklik, x f(x) = fn−1 + f0x+ f1x2 +...+ fn−2xn−1 ∈ π(C) x2 f(x) = x(x f(x)) ∈ π(C) . . . xi f(x) = x(xi−1 f(x)) ∈ π(C) (6.3) Karena C linear code dan π adalah tranformasi linear maka π(C) adalah subruang atas Fq sehingga, g(x).f(x) = n−1 ∑ i=0 gi(xi f(x)) ∈ π(C) dengan kata lain π(C) merupakan ideal atas Fq[x]/(xn −1). Jadi C ⊆ Fn q merupakan cyclic code, C = /0 ⇔ π(C) merupakan ideal atas Fq[x]/(xn −1) Teorema 6.2.2. Diberikan I ideal tak kosong di Fq[x]/(xn −1).Jika g(x) monic polinomial tak kosong dengan derajat terkecil pada I maka g(x) adalah generator dari I dan g(x) membagi habis (xn −1), serta tunggal. Bukti. Bagian pertama jelas dari teorema (1.3). Selanjutnya dengan algoritma pembagi xn −1 = s(x).g(x)+r(x) jelas degr(x) < degg(x)⇔ r(x) = (xn −1)−s(x).g(x) karena (xn −1) = 0 dan s(x).g(x) ∈ I, jelas r(x) ∈ I, dan deg(r(x)),deg(g(x)). Dan karena g(x) derajat terkecil pada I maka r(x) = 0. Oleh sebab itu g(x) pembagi dari xn −1. Dengan kata lain g(x)|xn −1 Diberikan gi(x), i=1,2. yaitu dua monic generator berbeda dengan derajat terkecil dari ideal I. Maka g1(x)−g2(x) adalah monic polinomial tak kosong dengan derajat terkecil di I.(Kontradiksi) Dengan kata lain g(x) monic generator tunggal. Definisi 6.2.3. Monic polinomial tunggal dengan derajat lebih kecil dari ideal I tak nol atas Fq[x]/(xn − 1) disebut generator polinomial untuk I. Dan untuk cyclic code C, generator polinomial dari π(C) disebut generator polinomial dari C. Teorema 6.2.4. Setiap pembagi monic dari xn −1 adalah polinomial generator dari beberapa cyclic code di Fn q .
  • 42. 36 BAB 6. CYCLIC CODES Bukti. Diberikan g(x) yang membagi habis xn − 1 dan I ideal yang dibangun oleh g(x) yaitu < g(x) > atas Fq[x]/(xn −1). Diberikan C cyclic code yang berkorespondensi dengan I =< g(x) >. Katakan h(x) adalah generator polinomial dari C, maka terdapat polinomial b(x), sementara h(x) harus di dalam I sehingga, h(x) ≡ g(x)b(x)mod(xn −1) Jadi g(x) membagi habis h(x), padahal h(x) berderajat lebih kecial dan monic. Sehingga g(x) = h(x). Akibat 6.2.5. Terdapat korespondesi 1-1 antara cyclic code di Fn q dan pembagi monic dari xn −1 ∈ Fq(x) Teorema 6.2.6. Jika g(x) merupakan generator dari suatu ideal di ring Fq[x]/(xn −1) dengan deg(g(x)) = n−k maka cyclic code yang ber-sesuaian dengan g(x) memiliki dimensi k Bukti. Diambil sebarang g(x) dari suatu ideal di Fq[x]/(xn − 1) dengan deg(g(x)) = n − k. Dibentuk himpunan A = {g(x)c(x)|c(x) ∈ Fq[x]/(xn −1),deg(c(x)) ≤ k −1} Perhatikan bahwa untuk setiap c1(x) = c1(x) yang memiliki deg(ci(x)) ≤ k−1(i = 1,2) tidak berlaku g(x)c1(x) ≡ g(x)c2(x) (mod(xn −1)) sehingga A memiliki qk elemen. Akan dibuktikan A =< g(x) >, jelas bahwa A ⊂< g(x) >. Selanjutnya, perhatikan bahwa untuk setiap g(x)a(x) dengan a(x) ∈ Fq[x]/(xn − 1) menurut algoritma pembagian dapat dituliskan sebagai, p(x) = g(x)a(x) = u(x)(xn −1)+v(x) ⇔ v(x) = a(x)g(x)−u(x)(xn −1) (6.4) dengan deg(v(x)) < n. Karena (xn −1) membagi g(x), maka v(x) dapat dituliskan sebagai v(x) = g(x)b(x), untuksuatu polinomial b(x) mengakibatkankan deg(b(x) < k. Artinya v(x) ∈ A. Dari sini terbukti A =< g(x) >, sehingga dimensi dari kode yang bersesuaian dengan g(x) ada sebanyak k. 6.3 Generator dan Matriks Parity-Check Pada subbab ini akan diidentifikasi generator matrik sekaligus matrik parity-check dari cyclic code beserta contoh-contoh penerapannya. Teorema 6.3.1. (Genarator Matrik cylcic codes) Diberikan g(x) = g0 +g1x+...+gn−kxn−k adalah generator polinomial dari cyclic code C di Fn q dengan deg(g(x)) = n−k. Matriks G =         g(x) xg(x) . . . xk−1g(x)         =         g0 g1 . . . gn−k 0 0 0 . . 0 0 g0 g1 . . . gn−k 0 0 . . 0 . . . . . . 0 0 . . . g0 g1 . . . . gn−k         merupakan generator matrik dari C.
  • 43. 6.3. GENERATOR DAN MATRIKS PARITY-CHECK 37 Bukti. Cukup dibuktikan bahwa g(x),xg(x),...,xk−1g(x) basis dariC. Jelas bahwa g(x),xg(x),...,xk−1g(x) bebas linear atas Fq. Berdasarkan teorema (2.6) sebelumnya diperoleh dim(C) = k. Dengan demikian g(x),xg(x),...,xk−1g(x) merupakan basis dari C. Contoh 6.3.2. Diberikan binary [7,4] cyclic code dengan generator polynomial g(x) = 1+ x2 +x3. Didapat generator matriknya sebagai berikut : G =     g(x) xg(x) x2g(x) x3g(x)     =     1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 1     Generator matrik tersebut bukan dalam bentuk standart. Jika dengan melaku kan operasi baris elementer akan didapat generator matrik dalam bentuk standar. jika baris ke 4 ditambahkan ke baris 2 dan baris ke 4 ditambahkan baris 1 didapat : G =     1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1     Kemudian baris ke 3 ditambahkan ke baris 1 didapat generator matrik standar sebagai berikut : G =     1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1     kemudian parity check matrik dapat dicari dengan mudah dari G’. Berdasarkan contoh diatas didapat bahwa parity-check matrik dari cyclic code dapat diperoleh dari generator matriknya dengan melakukan operasi baris elementer. Karena dual code dari cyclic code C juga merupakan cyclic code maka dapat diperoleh parity-check matrik dari generator polinomial dari dual code. Selanjutnya akan dibahas cara mendapatkan generator polynomial dari dual code C⊥. Definisi 6.3.3. Diberikan h(x) = ∑k i=0 aixi merupakan polynomial dengan degree k(ak = 0) atas Fq. Didefinisikan reciprocal polynomial hR dari h(x) dengan hR(x) := xh (1/x) = k ∑ i=0 ak−ixi Dari sini diperoleh jika h(x) pembagi dari xn −1 maka hR(x) juga pembagi dari xn −1 Contoh 6.3.4. 1. Diberikan polynomial h(x) = 1+2x+3x5 +x7 ∈ F5[x] didapat reciprocal polinomial dari h(x) adalah hR(x) = x7 h(1/x) = x7 (1+2(1/x)+3(1/x)5 +(1/x)7 ) = 1+3x2 +2x6 +x7
  • 44. 38 BAB 6. CYCLIC CODES 2. h(x) = 1+x+x3 ∈ F2 pembagi dari x7 −1. Akibatnya hR(x) = X3 h(1/x) = x3 (1+1/x+1/x3 ) = 1+x2 +x3 merupakan pembagi dari x7 −1 Teorema 6.3.5. Diberikan g(x) generator polynomial dari q-ary [n,k]-cyclic code C. Diambil h(x) = (xn −1)/g(x) maka h−1 0 hR(x) merupakan generator polinomial dari C⊥ dengan h0 merupakan bentuk konstan dari h(x) Bukti. Diberikan g(x) = ∑n−1 i=0 dan h(x) = ∑n−1 i=0 hixi maka didapat hR(x) = (1/xn−k−1 n−1 ∑ i=0 hn−i−1xi dengan k = deg(h(x)) Perhatikan bahwa, 0 ≡ g(x)h(x) ≡ (g0h0 +g1hn−1 +...+gn−1h1)+(g0h1 +g1h0 +...+gn−1h2)x +(g0h2 +g1h1 +...+gn−1h3)x2 +... +(g0hn−1 +g1hn−2 +...+gn−1h0)xn−1 )(modxn−1 ) (6.5) Koefisien dari setiap x pada baris terakhir harus 0. Hal ini mengakibatkan gi.(hn−1,hn−2,...,h1,h0) = 0 untuk setiap i = 0,1,...,n−1 dengan gi adalah vektor yang diperoleh dari (g0,g1,...,gn−1) yang digeser secara siklik sejauh i posisi. Oleh karena itu, (hn−1,hn−2,...,h1,h0) adalah codeword dari C⊥ sebab (g0,g1, ...,gn−1) membangun C dari teorema (3.1). Vektor (hn−1,hn−2,...,h1,h0) digeser secara siklik sejauh k+1 posisi sehingga vektor tersebut berkorespondensi ke hR(x). Dengan kata lain hR(x) adalah codeword dari C⊥ yang juga meru- pakan cyclic code. Karena deg(hR(x)) = deg(h(x)) = k, himpunan hR(x),xhR(x),...,xn−k−1hR(x) merupakan basis dari C⊥. Oleh karena itu C⊥ dibangun oleh hR(x). Kemudian monic polyno- mial h−1 0 hR(x) adalah generator polinomial dari C⊥. Definisi 6.3.6. Diberikan C merupakan q-ary cyclic code dengan panjang n. Diberikan h(x) = (xn −1)/g(x). Kemudian, h−1 0 hR(x) disebut parity-check polynomial dari C dengan h0 merupakan bentuk konstan dari h(x). Akibat 6.3.7. (Matrik Parity-check Cyclic Codes) Diberikan C sebuah q-ary[n,k] cyclic co- de dengan generator polynomial g(x). Diberikan h(x) = (xn − 1)/g(x). Diberikan h(x) = h0 +h1x+...+hkxk. Matrik H =         hR(x) xhR(x) . . . xn−k−1hR(x)         =         hk hk−1 . . . h0 0 0 0 . . 0 0 hk hk−1 . . . h0 0 0 . . 0 . . . . . . 0 0 . . . hk hk−1 . . . . h0         merupakan parity-chech matrix dari C.
  • 45. 6.4. DECODING 39 Contoh 6.3.8. Diberikan C merupakan binary [7,4] cyclic code yang dibangun oleh g(x) = 1+x2 +x3. Diambil h(x) = (x7 −1)/g(x) = 1+x2 +x3 +x4. Didapat hR(x) = 1+x+x2 +x4 yang merupakan parity-check polinomial dari C. Oleh karena itu H =   1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1   merupakan parity-check dari C. 6.4 Decoding Decoding cyclic code terdiri dari 3 langkah yang sama dengan decoding linear code yakni: menghitung syndrome, tentukan error pattern yang berkorespondensi dengan syndrome, perbaiki error. Dari akibat sebelumnya untuk cyclic code, kita dapat menghasilkan matrik parity-check dalam bentuk H = (In−k|A) dengan operasi baris elementer. Teorema 6.4.1. Diberikan H = (In−k|A) adalah matrik parity check dari q-ary cyclic code C. Bila g(x) adalah polinomial generator C, maka syndrome dari xεFn q adalah sama dengan w(x)mod(g(x)). note: w = (w0w1w2...wn−1) maka w(x) = w0 +w1x+w2x2 +...+wn−1xn−1 Bukti. Untuk tiap-tiap kolom matrik A kita asosiasikan dengan polinomial derajat paling besar n−k −1 dan tulis A sebagai A = (a0(x)a1(x)a2(x)....ak−1(x)) dari sebelumnya kita ketahui bahwa G = (−AT |Ik) adalah matrik generator untuk C. Oleh karena itu xn−k+i − ai(x) adalah codeword dari C. Ambil xn−k+i − ai(x) = qi(x)g(x) untuk suatu qi(x)ε Fq[x]/xn −1 ai(x) = xn−k+i −qi(x)g(x) misalkan w(x) = w0 +w1x+w2x2 +...+wn−1xn−1.Untuk syndrome s = wHT dari w,korespondensi polinomial s(x) adalah s(x) = w0 +w1x+w2x2 +...+wn−k−1xn−k−1 +wn−ka0(x)+...wn−1ak−1(x) = n−k−1 ∑ i=0 wixi − k−1 ∑ j=0 wn−k+j(xn−k+j −qj(x)g(x)) = n−1 ∑ i=0 wixi − ( k−1 ∑ j=0 wn−k+jqj(x))g(x) ≡ w(x)(modg(x)) (6.6) Dimana polinomial s(x) memiliki derajat paling besar n−k −1, dan s(x) adalah sisa pemba- gian w(x) oleh g(x).
  • 46. 40 BAB 6. CYCLIC CODES Akibat 6.4.2. Diberikan g(x) adalah polinomial generator cyclic code C. Untuk code w(x) yang diterima, jika sisa pembagian s(x) dari w(x) oleh g(x) memiliki weight kurang dari atau sama dengan (d(C)−1)/2 , maka s(x) adalah error pattern dari w(x); dengan kata lain w(x) di decode(perbaiki) menjadi w(x)−s(x) Bukti. Dari theorema sebelumnya kita peroleh bahwa w(x) dan s(x) ada di dalam satu koset. Kemudian karena w(x) ≤ (d(C)−1)/2 maka s(x) adalah koset leader(tunggal) maka w(x) akan diperbaiki(decode) menjadi w(x)−s(x). Lemma 6.4.3. Diberikan C adalah q-ary [n,k]-cyclic code dengan polinomial generator g(x). Jika s(x) = ∑n−k−1 i=0 sixi adalah syndrome dari w(x), maka syndrome dari cyclic shift xw(x) adalah sama dengan xs(x)−sn−k−1g(x) Bukti. Dari theorema sebelumnya, dapat kita tunjukkan bahwa xs(x)−sn−k−1g(x) adalah sisa pembagian dari xw(x) oleh g(x). Diketahui w(x) = q(x)g(x)+s(x), maka xw(x) = xq(x)g(x)+xs(x) = (xq(x)+sn−k−1)g(x)+(xs(x)−sn−k−1g(x)) jelas bahwa deg(xs(x)−sn−k−1g(x)) < n−k = deg(g(x)), dengan kata lain xs(x)−sn−k−1g(x) adalah syndrome dari xw(x). Secara induksi kita dapat menghitung syndrome dari xw(x),x2w(x),x3w(x),..... Definisi 6.4.4. Cyclic run of 0 dengan panjang l dari n-tuple adalah rangkaian cyclic l berurutan komponen 0 Contoh 6.4.5. 1. e=(1,3,0,0,0,0,0,1,0) memiliki cyclic run of 0 panjang 5 2. e=(0,0,1,2,0,0,0,1,0,0) memiliki cyclic run 0f 0 panjang 4 6.4.1 Algoritma Decoding Cyclic Codes Diberikan C adalah q-ary [n,k,d]-cyclic code dengan polinomial generator g(x). Jika w(x) diterima dengan error pattern e(x), dimana e(x) ≤ (d(C)−1)/2 dan e(x) memiliki cyclic runs of 0 sepanjang tidak lebih besar dari k. Langkah untuk menentukan e(x): 1. Hitung syndrome dari xiw(x), untuk i = 1,2,... dan notasikan syndrome sebagai si(x)(xiw(x)mod(g(x))) 2. Temukan m sedemikian weight dari syndrome sm(x) untuk xmw(x) kurang dari atau sama dengan (d(C)−1)/2 . 3. Hitung sisa pembagian e(x) dari xn−msm(x) dibagi oleh xn −1. perbaiki w(x) menjadi w(x)−e(x).
  • 47. 6.5. BURST ERROR CORRECTING CODES 41 6.5 Burst Error Correcting Codes Sejauh ini kita hanya berkosentrasi pada code yang dapat mengkoreksi random error. Padahal pada beberapa jaringan komunikasi seperti saluran telepon dan sistem penyimpanan magnetik, gangguan terjadi dalam waktu yang sangat singkat. Sehingga error yang diterima lebih bersifat localize error dibandingan random error. error yang bersifat localize itulah nantinya yang kita namakan burst error. Secara umum, code yang digunakan untuk mengkoreksi random error tidak efektif untuk mengkoreksi burst error. Tetapi kita dapat mengkontruksi code yang lebih spesifik untuk mengkoreksi burst error, code jenis ini nantinya dinamakan burst error correcting codes dan cyclic codes sangat efisien untuk mengkoreksi burst errors. Definisi 6.5.1. Burst dengan panjang l adalah vektor biner yang komponen-komponen tak nol nya memuat barisan siklik dengan panjang l,dimana komponen pertama dan komponen terakhir barisan siklik tersebut tidak bernilai nol. Contoh 6.5.2. 1. e1 = (01010110000) burst dengan panjang 6 di V11(Z2) 2. e2 = (00000010001) burst dengan panjang 5 di V11(Z2) 3. e3 = (01000000100) burst dengan panjang 5 di V11(Z2) Teorema 6.5.3. Linear code C adalah sebuah l-burst-error-correcting code jika dan hanya jika seluruh burst error dengan panjang l atau kurang berada di koset yang berbeda dari C. Bukti. Andaikan dua burst error berbeda b1 dan b2 dengan panjang l atau kurang berada di koset yang sama dari C, maka c = b1 −b2 adalah codeword yang tak nol. Sehingga jika b1 diterima, maka b1 dapat disandikan ke 0 dengan error b1 dan dapat disandikan ke c dengan error b2. Jadi linear code C bukan l-burst-error-correcting code, kontradiksi dengan yang diketahui. Pengandaian salah, harus diingkar. Yang benar seluruh burst error dengan panjang l atau kurang harus berada di koset yang berbeda dari C. Akibat 6.5.4. Katakan C =[n,k] linear l-burst-error-correcting code, maka 1. tidak ada burst tak nol dengan panjang ≤ 2l yang dapat menjadi codeword. 2. n−k ≥ 2l. Bukti. 1. katakan terdapat codeword c dengan panjang burst ≤ 2l. Tanpa mengurangi keumuman, c dapat berbentuk (0,1,u,v,1,0), dengan u dan v masing-masing vektor dengan panjang ≤ l.Dipilih w = (0,1,u,0,0,0) burst dengan panjang ≤ l, maka, x = (0,0,0,v,1,0) = c−w juga burst dengan panjang ≤ l. Sehingga c,w dan x = c−w berada pada koset yang sama dari C. Didapat w dan x dua burst tak nol dengan panjang ≤ l berada pada koset yang sama, kontradiksi dengan teorema, sehingga terbukti tidak ada burst tak nol dengan panjang ≤ 2l yang dapat menjadi codeword.
  • 48. 42 BAB 6. CYCLIC CODES 2. Katakan u1,u2,...un−k+1 adalah n−k+1 vektor kolom pertama dari parity check matrik C, maka ui,i = 1,2,...,n−k +1 ada di Fn−k 2 dan oleh karena itu vektor-vektor tersebut tidak bebas linear. Berarti terdapat c1,c2,...cn−k+1 ∈ F2 dengan tak semuanya nol dan berlaku n−k+1 ∑ i=1 ciui = 0 akibatnya (c1,c2,...cn−k+1) adalah codeword sekaligus burst dengan panjang ≤ n−k + 1. Dari teorema, syarat burst merupakan codeword adalah panjangnya harus lebih dari 2l. Jadi haruslah n-k+1¿2l, yang berarti n-k≥2l. Dari sini kita dapat menyimpulkan bahwa [n,k] linear l-burst-error-correcting code jika dan hanya jika l≤ n−k 2 6.5.1 Algoritma Decoding Burst-error-code Katakan C adalah l-burst-error-correcting code dengan generator polynomialnya adalah g(x) dan r(x) dan juga merupakan vektor yang diterima. untuk mencari error dan codeword yang dikirim, maka dilakukan langkah sebagai berikut: (1) hitung s0(x) dengan menggunakan algoritma pembagian (r(x) = a(x)g(x)+s0(x)) (2) i=0 (3) hitung si(x)(modg(x)), dengan si(x) = xis0(x) (4) hitung syndrome dari si(x) (5) jika si(x) adalah burst dengan panjang ≥l, maka berhenti dan error didapat, yaitu e(x) = xn−i(si,0) jika si(x) adalah burst dengan panjang ¿l,maka i=i+1 (6) Jika i=n,berhenti, error tidak didapat jika i¡n, kembali ke (3) Dengan algoritma ini, akan didapat error yaitu e(x), dengan ini maka r(x) yang diterima akan dapat dikoreksi ke r = r(x)−e(x). Contoh 6.5.5. g(x) = 1+x4 +x6 +x7 +x8 adalah pembangun dari (15,7)−cycliccode atas z2 dan diterima vektor r = (110011101100010), akan dicari codeword yang dikirim. Jawab: l≤ n−k 2 = 15−7 2 = 4 didapat C adalah 4-burst-error-correcting.
  • 49. 6.5. BURST ERROR CORRECTING CODES 43 untuk r = (110011101100010) diperoleh r(x) = 1+x+x4 +x5 +x6 +x8 +x9 +x13 = (x+x2 +x4 +x5 )g(x)+(1+x2 +x5 +x7 ) sehingga s0(x) = (1+x2 +x5 +x7 ) (6.7) i=0 s0(x) = 1+x2 +x5 +x7 syndrome s0(x) = (10100101) i=1 s1(x) = x+x3 +x6 +x8(modg(x)) s1(x) = 1+x+x3 +x4 +x7 syndrome s1(x) = (11011001) i=2 s2(x) = x+x2 +x4 +x5 +x8(modg(x)) s2(x) = 1+x+x2 +x5 +x6 +x7 syndrome s2(x) = (11100111) i=3 s3(x) = x+x2 +x3 +x6 +x7 +x8(modg(x)) s3(x) = 1+x+x2 +x3 +x4 syndrome s3(x) = (11111000) i=4 s4(x) = x+x2 +x3 +x4 +x5 syndrome s4(x) = (01111100) i=5 s5(x) = x2 +x3 +x4 +x5 +x6 syndrome s5(x) = (00111110) i=6 s6(x) = x3 +x4 +x5 +x6 +x7 syndrome s6(x) = (00011111) i=7 s7(x) = x4 +x5 +x6 +x7 +x8(modg(x)) s7(x) = 1+x5 syndrome s7(x) = (10000100)
  • 50. 44 BAB 6. CYCLIC CODES didapat l = 4 untuk syndrome s7(x), sehingga e(x) = xn−i (s7,0) e(x) = x15−7 (s7,0) e(x) = x8 (s7,0) e(x) = x8 (100001000000000) maka,e = (000000001000010) sehinggarkitakodekanke r −e = (110011101100010)−(000000001000010) r −e = (110011100100000) (6.8)
  • 51. Bab 7 BCH Code 7.1 Pendahuluan Pada bagian ini akan dijelaskan beberapa hal yang mendasar seperti lapangan hingga(finite field), gelanggang suku banyak(ring polynomial), suku banyak minimal(minimal polynomial), dan cyclotomic coset. 7.1.1 Finite Field Field dengan | F |< ∞ disebut lapangan hingga(finite field) dan F∗ sebagai himpunan F{0}. Teorema 7.1.1. Zn adalah lapangan hingga jika hanya jika n bilangan prima. Definisi 7.1.2. Misalkan F lapangan. Karakteristik F adalah bilangan bulat positif terkecil m dengan demikian bahwa m ∑ i=1 1 = 1+1+...+1 = 0 dimana 1 ∈ F. Jika m tidak ada maka karakteristiknya 0. Dibawah ini akan diberikan definisi dari elemen primitif. Selanjutnya yang dimaksud dengan GF(q) adalah Galois Field atau Lapangan Galois dengan q elemen. Catatan bahwa q harus mempunyai bentuk pn dengan p dan n bilangan prima. Sedangkan lapangan Zp secara sama didefinisikan sebagai GF(p). Lemma 7.1.3. Jika α,β ∈ F mempunyai karakteristik p, maka (α +β)p = αp +β p Definisi 7.1.4. Anggota α ∈ F lapangan hingga dikatakan generator F∗ atau elemen primitif jika {αi : i ≥ 0} = F∗ Lemma 7.1.5. Untuk setiap anggota tak nol α ∈ GF(q),αq−1 = 1. Selanjutnya, α ∈ GF(qm) jika hanya jika αq = α. Contoh 7.1.6. Diberikan GF(9) yang dikontruksikan menggunakan polynomial yang irredu- cible f(x) = x2 +1 ∈ Z3[x]. Carilah elemen primitif. Kita akan mencoba bahwa α = x+1 merupakan elemen primitif maka 45
  • 52. 46 BAB 7. BCH CODE (1+x)0 = 1 (1+x)4 = 2 (1+x)1 = 1+x (1+x)5 = 2+2x (1+x)2 = 2x (1+x)6 = x (1+x)3 = 1+2x (1+x)7 = 2+x Jadi α = 1+x merupakan elemen primitif untuk GF(9) 7.1.2 Ring Polynomial Definisi 7.1.7. Misalkan F merupakan lapangan. Himpunan F[x] = { n ∑ i=0 aixi : ai ∈ F,n ≥ 0} disebut sebagai ring polynomial atas F. Teorema 7.1.8. Misalkan f(x) suku banyak atas F dengan derajat(degree) ≥ 1. Maka F[x]/(f(x)) bersama dengan operasi penjumlahan dan perkalian berbentuk gelanggang. Lebih jauh, F[x]/(f(x)) adalah lapangan jika dan hanya jika irreducible. Lemma 7.1.9. Untuk setiap elemen β dari finite field F dengan q elemen, kita mempunyai βq = β 7.1.3 Minimal Polynomial Definisi 7.1.10. Misalkan F lapangan dengan karakteristik p dan misalkan α ∈ F∗. Suku banyak minimal α terhadap GF(p) merupakan suku banyak monic m(x) derajat terkecil di GF(p)[x] dengan demikian m(α) = 0. Teorema 7.1.11. Suku banyak minimal anggota α tunggal. Bukti. Andaikan F = GF(q) dan F mempunyai karakteristik p. Mengikuti Lemma 7.1.5 bahwa α memenuhi suku banyak xq−1 −1 ∈ GF(p)[x]. Ketika terdapat suatu suku banyak GF(p)[x] dengan α akarnya maka ada salah satu dari akarnya dengan derajat terkecil. Ini mengatakan bahwa ada suku banyak minimal yaitu m(x). Andaikan ada dua suku banyak monic m1(x) dan m2(x) dengan derajat terkecil mempunyai akar α. Dengan menggunakan algoritma pembagian suku banyak didapat m1(x) = l(x)m2(x)+r(x) dimana deg r(x) < deg m2(x) atau r(x) = 0 Ketika m1(α) = 0 dan m2(α) = 0, kita mempunyai r(α) = 0, tetapi karena m2(x) mempu- nyai derajat terkecil maka r(x) = 0, sehingga m2(x) membagi m1(x). Dengan cara yang sama, m1(x) membagi m2(x) dan ketika keduanya merupakan suku banyak monic, maka m1(x) = m2(x) sehingga terbukti α tunggal. Teorema 7.1.12. Untuk α ∈ F∗, suku banyak minimal α, maka m(α)(x) adalah suku banyak yang irreducible.
  • 53. 7.1. PENDAHULUAN 47 Definisi 7.1.13. Untuk α ∈ F, misalkan t bilangan bulat positif terkecil dengan demikian αpt = α, maka himpunan konjugat dari α(terhadap GF(p)) adalah C(α) = {α,αp ,αp2 ,αp3 ,...,αpt−1 } C(α) = C(αpi ),∀i ∈ F lapangan dengan karakteristik p Lemma 7.1.14. Misalkan F lapangan hingga dengan karakteristik p, misalkan α ∈ F∗, dan C(α) himpunan konjugat α terhadap GF(q), maka m(x) = ∏ β∈C(α) (x−β) Bukti. Misalkan m(x) = ∑t i=0 mixi dengan koefisien mi ∈ F, kita catatan bahwa m(x)p = ∏β∈C(α)(xβ )p = ∏β∈C(α)(xp −βp) = ∏β∈C(α)(xp −β) = m(xp) = ∑t i=1 xip Dengan mengikuti Lemma 7.1.3 didapat bahwa {β : β ∈ C(α)} = {β p : β ∈ C(α)} Dilain pihak, kita dapatkan bahwa m(x)p = t ∑ i=1 (mixi )p = t ∑ i=1 mp i xip Jadi, mi = mp i dan dengan menggunakan Lemma 7.1.5 sehingga terbukti bahwa mi ∈ GF(p),0 ≤ i ≤ t. Teorema 7.1.15. Untuk α ∈ F, suku banyak minimal α diberikan oleh mα(x) = ∏ β∈C(α) (x−β) Contoh 7.1.16. Kontruksikan lapangan F = GF(23). Hal pertama yang diperlukan adalah suku banyak pangkat tiga atas Z2. Misalkan kita mengambil f(x) = x3 +x+1 dan anggota- anggota F adalah {0,1,x,x+1,x+x2 ,x2 ,1+x2 ,1+x+x2 }. Ketika x3 + x + 1 = 0 mod f(x), maka kita mempunyai x3 ≡ −x − 1 = x + 1(mod(f(x))), dan 1 = −1 ∈ Z2. Selanjutnya kita tuliskan anggota lapangan dengan a0 +a1x+a2x2, maka didapatkan 0 = (000) x2 = (001) 1 = (100) 1+x2 = (101) x = (010) x+x2 = (011) 1+x = (110) 1+x+x2 = (111) Jika kita mengambil α, maka dengan mudah kita dapatkan bahwa α merupakan generator F. Andaikan kita mengambil β = (101) dan kita akan dicari mβ (x) dan dengan menggunakan Teorema didapat mβ (y) = ∏ δ∈C(β) (y−β)(y−β2 )(y−β4 )
  • 54. 48 BAB 7. BCH CODE dan ketika β8 = β dan kita akan menghitung (y−β)(y−β2)(y−β3)= y3 +(β +β2 +β4)y2 +(ββ2 +ββ4 +β2β4)y+ββ2β4 Dengan menggunakan representasi setiap anggota tak nol sebagai akar dari generator α, dengan mengambil α = x, kita dapatkan α0 = (100) α4 = (011) α1 = (010) α5 = (111) α2 = (001) α6 = (101) α3 = (110) α7 = (100) Ketika β = α6, maka β2 = α12 = α5 = dan β4 = α24 = α3, diperoleh β +β2 +β4 = α6 +α5 +α3 = (101)+(111)+(110) = 100 ββ2 +ββ4 +β2β4 = β3 +β5 +β6 = α18 +α30 +α36 = α4 +α2 +α = 0 ββ2β4 = β7 = α42 = 1 Jadi, didapat suku banyak minimal β2 dan β4 yaitu mβ (y) = y3 +y2 +1 Sedangkan suku banyak minimal α juga merupakan suku banyak minimal α2 dan α4 yaitu mα(y) = y3 +y+1 Darimana dapat dicari sendiri. 7.1.4 Cyclotomic Coset Dibawah ini akan diberikan definisi dan contoh dari Cyclotomic coset. Definisi 7.1.17. Diberikan q dan n bilangan bulat i,0 ≤ i ≤ n−1, cyclotomic coset (q modulo n) memuat i didefinisikan oleh Ci = {i,iq,iq2 ,...,iqn−1 } dimana anggota-anggota himpunan modulo n, dan s bilangan bulat terkecil dengan demikian iqs ≡ i(modn). C = {Ci : 0 ≤ i ≤ n−1} disebut himpunan cyclotomic coset q modulo n Untuk penjelasan lebih lanjut dapat dilihat di [?] Contoh 7.1.18. Untuk n = 9 dan q = 2, didapat C1 = [1,2,4,8,7,5] = C2 = C4 = C8 = C7 = C5 C3 = [3,6] = C6 C0 = [0] Teorema 7.1.19. Misalkan f(x) = xn −1 suku banyak atas GF(q). Banyaknya faktor irredu- cible dari f(x) adalah sama dengan banyak cyclotomic coset q modulo n.
  • 55. 7.1. PENDAHULUAN 49 7.1.5 BCH codes Suku banyak monic g(x) ∈ GF(q)[x] dikatakan sebagai split didalam perluasan field GF(qm) dari GF(q) jika g(x) bisa difaktorkan sebagai hasil kali suku banyak linear di GF(qm), kita bisa menuliskannya ; g(x) = (x−α1)(x−α2)...(x−αn) dimana αi ∈ GF(qm) dan GF(qm) disebut sebagai splitting field dari g(x). Secara umum, da- pat didefinisikan bahwa splitting field dari g(x) ∈ GF(qm) sebagai lapangan terkecil GF(qm), dengan kata lain lapangan terkecil yang memuat semua akar -akar dari g(x). Splitting field g(x) bisa didapatkan dari derajat faktor irreducible atas GF(q). Catatan bahwa g(x) boleh irreducible atas GF(q), tetapi selalu faktor- faktornya sebagai hasil kali suku banyak linear yang berbeda di splitting field. Untuk contoh, g(x) = x2 +x+1 adalah merupakan irreducible atas GF(2) dan tidak mempunyai akar di GF(2), tetapi atas GF(4), g(x) = (x+α)(x+α2 ) dan mempunyai akar-akarnya adalah α dan α2, dimana GF(4) = {0,1,α,α2} dengan α2 + α +1 = 0 Contoh 7.1.20. Diberikan suku banyak dibawah ini g(x) = 1+x3 +x5 +x6 +x8 +x9 +x10 atas GF(2), dapat dicek bahwa g(x) tidak mempunyai akar di GF(2), ataupun GF(22),GF(23), dan GF(24), tetapi menggunakan GF(25) didapat akar -akar α dari h(x) = 1+x2 +x5 yaitu α,α3, dan anggota konjugatnya adalah α,α2,α4,α8,α16 dan α3,α6,α12,α24,α17 adalah merupakan akar -akar dari g(x), dan semua akar dari g(x) di GF(25) Contoh 7.1.21. Diberikan suku banyak dibawah ini : g(x) = 2+2x+x4 +2x5 +x6 +x7 atas GF(3) dan hanya memiliki satu akar dengan yaitu 1, dan tidak ada akar dari persamaan tersebut di GF(32), sedangkan dengan mengggunakan GF(33) didapat akar α dari h(x) = 1+2x2 +x3 yaitu; 1,α2 ,α6 ,α18 ,α4 ,α12 ,α10 Akar -akar diatas merupakan akar α dari g(x). 7.1.6 BCH Codes Kita akan mendefinisikan kelipatan persekutuan terkecil lcm(f(x), f(x)) suku banyak tak nol f(x), f(x) ∈ Fq[x] menjadi suku banyak monic dengan derajat terkecil yang merupakan perkalian dari f1(x) dan f2(x). Definisi 7.1.22. Misalkan kita mempunyai sebanyak t suku banyak f1(x), f2(x),..., ft(x) ∈ F[x], maka kelipatan persekutuan terkecil dari f1(x), f2(x),..., ft(x) adalah suku banyak mo- nic dengan derajat terkecil dan merupakan perkalian dari semua suku banyak f1(x), f2(x),..., ft(x). Selanjutnya, dinotasikan sebagai lcm(f1(x), f2(x),..., ft(x)).
  • 56. 50 BAB 7. BCH CODE Jika f1(x), f2(x),..., ft(x) ∈ Fq[x] dapat difaktorisasi menjadi f1(x) = a1.p1(x)e1,1... pn(x)e1,n f2(x) = a2.p1(x)e2,1... pn(x)e2,n ... ... ft(x) = at.p1(x)et,1... pn(x)et,n dimana pi(x) merupakan suku banyak monic yang irreducible atas Fq maka lcm(f1(x), f2(x),..., ft(x)) = p1(x)max{e1,1,...,et,1} ...pn(x)max{e1,n,...,et,n} Contoh 7.1.23. Diberikan polinomial biner, f1(x) = (1+x)2(1+x+x4)3 f2(x) = (1+x)(1+x+x2)2 f3(x) = x2(1+x+x4) sehingga, lcm(f1(x), f2(x), f3(x)) = x2(1+x)2(1+x+x2)2(1+x+x4)3 Lemma 7.1.24. Diberikan f1(x),f2(x),..., ft(x) suku banyak atas Fq. Jika f(x) habis dibagi oleh semua suku banyak fi(x),∀i = 1,2,...,t maka f(x) habis dibagi oleh lcm(f1(x), f2(x),..., ft(x)) Bukti. Ambil g(x) = lcm(f1(x), f2(x),..., ft(x)). Menggunakan algoritma pembagian maka ada dua suku banyak u(x) dan r(x) atas Fq dengan demikian deg(r(x)) < deg(g(x)) dan f(x) = u(x)g(x)+r(x). Jadi, r(x) = f(x)−u(x)g(x), dan selanjutnya r(x) juga habis dibagi oleh semua fi(x). Ketika g(x) mempunyai derajat terkecil,dengan jelas bahwa r(x) = 0. Contoh 7.1.25. Suku banyak f(x) = x15 −1 ∈ F2[x] habis dibagi oleh f1(x) = 1+x+x2 ∈ F2[x], f2(x) = 1 + x + x4 ∈ F2[x], dan f3(x) = (1 + x + x2)(1 + x3 + x4) ∈ F2[x]. Maka f(x) habis dibagi oleh lcm(f1(x), f2(x), f3(x)) = (1+x+x2)(1+x+x4)(1+x3 +x4). Dibawah ini akan dijelaskan tentang definisi BCH Codes. Definisi 7.1.26. Misalkan α elemen primitif dari Fqm dan dinotasikan oleh Mi(x) merupakan polynomial minimal dari αi terhadap Fq. Sebuah primitif BCH code atas Fq dengan pan- jang n = qm −1 didesain dengan distance δ adalah q-ary cyclic code yang dibangun oleh g(x) :=lcm(M(a)(x),M(a+1)(x),...,M(a+δ−2)(x)) untuk suatu bilangan bulat a. Lebih jauh, code ini disebut sebagai narrow sense jika a = 1. Contoh 7.1.27. Misalkan α elemen primitif dari F2m, maka narrow sense binary BCH code didesain dengan distance 2 adalah cyclic code yang dibangun oleh M(1)(x). Contoh 7.1.28. Misalkan α ∈ F8 akar -akar dari 1+x+x3 merupakan elemen primitif dari F8. Polynomial M(1)(x) dan M(2)(x) keduanya sama dengan 1+x+x3. Selanjutnya, narrow sense binary BCH code dengan panjang 7 dibangun oleh lcm(M(1)(x),M(2)(x)) = 1+x+x3 adalah [7,4]−code. Dengan fakta bahwa [7,4,3]−Hamming code. Contoh 7.1.29. Misalkan β merupakan akar dari 1+x+x2 ∈ F2[x], maka F4 = F2[β]. Mi- salkan α menjadi akar dari β +x+x2 ∈ F4[x]. Maka α elemen primitif dari F16. Diberikan narrow-sense 4−ary BCH code dengan panjang 15 didesain dengan distance 4, maka generator polynomialnya adalah g(x) = lcm(M(1) (x),M(2) (x),M(3) (x)) = 1+βx+βx2 +x3 +x4 +β2 x5 +x6 .
  • 57. 7.1. PENDAHULUAN 51 7.1.7 Parameter dari BCH Codes Diketahui bahwa panjang dari BCH code adalah qm −1. Selanjutnya akan dicari dimensi dari BCH code terlebih dahulu. Teorema 7.1.30. Diketahui panjang dari BCH code adalah qm −1. (i) Dimensi dari q−ary BCH code dengan panjang qm −1 yang dibangun oleh g(x) := lcm(M(α) (x),M(α+1) (x),...,M(α+δ−2) (x) tidak tergantung dari pemilihan elemen primitif α (ii) q−ary BCH code dengan panjang qm −1 yang didesain dengan distance δ memiliki dimensi setidaknya qm −1−m(δ −1) Akan diberikan contoh dari Teorema 7.1.30 di atas dan dapat dilihat dibawah ini. Contoh 7.1.31. (i) Diberikan cyclotomic cosets 2 modulo 15 dibawah ini : C2 = {1,2,4,8} C3 = {3,6,12,9}. Maka dimensi dari binary BCH Codes dengan panjang 15 dan didesign dengan distance 3 yang dibangun oleh g(x) :=lcm(M(2),M(3)(x)) adalah 15− | C2 ∪C3 |= 15−8 = 7 (ii) Cyclotomic cosets dari 3 modulo 26 yaitu, C1 = C3 = {1,3,9} C2 = {2,6,18} C4 = {4,10,12} Kemudian dimensi dari ternary BCH codes dengan panjang 26 dan didesain dengan distance 5 yang dibangun oleh g(x) := lcm(M(1)(x),M(2)(x),M(3)(x),M(4)(x)) adalah 26−|C1 ∪C2 ∪C3 ∪C4| = 26−9 = 17 Proposisi 7.1.32. Narrow-sense q-ary BCH code dengan panjang qm −1 dan didesain dengan distance δ mempunyai dimensi qm −1−m(δ −1) jika q = 2 dan gcd(qm −1,e) = 1 untuk semua 1 ≤ e ≤ δ −1. Proposisi 7.1.33. Narrow sense binary BCH code dengan panjang n = 2m −1 dan didesain dengan distance δ = 2t +1 mempunyai dimensi sedikitnya n−m(δ −1)/2. Bukti. Sebagaimana cyclotomic cosets Ci dan C2i adalah sama, maka dimensi k memenuhi k = 2m −1− | 2t i=1 Ci | = 2m −1− | t i=1 C2i−1 | ≤ 2m −1− t ∑ i=t | C2i−1 | ≤ 2m −1−tm = 2m −1−m(δ −1)/2
  • 58. 52 BAB 7. BCH CODE Contoh 7.1.34. Narrow sense binary BCH code dengan panjang 63 didesain dengan distance δ = 5 mempunyai dimensi 51 = 63−6(5−1)/2. Bagiamanapun, narrow sense binary BCH code dengan panjang 31 didesain dengan distance δ = 11 mempunyai dimensi 11 yang lebih besar daripada 31−5(11−2)/2. Selanjutnya, kita akan mempelajari minimum distance BCH codes. Lemma 7.1.35. Misalkan C q-ary cyclic code dengan panjang n dan generator polynomial g(x). Andaikan α1,...,αr akar -akar dari g(x) dan polynomial g(x) tidak mempunyai akar ganda. Maka elemen c(x) ∈ Fq[x]/(xn − 1) adalah codeword C jika hanya jika c(αi) = 0, untuk setiap i = 1,...,r. Bukti. Jika c(x) codeword C, maka ada polynomial f(x) dengan demikian c(x) = g(x)f(x). Jadi kita mempunyai c(αi) = g(αi)f(αi) = 0 untuk semua i = 1,...,r. Secara konvers, jika c(αi) = 0 untuk i = 1,...,r maka c(x) habis dibagi oleh g(x) ketika g(x) tidak mempunyai akar ganda. Ini mengartikan bahwa c(x) adalah codeword C. Contoh 7.1.36. Diberikan binary [7,4]−Hamming code dengan generator polynomial g(x) = 1 + +x + x3. Semua elemen dari F8{0,1} adalah akar-akar c(x) = 1 + x + x2 + x3 + x4 + x5 +x6 = (x7 −1)/(x−1), semua akar dari g(x) adalah akar-akar c(x). Jadi, 1111111 adalah codeword. Dibawah ini teorema yang akan menjelaskan tentang ’designed distance’ Teorema 7.1.37. BCH code didesain dengan distance(designed distance) δ mempunyai minimum distance sedikitnya δ. Bukti. Misalkan α merupakan elemen primitif dari Fqm dan misalkan C adalah BCH code yang di- bangun oleh g(x) :=lcm(M(a)(x),M(a+1)(x),...,M(a+δ−2)(x)). Dengan jelas bahwa elemen αa,...,αa+δ−2 adalah akar-akarnya g(x). Andaikan bahwa minimum distance d dari C lebih kecil daripada δ. Maka ada codeword tak nol c(x) = c0 +c1x+···+cn−1xn−1 dengan demikian wt(c(x)) = d < δ. Menggunakan Lemma 7.1.35, kita mempunyai c(αi) = 0 untuk semua i = a,...,a+δ −2;        1 αa (αa)2 ... (αa)n−1 1 αa+1 (αa+1)2 ... (αa+1)n−1 1 αa+2 (αa+2)2 ... (αa+2)n−1 ... ... ... ... ... 1 αa+δ−2 (αa+δ−2)2 ... (αa+δ−2)n−1               c0 c1 c2 ... cn−1        = 0. (7.1) Asumsikan bahwa c(x) adalah R = {i1,...,id},cj = 0 jika hanya jika j ∈ R. Maka persamaan (7.1) menjadi        (αa)i1 (αa)i2 (αa)i3 ... (αa)id (αa+1)i1 (αa+1)i2 (αa+1)i3 ... (αa+1)id (αa+2)i1 (αa+2)i2 (αa+2)i3 ... (αa+2)id ... ... ... ... ... (αa+δ−2)i1 (αa+δ−2)i2 (αa+δ−2)i3 ... (αa+δ−2)id               ci1 ci2 ci3 ... cid        = 0. (7.2)
  • 59. 7.1. PENDAHULUAN 53 Ketika d ≤ δ −1, kita mendapatkan sistem persamaan dibawah ini dengan memilih persamaan d yang pertama sistem persamaan diatas sehingga didapatkan :        (αa)i1 (αa)i2 (αa)i3 ... (αa)id (αa+1)i1 (αa+1)i2 (αa+1)i3 ... (αa+1)id (αa+2)i1 (αa+2)i2 (αa+2)i3 ... (αa+2)id ... ... ... ... ... (αa+d−1)i1 (αa+d−1)i2 (αa+d−1)i3 ... (αa+d−1)id               ci1 ci2 ci3 ... cid        = 0. (7.3) Determinan D koefisien matriks persamaan diatas adalah sama dengan D = d ∏ j=1 (αa )ij det        1 1 1 ... 1 αi1 αi2 αi3 ... αid (α2)i1 (α2)i2 (α2)i3 ... (α2)id ... ... ... ... ... (αd−1)i1 (αd−1)i2 (αd−1)i3 ... (αd−1)id        (7.4) = d ∏ j=1 (αa )ij ∏ k>l (αik −αil ) = 0. Dengan mengkombinasikan persamaan (7.3) dan (7.4), kita mendapatkan (ci1,...,cid ) = 0 sehingga kontradiksi. Jadi terbukti. Contoh 7.1.38. Misalkan α akar dari 1+x+x3 ∈ F2[x], dan misalkan C binary BCH code dengan panjang 7 didesain dengan distance 4 yang dibangun oleh g(x) = lcm(M(0) (x),M(1) (x),M(2) (x)) = 1+x2 +x3 +x4 Maka d(C) ≤ wt(g(x)) = 4. Disisi lain dengan menggunakan teorema 7.1.37 didapat d(C) ≥ 4. Jadi, d(C) = 4. 7.1.8 Decoding BCH Codes Pada bagian akan diberikan algoritma dalam decoding BCH code yang dibagi menjadi 3 yaitu : (i) Menghitung syndrome (ii) Menemukan error locator polynomial (iii) Menemukan semua akar dari error locator polynomial Untuk menyederhanakannya, kita hanya akan mendiskusikan decoding narrow sense binary BCH codes. Misalkan C narrow sense binary BCH codes dengan panjang n = 2m −1 dan design distance δ = 2t +1 yang dibangun oleh g(x) := lcm(M(1)(x),M(2)(x),...,M(δ−1)(x)), dimana M(i)(x) adalah polynomial minimal dari αi terhadap F2 untuk elemen primitif α ∈ F2m.